summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS34
-rw-r--r--COPYING29
-rw-r--r--ChangeLog825
-rw-r--r--INSTALL60
-rw-r--r--INSTALL.gnu370
-rw-r--r--Makefile.am9
-rw-r--r--Makefile.in727
-rw-r--r--NEWS4
-rw-r--r--README31
-rw-r--r--TODO24
-rw-r--r--acinclude.m4230
-rw-r--r--aclocal.m41135
-rwxr-xr-xcompile310
-rwxr-xr-xconfig.guess1522
-rw-r--r--config.h.in267
-rwxr-xr-xconfig.sub1766
-rwxr-xr-xconfigure8841
-rw-r--r--configure.in422
-rw-r--r--contrib/Makefile.am6
-rw-r--r--contrib/Makefile.in406
-rw-r--r--contrib/README14
-rw-r--r--contrib/cctree.txt537
-rw-r--r--contrib/cctree.vim3398
-rw-r--r--contrib/ocs308
-rw-r--r--contrib/webcscope/INSTALL31
-rw-r--r--contrib/webcscope/LICENSE340
-rw-r--r--contrib/webcscope/TODO5
-rw-r--r--contrib/webcscope/cgi-lib.pl471
-rw-r--r--contrib/webcscope/cscope450
-rw-r--r--contrib/webcscope/hilite.c360
-rw-r--r--contrib/webcscope/icons/back.gifbin0 -> 216 bytes
-rw-r--r--contrib/webcscope/icons/bomb.gifbin0 -> 308 bytes
-rw-r--r--contrib/webcscope/icons/c.gifbin0 -> 242 bytes
-rw-r--r--contrib/webcscope/icons/down.gifbin0 -> 163 bytes
-rw-r--r--contrib/webcscope/icons/folder.gifbin0 -> 225 bytes
-rw-r--r--contrib/webcscope/icons/folder.open.gifbin0 -> 242 bytes
-rw-r--r--contrib/webcscope/icons/left.gifbin0 -> 172 bytes
-rw-r--r--contrib/webcscope/icons/up.gifbin0 -> 164 bytes
-rw-r--r--contrib/webcscope/icons/world2.gifbin0 -> 261 bytes
-rw-r--r--contrib/xcscope/cscope-indexer166
-rw-r--r--contrib/xcscope/xcscope.el2463
-rwxr-xr-xdepcomp688
-rw-r--r--doc/Makefile.am4
-rw-r--r--doc/Makefile.in426
-rw-r--r--doc/cscope.1591
-rw-r--r--doc/xcscope.1574
-rwxr-xr-xinstall-sh527
-rwxr-xr-xmissing331
-rwxr-xr-xmkinstalldirs162
-rw-r--r--packages/MSDOS/README74
-rw-r--r--packages/MSDOS/djmake.bat22
-rw-r--r--packages/MSDOS/ylwrap.pat11
-rw-r--r--packages/cscope.spec63
-rw-r--r--packages/uw7/Prototype11
-rw-r--r--packages/uw7/cscope_pkg.sh98
-rw-r--r--packages/uw7/pkginfo6
-rw-r--r--src/Makefile.am55
-rw-r--r--src/Makefile.in1029
-rw-r--r--src/alloc.c95
-rw-r--r--src/alloc.h46
-rw-r--r--src/basename.c48
-rw-r--r--src/build.c740
-rw-r--r--src/build.h73
-rw-r--r--src/command.c953
-rw-r--r--src/compath.c213
-rw-r--r--src/constants.h137
-rw-r--r--src/crossref.c492
-rw-r--r--src/dir.c748
-rw-r--r--src/display.c763
-rw-r--r--src/edit.c139
-rw-r--r--src/egrep.c2318
-rw-r--r--src/egrep.y679
-rw-r--r--src/emacs.e102
-rw-r--r--src/exec.c190
-rw-r--r--src/find.c1302
-rw-r--r--src/fscanner.c32257
-rw-r--r--src/fscanner.l1066
-rw-r--r--src/global.h430
-rw-r--r--src/gmacs.ml65
-rw-r--r--src/gscope.c1
-rw-r--r--src/help.c151
-rw-r--r--src/history.c105
-rw-r--r--src/input.c335
-rw-r--r--src/invlib.c1186
-rw-r--r--src/invlib.h118
-rw-r--r--src/library.h53
-rw-r--r--src/logdir.c102
-rw-r--r--src/lookup.c151
-rw-r--r--src/lookup.h48
-rw-r--r--src/main.c1070
-rw-r--r--src/mouse.c433
-rw-r--r--src/mygetenv.c51
-rw-r--r--src/mypopen.c207
-rw-r--r--src/scanner.c2956
-rw-r--r--src/scanner.h97
-rw-r--r--src/scanner.l788
-rw-r--r--src/snprintf.c2097
-rw-r--r--src/version.h47
-rw-r--r--src/vp.h72
-rw-r--r--src/vpaccess.c59
-rw-r--r--src/vpfopen.c64
-rw-r--r--src/vpinit.c171
-rw-r--r--src/vpopen.c62
-rwxr-xr-xylwrap226
104 files changed, 83739 insertions, 0 deletions
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..56c134a
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,34 @@
+Joe Steffen - Creator of Cscope
+Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de> - Maintainer
+Petr Sorfa <petr@users.sourceforge.net> - Initial OpenSource Maintainer
+Simon Cozens - autoconf setup
+garp@digi.com - .cc .hh support
+jens persson <cscope@persson.cx> - new man page
+Edgar Toernig - cscope stability
+Martin Kraemer - various improvments
+Joshua Uziel <uzi@linuxcare.com> - code clean up, -h and -k options, and lots more (including autoconf)
+Mike Hopkirk <hops@sco.com> - osr5 build, ocs
+Darrylo Okahata <darrylo@users.sourceforge.net> - code quality improvements
+Brent Verner <brent@rcfile.org> - -R option to recurse sub directories
+Thomas Klausner - NetBSD support
+Andrew Sharpe - progress bar, tab between line selection and prompts and more
+Carl Mascott - FreeBSD support
+Rich Salz - Allow -i accept stdio as input as "-"
+Stephane Fritsch - BeOS support
+Andy Newman <atrn> - FreeBSD support patch
+Sascha Blank - FreeBSD support
+Bruce Frost - Stability
+Chuck Marco and Wilfredo Sanchez - Darwin support
+Jason Duell - CSCOPE_EDITOR and CSCOPE_LINEFLAG*, invname database
+Tom Hull - Similar work to CSCOPE_EDITOR and friends
+Donald Slutz - Various fixes
+OGAWA Hirofumi - line mode fixes
+Garret Hade - Various ocs fixes
+Nick Dixon - Improvement in key handling
+Triet H. Lai <thlai@mail.usyd.edu.au> - GNU Emacs fixes for xcscope.el
+Steven Elliott <selliott4@austin.rr.com> - Fuzzy pattern matching for xcscope.el
+Ragho Mahalingam <ragho@mahalingam.com> - webcscope
+Dmitry Obukhov - Hilight code in webcscope
+David Cohrs - LEX and SUNOS scanner fix
+Valentin Podlovchenko - Overflow prevention and link recursion fix patch
+Neil Horman <nhorman@tuxdriver.com> - Various Bug Fixes
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..5411e84
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,29 @@
+Copyright (c) 1998-2000, The Santa Cruz Operation
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+*Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+
+*Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+*Neither name of The Santa Cruz Operation nor the names of its contributors
+may be used to endorse or promote products derived from this software
+without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..11ed713
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,825 @@
+2012-08-04 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * configure.in: Update version to 15.8a
+
+ * src/version.h (FIXVERSION): Update to 8a.
+
+2012-08-02 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/version.h (FIXVERSION): Update missed.
+
+ * src/fscanner.l: # with nothing after it would throw off the line
+ count. (Bug #3553579)
+
+2012-07-10 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/invlib.c: Corrected some sizing of amtused in invlib.c.
+ sizeof(long) is dead reckoned to be 4 bytes, which is wrong on
+ x86_64. Reported by Paul Bolle
+
+2012-06-15 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/gscope.c: Added placeholder file, needed for distcheck.
+
+ * configure.in: Added AM_PROC_CC_C_O, needed for upgrade of
+ automake.
+
+ * compile, config.guess, config.sub, install-sh, missing, depcomp,
+ ylwrap, INSTALL.gnu, mkinstalldirs: Updated to automake 1.11.3,
+ autoconf 2.68.
+
+ * Makefile.in, aclocal.m4, src/Makefile.in, contrib/Makefile.in,
+ doc/Makefile.in: Regenerated by automake 1.11.1.
+
+ * configure, config.h.in: Regenerated by autoconf 2.68.
+
+2012-06-15 Neil Horman <nhorman@tuxdriver.com>
+ * configure.in: Update version in configure.in in prep for new release
+
+2012-06-15 Neil Horman <nhorman@tuxdriver.com>
+ * src/find.c: Add check to make sure that second '=' on assignment
+ search isn't part of a digraph
+
+2012-05-20 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/command.c (command): Allow usage of function keys ctrl-f and
+ ctrl-b even from result pane.
+
+ * src/display.c (display): More informative display of position in
+ a multi-screenful result set.
+
+2012-04-07 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/display.c (fields): Move "samuel" special function back to
+ end of list, where it won't show on display. Fix incorrect
+ on-screen description of findassign function.
+
+ * src/constants.h (NUMLEN): Increase from 5 to 10 to be able to
+ handle source files with freaky large numbers of lines.
+ (FIELDS): Reduce by one to avoid showing "samuel" special mode,
+ which is quite unusable to the general public.
+
+ * src/command.c (countrefs): There was still one scanf not taking
+ into account limited buffer lengths.
+
+ * src/find.c (check_for_assignment): Search for assignment failed
+ to recognize >>= and <<=, incorrectly recognized ~=, and was
+ implemented somewhat clumsily.
+
+2012-03-12 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/invlib.c: Modified posting construction code to properly limit
+ the fileindex value to avoid overflow.
+
+2012-03-05 Neil Horman <nhorman@tuxdriver.com>
+
+ * global.h, constants.h, find.c, display.c: Add search for symbol
+ assignment feature. Its been soaking in Fedora for years now, and I
+ think it gets enough use that its time we put it upstream.
+
+2011-07-04 Neil Horman <nhorman@tuxdriver.com>
+
+ * configure.in, config.h.in, configure, src/main.c: Modified autoconf
+ files to support checking for getopt_long function and changed
+ _GNU_SOURCE macro test to HAVE_GETOPT_LONG test. This should support
+ using getopt_long on all platforms automatically rather than have the
+ admin define it at build time.
+
+2011-07-04 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/main.c: Remove unneeded if statement that checked for proper
+ use of s, f, i and p options (sf bug 2912347).
+
+2011-06-29 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/fscanner.l, src/scanner.l: Add NULL check to strpbrk call to
+ avoid cscope crashes when reading garbage files.
+
+2011-06-12 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * Makefile.in, aclocal.m4, config.h.in, configure,
+ contrib/Makefile.in, doc/Makefile.in, src/Makefile.in: Regenerated
+ by newer autoconf.
+
+ * src/build.c (build): Remove pointless write.
+ (copydata, copyinverted): Avoid potential NULL pointer problem.
+
+ * src/find.c (findcalling): Remove pointless write.
+
+ * src/main.c (main): Remove pointless write.
+ (main): Documented default include directory $INCDIR wasn't
+ actually considered.
+
+ * src/invlib.c (invmake): Remove pointless code.
+ (invnewterm): Restrict variable to the only block it's used in.
+ (boolfile): Remove unused local.
+
+ * src/main.c (main): Handle Ctrl-Z manually, as curses raw mode
+ doesn't do that by itself.
+
+ * src/command.c (changestring): Likewise.
+
+2011-05-26 Neil Horman <nhorman@tuxdriver.com>
+
+ * contrib/cctree.vim: Added vi plugin to read cscope db's
+ * contrib/cctree.txt: Added docs for cctree.vim
+
+2010-09-30 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/main.c: Ignore SIGPIPE in linemode as well to allow
+ for proper file cleanup
+
+2010-03-04 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * src/dir.c (includedir, incfile): Cast size_t value to integer
+ for use as a *printf() precision argument.
+
+ * src/fscanner.l, src/scanner.l: Tolerate C++ :: scope operator
+ inside argument lists, too.
+
+2009-12-21 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/main.c: Added some more missing short options to parse_options
+
+2009-12-14 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/main.c: Added missing line mode operation options to
+ parse_arguments
+
+2009-12-14 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/main.c: Fixed adjustments to argc/argv in parse_option to account
+ for the possibility that someone might specify multiple options in
+ one argument (-ab vs. -a -b)
+
+2009-12-09 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/main.c: Added a new parse_options implementation to make option
+ parsing more sane and safe for systems which support getopt_long. Also
+ added a check to make sure that single character options didn't specify
+ trailing data (sf bug 2911623)
+
+ * AUTHORS: Fixed my email address
+
+2009-08-28 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/scanner.h: Added a LEXERR token to be returned if a lexer error
+ occurs
+
+ * src/crossref.c: Check for LEXERR token, and abort processing file if
+ lexer error occurs
+
+ * src/fcanner.l: check the statue of my_yytext on = and : symbols. If
+ its NULL consider that a lexer error. This can occur if input files are
+ provided that contain only a '=' or ':' symbol. Without the ability to
+ detect and return a lexer error, we get a segfault.
+
+2009-05-06 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/main.c: Fixed string length checks to avoid overflow
+
+2009-04-30 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * src/version.h (FILEVERSION, FIXVERSION): Version number changed
+ to 15.7a.
+
+ * configure.in: Version number changed to 15.7a.
+
+ * configure (all): Regenerated.
+
+2009-04-10 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * src/snprintf.c: Replacement implementation for missing snprintf
+ and vsprintf, from www.jhweiss.de.
+
+ * acinclude: New macros to optionally activate a replacement for
+ missing snprintf and vsprintf, from www.jhweiss.de.
+
+ * configure.in: Call new macros for snprintf and vsprintf. Drop
+ AC_FUNC_LSTAT in turn, since it would have required a replacement
+ implementation for lstat().
+
+ * src/Makefile.am (cscope_LDADD): Added LIBOBJS to automatically
+ include snprintf.o in the build if and only if needed.
+
+ * configure, config.h.in, aclocal.m4, Makefile.in,
+ contrib/Makefile.in, doc/Makefile.in, src/Makefile.in:
+ Regenerated.
+
+ * src/global.h: Add prototypes for replacement snprintf and
+ vsnprintf.
+
+ * src/*.c: Replace all calls of sprintf by snprintf to avoid
+ possible buffer overflows.
+
+2008-06-30 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * aclocal.m4, configure, config.h.in, Makefile.in,
+ src/Makefile.in, doc/Makefile.in, contrib/Makefile.in: Regenerated
+ by recent autotools.
+
+ * compile, config.guess, config.sub, depcomp, install-sh, missing,
+ mkinstalldirs, ylwrap: Updated to version provided by recent
+ autotools.
+
+ * INSTALL.gnu: GNU installation instructions.
+
+ * src/global.h (tempstring): Fix mismatch of declaration with
+ definition.
+
+2008-04-11 Neil Horman <nhorman@tuxdriver.com>
+ * src/main.c, src/exec.c : configure ncurses to operate in raw
+ mode so that ctrl-c (toggle case sensitivity) isn't swallowed by
+ the terminal driver
+
+2008-03-12 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * src/build.c (samelist): Previous fix broke handling of blanks in
+ directory names.
+ (build): Apply the same fix to other occurence of the same code.
+
+2008-03-10 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/build.c: Fix Samelist to properly absorb newlines so that
+ inverted indicies aren't always rebuilt
+
+2008-02-14 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/dir.c: Fix up issrcfile to identify hpp/hxx files as
+ standard c++ source files
+
+ * src/main.c: Add myexit as a handler for SIGTERM, to clean up
+ temp files on TERM
+
+2007-12-03 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * doc/cscope.1: Grammar corrections [SF patch #1843711] and troff
+ syntax fixes [from ESR].
+
+2007-03-10 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * src/scanner.l (comment_input): Translate EOF to LEXEOF in this
+ case, too.
+ (input, noncommentinput): Spell out LEXEOF instead of a magic
+ number 0.
+
+2007-02-09 Neil Horman <nhorman@tuxdriver.com>
+
+ * doc/xcscope.1: Added man page for xcscope utility in contrib
+
+2007-01-07 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * src/fscanner.l: Avoid a -Wunused warning by disabling the
+ yy_topstate() function.
+
+ * README: Add a warning about the intended user audience not
+ including superusers or anonymous ones.
+
+ * contrib/webcscope/cscope: Find perl in /usr/bin, which should be
+ more likely as its installation position these days. Put a big
+ red reminder to the top of the generated HTML page warning about
+ the security issues involved with webcscope. Thanks to V-Li and
+ the Gentoo folks for the patch.
+
+2006-10-23 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/main.c: Update sigwinch_handler to only register if linemode
+ is not specified (SF bug 1574354)
+
+2006-10-15 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * src/dir.c (accessible_file): New function to test for file
+ readability more strictly than just access().
+ (inviewpath): Use it to avoid unreadable files (directories, in
+ particular) getting into the srcfilelist, and thus hopefully fix
+ SF bug #1173768.
+
+2006-10-10 Neil Horman <nhorman@tuxdriver.com>
+
+ * src/main.c: Updated sigwinch_handler to not run in the event
+ that curses is not running to avoid crash (SF bug 1574354)
+
+2006-09-30 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/fscanner.l (wsnl): Expand set of allowed characters to make
+ scanner more tolerant of non-Unix linebreaks (should fix SF Bug
+ #1563459)
+
+ * src/Makefile.am (CLEANFILES, dist-hook): Commented out, to
+ reduce number of user reports from people without lex.
+
+ * configure.in: Change from AC_PROG_LEX to AM_PROG_LEX.
+
+ * src/Makefile.am (cscope_SOURCES): Added alloc.h. Reindented.
+
+ * src/invlib.c (invnewterm): Correct loop test to account for
+ maxback being unsigned (should fix SF bug #1559495).
+
+ * src/Makefile.am (AM_CPPFLAGS): Renamed from INCLUDES, to quench
+ an automake warning.
+
+ * configure.in: Modernized via autoupdate. Fixed several
+ 'underquoted' warnings from aclocal. Use a more telling source
+ file name in AC_CONFIG_SRCDIR.
+
+ * configure, aclocal.m4, Makefile.in, contrib/Makefile.in,
+ doc/Makefile.in, src/Makefile.in: Regenerated.
+
+2006-08-20 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/find.c (findsymbol): Missed one place where s_len had to be
+ initialized.
+
+ * src/main.c (tempstring): Parametrize length by new macro
+ TEMPSTRING_LEN.
+ (main): Check against too long -f file name.
+ (main): Put explicit %s field widths into fscanf() call.
+ (main): Replace some fscanf() calls by fgets().
+
+ * src/input.c (shellpath): Limit size of strings copied from
+ environment.
+
+ * src/edit.c (editref, editall): Put explicit %s field widths into
+ fscanf() calls.
+
+ * src/display.c (display): Put explicit %s field widths into
+ fscanf() call.
+
+ * src/dir.c (makefilelist): Put explicit %s field width into
+ sscanf() call.
+
+ * src/constants.h (TEMPSTRING_LEN): New macro, needed to
+ parametrize a fscanf() call.
+ (STRINGIZE): New macro used to build the following.
+ (PATLEN_STR, PATHLEN_STR, NUMLEN_STR, TEMPSTRING_LEN_STR): Buffer
+ lengths (minus 1) expressed as a string literal, to be used in as
+ field widths in {f,s}scanf() calls.
+
+ * src/command.c (changestring): Put explicit %s field widths into
+ fscanf() call.
+
+ * src/build.c (samelist, build): fgets() replaces fscanf().
+ (build): Put explicit %s field widths into fscanf() call.
+
+2006-07-23 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * src/global.h: Rename putstring() to fetch_string_from_dbase(),
+ add a parameter.
+
+ * src/find.c: Add #include <assert.h>
+ (fetch_string_from_dbase): Renamed from misleading name
+ putstring(). Add new parameter, and use it to avoid overflowing
+ the output buffer.
+ (findsymbol): New local: s_len. Rename calls to putstring(). Add
+ new argument, some of them from s_len.
+ (finddef, findallfcns, findcalling, findinclude, match,
+ findcalledby, putpostingref): Rename calls to putstring(). Add new
+ argument.
+
+ * src/constants.h (MSGLEN): Add safety parentheses.
+
+ * src/library.h: Remove prototypes of alloc.c functions.
+
+ * src/alloc.h: New file. Moved prototypes of alloc.c functions in
+ here, out of library.h.
+
+ * src/alloc.c: Include new header file from here.
+ (my_strdup): Changed name from misleading stralloc(). Remove
+ incorrect cast.
+
+ * src/build.c: Add #include "alloc.h".
+ (fetch_include_from_dbase): Renamed from misleading name
+ putinclude(). Add length of target string as an argument.
+ (setup_build_filenames): Rename calls of stralloc().
+ (getoldfile, copyinverted): Rename calls of putstring(). Add new
+ argument.
+ (copydata, coypinverted): Rename calls of putinclude(). Add new
+ argument.
+
+ * src/vpinit.c: Add #include "alloc.h"
+ (vpinit): Rename calls of stralloc().
+
+ * src/main.c: Add #include "alloc.h".
+ (main): Rename calls of stralloc().
+
+ * src/history.c: Add #include "alloc.h".
+ (addcmd): Rename call of stralloc().
+
+ * src/fscanner.l: Add #include "alloc.h".
+
+ * src/display.c: Add #include "alloc.h".
+
+ * src/dir.c: Add #include "alloc.h". Move project includes above
+ system headers.
+ (sourcedir, addsrcdir, includedir, addincdir, addsrcfile): Rename
+ calls to stralloc().
+
+ * src/crossref.c: Add #include "alloc.h"
+
+ * src/command.c: Add #include "alloc.h".
+
+2006-05-06 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * src/fscanner.l: Accept numeric literals inside fcn definitions
+ and calls.
+
+2006-04-21 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ Make source clean under -Wsign-compare.
+
+ * src/main.c (fileargc): Make counter unsigned.
+ (main): Make local counter unsigned.
+ (main): Fixed two sprintf() excess arguments.
+
+ * src/lookup.c (initsymtab): Make local counters unsigned.
+
+ * src/invlib.c (LINEMAX): Removed.
+ (invmake): Change length of local variable "line" to TERMMAX.
+ (numpost, numlogblk, amtused, nextpost, lastinblk, numinvitems):
+ Make counters unsigned.
+ (invnewterm): Make local counters unsigned.
+
+ * src/input.c (mygetline): Make local counters unsigned.
+
+ * src/find.c (findregexp, findfile): Make local counters unsigned.
+
+ * src/egrep.y (line, left, right, parent): Make unsigned.
+ (enter, cclenter): Return unsigned.
+ (follow): Make argument unsigned.
+ (cclenter, cfoll, cgotofn, member, add, follow): Make local
+ counters unsigned.
+ (cgotofn, member): Cast char to unsigned char, not unsigned int,
+ for use as an index.
+
+ * src/display.c (disprefs, mdisprefs, nextline, topline,
+ totallines): Make unsigned.
+ (search): Removed unused locals.
+ (seekline): Make argument unsigned.
+
+ * src/dir.c (nincdirs, nsrcdirs, nsrcfiles, msrcfiles, mincdirs,
+ msrcdirs, nvpsrcdirs): Make unsigned long.
+ (sourcedir, includedir, makefilelist, incfile, inviewpath): Make
+ local counters unsigned.
+
+ * src/crossref.c (symbols, msymbols): Make unsigned long.
+ (struct symbol): Make elements first, last, length and fcn_level
+ unsigned.
+ (crossref, putcrossref): Make local counters unsigned.
+
+ * src/command.c (curdispline): Make unsigned.
+ (mark): Make argument and local counter unsigned.
+ (command): Make KEY_LL conditional on KEY_LL, not KEY_HOME.
+ (changestring): Made local counter unsigned.
+
+ * src/build.c (build): Change several local ints to unsigned
+ longs.
+
+ * src/global.h: Updated lots of declarations to match the above.
+
+ * src/alloc.c (mymalloc, mycalloc, myrealloc): Make size arguments
+ size_t. Remove pointless casts in several of their callers.
+
+ * src/library.h (mymalloc, mycalloc, myrealloc): Updated
+ prototoypes.
+
+2006-04-20 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ * src/input.c (askforreturn): If curses is handling the display,
+ redraw the screen before returning, to keep error messages from
+ permanently scrambling the display.
+
+ * configure.in: Add test for <io.h>.
+
+ * configure, config.h.in: Regenerated.
+
+ * src/mypopen.c [HAVE_IO_H]: #include <io.h> it, for the setmode()
+ declaration.
+
+2006-04-19 Hans-Bernhard Broeker <broeker@physik.rwth-achen.de>
+
+ General change: indentation width of touched areas changed to 4
+ spaces, open braces not on lines of their own, single-line "else
+ if", get rid of (void) casts of unused function return values.
+
+ * src/global.h (select_large): Removed declaration.
+
+ * src/main.c (select_large, main): Removed long unused global.
+
+ * src/dir.c (scan_dir): Get rid of d_ino check --- this field is
+ not reliably present in struct dirent, and doesn't achieve enough
+ to be worth autoconf-ing around. Works around problems compiling on
+ Cygwin release 1.5.19.
+
+ * Makefile.in, aclocal.m4, configure, contrib/Makefile.in,
+ doc/Makefile.in, src/Makefile.in: Regenerated with current auto
+ tools (autoconf-2.59, automake 1.9.6).
+
+2006-02-21 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/vpinit.c (vpinit): Fix handling of slightly malformed VPATH
+ environment variable contents.
+
+2005-11-22 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/dir.c (issrcfile): Finally added auto-searching for
+ three-letter C++ file extensions *.tcc, *.cpp, *.cxx. Test all
+ matches to be regular files, not just those with two- and
+ three-character extensions.
+
+ * src/invlib.c: Some cleanup. Replace 0 third argument to fseek
+ by proper SEEK_SET. Got rid of (void) result casts and some
+ function argument casts.
+ (invmake): Fix one sizeof(long)==4 assumption.
+
+2005-08-16 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/main.c: Uncluttered by removing nitpicky (void) casts.
+ (longusage): Reworked for source legibility even on 80-column
+ displays.
+ (main): If in verbose linemode, print number of references found,
+ first off. Patch from Elad Lahav, for Kscope
+
+2005-07-08 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/build.c (invname_buf, invpost_buf, reffile_buf): Make
+ modifiable copies of the default file names.
+ (invname, invpost, reffile): Initialize pointers to modifiable
+ copies, rather than to string literals.
+
+ * packages/MSDOS/djmake.bat: Adapt to modern position of ylwrap
+ script.
+
+ * src/command.c (command) [KEY_RESIZE]: Protect by
+ !defined(__DJGPP__). That platform doesn't have sigaction() and
+ associated machinery, nor does it really support terminal size
+ changes to begin with.
+
+ * src/main.c (sigwinch_handler): Likewise.
+ (main): Likewise.
+
+2005-04-29 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/command.c (command): Additional hotkey mapping of Ctrl-A to
+ same function as Ctrl-Y, like AT&T cscope, to evade Ctrl-Y
+ occupied as the DSUSP signal key on BSD'ish platforms.
+
+ * src/help.c (help): Document additonal hotkey ^A. Mention
+ possible unavailability of some Ctrl keys because of terminal
+ settings.
+
+2005-03-14 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/input.c (getline): Removed. Was just a minimally simplified
+ copy of mygetline() anyway, and it threatened to collide with a
+ like-named routine in libc.
+
+ * src/global.h (getline): Removed prototype.
+
+ * src/command.c (command): Changed all calls of getline() to
+ mygetline() with an empty string as the first argument.
+
+ * src/egrep.y (memset): Changed #if condition around fallback
+ implementation to match that of the prototype in global.h. Should
+ fix SF bug #1163104 (build failure on FreeBSD).
+
+2005-02-16 Neil Horman <nhorman@gmail.com>
+
+ * src/command.c (command): Added ifdef KEY_RESIZE around
+ KEY_RESIZE case in switch statement to allow curses
+ libraries which don't support resize events to build
+
+ * src/main.c (main): Added ifdef KEY_RESIZE around
+ SIGWINCH handler and signal registration logic to
+ remove resize code from cscope when building with
+ curses libraries that don't support resize events
+
+2005-02-04 Neil Horman <nhorman@gmail.com>
+
+ * src/command.c (command): Added KEY_RESIZE event case to
+ command switch to handle window re-drawing when a resize
+ event was received.
+
+ * src/input.c (mygetch): Added error checking of return code
+ to restart call to getch in the event it returned early due
+ to a signal being delivered.
+
+ * src/main.c (main): Registered a signal handler for the
+ SIGWINCH handler which is delivered when a terminal is
+ resized. Handler pushes a KEY_RESIZE event onto the head
+ of the command input queue.
+
+2005-02-01 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/build.c (build): Keep interactive mode on, even if on a
+ terminal, if verbose mode (-v) was turned on.
+
+2005-01-31 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/scanner.h: Declare yytext signed on AIX (without stating a
+ version number, for now).
+
+2005-01-30 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/mypopen.c (mypopen): Make closing argument to execlp() a
+ manifest null pointer, not just a zero.
+
+2004-12-08 Neil Horman <nhorman@gmail.com>
+
+ * src/dir.c: Fix to dissallow unreadable files from
+ srcfiles list (sourceforge bug number 1040690)
+
+2004-12-06 Neil Horman <nhorman@gmail.com>
+
+ * src/main.c: Fix for temp file security bug (sourceforge
+ bug number 1062807 / CAN-2004-0970)
+
+2004-11-22 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * doc/cscope.1: Make ESR happy: change man page summary section to
+ avoid [0-9] syntax.
+
+2004-10-27 Hans-Bernhard Broeker <broeker@accip02.physik.rwth-aachen.de>
+
+ * src/display.c (search): Replace duplicated code by a call to
+ countrefs(). Duplicate lacked adjustment of column widths in case
+ of very long function/file names. Thanks to Darlene Wong for
+ spotting this.
+
+ * src/global.h (countrefs): Prototype added.
+
+ * src/command.c (countrefs): Made globally available.
+
+2004-06-23 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/dir.c (makefilelist): Fix broken movement of point_in_line
+ when parsing quoted names. Simplify structure by moving default
+ handling upward.
+
+2004-06-21 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * contrib/ocs (SYSDIR): Only set to /usr/local/lib/cs if not
+ already set in outside environment. Check that $(SYSDIR) exists
+ before proceeding. From SF patch #976788 by Neil Horman.
+
+2004-04-30 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/vpinit.c (vpinit): Renamed argument currentdir to
+ current_dir to avoid name clash with same-named global.
+
+ * src/command.c (Pattern): Renamed from "pattern", to avoid
+ multitute of compiler warnings about shadowing by locally defined
+ variables of the same name. Changed all usages of this variable,
+ too.
+ (command): Test for individual KEY_* macros instead of TERMINFO
+ whenever one of the KEY_* macros is referenced. This should
+ reduce the TERMINFO mess a little.
+
+ * src/find.c (read_block): Renamed from "readblock", to avoid name
+ clash with QNX system function of that name. Calls changed
+ accordingly, all over the place.
+
+ * src/display.c: Fix fall-back definition of sigjmp_buf.
+
+ * src/constants.h: Activate TERMINFO for FreeBSD.
+
+ * src/input.c (mygetline): New function. Poor-man's readline
+ imitation. From SF Patch #937310.
+
+ * src/global.h (mygetline): Prototype added.
+
+ * src/command.c (command): Use mygetline() instead of letting
+ ncsurses doing it all. Make Ctrl-B/F special hotkeys that are
+ handled here instead of in mygetline(), to preserve their meaning.
+
+ * packages/cscope.spec: Updated by SF patch #920586 to be more
+ compatible with current expectations.
+
+2004-02-24 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * configure.in (AC_CHECK_HEADERS): Added check for NSK-Tandem
+ special magic header file <floss.h>.
+
+ * src/global.h [HAVE_FLOSS_H]: Added #include <floss.h> if it
+ exists.
+
+2004-02-14 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/command.c (countrefs): Fix off-by-one length specification
+ of %s format. Thanks to <anil@recoil.org> for spotting it.
+
+2004-02-12 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ Fix SF bug #892731: Ctrl-C interruption of search works only once
+ per session.
+
+ * configure.in (sigsetjmp): Added test for presence of this
+ function.
+
+ * src/display.c (sigsetjmp) [!HAVE_SIGSETJMP]: Provide fallback
+ definitions for functions sigsetjmp, siglongjmp and type
+ sigjmp_buf.
+ (search): Move call to signal() above that to setjmp(). Call
+ sigsetjmp() instead of setjmp().
+
+ * configure, config.h.in: Regenerated.
+
+ * Makefile.in, src/Makefile.in, contrib/Makefile.in,
+ doc/Makefile.in, aclocal.m4: Rebuilt by automake-1.7.9.
+
+
+2004-02-11 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * configure.in (signal.h) Check added.
+ (sighandler_t): Check for this type. Should be defined on POSIX
+ platforms, but is treated as a GNU extension sometimes.
+
+ * src/global.h (sighandler_t) [!HAVE_SIGHANDLER_T]: Provide
+ fallback definition of function pointer typedef for signal
+ handlers if <signal.h> doesn't provide it. Simplifies cscope's
+ work when working on its own source code --- function pointers
+ confuse it quite badly, so it's best to minimize their visibility.
+
+ * src/input.c (mygetch): Type of local variable savesig written
+ using sighandler_t.
+
+ * src/display.c (search): Type of local variable savesig written
+ using sighandler_t.
+
+ * src/exec.c (oldsigtstp): Renamed, from oldsigstp.
+ (oldsigtstp,oldsighup,oldsigquit): Changed from function pointer
+ type to new typedef name sighandler_t.
+
+2004-02-05 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/global.h (tolower) [BSD]: Fix stupid typo in overrides for
+ toupper and tolower.
+
+2004-01-08 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/display.c (clearmsg): New function. Does essentially the
+ same thing previously achieved by a rather more cryptic
+ postmsg("").
+ (postfatal): New function to printout a fatal error message and
+ terminate the program. Works like posterr(), but exits curses
+ first, so the message should end up visible after the program
+ exits. Using this instead of posterr()+myexit() fixes SF bug
+ #419510.
+ (dispinit): Use postfatal:().
+ (postmsg): Use clearmsg().
+ (postmsg2): Call curses refresh() after change.
+
+ * src/global.h: Add prototypes for new functions clearmsg() and
+ postfatal().
+
+ * src/find.c (putsource): Use postfatal().
+
+ * src/main.c (main, skiplist): Use postfatal() and clearmsg().
+
+ * src/command.c (command): Use clearmsg().
+
+ * src/build.c (build, seek_to_trailer, movefile): Use postfatal().
+
+ * src/alloc.c (alloctest): Use postfatal().
+
+ * src/display.c (jumpback): Re-instate signal handler, in an
+ attempt to fix problems reported with the general behaviour of
+ signal handlers in cscope.
+
+ * src/scanner.l (ws, wsnl): Two new predefined patterns to catch
+ not only blanks and tabs, but all generally allowed white-space
+ characters in source files: form feeds, vertical tabs, carriage
+ returns. Replaced most occurence of [ \t] and [ \t\n] by these.
+ This is a back-port from fscanner.l. Should fix SF bug #508060.
+
+Wed Oct 15 16:05:46 2003 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/dir.c (scan_dir): Don't reduce path to basename before
+ calling issrcfile.
+ (issrcfile): Use either basename or full path, as necessary for
+ the individual tests. Reorganized to reduce nesting.
+
+Mon Sep 15 12:34:46 2003 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/egrep.y (yylex, member, egrep, cgotofn): Reindented. Fixed
+ implicit int declarations and casts.
+
+ * src/global.h (tolower, tolower) [BSD]: Fix override definitions
+ for these so they don't mung non-alphabetic input.
+
+Fri Sep 12 09:33:19 2003 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ * src/vp.h: Add #include of <sys/types.h> to fix problem on
+ Solaris.
+
+Fri Sep 12 09:33:19 2003 Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
+
+ I'm finally starting a new, GNU-format ChangeLog file. The format
+ of the previous was too terse to be really useful. This begins
+ with the first changes after release 15.5.
+
+ * ChangeLog.old: New file. Renamed copy of old-format ChangeLog
+ file.
+
+ * ChangeLog: Started from scratch.
+
+
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..b2854db
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,60 @@
+***** BUILDING:
+
+This program's build procedure is fairly standard. Try:
+
+ ./configure
+ make
+ make install
+
+Options to the configure script are up to you. For details, run:
+
+ ./configure --help
+
+Please report build problems at:
+
+ http://sourceforge.net/bugs/?func=addbug&group_id=4664
+
+(yes, even non-Linux problems).
+
+
+***** TIPS AND PROBLEMS:
+
+- Try to use flex as the lexical analyzer. The lex scanner is now
+separated from the flex version to allow the flex scanner to be
+optimized. It's also a lot harder to diagnose and debug problems
+without having full access to the particular platform and its version of
+lex being used. flex is available everywhere --- AT&T lex is not.
+
+- On Solaris, the native lex fails to catch our redefinition of YYLMAX
+early enough, which leads to possible buffer overflows.
+
+- On Linux systems (and possibly others) configure may fail if lex is
+ a synomyn for flex. To fix, do the following:
+
+ make distclean
+ ./configure --with-flex
+ make
+
+- On HP-UX several problems exist when using configure. Try the following
+ to solve this:
+
+ CFLAGS='-Ae -DYYCHAR_ARRAY' CURSES_LIBS=-lHcurses ./configure
+
+- On Tru64, formerly known as Digital Unix, formerly known as DEC OSF/1,
+ the system-supplied libcurses causes cscope to terminate itself
+ immediately as it comes back to foreground after being suspended by
+ the user (Ctrl-Z). Using GNU Ncurses instead of OSF1 curses works
+ around the problem. According to the lynx and ncurses people, this
+ is a design problem of curses vs. signal handling, at the heart of it.
+
+- Solaris 2.8 on Intel hardware may not work using the vendor's curses
+ implementation. Using the free NCurses should help.
+
+- Some ancient Unix filesytems supported only 14 characters in
+ filenames. cscope no longer cares for that by default. If you want
+ to run it on such a system, #define the macro SHORT_NAMES_ONLY manually
+ (there's a definition in global.h you can uncomment).
+
+Browse to http://cscope.sourceforge.net for more current information,
+like reported bugs whose solutions haven't been put into this source
+distribution yet.
diff --git a/INSTALL.gnu b/INSTALL.gnu
new file mode 100644
index 0000000..a1e89e1
--- /dev/null
+++ b/INSTALL.gnu
@@ -0,0 +1,370 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994-1996, 1999-2002, 2004-2011 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 commands `./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 bug. Until the bug is fixed you can use this workaround:
+
+ CONFIG_SHELL=/bin/bash /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.am b/Makefile.am
new file mode 100644
index 0000000..ae0fc53
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,9 @@
+## Process this file with automake to produce Makefile.in
+
+SUBDIRS = doc src contrib
+
+EXTRA_DIST = INSTALL.gnu packages
+
+dist-hook:
+ @for dir in `find $(distdir) -type d -name CVS -print`; do \
+ rm -rf $$dir; done
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..2146e01
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,727 @@
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# 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.
+
+@SET_MAKE@
+VPATH = @srcdir@
+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@
+subdir = .
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
+ TODO compile config.guess config.sub depcomp install-sh \
+ missing mkinstalldirs ylwrap
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-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 uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir dist dist-all distcheck
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+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__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
+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@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURSES_INCLUDEDIR = @CURSES_INCLUDEDIR@
+CURSES_LIBS = @CURSES_LIBS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+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@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+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@
+gnome1 = @gnome1@
+gnome2 = @gnome2@
+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_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = doc src contrib
+EXTRA_DIST = INSTALL.gnu packages
+all: config.h
+ $(MAKE) $(AM_MAKEFLAGS) 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
+.PRECIOUS: 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):
+
+config.h: stamp-h1
+ @if test ! -f $@; then rm -f stamp-h1; else :; fi
+ @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+
+# 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.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; 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"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ 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; \
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 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
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 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"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+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 \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ 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
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+ -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__remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__remove_distdir)
+
+dist-lzma: distdir
+ tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+ $(am__remove_distdir)
+
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__remove_distdir)
+
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__remove_distdir)
+
+dist dist-all: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__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.lzma*) \
+ lzma -dc $(distdir).tar.lzma | $(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 a+w $(distdir)
+ mkdir $(distdir)/_build
+ mkdir $(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 \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ && $(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__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 config.h
+installdirs: installdirs-recursive
+installdirs-am:
+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 mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+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
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
+ ctags-recursive install-am install-strip tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am am--refresh check check-am clean clean-generic \
+ ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+ dist-hook dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \
+ dist-zip distcheck distclean distclean-generic distclean-hdr \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ 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-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs installdirs-am \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am
+
+
+dist-hook:
+ @for dir in `find $(distdir) -type d -name CVS -print`; do \
+ rm -rf $$dir; done
+
+# 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/NEWS b/NEWS
new file mode 100644
index 0000000..8d26507
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,4 @@
+2003/09/04 - Release of version 15.5.
+2002/08/15 - Release of version 15.4.
+2001/07/02 - Release of version 15.3.
+2000/04/18 - Release of Version 13.0 into Open Source. Initial Linux port
diff --git a/README b/README
new file mode 100644
index 0000000..70c8a6a
--- /dev/null
+++ b/README
@@ -0,0 +1,31 @@
+Cscope is a text screen based source browsing tool. Although it is
+primarily designed to search C code (including lex and yacc files), it
+can also be used for C++ code.
+
+Using cscope, you can easily search for where symbols are used and
+defined. Cscope is designed to answer questions like:
+
+ Where is this variable used?
+ What is the value of this preprocessor symbol?
+ Where is this function in the source files?
+ What functions call this function?
+ What functions are called by this function?
+ Where does the message "out of space" come from?
+ Where is this source file in the directory structure?
+ What files include this header file?
+
+It has been released by The Santa Cruz Operation, Inc as Open Source
+under the BSD license. Please look at COPYING for a detailed
+description of the license.
+
+For instructions on how to build and install cscope, see the file,
+"INSTALL".
+
+One thing to be pointed out is that this is ancient Unix software
+predating much of today's security concerns. While we do try to
+address safety issues as we learn about them, it must be said that
+this is in no way hardened or secure software. It's designed to be
+used by developers, not administrators or anonymous users.
+
+Browse to http://cscope.sourceforge.net for more current information
+
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..ce6256d
--- /dev/null
+++ b/TODO
@@ -0,0 +1,24 @@
+Open
+
++ Display the current case mode (^C) onscreen
+
++ emacs like key bindings
+ ^S for searching (^Y)
+ Up/dwn Arrow support Next/Prev field. ??
+ Inline editing on Input fields ( ??^B/^F )
+ ^X^C to quit ( ^Q ??)
+ Pagdwn/PageUp/+/-
+
++ Same capabilities as interactive in non interactive (one shot) mode
+
++ Provide some how-do-I-use-this-thing doc.
+
++ Replace invlib.[ch] by real database. Failing that, at least sanitize it.
+
+Possible changes:
+
+? Change to full screen target display and use bottom line for command,
+ control or fn keys for operations (cf pine)
+
+? Apply added capability from osr5 codebase
+
diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644
index 0000000..cd69d7b
--- /dev/null
+++ b/acinclude.m4
@@ -0,0 +1,230 @@
+# $Id: acinclude.m4,v 1.1 2009/04/10 13:39:22 broeker Exp $
+
+# Copyright (c) 2008 Holger Weiss <holger@jhweiss.de>.
+#
+# This code may freely be used, modified and/or redistributed for any purpose.
+# It would be nice if additions and fixes to this file (including trivial code
+# cleanups) would be sent back in order to let me include them in the version
+# available at <http://www.jhweiss.de/software/snprintf.html>. However, this is
+# not a requirement for using or redistributing (possibly modified) versions of
+# this file, nor is leaving this notice intact mandatory.
+
+# HW_HEADER_STDARG_H
+# ------------------
+# Define HAVE_STDARG_H to 1 if <stdarg.h> is available.
+AC_DEFUN([HW_HEADER_STDARG_H],
+[
+ AC_PREREQ([2.60])dnl Older releases should work if AC_CHECK_HEADERS is used.
+ AC_CHECK_HEADERS_ONCE([stdarg.h])
+])# HW_HEADER_STDARG_H
+
+# HW_HEADER_VARARGS_H
+# -------------------
+# Define HAVE_VARARGS_H to 1 if <varargs.h> is available.
+AC_DEFUN([HW_HEADER_VARARGS_H],
+[
+ AC_PREREQ([2.60])dnl Older releases should work if AC_CHECK_HEADERS is used.
+ AC_CHECK_HEADERS_ONCE([varargs.h])
+])# HW_HEADER_VARARGS_H
+
+# HW_FUNC_VA_COPY
+# ---------------
+# Set $hw_cv_func_va_copy to "yes" or "no". Define HAVE_VA_COPY to 1 if
+# $hw_cv_func_va_copy is set to "yes". Note that it's "unspecified whether
+# va_copy and va_end are macros or identifiers declared with external linkage."
+# (C99: 7.15.1, 1) Therefore, the presence of va_copy(3) cannot simply "be
+# tested with #ifdef", as suggested by the Autoconf manual (5.5.1).
+AC_DEFUN([HW_FUNC_VA_COPY],
+[
+ AC_REQUIRE([HW_HEADER_STDARG_H])dnl Our check evaluates HAVE_STDARG_H.
+ AC_REQUIRE([HW_HEADER_VARARGS_H])dnl Our check evaluates HAVE_VARARGS_H.
+ AC_CACHE_CHECK([for va_copy],
+ [hw_cv_func_va_copy],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#if HAVE_STDARG_H
+ #include <stdarg.h>
+ #elif HAVE_VARARGS_H
+ #include <varargs.h>
+ #endif]],
+ [[va_list ap, aq; va_copy(aq, ap);]])],
+ [hw_cv_func_va_copy=yes],
+ [hw_cv_func_va_copy=no],
+ [hw_cv_func_va_copy=no])])
+ AS_IF([test "$hw_cv_func_va_copy" = yes],
+ [AC_DEFINE([HAVE_VA_COPY], [1],
+ [Define to 1 if you have the `va_copy' function or macro.])])
+])# HW_FUNC_VA_COPY
+
+# HW_FUNC___VA_COPY
+# -----------------
+# Set $hw_cv_func___va_copy to "yes" or "no". Define HAVE___VA_COPY to 1 if
+# $hw_cv_func___va_copy is set to "yes".
+AC_DEFUN([HW_FUNC___VA_COPY],
+[
+ AC_REQUIRE([HW_HEADER_STDARG_H])dnl Our check evaluates HAVE_STDARG_H.
+ AC_REQUIRE([HW_HEADER_VARARGS_H])dnl Our check evaluates HAVE_VARARGS_H.
+ AC_CACHE_CHECK([for __va_copy],
+ [hw_cv_func___va_copy],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#if HAVE_STDARG_H
+ #include <stdarg.h>
+ #elif HAVE_VARARGS_H
+ #include <varargs.h>
+ #endif]],
+ [[va_list ap, aq; __va_copy(aq, ap);]])],
+ [hw_cv_func___va_copy=yes],
+ [hw_cv_func___va_copy=no],
+ [hw_cv_func___va_copy=no])])
+ AS_IF([test "$hw_cv_func___va_copy" = yes],
+ [AC_DEFINE([HAVE___VA_COPY], [1],
+ [Define to 1 if you have the `__va_copy' function or macro.])])
+])# HW_FUNC___VA_COPY
+
+# HW_FUNC_VSNPRINTF
+# -----------------
+# Set $hw_cv_func_vsnprintf and $hw_cv_func_vsnprintf_c99 to "yes" or "no",
+# respectively. Define HAVE_VSNPRINTF to 1 only if $hw_cv_func_vsnprintf_c99
+# is set to "yes". Otherwise, define vsnprintf to rpl_vsnprintf and make sure
+# the replacement function will be built.
+AC_DEFUN([HW_FUNC_VSNPRINTF],
+[
+ AC_PREREQ([2.60])dnl 2.59 should work if some AC_TYPE_* macros are replaced.
+ AC_REQUIRE([HW_HEADER_STDARG_H])dnl Our check evaluates HAVE_STDARG_H.
+ AC_CHECK_FUNC([vsnprintf],
+ [hw_cv_func_vsnprintf=yes],
+ [hw_cv_func_vsnprintf=no])
+ AS_IF([test "$hw_cv_func_vsnprintf" = yes],
+ [AC_CACHE_CHECK([whether vsnprintf is C99 compliant],
+ [hw_cv_func_vsnprintf_c99],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#if HAVE_STDARG_H
+ #include <stdarg.h>
+ #endif
+ #include <stdio.h>
+ static int testprintf(char *buf, size_t size, const char *format, ...)
+ {
+ int result;
+ va_list ap;
+ va_start(ap, format);
+ result = vsnprintf(buf, size, format, ap);
+ va_end(ap);
+ return result;
+ }]],
+ [[char buf[43];
+ if (testprintf(buf, 4, "The answer is %27.2g.", 42.0) != 42 ||
+ testprintf(buf, 0, "No, it's %32zu.", (size_t)42) != 42 ||
+ buf[0] != 'T' || buf[3] != '\0')
+ return 1;]])],
+ [hw_cv_func_vsnprintf_c99=yes],
+ [hw_cv_func_vsnprintf_c99=no],
+ [hw_cv_func_vsnprintf_c99=no])])],
+ [hw_cv_func_snprintf_c99=no])
+ AS_IF([test "$hw_cv_func_vsnprintf_c99" = yes],
+ [AC_DEFINE([HAVE_VSNPRINTF], [1],
+ [Define to 1 if you have a C99 compliant `vsnprintf' function.])],
+ [AC_DEFINE([vsnprintf], [rpl_vsnprintf],
+ [Define to rpl_vsnprintf if the replacement function should be used.])
+ AC_CHECK_HEADERS([inttypes.h locale.h stddef.h stdint.h])
+ AC_CHECK_MEMBERS([struct lconv.decimal_point, struct lconv.thousands_sep],
+ [], [], [#include <locale.h>])
+ AC_TYPE_LONG_DOUBLE
+ AC_TYPE_LONG_LONG_INT
+ AC_TYPE_UNSIGNED_LONG_LONG_INT
+ AC_TYPE_SIZE_T
+ AC_TYPE_INTMAX_T
+ AC_TYPE_UINTMAX_T
+ AC_TYPE_UINTPTR_T
+ AC_CHECK_TYPES([ptrdiff_t])
+ AC_CHECK_FUNCS([localeconv])
+ _HW_FUNC_XPRINTF_REPLACE])
+])# HW_FUNC_VSNPRINTF
+
+# HW_FUNC_SNPRINTF
+# ----------------
+# Set $hw_cv_func_snprintf and $hw_cv_func_snprintf_c99 to "yes" or "no",
+# respectively. Define HAVE_SNPRINTF to 1 only if $hw_cv_func_snprintf_c99
+# is set to "yes". Otherwise, define snprintf to rpl_snprintf and make sure
+# the replacement function will be built.
+AC_DEFUN([HW_FUNC_SNPRINTF],
+[
+ AC_REQUIRE([HW_FUNC_VSNPRINTF])dnl Our snprintf(3) calls vsnprintf(3).
+ AC_CHECK_FUNC([snprintf],
+ [hw_cv_func_snprintf=yes],
+ [hw_cv_func_snprintf=no])
+ AS_IF([test "$hw_cv_func_snprintf" = yes],
+ [AC_CACHE_CHECK([whether snprintf is C99 compliant],
+ [hw_cv_func_snprintf_c99],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[#include <stdio.h>]],
+ [[char buf[43];
+ if (snprintf(buf, 4, "The answer is %27.2g.", 42.0) != 42 ||
+ snprintf(buf, 0, "No, it's %32zu.", (size_t)42) != 42 ||
+ buf[0] != 'T' || buf[3] != '\0')
+ return 1;]])],
+ [hw_cv_func_snprintf_c99=yes],
+ [hw_cv_func_snprintf_c99=no],
+ [hw_cv_func_snprintf_c99=no])])],
+ [hw_cv_func_snprintf_c99=no])
+ AS_IF([test "$hw_cv_func_snprintf_c99" = yes],
+ [AC_DEFINE([HAVE_SNPRINTF], [1],
+ [Define to 1 if you have a C99 compliant `snprintf' function.])],
+ [AC_DEFINE([snprintf], [rpl_snprintf],
+ [Define to rpl_snprintf if the replacement function should be used.])
+ _HW_FUNC_XPRINTF_REPLACE])
+])# HW_FUNC_SNPRINTF
+
+# HW_FUNC_VASPRINTF
+# -----------------
+# Set $hw_cv_func_vasprintf to "yes" or "no". Define HAVE_VASPRINTF to 1 if
+# $hw_cv_func_vasprintf is set to "yes". Otherwise, define vasprintf to
+# rpl_vasprintf and make sure the replacement function will be built.
+AC_DEFUN([HW_FUNC_VASPRINTF],
+[
+ AC_REQUIRE([HW_FUNC_VSNPRINTF])dnl Our vasprintf(3) calls vsnprintf(3).
+ AC_CHECK_FUNCS([vasprintf],
+ [hw_cv_func_vasprintf=yes],
+ [hw_cv_func_vasprintf=no])
+ AS_IF([test "$hw_cv_func_vasprintf" = no],
+ [AC_DEFINE([vasprintf], [rpl_vasprintf],
+ [Define to rpl_vasprintf if the replacement function should be used.])
+ AC_CHECK_HEADERS([stdlib.h])
+ HW_FUNC_VA_COPY
+ AS_IF([test "$hw_cv_func_va_copy" = no],
+ [HW_FUNC___VA_COPY])
+ _HW_FUNC_XPRINTF_REPLACE])
+])# HW_FUNC_VASPRINTF
+
+# HW_FUNC_ASPRINTF
+# ----------------
+# Set $hw_cv_func_asprintf to "yes" or "no". Define HAVE_ASPRINTF to 1 if
+# $hw_cv_func_asprintf is set to "yes". Otherwise, define asprintf to
+# rpl_asprintf and make sure the replacement function will be built.
+AC_DEFUN([HW_FUNC_ASPRINTF],
+[
+ AC_REQUIRE([HW_FUNC_VASPRINTF])dnl Our asprintf(3) calls vasprintf(3).
+ AC_CHECK_FUNCS([asprintf],
+ [hw_cv_func_asprintf=yes],
+ [hw_cv_func_asprintf=no])
+ AS_IF([test "$hw_cv_func_asprintf" = no],
+ [AC_DEFINE([asprintf], [rpl_asprintf],
+ [Define to rpl_asprintf if the replacement function should be used.])
+ _HW_FUNC_XPRINTF_REPLACE])
+])# HW_FUNC_ASPRINTF
+
+# _HW_FUNC_XPRINTF_REPLACE
+# ------------------------
+# Arrange for building snprintf.c. Must be called if one or more of the
+# functions provided by snprintf.c are needed.
+AC_DEFUN([_HW_FUNC_XPRINTF_REPLACE],
+[
+ AS_IF([test "x$_hw_cv_func_xprintf_replace_done" != xyes],
+ [AC_C_CONST
+ HW_HEADER_STDARG_H
+ AC_LIBOBJ([snprintf])
+ _hw_cv_func_xprintf_replace_done=yes])
+])# _HW_FUNC_XPRINTF_REPLACE
+
+dnl vim: set joinspaces textwidth=80:
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..c4bc224
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,1135 @@
+# generated automatically by aclocal 1.11.3 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 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_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
+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'.])])
+
+# longlong.m4 serial 14
+dnl Copyright (C) 1999-2007, 2009-2010 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_LONG_LONG_INT if 'long long int' works.
+# This fixes a bug in Autoconf 2.61, but can be removed once we
+# assume 2.62 everywhere.
+
+# Note: If the type 'long long int' exists but is only 32 bits large
+# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
+# defined. In this case you can treat 'long long int' like 'long int'.
+
+AC_DEFUN([AC_TYPE_LONG_LONG_INT],
+[
+ AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
+ [AC_LINK_IFELSE(
+ [_AC_TYPE_LONG_LONG_SNIPPET],
+ [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
+ dnl If cross compiling, assume the bug isn't important, since
+ dnl nobody cross compiles for this platform as far as we know.
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[@%:@include <limits.h>
+ @%:@ifndef LLONG_MAX
+ @%:@ define HALF \
+ (1LL << (sizeof (long long int) * CHAR_BIT - 2))
+ @%:@ define LLONG_MAX (HALF - 1 + HALF)
+ @%:@endif]],
+ [[long long int n = 1;
+ int i;
+ for (i = 0; ; i++)
+ {
+ long long int m = n << i;
+ if (m >> i != n)
+ return 1;
+ if (LLONG_MAX / 2 < m)
+ break;
+ }
+ return 0;]])],
+ [ac_cv_type_long_long_int=yes],
+ [ac_cv_type_long_long_int=no],
+ [ac_cv_type_long_long_int=yes])],
+ [ac_cv_type_long_long_int=no])])
+ if test $ac_cv_type_long_long_int = yes; then
+ AC_DEFINE([HAVE_LONG_LONG_INT], [1],
+ [Define to 1 if the system has the type `long long int'.])
+ fi
+])
+
+# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
+# This fixes a bug in Autoconf 2.61, but can be removed once we
+# assume 2.62 everywhere.
+
+# Note: If the type 'unsigned long long int' exists but is only 32 bits
+# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
+# will not be defined. In this case you can treat 'unsigned long long int'
+# like 'unsigned long int'.
+
+AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
+[
+ AC_CACHE_CHECK([for unsigned long long int],
+ [ac_cv_type_unsigned_long_long_int],
+ [AC_LINK_IFELSE(
+ [_AC_TYPE_LONG_LONG_SNIPPET],
+ [ac_cv_type_unsigned_long_long_int=yes],
+ [ac_cv_type_unsigned_long_long_int=no])])
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+ AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
+ [Define to 1 if the system has the type `unsigned long long int'.])
+ fi
+])
+
+# Expands to a C program that can be used to test for simultaneous support
+# of 'long long' and 'unsigned long long'. We don't want to say that
+# 'long long' is available if 'unsigned long long' is not, or vice versa,
+# because too many programs rely on the symmetry between signed and unsigned
+# integer types (excluding 'bool').
+AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
+[
+ AC_LANG_PROGRAM(
+ [[/* For now, do not test the preprocessor; as of 2007 there are too many
+ implementations with broken preprocessors. Perhaps this can
+ be revisited in 2012. In the meantime, code should not expect
+ #if to work with literals wider than 32 bits. */
+ /* Test literals. */
+ long long int ll = 9223372036854775807ll;
+ long long int nll = -9223372036854775807LL;
+ unsigned long long int ull = 18446744073709551615ULL;
+ /* Test constant expressions. */
+ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+ ? 1 : -1)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ ? 1 : -1)];
+ int i = 63;]],
+ [[/* Test availability of runtime routines for shift and division. */
+ long long int llmax = 9223372036854775807ll;
+ unsigned long long int ullmax = 18446744073709551615ull;
+ return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+ | (llmax / ll) | (llmax % ll)
+ | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+ | (ullmax / ull) | (ullmax % ull));]])
+])
+
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 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.
+
+# serial 1
+
+# 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.11'
+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.11.3], [],
+ [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.11.3])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, 2003, 2005, 2011 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.
+
+# serial 1
+
+# 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],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
+# 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.
+
+# serial 9
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$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, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
+# 2010, 2011 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.
+
+# serial 12
+
+# 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", "GCJ", or "OBJC".
+# 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
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" 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 8's {/usr,}/bin/sh.
+ touch 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,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+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, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# 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.
+
+#serial 5
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Autoconf 2.62 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"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //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' -e 's/\$U/'"$U"'/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, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2008, 2009 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.
+
+# serial 16
+
+# 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.
+
+# 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.62])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],
+[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], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [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([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. 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)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES(OBJC)],
+ [define([AC_PROG_OBJC],
+ defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro
+dnl 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
+])
+
+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, 2003, 2005, 2008, 2011 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.
+
+# serial 1
+
+# 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}" != 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, 2005 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.
+
+# serial 2
+
+# 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])])
+
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005
+# 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.
+
+# serial 5
+
+# AM_PROG_LEX
+# -----------
+# Autoconf leaves LEX=: if lex or flex can't be found. Change that to a
+# "missing" invocation, for better error output.
+AC_DEFUN([AM_PROG_LEX],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AM_MISSING_HAS_RUN])dnl
+AC_REQUIRE([AC_PROG_LEX])dnl
+if test "$LEX" = :; then
+ LEX=${am_missing_run}flex
+fi])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2009 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.
+
+# serial 4
+
+# 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
+])
+
+# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# 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.
+
+# serial 6
+
+# AM_PROG_CC_C_O
+# --------------
+# Like AC_PROG_CC_C_O, but changed for automake.
+AC_DEFUN([AM_PROG_CC_C_O],
+[AC_REQUIRE([AC_PROG_CC_C_O])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != 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
+dnl Make sure AC_PROG_CC is never called again, or it will override our
+dnl setting of CC.
+m4_define([AC_PROG_CC],
+ [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
+# 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.
+
+# serial 6
+
+# 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 supports --run.
+# If it does, 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 --run true"; then
+ am_missing_run="$MISSING --run "
+else
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006, 2011 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.
+
+# serial 1
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 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.
+
+# serial 5
+
+# _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])])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
+# 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.
+
+# serial 5
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# 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 (
+ 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
+ rm -f conftest.file
+ 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
+
+ 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)])
+
+# Copyright (C) 2001, 2003, 2005, 2011 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.
+
+# serial 1
+
+# 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, 2008, 2010 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.
+
+# serial 3
+
+# _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, 2005, 2012 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.
+
+# serial 2
+
+# _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}'])
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+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])
+ 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
+
+m4_include([acinclude.m4])
diff --git a/compile b/compile
new file mode 100755
index 0000000..b1f4749
--- /dev/null
+++ b/compile
@@ -0,0 +1,310 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-01-04.17; # UTC
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
+# Software Foundation, Inc.
+# Written by Tom Tromey <tromey@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@gnu.org> or send patches to
+# <automake-patches@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_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*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l*)
+ lib=${1#-l}
+ 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
+ set x "$@" "$dir/$lib.dll.lib"
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ set x "$@" "$dir/$lib.lib"
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ test "$found" != yes && set x "$@" "$lib.lib"
+ shift
+ ;;
+ -L*)
+ func_file_conv "${1#-L}"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+ ;;
+ -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@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..49ba16f
--- /dev/null
+++ b/config.guess
@@ -0,0 +1,1522 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+# 2011, 2012 Free Software Foundation, Inc.
+
+timestamp='2012-01-01'
+
+# 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 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# 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 Per Bothner. Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# 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
+
+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@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+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@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
+
+# 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 ;;
+ *: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@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/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ 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 ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+ i*: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-gnu`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/[-(].*//'`-gnu
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ 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="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${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-gnu
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ cris:Linux:*:*)
+ echo ${UNAME_MACHINE}-axis-linux-gnu
+ exit ;;
+ crisv32:Linux:*:*)
+ echo ${UNAME_MACHINE}-axis-linux-gnu
+ exit ;;
+ frv:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ hexagon:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ i*86:Linux:*:*)
+ LIBC=gnu
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 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-gnu"; exit; }
+ ;;
+ or32:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-gnu
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ 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-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-gnu
+ exit ;;
+ x86_64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 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@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green@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 ;;
+ 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
+ case $UNAME_PROCESSOR in
+ i386)
+ eval $set_cc_for_build
+ 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
+ UNAME_PROCESSOR="x86_64"
+ fi
+ fi ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ 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 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ c34*)
+ echo c34-convex-bsd
+ exit ;;
+ c38*)
+ echo c38-convex-bsd
+ exit ;;
+ c4*)
+ echo c4-convex-bsd
+ exit ;;
+ esac
+fi
+
+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@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.h.in b/config.h.in
new file mode 100644
index 0000000..2219be7
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,267 @@
+/* config.h.in. Generated from configure.in by autoheader. */
+
+/* We're using a BSD-flavoured Unix */
+#undef BSD
+
+/* Found some version of curses that we're going to use */
+#undef HAS_CURSES
+
+/* Define to 1 if you have the `asprintf' function. */
+#undef HAVE_ASPRINTF
+
+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_DIRENT_H
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define to 1 if you have the `fixkeypad' function. */
+#undef HAVE_FIXKEYPAD
+
+/* Define to 1 if you have the <floss.h> header file. */
+#undef HAVE_FLOSS_H
+
+/* Define to 1 if you have the `getcwd' function. */
+#undef HAVE_GETCWD
+
+/* Define to 1 if you have the `getopt_long' function. */
+#undef HAVE_GETOPT_LONG
+
+/* Define to 1 if the system has the type `intmax_t'. */
+#undef HAVE_INTMAX_T
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <io.h> header file. */
+#undef HAVE_IO_H
+
+/* Define to 1 if you have the `regex' library (-lregex). */
+#undef HAVE_LIBREGEX
+
+/* Define to 1 if you have the `localeconv' function. */
+#undef HAVE_LOCALECONV
+
+/* Define to 1 if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define to 1 if the system has the type `long double'. */
+#undef HAVE_LONG_DOUBLE
+
+/* Define to 1 if the system has the type `long long int'. */
+#undef HAVE_LONG_LONG_INT
+
+/* Define to 1 if you have the `lstat' function. */
+#undef HAVE_LSTAT
+
+/* Define to 1 if you have the `memcpy' function. */
+#undef HAVE_MEMCPY
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `memset' function. */
+#undef HAVE_MEMSET
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
+/* Define to 1 if the system has the type `ptrdiff_t'. */
+#undef HAVE_PTRDIFF_T
+
+/* Define to 1 if you have the `regcmp' function. */
+#undef HAVE_REGCMP
+
+/* Define to 1 if you have the `regcomp' function. */
+#undef HAVE_REGCOMP
+
+/* Define to 1 if you have the `setmode' function. */
+#undef HAVE_SETMODE
+
+/* Define to 1 if you have the <signal.h> header file. */
+#undef HAVE_SIGNAL_H
+
+/* Define if we have sigsetjmp(). */
+#undef HAVE_SIGSETJMP
+
+/* Define to 1 if you have a C99 compliant `snprintf' function. */
+#undef HAVE_SNPRINTF
+
+/* Define to 1 if you have the <stdarg.h> header file. */
+#undef HAVE_STDARG_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 `strchr' function. */
+#undef HAVE_STRCHR
+
+/* Define to 1 if you have the `strerror' function. */
+#undef HAVE_STRERROR
+
+/* 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 `decimal_point' is a member of `struct lconv'. */
+#undef HAVE_STRUCT_LCONV_DECIMAL_POINT
+
+/* Define to 1 if `thousands_sep' is a member of `struct lconv'. */
+#undef HAVE_STRUCT_LCONV_THOUSANDS_SEP
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_NDIR_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/termios.h> header file. */
+#undef HAVE_SYS_TERMIOS_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 <sys/window.h> header file. */
+#undef HAVE_SYS_WINDOW_H
+
+/* Define to 1 if the system has the type `uintmax_t'. */
+#undef HAVE_UINTMAX_T
+
+/* Define to 1 if the system has the type `uintptr_t'. */
+#undef HAVE_UINTPTR_T
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if the system has the type `unsigned long long int'. */
+#undef HAVE_UNSIGNED_LONG_LONG_INT
+
+/* Define to 1 if you have the <varargs.h> header file. */
+#undef HAVE_VARARGS_H
+
+/* Define to 1 if you have the `vasprintf' function. */
+#undef HAVE_VASPRINTF
+
+/* Define to 1 if you have the `va_copy' function or macro. */
+#undef HAVE_VA_COPY
+
+/* Define to 1 if you have a C99 compliant `vsnprintf' function. */
+#undef HAVE_VSNPRINTF
+
+/* Define to 1 if you have the `_setmode' function. */
+#undef HAVE__SETMODE
+
+/* Define to 1 if you have the `__va_copy' function or macro. */
+#undef HAVE___VA_COPY
+
+/* We're using some variant of Linux */
+#undef Linux
+
+/* Set to reflect version of ncurses: 0 = version 1.* 1 = version 1.9.9g 2 =
+ version 4.0/4.1 */
+#undef NCURSES_970530
+
+/* If your Curses does not have color define this one */
+#undef NO_COLOR_CURSES
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+#undef NO_MINUS_C_MINUS_O
+
+/* Name of package */
+#undef PACKAGE
+
+/* 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 as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
+
+/* Define if you want to turn on SCO-specific code */
+#undef SCO_FLAVOR
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Use Ncurses? */
+#undef USE_NCURSES
+
+/* Use SunOS SysV curses? */
+#undef USE_SUNOS_CURSES
+
+/* Use SystemV curses? */
+#undef USE_SYSV_CURSES
+
+/* Define this if the scanner is run through lex, not flex */
+#undef USING_LEX
+
+/* Version number of package */
+#undef VERSION
+
+/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
+ `char[]'. */
+#undef YYTEXT_POINTER
+
+/* Define to rpl_asprintf if the replacement function should be used. */
+#undef asprintf
+
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to the widest signed integer type if <stdint.h> and <inttypes.h> do
+ not define. */
+#undef intmax_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef mode_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef pid_t
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
+
+/* Define to rpl_snprintf if the replacement function should be used. */
+#undef snprintf
+
+/* Define to the widest unsigned integer type if <stdint.h> and <inttypes.h>
+ do not define. */
+#undef uintmax_t
+
+/* Define to the type of an unsigned integer type wide enough to hold a
+ pointer, if such a type exists, and if the system does not define it. */
+#undef uintptr_t
+
+/* Define to rpl_vasprintf if the replacement function should be used. */
+#undef vasprintf
+
+/* Define to rpl_vsnprintf if the replacement function should be used. */
+#undef vsnprintf
diff --git a/config.sub b/config.sub
new file mode 100755
index 0000000..d6b6b3c
--- /dev/null
+++ b/config.sub
@@ -0,0 +1,1766 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+# 2011, 2012 Free Software Foundation, Inc.
+
+timestamp='2012-01-01'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# 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 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# 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.
+
+
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted GNU ChangeLog entry.
+#
+# 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@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
+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-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/'`
+ ;;
+ *)
+ 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*)
+ 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 \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | be32 | be64 \
+ | bfin \
+ | c4x | 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 \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+ | maxq | mb | microblaze | 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 \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 \
+ | ns16k | ns32k \
+ | open8 \
+ | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
+ | pyramid \
+ | 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 \
+ | 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
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | 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
+ ;;
+
+ 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-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
+ | be32-* | be64-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | 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-* \
+ | le32-* | le64-* \
+ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | 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-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
+ | 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-* \
+ | 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
+ ;;
+ 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
+ ;;
+ mingw32)
+ basic_machine=i386-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
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
+ msys)
+ basic_machine=i386-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)
+ 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* \
+ | -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* \
+ | -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* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -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*)
+ # 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
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
+ -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
+ ;;
+ 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..0d780db
--- /dev/null
+++ b/configure
@@ -0,0 +1,8841 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.68.
+#
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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
+
+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"
+ 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 \$(( 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 :
+ # 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
+ export CONFIG_SHELL
+ 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+"$@"}
+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@gnu.org 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_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; }
+
+ # 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 -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+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
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# 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'"
+
+
+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=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+PACKAGE_URL=
+
+ac_unique_file="src/crossref.c"
+# 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_header_list=
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+GNOME_LINUX_FALSE
+GNOME_LINUX_TRUE
+HAS_GNOME_FALSE
+HAS_GNOME_TRUE
+USING_GNOME2_FALSE
+USING_GNOME2_TRUE
+gnome2
+gnome1
+HAS_CURSES_FALSE
+HAS_CURSES_TRUE
+EGREP
+GREP
+CPP
+CURSES_INCLUDEDIR
+CURSES_LIBS
+YFLAGS
+YACC
+USING_LEX_FALSE
+USING_LEX_TRUE
+LEXLIB
+LEX_OUTPUT_ROOT
+LEX
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+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
+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_dependency_tracking
+with_sco
+with_sunos_curses
+with_osf1_curses
+with_vcurses
+with_ncurses
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+YACC
+YFLAGS
+CPP'
+
+
+# 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}'
+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
+ $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
+ If a cross compiler is detected then cross compile mode will be used" >&2
+ 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 this package 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/PACKAGE]
+ --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]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+ 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]
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-sco Use this to turn on SCO-specific code
+ --with-sunos-curses Used to force SunOS 4.x curses
+ --with-osf1-curses Used to force OSF/1 curses
+ --with-vcurses=incdir Used to force SysV curses
+ --with-ncurses=dir Compile with ncurses/locate base dir
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS 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>
+ YACC The `Yet Another Compiler Compiler' implementation to use.
+ Defaults to the first program found out of: `bison -y', `byacc',
+ `yacc'.
+ YFLAGS The list of arguments that will be passed by default to $YACC.
+ This script will default YFLAGS to the empty string to avoid a
+ default value of `-d' given by some make applications.
+ CPP C preprocessor
+
+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 the package provider.
+_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
+configure
+generated by GNU Autoconf 2.68
+
+Copyright (C) 2010 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_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 ||
+ $as_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_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_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_c_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_c_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_c_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_c_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;}
+ ;;
+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_c_check_header_mongrel
+
+# 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_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_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_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_c_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_c_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_c_check_type
+
+# 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_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ eval "$4=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
+eval ac_res=\$$4
+ { $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_member
+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 $as_me, which was
+generated by GNU Autoconf 2.68. 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
+
+as_fn_append ac_header_list " stdarg.h"
+as_fn_append ac_header_list " varargs.h"
+# 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
+
+
+
+am__api_version='1.11'
+
+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.
+
+
+# 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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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; }
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# 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 (
+ 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
+ rm -f conftest.file
+ 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
+
+ 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; }
+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 --run true"; then
+ am_missing_run="$MISSING --run "
+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}" != 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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; }
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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
+
+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=cscope
+ VERSION=15.8a
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# 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"}
+
+# We need awk for the "check" target. 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}'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+ac_config_headers="$ac_config_headers config.h:config.h.in"
+
+
+# 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
+
+
+
+
+
+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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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
+
+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_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>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* 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
+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="$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 8's {/usr,}/bin/sh.
+ touch 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
+
+
+if test "x$CC" != xcc; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
+$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
+else
+ { $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; }
+fi
+set dummy $CC; ac_cc=`$as_echo "$2" |
+ sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval \${ac_cv_prog_cc_${ac_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.
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+rm -f conftest2.*
+if { { 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; } &&
+ test -f conftest2.$ac_objext && { { 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
+ eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+ if test "x$CC" != xcc; then
+ # Test first that cc exists at all.
+ if { ac_try='cc -c conftest.$ac_ext >&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_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+ rm -f conftest2.*
+ if { { 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; } &&
+ test -f conftest2.$ac_objext && { { 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
+ # cc works too.
+ :
+ else
+ # cc exists but doesn't like -o.
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
+ fi
+ fi
+ fi
+else
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
+fi
+rm -f core conftest*
+
+fi
+if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; 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; }
+
+$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
+
+fi
+
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != 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
+
+
+
+
+for ac_prog in flex lex
+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_LEX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LEX"; then
+ ac_cv_prog_LEX="$LEX" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_LEX="$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
+LEX=$ac_cv_prog_LEX
+if test -n "$LEX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
+$as_echo "$LEX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$LEX" && break
+done
+test -n "$LEX" || LEX=":"
+
+if test "x$LEX" != "x:"; then
+ cat >conftest.l <<_ACEOF
+%%
+a { ECHO; }
+b { REJECT; }
+c { yymore (); }
+d { yyless (1); }
+e { yyless (input () != 0); }
+f { unput (yytext[0]); }
+. { BEGIN INITIAL; }
+%%
+#ifdef YYTEXT_POINTER
+extern char *yytext;
+#endif
+int
+main (void)
+{
+ return ! yylex () + ! yywrap ();
+}
+_ACEOF
+{ { ac_try="$LEX conftest.l"
+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 "$LEX conftest.l") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5
+$as_echo_n "checking lex output file root... " >&6; }
+if ${ac_cv_prog_lex_root+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+if test -f lex.yy.c; then
+ ac_cv_prog_lex_root=lex.yy
+elif test -f lexyy.c; then
+ ac_cv_prog_lex_root=lexyy
+else
+ as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
+$as_echo "$ac_cv_prog_lex_root" >&6; }
+LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
+
+if test -z "${LEXLIB+set}"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5
+$as_echo_n "checking lex library... " >&6; }
+if ${ac_cv_lib_lex+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ac_save_LIBS=$LIBS
+ ac_cv_lib_lex='none needed'
+ for ac_lib in '' -lfl -ll; do
+ LIBS="$ac_lib $ac_save_LIBS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+`cat $LEX_OUTPUT_ROOT.c`
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_lex=$ac_lib
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ test "$ac_cv_lib_lex" != 'none needed' && break
+ done
+ LIBS=$ac_save_LIBS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
+$as_echo "$ac_cv_lib_lex" >&6; }
+ test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
+$as_echo_n "checking whether yytext is a pointer... " >&6; }
+if ${ac_cv_prog_lex_yytext_pointer+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # POSIX says lex can declare yytext either as a pointer or an array; the
+# default is implementation-dependent. Figure out which it is, since
+# not all implementations provide the %pointer and %array declarations.
+ac_cv_prog_lex_yytext_pointer=no
+ac_save_LIBS=$LIBS
+LIBS="$LEXLIB $ac_save_LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #define YYTEXT_POINTER 1
+`cat $LEX_OUTPUT_ROOT.c`
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_prog_lex_yytext_pointer=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_save_LIBS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
+$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; }
+if test $ac_cv_prog_lex_yytext_pointer = yes; then
+
+$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h
+
+fi
+rm -f conftest.l $LEX_OUTPUT_ROOT.c
+
+fi
+if test "$LEX" = :; then
+ LEX=${am_missing_run}flex
+fi
+ if test "x$LEX" = "xlex"; then
+ USING_LEX_TRUE=
+ USING_LEX_FALSE='#'
+else
+ USING_LEX_TRUE='#'
+ USING_LEX_FALSE=
+fi
+
+if test "x$LEX" = "xlex" ; then
+$as_echo "#define USING_LEX 1" >>confdefs.h
+
+fi
+for ac_prog in 'bison -y' byacc
+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_YACC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$YACC"; then
+ ac_cv_prog_YACC="$YACC" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_YACC="$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
+YACC=$ac_cv_prog_YACC
+if test -n "$YACC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
+$as_echo "$YACC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$YACC" && break
+done
+test -n "$YACC" || YACC="yacc"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+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 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"
+ { test -f "$ac_path_GREP" && $as_test_x "$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"
+ { test -f "$ac_path_EGREP" && $as_test_x "$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"
+
+
+
+ search_ncurses=true
+ screen_manager=""
+ has_curses=false
+
+ CFLAGS=${CFLAGS--O}
+
+
+
+
+
+# Check whether --with-sco was given.
+if test "${with_sco+set}" = set; then :
+ withval=$with_sco;
+ if test x$withval = xyes; then
+
+$as_echo "#define SCO_FLAVOR 1" >>confdefs.h
+
+ CFLAGS="$CFLAGS -D_SVID3"
+ fi
+
+fi
+
+
+
+# Check whether --with-sunos-curses was given.
+if test "${with_sunos_curses+set}" = set; then :
+ withval=$with_sunos_curses;
+ if test x$withval = xyes; then
+
+ search_ncurses=false
+ screen_manager="SunOS 4.x /usr/5include curses"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using SunOS 4.x /usr/5include curses" >&5
+$as_echo "Using SunOS 4.x /usr/5include curses" >&6; }
+
+$as_echo "#define USE_SUNOS_CURSES 1" >>confdefs.h
+
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+
+$as_echo "#define NO_COLOR_CURSES 1" >>confdefs.h
+
+
+$as_echo "#define USE_SYSV_CURSES 1" >>confdefs.h
+
+ CURSES_INCLUDEDIR="-I/usr/5include"
+ CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Please note that some screen refreshs may fail" >&5
+$as_echo "Please note that some screen refreshs may fail" >&6; }
+
+ fi
+
+fi
+
+
+
+# Check whether --with-osf1-curses was given.
+if test "${with_osf1_curses+set}" = set; then :
+ withval=$with_osf1_curses;
+ if test x$withval = xyes; then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using OSF1 curses" >&5
+$as_echo "Using OSF1 curses" >&6; }
+ search_ncurses=false
+ screen_manager="OSF1 curses"
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+ $as_echo "#define NO_COLOR_CURSES 1" >>confdefs.h
+
+ $as_echo "#define USE_SYSV_CURSES 1" >>confdefs.h
+
+ CURSES_LIBS="-lcurses"
+
+ fi
+
+fi
+
+
+
+# Check whether --with-vcurses was given.
+if test "${with_vcurses+set}" = set; then :
+ withval=$with_vcurses; if test x$withval != xyes; then
+ CURSES_INCLUDEDIR="-I$withval"
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using SysV curses" >&5
+$as_echo "Using SysV curses" >&6; }
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+ $as_echo "#define USE_SYSV_CURSES 1" >>confdefs.h
+
+ search_ncurses=false
+ screen_manager="SysV/curses"
+ CURSES_LIBS="-lcurses"
+
+
+fi
+
+
+
+# Check whether --with-ncurses was given.
+if test "${with_ncurses+set}" = set; then :
+ withval=$with_ncurses; if test x$withval = xno ; then
+ search_ncurses=false
+ elif test x$withval != xyes ; then
+ CURSES_LIBS="$LIBS -L$withval/lib -lncurses"
+ CURSES_INCLUDEDIR="-I$withval/include"
+ search_ncurses=false
+ screen_manager="ncurses"
+
+$as_echo "#define USE_NCURSES 1" >>confdefs.h
+
+
+$as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+ fi
+
+fi
+
+
+ if $search_ncurses
+ then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"location of ncurses.h file\"..." >&5
+$as_echo "$as_me: checking \"location of ncurses.h file\"..." >&6;}
+
+
+ if $search_ncurses
+ then
+ if test -f /usr/include/ncurses.h
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Found ncurses on /usr/include/ncurses.h" >&5
+$as_echo "Found ncurses on /usr/include/ncurses.h" >&6; }
+ CURSES_LIBS="-lncurses"
+ CURSES_INCLUDEDIR=""
+ search_ncurses=false
+ screen_manager="ncurses on /usr/include"
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+ $as_echo "#define USE_NCURSES 1" >>confdefs.h
+
+ fi
+ fi
+
+
+ if $search_ncurses
+ then
+ if test -f /usr/include/ncurses/ncurses.h
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Found ncurses on /usr/include/ncurses/ncurses.h" >&5
+$as_echo "Found ncurses on /usr/include/ncurses/ncurses.h" >&6; }
+ CURSES_LIBS="-lncurses"
+ CURSES_INCLUDEDIR="-I/usr/include/ncurses"
+ search_ncurses=false
+ screen_manager="ncurses on /usr/include/ncurses"
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+ $as_echo "#define USE_NCURSES 1" >>confdefs.h
+
+ fi
+ fi
+
+
+ if $search_ncurses
+ then
+ if test -f /usr/local/include/ncurses.h
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Found ncurses on /usr/local/include/ncurses.h" >&5
+$as_echo "Found ncurses on /usr/local/include/ncurses.h" >&6; }
+ CURSES_LIBS="-L/usr/local/lib -lncurses"
+ CURSES_INCLUDEDIR="-I/usr/local/include"
+ search_ncurses=false
+ screen_manager="ncurses on /usr/local"
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+ $as_echo "#define USE_NCURSES 1" >>confdefs.h
+
+ fi
+ fi
+
+
+ if $search_ncurses
+ then
+ if test -f /usr/local/include/ncurses/ncurses.h
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Found ncurses on /usr/local/include/ncurses/ncurses.h" >&5
+$as_echo "Found ncurses on /usr/local/include/ncurses/ncurses.h" >&6; }
+ CURSES_LIBS="-L/usr/local/lib -L/usr/local/lib/ncurses -lncurses"
+ CURSES_INCLUDEDIR="-I/usr/local/include/ncurses"
+ search_ncurses=false
+ screen_manager="ncurses on /usr/local/include/ncurses"
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+ $as_echo "#define USE_NCURSES 1" >>confdefs.h
+
+ fi
+ fi
+
+
+
+ if $search_ncurses
+ then
+ if test -f /usr/local/include/ncurses/curses.h
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Found ncurses on /usr/local/include/ncurses/curses.h" >&5
+$as_echo "Found ncurses on /usr/local/include/ncurses/curses.h" >&6; }
+ CURSES_LIBS="-L/usr/local/lib -lncurses"
+ CURSES_INCLUDEDIR="-I/usr/local/include/ncurses -DRENAMED_NCURSES"
+ search_ncurses=false
+ screen_manager="renamed ncurses on /usr/local/.../ncurses"
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+ $as_echo "#define USE_NCURSES 1" >>confdefs.h
+
+ fi
+ fi
+
+
+
+ if $search_ncurses
+ then
+ if test -f /usr/include/ncurses/curses.h
+ then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Found ncurses on /usr/include/ncurses/curses.h" >&5
+$as_echo "Found ncurses on /usr/include/ncurses/curses.h" >&6; }
+ CURSES_LIBS="-lncurses"
+ CURSES_INCLUDEDIR="-I/usr/include/ncurses -DRENAMED_NCURSES"
+ search_ncurses=false
+ screen_manager="renamed ncurses on /usr/include/ncurses"
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+ $as_echo "#define USE_NCURSES 1" >>confdefs.h
+
+ fi
+ fi
+
+
+ if $search_ncurses
+ then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <curses.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "init_color" >/dev/null 2>&1; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using SysV curses" >&5
+$as_echo "Using SysV curses" >&6; }
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+ $as_echo "#define USE_SYSV_CURSES 1" >>confdefs.h
+
+ search_ncurses=false
+ screen_manager="SysV/curses"
+ CURSES_LIBS="-lcurses"
+
+fi
+rm -f conftest*
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <curses.h>
+#ifdef __NCURSES_H
+#undef USE_NCURSES
+USE_NCURSES
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "USE_NCURSES" >/dev/null 2>&1; then :
+
+ CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES"
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+ $as_echo "#define USE_NCURSES 1" >>confdefs.h
+
+ search_ncurses=false
+ screen_manager="ncurses installed as curses"
+
+fi
+rm -f conftest*
+
+ fi
+
+ if $search_ncurses
+ then
+ if test -f /usr/5include/curses.h
+ then
+
+ search_ncurses=false
+ screen_manager="SunOS 4.x /usr/5include curses"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using SunOS 4.x /usr/5include curses" >&5
+$as_echo "Using SunOS 4.x /usr/5include curses" >&6; }
+
+$as_echo "#define USE_SUNOS_CURSES 1" >>confdefs.h
+
+ $as_echo "#define HAS_CURSES 1" >>confdefs.h
+
+ has_curses=true
+
+$as_echo "#define NO_COLOR_CURSES 1" >>confdefs.h
+
+
+$as_echo "#define USE_SYSV_CURSES 1" >>confdefs.h
+
+ CURSES_INCLUDEDIR="-I/usr/5include"
+ CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: Please note that some screen refreshs may fail" >&5
+$as_echo "Please note that some screen refreshs may fail" >&6; }
+
+ fi
+ else
+ # check for ncurses version, to properly ifdef mouse-fix
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ncurses version" >&5
+$as_echo_n "checking for ncurses version... " >&6; }
+ ncurses_version=unknown
+cat > conftest.$ac_ext <<EOF
+#line 4801 "configure"
+#include "confdefs.h"
+#ifdef RENAMED_NCURSES
+#include <curses.h>
+#else
+#include <ncurses.h>
+#endif
+#undef VERSION
+VERSION:NCURSES_VERSION
+EOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ egrep "VERSION:" >conftest.out 2>&1; then
+ ncurses_version=`cat conftest.out|sed -e 's/^[^"]*"//' -e 's/".*//'`
+ fi
+ rm -rf conftest*
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ncurses_version" >&5
+$as_echo "$ncurses_version" >&6; }
+ case "$ncurses_version" in
+ 4.[01])
+
+$as_echo "#define NCURSES_970530 2" >>confdefs.h
+
+ ;;
+ 1.9.9g)
+ $as_echo "#define NCURSES_970530 1" >>confdefs.h
+
+ ;;
+ 1*)
+ $as_echo "#define NCURSES_970530 0" >>confdefs.h
+
+ ;;
+ esac
+ fi
+
+ fi
+
+
+
+ if test "$has_curses" = true; then
+ HAS_CURSES_TRUE=
+ HAS_CURSES_FALSE='#'
+else
+ HAS_CURSES_TRUE='#'
+ HAS_CURSES_FALSE=
+fi
+
+
+
+{ $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
+
+
+ac_fn_c_check_header_mongrel "$LINENO" "regex.h" "ac_cv_header_regex_h" "$ac_includes_default"
+if test "x$ac_cv_header_regex_h" = xyes; then :
+
+else
+
+ as_fn_error $? "necessary header <regex.h> not found" "$LINENO" 5
+
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for regcomp in -lregex" >&5
+$as_echo_n "checking for regcomp in -lregex... " >&6; }
+if ${ac_cv_lib_regex_regcomp+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lregex $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 regcomp ();
+int
+main ()
+{
+return regcomp ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_regex_regcomp=yes
+else
+ ac_cv_lib_regex_regcomp=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_regex_regcomp" >&5
+$as_echo "$ac_cv_lib_regex_regcomp" >&6; }
+if test "x$ac_cv_lib_regex_regcomp" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBREGEX 1
+_ACEOF
+
+ LIBS="-lregex $LIBS"
+
+fi
+
+
+
+
+
+
+ has_gnome=false
+ # Extract the first word of "gnome-config", so it can be a program name with args.
+set dummy gnome-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_prog_gnome1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$gnome1"; then
+ ac_cv_prog_gnome1="$gnome1" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_gnome1="true"
+ $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
+gnome1=$ac_cv_prog_gnome1
+if test -n "$gnome1"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gnome1" >&5
+$as_echo "$gnome1" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+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_prog_gnome2+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$gnome2"; then
+ ac_cv_prog_gnome2="$gnome2" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_gnome2="true"
+ $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
+gnome2=$ac_cv_prog_gnome2
+if test -n "$gnome2"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gnome2" >&5
+$as_echo "$gnome2" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+ if test x$gnome1 = xtrue; then
+ has_gnome=true
+ fi
+
+ if test x$gnome2 = xtrue; then
+ has_gnome=true
+ fi
+
+ if pkg-config --exists gtk+-2.0; then
+ USING_GNOME2_TRUE=
+ USING_GNOME2_FALSE='#'
+else
+ USING_GNOME2_TRUE='#'
+ USING_GNOME2_FALSE=
+fi
+
+ if test "$has_gnome" = true; then
+ HAS_GNOME_TRUE=
+ HAS_GNOME_FALSE='#'
+else
+ HAS_GNOME_TRUE='#'
+ HAS_GNOME_FALSE=
+fi
+
+ if test "$host_os" = Linux; then
+ GNOME_LINUX_TRUE=
+ GNOME_LINUX_FALSE='#'
+else
+ GNOME_LINUX_TRUE='#'
+ GNOME_LINUX_FALSE=
+fi
+
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$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 opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$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 opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
+$as_echo "$ac_cv_search_opendir" >&6; }
+ac_res=$ac_cv_search_opendir
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+fi
+
+{ $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
+
+for ac_header in fcntl.h sys/window.h sys/termios.h unistd.h signal.h floss.h io.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_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
+
+
+{ $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 ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset cs;
+ /* 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. */
+ char *t;
+ 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 saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; 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_c_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_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
+if test "x$ac_cv_type_mode_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define mode_t int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
+if test "x$ac_cv_type_pid_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define pid_t int
+_ACEOF
+
+fi
+
+ac_fn_c_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
+
+ac_fn_c_check_type "$LINENO" "sighandler_t" "ac_cv_type_sighandler_t" "
+#ifdef HAVE_SIGNAL_H
+# include <signal.h>
+#endif
+"
+if test "x$ac_cv_type_sighandler_t" = xyes; then :
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sigsetjmp" >&5
+$as_echo_n "checking for sigsetjmp... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <setjmp.h>
+int
+main ()
+{
+jmp_buf env; sigsetjmp(env, 1);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
+$as_echo "#define HAVE_SIGSETJMP 1" >>confdefs.h
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
+$as_echo_n "checking return type of signal handlers... " >&6; }
+if ${ac_cv_type_signal+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <signal.h>
+
+int
+main ()
+{
+return *(signal (0, 0)) (0) == 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_type_signal=int
+else
+ ac_cv_type_signal=void
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5
+$as_echo "$ac_cv_type_signal" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define RETSIGTYPE $ac_cv_type_signal
+_ACEOF
+
+
+for ac_func in strchr memcpy memset setmode _setmode
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_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
+
+for ac_func in getcwd regcmp regcomp strerror lstat
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_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
+
+for ac_func in fixkeypad getopt_long
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_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
+
+
+
+
+ for ac_header in $ac_header_list
+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
+
+
+
+
+
+
+
+ ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
+if test "x$ac_cv_func_vsnprintf" = xyes; then :
+ hw_cv_func_vsnprintf=yes
+else
+ hw_cv_func_vsnprintf=no
+fi
+
+ if test "$hw_cv_func_vsnprintf" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether vsnprintf is C99 compliant" >&5
+$as_echo_n "checking whether vsnprintf is C99 compliant... " >&6; }
+if ${hw_cv_func_vsnprintf_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ hw_cv_func_vsnprintf_c99=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_STDARG_H
+ #include <stdarg.h>
+ #endif
+ #include <stdio.h>
+ static int testprintf(char *buf, size_t size, const char *format, ...)
+ {
+ int result;
+ va_list ap;
+ va_start(ap, format);
+ result = vsnprintf(buf, size, format, ap);
+ va_end(ap);
+ return result;
+ }
+int
+main ()
+{
+char buf[43];
+ if (testprintf(buf, 4, "The answer is %27.2g.", 42.0) != 42 ||
+ testprintf(buf, 0, "No, it's %32zu.", (size_t)42) != 42 ||
+ buf[0] != 'T' || buf[3] != '\0')
+ return 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ hw_cv_func_vsnprintf_c99=yes
+else
+ hw_cv_func_vsnprintf_c99=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hw_cv_func_vsnprintf_c99" >&5
+$as_echo "$hw_cv_func_vsnprintf_c99" >&6; }
+else
+ hw_cv_func_snprintf_c99=no
+fi
+ if test "$hw_cv_func_vsnprintf_c99" = yes; then :
+
+$as_echo "#define HAVE_VSNPRINTF 1" >>confdefs.h
+
+else
+
+$as_echo "#define vsnprintf rpl_vsnprintf" >>confdefs.h
+
+ for ac_header in inttypes.h locale.h stddef.h stdint.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_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
+
+ ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include <locale.h>
+"
+if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_LCONV_DECIMAL_POINT 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct lconv" "thousands_sep" "ac_cv_member_struct_lconv_thousands_sep" "#include <locale.h>
+"
+if test "x$ac_cv_member_struct_lconv_thousands_sep" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_LCONV_THOUSANDS_SEP 1
+_ACEOF
+
+
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5
+$as_echo_n "checking for long double... " >&6; }
+if ${ac_cv_type_long_double+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$GCC" = yes; then
+ ac_cv_type_long_double=yes
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* The Stardent Vistra knows sizeof (long double), but does
+ not support it. */
+ long double foo = 0.0L;
+int
+main ()
+{
+static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8. */
+ sizeof (double) <= sizeof (long double))];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_type_long_double=yes
+else
+ ac_cv_type_long_double=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5
+$as_echo "$ac_cv_type_long_double" >&6; }
+ if test $ac_cv_type_long_double = yes; then
+
+$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
+$as_echo_n "checking for long long int... " >&6; }
+if ${ac_cv_type_long_long_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ /* For now, do not test the preprocessor; as of 2007 there are too many
+ implementations with broken preprocessors. Perhaps this can
+ be revisited in 2012. In the meantime, code should not expect
+ #if to work with literals wider than 32 bits. */
+ /* Test literals. */
+ long long int ll = 9223372036854775807ll;
+ long long int nll = -9223372036854775807LL;
+ unsigned long long int ull = 18446744073709551615ULL;
+ /* Test constant expressions. */
+ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+ ? 1 : -1)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ ? 1 : -1)];
+ int i = 63;
+int
+main ()
+{
+/* Test availability of runtime routines for shift and division. */
+ long long int llmax = 9223372036854775807ll;
+ unsigned long long int ullmax = 18446744073709551615ull;
+ return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+ | (llmax / ll) | (llmax % ll)
+ | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+ | (ullmax / ull) | (ullmax % ull));
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if test "$cross_compiling" = yes; then :
+ ac_cv_type_long_long_int=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+ #ifndef LLONG_MAX
+ # define HALF \
+ (1LL << (sizeof (long long int) * CHAR_BIT - 2))
+ # define LLONG_MAX (HALF - 1 + HALF)
+ #endif
+int
+main ()
+{
+long long int n = 1;
+ int i;
+ for (i = 0; ; i++)
+ {
+ long long int m = n << i;
+ if (m >> i != n)
+ return 1;
+ if (LLONG_MAX / 2 < m)
+ break;
+ }
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_type_long_long_int=yes
+else
+ ac_cv_type_long_long_int=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+else
+ ac_cv_type_long_long_int=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_type_long_long_int" >&5
+$as_echo "$ac_cv_type_long_long_int" >&6; }
+ if test $ac_cv_type_long_long_int = yes; then
+
+$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
+$as_echo_n "checking for unsigned long long int... " >&6; }
+if ${ac_cv_type_unsigned_long_long_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ /* For now, do not test the preprocessor; as of 2007 there are too many
+ implementations with broken preprocessors. Perhaps this can
+ be revisited in 2012. In the meantime, code should not expect
+ #if to work with literals wider than 32 bits. */
+ /* Test literals. */
+ long long int ll = 9223372036854775807ll;
+ long long int nll = -9223372036854775807LL;
+ unsigned long long int ull = 18446744073709551615ULL;
+ /* Test constant expressions. */
+ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+ ? 1 : -1)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ ? 1 : -1)];
+ int i = 63;
+int
+main ()
+{
+/* Test availability of runtime routines for shift and division. */
+ long long int llmax = 9223372036854775807ll;
+ unsigned long long int ullmax = 18446744073709551615ull;
+ return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+ | (llmax / ll) | (llmax % ll)
+ | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+ | (ullmax / ull) | (ullmax % ull));
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_type_unsigned_long_long_int=yes
+else
+ ac_cv_type_unsigned_long_long_int=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_type_unsigned_long_long_int" >&5
+$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+
+$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
+
+ fi
+
+ ac_fn_c_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
+
+
+
+ ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "$ac_includes_default"
+if test "x$ac_cv_type_intmax_t" = xyes; then :
+
+$as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h
+
+else
+ test $ac_cv_type_long_long_int = yes \
+ && ac_type='long long int' \
+ || ac_type='long int'
+
+cat >>confdefs.h <<_ACEOF
+#define intmax_t $ac_type
+_ACEOF
+
+fi
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "uintmax_t" "ac_cv_type_uintmax_t" "$ac_includes_default"
+if test "x$ac_cv_type_uintmax_t" = xyes; then :
+
+$as_echo "#define HAVE_UINTMAX_T 1" >>confdefs.h
+
+else
+ test $ac_cv_type_unsigned_long_long_int = yes \
+ && ac_type='unsigned long long int' \
+ || ac_type='unsigned long int'
+
+cat >>confdefs.h <<_ACEOF
+#define uintmax_t $ac_type
+_ACEOF
+
+fi
+
+
+
+ ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
+if test "x$ac_cv_type_uintptr_t" = xyes; then :
+
+$as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h
+
+else
+ for ac_type in 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int'; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+cat >>confdefs.h <<_ACEOF
+#define uintptr_t $ac_type
+_ACEOF
+
+ ac_type=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test -z "$ac_type" && break
+ done
+fi
+
+
+ ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_PTRDIFF_T 1
+_ACEOF
+
+
+fi
+
+ for ac_func in localeconv
+do :
+ ac_fn_c_check_func "$LINENO" "localeconv" "ac_cv_func_localeconv"
+if test "x$ac_cv_func_localeconv" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LOCALECONV 1
+_ACEOF
+
+fi
+done
+
+
+ if test "x$_hw_cv_func_xprintf_replace_done" != xyes; then :
+ { $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 ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset cs;
+ /* 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. */
+ char *t;
+ 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 saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; 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_c_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
+
+
+
+
+ case " $LIBOBJS " in
+ *" snprintf.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
+ ;;
+esac
+
+ _hw_cv_func_xprintf_replace_done=yes
+fi
+
+fi
+
+
+ ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
+if test "x$ac_cv_func_snprintf" = xyes; then :
+ hw_cv_func_snprintf=yes
+else
+ hw_cv_func_snprintf=no
+fi
+
+ if test "$hw_cv_func_snprintf" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf is C99 compliant" >&5
+$as_echo_n "checking whether snprintf is C99 compliant... " >&6; }
+if ${hw_cv_func_snprintf_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ hw_cv_func_snprintf_c99=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+char buf[43];
+ if (snprintf(buf, 4, "The answer is %27.2g.", 42.0) != 42 ||
+ snprintf(buf, 0, "No, it's %32zu.", (size_t)42) != 42 ||
+ buf[0] != 'T' || buf[3] != '\0')
+ return 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ hw_cv_func_snprintf_c99=yes
+else
+ hw_cv_func_snprintf_c99=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hw_cv_func_snprintf_c99" >&5
+$as_echo "$hw_cv_func_snprintf_c99" >&6; }
+else
+ hw_cv_func_snprintf_c99=no
+fi
+ if test "$hw_cv_func_snprintf_c99" = yes; then :
+
+$as_echo "#define HAVE_SNPRINTF 1" >>confdefs.h
+
+else
+
+$as_echo "#define snprintf rpl_snprintf" >>confdefs.h
+
+
+ if test "x$_hw_cv_func_xprintf_replace_done" != xyes; then :
+ { $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 ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset cs;
+ /* 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. */
+ char *t;
+ 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 saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; 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_c_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
+
+
+
+
+ case " $LIBOBJS " in
+ *" snprintf.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
+ ;;
+esac
+
+ _hw_cv_func_xprintf_replace_done=yes
+fi
+
+fi
+
+
+ ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
+if test "x$ac_cv_func_vsnprintf" = xyes; then :
+ hw_cv_func_vsnprintf=yes
+else
+ hw_cv_func_vsnprintf=no
+fi
+
+ if test "$hw_cv_func_vsnprintf" = yes; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether vsnprintf is C99 compliant" >&5
+$as_echo_n "checking whether vsnprintf is C99 compliant... " >&6; }
+if ${hw_cv_func_vsnprintf_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ hw_cv_func_vsnprintf_c99=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_STDARG_H
+ #include <stdarg.h>
+ #endif
+ #include <stdio.h>
+ static int testprintf(char *buf, size_t size, const char *format, ...)
+ {
+ int result;
+ va_list ap;
+ va_start(ap, format);
+ result = vsnprintf(buf, size, format, ap);
+ va_end(ap);
+ return result;
+ }
+int
+main ()
+{
+char buf[43];
+ if (testprintf(buf, 4, "The answer is %27.2g.", 42.0) != 42 ||
+ testprintf(buf, 0, "No, it's %32zu.", (size_t)42) != 42 ||
+ buf[0] != 'T' || buf[3] != '\0')
+ return 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ hw_cv_func_vsnprintf_c99=yes
+else
+ hw_cv_func_vsnprintf_c99=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hw_cv_func_vsnprintf_c99" >&5
+$as_echo "$hw_cv_func_vsnprintf_c99" >&6; }
+else
+ hw_cv_func_snprintf_c99=no
+fi
+ if test "$hw_cv_func_vsnprintf_c99" = yes; then :
+
+$as_echo "#define HAVE_VSNPRINTF 1" >>confdefs.h
+
+else
+
+$as_echo "#define vsnprintf rpl_vsnprintf" >>confdefs.h
+
+ for ac_header in inttypes.h locale.h stddef.h stdint.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_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
+
+ ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include <locale.h>
+"
+if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_LCONV_DECIMAL_POINT 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct lconv" "thousands_sep" "ac_cv_member_struct_lconv_thousands_sep" "#include <locale.h>
+"
+if test "x$ac_cv_member_struct_lconv_thousands_sep" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_LCONV_THOUSANDS_SEP 1
+_ACEOF
+
+
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5
+$as_echo_n "checking for long double... " >&6; }
+if ${ac_cv_type_long_double+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$GCC" = yes; then
+ ac_cv_type_long_double=yes
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* The Stardent Vistra knows sizeof (long double), but does
+ not support it. */
+ long double foo = 0.0L;
+int
+main ()
+{
+static int test_array [1 - 2 * !(/* On Ultrix 4.3 cc, long double is 4 and double is 8. */
+ sizeof (double) <= sizeof (long double))];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_type_long_double=yes
+else
+ ac_cv_type_long_double=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_double" >&5
+$as_echo "$ac_cv_type_long_double" >&6; }
+ if test $ac_cv_type_long_double = yes; then
+
+$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
+$as_echo_n "checking for long long int... " >&6; }
+if ${ac_cv_type_long_long_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ /* For now, do not test the preprocessor; as of 2007 there are too many
+ implementations with broken preprocessors. Perhaps this can
+ be revisited in 2012. In the meantime, code should not expect
+ #if to work with literals wider than 32 bits. */
+ /* Test literals. */
+ long long int ll = 9223372036854775807ll;
+ long long int nll = -9223372036854775807LL;
+ unsigned long long int ull = 18446744073709551615ULL;
+ /* Test constant expressions. */
+ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+ ? 1 : -1)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ ? 1 : -1)];
+ int i = 63;
+int
+main ()
+{
+/* Test availability of runtime routines for shift and division. */
+ long long int llmax = 9223372036854775807ll;
+ unsigned long long int ullmax = 18446744073709551615ull;
+ return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+ | (llmax / ll) | (llmax % ll)
+ | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+ | (ullmax / ull) | (ullmax % ull));
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if test "$cross_compiling" = yes; then :
+ ac_cv_type_long_long_int=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+ #ifndef LLONG_MAX
+ # define HALF \
+ (1LL << (sizeof (long long int) * CHAR_BIT - 2))
+ # define LLONG_MAX (HALF - 1 + HALF)
+ #endif
+int
+main ()
+{
+long long int n = 1;
+ int i;
+ for (i = 0; ; i++)
+ {
+ long long int m = n << i;
+ if (m >> i != n)
+ return 1;
+ if (LLONG_MAX / 2 < m)
+ break;
+ }
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_type_long_long_int=yes
+else
+ ac_cv_type_long_long_int=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+else
+ ac_cv_type_long_long_int=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_type_long_long_int" >&5
+$as_echo "$ac_cv_type_long_long_int" >&6; }
+ if test $ac_cv_type_long_long_int = yes; then
+
+$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
+$as_echo_n "checking for unsigned long long int... " >&6; }
+if ${ac_cv_type_unsigned_long_long_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ /* For now, do not test the preprocessor; as of 2007 there are too many
+ implementations with broken preprocessors. Perhaps this can
+ be revisited in 2012. In the meantime, code should not expect
+ #if to work with literals wider than 32 bits. */
+ /* Test literals. */
+ long long int ll = 9223372036854775807ll;
+ long long int nll = -9223372036854775807LL;
+ unsigned long long int ull = 18446744073709551615ULL;
+ /* Test constant expressions. */
+ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+ ? 1 : -1)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ ? 1 : -1)];
+ int i = 63;
+int
+main ()
+{
+/* Test availability of runtime routines for shift and division. */
+ long long int llmax = 9223372036854775807ll;
+ unsigned long long int ullmax = 18446744073709551615ull;
+ return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+ | (llmax / ll) | (llmax % ll)
+ | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+ | (ullmax / ull) | (ullmax % ull));
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_type_unsigned_long_long_int=yes
+else
+ ac_cv_type_unsigned_long_long_int=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_type_unsigned_long_long_int" >&5
+$as_echo "$ac_cv_type_unsigned_long_long_int" >&6; }
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+
+$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
+
+ fi
+
+ ac_fn_c_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
+
+
+
+ ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "$ac_includes_default"
+if test "x$ac_cv_type_intmax_t" = xyes; then :
+
+$as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h
+
+else
+ test $ac_cv_type_long_long_int = yes \
+ && ac_type='long long int' \
+ || ac_type='long int'
+
+cat >>confdefs.h <<_ACEOF
+#define intmax_t $ac_type
+_ACEOF
+
+fi
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "uintmax_t" "ac_cv_type_uintmax_t" "$ac_includes_default"
+if test "x$ac_cv_type_uintmax_t" = xyes; then :
+
+$as_echo "#define HAVE_UINTMAX_T 1" >>confdefs.h
+
+else
+ test $ac_cv_type_unsigned_long_long_int = yes \
+ && ac_type='unsigned long long int' \
+ || ac_type='unsigned long int'
+
+cat >>confdefs.h <<_ACEOF
+#define uintmax_t $ac_type
+_ACEOF
+
+fi
+
+
+
+ ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
+if test "x$ac_cv_type_uintptr_t" = xyes; then :
+
+$as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h
+
+else
+ for ac_type in 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int'; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+cat >>confdefs.h <<_ACEOF
+#define uintptr_t $ac_type
+_ACEOF
+
+ ac_type=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test -z "$ac_type" && break
+ done
+fi
+
+
+ ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_PTRDIFF_T 1
+_ACEOF
+
+
+fi
+
+ for ac_func in localeconv
+do :
+ ac_fn_c_check_func "$LINENO" "localeconv" "ac_cv_func_localeconv"
+if test "x$ac_cv_func_localeconv" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LOCALECONV 1
+_ACEOF
+
+fi
+done
+
+
+ if test "x$_hw_cv_func_xprintf_replace_done" != xyes; then :
+ { $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 ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset cs;
+ /* 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. */
+ char *t;
+ 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 saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; 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_c_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
+
+
+
+
+ case " $LIBOBJS " in
+ *" snprintf.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
+ ;;
+esac
+
+ _hw_cv_func_xprintf_replace_done=yes
+fi
+
+fi
+
+
+
+
+
+
+
+ for ac_func in vasprintf
+do :
+ ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf"
+if test "x$ac_cv_func_vasprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_VASPRINTF 1
+_ACEOF
+ hw_cv_func_vasprintf=yes
+else
+ hw_cv_func_vasprintf=no
+fi
+done
+
+ if test "$hw_cv_func_vasprintf" = no; then :
+
+$as_echo "#define vasprintf rpl_vasprintf" >>confdefs.h
+
+ for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
+$as_echo_n "checking for va_copy... " >&6; }
+if ${hw_cv_func_va_copy+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ hw_cv_func_va_copy=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_STDARG_H
+ #include <stdarg.h>
+ #elif HAVE_VARARGS_H
+ #include <varargs.h>
+ #endif
+int
+main ()
+{
+va_list ap, aq; va_copy(aq, ap);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ hw_cv_func_va_copy=yes
+else
+ hw_cv_func_va_copy=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hw_cv_func_va_copy" >&5
+$as_echo "$hw_cv_func_va_copy" >&6; }
+ if test "$hw_cv_func_va_copy" = yes; then :
+
+$as_echo "#define HAVE_VA_COPY 1" >>confdefs.h
+
+fi
+
+ if test "$hw_cv_func_va_copy" = no; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __va_copy" >&5
+$as_echo_n "checking for __va_copy... " >&6; }
+if ${hw_cv_func___va_copy+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ hw_cv_func___va_copy=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_STDARG_H
+ #include <stdarg.h>
+ #elif HAVE_VARARGS_H
+ #include <varargs.h>
+ #endif
+int
+main ()
+{
+va_list ap, aq; __va_copy(aq, ap);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ hw_cv_func___va_copy=yes
+else
+ hw_cv_func___va_copy=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hw_cv_func___va_copy" >&5
+$as_echo "$hw_cv_func___va_copy" >&6; }
+ if test "$hw_cv_func___va_copy" = yes; then :
+
+$as_echo "#define HAVE___VA_COPY 1" >>confdefs.h
+
+fi
+
+fi
+
+ if test "x$_hw_cv_func_xprintf_replace_done" != xyes; then :
+ { $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 ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset cs;
+ /* 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. */
+ char *t;
+ 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 saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; 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_c_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
+
+
+
+
+ case " $LIBOBJS " in
+ *" snprintf.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
+ ;;
+esac
+
+ _hw_cv_func_xprintf_replace_done=yes
+fi
+
+fi
+
+
+ for ac_func in asprintf
+do :
+ ac_fn_c_check_func "$LINENO" "asprintf" "ac_cv_func_asprintf"
+if test "x$ac_cv_func_asprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ASPRINTF 1
+_ACEOF
+ hw_cv_func_asprintf=yes
+else
+ hw_cv_func_asprintf=no
+fi
+done
+
+ if test "$hw_cv_func_asprintf" = no; then :
+
+$as_echo "#define asprintf rpl_asprintf" >>confdefs.h
+
+
+ if test "x$_hw_cv_func_xprintf_replace_done" != xyes; then :
+ { $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 ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset cs;
+ /* 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. */
+ char *t;
+ 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 saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; 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_c_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
+
+
+
+
+ case " $LIBOBJS " in
+ *" snprintf.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
+ ;;
+esac
+
+ _hw_cv_func_xprintf_replace_done=yes
+fi
+
+fi
+
+
+ for ac_func in vasprintf
+do :
+ ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf"
+if test "x$ac_cv_func_vasprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_VASPRINTF 1
+_ACEOF
+ hw_cv_func_vasprintf=yes
+else
+ hw_cv_func_vasprintf=no
+fi
+done
+
+ if test "$hw_cv_func_vasprintf" = no; then :
+
+$as_echo "#define vasprintf rpl_vasprintf" >>confdefs.h
+
+ for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
+$as_echo_n "checking for va_copy... " >&6; }
+if ${hw_cv_func_va_copy+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ hw_cv_func_va_copy=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_STDARG_H
+ #include <stdarg.h>
+ #elif HAVE_VARARGS_H
+ #include <varargs.h>
+ #endif
+int
+main ()
+{
+va_list ap, aq; va_copy(aq, ap);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ hw_cv_func_va_copy=yes
+else
+ hw_cv_func_va_copy=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hw_cv_func_va_copy" >&5
+$as_echo "$hw_cv_func_va_copy" >&6; }
+ if test "$hw_cv_func_va_copy" = yes; then :
+
+$as_echo "#define HAVE_VA_COPY 1" >>confdefs.h
+
+fi
+
+ if test "$hw_cv_func_va_copy" = no; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __va_copy" >&5
+$as_echo_n "checking for __va_copy... " >&6; }
+if ${hw_cv_func___va_copy+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ hw_cv_func___va_copy=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_STDARG_H
+ #include <stdarg.h>
+ #elif HAVE_VARARGS_H
+ #include <varargs.h>
+ #endif
+int
+main ()
+{
+va_list ap, aq; __va_copy(aq, ap);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ hw_cv_func___va_copy=yes
+else
+ hw_cv_func___va_copy=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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hw_cv_func___va_copy" >&5
+$as_echo "$hw_cv_func___va_copy" >&6; }
+ if test "$hw_cv_func___va_copy" = yes; then :
+
+$as_echo "#define HAVE___VA_COPY 1" >>confdefs.h
+
+fi
+
+fi
+
+ if test "x$_hw_cv_func_xprintf_replace_done" != xyes; then :
+ { $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 ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset cs;
+ /* 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. */
+ char *t;
+ 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 saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; 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_c_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
+
+
+
+
+ case " $LIBOBJS " in
+ *" snprintf.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS snprintf.$ac_objext"
+ ;;
+esac
+
+ _hw_cv_func_xprintf_replace_done=yes
+fi
+
+fi
+
+
+case "$host_os" in
+ linux*)
+
+$as_echo "#define Linux 1" >>confdefs.h
+
+ ;;
+ netbsd*|freebsd*|darwin*)
+
+$as_echo "#define BSD 1" >>confdefs.h
+
+ ;;
+esac
+
+ac_config_files="$ac_config_files Makefile doc/Makefile src/Makefile contrib/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
+
+
+ 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__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
+if test -z "${USING_LEX_TRUE}" && test -z "${USING_LEX_FALSE}"; then
+ as_fn_error $? "conditional \"USING_LEX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAS_CURSES_TRUE}" && test -z "${HAS_CURSES_FALSE}"; then
+ as_fn_error $? "conditional \"HAS_CURSES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USING_GNOME2_TRUE}" && test -z "${USING_GNOME2_FALSE}"; then
+ as_fn_error $? "conditional \"USING_GNOME2\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAS_GNOME_TRUE}" && test -z "${HAS_GNOME_FALSE}"; then
+ as_fn_error $? "conditional \"HAS_GNOME\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GNOME_LINUX_TRUE}" && test -z "${GNOME_LINUX_FALSE}"; then
+ as_fn_error $? "conditional \"GNOME_LINUX\" 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 -p'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -p'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -p'
+ fi
+else
+ as_ln_s='cp -p'
+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
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# 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 $as_me, which was
+generated by GNU Autoconf 2.68. 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 the package provider."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.68,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2010 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"
+
+_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
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.h.in" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+ "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+ "contrib/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/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"" || {
+ # Autoconf 2.62 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"`
+ # When using ansi2knr, U may be empty or an underscore; expand it
+ U=`sed -n 's/^U = //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' -e 's/\$U/'"$U"'/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
+}
+ ;;
+
+ 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.in b/configure.in
new file mode 100644
index 0000000..9f05fad
--- /dev/null
+++ b/configure.in
@@ -0,0 +1,422 @@
+dnl Process this file with autoconf to produce a configure script.
+AC_INIT
+AC_CONFIG_SRCDIR([src/crossref.c])
+AM_INIT_AUTOMAKE(cscope, 15.8a)
+AC_CONFIG_HEADERS([config.h:config.h.in])
+AC_PREREQ(2.59)
+AC_CANONICAL_HOST
+
+dnl User specification of lexer
+dnl AC_CHECK_LEXER
+dnl User specification of yacc
+dnl AC_CHECK_YACC
+
+dnl Checks for programs.
+AC_PROG_INSTALL
+AC_PROG_CC
+AM_PROG_CC_C_O
+AC_EXEEXT
+AM_PROG_LEX
+AM_CONDITIONAL(USING_LEX, test "x$LEX" = "xlex")
+if test "x$LEX" = "xlex" ; then AC_DEFINE(USING_LEX, 1,
+ [Define this if the scanner is run through lex, not flex])
+fi
+AC_PROG_YACC
+
+dnl === BEGIN CURSES CHECK
+dnl Curses detection: Munged from Midnight Commander's configure.in
+dnl
+dnl What it does:
+dnl =============
+dnl
+dnl - Determine which version of curses is installed on your system
+dnl and set the -I/-L/-l compiler entries and add a few preprocessor
+dnl symbols
+dnl - Do an AC_SUBST on the CURSES_INCLUDEDIR and CURSES_LIBS so that
+dnl @CURSES_INCLUDEDIR@ and @CURSES_LIBS@ will be available in
+dnl Makefile.in's
+dnl - Modify the following configure variables (these are the only
+dnl curses.m4 variables you can access from within configure.in)
+dnl CURSES_INCLUDEDIR - contains -I's and possibly -DRENAMED_CURSES if
+dnl an ncurses.h that's been renamed to curses.h
+dnl is found.
+dnl CURSES_LIBS - sets -L and -l's appropriately
+dnl CFLAGS - if --with-sco, add -D_SVID3
+dnl has_curses - exports result of tests to rest of configure
+dnl
+dnl Usage:
+dnl ======
+dnl 1) Add lines indicated below to acconfig.h
+dnl 2) call AC_CHECK_CURSES after AC_PROG_CC in your configure.in
+dnl 3) Instead of #include <curses.h> you should use the following to
+dnl properly locate ncurses or curses header file
+dnl
+dnl #if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+dnl #include <ncurses.h>
+dnl #else
+dnl #include <curses.h>
+dnl #endif
+dnl
+dnl 4) Make sure to add @CURSES_INCLUDEDIR@ to your preprocessor flags
+dnl 5) Make sure to add @CURSES_LIBS@ to your linker flags or LIBS
+dnl
+dnl Notes with automake:
+dnl - call AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true) from
+dnl configure.in
+dnl - your Makefile.am can look something like this
+dnl -----------------------------------------------
+dnl INCLUDES= blah blah blah $(CURSES_INCLUDEDIR)
+dnl if HAS_CURSES
+dnl CURSES_TARGETS=name_of_curses_prog
+dnl endif
+dnl bin_PROGRAMS = other_programs $(CURSES_TARGETS)
+dnl other_programs_SOURCES = blah blah blah
+dnl name_of_curses_prog_SOURCES = blah blah blah
+dnl other_programs_LDADD = blah
+dnl name_of_curses_prog_LDADD = blah $(CURSES_LIBS)
+dnl -----------------------------------------------
+dnl
+dnl
+dnl The following lines should be added to acconfig.h:
+dnl ==================================================
+dnl
+dnl /*=== Curses version detection defines ===*/
+dnl /* Found some version of curses that we're going to use */
+dnl #undef HAS_CURSES
+dnl
+dnl /* Use SunOS SysV curses? */
+dnl #undef USE_SUNOS_CURSES
+dnl
+dnl /* Use old BSD curses - not used right now */
+dnl #undef USE_BSD_CURSES
+dnl
+dnl /* Use SystemV curses? */
+dnl #undef USE_SYSV_CURSES
+dnl
+dnl /* Use Ncurses? */
+dnl #undef USE_NCURSES
+dnl
+dnl /* If you Curses does not have color define this one */
+dnl #undef NO_COLOR_CURSES
+dnl
+dnl /* Define if you want to turn on SCO-specific code */
+dnl #undef SCO_FLAVOR
+dnl
+dnl /* Set to reflect version of ncurses *
+dnl * 0 = version 1.*
+dnl * 1 = version 1.9.9g
+dnl * 2 = version 4.0/4.1 */
+dnl #undef NCURSES_970530
+dnl
+dnl /*=== End new stuff for acconfig.h ===*/
+dnl
+
+
+AC_DEFUN([AC_CHECK_CURSES],[
+ search_ncurses=true
+ screen_manager=""
+ has_curses=false
+
+ CFLAGS=${CFLAGS--O}
+
+ AC_SUBST(CURSES_LIBS)
+ AC_SUBST(CURSES_INCLUDEDIR)
+
+ AC_ARG_WITH(sco,
+ [ --with-sco Use this to turn on SCO-specific code],[
+ if test x$withval = xyes; then
+ AC_DEFINE(SCO_FLAVOR, 1, [Define if you want to turn on SCO-specific code])
+ CFLAGS="$CFLAGS -D_SVID3"
+ fi
+ ])
+
+ AC_ARG_WITH(sunos-curses,
+ [ --with-sunos-curses Used to force SunOS 4.x curses],[
+ if test x$withval = xyes; then
+ AC_USE_SUNOS_CURSES
+ fi
+ ])
+
+ AC_ARG_WITH(osf1-curses,
+ [ --with-osf1-curses Used to force OSF/1 curses],[
+ if test x$withval = xyes; then
+ AC_USE_OSF1_CURSES
+ fi
+ ])
+
+ AC_ARG_WITH(vcurses,
+ [ --with-vcurses[=incdir] Used to force SysV curses],
+ if test x$withval != xyes; then
+ CURSES_INCLUDEDIR="-I$withval"
+ fi
+ AC_USE_SYSV_CURSES
+ )
+
+ AC_ARG_WITH(ncurses,
+ [ --with-ncurses[=dir] Compile with ncurses/locate base dir],
+ if test x$withval = xno ; then
+ search_ncurses=false
+ elif test x$withval != xyes ; then
+ CURSES_LIBS="$LIBS -L$withval/lib -lncurses"
+ CURSES_INCLUDEDIR="-I$withval/include"
+ search_ncurses=false
+ screen_manager="ncurses"
+ AC_DEFINE(USE_NCURSES, 1, [Use Ncurses?])
+ AC_DEFINE(HAS_CURSES, 1, [Found some version of curses that we're going to use])
+ has_curses=true
+ fi
+ )
+
+ if $search_ncurses
+ then
+ AC_SEARCH_NCURSES()
+ fi
+
+
+])
+
+
+AC_DEFUN([AC_USE_SUNOS_CURSES], [
+ search_ncurses=false
+ screen_manager="SunOS 4.x /usr/5include curses"
+ AC_MSG_RESULT(Using SunOS 4.x /usr/5include curses)
+ AC_DEFINE(USE_SUNOS_CURSES, 1, [Use SunOS SysV curses?])
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
+ AC_DEFINE(NO_COLOR_CURSES, 1, [If your Curses does not have color define this one])
+ AC_DEFINE(USE_SYSV_CURSES, 1, [Use SystemV curses?])
+ CURSES_INCLUDEDIR="-I/usr/5include"
+ CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a"
+ AC_MSG_RESULT(Please note that some screen refreshs may fail)
+])
+
+AC_DEFUN([AC_USE_OSF1_CURSES], [
+ AC_MSG_RESULT(Using OSF1 curses)
+ search_ncurses=false
+ screen_manager="OSF1 curses"
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
+ AC_DEFINE(NO_COLOR_CURSES)
+ AC_DEFINE(USE_SYSV_CURSES)
+ CURSES_LIBS="-lcurses"
+])
+
+AC_DEFUN([AC_USE_SYSV_CURSES], [
+ AC_MSG_RESULT(Using SysV curses)
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
+ AC_DEFINE(USE_SYSV_CURSES)
+ search_ncurses=false
+ screen_manager="SysV/curses"
+ CURSES_LIBS="-lcurses"
+])
+
+dnl AC_ARG_WITH(bsd-curses,
+dnl [--with-bsd-curses Used to compile with bsd curses, not very fancy],
+dnl search_ncurses=false
+dnl screen_manager="Ultrix/cursesX"
+dnl if test $system = ULTRIX
+dnl then
+dnl THIS_CURSES=cursesX
+dnl else
+dnl THIS_CURSES=curses
+dnl fi
+dnl
+dnl CURSES_LIBS="-l$THIS_CURSES -ltermcap"
+dnl AC_DEFINE(HAS_CURSES)
+dnl has_curses=true
+dnl AC_DEFINE(USE_BSD_CURSES)
+dnl AC_MSG_RESULT(Please note that some screen refreshs may fail)
+dnl AC_MSG_WARN([Use of the bsdcurses extension has some])
+dnl AC_MSG_WARN([display/input problems.])
+dnl AC_MSG_WARN([Reconsider using xcurses])
+dnl)
+
+
+dnl
+dnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicename
+dnl
+AC_DEFUN([AC_NCURSES], [
+ if $search_ncurses
+ then
+ if test -f $1/$2
+ then
+ AC_MSG_RESULT(Found ncurses on $1/$2)
+ CURSES_LIBS="$3"
+ CURSES_INCLUDEDIR="$4"
+ search_ncurses=false
+ screen_manager=$5
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
+ AC_DEFINE(USE_NCURSES)
+ fi
+ fi
+])
+
+AC_DEFUN([AC_SEARCH_NCURSES], [
+ AS_MESSAGE(checking "location of ncurses.h file"...)
+
+ AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include")
+ AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses")
+ AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local")
+ AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses")
+
+ AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses")
+
+ AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses")
+
+ dnl
+ dnl We couldn't find ncurses, try SysV curses
+ dnl
+ if $search_ncurses
+ then
+ AC_EGREP_HEADER(init_color, curses.h,
+ AC_USE_SYSV_CURSES)
+ AC_EGREP_CPP(USE_NCURSES,[
+#include <curses.h>
+#ifdef __NCURSES_H
+#undef USE_NCURSES
+USE_NCURSES
+#endif
+],[
+ CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES"
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
+ AC_DEFINE(USE_NCURSES)
+ search_ncurses=false
+ screen_manager="ncurses installed as curses"
+])
+ fi
+
+ dnl
+ dnl Try SunOS 4.x /usr/5{lib,include} ncurses
+ dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES
+ dnl should be replaced by a more fine grained selection routine
+ dnl
+ if $search_ncurses
+ then
+ if test -f /usr/5include/curses.h
+ then
+ AC_USE_SUNOS_CURSES
+ fi
+ else
+ # check for ncurses version, to properly ifdef mouse-fix
+ AC_MSG_CHECKING(for ncurses version)
+ ncurses_version=unknown
+cat > conftest.$ac_ext <<EOF
+[#]line __oline__ "configure"
+#include "confdefs.h"
+#ifdef RENAMED_NCURSES
+#include <curses.h>
+#else
+#include <ncurses.h>
+#endif
+#undef VERSION
+VERSION:NCURSES_VERSION
+EOF
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD() |
+ egrep "VERSION:" >conftest.out 2>&1; then
+changequote(,)dnl
+ ncurses_version=`cat conftest.out|sed -e 's/^[^"]*"//' -e 's/".*//'`
+changequote([,])dnl
+ fi
+ rm -rf conftest*
+ AC_MSG_RESULT($ncurses_version)
+ case "$ncurses_version" in
+changequote(,)dnl
+ 4.[01])
+changequote([,])dnl
+ AC_DEFINE(NCURSES_970530,2,
+ [Set to reflect version of ncurses:
+ 0 = version 1.*
+ 1 = version 1.9.9g
+ 2 = version 4.0/4.1])
+ ;;
+ 1.9.9g)
+ AC_DEFINE(NCURSES_970530,1)
+ ;;
+ 1*)
+ AC_DEFINE(NCURSES_970530,0)
+ ;;
+ esac
+ fi
+])
+dnl === END CURSES CHECK
+
+AC_CHECK_CURSES
+AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true)
+
+dnl Checks for libraries.
+dnl Replace `main' with a function in -lcurses:
+dnl AC_CHECK_LIB(curses, main)
+
+AC_CHECK_HEADER(regex.h, [], [
+ AC_MSG_ERROR([necessary header <regex.h> not found])
+])
+
+dnl Cygwin is a bit peculiar: it has the regcomp() functions, but in a
+dnl separate library, so we have to check for that:
+AC_CHECK_LIB(regex, regcomp)
+
+dnl Check for a GNOME installation
+
+AC_DEFUN([AC_CHECK_GNOME],[
+ has_gnome=false
+ AC_CHECK_PROG(gnome1, gnome-config, true)
+ AC_CHECK_PROG(gnome2, pkg-config, true)
+
+ if test x$gnome1 = xtrue; then
+ has_gnome=true
+ fi
+
+ if test x$gnome2 = xtrue; then
+ has_gnome=true
+ fi
+
+ AM_CONDITIONAL(USING_GNOME2, pkg-config --exists gtk+-2.0)
+ AM_CONDITIONAL(HAS_GNOME, test "$has_gnome" = true)
+ AM_CONDITIONAL(GNOME_LINUX, test "$host_os" = Linux)
+])
+
+AC_CHECK_GNOME
+dnl Checks for header files.
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+AC_CHECK_HEADERS(fcntl.h sys/window.h sys/termios.h unistd.h signal.h floss.h io.h)
+
+dnl Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_TYPE_MODE_T
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_CHECK_TYPE(sighandler_t,[],[],[
+#ifdef HAVE_SIGNAL_H
+# include <signal.h>
+#endif])
+dnl This test was ripped from gnuplot's configure.in:
+AC_MSG_CHECKING(for sigsetjmp)
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <setjmp.h>]], [[jmp_buf env; sigsetjmp(env, 1);]])],[AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_SIGSETJMP,1,
+ [ Define if we have sigsetjmp(). ])],[AC_MSG_RESULT(no)])
+
+dnl Checks for library functions.
+AC_TYPE_SIGNAL
+AC_CHECK_FUNCS(strchr memcpy memset setmode _setmode)
+AC_CHECK_FUNCS(getcwd regcmp regcomp strerror lstat)
+AC_CHECK_FUNCS(fixkeypad getopt_long)
+HW_FUNC_SNPRINTF
+HW_FUNC_VSNPRINTF
+HW_FUNC_ASPRINTF
+HW_FUNC_VASPRINTF
+
+case "$host_os" in
+ linux*)
+ AC_DEFINE(Linux, 1, [We're using some variant of Linux])
+ ;;
+ netbsd*|freebsd*|darwin*)
+ AC_DEFINE(BSD, 1, [We're using a BSD-flavoured Unix])
+ ;;
+esac
+
+AC_CONFIG_FILES([Makefile doc/Makefile src/Makefile contrib/Makefile])
+AC_OUTPUT
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
new file mode 100644
index 0000000..769b4f5
--- /dev/null
+++ b/contrib/Makefile.am
@@ -0,0 +1,6 @@
+## Process this file with automake to produce Makefile.in
+
+bin_SCRIPTS = ocs
+
+EXTRA_DIST = README ocs cctree.txt cctree.vim xcscope webcscope
+
diff --git a/contrib/Makefile.in b/contrib/Makefile.in
new file mode 100644
index 0000000..6a92346
--- /dev/null
+++ b/contrib/Makefile.in
@@ -0,0 +1,406 @@
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# 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.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+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@
+subdir = contrib
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/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)$(bindir)"
+SCRIPTS = $(bin_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURSES_INCLUDEDIR = @CURSES_INCLUDEDIR@
+CURSES_LIBS = @CURSES_LIBS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+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@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+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@
+gnome1 = @gnome1@
+gnome2 = @gnome2@
+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_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+bin_SCRIPTS = ocs
+EXTRA_DIST = README ocs cctree.txt cctree.vim xcscope webcscope
+all: all-am
+
+.SUFFIXES:
+$(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 contrib/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu contrib/Makefile
+.PRECIOUS: 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):
+install-binSCRIPTS: $(bin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; 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)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+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 $(SCRIPTS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; 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:
+
+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-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binSCRIPTS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binSCRIPTS
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-binSCRIPTS install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-binSCRIPTS
+
+
+# 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/contrib/README b/contrib/README
new file mode 100644
index 0000000..c6fd4c6
--- /dev/null
+++ b/contrib/README
@@ -0,0 +1,14 @@
+Contributed addons and wrappers for cscope
+$Id: README,v 1.4 2011/05/26 17:47:25 nhorman Exp $
+
+ocs - wrapper for cscope providing database generation through recursive
+ directory set (among other things) - docced in script itself.
+ contributed from SCO osr5.
+
+webcscope - a web cgi interface to cscope. Contributed by Ragho Mahalingam,
+ using code from Dmitry Obukhovi and Steven E. Brenner.
+
+xcscope - An (X)Emacs interface to cscope.
+
+cctree.vim - A Vim plugin to allow you to do some powerful searching of cscope
+ databases from within vi, see cctree.txt for usage details
diff --git a/contrib/cctree.txt b/contrib/cctree.txt
new file mode 100644
index 0000000..555559d
--- /dev/null
+++ b/contrib/cctree.txt
@@ -0,0 +1,537 @@
+*CCTree.txt* Plugin for C Call-Tree Explorer *CCTree*
+
+Author: Hari Rangarajan (First.Last AT gmail DOT com)
+Last Change: 20 May 2011
+
+CCTree version 1.51
+
+For Vim version 7.0 and above
+
+==============================================================================
+
+1. Overview |CCTree-overview|
+2. Downloads |CCTree-download|
+3. Installation |CCTree-installation|
+4. Configuration |CCTree-configuration|
+5. Features |CCTree-features|
+6. Limitations |CCTree-limitations|
+7. FAQ & TIPS |CCTree-faq|
+8. History |CCTree-history|
+9. Thanks |CCTree-thanks|
+
+==============================================================================
+1. Overview~
+ *CCTree-overview*
+
+Plugin generates dependency-trees for symbols using a cscope database in Vim.
+Basic cross-referencing includes functions and macros. Enhanced symbol
+processing covers macros, typedefs, enums, and global variables.
+
+Requires Cscope and works best with C code.
+
+==============================================================================
+2. Downloads~
+ *CCTree-download*
+
+You can download the latest release of the script from this url :
+ http://www.vim.org/scripts/script.php?script_id=2368
+
+
+Cscope packages can be found here:
+ http://cscope.sourceforge.net/
+ http://code.google.com/p/cscope-win32/
+
+
+==============================================================================
+3. Installation~
+ *CCTree-installation*
+
+Copy this file to ~/.vim/plugins/ or to /vimfiles/plugins/ (on Win32
+platforms)
+
+It should also be possible to load it as a filetype plugin ~/.vim/ftplugin/c/
+Need to set :filetype plugin on
+
+
+==============================================================================
+CONFIGURATION *CCTree-configuration*
+4. Options~
+
+You can customize behavior by changing the following variable settings
+
+4.1.1 Cscope Symbol Database~
+ *CCTreeCscopeDb*
+
+Cscope database file, g:CCTreeCscopeDb = "cscope.out"
+
+4.1.2 Call-tree Depth~
+ *CCTreeRecursiveDepth*
+Maximum call levels, g:CCTreeRecursiveDepth = 3
+
+4.1.3 Call-tree Minimum Visible Depth~
+ *CCTreeMinVisibleDepth*
+Maximum visible(unfolded) level, g:CCTreeMinVisibleDepth = 3
+
+4.1.4 Call-tree window display~
+
+4.4.1 Orientation~
+ *CCTreeOrientation*
+Orientation of window, g:CCTreeOrientation = "leftabove"
+ (standard vim options for split: [right|left][above|below])
+
+4.5 Direction~
+ *CCTreeWindowVertical*
+Use Vertical window, g:CCTreeWindowVertical = 1
+
+4.5.1 Dimensions~
+
+These settings determine the layout of the CCTree preview window.
+
+4.5.2 Horizontal Window Settings~
+ *CCTreeWindowHeight*
+ Horizontal window, g:CCTreeWindowHeight, default is -1.
+
+4.5.2 Vertical Window Settings~
+ *CCTreeWindowMinWidth*
+ *CCTreeWindowWidth*
+ Minimum width for window, g:CCTreeWindowMinWidth = 40.
+ g:CCTreeWindowWidth = -1, auto-select best width to fit.
+
+
+4.6 Call-tree display format~
+ *CCTreeDisplayMode*
+Display format, g:CCTreeDisplayMode, default: 1
+
+Values: 1 -- Ultra-compact (takes minimum screen width)
+ 2 -- Compact (Takes little more space)
+ 3 -- Wide (Takes copious amounts of space)
+
+For vertical splits, 1 and 2 are good, while 3 is good for horizontal
+displays.
+
+4.7. Dynamic Call-tree highlighting~
+ *CCTreeHilightCallTree*
+
+Enable/disable dynamic call-tree highlighting, default: 1
+
+
+4.7.1 Syntax items~
+ *CCTreeSymbol* *CCTreeHiSymbol*
+CCTreeSymbol is the symbol name.
+CCTreeHiSymbol is the highlighted call tree functions.
+
+ *CCTreeMarkers* *CCTreeHiMarkers*
+CCTreeMarkers include "|","+--->".
+CCTreeHiMarkers is the same as CCTreeMarkers except these denote the
+highlighted call-tree.
+
+
+
+==============================================================================
+COMMAND LIST *CCTree-commands-list*
+
+Database Management~
+ CCTreeLoadDB <dbname>
+ CCTreeAppendDB <dbname>
+ CCTreeUnLoadDB
+ CCTreeShowLoadedDBs
+ Refer to |CCTree-usage|
+
+Native Xref Database~
+ CCTreeLoadXRefDB <dbname>
+ CCTreeSaveXRefDB <dbname>
+
+ Refer to |CCTree-fast-loading|
+
+Symbol tracing~
+ CCTreeTraceForward <symbolname>
+ CCTreeTraceReverse <symbolname>
+ CCTreeRecurseDepthPlus
+ CCTreeRecurseDepthMinus
+ Refer to |CCTree-explore-source|
+Trace Management~
+ CCTreeWindowSaveCopy
+ CCTreeWindowHiCallTree
+ Refer to |CCTree-preview-window|
+
+Dynamic configuration~
+ CCTreeOptsEnable <option> (<tab> for auto-complete)
+ CCTreeOptsDisable <option> (<tab> for auto-complete)
+ CCTreeOptsToggle <option> (<tab> for auto-complete)
+ Options~
+ DynamicTreeHiLights: Control dynamic tree highlighting
+ UseUnicodeSymbols: Use of UTF-8 special characters for tree
+ UseConceal: Use (+Conceal) feature instead of 'ignore'
+ syntax highlighting. Allows CCTree window
+ to be exported in HTML without syntax markup
+ characters. (Vim 7.3+ only)
+ *CCTree-Enhanced-Symbol-Processing*
+ EnhancedSymbolProcessing: Cross-reference enums, macros,
+ global variables, typedefs (WARNING: Database
+ processing speeds will be slow).
+
+SHORTCUT KEYS *CCTree-Key-Map*
+Default Mappings~
+ *CCTree-Default-Key-Map*
+ Get reverse call tree for symbol <C-\><
+ Get forward call tree for symbol <C-\>>
+ Increase depth of tree and update <C-\>=
+ Decrease depth of tree and update <C-\>-
+
+ Open symbol in other window <CR>
+ Preview symbol in other window <Ctrl-P>
+
+ Save copy of preview window <C-\>y
+ Highlight current call-tree flow <C-l>
+ Compress(Fold) call tree view zs
+ (This is useful for viewing long
+ call trees which span across
+ multiple pages)
+
+Custom user-mappings
+ *CCTree-Custom-Key-Map*
+ Users can custom-map the short-cut keys by
+ overriding the following variables in their
+ Vim start-up configuration
+>
+ let g:CCTreeKeyTraceForwardTree = '<C-\>>'
+ let g:CCTreeKeyTraceReverseTree = '<C-\><'
+ let g:CCTreeKeyHilightTree = '<C-l>' " Static highlighting
+ let g:CCTreeKeySaveWindow = '<C-\>y'
+ let g:CCTreeKeyToggleWindow = '<C-\>w'
+ let g:CCTreeKeyCompressTree = 'zs' " Compress call-tree
+ let g:CCTreeKeyDepthPlus = '<C-\>='
+ let g:CCTreeKeyDepthMinus = '<C-\>-'
+<
+
+==============================================================================
+FEATURES *CCTree-features*
+
+5.1. Symbol database~
+ *CCTree-usage*
+Build cscope database, for example:
+> cscope -b -i cscope.files
+ [Tip: add -c option to build uncompressed databases for faster
+ load speeds]
+
+Load database~
+>
+ :CCTreeLoadDB
+<
+ (Please note that it might take a while depending on the
+ database size)
+
+A database name, i.e., my_cscope.out, can be specified with the command. If
+not provided, a prompt will ask for the filename; default is cscope.out.
+
+Unload database ~
+ >
+ :CCTreeUnLoadDB
+<
+Append database~
+ >
+ :CCTreeAppendDB
+<
+ Allows multiple cscope files to be loaded and cross-referenced
+ Illustration: >
+ :CCTreeAppendDB ./cscope.out
+ :CCTreeAppendDB ./dir1/cscope.out
+ :CCTreeAppendDB ./dir2/cscope.out
+<
+ A database name, i.e., my_cscope.out, can be specified with
+ the command. If not provided, a prompt will ask for the
+ filename; default is cscope.out.
+
+FASTER DATABASE LOADING *CCTree-fast-loading*
+
+Save native Xref Db~
+>
+ :CCTreeSaveXRefDb cctree.out
+<
+This command will save the cross-referenced symbols currently loaded into
+memory into a serialized format for faster loading.
+
+Load native XRef Db~
+>
+ :CCTreeLoadXRefDb cctree.out
+<
+This command will load cross-referenced symbols from the previously saved
+native format database.
+
+ccglue~
+ *CCTree-ccglue*
+
+Check out the ccglue project at http://ccglue.sourceforge.net for an external
+tool that can build cctree-compatible xref databases.
+
+
+5.2. Exploring source-code~
+ *CCTree-explore-source*
+
+Get reverse call tree for symbol <C-\><
+>
+ :CCTreeTraceReverse <symbolname>
+<
+
+Get forward call tree for symbol <C-\>>
+>
+ :CCTreeTraceForward <symbolname>
+<
+Increase depth of tree and update <C-\>=
+>
+ :CCTreeRecurseDepthPlus
+<
+Decrease depth of tree and update <C-\>-
+>
+ :CCTreeRecurseDepthMinus
+<
+5.3. Preview Window~
+ *CCTree-preview-window*
+Open symbol in other window <CR>
+Preview symbol in other window <Ctrl-P>
+
+5.4. Syntax Coloring~
+ *CCTree-Syntax*
+CCTreeHiXXXX allows dynamic highlighting of the call-tree. To observe the
+effect, move the cursor to the function to highlight the current call-tree.
+This option can be turned off using the setting, *CCTreeHilightCallTree* .
+
+For faster highlighting, the value of 'updatetime' can be changed.
+
+5.5 Support for large database files~
+ *CCTree-LargeDatabase* *CCTree-LargeFile*
+Vimscript does not have an API for reading files line-by-line. This
+becomes a problem when parsing large databases. CCTree can overcome
+the limitation using an external utility (i.e., GNU coreutils: split)
+or VimScript's perl interpreter interface (:version must indicate +perl)
+
+5.5.1 Using GNU Coreutils (split/cat)~
+ *CCTree-Tools-split* *CCTree-Tools-cat*
+ The following settings are tailored to suit GNU coreutils split; the
+default settings should work with no changes on typical linux/unix distros.
+Monopoly OSes will require installation of unixutils or equivalent.
+
+External command is setup with the following parameters~
+>
+ let g:CCTreeSplitProgCmd =
+ 'PROG_SPLIT SPLIT_OPT SPLIT_SIZE IN_FILE OUT_FILE_PREFIX'
+<
+
+Break-down of individual parameters~
+The split utility is assumed to be on the path; otherwise, specify full path
+ g:CCTreeSplitProg = 'split'
+
+Option for splitting files (-C or -l)~
+>
+ let g:CCTreeSplitProgOption = '-C'
+<
+If split program does not support -C, then this parameter must be set to
+the number of lines in the split files
+>
+ let g:CCTreeDbFileSplitLines = -1
+<
+Largest filesize Vimscript can handle; file sizes greater than this will
+be temporarily split
+>
+ let g:CCTreeDbFileMaxSize = 40000000 (40 Mbytes)
+<
+Sample system command~
+Typical:
+>
+ split -C 40000000 inputFile outputFilePrefix
+<
+ When g:CCTreeDbFileSplitLines is set to 10000 (-C options will be ignored)
+>
+ split -l 10000 inputFile outputFilePrefix
+<
+ *CCTree-Tools-Perl*
+ *CCTree-Tools-Perl-LargeFile*
+Enabling perl interface~
+
+ By default, perl usage is disabled. Set
+>
+ let g:CCTreeUsePerl = 1
+< to enable the perl interface.
+
+ Perl interface is typically faster than native Vimscript.
+ This option can be used independent of the file size
+
+ For more info on setting up perl interface
+ :help |perl-using| or :help |perl-dynamic|
+
+5.6. Miscellaneous *CCTree-Miscellaneous*
+
+ UTF-8 usage *CCTree-UTF8-Symbols*
+ UTF-8 symbols should work fine on the majority of
+ X11 systems; however, some terminals might cause problems.
+
+ To use symbols for drawing the tree, this option can be enabled.
+>
+ let g:CCTreeUseUTF8Symbols = 1
+<
+ The options interface (CCTreeOptsxxx) can be used to
+ modify options on-the-fly.
+
+==============================================================================
+6. Limitations~
+ *CCTree-limitations*
+
+The following are known limitations:
+
+Basic Symbol Processing:
+ (1) The accuracy of the call-tree will only be as good as the cscope database
+generation. (NOTE: Different flavors of Cscope have some known limitations
+due to the lexical analysis engine. This results in incorrectly identified
+function blocks, etc.)
+
+Enhanced Symbol Processing:
+ (1) Cscope does not mark-up nameless enums correctly; hence,
+CCTree cannot recognize nameless enum symbols.
+
+
+==============================================================================
+7. FAQ~
+ *CCTree-faq*
+
++ I see strange characters "!#@" on my screen when dynamic highlighting is
+enabled. Why do I see them?
+
+Check :hi ignore. You will see something like
+hi ignore ctermfg=white guifg=bg
+
+ For console, white must be your background color; for GUI, guifg must be set
+to bg.
+
+==============================================================================
+8. History~
+ *CCTree-history*
+Version 1.51: May 18, 2011
+ 1. Robust error reporting when external (split/cat) utils fail
+
+Version 1.50: May 6, 2011
+ 1. Support cross-referencing of global variables, macros,
+ enums, and typedefs.
+
+Version 1.40: April 22, 2011
+ 1. Maintain order of functions called during forward tracing
+
+Version 1.39: April 18, 2011
+ 1. Use +Conceal feature for highlighting (only Vim 7.3)
+
+Version 1.33: April 5, 2011
+ 1. Load and trace CCTree native XRefDb directly from disk
+ 2. Fix AppendDB command when 'ignorecase' is set
+
+Version 1.26: March 28, 2011
+ 1. Fix macro cross-referencing limitation
+ 2. Correct native xref file format
+
+Version 1.21: March 21, 2011
+ 1. Support serialization of loaded
+ cscope databases (for faster loading)
+
+Version 1.07: March 09, 2011
+ 1. Fix new keymaps incorrectly applied to buffer
+ 2. CCTreeOptsToggle command for toggling options
+
+Version 1.04: March 06, 2011
+ 1. Customization for key mappings
+ 2. Dynamic configuration of UI variables
+ 3. Folding long call-trees to show current path dynamically
+
+Version 1.01: March 04, 2011
+ 1. Make UTF-8 symbols for tree optional
+
+Version 1.00: March 02, 2011
+ 1. Staging release for upcoming features
+ - Complete refactoring of code to take
+ advantage of VimScript's OO features
+ 2. Faster decompression of symbols
+ 3. Display related changes
+ - Use of unicode symbols for tree
+ 4. Bugfixes related to multi-database loading
+
+Version 0.90: February 18, 2011
+ 1. Support for large databases using external split utility or perl
+ interface
+
+Version 0.85: February 9, 2011
+ 1. Significant increase in database loading and decompression speeds
+
+Version 0.80: February 4, 2011
+ 1. Reduce memory usage by removing unused xref symbols
+
+Version 0.75: June 23, 2010
+ 1. Support for saving CCTree preview window; multiple
+ CCTree windows can now be open
+
+ersion 0.71: May 11, 2010
+ 1. Fix script bug
+
+Version 0.70: May 8, 2010
+ 1. Functionality to load multiple cscope databases
+
+Version 0.65: July 12, 2009
+ 1. Toggle preview window
+
+Version 0.61: December 24, 2008
+ 1. Fixed bug when processing include files
+ 2. Remove 'set ruler' option
+
+Version 0.60: November 26, 2008
+ 1. Added support for source-file dependency tree
+
+Version 0.50: October 17, 2008
+ 1. Optimizations for compact memory foot-print and
+ improved compressed-database load speeds
+
+Version 0.41: October 6, 2008
+ 1. Minor fix: Compressed cscope databases will load
+ incorrectly if encoding is not 8-bit
+
+Version 0.4: September 28, 2008
+ 1. Rewrite of display-related code
+ 2. New syntax hightlighting
+ 3. Dynamic highlighting for call-trees
+ 4. Support for new window modes (vertical, horizontal)
+ 5. New display format option for compact or wide call-trees
+ 6. Preview window fix
+
+Version 0.3: September 21, 2008
+ 1. Support compressed cscope databases
+ 2. Display window related bugs fixed
+ 3. More intuitive display and folding capabilities
+
+Version 0.2: September 12, 2008
+ (Patches from Yegappan Lakshmanan, thanks!)
+ 1. Support for using the plugin in Vi-compatible mode
+ 2. Filtering out unwanted lines before processing the db
+ 3. Command-line completion for the commands
+ 4. Using the cscope db from any directory
+
+Version 0.1: August 31,2008
+ 1. Cross-referencing support for only functions and macros
+ (Note: Functions inside macro definitions will be incorrectly
+ attributed to the top level calling function)
+
+
+==============================================================================
+9. Thanks~
+ *CCTree-thanks*
+
+
+ Qaiser Durrani (ver 1.51 -- Reporting issues with SunOS)
+ Ben Fritz (ver 1.39 -- Suggestion/Testing for
+ conceal feature)
+ Ben Fritz (ver 1.26 -- Bug report)
+ Frank Chang (ver 1.0x -- testing/UI enhancement
+ ideas/bug fixes)
+ Arun Chaganty/Timo Tiefel (Ver 0.60 -- bug report)
+ Michael Wookey (Ver 0.40 -- Testing/bug report/patches)
+ Yegappan Lakshmanan (Ver 0.20 -- Patches)
+
+ The Vim Community, ofcourse :)
+
+
+vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl:
+
diff --git a/contrib/cctree.vim b/contrib/cctree.vim
new file mode 100644
index 0000000..0382220
--- /dev/null
+++ b/contrib/cctree.vim
@@ -0,0 +1,3398 @@
+" C Call-Tree Explorer (CCTree) <CCTree.vim>
+"
+"
+" Script Info and Documentation
+"=============================================================================
+" Copyright: Copyright (C) August 2008 - 2011, Hari Rangarajan
+" Permission is hereby granted to use and distribute this code,
+" with or without modifications, provided that this copyright
+" notice is copied with it. Like anything else that's free,
+" cctree.vim is provided *as is* and comes with no
+" warranty of any kind, either expressed or implied. In no
+" event will the copyright holder be liable for any damamges
+" resulting from the use of this software.
+"
+" Name Of File: CCTree.vim
+" Description: C Call-Tree Explorer Vim Plugin
+" Maintainer: Hari Rangarajan <hari.rangarajan@gmail.com>
+" URL: http://vim.sourceforge.net/scripts/script.php?script_id=2368
+" Last Change: May 18, 2011
+" Version: 1.51
+"
+"=============================================================================
+"
+" {{{ Description:
+" Plugin generates dependency-trees for symbols using a cscope database
+" in Vim.
+" }}}
+" {{{ Requirements: 1) Vim 7.xx , 2) Cscope
+"
+" Tested on Unix and the following Win32 versions:
+" + Cscope, mlcscope (WIN32)
+" http://code.google.com/p/cscope-win32/
+" http://www.bell-labs.com/project/wwexptools/packages.html
+" }}}
+" {{{ Installation:
+" Copy this file to ~/.vim/plugins/
+" or to /vimfiles/plugins/ (on Win32 platforms)
+"
+" It might also be possible to load it as a filetype plugin
+" ~/.vim/ftplugin/c/
+"
+" Need to set :filetype plugin on
+"
+" }}}
+" {{{ Usage:
+" Build cscope database, for example:
+" > cscope -b -i cscope.files
+" [Tip: add -c option to build uncompressed databases for faster
+" load speeds]
+"
+" Load database with command ":CCTreeLoadDB"
+" (Please note that it might take a while depending on the
+" database size)
+"
+" Append database with command ":CCTreeAppendDB"
+" Allows multiple cscope files to be loaded and cross-referenced
+" Illustration:
+" :CCTreeAppendDB ./cscope.out
+" :CCTreeAppendDB ./dir1/cscope.out
+" :CCTreeAppendDB ./dir2/cscope.out
+"
+" A database name, i.e., my_cscope.out, can be specified with
+" the command. If not provided, a prompt will ask for the
+" filename; default is cscope.out.
+"
+" To show loaded databases, use command ":CCTreeShowLoadedDBs"
+"
+" To unload all databases, use command ":CCTreeUnLoadDB"
+" Note: There is no provision to unload databases individually
+"
+" To save the current set of databases loaded in to memory onto disk
+" in native CCTree XRef format, use command ":CCTreeSaveXRefDB"
+"
+" To load a saved native CCTree XRef format file, use
+" command ":CCTreeLoadXRefDB"
+"
+" To load a saved native CCTree XRef format file, use
+" command ":CCTreeLoadXRefDBFromDisk"
+"
+" Notes: No merging database support for CCTree native DB's [at present].
+"
+"
+" To have multiple CCTree preview windows, use ":CCTreeWindowSaveCopy"
+" Note: Once saved, only the depth of the preview window can be changed
+"
+" Default Mappings:
+" Get reverse call tree for symbol <C-\><
+" Get forward call tree for symbol <C-\>>
+" Increase depth of tree and update <C-\>=
+" Decrease depth of tree and update <C-\>-
+"
+" Open symbol in other window <CR>
+" Preview symbol in other window <Ctrl-P>
+"
+" Save copy of preview window <C-\>y
+" Highlight current call-tree flow <C-l>
+" Compress(Fold) call tree view zs
+" (This is useful for viewing long
+" call trees which span across
+" multiple pages)
+"
+" Custom user-mappings:
+" Users can custom-map the short-cut keys by
+" overriding the following variables in their
+" Vim start-up configuration
+"
+" g:CCTreeKeyTraceForwardTree = '<C-\>>'
+" g:CCTreeKeyTraceReverseTree = '<C-\><'
+" g:CCTreeKeyHilightTree = '<C-l>' " Static highlighting
+" g:CCTreeKeySaveWindow = '<C-\>y'
+" g:CCTreeKeyToggleWindow = '<C-\>w'
+" g:CCTreeKeyCompressTree = 'zs' " Compress call-tree
+" g:CCTreeKeyDepthPlus = '<C-\>='
+" g:CCTreeKeyDepthMinus = '<C-\>-'
+"
+" Command List:
+" CCTreeLoadDB <dbname>
+" CCTreeAppendDB <dbname>
+" CCTreeLoadXRefDB <dbname>
+" CCTreeSaveXRefDB <dbname>
+" CCTreeLoadXRefDBFromDisk <dbname>
+"
+" CCTreeUnLoadDB
+" CCTreeShowLoadedDBs
+"
+" CCTreeTraceForward <symbolname>
+" CCTreeTraceReverse <symbolname>
+" CCTreeRecurseDepthPlus
+" CCTreeRecurseDepthMinus
+" CCTreeWindowSaveCopy
+"
+" Only in preview window:
+" CCTreeWindowHiCallTree (same as <C-l> shorcut)
+" Highlight calling tree for keyword at cursor
+"
+" Dynamic configuration:
+" CCTreeOptsEnable <option> (<tab> for auto-complete)
+" CCTreeOptsDisable <option> (<tab> for auto-complete)
+" CCTreeOptsToggle <option> (<tab> for auto-complete)
+" Options:
+" DynamicTreeHiLights: Control dynamic tree highlighting
+" UseUnicodeSymbols: Use of UTF-8 special characters for
+" tree
+" UseConceal: Use (+Conceal) feature instead of 'ignore'
+" syntax highlighting. Allows CCTree window
+" to be exported in HTML without syntax markup
+" characters. (Vim 7.3+ only)
+" EnhancedSymbolProcessing: Cross-reference enums, macros,
+" global variables, typedefs (Warning: Database
+" processing speeds will be slow).
+"
+"
+"
+" Settings:
+" Customize behavior by changing the variable settings
+"
+" UTF-8 usage:
+" UTF-8 symbols should work fine on the majority of
+" X11 systems; however, some terminals might cause problems.
+"
+" To use symbols for drawing the tree, this option can be enabled.
+" g:CCTreeUseUTF8Symbols = 1
+" The options interface (CCTreeOptsxxx) can be used to
+" modify options on-the-fly.
+"
+" Cscope database file, g:CCTreeCscopeDb = "cscope.out"
+" Maximum call levels, g:CCTreeRecursiveDepth = 3
+" Maximum visible(unfolded) level, g:CCTreeMinVisibleDepth = 3
+" Orientation of window, g:CCTreeOrientation = "topleft"
+" (standard vim options for split: [right|left][above|below])
+"
+" Use Vertical window, g:CCTreeWindowVertical = 1
+" Min width for window, g:CCTreeWindowMinWidth = 40
+" g:CCTreeWindowWidth = -1, auto-select best width to fit
+"
+" Horizontal window, g:CCTreeWindowHeight, default is -1
+"
+"
+" Display format, g:CCTreeDisplayMode, default 1
+"
+" Values: 1 -- Ultra-compact (takes minimum screen width)
+" 2 -- Compact (Takes little more space)
+" 3 -- Wide (Takes copious amounts of space)
+"
+" For vertical splits, 1 and 2 are good, while 3 is good for
+" horizontal displays
+"
+" NOTE: To get older behavior, add the following to your vimrc
+" let g:CCTreeDisplayMode = 3
+" let g:CCTreeWindowVertical = 0
+"
+" Syntax Coloring:
+" CCTreeSymbol is the symbol name
+" CCTreeMarkers include "|","+--->"
+"
+" CCTreeHiSymbol is the highlighted call tree functions
+" CCTreeHiMarkers is the same as CCTreeMarkers except
+" these denote the highlighted call-tree
+"
+"
+" CCTreeHiXXXX allows dynamic highlighting of the call-tree.
+" To observe the effect, move the cursor to the function to
+" highlight the current call-tree. This option can be
+" turned off using the setting, g:CCTreeHilightCallTree.
+" For faster highlighting, the value of 'updatetime' can be
+" changed.
+"
+" Support for large database files:
+" Vimscript does not have an API for reading files line-by-line. This
+" becomes a problem when parsing large databases. CCTree can overcome
+" the limitation using an external utility (i.e., GNU coreutils: split)
+" or VimScript's perl interpreter interface (:version must indicate +perl)
+"
+" The following settings are tailored to suit GNU coreutils split; the default
+" settings should work with no changes on typical linux/unix distros
+" (Monopoly OSes will require installation of unixutils or equivalent)
+"
+" External command is setup with the following parameters:
+" g:CCTreeSplitProgCmd = 'PROG_SPLIT SPLIT_OPT SPLIT_SIZE IN_FILE OUT_FILE_PREFIX'
+"
+" Break-down of individual parameters:
+" The split utility is assumed to be on the path; otherwise, specify full path
+" g:CCTreeSplitProg = 'split'
+"
+" Option for splitting files (-C or -l)
+" g:CCTreeSplitProgOption = '-C'
+" If split program does not support -C, then this parameter must be set to
+" the number of lines in the split files
+" g:CCTreeDbFileSplitLines = -1
+" Largest filesize Vimscript can handle; file sizes greater than this will
+" be temporarily split
+" g:CCTreeDbFileMaxSize = 40000000 (40 Mbytes)
+"
+" Sample system command:
+" Typical:
+" split -C 40000000 inputFile outputFilePrefix
+"
+" When g:CCTreeDbFileSplitLines is set to 10000 (-C options will be ignored)
+" split -l 10000 inputFile outputFilePrefix
+"
+"
+" Using perl interface:
+" By default, perl usage is disabled. Set
+" g:CCTreeUsePerl = 1 to enable the perl interface.
+"
+" Perl interface is typically faster than native Vimscript.
+" This option can be used independent of the file size
+"
+" For more info on setting up perl interface
+" :help perl-using or :help perl-dynamic
+"
+" Writing large Xref Databases:
+" CCTree can use external utilities to write extremely large files beyond
+" VimScripts capabilities. It requires the use of an external tool that can
+" join text files (i.e., 'cat' in unix). This utility is triggered if the size
+" of the file being written exceeds g:CCTreeDbFileMaxSize (40 Mb or as configured)
+"
+" The join utility command is configured by default as follows:
+" let CCTreeJoinProgCmd = 'PROG_JOIN JOIN_OPT IN_FILES > OUT_FILE'
+"
+" let g:CCTreeJoinProg = 'cat' " PROG_JOIN
+" let g:CCTreeJoinProgOpts = "" " JOIN_OPT
+"
+"
+" }}}
+" {{{ Limitations:
+" Basic Symbol Processing:
+" The accuracy of the call-tree will only be as good as the cscope
+" database generation.
+" NOTE: Different flavors of Cscope have some known
+" limitations due to the lexical analysis engine. This results
+" in incorrectly identified function blocks, etc.
+" Enhanced Symbol Processing:
+" (1) Cscope does not mark-up nameless enums correctly; hence,
+" CCTree cannot recognize nameless enum symbols.
+" }}}
+" {{{ History:
+" Version 1.51: May 18, 2011
+" 1. Robust error reporting when external (split/cat) utils fail
+" Version 1.50: May 6, 2011
+" 1. Support cross-referencing of global variables, macros,
+" enums, and typedefs.
+" Version 1.40: April 22, 2011
+" 1. Maintain order of functions called during forward tracing
+" Version 1.39: April 18, 2011
+" 1. Use +Conceal feature for highlighting (only Vim 7.3)
+" Version 1.33: April 5, 2011
+" 1. Load and trace CCTree native XRefDb directly from disk
+" 2. Fix AppendDB command when 'ignorecase' is set
+" Version 1.26: March 28, 2011
+" 1. Fix macro cross-referencing limitation
+" 2. Correct native xref file format
+" Version 1.21: March 21, 2011
+" 1. Support serialization of loaded
+" cscope databases (for faster loading)
+" Version 1.07: March 09, 2011
+" 1. Fix new keymaps incorrectly applied to buffer
+" 2. CCTreeOptsToggle command for toggling options
+"
+" Version 1.04: March 06, 2011
+" 1. Customization for key mappings
+" 2. Dynamic configuration of UI variables
+" 3. Folding long call-trees to show current path dynamically
+"
+" Version 1.01: March 04, 2011
+" 1. Make UTF-8 symbols for tree optional
+"
+" Version 1.00: March 02, 2011
+" 1. Staging release for upcoming features
+" - Complete refactoring of code to take
+" advantage of VimScript's OO features
+" 2. Faster decompression of symbols
+" 3. Display related changes
+" - Use of unicode symbols for tree
+" 4. Bugfixes related to multi-database loading
+"
+" Version 0.90: February 18, 2011
+" 1. Support for large databases using external split utility or perl
+" interface
+"
+" Version 0.85: February 9, 2011
+" 1. Significant increase in database loading and decompression speeds
+"
+" Version 0.80: February 4, 2011
+" 1. Reduce memory usage by removing unused xref symbols
+"
+" Version 0.75: June 23, 2010
+" 1. Support for saving CCTree preview window; multiple
+" CCTree windows can now be open
+"
+" Version 0.71: May 11, 2010
+" 1. Fix script bug
+
+" Version 0.70: May 8, 2010
+" 1. Functionality to load multiple cscope databases
+"
+" Version 0.65: July 12, 2009
+" 1. Toggle preview window
+"
+" Version 0.61: December 24, 2008
+" 1. Fixed bug when processing include files
+" 2. Remove 'set ruler' option
+"
+" Version 0.60: November 26, 2008
+" 1. Added support for source-file dependency tree
+"
+" Version 0.50: October 17, 2008
+" 1. Optimizations for compact memory foot-print and
+" improved compressed-database load speeds
+"
+" Version 0.41: October 6, 2008
+" 1. Minor fix: Compressed cscope databases will load
+" incorrectly if encoding is not 8-bit
+"
+" Version 0.4: September 28, 2008
+" 1. Rewrite of "tree-display" code
+" 2. New syntax hightlighting
+" 3. Dynamic highlighting for call-trees
+" 4. Support for new window modes (vertical, horizontal)
+" 5. New display format option for compact or wide call-trees
+" NOTE: defaults for tree-orientation set to vertical
+"
+" Version 0.3:
+" September 21, 2008
+" 1. Support compressed cscope databases
+" 2. Display window related bugs fixed
+" 3. More intuitive display and folding capabilities
+"
+" Version 0.2:
+" September 12, 2008
+" (Patches from Yegappan Lakshmanan, thanks!)
+" 1. Support for using the plugin in Vi-compatible mode.
+" 2. Filtering out unwanted lines before processing the db.
+" 3. Command-line completion for the commands.
+" 4. Using the cscope db from any directory.
+"
+" Version 0.1:
+" August 31,2008
+" 1. Cross-referencing support for only functions and macros
+" Functions inside macro definitions will be incorrectly
+" attributed to the top level calling function
+"
+" }}}
+" {{{ Thanks:
+"
+" Qaiser Durrani (ver 1.51 -- Reporting issues with SunOS)
+" Ben Fritz (ver 1.39 -- Suggestion/Testing for conceal feature)
+" Ben Fritz (ver 1.26 -- Bug report)
+" Frank Chang (ver 1.0x -- testing/UI enhancement ideas/bug fixes)
+" Arun Chaganty/Timo Tiefel (Ver 0.60 -- bug report)
+" Michael Wookey (Ver 0.4 -- Testing/bug report/patches)
+" Yegappan Lakshmanan (Ver 0.2 -- Patches)
+"
+" The Vim Community, ofcourse :)
+"=============================================================================
+" }}}
+
+" {{{ Init
+if !exists('loaded_cctree') && v:version >= 700
+ " First time loading the cctree plugin
+ let loaded_cctree = 1
+else
+ "finish
+endif
+
+" Line continuation used here
+let s:cpo_save = &cpoptions
+set cpoptions&vim
+
+" Trick to get the current script ID
+map <SID>xx <SID>xx
+let s:sid = substitute(maparg('<SID>xx'), '<SNR>\(\d\+_\)xx$', '\1', '')
+unmap <SID>xx
+"}}}
+" {{{ Global variables; Modify in .vimrc to modify default behavior
+" {{{General
+if !exists('CCTreeCscopeDb')
+ let CCTreeCscopeDb = "cscope.out"
+endif
+" revisit
+if !exists('CCTreeDb')
+ let CCTreeDb = "cctree.out"
+endif
+if !exists('CCTreeRecursiveDepth')
+ let CCTreeRecursiveDepth = 3
+endif
+if !exists('CCTreeMinVisibleDepth')
+ let CCTreeMinVisibleDepth = 3
+endif
+if !exists('CCTreeEnhancedSymbolProcessing')
+ let CCTreeEnhancedSymbolProcessing = 0
+endif
+" }}}
+" {{{ Custom user-key mappings
+if !exists('CCTreeKeyTraceForwardTree')
+ let g:CCTreeKeyTraceForwardTree = '<C-\>>'
+endif
+if !exists('CCTreeKeyTraceReverseTree')
+ let g:CCTreeKeyTraceReverseTree = '<C-\><'
+endif
+if !exists('CCTreeKeyHilightTree')
+ let g:CCTreeKeyHilightTree = '<C-l>' " Static highlighting
+endif
+if !exists('CCTreeKeySaveWindow ')
+ let g:CCTreeKeySaveWindow = '<C-\>y'
+endif
+if !exists('CCTreeKeyToggleWindow ')
+ let g:CCTreeKeyToggleWindow = '<C-\>w'
+endif
+if !exists('CCTreeKeyCompressTree ')
+ let g:CCTreeKeyCompressTree = 'zs' " Compress call-tree
+endif
+if !exists('CCTreeKeyDepthPlus')
+ let g:CCTreeKeyDepthPlus = '<C-\>='
+endif
+if !exists('CCTreeKeyDepthMinus')
+ let g:CCTreeKeyDepthMinus = '<C-\>-'
+endif
+" }}}
+" {{{ CCTree UI settings
+if !exists('CCTreeOrientation')
+ let CCTreeOrientation = "topleft"
+endif
+if !exists('CCTreeWindowVertical')
+ let CCTreeWindowVertical = 1
+endif
+if !exists('CCTreeWindowWidth')
+ " -1 is auto select best width
+ let CCTreeWindowWidth = -1
+endif
+if !exists('CCTreeWindowMinWidth')
+ let CCTreeWindowMinWidth = 25
+endif
+if !exists('CCTreeWindowHeight')
+ let CCTreeWindowHeight = -1
+endif
+if !exists('CCTreeDisplayMode')
+ let CCTreeDisplayMode = 1
+endif
+if !exists('CCTreeHilightCallTree')
+ let CCTreeHilightCallTree = 1
+endif
+" }}}
+" {{{ Split prog
+if !exists('CCTreeSplitProgCmd')
+ let CCTreeSplitProgCmd = 'PROG_SPLIT SPLIT_OPT SPLIT_SIZE IN_FILE OUT_FILE_PREFIX'
+endif
+
+if !exists('CCTreeSplitProg')
+ "PROG_SPLIT
+ let CCTreeSplitProg = 'split'
+endif
+
+if !exists('CCTreeSplitProgOption')
+ "SPLIT_OPT
+ let CCTreeSplitProgOption = '-C'
+endif
+
+if !exists('CCTreeDbFileSplitLines')
+ " if SPLIT_OPT is -l
+ " If split program does not support -C, then this parameter must be set to
+ " the number of lines in the split files
+ let CCTreeDbFileSplitLines = -1
+endif
+
+if !exists('CCTreeSplitProgCmd')
+ let CCTreeSplitProgCmd = 'PROG_SPLIT SPLIT_OPT SPLIT_SIZE IN_FILE OUT_FILE_PREFIX'
+endif
+
+if !exists('CCTreeDbFileMaxSize')
+ " if SPLIT_OPT is -C
+ let CCTreeDbFileMaxSize = 40000000 "40 Mbytes
+endif
+
+" }}}
+" {{{ Join/Cat prog
+if !exists('CCTreeJoinProgCmd')
+ let CCTreeJoinProgCmd = 'PROG_JOIN JOIN_OPT IN_FILES > OUT_FILE'
+endif
+
+if !exists('CCTreeJoinProg')
+ "PROG_JOIN
+ let CCTreeJoinProg = 'cat'
+endif
+
+if !exists('CCTreeJoinProgOpts')
+ let CCTreeJoinProgOpts = ""
+endif
+" }}}
+" {{{ Misc (perl)
+if !exists('CCTreeUsePerl')
+ " Disabled by default
+ let CCTreeUsePerl = 0
+if 0 " Auto-detect perl interface (Experimental code)
+ if has('perl)
+perl << PERL_EOF
+ VIM::DoCommand("let CCTreeUsePerl = 1");
+PERL_EOF
+ endif
+endif
+endif
+
+if has('conceal')
+ let s:CCTreeUseConceal = 1
+else
+ let s:CCTreeUseConceal = 0
+endif
+
+if !exists('CCTreeUseUTF8Symbols')
+ let CCTreeUseUTF8Symbols = 0
+endif
+" }}}
+" }}}
+" {{{ Plugin related local variables
+let s:pluginname = 'CCTree'
+let s:windowtitle = 'CCTree-View'
+let s:windowsavetitle = 'CCTree-View-Copy'
+
+let s:DBClasses = { 'cscopeid': 'Cscope', 'cctreexref' : 'CCTree XRef'}
+let s:DBStorage = { 'memory': 'Memory', 'disk' : 'Disk'}
+
+" }}}
+" {{{ Turn on/off debugs
+let s:tag_debug=0
+
+" Use the Decho plugin for debugging
+function! DBGecho(...)
+ if s:tag_debug
+ Decho(a:000)
+ endif
+endfunction
+
+function! DBGredir(...)
+ if s:tag_debug
+ Decho(a:000)
+ endif
+endfunction
+
+function! Pause()
+ call input("sasasD", "asdads")
+endfunction
+" }}}
+" {{{ Progress bar (generic, numeric, rolling)
+let s:GenericProgressBar= {
+ \ 'depth': 0,
+ \ 'depthChar': '',
+ \ 'currentChar': 0,
+ \ 'updateTime': 0,
+ \ 'rangeChars': [],
+ \ 'formatStr' : '',
+ \ 'units' : ''
+ \ }
+
+function! s:GenericProgressBar.mCreate(rangechars, depthchar, fmtStr)
+ let pbr = deepcopy(s:GenericProgressBar)
+ unlet pbr.mCreate
+
+ let pbr.rangeChars = a:rangechars
+ let pbr.depthChar = a:depthchar
+ let pbr.formatStr = a:fmtStr
+
+ return pbr
+endfunction
+
+function! s:GenericProgressBar.mSetDepth(val) dict
+ let self.depth = a:val
+endfunction
+
+function! s:GenericProgressBar.mUpdate() dict
+ let staticchars = repeat(self.depthChar, self.depth)
+ let displayStr = substitute(self.formatStr, "\@PROGRESS\@",
+ \ staticchars . self.rangeChars[self.currentChar], "")
+ call s:StatusLine.mSetExtraInfo(displayStr)
+endfunction
+
+function! s:GenericProgressBar.mDone()
+ call s:StatusLine.mSetExtraInfo("")
+endfunction
+
+let s:ProgressBarRoll = {
+ \ 'updateTime' : 0,
+ \ 'curTime' : 0
+ \}
+
+function! s:ProgressBarRoll.mCreate(rollchars, depthChar) dict
+ let gpbr = s:GenericProgressBar.mCreate(a:rollchars, a:depthChar, "\@PROGRESS\@")
+ let pbr = extend(gpbr, deepcopy(s:ProgressBarRoll))
+ unlet pbr.mCreate
+
+ let pbr.curTime = localtime()
+
+ return pbr
+endfunction
+
+function! s:ProgressBarRoll.mTick(count) dict
+ if (localtime() - self.curTime) > self.updateTime
+ let self.currentChar += 1
+ if self.currentChar == len(self.rangeChars)
+ let self.currentChar = 0
+ endif
+ let self.curTime = localtime()
+ call self.mUpdate()
+ endif
+endfunction
+
+let s:ProgressBarNumeric = {
+ \ 'progress1current' : 0,
+ \ 'progressmax' : 0,
+ \ 'progress1percent' : 0,
+ \ 'progresspercent' : 0,
+ \}
+
+function! s:ProgressBarNumeric.mCreate(maxcount, unit) dict
+ let gpbr = s:GenericProgressBar.mCreate(range(0,200), '',
+ \ "Processing \@PROGRESS\@\%, total ". a:maxcount . " " . a:unit)
+ let progressbar = extend(gpbr, deepcopy(s:ProgressBarNumeric))
+ unlet progressbar.mCreate
+
+ let progressbar.progressmax = a:maxcount
+ let progressbar.progress1percent = a:maxcount/100
+
+ let progressbar.units = a:unit
+
+ return progressbar
+endfunction
+
+
+function! s:ProgressBarNumeric.mTick(count) dict
+ let self.progress1current += a:count
+ if self.progress1percent <= self.progress1current
+ let tmp = (self.progress1current/self.progress1percent)
+ let self.progresspercent += tmp
+ let self.progress1current -= tmp * self.progress1percent
+ let self.currentChar += 1
+ call self.mUpdate()
+ endif
+endfunction
+
+" }}}
+" {{{ Status line
+let s:StatusLine = {
+ \ 'symlastprogress' : 0,
+ \ 'symprogress' : 0,
+ \ 'cursym' : 0,
+ \ 'savedStatusLine' : '',
+ \ 'statusextra' : '',
+ \ 'local':0
+ \}
+
+function! s:StatusLine.mInit() dict
+ let self.savedStatusLine = &l:statusline
+ setlocal statusline=%{CCTreeStatusLine()}
+endfunction
+
+function! s:StatusLine.mRestore() dict
+ let self.currentstatus = ''
+ let self.statusextra = ''
+
+ let &l:statusline = s:StatusLine.savedStatusLine
+ redrawstatus
+endfunction
+
+function! s:StatusLine.mSetInfo(msg) dict
+ let s:StatusLine.currentstatus = a:msg
+ redrawstatus
+endfunction
+
+function! s:StatusLine.mSetExtraInfo(msg) dict
+ let s:StatusLine.statusextra = a:msg
+ redrawstatus
+endfunction
+
+function! CCTreeStatusLine()
+ return s:pluginname. " ".
+ \ s:StatusLine.currentstatus . " -- ".
+ \ s:StatusLine.statusextra
+endfunction
+"}}}
+" {{{ Shell command interface
+
+let s:ShellCmds = {'shellOutput': ''}
+
+function! s:ShellCmds.mSplit(inFile, outFile)
+ let cmdEx = substitute(g:CCTreeSplitProgCmd, "PROG_SPLIT", g:CCTreeSplitProg,"")
+ let cmdEx = substitute(cmdEx, "SPLIT_OPT", g:CCTreeSplitProgOption,"")
+ if g:CCTreeDbFileSplitLines != -1
+ let cmdEx = substitute(cmdEx, "SPLIT_SIZE", g:CCTreeDbFileSplitLines,"")
+ else
+ let cmdEx = substitute(cmdEx, "SPLIT_SIZE", g:CCTreeDbFileMaxSize,"")
+ endif
+ let cmdEx = substitute(cmdEx, "IN_FILE", a:inFile,"")
+ let cmdEx = substitute(cmdEx, "OUT_FILE_PREFIX", a:outFile,"")
+
+ return cmdEx
+endfunction
+
+function! s:ShellCmds.mJoin(inFileList, outFile)
+ let cmdEx = substitute(g:CCTreeJoinProgCmd, "PROG_JOIN", g:CCTreeJoinProg,"")
+ let cmdEx = substitute(cmdEx, "JOIN_OPT", g:CCTreeJoinProgOpts,"")
+ let cmdEx = substitute(cmdEx, "IN_FILES", a:inFileList,"")
+ let cmdEx = substitute(cmdEx, "OUT_FILE", a:outFile,"")
+
+ return cmdEx
+endfunction
+
+function! s:ShellCmds.mExec(cmd)
+ let s:shellOutput= system(a:cmd)
+ if s:shellOutput != ''
+ " Failed
+ return s:CCTreeRC.Error
+ endif
+ return s:CCTreeRC.Success
+endfunction
+
+" }}}
+
+" {{{ Virtual file interface
+let s:vFile = {}
+
+function! s:vFile.mCreate(fname, mode)
+ if a:mode == 'r'
+ return s:vFileR.mCreate(a:fname)
+ elseif a:mode == 'w'
+ return s:vFileW.mCreate(a:fname)
+ endif
+ return -1
+endfunction
+
+let s:vFileW = {
+ \ 'splitfiles' : [],
+ \ 'totSplits' : 0,
+ \ 'lines' : [],
+ \ 'fileSize' : 0
+ \}
+
+function! s:vFileW.mCreate(fname) dict
+ let vfile = deepcopy(s:vFileW)
+ unlet vfile.mCreate
+ let vfile.link = a:fname
+
+ return vfile
+endfunction
+
+function! s:vFileW.mCreateSplit() dict
+ " first split, create name
+ if self.totSplits == 0
+ let self.tlink = tempname()
+ endif
+ let fname = self.tlink .'_'. self.totSplits
+ call writefile(self.lines, fname)
+ call add(self.splitfiles, fname)
+ let self.lines = []
+ let self.totSplits += 1
+endfunction
+
+function! s:vFileW.mTestForSplit() dict
+ if self.fileSize > g:CCTreeDbFileMaxSize
+ call self.mCreateSplit()
+ endif
+endfunction
+
+function! s:vFileW.mAddFileSize(size) dict
+ let self.fileSize += a:size
+endfunction
+
+function! s:vFileW.mWriteList(linelist) dict
+ call extend(self.lines, a:linelist)
+ call self.mTestForSplit()
+endfunction
+
+function! s:vFileW.mWriteLine(line) dict
+ call add(self.lines, a:line)
+ call self.mAddFileSize(len(a:line))
+ call self.mTestForSplit()
+endfunction
+
+function! s:vFileW.mClose() dict
+ if self.totSplits == 0
+ call writefile(self.lines, self.link)
+ else
+ " force remaining lines into a new split
+ call self.mCreateSplit()
+ " now join all of them
+ let filelist = join(self.splitfiles, " ")
+ let cmdEx = s:ShellCmds.mJoin(filelist, self.link)
+ if s:ShellCmds.mExec(cmdEx) != s:CCTreeRC.Success
+ let msg = s:shellOutput ."Shell command: ".cmdEx. " failed!".
+ \ " Refer help to setup split/join utils."
+ call s:CCTreeUtils.mWarningPrompt(msg)
+ endif
+ endif
+ for afile in self.splitfiles
+ call delete(afile)
+ endfor
+ return 0
+endfunction
+
+let s:vFileR = {
+ \ 'splitfiles' : [],
+ \ 'currentSplitIdx' : 0,
+ \ 'totSplits' : 0,
+ \ 'lines' : [],
+ \ 'valid' : 0,
+ \ 'mode' : ""
+ \}
+
+
+function! s:vFileR.mIsLargeFile() dict
+ if (getfsize(self.link) > g:CCTreeDbFileMaxSize)
+ return 1
+ endif
+ return 0
+endfunction
+
+function! s:vFileR.mCreate(fname) dict
+ let vfile = deepcopy(s:vFileR)
+ unlet vfile.mCreate
+ let vfile.link = a:fname
+ let vfile.valid = filereadable(a:fname)
+ let vfile.size = getfsize(a:fname)
+
+ return vfile
+endfunction
+
+function! s:vFileR.mOpen() dict
+ if self.mode == 'w'
+ " no need to do anything
+ return 0
+ endif
+
+ if self.mIsLargeFile() == 0
+ "little trick to keep interface uniform when we don't split
+ call add(self.splitfiles, self.link)
+ let self.totSplits = 1
+ else
+ let tmpDb = tempname()
+ let cmdEx = s:ShellCmds.mSplit(self.link, tmpDb)
+
+ if s:ShellCmds.mExec(cmdEx) != s:CCTreeRC.Success
+ let msg = s:shellOutput ."Shell command: ".cmdEx. " failed!".
+ \ " Refer help to setup split/join utils."
+ call s:CCTreeUtils.mWarningPrompt(msg)
+ return -1
+ else
+ let self.splitfiles = split(expand(tmpDb."*"), "\n")
+ endif
+ if empty(self.splitfiles)
+ return -1
+ endif
+ endif
+ let self.totSplits = len(self.splitfiles)
+ return 0
+endfunction
+
+function! s:vFileR.mRead() dict
+ if (self.currentSplitIdx >= len(self.splitfiles))
+ " out of bounds
+ return -1
+ endif
+ let self.lines = readfile(self.splitfiles[self.currentSplitIdx])
+ let self.currentSplitIdx += 1
+ return 0
+endfunction
+
+function! s:vFileR.mRewind() dict
+ let self.currentSplitIdx = 0
+ let self.lines = []
+endfunction
+
+
+function! s:vFileR.mClose() dict
+ if self.totSplits == 1
+ return
+ endif
+ for afile in self.splitfiles
+ call delete(afile)
+ endfor
+endfunction
+"}}}
+" {{{Stop watch
+let s:StopWatch = {
+ \ 'text' : "(no reltime feature)",
+ \}
+
+function! s:StopWatch.mCreate() dict
+ let stopWatch = deepcopy(s:StopWatch)
+ unlet stopWatch.mCreate
+
+ call stopWatch.mReset()
+ return stopWatch
+endfunction
+
+function! s:StopWatch.mReset() dict
+ if has('reltime')
+ let self.startRTime = reltime()
+ else
+ let self.startRTime = localtime()
+ endif
+endfunction
+
+function! s:StopWatch.mSnapElapsed() dict
+ if has('reltime')
+ let self.text = reltimestr(reltime(self.startRTime))
+ else
+ let self.text = localtime() - self.startRTime
+ endif
+endfunction
+
+function! s:StopWatch.mGetText() dict
+ return self.text
+endfunction
+"}}}
+" {{{ Digraph character compression/decompression routines
+
+let s:CharMaps = {
+ \'savedEncoding' : '',
+ \'mapkind' : ''
+ \}
+
+" The encoding needs to be changed to 8-bit, otherwise we can't swap special
+" 8-bit characters; restore after done
+function! s:CharMaps.mInitTranslator() dict
+ if self.mapkind == 'Alpha'
+ let self.savedEncoding = &encoding
+ let &encoding="latin1"
+ endif
+endfunction
+
+function! s:CharMaps.mDoneTranslator() dict
+ if self.mapkind == 'Alpha'
+ let &encoding=self.savedEncoding
+ endif
+endfunction
+
+function! s:CharMaps.CrossProduct(seq1, seq2) dict
+ let cpSeq = []
+ for dc1 in range(strlen(a:seq1))
+ for dc2 in range(strlen(a:seq2))
+ call add(cpSeq, a:seq1[dc1].a:seq2[dc2])
+ endfor
+ endfor
+ return cpSeq
+endfunction
+
+let s:TranslateMap = {}
+
+function! s:TranslateMap.mCreate (srcsym, destsym, mapkind, regex) dict
+ let dicttable = extend(deepcopy(s:CharMaps), deepcopy(s:TranslateMap))
+ unlet dicttable.CrossProduct
+
+ let dicttable.mappings = {}
+
+ " map lower
+ let maxsym = min([len(a:srcsym),len (a:destsym)])
+
+ let index = 0
+ while (index < maxsym)
+ let dicttable.mappings[a:srcsym[index]] = a:destsym[index]
+ let index += 1
+ endwhile
+ " Need mapping lens, we assume it's constant across the board
+ let dicttable.mapsrclen = len(a:srcsym[0])
+ let dicttable.regex = a:regex
+
+
+ if a:mapkind == 'Alpha'
+ let dicttable.mTranslate = dicttable.mTranslateAlpha
+ elseif a:mapkind == 'Numeric'
+ let dicttable.mTranslate = dicttable.mTranslateNumeric
+ endif
+
+ let dicttable.mapkind = a:mapkind
+
+ unlet dicttable.mTranslateNumeric
+ unlet dicttable.mTranslateAlpha
+
+ return dicttable
+endfunction
+
+
+function! s:TranslateMap.mTranslateNumeric(value) dict
+ let index = 0
+ let retval = ""
+
+ " remember to deal with multi-byte characters
+ while index < len(a:value)
+ let char1 = char2nr(a:value[index])
+ if has_key(self.mappings, char1)
+ let newmap = self.mappings[char1]
+ else
+ " take only the first character
+ let newmap = a:value[index]
+ endif
+ let retval .= newmap
+ let index += 1
+ endwhile
+ return retval
+endfunction
+
+function! s:TranslateMap.mTranslateAlpha(value) dict
+ let retval = substitute(a:value, self.regex, '\=self.mappings[submatch(1)]', "g")
+ return retval
+endfunction
+
+function! s:CCTreeGetXRefDbMaps(maptype, mapkind)
+ let dichar1 = ",0123456789"
+ let dichar2 = ",0123456789"
+
+ return s:CCTreeCreateGenericMaps(a:maptype, a:mapkind, dichar1, dichar2)
+endfunction
+
+function! s:CCTreeGetCscopeMaps(maptype, mapkind)
+ let dichar1 = " teisaprnl(of)=c"
+ let dichar2 = " tnerpla"
+
+ return s:CCTreeCreateGenericMaps(a:maptype, a:mapkind, dichar1, dichar2)
+endfunction
+
+
+function! s:CCTreeCreateGenericMaps(maptype, mapkind, dichar1, dichar2)
+ let s:CharMaps.mapkind = a:mapkind
+ call s:CharMaps.mInitTranslator()
+ if a:mapkind == 'Numeric'
+ let ab = map(range(128,255), 'v:val')
+ elseif a:mapkind == 'Alpha'
+ let ab = map(range(128,255), 'nr2char(v:val)')
+ else
+ return {}
+ endif
+ let ac = s:CharMaps.CrossProduct(a:dichar1, a:dichar2)
+ if a:maptype == 'Compress'
+ let maps = s:TranslateMap.mCreate(ac, ab, a:mapkind,
+ \'\(['.a:dichar1.']['.a:dichar2.']\)\C')
+ elseif a:maptype == 'Uncompress'
+ let maps = s:TranslateMap.mCreate(ab, ac, a:mapkind,
+ \'\([\d128-\d255]\)')
+ endif
+ call s:CharMaps.mDoneTranslator()
+ return maps
+endfunction
+" }}}
+" {{{ Unique list filter object
+
+let s:UniqList = {}
+
+function! s:UniqList.mFilterEntries(lstval) dict
+ let valdict = {}
+ let reslist = ''
+ for aval in a:lstval
+ if !has_key(valdict, aval)
+ let valdict[aval] = ''
+ let reslist .= (aval . ",")
+ endif
+ endfor
+ return reslist
+endfunction
+
+let s:CCTreeUniqListFilter = deepcopy(s:UniqList)
+function! s:CCTreeMakeCommaListUnique(clist)
+ let entries = split(a:clist, ",")
+ if len(entries) > 0
+ return s:CCTreeUniqListFilter.mFilterEntries(entries)
+ endif
+ return ""
+endfunction
+" }}}
+" {{{ Buffer/Window
+func! s:FindOpenBuffer(filename)
+ let bnrHigh = bufnr("$")
+ "tabpagebuflist(tabpagenr())
+
+ for bufnrs in range(1, bnrHigh)
+ if (bufexists(bufnrs) == 1 && bufname(bufnrs) == a:filename && bufloaded(bufnrs) != 0 )
+ return bufnrs
+ endif
+ endfor
+ " Could not find the buffer
+ return 0
+endfunction
+
+func! s:FindOpenWindow(filename)
+ let bufnr = s:FindOpenBuffer(a:filename)
+ if (bufnr > 0)
+ let newWinnr = bufwinnr(bufnr)
+ if newWinnr != -1
+ exec newWinnr.'wincmd w'
+ return 1
+ endif
+ endif
+ " Could not find the buffer
+ return 0
+endfunction
+" }}}
+" {{{ Utils library
+
+let s:Utils = {}
+
+" Use this function to determine the correct "g" flag
+" for substitution
+function! s:Utils.mGetSearchFlag(gvalue)
+ let ret = (!a:gvalue)* (&gdefault) + (!&gdefault)*(a:gvalue)
+ if ret == 1
+ return 'g'
+ endif
+ return ''
+endfunc
+
+" Strlen works for multibyte characters
+function! s:Utils.mStrlenEx(val)
+ return strlen(substitute(a:val, ".", "x", "g"))
+endfunc
+" }}}
+" {{{ Generic db loader interface
+let s:GenericDbLdr = {
+ \ 'fDBName' : '',
+ \ 'class' : 'Generic',
+ \ }
+
+function! s:GenericDbLdr.mCreate(fname) dict
+ let gdb = deepcopy(s:GenericDbLdr)
+ unlet gdb.mCreate
+ let gdb.fDBName = a:fname
+
+ if !filereadable(a:fname)
+ return s:CCTreeRC.Error
+ endif
+
+ return gdb
+endfunction
+
+function! s:GenericDbLdr.mParseDbHeader(gRdr)
+ let header = readfile(self.fDBName, "", a:gRdr.headerLines)
+ return a:gRdr.mParseDbHeader(header)
+endfunction
+
+let s:XRefMemDbLdr = {
+ \ 'class' : s:DBStorage.memory
+ \}
+
+function! s:XRefMemDbLdr.mCreate(fname) dict
+ let gdb = s:GenericDbLdr.mCreate(a:fname)
+ if type(gdb) != type({})
+ return gdb
+ endif
+ let mdb = extend(gdb, deepcopy(s:XRefMemDbLdr))
+ unlet mdb.mCreate
+
+ return mdb
+endfunction
+
+if has('perl') && g:CCTreeUsePerl == 1
+" Perl function
+function! s:XRefMemDbLdr.mLoadFileIntoXRefDb(xRefDb, gRdr) dict
+ let stage = 1
+ for afltr in a:gRdr.opts
+ let stageidxstr = 'Stage ('.stage.'/'.len(a:gRdr.opts).') '
+ call s:StatusLine.mSetInfo(stageidxstr. ': (PERL) Loading database ')
+ call a:gRdr.mProcessingStateInit()
+ let pBar = s:ProgressBarNumeric.mCreate(getfsize(self.fDBName), "bytes")
+ echomsg 'filtering '. afltr
+perl << PERL_EOF
+ #use strict;
+ #use warnings FATAL => 'all';
+ #use warnings NONFATAL => 'redefine';
+
+ my $filebytes = 0;
+ my $filterpat = VIM::Eval("afltr");
+
+ open (CSCOPEDB, VIM::Eval("self.fDBName")) or die "File trouble!";
+ #VIM::DoCommand("echomsg '".$filterpat."'");
+
+ while (<CSCOPEDB>) {
+ $filebytes += length($_);
+ chomp($_);
+
+ if ($_ !~ $filterpat) {
+ next;
+ }
+ VIM::DoCommand("call pBar.mTick(".$filebytes.")");
+ $filebytes = 0;
+ VIM::DoCommand("call a:gRdr.mProcessSymbol(a:xRefDb, '".$_."')");
+ }
+ VIM::DoCommand("call pBar.mDone()");
+ close(CSCOPEDB);
+PERL_EOF
+ call a:gRdr.mProcessingStateDone()
+ let stage += 1
+ endfor
+endfunction
+else
+" Native Vim function
+function! s:XRefMemDbLdr.mLoadFileIntoXRefDb(xRefDb, gRdr) dict
+ let vDbFile = s:vFile.mCreate(self.fDBName, "r")
+ if vDbFile.valid == 0
+ return -1
+ endif
+ if vDbFile.mIsLargeFile() == 1
+ call s:StatusLine.mSetExtraInfo('Database '
+ \.' >'.g:CCTreeDbFileMaxSize .' bytes. Splitting '.
+ \'into smaller chunks... (this may take some time)')
+ endif
+ try
+ if vDbFile.mOpen() == 0
+ call self.mReadFileIntoXRefDb(vDbFile,
+ \ a:xRefDb,
+ \ a:gRdr)
+ endif
+ finally
+ call vDbFile.mClose()
+ endtry
+endfunction
+endif
+
+function! s:XRefMemDbLdr.mReadFileIntoXRefDb(vDbFile, xrefdb, gRdr)
+ let stage = 0
+ for afltr in a:gRdr.opts
+ call a:vDbFile.mRewind()
+ let stage += 1
+ call a:gRdr.mProcessingStateInit()
+ while 1 == 1
+ if a:vDbFile.mRead() == -1
+ break
+ endif
+ let stageidxstr = 'Stage ('.stage.'/'.len(a:gRdr.opts).') '
+ let fileidxstr = '('.a:vDbFile.currentSplitIdx.'/'.a:vDbFile.totSplits.') '
+ call s:StatusLine.mSetInfo(stageidxstr. ': Reading database chunk '.fileidxstr)
+ " Filter-out lines that doesn't have relevant information
+ let plist = a:gRdr.mReadLinesFromFile(a:vDbFile, afltr)
+ let pBar = s:ProgressBarNumeric.mCreate(len(plist), "items")
+ call s:StatusLine.mSetInfo(stageidxstr.': Analyzing database chunk '.fileidxstr)
+ call self.mProcessListIntoXrefDb(plist, a:gRdr, a:xrefdb, pBar)
+ call pBar.mDone()
+ " clean-up memory
+ call garbagecollect()
+ endwhile
+ call a:gRdr.mProcessingStateDone()
+ endfor
+endfunction
+
+function! s:XRefMemDbLdr.mProcessListIntoXrefDb(symbols, rdr, xrefdb, pbar)
+ for a in a:symbols
+ call a:pbar.mTick(1)
+ call a:rdr.mProcessSymbol(a:xrefdb, a)
+ endfor
+endfunction
+
+function! s:GenericDbLdr.mParseDbHeader(gRdr)
+ let header = readfile(self.fDBName, "", a:gRdr.headerLines)
+ return a:gRdr.mParseDbHeader(header)
+endfunction
+
+" }}}
+" {{{ Generic Disk DB Ldr
+let s:XRefDiskDbLdr = {
+ \ 'class' : s:DBStorage.disk
+ \ }
+
+function! s:XRefDiskDbLdr.mCreate(fname) dict
+ let gdb = s:GenericDbLdr.mCreate(a:fname)
+ if type(gdb) != type({})
+ return gdb
+ endif
+ let mdb = extend(gdb, deepcopy(s:XRefDiskDbLdr))
+ unlet mdb.mCreate
+
+ return mdb
+endfunction
+
+function! s:XRefDiskDbLdr.mLoadFileIntoXRefDb(xRefDb, gRdr) dict
+ call a:xRefDb.mSetLink(self.fDBName)
+endfunction
+
+"}}}
+" {{{ Xref disk DB
+let s:XRefDiskDb = {
+ \ 'link':'',
+ \ 'savedTags': '',
+ \ 'class' : s:DBStorage.disk
+ \ }
+
+function! s:XRefDiskDb.mCreate() dict
+ let fdb = deepcopy(s:XRefDiskDb)
+ unlet fdb.mCreate
+ let fdb.maps = s:CCTreeGetXRefDbMaps('Uncompress', 'Numeric')
+
+ return fdb
+endfunction
+
+function! s:XRefDiskDb.mSetLink(filedb) dict
+ let self.link = a:filedb
+ " revisit, do parse header here
+endfunction
+
+function! s:XRefDiskDb.mClear() dict
+ " do nothing
+endfunction
+
+function! s:XRefDiskDb.mInitState() dict
+ let self.savedTags = &tags
+ let &tags = self.link
+endfunction
+
+function! s:XRefDiskDb.mRestoreState() dict
+ let &tags = self.savedTags
+endfunction
+
+function! s:XRefDiskDb.mDecodeTagEntry(tagentry) dict
+ let itms = split(a:tagentry.name, "#")
+ let a:tagentry.n = itms[1]
+ let a:tagentry.idx = itms[0]
+
+ " Vim taglist() drops empty fields, so need to protect
+ if has_key(a:tagentry, 'c')
+ let a:tagentry.c = self.maps.mTranslate(a:tagentry.c)
+ else
+ let a:tagentry.c = ''
+ endif
+ if has_key(a:tagentry, 'p')
+ let a:tagentry.p = self.maps.mTranslate(a:tagentry.p)
+ else
+ let a:tagentry.p = ''
+ endif
+
+ return a:tagentry
+endfunction
+
+function! s:XRefDiskDb.mGetSymbolIdFromName(symname) dict
+ let symtagline = taglist('\#'.a:symname.'$')
+ let g:xyz = symtagline
+ let asym = self.mDecodeTagEntry(symtagline[0])
+ return asym.idx
+endfunction
+
+function! s:XRefDiskDb.mGetSymbolFromId(symid) dict
+ let symtagline = taglist('^'.a:symid.'\#')
+ if empty(symtagline)
+ echomsg "Failed to locate ".a:symid
+ else
+ return self.mDecodeTagEntry(symtagline[0])
+ endif
+ return {}
+endfunction
+
+function! s:XRefDiskDb.mGetSymbolIds() dict
+ " illegal
+ let symtaglines = taglist('^.')
+ return keys(self.symidhash)
+endfunction
+
+function! s:XRefDiskDb.mGetSymbolNames(lead) dict
+ if empty(a:lead)
+ let symtaglines = taglist('^.')
+ else
+ let symtaglines = taglist('#'.a:lead)
+ endif
+ let alist = []
+ for atag in symtaglines
+ let acctreesym = self.mDecodeTagEntry(atag)
+ call add(alist, acctreesym.n)
+ endfor
+ return alist
+endfunction
+" }}}
+" {{{ TagFile utils
+let s:CCTreeTagDbRdr = {'class': 'CCTreeXrefDb',
+ \ 'headerLines' : 4,
+ \ 'compressed' : 0,
+ \ 'opts': ['v:val !~ "^[\!]"'],
+ \ 'perl_opts': "^[^\!]",
+ \ 'mapPreKeys': {'c':'','p':''},
+ \ 'mapPostKeys': {'c':'','p':''}
+ \ }
+
+function! s:CCTreeTagDbRdr.mCreate(fname) dict
+ let cctxdbrdr = deepcopy(s:CCTreeTagDbRdr)
+ unlet cctxdbrdr.mCreate
+
+ return cctxdbrdr
+endfunction
+
+function! s:CCTreeTagDbRdr.mRequirePreProcessing() dict
+ return s:CCTreeRC.False
+endfunction
+
+function! s:CCTreeTagDbRdr.mRequirePostProcessing() dict
+ return s:CCTreeRC.True
+endfunction
+
+function! s:CCTreeTagDbRdr.mRequireCleanup() dict
+ " Clean-up all symbols [never]
+ return s:CCTreeRC.False
+endfunction
+
+function! s:CCTreeTagDbRdr.mGetPreProcessingMaps() dict
+ return s:CCTreeGetXRefDbMaps('Compress', 'Alpha')
+endfunction
+
+function! s:CCTreeTagDbRdr.mGetPostProcessingMaps() dict
+ return s:CCTreeGetXRefDbMaps('Uncompress', 'Alpha')
+endfunction
+
+
+function! s:CCTreeTagDbRdr.mParseDbHeader(hdr) dict
+ " just check line 3 for sanity
+ if a:hdr[2] =~ "CCTree"
+ return s:CCTreeRC.Success
+ endif
+ return s:CCTreeRC.Error
+endfunction
+
+function! s:CCTreeTagDbRdr.mProcessingStateInit() dict
+endfunction
+
+function! s:CCTreeTagDbRdr.mProcessingStateDone() dict
+endfunction
+
+function! s:CCTreeTagDbRdr.mReadLinesFromFile(vdbFile, filtercmds) dict
+ " Hard-coded assumptions here about format for performance
+ if empty(get(a:vdbFile.lines, 0)) != 1 && a:vdbFile.lines[0][0] == "!"
+ " filter out the first few lines starting with "!"
+ call remove(a:vdbFile.lines, 0, self.headerLines-1)
+ endif
+ return a:vdbFile.lines
+endfunction
+
+function! s:CCTreeTagDbRdr.mProcessSymbol(xrefdb, aline) dict
+ let cctreesym = self.mDecodeTagLine(a:aline)
+ call a:xrefdb.mInsertSym(cctreesym.idx, cctreesym)
+ " we really don't need idx any longer
+ unlet cctreesym.idx
+endfunction
+
+function! s:CCTreeTagDbRdr.mDecodeTagLine(tagline) dict
+
+ let items = split(a:tagline, "\t")
+ let newsym = s:CCTreeSym.mCreate("")
+ try
+ let [newsym.idx, newsym.n] = split(items[0], '#')
+ catch
+ echomsg "problem decoding ". a:tagline
+ endtry
+
+ "let newsym.idx = strpart(items[0], 0, idxBr)
+ "let newsym.n = items[0][ idxBr+1 : -2] "strpart(items[0], idxBr+1, strlen(items[0])-1)
+ if empty(get(items, 3)) != 1
+ let newsym.c = items[3][2:]
+ endif
+ if empty(get(items, 4)) != 1
+ let newsym.p = items[4][2:]
+ endif
+ return newsym
+endfunction
+
+" }}}
+" {{{ Generic Db Serializer
+let s:GenericDbSerializer = {}
+
+function! s:GenericDbSerializer.mCreate(xrefdb) dict
+ let gDbSerializer = deepcopy(s:GenericDbSerializer)
+ let gDbSerializer.xrefdb = a:xrefdb
+ return gDbSerializer
+endfunction
+
+function! s:GenericDbSerializer.mWriteXRefDbToFile(fname,
+ \ gWriter) dict
+ call s:StatusLine.mInit()
+ try
+ call s:StatusLine.mSetInfo('Writing XRefDb')
+ let vDbFile = s:vFile.mCreate(a:fname, "w")
+ call vDbFile.mWriteList(a:gWriter.mBuildHeader())
+ call self.mWriteSymsToFile(vDbFile, a:gWriter)
+ finally
+ call vDbFile.mClose()
+ call s:StatusLine.mRestore()
+ endtry
+endfunction
+
+function! s:GenericDbSerializer.mWriteSymsToFile(dstVFile,
+ \ gWriter) dict
+ let pBar = s:ProgressBarNumeric.mCreate(self.xrefdb.mGetSymbolCount(),
+ \ "items")
+ call a:gWriter.mInitWriting()
+ " write syms
+ for asymid in sort(self.xrefdb.mGetSymbolIds())
+ let acctreesym = self.xrefdb.mGetSymbolFromId(asymid)
+ call a:dstVFile.mWriteLine(a:gWriter.mBuildTagLine(acctreesym,
+ \ asymid))
+ call pBar.mTick(1)
+ endfor
+ call pBar.mDone()
+ call a:gWriter.mDoneWriting()
+endfunction
+" }}}
+" {{{ CCTreeTagDb Writer
+let s:CCTreeTagDbWriter = {}
+
+function! s:CCTreeTagDbWriter.mCreate(tmaps) dict
+ let dbwriter = deepcopy(s:CCTreeTagDbWriter)
+ unlet dbwriter.mCreate
+
+
+ let dbwriter.tmaps = a:tmaps
+ return dbwriter
+endfunction
+
+function! s:CCTreeTagDbWriter.mInitWriting() dict
+ call self.tmaps.mInitTranslator()
+endfunction
+
+function! s:CCTreeTagDbWriter.mDoneWriting() dict
+ call self.tmaps.mDoneTranslator()
+endfunction
+
+function! s:CCTreeTagDbWriter.mBuildHeader() dict
+ let hdr = []
+ call add(hdr, "!_TAG_FILE_FORMAT\t2\t/extended format; --format=1 will not append ;\" to lines/")
+ call add(hdr, "!_TAG_FILE_SORTED\t1\t/0=unsorted, 1=sorted, 2=foldcase/")
+ call add(hdr, "!_TAG_PROGRAM_NAME\t\tCCTree (Vim plugin)//")
+ call add(hdr, "!_TAG_PROGRAM_URL\thttp://vim.sourceforge.net/scripts/script.php?script_id=2368\t/site/")
+ return hdr
+endfunction
+
+
+function! s:CCTreeTagDbWriter.mBuildTagLine(sym, symid) dict
+ let basetag = a:symid .'#'. a:sym.n."\t"."\t"."/^\$/".";\""
+ let cm = self.tmaps.mTranslate(a:sym.c)
+ let pm = self.tmaps.mTranslate(a:sym.p)
+
+ let basetag .= "\tc:". self.tmaps.mTranslate(a:sym.c)
+ let basetag .= "\tp:". self.tmaps.mTranslate(a:sym.p)
+
+ return basetag
+endfunction
+" }}}
+" {{{ CCTree constants
+let s:CCTreeRC = {
+ \ 'Error' : -1,
+ \ 'True' : 1,
+ \ 'False' : 0,
+ \ 'Success' : 2
+ \ }
+"}}}
+" {{{ CCTree DB Obj
+" Symbol definition
+
+let s:CCTreeSym = {
+ \'k': "",
+ \'n': "",
+ \'c': "",
+ \'p': ""
+ \}
+
+function! s:CCTreeSym.mCreate(name, kind)
+ let sym = deepcopy(s:CCTreeSym)
+ unlet sym.mCreate
+ let sym.n = a:name
+ let sym.k = a:kind
+ return sym
+endfunction
+
+
+" }}}
+" {{{ GenericXref, XrefDb
+let s:GenericXRef = {}
+
+function! s:GenericXRef.mCreate(filedb) dict
+ let gxref = deepcopy(s:GenericXRef)
+ return gxref
+endfunction
+
+function! s:GenericXRef.mInitState() dict
+endfunction
+
+function! s:GenericXRef.mRestoreState() dict
+endfunction
+" {{{ XRef Database object
+let s:xRefMemDb = {
+ \ 'symuniqid': 0,
+ \ 'symidhash' : {},
+ \ 'symnamehash' : {},
+ \ 'class' : s:DBStorage.memory
+ \}
+
+
+function s:xRefMemDb.mCreate() dict
+ let dbObj = deepcopy(s:xRefMemDb)
+ unlet dbObj.mCreate
+
+ return dbObj
+endfunction
+
+function s:xRefMemDb.mInitState() dict
+endfunction
+
+function s:xRefMemDb.mRestoreState() dict
+endfunction
+
+function s:xRefMemDb.mClear() dict
+ let self.symidhash = {}
+ let self.symnamehash = {}
+ let self.symuniqid = 0
+endfunction
+
+function! s:xRefMemDb.mInsertSym(idx, cctreesym) dict
+ let self.symuniqid = max([self.symuniqid, a:idx])
+ let self.symidhash[a:idx] = a:cctreesym
+ let self.symnamehash[a:cctreesym.n] = a:idx
+endfunction
+
+function! s:xRefMemDb.mRemoveSymById(symidx) dict
+ call self.mRemoveSymByName(acctreesym.n)
+ call remove(self.symidhash, a:symidx)
+endfunction
+
+function! s:xRefMemDb.mRemoveSymByName(symname) dict
+ call remove(self.symnamehash, a:symname)
+endfunction
+
+function! s:xRefMemDb.mAddSym(name, kind) dict
+ if !has_key(self.symnamehash, a:name)
+ let self.symnamehash[a:name] = self.symuniqid
+ let self.symidhash[self.symuniqid] =
+ \s:CCTreeSym.mCreate(a:name, a:kind)
+ let self.symuniqid += 1
+ endif
+ let asymid = self.symnamehash[a:name]
+ if a:kind != ""
+ let asym = self.symidhash[asymid]
+ let asym.k = a:kind
+ endif
+ return asymid
+endfunction
+
+function! s:xRefMemDb.mMarkXRefSyms(funcentryidx, newfuncidx) dict
+ let self.symidhash[a:funcentryidx]['c'] .= (",". a:newfuncidx)
+ let self.symidhash[a:newfuncidx]['p'] .= (",". a:funcentryidx)
+endfunction
+
+function! s:xRefMemDb.mGetSymbolFromName(symname) dict
+ return self.symidhash[self.symnamehash[a:symname]]
+endfunction
+
+function! s:xRefMemDb.mGetSymbolIdFromName(symname) dict
+ if has_key(self.symnamehash, a:symname)
+ return self.symnamehash[a:symname]
+ else
+ return s:CCTreeRC.Error
+ endif
+endfunction
+
+function! s:xRefMemDb.mGetSymbolFromId(symid) dict
+ return self.symidhash[a:symid]
+endfunction
+
+function! s:xRefMemDb.mGetSymbolIds() dict
+ return keys(self.symidhash)
+endfunction
+
+function! s:xRefMemDb.mGetSymbolNames(lead) dict
+ let syms = keys(self.symnamehash)
+ if empty(a:lead) != 1
+ return filter(syms, 'v:val =~? a:lead')
+ endif
+ return syms
+endfunction
+
+function! s:xRefMemDb.mGetSymbolCount() dict
+ return len(self.symnamehash)
+endfunction
+
+function! s:xRefMemDb.mTranslateSymbols(map, tkeys) dict
+ call a:map.mInitTranslator()
+ let pBar = s:ProgressBarNumeric.mCreate(len(self.symnamehash), "items")
+
+ for asym in keys(self.symnamehash)
+ let idx = self.symnamehash[asym]
+ let val = self.symidhash[idx]
+ if has_key(a:tkeys, 'n')
+ let uncmpname = a:map.mTranslate(asym)
+ if (asym != uncmpname)
+ "Set up new entry
+ let self.symnamehash[uncmpname] = idx
+ " free the old entry
+ call remove(self.symnamehash, asym)
+ " Set uncompressed name
+ let val.n = uncmpname
+ endif
+ endif
+ if has_key(a:tkeys, 'p')
+ let val.p = a:map.mTranslate(val.p)
+ endif
+ if has_key(a:tkeys, 'c')
+ let val.c = a:map.mTranslate(val.c)
+ endif
+ call pBar.mTick(1)
+ endfor
+ call pBar.mDone()
+ call a:map.mDoneTranslator()
+endfunction
+
+function! s:xRefMemDb.mCleanSymbols () dict
+ let pBar = s:ProgressBarNumeric.mCreate(len(self.symnamehash), "items")
+ for asym in keys(self.symnamehash)
+ let idx = self.symnamehash[asym]
+ let val = self.symidhash[idx]
+ if empty(val.p) && empty(val.c)
+ call remove(self.symnamehash, asym)
+ call remove(self.symidhash, idx)
+ else
+ let val.p = s:CCTreeMakeCommaListUnique(val.p)
+ let val.c = s:CCTreeMakeCommaListUnique(val.c)
+ endif
+ call pBar.mTick(1)
+ endfor
+ call pBar.mDone()
+endfunction
+"}}}
+"}}} End of Xref
+" {{{ Tracer
+let s:CallTree = {
+ \ 'symbol' : ""
+ \ }
+function! s:CallTree.mCreate(name) dict
+ let ct = deepcopy(s:CallTree)
+ unlet ct.mCreate
+
+ let ct.symbol = a:name
+
+ return ct
+endfunction
+
+function! s:CallTree.mAddChildLink(childTree) dict
+ if !has_key(self, 'childlinks')
+ let self.childlinks = []
+ endif
+ call add(self.childlinks, a:childTree)
+endfunction
+
+let s:XRefTracer = {
+ \}
+
+function! s:XRefTracer.mCreate(xrefdb) dict
+ let xreftracer = deepcopy(s:XRefTracer)
+ let xreftracer.xrefdb = a:xrefdb
+
+ return xreftracer
+endfunction
+
+function! s:XRefTracer.mInitTracing() dict
+ call self.xrefdb.mInitState()
+endfunction
+
+function! s:XRefTracer.mDoneTracing() dict
+ call self.xrefdb.mRestoreState()
+endfunction
+
+function! s:XRefTracer.mGetSymbolIdXRef(symid, direction) dict
+ let acctreesym = self.xrefdb.mGetSymbolFromId(a:symid)
+ let symidslist = split(
+ \s:CCTreeMakeCommaListUnique(acctreesym[a:direction]), ",")
+ return symidslist
+endfunction
+
+function! s:XRefTracer.mBuildForSymbol(symid, curdepth, maxdepth,
+ \ direction, pbar) dict
+ if (a:curdepth > a:maxdepth)
+ return {}
+ endif
+
+ call a:pbar.mSetDepth(a:curdepth)
+ let asym = self.xrefdb.mGetSymbolFromId(a:symid)
+ " revisit
+ if empty(asym)
+ return {}
+ endif
+
+ let rtree = s:CallTree.mCreate(asym['n'])
+
+ for entry in self.mGetSymbolIdXRef(a:symid, a:direction)
+ call a:pbar.mTick(1)
+ let ctree =
+ \self.mBuildForSymbol(entry, a:curdepth+1, a:maxdepth,
+ \a:direction, a:pbar)
+ call rtree.mAddChildLink(ctree)
+ endfor
+ return rtree
+endfunction
+" }}}
+
+" {{{ Cscope Reader
+
+
+let s:CscopeDbRdrState = {
+ \'curfuncidx': -1,
+ \'curfileidx': -1,
+ \'curmacroidx': -1,
+ \'curenumidx': -1,
+ \ }
+
+function! s:CscopeDbRdrState.mCreate() dict
+ return deepcopy(s:CscopeDbRdrState)
+endfunction
+
+let s:CscopeDbRdrSymTags = {
+ \'func' : '$}',
+ \'macro' : '#\)',
+ \'file' : '@\~',
+ \'enum' : 'em',
+ \'global' : 'g',
+ \'typedef' : 't',
+ \}
+
+let s:CscopeDbSymFilter = ['v:val =~ "^\t[#`$}@\~\)]"']
+let s:CscopeDbSymEnhFilter = ['v:val =~ "^\t[emgt#`$}@~)]"',
+ \ 'v:val =~ "^\\a\\|^\t[)$}#]"']
+
+let s:CscopeDbSymFilterPerl = ['^\t[\`\#\$\}\@\~\)]']
+let s:CscopeDbSymEnhFilterPerl = ['^\t[\`\#\$\}\@\~\)emgt]',
+ \ '^[A-Za-z]|^\t[\#\$\}\)]']
+
+let s:CscopeDbRdr = {
+ \ 'class': 'Cscope',
+ \ 'headerLines' : 1,
+ \ 'compressed' : 0,
+ \ 'opts': [],
+ \ 'perl_opts': '',
+ \ 'mapPreKeys': {'n':''},
+ \ 'mapPostKeys': {'n':''}
+ \}
+
+function! s:CscopeDbRdr.mCreate(fname, enhanced) dict
+ let csdbrdr = deepcopy(s:CscopeDbRdr)
+ unlet csdbrdr.mCreate
+
+ if a:enhanced == 1
+ if g:CCTreeUsePerl == 1
+ let csdbrdr.opts = s:CscopeDbSymEnhFilterPerl
+ else
+ let csdbrdr.opts = s:CscopeDbSymEnhFilter
+ endif
+ else
+ if g:CCTreeUsePerl == 1
+ let csdbrdr.opts = s:CscopeDbSymFilterPerl
+ else
+ let csdbrdr.opts = s:CscopeDbSymFilter
+ endif
+ endif
+ return csdbrdr
+endfunction
+
+function! s:CscopeDbRdr.mProcessingStateInit() dict
+ let self.iState = s:CscopeDbRdrState.mCreate()
+endfunction
+
+function! s:CscopeDbRdr.mProcessingStateDone() dict
+ " discard state
+ unlet self.iState
+endfunction
+
+function! s:CscopeDbRdr.mReadLinesFromFile(vDbFile, filtercmds) dict
+ return s:CCTreeUtils.mFilter(a:vDbFile.lines, a:filtercmds)
+endfunction
+
+function! s:CscopeDbRdr.mParseDbHeader(dbHeader) dict
+ if a:dbHeader[0] =~ "cscope"
+ if (a:dbHeader[0] !~ "cscope.*\-c")
+ let self.compressed = s:CCTreeRC.True
+ else
+ let self.compressed = s:CCTreeRC.False
+ endif
+ return s:CCTreeRC.Success
+ endif
+ return s:CCTreeRC.Error
+endfunction
+
+function! s:CscopeDbRdr.mRequirePreProcessing() dict
+ return (self.compressed == 1)? s:CCTreeRC.True : s:CCTreeRC.False
+endfunction
+
+function! s:CscopeDbRdr.mRequirePostProcessing() dict
+ return (self.compressed == 1)? s:CCTreeRC.True : s:CCTreeRC.False
+endfunction
+
+function! s:CscopeDbRdr.mRequireCleanup() dict
+ " Clean-up all symbols [always]
+ return s:CCTreeRC.True
+endfunction
+
+function! s:CscopeDbRdr.mGetPreProcessingMaps() dict
+ return s:CCTreeGetCscopeMaps('Compress', 'Alpha')
+endfunction
+
+function! s:CscopeDbRdr.mGetPostProcessingMaps() dict
+ return s:CCTreeGetCscopeMaps('Uncompress', 'Alpha')
+endfunction
+
+function! s:CscopeDbRdr.mProcessSymbol(xrefdb, symbol) dict
+ try
+ if a:symbol[0] == "\t"
+ return self.mProcessTaggedSymbol(a:xrefdb, a:symbol)
+ else
+ return self.mProcessUnTaggedSymbol(a:xrefdb, a:symbol)
+ endif
+ catch
+ echomsg 'Problem with '. a:symbol
+ endtry
+endfunction
+
+function! s:CscopeDbRdr.mProcessUnTaggedSymbol(xrefdb, symbol) dict
+ let cursymidx = a:xrefdb.mGetSymbolIdFromName(a:symbol)
+ if cursymidx != s:CCTreeRC.Error
+ if self.iState.curfuncidx != -1
+ call a:xrefdb.mMarkXRefSyms(self.iState.curfuncidx, cursymidx)
+ elseif self.iState.curmacroidx != -1
+ call a:xrefdb.mMarkXRefSyms(self.iState.curmacroidx, cursymidx)
+ endif
+ endif
+endfunction
+
+function! s:CscopeDbRdr.mProcessTaggedSymbol(xrefdb, symbol) dict
+ if self.iState.curmacroidx != -1
+ if a:symbol[1] == "`"
+ call a:xrefdb.mMarkXRefSyms(self.iState.curmacroidx,
+ \ a:xrefdb.mAddSym(a:symbol[2:], ""))
+ elseif a:symbol[1] == ')'
+ let self.iState.curmacroidx = -1
+ endif
+ elseif self.iState.curfuncidx != -1
+ " inside function
+ if a:symbol[1] == "`"
+ call a:xrefdb.mMarkXRefSyms(self.iState.curfuncidx,
+ \ a:xrefdb.mAddSym(a:symbol[2:], ""))
+ elseif a:symbol[1] == "}"
+ let self.iState.curfuncidx = -1
+ elseif a:symbol[1] == "#"
+ let self.iState.curmacroidx = a:xrefdb.mAddSym(a:symbol[2:], 'm')
+ endif
+ elseif self.iState.curenumidx != -1
+ if a:symbol[1] == "m"
+ call a:xrefdb.mMarkXRefSyms(self.iState.curenumidx,
+ \ a:xrefdb.mAddSym(a:symbol[2:], "em"))
+ else
+ " just reprocess the symbol after changing state
+ let self.iState.curenumidx = -1
+ call self.mProcessTaggedSymbol(a:xrefdb, a:symbol)
+ endif
+ elseif a:symbol[1] == "$"
+ let self.iState.curfuncidx = a:xrefdb.mAddSym(a:symbol[2:], "f")
+ elseif a:symbol[1] == "#"
+ let self.iState.curmacroidx = a:xrefdb.mAddSym(a:symbol[2:], "d")
+ elseif a:symbol[1] == "~"
+ call a:xrefdb.mMarkXRefSyms(self.iState.curfileidx,
+ \a:xrefdb.mAddSym(a:symbol[3:], "i"))
+ elseif a:symbol[1] == "e"
+ let self.iState.curenumidx = a:xrefdb.mAddSym(a:symbol[2:], "e")
+ elseif a:symbol[1] == "g"
+ call a:xrefdb.mAddSym(a:symbol[2:], "g")
+ elseif a:symbol[1] == "@"
+ if a:symbol[2] != ""
+ let self.iState.curfileidx =
+ \a:xrefdb.mAddSym(a:symbol[2:], "F")
+ endif
+ endif
+endfunction
+
+" }}}
+" {{{ CCTree helper library
+let s:CCTreeUtils = {}
+
+function! s:CCTreeUtils.mDetectDB(class)
+ if a:class == s:DBClasses.cctreexref
+ if filereadable(g:CCTreeDb)
+ return g:CCTreeDb
+ endif
+ elseif a:class == s:DBClasses.cscopeid
+ if filereadable(g:CCTreeCscopeDb)
+ return g:CCTreeCscopeDb
+ endif
+ endif
+ return ''
+endfunction
+
+function! s:CCTreeUtils.mFilter(lines, filtercmd) dict
+ let retlst = []
+ let progr = len(a:lines)/100
+ let pBar = s:ProgressBarNumeric.mCreate(len(a:lines), "items")
+ while len(a:lines) > 0
+ if progr <= len(a:lines)
+ let tmplist = remove(a:lines, 0, progr)
+ else
+ let tmplist = remove(a:lines, 0, len(a:lines)-1)
+ endif
+ call filter(tmplist, a:filtercmd)
+ call pBar.mTick(progr)
+ call extend(retlst, tmplist)
+ endwhile
+ call pBar.mDone()
+ return retlst
+endfunction
+
+function! s:CCTreeUtils.mWarningPrompt(msg) dict
+ echohl WarningMsg
+ let a = input(s:pluginname. ": ". a:msg)
+ echohl None
+endfunction
+
+function! s:CCTreeUtils.mWarningMsg(msg) dict
+ echohl WarningMsg
+ echomsg s:pluginname. ": ". a:msg
+ echohl None
+endfunction
+
+function! s:CCTreeUtils.mInfoMsg(msg) dict
+ echohl Title
+ echomsg s:pluginname. ": ". a:msg
+ echohl None
+endfunction
+
+function! s:CCTreeUtils.mWrite(msg) dict
+ echo s:pluginname. ": ". a:msg
+endfunction
+
+" }}}
+" {{{ CCTree DB management
+let s:CCTreeXrefDbEntry = {
+ \ 'type': '',
+ \ 'fname' : '',
+ \ 'fsize' : 0,
+ \ 'fdate' : 0
+ \}
+
+function! s:CCTreeXrefDbEntry.mCreate(fname, type) dict
+ let xrefdbent = deepcopy(s:CCTreeXrefDbEntry)
+ unlet xrefdbent.mCreate
+
+ let xrefdbent.type = a:type
+ let xrefdbent.fname = simplify(getcwd().'/'.a:fname)
+ let xrefdbent.fsize = getfsize(a:fname)
+ let xrefdbent.fdate = strftime("%c", getftime(a:fname))
+ return xrefdbent
+endfunction
+
+let s:CCTreeDBList = {
+ \'loadedDBs' : []
+ \ }
+
+function! s:CCTreeDBList.mCreate() dict
+ let dbList = deepcopy(s:CCTreeDBList)
+ unlet dbList.mCreate
+
+ return dbList
+endfunction
+
+function! s:CCTreeDBList.mShowLoaded() dict
+ let i = 1
+ call s:CCTreeUtils.mWrite(s:pluginname.": List of loaded cscope databases")
+ call s:CCTreeUtils.mWrite("---------------------------------------")
+ for aDBEnt in self.loadedDBs
+ call s:CCTreeUtils.mWrite(i." ".aDBEnt.fname. " ".
+ \ " (".aDBEnt.type.") ".
+ \ aDBEnt.fsize. " bytes ".
+ \ aDBEnt.fdate)
+ let i = i + 1
+ endfor
+endfunction
+
+function! s:CCTreeDBList.mClearAll() dict
+ let self.loadedDBs = []
+endfunction
+
+function! s:CCTreeDBList.mIsEmpty() dict
+ if empty(self.loadedDBs)
+ return s:CCTreeRC.True
+ endif
+ return s:CCTreeRC.False
+endfunction
+
+" Load the cscope db into the global cctree xref db
+function! s:CCTreeDBList.mCreateDbLoaderAndReader(dbName, dbclass, storageclass) dict
+ let dbUser = s:CCTreeCmdLine.mInputDBName('Load', a:dbName, a:dbclass)
+ if dbUser == ''
+ call s:CCTreeUtils.mWarningMsg('Filename required')
+ "User cancel, do nothing
+ return
+ endif
+
+ " Create generic Db loader object
+ if a:storageclass == s:DBStorage.disk
+ let gDbLdr = s:XRefDiskDbLdr.mCreate(dbUser)
+ elseif a:storageclass == s:DBStorage.memory
+ let gDbLdr = s:XRefMemDbLdr.mCreate(dbUser)
+ endif
+
+ if type(gDbLdr) != type({})
+ call s:CCTreeUtils.mWarningMsg(a:dbclass.' database ' . a:dbName .
+ \ ' not found.')
+ return s:CCTreeRC.Error
+ endif
+
+ " Create new DB reader object
+ if a:storageclass == s:DBStorage.memory
+ if a:dbclass == s:DBClasses.cscopeid
+ let gDbRdr = s:CscopeDbRdr.mCreate(dbUser, g:CCTreeEnhancedSymbolProcessing)
+ elseif a:dbclass == s:DBClasses.cctreexref
+ let gDbRdr = s:CCTreeTagDbRdr.mCreate(dbUser)
+ else
+ return s:CCTreeRC.Error
+ endif
+ if gDbLdr.mParseDbHeader(gDbRdr) == s:CCTreeRC.Error
+ call s:CCTreeUtils.mWarningMsg(gDbRdr.class.' database ' . a:dbName .
+ \ ' format is not parseable.')
+ return s:CCTreeRC.Error
+ endif
+ else
+ let gDbRdr = {}
+ endif
+
+ return {'loader': gDbLdr, 'reader': gDbRdr}
+endfunction
+
+function! s:CCTreeDBList.mAddDbToList(dbName, type)
+ let aDBEnt = s:CCTreeXrefDbEntry.mCreate(a:dbName, a:type)
+ call add(self.loadedDBs, aDBEnt)
+endfunction
+
+" Merge the cscope db into the global cctree xref db
+function! s:CCTreeDBList.mMerge(dbName, xRefDb, class)
+ " Check if merge can be supported
+ if self.loadedDBs[0].type == s:DBStorage.disk
+ call s:CCTreeUtils.mInfoMsg("Cannot merge with DBs traced from disk")
+ return
+ endif
+ " Create db loader, reader
+ let gObjs = self.mCreateDbLoaderAndReader(a:dbName, a:class, s:DBStorage.memory)
+
+ if type(gObjs) == type({})
+ " if Db is compressed, then we need to compress our symbols first
+ let swatch = s:StopWatch.mCreate()
+ if self.mLoadDB(gObjs.loader, a:xRefDb,
+ \ gObjs.reader) != s:CCTreeRC.Error
+ call self.mAddDbToList(gObjs.loader.fDBName, gObjs.loader.class)
+ let msg = "Done merging databases. xRef Symbol Count: "
+ \.a:xRefDb.mGetSymbolCount()
+ \.". Time taken: ".swatch.mGetText()." secs"
+ call s:CCTreeUtils.mInfoMsg(msg)
+ endif
+ " Load will auto decompress the symbols
+ endif
+endfunction
+
+" Load the cscope db into the global cctree xref db
+function! s:CCTreeDBList.mAddNew(dbName, xRefDb, dbclass, storageclass)
+ " Create db loader, reader
+ let gObjs = self.mCreateDbLoaderAndReader(a:dbName, a:dbclass, a:storageclass)
+
+ if type(gObjs) == type({})
+ let swatch = s:StopWatch.mCreate()
+ if self.mLoadDB(gObjs.loader, a:xRefDb,
+ \ gObjs.reader) != s:CCTreeRC.Error
+ call self.mAddDbToList(gObjs.loader.fDBName, gObjs.loader.class)
+ call swatch.mSnapElapsed()
+ if a:storageclass == s:DBStorage.memory
+ let msg = "Done loading database. xRef Symbol Count: "
+ \.a:xRefDb.mGetSymbolCount()
+ \.". Time taken: ".swatch.mGetText()." secs"
+ else
+ let msg = "Disk Xref database loaded for tracing"
+ endif
+ call s:CCTreeUtils.mInfoMsg(msg)
+ endif
+ endif
+endfunction
+
+function! s:CCTreeDBList.mLoadDB(gDbLdr, xRefDb, gRdr)
+ let rc = s:CCTreeRC.Success
+ try
+ let swatch = s:StopWatch.mCreate()
+ call s:StatusLine.mInit()
+ " if compression, then we need to compress our symbols first
+ if !empty(a:gRdr) && a:gRdr.mRequirePreProcessing() == s:CCTreeRC.True
+ call s:StatusLine.mSetInfo('Pre-processing existing symbols')
+ call a:xRefDb.mTranslateSymbols(a:gRdr.mGetPreProcessingMaps(),
+ \ a:gRdr.mapPreKeys)
+ endif
+ call garbagecollect()
+ call s:StatusLine.mSetInfo('Loading database')
+ call a:gDbLdr.mLoadFileIntoXRefDb(a:xRefDb, a:gRdr)
+ if !empty(a:gRdr) && a:gRdr.mRequireCleanup() == s:CCTreeRC.True
+ call s:StatusLine.mSetInfo('Symbol clean-up')
+ call a:xRefDb.mCleanSymbols()
+ endif
+ call garbagecollect()
+ if !empty(a:gRdr) && a:gRdr.mRequirePostProcessing() == s:CCTreeRC.True
+ call s:StatusLine.mSetInfo('Post-processing loaded symbols')
+ call a:xRefDb.mTranslateSymbols(a:gRdr.mGetPostProcessingMaps(),
+ \ a:gRdr.mapPostKeys)
+ endif
+ call swatch.mSnapElapsed()
+ " restore normalcy
+ call garbagecollect()
+ redraw
+
+ catch /^Vim:Interrupt$/ " catch interrupts (CTRL-C)
+ call s:CCTreeUtils.mWarningMsg('Loading aborted.')
+ let rc = s:CCTreeRC.Error
+ finally
+ call s:StatusLine.mRestore()
+ endtry
+ return rc
+endfunction
+"}}}
+" {{{ UI Input related
+let s:CCTreeUI = {}
+
+
+function! s:CCTreeUI.mInputDBName(dbName, class, action)
+ let dbUser = a:dbName
+ let dbUser = input(a:action. ' database ('. a:class. '): ', a:dbName, 'file')
+ return dbUser
+endfunction
+" }}}
+" {{{ CCTree Markers
+let s:TreeMarkers_UTF8 = {
+ \ 'splitT' : nr2char(0x251c),
+ \ 'arrowR' : nr2char(0x25c0),
+ \ 'arrowF' : nr2char(0x25B6),
+ \ 'extV' : nr2char(0x2502),
+ \ 'extH': nr2char(0x2500),
+ \ 'depth': nr2char(0x25BC)
+ \}
+
+let s:TreeMarkers_Text = {
+ \ 'splitT' : '+',
+ \ 'arrowF' : '>',
+ \ 'arrowR' : '<',
+ \ 'extV' : '|',
+ \ 'extH': '-',
+ \ 'depth': 'depth:'
+ \}
+
+let s:CCTreeMarkers = {
+ \ 'icons':{}
+ \ }
+function! s:CCTreeMarkers.mCreate() dict
+ let treeMarkers = deepcopy(s:CCTreeMarkers)
+
+ if &encoding == 'utf-8' && g:CCTreeUseUTF8Symbols == 1
+ let treeMarkers.icons = deepcopy(s:TreeMarkers_UTF8)
+ else
+ " default choice
+ let treeMarkers.icons = deepcopy(s:TreeMarkers_Text)
+ endif
+
+ let treeMarkers.icons.arrowSyms = treeMarkers.icons.arrowF . treeMarkers.icons.arrowR
+ let treeMarkers.icons.vertSyms = treeMarkers.icons.splitT . treeMarkers.icons.extV
+
+ return treeMarkers
+endfunction
+
+function! s:CCTreeMarkers.mGetArrow(direction) dict
+ if a:direction == 'p'
+ return self.icons.arrowR
+ elseif a:direction == 'c'
+ return self.icons.arrowF
+ endif
+ return '?'
+endfunction
+" }}}
+" {{{ User key mappings
+let s:CCTreeKeyMappings = {
+ \ 'CTreeF': g:CCTreeKeyTraceForwardTree,
+ \ 'CTreeR': g:CCTreeKeyTraceReverseTree,
+ \ 'CTreeHilight': g:CCTreeKeyHilightTree,
+ \ 'CTreeWSave': g:CCTreeKeySaveWindow,
+ \ 'CTreeWToggle': g:CCTreeKeyToggleWindow,
+ \ 'CTreeCompress': g:CCTreeKeyCompressTree,
+ \ 'CTreeDepthMinus': g:CCTreeKeyDepthMinus,
+ \ 'CTreeDepthPlus': g:CCTreeKeyDepthPlus
+ \}
+" }}}
+" {{{ CCTreeWindow
+let s:CCTreeWindow = {
+ \ 'hiKeyword': '',
+ \ 'hiKeywordLine':'',
+ \ 'lastbufname':'',
+ \ 'treeMarkers': s:CCTreeMarkers.mCreate()}
+
+function! s:CCTreeWindow.mCreate() dict
+ let win = deepcopy(s:CCTreeWindow)
+ unlet win.mCreate
+
+ return win
+endfunction
+
+function! s:CCTreeWindow.mLeave()
+ call s:FindOpenWindow(self.lastbufname)
+endfunction
+
+
+" Definition of a keyword...
+let s:CCTreeKeywordRegEx = '[A-Za-z0-9_\\\.\/]\+'
+
+function! s:CCTreeWindow.mGetKeywordAtCursor() dict
+ let curline = line(".")
+ let self.hiKeyword = ''
+ if foldclosed(curline) == -1
+ let curkeyword = matchstr(getline("."), s:CCTreeKeywordRegEx)
+ if curkeyword != ''
+ if curkeyword != self.hiKeyword || curline != self.hiKeywordLine
+ let self.hiKeyword = curkeyword
+ let self.hiKeywordLine = line(".")
+ return s:CCTreeRC.Success
+ endif
+ else
+ return s:CCTreeRC.Error
+ endif
+ endif
+ if self.hiKeyword == ''
+ return s:CCTreeRC.Error
+ endif
+ return s:CCTreeRC.Success
+endfunction
+
+function! s:CCTreeWindow.mBuildStatusLine(pState, title, items)
+ let needcomma = 0
+ let rtitle = a:title. ' ('. a:pState.keyword
+ let rtitle .= '['
+ if has_key(a:items, "depth")
+ let rtitle .= self.treeMarkers.icons.depth
+ let rtitle .= a:pState.depth
+ let needcomma = 1
+ endif
+ if has_key(a:items, "direction")
+ if needcomma == 1
+ let rtitle .= ','
+ endif
+
+ let rtitle .= self.treeMarkers.mGetArrow(a:pState.direction)
+ endif
+ let rtitle .= '])'
+
+ return rtitle
+endfunction
+
+function! CCTreeWindowPreviewStatusLine()
+ " get global
+ " this is a hack
+ let pState = s:CCTreeGlobals.PreviewState
+ let tMarkers = s:CCTreeGlobals.Window.treeMarkers
+
+ return s:CCTreeGlobals.Window.mBuildStatusLine(
+ \ s:CCTreeGlobals.PreviewState,
+ \ s:windowtitle,
+ \ {'depth':''}
+ \)
+endfunction
+
+function! s:CCTreeWindow.mPreviewSave(savetitle) dict
+ if s:FindOpenWindow(s:windowtitle) == 1
+ setlocal modifiable
+ call self.mClearMarks(b:displayTree)
+ setlocal nomodifiable
+ setlocal statusline=%-F
+ silent! exec ":f ". a:savetitle
+ return s:CCTreeRC.Success
+ endif
+ return s:CCTreeRC.Error
+endfunction
+
+function! s:CCTreeWindow.mIsOpen() dict
+ if s:FindOpenBuffer(s:windowtitle) > 0
+ return s:CCTreeRC.True
+ endif
+ return s:CCTreeRC.False
+endfunction
+
+function! s:CCTreeWindow.mClose() dict
+ if s:FindOpenWindow(s:windowtitle) == 1
+ silent! q!
+ endif
+endfunction
+
+function! s:CCTreeWindow.mDisplayToggle() dict
+ if s:FindOpenWindow(s:windowtitle) == 1
+ silent! hide
+ else
+ let winbufnr = s:FindOpenBuffer(s:windowtitle)
+ if winbufnr > 0
+ call self.mEnter()
+ silent! exec "buf ".winbufnr
+ call self.mResize()
+ silent! wincmd p
+ else
+ call s:CCTreeUtils.mWarningMsg(" No active window found.")
+ endif
+ endif
+endfunction
+
+function! s:CCTreeWindow.mResize() dict
+ if g:CCTreeWindowVertical == 1
+ if g:CCTreeWindowWidth == -1
+ exec "vertical resize ". b:maxwindowlen
+ else
+ exec "vertical resize ". g:CCTreeWindowWidth
+ endif
+ else
+ if g:CCTreeWindowHeight != -1
+ let &winminheight = g:CCTreeWindowHeight
+ exec "resize".g:CCTreeWindowHeight
+ endif
+ endif
+endfunction
+
+function! s:CCTreeWindow.mDisplayTree(atree, direction) dict
+ let incctreewin = 1
+ if (bufname('%') != s:windowtitle)
+ let incctreewin = self.mEnter()
+ endif
+
+ setlocal modifiable
+ silent 1,$d
+ let b:maxwindowlen = g:CCTreeWindowMinWidth
+ let b:displayTree = s:DisplayTree.mCreate(a:atree,
+ \ a:direction, self.treeMarkers)
+ call s:CCTreeDisplay.mPopulateTreeInCurrentBuffer(b:displayTree)
+ exec "normal gg"
+
+ " Need to force this again
+ let &l:foldlevel=g:CCTreeMinVisibleDepth
+ setlocal nomodifiable
+ call self.mResize()
+ if (incctreewin == 0)
+ call s:CCTreeWindow.mLeave()
+ endif
+endfunction
+
+function! s:CCTreeWindow.mExtractTreeSymbols(dtree)
+ let symlist = {}
+ for aentry in a:dtree.entries
+ let symlist[aentry.symbol] = 0
+ endfor
+ return symlist
+endfunction
+
+function! s:CCTreeWindow.mEnter() dict
+ let self.lastbufname = bufname("%")
+ let foundWindow = s:FindOpenWindow(s:windowtitle)
+ if foundWindow == 0
+ if g:CCTreeWindowVertical == 1
+ exec g:CCTreeOrientation." vsplit ". s:windowtitle
+ set winfixwidth
+ else
+ exec g:CCTreeOrientation." split ". s:windowtitle
+ set winfixheight
+ endif
+
+ setlocal buftype=nofile
+ setlocal bufhidden=hide
+ setlocal noswapfile
+ setlocal nonumber
+ setlocal nowrap
+ setlocal nobuflisted
+
+ if s:CCTreeUseConceal == 1
+ setlocal cole=3
+ setlocal cocu=nv
+ endif
+
+ setlocal statusline=%=%{CCTreeWindowPreviewStatusLine()}
+
+ call self.mInitSyntax(self.treeMarkers.icons)
+ let cpo_save = &cpoptions
+ set cpoptions&vim
+
+ call s:CCTreeBufferKeyMappingsCreate(s:CCTreeKeyMappings)
+
+ command! -buffer -nargs=0 CCTreeWindowHiCallTree
+ \ call s:CCTreeGlobals.mCursorHoldHandleEvent()
+
+ exec 'nnoremap <buffer> <silent> '.s:CCTreeKeyMappings.CTreeHilight.
+ \' :CCTreeWindowHiCallTree<CR>'
+ exec 'nnoremap <buffer> <silent> '.s:CCTreeKeyMappings.CTreeCompress.
+ \ ' :2,.foldclose!<CR>zv'
+
+ nnoremap <buffer> <silent> <C-p> :CCTreePreviewBufferUsingTag<CR>
+ nnoremap <buffer> <silent> <CR> :CCTreeLoadBufferUsingTag<CR>
+ nnoremap <buffer> <silent> <2-LeftMouse> :CCTreeLoadBufferUsingTag<CR>
+
+ let &cpoptions = cpo_save
+ endif
+ setlocal foldmethod=expr
+ setlocal foldexpr=CCTreeFoldExpr(getline(v:lnum))
+ setlocal foldtext=CCTreeFoldText()
+ let &l:foldlevel=g:CCTreeMinVisibleDepth
+
+ return foundWindow
+endfunction
+" }}}
+" {{{ Dynamic call-tree highlighting using
+" syntax highlight tricks
+"
+" There are 3 types of lines, marked with the start character [\s, !, #]
+" Also @ is used to mark the path that is going up
+
+function! s:CCTreeWindow.mMarkCallTree(dtree, keyword) dict
+ let declevel = -1
+ let treelst = a:dtree.entries
+ let curLine = line(".")
+
+ let declevel = treelst[curLine-1].level
+
+ let targetlevel = declevel
+ for idx in range(curLine, 1, -1)
+ let aentry = treelst[idx-1]
+
+
+ " Find our keyword
+ let linemarker = 0
+ " Skip folds
+ if declevel != -1 && foldclosed(idx) == -1
+ if targetlevel == aentry.level
+ let linemarker = 1
+ let targetlevel -= 1
+ endif
+ let aline = a:dtree.mGetNotationalTxt(aentry.level, targetlevel+1, linemarker, 1)
+ \ . aentry.symbol
+ call setline(idx, aline)
+ endif
+ endfor
+endfunction
+
+function! s:CCTreeWindow.mClearMarks(dtree) dict
+ for idx in range(line(".")+1, line("$"))
+ let breakout = (getline(idx)[0] !~ "[!#]")
+ if breakout == 1
+ break
+ endif
+ let aentry = a:dtree.entries[idx-1]
+ let aline = a:dtree.mGetNotationalTxt(aentry.level, -1, 0, 0)
+ \ . aentry.symbol
+ call setline(idx, aline)
+ endfor
+endfunction
+
+function! s:CCTreeWindow.mInitSyntax(markers) dict
+ "syntax match CCTreePathMark /\s[|+]/ contained
+ exec 'syntax match CCTreePathMark /\s['. a:markers.vertSyms . ']/ contained'
+ "syntax match CCTreeArrow /-*[<>]/ contained
+ exec 'syntax match CCTreeArrow /'.a:markers.extH.'*['. a:markers.arrowSyms .']/ contained'
+
+ syntax match CCTreeSymbol / [A-Za-z0-9_\.\\\/]\+/ contained
+ syntax region CCTreeSymbolLine start="^\s" end="$" contains=CCTreeArrow,CCTreePathMark,CCTreeSymbol oneline
+
+ "syntax match CCTreeHiArrow /-*[<>]/ contained
+ exec 'syntax match CCTreeHiArrow /'. a:markers.extH .'*['. a:markers.arrowSyms .']/ contained'
+ syntax match CCTreeHiSymbol / [A-Za-z0-9_\.\\\/]\+/ contained
+
+ "syntax match CCTreeHiPathMark /\s[|+]/ contained
+ exec 'syntax match CCTreeHiPathMark /\s[' . a:markers.vertSyms . ']/ contained'
+
+ if s:CCTreeUseConceal == 1
+ syntax match CCTreeMarkExcl /^[!#]/ contained conceal
+ syntax match CCTreeMarkTilde /@/ contained conceal
+ else
+ syntax match CCTreeMarkExcl /^[!#]/ contained
+ syntax match CCTreeMarkTilde /@/ contained
+ endif
+ "syntax region CCTreeUpArrowBlock start="@" end=/[|+]/ contains=CCTreeMarkTilde contained oneline
+ exec 'syntax region CCTreeUpArrowBlock start="@" end=/['. a:markers.vertSyms .']/ contains=CCTreeMarkTilde contained oneline'
+
+ syntax region CCTreeHiSymbolLine start="!" end="$" contains=CCTreeMarkExcl,
+ \ CCTreeUpArrowBlock,
+ \ CCTreeHiSymbol,CCTreeHiArrow,CCTreeHiPathMark oneline
+
+ syntax region CCTreeMarkedSymbolLine start="#" end="$" contains=CCTreeMarkExcl,
+ \ CCTreeMarkTilde,CCTreePathMark,
+ \ CCTreeArrow,CCTreeSymbol,CCTreeUpArrowBlock oneline
+endfunction
+
+
+" }}}
+" {{{ CCTreeDisplay
+
+let s:CCTreeDisplay = {}
+
+function! s:CCTreeDisplay.mPopulateTreeInCurrentBuffer(dtree)
+ let linelist = []
+ for aentry in a:dtree.entries
+ let aline = a:dtree.mGetNotationalTxt(aentry.level, -1, 0, 0)
+ \ . aentry.symbol
+ let len = s:Utils.mStrlenEx(aline)
+ let b:maxwindowlen = max([len+1, b:maxwindowlen])
+ call add(linelist, aline)
+ endfor
+ call setline(".", linelist)
+endfunction
+
+
+
+" }}}
+" {{{ CCTree command line interface
+let s:CCTreeCmdLine = {}
+
+
+function! s:CCTreeCmdLine.mLoadDBFromDisk(dbName) dict
+ call s:CCTreeGlobals.mUnLoadDBs()
+ let s:CCTreeGlobals.XRefDb = s:XRefDiskDb.mCreate()
+ call s:CCTreeGlobals.DbList.mAddNew(a:dbName,
+ \ s:CCTreeGlobals.XRefDb, s:DBClasses.cctreexref, "Disk")
+endfunction
+
+" Unload current db's and load new one
+" There is no selective unloading
+function! s:CCTreeCmdLine.mLoadDB(db_name, class) dict
+ call s:CCTreeGlobals.mSetupEncodingChangeAutoCmd(0)
+ call s:CCTreeGlobals.mUnLoadDBs()
+ let s:CCTreeGlobals.XRefDb = s:xRefMemDb.mCreate()
+ call s:CCTreeGlobals.DbList.mAddNew(a:db_name,
+ \ s:CCTreeGlobals.XRefDb, a:class, s:DBStorage.memory)
+ call s:CCTreeGlobals.mSetupAutoCmds()
+endfunction
+
+function! s:CCTreeCmdLine.mInputDBName(action, dbName, class) dict
+ if a:dbName == ''
+ let dbUser = s:CCTreeUI.mInputDBName(
+ \ s:CCTreeUtils.mDetectDB(a:class),
+ \ a:class, a:action)
+ else
+ let dbUser = a:dbName
+ endif
+ return dbUser
+endfunction
+
+function! s:CCTreeCmdLine.mSaveDB(dbName, class) dict
+ let dbUser = self.mInputDBName('Save', a:dbName, a:class)
+ if dbUser == ''
+ call s:CCTreeUtils.mWarningMsg('Filename required')
+ return
+ endif
+ call s:CCTreeGlobals.Window.mClose()
+ call s:CCTreeGlobals.mSetupEncodingChangeAutoCmd(0)
+ call s:CCTreeGlobals.mWriteXRefDbToFile(dbUser)
+ call s:CCTreeGlobals.mSetupAutoCmds()
+ call s:CCTreeGlobals.mUpdateForCurrentSymbol()
+endfunction
+
+" Merge current db with new one
+function! s:CCTreeCmdLine.mMergeDB(db_name, class) dict
+ "call s:CCTreeGlobals.Window.mClose()
+ call s:CCTreeGlobals.DbList.mMerge(a:db_name, s:CCTreeGlobals.XRefDb, a:class)
+endfunction
+
+
+" }}}
+" {{{ CCTree Buffer mappings
+function! s:CCTreeWindowGetHiKeyword()
+ let keyw = expand("<cword>")
+ let keyf = expand("<cfile>")
+
+ let syms = s:CCTreeGlobals.mGetPreviewTreeSymbols()
+
+ if keyw != keyf
+ if has_key(syms, keyf)
+ return keyf
+ elseif has_key(syms, keyw)
+ return keyw
+ endif
+ else
+ return keyw
+ endif
+ return ''
+endfunction
+
+
+" Keymappings used common to source files and CCTree window
+function! s:CCTreeBufferKeyMappingsCreate(kmaps)
+ let func_expr = '<SNR>'.s:sid.'CCTreeWindowGetHiKeyword()'
+ exec 'nnoremap <buffer> <silent> '.a:kmaps.CTreeR.' :CCTreeTraceReverse <C-R>='.
+ \ func_expr.'<CR><CR>'
+ exec 'nnoremap <buffer> <silent> '.a:kmaps.CTreeF.' :CCTreeTraceForward <C-R>='
+ \ .func_expr.'<CR><CR>'
+
+ exec 'nnoremap <silent> '.a:kmaps.CTreeWSave. ' :CCTreeWindowSaveCopy<CR>'
+ exec 'nnoremap <silent> '.a:kmaps.CTreeWToggle. ' :CCTreeWindowToggle<CR>'
+
+ exec 'nnoremap <buffer> <silent> '.a:kmaps.CTreeDepthPlus.
+ \ ' :CCTreeRecurseDepthPlus<CR>'
+ exec 'nnoremap <buffer> <silent> '.a:kmaps.CTreeDepthMinus.
+ \ ' :CCTreeRecurseDepthMinus<CR>'
+endfunction
+
+augroup CCTreeMaps
+au!
+" Header files get detected as cpp?
+" This is a bug in Vim 7.2, a patch needs to be applied to the runtime c
+" syntax files
+" For now, use this hack to make *.h files work
+autocmd FileType * if &ft == 'c'|| &ft == 'cpp' |
+ \ call s:CCTreeBufferKeyMappingsCreate(s:CCTreeKeyMappings)|
+ \ endif
+augroup END
+
+
+" }}}
+" {{{ Tree building
+
+let s:DisplayTreeEntry = {
+ \ 'symbol': "",
+ \ 'level': -1
+ \ }
+
+function! s:DisplayTreeEntry.mCreate(sym, level) dict
+ let te = deepcopy(s:DisplayTreeEntry)
+ let te.symbol = a:sym
+ let te.level = a:level
+ unlet te.mCreate
+
+ return te
+endfunction
+
+let s:calltreemaxdepth = 10
+let s:DisplayTree = {
+ \ 'entries': [],
+ \ 'levelMaxLen': repeat([255], s:calltreemaxdepth),
+ \ 'notTxt': {}
+ \ }
+
+function! s:DisplayTree.mCreate(calltree, direction, markers) dict
+ let dt = deepcopy(s:DisplayTree)
+ call dt.mBuildTreeForLevel(a:calltree, 0)
+ call dt.mBuildNotationalTxtMarkers(a:direction, a:markers.icons)
+
+ unlet dt.mBuildTreeForLevel
+ unlet dt.mCreate
+
+ return dt
+endfunction
+
+function! s:DisplayTree.mBuildTreeForLevel(ctree, level)
+ if !has_key(a:ctree, 'symbol')
+ return
+ endif
+
+ if g:CCTreeDisplayMode == 3
+ let curlevellen = strlen(a:ctree.symbol) + a:level + 2
+ let self.levelMaxLen[a:level] = min([self.levelMaxLen[a:level],
+ \ curlevellen])
+ endif
+
+
+ let aentry = s:DisplayTreeEntry.mCreate(a:ctree.symbol, a:level)
+ call add(self.entries, aentry)
+
+ if has_key(a:ctree, 'childlinks')
+ for alink in a:ctree['childlinks']
+ call self.mBuildTreeForLevel(alink, a:level+1)
+ endfor
+ endif
+endfunction
+
+
+function! s:DisplayTree.mBuildNotationalTxtMarkers(direction, markerSyms) dict
+ " REVISIT
+ if a:direction == 'p'
+ let directiontxt = a:markerSyms.arrowR . " "
+ elseif a:direction == 'c'
+ let directiontxt = a:markerSyms.arrowF . " "
+ endif
+
+
+ let self.notTxt.arrowHead = a:markerSyms.splitT
+ let self.notTxt.arrow = directiontxt
+ let self.notTxt.arrowLead = a:markerSyms.extH
+ let self.notTxt.sep = a:markerSyms.extV
+ if s:CCTreeUseConceal == 1
+ let concealspace = " "
+ else
+ let concealspace = ""
+ endif
+
+ let self.notTxt.symHighlighter= concealspace . "@"
+
+ let self.notTxt.hiSymbolMarker = "!".concealspace
+ let self.notTxt.hiBranchMarker = "#".concealspace
+
+ let self.notTxt.cache = {}
+
+endfunction
+
+function! s:DisplayTree.mGetNotationalTxt(depth, hiDepth, hiSym, hiPath) dict
+ let notkey = join(a:000, ":")
+ if has_key(self.notTxt.cache,notkey) == 1
+ return self.notTxt.cache[notkey]
+ else
+ return self.mBuildNotationalTxt(a:depth, a:hiDepth, a:hiSym, a:hiPath)
+ endif
+endfunction
+
+function! s:DisplayTree.mBuildNotationalTxt(depth, hiDepth, hiSym, hiPath) dict
+ let hiBranch = 0
+ let curDepth = a:depth
+ if 0
+ let Aspace = "A"
+ let Bspace = "B"
+ let Cspace = "C"
+ let Sspace = "S"
+ let Xspace = "X"
+ let Zspace = "Z"
+ let Fspace = "1"
+ else
+ let Aspace = " "
+ let Bspace = " "
+ let Cspace = " "
+ let Sspace = " "
+ let Xspace = " "
+ let Zspace = " "
+ let Fspace = " "
+ endif
+
+ if g:CCTreeDisplayMode == 1
+ let arrowLeads = self.notTxt.arrowLead
+ elseif g:CCTreeDisplayMode >= 2
+ let arrowLeads = repeat(self.notTxt.arrowLead, a:depth)
+ endif
+
+ let indentSpace = ""
+ if g:CCTreeDisplayMode == 2
+ if curDepth > 0
+ let indentSpace = repeat(Aspace, curDepth)
+ endif
+ elseif g:CCTreeDisplayMode == 3
+ if curDepth > 0
+ let indentSpace = repeat(Aspace, self.levelMaxLen[curDepth-1])
+ endif
+ endif
+ let notTxt = self.notTxt.arrowHead. arrowLeads . self.notTxt.arrow
+ if a:hiDepth == a:depth
+ let notTxt = indentSpace . self.notTxt.symHighlighter . notTxt
+ let hiBranch = 1
+ else
+ let notTxt = indentSpace. Cspace. notTxt
+ endif
+ let curDepth -= 1
+
+ let indentSpace = ""
+ while (curDepth > 0)
+ if g:CCTreeDisplayMode == 2
+ let indentSpace = repeat(Bspace, curDepth)
+ elseif g:CCTreeDisplayMode == 3
+ let indentSpace = repeat(Bspace, self.levelMaxLen[curDepth-1])
+ endif
+ let notTxt = self.notTxt.sep . notTxt
+ if a:hiDepth == curDepth && a:hiPath == 1
+ let notTxt = indentSpace . self.notTxt.symHighlighter . notTxt
+ let hiBranch = 1
+ else
+ let notTxt = indentSpace. Cspace. notTxt
+ endif
+ let curDepth -= 1
+ endwhile
+ if curDepth == 0
+ " curdepth is 0
+ if a:hiDepth == curDepth && a:hiPath == 1
+ let notTxt = self.notTxt.symHighlighter . notTxt
+ let hiBranch = 1
+ else
+ let notTxt = Fspace . notTxt
+ endif
+ let curDepth -= 1
+ endif
+ " adjust space
+ if a:depth > 0
+ let notTxt = Xspace . notTxt
+ endif
+ if hiBranch == 1
+ if a:hiSym == 1
+ let notTxt = self.notTxt.hiSymbolMarker . notTxt
+ else
+ let notTxt = self.notTxt.hiBranchMarker . notTxt
+ endif
+ else
+ let notTxt = Sspace . notTxt
+ endif
+ return notTxt
+endfunction
+
+"}}}
+" {{{ Preview window Folding
+function! CCTreeFoldExpr(line)
+ if !exists('b:displayTree') || v:lnum > len(b:displayTree.entries)
+ return 0
+ endif
+
+ let lvl = b:displayTree.entries[v:lnum-1].level
+ if lvl == 0
+ let lvl = 1
+ endif
+ return '>'.lvl
+endfunction
+
+
+function! CCTreeFoldText()
+ if s:CCTreeUseConceal == 1
+ let line = substitute(getline(v:foldstart), '[!@#]', '' , 'g')
+ else
+ let line = substitute(getline(v:foldstart), '[!@#]', ' ' , 'g')
+ endif
+ return line. " (+". (v:foldend - v:foldstart).
+ \ ')'. repeat(" ", winwidth(0))
+endfunction
+" }}}
+" {{{ Syntax coloring definitions
+"Standard display
+highlight default link CCTreeSymbol Function
+highlight default link CCTreeMarkers LineNr
+highlight default link CCTreeArrow CCTreeMarkers
+highlight default link CCTreePathMark CCTreeArrow
+highlight default link CCTreeHiPathMark CCTreePathMark
+
+" highlighted display
+highlight default link CCTreeHiKeyword Macro
+highlight default link CCTreeHiSymbol TODO
+highlight default link CCTreeHiMarkers NonText
+highlight default link CCTreeHiArrow CCTreeHiMarkers
+highlight default link CCTreeUpArrowBlock CCTreeHiArrow
+
+highlight default link CCTreeMarkExcl Ignore
+highlight default link CCTreeMarkTilde Ignore
+"}}}
+" {{{ CCTree global state
+
+let s:CCTreePreviewState = {
+ \ 'keyword':'',
+ \ 'direction': '',
+ \ 'depth' : ''
+ \}
+
+function! s:CCTreePreviewState.mCreate()
+ let state = deepcopy(s:CCTreePreviewState)
+ unlet state.mCreate
+
+ return state
+endfunction
+
+function! s:CCTreePreviewState.mStore(symbol, direction)
+ let self.keyword = a:symbol
+ let self.direction = a:direction
+endfunction
+" }}}
+" {{{ CCTree global objects
+
+let s:CCTreeGlobals = {
+ \ 'XRefDb': {},
+ \ 'DbList': s:CCTreeDBList.mCreate(),
+ \ 'PreviewState': s:CCTreePreviewState.mCreate(),
+ \ 'Window': s:CCTreeWindow.mCreate()
+ \}
+
+let g:CCTreeGlobals = s:CCTreeGlobals
+
+function! s:CCTreeGlobals.mEnable(opt) dict
+ if (has_key(s:CCTreeOptions, a:opt))
+ call s:CCTreeOptions[a:opt](1)
+ else
+ call s:CCTreeUtils.mWarningMsg('Invalid option')
+ endif
+endfunction
+
+function! s:CCTreeGlobals.mDisable(opt) dict
+ if (has_key(s:CCTreeOptions, a:opt))
+ call s:CCTreeOptions[a:opt](0)
+ else
+ call s:CCTreeUtils.mWarningMsg('Invalid option')
+ endif
+endfunction
+
+function! s:CCTreeGlobals.mToggle(opt) dict
+ if (has_key(s:CCTreeOptions, a:opt))
+ call s:CCTreeOptions[a:opt](-1)
+ else
+ call s:CCTreeUtils.mWarningMsg('Invalid option')
+ endif
+endfunction
+
+function! s:CCTreeGlobals.mGetSymNames(lead) dict
+ call self.XRefDb.mInitState()
+ let syms = self.XRefDb.mGetSymbolNames(a:lead)
+ call self.XRefDb.mRestoreState()
+ return syms
+endfunction
+
+
+function! s:CCTreeGlobals.mGetCallsForSymbol(name, depth, direction) dict
+ let pbar = s:ProgressBarRoll.mCreate(['-','\','|','/'], '*')
+ call s:StatusLine.mSetInfo('Building ')
+ redrawstatus!
+ " Create tracer
+ let xtracer = s:XRefTracer.mCreate(self.XRefDb)
+ call xtracer.mInitTracing()
+ let symid = self.XRefDb.mGetSymbolIdFromName(a:name)
+ let xrefs = xtracer.mBuildForSymbol(symid,
+ \ a:depth, self.PreviewState.depth, a:direction, pbar)
+ call xtracer.mDoneTracing()
+ return xrefs
+endfunction
+
+function! s:CCTreeGlobals.mShowLoadedDBs() dict
+ call self.DbList.mShowLoaded()
+endfunction
+
+function! s:CCTreeGlobals.mUnLoadDBs() dict
+ call s:CCTreeGlobals.Window.mClose()
+ if !empty(s:CCTreeGlobals.XRefDb)
+ call s:CCTreeGlobals.XRefDb.mClear()
+ endif
+ call s:CCTreeGlobals.DbList.mClearAll()
+endfunction
+
+function! s:CCTreeGlobals.mSetPreviewState(name, depth, direction) dict
+ let self.PreviewState.keyword = a:name
+ let self.PreviewState.direction = a:direction
+ let self.PreviewState.depth = a:depth
+endfunction
+
+function! s:CCTreeGlobals.mUpdateForCurrentSymbol() dict
+ if self.DbList.mIsEmpty() == s:CCTreeRC.True
+ return s:CCTreeRC.Error
+ endif
+ if self.PreviewState.keyword != ''
+ let swatch = s:StopWatch.mCreate()
+ " Move this function to globals?
+ call s:StatusLine.mInit()
+ let atree = self.mGetCallsForSymbol(self.PreviewState.keyword,
+ \ 0,
+ \ self.PreviewState.direction)
+ call s:StatusLine.mRestore()
+ call self.Window.mDisplayTree(atree, self.PreviewState.direction)
+
+ call swatch.mSnapElapsed()
+ endif
+endfunction
+
+
+function! s:CCTreeGlobals.mGetPreviewTreeSymbols()
+ " REVIST
+ if exists('b:displayTree')
+ return self.Window.mExtractTreeSymbols(b:displayTree)
+ end
+ return {}
+endfunction
+
+function! s:CCTreeGlobals.mSanitizeCallDepth() dict
+ let error = 0
+ if self.PreviewState.depth >= s:calltreemaxdepth
+ self.PreviewState.depth = s:calltreemaxdepth
+ let error = 1
+ elseif self.PreviewState.depth < 1
+ let self.PreviewState.depth = 1
+ let error = 1
+ endif
+
+ if error == 1
+ call s:CCTreeUtils.mWarningMsg('Depth out of bounds')
+ endif
+ return error
+endfunction
+
+function! s:CCTreeGlobals.mRecursiveDepthIncrease() dict
+ let self.PreviewState.depth += 1
+ if self.mSanitizeCallDepth() == 0
+ call self.mUpdateForCurrentSymbol()
+ endif
+endfunction
+
+function! s:CCTreeGlobals.mRecursiveDepthDecrease() dict
+ let self.PreviewState.depth -= 1
+ if self.mSanitizeCallDepth() == 0
+ call self.mUpdateForCurrentSymbol()
+ endif
+endfunction
+
+function! s:CCTreeGlobals.mDisplayToggle() dict
+ call self.Window.mDisplayToggle()
+endfunction
+
+function! s:CCTreeGlobals.mSetupAutoCmds() dict
+ augroup CCTreeGeneral
+ au!
+ augroup END
+ call s:CCTreeGlobals.mSetupCursorMoveAutoCmd(g:CCTreeHilightCallTree)
+ call s:CCTreeGlobals.mSetupEncodingChangeAutoCmd(g:CCTreeUseUTF8Symbols)
+endfunction
+
+function! s:CCTreeGlobals.mSetupCursorMoveAutoCmd(enable) dict
+ if a:enable == 1
+ exec 'autocmd CCTreeGeneral CursorMoved '.s:windowtitle.' call s:CCTreeGlobals.mCursorHoldHandleEvent()'
+ else
+ exec 'autocmd! CCTreeGeneral CursorMoved '.s:windowtitle
+ endif
+endfunction
+
+function! s:CCTreeGlobals.mSetupEncodingChangeAutoCmd(enable) dict
+ return
+ if a:enable == 1
+ autocmd CCTreeGeneral EncodingChanged * call s:CCTreeGlobals.mEncodingChangedHandleEvent()
+ else
+ autocmd! CCTreeGeneral EncodingChanged *
+ endif
+endfunction
+
+function! s:CCTreeGlobals.mPreviewSave() dict
+ let rtitle = s:CCTreeGlobals.Window.mBuildStatusLine(
+ \ s:CCTreeGlobals.PreviewState,
+ \ s:windowsavetitle,
+ \ {'depth':'', 'direction':''}
+ \)
+
+ if self.Window.mPreviewSave(rtitle) == s:CCTreeRC.Success
+ call s:CCTreeUtils.mInfoMsg('Window saved as '. rtitle .
+ \ '. New window will be opened on next usage.')
+ else
+ call s:CCTreeUtils.mWarningMsg('No active window found to be saved.')
+ endif
+endfunction
+
+function! s:CCTreeGlobals.mWriteXRefDbToFile(fname) dict
+ " create db serializer and writer
+ let gDbSz = s:GenericDbSerializer.mCreate(self.XRefDb)
+ let gDbWriter = s:CCTreeTagDbWriter.mCreate(
+ \ s:CCTreeGetXRefDbMaps('Compress', 'Alpha'))
+ call gDbSz.mWriteXRefDbToFile(a:fname, gDbWriter)
+endfunction
+
+function! s:CCTreeGlobals.mReadToXRefDb(fname) dict
+ call s:StatusLine.mInit()
+ call s:StatusLine.mSetInfo('Reading XRefDb')
+ let vDbFile = s:vFile.mCreate(a:fname, "r")
+ if vDbFile.mIsLargeFile() == 1
+ call s:StatusLine.mSetExtraInfo('Xref DB '
+ \.' >'.g:CCTreeDbFileMaxSize .' bytes. Splitting '.
+ \'into smaller chunks... (this may take some time)')
+ endif
+ try
+ if vDbFile.mOpen() == 0
+ call s:TagFile.mReadToXRefDb(self.XRefDb, vDbFile)
+ endif
+ finally
+ call vDbFile.mClose()
+ call s:StatusLine.mRestore()
+ call self.DbList.mAddDbToList(a:fname, s:DBStorage.memory)
+ endtry
+endfunction
+
+function! s:CCTreeGlobals.mCursorHoldHandleEvent() dict
+ if self.Window.mGetKeywordAtCursor() != s:CCTreeRC.Error
+ setlocal modifiable
+ call self.Window.mClearMarks(b:displayTree)
+ call self.Window.mMarkCallTree(b:displayTree,
+ \ self.Window.hiKeyword)
+ setlocal nomodifiable
+ endif
+endfunction
+
+function! s:CCTreeGlobals.mEncodingChangedHandleEvent() dict
+ let self.Window.treeMarkers = s:CCTreeMarkers.mCreate()
+ if self.Window.mIsOpen() == s:CCTreeRC.True
+ call self.Window.mClose()
+ call self.mUpdateForCurrentSymbol()
+ endif
+endfunction
+
+
+function! s:CCTreeGlobals.mInit() dict
+ call self.mSetupAutoCmds()
+endfunction
+
+" }}}
+" {{{ CCTree options
+function! s:CCTreeSetUseCallTreeHiLights(val)
+ if a:val == -1
+ let g:CCTreeHilightCallTree = !g:CCTreeHilightCallTree
+ else
+ let g:CCTreeHilightCallTree = a:val
+ endif
+ call s:CCTreeGlobals.mSetupAutoCmds()
+endfunction
+
+function! s:CCTreeSetUseUtf8Symbols(val)
+ if a:val == -1
+ let g:CCTreeUseUTF8Symbols = !g:CCTreeUseUTF8Symbols
+ else
+ let g:CCTreeUseUTF8Symbols = a:val
+ endif
+ call s:CCTreeGlobals.mEncodingChangedHandleEvent()
+endfunction
+
+function! s:CCTreeSetUseConceal(val)
+ if a:val == -1
+ let s:CCTreeUseConceal = !s:CCTreeUseConceal
+ else
+ let s:CCTreeUseConceal = a:val
+ endif
+ if !has('conceal')
+ call s:CCTreeUtils.mWarningMsg('+conceal feature not available')
+ let s:CCTreeUseConceal = 0
+ endif
+endfunction
+
+function! s:CCTreeSetEnhancedSymbolProcessing(val)
+ if a:val == -1
+ let g:CCTreeEnhancedSymbolProcessing = !g:CCTreeEnhancedSymbolProcessing
+ else
+ let g:CCTreeEnhancedSymbolProcessing = a:val
+ endif
+endfunction
+
+function! s:CCTreeOptionsList(arglead, cmdline, cursorpos)
+ let opts = keys(s:CCTreeOptions)
+ if a:arglead == ''
+ return opts
+ else
+ return filter(opts, 'v:val =~? a:arglead')
+ endif
+endfunction
+
+let s:CCTreeOptions = {'UseUnicodeSymbols': function('s:CCTreeSetUseUtf8Symbols'),
+ \ 'DynamicTreeHiLights': function('s:CCTreeSetUseCallTreeHiLights'),
+ \ 'UseConceal': function('s:CCTreeSetUseConceal'),
+ \ 'EnhancedSymbolProcessing': function('s:CCTreeSetEnhancedSymbolProcessing')
+ \}
+
+" }}}
+" {{{ Vim tags interface
+
+" CCTreeCompleteKwd
+" Command line completion function to return names from the db
+function! s:CCTreeCompleteKwd(arglead, cmdline, cursorpos)
+ let syms = s:CCTreeGlobals.mGetSymNames(a:arglead)
+ if a:arglead == ''
+ return syms
+ else
+ return filter(syms, 'v:val =~? a:arglead')
+ endif
+endfunction
+
+function! s:CCTreeTraceTreeForSymbol(sym_arg, direction)
+ if s:CCTreeGlobals.DbList.mIsEmpty() == s:CCTreeRC.True
+ call s:CCTreeUtils.mWarningMsg('No database loaded')
+ return
+ endif
+
+ let symbol = a:sym_arg
+ if symbol == ''
+ let symbol = input('Trace symbol: ', expand('<cword>'),
+ \ 'customlist,<SNR>' . s:sid . 'CCTreeCompleteKwd')
+ if symbol == ''
+ return
+ endif
+ endif
+ let symmatch = s:CCTreeGlobals.mGetSymNames(symbol)
+ if len(symmatch) > 0 && index(symmatch, symbol) >= 0
+ call s:CCTreeGlobals.mSetPreviewState(symbol,
+ \ g:CCTreeRecursiveDepth,
+ \ a:direction)
+ call s:CCTreeGlobals.mUpdateForCurrentSymbol()
+ else
+ call s:CCTreeUtils.mWarningMsg('Symbol not found')
+ endif
+endfunction
+
+
+
+
+function! s:CCTreeGlobals.mLoadBufferFromKeyword()
+ " REVISIT
+ if s:CCTreeGlobals.Window.mGetKeywordAtCursor() == s:CCTreeRC.Error
+ call s:CCTreeUtils.mWarningMsg('No keyword at cursor')
+ return
+ endif
+
+ let hiKeyword = s:CCTreeGlobals.Window.hiKeyword
+ try
+ wincmd p
+ catch
+ call s:CCTreeUtils.mWarningMsg('No buffer to load file')
+ finally
+ if (cscope_connection() > 0)
+ try
+ exec "cs find g ". hiKeyword
+ catch
+ " cheap hack
+ exec "cs find f ". hiKeyword
+ endtry
+ else
+ try
+ " Ctags is smart enough to figure the path
+ exec "tag ".fnamemodify(hiKeyword, ":t")
+ catch /^Vim\%((\a\+)\)\=:E433/
+ call s:CCTreeUtils.mWarningMsg('Tag file not found')
+ catch /^Vim\%((\a\+)\)\=:E426/
+ call s:CCTreeUtils.mWarningMsg('Tag '. hiKeyword .' not found')
+ wincmd p
+ endtry
+ endif
+ endtry
+endfunction
+
+function! s:CCTreeGlobals.mPreviewBufferFromKeyword()
+ if self.Window.mGetKeywordAtCursor() == s:CCTreeRC.Error
+ call s:CCTreeUtils.mWarningMsg('No keyword found')
+ return
+ endif
+
+ let hiKeyword = s:CCTreeGlobals.Window.hiKeyword
+ silent! wincmd P
+ if !&previewwindow
+ wincmd p
+ endif
+ try
+ exec "ptag ". hiKeyword
+ catch
+ call s:CCTreeUtils.mWarningMsg('Tag '.hiKeyword. ' not found')
+ endtry
+endfunction
+
+" }}}
+" {{{ Define commands
+command! -nargs=? -complete=file CCTreeLoadXRefDBFromDisk
+ \ call s:CCTreeCmdLine.mLoadDBFromDisk(<q-args>)
+command! -nargs=? -complete=file CCTreeLoadDB call s:CCTreeCmdLine.mLoadDB(<q-args>, s:DBClasses.cscopeid)
+command! -nargs=? -complete=file CCTreeLoadXRefDB call s:CCTreeCmdLine.mLoadDB(<q-args>, s:DBClasses.cctreexref)
+command! -nargs=? -complete=file CCTreeSaveXRefDB call s:CCTreeCmdLine.mSaveDB(<q-args>, s:DBClasses.cctreexref)
+command! -nargs=? -complete=file CCTreeAppendDB call s:CCTreeCmdLine.mMergeDB(<q-args>, s:DBClasses.cscopeid)
+command! -nargs=0 CCTreeUnLoadDB call s:CCTreeGlobals.mUnLoadDBs()
+command! -nargs=0 CCTreeShowLoadedDBs call s:CCTreeGlobals.mShowLoadedDBs()
+command! -nargs=? -complete=customlist,s:CCTreeCompleteKwd
+ \ CCTreeTraceForward call s:CCTreeTraceTreeForSymbol(<q-args>, 'c')
+command! -nargs=? -complete=customlist,s:CCTreeCompleteKwd CCTreeTraceReverse
+ \ call s:CCTreeTraceTreeForSymbol(<q-args>, 'p')
+command! -nargs=0 CCTreeLoadBufferUsingTag call s:CCTreeGlobals.mLoadBufferFromKeyword()
+command! -nargs=0 CCTreePreviewBufferUsingTag call s:CCTreeGlobals.mPreviewBufferFromKeyword()
+command! -nargs=0 CCTreeRecurseDepthPlus call s:CCTreeGlobals.mRecursiveDepthIncrease()
+command! -nargs=0 CCTreeRecurseDepthMinus call s:CCTreeGlobals.mRecursiveDepthDecrease()
+" Preview Window
+command! -nargs=0 CCTreeWindowToggle call s:CCTreeGlobals.mDisplayToggle()
+command! -nargs=0 CCTreeWindowSaveCopy call s:CCTreeGlobals.mPreviewSave()
+" Run-time dynamic options
+command! -nargs=1 -complete=customlist,s:CCTreeOptionsList CCTreeOptsEnable call s:CCTreeGlobals.mEnable(<q-args>)
+command! -nargs=1 -complete=customlist,s:CCTreeOptionsList CCTreeOptsDisable call s:CCTreeGlobals.mDisable(<q-args>)
+command! -nargs=1 -complete=customlist,s:CCTreeOptionsList CCTreeOptsToggle call s:CCTreeGlobals.mToggle(<q-args>)
+"}}}
+" {{{ finish (and init)
+call s:CCTreeGlobals.mInit()
+" restore 'cpo'
+let &cpoptions = s:cpo_save
+unlet s:cpo_save
+" vim: ts=8 sw=4 sts=4 et foldenable foldmethod=marker foldcolumn=1
+" }}}
diff --git a/contrib/ocs b/contrib/ocs
new file mode 100644
index 0000000..736de94
--- /dev/null
+++ b/contrib/ocs
@@ -0,0 +1,308 @@
+#!/bin/sh
+# $Id: ocs,v 1.4 2004/06/21 18:13:21 broeker Exp $
+# This utility maintains the database for cscope on a recursive dir set
+# Author: donwo Tue Jun 25 15:36:39 PDT 1996
+# Modified: hops Jan 2000 chg defaults to not update if files exist and force
+#
+# These comments ARE the manual. What more do you really need?
+# if using unadorned cscope with this use cscope -d so not trash db
+# cscope -L -0 <ptn> - to display ptn matches on stdout
+#
+# The lists of files are kept in two forms:
+# TMP cscope.tmplst
+# The list generated by this program
+# This list will be updated each time this program
+# is executed.
+#
+# LST cscope.lst
+# The fixed list generated by some other process
+# This list will be used, if found, rather than
+# the TMP form generated here.
+#
+# CSD cscope.csd
+# The fixed list generated by some other process
+# This list will be used, if found, rather than
+# the LST or TMP forms. CSD differs from LST in
+# that the CSD list is used where the source files
+# change only seldom. Cscope is requested not to
+# check for changed files. This can be
+# significantly faster on large source trees.
+#
+# INC cscope.inc
+# This is a list of additional directories
+# in which to search for include files.
+#
+# Three hierarchies of libraries are supported:
+# Local In the current directory ./
+# This is most useful for transient projects or
+# where the information is of no use to others on
+# the system. This type is NOT usable on source
+# directories that are read-only.
+# Home In users home directory $HOME/lib/cs/`pwd`
+# This is good for items that seldom change but are
+# of use only the the current user. This type is
+# usable on source directories that are read-only.
+# System In a global system directory $SYSDIR/`pwd`
+# This is for items that are of interest to all accounts.
+# This option is not available unless the system directory
+# is writable by the current user. This type is usable
+# on source directories that are read-only.
+#
+# If a shell script named ./cscope.rc is found and is
+# executable, the execution of it will be included within this
+# script after defaults_set/cmdline_parse and locating the
+# database.
+#
+# Command line options:
+# -x set shell debugging
+# -f force
+# o Do not ask about regenerating TMP. Just do it.
+# o Allow cscope to regenerate libraries for CSD lists.
+# -q Tell cscope to build an inverted index for quick
+# symbol searching. There is a SIGNIFICANT
+# increase in speed with this option however the
+# disk space used is doubled. Once the quick
+# database is generated, cs will detect the files
+# and continue to use them.
+# -d Do not regenerate. Intended for cscope sub-tasks.
+# -u Update/regenerate.
+
+#
+# Here is where we put things
+
+CSCOPE=cscope
+HOMEDIR=${HOME}/lib/cs
+
+#set the default value for SYSDIR
+if [ -z "${SYSDIR}" ]; then
+ SYSDIR=/usr/local/lib/cs
+ echo setting default sysdir
+fi
+
+#check that SYSDIR exists
+if [ ! -d ${SYSDIR} ]; then
+ echo -n $SYSDIR does not exist.
+ echo Please create the directory and set SYSDIR appropriately
+ exit
+fi
+
+# Check that cscope is in PATH
+type cscope 1>/dev/null 2>&1
+
+if [ $? -ne 0 ]
+then
+ echo "ERROR: cscope is not in \$PATH" >&2
+ echo " Please set \$PATH correctly or make sure cscope is installed" >&2
+ exit 1
+fi
+
+# popup editor
+#XCS_EDITOR=${HOME}/bin/x_cscope_editor
+XCS_EDITOR=${HOME}/bin/xme
+if [ -n "$DISPLAY" -a -x ${XCS_EDITOR} ]
+then
+ EDITOR=${XCS_EDITOR}
+ export EDITOR
+fi
+unset XCS_EDITOR
+
+#
+# Misc defaults
+
+#FORCE=N
+#NOUPDATE=
+FORCE=Y # hops - default to force rather than query
+NOUPDATE=-d # hops - default to no update if files already exist
+QUICK=
+SPECDEST= # hops - query for files
+
+#
+# Parse the command line
+
+set -- `getopt xfqdu $*`
+
+if [ $? -ne 0 ]
+then
+ echo "Use: cs [-x] [-f] [-q] [-u]" >&2
+ echo " -x debug on " >&2
+ echo " -q quick Index - faster search but larger index" >&2
+ echo " -f ask about about regeneration" >&2
+ echo " -d don't update database (default)" >&2
+ echo " -u update database" >&2
+ echo " -s specify where files go" >&2
+ exit 1
+fi
+
+for arg
+do
+ case $arg in
+ -x ) set -x; shift ;;
+ -f ) FORCE=N; NOUPDATE=; shift;;
+ -q ) QUICK=-q; shift ;;
+ -d ) NOUPDATE=-d; shift ;;
+ -u ) NOUPDATE=; shift ;;
+ -s ) SPECDEST=Y; shift ;;
+ esac
+done
+
+#
+# Here is the security hole. Execute whatever is needed for
+# this project. A per-project setup script may be available.
+
+[ -x ./cscope.rc ] && {
+ . ./cscope.rc
+}
+
+#
+# We look hard for appropriate files to scope. We ignore items
+# containing "SCCS" assuming that these are directories of
+# source code control data.
+
+create_list()
+{
+ LIST=$1
+
+ if [ -f ${LIST} ]
+ then
+ [ -n "${NOUPDATE}" ] && return
+
+ if [ "${FORCE}" != "Y" ]
+ then
+ echo "\n${LIST}"
+ echo "Update the library? <(Y)es, (N)o, (Q)uit> [n] \c"
+ read x y
+ case $x in
+ [Yy]* ) ;;
+ [Qq]* ) exit 1 ;;
+ *) return ;;
+ esac
+ fi
+ echo "Updating library:\n ${LIST} \c"
+ else
+ echo "Creating library:\n ${LIST} \c"
+ fi
+
+ (
+ find . -follow -type f \( -name \*.[sScChHlyG] -o \
+ -name \*.asm -o \
+ -name \*.cc -o \
+ -name \*.cxx -o \
+ -name \*.ccP -o \
+ -name \*.hP -o \
+ -name \*.inc -o \
+ -name \*.ed -o \
+ -name vuifile -o \
+ -name Gensymvals -o \
+ -name \[mM\]ake\* \) \
+ -print
+ ) | grep -v SCCS | sort -u > ${LIST}
+
+ echo "\n`cat ${LIST} | wc -l` files listed"
+}
+
+#
+# Expand the include file list into command line arguments
+
+exp_inc()
+{
+ theInc=$1
+
+ if [ -s "${theInc}" ]
+ then
+ for i in `cat ${theInc}`
+ do
+ echo "-I $i \c"
+ done
+ fi
+}
+
+#
+# This routine does not return to the caller
+
+do_cscope()
+{
+ LIST=$1
+ CSLIB=$2
+ INC=$3
+ shift;shift;shift
+ ARGS="$*"
+
+ INCARGS=`exp_inc ${INC}`
+
+ echo "exec cscope"
+ exec $CSCOPE ${ARGS} -p 2 ${INCARGS} -i ${LIST} -f ${CSLIB}
+ echo "exec of $CSCOPE failed" >&2
+ exit 1
+}
+
+#
+# If we have existing libraries, we should use them.
+std_libs()
+{
+ DIR=$1
+ OUT=${DIR}/cscope.out
+ LST=${DIR}/cscope.lst
+ CSD=${DIR}/cscope.csd
+ TMP=${DIR}/cscope.tmplst
+ INC=${DIR}/cscope.inc
+ QCK=${DIR}/cscope.out.po
+
+ [ -s ${QCK} ] && QUICK=-q
+
+ [ -f ${CSD} ] && {
+ if [ "${FORCE}" = "Y" ]
+ then
+ do_cscope ${CSD} ${OUT} ${INC} ${QUICK}
+ else
+ do_cscope ${CSD} ${OUT} ${INC} ${QUICK} -d
+ fi
+ }
+
+ [ -f ${LST} ] && do_cscope ${LST} ${OUT} ${INC} ${QUICK} ${NOUPDATE}
+
+ [ -f ${TMP} ] && {
+ create_list ${TMP}
+ do_cscope ${TMP} ${OUT} ${INC} ${QUICK} ${NOUPDATE}
+ }
+}
+
+#
+# ######## main() #######
+
+umask 0
+PWD=`pwd`
+
+umask 02
+
+#
+# Check for existing libraries
+
+std_libs $PWD
+std_libs ${HOMEDIR}$PWD
+std_libs ${SYSDIR}$PWD
+
+#
+# We may need to create one for this area
+
+DIR=$PWD
+if [ ! -n "${NOUPDATE}" -o -n "${SPECDEST}" ] ; then
+echo "Create new library? <(L)ocal, (H)ome, (S)ystem, (Q)uit> [q] \c"
+read x y
+case $x in
+ [Ll]* ) DIR=$PWD ;;
+ [Hh]* ) DIR=${HOMEDIR}$PWD ;;
+ [Ss]* ) DIR=${SYSDIR}$PWD ;;
+ *) exit 1 ;;
+esac
+fi
+[ -d $DIR ] || {
+ mkdir -p $DIR || exit $?
+}
+
+OUT=${DIR}/cscope.out
+TMP=${DIR}/cscope.tmplst
+INC=${DIR}/cscope.inc
+
+create_list ${TMP}
+do_cscope ${TMP} ${OUT} ${INC} ${QUICK}
+
diff --git a/contrib/webcscope/INSTALL b/contrib/webcscope/INSTALL
new file mode 100644
index 0000000..0ea0d9c
--- /dev/null
+++ b/contrib/webcscope/INSTALL
@@ -0,0 +1,31 @@
+WebCScope Installation
+
+Quick Install
+
+0. Create a directory called cscope under your /cgi-bin (virtual) directory.
+ Copy all the files in the distribution to this directory.
+
+1. Edit the 'cscope' file and change the following items:
+ - Location to the perl interpreter
+ - Location of the cscope database and other modifiable parameters
+ - Feedback name and email
+ - Location of the syntax highlighter, if you wish to use it
+
+2. Syntax highlighter
+ - The syntax highlighter must be built if you decide to use it. If you
+ do not want syntax highlighting, you can ignore this step and set the
+ highlighter to /bin/cat.
+ - Compile 'hilite.c' using 'gcc -o hilite hilite.c'
+
+3. Icons
+ - Copy the images from the icons directory into the /icons (virtual)
+ directory on the web server. You can also replace these images with
+ whatever you choose.
+
+4. Organizing your CScope databases
+ - WebCScope supports multiple databases in $cscopedir
+ - Create a directory for each project or sub-source in $cscopedir and,
+ generate your cscope database using the following commands.
+ - find /some/source/dir -name '*.[chyls]' -print > cscope.files
+ - cscope -b -q
+ - Repeat the above step for each database you wish to create
diff --git a/contrib/webcscope/LICENSE b/contrib/webcscope/LICENSE
new file mode 100644
index 0000000..5b6e7c6
--- /dev/null
+++ b/contrib/webcscope/LICENSE
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 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.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+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 Program or any portion
+of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+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 Program, 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 Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) 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; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, 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 executable. However, as a
+special exception, the source code 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.
+
+If distribution of executable or 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 counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program 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.
+
+ 5. 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 Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program 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 to
+this License.
+
+ 7. 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 Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program 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 Program.
+
+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.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program 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.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies 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 Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, 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
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. 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 PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+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 program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/contrib/webcscope/TODO b/contrib/webcscope/TODO
new file mode 100644
index 0000000..4e61555
--- /dev/null
+++ b/contrib/webcscope/TODO
@@ -0,0 +1,5 @@
+
+- Better error checking and the like
+- Add a more robust cookie mechanism
+- More efficient way of searching 'all' databases
+- Fix bugs
diff --git a/contrib/webcscope/cgi-lib.pl b/contrib/webcscope/cgi-lib.pl
new file mode 100644
index 0000000..97d0caa
--- /dev/null
+++ b/contrib/webcscope/cgi-lib.pl
@@ -0,0 +1,471 @@
+# Perl Routines to Manipulate CGI input
+# cgi-lib@pobox.com
+# $Id: cgi-lib.pl,v 1.1 2001/06/29 14:20:16 petr Exp $
+#
+# Copyright (c) 1993-1999 Steven E. Brenner
+# Unpublished work.
+# Permission granted to use and modify this library so long as the
+# copyright above is maintained, modifications are documented, and
+# credit is given for any use of the library.
+#
+# Thanks are due to many people for reporting bugs and suggestions
+
+# For more information, see:
+# http://cgi-lib.stanford.edu/cgi-lib/
+
+$cgi_lib'version = sprintf("%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/);
+
+
+# Parameters affecting cgi-lib behavior
+# User-configurable parameters affecting file upload.
+$cgi_lib'maxdata = 131072; # maximum bytes to accept via POST - 2^17
+$cgi_lib'writefiles = 0; # directory to which to write files, or
+ # 0 if files should not be written
+$cgi_lib'filepre = "cgi-lib"; # Prefix of file names, in directory above
+
+# Do not change the following parameters unless you have special reasons
+$cgi_lib'bufsize = 8192; # default buffer size when reading multipart
+$cgi_lib'maxbound = 100; # maximum boundary length to be encounterd
+$cgi_lib'headerout = 0; # indicates whether the header has been printed
+
+
+# ReadParse
+# Reads in GET or POST data, converts it to unescaped text, and puts
+# key/value pairs in %in, using "\0" to separate multiple selections
+
+# Returns >0 if there was input, 0 if there was no input
+# undef indicates some failure.
+
+# Now that cgi scripts can be put in the normal file space, it is useful
+# to combine both the form and the script in one place. If no parameters
+# are given (i.e., ReadParse returns FALSE), then a form could be output.
+
+# If a reference to a hash is given, then the data will be stored in that
+# hash, but the data from $in and @in will become inaccessable.
+# If a variable-glob (e.g., *cgi_input) is the first parameter to ReadParse,
+# information is stored there, rather than in $in, @in, and %in.
+# Second, third, and fourth parameters fill associative arrays analagous to
+# %in with data relevant to file uploads.
+
+# If no method is given, the script will process both command-line arguments
+# of the form: name=value and any text that is in $ENV{'QUERY_STRING'}
+# This is intended to aid debugging and may be changed in future releases
+
+sub ReadParse {
+ # Disable warnings as this code deliberately uses local and environment
+ # variables which are preset to undef (i.e., not explicitly initialized)
+ local ($perlwarn);
+ $perlwarn = $^W;
+ $^W = 0;
+
+ local (*in) = shift if @_; # CGI input
+ local (*incfn, # Client's filename (may not be provided)
+ *inct, # Client's content-type (may not be provided)
+ *insfn) = @_; # Server's filename (for spooled files)
+ local ($len, $type, $meth, $errflag, $cmdflag, $got, $name);
+
+ binmode(STDIN); # we need these for DOS-based systems
+ binmode(STDOUT); # and they shouldn't hurt anything else
+ binmode(STDERR);
+
+ # Get several useful env variables
+ $type = $ENV{'CONTENT_TYPE'};
+ $len = $ENV{'CONTENT_LENGTH'};
+ $meth = $ENV{'REQUEST_METHOD'};
+
+ if ($len > $cgi_lib'maxdata) { #'
+ &CgiDie("cgi-lib.pl: Request to receive too much data: $len bytes\n");
+ }
+
+ if (!defined $meth || $meth eq '' || $meth eq 'GET' ||
+ $meth eq 'HEAD' ||
+ $type eq 'application/x-www-form-urlencoded') {
+ local ($key, $val, $i);
+
+ # Read in text
+ if (!defined $meth || $meth eq '') {
+ $in = $ENV{'QUERY_STRING'};
+ $cmdflag = 1; # also use command-line options
+ } elsif($meth eq 'GET' || $meth eq 'HEAD') {
+ $in = $ENV{'QUERY_STRING'};
+ } elsif ($meth eq 'POST') {
+ if (($got = read(STDIN, $in, $len) != $len))
+ {$errflag="Short Read: wanted $len, got $got\n";};
+ } else {
+ &CgiDie("cgi-lib.pl: Unknown request method: $meth\n");
+ }
+
+ @in = split(/[&;]/,$in);
+ push(@in, @ARGV) if $cmdflag; # add command-line parameters
+
+ foreach $i (0 .. $#in) {
+ # Convert plus to space
+ $in[$i] =~ s/\+/ /g;
+
+ # Split into key and value.
+ ($key, $val) = split(/=/,$in[$i],2); # splits on the first =.
+
+ # Convert %XX from hex numbers to alphanumeric
+ $key =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
+ $val =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
+
+ # Associate key and value
+ $in{$key} .= "\0" if (defined($in{$key})); # \0 is the multiple separator
+ $in{$key} .= $val;
+ }
+
+ } elsif ($ENV{'CONTENT_TYPE'} =~ m#^multipart/form-data#) {
+ # for efficiency, compile multipart code only if needed
+$errflag = !(eval <<'END_MULTIPART');
+
+ local ($buf, $boundary, $head, @heads, $cd, $ct, $fname, $ctype, $blen);
+ local ($bpos, $lpos, $left, $amt, $fn, $ser);
+ local ($bufsize, $maxbound, $writefiles) =
+ ($cgi_lib'bufsize, $cgi_lib'maxbound, $cgi_lib'writefiles);
+
+
+ # The following lines exist solely to eliminate spurious warning messages
+ $buf = '';
+
+ ($boundary) = $type =~ /boundary="([^"]+)"/; #"; # find boundary
+ ($boundary) = $type =~ /boundary=(\S+)/ unless $boundary;
+ &CgiDie ("Boundary not provided: probably a bug in your server")
+ unless $boundary;
+ $boundary = "--" . $boundary;
+ $blen = length ($boundary);
+
+ if ($ENV{'REQUEST_METHOD'} ne 'POST') {
+ &CgiDie("Invalid request method for multipart/form-data: $meth\n");
+ }
+
+ if ($writefiles) {
+ local($me);
+ stat ($writefiles);
+ $writefiles = "/tmp" unless -d _ && -w _;
+ # ($me) = $0 =~ m#([^/]*)$#;
+ $writefiles .= "/$cgi_lib'filepre";
+ }
+
+ # read in the data and split into parts:
+ # put headers in @in and data in %in
+ # General algorithm:
+ # There are two dividers: the border and the '\r\n\r\n' between
+ # header and body. Iterate between searching for these
+ # Retain a buffer of size(bufsize+maxbound); the latter part is
+ # to ensure that dividers don't get lost by wrapping between two bufs
+ # Look for a divider in the current batch. If not found, then
+ # save all of bufsize, move the maxbound extra buffer to the front of
+ # the buffer, and read in a new bufsize bytes. If a divider is found,
+ # save everything up to the divider. Then empty the buffer of everything
+ # up to the end of the divider. Refill buffer to bufsize+maxbound
+ # Note slightly odd organization. Code before BODY: really goes with
+ # code following HEAD:, but is put first to 'pre-fill' buffers. BODY:
+ # is placed before HEAD: because we first need to discard any 'preface,'
+ # which would be analagous to a body without a preceeding head.
+
+ $left = $len;
+ PART: # find each part of the multi-part while reading data
+ while (1) {
+ die $@ if $errflag;
+
+ $amt = ($left > $bufsize+$maxbound-length($buf)
+ ? $bufsize+$maxbound-length($buf): $left);
+ $errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
+ die "Short Read: wanted $amt, got $got\n" if $errflag;
+ $left -= $amt;
+
+ $in{$name} .= "\0" if defined $in{$name};
+ $in{$name} .= $fn if $fn;
+
+ $name=~/([-\w]+)/; # This allows $insfn{$name} to be untainted
+ if (defined $1) {
+ $insfn{$1} .= "\0" if defined $insfn{$1};
+ $insfn{$1} .= $fn if $fn;
+ }
+
+ BODY:
+ while (($bpos = index($buf, $boundary)) == -1) {
+ if ($left == 0 && $buf eq '') {
+ foreach $value (values %insfn) {
+ unlink(split("\0",$value));
+ }
+ &CgiDie("cgi-lib.pl: reached end of input while seeking boundary " .
+ "of multipart. Format of CGI input is wrong.\n");
+ }
+ die $@ if $errflag;
+ if ($name) { # if no $name, then it's the prologue -- discard
+ if ($fn) { print FILE substr($buf, 0, $bufsize); }
+ else { $in{$name} .= substr($buf, 0, $bufsize); }
+ }
+ $buf = substr($buf, $bufsize);
+ $amt = ($left > $bufsize ? $bufsize : $left); #$maxbound==length($buf);
+ $errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
+ die "Short Read: wanted $amt, got $got\n" if $errflag;
+ $left -= $amt;
+ }
+ if (defined $name) { # if no $name, then it's the prologue -- discard
+ if ($fn) { print FILE substr($buf, 0, $bpos-2); }
+ else { $in {$name} .= substr($buf, 0, $bpos-2); } # kill last \r\n
+ }
+ close (FILE);
+ last PART if substr($buf, $bpos + $blen, 2) eq "--";
+ substr($buf, 0, $bpos+$blen+2) = '';
+ $amt = ($left > $bufsize+$maxbound-length($buf)
+ ? $bufsize+$maxbound-length($buf) : $left);
+ $errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
+ die "Short Read: wanted $amt, got $got\n" if $errflag;
+ $left -= $amt;
+
+
+ undef $head; undef $fn;
+ HEAD:
+ while (($lpos = index($buf, "\r\n\r\n")) == -1) {
+ if ($left == 0 && $buf eq '') {
+ foreach $value (values %insfn) {
+ unlink(split("\0",$value));
+ }
+ &CgiDie("cgi-lib: reached end of input while seeking end of " .
+ "headers. Format of CGI input is wrong.\n$buf");
+ }
+ die $@ if $errflag;
+ $head .= substr($buf, 0, $bufsize);
+ $buf = substr($buf, $bufsize);
+ $amt = ($left > $bufsize ? $bufsize : $left); #$maxbound==length($buf);
+ $errflag = (($got = read(STDIN, $buf, $amt, length($buf))) != $amt);
+ die "Short Read: wanted $amt, got $got\n" if $errflag;
+ $left -= $amt;
+ }
+ $head .= substr($buf, 0, $lpos+2);
+ push (@in, $head);
+ @heads = split("\r\n", $head);
+ ($cd) = grep (/^\s*Content-Disposition:/i, @heads);
+ ($ct) = grep (/^\s*Content-Type:/i, @heads);
+
+ ($name) = $cd =~ /\bname="([^"]+)"/i; #";
+ ($name) = $cd =~ /\bname=([^\s:;]+)/i unless defined $name;
+
+ ($fname) = $cd =~ /\bfilename="([^"]*)"/i; #"; # filename can be null-str
+ ($fname) = $cd =~ /\bfilename=([^\s:;]+)/i unless defined $fname;
+ $incfn{$name} .= (defined $in{$name} ? "\0" : "") .
+ (defined $fname ? $fname : "");
+
+ ($ctype) = $ct =~ /^\s*Content-type:\s*"([^"]+)"/i; #";
+ ($ctype) = $ct =~ /^\s*Content-Type:\s*([^\s:;]+)/i unless defined $ctype;
+ $inct{$name} .= (defined $in{$name} ? "\0" : "") . $ctype;
+
+ if ($writefiles && defined $fname) {
+ $ser++;
+ $fn = $writefiles . ".$$.$ser";
+ open (FILE, ">$fn") || &CgiDie("Couldn't open $fn\n");
+ binmode (FILE); # write files accurately
+ }
+ substr($buf, 0, $lpos+4) = '';
+ undef $fname;
+ undef $ctype;
+ }
+
+1;
+END_MULTIPART
+ if ($errflag) {
+ local ($errmsg, $value);
+ $errmsg = $@ || $errflag;
+ foreach $value (values %insfn) {
+ unlink(split("\0",$value));
+ }
+ &CgiDie($errmsg);
+ } else {
+ # everything's ok.
+ }
+ } else {
+ &CgiDie("cgi-lib.pl: Unknown Content-type: $ENV{'CONTENT_TYPE'}\n");
+ }
+
+ # no-ops to avoid warnings
+ $insfn = $insfn;
+ $incfn = $incfn;
+ $inct = $inct;
+
+ $^W = $perlwarn;
+
+ return ($errflag ? undef : scalar(@in));
+}
+
+
+# PrintHeader
+# Returns the magic line which tells WWW that we're an HTML document
+
+sub PrintHeader {
+ return "Content-type: text/html\n\n";
+}
+
+
+# HtmlTop
+# Returns the <head> of a document and the beginning of the body
+# with the title and a body <h1> header as specified by the parameter
+
+sub HtmlTop
+{
+ local ($title) = @_;
+
+ return <<END_OF_TEXT;
+<html>
+<head>
+<title>$title</title>
+</head>
+<body>
+<h1>$title</h1>
+END_OF_TEXT
+}
+
+
+# HtmlBot
+# Returns the </body>, </html> codes for the bottom of every HTML page
+
+sub HtmlBot
+{
+ return "</body>\n</html>\n";
+}
+
+
+# SplitParam
+# Splits a multi-valued parameter into a list of the constituent parameters
+
+sub SplitParam
+{
+ local ($param) = @_;
+ local (@params) = split ("\0", $param);
+ return (wantarray ? @params : $params[0]);
+}
+
+
+# MethGet
+# Return true if this cgi call was using the GET request, false otherwise
+
+sub MethGet {
+ return (defined $ENV{'REQUEST_METHOD'} && $ENV{'REQUEST_METHOD'} eq "GET");
+}
+
+
+# MethPost
+# Return true if this cgi call was using the POST request, false otherwise
+
+sub MethPost {
+ return (defined $ENV{'REQUEST_METHOD'} && $ENV{'REQUEST_METHOD'} eq "POST");
+}
+
+
+# MyBaseUrl
+# Returns the base URL to the script (i.e., no extra path or query string)
+sub MyBaseUrl {
+ local ($ret, $perlwarn);
+ $perlwarn = $^W; $^W = 0;
+ $ret = 'http://' . $ENV{'SERVER_NAME'} .
+ ($ENV{'SERVER_PORT'} != 80 ? ":$ENV{'SERVER_PORT'}" : '') .
+ $ENV{'SCRIPT_NAME'};
+ $^W = $perlwarn;
+ return $ret;
+}
+
+
+# MyFullUrl
+# Returns the full URL to the script (i.e., with extra path or query string)
+sub MyFullUrl {
+ local ($ret, $perlwarn);
+ $perlwarn = $^W; $^W = 0;
+ $ret = 'http://' . $ENV{'SERVER_NAME'} .
+ ($ENV{'SERVER_PORT'} != 80 ? ":$ENV{'SERVER_PORT'}" : '') .
+ $ENV{'SCRIPT_NAME'} . $ENV{'PATH_INFO'} .
+ (length ($ENV{'QUERY_STRING'}) ? "?$ENV{'QUERY_STRING'}" : '');
+ $^W = $perlwarn;
+ return $ret;
+}
+
+
+# MyURL
+# Returns the base URL to the script (i.e., no extra path or query string)
+# This is obsolete and will be removed in later versions
+sub MyURL {
+ return &MyBaseUrl;
+}
+
+
+# CgiError
+# Prints out an error message which which containes appropriate headers,
+# markup, etcetera.
+# Parameters:
+# If no parameters, gives a generic error message
+# Otherwise, the first parameter will be the title and the rest will
+# be given as different paragraphs of the body
+
+sub CgiError {
+ local (@msg) = @_;
+ local ($i,$name);
+
+ if (!@msg) {
+ $name = &MyFullUrl;
+ @msg = ("Error: script $name encountered fatal error\n");
+ };
+
+ if (!$cgi_lib'headerout) { #')
+ print &PrintHeader;
+ print "<html>\n<head>\n<title>$msg[0]</title>\n</head>\n<body>\n";
+ }
+ print "<h1>$msg[0]</h1>\n";
+ foreach $i (1 .. $#msg) {
+ print "<p>$msg[$i]</p>\n";
+ }
+
+ $cgi_lib'headerout++;
+}
+
+
+# CgiDie
+# Identical to CgiError, but also quits with the passed error message.
+
+sub CgiDie {
+ local (@msg) = @_;
+ &CgiError (@msg);
+ die @msg;
+}
+
+
+# PrintVariables
+# Nicely formats variables. Three calling options:
+# A non-null associative array - prints the items in that array
+# A type-glob - prints the items in the associated assoc array
+# nothing - defaults to use %in
+# Typical use: &PrintVariables()
+
+sub PrintVariables {
+ local (*in) = @_ if @_ == 1;
+ local (%in) = @_ if @_ > 1;
+ local ($out, $key, $output);
+
+ $output = "\n<dl compact>\n";
+ foreach $key (sort keys(%in)) {
+ foreach (split("\0", $in{$key})) {
+ ($out = $_) =~ s/\n/<br>\n/g;
+ $output .= "<dt><b>$key</b>\n <dd>:<i>$out</i>:<br>\n";
+ }
+ }
+ $output .= "</dl>\n";
+
+ return $output;
+}
+
+# PrintEnv
+# Nicely formats all environment variables and returns HTML string
+sub PrintEnv {
+ &PrintVariables(*ENV);
+}
+
+
+# The following lines exist only to avoid warning messages
+$cgi_lib'writefiles = $cgi_lib'writefiles;
+$cgi_lib'bufsize = $cgi_lib'bufsize ;
+$cgi_lib'maxbound = $cgi_lib'maxbound;
+$cgi_lib'version = $cgi_lib'version;
+$cgi_lib'filepre = $cgi_lib'filepre;
+
+1; #return true
+
diff --git a/contrib/webcscope/cscope b/contrib/webcscope/cscope
new file mode 100644
index 0000000..1ed2e5c
--- /dev/null
+++ b/contrib/webcscope/cscope
@@ -0,0 +1,450 @@
+#!/usr/bin/perl
+
+# $Id: cscope,v 1.2 2007/01/07 12:34:01 broeker Exp $
+#
+# WebCscope: A web interface to the cscope application
+# Copyright (C) 2001, Ragho Mahalingam <ragho@mahalingam.com>
+#
+# This program 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 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
+#
+# Change History:
+#
+# $Log: cscope,v $
+# Revision 1.2 2007/01/07 12:34:01 broeker
+# Direct attention to security issues with webcscope.
+#
+# Revision 1.1 2001/06/29 14:20:16 petr
+# Added webcscope to contribs.
+#
+# Revision 1.3.4.1 2001/02/05 15:14:34 rmahalin
+# initial release with some bug fixes
+#
+# Revision 1.3.3.1 2001/01/22 22:21:23 rmahalin
+# added multi-database support
+# fixed cookie support for trivial functions; removed global trivials
+# added syntax highlighting for files displayed on browser
+#
+# Revision 1.3.1.1 2001/01/11 22:17:30 rmahalin
+# added direct download with mime-type 'text/c-source' and made cosmetic changes
+#
+# Revision 1.3 2001/01/11 21:36:39 rmahalin
+# *** empty log message ***
+#
+# Revision 1.2 2001/01/11 21:34:13 rmahalin
+# incorporated draft feedback changes
+#
+# Revision 1.1 2001/01/11 21:19:32 rmahalin
+# Initial revision
+#
+
+require "cgi-lib.pl";
+
+# current code version being used
+$version = "iSOS 2.5/int16";
+# full path to the cscope binary
+$cscopecmd = "/usr/global/bin/cscope";
+# cscope working directory, where all the in/out and db files are stored
+$cscopedir = "/usr/local/cscope";
+# trivial functions not to display, one per line in the trivs file
+$trivs = "/usr/local/htdocs/cscope/trivials";
+# temporary storage directory
+$tmpdir = "/tmp";
+$tmpinfile = $tmpdir . "/cscopein.$$";
+$tmpoutfile = $tmpdir . "/cscopeout.$$";
+$showfile = $tmpdir . "/showfile.$$";
+# C syntax highlighting application or uncomment the line beneath to just cat
+#$hiliter = "/bin/cat";
+$hiliter = "/usr/local/cgi-bin/cscope/hilite";
+($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = gmtime(time+1000000);
+$cookie_exp = sprintf("%s %02d-%s-%s %02d:%02d:%02d GMT", $wday, $mday, $mon, $year, $hour, $min, $sec);
+
+# standard images, from the apache distribution
+$img{openfile} = "/icons/folder.gif";
+$img{downloadfile} = "/icons/folder.open.gif";
+$img{csymbol} = "/icons/c.gif";
+$img{upfunc} = "/icons/up.gif";
+$img{downfunc} = "/icons/down.gif";
+$img{globalfunc} = "/icons/world2.gif";
+$img{trashfunc} = "/icons/bomb.gif";
+$img{untrashfunc} = "/icons/back.gif";
+$img{back} = "/icons/left.gif";
+
+# feedback details
+$comment{name} = "Ragho Mahalingam";
+$comment{email} = "ragho\@mahalingam.com";
+
+# operations allowed
+@oper = ( "Find this C symbol",
+"Find this global symbol",
+"Find functions called by",
+"Find functions calling",
+"Find this text string",
+"---------------------",
+"Find this egrep pattern",
+"Find this file",
+"Find files #including this file" );
+
+# -- removed global trivial function list in favor of customized trivials
+#open(TRIVIAL_FUNC, $trivs);
+#@trivial = <TRIVIAL_FUNC>;
+#close(TRIVIAL_FUNC);
+@trivial = ();
+
+MAIN:
+
+{
+ $starttime = time;
+
+ if (&ReadParse(*input)) {
+ &ProcessCookie;
+ &ProcessForm;
+ } else {
+ &PrintForm;
+ }
+}
+
+sub ProcessCookie {
+
+ if ( defined $ENV{HTTP_COOKIE} ) {
+ ($var, $val) = split('=',$ENV{HTTP_COOKIE});
+ $Cookie{$var} = $val;
+ if ( defined $Cookie{'cs-trivf'} ) {
+ # do nothing, else initialize it to null
+ } else {
+ $Cookie{'cs-trivf'} = "defined";
+ }
+ @loc_trivial = split(',', $Cookie{'cs-trivf'});
+ @trivial = ( @loc_trivial );
+
+ }
+}
+
+sub ProcessTrashForm {
+
+ if ( defined $input{'trash'} ) {
+ @trivial = (@trivial, $input{'func'});
+ } else {
+ @tmptriv = ();
+ for ($i=0; $i <= $#trivial; $i++) {
+ $fhash = unpack('H*', $input{'func'});
+ $thash = unpack('H*', $trivial[$i]);
+ if ( $fhash != $thash ) {
+ @tmptriv = ( @tmptriv, $trivial[$i] );
+ }
+ }
+ @trivial = @tmptriv;
+ }
+
+ $Cookie{'cs-trivf'} = join(',',@trivial);
+
+ print "Content-type: text/html\n";
+ print "Set-Cookie: cs-trivf=$Cookie{'cs-trivf'}; path=$ENV{SCRIPT_NAME}; expires $cookie_exp\n\n";
+ print &HtmlTop("Your WebCScope Trivial Functions");
+ print "<ul>";
+ for ($i=0; $i <= $#trivial; $i++) {
+ print "<li><a href=\"$ENV{SCRIPT_NAME}?untrash=&func=$trivial[$i]\"><img src=$img{untrashfunc} border=0></a>&nbsp; $trivial[$i]";
+ }
+ print "</ul><hr>\n";
+ print "Click <a href=\"#\" onClick=\"history.back();\"><img src=$img{back} border=0></a> to go back.\n";
+ print &HtmlBot;
+
+}
+
+sub ProcessForm {
+
+ chdir $cscopedir;
+ opendir(DIRLIST,$cscopedir);
+ @dirlist = readdir(DIRLIST);
+ closedir(DIRLIST);
+
+ if ( $input{'db'} eq "all" ) {
+ @csdirs = ();
+ for ($i=0; $i <= $#dirlist; $i++ ) {
+ if ( ($dirlist[$i] ne ".") && ($dirlist[$i] ne "..") && ( -d $dirlist[$i] ) ) {
+ @csdirs = ( @csdirs, $dirlist[$i] );
+ }
+ }
+ } else {
+ @csdirs = ( $input{'db'} );
+ }
+
+ $op = $input{'op'};
+ $arg = $input{'arg'};
+ $shtriv = $input{'triv'};
+ $db = $input{'db'};
+
+ if ( defined $input{'fshow'} ) { &ShowFileForm; exit; }
+ if ( defined $input{'load'} ) { &DownloadFileForm; exit; }
+ if ( (defined $input{'trash'}) || (defined $input{'untrash'}) ) {
+ &ProcessTrashForm; exit; }
+
+ print &PrintHeader;
+ print &HtmlTop ("WebCscope");
+ print <<ENDOFHDR;
+<h3>Instructions</h3><p>
+<ul>
+<li><img src=$img{csymbol}> will find a symbol with this name<br>
+<li><img src=$img{upfunc}> will find functions <i>calling</i> this function<br>
+<li><img src=$img{downfunc}> will find functions <i>called</i> by this
+function<br>
+<li><img src=$img{globalfunc}> will locate a global definition of this name<br>
+<li><img src=$img{openfile}> will display this file and highlight
+the fragment line<br>
+<li><img src=$img{downloadfile}> will download this file with mimetype "text/c-source"<br>
+<li><img src=$img{trashfunc}> will add this symbol/function to your trivial list<br>
+</ul>
+<p><hr>
+ENDOFHDR
+
+ foreach $index ( 0 .. $#csdirs ) {
+
+ unlink $tmpinfile, $tmpoutfile;
+ open(CSCOPEIN, ">$tmpinfile");
+ print CSCOPEIN "$op$arg\n";
+ print CSCOPEIN "exit\n";
+ close(CSCOPEIN);
+
+ $dbdir = $cscopedir . "/" . $csdirs[$index];
+ chdir($dbdir);
+
+ $syscmd = "cd $dbdir; $cscopecmd -d -l < $tmpinfile > $tmpoutfile;";
+ system($syscmd);
+
+ $count = 1;
+ open(CSCOPEIN, "$tmpoutfile");
+
+ $line = <CSCOPEIN>;
+ @temp = split(' ',$line);
+ $numresult = $temp[2];
+
+ print <<ENDOFHDRs;
+<h2>Search Results from <b>$csdirs[$index]</b></h2>
+<font size=+1>$oper[$op]: <b>$arg</b></font><br>
+Matches: $numresult<p>
+<table border=1 cellpadding=2 cellspacing=2>
+<tr><td><b>Num</b></td><td><b>File</b></td><td><b>Function</b></td>
+<td><b>Line</b></td><td><b>Fragment</b></td></tr>
+ENDOFHDRs
+
+ $trivs_rm = 0;
+
+ for ($i=0; $i < $numresult; $i++ ) {
+ $line = <CSCOPEIN>;
+ @fields = split(' ',$line);
+ $file = shift @fields;
+ $fshowfile = $file;
+ $func = shift @fields;
+ $lnum = shift @fields;
+ @filef = split('/',$file);
+ $file = $filef[$#filef];
+ $frag = join(' ',@fields);
+
+ if ( ! $shtriv ) {
+ for ( $j=0; $j <= $#trivial; $j++ )
+ {
+ $fhash = unpack('H*', $func);
+ $thash = unpack('H*', $trivial[$j]);
+ if ( $fhash == $thash ) { $trivs_rm++; goto done; }
+ }
+ }
+
+ if ( $func ne "<global>" && $func ne "<unknown>" ) {
+ print <<ENDOFBODY1;
+<tr><td>$count</td>
+<td><a href="$ENV{SCRIPT_NAME}?fshow=1&fshowfile=$fshowfile&line=$lnum&db=$db">
+<img src=$img{openfile} border=0></a> $file
+ <a href="$ENV{SCRIPT_NAME}?load=1&file=$fshowfile&db=$db">
+<img src=$img{downloadfile} border=0></a>
+</td>
+<td><a href="$ENV{SCRIPT_NAME}?op=0&triv=$shtriv&arg=$func&db=$db">
+<img src=$img{csymbol} border=0></a>
+<a href="$ENV{SCRIPT_NAME}?op=3&triv=$shtriv&arg=$func&db=$db">
+<img src=$img{upfunc} border=0></a>
+$func
+<a href="$ENV{SCRIPT_NAME}?op=2&triv=$shtriv&arg=$func&db=$db">
+<img src=$img{downfunc} border=0></a>
+<a href="$ENV{SCRIPT_NAME}?op=1&triv=$shtriv&arg=$func&db=$db">
+<img src=$img{globalfunc} border=0></a>
+<a href="$ENV{SCRIPT_NAME}?trash=&func=$func&db=$db">
+<img src=$img{trashfunc} border=0></a>
+</td>
+<td>$lnum</td>
+<td>$frag</td></tr>
+ENDOFBODY1
+
+} else {
+ $func =~ tr/<>/[]/;
+ print <<ENDOFBODY2;
+<tr><td>$count</td>
+<td><a href="$ENV{SCRIPT_NAME}?fshow=1&fshowfile=$fshowfile&line=$lnum&db=$db">
+<img src=$img{openfile} border=0></a> $file
+ <a href="$ENV{SCRIPT_NAME}?load=1&file=$fshowfile&db=$db">
+<img src=$img{downloadfile} border=0></a>
+</td>
+<td>$func</td>
+<td>$lnum</td>
+<td><$frag</td></tr>
+ENDOFBODY2
+
+}
+
+ $count++;
+done:
+
+ }
+
+ close(CSCOPEIN);
+ print "</table>\n";
+ print "<br>Eliminated $trivs_rm line item(s) as trivial functions<p><hr>\n";
+ unlink $tmpinfile, $tmpoutfile;
+
+}
+
+ print &OperationTime;
+ print &Feedback;
+ print &HtmlBot;
+
+}
+
+sub DownloadFileForm {
+ $file = $input{'file'};
+ print "Content-type: text/c-source\n\n";
+ open(SHOWFILE, $file);
+ while (<SHOWFILE>) { print; }
+ close(SHOWFILE);
+}
+
+sub ShowFileForm {
+
+ $file = $input{'fshowfile'};
+ $lnum = $input{'line'};
+
+ print &PrintHeader;
+ print &HtmlTop ("WebCscope");
+ print "<b>Note</b>: Click <a href=#ref><img src=$img{downfunc} border=0></a> to go to the reference line<p><hr>\n";
+ print "<hr>";
+
+ unlink $showfile;
+ system("$hiliter $file > $showfile");
+ open(SHOWFILE, $showfile);
+
+ $curline = 1;
+ while ( <SHOWFILE> ) {
+ $line = $_;
+ if ( $curline == $lnum ) {
+ print "<a name=ref><blink>$line</blink>";
+ } else {
+ print $line;
+ }
+ $curline++;
+ }
+
+ close (SHOWFILE);
+
+
+
+ print &OperationTime;
+ print &Feedback;
+ print &HtmlBot;
+}
+
+sub PrintForm {
+
+ chdir $cscopedir;
+ opendir(DIRLIST,$cscopedir);
+ @dirlist = readdir(DIRLIST);
+ closedir(DIRLIST);
+
+ @csdirs = ();
+ for ($i=0; $i <= $#dirlist; $i++ ) {
+ if ( ($dirlist[$i] ne ".") && ($dirlist[$i] ne "..") && ( -d $dirlist[$i] ) ) {
+ @csdirs = ( @csdirs, $dirlist[$i] );
+ }
+ }
+
+ print &PrintHeader;
+ print &HtmlTop ("Web-CScope");
+
+ print <<ENDOFTEXTA;
+<p style="color:red">Be aware that this webfrontend is insecure and allows viewing ALL apache readable files, including your configuration!</p>
+Select an operation below and enter a symbol, function or text to search in
+the database. The active version is $version. Input is case-sensitive,
+so if your search returns no results, check the case and the symbol name.<hr>
+<form method="get" action="$ENV{SCRIPT_NAME}">
+<table border=0 cellpadding=2 cellspacing=2>
+<tr>
+<td>Operation:</td>
+<td>
+<select name="op">
+ENDOFTEXTA
+
+ foreach $opi ( 0 .. $#oper ) {
+ print "<option value=$opi>$oper[$opi]";
+ }
+
+ print <<ENDOFTEXTB;
+</select>
+</td>
+</tr>
+<tr>
+<td>CScope Database:</td>
+<td>
+<select name="db">
+ <option selected value="all">All Databases
+ENDOFTEXTB
+
+ for ($i=0; $i <= $#csdirs; $i++) {
+ print " <option value=\"$csdirs[$i]\">$csdirs[$i]\n";
+ }
+
+ print <<ENDOFTEXT2;
+</select>
+<tr>
+<td>Symbol, function or text:</td>
+<td><input name="arg" size=30></td>
+</tr>
+<tr>
+<td></td>
+<td halign=center>Show trivial functions:
+<input type=radio name="triv" value=1>Yes
+<input type=radio name="triv" value=0 checked>No
+<br><br>
+<input type="submit" value="Scope It!"></td>
+</tr>
+</table>
+<hr>
+</form>
+ENDOFTEXT2
+
+ print &Feedback;
+ print &HtmlBot;
+}
+
+sub Feedback {
+
+ $feedback = "<font size=-1>";
+ $feedback .= '$Id: cscope,v 1.2 2007/01/07 12:34:01 broeker Exp $<br>';
+ $feedback .= "$comment{name}<i>&lt;";
+ $feedback .= "<a href=\"mailto:$comment{email}\">";
+ $feedback .= "$comment{email}</a>&gt;</i></font>";
+ return $feedback;
+}
+
+sub OperationTime {
+
+ $deltime = time - $starttime;
+ return "Operation took $deltime second(s)<br>";
+
+}
diff --git a/contrib/webcscope/hilite.c b/contrib/webcscope/hilite.c
new file mode 100644
index 0000000..4f5af07
--- /dev/null
+++ b/contrib/webcscope/hilite.c
@@ -0,0 +1,360 @@
+/*
+ CopyRight (C) 1999, Dmitry Obukhov, dso@usa.net
+ mailto: dso@usa.net
+ http://www.EmbeddedStuff.com
+
+ ----------------------------------------------
+ Last modified 6 Apr 97
+ ----------------------------------------------
+ Converts C (C++) source to HTML code fragment
+ with syntax highlighting.
+ Since program written for personal purpose
+ the <TABLE> tags generated. This is optional
+ page format specific thing.
+
+ Usage: CTHM <input_file>. All output is done
+ to STDOUTPUT, error messages to STDERR.
+ For HTML fragment generation:
+ CHTM file.c > file.htm
+
+ - Some input convertion required to use this
+ code as CGI module. Will be done soon.
+ - Optimization required for blocks of EOL
+ comments
+*/
+
+#include <stdio.h>
+
+// ------------------- Decoding status values
+
+#define START 0
+#define INLINE 1
+#define DEFINE 2
+// ------------------- Decoding Remark
+#define REM1 20
+#define REM2 21
+#define REM_END 22
+#define REM_STAR 23
+#define REM_STAR_1 24
+#define STRING 25 // String is "like" remark
+
+
+// ------------------- HTML TAG Generation
+#define ON 1
+#define OFF 0
+
+// ------------------- HTML TAG type
+#define MODE_KEYWORD 0
+#define MODE_REMARK 2
+#define MODE_REMARK_EOL 4
+#define MODE_DEFINE 6
+#define MODE_STRING 8
+
+
+int is_delimeter(char c)
+{
+ int ii=0;
+ char dlms[] =
+ "\t\r\n (){}[]+-*/%\"'&|^~:;<>.,";
+ //--------------------------------
+ while (dlms[ii])
+ {
+ if (c==dlms[ii++]) return 1;
+ }
+ return 0;
+}
+
+int is_keyword(char * str)
+{
+ char * kwords[] =
+ {
+ "asm", "auto",
+ "break", "case",
+ "cdecl", "char",
+ "class", "const",
+ "continue", "default",
+ "delete", "do",
+ "double", "else",
+ "enum", "extern",
+ "far", "float",
+ "for", "friend",
+ "goto", "huge",
+ "if", "inline",
+ "int", "interrupt",
+ "long", "near",
+ "new", "operator",
+ "pascal", "private",
+ "protected", "public",
+ "register", "return",
+ "short", "signed",
+ "sizeof", "static",
+ "struct", "switch",
+ "template", "this",
+ "typedef", "union",
+ "unsigned", "virtual",
+ "void", "volatile",
+ "while", NULL
+ };
+ int ii=0;
+ int jj;
+ int check;
+
+ while (kwords[ii])
+ {
+ jj = 0;
+ check = 1;
+ while (kwords[ii][jj] && check)
+ {
+ if (str[jj] != kwords[ii][jj])
+ {
+ check = 0;
+ }
+ jj++;
+ }
+ if (check) return 1;
+ ii++;
+ }
+ return 0;
+}
+
+
+void set_mode(int on_off, int mode)
+{
+ char * tags[] =
+ {
+ //-------------------- KEYWORD
+ "<strong>",
+ "</strong>",
+ //-------------------- Classic remarks
+ "<font color=\"#336600\">",
+ "</font>",
+ //-------------------- EOL Remarks
+ "<font color=\"#336600\">",
+ "</font>",
+ //-------------------- #DEFINE
+ "<font color=\"#663300\"><strong>",
+ "</strong></font>",
+ //-------------------- "string"
+ "<font color=\"#0000CC\">",
+ "</font>",
+ NULL, NULL
+ };
+ fprintf(stdout,tags[mode + 1 - on_off]);
+}
+
+void print_char_html(char c)
+{
+ switch (c)
+ {
+ case '<':
+ fprintf(stdout,"&lt;");
+ break;
+ case '>':
+ fprintf(stdout,"&gt;");
+ break;
+ case '"':
+ fprintf(stdout,"&quot;");
+ break;
+ case '&':
+ fprintf(stdout,"&amp;");
+ break;
+ case '|':
+ fprintf(stdout,"&brvbar;");
+ break;
+ default:
+ fprintf(stdout,"%c",c);
+ }
+}
+
+
+
+int main(int _argc, char** _argv)
+{
+ FILE *in, *out;
+ char c;
+ int mode;
+ char buf[80];
+ int bufidx = 0;
+ int progress = 1;
+ int echo;
+ int saved_mode;
+ int kw;
+ char tmpc;
+ char prevc;
+
+ if (_argc < 2)
+ {
+ fprintf(stderr,
+ "USAGE: c2html <file>\n");
+ return 1;
+ }
+
+
+ if ((in = fopen(_argv[1], "rt")) == NULL)
+ {
+ fprintf(stderr,
+ "Cannot open input file.\n");
+ return 1;
+ }
+
+ fprintf(stdout, "<pre>");
+ mode = START;
+
+ while (!feof(in) && progress)
+ {
+ echo = 1;
+ prevc = c;
+ c = fgetc(in);
+
+ if (c=='/' && (mode < REM1))
+ {
+ saved_mode = mode;
+ mode = REM1;
+ }
+
+ switch (mode)
+ {
+ case REM1:
+ echo = 0;
+ mode = REM2;
+ break;
+
+ case REM2:
+ if (c=='/')
+ {
+ if (saved_mode == DEFINE)
+ {
+ set_mode(OFF, MODE_DEFINE);
+ }
+ mode = REM_END;
+ set_mode(ON, MODE_REMARK_EOL);
+ }
+ else if (c=='*')
+ {
+ if (saved_mode == DEFINE)
+ {
+ set_mode(OFF, MODE_DEFINE);
+ }
+ mode = REM_STAR;
+ set_mode(ON, MODE_REMARK);
+ }
+ else
+ {
+ mode = saved_mode;
+ }
+ printf("/");
+ break;
+
+ case REM_END:
+ if (c=='\n')
+ {
+ set_mode(OFF, MODE_REMARK_EOL);
+ }
+ break;
+
+ case REM_STAR:
+ if (c=='*')
+ {
+ mode = REM_STAR_1;
+ }
+ break;
+
+ case REM_STAR_1:
+ if (c=='/')
+ {
+ mode = INLINE;
+ fprintf(stdout,"/");
+ echo = 0;
+ set_mode(OFF, MODE_REMARK);
+ }
+ else mode = REM_STAR;
+ break;
+
+ case START:
+ if (c=='#')
+ {
+ mode = DEFINE;
+ set_mode(ON, MODE_DEFINE);
+ break;
+ }
+ else if (c==' ') break;
+
+ mode = INLINE;
+ // and continue in next case
+
+ case INLINE:
+ if (c=='"' && //
+ prevc != 0x27 && //
+ prevc != '\\') //
+ {
+ set_mode(ON, MODE_STRING);
+ mode = STRING;
+ }
+ break;
+
+ case STRING:
+ if (c=='"' && prevc != '\\')
+ {
+ print_char_html('"');
+ set_mode(OFF, MODE_STRING);
+ echo = 0;
+ mode = INLINE;
+ }
+ break;
+
+ case DEFINE:
+ if (c=='\n')
+ {
+ set_mode(OFF, MODE_DEFINE);
+ }
+ break;
+
+ }
+
+ if (echo && //
+ (mode == INLINE || //
+ (mode!=INLINE && //
+ bufidx))) //
+ {
+ buf[bufidx++] = c;
+ buf[bufidx] = 0;
+ if (is_delimeter(c))
+ {
+ kw = 0;
+ if (bufidx>2)
+ {
+ kw = is_keyword(buf);
+ }
+ if (kw)
+ {
+ set_mode(ON, MODE_KEYWORD);
+ }
+ tmpc = buf[bufidx-1];
+ buf[bufidx-1] = 0;
+ fprintf(stdout,"%s",buf);
+ if (kw)
+ {
+ set_mode(OFF, MODE_KEYWORD);
+ }
+ print_char_html(tmpc);
+ bufidx = 0;
+ buf[0] = 0;
+ }
+ }
+ else if (echo) print_char_html(c);
+
+ if (c=='\n' && mode != REM_STAR)
+ {
+ mode = START;
+ }
+ }
+
+ fclose(in);
+ fprintf(stdout,"</pre>\n");
+ fprintf(stdout,
+ "<!-- == Generated by CHTM convertor -->\n");
+ fprintf(stdout,
+ "<!-- == CopyRight (C) 1999, Dmitry Obukhov, dso@usa.net -->\n");
+
+ return 0;
+}
diff --git a/contrib/webcscope/icons/back.gif b/contrib/webcscope/icons/back.gif
new file mode 100644
index 0000000..a694ae1
--- /dev/null
+++ b/contrib/webcscope/icons/back.gif
Binary files differ
diff --git a/contrib/webcscope/icons/bomb.gif b/contrib/webcscope/icons/bomb.gif
new file mode 100644
index 0000000..270fdb1
--- /dev/null
+++ b/contrib/webcscope/icons/bomb.gif
Binary files differ
diff --git a/contrib/webcscope/icons/c.gif b/contrib/webcscope/icons/c.gif
new file mode 100644
index 0000000..7555b6c
--- /dev/null
+++ b/contrib/webcscope/icons/c.gif
Binary files differ
diff --git a/contrib/webcscope/icons/down.gif b/contrib/webcscope/icons/down.gif
new file mode 100644
index 0000000..a354c87
--- /dev/null
+++ b/contrib/webcscope/icons/down.gif
Binary files differ
diff --git a/contrib/webcscope/icons/folder.gif b/contrib/webcscope/icons/folder.gif
new file mode 100644
index 0000000..4826460
--- /dev/null
+++ b/contrib/webcscope/icons/folder.gif
Binary files differ
diff --git a/contrib/webcscope/icons/folder.open.gif b/contrib/webcscope/icons/folder.open.gif
new file mode 100644
index 0000000..30979cb
--- /dev/null
+++ b/contrib/webcscope/icons/folder.open.gif
Binary files differ
diff --git a/contrib/webcscope/icons/left.gif b/contrib/webcscope/icons/left.gif
new file mode 100644
index 0000000..279e671
--- /dev/null
+++ b/contrib/webcscope/icons/left.gif
Binary files differ
diff --git a/contrib/webcscope/icons/up.gif b/contrib/webcscope/icons/up.gif
new file mode 100644
index 0000000..6d6d6d1
--- /dev/null
+++ b/contrib/webcscope/icons/up.gif
Binary files differ
diff --git a/contrib/webcscope/icons/world2.gif b/contrib/webcscope/icons/world2.gif
new file mode 100644
index 0000000..e3203f7
--- /dev/null
+++ b/contrib/webcscope/icons/world2.gif
Binary files differ
diff --git a/contrib/xcscope/cscope-indexer b/contrib/xcscope/cscope-indexer
new file mode 100644
index 0000000..13c0ae2
--- /dev/null
+++ b/contrib/xcscope/cscope-indexer
@@ -0,0 +1,166 @@
+#! /bin/sh
+###############################################################################
+#
+# File: cscope-indexer
+# RCS: $Header: /cvsroot/cscope/cscope/contrib/xcscope/cscope-indexer,v 1.2 2001/06/28 04:39:47 darrylo Exp $
+# Description: Script to index files for cscope
+#
+# This script generates a list of files to index
+# (cscope.out), which is then (optionally) used to
+# generate a cscope database. You can use this script
+# to just build a list of files, or it can be used to
+# build a list and database. This script is not used to
+# just build a database (skipping the list of files
+# step), as this can be simply done by just calling
+# "cscope -b".
+#
+# Normally, cscope will do its own indexing, but this
+# script can be used to force indexing. This is useful
+# if you need to recurse into subdirectories, or have
+# many files to index (you can run this script from a
+# cron job, during the night). It is especially useful
+# for large projects, which can contstantly have source
+# files added and deleted; by using this script, the
+# changing sources files are automatically handled.
+#
+# Currently, any paths containing "/CVS/" or "/RCS/" are
+# stripped out (ignored).
+#
+# This script is written to use only basic shell features, as
+# not all shells have advanced features.
+#
+# Author: Darryl Okahata
+# Created: Thu Apr 27 17:12:14 2000
+# Modified: Tue Jun 19 09:47:45 2001 (Darryl Okahata) darrylo@soco.agilent.com
+# Language: Shell-script
+# Package: N/A
+# Status: Experimental
+#
+# (C) Copyright 2000, Darryl Okahata, all rights reserved.
+#
+###############################################################################
+#
+# Usage:
+#
+# cscope-indexer [ -v ] [-f database_file ] [-i list_file ] [ -l ] [ -r ]
+#
+# where:
+#
+# -f database_file
+# Specifies the cscope database file (default: cscope.out).
+#
+# -i list_file
+# Specifies the name of the file into which the list of files
+# to index is placed (default: cscope.files).
+#
+# -l
+# Suppress the generation/updating of the cscope database
+# file. Only a list of files is generated.
+#
+# -r
+# Recurse into subdirectories to locate files to index.
+# Without this option, only the current directory is
+# searched.
+#
+# -v
+# Be verbose. Output simple progress messages.
+#
+#
+###############################################################################
+set -e
+
+# May have to edit this:
+PATH="/usr/local/bin:/sbin:/usr/sbin:/bin:/usr/bin:$PATH"
+export PATH
+
+LIST_ONLY=
+DIR='.'
+LIST_FILE='cscope.files'
+DATABASE_FILE='cscope.out'
+RECURSE=
+VERBOSE=
+export DIR RECURSE # Need to pass these to subprocesses
+
+while [ -n "$1" ]
+do
+ case "$1" in
+ -f)
+ if [ "X$2" = "X" ]
+ then
+ echo "$0: No database file specified" >&2
+ exit 1
+ fi
+ DATABASE_FILE="$2"
+ shift
+ ;;
+ -i)
+ if [ "X$2" = "X" ]
+ then
+ echo "$0: No list file specified" >&2
+ exit 1
+ fi
+ LIST_FILE="$2"
+ shift
+ ;;
+ -l)
+ LIST_ONLY=1
+ ;;
+ -r)
+ RECURSE=1
+ ;;
+ -v)
+ VERBOSE=1
+ ;;
+ *)
+ DIR="$1"
+ ;;
+ esac
+ shift
+done
+
+cd $DIR
+
+if [ "X$VERBOSE" != "X" ]
+then
+ echo "Creating list of files to index ..."
+fi
+
+(
+ if [ "X$RECURSE" = "X" ]
+ then
+ # Ugly, inefficient, but it works.
+ for f in *
+ do
+ echo "$DIR/$f"
+ done
+ else
+ find $DIR \( -type f -o -type l \)
+ fi
+) | \
+ egrep -i '\.([chly](xx|pp)*|cc|hh)$' | \
+ sed -e '/\/CVS\//d' -e '/\/RCS\//d' -e 's/^\.\///' | \
+ sort > $LIST_FILE
+
+if [ "X$VERBOSE" != "X" ]
+then
+ echo "Creating list of files to index ... done"
+fi
+
+if [ "X$LIST_ONLY" != "X" ]
+then
+ exit 0
+fi
+
+if [ "X$VERBOSE" != "X" ]
+then
+ echo "Indexing files ..."
+fi
+
+cscope -b -i $LIST_FILE -f $DATABASE_FILE
+
+if [ "X$VERBOSE" != "X" ]
+then
+ echo "Indexing files ... done"
+fi
+
+exit 0
diff --git a/contrib/xcscope/xcscope.el b/contrib/xcscope/xcscope.el
new file mode 100644
index 0000000..ce382a4
--- /dev/null
+++ b/contrib/xcscope/xcscope.el
@@ -0,0 +1,2463 @@
+; -*-Emacs-Lisp-*-
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;
+; File: xcscope.el
+; RCS: $RCSfile: xcscope.el,v $ $Revision: 1.14 $ $Date: 2002/04/10 16:59:00 $ $Author: darrylo $
+; Description: cscope interface for (X)Emacs
+; Author: Darryl Okahata
+; Created: Wed Apr 19 17:03:38 2000
+; Modified: Thu Apr 4 17:22:22 2002 (Darryl Okahata) darrylo@soco.agilent.com
+; Language: Emacs-Lisp
+; Package: N/A
+; Status: Experimental
+;
+; (C) Copyright 2000, 2001, 2002, Darryl Okahata <darrylo@sonic.net>,
+; all rights reserved.
+; GNU Emacs enhancements (C) Copyright 2001,
+; Triet H. Lai <thlai@mail.usyd.edu.au>
+; Fuzzy matching and navigation code (C) Copyright 2001,
+; Steven Elliott <selliott4@austin.rr.com>
+;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; ALPHA VERSION 0.96
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; 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 GNU Emacs; see the file COPYING. If not, write to
+;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; This is a cscope interface for (X)Emacs.
+;; It currently runs under Unix only.
+;;
+;; Using cscope, you can easily search for where symbols are used and defined.
+;; Cscope is designed to answer questions like:
+;;
+;; Where is this variable used?
+;; What is the value of this preprocessor symbol?
+;; Where is this function in the source files?
+;; What functions call this function?
+;; What functions are called by this function?
+;; Where does the message "out of space" come from?
+;; Where is this source file in the directory structure?
+;; What files include this header file?
+;;
+;; Send comments to one of: darrylo@soco.agilent.com
+;; darryl_okahata@agilent.com
+;; darrylo@sonic.net
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; ***** INSTALLATION *****
+;;
+;; * NOTE: this interface currently runs under Unix only.
+;;
+;; This module needs a shell script called "cscope-indexer", which
+;; should have been supplied along with this emacs-lisp file. The
+;; purpose of "cscope-indexer" is to create and optionally maintain
+;; the cscope databases. If all of your source files are in one
+;; directory, you don't need this script; it's very nice to have,
+;; though, as it handles recursive subdirectory indexing, and can be
+;; used in a nightly or weekly cron job to index very large source
+;; repositories. See the beginning of the file, "cscope-indexer", for
+;; usage information.
+;;
+;; Installation steps:
+;;
+;; 0. (It is, of course, assumed that cscope is already properly
+;; installed on the current system.)
+;;
+;; 1. Install the "cscope-indexer" script into some convenient
+;; directory in $PATH. The only real constraint is that (X)Emacs
+;; must be able to find and execute it. You may also have to edit
+;; the value of PATH in the script, although this is unlikely; the
+;; majority of people should be able to use the script, "as-is".
+;;
+;; 2. Make sure that the "cscope-indexer" script is executable. In
+;; particular, if you had to ftp this file, it is probably no
+;; longer executable.
+;;
+;; 3. Put this emacs-lisp file somewhere where (X)Emacs can find it. It
+;; basically has to be in some directory listed in "load-path".
+;;
+;; 4. Edit your ~/.emacs file to add the line:
+;;
+;; (require 'xcscope)
+;;
+;; 5. If you intend to use xcscope.el often you can optionally edit your
+;; ~/.emacs file to add keybindings that reduce the number of keystrokes
+;; required. For example, the following will add "C-f#" keybindings, which
+;; are easier to type than the usual "C-c s" prefixed keybindings. Note
+;; that specifying "global-map" instead of "cscope:map" makes the
+;; keybindings available in all buffers:
+;;
+;; (define-key global-map [(control f3)] 'cscope-set-initial-directory)
+;; (define-key global-map [(control f4)] 'cscope-unset-initial-directory)
+;; (define-key global-map [(control f5)] 'cscope-find-this-symbol)
+;; (define-key global-map [(control f6)] 'cscope-find-global-definition)
+;; (define-key global-map [(control f7)]
+;; 'cscope-find-global-definition-no-prompting)
+;; (define-key global-map [(control f8)] 'cscope-pop-mark)
+;; (define-key global-map [(control f9)] 'cscope-next-symbol)
+;; (define-key global-map [(control f10)] 'cscope-next-file)
+;; (define-key global-map [(control f11)] 'cscope-prev-symbol)
+;; (define-key global-map [(control f12)] 'cscope-prev-file)
+;; (define-key global-map [(meta f9)] 'cscope-display-buffer)
+;; (defin-ekey global-map [(meta f10)] 'cscope-display-buffer-toggle)
+;;
+;; 6. Restart (X)Emacs. That's it.
+;;
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; ***** USING THIS MODULE *****
+;;
+;; * Basic usage:
+;;
+;; If all of your C/C++/lex/yacc source files are in the same
+;; directory, you can just start using this module. If your files are
+;; spread out over multiple directories, see "Advanced usage", below.
+;;
+;; Just edit a source file, and use the pull-down or pop-up (button 3)
+;; menus to select one of:
+;;
+;; Find symbol
+;; Find global definition
+;; Find called functions
+;; Find functions calling a function
+;; Find text string
+;; Find egrep pattern
+;; Find a file
+;; Find files #including a file
+;;
+;; The cscope database will be automatically created in the same
+;; directory as the source files (assuming that you've never used
+;; cscope before), and a buffer will pop-up displaying the results.
+;; You can then use button 2 (the middle button) on the mouse to edit
+;; the selected file, or you can move the text cursor over a selection
+;; and press [Enter].
+;;
+;; Hopefully, the interface should be fairly intuitive.
+;;
+;;
+;; * Locating the cscope databases:
+;;
+;; This module will first use the variable, `cscope-database-regexps',
+;; to search for a suitable database directory. If a database location
+;; cannot be found using this variable then a search is begun at the
+;; variable, `cscope-initial-directory', if set, or the current
+;; directory otherwise. If the directory is not a cscope database
+;; directory then the directory's parent, parent's parent, etc. is
+;; searched until a cscope database directory is found, or the root
+;; directory is reached. If the root directory is reached, the current
+;; directory will be used.
+;;
+;; A cscope database directory is one in which EITHER a cscope database
+;; file (e.g., "cscope.out") OR a cscope file list (e.g.,
+;; "cscope.files") exists. If only "cscope.files" exists, the
+;; corresponding "cscope.out" will be automatically created by cscope
+;; when a search is done. By default, the cscope database file is called
+;; "cscope.out", but this can be changed (on a global basis) via the
+;; variable, `cscope-database-file'. There is limited support for cscope
+;; databases that are named differently than that given by
+;; `cscope-database-file', using the variable, `cscope-database-regexps'.
+;;
+;; Note that the variable, `cscope-database-regexps', is generally not
+;; needed, as the normal hierarchical database search is sufficient
+;; for placing and/or locating the cscope databases. However, there
+;; may be cases where it makes sense to place the cscope databases
+;; away from where the source files are kept; in this case, this
+;; variable is used to determine the mapping. One use for this
+;; variable is when you want to share the database file with other
+;; users; in this case, the database may be located in a directory
+;; separate from the source files.
+;;
+;; Setting the variable, `cscope-initial-directory', is useful when a
+;; search is to be expanded by specifying a cscope database directory
+;; that is a parent of the directory that this module would otherwise
+;; use. For example, consider a project that contains the following
+;; cscope database directories:
+;;
+;; /users/jdoe/sources
+;; /users/jdoe/sources/proj1
+;; /users/jdoe/sources/proj2
+;;
+;; If a search is initiated from a .c file in /users/jdoe/sources/proj1
+;; then (assuming the variable, `cscope-database-regexps', is not set)
+;; /users/jdoe/sources/proj1 will be used as the cscope data base directory.
+;; Only matches in files in /users/jdoe/sources/proj1 will be found. This
+;; can be remedied by typing "C-c s a" and then "M-del" to remove single
+;; path element in order to use a cscope database directory of
+;; /users/jdoe/sources. Normal searching can be restored by typing "C-c s A".
+;;
+;;
+;; * Keybindings:
+;;
+;; All keybindings use the "C-c s" prefix, but are usable only while
+;; editing a source file, or in the cscope results buffer:
+;;
+;; C-c s s Find symbol.
+;; C-c s d Find global definition.
+;; C-c s g Find global definition (alternate binding).
+;; C-c s G Find global definition without prompting.
+;; C-c s c Find functions calling a function.
+;; C-c s C Find called functions (list functions called
+;; from a function).
+;; C-c s t Find text string.
+;; C-c s e Find egrep pattern.
+;; C-c s f Find a file.
+;; C-c s i Find files #including a file.
+;;
+;; These pertain to navigation through the search results:
+;;
+;; C-c s b Display *cscope* buffer.
+;; C-c s B Auto display *cscope* buffer toggle.
+;; C-c s n Next symbol.
+;; C-c s N Next file.
+;; C-c s p Previous symbol.
+;; C-c s P Previous file.
+;; C-c s u Pop mark.
+;;
+;; These pertain to setting and unsetting the variable,
+;; `cscope-initial-directory', (location searched for the cscope database
+;; directory):
+;;
+;; C-c s a Set initial directory.
+;; C-c s A Unset initial directory.
+;;
+;; These pertain to cscope database maintenance:
+;;
+;; C-c s L Create list of files to index.
+;; C-c s I Create list and index.
+;; C-c s E Edit list of files to index.
+;; C-c s W Locate this buffer's cscope directory
+;; ("W" --> "where").
+;; C-c s S Locate this buffer's cscope directory.
+;; (alternate binding: "S" --> "show").
+;; C-c s T Locate this buffer's cscope directory.
+;; (alternate binding: "T" --> "tell").
+;; C-c s D Dired this buffer's directory.
+;;
+;;
+;; * Advanced usage:
+;;
+;; If the source files are spread out over multiple directories,
+;; you've got a few choices:
+;;
+;; [ NOTE: you will need to have the script, "cscope-indexer",
+;; properly installed in order for the following to work. ]
+;;
+;; 1. If all of the directories exist below a common directory
+;; (without any extraneous, unrelated subdirectories), you can tell
+;; this module to place the cscope database into the top-level,
+;; common directory. This assumes that you do not have any cscope
+;; databases in any of the subdirectories. If you do, you should
+;; delete them; otherwise, they will take precedence over the
+;; top-level database.
+;;
+;; If you do have cscope databases in any subdirectory, the
+;; following instructions may not work right.
+;;
+;; It's pretty easy to tell this module to use a top-level, common
+;; directory:
+;;
+;; a. Make sure that the menu pick, "Cscope/Index recursively", is
+;; checked (the default value).
+;;
+;; b. Select the menu pick, "Cscope/Create list and index", and
+;; specify the top-level directory. This will run the script,
+;; "cscope-indexer", in the background, so you can do other
+;; things if indexing takes a long time. A list of files to
+;; index will be created in "cscope.files", and the cscope
+;; database will be created in "cscope.out".
+;;
+;; Once this has been done, you can then use the menu picks
+;; (described in "Basic usage", above) to search for symbols.
+;;
+;; Note, however, that, if you add or delete source files, you'll
+;; have to either rebuild the database using the above procedure,
+;; or edit the file, "cscope.files" to add/delete the names of the
+;; source files. To edit this file, you can use the menu pick,
+;; "Cscope/Edit list of files to index".
+;;
+;;
+;; 2. If most of the files exist below a common directory, but a few
+;; are outside, you can use the menu pick, "Cscope/Create list of
+;; files to index", and specify the top-level directory. Make sure
+;; that "Cscope/Index recursively", is checked before you do so,
+;; though. You can then edit the list of files to index using the
+;; menu pick, "Cscope/Edit list of files to index". Just edit the
+;; list to include any additional source files not already listed.
+;;
+;; Once you've created, edited, and saved the list, you can then
+;; use the menu picks described under "Basic usage", above, to
+;; search for symbols. The first time you search, you will have to
+;; wait a while for cscope to fully index the source files, though.
+;; If you have a lot of source files, you may want to manually run
+;; cscope to build the database:
+;;
+;; cd top-level-directory # or wherever
+;; rm -f cscope.out # not always necessary
+;; cscope -b
+;;
+;;
+;; 3. If the source files are scattered in many different, unrelated
+;; places, you'll have to manually create cscope.files and put a
+;; list of all pathnames into it. Then build the database using:
+;;
+;; cd some-directory # wherever cscope.files exists
+;; rm -f cscope.out # not always necessary
+;; cscope -b
+;;
+;; Next, read the documentation for the variable,
+;; "cscope-database-regexps", and set it appropriately, such that
+;; the above-created cscope database will be referenced when you
+;; edit a related source file.
+;;
+;; Once this has been done, you can then use the menu picks
+;; described under "Basic usage", above, to search for symbols.
+;;
+;;
+;; * Interesting configuration variables:
+;;
+;; "cscope-truncate-lines"
+;; This is the value of `truncate-lines' to use in cscope
+;; buffers; the default is the current setting of
+;; `truncate-lines'. This variable exists because it can be
+;; easier to read cscope buffers with truncated lines, while
+;; other buffers do not have truncated lines.
+;;
+;; "cscope-use-relative-paths"
+;; If non-nil, use relative paths when creating the list of files
+;; to index. The path is relative to the directory in which the
+;; cscope database will be created. If nil, absolute paths will
+;; be used. Absolute paths are good if you plan on moving the
+;; database to some other directory (if you do so, you'll
+;; probably also have to modify `cscope-database-regexps').
+;; Absolute paths may also be good if you share the database file
+;; with other users (you'll probably want to specify some
+;; automounted network path for this).
+;;
+;; "cscope-index-recursively"
+;; If non-nil, index files in the current directory and all
+;; subdirectories. If nil, only files in the current directory
+;; are indexed. This variable is only used when creating the
+;; list of files to index, or when creating the list of files and
+;; the corresponding cscope database.
+;;
+;; "cscope-name-line-width"
+;; The width of the combined "function name:line number" field in
+;; the cscope results buffer. If negative, the field is
+;; left-justified.
+;;
+;; "cscope-do-not-update-database"
+;; If non-nil, never check and/or update the cscope database when
+;; searching. Beware of setting this to non-nil, as this will
+;; disable automatic database creation, updating, and
+;; maintenance.
+;;
+;; "cscope-display-cscope-buffer"
+;; If non-nil, display the *cscope* buffer after each search
+;; (default). This variable can be set in order to reduce the
+;; number of keystrokes required to navigate through the matches.
+;;
+;; "cscope-database-regexps"
+;; List to force directory-to-cscope-database mappings.
+;; This is a list of `(REGEXP DBLIST [ DBLIST ... ])', where:
+;;
+;; REGEXP is a regular expression matched against the current buffer's
+;; current directory. The current buffer is typically some source file,
+;; and you're probably searching for some symbol in or related to this
+;; file. Basically, this regexp is used to relate the current directory
+;; to a cscope database. You need to start REGEXP with "^" if you want
+;; to match from the beginning of the current directory.
+;;
+;; DBLIST is a list that contains one or more of:
+;;
+;; ( DBDIR )
+;; ( DBDIR ( OPTIONS ) )
+;; ( t )
+;; t
+;;
+;; Here, DBDIR is a directory (or a file) that contains a cscope
+;; database. If DBDIR is a directory, then it is expected that the
+;; cscope database, if present, has the filename given by the variable,
+;; `cscope-database-file'; if DBDIR is a file, then DBDIR is the path
+;; name to a cscope database file (which does not have to be the same as
+;; that given by `cscope-database-file'). If only DBDIR is specified,
+;; then that cscope database will be searched without any additional
+;; cscope command-line options. If OPTIONS is given, then OPTIONS is a
+;; list of strings, where each string is a separate cscope command-line
+;; option.
+;;
+;; In the case of "( t )", this specifies that the search is to use the
+;; normal hierarchical database search. This option is used to
+;; explicitly search using the hierarchical database search either before
+;; or after other cscope database directories.
+;;
+;; If "t" is specified (not inside a list), this tells the searching
+;; mechanism to stop searching if a match has been found (at the point
+;; where "t" is encountered). This is useful for those projects that
+;; consist of many subprojects. You can specify the most-used
+;; subprojects first, followed by a "t", and then followed by a master
+;; cscope database directory that covers all subprojects. This will
+;; cause the most-used subprojects to be searched first (hopefully
+;; quickly), and the search will then stop if a match was found. If not,
+;; the search will continue using the master cscope database directory.
+;;
+;; Here, `cscope-database-regexps' is generally not used, as the normal
+;; hierarchical database search is sufficient for placing and/or locating
+;; the cscope databases. However, there may be cases where it makes
+;; sense to place the cscope databases away from where the source files
+;; are kept; in this case, this variable is used to determine the
+;; mapping.
+;;
+;; This module searches for the cscope databases by first using this
+;; variable; if a database location cannot be found using this variable,
+;; then the current directory is searched, then the parent, then the
+;; parent's parent, until a cscope database directory is found, or the
+;; root directory is reached. If the root directory is reached, the
+;; current directory will be used.
+;;
+;; A cscope database directory is one in which EITHER a cscope database
+;; file (e.g., "cscope.out") OR a cscope file list (e.g.,
+;; "cscope.files") exists. If only "cscope.files" exists, the
+;; corresponding "cscope.out" will be automatically created by cscope
+;; when a search is done. By default, the cscope database file is called
+;; "cscope.out", but this can be changed (on a global basis) via the
+;; variable, `cscope-database-file'. There is limited support for cscope
+;; databases that are named differently than that given by
+;; `cscope-database-file', using the variable, `cscope-database-regexps'.
+;;
+;; Here is an example of `cscope-database-regexps':
+;;
+;; (setq cscope-database-regexps
+;; '(
+;; ( "^/users/jdoe/sources/proj1"
+;; ( t )
+;; ( "/users/jdoe/sources/proj2")
+;; ( "/users/jdoe/sources/proj3/mycscope.out")
+;; ( "/users/jdoe/sources/proj4")
+;; t
+;; ( "/some/master/directory" ("-d" "-I/usr/local/include") )
+;; )
+;; ( "^/users/jdoe/sources/gnome/"
+;; ( "/master/gnome/database" ("-d") )
+;; )
+;; ))
+;;
+;; If the current buffer's directory matches the regexp,
+;; "^/users/jdoe/sources/proj1", then the following search will be
+;; done:
+;;
+;; 1. First, the normal hierarchical database search will be used to
+;; locate a cscope database.
+;;
+;; 2. Next, searches will be done using the cscope database
+;; directories, "/users/jdoe/sources/proj2",
+;; "/users/jdoe/sources/proj3/mycscope.out", and
+;; "/users/jdoe/sources/proj4". Note that, instead of the file,
+;; "cscope.out", the file, "mycscope.out", will be used in the
+;; directory "/users/jdoe/sources/proj3".
+;;
+;; 3. If a match was found, searching will stop.
+;;
+;; 4. If a match was not found, searching will be done using
+;; "/some/master/directory", and the command-line options "-d"
+;; and "-I/usr/local/include" will be passed to cscope.
+;;
+;; If the current buffer's directory matches the regexp,
+;; "^/users/jdoe/sources/gnome", then the following search will be
+;; done:
+;;
+;; The search will be done only using the directory,
+;; "/master/gnome/database". The "-d" option will be passed to
+;; cscope.
+;;
+;; If the current buffer's directory does not match any of the above
+;; regexps, then only the normal hierarchical database search will be
+;; done.
+;;
+;;
+;; * Other notes:
+;;
+;; 1. The script, "cscope-indexer", uses a sed command to determine
+;; what is and is not a C/C++/lex/yacc source file. It's idea of a
+;; source file may not correspond to yours.
+;;
+;; 2. This module is called, "xcscope", because someone else has
+;; already written a "cscope.el" (although it's quite old).
+;;
+;;
+;; * KNOWN BUGS:
+;;
+;; 1. Cannot handle whitespace in directory or file names.
+;;
+;; 2. By default, colored faces are used to display results. If you happen
+;; to use a black background, part of the results may be invisible
+;; (because the foreground color may be black, too). There are at least
+;; two solutions for this:
+;;
+;; 2a. Turn off colored faces, by setting `cscope-use-face' to `nil',
+;; e.g.:
+;;
+;; (setq cscope-use-face nil)
+;;
+;; 2b. Explicitly set colors for the faces used by cscope. The faces
+;; are:
+;;
+;; cscope-file-face
+;; cscope-function-face
+;; cscope-line-number-face
+;; cscope-line-face
+;; cscope-mouse-face
+;;
+;; The face most likely to cause problems (e.g., black-on-black
+;; color) is `cscope-line-face'.
+;;
+;; 3. The support for cscope databases different from that specified by
+;; `cscope-database-file' is quirky. If the file does not exist, it
+;; will not be auto-created (unlike files names by
+;; `cscope-database-file'). You can manually force the file to be
+;; created by using touch(1) to create a zero-length file; the
+;; database will be created the next time a search is done.
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(require 'easymenu)
+
+
+(defgroup cscope nil
+ "Cscope interface for (X)Emacs.
+Using cscope, you can easily search for where symbols are used and defined.
+It is designed to answer questions like:
+
+ Where is this variable used?
+ What is the value of this preprocessor symbol?
+ Where is this function in the source files?
+ What functions call this function?
+ What functions are called by this function?
+ Where does the message \"out of space\" come from?
+ Where is this source file in the directory structure?
+ What files include this header file?
+"
+ :prefix "cscope-"
+ :group 'tools)
+
+
+(defcustom cscope-do-not-update-database nil
+ "*If non-nil, never check and/or update the cscope database when searching.
+Beware of setting this to non-nil, as this will disable automatic database
+creation, updating, and maintenance."
+ :type 'boolean
+ :group 'cscope)
+
+
+(defcustom cscope-database-regexps nil
+ "*List to force directory-to-cscope-database mappings.
+This is a list of `(REGEXP DBLIST [ DBLIST ... ])', where:
+
+REGEXP is a regular expression matched against the current buffer's
+current directory. The current buffer is typically some source file,
+and you're probably searching for some symbol in or related to this
+file. Basically, this regexp is used to relate the current directory
+to a cscope database. You need to start REGEXP with \"^\" if you want
+to match from the beginning of the current directory.
+
+DBLIST is a list that contains one or more of:
+
+ ( DBDIR )
+ ( DBDIR ( OPTIONS ) )
+ ( t )
+ t
+
+Here, DBDIR is a directory (or a file) that contains a cscope database.
+If DBDIR is a directory, then it is expected that the cscope database,
+if present, has the filename given by the variable,
+`cscope-database-file'; if DBDIR is a file, then DBDIR is the path name
+to a cscope database file (which does not have to be the same as that
+given by `cscope-database-file'). If only DBDIR is specified, then that
+cscope database will be searched without any additional cscope
+command-line options. If OPTIONS is given, then OPTIONS is a list of
+strings, where each string is a separate cscope command-line option.
+
+In the case of \"( t )\", this specifies that the search is to use the
+normal hierarchical database search. This option is used to
+explicitly search using the hierarchical database search either before
+or after other cscope database directories.
+
+If \"t\" is specified (not inside a list), this tells the searching
+mechanism to stop searching if a match has been found (at the point
+where \"t\" is encountered). This is useful for those projects that
+consist of many subprojects. You can specify the most-used
+subprojects first, followed by a \"t\", and then followed by a master
+cscope database directory that covers all subprojects. This will
+cause the most-used subprojects to be searched first (hopefully
+quickly), and the search will then stop if a match was found. If not,
+the search will continue using the master cscope database directory.
+
+Here, `cscope-database-regexps' is generally not used, as the normal
+hierarchical database search is sufficient for placing and/or locating
+the cscope databases. However, there may be cases where it makes
+sense to place the cscope databases away from where the source files
+are kept; in this case, this variable is used to determine the
+mapping.
+
+This module searches for the cscope databases by first using this
+variable; if a database location cannot be found using this variable,
+then the current directory is searched, then the parent, then the
+parent's parent, until a cscope database directory is found, or the
+root directory is reached. If the root directory is reached, the
+current directory will be used.
+
+A cscope database directory is one in which EITHER a cscope database
+file (e.g., \"cscope.out\") OR a cscope file list (e.g.,
+\"cscope.files\") exists. If only \"cscope.files\" exists, the
+corresponding \"cscope.out\" will be automatically created by cscope
+when a search is done. By default, the cscope database file is called
+\"cscope.out\", but this can be changed (on a global basis) via the
+variable, `cscope-database-file'. There is limited support for cscope
+databases that are named differently than that given by
+`cscope-database-file', using the variable, `cscope-database-regexps'.
+
+Here is an example of `cscope-database-regexps':
+
+ (setq cscope-database-regexps
+ '(
+ ( \"^/users/jdoe/sources/proj1\"
+ ( t )
+ ( \"/users/jdoe/sources/proj2\")
+ ( \"/users/jdoe/sources/proj3/mycscope.out\")
+ ( \"/users/jdoe/sources/proj4\")
+ t
+ ( \"/some/master/directory\" (\"-d\" \"-I/usr/local/include\") )
+ )
+ ( \"^/users/jdoe/sources/gnome/\"
+ ( \"/master/gnome/database\" (\"-d\") )
+ )
+ ))
+
+If the current buffer's directory matches the regexp,
+\"^/users/jdoe/sources/proj1\", then the following search will be
+done:
+
+ 1. First, the normal hierarchical database search will be used to
+ locate a cscope database.
+
+ 2. Next, searches will be done using the cscope database
+ directories, \"/users/jdoe/sources/proj2\",
+ \"/users/jdoe/sources/proj3/mycscope.out\", and
+ \"/users/jdoe/sources/proj4\". Note that, instead of the file,
+ \"cscope.out\", the file, \"mycscope.out\", will be used in the
+ directory \"/users/jdoe/sources/proj3\".
+
+ 3. If a match was found, searching will stop.
+
+ 4. If a match was not found, searching will be done using
+ \"/some/master/directory\", and the command-line options \"-d\"
+ and \"-I/usr/local/include\" will be passed to cscope.
+
+If the current buffer's directory matches the regexp,
+\"^/users/jdoe/sources/gnome\", then the following search will be
+done:
+
+ The search will be done only using the directory,
+ \"/master/gnome/database\". The \"-d\" option will be passed to
+ cscope.
+
+If the current buffer's directory does not match any of the above
+regexps, then only the normal hierarchical database search will be
+done.
+
+"
+ :type '(repeat (list :format "%v"
+ (choice :value ""
+ (regexp :tag "Buffer regexp")
+ string)
+ (choice :value ""
+ (directory :tag "Cscope database directory")
+ string)
+ (string :value ""
+ :tag "Optional cscope command-line arguments")
+ ))
+ :group 'cscope)
+(defcustom cscope-name-line-width -30
+ "*The width of the combined \"function name:line number\" field in the
+cscope results buffer. If negative, the field is left-justified."
+ :type 'integer
+ :group 'cscope)
+
+
+(defcustom cscope-truncate-lines truncate-lines
+ "*The value of `truncate-lines' to use in cscope buffers.
+This variable exists because it can be easier to read cscope buffers
+with truncated lines, while other buffers do not have truncated lines."
+ :type 'boolean
+ :group 'cscope)
+
+
+(defcustom cscope-display-times t
+ "*If non-nil, display how long each search took.
+The elasped times are in seconds. Floating-point support is required
+for this to work."
+ :type 'boolean
+ :group 'cscope)
+
+
+(defcustom cscope-program "cscope"
+ "*The pathname of the cscope executable to use."
+ :type 'string
+ :group 'cscope)
+
+
+(defcustom cscope-index-file "cscope.files"
+ "*The name of the cscope file list file."
+ :type 'string
+ :group 'cscope)
+
+
+(defcustom cscope-database-file "cscope.out"
+ "*The name of the cscope database file."
+ :type 'string
+ :group 'cscope)
+
+
+(defcustom cscope-edit-single-match t
+ "*If non-nil and only one match is output, edit the matched location."
+ :type 'boolean
+ :group 'cscope)
+
+
+(defcustom cscope-display-cscope-buffer t
+ "*If non-nil automatically display the *cscope* buffer after each search."
+ :type 'boolean
+ :group 'cscope)
+
+
+(defcustom cscope-stop-at-first-match-dir nil
+ "*If non-nil, stop searching through multiple databases if a match is found.
+This option is useful only if multiple cscope database directories are being
+used. When multiple databases are searched, setting this variable to non-nil
+will cause searches to stop when a search outputs anything; no databases after
+this one will be searched."
+ :type 'boolean
+ :group 'cscope)
+
+
+(defcustom cscope-use-relative-paths t
+ "*If non-nil, use relative paths when creating the list of files to index.
+The path is relative to the directory in which the cscope database
+will be created. If nil, absolute paths will be used. Absolute paths
+are good if you plan on moving the database to some other directory
+(if you do so, you'll probably also have to modify
+\`cscope-database-regexps\'). Absolute paths may also be good if you
+share the database file with other users (you\'ll probably want to
+specify some automounted network path for this)."
+ :type 'boolean
+ :group 'cscope)
+
+
+(defcustom cscope-index-recursively t
+ "*If non-nil, index files in the current directory and all subdirectories.
+If nil, only files in the current directory are indexed. This
+variable is only used when creating the list of files to index, or
+when creating the list of files and the corresponding cscope database."
+ :type 'boolean
+ :group 'cscope)
+
+
+(defcustom cscope-no-mouse-prompts nil
+ "*If non-nil, use the symbol under the cursor instead of prompting.
+Do not prompt for a value, except for when seaching for a egrep pattern
+or a file."
+ :type 'boolean
+ :group 'cscope)
+
+
+(defcustom cscope-suppress-empty-matches t
+ "*If non-nil, delete empty matches.")
+
+
+(defcustom cscope-indexing-script "cscope-indexer"
+ "*The shell script used to create cscope indices."
+ :type 'string
+ :group 'cscope)
+
+
+(defcustom cscope-symbol-chars "A-Za-z0-9_"
+ "*A string containing legal characters in a symbol.
+The current syntax table should really be used for this."
+ :type 'string
+ :group 'cscope)
+
+
+(defcustom cscope-filename-chars "-.,/A-Za-z0-9_~!@#$%&+=\\\\"
+ "*A string containing legal characters in a symbol.
+The current syntax table should really be used for this."
+ :type 'string
+ :group 'cscope)
+
+
+(defcustom cscope-allow-arrow-overlays t
+ "*If non-nil, use an arrow overlay to show target lines.
+Arrow overlays are only used when the following functions are used:
+
+ cscope-show-entry-other-window
+ cscope-show-next-entry-other-window
+ cscope-show-prev-entry-other-window
+
+The arrow overlay is removed when other cscope functions are used.
+Note that the arrow overlay is not an actual part of the text, and can
+be removed by quitting the cscope buffer."
+ :type 'boolean
+ :group 'cscope)
+
+
+(defcustom cscope-overlay-arrow-string "=>"
+ "*The overlay string to use when displaying arrow overlays."
+ :type 'string
+ :group 'cscope)
+
+
+(defvar cscope-minor-mode-hooks nil
+ "List of hooks to call when entering cscope-minor-mode.")
+
+
+(defconst cscope-separator-line
+ "-------------------------------------------------------------------------------\n"
+ "Line of text to use as a visual separator.
+Must end with a newline.")
+
+
+;;;;
+;;;; Faces for fontification
+;;;;
+
+(defcustom cscope-use-face t
+ "*Whether to use text highlighting (à la font-lock) or not."
+ :group 'cscope
+ :type '(boolean))
+
+
+(defface cscope-file-face
+ '((((class color) (background dark))
+ (:foreground "yellow"))
+ (((class color) (background light))
+ (:foreground "blue"))
+ (t (:bold t)))
+ "Face used to highlight file name in the *cscope* buffer."
+ :group 'cscope)
+
+
+(defface cscope-function-face
+ '((((class color) (background dark))
+ (:foreground "cyan"))
+ (((class color) (background light))
+ (:foreground "magenta"))
+ (t (:bold t)))
+ "Face used to highlight function name in the *cscope* buffer."
+ :group 'cscope)
+
+
+(defface cscope-line-number-face
+ '((((class color) (background dark))
+ (:foreground "red"))
+ (((class color) (background light))
+ (:foreground "red"))
+ (t (:bold t)))
+ "Face used to highlight line number in the *cscope* buffer."
+ :group 'cscope)
+
+
+(defface cscope-line-face
+ '((((class color) (background dark))
+ (:foreground "green"))
+ (((class color) (background light))
+ (:foreground "black"))
+ (t (:bold nil)))
+ "Face used to highlight the rest of line in the *cscope* buffer."
+ :group 'cscope)
+
+
+(defface cscope-mouse-face
+ '((((class color) (background dark))
+ (:foreground "white" :background "blue"))
+ (((class color) (background light))
+ (:foreground "white" :background "blue"))
+ (t (:bold nil)))
+ "Face used when mouse pointer is within the region of an entry."
+ :group 'cscope)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Probably, nothing user-customizable past this point.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defconst cscope-running-in-xemacs (string-match "XEmacs\\|Lucid" emacs-version))
+
+(defvar cscope-list-entry-keymap nil
+ "The keymap used in the *cscope* buffer which lists search results.")
+(if cscope-list-entry-keymap
+ nil
+ (setq cscope-list-entry-keymap (make-keymap))
+ (suppress-keymap cscope-list-entry-keymap)
+ ;; The following section does not appear in the "Cscope" menu.
+ (if cscope-running-in-xemacs
+ (define-key cscope-list-entry-keymap [button2] 'cscope-mouse-select-entry-other-window)
+ (define-key cscope-list-entry-keymap [mouse-2] 'cscope-mouse-select-entry-other-window))
+ (define-key cscope-list-entry-keymap [return] 'cscope-select-entry-other-window)
+ (define-key cscope-list-entry-keymap " " 'cscope-show-entry-other-window)
+ (define-key cscope-list-entry-keymap "o" 'cscope-select-entry-one-window)
+ (define-key cscope-list-entry-keymap "q" 'cscope-bury-buffer)
+ (define-key cscope-list-entry-keymap "Q" 'cscope-quit)
+ (define-key cscope-list-entry-keymap "h" 'cscope-help)
+ (define-key cscope-list-entry-keymap "?" 'cscope-help)
+ ;; The following line corresponds to be beginning of the "Cscope" menu.
+ (define-key cscope-list-entry-keymap "s" 'cscope-find-this-symbol)
+ (define-key cscope-list-entry-keymap "d" 'cscope-find-this-symbol)
+ (define-key cscope-list-entry-keymap "g" 'cscope-find-global-definition)
+ (define-key cscope-list-entry-keymap "G"
+ 'cscope-find-global-definition-no-prompting)
+ (define-key cscope-list-entry-keymap "c" 'cscope-find-functions-calling-this-function)
+ (define-key cscope-list-entry-keymap "C" 'cscope-find-called-functions)
+ (define-key cscope-list-entry-keymap "t" 'cscope-find-this-text-string)
+ (define-key cscope-list-entry-keymap "e" 'cscope-find-egrep-pattern)
+ (define-key cscope-list-entry-keymap "f" 'cscope-find-this-file)
+ (define-key cscope-list-entry-keymap "i" 'cscope-find-files-including-file)
+ ;; --- (The '---' indicates that this line corresponds to a menu separator.)
+ (define-key cscope-list-entry-keymap "n" 'cscope-next-symbol)
+ (define-key cscope-list-entry-keymap "N" 'cscope-next-file)
+ (define-key cscope-list-entry-keymap "p" 'cscope-prev-symbol)
+ (define-key cscope-list-entry-keymap "P" 'cscope-prev-file)
+ (define-key cscope-list-entry-keymap "u" 'cscope-pop-mark)
+ ;; ---
+ (define-key cscope-list-entry-keymap "a" 'cscope-set-initial-directory)
+ (define-key cscope-list-entry-keymap "A" 'cscope-unset-initial-directory)
+ ;; ---
+ (define-key cscope-list-entry-keymap "L" 'cscope-create-list-of-files-to-index)
+ (define-key cscope-list-entry-keymap "I" 'cscope-index-files)
+ (define-key cscope-list-entry-keymap "E" 'cscope-edit-list-of-files-to-index)
+ (define-key cscope-list-entry-keymap "W" 'cscope-tell-user-about-directory)
+ (define-key cscope-list-entry-keymap "S" 'cscope-tell-user-about-directory)
+ (define-key cscope-list-entry-keymap "T" 'cscope-tell-user-about-directory)
+ (define-key cscope-list-entry-keymap "D" 'cscope-dired-directory)
+ ;; The previous line corresponds to be end of the "Cscope" menu.
+ )
+
+
+(defvar cscope-list-entry-hook nil
+ "*Hook run after cscope-list-entry-mode entered.")
+
+
+(defun cscope-list-entry-mode ()
+ "Major mode for jumping/showing entry from the list in the *cscope* buffer.
+
+\\{cscope-list-entry-keymap}"
+ (use-local-map cscope-list-entry-keymap)
+ (setq buffer-read-only t
+ mode-name "cscope"
+ major-mode 'cscope-list-entry-mode
+ overlay-arrow-string cscope-overlay-arrow-string)
+ (or overlay-arrow-position
+ (setq overlay-arrow-position (make-marker)))
+ (run-hooks 'cscope-list-entry-hook))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defvar cscope-output-buffer-name "*cscope*"
+ "The name of the cscope output buffer.")
+
+
+(defvar cscope-info-buffer-name "*cscope-info*"
+ "The name of the cscope information buffer.")
+
+
+(defvar cscope-process nil
+ "The current cscope process.")
+(make-variable-buffer-local 'cscope-process)
+
+
+(defvar cscope-process-output nil
+ "A buffer for holding partial cscope process output.")
+(make-variable-buffer-local 'cscope-process-output)
+
+
+(defvar cscope-command-args nil
+ "Internal variable for holding major command args to pass to cscope.")
+(make-variable-buffer-local 'cscope-command-args)
+
+
+(defvar cscope-start-directory nil
+ "Internal variable used to save the initial start directory.
+The results buffer gets reset to this directory when a search has
+completely finished.")
+(make-variable-buffer-local 'cscope-start-directory)
+
+
+(defvar cscope-search-list nil
+ "A list of (DIR . FLAGS) entries.
+This is a list of database directories to search. Each entry in the list
+is a (DIR . FLAGS) cell. DIR is the directory to search, and FLAGS are the
+flags to pass to cscope when using this database directory. FLAGS can be
+nil (meaning, \"no flags\").")
+(make-variable-buffer-local 'cscope-search-list)
+
+
+(defvar cscope-searched-dirs nil
+ "The list of database directories already searched.")
+(make-variable-buffer-local 'cscope-searched-dirs)
+
+
+(defvar cscope-filter-func nil
+ "Internal variable for holding the filter function to use (if any) when
+searching.")
+(make-variable-buffer-local 'cscope-filter-func)
+
+
+(defvar cscope-sentinel-func nil
+ "Internal variable for holding the sentinel function to use (if any) when
+searching.")
+(make-variable-buffer-local 'cscope-filter-func)
+
+
+(defvar cscope-last-file nil
+ "The file referenced by the last line of cscope process output.")
+(make-variable-buffer-local 'cscope-last-file)
+
+
+(defvar cscope-start-time nil
+ "The search start time, in seconds.")
+(make-variable-buffer-local 'cscope-start-time)
+
+
+(defvar cscope-first-match nil
+ "The first match result output by cscope.")
+(make-variable-buffer-local 'cscope-first-match)
+
+
+(defvar cscope-first-match-point nil
+ "Buffer location of the first match.")
+(make-variable-buffer-local 'cscope-first-match-point)
+
+
+(defvar cscope-item-start nil
+ "The point location of the start of a search's output, before header info.")
+(make-variable-buffer-local 'cscope-output-start)
+
+
+(defvar cscope-output-start nil
+ "The point location of the start of a search's output.")
+(make-variable-buffer-local 'cscope-output-start)
+
+
+(defvar cscope-matched-multiple nil
+ "Non-nil if cscope output multiple matches.")
+(make-variable-buffer-local 'cscope-matched-multiple)
+
+
+(defvar cscope-stop-at-first-match-dir-meta nil
+ "")
+(make-variable-buffer-local 'cscope-stop-at-first-match-dir-meta)
+
+
+(defvar cscope-symbol nil
+ "The last symbol searched for.")
+
+
+(defvar cscope-adjust t
+ "True if the symbol searched for (cscope-symbol) should be on
+the line specified by the cscope database. In such cases the point will be
+adjusted if need be (fuzzy matching).")
+
+
+(defvar cscope-adjust-range 1000
+ "How far the point should be adjusted if the symbol is not on the line
+specified by the cscope database.")
+
+
+(defvar cscope-marker nil
+ "The location from which cscope was invoked.")
+
+
+(defvar cscope-marker-window nil
+ "The window which should contain cscope-marker. This is the window from
+which cscope-marker is set when searches are launched from the *cscope*
+buffer.")
+
+
+(defvar cscope-marker-ring-length 16
+ "Length of the cscope marker ring.")
+
+
+(defvar cscope-marker-ring (make-ring cscope-marker-ring-length)
+ "Ring of markers which are locations from which cscope was invoked.")
+
+
+(defvar cscope-initial-directory nil
+ "When set the directory in which searches for the cscope database
+directory should begin.")
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defvar cscope:map nil
+ "The cscope keymap.")
+(if cscope:map
+ nil
+ (setq cscope:map (make-sparse-keymap))
+ ;; The following line corresponds to be beginning of the "Cscope" menu.
+ (define-key cscope:map "\C-css" 'cscope-find-this-symbol)
+ (define-key cscope:map "\C-csd" 'cscope-find-global-definition)
+ (define-key cscope:map "\C-csg" 'cscope-find-global-definition)
+ (define-key cscope:map "\C-csG" 'cscope-find-global-definition-no-prompting)
+ (define-key cscope:map "\C-csc" 'cscope-find-functions-calling-this-function)
+ (define-key cscope:map "\C-csC" 'cscope-find-called-functions)
+ (define-key cscope:map "\C-cst" 'cscope-find-this-text-string)
+ (define-key cscope:map "\C-cse" 'cscope-find-egrep-pattern)
+ (define-key cscope:map "\C-csf" 'cscope-find-this-file)
+ (define-key cscope:map "\C-csi" 'cscope-find-files-including-file)
+ ;; --- (The '---' indicates that this line corresponds to a menu separator.)
+ (define-key cscope:map "\C-csb" 'cscope-display-buffer)
+ (define-key cscope:map "\C-csB" 'cscope-display-buffer-toggle)
+ (define-key cscope:map "\C-csn" 'cscope-next-symbol)
+ (define-key cscope:map "\C-csN" 'cscope-next-file)
+ (define-key cscope:map "\C-csp" 'cscope-prev-symbol)
+ (define-key cscope:map "\C-csP" 'cscope-prev-file)
+ (define-key cscope:map "\C-csu" 'cscope-pop-mark)
+ ;; ---
+ (define-key cscope:map "\C-csa" 'cscope-set-initial-directory)
+ (define-key cscope:map "\C-csA" 'cscope-unset-initial-directory)
+ ;; ---
+ (define-key cscope:map "\C-csL" 'cscope-create-list-of-files-to-index)
+ (define-key cscope:map "\C-csI" 'cscope-index-files)
+ (define-key cscope:map "\C-csE" 'cscope-edit-list-of-files-to-index)
+ (define-key cscope:map "\C-csW" 'cscope-tell-user-about-directory)
+ (define-key cscope:map "\C-csS" 'cscope-tell-user-about-directory)
+ (define-key cscope:map "\C-csT" 'cscope-tell-user-about-directory)
+ (define-key cscope:map "\C-csD" 'cscope-dired-directory))
+ ;; The previous line corresponds to be end of the "Cscope" menu.
+
+(easy-menu-define cscope:menu
+ (list cscope:map cscope-list-entry-keymap)
+ "cscope menu"
+ '("Cscope"
+ [ "Find symbol" cscope-find-this-symbol t ]
+ [ "Find global definition" cscope-find-global-definition t ]
+ [ "Find global definition no prompting"
+ cscope-find-global-definition-no-prompting t ]
+ [ "Find functions calling a function"
+ cscope-find-functions-calling-this-function t ]
+ [ "Find called functions" cscope-find-called-functions t ]
+ [ "Find text string" cscope-find-this-text-string t ]
+ [ "Find egrep pattern" cscope-find-egrep-pattern t ]
+ [ "Find a file" cscope-find-this-file t ]
+ [ "Find files #including a file"
+ cscope-find-files-including-file t ]
+ "-----------"
+ [ "Display *cscope* buffer" cscope-display-buffer t ]
+ [ "Auto display *cscope* buffer toggle"
+ cscope-display-buffer-toggle t ]
+ [ "Next symbol" cscope-next-symbol t ]
+ [ "Next file" cscope-next-file t ]
+ [ "Previous symbol" cscope-prev-symbol t ]
+ [ "Previous file" cscope-prev-file t ]
+ [ "Pop mark" cscope-pop-mark t ]
+ "-----------"
+ ( "Cscope Database"
+ [ "Set initial directory"
+ cscope-set-initial-directory t ]
+ [ "Unset initial directory"
+ cscope-unset-initial-directory t ]
+ "-----------"
+ [ "Create list of files to index"
+ cscope-create-list-of-files-to-index t ]
+ [ "Create list and index"
+ cscope-index-files t ]
+ [ "Edit list of files to index"
+ cscope-edit-list-of-files-to-index t ]
+ [ "Locate this buffer's cscope directory"
+ cscope-tell-user-about-directory t ]
+ [ "Dired this buffer's cscope directory"
+ cscope-dired-directory t ]
+ )
+ "-----------"
+ ( "Options"
+ [ "Auto edit single match"
+ (setq cscope-edit-single-match
+ (not cscope-edit-single-match))
+ :style toggle :selected cscope-edit-single-match ]
+ [ "Auto display *cscope* buffer"
+ (setq cscope-display-cscope-buffer
+ (not cscope-display-cscope-buffer))
+ :style toggle :selected cscope-display-cscope-buffer ]
+ [ "Stop at first matching database"
+ (setq cscope-stop-at-first-match-dir
+ (not cscope-stop-at-first-match-dir))
+ :style toggle
+ :selected cscope-stop-at-first-match-dir ]
+ [ "Never update cscope database"
+ (setq cscope-do-not-update-database
+ (not cscope-do-not-update-database))
+ :style toggle :selected cscope-do-not-update-database ]
+ [ "Index recursively"
+ (setq cscope-index-recursively
+ (not cscope-index-recursively))
+ :style toggle :selected cscope-index-recursively ]
+ [ "Suppress empty matches"
+ (setq cscope-suppress-empty-matches
+ (not cscope-suppress-empty-matches))
+ :style toggle :selected cscope-suppress-empty-matches ]
+ [ "Use relative paths"
+ (setq cscope-use-relative-paths
+ (not cscope-use-relative-paths))
+ :style toggle :selected cscope-use-relative-paths ]
+ [ "No mouse prompts" (setq cscope-no-mouse-prompts
+ (not cscope-no-mouse-prompts))
+ :style toggle :selected cscope-no-mouse-prompts ]
+ )
+ ))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Internal functions and variables
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defvar cscope-common-text-plist
+ (let (plist)
+ (setq plist (plist-put plist 'mouse-face 'cscope-mouse-face))
+ plist)
+ "List of common text properties to be added to the entry line.")
+
+
+(defun cscope-insert-with-text-properties (text filename &optional line-number)
+ "Insert an entry with given TEXT, add entry attributes as text properties.
+The text properties to be added:
+- common property: mouse-face,
+- properties are used to open target file and its location: cscope-file,
+ cscope-line-number"
+ (let ((plist cscope-common-text-plist)
+ beg end)
+ (setq beg (point))
+ (insert text)
+ (setq end (point)
+ plist (plist-put plist 'cscope-file filename))
+ (if line-number
+ (progn
+ (if (stringp line-number)
+ (setq line-number (string-to-number line-number)))
+ (setq plist (plist-put plist 'cscope-line-number line-number))
+ ))
+ (add-text-properties beg end plist)
+ ))
+
+
+(if cscope-running-in-xemacs
+ (progn
+ (defalias 'cscope-event-window 'event-window)
+ (defalias 'cscope-event-point 'event-point)
+ (defalias 'cscope-recenter 'recenter)
+ )
+ (defun cscope-event-window (event)
+ "Return the window at which the mouse EVENT occurred."
+ (posn-window (event-start event)))
+ (defun cscope-event-point (event)
+ "Return the point at which the mouse EVENT occurred."
+ (posn-point (event-start event)))
+ (defun cscope-recenter (&optional n window)
+ "Center point in WINDOW and redisplay frame. With N, put point on line N."
+ (save-selected-window
+ (if (windowp window)
+ (select-window window))
+ (recenter n)))
+ )
+
+
+(defun cscope-show-entry-internal (file line-number
+ &optional save-mark-p window arrow-p)
+ "Display the buffer corresponding to FILE and LINE-NUMBER
+in some window. If optional argument WINDOW is given,
+display the buffer in that WINDOW instead. The window is
+not selected. Save point on mark ring before goto
+LINE-NUMBER if optional argument SAVE-MARK-P is non-nil.
+Put `overlay-arrow-string' if arrow-p is non-nil.
+Returns the window displaying BUFFER."
+ (let (buffer old-pos old-point new-point forward-point backward-point
+ line-end line-length)
+ (if (and (stringp file)
+ (integerp line-number))
+ (progn
+ (unless (file-readable-p file)
+ (error "%s is not readable or exists" file))
+ (setq buffer (find-file-noselect file))
+ (if (windowp window)
+ (set-window-buffer window buffer)
+ (setq window (display-buffer buffer)))
+ (set-buffer buffer)
+ (if (> line-number 0)
+ (progn
+ (setq old-pos (point))
+ (goto-line line-number)
+ (setq old-point (point))
+ (if (and cscope-adjust cscope-adjust-range)
+ (progn
+ ;; Calculate the length of the line specified by cscope.
+ (end-of-line)
+ (setq line-end (point))
+ (goto-char old-point)
+ (setq line-length (- line-end old-point))
+
+ ;; Search forward and backward for the pattern.
+ (setq forward-point (search-forward
+ cscope-symbol
+ (+ old-point
+ cscope-adjust-range) t))
+ (goto-char old-point)
+ (setq backward-point (search-backward
+ cscope-symbol
+ (- old-point
+ cscope-adjust-range) t))
+ (if forward-point
+ (progn
+ (if backward-point
+ (setq new-point
+ ;; Use whichever of forward-point or
+ ;; backward-point is closest to old-point.
+ ;; Give forward-point a line-length advantage
+ ;; so that if the symbol is on the current
+ ;; line the current line is chosen.
+ (if (<= (- (- forward-point line-length)
+ old-point)
+ (- old-point backward-point))
+ forward-point
+ backward-point))
+ (setq new-point forward-point)))
+ (if backward-point
+ (setq new-point backward-point)
+ (setq new-point old-point)))
+ (goto-char new-point)
+ (beginning-of-line)
+ (setq new-point (point)))
+ (setq new-point old-point))
+ (set-window-point window new-point)
+ (if (and cscope-allow-arrow-overlays arrow-p)
+ (set-marker overlay-arrow-position (point))
+ (set-marker overlay-arrow-position nil))
+ (or (not save-mark-p)
+ (= old-pos (point))
+ (push-mark old-pos))
+ ))
+
+ (if cscope-marker
+ (progn ;; The search was successful. Save the marker so it
+ ;; can be returned to by cscope-pop-mark.
+ (ring-insert cscope-marker-ring cscope-marker)
+ ;; Unset cscope-marker so that moving between matches
+ ;; (cscope-next-symbol, etc.) does not fill
+ ;; cscope-marker-ring.
+ (setq cscope-marker nil)))
+ (setq cscope-marker-window window)
+ )
+ (message "No entry found at point."))
+ )
+ window)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; functions in *cscope* buffer which lists the search results
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defun cscope-select-entry-other-window ()
+ "Display the entry at point in other window, select the window.
+Push current point on mark ring and select the entry window."
+ (interactive)
+ (let ((file (get-text-property (point) 'cscope-file))
+ (line-number (get-text-property (point) 'cscope-line-number))
+ window)
+ (setq window (cscope-show-entry-internal file line-number t))
+ (if (windowp window)
+ (select-window window))
+ ))
+
+
+(defun cscope-select-entry-one-window ()
+ "Display the entry at point in one window, select the window."
+ (interactive)
+ (let ((file (get-text-property (point) 'cscope-file))
+ (line-number (get-text-property (point) 'cscope-line-number))
+ window)
+ (setq window (cscope-show-entry-internal file line-number t))
+ (if (windowp window)
+ (progn
+ (select-window window)
+ (sit-for 0) ;; Redisplay hack to allow delete-other-windows
+ ;; to continue displaying the correct location.
+ (delete-other-windows window)
+ ))
+ ))
+
+
+(defun cscope-select-entry-specified-window (window)
+ "Display the entry at point in a specified window, select the window."
+ (interactive)
+ (let ((file (get-text-property (point) 'cscope-file))
+ (line-number (get-text-property (point) 'cscope-line-number)))
+ (setq window (cscope-show-entry-internal file line-number t window))
+ (if (windowp window)
+ (select-window window))
+ ))
+
+
+(defun cscope-mouse-select-entry-other-window (event)
+ "Display the entry over which the mouse event occurred, select the window."
+ (interactive "e")
+ (let ((ep (cscope-event-point event))
+ (win (cscope-event-window event))
+ buffer file line-number window)
+ (if ep
+ (progn
+ (setq buffer (window-buffer win)
+ file (get-text-property ep 'cscope-file buffer)
+ line-number (get-text-property ep 'cscope-line-number buffer))
+ (select-window win)
+ (setq window (cscope-show-entry-internal file line-number t))
+ (if (windowp window)
+ (select-window window))
+ )
+ (message "No entry found at point.")
+ )
+ ))
+
+
+(defun cscope-show-entry-other-window ()
+ "Display the entry at point in other window.
+Point is not saved on mark ring."
+ (interactive)
+ (let ((file (get-text-property (point) 'cscope-file))
+ (line-number (get-text-property (point) 'cscope-line-number)))
+ (cscope-show-entry-internal file line-number nil nil t)
+ ))
+
+
+(defun cscope-buffer-search (do-symbol do-next)
+ "The body of the following four functions."
+ (let* (line-number old-point point
+ (search-file (not do-symbol))
+ (search-prev (not do-next))
+ (direction (if do-next 1 -1))
+ (old-buffer (current-buffer))
+ (old-buffer-window (get-buffer-window old-buffer))
+ (buffer (get-buffer cscope-output-buffer-name))
+ (buffer-window (get-buffer-window (or buffer (error "The *cscope* buffer does not exist yet"))))
+ )
+ (set-buffer buffer)
+ (setq old-point (point))
+ (forward-line direction)
+ (setq point (point))
+ (setq line-number (get-text-property point 'cscope-line-number))
+ (while (or (not line-number)
+ (or (and do-symbol (= line-number -1))
+ (and search-file (/= line-number -1))))
+ (forward-line direction)
+ (setq point (point))
+ (if (or (and do-next (>= point (point-max)))
+ (and search-prev (<= point (point-min))))
+ (progn
+ (goto-char old-point)
+ (error "The %s of the *cscope* buffer has been reached"
+ (if do-next "end" "beginning"))))
+ (setq line-number (get-text-property point 'cscope-line-number)))
+ (if (eq old-buffer buffer) ;; In the *cscope* buffer.
+ (cscope-show-entry-other-window)
+ (cscope-select-entry-specified-window old-buffer-window) ;; else
+ (if (windowp buffer-window)
+ (set-window-point buffer-window point)))
+ (set-buffer old-buffer)
+ ))
+
+
+(defun cscope-display-buffer ()
+ "Display the *cscope* buffer."
+ (interactive)
+ (let ((buffer (get-buffer cscope-output-buffer-name)))
+ (if buffer
+ (pop-to-buffer buffer)
+ (error "The *cscope* buffer does not exist yet"))))
+
+
+(defun cscope-display-buffer-toggle ()
+ "Toggle cscope-display-cscope-buffer, which corresponds to
+\"Auto display *cscope* buffer\"."
+ (interactive)
+ (setq cscope-display-cscope-buffer (not cscope-display-cscope-buffer))
+ (message "The cscope-display-cscope-buffer variable is now %s."
+ (if cscope-display-cscope-buffer "set" "unset")))
+
+
+(defun cscope-next-symbol ()
+ "Move to the next symbol in the *cscope* buffer."
+ (interactive)
+ (cscope-buffer-search t t))
+
+
+(defun cscope-next-file ()
+ "Move to the next file in the *cscope* buffer."
+ (interactive)
+ (cscope-buffer-search nil t))
+
+
+(defun cscope-prev-symbol ()
+ "Move to the previous symbol in the *cscope* buffer."
+ (interactive)
+ (cscope-buffer-search t nil))
+
+
+(defun cscope-prev-file ()
+ "Move to the previous file in the *cscope* buffer."
+ (interactive)
+ (cscope-buffer-search nil nil))
+
+
+(defun cscope-pop-mark ()
+ "Pop back to where cscope was last invoked."
+ (interactive)
+
+ ;; This function is based on pop-tag-mark, which can be found in
+ ;; lisp/progmodes/etags.el.
+
+ (if (ring-empty-p cscope-marker-ring)
+ (error "There are no marked buffers in the cscope-marker-ring yet"))
+ (let* ( (marker (ring-remove cscope-marker-ring 0))
+ (old-buffer (current-buffer))
+ (marker-buffer (marker-buffer marker))
+ marker-window
+ (marker-point (marker-position marker))
+ (cscope-buffer (get-buffer cscope-output-buffer-name)) )
+
+ ;; After the following both cscope-marker-ring and cscope-marker will be
+ ;; in the state they were immediately after the last search. This way if
+ ;; the user now makes a selection in the previously generated *cscope*
+ ;; buffer things will behave the same way as if that selection had been
+ ;; made immediately after the last search.
+ (setq cscope-marker marker)
+
+ (if marker-buffer
+ (if (eq old-buffer cscope-buffer)
+ (progn ;; In the *cscope* buffer.
+ (set-buffer marker-buffer)
+ (setq marker-window (display-buffer marker-buffer))
+ (set-window-point marker-window marker-point)
+ (select-window marker-window))
+ (switch-to-buffer marker-buffer))
+ (error "The marked buffer has been deleted"))
+ (goto-char marker-point)
+ (set-buffer old-buffer)))
+
+
+(defun cscope-set-initial-directory (cs-id)
+ "Set the cscope-initial-directory variable. The
+cscope-initial-directory variable, when set, specifies the directory
+where searches for the cscope database directory should begin. This
+overrides the current directory, which would otherwise be used."
+ (interactive "DCscope Initial Directory: ")
+ (setq cscope-initial-directory cs-id))
+
+
+(defun cscope-unset-initial-directory ()
+ "Unset the cscope-initial-directory variable."
+ (interactive)
+ (setq cscope-initial-directory nil)
+ (message "The cscope-initial-directory variable is now unset."))
+
+
+(defun cscope-help ()
+ (interactive)
+ (message
+ (format "RET=%s, SPC=%s, o=%s, n=%s, p=%s, q=%s, h=%s"
+ "Select"
+ "Show"
+ "SelectOneWin"
+ "ShowNext"
+ "ShowPrev"
+ "Quit"
+ "Help")))
+
+
+(defun cscope-bury-buffer ()
+ "Clean up cscope, if necessary, and bury the buffer."
+ (interactive)
+ (let ()
+ (if overlay-arrow-position
+ (set-marker overlay-arrow-position nil))
+ (setq overlay-arrow-position nil
+ overlay-arrow-string nil)
+ (bury-buffer (get-buffer cscope-output-buffer-name))
+ ))
+
+
+(defun cscope-quit ()
+ (interactive)
+ (cscope-bury-buffer)
+ (kill-buffer cscope-output-buffer-name)
+ )
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defun cscope-canonicalize-directory (dir)
+ (or dir
+ (setq dir default-directory))
+ (setq dir (file-name-as-directory
+ (expand-file-name (substitute-in-file-name dir))))
+ dir
+ )
+
+
+(defun cscope-search-directory-hierarchy (directory)
+ "Look for a cscope database in the directory hierarchy.
+Starting from DIRECTORY, look upwards for a cscope database."
+ (let (this-directory database-dir)
+ (catch 'done
+ (if (file-regular-p directory)
+ (throw 'done directory))
+ (setq directory (cscope-canonicalize-directory directory)
+ this-directory directory)
+ (while this-directory
+ (if (or (file-exists-p (concat this-directory cscope-database-file))
+ (file-exists-p (concat this-directory cscope-index-file)))
+ (progn
+ (setq database-dir this-directory)
+ (throw 'done database-dir)
+ ))
+ (if (string-match "^\\(/\\|[A-Za-z]:[\\/]\\)$" this-directory)
+ (throw 'done directory))
+ (setq this-directory (file-name-as-directory
+ (file-name-directory
+ (directory-file-name this-directory))))
+ ))
+ ))
+
+
+(defun cscope-find-info (top-directory)
+ "Locate a suitable cscope database directory.
+First, `cscope-database-regexps' is used to search for a suitable
+database directory. If a database location cannot be found using this
+variable, then the current directory is searched, then the parent,
+then the parent's parent, until a cscope database directory is found,
+or the root directory is reached. If the root directory is reached,
+the current directory will be used."
+ (let (info regexps dir-regexp this-directory)
+ (setq top-directory (cscope-canonicalize-directory
+ (or top-directory cscope-initial-directory)))
+ (catch 'done
+ ;; Try searching using `cscope-database-regexps' ...
+ (setq regexps cscope-database-regexps)
+ (while regexps
+ (setq dir-regexp (car (car regexps)))
+ (cond
+ ( (stringp dir-regexp)
+ (if (string-match dir-regexp top-directory)
+ (progn
+ (setq info (cdr (car regexps)))
+ (throw 'done t)
+ )) )
+ ( (and (symbolp dir-regexp) dir-regexp)
+ (progn
+ (setq info (cdr (car regexps)))
+ (throw 'done t)
+ ) ))
+ (setq regexps (cdr regexps))
+ )
+
+ ;; Try looking in the directory hierarchy ...
+ (if (setq this-directory
+ (cscope-search-directory-hierarchy top-directory))
+ (progn
+ (setq info (list (list this-directory)))
+ (throw 'done t)
+ ))
+
+ ;; Should we add any more places to look?
+
+ ) ;; end catch
+ (if (not info)
+ (setq info (list (list top-directory))))
+ info
+ ))
+
+
+(defun cscope-make-entry-line (func-name line-number line)
+ ;; The format of entry line:
+ ;; func-name[line-number]______line
+ ;; <- cscope-name-line-width ->
+ ;; `format' of Emacs doesn't have "*s" spec.
+ (let* ((fmt (format "%%%ds %%s" cscope-name-line-width))
+ (str (format fmt (format "%s[%s]" func-name line-number) line))
+ beg end)
+ (if cscope-use-face
+ (progn
+ (setq end (length func-name))
+ (put-text-property 0 end 'face 'cscope-function-face str)
+ (setq beg (1+ end)
+ end (+ beg (length line-number)))
+ (put-text-property beg end 'face 'cscope-line-number-face str)
+ (setq end (length str)
+ beg (- end (length line)))
+ (put-text-property beg end 'face 'cscope-line-face str)
+ ))
+ str))
+
+
+(defun cscope-process-filter (process output)
+ "Accept cscope process output and reformat it for human readability.
+Magic text properties are added to allow the user to select lines
+using the mouse."
+ (let ( (old-buffer (current-buffer)) )
+ (unwind-protect
+ (progn
+ (set-buffer (process-buffer process))
+ ;; Make buffer-read-only nil
+ (let (buffer-read-only line file function-name line-number moving)
+ (setq moving (= (point) (process-mark process)))
+ (save-excursion
+ (goto-char (process-mark process))
+ ;; Get the output thus far ...
+ (if cscope-process-output
+ (setq cscope-process-output (concat cscope-process-output
+ output))
+ (setq cscope-process-output output))
+ ;; Slice and dice it into lines.
+ ;; While there are whole lines left ...
+ (while (and cscope-process-output
+ (string-match "\\([^\n]+\n\\)\\(\\(.\\|\n\\)*\\)"
+ cscope-process-output))
+ (setq file nil
+ glimpse-stripped-directory nil
+ )
+ ;; Get a line
+ (setq line (substring cscope-process-output
+ (match-beginning 1) (match-end 1)))
+ (setq cscope-process-output (substring cscope-process-output
+ (match-beginning 2)
+ (match-end 2)))
+ (if (= (length cscope-process-output) 0)
+ (setq cscope-process-output nil))
+
+ ;; This should always match.
+ (if (string-match
+ "^\\([^ \t]+\\)[ \t]+\\([^ \t]+\\)[ \t]+\\([0-9]+\\)[ \t]+\\(.*\\)\n"
+ line)
+ (progn
+ (let (str)
+ (setq file (substring line (match-beginning 1)
+ (match-end 1))
+ function-name (substring line (match-beginning 2)
+ (match-end 2))
+ line-number (substring line (match-beginning 3)
+ (match-end 3))
+ line (substring line (match-beginning 4)
+ (match-end 4))
+ )
+ ;; If the current file is not the same as the previous
+ ;; one ...
+ (if (not (and cscope-last-file
+ (string= file cscope-last-file)))
+ (progn
+ ;; The current file is different.
+
+ ;; Insert a separating blank line if
+ ;; necessary.
+ (if cscope-last-file (insert "\n"))
+ ;; Insert the file name
+ (setq str (concat "*** " file ":"))
+ (if cscope-use-face
+ (put-text-property 0 (length str)
+ 'face 'cscope-file-face
+ str))
+ (cscope-insert-with-text-properties
+ str
+ (expand-file-name file)
+ ;; Yes, -1 is intentional
+ -1)
+ (insert "\n")
+ ))
+ (if (not cscope-first-match)
+ (setq cscope-first-match-point (point)))
+ ;; ... and insert the line, with the
+ ;; appropriate indentation.
+ (cscope-insert-with-text-properties
+ (cscope-make-entry-line function-name
+ line-number
+ line)
+ (expand-file-name file)
+ line-number)
+ (insert "\n")
+ (setq cscope-last-file file)
+ (if cscope-first-match
+ (setq cscope-matched-multiple t)
+ (setq cscope-first-match
+ (cons (expand-file-name file)
+ (string-to-number line-number))))
+ ))
+ (insert line "\n")
+ ))
+ (set-marker (process-mark process) (point))
+ )
+ (if moving
+ (goto-char (process-mark process)))
+ (set-buffer-modified-p nil)
+ ))
+ (set-buffer old-buffer))
+ ))
+
+
+(defun cscope-process-sentinel (process event)
+ "Sentinel for when the cscope process dies."
+ (let* ( (buffer (process-buffer process)) window update-window
+ (done t) (old-buffer (current-buffer))
+ (old-buffer-window (get-buffer-window old-buffer)) )
+ (set-buffer buffer)
+ (save-window-excursion
+ (save-excursion
+ (if (or (and (setq window (get-buffer-window buffer))
+ (= (window-point window) (point-max)))
+ (= (point) (point-max)))
+ (progn
+ (setq update-window t)
+ ))
+ (delete-process process)
+ (let (buffer-read-only continue)
+ (goto-char (point-max))
+ (if (and cscope-suppress-empty-matches
+ (= cscope-output-start (point)))
+ (delete-region cscope-item-start (point-max))
+ (progn
+ (if (not cscope-start-directory)
+ (setq cscope-start-directory default-directory))
+ (insert cscope-separator-line)
+ ))
+ (setq continue
+ (and cscope-search-list
+ (not (and cscope-first-match
+ cscope-stop-at-first-match-dir
+ (not cscope-stop-at-first-match-dir-meta)))))
+ (if continue
+ (setq continue (cscope-search-one-database)))
+ (if continue
+ (progn
+ (setq done nil)
+ )
+ (progn
+ (insert "\nSearch complete.")
+ (if cscope-display-times
+ (let ( (times (current-time)) cscope-stop elapsed-time )
+ (setq cscope-stop (+ (* (car times) 65536.0)
+ (car (cdr times))
+ (* (car (cdr (cdr times))) 1.0E-6)))
+ (setq elapsed-time (- cscope-stop cscope-start-time))
+ (insert (format " Search time = %.2f seconds."
+ elapsed-time))
+ ))
+ (setq cscope-process nil)
+ (if cscope-running-in-xemacs
+ (setq modeline-process ": Search complete"))
+ (if cscope-start-directory
+ (setq default-directory cscope-start-directory))
+ (if (not cscope-first-match)
+ (message "No matches were found."))
+ )
+ ))
+ (set-buffer-modified-p nil)
+ ))
+ (if (and done cscope-first-match-point update-window)
+ (if window
+ (set-window-point window cscope-first-match-point)
+ (goto-char cscope-first-match-point))
+ )
+ (cond
+ ( (not done) ;; we're not done -- do nothing for now
+ (if update-window
+ (if window
+ (set-window-point window (point-max))
+ (goto-char (point-max))))
+ )
+ ( cscope-first-match
+ (if cscope-display-cscope-buffer
+ (if (and cscope-edit-single-match (not cscope-matched-multiple))
+ (cscope-show-entry-internal(car cscope-first-match)
+ (cdr cscope-first-match) t))
+ (cscope-select-entry-specified-window old-buffer-window))
+ )
+ )
+ (if (and done (eq old-buffer buffer) cscope-first-match)
+ (cscope-help))
+ (set-buffer old-buffer)
+ ))
+
+
+(defun cscope-search-one-database ()
+ "Pop a database entry from cscope-search-list and do a search there."
+ (let ( next-item options cscope-directory database-file outbuf done
+ base-database-file-name)
+ (setq outbuf (get-buffer-create cscope-output-buffer-name))
+ (save-excursion
+ (catch 'finished
+ (set-buffer outbuf)
+ (setq options '("-L"))
+ (while (and (not done) cscope-search-list)
+ (setq next-item (car cscope-search-list)
+ cscope-search-list (cdr cscope-search-list)
+ base-database-file-name cscope-database-file
+ )
+ (if (listp next-item)
+ (progn
+ (setq cscope-directory (car next-item))
+ (if (not (stringp cscope-directory))
+ (setq cscope-directory
+ (cscope-search-directory-hierarchy
+ default-directory)))
+ (if (file-regular-p cscope-directory)
+ (progn
+ ;; Handle the case where `cscope-directory' is really
+ ;; a full path name to a cscope database.
+ (setq base-database-file-name
+ (file-name-nondirectory cscope-directory)
+ cscope-directory
+ (file-name-directory cscope-directory))
+ ))
+ (setq cscope-directory
+ (file-name-as-directory cscope-directory))
+ (if (not (member cscope-directory cscope-searched-dirs))
+ (progn
+ (setq cscope-searched-dirs (cons cscope-directory
+ cscope-searched-dirs)
+ done t)
+ ))
+ )
+ (progn
+ (if (and cscope-first-match
+ cscope-stop-at-first-match-dir
+ cscope-stop-at-first-match-dir-meta)
+ (throw 'finished nil))
+ ))
+ )
+ (if (not done)
+ (throw 'finished nil))
+ (if (car (cdr next-item))
+ (let (newopts)
+ (setq newopts (car (cdr next-item)))
+ (if (not (listp newopts))
+ (error (format "Cscope options must be a list: %s" newopts)))
+ (setq options (append options newopts))
+ ))
+ (if cscope-command-args
+ (setq options (append options cscope-command-args)))
+ (setq database-file (concat cscope-directory base-database-file-name)
+ cscope-searched-dirs (cons cscope-directory
+ cscope-searched-dirs)
+ )
+
+ ;; The database file and the directory containing the database file
+ ;; must both be writable.
+ (if (or (not (file-writable-p database-file))
+ (not (file-writable-p (file-name-directory database-file)))
+ cscope-do-not-update-database)
+ (setq options (cons "-d" options)))
+
+ (goto-char (point-max))
+ (setq cscope-item-start (point))
+ (if (string= base-database-file-name cscope-database-file)
+ (insert "\nDatabase directory: " cscope-directory "\n"
+ cscope-separator-line)
+ (insert "\nDatabase directory/file: "
+ cscope-directory base-database-file-name "\n"
+ cscope-separator-line))
+ ;; Add the correct database file to search
+ (setq options (cons base-database-file-name options))
+ (setq options (cons "-f" options))
+ (setq cscope-output-start (point))
+ (setq default-directory cscope-directory)
+ (if cscope-filter-func
+ (progn
+ (setq cscope-process-output nil
+ cscope-last-file nil
+ )
+ (setq cscope-process
+ (apply 'start-process "cscope" outbuf
+ cscope-program options))
+ (set-process-filter cscope-process cscope-filter-func)
+ (set-process-sentinel cscope-process cscope-sentinel-func)
+ (set-marker (process-mark cscope-process) (point))
+ (process-kill-without-query cscope-process)
+ (if cscope-running-in-xemacs
+ (setq modeline-process ": Searching ..."))
+ (setq buffer-read-only t)
+ )
+ (apply 'call-process cscope-program nil outbuf t options)
+ )
+ t
+ ))
+ ))
+
+
+(defun cscope-call (msg args &optional directory filter-func sentinel-func)
+ "Generic function to call to process cscope requests.
+ARGS is a list of command-line arguments to pass to the cscope
+process. DIRECTORY is the current working directory to use (generally,
+the directory in which the cscope database is located, but not
+necessarily), if different that the current one. FILTER-FUNC and
+SENTINEL-FUNC are optional process filter and sentinel, respectively."
+ (let ( (outbuf (get-buffer-create cscope-output-buffer-name))
+ (old-buffer (current-buffer)) )
+ (if cscope-process
+ (error "A cscope search is still in progress -- only one at a time is allowed"))
+ (setq directory (cscope-canonicalize-directory
+ (or cscope-initial-directory directory)))
+ (if (eq outbuf old-buffer) ;; In the *cscope* buffer.
+ (if cscope-marker-window
+ (progn
+ ;; Assume that cscope-marker-window is the window, from the
+ ;; users perspective, from which the search was launched and the
+ ;; window that should be returned to upon cscope-pop-mark.
+ (set-buffer (window-buffer cscope-marker-window))
+ (setq cscope-marker (point-marker))
+ (set-buffer old-buffer)))
+ (progn ;; Not in the *cscope buffer.
+ ;; Set the cscope-marker-window to whichever window this search
+ ;; was launched from.
+ (setq cscope-marker-window (get-buffer-window old-buffer))
+ (setq cscope-marker (point-marker))))
+ (save-excursion
+ (set-buffer outbuf)
+ (if cscope-display-times
+ (let ( (times (current-time)) )
+ (setq cscope-start-time (+ (* (car times) 65536.0) (car (cdr times))
+ (* (car (cdr (cdr times))) 1.0E-6)))))
+ (setq default-directory directory
+ cscope-start-directory nil
+ cscope-search-list (cscope-find-info directory)
+ cscope-searched-dirs nil
+ cscope-command-args args
+ cscope-filter-func filter-func
+ cscope-sentinel-func sentinel-func
+ cscope-first-match nil
+ cscope-first-match-point nil
+ cscope-stop-at-first-match-dir-meta (memq t cscope-search-list)
+ cscope-matched-multiple nil
+ buffer-read-only nil)
+ (buffer-disable-undo)
+ (erase-buffer)
+ (setq truncate-lines cscope-truncate-lines)
+ (if msg
+ (insert msg "\n"))
+ (cscope-search-one-database)
+ )
+ (if cscope-display-cscope-buffer
+ (progn
+ (pop-to-buffer outbuf)
+ (cscope-help))
+ (set-buffer outbuf))
+ (goto-char (point-max))
+ (cscope-list-entry-mode)
+ ))
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defvar cscope-unix-index-process-buffer-name "*cscope-indexing-buffer*"
+ "The name of the buffer to use for displaying indexing status/progress.")
+
+
+(defvar cscope-unix-index-process-buffer nil
+ "The buffer to use for displaying indexing status/progress.")
+
+
+(defvar cscope-unix-index-process nil
+ "The current indexing process.")
+
+
+(defun cscope-unix-index-files-sentinel (process event)
+ "Simple sentinel to print a message saying that indexing is finished."
+ (let (buffer)
+ (save-window-excursion
+ (save-excursion
+ (setq buffer (process-buffer process))
+ (set-buffer buffer)
+ (goto-char (point-max))
+ (insert cscope-separator-line "\nIndexing finished\n")
+ (delete-process process)
+ (setq cscope-unix-index-process nil)
+ (set-buffer-modified-p nil)
+ ))
+ ))
+
+
+(defun cscope-unix-index-files-internal (top-directory header-text args)
+ "Core function to call the indexing script."
+ (let ()
+ (save-excursion
+ (setq top-directory (cscope-canonicalize-directory top-directory))
+ (setq cscope-unix-index-process-buffer
+ (get-buffer-create cscope-unix-index-process-buffer-name))
+ (display-buffer cscope-unix-index-process-buffer)
+ (set-buffer cscope-unix-index-process-buffer)
+ (setq buffer-read-only nil)
+ (setq default-directory top-directory)
+ (buffer-disable-undo)
+ (erase-buffer)
+ (if header-text
+ (insert header-text))
+ (setq args (append args
+ (list "-v"
+ "-i" cscope-index-file
+ "-f" cscope-database-file
+ (if cscope-use-relative-paths
+ "." top-directory))))
+ (if cscope-index-recursively
+ (setq args (cons "-r" args)))
+ (setq cscope-unix-index-process
+ (apply 'start-process "cscope-indexer"
+ cscope-unix-index-process-buffer
+ cscope-indexing-script args))
+ (set-process-sentinel cscope-unix-index-process
+ 'cscope-unix-index-files-sentinel)
+ (process-kill-without-query cscope-unix-index-process)
+ )
+ ))
+
+
+(defun cscope-index-files (top-directory)
+ "Index files in a directory.
+This function creates a list of files to index, and then indexes
+the listed files.
+The variable, \"cscope-index-recursively\", controls whether or not
+subdirectories are indexed."
+ (interactive "DIndex files in directory: ")
+ (let ()
+ (cscope-unix-index-files-internal
+ top-directory
+ (format "Creating cscope index `%s' in:\n\t%s\n\n%s"
+ cscope-database-file top-directory cscope-separator-line)
+ nil)
+ ))
+
+
+(defun cscope-create-list-of-files-to-index (top-directory)
+ "Create a list of files to index.
+The variable, \"cscope-index-recursively\", controls whether or not
+subdirectories are indexed."
+ (interactive "DCreate file list in directory: ")
+ (let ()
+ (cscope-unix-index-files-internal
+ top-directory
+ (format "Creating cscope file list `%s' in:\n\t%s\n\n"
+ cscope-index-file top-directory)
+ '("-l"))
+ ))
+
+
+(defun cscope-edit-list-of-files-to-index ()
+ "Search for and edit the list of files to index.
+If this functions causes a new file to be edited, that means that a
+cscope.out file was found without a corresponding cscope.files file."
+ (interactive)
+ (let (info directory file)
+ (setq info (cscope-find-info nil))
+ (if (/= (length info) 1)
+ (error "There is no unique cscope database directory!"))
+ (setq directory (car (car info)))
+ (if (not (stringp directory))
+ (setq directory
+ (cscope-search-directory-hierarchy default-directory)))
+ (setq file (concat (file-name-as-directory directory) cscope-index-file))
+ (find-file file)
+ (message (concat "File: " file))
+ ))
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defun cscope-tell-user-about-directory ()
+ "Display the name of the directory containing the cscope database."
+ (interactive)
+ (let (info directory)
+ (setq info (cscope-find-info nil))
+ (if (= (length info) 1)
+ (progn
+ (setq directory (car (car info)))
+ (message (concat "Cscope directory: " directory))
+ )
+ (let ( (outbuf (get-buffer-create cscope-info-buffer-name)) )
+ (display-buffer outbuf)
+ (save-excursion
+ (set-buffer outbuf)
+ (buffer-disable-undo)
+ (erase-buffer)
+ (insert "Cscope search directories:\n")
+ (while info
+ (if (listp (car info))
+ (progn
+ (setq directory (car (car info)))
+ (if (not (stringp directory))
+ (setq directory
+ (cscope-search-directory-hierarchy
+ default-directory)))
+ (insert "\t" directory "\n")
+ ))
+ (setq info (cdr info))
+ )
+ )
+ ))
+ ))
+
+
+(defun cscope-dired-directory ()
+ "Run dired upon the cscope database directory.
+If possible, the cursor is moved to the name of the cscope database
+file."
+ (interactive)
+ (let (info directory buffer p1 p2 pos)
+ (setq info (cscope-find-info nil))
+ (if (/= (length info) 1)
+ (error "There is no unique cscope database directory!"))
+ (setq directory (car (car info)))
+ (if (not (stringp directory))
+ (setq directory
+ (cscope-search-directory-hierarchy default-directory)))
+ (setq buffer (dired-noselect directory nil))
+ (switch-to-buffer buffer)
+ (set-buffer buffer)
+ (save-excursion
+ (goto-char (point-min))
+ (setq p1 (search-forward cscope-index-file nil t))
+ (if p1
+ (setq p1 (- p1 (length cscope-index-file))))
+ )
+ (save-excursion
+ (goto-char (point-min))
+ (setq p2 (search-forward cscope-database-file nil t))
+ (if p2
+ (setq p2 (- p2 (length cscope-database-file))))
+ )
+ (cond
+ ( (and p1 p2)
+ (if (< p1 p2)
+ (setq pos p1)
+ (setq pos p2))
+ )
+ ( p1
+ (setq pos p1)
+ )
+ ( p2
+ (setq pos p2)
+ )
+ )
+ (if pos
+ (set-window-point (get-buffer-window buffer) pos))
+ ))
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defun cscope-extract-symbol-at-cursor (extract-filename)
+ (let* ( (symbol-chars (if extract-filename
+ cscope-filename-chars
+ cscope-symbol-chars))
+ (symbol-char-regexp (concat "[" symbol-chars "]"))
+ )
+ (save-excursion
+ (buffer-substring-no-properties
+ (progn
+ (if (not (looking-at symbol-char-regexp))
+ (re-search-backward "\\w" nil t))
+ (skip-chars-backward symbol-chars)
+ (point))
+ (progn
+ (skip-chars-forward symbol-chars)
+ (point)
+ )))
+ ))
+
+
+(defun cscope-prompt-for-symbol (prompt extract-filename)
+ "Prompt the user for a cscope symbol."
+ (let (sym)
+ (setq sym (cscope-extract-symbol-at-cursor extract-filename))
+ (if (or (not sym)
+ (string= sym "")
+ (not (and cscope-running-in-xemacs
+ cscope-no-mouse-prompts current-mouse-event
+ (or (mouse-event-p current-mouse-event)
+ (misc-user-event-p current-mouse-event))))
+ ;; Always prompt for symbol in dired mode.
+ (eq major-mode 'dired-mode)
+ )
+ (setq sym (read-from-minibuffer prompt sym))
+ sym)
+ ))
+
+
+(defun cscope-find-this-symbol (symbol)
+ "Locate a symbol in source code."
+ (interactive (list
+ (cscope-prompt-for-symbol "Find this symbol: " nil)
+ ))
+ (let ( (cscope-adjust t) ) ;; Use fuzzy matching.
+ (setq cscope-symbol symbol)
+ (cscope-call (format "Finding symbol: %s" symbol)
+ (list "-0" symbol) nil 'cscope-process-filter
+ 'cscope-process-sentinel)
+ ))
+
+
+(defun cscope-find-global-definition (symbol)
+ "Find a symbol's global definition."
+ (interactive (list
+ (cscope-prompt-for-symbol "Find this global definition: " nil)
+ ))
+ (let ( (cscope-adjust t) ) ;; Use fuzzy matching.
+ (setq cscope-symbol symbol)
+ (cscope-call (format "Finding global definition: %s" symbol)
+ (list "-1" symbol) nil 'cscope-process-filter
+ 'cscope-process-sentinel)
+ ))
+
+
+(defun cscope-find-global-definition-no-prompting ()
+ "Find a symbol's global definition without prompting."
+ (interactive)
+ (let ( (symbol (cscope-extract-symbol-at-cursor nil))
+ (cscope-adjust t) ) ;; Use fuzzy matching.
+ (setq cscope-symbol symbol)
+ (cscope-call (format "Finding global definition: %s" symbol)
+ (list "-1" symbol) nil 'cscope-process-filter
+ 'cscope-process-sentinel)
+ ))
+
+
+(defun cscope-find-called-functions (symbol)
+ "Display functions called by a function."
+ (interactive (list
+ (cscope-prompt-for-symbol
+ "Find functions called by this function: " nil)
+ ))
+ (let ( (cscope-adjust nil) ) ;; Disable fuzzy matching.
+ (setq cscope-symbol symbol)
+ (cscope-call (format "Finding functions called by: %s" symbol)
+ (list "-2" symbol) nil 'cscope-process-filter
+ 'cscope-process-sentinel)
+ ))
+
+
+(defun cscope-find-functions-calling-this-function (symbol)
+ "Display functions calling a function."
+ (interactive (list
+ (cscope-prompt-for-symbol
+ "Find functions calling this function: " nil)
+ ))
+ (let ( (cscope-adjust t) ) ;; Use fuzzy matching.
+ (setq cscope-symbol symbol)
+ (cscope-call (format "Finding functions calling: %s" symbol)
+ (list "-3" symbol) nil 'cscope-process-filter
+ 'cscope-process-sentinel)
+ ))
+
+
+(defun cscope-find-this-text-string (symbol)
+ "Locate where a text string occurs."
+ (interactive (list
+ (cscope-prompt-for-symbol "Find this text string: " nil)
+ ))
+ (let ( (cscope-adjust t) ) ;; Use fuzzy matching.
+ (setq cscope-symbol symbol)
+ (cscope-call (format "Finding text string: %s" symbol)
+ (list "-4" symbol) nil 'cscope-process-filter
+ 'cscope-process-sentinel)
+ ))
+
+
+(defun cscope-find-egrep-pattern (symbol)
+ "Run egrep over the cscope database."
+ (interactive (list
+ (let (cscope-no-mouse-prompts)
+ (cscope-prompt-for-symbol "Find this egrep pattern: " nil))
+ ))
+ (let ( (cscope-adjust t) ) ;; Use fuzzy matching.
+ (setq cscope-symbol symbol)
+ (cscope-call (format "Finding egrep pattern: %s" symbol)
+ (list "-6" symbol) nil 'cscope-process-filter
+ 'cscope-process-sentinel)
+ ))
+
+
+(defun cscope-find-this-file (symbol)
+ "Locate a file."
+ (interactive (list
+ (let (cscope-no-mouse-prompts)
+ (cscope-prompt-for-symbol "Find this file: " t))
+ ))
+ (let ( (cscope-adjust nil) ) ;; Disable fuzzy matching.
+ (setq cscope-symbol symbol)
+ (cscope-call (format "Finding file: %s" symbol)
+ (list "-7" symbol) nil 'cscope-process-filter
+ 'cscope-process-sentinel)
+ ))
+
+
+(defun cscope-find-files-including-file (symbol)
+ "Locate all files #including a file."
+ (interactive (list
+ (let (cscope-no-mouse-prompts)
+ (cscope-prompt-for-symbol
+ "Find files #including this file: " t))
+ ))
+ (let ( (cscope-adjust t) ) ;; Use fuzzy matching.
+ (setq cscope-symbol symbol)
+ (cscope-call (format "Finding files #including file: %s" symbol)
+ (list "-8" symbol) nil 'cscope-process-filter
+ 'cscope-process-sentinel)
+ ))
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defvar cscope-minor-mode nil
+ "")
+(make-variable-buffer-local 'cscope-minor-mode)
+(put 'cscope-minor-mode 'permanent-local t)
+
+
+(defun cscope-minor-mode (&optional arg)
+ ""
+ (progn
+ (setq cscope-minor-mode (if (null arg) t (car arg)))
+ (if cscope-minor-mode
+ (progn
+ (easy-menu-add cscope:menu cscope:map)
+ (run-hooks 'cscope-minor-mode-hooks)
+ ))
+ cscope-minor-mode
+ ))
+
+
+(defun cscope:hook ()
+ ""
+ (progn
+ (cscope-minor-mode)
+ ))
+
+
+(or (assq 'cscope-minor-mode minor-mode-map-alist)
+ (setq minor-mode-map-alist (cons (cons 'cscope-minor-mode cscope:map)
+ minor-mode-map-alist)))
+
+(add-hook 'c-mode-hook (function cscope:hook))
+(add-hook 'c++-mode-hook (function cscope:hook))
+(add-hook 'dired-mode-hook (function cscope:hook))
+
+(provide 'xcscope)
diff --git a/depcomp b/depcomp
new file mode 100755
index 0000000..bd0ac08
--- /dev/null
+++ b/depcomp
@@ -0,0 +1,688 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2011-12-04.11; # UTC
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
+# 2011 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@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@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
+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"
+
+# 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
+
+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 -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## 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).
+## - 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 -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## 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.
+ tr ' ' '
+' < "$tmpdepfile" |
+## 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.
+ 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 -eq 0; then :
+ else
+ 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 ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+ tr '
+' ' ' >> "$depfile"
+ echo >> "$depfile"
+
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+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.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ 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 -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form `foo.o: dependent.h'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+icc)
+ # Intel's C compiler understands `-MD -MF file'. However on
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+ # ICC 7.0 will fill foo.d with something like
+ # foo.o: sub/foo.c
+ # foo.o: sub/foo.h
+ # which is wrong. We want:
+ # sub/foo.o: sub/foo.c
+ # sub/foo.o: sub/foo.h
+ # sub/foo.c:
+ # sub/foo.h:
+ # ICC 7.1 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using \ :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ 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.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ 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 -eq 0; then :
+ else
+ 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,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+ # Add `dependent.h:' lines.
+ sed -ne '2,${
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
+ else
+ echo "#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.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+ if test "$libtool" = yes; then
+ # With Tru64 cc, shared objects can also be used to make a
+ # static library. This mechanism is used in libtool 1.4 series to
+ # handle both shared and static libraries in a single compilation.
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+ #
+ # With libtool 1.5 this exception was removed, and libtool now
+ # 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.libs/$base.lo.d # libtool 1.4
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.o.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ tmpdepfile4=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+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" = 0; then :
+ else
+ 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/\(.*\)/ \1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+ s/.*/ /
+ G
+ p
+}' >> "$depfile"
+ 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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ 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"
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ 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:: \1 \\:p' >> "$depfile"
+ echo " " >> "$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/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..5d45d42
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,4 @@
+## Process this file with automake to produce Makefile.in
+
+man_MANS = cscope.1
+EXTRA_DIST = $(man_MANS) xcscope.1
diff --git a/doc/Makefile.in b/doc/Makefile.in
new file mode 100644
index 0000000..f35b72e
--- /dev/null
+++ b/doc/Makefile.in
@@ -0,0 +1,426 @@
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# 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.
+
+@SET_MAKE@
+VPATH = @srcdir@
+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@
+subdir = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+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; }; \
+ }
+man1dir = $(mandir)/man1
+am__installdirs = "$(DESTDIR)$(man1dir)"
+NROFF = nroff
+MANS = $(man_MANS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURSES_INCLUDEDIR = @CURSES_INCLUDEDIR@
+CURSES_LIBS = @CURSES_LIBS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+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@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+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@
+gnome1 = @gnome1@
+gnome2 = @gnome2@
+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_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+man_MANS = cscope.1
+EXTRA_DIST = $(man_MANS) xcscope.1
+all: all-am
+
+.SUFFIXES:
+$(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 doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu doc/Makefile
+.PRECIOUS: 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):
+install-man1: $(man_MANS)
+ @$(NORMAL_INSTALL)
+ test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ { 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'; \
+ } | 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)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @list='$(MANS)'; if test -n "$$list"; then \
+ list=`for p in $$list; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+ if test -n "$$list" && \
+ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
+ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+ echo " typically \`make maintainer-clean' will remove them" >&2; \
+ exit 1; \
+ else :; fi; \
+ else :; fi
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ 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 $(MANS)
+installdirs:
+ for dir in "$(DESTDIR)$(man1dir)"; 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:
+
+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-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-man
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+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 -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-man
+
+uninstall-man: uninstall-man1
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-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-man \
+ install-man1 install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
+ uninstall-am uninstall-man uninstall-man1
+
+
+# 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/doc/cscope.1 b/doc/cscope.1
new file mode 100644
index 0000000..6a3a86b
--- /dev/null
+++ b/doc/cscope.1
@@ -0,0 +1,591 @@
+.PU
+.TH CSCOPE "1" "January 2007" "The Santa Cruz Operation"
+.SH NAME
+cscope - interactively examine a C program
+.SH SYNOPSIS
+.B cscope
+.B [\-bCcdehkLlqRTUuVv]
+.BI [\-F symfile ]
+.BI [\-f reffile ]
+.BI [\-I incdir ]
+.BI [\-i namefile ]
+.BI [\-0123456789 pattern ]
+.BI [\-p n ]
+.BI [\-s dir ]
+.BI [ files ]
+.SH DESCRIPTION
+.I cscope
+is an interactive, screen-oriented tool that allows the user to
+browse through C source files for specified elements of code.
+.PP
+By default,
+.I cscope
+examines the C (.c and .h), lex (.l), and yacc (.y)
+source files in the current directory.
+.I cscope
+may also be invoked for
+source files named on the command line. In either case,
+.I cscope
+searches the standard directories for #include files that it does not
+find in the current directory.
+.I cscope
+uses a symbol cross-reference, called
+cscope.out by default, to locate functions, function calls, macros,
+variables, and preprocessor symbols in the files.
+.PP
+.I cscope
+builds the symbol cross-reference the first time it is used on
+the source files for the program being browsed. On a subsequent
+invocation,
+.I cscope
+rebuilds the cross-reference only if a source file
+has changed or the list of source files is different. When the
+cross-reference is rebuilt, the data for the unchanged files are
+copied from the old cross-reference, which makes rebuilding faster
+than the initial build.
+.SH OPTIONS
+Some command line arguments can only occur as the only argument in
+the execution of cscope. They cause the program to just print out
+some output and exit immediately:
+.TP
+.B -h
+View the long usage help display.
+.TP
+.B -V
+Print on the first line of screen the version number of cscope.
+.TP
+.B --help
+Same as
+.B -h
+.TP
+.B --version
+Same as
+.B -V
+
+.PP
+The following options can appear in any combination:
+.TP
+.B -b
+Build the cross-reference only.
+.TP
+.B -C
+Ignore letter case when searching.
+.TP
+.B -c
+Use only ASCII characters in the cross-reference file, that is,
+do not compress the data.
+.TP
+.B -d
+Do not update the cross-reference.
+.TP
+.B -e
+Suppress the <Ctrl>-e command prompt between files.
+.TP
+.BI -F symfile
+Read symbol reference lines from
+.I symfile.
+(A symbol reference
+file is created by > and >>, and can also be read using the <
+command, described under ``Issuing Subsequent Requests'',
+below.)
+.TP
+.BI -f reffile
+Use
+.I reffile
+as the cross-reference file name instead of the default "cscope.out".
+.TP
+.BI -I incdir
+Look in
+.I incdir
+(before looking in $INCDIR, the standard place
+for header files, normally /usr/include) for any #include files
+whose names do not begin with ``/'' and that are not specified
+on the command line or in
+.I namefile
+below. (The #include files
+may be specified with either double quotes or angle brackets.)
+The incdir directory is searched in addition to the current
+directory (which is searched first) and the standard list
+(which is searched last). If more than one occurrence of -I
+appears, the directories are searched in the order they appear
+on the command line.
+.TP
+.BI -i namefile
+Browse through all source files whose names are listed in
+.I namefile
+(file names separated by spaces, tabs, or new-lines) instead of the
+default name list file, which is called cscope.files. If this option
+is specified, cscope ignores any file names appearing on the command
+line. The argument namefile can be set to ``-'' to accept a list of
+files from the standard input. Filenames in the namefile that contain
+whitespace have to be enclosed in "double quotes". Inside such quoted
+filenames, any double-quote and backslash characters have to be
+escaped by backslashes.
+.TP
+.B -k
+``Kernel Mode'', turns off the use of the default include dir
+(usually /usr/include) when building the database, since kernel
+source trees generally do not use it.
+.TP
+.B -L
+Do a single search with line-oriented output when used with the
+-num pattern option.
+.TP
+.B -l
+Line-oriented interface (see ``Line-Oriented Interface''
+below).
+.TP
+.BI -[ "0-9" ] pattern
+Go to input field
+.I num
+(counting from 0) and find
+.I pattern.
+.TP
+.BI -P path
+Prepend
+.I path
+to relative file names in a pre-built cross-reference file so you do
+not have to change to the directory where the cross-reference file was
+built. This option is only valid with the -d option.
+.TP
+.BI -p n
+Display the last
+.I n
+file path components instead of the default (1). Use
+.I 0
+not to display the file name at all.
+.TP
+.B -q
+Enable fast symbol lookup via an inverted index. This option
+causes cscope to create 2 more files (default names
+``cscope.in.out'' and ``cscope.po.out'') in addition to the normal
+database. This allows a faster symbol search algorithm that
+provides noticeably faster lookup performance for large projects.
+.TP
+.B -R
+Recurse subdirectories during search for source files.
+.TP
+.BI -s dir
+Look in
+.I dir
+for additional source files. This option is ignored if source files
+are given on the command line.
+.TP
+.B -T
+Use only the first eight characters to match against C symbols.
+A regular expression containing special characters other than a
+period (.) will not match any symbol if its minimum length is
+greater than eight characters.
+.TP
+.B -U
+Check file time stamps. This option will update the time stamp
+on the database even if no files have changed.
+.TP
+.B -u
+Unconditionally build the cross-reference file (assume that all
+files have changed).
+.TP
+.B -v
+Be more verbose in line-oriented mode. Output progress updates during
+database building and searches.
+.TP
+.I files
+A list of file names to operate on.
+.PP
+The -I, -c, -k, -p, -q, and -T options can also be in the cscope.files file.
+.PP
+.SS Requesting the initial search
+.PP
+After the cross-reference is ready, cscope will display this menu:
+.PP
+.B Find this C symbol:
+.PD 0
+.TP
+.B Find this function definition:
+.TP
+.B Find functions called by this function:
+.TP
+.B Find functions calling this function:
+.TP
+.B Find this text string:
+.TP
+.B Change this text string:
+.TP
+.B Find this egrep pattern:
+.TP
+.B Find this file:
+.TP
+.B Find files #including this file:
+.PD 1
+.PP
+Press the <Up> or <Down> keys repeatedly to move to the desired input
+field, type the text to search for, and then press the <Return> key.
+.PP
+.SS "Issuing subsequent requests"
+If the search is successful, any of these single-character commands
+can be used:
+.TP
+.B 0-9a-zA-Z
+Edit the file referenced by the given line number.
+.TP
+.B <Space>
+Display next set of matching lines.
+.TP
+.B <Tab>
+Alternate between the menu and the list of matching lines
+.TP
+.B <Up>
+Move to the previous menu item (if the cursor is in the menu)
+or move to the previous matching line (if the cursor is in the
+matching line list.)
+.TP
+.B <Down>
+Move to the next menu item (if the cursor is in the menu)
+or move to the next matching line (if the cursor is in the
+matching line list.)
+.TP
+.B +
+Display next set of matching lines.
+.TP
+.B -
+Display previous set of matching lines.
+.TP
+.B ^e
+Edit displayed files in order.
+.TP
+.B >
+Write the displayed list of lines to a file.
+.TP
+.B >>
+Append the displayed list of lines to a file.
+.TP
+.B <
+Read lines from a file that is in symbol reference format
+(created by > or >>), just like the -F option.
+.TP
+.B ^
+Filter all lines through a shell command and display the
+resulting lines, replacing the lines that were already there.
+.TP
+.B |
+Pipe all lines to a shell command and display them without
+changing them.
+.PP
+At any time these single-character commands can also be used:
+.TP
+.B <Return>
+Move to next input field.
+.TP
+.B ^n
+Move to next input field.
+.TP
+.B ^p
+Move to previous input field.
+.TP
+.B ^y
+Search with the last text typed.
+.TP
+.B ^b
+Move to previous input field and search pattern.
+.TP
+.B ^f
+Move to next input field and search pattern.
+.TP
+.B ^c
+Toggle ignore/use letter case when searching. (When ignoring
+letter case, search for ``FILE'' will match ``File'' and
+``file''.)
+.TP
+.B ^r
+Rebuild the cross-reference.
+.TP
+.B !
+Start an interactive shell (type ^d to return to cscope).
+.TP
+.B ^l
+Redraw the screen.
+.TP
+.B ?
+Give help information about cscope commands.
+.TP
+.B ^d
+Exit cscope.
+.PP
+.PP
+.B NOTE: If the first character of the text to be searched for matches
+.B one of the above commands, escape it by typing a (backslash) first.
+.PP
+.B Substituting new text for old text
+.PP
+After the text to be changed has been typed, cscope will prompt for
+the new text, and then it will display the lines containing the old
+text. Select the lines to be changed with these single-character
+commands:
+.PP
+.TP
+.B 0-9a-zA-Z
+Mark or unmark the line to be changed.
+.TP
+.B *
+Mark or unmark all displayed lines to be changed.
+.TP
+.B <Space>
+Display next set of lines.
+.TP
+.B +
+Display next set of lines.
+.TP
+.B -
+Display previous set of lines.
+.TP
+.B a
+Mark or unmark all lines to be changed.
+.TP
+.B ^d
+Change the marked lines and exit.
+.TP
+.B <Esc>
+Exit without changing the marked lines.
+.TP
+.B !
+Start an interactive shell (type ^d to return to cscope).
+.TP
+.B ^l
+Redraw the screen.
+.TP
+.B ?
+Give help information about cscope commands.
+.TP
+.B Special keys
+If your terminal has arrow keys that work in vi, you can use them
+to move around the input fields. The up-arrow key is useful to move to
+the previous
+input field instead of using the <Tab> key repeatedly. If you have
+<CLEAR>, <NEXT>, or <PREV> keys they will act as the ^l, +, and -
+commands, respectively.
+.PP
+.SS Line-Oriented interface
+.PP
+The -l option lets you use cscope where a screen-oriented interface
+would not be useful, for example, from another screen-oriented
+program.
+.PP
+cscope will prompt with >> when it is ready for an input line starting
+with the field number (counting from 0) immediately followed by the
+search pattern, for example, ``lmain'' finds the definition of the
+main function.
+.PP
+If you just want a single search, instead of the -l option use the -L
+and -num pattern options, and you won't get the >> prompt.
+.PP
+For -l, cscope outputs the number of reference lines
+cscope: 2 lines
+.PP
+For each reference found, cscope outputs a line consisting of the file
+name, function name, line number, and line text, separated by spaces,
+for example,
+main.c main 161 main(argc, argv)
+.PP
+Note that the editor is not called to display a single reference,
+unlike the screen-oriented interface.
+.PP
+You can use the c command to toggle ignore/use letter case when
+searching. (When ignoring letter case, search for ``FILE'' will match
+``File'' and ``file''.)
+.PP
+You can use the r command to rebuild the database.
+.PP
+cscope will quit when it detects end-of-file, or when the first
+character of an input line is ``^d'' or ``q''.
+.PP
+.SH "ENVIRONMENT VARIABLES"
+.TP
+.B CSCOPE_EDITOR
+Overrides the EDITOR and VIEWER variables. Use this if you wish to use
+a different editor with cscope than that specified by your
+EDITOR/VIEWER variables.
+.TP
+.B CSCOPE_LINEFLAG
+Format of the line number flag for your editor. By default, cscope
+invokes your editor via the equivalent of ``editor +N file'', where
+``N'' is the line number that the editor should jump to. This format
+is used by both emacs and vi. If your editor needs something
+different, specify it in this variable, with ``%s'' as a placeholder
+for the line number. Ex: if your editor needs to be invoked as
+``editor -#103 file'' to go to line 103, set this variable to
+``-#%s''.
+.TP
+.B CSCOPE_LINEFLAG_AFTER_FILE
+Set this variable to ``yes'' if your editor needs to be invoked with
+the line number option after the filename to be edited. To continue
+the example from CSCOPE_LINEFLAG, above: if your editor needs to see
+``editor file -#number'', set this environment variable. Users of most
+standard editors (vi, emacs) do not need to set this variable.
+.TP
+.B EDITOR
+Preferred editor, which defaults to vi.
+.TP
+.B HOME
+Home directory, which is automatically set at login.
+.TP
+.B INCLUDEDIRS
+Colon-separated list of directories to search for #include
+files.
+.TP
+.B SHELL
+Preferred shell, which defaults to sh.
+.TP
+.B SOURCEDIRS
+Colon-separated list of directories to search for additional
+source files.
+.TP
+.B TERM
+Terminal type, which must be a screen terminal.
+.TP
+.B TERMINFO
+Terminal information directory full path name. If your terminal
+is not in the standard terminfo directory, see curses
+and terminfo for how to make your own terminal description.
+.TP
+.B TMPDIR
+Temporary file directory, which defaults to /var/tmp.
+.TP
+.B VIEWER
+Preferred file display program (such as less), which overrides
+EDITOR (see above).
+.TP
+.B VPATH
+A colon-separated list of directories, each of which has the
+same directory structure below it. If VPATH is set, cscope
+searches for source files in the directories specified; if it
+is not set, cscope searches only in the current directory.
+.PP
+.SH FILES
+.TP
+.B cscope.files
+Default files containing -I, -p, -q, and -T options and the
+list of source files (overridden by the -i option).
+.TP
+.B cscope.out
+Symbol cross-reference file (overridden by the -f option),
+which is put in the home directory if it cannot be created in
+the current directory.
+.TP
+.PD 0
+.B cscope.in.out
+.TP
+.B cscope.po.out
+.PD 1
+Default files containing the inverted index used for quick
+symbol searching (-q option). If you use the -f option to
+rename the cross-reference file (so it's not cscope.out), the
+names for these inverted index files will be created by adding
+ .in and .po to the name you supply with -f. For example, if you
+indicated -f xyz, then these files would be named xyz.in and
+xyz.po.
+.TP
+.B INCDIR
+Standard directory for #include files (usually /usr/include).
+.SH Notices
+.I cscope
+recognizes function definitions of the form:
+.PD 0
+.TP
+fname blank ( args ) white arg_decs white {
+.PD 1
+.TP
+where:
+.I fname
+is the function name
+.TP
+.I blank
+is zero or more spaces, tabs, vtabs, form feeds or carriage returns,
+not including newlines
+.TP
+.I args
+is any string that does not contain a ``"'' or a newline
+.TP
+.I white
+is zero or more spaces, tabs, vtabs, form feeds, carriage returns or newlines
+.TP
+.I arg_decs
+are zero or more argument declarations (arg_decs may include
+comments and white space)
+.PP
+It is not necessary for a function declaration to start at the
+beginning of a line. The return type may precede the function name;
+cscope will still recognize the declaration. Function definitions that
+deviate from this form will not be recognized by cscope.
+.PP
+The ``Function'' column of the search output for the menu option Find
+functions called by this function: input field will only display the
+first function called in the line, that is, for this function
+.PP
+ e()
+ {
+ return (f() + g());
+ }
+.PP
+the display would be
+.PP
+ Functions called by this function: e
+ File Function Line
+ a.c f 3 return(f() + g());
+.PP
+Occasionally, a function definition or call may not be recognized
+because of braces inside #if statements. Similarly, the use of a
+variable may be incorrectly recognized as a definition.
+.PP
+A
+.B typedef
+name preceding a preprocessor statement will be incorrectly
+recognized as a global definition, for example,
+.PP
+ LDFILE *
+ #if AR16WR
+.PP
+Preprocessor statements can also prevent the recognition of a global
+definition, for example,
+.PP
+ char flag
+ #ifdef ALLOCATE_STORAGE
+ = -1
+ #endif
+ ;
+.PP
+A function declaration inside a function is incorrectly recognized as
+a function call, for example,
+.PP
+ f()
+ {
+ void g();
+ }
+.PP
+is incorrectly recognized as a call to g.
+.PP
+.I cscope
+recognizes C++ classes by looking for the class keyword, but
+doesn't recognize that a struct is also a class, so it doesn't
+recognize inline member function definitions in a structure. It also
+doesn't expect the class keyword in a
+.I typedef
+, so it incorrectly
+recognizes X as a definition in
+.PP
+ typedef class X * Y;
+.PP
+It also doesn't recognize operator function definitions
+.PP
+ Bool Feature::operator==(const Feature & other)
+ {
+ ...
+ }
+.PP
+Nor does it recognize function definitions with a function pointer
+argument
+.PP
+ ParseTable::Recognize(int startState, char *pattern,
+ int finishState, void (*FinalAction)(char *))
+ {
+ ...
+ }
diff --git a/doc/xcscope.1 b/doc/xcscope.1
new file mode 100644
index 0000000..fa4199c
--- /dev/null
+++ b/doc/xcscope.1
@@ -0,0 +1,574 @@
+'\" t
+.\" The xcscope.el man page
+.\" Origionally written by Darryl Okahata, Apr 2000
+.\"
+.\" Converted to a man page July 20, 2004 by Neil Horman <nhorman@redhat.com>
+.\"
+
+.de EX
+.sp
+.nf
+.ft CW
+..
+.de EE
+.ft R
+.fi
+.sp
+..
+
+.TH XCSCOPE.EL "1" "April 2000" "Darryl Okahata"
+.SH NAME
+xcscope.el - xemacs cscope lisp support package
+.SH DESCRIPTION
+xcscope is a lisp package for use in integrating cscope
+functionality into xemacs
+.SH INSTALLATION
+.P
+ Installation steps:
+
+.P
+ 0. (It is, of course, assumed that cscope is already properly
+ installed on the current system.)
+.P
+ 1. Ensure that the location of cscope-indexer is located in your path
+
+.P
+ 2. Ensure that the location of xcscope.el is in the xemacs module load path
+
+.P
+ 3. Edit your ~/.emacs file to add the line:
+.P
+.BI (require 'xcscope)
+
+.P
+5. If you intend to use xcscope.el often you can optionally edit your
+~/.emacs file to add keybindings that reduce the number of keystrokes
+required. For example, the following will add "C-f#" keybindings,
+which are easier to type than the usual "C-c s" prefixed keybindings.
+Note that specifying "global-map" instead of "cscope:map" makes the
+keybindings available in all buffers:
+.EX
+ (define-key global-map [(ctrl f3)] 'cscope-set-initial-directory)
+ (define-key global-map [(ctrl f4)] 'cscope-unset-initial-directory)
+ (define-key global-map [(ctrl f5)] 'cscope-find-this-symbol)
+ (define-key global-map [(ctrl f6)] 'cscope-find-global-definition)
+ (define-key global-map [(ctrl f7)]
+ cscope-find-global-definition-no-prompting)
+ (define-key global-map [(ctrl f8)] 'cscope-pop-mark)
+ (define-key global-map [(ctrl f9)] 'cscope-next-symbol)
+ (define-key global-map [(ctrl f10)] 'cscope-next-file)
+ (define-key global-map [(ctrl f11)] 'cscope-prev-symbol)
+ (define-key global-map [(ctrl f12)] 'cscope-prev-file)
+ (define-key global-map [(meta f9)] 'cscope-display-buffer)
+ (define-key global-map [(meta f10)] 'cscope-display-buffer-toggle)
+.EE
+
+.P
+ 6. Restart (X)Emacs. That's it.
+
+
+.SH USING THIS MODULE
+
+.SS * Basic usage:
+
+.P
+ If all of your C/C++/lex/yacc source files are in the same
+ directory, you can just start using this module. If your files are
+ spread out over multiple directories, see "Advanced usage", below.
+
+.P
+ Just edit a source file, and use the pull-down or pop-up (button 3)
+ menus to select one of:
+
+.EX
+ Find symbol
+ Find global definition
+ Find called functions
+ Find functions calling a function
+ Find text string
+ Find egrep pattern
+ Find a file
+ Find files #including a file
+.EE
+
+.P
+The cscope database will be automatically created in the same directory
+as the source files (assuming that you've never used cscope before), and
+a buffer will pop-up displaying the results. You can then use button 2
+(the middle button) on the mouse to edit the selected file, or you can
+move the text cursor over a selection and press [Enter].
+
+.P
+Hopefully, the interface should be fairly intuitive.
+
+.SS * Locating the cscope databases:
+
+.P
+This module will first use the variable, `cscope-database-regexps',
+to search for a suitable database directory. If a database location
+cannot be found using this variable then a search is begun at the
+variable, `cscope-initial-directory', if set, or the current
+directory otherwise. If the directory is not a cscope database
+directory then the directory's parent, parent's parent, etc. is
+searched until a cscope database directory is found, or the root
+directory is reached. If the root directory is reached, the current
+directory will be used.
+
+.P
+A cscope database directory is one in which EITHER a cscope database
+file (e.g., "cscope.out") OR a cscope file list (e.g.,
+"cscope.files") exists. If only "cscope.files" exists, the
+corresponding "cscope.out" will be automatically created by cscope
+when a search is done. By default, the cscope database file is called
+"cscope.out", but this can be changed (on a global basis) via the
+variable, `cscope-database-file'. There is limited support for cscope
+databases that are named differently than that given by
+`cscope-database-file', using the variable, `cscope-database-regexps'.
+
+.P
+Note that the variable, `cscope-database-regexps', is generally not
+needed, as the normal hierarchical database search is sufficient
+for placing and/or locating the cscope databases. However, there
+may be cases where it makes sense to place the cscope databases
+away from where the source files are kept; in this case, this
+variable is used to determine the mapping. One use for this
+variable is when you want to share the database file with other
+users; in this case, the database may be located in a directory
+separate from the source files.
+
+.P
+Setting the variable, `cscope-initial-directory', is useful when a
+search is to be expanded by specifying a cscope database directory
+that is a parent of the directory that this module would otherwise
+use. For example, consider a project that contains the following
+cscope database directories:
+
+.EX
+ /users/jdoe/sources
+ /users/jdoe/sources/proj1
+ /users/jdoe/sources/proj2
+.EE
+
+.P
+If a search is initiated from a .c file in /users/jdoe/sources/proj1
+then (assuming the variable, `cscope-database-regexps', is not set)
+/users/jdoe/sources/proj1 will be used as the cscope data base directory.
+Only matches in files in /users/jdoe/sources/proj1 will be found. This
+can be remedied by typing "C-c s a" and then "M-del" to remove single
+path element in order to use a cscope database directory of
+/users/jdoe/sources. Normal searching can be restored by typing "C-c s A".
+
+
+
+.SS * Keybindings:
+
+.P
+All keybindings use the "C-c s" prefix, but are usable only while
+editing a source file, or in the cscope results buffer:
+
+.TS
+lb li.
+C-c s s Find symbol.
+C-c s d Find global definition.
+C-c s g Find global definition (alternate binding).
+C-c s G Find global definition without prompting.
+C-c s c Find functions calling a function.
+C-c s C Find called functions (list functions called
+C-c s t Find text string.
+C-c s e Find egrep pattern.
+C-c s f Find a file.
+C-c s i Find files #including a file.
+.TE
+
+These pertain to navigation through the search results:
+
+.TS
+lb li.
+C-c s b Display *cscope* buffer.
+C-c s B Auto display *cscope* buffer toggle.
+C-c s n Next symbol.
+C-c s N Next file.
+C-c s p Previous symbol.
+C-c s P Previous file.
+C-c s u Pop mark.
+.TE
+
+.P
+These pertain to setting and unsetting the variable,
+`cscope-initial-directory', (location searched for the cscope database
+directory):
+
+.TS
+lb li.
+C-c s a Set initial directory.
+C-c s A Unset initial directory.
+.TE
+
+.P
+These pertain to cscope database maintenance:
+
+.TS
+lb li.
+C-c s L Create list of files to index.
+C-c s I Create list and index.
+C-c s E Edit list of files to index.
+C-c s W T{
+Locate this buffer's cscope directory.
+.br
+("W" -> "where")
+T}
+C-c s S T{
+Locate this buffer's cscope directory.
+.br
+("S" --> "show")
+T}
+C-c s T T{
+Locate this buffer's cscope directory.
+("T" --> "tell")
+T}
+C-c s D Dired this buffer's directory.
+.TE
+
+.SS * Advanced usage:
+
+.P
+If the source files are spread out over multiple directories,
+you've got a few choices:
+
+.P
+[ NOTE: you will need to have the script, "cscope-indexer",
+properly installed in order for the following to work. ]
+
+.P
+1. If all of the directories exist below a common directory
+(without any extraneous, unrelated subdirectories), you can tell
+this module to place the cscope database into the top-level,
+common directory. This assumes that you do not have any cscope
+databases in any of the subdirectories. If you do, you should
+delete them; otherwise, they will take precedence over the
+top-level database.
+
+.P
+If you do have cscope databases in any subdirectory, the
+following instructions may not work right.
+
+.P
+It's pretty easy to tell this module to use a top-level, common
+directory:
+
+.HP
+a. Make sure that the menu pick, "Cscope/Index recursively", is
+checked (the default value).
+
+.HP
+b. Select the menu pick, "Cscope/Create list and index", and
+specify the top-level directory. This will run the script,
+"cscope-indexer", in the background, so you can do other
+things if indexing takes a long time. A list of files to
+index will be created in "cscope.files", and the cscope
+database will be created in "cscope.out".
+
+.HP
+Once this has been done, you can then use the menu picks
+(described in "Basic usage", above) to search for symbols.
+
+.HP
+Note, however, that, if you add or delete source files, you'll
+have to either rebuild the database using the above procedure,
+or edit the file, "cscope.files" to add/delete the names of the
+source files. To edit this file, you can use the menu pick,
+"Cscope/Edit list of files to index".
+
+.P
+2. If most of the files exist below a common directory, but a few
+are outside, you can use the menu pick, "Cscope/Create list of
+files to index", and specify the top-level directory. Make sure
+that "Cscope/Index recursively", is checked before you do so,
+though. You can then edit the list of files to index using the
+menu pick, "Cscope/Edit list of files to index". Just edit the
+list to include any additional source files not already listed.
+
+.P
+Once you've created, edited, and saved the list, you can then
+use the menu picks described under "Basic usage", above, to
+search for symbols. The first time you search, you will have to
+wait a while for cscope to fully index the source files, though.
+If you have a lot of source files, you may want to manually run
+cscope to build the database:
+
+.EX
+ cd top-level-directory # or wherever
+ rm -f cscope.out # not always necessary
+ cscope -b
+.EE
+
+.P
+ 3. If the source files are scattered in many different, unrelated
+ places, you'll have to manually create cscope.files and put a
+ list of all pathnames into it. Then build the database using:
+
+.EX
+ cd some-directory # wherever cscope.files exists
+ rm -f cscope.out # not always necessary
+ cscope -b
+.EE
+
+.P
+Next, read the documentation for the variable,
+"cscope-database-regexps", and set it appropriately, such that
+the above-created cscope database will be referenced when you
+edit a related source file.
+
+.P
+Once this has been done, you can then use the menu picks
+described under "Basic usage", above, to search for symbols.
+
+.SS * Interesting configuration variables:
+
+.P
+.B "cscope-truncate-lines"
+.P
+This is the value of `truncate-lines' to use in cscope
+buffers; the default is the current setting of
+`truncate-lines'. This variable exists because it can be
+easier to read cscope buffers with truncated lines, while
+other buffers do not have truncated lines.
+
+.P
+.B "cscope-use-relative-paths"
+.P
+If non-nil, use relative paths when creating the list of files
+to index. The path is relative to the directory in which the
+cscope database will be created. If nil, absolute paths will
+be used. Absolute paths are good if you plan on moving the
+database to some other directory (if you do so, you'll
+probably also have to modify `cscope-database-regexps').
+Absolute paths may also be good if you share the database file
+with other users (you'll probably want to specify some
+automounted network path for this).
+
+.P
+.B "cscope-index-recursively"
+.P
+If non-nil, index files in the current directory and all
+subdirectories. If nil, only files in the current directory
+are indexed. This variable is only used when creating the
+list of files to index, or when creating the list of files and
+the corresponding cscope database.
+
+.P
+.B "cscope-name-line-width"
+.P
+The width of the combined "function name:line number" field in
+the cscope results buffer. If negative, the field is
+left-justified.
+
+.P
+.B "cscope-do-not-update-database"
+.P
+If non-nil, never check and/or update the cscope database when
+searching. Beware of setting this to non-nil, as this will
+disable automatic database creation, updating, and
+maintenance.
+
+.P
+.B "cscope-display-cscope-buffer"
+.P
+If non-nil, display the *cscope* buffer after each search
+(default). This variable can be set in order to reduce the
+number of keystrokes required to navigate through the matches.
+
+.P
+.B "cscope-database-regexps"
+.P
+List to force directory-to-cscope-database mappings.
+This is a list of `(REGEXP DBLIST [ DBLIST ... ])', where:
+
+.P
+.B "REGEXP"
+is a regular expression matched against the current buffer's
+current directory. The current buffer is typically some source file,
+and you're probably searching for some symbol in or related to this
+file. Basically, this regexp is used to relate the current directory
+to a cscope database. You need to start REGEXP with "^" if you want
+to match from the beginning of the current directory.
+
+.P
+.B "DBLIST"
+is a list that contains one or more of:
+
+.EX
+ ( DBDIR )
+ ( DBDIR ( OPTIONS ) )
+ ( t )
+ t
+.EE
+
+.P
+Here,
+.B DBDIR
+is a directory (or a file) that contains a cscope
+database. If DBDIR is a directory, then it is expected that the
+cscope database, if present, has the filename given by the variable,
+`cscope-database-file'; if DBDIR is a file, then DBDIR is the path
+name to a cscope database file (which does not have to be the same as
+that given by `cscope-database-file'). If only DBDIR is specified,
+then that cscope database will be searched without any additional
+cscope command-line options. If OPTIONS is given, then OPTIONS is a
+list of strings, where each string is a separate cscope command-line
+option.
+
+.P
+ In the case of "( t )", this specifies that the search is to use the
+ normal hierarchical database search. This option is used to
+ explicitly search using the hierarchical database search either before
+ or after other cscope database directories.
+
+.P
+ If "t" is specified (not inside a list), this tells the searching
+ mechanism to stop searching if a match has been found (at the point
+ where "t" is encountered). This is useful for those projects that
+ consist of many subprojects. You can specify the most-used
+ subprojects first, followed by a "t", and then followed by a master
+ cscope database directory that covers all subprojects. This will
+ cause the most-used subprojects to be searched first (hopefully
+ quickly), and the search will then stop if a match was found. If not,
+ the search will continue using the master cscope database directory.
+
+.P
+ Here, `cscope-database-regexps' is generally not used, as the normal
+ hierarchical database search is sufficient for placing and/or locating
+ the cscope databases. However, there may be cases where it makes
+ sense to place the cscope databases away from where the source files
+ are kept; in this case, this variable is used to determine the
+ mapping.
+
+.P
+ This module searches for the cscope databases by first using this
+ variable; if a database location cannot be found using this variable,
+ then the current directory is searched, then the parent, then the
+ parent's parent, until a cscope database directory is found, or the
+ root directory is reached. If the root directory is reached, the
+ current directory will be used.
+
+.P
+A cscope database directory is one in which EITHER a cscope database
+file (e.g., "cscope.out") OR a cscope file list (e.g.,
+"cscope.files") exists. If only "cscope.files" exists, the
+corresponding "cscope.out" will be automatically created by cscope
+when a search is done. By default, the cscope database file is called
+"cscope.out", but this can be changed (on a global basis) via the
+variable, `cscope-database-file'. There is limited support for cscope
+databases that are named differently than that given by
+`cscope-database-file', using the variable, `cscope-database-regexps'.
+
+.P
+Here is an example of `cscope-database-regexps':
+
+.EX
+ (setq cscope-database-regexps
+ '(
+ ( "^/users/jdoe/sources/proj1"
+ ( t )
+ ( "/users/jdoe/sources/proj2")
+ ( "/users/jdoe/sources/proj3/mycscope.out")
+ ( "/users/jdoe/sources/proj4")
+ t
+ ( "/some/master/directory" ("-d" "-I/usr/local/include") )
+ )
+ ( "^/users/jdoe/sources/gnome/"
+ ( "/master/gnome/database" ("-d") )
+ )
+ ))
+.EE
+
+.P
+If the current buffer's directory matches the regexp,
+"^/users/jdoe/sources/proj1", then the following search will be
+done:
+
+.TP
+1. First, the normal hierarchical database search will be used to
+locate a cscope database.
+
+.TP
+2. Next, searches will be done using the cscope database
+directories, "/users/jdoe/sources/proj2",
+"/users/jdoe/sources/proj3/mycscope.out", and
+"/users/jdoe/sources/proj4". Note that, instead of the file,
+"cscope.out", the file, "mycscope.out", will be used in the
+directory "/users/jdoe/sources/proj3".
+
+.TP
+3. If a match was found, searching will stop.
+
+.TP
+4. If a match was not found, searching will be done using
+"/some/master/directory", and the command-line options "-d"
+and "-I/usr/local/include" will be passed to cscope.
+
+.TP
+If the current buffer's directory matches the regexp,
+"^/users/jdoe/sources/gnome", then the following search will be
+done:
+
+.TP
+The search will be done only using the directory,
+"/master/gnome/database". The "-d" option will be passed to
+cscope.
+
+.TP
+If the current buffer's directory does not match any of the above
+regexps, then only the normal hierarchical database search will be
+done.
+
+.P
+.SS * Other notes:
+
+.P
+1. The script, "cscope-indexer", uses a sed command to determine
+what is and is not a C/C++/lex/yacc source file. It's idea of a
+source file may not correspond to yours.
+
+.P
+2. This module is called, "xcscope", because someone else has
+already written a "cscope.el" (although it's quite old).
+
+.SH KNOWN BUGS:
+
+.P
+1. Cannot handle whitespace in directory or file names.
+
+.P
+2. By default, colored faces are used to display results. If you happen
+to use a black background, part of the results may be invisible
+(because the foreground color may be black, too). There are at least
+two solutions for this:
+
+.TP
+.BI "2a. Turn off colored faces, by setting `cscope-use-face' to `nil', eg:"
+.TP
+.BI "(setq cscope-use-face nil)"
+
+.TP
+.BI " 2b. Explicitly set colors for the faces used by cscope. The faces are"
+
+.EX
+ cscope-file-face
+ cscope-function-face
+ cscope-line-number-face
+ cscope-line-face
+ cscope-mouse-face
+.EE
+
+.TP
+The face most likely to cause problems (e.g., black-on-black
+color) is `cscope-line-face'.
+
+.P
+3. The support for cscope databases different from that specified by
+`cscope-database-file' is quirky. If the file does not exist, it
+will not be auto-created (unlike files names by
+`cscope-database-file'). You can manually force the file to be
+created by using touch(1) to create a zero-length file; the
+database will be created the next time a search is done.
diff --git a/install-sh b/install-sh
new file mode 100755
index 0000000..a9244eb
--- /dev/null
+++ b/install-sh
@@ -0,0 +1,527 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2011-01-19.21; # 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.
+
+nl='
+'
+IFS=" "" $nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi
+
+# 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_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'
+
+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
+no_target_directory=
+
+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
+ *' '* | *' '* | *'
+'* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
+
+ -o) chowncmd="$chownprog $2"
+ shift;;
+
+ -s) stripcmd=$stripprog;;
+
+ -t) dst_arg=$2
+ # Protect names problematic for `test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
+
+ -T) no_target_directory=true;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ --) shift
+ break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
+ esac
+ shift
+done
+
+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
+ 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 -n "$no_target_directory"; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
+ fi
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+ (dirname "$dst") 2>/dev/null ||
+ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$dst" : 'X\(//\)[^/]' \| \
+ X"$dst" : 'X\(//\)$' \| \
+ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ echo X"$dst" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'
+ `
+
+ 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-writeable 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
+
+ eval "$initialize_posix_glob"
+
+ oIFS=$IFS
+ IFS=/
+ $posix_glob set -f
+ set fnord $dstdir
+ shift
+ $posix_glob 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` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ $posix_glob 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/missing b/missing
new file mode 100755
index 0000000..86a8fc3
--- /dev/null
+++ b/missing
@@ -0,0 +1,331 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2012-01-06.13; # UTC
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@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
+
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+ configure_ac=configure.ac
+else
+ configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case $1 in
+--run)
+ # Try to run requested program, and just exit if it succeeds.
+ run=
+ shift
+ "$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
+ ;;
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+ --run try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ autom4te touch the output file, or create a stub one
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ help2man touch the output file
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+
+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@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
+
+# normalize program name to check for.
+program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program). This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+ lex*|yacc*)
+ # Not GNU programs, they don't have --version.
+ ;;
+
+ *)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running `$TOOL --version' or `$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
+ fi
+ ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $program in
+ aclocal*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`${configure_ac}'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acconfig.h' or \`${configure_ac}'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case $f in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ autom4te*)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them.
+ You can get \`$1' as part of \`Autoconf' from any GNU
+ archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo "#! /bin/sh"
+ echo "# Created by GNU Automake missing as a replacement of"
+ echo "# $ $@"
+ echo "exit 0"
+ chmod +x $file
+ exit 1
+ fi
+ ;;
+
+ bison*|yacc*)
+ echo 1>&2 "\
+WARNING: \`$1' $msg. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if test $# -ne 1; then
+ eval LASTARG=\${$#}
+ case $LASTARG in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f y.tab.h; then
+ echo >y.tab.h
+ fi
+ if test ! -f y.tab.c; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex*|flex*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if test $# -ne 1; then
+ eval LASTARG=\${$#}
+ case $LASTARG in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f lex.yy.c; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ help2man*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a dependency of a manual page. You may need the
+ \`Help2man' package in order for those modifications to take
+ effect. You can get \`Help2man' from any GNU archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo ".ab help2man is required to generate this page"
+ exit $?
+ fi
+ ;;
+
+ makeinfo*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -z "$file"; then
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '
+ /^@setfilename/{
+ s/.* \([^ ]*\) *$/\1/
+ p
+ q
+ }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+ fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
+ touch $file
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequisites for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# 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/mkinstalldirs b/mkinstalldirs
new file mode 100755
index 0000000..4191a45
--- /dev/null
+++ b/mkinstalldirs
@@ -0,0 +1,162 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+
+scriptversion=2009-04-28.21; # UTC
+
+# Original author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain.
+#
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+IFS=" "" $nl"
+errstatus=0
+dirmode=
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
+
+Create each directory DIR (with mode MODE, if specified), including all
+leading file name components.
+
+Report bugs to <bug-automake@gnu.org>."
+
+# process command line arguments
+while test $# -gt 0 ; do
+ case $1 in
+ -h | --help | --h*) # -h for help
+ echo "$usage"
+ exit $?
+ ;;
+ -m) # -m PERM arg
+ shift
+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+ dirmode=$1
+ shift
+ ;;
+ --version)
+ echo "$0 $scriptversion"
+ exit $?
+ ;;
+ --) # stop option processing
+ shift
+ break
+ ;;
+ -*) # unknown option
+ echo "$usage" 1>&2
+ exit 1
+ ;;
+ *) # first non-opt arg
+ break
+ ;;
+ esac
+done
+
+for file
+do
+ if test -d "$file"; then
+ shift
+ else
+ break
+ fi
+done
+
+case $# in
+ 0) exit 0 ;;
+esac
+
+# Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
+# mkdir -p a/c at the same time, both will detect that a is missing,
+# one will create a, then the other will try to create a and die with
+# a "File exists" error. This is a problem when calling mkinstalldirs
+# from a parallel make. We use --version in the probe to restrict
+# ourselves to GNU mkdir, which is thread-safe.
+case $dirmode in
+ '')
+ if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ echo "mkdir -p -- $*"
+ exec mkdir -p -- "$@"
+ else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ test -d ./-p && rmdir ./-p
+ test -d ./--version && rmdir ./--version
+ fi
+ ;;
+ *)
+ if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
+ test ! -d ./--version; then
+ echo "mkdir -m $dirmode -p -- $*"
+ exec mkdir -m "$dirmode" -p -- "$@"
+ else
+ # Clean up after NextStep and OpenStep mkdir.
+ for d in ./-m ./-p ./--version "./$dirmode";
+ do
+ test -d $d && rmdir $d
+ done
+ fi
+ ;;
+esac
+
+for file
+do
+ case $file in
+ /*) pathcomp=/ ;;
+ *) pathcomp= ;;
+ esac
+ oIFS=$IFS
+ IFS=/
+ set fnord $file
+ shift
+ IFS=$oIFS
+
+ for d
+ do
+ test "x$d" = x && continue
+
+ pathcomp=$pathcomp$d
+ case $pathcomp in
+ -*) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ else
+ if test ! -z "$dirmode"; then
+ echo "chmod $dirmode $pathcomp"
+ lasterr=
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
+ fi
+ fi
+
+ pathcomp=$pathcomp/
+ done
+done
+
+exit $errstatus
+
+# 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/packages/MSDOS/README b/packages/MSDOS/README
new file mode 100644
index 0000000..e026e05
--- /dev/null
+++ b/packages/MSDOS/README
@@ -0,0 +1,74 @@
+
+------------------------------------
+ cscope for DOS using DJGPP
+------------------------------------
+
+*) You need a rather recent DJGPP version and tools
+ installed. For running cscope on DOS, be sure you
+ have:
+
+ * GNU ed for cscope's automated editing of files. It's quite likely
+ you didn't have this installed, unless you're a collector of Unix
+ tools.
+
+ * an editor or viewer to be used as a child program when you open
+ a match, inside cscope. DJGPP-compiled versions, if possible.
+
+ Choose either
+
+ -- `less' if you're content with viewing the file
+ -- some version of `vi' (VIM, Elvis, or NVI) use cscope in it's
+ "classical" way
+ -- GNU Emacs for the full glory :-)
+
+ Set the environment variable CSCOPE_EDITOR or EDITOR to the name
+ of the editor you want to use. You may want to create a [cscope]
+ section in your djgpp.env file, if you know how to do it.
+
+ For more details what cscope is, and how to use it, see the
+ documentation in the root directory of the cscope sources, or the
+ man page.
+
+*) For compiling cscope from sources, you need a much more complete
+ collection of GNU development and commandline tools, in addition
+ to the above, and the obvious GCC and binutils:
+
+ * bash
+ * make
+ * flex
+ * bison
+ * sed
+ * patch
+ * fileutils (cp, ln, ...)
+ * textutils (cat)
+
+ Optionally, if you plan to modify the sources.
+
+ * autoconf
+ * automake
+ * Perl
+
+ These are the ones I'm sure you need --- I may have overlooked some.
+
+ The DJGPP source packages is already configured, so you can just
+ run 'make' to get the package. Then
+
+ make install prefix=d:/djgpp"
+
+ (or wherever else your DJGPP is) to install it.
+
+ Or cd to the top source directory and execute the supplied
+ djmake.bat:
+
+ cd d:\djgpp\contrib\cscope
+ packages\msdos\djmake.bat
+
+ and watch it compile. This will be necessary if you made any
+ substantial changes to the sources.
+
+Have fun with it. In case of problem, mail to djgpp@delorie.com (or the
+attached Usenet newsgroup) or file a bug report at cscope's page on
+Sourceforge.net.
+
+Hans-Bernhard Br"oker (broeker@physik.rwth-aachen.de)
+ (Hans-Bernhard.Broeker@epost.de)
diff --git a/packages/MSDOS/djmake.bat b/packages/MSDOS/djmake.bat
new file mode 100644
index 0000000..260bb11
--- /dev/null
+++ b/packages/MSDOS/djmake.bat
@@ -0,0 +1,22 @@
+@echo off
+
+if exist src\fscanner.l goto dir_okay
+echo !!!! Must run this batch file from the main source directory!
+exit
+
+:dir_okay
+
+echo ---- Start by patching the ylwrap script to avoid problems
+echo with "ln -s":
+
+if exist src\ylwrap patch -p0 -i packages/MSDOS/ylwrap.pat
+if exist ylwrap patch -p1 -i packages/MSDOS/ylwrap.pat
+
+echo ---- Now configure and make it.
+echo -- NOTE --: this assumes you have pdcurses installed!
+echo -- NOTE --: Will be using '-f' mode of flex, for faster scanning
+bash configure
+make CURSES_LIBS=-lpdcurses LFLAGS="-f8B"
+
+echo ---- You may now call "make install", if desired.
+echo -- DONE --
diff --git a/packages/MSDOS/ylwrap.pat b/packages/MSDOS/ylwrap.pat
new file mode 100644
index 0000000..f60049d
--- /dev/null
+++ b/packages/MSDOS/ylwrap.pat
@@ -0,0 +1,11 @@
+--- src/ylwrap Tue Jun 26 15:23:52 2001
++++ src.DOS/ylwrap Thu Jun 28 17:39:31 2001
+@@ -80,7 +80,7 @@
+ ;;
+ *)
+ # Make a symbolic link, hard link or hardcopy.
+- ln -s ../"$input" . > /dev/null 2>&1 || ln ../"$input" . > /dev/null 2>&1 || cp ../"$input" .
++ ln ../"$input" . > /dev/null 2>&1 || cp ../"$input" .
+ ;;
+ esac
+ $prog ${1+"$@"} "$input"
diff --git a/packages/cscope.spec b/packages/cscope.spec
new file mode 100644
index 0000000..43ac5fa
--- /dev/null
+++ b/packages/cscope.spec
@@ -0,0 +1,63 @@
+Summary: cscope is an interactive, screen-oriented tool that allows the user to browse through C source files for specified elements of code.
+Name: cscope
+Version: 16.0a
+Release: 1
+Epoch: 1
+License: BSD
+Group: Development/Tools
+Source: cscope-16.0a.tar.gz
+URL: http://cscope.sourceforge.net
+Buildroot: %{_tmppath}/%{name}-root
+
+%description
+cscope is an interactive, screen-oriented tool that allows the user to browse through C source files for specified elements of code.
+
+%prep
+%setup -q
+
+%build
+%configure
+make
+
+%install
+rm -rf %{buildroot}
+%makeinstall
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root)
+%doc TODO COPYING ChangeLog AUTHORS README NEWS INSTALL
+%{_bindir}/*
+%{_mandir}/man1/*
+
+%changelog
+* Sun Mar 21 2004 Adam Monsen <adamm@wazamatta.com>
+- updated packages/cscope.spec to use more RPM macros and shell globs.
+ Should be more generic/robust/up-to-date/etc.
+* Mon Jul 2 2001 Cscope development team <cscope-devel@lists.sourceforge.net>
+- Version 15.3 release
+- New flex scanner
+- XEmacs support improvements
+- Vim support improvements
+- 64 bit fixes
+- MSDOS support
+- More editing keys
+- Webcscope added to contrib
+* Wed Nov 20 2000 Cscope development team <cscope-devel@lists.sourceforge.net>
+- Version 15.1 release
+- New menu and line matching interface
+- Support for up to 62 (up from 9) matching lines on screen
+- Numerous fixes
+- Updated documentation
+* Tue May 15 2000 Cscope development team <cscope-devel@lists.sourceforge.net>
+- Version 15.0bl2 (build 2) pre-alpha release
+- Fixes and enhancements
+- Updated documentation
+- Autoconf/automake support
+- directory restructuring
+* Sun Apr 16 2000 Petr Sorfa <petrs@sco.com>
+- Initial Open Source release
+- Ported to GNU environment
+- Created rpm package
diff --git a/packages/uw7/Prototype b/packages/uw7/Prototype
new file mode 100644
index 0000000..e301a03
--- /dev/null
+++ b/packages/uw7/Prototype
@@ -0,0 +1,11 @@
+i pkginfo
+d none /usr ? ? ?
+d none /usr/local 0755 root bin
+d none /usr/local/bin 0755 root bin
+d none /usr/local/man 0755 root bin
+d none /usr/local/man/man1 0755 root bin
+! search /usr/local/bin
+f none /usr/local/bin/cscope 0755 root bin
+f none /usr/local/bin/ocs 0755 root bin
+! search /usr/local/man/man1
+f none /usr/local/man/man1/cscope.1 0644 root bin
diff --git a/packages/uw7/cscope_pkg.sh b/packages/uw7/cscope_pkg.sh
new file mode 100644
index 0000000..6c0c372
--- /dev/null
+++ b/packages/uw7/cscope_pkg.sh
@@ -0,0 +1,98 @@
+#!/bin/sh
+
+#===========================================================================
+# Copyright (c) 1998-2000, The Santa Cruz Operation
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# *Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+#
+# *Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# *Neither name of The Santa Cruz Operation nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+# DAMAGE.
+# =========================================================================*/
+
+# This simple script creates an UW7 pkg for cscope
+# Execute these commands as root
+
+BINDIR=/usr/local/bin/
+LIBDIR=/usr/local/lib/
+MANDIR=/usr/local/man/man1/
+SPOOLDIR=/var/spool/pkg/
+
+# Check that the user is root
+
+if [ `id -un` != "root" ]
+then
+ echo "ERROR: Need to be root to build package" >&2
+ exit 1;
+fi
+
+# Check that cscope has been installed
+if [ ! -f $BINDIR/cscope ]
+then
+ echo "ERROR: cscope not installed" >&2
+ exit 1
+fi
+
+if [ ! -f $BINDIR/ocs ]
+then
+ echo "ERROR: ocs not installed" >&2
+ exit 1
+fi
+
+if [ ! -f $MANDIR/cscope.1 ]
+then
+ echo "ERROR: cscope man page not installed" >&2
+ exit 1
+fi
+
+# Check that there is no current cscope pkg spooled
+
+if [ -d $SPOOLDIR/cscope ]
+then
+ echo "ERROR: cscope is currently spooled in $SPOOLDIR/cscope." >&2
+ echo " Please remove this directory and its contents to" >&2
+ echo " continue." >&2
+ exit 1
+fi
+
+# Make the spool dir entry
+# Note that cscope must be already installed
+echo "INFO: Spooling package" >&2
+pkgmk
+if [ $? -ne 0 ]
+then
+ echo "ERROR: An error occurred during spooling the package" >&2
+ exit 1
+fi
+
+# Install the spool dir cscope entry into the package
+echo "INFO: creating package" >&2
+pkgtrans -s /var/spool/pkg cscope.16.0a.pkg cscope
+if [ $? -ne 0 ]
+then
+ echo "ERROR: An error occurred while creating the package" >&2
+ exit 1
+fi
+
diff --git a/packages/uw7/pkginfo b/packages/uw7/pkginfo
new file mode 100644
index 0000000..9e7299e
--- /dev/null
+++ b/packages/uw7/pkginfo
@@ -0,0 +1,6 @@
+PKG="cscope"
+NAME="cscope"
+VERSION="16.0a UW7.1.1 07/03/2001"
+CATEGORY="utilities"
+ARCH=i386
+PSTAMP=
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..88f55ad
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,55 @@
+## Process this file with automake to produce Makefile.in
+
+if HAS_GNOME
+if USING_GNOME2
+GNOMECFLAGS = `pkg-config --cflags libgnomeui-2.0 libpanelapplet-2.0 libglade-2.0`
+GNOMELINKAGE = `pkg-config --libs libgnomeui-2.0 libpanelapplet-2.0 libglade-2.0|sed -e 's/-lz //'`
+else
+GNOMECFLAGS = `gnome-config --cflags gnomeui applets libglade`
+GNOMELINKAGE = `gnome-config --libs gnomeui applets libglade|sed -e 's/-lz //'`
+endif
+
+EXTRA_PROGRAMS = gscope
+endif
+bin_PROGRAMS = cscope
+
+if USING_LEX
+LEXER_SOURCE=scanner.l
+else
+LEXER_SOURCE=fscanner.l
+endif
+
+cscope_SOURCES = $(LEXER_SOURCE) egrep.y alloc.c alloc.h basename.c build.c \
+build.h command.c compath.c constants.h crossref.c dir.c display.c edit.c \
+exec.c find.c global.h help.c history.c input.c invlib.c invlib.h library.h \
+logdir.c lookup.c lookup.h main.c mouse.c mygetenv.c mypopen.c scanner.h \
+version.h vp.h vpaccess.c vpfopen.c vpinit.c vpopen.c
+
+EXTRA_cscope_SOURCES = scanner.l fscanner.l
+
+LEXLIB = @LEXLIB@
+
+cscope_LDADD = $(CURSES_LIBS) $(LEXLIB) $(LIBOBJS)
+
+AM_CPPFLAGS = $(CURSES_INCLUDEDIR)
+
+## Hack to clean the generated files and not include them in a "make dist".
+CLEANFILES = scanner.c fscanner.c egrep.c
+#dist-hook:
+# rm -f $(distdir)/scanner.c $(distdir)/fscanner.c $(distdir)/egrep.c
+
+EXTRA_DIST = emacs.e gmacs.ml
+
+if HAS_GNOME
+GNOME_SWITCH=-DUSING_GNOME_UI
+
+## if we compile gscope under Linux, we need to supply libglade the callback pointers
+if GNOME_LINUX
+GNOME_LINUX_FLAG = "-rdynamic"
+endif
+
+gscope_CFLAGS = $(GNOMECFLAGS) $(GNOME_SWITCH)
+gscope_LDADD = $(CURSES_LIBS) $(LEXLIB)
+gscope_SOURCES = gscope.c $(cscope_SOURCES)
+gscope_LDFLAGS = $(GNOMELINKAGE) $(GNOME_LINUX_FLAG)
+endif
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644
index 0000000..fbf191c
--- /dev/null
+++ b/src/Makefile.in
@@ -0,0 +1,1029 @@
+# Makefile.in generated by automake 1.11.3 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+# Foundation, Inc.
+# 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.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+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@
+@HAS_GNOME_TRUE@EXTRA_PROGRAMS = gscope$(EXEEXT)
+bin_PROGRAMS = cscope$(EXEEXT)
+subdir = src
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in egrep.c \
+ fscanner.c scanner.c snprintf.c
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+ $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am__cscope_SOURCES_DIST = fscanner.l scanner.l egrep.y alloc.c alloc.h \
+ basename.c build.c build.h command.c compath.c constants.h \
+ crossref.c dir.c display.c edit.c exec.c find.c global.h \
+ help.c history.c input.c invlib.c invlib.h library.h logdir.c \
+ lookup.c lookup.h main.c mouse.c mygetenv.c mypopen.c \
+ scanner.h version.h vp.h vpaccess.c vpfopen.c vpinit.c \
+ vpopen.c
+@USING_LEX_FALSE@am__objects_1 = fscanner.$(OBJEXT)
+@USING_LEX_TRUE@am__objects_1 = scanner.$(OBJEXT)
+am_cscope_OBJECTS = $(am__objects_1) egrep.$(OBJEXT) alloc.$(OBJEXT) \
+ basename.$(OBJEXT) build.$(OBJEXT) command.$(OBJEXT) \
+ compath.$(OBJEXT) crossref.$(OBJEXT) dir.$(OBJEXT) \
+ display.$(OBJEXT) edit.$(OBJEXT) exec.$(OBJEXT) find.$(OBJEXT) \
+ help.$(OBJEXT) history.$(OBJEXT) input.$(OBJEXT) \
+ invlib.$(OBJEXT) logdir.$(OBJEXT) lookup.$(OBJEXT) \
+ main.$(OBJEXT) mouse.$(OBJEXT) mygetenv.$(OBJEXT) \
+ mypopen.$(OBJEXT) vpaccess.$(OBJEXT) vpfopen.$(OBJEXT) \
+ vpinit.$(OBJEXT) vpopen.$(OBJEXT)
+cscope_OBJECTS = $(am_cscope_OBJECTS)
+am__DEPENDENCIES_1 =
+cscope_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(LIBOBJS)
+am__gscope_SOURCES_DIST = gscope.c fscanner.l scanner.l egrep.y \
+ alloc.c alloc.h basename.c build.c build.h command.c compath.c \
+ constants.h crossref.c dir.c display.c edit.c exec.c find.c \
+ global.h help.c history.c input.c invlib.c invlib.h library.h \
+ logdir.c lookup.c lookup.h main.c mouse.c mygetenv.c mypopen.c \
+ scanner.h version.h vp.h vpaccess.c vpfopen.c vpinit.c \
+ vpopen.c
+@USING_LEX_FALSE@am__objects_2 = gscope-fscanner.$(OBJEXT)
+@USING_LEX_TRUE@am__objects_2 = gscope-scanner.$(OBJEXT)
+am__objects_3 = $(am__objects_2) gscope-egrep.$(OBJEXT) \
+ gscope-alloc.$(OBJEXT) gscope-basename.$(OBJEXT) \
+ gscope-build.$(OBJEXT) gscope-command.$(OBJEXT) \
+ gscope-compath.$(OBJEXT) gscope-crossref.$(OBJEXT) \
+ gscope-dir.$(OBJEXT) gscope-display.$(OBJEXT) \
+ gscope-edit.$(OBJEXT) gscope-exec.$(OBJEXT) \
+ gscope-find.$(OBJEXT) gscope-help.$(OBJEXT) \
+ gscope-history.$(OBJEXT) gscope-input.$(OBJEXT) \
+ gscope-invlib.$(OBJEXT) gscope-logdir.$(OBJEXT) \
+ gscope-lookup.$(OBJEXT) gscope-main.$(OBJEXT) \
+ gscope-mouse.$(OBJEXT) gscope-mygetenv.$(OBJEXT) \
+ gscope-mypopen.$(OBJEXT) gscope-vpaccess.$(OBJEXT) \
+ gscope-vpfopen.$(OBJEXT) gscope-vpinit.$(OBJEXT) \
+ gscope-vpopen.$(OBJEXT)
+@HAS_GNOME_TRUE@am_gscope_OBJECTS = gscope-gscope.$(OBJEXT) \
+@HAS_GNOME_TRUE@ $(am__objects_3)
+gscope_OBJECTS = $(am_gscope_OBJECTS)
+@HAS_GNOME_TRUE@gscope_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+@HAS_GNOME_TRUE@ $(am__DEPENDENCIES_1)
+gscope_LINK = $(CCLD) $(gscope_CFLAGS) $(CFLAGS) $(gscope_LDFLAGS) \
+ $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+LEXCOMPILE = $(LEX) $(AM_LFLAGS) $(LFLAGS)
+YLWRAP = $(top_srcdir)/ylwrap
+YACCCOMPILE = $(YACC) $(AM_YFLAGS) $(YFLAGS)
+SOURCES = $(cscope_SOURCES) $(EXTRA_cscope_SOURCES) $(gscope_SOURCES)
+DIST_SOURCES = $(am__cscope_SOURCES_DIST) $(EXTRA_cscope_SOURCES) \
+ $(am__gscope_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURSES_INCLUDEDIR = @CURSES_INCLUDEDIR@
+CURSES_LIBS = @CURSES_LIBS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+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@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+YACC = @YACC@
+YFLAGS = @YFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+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@
+gnome1 = @gnome1@
+gnome2 = @gnome2@
+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_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@HAS_GNOME_TRUE@@USING_GNOME2_FALSE@GNOMECFLAGS = `gnome-config --cflags gnomeui applets libglade`
+@HAS_GNOME_TRUE@@USING_GNOME2_TRUE@GNOMECFLAGS = `pkg-config --cflags libgnomeui-2.0 libpanelapplet-2.0 libglade-2.0`
+@HAS_GNOME_TRUE@@USING_GNOME2_FALSE@GNOMELINKAGE = `gnome-config --libs gnomeui applets libglade|sed -e 's/-lz //'`
+@HAS_GNOME_TRUE@@USING_GNOME2_TRUE@GNOMELINKAGE = `pkg-config --libs libgnomeui-2.0 libpanelapplet-2.0 libglade-2.0|sed -e 's/-lz //'`
+@USING_LEX_FALSE@LEXER_SOURCE = fscanner.l
+@USING_LEX_TRUE@LEXER_SOURCE = scanner.l
+cscope_SOURCES = $(LEXER_SOURCE) egrep.y alloc.c alloc.h basename.c build.c \
+build.h command.c compath.c constants.h crossref.c dir.c display.c edit.c \
+exec.c find.c global.h help.c history.c input.c invlib.c invlib.h library.h \
+logdir.c lookup.c lookup.h main.c mouse.c mygetenv.c mypopen.c scanner.h \
+version.h vp.h vpaccess.c vpfopen.c vpinit.c vpopen.c
+
+EXTRA_cscope_SOURCES = scanner.l fscanner.l
+cscope_LDADD = $(CURSES_LIBS) $(LEXLIB) $(LIBOBJS)
+AM_CPPFLAGS = $(CURSES_INCLUDEDIR)
+CLEANFILES = scanner.c fscanner.c egrep.c
+#dist-hook:
+# rm -f $(distdir)/scanner.c $(distdir)/fscanner.c $(distdir)/egrep.c
+EXTRA_DIST = emacs.e gmacs.ml
+@HAS_GNOME_TRUE@GNOME_SWITCH = -DUSING_GNOME_UI
+@GNOME_LINUX_TRUE@@HAS_GNOME_TRUE@GNOME_LINUX_FLAG = "-rdynamic"
+@HAS_GNOME_TRUE@gscope_CFLAGS = $(GNOMECFLAGS) $(GNOME_SWITCH)
+@HAS_GNOME_TRUE@gscope_LDADD = $(CURSES_LIBS) $(LEXLIB)
+@HAS_GNOME_TRUE@gscope_SOURCES = gscope.c $(cscope_SOURCES)
+@HAS_GNOME_TRUE@gscope_LDFLAGS = $(GNOMELINKAGE) $(GNOME_LINUX_FLAG)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .l .o .obj .y
+$(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 src/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu src/Makefile
+.PRECIOUS: 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):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p; \
+ 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) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(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:
+ -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+cscope$(EXEEXT): $(cscope_OBJECTS) $(cscope_DEPENDENCIES) $(EXTRA_cscope_DEPENDENCIES)
+ @rm -f cscope$(EXEEXT)
+ $(LINK) $(cscope_OBJECTS) $(cscope_LDADD) $(LIBS)
+gscope$(EXEEXT): $(gscope_OBJECTS) $(gscope_DEPENDENCIES) $(EXTRA_gscope_DEPENDENCIES)
+ @rm -f gscope$(EXEEXT)
+ $(gscope_LINK) $(gscope_OBJECTS) $(gscope_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/snprintf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/build.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/command.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compath.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crossref.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/display.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/egrep.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/find.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fscanner.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-alloc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-basename.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-build.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-command.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-compath.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-crossref.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-dir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-display.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-edit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-egrep.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-exec.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-find.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-fscanner.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-gscope.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-help.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-history.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-input.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-invlib.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-logdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-lookup.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-mouse.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-mygetenv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-mypopen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-scanner.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-vpaccess.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-vpfopen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-vpinit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gscope-vpopen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/help.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/history.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/input.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/invlib.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lookup.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mouse.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mygetenv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mypopen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanner.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vpaccess.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vpfopen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vpinit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vpopen.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+gscope-gscope.o: gscope.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-gscope.o -MD -MP -MF $(DEPDIR)/gscope-gscope.Tpo -c -o gscope-gscope.o `test -f 'gscope.c' || echo '$(srcdir)/'`gscope.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-gscope.Tpo $(DEPDIR)/gscope-gscope.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gscope.c' object='gscope-gscope.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-gscope.o `test -f 'gscope.c' || echo '$(srcdir)/'`gscope.c
+
+gscope-gscope.obj: gscope.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-gscope.obj -MD -MP -MF $(DEPDIR)/gscope-gscope.Tpo -c -o gscope-gscope.obj `if test -f 'gscope.c'; then $(CYGPATH_W) 'gscope.c'; else $(CYGPATH_W) '$(srcdir)/gscope.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-gscope.Tpo $(DEPDIR)/gscope-gscope.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gscope.c' object='gscope-gscope.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-gscope.obj `if test -f 'gscope.c'; then $(CYGPATH_W) 'gscope.c'; else $(CYGPATH_W) '$(srcdir)/gscope.c'; fi`
+
+gscope-fscanner.o: fscanner.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-fscanner.o -MD -MP -MF $(DEPDIR)/gscope-fscanner.Tpo -c -o gscope-fscanner.o `test -f 'fscanner.c' || echo '$(srcdir)/'`fscanner.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-fscanner.Tpo $(DEPDIR)/gscope-fscanner.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fscanner.c' object='gscope-fscanner.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-fscanner.o `test -f 'fscanner.c' || echo '$(srcdir)/'`fscanner.c
+
+gscope-fscanner.obj: fscanner.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-fscanner.obj -MD -MP -MF $(DEPDIR)/gscope-fscanner.Tpo -c -o gscope-fscanner.obj `if test -f 'fscanner.c'; then $(CYGPATH_W) 'fscanner.c'; else $(CYGPATH_W) '$(srcdir)/fscanner.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-fscanner.Tpo $(DEPDIR)/gscope-fscanner.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fscanner.c' object='gscope-fscanner.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-fscanner.obj `if test -f 'fscanner.c'; then $(CYGPATH_W) 'fscanner.c'; else $(CYGPATH_W) '$(srcdir)/fscanner.c'; fi`
+
+gscope-scanner.o: scanner.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-scanner.o -MD -MP -MF $(DEPDIR)/gscope-scanner.Tpo -c -o gscope-scanner.o `test -f 'scanner.c' || echo '$(srcdir)/'`scanner.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-scanner.Tpo $(DEPDIR)/gscope-scanner.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='scanner.c' object='gscope-scanner.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-scanner.o `test -f 'scanner.c' || echo '$(srcdir)/'`scanner.c
+
+gscope-scanner.obj: scanner.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-scanner.obj -MD -MP -MF $(DEPDIR)/gscope-scanner.Tpo -c -o gscope-scanner.obj `if test -f 'scanner.c'; then $(CYGPATH_W) 'scanner.c'; else $(CYGPATH_W) '$(srcdir)/scanner.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-scanner.Tpo $(DEPDIR)/gscope-scanner.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='scanner.c' object='gscope-scanner.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-scanner.obj `if test -f 'scanner.c'; then $(CYGPATH_W) 'scanner.c'; else $(CYGPATH_W) '$(srcdir)/scanner.c'; fi`
+
+gscope-egrep.o: egrep.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-egrep.o -MD -MP -MF $(DEPDIR)/gscope-egrep.Tpo -c -o gscope-egrep.o `test -f 'egrep.c' || echo '$(srcdir)/'`egrep.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-egrep.Tpo $(DEPDIR)/gscope-egrep.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='egrep.c' object='gscope-egrep.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-egrep.o `test -f 'egrep.c' || echo '$(srcdir)/'`egrep.c
+
+gscope-egrep.obj: egrep.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-egrep.obj -MD -MP -MF $(DEPDIR)/gscope-egrep.Tpo -c -o gscope-egrep.obj `if test -f 'egrep.c'; then $(CYGPATH_W) 'egrep.c'; else $(CYGPATH_W) '$(srcdir)/egrep.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-egrep.Tpo $(DEPDIR)/gscope-egrep.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='egrep.c' object='gscope-egrep.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-egrep.obj `if test -f 'egrep.c'; then $(CYGPATH_W) 'egrep.c'; else $(CYGPATH_W) '$(srcdir)/egrep.c'; fi`
+
+gscope-alloc.o: alloc.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-alloc.o -MD -MP -MF $(DEPDIR)/gscope-alloc.Tpo -c -o gscope-alloc.o `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-alloc.Tpo $(DEPDIR)/gscope-alloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alloc.c' object='gscope-alloc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-alloc.o `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c
+
+gscope-alloc.obj: alloc.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-alloc.obj -MD -MP -MF $(DEPDIR)/gscope-alloc.Tpo -c -o gscope-alloc.obj `if test -f 'alloc.c'; then $(CYGPATH_W) 'alloc.c'; else $(CYGPATH_W) '$(srcdir)/alloc.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-alloc.Tpo $(DEPDIR)/gscope-alloc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='alloc.c' object='gscope-alloc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-alloc.obj `if test -f 'alloc.c'; then $(CYGPATH_W) 'alloc.c'; else $(CYGPATH_W) '$(srcdir)/alloc.c'; fi`
+
+gscope-basename.o: basename.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-basename.o -MD -MP -MF $(DEPDIR)/gscope-basename.Tpo -c -o gscope-basename.o `test -f 'basename.c' || echo '$(srcdir)/'`basename.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-basename.Tpo $(DEPDIR)/gscope-basename.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='basename.c' object='gscope-basename.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-basename.o `test -f 'basename.c' || echo '$(srcdir)/'`basename.c
+
+gscope-basename.obj: basename.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-basename.obj -MD -MP -MF $(DEPDIR)/gscope-basename.Tpo -c -o gscope-basename.obj `if test -f 'basename.c'; then $(CYGPATH_W) 'basename.c'; else $(CYGPATH_W) '$(srcdir)/basename.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-basename.Tpo $(DEPDIR)/gscope-basename.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='basename.c' object='gscope-basename.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-basename.obj `if test -f 'basename.c'; then $(CYGPATH_W) 'basename.c'; else $(CYGPATH_W) '$(srcdir)/basename.c'; fi`
+
+gscope-build.o: build.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-build.o -MD -MP -MF $(DEPDIR)/gscope-build.Tpo -c -o gscope-build.o `test -f 'build.c' || echo '$(srcdir)/'`build.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-build.Tpo $(DEPDIR)/gscope-build.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='build.c' object='gscope-build.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-build.o `test -f 'build.c' || echo '$(srcdir)/'`build.c
+
+gscope-build.obj: build.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-build.obj -MD -MP -MF $(DEPDIR)/gscope-build.Tpo -c -o gscope-build.obj `if test -f 'build.c'; then $(CYGPATH_W) 'build.c'; else $(CYGPATH_W) '$(srcdir)/build.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-build.Tpo $(DEPDIR)/gscope-build.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='build.c' object='gscope-build.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-build.obj `if test -f 'build.c'; then $(CYGPATH_W) 'build.c'; else $(CYGPATH_W) '$(srcdir)/build.c'; fi`
+
+gscope-command.o: command.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-command.o -MD -MP -MF $(DEPDIR)/gscope-command.Tpo -c -o gscope-command.o `test -f 'command.c' || echo '$(srcdir)/'`command.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-command.Tpo $(DEPDIR)/gscope-command.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='command.c' object='gscope-command.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-command.o `test -f 'command.c' || echo '$(srcdir)/'`command.c
+
+gscope-command.obj: command.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-command.obj -MD -MP -MF $(DEPDIR)/gscope-command.Tpo -c -o gscope-command.obj `if test -f 'command.c'; then $(CYGPATH_W) 'command.c'; else $(CYGPATH_W) '$(srcdir)/command.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-command.Tpo $(DEPDIR)/gscope-command.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='command.c' object='gscope-command.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-command.obj `if test -f 'command.c'; then $(CYGPATH_W) 'command.c'; else $(CYGPATH_W) '$(srcdir)/command.c'; fi`
+
+gscope-compath.o: compath.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-compath.o -MD -MP -MF $(DEPDIR)/gscope-compath.Tpo -c -o gscope-compath.o `test -f 'compath.c' || echo '$(srcdir)/'`compath.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-compath.Tpo $(DEPDIR)/gscope-compath.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compath.c' object='gscope-compath.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-compath.o `test -f 'compath.c' || echo '$(srcdir)/'`compath.c
+
+gscope-compath.obj: compath.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-compath.obj -MD -MP -MF $(DEPDIR)/gscope-compath.Tpo -c -o gscope-compath.obj `if test -f 'compath.c'; then $(CYGPATH_W) 'compath.c'; else $(CYGPATH_W) '$(srcdir)/compath.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-compath.Tpo $(DEPDIR)/gscope-compath.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='compath.c' object='gscope-compath.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-compath.obj `if test -f 'compath.c'; then $(CYGPATH_W) 'compath.c'; else $(CYGPATH_W) '$(srcdir)/compath.c'; fi`
+
+gscope-crossref.o: crossref.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-crossref.o -MD -MP -MF $(DEPDIR)/gscope-crossref.Tpo -c -o gscope-crossref.o `test -f 'crossref.c' || echo '$(srcdir)/'`crossref.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-crossref.Tpo $(DEPDIR)/gscope-crossref.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='crossref.c' object='gscope-crossref.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-crossref.o `test -f 'crossref.c' || echo '$(srcdir)/'`crossref.c
+
+gscope-crossref.obj: crossref.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-crossref.obj -MD -MP -MF $(DEPDIR)/gscope-crossref.Tpo -c -o gscope-crossref.obj `if test -f 'crossref.c'; then $(CYGPATH_W) 'crossref.c'; else $(CYGPATH_W) '$(srcdir)/crossref.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-crossref.Tpo $(DEPDIR)/gscope-crossref.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='crossref.c' object='gscope-crossref.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-crossref.obj `if test -f 'crossref.c'; then $(CYGPATH_W) 'crossref.c'; else $(CYGPATH_W) '$(srcdir)/crossref.c'; fi`
+
+gscope-dir.o: dir.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-dir.o -MD -MP -MF $(DEPDIR)/gscope-dir.Tpo -c -o gscope-dir.o `test -f 'dir.c' || echo '$(srcdir)/'`dir.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-dir.Tpo $(DEPDIR)/gscope-dir.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir.c' object='gscope-dir.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-dir.o `test -f 'dir.c' || echo '$(srcdir)/'`dir.c
+
+gscope-dir.obj: dir.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-dir.obj -MD -MP -MF $(DEPDIR)/gscope-dir.Tpo -c -o gscope-dir.obj `if test -f 'dir.c'; then $(CYGPATH_W) 'dir.c'; else $(CYGPATH_W) '$(srcdir)/dir.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-dir.Tpo $(DEPDIR)/gscope-dir.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir.c' object='gscope-dir.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-dir.obj `if test -f 'dir.c'; then $(CYGPATH_W) 'dir.c'; else $(CYGPATH_W) '$(srcdir)/dir.c'; fi`
+
+gscope-display.o: display.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-display.o -MD -MP -MF $(DEPDIR)/gscope-display.Tpo -c -o gscope-display.o `test -f 'display.c' || echo '$(srcdir)/'`display.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-display.Tpo $(DEPDIR)/gscope-display.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='display.c' object='gscope-display.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-display.o `test -f 'display.c' || echo '$(srcdir)/'`display.c
+
+gscope-display.obj: display.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-display.obj -MD -MP -MF $(DEPDIR)/gscope-display.Tpo -c -o gscope-display.obj `if test -f 'display.c'; then $(CYGPATH_W) 'display.c'; else $(CYGPATH_W) '$(srcdir)/display.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-display.Tpo $(DEPDIR)/gscope-display.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='display.c' object='gscope-display.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-display.obj `if test -f 'display.c'; then $(CYGPATH_W) 'display.c'; else $(CYGPATH_W) '$(srcdir)/display.c'; fi`
+
+gscope-edit.o: edit.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-edit.o -MD -MP -MF $(DEPDIR)/gscope-edit.Tpo -c -o gscope-edit.o `test -f 'edit.c' || echo '$(srcdir)/'`edit.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-edit.Tpo $(DEPDIR)/gscope-edit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='edit.c' object='gscope-edit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-edit.o `test -f 'edit.c' || echo '$(srcdir)/'`edit.c
+
+gscope-edit.obj: edit.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-edit.obj -MD -MP -MF $(DEPDIR)/gscope-edit.Tpo -c -o gscope-edit.obj `if test -f 'edit.c'; then $(CYGPATH_W) 'edit.c'; else $(CYGPATH_W) '$(srcdir)/edit.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-edit.Tpo $(DEPDIR)/gscope-edit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='edit.c' object='gscope-edit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-edit.obj `if test -f 'edit.c'; then $(CYGPATH_W) 'edit.c'; else $(CYGPATH_W) '$(srcdir)/edit.c'; fi`
+
+gscope-exec.o: exec.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-exec.o -MD -MP -MF $(DEPDIR)/gscope-exec.Tpo -c -o gscope-exec.o `test -f 'exec.c' || echo '$(srcdir)/'`exec.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-exec.Tpo $(DEPDIR)/gscope-exec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='exec.c' object='gscope-exec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-exec.o `test -f 'exec.c' || echo '$(srcdir)/'`exec.c
+
+gscope-exec.obj: exec.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-exec.obj -MD -MP -MF $(DEPDIR)/gscope-exec.Tpo -c -o gscope-exec.obj `if test -f 'exec.c'; then $(CYGPATH_W) 'exec.c'; else $(CYGPATH_W) '$(srcdir)/exec.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-exec.Tpo $(DEPDIR)/gscope-exec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='exec.c' object='gscope-exec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-exec.obj `if test -f 'exec.c'; then $(CYGPATH_W) 'exec.c'; else $(CYGPATH_W) '$(srcdir)/exec.c'; fi`
+
+gscope-find.o: find.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-find.o -MD -MP -MF $(DEPDIR)/gscope-find.Tpo -c -o gscope-find.o `test -f 'find.c' || echo '$(srcdir)/'`find.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-find.Tpo $(DEPDIR)/gscope-find.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='find.c' object='gscope-find.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-find.o `test -f 'find.c' || echo '$(srcdir)/'`find.c
+
+gscope-find.obj: find.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-find.obj -MD -MP -MF $(DEPDIR)/gscope-find.Tpo -c -o gscope-find.obj `if test -f 'find.c'; then $(CYGPATH_W) 'find.c'; else $(CYGPATH_W) '$(srcdir)/find.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-find.Tpo $(DEPDIR)/gscope-find.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='find.c' object='gscope-find.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-find.obj `if test -f 'find.c'; then $(CYGPATH_W) 'find.c'; else $(CYGPATH_W) '$(srcdir)/find.c'; fi`
+
+gscope-help.o: help.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-help.o -MD -MP -MF $(DEPDIR)/gscope-help.Tpo -c -o gscope-help.o `test -f 'help.c' || echo '$(srcdir)/'`help.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-help.Tpo $(DEPDIR)/gscope-help.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='help.c' object='gscope-help.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-help.o `test -f 'help.c' || echo '$(srcdir)/'`help.c
+
+gscope-help.obj: help.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-help.obj -MD -MP -MF $(DEPDIR)/gscope-help.Tpo -c -o gscope-help.obj `if test -f 'help.c'; then $(CYGPATH_W) 'help.c'; else $(CYGPATH_W) '$(srcdir)/help.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-help.Tpo $(DEPDIR)/gscope-help.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='help.c' object='gscope-help.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-help.obj `if test -f 'help.c'; then $(CYGPATH_W) 'help.c'; else $(CYGPATH_W) '$(srcdir)/help.c'; fi`
+
+gscope-history.o: history.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-history.o -MD -MP -MF $(DEPDIR)/gscope-history.Tpo -c -o gscope-history.o `test -f 'history.c' || echo '$(srcdir)/'`history.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-history.Tpo $(DEPDIR)/gscope-history.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='history.c' object='gscope-history.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-history.o `test -f 'history.c' || echo '$(srcdir)/'`history.c
+
+gscope-history.obj: history.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-history.obj -MD -MP -MF $(DEPDIR)/gscope-history.Tpo -c -o gscope-history.obj `if test -f 'history.c'; then $(CYGPATH_W) 'history.c'; else $(CYGPATH_W) '$(srcdir)/history.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-history.Tpo $(DEPDIR)/gscope-history.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='history.c' object='gscope-history.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-history.obj `if test -f 'history.c'; then $(CYGPATH_W) 'history.c'; else $(CYGPATH_W) '$(srcdir)/history.c'; fi`
+
+gscope-input.o: input.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-input.o -MD -MP -MF $(DEPDIR)/gscope-input.Tpo -c -o gscope-input.o `test -f 'input.c' || echo '$(srcdir)/'`input.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-input.Tpo $(DEPDIR)/gscope-input.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='input.c' object='gscope-input.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-input.o `test -f 'input.c' || echo '$(srcdir)/'`input.c
+
+gscope-input.obj: input.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-input.obj -MD -MP -MF $(DEPDIR)/gscope-input.Tpo -c -o gscope-input.obj `if test -f 'input.c'; then $(CYGPATH_W) 'input.c'; else $(CYGPATH_W) '$(srcdir)/input.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-input.Tpo $(DEPDIR)/gscope-input.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='input.c' object='gscope-input.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-input.obj `if test -f 'input.c'; then $(CYGPATH_W) 'input.c'; else $(CYGPATH_W) '$(srcdir)/input.c'; fi`
+
+gscope-invlib.o: invlib.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-invlib.o -MD -MP -MF $(DEPDIR)/gscope-invlib.Tpo -c -o gscope-invlib.o `test -f 'invlib.c' || echo '$(srcdir)/'`invlib.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-invlib.Tpo $(DEPDIR)/gscope-invlib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='invlib.c' object='gscope-invlib.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-invlib.o `test -f 'invlib.c' || echo '$(srcdir)/'`invlib.c
+
+gscope-invlib.obj: invlib.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-invlib.obj -MD -MP -MF $(DEPDIR)/gscope-invlib.Tpo -c -o gscope-invlib.obj `if test -f 'invlib.c'; then $(CYGPATH_W) 'invlib.c'; else $(CYGPATH_W) '$(srcdir)/invlib.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-invlib.Tpo $(DEPDIR)/gscope-invlib.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='invlib.c' object='gscope-invlib.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-invlib.obj `if test -f 'invlib.c'; then $(CYGPATH_W) 'invlib.c'; else $(CYGPATH_W) '$(srcdir)/invlib.c'; fi`
+
+gscope-logdir.o: logdir.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-logdir.o -MD -MP -MF $(DEPDIR)/gscope-logdir.Tpo -c -o gscope-logdir.o `test -f 'logdir.c' || echo '$(srcdir)/'`logdir.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-logdir.Tpo $(DEPDIR)/gscope-logdir.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='logdir.c' object='gscope-logdir.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-logdir.o `test -f 'logdir.c' || echo '$(srcdir)/'`logdir.c
+
+gscope-logdir.obj: logdir.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-logdir.obj -MD -MP -MF $(DEPDIR)/gscope-logdir.Tpo -c -o gscope-logdir.obj `if test -f 'logdir.c'; then $(CYGPATH_W) 'logdir.c'; else $(CYGPATH_W) '$(srcdir)/logdir.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-logdir.Tpo $(DEPDIR)/gscope-logdir.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='logdir.c' object='gscope-logdir.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-logdir.obj `if test -f 'logdir.c'; then $(CYGPATH_W) 'logdir.c'; else $(CYGPATH_W) '$(srcdir)/logdir.c'; fi`
+
+gscope-lookup.o: lookup.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-lookup.o -MD -MP -MF $(DEPDIR)/gscope-lookup.Tpo -c -o gscope-lookup.o `test -f 'lookup.c' || echo '$(srcdir)/'`lookup.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-lookup.Tpo $(DEPDIR)/gscope-lookup.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lookup.c' object='gscope-lookup.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-lookup.o `test -f 'lookup.c' || echo '$(srcdir)/'`lookup.c
+
+gscope-lookup.obj: lookup.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-lookup.obj -MD -MP -MF $(DEPDIR)/gscope-lookup.Tpo -c -o gscope-lookup.obj `if test -f 'lookup.c'; then $(CYGPATH_W) 'lookup.c'; else $(CYGPATH_W) '$(srcdir)/lookup.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-lookup.Tpo $(DEPDIR)/gscope-lookup.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lookup.c' object='gscope-lookup.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-lookup.obj `if test -f 'lookup.c'; then $(CYGPATH_W) 'lookup.c'; else $(CYGPATH_W) '$(srcdir)/lookup.c'; fi`
+
+gscope-main.o: main.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-main.o -MD -MP -MF $(DEPDIR)/gscope-main.Tpo -c -o gscope-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-main.Tpo $(DEPDIR)/gscope-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='gscope-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+gscope-main.obj: main.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-main.obj -MD -MP -MF $(DEPDIR)/gscope-main.Tpo -c -o gscope-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-main.Tpo $(DEPDIR)/gscope-main.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='gscope-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+gscope-mouse.o: mouse.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-mouse.o -MD -MP -MF $(DEPDIR)/gscope-mouse.Tpo -c -o gscope-mouse.o `test -f 'mouse.c' || echo '$(srcdir)/'`mouse.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-mouse.Tpo $(DEPDIR)/gscope-mouse.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mouse.c' object='gscope-mouse.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-mouse.o `test -f 'mouse.c' || echo '$(srcdir)/'`mouse.c
+
+gscope-mouse.obj: mouse.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-mouse.obj -MD -MP -MF $(DEPDIR)/gscope-mouse.Tpo -c -o gscope-mouse.obj `if test -f 'mouse.c'; then $(CYGPATH_W) 'mouse.c'; else $(CYGPATH_W) '$(srcdir)/mouse.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-mouse.Tpo $(DEPDIR)/gscope-mouse.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mouse.c' object='gscope-mouse.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-mouse.obj `if test -f 'mouse.c'; then $(CYGPATH_W) 'mouse.c'; else $(CYGPATH_W) '$(srcdir)/mouse.c'; fi`
+
+gscope-mygetenv.o: mygetenv.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-mygetenv.o -MD -MP -MF $(DEPDIR)/gscope-mygetenv.Tpo -c -o gscope-mygetenv.o `test -f 'mygetenv.c' || echo '$(srcdir)/'`mygetenv.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-mygetenv.Tpo $(DEPDIR)/gscope-mygetenv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mygetenv.c' object='gscope-mygetenv.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-mygetenv.o `test -f 'mygetenv.c' || echo '$(srcdir)/'`mygetenv.c
+
+gscope-mygetenv.obj: mygetenv.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-mygetenv.obj -MD -MP -MF $(DEPDIR)/gscope-mygetenv.Tpo -c -o gscope-mygetenv.obj `if test -f 'mygetenv.c'; then $(CYGPATH_W) 'mygetenv.c'; else $(CYGPATH_W) '$(srcdir)/mygetenv.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-mygetenv.Tpo $(DEPDIR)/gscope-mygetenv.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mygetenv.c' object='gscope-mygetenv.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-mygetenv.obj `if test -f 'mygetenv.c'; then $(CYGPATH_W) 'mygetenv.c'; else $(CYGPATH_W) '$(srcdir)/mygetenv.c'; fi`
+
+gscope-mypopen.o: mypopen.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-mypopen.o -MD -MP -MF $(DEPDIR)/gscope-mypopen.Tpo -c -o gscope-mypopen.o `test -f 'mypopen.c' || echo '$(srcdir)/'`mypopen.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-mypopen.Tpo $(DEPDIR)/gscope-mypopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mypopen.c' object='gscope-mypopen.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-mypopen.o `test -f 'mypopen.c' || echo '$(srcdir)/'`mypopen.c
+
+gscope-mypopen.obj: mypopen.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-mypopen.obj -MD -MP -MF $(DEPDIR)/gscope-mypopen.Tpo -c -o gscope-mypopen.obj `if test -f 'mypopen.c'; then $(CYGPATH_W) 'mypopen.c'; else $(CYGPATH_W) '$(srcdir)/mypopen.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-mypopen.Tpo $(DEPDIR)/gscope-mypopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mypopen.c' object='gscope-mypopen.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-mypopen.obj `if test -f 'mypopen.c'; then $(CYGPATH_W) 'mypopen.c'; else $(CYGPATH_W) '$(srcdir)/mypopen.c'; fi`
+
+gscope-vpaccess.o: vpaccess.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-vpaccess.o -MD -MP -MF $(DEPDIR)/gscope-vpaccess.Tpo -c -o gscope-vpaccess.o `test -f 'vpaccess.c' || echo '$(srcdir)/'`vpaccess.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-vpaccess.Tpo $(DEPDIR)/gscope-vpaccess.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vpaccess.c' object='gscope-vpaccess.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-vpaccess.o `test -f 'vpaccess.c' || echo '$(srcdir)/'`vpaccess.c
+
+gscope-vpaccess.obj: vpaccess.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-vpaccess.obj -MD -MP -MF $(DEPDIR)/gscope-vpaccess.Tpo -c -o gscope-vpaccess.obj `if test -f 'vpaccess.c'; then $(CYGPATH_W) 'vpaccess.c'; else $(CYGPATH_W) '$(srcdir)/vpaccess.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-vpaccess.Tpo $(DEPDIR)/gscope-vpaccess.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vpaccess.c' object='gscope-vpaccess.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-vpaccess.obj `if test -f 'vpaccess.c'; then $(CYGPATH_W) 'vpaccess.c'; else $(CYGPATH_W) '$(srcdir)/vpaccess.c'; fi`
+
+gscope-vpfopen.o: vpfopen.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-vpfopen.o -MD -MP -MF $(DEPDIR)/gscope-vpfopen.Tpo -c -o gscope-vpfopen.o `test -f 'vpfopen.c' || echo '$(srcdir)/'`vpfopen.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-vpfopen.Tpo $(DEPDIR)/gscope-vpfopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vpfopen.c' object='gscope-vpfopen.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-vpfopen.o `test -f 'vpfopen.c' || echo '$(srcdir)/'`vpfopen.c
+
+gscope-vpfopen.obj: vpfopen.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-vpfopen.obj -MD -MP -MF $(DEPDIR)/gscope-vpfopen.Tpo -c -o gscope-vpfopen.obj `if test -f 'vpfopen.c'; then $(CYGPATH_W) 'vpfopen.c'; else $(CYGPATH_W) '$(srcdir)/vpfopen.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-vpfopen.Tpo $(DEPDIR)/gscope-vpfopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vpfopen.c' object='gscope-vpfopen.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-vpfopen.obj `if test -f 'vpfopen.c'; then $(CYGPATH_W) 'vpfopen.c'; else $(CYGPATH_W) '$(srcdir)/vpfopen.c'; fi`
+
+gscope-vpinit.o: vpinit.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-vpinit.o -MD -MP -MF $(DEPDIR)/gscope-vpinit.Tpo -c -o gscope-vpinit.o `test -f 'vpinit.c' || echo '$(srcdir)/'`vpinit.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-vpinit.Tpo $(DEPDIR)/gscope-vpinit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vpinit.c' object='gscope-vpinit.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-vpinit.o `test -f 'vpinit.c' || echo '$(srcdir)/'`vpinit.c
+
+gscope-vpinit.obj: vpinit.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-vpinit.obj -MD -MP -MF $(DEPDIR)/gscope-vpinit.Tpo -c -o gscope-vpinit.obj `if test -f 'vpinit.c'; then $(CYGPATH_W) 'vpinit.c'; else $(CYGPATH_W) '$(srcdir)/vpinit.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-vpinit.Tpo $(DEPDIR)/gscope-vpinit.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vpinit.c' object='gscope-vpinit.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-vpinit.obj `if test -f 'vpinit.c'; then $(CYGPATH_W) 'vpinit.c'; else $(CYGPATH_W) '$(srcdir)/vpinit.c'; fi`
+
+gscope-vpopen.o: vpopen.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-vpopen.o -MD -MP -MF $(DEPDIR)/gscope-vpopen.Tpo -c -o gscope-vpopen.o `test -f 'vpopen.c' || echo '$(srcdir)/'`vpopen.c
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-vpopen.Tpo $(DEPDIR)/gscope-vpopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vpopen.c' object='gscope-vpopen.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-vpopen.o `test -f 'vpopen.c' || echo '$(srcdir)/'`vpopen.c
+
+gscope-vpopen.obj: vpopen.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -MT gscope-vpopen.obj -MD -MP -MF $(DEPDIR)/gscope-vpopen.Tpo -c -o gscope-vpopen.obj `if test -f 'vpopen.c'; then $(CYGPATH_W) 'vpopen.c'; else $(CYGPATH_W) '$(srcdir)/vpopen.c'; fi`
+@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/gscope-vpopen.Tpo $(DEPDIR)/gscope-vpopen.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vpopen.c' object='gscope-vpopen.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gscope_CFLAGS) $(CFLAGS) -c -o gscope-vpopen.obj `if test -f 'vpopen.c'; then $(CYGPATH_W) 'vpopen.c'; else $(CYGPATH_W) '$(srcdir)/vpopen.c'; fi`
+
+.l.c:
+ $(am__skiplex) $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE)
+
+.y.c:
+ $(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 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
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ 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"
+
+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 $(PROGRAMS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; 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."
+ -rm -f egrep.c
+ -rm -f fscanner.c
+ -rm -f scanner.c
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf $(DEPDIR) ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+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) ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic ctags distclean distclean-compile \
+ distclean-generic distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-binPROGRAMS \
+ 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-man 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 pdf pdf-am ps ps-am tags uninstall \
+ uninstall-am uninstall-binPROGRAMS
+
+
+# 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/src/alloc.c b/src/alloc.c
new file mode 100644
index 0000000..add992f
--- /dev/null
+++ b/src/alloc.c
@@ -0,0 +1,95 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* memory allocation functions */
+
+#include <stdio.h>
+#include <string.h>
+#include "alloc.h"
+
+#include "global.h" /* for postfatal() */
+
+static char const rcsid[] = "$Id: alloc.c,v 1.8 2006/07/23 20:59:20 broeker Exp $";
+
+static void *alloctest(void *p);
+
+/* let autoconf find out if <stdlib.h> is available. This test will
+ * succeed more reliably than the defined(__STDC__) one I replaced */
+#if STDC_HEADERS
+# include <stdlib.h>
+#else
+char *calloc(), *malloc(), *realloc(), *strcpy();
+#endif
+
+/* allocate a string */
+
+char *
+my_strdup(char *s)
+{
+ return(strcpy(mymalloc(strlen(s) + 1), s));
+}
+
+
+/* version of malloc that only returns if successful */
+void *
+mymalloc(size_t size)
+{
+ return(alloctest(malloc((unsigned) size)));
+}
+
+
+/* version of calloc that only returns if successful */
+void *
+mycalloc(size_t nelem, size_t size)
+{
+ return(alloctest(calloc((unsigned) nelem, (unsigned) size)));
+}
+
+
+/* version of realloc that only returns if successful */
+void *
+myrealloc(void *p, size_t size)
+{
+ return(alloctest(realloc(p, (unsigned) size)));
+}
+
+
+/* check for memory allocation failure */
+static void *
+alloctest(void *p)
+{
+ if (p == NULL) {
+ postfatal("\n%s: out of storage\n", argv0);
+ /* NOTREACHED */
+ }
+ return(p);
+}
diff --git a/src/alloc.h b/src/alloc.h
new file mode 100644
index 0000000..297eb71
--- /dev/null
+++ b/src/alloc.h
@@ -0,0 +1,46 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: alloc.h,v 1.1 2006/07/23 20:59:20 broeker Exp $ */
+
+#ifndef CSCOPE_ALLOC_H
+#define CSCOPE_ALLOC_H
+
+#include <string.h> /* need size_t ... */
+
+/* memory allocation support */
+void *mycalloc(size_t nelem, size_t size);
+void *mymalloc(size_t size);
+void *myrealloc(void *p, size_t size);
+char *my_strdup(char *s);
+
+#endif /* CSCOPE_ALLOC_H */
diff --git a/src/basename.c b/src/basename.c
new file mode 100644
index 0000000..7254ae7
--- /dev/null
+++ b/src/basename.c
@@ -0,0 +1,48 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* get a file's base name from its path name */
+
+static char const rcsid[] = "$Id: basename.c,v 1.3 2001/07/05 14:31:00 broeker Exp $";
+
+#include "global.h"
+
+char *
+mybasename(char *path)
+{
+ char *s;
+
+ if ((s = strrchr(path, '/')) != 0) {
+ return(s + 1);
+ }
+ return(path);
+}
diff --git a/src/build.c b/src/build.c
new file mode 100644
index 0000000..d1a4493
--- /dev/null
+++ b/src/build.c
@@ -0,0 +1,740 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * main functions
+ */
+
+#include "build.h"
+
+#include "global.h" /* FIXME: get rid of this! */
+
+#include "library.h"
+#include "alloc.h"
+#include "scanner.h"
+#include "version.h" /* for FILEVERSION */
+#include "vp.h"
+
+#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+#include <ncurses.h>
+#else
+#include <curses.h>
+#endif
+
+/* Exported variables: */
+
+BOOL buildonly = NO; /* only build the database */
+BOOL unconditional = NO; /* unconditionally build database */
+BOOL fileschanged; /* assume some files changed */
+
+/* variable copies of the master strings... */
+char invname_buf[] = INVNAME;
+char invpost_buf[] = INVPOST;
+char reffile_buf[] = REFFILE;
+char *invname = invname_buf; /* inverted index to the database */
+char *invpost = invpost_buf; /* inverted index postings */
+char *reffile = reffile_buf; /* cross-reference file path name */
+
+char *newreffile; /* new cross-reference file name */
+FILE *newrefs; /* new cross-reference */
+FILE *postings; /* new inverted index postings */
+int symrefs = -1; /* cross-reference file */
+
+INVCONTROL invcontrol; /* inverted file control structure */
+
+
+/* Local variables: */
+static char *newinvname; /* new inverted index file name */
+static char *newinvpost; /* new inverted index postings file name */
+static long traileroffset; /* file trailer offset */
+
+
+/* Internal prototypes: */
+static void cannotindex(void);
+static int compare(const void *s1, const void *s2);
+static void copydata(void);
+static void copyinverted(void);
+static char *getoldfile(void);
+static void movefile(char *new, char *old);
+static void putheader(char *dir);
+static void fetch_include_from_dbase(char *, size_t);
+static void putlist(char **names, int count);
+static BOOL samelist(FILE *oldrefs, char **names, int count);
+
+
+/* Error handling routine if inverted index creation fails */
+static void
+cannotindex(void)
+{
+ fprintf(stderr, "\
+cscope: cannot create inverted index; ignoring -q option\n");
+ invertedindex = NO;
+ errorsfound = YES;
+ fprintf(stderr, "\
+cscope: removed files %s and %s\n",
+ newinvname, newinvpost);
+ unlink(newinvname);
+ unlink(newinvpost);
+}
+
+
+/* see if the name list is the same in the cross-reference file */
+static BOOL
+samelist(FILE *oldrefs, char **names, int count)
+{
+ char oldname[PATHLEN + 1]; /* name in old cross-reference */
+ int oldcount;
+ int i;
+
+ /* see if the number of names is the same */
+ if (fscanf(oldrefs, "%d", &oldcount) != 1 ||
+ oldcount != count) {
+ return(NO);
+ }
+ /* see if the name list is the same */
+ for (i = 0; i < count; ++i) {
+ if ((1 != fscanf(oldrefs," %[^\n]",oldname)) ||
+ strnotequal(oldname, names[i])) {
+ return(NO);
+ }
+ }
+ return(YES);
+}
+
+
+/* create the file name(s) used for a new cross-referene */
+
+void setup_build_filenames(char *reffile)
+{
+ char *path; /* file pathname */
+ char *s; /* pointer to basename in path */
+
+ path = mymalloc(strlen(reffile) + 10);
+ strcpy(path, reffile);
+ s = mybasename(path);
+ *s = '\0';
+ strcat(path, "n");
+ ++s;
+ strcpy(s, mybasename(reffile));
+ newreffile = my_strdup(path);
+ strcpy(s, mybasename(invname));
+ newinvname = my_strdup(path);
+ strcpy(s, mybasename(invpost));
+ newinvpost = my_strdup(path);
+ free(path);
+}
+
+/* open the database */
+
+void
+opendatabase(void)
+{
+ if ((symrefs = vpopen(reffile, O_BINARY | O_RDONLY)) == -1) {
+ cannotopen(reffile);
+ myexit(1);
+ }
+ blocknumber = -1; /* force next seek to read the first block */
+
+ /* open any inverted index */
+ if (invertedindex == YES &&
+ invopen(&invcontrol, invname, invpost, INVAVAIL) == -1) {
+ askforreturn(); /* so user sees message */
+ invertedindex = NO;
+ }
+}
+
+
+/* rebuild the database */
+void
+rebuild(void)
+{
+ close(symrefs);
+ if (invertedindex == YES) {
+ invclose(&invcontrol);
+ nsrcoffset = 0;
+ npostings = 0;
+ }
+ build();
+ opendatabase();
+
+ /* revert to the initial display */
+ if (refsfound != NULL) {
+ fclose(refsfound);
+ refsfound = NULL;
+ }
+}
+
+
+/* build the cross-reference */
+void
+build(void)
+{
+ unsigned long i;
+ FILE *oldrefs; /* old cross-reference file */
+ time_t reftime; /* old crossref modification time */
+ char *file; /* current file */
+ char *oldfile; /* file in old cross-reference */
+ char newdir[PATHLEN + 1]; /* directory in new cross-reference */
+ char olddir[PATHLEN + 1]; /* directory in old cross-reference */
+ char oldname[PATHLEN + 1]; /* name in old cross-reference */
+ unsigned long oldnum; /* number in old cross-ref */
+ struct stat statstruct; /* file status */
+ unsigned long firstfile; /* first source file in pass */
+ unsigned long lastfile; /* last source file in pass */
+ int built = 0; /* built crossref for these files */
+ int copied = 0; /* copied crossref for these files */
+ unsigned long fileindex; /* source file name index */
+ BOOL interactive = YES; /* output progress messages */
+
+ /* normalize the current directory relative to the home directory so
+ the cross-reference is not rebuilt when the user's login is moved */
+ strcpy(newdir, currentdir);
+ if (strcmp(currentdir, home) == 0) {
+ strcpy(newdir, "$HOME");
+ } else if (strncmp(currentdir, home, strlen(home)) == 0) {
+ snprintf(newdir, sizeof(newdir), "$HOME%s", currentdir + strlen(home));
+ }
+ /* sort the source file names (needed for rebuilding) */
+ qsort(srcfiles, nsrcfiles, sizeof(char *), compare);
+
+ /* if there is an old cross-reference and its current directory matches */
+ /* or this is an unconditional build */
+ if ((oldrefs = vpfopen(reffile, "rb")) != NULL
+ && unconditional == NO
+ && fscanf(oldrefs, "cscope %d %" PATHLEN_STR "s", &fileversion, olddir) == 2
+ && (strcmp(olddir, currentdir) == 0 /* remain compatible */
+ || strcmp(olddir, newdir) == 0)) {
+ /* get the cross-reference file's modification time */
+ fstat(fileno(oldrefs), &statstruct);
+ reftime = statstruct.st_mtime;
+ if (fileversion >= 8) {
+ BOOL oldcompress = YES;
+ BOOL oldinvertedindex = NO;
+ BOOL oldtruncate = NO;
+ int c;
+
+ /* see if there are options in the database */
+ for (;;) {
+ while((c = getc(oldrefs)) == ' ')
+ ; /* do nothing */
+ if (c != '-') {
+ ungetc(c, oldrefs);
+ break;
+ }
+ switch (getc(oldrefs)) {
+ case 'c': /* ASCII characters only */
+ oldcompress = NO;
+ break;
+ case 'q': /* quick search */
+ oldinvertedindex = YES;
+ fscanf(oldrefs, "%ld", &totalterms);
+ break;
+ case 'T': /* truncate symbols to 8 characters */
+ oldtruncate = YES;
+ break;
+ }
+ }
+ /* check the old and new option settings */
+ if (oldcompress != compress || oldtruncate != trun_syms) {
+ posterr("\
+cscope: -c or -T option mismatch between command line and old symbol database\n");
+ goto force;
+ }
+ if (oldinvertedindex != invertedindex) {
+ posterr("\
+cscope: -q option mismatch between command line and old symbol database\n");
+ if (invertedindex == NO) {
+ posterr("cscope: removed files %s and %s\n",
+ invname, invpost);
+ unlink(invname);
+ unlink(invpost);
+ }
+ goto outofdate;
+ }
+ /* seek to the trailer */
+ if (fscanf(oldrefs, "%ld", &traileroffset) != 1 ||
+ fseek(oldrefs, traileroffset, SEEK_SET) == -1) {
+ posterr("cscope: incorrect symbol database file format\n");
+ goto force;
+ }
+ }
+ /* if assuming that some files have changed */
+ if (fileschanged == YES) {
+ goto outofdate;
+ }
+ /* see if the directory lists are the same */
+ if (samelist(oldrefs, srcdirs, nsrcdirs) == NO
+ || samelist(oldrefs, incdirs, nincdirs) == NO
+ /* get the old number of files */
+ || fscanf(oldrefs, "%lu", &oldnum) != 1
+ /* skip the string space size */
+ || (fileversion >= 9 && fscanf(oldrefs, "%*s") != 0)) {
+ goto outofdate;
+ }
+ /* see if the list of source files is the same and
+ none have been changed up to the included files */
+ for (i = 0; i < nsrcfiles; ++i) {
+ if ((1 != fscanf(oldrefs," %[^\n]",oldname))
+ || strnotequal(oldname, srcfiles[i])
+ || (lstat(srcfiles[i], &statstruct) != 0)
+ || (statstruct.st_mtime > reftime)
+ ) {
+ goto outofdate;
+ }
+ }
+ /* the old cross-reference is up-to-date */
+ /* so get the list of included files */
+ while (i++ < oldnum && fgets(oldname, sizeof(oldname), oldrefs)) {
+ addsrcfile(oldname);
+ }
+ fclose(oldrefs);
+ return;
+
+ outofdate:
+ /* if the database format has changed, rebuild it all */
+ if (fileversion != FILEVERSION) {
+ fprintf(stderr, "\
+cscope: converting to new symbol database file format\n");
+ goto force;
+ }
+ /* reopen the old cross-reference file for fast scanning */
+ if ((symrefs = vpopen(reffile, O_BINARY | O_RDONLY)) == -1) {
+ postfatal("cscope: cannot open file %s\n", reffile);
+ /* NOTREACHED */
+ }
+ /* get the first file name in the old cross-reference */
+ blocknumber = -1;
+ read_block(); /* read the first cross-ref block */
+ scanpast('\t'); /* skip the header */
+ oldfile = getoldfile();
+ } else { /* force cross-referencing of all the source files */
+ force:
+ reftime = 0;
+ oldfile = NULL;
+ }
+ /* open the new cross-reference file */
+ if ((newrefs = myfopen(newreffile, "wb")) == NULL) {
+ postfatal("cscope: cannot open file %s\n", reffile);
+ /* NOTREACHED */
+ }
+ if (invertedindex == YES && (postings = myfopen(temp1, "wb")) == NULL) {
+ cannotwrite(temp1);
+ cannotindex();
+ }
+ putheader(newdir);
+ fileversion = FILEVERSION;
+ if (buildonly == YES && verbosemode != YES && !isatty(0)) {
+ interactive = NO;
+ } else {
+ searchcount = 0;
+ }
+ /* output the leading tab expected by crossref() */
+ dbputc('\t');
+
+ /* make passes through the source file list until the last level of
+ included files is processed */
+ firstfile = 0;
+ lastfile = nsrcfiles;
+ if (invertedindex == YES) {
+ srcoffset = mymalloc((nsrcfiles + 1) * sizeof(long));
+ }
+ for (;;) {
+ progress("Building symbol database", (long)built,
+ (long)lastfile);
+ if (linemode == NO)
+ refresh();
+
+ /* get the next source file name */
+ for (fileindex = firstfile; fileindex < lastfile; ++fileindex) {
+
+ /* display the progress about every three seconds */
+ if (interactive == YES && fileindex % 10 == 0) {
+ progress("Building symbol database", fileindex, lastfile);
+ }
+ /* if the old file has been deleted get the next one */
+ file = srcfiles[fileindex];
+ while (oldfile != NULL && strcmp(file, oldfile) > 0) {
+ oldfile = getoldfile();
+ }
+ /* if there isn't an old database or this is a new file */
+ if (oldfile == NULL || strcmp(file, oldfile) < 0) {
+ crossref(file);
+ ++built;
+ } else if (lstat(file, &statstruct) == 0
+ && statstruct.st_mtime > reftime) {
+ /* if this file was modified */
+ crossref(file);
+ ++built;
+
+ /* skip its old crossref so modifying the last source
+ * file does not cause all included files to be built.
+ * Unfortunately a new file that is alphabetically
+ * last will cause all included files to be build, but
+ * this is less likely */
+ oldfile = getoldfile();
+ } else {
+ /* copy its cross-reference */
+ putfilename(file);
+ if (invertedindex == YES) {
+ copyinverted();
+ } else {
+ copydata();
+ }
+ ++copied;
+ oldfile = getoldfile();
+ }
+ }
+ /* see if any included files were found */
+ if (lastfile == nsrcfiles) {
+ break;
+ }
+ firstfile = lastfile;
+ lastfile = nsrcfiles;
+ if (invertedindex == YES) {
+ srcoffset = myrealloc(srcoffset,
+ (nsrcfiles + 1) * sizeof(long));
+ }
+ /* sort the included file names */
+ qsort(&srcfiles[firstfile], (lastfile - firstfile),
+ sizeof(char *), compare);
+ }
+ /* add a null file name to the trailing tab */
+ putfilename("");
+ dbputc('\n');
+
+ /* get the file trailer offset */
+ traileroffset = dboffset;
+
+ /* output the source and include directory and file lists */
+ putlist(srcdirs, nsrcdirs);
+ putlist(incdirs, nincdirs);
+ putlist(srcfiles, nsrcfiles);
+ if (fflush(newrefs) == EOF) {
+ /* rewind doesn't check for write failure */
+ cannotwrite(newreffile);
+ /* NOTREACHED */
+ }
+
+ /* create the inverted index if requested */
+ if (invertedindex == YES) {
+ char sortcommand[PATHLEN + 1];
+
+ if (fflush(postings) == EOF) {
+ cannotwrite(temp1);
+ /* NOTREACHED */
+ }
+ fstat(fileno(postings), &statstruct);
+ fclose(postings);
+ snprintf(sortcommand, sizeof(sortcommand), "env LC_ALL=C sort -T %s %s", tmpdir, temp1);
+ if ((postings = mypopen(sortcommand, "r")) == NULL) {
+ fprintf(stderr, "cscope: cannot open pipe to sort command\n");
+ cannotindex();
+ } else {
+ if ((totalterms = invmake(newinvname, newinvpost, postings)) > 0) {
+ movefile(newinvname, invname);
+ movefile(newinvpost, invpost);
+ } else {
+ cannotindex();
+ }
+ mypclose(postings);
+ }
+ unlink(temp1);
+ free(srcoffset);
+ }
+ /* rewrite the header with the trailer offset and final option list */
+ rewind(newrefs);
+ putheader(newdir);
+ fclose(newrefs);
+
+ /* close the old database file */
+ if (symrefs >= 0) {
+ close(symrefs);
+ }
+ if (oldrefs != NULL) {
+ fclose(oldrefs);
+ }
+ /* replace it with the new database file */
+ movefile(newreffile, reffile);
+}
+
+
+/* string comparison function for qsort */
+static int
+compare(const void *arg_s1, const void *arg_s2)
+{
+ const char **s1 = (const char **) arg_s1;
+ const char **s2 = (const char **) arg_s2;
+
+ return(strcmp(*s1, *s2));
+}
+
+
+/* seek to the trailer, in a given file */
+void
+seek_to_trailer(FILE *f)
+{
+ if (fscanf(f, "%ld", &traileroffset) != 1) {
+ postfatal("cscope: cannot read trailer offset from file %s\n", reffile);
+ /* NOTREACHED */
+ }
+ if (fseek(f, traileroffset, SEEK_SET) == -1) {
+ postfatal("cscope: cannot seek to trailer in file %s\n", reffile);
+ /* NOTREACHED */
+ }
+}
+
+
+/* get the next file name in the old cross-reference */
+static char *
+getoldfile(void)
+{
+ static char file[PATHLEN + 1]; /* file name in old crossref */
+
+ if (blockp != NULL) {
+ do {
+ if (*blockp == NEWFILE) {
+ skiprefchar();
+ fetch_string_from_dbase(file, sizeof(file));
+ if (file[0] != '\0') { /* if not end-of-crossref */
+ return(file);
+ }
+ return(NULL);
+ }
+ } while (scanpast('\t') != NULL);
+ }
+ return(NULL);
+}
+
+
+/* Free all storage allocated for filenames: */
+void free_newbuildfiles(void)
+{
+ free(newinvname);
+ free(newinvpost);
+ free(newreffile);
+}
+
+
+/* output the cscope version, current directory, database format options, and
+ the database trailer offset */
+static void
+putheader(char *dir)
+{
+ dboffset = fprintf(newrefs, "cscope %d %s", FILEVERSION, dir);
+ if (compress == NO) {
+ dboffset += fprintf(newrefs, " -c");
+ }
+ if (invertedindex == YES) {
+ dboffset += fprintf(newrefs, " -q %.10ld", totalterms);
+ } else {
+ /* leave space so if the header is overwritten without -q
+ * because writing the inverted index failed, the header
+ * is the same length */
+ dboffset += fprintf(newrefs, " ");
+ }
+ if (trun_syms == YES) {
+ dboffset += fprintf(newrefs, " -T");
+ }
+
+ dboffset += fprintf(newrefs, " %.10ld\n", traileroffset);
+#ifdef PRINTF_RETVAL_BROKEN
+ dboffset = ftell(newrefs);
+#endif
+}
+
+
+/* put the name list into the cross-reference file */
+static void
+putlist(char **names, int count)
+{
+ int i, size = 0;
+
+ fprintf(newrefs, "%d\n", count);
+ if (names == srcfiles) {
+
+ /* calculate the string space needed */
+ for (i = 0; i < count; ++i) {
+ size += strlen(names[i]) + 1;
+ }
+ fprintf(newrefs, "%d\n", size);
+ }
+ for (i = 0; i < count; ++i) {
+ if (fputs(names[i], newrefs) == EOF ||
+ putc('\n', newrefs) == EOF) {
+ cannotwrite(newreffile);
+ /* NOTREACHED */
+ }
+ }
+}
+
+
+/* copy this file's symbol data */
+static void
+copydata(void)
+{
+ char symbol[PATLEN + 1];
+ char *cp;
+
+ setmark('\t');
+ cp = blockp;
+ for (;;) {
+ /* copy up to the next \t */
+ do { /* innermost loop optimized to only one test */
+ while (*cp != '\t') {
+ dbputc(*cp++);
+ }
+ } while (*++cp == '\0' && (cp = read_block()) != NULL);
+ dbputc('\t'); /* copy the tab */
+
+ /* get the next character */
+ /* HBB 2010-08-21: potential problem if above loop was left
+ * with cp==NULL */
+ if (cp && (*(cp + 1) == '\0')) {
+ cp = read_block();
+ }
+ /* exit if at the end of this file's data */
+ if (cp == NULL || *cp == NEWFILE) {
+ break;
+ }
+ /* look for an #included file */
+ if (*cp == INCLUDE) {
+ blockp = cp;
+ fetch_include_from_dbase(symbol, sizeof(symbol));
+ writestring(symbol);
+ setmark('\t');
+ cp = blockp;
+ }
+ }
+ blockp = cp;
+}
+
+/* copy this file's symbol data and output the inverted index postings */
+
+static void
+copyinverted(void)
+{
+ char *cp;
+ char c;
+ int type; /* reference type (mark character) */
+ char symbol[PATLEN + 1];
+
+ /* note: this code was expanded in-line for speed */
+ /* while (scanpast('\n') != NULL) { */
+ /* other macros were replaced by code using cp instead of blockp */
+ cp = blockp;
+ for (;;) {
+ setmark('\n');
+ do { /* innermost loop optimized to only one test */
+ while (*cp != '\n') {
+ dbputc(*cp++);
+ }
+ } while (*++cp == '\0' && (cp = read_block()) != NULL);
+ dbputc('\n'); /* copy the newline */
+
+ /* get the next character */
+ /* HBB 2010-08-21: potential problem if above loop was left
+ * with cp==NULL */
+ if (cp && (*(cp + 1) == '\0')) {
+ cp = read_block();
+ }
+ /* exit if at the end of this file's data */
+ if (cp == NULL) {
+ break;
+ }
+ switch (*cp) {
+ case '\n':
+ lineoffset = dboffset + 1;
+ continue;
+ case '\t':
+ dbputc('\t');
+ blockp = cp;
+ type = getrefchar();
+ switch (type) {
+ case NEWFILE: /* file name */
+ return;
+ case INCLUDE: /* #included file */
+ fetch_include_from_dbase(symbol, sizeof(symbol));
+ goto output;
+ }
+ dbputc(type);
+ skiprefchar();
+ fetch_string_from_dbase(symbol, sizeof(symbol));
+ goto output;
+ }
+ c = *cp;
+ if (c & 0200) { /* digraph char? */
+ c = dichar1[(c & 0177) / 8];
+ }
+ /* if this is a symbol */
+ if (isalpha((unsigned char)c) || c == '_') {
+ blockp = cp;
+ fetch_string_from_dbase(symbol, sizeof(symbol));
+ type = ' ';
+ output:
+ putposting(symbol, type);
+ writestring(symbol);
+ if (blockp == NULL) {
+ return;
+ }
+ cp = blockp;
+ }
+ }
+ blockp = cp;
+}
+
+
+/* replace the old file with the new file */
+static void
+movefile(char *new, char *old)
+{
+ unlink(old);
+ if (rename(new, old) == -1) {
+ myperror("cscope");
+ postfatal("cscope: cannot rename file %s to file %s\n",
+ new, old);
+ /* NOTREACHED */
+ }
+}
+
+
+/* process the #included file in the old database */
+static void
+fetch_include_from_dbase(char *s, size_t length)
+{
+ dbputc(INCLUDE);
+ skiprefchar();
+ fetch_string_from_dbase(s, length);
+ incfile(s + 1, s);
+}
+
diff --git a/src/build.h b/src/build.h
new file mode 100644
index 0000000..085d15b
--- /dev/null
+++ b/src/build.h
@@ -0,0 +1,73 @@
+/*===========================================================================
+ Copyright (c) 2001, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: build.h,v 1.1 2001/07/09 14:01:18 broeker Exp $ */
+
+
+#ifndef CSCOPE_BUILD_H
+#define CSCOPE_BUILD_H
+
+#include "global.h" /* FIXME: temp. only */
+#include "invlib.h"
+
+/* types and macros of build.c to be used by other modules */
+
+/* database output macros that update its offset */
+#define dbputc(c) (++dboffset, (void) putc(c, newrefs))
+#define dbfputs(s) (dboffset += strlen(s), fputs(s, newrefs))
+
+/* declarations for globals defined in build.c */
+
+extern BOOL buildonly; /* only build the database */
+extern BOOL unconditional; /* unconditionally build database */
+extern BOOL fileschanged; /* assume some files changed */
+
+extern char *reffile; /* cross-reference file path name */
+extern char *invname; /* inverted index to the database */
+extern char *invpost; /* inverted index postings */
+extern char *newreffile; /* new cross-reference file name */
+extern FILE *newrefs; /* new cross-reference */
+extern FILE *postings; /* new inverted index postings */
+extern int symrefs; /* cross-reference file */
+
+extern INVCONTROL invcontrol; /* inverted file control structure */
+
+/* Prototypes of external functions defined by build.c */
+
+void build(void);
+void free_newbuildfiles(void);
+void opendatabase(void);
+void rebuild(void);
+void setup_build_filenames(char *reffile);
+void seek_to_trailer(FILE *f);
+
+#endif /* CSCOPE_BUILD_H */
diff --git a/src/command.c b/src/command.c
new file mode 100644
index 0000000..fe1e0a3
--- /dev/null
+++ b/src/command.c
@@ -0,0 +1,953 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol or text cross-reference
+ *
+ * command functions
+ */
+
+#include "global.h"
+#include "build.h" /* for rebuild() */
+#include "alloc.h"
+
+#include <stdlib.h>
+#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+#include <ncurses.h>
+#else
+#include <curses.h>
+#endif
+#include <ctype.h>
+
+static char const rcsid[] = "$Id: command.c,v 1.36 2012/05/20 13:58:53 broeker Exp $";
+
+
+int selecting;
+unsigned int curdispline = 0;
+
+BOOL caseless; /* ignore letter case when searching */
+BOOL *change; /* change this line */
+BOOL changing; /* changing text */
+char newpat[PATLEN + 1]; /* new pattern */
+/* HBB 20040430: renamed to avoid lots of clashes with function arguments
+ * also named 'pattern' */
+char Pattern[PATLEN + 1]; /* symbol or text pattern */
+
+/* HBB FIXME 20060419: these should almost certainly be const */
+static char appendprompt[] = "Append to file: ";
+static char pipeprompt[] = "Pipe to shell command: ";
+static char readprompt[] = "Read from file: ";
+static char toprompt[] = "To: ";
+
+
+/* Internal prototypes: */
+static BOOL changestring(void);
+static void clearprompt(void);
+static void mark(unsigned int i);
+static void scrollbar(MOUSE *p);
+
+
+/* execute the command */
+BOOL
+command(int commandc)
+{
+ char filename[PATHLEN + 1]; /* file path name */
+ MOUSE *p; /* mouse data */
+ int c, i;
+ FILE *file;
+ struct cmd *curritem, *item; /* command history */
+ char *s;
+
+ switch (commandc) {
+ case ctrl('C'): /* toggle caseless mode */
+ if (caseless == NO) {
+ caseless = YES;
+ postmsg2("Caseless mode is now ON");
+ } else {
+ caseless = NO;
+ postmsg2("Caseless mode is now OFF");
+ }
+ egrepcaseless(caseless); /* turn on/off -i flag */
+ return(NO);
+
+ case ctrl('R'): /* rebuild the cross reference */
+ if (isuptodate == YES) {
+ postmsg("The -d option prevents rebuilding the symbol database");
+ return(NO);
+ }
+ exitcurses();
+ freefilelist(); /* remake the source file list */
+ makefilelist();
+ rebuild();
+ if (errorsfound == YES) {
+ errorsfound = NO;
+ askforreturn();
+ }
+ entercurses();
+ clearmsg(); /* clear any previous message */
+ totallines = 0;
+ disprefs = 0;
+ topline = nextline = 1;
+ selecting = 0;
+ break;
+
+#if UNIXPC
+ case ESC: /* possible unixpc mouse selection */
+#endif
+ case ctrl('X'): /* mouse selection */
+ if ((p = getmouseaction(DUMMYCHAR)) == NULL) {
+ return(NO); /* unknown control sequence */
+ }
+ /* if the button number is a scrollbar tag */
+ if (p->button == '0') {
+ scrollbar(p);
+ break;
+ }
+ /* ignore a sweep */
+ if (p->x2 >= 0) {
+ return(NO);
+ }
+ /* if this is a line selection */
+ if (p->y1 < FLDLINE) {
+
+ /* find the selected line */
+ /* note: the selection is forced into range */
+ for (i = disprefs - 1; i > 0; --i) {
+ if (p->y1 >= displine[i]) {
+ break;
+ }
+ }
+ /* display it in the file with the editor */
+ editref(i);
+ } else { /* this is an input field selection */
+ field = p->y1 - FLDLINE;
+ /* force it into range */
+ if (field >= FIELDS) {
+ field = FIELDS - 1;
+ }
+ setfield();
+ resetcmd();
+ return(NO);
+ }
+ break;
+
+ case '\t': /* go to next input field */
+ if (disprefs) {
+ selecting = !selecting;
+ if (selecting) {
+ move(displine[curdispline], 0);
+ refresh();
+ } else {
+ atfield();
+ resetcmd();
+ }
+ }
+ return(NO);
+
+#ifdef KEY_ENTER
+ case KEY_ENTER:
+#endif
+ case '\r':
+ case '\n': /* go to reference */
+ if (selecting) {
+ editref(curdispline);
+ return(YES);
+ }
+ /* FALLTHROUGH */
+
+ case ctrl('N'):
+#ifdef KEY_DOWN
+ case KEY_DOWN:
+#endif
+#ifdef KEY_RIGHT
+ case KEY_RIGHT:
+#endif
+ if (selecting) {
+ if ((curdispline + 1) < disprefs) {
+ move(displine[++curdispline], 0);
+ refresh();
+ }
+ } else {
+ field = (field + 1) % FIELDS;
+ setfield();
+ atfield();
+ resetcmd();
+ }
+ return(NO);
+
+ case ctrl('P'): /* go to previous input field */
+#ifdef KEY_UP
+ case KEY_UP:
+#endif
+#ifdef KEY_LEFT
+ case KEY_LEFT:
+#endif
+ if (selecting) {
+ if (curdispline) {
+ move(displine[--curdispline], 0);
+ refresh();
+ }
+ } else {
+ field = (field + (FIELDS - 1)) % FIELDS;
+ setfield();
+ atfield();
+ resetcmd();
+ }
+ return(NO);
+#ifdef KEY_HOME
+ case KEY_HOME: /* go to first input field */
+ if (selecting) {
+ curdispline = 0;
+ move(REFLINE, 0);
+ refresh();
+ } else {
+ field = 0;
+ setfield();
+ atfield();
+ resetcmd();
+ }
+ return(NO);
+#endif
+
+#ifdef KEY_LL
+ case KEY_LL: /* go to last input field */
+ if (selecting) {
+ move(displine[disprefs - 1], 0);
+ refresh();
+ } else {
+ field = FIELDS - 1;
+ setfield();
+ atfield();
+ resetcmd();
+ }
+ return(NO);
+#endif /* def(KEY_LL) */
+
+ case ' ': /* display next page */
+ case '+':
+ case ctrl('V'):
+#ifdef KEY_NPAGE
+ case KEY_NPAGE:
+#endif
+ /* don't redisplay if there are no lines */
+ if (totallines == 0) {
+ return(NO);
+ }
+ /* note: seekline() is not used to move to the next
+ * page because display() leaves the file pointer at
+ * the next page to optimize paging forward
+ */
+ curdispline = 0;
+ break;
+
+ case ctrl('H'):
+ case '-': /* display previous page */
+#ifdef KEY_PPAGE
+ case KEY_PPAGE:
+#endif
+ /* don't redisplay if there are no lines */
+ if (totallines == 0) {
+ return(NO);
+ }
+
+ curdispline = 0;
+
+ /* if there are only two pages, just go to the other one */
+ if (totallines <= 2 * mdisprefs) {
+ break;
+ }
+ /* if on first page but not at beginning, go to beginning */
+ nextline -= mdisprefs; /* already at next page */
+ if (nextline > 1 && nextline <= mdisprefs) {
+ nextline = 1;
+ } else {
+ nextline -= mdisprefs;
+ if (nextline < 1) {
+ nextline = totallines - mdisprefs + 1;
+ if (nextline < 1) {
+ nextline = 1;
+ }
+ }
+ }
+ seekline(nextline);
+ break;
+
+ case '>': /* write or append the lines to a file */
+ if (totallines == 0) {
+ postmsg("There are no lines to write to a file");
+ } else { /* get the file name */
+ move(PRLINE, 0);
+ addstr("Write to file: ");
+ s = "w";
+ if ((c = mygetch()) == '>') {
+ move(PRLINE, 0);
+ addstr(appendprompt);
+ c = '\0';
+ s = "a";
+ }
+ if (c != '\r' &&
+ mygetline("", newpat,
+ COLS - sizeof(appendprompt), c, NO) > 0
+ ) {
+ shellpath(filename, sizeof(filename), newpat);
+ if ((file = myfopen(filename, s)) == NULL) {
+ cannotopen(filename);
+ } else {
+ seekline(1);
+ while ((c = getc(refsfound)) != EOF) {
+ putc(c, file);
+ }
+ seekline(topline);
+ fclose(file);
+ }
+ }
+ clearprompt();
+ }
+ return(NO); /* return to the previous field */
+
+ case '<': /* read lines from a file */
+ move(PRLINE, 0);
+ addstr(readprompt);
+ if (mygetline("", newpat, COLS - sizeof(readprompt),
+ '\0', NO) > 0) {
+ clearprompt();
+ shellpath(filename, sizeof(filename), newpat);
+ if (readrefs(filename) == NO) {
+ postmsg2("Ignoring an empty file");
+ return(NO);
+ }
+ return(YES);
+ }
+ clearprompt();
+ return(NO);
+
+ case '^': /* pipe the lines through a shell command */
+ case '|': /* pipe the lines to a shell command */
+ if (totallines == 0) {
+ postmsg("There are no lines to pipe to a shell command");
+ return(NO);
+ }
+ /* get the shell command */
+ move(PRLINE, 0);
+ addstr(pipeprompt);
+ if (mygetline("", newpat, COLS - sizeof(pipeprompt), '\0', NO)
+ == 0) {
+ clearprompt();
+ return(NO);
+ }
+ /* if the ^ command, redirect output to a temp file */
+ if (commandc == '^') {
+ strcat(strcat(newpat, " >"), temp2);
+ /* HBB 20020708: somebody might have even
+ * their non-interactive default shells
+ * complain about clobbering
+ * redirections... --> delete before
+ * overwriting */
+ remove(temp2);
+ }
+ exitcurses();
+ if ((file = mypopen(newpat, "w")) == NULL) {
+ fprintf(stderr, "\
+cscope: cannot open pipe to shell command: %s\n", newpat);
+ } else {
+ seekline(1);
+ while ((c = getc(refsfound)) != EOF) {
+ putc(c, file);
+ }
+ seekline(topline);
+ mypclose(file);
+ }
+ if (commandc == '^') {
+ if (readrefs(temp2) == NO) {
+ postmsg("Ignoring empty output of ^ command");
+ }
+ }
+ askforreturn();
+ entercurses();
+ break;
+#if defined(KEY_RESIZE) && !defined(__DJGPP__)
+ case KEY_RESIZE:
+ exitcurses();
+ initscr();
+ entercurses();
+#if TERMINFO
+ keypad(stdscr, TRUE); /* enable the keypad */
+#ifdef HAVE_FIXKEYPAD
+ fixkeypad(); /* fix for getch() intermittently returning garbage */
+#endif
+#endif
+#if UNIXPC
+ standend(); /* turn off reverse video */
+#endif
+ dispinit(); /* initialize display parameters */
+ setfield(); /* set the initial cursor position */
+ postmsg(""); /* clear any build progress message */
+ display(); /* display the version number and input fields */
+ break;
+#endif
+ case ctrl('L'): /* redraw screen */
+#ifdef KEY_CLEAR
+ case KEY_CLEAR:
+#endif
+ clearmsg2();
+ clearok(curscr, TRUE);
+ wrefresh(curscr);
+ drawscrollbar(topline, bottomline);
+ return(NO);
+
+ case '!': /* shell escape */
+ execute(shell, shell, NULL);
+ seekline(topline);
+ break;
+
+ case '?': /* help */
+ clear();
+ help();
+ clear();
+ seekline(topline);
+ break;
+
+ case ctrl('E'): /* edit all lines */
+ editall();
+ break;
+
+ case ctrl('A'): /* HBB 20050428: added alt. keymapping */
+ case ctrl('Y'): /* repeat last pattern */
+ if (*Pattern != '\0') {
+ addstr(Pattern);
+ goto repeat;
+ }
+ break;
+
+ case ctrl('B'): /* cmd history back */
+ case ctrl('F'): /* cmd history fwd */
+ if (selecting) {
+ selecting = 0;
+ }
+
+ curritem = currentcmd();
+ item = (commandc == ctrl('F')) ? nextcmd() : prevcmd();
+ clearmsg2();
+ if (curritem == item) { /* inform user that we're at history end */
+ postmsg2("End of input field and search pattern history");
+ }
+ if (item) {
+ field = item->field;
+ setfield();
+ atfield();
+ addstr(item->text);
+ strcpy(Pattern, item->text);
+ switch (c = mygetch()) {
+ case '\r':
+ case '\n':
+ goto repeat;
+ case ctrl('F'):
+ case ctrl('B'):
+ myungetch(c);
+ atfield();
+ clrtoeol(); /* clear current field */
+ break;
+ default:
+ myungetch(c);
+ if (mygetline(Pattern, newpat, COLS - fldcolumn - 1, '\0', caseless )) {
+ strcpy (Pattern, newpat);
+ resetcmd();
+ }
+ goto repeat;
+ break;
+ }
+ }
+ return(NO);
+
+ case '\\': /* next character is not a command */
+ addch('\\'); /* display the quote character */
+
+ /* get a character from the terminal */
+ if ((commandc = mygetch()) == EOF) {
+ return(NO); /* quit */
+ }
+ addstr("\b \b"); /* erase the quote character */
+ goto ispat;
+
+ case '.':
+ postmsg("The . command has been replaced by ^Y");
+ atfield(); /* move back to the input field */
+ /* FALLTHROUGH */
+ default:
+ if (selecting && !mouse) {
+ char *c;
+
+ if ((c = strchr(dispchars, commandc)))
+ editref(c - dispchars);
+
+ /* if this is the start of a pattern */
+ } else if (isprint(commandc)) {
+ ispat:
+ if (mygetline("", newpat, COLS - fldcolumn - 1,
+ commandc, caseless) > 0) {
+ strcpy(Pattern, newpat);
+ resetcmd(); /* reset command history */
+ repeat:
+ addcmd(field, Pattern); /* add to command history */
+ if (field == CHANGE) {
+ /* prompt for the new text */
+ move(PRLINE, 0);
+ addstr(toprompt);
+ mygetline("", newpat,
+ COLS - sizeof(toprompt),
+ '\0', NO);
+ }
+ /* search for the pattern */
+ if (search() == YES) {
+ curdispline = 0;
+ ++selecting;
+
+ switch (field) {
+ case DEFINITION:
+ case FILENAME:
+ if (totallines > 1) {
+ break;
+ }
+ topline = 1;
+ editref(0);
+ break;
+ case CHANGE:
+ return(changestring());
+ }
+
+ } else if (field == FILENAME &&
+ access(newpat, READ) == 0) {
+ /* try to edit the file anyway */
+ edit(newpat, "1");
+ }
+ } else { /* no pattern--the input was erased */
+ return(NO);
+ }
+ } else { /* control character */
+ return(NO);
+ }
+ } /* switch(commandc) */
+ return(YES);
+}
+
+/* clear the prompt line */
+
+static void
+clearprompt(void)
+{
+ move(PRLINE, 0);
+ clrtoeol();
+}
+
+/* read references from a file */
+
+BOOL
+readrefs(char *filename)
+{
+ FILE *file;
+ int c;
+
+ if ((file = myfopen(filename, "rb")) == NULL) {
+ cannotopen(filename);
+ return(NO);
+ }
+ if ((c = getc(file)) == EOF) { /* if file is empty */
+ return(NO);
+ }
+ totallines = 0;
+ disprefs = 0;
+ nextline = 1;
+ if (writerefsfound() == YES) {
+ putc(c, refsfound);
+ while ((c = getc(file)) != EOF) {
+ putc(c, refsfound);
+ }
+ fclose(file);
+ fclose(refsfound);
+ if ( (refsfound = myfopen(temp1, "rb")) == NULL) {
+ cannotopen(temp1);
+ return(NO);
+ }
+ countrefs();
+ }
+ return(YES);
+}
+
+/* change one text string to another */
+
+static BOOL
+changestring(void)
+{
+ char newfile[PATHLEN + 1]; /* new file name */
+ char oldfile[PATHLEN + 1]; /* old file name */
+ char linenum[NUMLEN + 1]; /* file line number */
+ char msg[MSGLEN + 1]; /* message */
+ FILE *script; /* shell script file */
+ BOOL anymarked = NO; /* any line marked */
+ MOUSE *p; /* mouse data */
+ int c;
+ unsigned int i;
+ char *s;
+
+ /* open the temporary file */
+ if ((script = myfopen(temp2, "w")) == NULL) {
+ cannotopen(temp2);
+ return(NO);
+ }
+ /* create the line change indicators */
+ change = mycalloc(totallines, sizeof(BOOL));
+ changing = YES;
+ mousemenu();
+
+ /* until the quit command is entered */
+ for (;;) {
+ /* display the current page of lines */
+ display();
+ same:
+ atchange();
+
+ /* get a character from the terminal */
+ if ((c = mygetch()) == EOF || c == ctrl('D')) {
+ break; /* change lines */
+ }
+ if (c == ctrl('Z')) {
+#ifdef SIGTSTP
+ kill(0, SIGTSTP);
+ goto same;
+#else
+ break; /* change lines */
+#endif
+ }
+ /* see if the input character is a command */
+ switch (c) {
+ case ' ': /* display next page */
+ case '+':
+ case ctrl('V'):
+#ifdef KEY_NPAGE
+ case KEY_NPAGE:
+#endif
+ case '-': /* display previous page */
+#ifdef KEY_PPAGE
+ case KEY_PPAGE:
+#endif
+ case '!': /* shell escape */
+ case '?': /* help */
+ command(c);
+ break;
+
+ case ctrl('L'): /* redraw screen */
+#ifdef KEY_CLEAR
+ case KEY_CLEAR:
+#endif
+ command(c);
+ goto same;
+
+ case ESC: /* don't change lines */
+#if UNIXPC
+ if((p = getmouseaction(DUMMYCHAR)) == NULL) {
+ goto nochange; /* unknown escape sequence */
+ }
+ break;
+#endif
+ case ctrl('G'):
+ goto nochange;
+
+ case '*': /* mark/unmark all displayed lines */
+ for (i = 0; topline + i < nextline; ++i) {
+ mark(i);
+ }
+ goto same;
+
+ case ctrl('A'): /* mark/unmark all lines */
+ for (i = 0; i < totallines; ++i) {
+ if (change[i] == NO) {
+ change[i] = YES;
+ } else {
+ change[i] = NO;
+ }
+ }
+ /* show that all have been marked */
+ seekline(totallines);
+ break;
+
+ case ctrl('X'): /* mouse selection */
+ if ((p = getmouseaction(DUMMYCHAR)) == NULL) {
+ goto same; /* unknown control sequence */
+ }
+ /* if the button number is a scrollbar tag */
+ if (p->button == '0') {
+ scrollbar(p);
+ break;
+ }
+ /* find the selected line */
+ /* note: the selection is forced into range */
+ for (i = disprefs - 1; i > 0; --i) {
+ if (p->y1 >= displine[i]) {
+ break;
+ }
+ }
+ mark(i);
+ goto same;
+
+ default:
+ {
+ /* if a line was selected */
+ char *cc;
+
+ if ((cc = strchr(dispchars, c)))
+ mark(cc - dispchars);
+
+ goto same;
+ } /* default case */
+ } /* switch(change code character) */
+ } /* for(ever) */
+
+ /* for each line containing the old text */
+ fprintf(script, "ed - <<\\!\n");
+ *oldfile = '\0';
+ seekline(1);
+ for (i = 0;
+ fscanf(refsfound, "%" PATHLEN_STR "s%*s%" NUMLEN_STR "s%*[^\n]", newfile, linenum) == 2;
+ ++i) {
+ /* see if the line is to be changed */
+ if (change[i] == YES) {
+ anymarked = YES;
+
+ /* if this is a new file */
+ if (strcmp(newfile, oldfile) != 0) {
+
+ /* make sure it can be changed */
+ if (access(newfile, WRITE) != 0) {
+ snprintf(msg, sizeof(msg), "Cannot write to file %s", newfile);
+ postmsg(msg);
+ anymarked = NO;
+ break;
+ }
+ /* if there was an old file */
+ if (*oldfile != '\0') {
+ fprintf(script, "w\n"); /* save it */
+ }
+ /* edit the new file */
+ strcpy(oldfile, newfile);
+ fprintf(script, "e %s\n", oldfile);
+ }
+ /* output substitute command */
+ fprintf(script, "%ss/", linenum); /* change */
+ for (s = Pattern; *s != '\0'; ++s) {
+ /* old text */
+ if (strchr("/\\[.^*", *s) != NULL) {
+ putc('\\', script);
+ }
+ if (caseless == YES && isalpha((unsigned char)*s)) {
+ putc('[', script);
+ if(islower((unsigned char)*s)) {
+ putc(toupper((unsigned char)*s), script);
+ putc(*s, script);
+ } else {
+ putc(*s, script);
+ putc(tolower((unsigned char)*s), script);
+ }
+ putc(']', script);
+ } else
+ putc(*s, script);
+ }
+ putc('/', script); /* to */
+ for (s = newpat; *s != '\0'; ++s) { /* new text */
+ if (strchr("/\\&", *s) != NULL) {
+ putc('\\', script);
+ }
+ putc(*s, script);
+ }
+ fprintf(script, "/gp\n"); /* and print */
+ }
+ }
+ fprintf(script, "w\nq\n!\n"); /* write and quit */
+ fclose(script);
+
+ /* if any line was marked */
+ if (anymarked == YES) {
+
+ /* edit the files */
+ clearprompt();
+ refresh();
+ fprintf(stderr, "Changed lines:\n\r");
+ execute("sh", "sh", temp2, NULL);
+ askforreturn();
+ seekline(1);
+ } else {
+ nochange:
+ clearprompt();
+ }
+ changing = NO;
+ mousemenu();
+ free(change);
+ return(anymarked);
+}
+
+
+/* mark/unmark this displayed line to be changed */
+static void
+mark(unsigned int i)
+{
+ unsigned int j;
+
+ j = i + topline - 1;
+ if (j < totallines) {
+ move(displine[i], 1);
+
+ if (change[j] == NO) {
+ change[j] = YES;
+ addch('>');
+ } else {
+ change[j] = NO;
+ addch(' ');
+ }
+ }
+}
+
+
+/* scrollbar actions */
+static void
+scrollbar(MOUSE *p)
+{
+ /* reposition list if it makes sense */
+ if (totallines == 0) {
+ return;
+ }
+ switch (p->percent) {
+
+ case 101: /* scroll down one page */
+ if (nextline + mdisprefs > totallines) {
+ nextline = totallines - mdisprefs + 1;
+ }
+ break;
+
+ case 102: /* scroll up one page */
+ nextline = topline - mdisprefs;
+ if (nextline < 1) {
+ nextline = 1;
+ }
+ break;
+
+ case 103: /* scroll down one line */
+ nextline = topline + 1;
+ break;
+
+ case 104: /* scroll up one line */
+ if (topline > 1) {
+ nextline = topline - 1;
+ }
+ break;
+ default:
+ nextline = p->percent * totallines / 100;
+ }
+ seekline(nextline);
+}
+
+
+/* count the references found */
+void
+countrefs(void)
+{
+ char *subsystem; /* OGS subsystem name */
+ char *book; /* OGS book name */
+ char file[PATHLEN + 1]; /* file name */
+ char function[PATLEN + 1]; /* function name */
+ char linenum[NUMLEN + 1]; /* line number */
+ int i;
+
+ /* count the references found and find the length of the file,
+ function, and line number display fields */
+ subsystemlen = 9; /* strlen("Subsystem") */
+ booklen = 4; /* strlen("Book") */
+ filelen = 4; /* strlen("File") */
+ fcnlen = 8; /* strlen("Function") */
+ numlen = 0;
+ /* HBB NOTE 2012-04-07: it may look like we shouldn't assing tempstring here,
+ * since it's not used. But it has to be assigned just so the return value
+ * of fscanf will actually reach 4. */
+ while (EOF != (i = fscanf(refsfound,
+ "%" PATHLEN_STR "s%" PATLEN_STR "s%" NUMLEN_STR "s %" TEMPSTRING_LEN_STR "[^\n]",
+ file, function, linenum, tempstring
+ )
+ )
+ ) {
+ if ( (i != 4)
+ || !isgraph((unsigned char) *file)
+ || !isgraph((unsigned char) *function)
+ || !isdigit((unsigned char) *linenum)
+ ) {
+ postmsg("File does not have expected format");
+ totallines = 0;
+ disprefs = 0;
+ return;
+ }
+ if ((i = strlen(pathcomponents(file, dispcomponents))) > filelen) {
+ filelen = i;
+ }
+ if (ogs == YES) {
+ ogsnames(file, &subsystem, &book);
+ if ((i = strlen(subsystem)) > subsystemlen) {
+ subsystemlen = i;
+ }
+ if ((i = strlen(book)) > booklen) {
+ booklen = i;
+ }
+ }
+ if ((i = strlen(function)) > fcnlen) {
+ fcnlen = i;
+ }
+ if ((i = strlen(linenum)) > numlen) {
+ numlen = i;
+ }
+ ++totallines;
+ }
+ rewind(refsfound);
+
+ /* restrict the width of displayed columns */
+ /* HBB FIXME 20060419: magic number alert! */
+ i = (COLS - 5) / 3;
+ if (ogs == YES) {
+ i = (COLS - 7) / 5;
+ }
+ if (filelen > i && i > 4) {
+ filelen = i;
+ }
+ if (subsystemlen > i && i > 9) {
+ subsystemlen = i;
+ }
+ if (booklen > i && i > 4) {
+ booklen = i;
+ }
+ if (fcnlen > i && i > 8) {
+ fcnlen = i;
+ }
+}
diff --git a/src/compath.c b/src/compath.c
new file mode 100644
index 0000000..6726ae1
--- /dev/null
+++ b/src/compath.c
@@ -0,0 +1,213 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/*
+ * compath(pathname)
+ *
+ * This compresses pathnames. All strings of multiple slashes are
+ * changed to a single slash. All occurrences of "./" are removed.
+ * Whenever possible, strings of "/.." are removed together with
+ * the directory names that they follow.
+ *
+ * WARNING: since pathname is altered by this function, it should
+ * be located in a temporary buffer. This avoids the problem
+ * of accidently changing strings obtained from makefiles
+ * and stored in global structures.
+ */
+
+static char const rcsid[] = "$Id: compath.c,v 1.3 2001/07/05 14:31:00 broeker Exp $";
+
+#include "global.h"
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+char *
+compath(char *pathname) /*FDEF*/
+{
+ char *nextchar;
+ char *lastchar;
+ char *sofar;
+ char *pnend;
+
+ int pnlen;
+
+ /*
+ * do not change the path if it has no "/"
+ */
+
+ if (strchr(pathname, '/') == NULL)
+ return(pathname);
+
+ /*
+ * find all strings consisting of more than one '/'
+ */
+
+ for (lastchar = pathname + 1; *lastchar != '\0'; lastchar++)
+ if ((*lastchar == '/') && (*(lastchar - 1) == '/'))
+ {
+
+ /*
+ * find the character after the last slash
+ */
+
+ nextchar = lastchar;
+ while (*++lastchar == '/')
+ {
+ }
+
+ /*
+ * eliminate the extra slashes by copying
+ * everything after the slashes over the slashes
+ */
+
+ sofar = nextchar;
+ while ((*nextchar++ = *lastchar++) != '\0')
+ ;
+ lastchar = sofar;
+ }
+
+ /*
+ * find all strings of "./"
+ */
+
+ for (lastchar = pathname + 1; *lastchar != '\0'; lastchar++)
+ if ((*lastchar == '/') && (*(lastchar - 1) == '.') &&
+ ((lastchar - 1 == pathname) || (*(lastchar - 2) == '/')))
+ {
+
+ /*
+ * copy everything after the "./" over the "./"
+ */
+
+ nextchar = lastchar - 1;
+ sofar = nextchar;
+ while ((*nextchar++ = *++lastchar) != '\0')
+ ;
+ lastchar = sofar;
+ }
+
+ /*
+ * find each occurrence of "/.."
+ */
+
+ for (lastchar = pathname + 1; *lastchar != '\0'; lastchar++)
+ if ((lastchar != pathname) && (*lastchar == '/') &&
+ (*(lastchar + 1) == '.') && (*(lastchar + 2) == '.') &&
+ ((*(lastchar + 3) == '/') || (*(lastchar + 3) == '\0')))
+ {
+
+ /*
+ * find the directory name preceding the "/.."
+ */
+
+ nextchar = lastchar - 1;
+ while ((nextchar != pathname) &&
+ (*(nextchar - 1) != '/'))
+ --nextchar;
+
+ /*
+ * make sure the preceding directory's name
+ * is not "." or ".."
+ */
+
+ if ((*nextchar == '.') &&
+ ((*(nextchar + 1) == '/') ||
+ ((*(nextchar + 1) == '.') && (*(nextchar + 2) == '/'))))
+ /* EMPTY */;
+ else
+ {
+
+ /*
+ * prepare to eliminate either
+ * "dir_name/../" or "dir_name/.."
+ */
+
+ if (*(lastchar + 3) == '/')
+ lastchar += 4;
+ else
+ lastchar += 3;
+
+ /*
+ * copy everything after the "/.." to
+ * before the preceding directory name
+ */
+
+ sofar = nextchar - 1;
+ while ((*nextchar++ = *lastchar++) != '\0');
+
+ lastchar = sofar;
+
+ /*
+ * if the character before what was taken
+ * out is '/', set up to check if the
+ * slash is part of "/.."
+ */
+
+ if ((sofar + 1 != pathname) && (*sofar == '/'))
+ --lastchar;
+ }
+ }
+
+ /*
+ * if the string is more than a character long and ends
+ * in '/', eliminate the '/'.
+ */
+
+ pnlen = strlen(pathname);
+ pnend = strchr(pathname, '\0') - 1;
+
+ if ((pnlen > 1) && (*pnend == '/'))
+ {
+ *pnend-- = '\0';
+ pnlen--;
+ }
+
+ /*
+ * if the string has more than two characters and ends in
+ * "/.", remove the "/.".
+ */
+
+ if ((pnlen > 2) && (*(pnend - 1) == '/') && (*pnend == '.'))
+ *--pnend = '\0';
+
+ /*
+ * if all characters were deleted, return ".";
+ * otherwise return pathname
+ */
+
+ if (*pathname == '\0')
+ (void) strcpy(pathname, ".");
+
+ return(pathname);
+}
diff --git a/src/constants.h b/src/constants.h
new file mode 100644
index 0000000..938dc5a
--- /dev/null
+++ b/src/constants.h
@@ -0,0 +1,137 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: constants.h,v 1.18 2012/04/07 14:12:07 broeker Exp $ */
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * preprocessor macro and constant definitions
+ */
+
+#ifndef CSCOPE_CONSTANTS_H
+#define CSCOPE_CONSTANTS_H
+
+#include "config.h" /* Get OS defines */
+
+#define ctrl(x) (x & 037) /* control character macro */
+
+/* fast string equality tests (avoids most strcmp() calls) */
+#define strequal(s1, s2) (*(s1) == *(s2) && strcmp(s1, s2) == 0)
+#define strnotequal(s1, s2) (*(s1) != *(s2) || strcmp(s1, s2) != 0)
+
+/* set the mark character for searching the cross-reference file */
+#define setmark(c) (blockmark = c, block[blocklen] = blockmark)
+
+/* get the next character in the cross-reference */
+/* note that blockp is assumed not to be null */
+#define getrefchar() (*(++blockp + 1) != '\0' ? *blockp : \
+ (read_block() != NULL ? *blockp : '\0'))
+
+/* skip the next character in the cross-reference */
+/* note that blockp is assumed not to be null and that
+ this macro will always be in a statement by itself */
+#define skiprefchar() if (*(++blockp + 1) == '\0') (void) read_block()
+
+#define ESC '\033' /* escape character */
+#define DEL '\177' /* delete character */
+#define DUMMYCHAR ' ' /* use space as a dummy character */
+#define MSGLEN ((PATLEN) + 80) /* displayed message length */
+#define NUMLEN 10 /* line number length */
+#define PATHLEN 250 /* file pathname length */
+#define PATLEN 250 /* symbol pattern length */
+#define TEMPSTRING_LEN 8191 /* max strlen() of the global temp string */
+#define REFFILE "cscope.out" /* cross-reference output file */
+#define NAMEFILE "cscope.files" /* default list-of-files file */
+#define INVNAME "cscope.in.out" /* inverted index to the database */
+#define INVPOST "cscope.po.out" /* inverted index postings */
+#define INVNAME2 "cscope.out.in"/* follows correct naming convention */
+#define INVPOST2 "cscope.out.po"/* follows correct naming convention */
+
+#define STMTMAX 10000 /* maximum source statement length */
+
+#define STR2(x) #x
+#define STRINGIZE(x) STR2(x)
+#define PATLEN_STR STRINGIZE(PATLEN)
+#define PATHLEN_STR STRINGIZE(PATHLEN)
+#define NUMLEN_STR STRINGIZE(NUMLEN)
+#define TEMPSTRING_LEN_STR STRINGIZE(TEMPSTRING_LEN)
+
+/* screen lines */
+#define FLDLINE (LINES - FIELDS - 1) /* first input field line */
+#define MSGLINE 0 /* message line */
+#define PRLINE (LINES - 1) /* input prompt line */
+#define REFLINE 3 /* first displayed reference line */
+
+/* input fields (value matches field order on screen) */
+#define SYMBOL 0
+#define DEFINITION 1
+#define CALLEDBY 2
+#define CALLING 3
+#define STRING 4
+#define CHANGE 5
+#define REGEXP 6
+#define FILENAME 7
+#define INCLUDES 8
+#define FIELDS 10
+
+#if (BSD || V9) && !__NetBSD__ && !__FreeBSD__
+# define TERMINFO 0 /* no terminfo curses */
+#else
+# define TERMINFO 1
+#endif
+
+
+#if !TERMINFO
+# ifndef KEY_BREAK
+# define KEY_BREAK 0400 /* easier to define than to add #if around the use */
+# endif
+# ifndef KEY_ENTER
+# define KEY_ENTER 0401
+# endif
+# ifndef KEY_BACKSPACE
+# define KEY_BACKSPACE 0402
+# endif
+
+# if !sun
+# define cbreak() crmode() /* name change */
+# endif
+
+# if UNIXPC
+# define erasechar() (_tty.c_cc[VERASE]) /* equivalent */
+# define killchar() (_tty.c_cc[VKILL]) /* equivalent */
+# else
+# define erasechar() (_tty.sg_erase) /* equivalent */
+# define killchar() (_tty.sg_kill) /* equivalent */
+# endif /* if UNIXPC */
+#endif /* if !TERMINFO */
+
+#endif /* CSCOPE_CONSTANTS_H */
diff --git a/src/crossref.c b/src/crossref.c
new file mode 100644
index 0000000..f985930
--- /dev/null
+++ b/src/crossref.c
@@ -0,0 +1,492 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * build cross-reference file
+ */
+
+#include "global.h"
+
+#include "build.h"
+#include "scanner.h"
+#include "alloc.h"
+
+#include <stdlib.h>
+#include <sys/stat.h>
+
+static char const rcsid[] = "$Id: crossref.c,v 1.15 2009/08/28 14:28:27 nhorman Exp $";
+
+
+/* convert long to a string */
+#define ltobase(value) n = value; \
+ s = buf + (sizeof(buf) - 1); \
+ *s = '\0'; \
+ digits = 1; \
+ while (n >= BASE) { \
+ ++digits; \
+ i = n; \
+ n /= BASE; \
+ *--s = i - n * BASE + '!'; \
+ } \
+ *--s = n + '!';
+
+#define SYMBOLINC 20 /* symbol list size increment */
+
+long dboffset; /* new database offset */
+BOOL errorsfound; /* prompt before clearing messages */
+long lineoffset; /* source line database offset */
+long npostings; /* number of postings */
+int nsrcoffset; /* number of file name database offsets */
+long *srcoffset; /* source file name database offsets */
+unsigned long symbols; /* number of symbols */
+
+static char *filename; /* file name for warning messages */
+static long fcnoffset; /* function name database offset */
+static long macrooffset; /* macro name database offset */
+static unsigned long msymbols = SYMBOLINC; /* maximum number of symbols */
+
+struct symbol { /* symbol data */
+ int type; /* type */
+ unsigned int first; /* index of first character in text */
+ unsigned int last; /* index of last+1 character in text */
+ unsigned int length; /* symbol length */
+ unsigned int fcn_level; /* function level of the symbol */
+};
+static struct symbol *symbol;
+
+static void putcrossref(void);
+static void savesymbol(int token, int num);
+
+void
+crossref(char *srcfile)
+{
+ unsigned int i;
+ unsigned int length; /* symbol length */
+ unsigned int entry_no; /* function level of the symbol */
+ int token; /* current token */
+ struct stat st;
+
+ if (! ((stat(srcfile, &st) == 0)
+ && S_ISREG(st.st_mode))) {
+ cannotopen(srcfile);
+ errorsfound = YES;
+ return;
+ }
+
+ entry_no = 0;
+ /* open the source file */
+ if ((yyin = myfopen(srcfile, "r")) == NULL) {
+ cannotopen(srcfile);
+ errorsfound = YES;
+ return;
+ }
+ filename = srcfile; /* save the file name for warning messages */
+ putfilename(srcfile); /* output the file name */
+ dbputc('\n');
+ dbputc('\n');
+
+ /* read the source file */
+ initscanner(srcfile);
+ fcnoffset = macrooffset = 0;
+ symbols = 0;
+ if (symbol == NULL) {
+ symbol = mymalloc(msymbols * sizeof(struct symbol));
+ }
+ for (;;) {
+
+ /* get the next token */
+ switch (token = yylex()) {
+ default:
+ /* if requested, truncate C symbols */
+ length = last - first;
+ if (trun_syms == YES && length > 8 &&
+ token != INCLUDE && token != NEWFILE) {
+ length = 8;
+ last = first + 8;
+ }
+ /* see if the token has a symbol */
+ if (length == 0) {
+ savesymbol(token, entry_no);
+ break;
+ }
+ /* update entry_no if see function entry */
+ if (token == FCNDEF) {
+ entry_no++;
+ }
+ /* see if the symbol is already in the list */
+ for (i = 0; i < symbols; ++i) {
+ if (length == symbol[i].length
+ && strncmp(my_yytext + first,
+ my_yytext + symbol[i].first,
+ length) == 0
+ && entry_no == symbol[i].fcn_level
+ && token == symbol[i].type
+ ) { /* could be a::a() */
+ break;
+ }
+ }
+ if (i == symbols) { /* if not already in list */
+ savesymbol(token, entry_no);
+ }
+ break;
+
+ case NEWLINE: /* end of line containing symbols */
+ entry_no = 0; /* reset entry_no for each line */
+#ifdef USING_LEX
+ --yyleng; /* remove the newline */
+#endif
+ putcrossref(); /* output the symbols and source line */
+ lineno = myylineno; /* save the symbol line number */
+#ifndef USING_LEX
+ /* HBB 20010425: replaced yyleng-- by this chunk: */
+ if (my_yytext)
+ *my_yytext = '\0';
+ my_yyleng = 0;
+#endif
+ break;
+
+ case LEXERR: /* Lexer error, abort further parsing of this file */
+ case LEXEOF: /* end of file; last line may not have \n */
+
+ /* if there were symbols, output them and the source line */
+ if (symbols > 0) {
+ putcrossref();
+ }
+ (void) fclose(yyin); /* close the source file */
+
+ /* output the leading tab expected by the next call */
+ dbputc('\t');
+ return;
+ }
+ }
+}
+
+/* save the symbol in the list */
+
+static void
+savesymbol(int token, int num)
+{
+ /* make sure there is room for the symbol */
+ if (symbols == msymbols) {
+ msymbols += SYMBOLINC;
+ symbol = myrealloc(symbol, msymbols * sizeof(struct symbol));
+ }
+ /* save the symbol */
+ symbol[symbols].type = token;
+ symbol[symbols].first = first;
+ symbol[symbols].last = last;
+ symbol[symbols].length = last - first;
+ symbol[symbols].fcn_level = num;
+ ++symbols;
+}
+
+/* output the file name */
+
+void
+putfilename(char *srcfile)
+{
+ /* check for file system out of space */
+ /* note: dbputc is not used to avoid lint complaint */
+ if (putc(NEWFILE, newrefs) == EOF) {
+ cannotwrite(newreffile);
+ /* NOTREACHED */
+ }
+ ++dboffset;
+ if (invertedindex == YES) {
+ srcoffset[nsrcoffset++] = dboffset;
+ }
+ dbfputs(srcfile);
+ fcnoffset = macrooffset = 0;
+}
+
+/* output the symbols and source line */
+
+static void
+putcrossref(void)
+{
+ unsigned int i, j;
+ unsigned char c;
+ BOOL blank; /* blank indicator */
+ unsigned int symput = 0; /* symbols output */
+ int type;
+
+ /* output the source line */
+ lineoffset = dboffset;
+ dboffset += fprintf(newrefs, "%d ", lineno);
+#ifdef PRINTF_RETVAL_BROKEN
+ dboffset = ftell(newrefs); /* fprintf doesn't return chars written */
+#endif
+
+ /* HBB 20010425: added this line: */
+ my_yytext[my_yyleng] = '\0';
+
+ blank = NO;
+ for (i = 0; i < my_yyleng; ++i) {
+
+ /* change a tab to a blank and compress blanks */
+ if ((c = my_yytext[i]) == ' ' || c == '\t') {
+ blank = YES;
+ } else if (symput < symbols && i == symbol[symput].first) {
+ /* look for the start of a symbol */
+
+ /* check for compressed blanks */
+ if (blank == YES) {
+ blank = NO;
+ dbputc(' ');
+ }
+ dbputc('\n'); /* symbols start on a new line */
+
+ /* output any symbol type */
+ if ((type = symbol[symput].type) != IDENT) {
+ dbputc('\t');
+ dbputc(type);
+ } else {
+ type = ' ';
+ }
+ /* output the symbol */
+ j = symbol[symput].last;
+ c = my_yytext[j];
+ my_yytext[j] = '\0';
+ if (invertedindex == YES) {
+ putposting(my_yytext + i, type);
+ }
+ writestring(my_yytext + i);
+ dbputc('\n');
+ my_yytext[j] = c;
+ i = j - 1;
+ ++symput;
+ } else {
+ /* HBB: try to save some time by early-out handling of
+ * non-compressed mode */
+ if (compress == NO) {
+ if (blank == YES) {
+ dbputc(' ');
+ blank = NO;
+ }
+ j = i + strcspn(my_yytext+i, "\t ");
+ if (symput < symbols
+ && j >= symbol[symput].first)
+ j = symbol[symput].first;
+ c = my_yytext[j];
+ my_yytext[j] = '\0';
+ writestring(my_yytext + i);
+ my_yytext[j] = c;
+ i = j - 1;
+ /* finished this 'i', continue with the blank */
+ continue;
+ }
+
+ /* check for compressed blanks */
+ if (blank == YES) {
+ if (dicode2[c]) {
+ c = DICODE_COMPRESS(' ', c);
+ } else {
+ dbputc(' ');
+ }
+ } else if (IS_A_DICODE(c, my_yytext[i + 1])
+ && symput < symbols
+ && i + 1 != symbol[symput].first) {
+ /* compress digraphs */
+ c = DICODE_COMPRESS(c, my_yytext[i + 1]);
+ ++i;
+ }
+ dbputc((int) c);
+ blank = NO;
+
+ /* skip compressed characters */
+ if (c < ' ') {
+ ++i;
+
+ /* skip blanks before a preprocesor keyword */
+ /* note: don't use isspace() because \f and \v
+ are used for keywords */
+ while ((j = my_yytext[i]) == ' ' || j == '\t') {
+ ++i;
+ }
+ /* skip the rest of the keyword */
+ while (isalpha((unsigned char)my_yytext[i])) {
+ ++i;
+ }
+ /* skip space after certain keywords */
+ if (keyword[c].delim != '\0') {
+ while ((j = my_yytext[i]) == ' ' || j == '\t') {
+ ++i;
+ }
+ }
+ /* skip a '(' after certain keywords */
+ if (keyword[c].delim == '('
+ && my_yytext[i] == '(') {
+ ++i;
+ }
+ --i; /* compensate for ++i in for() */
+ } /* if compressed char */
+ } /* else: not a symbol */
+ } /* for(i) */
+
+ /* ignore trailing blanks */
+ dbputc('\n');
+ dbputc('\n');
+
+ /* output any #define end marker */
+ /* note: must not be part of #define so putsource() doesn't discard it
+ so findcalledbysub() can find it and return */
+ if (symput < symbols && symbol[symput].type == DEFINEEND) {
+ dbputc('\t');
+ dbputc(DEFINEEND);
+ dbputc('\n');
+ dbputc('\n'); /* mark beginning of next source line */
+ macrooffset = 0;
+ }
+ symbols = 0;
+}
+
+/* HBB 20000421: new function, for avoiding memory leaks */
+/* free the cross reference symbol table */
+void
+freecrossref()
+{
+ if (symbol)
+ free(symbol);
+ symbol = NULL;
+ symbols = 0;
+}
+
+/* output the inverted index posting */
+
+void
+putposting(char *term, int type)
+{
+ long i, n;
+ char *s;
+ int digits; /* digits output */
+ long offset; /* function/macro database offset */
+ char buf[11]; /* number buffer */
+
+ /* get the function or macro name offset */
+ offset = fcnoffset;
+ if (macrooffset != 0) {
+ offset = macrooffset;
+ }
+ /* then update them to avoid negative relative name offset */
+ switch (type) {
+ case DEFINE:
+ macrooffset = dboffset;
+ break;
+ case DEFINEEND:
+ macrooffset = 0;
+ return; /* null term */
+ case FCNDEF:
+ fcnoffset = dboffset;
+ break;
+ case FCNEND:
+ fcnoffset = 0;
+ return; /* null term */
+ }
+ /* ignore a null term caused by a enum/struct/union without a tag */
+ if (*term == '\0') {
+ return;
+ }
+ /* skip any #include secondary type char (< or ") */
+ if (type == INCLUDE) {
+ ++term;
+ }
+ /* output the posting, which should be as small as possible to reduce
+ the temp file size and sort time */
+ (void) fputs(term, postings);
+ (void) putc(' ', postings);
+
+ /* the line offset is padded so postings for the same term will sort
+ in ascending line offset order to order the references as they
+ appear withing a source file */
+ ltobase(lineoffset);
+ for (i = PRECISION - digits; i > 0; --i) {
+ (void) putc('!', postings);
+ }
+ do {
+ (void) putc(*s, postings);
+ } while (*++s != '\0');
+
+ /* postings are also sorted by type */
+ (void) putc(type, postings);
+
+ /* function or macro name offset */
+ if (offset > 0) {
+ (void) putc(' ', postings);
+ ltobase(offset);
+ do {
+ (void) putc(*s, postings);
+ } while (*++s != '\0');
+ }
+ if (putc('\n', postings) == EOF) {
+ cannotwrite(temp1);
+ /* NOTREACHED */
+ }
+ ++npostings;
+}
+
+/* put the string into the new database */
+
+void
+writestring(char *s)
+{
+ unsigned char c;
+ int i;
+
+ if (compress == NO) {
+ /* Save some I/O overhead by using puts() instead of putc(): */
+ dbfputs(s);
+ return;
+ }
+ /* compress digraphs */
+ for (i = 0; (c = s[i]) != '\0'; ++i) {
+ if (/* dicode1[c] && dicode2[(unsigned char) s[i + 1]] */
+ IS_A_DICODE(c, s[i + 1])) {
+ /* c = (0200 - 2) + dicode1[c] + dicode2[(unsigned char) s[i + 1]]; */
+ c = DICODE_COMPRESS(c, s[i + 1]);
+ ++i;
+ }
+ dbputc(c);
+ }
+}
+
+/* print a warning message with the file name and line number */
+
+void
+warning(char *text)
+{
+
+ (void) fprintf(stderr, "cscope: \"%s\", line %d: warning: %s\n", filename,
+ myylineno, text);
+ errorsfound = YES;
+}
diff --git a/src/dir.c b/src/dir.c
new file mode 100644
index 0000000..cf9330d
--- /dev/null
+++ b/src/dir.c
@@ -0,0 +1,748 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * directory searching functions
+ */
+
+#include "global.h"
+#include "alloc.h"
+#include "vp.h" /* vpdirs and vpndirs */
+
+#include <stdlib.h>
+#include <sys/types.h> /* needed by stat.h and dirent.h */
+#include <dirent.h>
+#include <sys/stat.h> /* stat */
+
+static char const rcsid[] = "$Id: dir.c,v 1.32 2010/03/04 21:11:43 broeker Exp $";
+
+#define DIRSEPS " ,:" /* directory list separators */
+#define DIRINC 10 /* directory list size increment */
+#define HASHMOD 2003 /* must be a prime number */
+#define SRCINC HASHMOD /* source file list size increment */
+ /* largest known database had 22049 files */
+
+char currentdir[PATHLEN + 1];/* current directory */
+char **incdirs; /* #include directories */
+char **srcdirs; /* source directories */
+char **srcfiles; /* source files */
+unsigned long nincdirs; /* number of #include directories */
+unsigned long nsrcdirs; /* number of source directories */
+unsigned long nsrcfiles; /* number of source files */
+unsigned long msrcfiles = SRCINC; /* maximum number of source files */
+
+static char **incnames; /* #include directory names without view pathing */
+static unsigned long mincdirs = DIRINC; /* maximum number of #include directories */
+static unsigned long msrcdirs; /* maximum number of source directories */
+static unsigned long nvpsrcdirs; /* number of view path source directories */
+
+static struct listitem { /* source file names without view pathing */
+ char *text;
+ struct listitem *next;
+} *srcnames[HASHMOD];
+
+/* Internal prototypes: */
+static BOOL accessible_file(char *file);
+static BOOL issrcfile(char *file);
+static void addsrcdir(char *dir);
+static void addincdir(char *name, char *path);
+static void scan_dir(const char *dirfile, BOOL recurse);
+static void makevpsrcdirs(void);
+
+
+/* make the view source directory list */
+
+static void
+makevpsrcdirs(void)
+{
+ int i;
+
+ /* return if this function has already been called */
+ if (nsrcdirs > 0) {
+ return;
+ }
+ /* get the current directory name */
+ if (getcwd(currentdir, PATHLEN) == NULL) {
+ fprintf(stderr, "cscope: warning: cannot get current directory name\n");
+ strcpy(currentdir, "<unknown>");
+ }
+ /* see if there is a view path and this directory is in it */
+ vpinit(currentdir);
+ if (vpndirs > 1) {
+ nsrcdirs = vpndirs;
+ } else {
+ nsrcdirs = 1;
+ }
+ /* create the source directory list */
+ msrcdirs = nsrcdirs + DIRINC;
+ srcdirs = mymalloc(msrcdirs * sizeof(char *));
+ *srcdirs = "."; /* first source dir is always current dir */
+ for (i = 1; i < vpndirs; ++i) {
+ srcdirs[i] = vpdirs[i];
+ }
+ /* save the number of original source directories in the view path */
+ nvpsrcdirs = nsrcdirs;
+}
+
+/* add a source directory to the list for each view path source directory */
+
+void
+sourcedir(char *dirlist)
+{
+ char path[PATHLEN + 1];
+ char *dir;
+ unsigned int i;
+
+ makevpsrcdirs(); /* make the view source directory list */
+ dirlist = my_strdup(dirlist); /* don't change environment variable text */
+
+ /* parse the directory list */
+ dir = strtok(dirlist, DIRSEPS);
+ while (dir != NULL) {
+ int dir_len = strlen(dir);
+
+ addsrcdir(dir);
+
+ /* if it isn't a full path name and there is a
+ multi-directory view path */
+ if (*dirlist != '/' && vpndirs > 1) {
+
+ /* compute its path from higher view path source dirs */
+ for (i = 1; i < nvpsrcdirs; ++i) {
+ snprintf(path, sizeof(path), "%.*s/%s",
+ PATHLEN - 2 - dir_len,
+ srcdirs[i], dir);
+ addsrcdir(path);
+ }
+ }
+ dir = strtok(NULL, DIRSEPS);
+ }
+ free(dirlist); /* HBB 20000421: avoid memory leaks */
+}
+
+/* add a source directory to the list */
+
+static void
+addsrcdir(char *dir)
+{
+ struct stat statstruct;
+
+ /* make sure it is a directory */
+ if (lstat(compath(dir), &statstruct) == 0 &&
+ S_ISDIR(statstruct.st_mode)) {
+
+ /* note: there already is a source directory list */
+ if (nsrcdirs == msrcdirs) {
+ msrcdirs += DIRINC;
+ srcdirs = myrealloc(srcdirs, msrcdirs * sizeof(char *));
+ }
+ srcdirs[nsrcdirs++] = my_strdup(dir);
+ }
+}
+
+/* HBB 20000421: new function, for avoiding leaks */
+/* free list of src directories */
+void
+freesrclist()
+{
+ if (!srcdirs)
+ return;
+ while(nsrcdirs>1)
+ free(srcdirs[--nsrcdirs]);
+ free(srcdirs);
+}
+
+/* add a #include directory to the list for each view path source directory */
+
+void
+includedir(char *dirlist)
+{
+ char path[PATHLEN + 1];
+ char *dir;
+ unsigned int i;
+
+ makevpsrcdirs(); /* make the view source directory list */
+ dirlist = my_strdup(dirlist); /* don't change environment variable text */
+
+ /* parse the directory list */
+ dir = strtok(dirlist, DIRSEPS);
+ while (dir != NULL) {
+ size_t dir_len = strlen(dir);
+
+ addincdir(dir, dir);
+
+ /* if it isn't a full path name and there is a
+ multi-directory view path */
+ if (*dirlist != '/' && vpndirs > 1) {
+
+ /* compute its path from higher view path source dirs */
+ for (i = 1; i < nvpsrcdirs; ++i) {
+ snprintf(path, sizeof(path), "%.*s/%s",
+ (int)(PATHLEN - 2 - dir_len),
+ srcdirs[i], dir);
+ addincdir(dir, path);
+ }
+ }
+ dir = strtok(NULL, DIRSEPS);
+ }
+ free(dirlist); /* HBB 20000421: avoid leaks */
+}
+
+/* add a #include directory to the list */
+
+static void
+addincdir(char *name, char *path)
+{
+ struct stat statstruct;
+
+ /* make sure it is a directory */
+ if (lstat(compath(path), &statstruct) == 0 &&
+ S_ISDIR(statstruct.st_mode)) {
+ if (incdirs == NULL) {
+ incdirs = mymalloc(mincdirs * sizeof(char *));
+ incnames = mymalloc(mincdirs * sizeof(char *));
+ } else if (nincdirs == mincdirs) {
+ mincdirs += DIRINC;
+ incdirs = myrealloc(incdirs,
+ mincdirs * sizeof(char *));
+ incnames = myrealloc(incnames,
+ mincdirs * sizeof(char *));
+ }
+ incdirs[nincdirs] = my_strdup(path);
+ incnames[nincdirs++] = my_strdup(name);
+ }
+}
+
+/* HBB 2000421: new function, for avoiding memory leaks */
+/* free the list of include files, if wanted */
+
+void
+freeinclist()
+{
+ if (!incdirs)
+ return;
+ while(nincdirs>0) {
+ free(incdirs[--nincdirs]);
+ free(incnames[nincdirs]);
+ }
+ free(incdirs);
+ free(incnames);
+}
+
+/* make the source file list */
+
+void
+makefilelist(void)
+{
+ static BOOL firstbuild = YES; /* first time through */
+ FILE *names; /* name file pointer */
+ char dir[PATHLEN + 1];
+ char path[PATHLEN + 1];
+ char line[PATHLEN * 10];
+ char *file;
+ char *s;
+ unsigned int i;
+
+ makevpsrcdirs(); /* make the view source directory list */
+
+ /* if -i was NOT given and there are source file arguments */
+ if (namefile == NULL && fileargc > 0) {
+
+ /* put them in a list that can be expanded */
+ for (i = 0; i < fileargc; ++i) {
+ file = fileargv[i];
+ if (infilelist(file) == NO) {
+ if ((s = inviewpath(file)) != NULL) {
+ addsrcfile(s);
+ } else {
+ fprintf(stderr, "cscope: cannot find file %s\n",
+ file);
+ errorsfound = YES;
+ }
+ }
+ }
+ return;
+ }
+
+ /* see if a file name file exists */
+ if (namefile == NULL && vpaccess(NAMEFILE, READ) == 0) {
+ namefile = NAMEFILE;
+ }
+
+ if (namefile == NULL) {
+ /* No namefile --> make a list of all the source files
+ * in the directories */
+ for (i = 0; i < nsrcdirs; ++i) {
+ scan_dir(srcdirs[i], recurse_dir);
+ }
+ return;
+ }
+
+ /* Came here --> there is a file of source file names */
+
+ if (strcmp(namefile, "-") == 0)
+ names = stdin;
+ else if ((names = vpfopen(namefile, "r")) == NULL) {
+ cannotopen(namefile);
+ myexit(1);
+ }
+
+ /* get the names in the file */
+ while (fgets(line, 10*PATHLEN, names) != NULL) {
+ char *point_in_line = line + (strlen(line) - 1);
+ size_t length_of_name = 0;
+ int unfinished_option = 0;
+ BOOL done = NO;
+
+ /* Kill away \n left at end of fgets()'d string: */
+ if (*point_in_line == '\n')
+ *point_in_line = '\0';
+
+ /* Parse whitespace-terminated strings in line: */
+ point_in_line = line;
+ while (sscanf(point_in_line, "%" PATHLEN_STR "s", path) == 1) {
+ /* Have to store this length --- inviewpath() will
+ * modify path, later! */
+ length_of_name = strlen(path);
+
+ if (*path == '-') { /* if an option */
+ if (unfinished_option) {
+ /* Can't have another option directly after an
+ * -I or -p option with no name after it! */
+ fprintf(stderr, "\
+cscope: Syntax error in namelist file %s: unfinished -I or -p option\n",
+ namefile);
+ unfinished_option = 0;
+ }
+
+ i = path[1];
+ switch (i) {
+ case 'c': /* ASCII characters only in crossref */
+ compress = NO;
+ break;
+ case 'k': /* ignore DFLT_INCDIR */
+ kernelmode = YES;
+ break;
+ case 'q': /* quick search */
+ invertedindex = YES;
+ break;
+ case 'T': /* truncate symbols to 8 characters */
+ trun_syms = YES;
+ break;
+ case 'I': /* #include file directory */
+ case 'p': /* file path components to display */
+ s = path + 2; /* for "-Ipath" */
+ if (*s == '\0') { /* if "-I path" */
+ unfinished_option = i;
+ break;
+ }
+
+ /* this code block used several times in here
+ * --> make it a macro to avoid unnecessary
+ * duplication */
+#define HANDLE_OPTION_ARGUMENT(i, s) \
+ switch (i) { \
+ case 'I': /* #include file directory */ \
+ if (firstbuild == YES) { \
+ /* expand $ and ~ */ \
+ shellpath(dir, sizeof(dir), (s)); \
+ includedir(dir); \
+ } \
+ unfinished_option = 0; \
+ done = YES; \
+ break; \
+ case 'p': /* file path components to display */ \
+ if (*(s) < '0' || *(s) > '9') { \
+ fprintf(stderr, \
+"cscope: -p option in file %s: missing or invalid numeric value\n", \
+ namefile); \
+ } \
+ dispcomponents = atoi(s); \
+ unfinished_option = 0; \
+ done = YES; \
+ break; \
+ default: \
+ done = NO; \
+ } /* switch(i) */
+
+ /* ... and now call it for the first time */
+ HANDLE_OPTION_ARGUMENT(i, s)
+ break;
+ default:
+ fprintf(stderr, "cscope: only -I, -c, -k, -p, and -T options can be in file %s\n",
+ namefile);
+ } /* switch(i) */
+ } /* if('-') */
+ else if (*path == '"') {
+ /* handle quoted filenames... */
+ size_t in = 1, out = 0;
+ char *newpath = mymalloc(PATHLEN + 1);
+
+ while (in < PATHLEN && point_in_line[in] != '\0') {
+ if (point_in_line[in] == '"') {
+ newpath[out] = '\0';
+ /* Tell outer loop to skip over this entire
+ * quoted string */
+ length_of_name = in + 1;
+ break; /* found end of quoted string */
+ } else if (point_in_line[in] == '\\'
+ && in < PATHLEN - 1
+ && (point_in_line[in + 1]== '"'
+ || point_in_line[in + 1] == '\\')) {
+ /* un-escape \" or \\ sequence */
+ newpath[out++] = point_in_line[in + 1];
+ in += 2;
+ } else {
+ newpath[out++] = point_in_line[in++];
+ }
+ } /* while(in) */
+ if (in >= PATHLEN) { /* safeguard against almost-overflow */
+ newpath[out]='\0';
+ }
+
+ /* If an -I or -p arguments was missing before,
+ * treat this name as the argument: */
+ HANDLE_OPTION_ARGUMENT(unfinished_option, newpath);
+ if (! done) {
+ if ((s = inviewpath(newpath)) != NULL) {
+ addsrcfile(s);
+ } else {
+ fprintf(stderr, "cscope: cannot find file %s\n",
+ newpath);
+ errorsfound = YES;
+ }
+ }
+ } /* if(quoted name) */
+ else {
+ /* ... so this is an ordinary file name, unquoted */
+
+ /* If an -I or -p arguments was missing before,
+ * treat this name as the argument: */
+ HANDLE_OPTION_ARGUMENT(unfinished_option, path);
+ if (!done) {
+ if ((s = inviewpath(path)) != NULL) {
+ addsrcfile(s);
+ } else {
+ fprintf(stderr, "cscope: cannot find file %s\n",
+ path);
+ errorsfound = YES;
+ }
+ }
+ } /* else(ordinary name) */
+
+ point_in_line += length_of_name;
+ while (isspace((unsigned char) *point_in_line))
+ point_in_line ++;
+ } /* while(sscanf(line)) */
+ } /* while(fgets(line)) */
+
+ if (names == stdin)
+ clearerr(stdin);
+ else
+ fclose(names);
+ firstbuild = NO;
+ return;
+
+}
+
+/* scan a directory (recursively?) for source files */
+static void
+scan_dir(const char *adir, BOOL recurse_dir)
+{
+ DIR *dirfile;
+ int adir_len = strlen(adir);
+
+ /* FIXME: no guards against adir_len > PATHLEN, yet */
+
+ if ((dirfile = opendir(adir)) != NULL) {
+ struct dirent *entry;
+ char path[PATHLEN + 1];
+ char *file;
+
+ while ((entry = readdir(dirfile)) != NULL) {
+ if ((strcmp(".",entry->d_name) != 0)
+ && (strcmp("..",entry->d_name) != 0)) {
+ struct stat buf;
+
+ snprintf(path, sizeof(path), "%s/%.*s", adir,
+ PATHLEN - 2 - adir_len,
+ entry->d_name);
+
+ if (lstat(path,&buf) == 0) {
+ file = entry->d_name;
+ if (recurse_dir
+ && S_ISDIR(buf.st_mode) ) {
+ scan_dir(path, recurse_dir);
+ } else if (issrcfile(path)
+ && infilelist(path) == NO
+ && access(path, R_OK) == 0) {
+ addsrcfile(path);
+ }
+ }
+ }
+ }
+ closedir(dirfile);
+ }
+ return;
+}
+
+
+/* see if this is a source file */
+static BOOL
+issrcfile(char *path)
+{
+ struct stat statstruct;
+ char *file = mybasename(path);
+ char *s = strrchr(file, '.');
+ BOOL looks_like_source = NO;
+
+ /* ensure there is some file suffix */
+ if (s == NULL || *++s == '\0')
+ return NO;
+
+ /* if an SCCS or versioned file */
+ if (file[1] == '.' && file + 2 != s) { /* 1 character prefix */
+ switch (*file) {
+ case 's':
+ case 'S':
+ return(NO);
+ }
+ }
+
+ if (s[1] == '\0') { /* 1 character suffix */
+ switch (*s) {
+ case 'c':
+ case 'h':
+ case 'l':
+ case 'y':
+ case 'C':
+ case 'G':
+ case 'H':
+ case 'L':
+ looks_like_source = YES;
+ }
+ } else if ((s[2] == '\0') /* 2 char suffix */
+ && ((s[0] == 'b' && s[1] == 'p') /* breakpoint listing */
+ || (s[0] == 'q'
+ && (s[1] == 'c' || s[1] == 'h')) /* Ingres */
+ || (s[0] == 's' && s[1] == 'd') /* SDL */
+ || (s[0] == 'c' && s[1] == 'c') /* C++ source */
+ || (s[0] == 'h' && s[1] == 'h'))) { /* C++ header */
+ looks_like_source = YES;
+
+ } else if((s[3] == '\0') /* 3 char suffix */
+ /* C++ template source */
+ && ((s[0] == 't' && s[1] == 'c' && s[2] == 'c' )
+ /* C++ source: */
+ || (s[0] == 'c' && s[1] == 'p' && s[2] == 'p' )
+ || (s[0] == 'c' && s[1] == 'x' && s[2] == 'x' )
+ || (s[0] == 'h' && s[1] == 'p' && s[2] == 'p' )
+ || (s[0] == 'h' && s[1] == 'x' && s[2] == 'x' ))
+ ) {
+ looks_like_source = YES;
+ }
+
+ if (looks_like_source != YES)
+ return NO;
+
+ /* make sure it is a file */
+ if (lstat(path, &statstruct) == 0 &&
+ S_ISREG(statstruct.st_mode)) {
+ return(YES);
+ }
+ return NO;
+}
+
+
+/* add an include file to the source file list */
+void
+incfile(char *file, char *type)
+{
+ char name[PATHLEN + 1];
+ char path[PATHLEN + 1];
+ char *s;
+ unsigned int i;
+
+ /* see if the file is already in the source file list */
+ if (infilelist(file) == YES) {
+ return;
+ }
+ /* look in current directory if it was #include "file" */
+ if (type[0] == '"' && (s = inviewpath(file)) != NULL) {
+ addsrcfile(s);
+ } else {
+ size_t file_len = strlen(file);
+
+ /* search for the file in the #include directory list */
+ for (i = 0; i < nincdirs; ++i) {
+ /* don't include the file from two directories */
+ snprintf(name, sizeof(name), "%.*s/%s",
+ (int)(PATHLEN - 2 - file_len), incnames[i],
+ file);
+ if (infilelist(name) == YES) {
+ break;
+ }
+ /* make sure it exists and is readable */
+ snprintf(path, sizeof(path), "%.*s/%s",
+ (int)(PATHLEN - 2 - file_len), incdirs[i],
+ file);
+ if (access(compath(path), READ) == 0) {
+ addsrcfile(path);
+ break;
+ }
+ }
+ }
+}
+
+
+/* see if the file is already in the list */
+BOOL
+infilelist(char *path)
+{
+ struct listitem *p;
+
+ for (p = srcnames[hash(compath(path)) % HASHMOD];
+ p != NULL;
+ p = p->next) {
+ if (strequal(path, p->text)) {
+ return(YES);
+ }
+ }
+ return(NO);
+}
+
+
+/* check if a file is readable enough to be allowed in the
+ * database */
+static BOOL
+accessible_file(char *file)
+{
+ if (access(compath(file), READ) == 0) {
+ struct stat stats;
+
+ if (lstat(file, &stats) == 0
+ && S_ISREG(stats.st_mode)) {
+ return YES;
+ }
+ }
+ return NO;
+}
+
+/* search for the file in the view path */
+char *
+inviewpath(char *file)
+{
+ static char path[PATHLEN + 1];
+ unsigned int i;
+
+ /* look for the file */
+ if (accessible_file(file)) {
+ return(file);
+ }
+
+ /* if it isn't a full path name and there is a multi-directory
+ * view path */
+ if (*file != '/' && vpndirs > 1) {
+ int file_len = strlen(file);
+
+ /* compute its path from higher view path source dirs */
+ for (i = 1; i < nvpsrcdirs; ++i) {
+ snprintf(path, sizeof(path), "%.*s/%s",
+ PATHLEN - 2 - file_len, srcdirs[i],
+ file);
+ if (accessible_file(path)) {
+ return(path);
+ }
+ }
+ }
+ return(NULL);
+}
+
+/* add a source file to the list */
+
+void
+addsrcfile(char *path)
+{
+ struct listitem *p;
+ int i;
+
+ /* make sure there is room for the file */
+ if (nsrcfiles == msrcfiles) {
+ msrcfiles += SRCINC;
+ srcfiles = myrealloc(srcfiles, msrcfiles * sizeof(char *));
+ }
+ /* add the file to the list */
+ srcfiles[nsrcfiles++] = my_strdup(compath(path));
+ p = mymalloc(sizeof(struct listitem));
+ p->text = my_strdup(compath(path));
+ i = hash(p->text) % HASHMOD;
+ p->next = srcnames[i];
+ srcnames[i] = p;
+}
+
+/* free the memory allocated for the source file list */
+
+void
+freefilelist(void)
+{
+ struct listitem *p, *nextp;
+ int i;
+
+ /* if '-d' option is used a string space block is allocated */
+ if (isuptodate == NO) {
+ while (nsrcfiles > 0) {
+ free (srcfiles[--nsrcfiles]);
+ }
+ } else {
+ /* for '-d' option free the string space block */
+ /* protect against empty list */
+ if (nsrcfiles > 0)
+ free (srcfiles[0]);
+ nsrcfiles = 0;
+ }
+
+ free (srcfiles); /* HBB 20000421: avoid leak */
+ msrcfiles = 0;
+ srcfiles=0;
+
+ for (i = 0; i < HASHMOD; ++i) {
+ for (p = srcnames[i]; p != NULL; p = nextp) {
+ /* HBB 20000421: avoid memory leak */
+ free(p->text);
+ nextp = p->next;
+ free(p);
+ }
+ srcnames[i] = NULL;
+ }
+}
diff --git a/src/display.c b/src/display.c
new file mode 100644
index 0000000..bf5965b
--- /dev/null
+++ b/src/display.c
@@ -0,0 +1,763 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * display functions
+ */
+
+#include "global.h"
+#include "build.h"
+#include "alloc.h"
+
+#ifdef CCS
+#include "sgs.h" /* ESG_PKG and ESG_REL */
+#else
+#include "version.h" /* FILEVERSION and FIXVERSION */
+#endif
+
+#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+#include <ncurses.h>
+#else
+#include <curses.h>
+#endif
+#include <setjmp.h> /* jmp_buf */
+#include <stdarg.h> /* va_list stuff */
+#include <time.h>
+#include <errno.h>
+#include <stdarg.h>
+
+#ifndef HAVE_SIGSETJMP
+# define sigsetjmp(a,b) setjmp(a)
+# define siglongjmp(a,b) longjmp(a,b)
+typedef jmp_buf sigjmp_buf;
+#endif
+
+static char const rcsid[] = "$Id: display.c,v 1.33 2012/05/20 12:24:17 broeker Exp $";
+
+int booklen; /* OGS book name display field length */
+int *displine; /* screen line of displayed reference */
+unsigned int disprefs; /* displayed references */
+int field; /* input field */
+int filelen; /* file name display field length */
+int fcnlen; /* function name display field length */
+unsigned int mdisprefs; /* maximum displayed references */
+unsigned int nextline; /* next line to be shown */
+FILE *nonglobalrefs; /* non-global references file */
+int numlen; /* line number display field length */
+unsigned int topline = 1; /* top line of page */
+int bottomline; /* bottom line of page */
+long searchcount; /* count of files searched */
+int subsystemlen; /* OGS subsystem name display field length */
+unsigned int totallines; /* total reference lines */
+unsigned fldcolumn; /* input field column */
+
+const char dispchars[] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+static int fldline; /* input field line */
+static sigjmp_buf env; /* setjmp/longjmp buffer */
+static int lastdispline; /* last displayed reference line */
+static char lastmsg[MSGLEN + 1]; /* last message displayed */
+static char helpstring[] = "Press the ? key for help";
+static char selprompt[] =
+ "Select lines to change (press the ? key for help): ";
+
+typedef char * (*FP)(char *); /* pointer to function returning a character pointer */
+
+/* HBB 2000/05/05: I removed the casts to function pointer type. It is
+ * fundamentally unsafe to call a function through a pointer of a
+ * different type ('undefined behaviour' in the words of the ANSI/ISO
+ * C standard). Instead, I made all the find...() functions adhere to
+ * the same function type, by changing argument passing a bit. */
+static struct { /* text of input fields */
+ char *text1;
+ char *text2;
+ FP findfcn;
+} fields[FIELDS + 1] = { /* samuel has a search that is not part of the cscope display */
+ {"Find this", "C symbol", findsymbol},
+ {"Find this", "global definition", finddef},
+ {"Find", "functions called by this function", findcalledby},
+ {"Find", "functions calling this function", findcalling},
+ {"Find this", "text string", findstring},
+ {"Change this", "text string", findstring},
+ {"Find this", "egrep pattern", findregexp},
+ {"Find this", "file", findfile},
+ {"Find", "files #including this file", findinclude},
+ {"Find", "assignments to this symbol", findassign},
+ {"Find all", "function definitions", findallfcns}, /* samuel only */
+};
+
+/* Internal prototypes: */
+static RETSIGTYPE jumpback(int sig);
+
+/* initialize display parameters */
+
+void
+dispinit(void)
+{
+ /* calculate the maximum displayed reference lines */
+ lastdispline = FLDLINE - 3;
+ mdisprefs = lastdispline - REFLINE + 1;
+
+
+ if (mdisprefs <= 0) {
+ postfatal("%s: screen too small\n", argv0);
+ /* NOTREACHED */
+ }
+
+ if (mouse == NO && mdisprefs > strlen(dispchars))
+ mdisprefs = strlen(dispchars);
+
+ /* allocate the displayed line array */
+ displine = mymalloc(mdisprefs * sizeof(int));
+}
+
+/* display a page of the references */
+
+void
+display(void)
+{
+ char *subsystem; /* OGS subsystem name */
+ char *book; /* OGS book name */
+ char file[PATHLEN + 1]; /* file name */
+ char function[PATLEN + 1]; /* function name */
+ char linenum[NUMLEN + 1]; /* line number */
+ int screenline; /* screen line number */
+ int width; /* source line display width */
+ int i;
+ char *s;
+
+ /* see if this is the initial display */
+ erase();
+ if (refsfound == NULL) {
+#if CCS
+ if (displayversion == YES) {
+ printw("cscope %s", ESG_REL);
+ }
+ else {
+ printw("cscope");
+ }
+#else
+ printw("Cscope version %d%s", FILEVERSION, FIXVERSION);
+#endif
+ move(0, COLS - (int) sizeof(helpstring));
+ addstr(helpstring);
+ } else if (totallines == 0) {
+ /* if no references were found */
+ /* redisplay the last message */
+ addstr(lastmsg);
+ } else {
+ /* display the pattern */
+ if (changing == YES) {
+ printw("Change \"%s\" to \"%s\"", Pattern, newpat);
+ } else {
+ printw("%c%s: %s", toupper((unsigned char)fields[field].text2[0]),
+ fields[field].text2 + 1, Pattern);
+ }
+ /* display the column headings */
+ move(2, 2);
+ if (ogs == YES && field != FILENAME) {
+ printw("%-*s ", subsystemlen, "Subsystem");
+ printw("%-*s ", booklen, "Book");
+ }
+ if (dispcomponents > 0)
+ printw("%-*s ", filelen, "File");
+
+ if (field == SYMBOL || field == CALLEDBY || field == CALLING) {
+ printw("%-*s ", fcnlen, "Function");
+ }
+ if (field != FILENAME) {
+ addstr("Line");
+ }
+ addch('\n');
+
+ /* if at end of file go back to beginning */
+ if (nextline > totallines) {
+ seekline(1);
+ }
+ /* calculate the source text column */
+
+ width = COLS - numlen - 3;
+
+ if (ogs == YES) {
+ width -= subsystemlen + booklen + 2;
+ }
+ if (dispcomponents > 0) {
+ width -= filelen + 1;
+ }
+ if (field == SYMBOL || field == CALLEDBY || field == CALLING) {
+ width -= fcnlen + 1;
+ }
+
+ /* until the max references have been displayed or
+ there is no more room */
+ topline = nextline;
+ for (disprefs = 0, screenline = REFLINE;
+ disprefs < mdisprefs && screenline <= lastdispline;
+ ++disprefs, ++screenline) {
+ /* read the reference line */
+ if (fscanf(refsfound, "%" PATHLEN_STR "s%" PATHLEN_STR "s%" NUMLEN_STR "s %" TEMPSTRING_LEN_STR "[^\n]", file, function,
+ linenum, tempstring) < 4) {
+ break;
+ }
+ ++nextline;
+ displine[disprefs] = screenline;
+
+ /* if no mouse, display the selection number */
+ if (mouse == YES) {
+ addch(' ');
+ } else {
+ printw("%c", dispchars[disprefs]);
+ }
+
+ /* display any change mark */
+ if (changing == YES &&
+ change[topline + disprefs - 1] == YES) {
+ addch('>');
+ } else {
+ addch(' ');
+ }
+
+ /* display the file name */
+ if (field == FILENAME) {
+ printw("%-*s ", filelen, file);
+ } else {
+ /* if OGS, display the subsystem and book names */
+ if (ogs == YES) {
+ ogsnames(file, &subsystem, &book);
+ printw("%-*.*s ", subsystemlen, subsystemlen, subsystem);
+ printw("%-*.*s ", booklen, booklen, book);
+ }
+ /* display the requested path components */
+ if (dispcomponents > 0) {
+ printw("%-*.*s ", filelen, filelen,
+ pathcomponents(file, dispcomponents));
+ }
+ } /* else(field == FILENAME) */
+
+ /* display the function name */
+ if (field == SYMBOL || field == CALLEDBY || field == CALLING) {
+ printw("%-*.*s ", fcnlen, fcnlen, function);
+ }
+ if (field == FILENAME) {
+ addch('\n'); /* go to next line */
+ continue;
+ }
+
+ /* display the line number */
+ printw("%*s ", numlen, linenum);
+ /* there may be tabs in egrep output */
+ while ((s = strchr(tempstring, '\t')) != NULL) {
+ *s = ' ';
+ }
+
+ /* display the source line */
+ s = tempstring;
+ for (;;) {
+ /* see if the source line will fit */
+ if ((i = strlen(s)) > width) {
+
+ /* find the nearest blank */
+ for (i = width; s[i] != ' ' && i > 0; --i) {
+ ;
+ }
+ if (i == 0) {
+ i = width; /* no blank */
+ }
+ }
+ /* print up to this point */
+ printw("%.*s", i, s);
+ s += i;
+
+ /* if line didn't wrap around */
+ if (i < width) {
+ addch('\n'); /* go to next line */
+ }
+ /* skip blanks */
+ while (*s == ' ') {
+ ++s;
+ }
+ /* see if there is more text */
+ if (*s == '\0') {
+ break;
+ }
+ /* if the source line is too long */
+ if (++screenline > lastdispline) {
+
+ /* if this is the first displayed line,
+ display what will fit on the screen */
+ if (topline == nextline -1) {
+ disprefs++;
+ /* break out of two loops */
+ goto endrefs;
+ }
+
+ /* erase the reference */
+ while (--screenline >= displine[disprefs]) {
+ move(screenline, 0);
+ clrtoeol();
+ }
+ ++screenline;
+
+ /* go back to the beginning of this reference */
+ --nextline;
+ seekline(nextline);
+ goto endrefs;
+ }
+ /* indent the continued source line */
+ move(screenline, COLS - width);
+ } /* for(ever) */
+ } /* for(reference output lines) */
+ endrefs:
+ /* position the cursor for the message */
+ i = FLDLINE - 1;
+ if (screenline < i) {
+ addch('\n');
+ }
+ else {
+ move(i, 0);
+ }
+ /* check for more references */
+ i = totallines - nextline + 1;
+ bottomline = nextline;
+ if (i > 0) {
+ printw("* Lines %d-%d of %d, %d more - press the space bar to display more *", topline, bottomline, totallines, i);
+ }
+ /* if this is the last page of references */
+ else if (topline > 1 && nextline > totallines) {
+ addstr("* Press the space bar to display the first lines again *");
+ }
+ }
+ /* display the input fields */
+ move(FLDLINE, 0);
+ for (i = 0; i < FIELDS; ++i) {
+ printw("%s %s:\n", fields[i].text1, fields[i].text2);
+ }
+ /* display any prompt */
+ if (changing == YES) {
+ move(PRLINE, 0);
+ addstr(selprompt);
+ }
+ drawscrollbar(topline, nextline); /* display the scrollbar */
+ refresh();
+}
+
+/* set the cursor position for the field */
+void
+setfield(void)
+{
+ fldline = FLDLINE + field;
+ fldcolumn = strlen(fields[field].text1) + strlen(fields[field].text2) + 3;
+}
+
+/* move to the current input field */
+
+void
+atfield(void)
+{
+ move(fldline, fldcolumn);
+}
+
+/* move to the changing lines prompt */
+
+void
+atchange(void)
+{
+ move(PRLINE, (int) sizeof(selprompt) - 1);
+}
+
+/* search for the symbol or text pattern */
+
+/*ARGSUSED*/
+static RETSIGTYPE
+jumpback(int sig)
+{
+ /* HBB NEW 20031008: try whether reinstating signal handler
+ * helps... */
+ signal(sig, jumpback);
+ siglongjmp(env, 1);
+}
+
+BOOL
+search(void)
+{
+ char *findresult = NULL; /* find function output */
+ BOOL funcexist = YES; /* find "function" error */
+ FINDINIT rc = NOERROR; /* findinit return code */
+ sighandler_t savesig; /* old value of signal */
+ FP f; /* searching function */
+ int c;
+
+ /* open the references found file for writing */
+ if (writerefsfound() == NO) {
+ return(NO);
+ }
+ /* find the pattern - stop on an interrupt */
+ if (linemode == NO) {
+ postmsg("Searching");
+ }
+ searchcount = 0;
+ savesig = signal(SIGINT, jumpback);
+ if (sigsetjmp(env, 1) == 0) {
+ f = fields[field].findfcn;
+ if (f == findregexp || f == findstring) {
+ findresult = (*f)(Pattern);
+ } else {
+ if ((nonglobalrefs = myfopen(temp2, "wb")) == NULL) {
+ cannotopen(temp2);
+ return(NO);
+ }
+ if ((rc = findinit(Pattern)) == NOERROR) {
+ (void) dbseek(0L); /* read the first block */
+ findresult = (*f)(Pattern);
+ if (f == findcalledby)
+ funcexist = (*findresult == 'y');
+ findcleanup();
+
+ /* append the non-global references */
+ (void) fclose(nonglobalrefs);
+ if ((nonglobalrefs = myfopen(temp2, "rb"))
+ == NULL) {
+ cannotopen(temp2);
+ return(NO);
+ }
+ while ((c = getc(nonglobalrefs)) != EOF) {
+ (void) putc(c, refsfound);
+ }
+ }
+ (void) fclose(nonglobalrefs);
+ }
+ }
+ signal(SIGINT, savesig);
+
+ /* rewind the cross-reference file */
+ (void) lseek(symrefs, (long) 0, 0);
+
+ /* reopen the references found file for reading */
+ (void) fclose(refsfound);
+ if ((refsfound = myfopen(temp1, "rb")) == NULL) {
+ cannotopen(temp1);
+ return(NO);
+ }
+ nextline = 1;
+ totallines = 0;
+ disprefs = 0;
+
+ /* see if it is empty */
+ if ((c = getc(refsfound)) == EOF) {
+ if (findresult != NULL) {
+ (void) snprintf(lastmsg, sizeof(lastmsg), "Egrep %s in this pattern: %s",
+ findresult, Pattern);
+ } else if (rc == NOTSYMBOL) {
+ (void) snprintf(lastmsg, sizeof(lastmsg), "This is not a C symbol: %s",
+ Pattern);
+ } else if (rc == REGCMPERROR) {
+ (void) snprintf(lastmsg, sizeof(lastmsg), "Error in this regcomp(3) regular expression: %s",
+ Pattern);
+
+ } else if (funcexist == NO) {
+ (void) snprintf(lastmsg, sizeof(lastmsg), "Function definition does not exist: %s",
+ Pattern);
+ } else {
+ (void) snprintf(lastmsg, sizeof(lastmsg), "Could not find the %s: %s",
+ fields[field].text2, Pattern);
+ }
+ return(NO);
+ }
+ /* put back the character read */
+ (void) ungetc(c, refsfound);
+
+ /* HBB 20041027: this used to hold a copy of the code of
+ * countrefs(), but with the crucial display width adjustments
+ * missing. Just call the real thing instead! */
+ countrefs();
+ return(YES);
+}
+
+/* display search progress with default custom format */
+
+void
+progress(char *what, long current, long max)
+{
+ static long start;
+ long now;
+ char msg[MSGLEN + 1];
+ int i;
+
+ /* save the start time */
+ if (searchcount == 0) {
+ start = time(NULL);
+ }
+ if ((now = time(NULL)) - start >= 1)
+ {
+ if (linemode == NO)
+ {
+ move(MSGLINE, 0);
+ clrtoeol();
+ addstr(what);
+ snprintf(msg, sizeof(msg), "%ld", current);
+ move(MSGLINE, (COLS / 2) - (strlen(msg) / 2));
+ addstr(msg);
+ snprintf(msg, sizeof(msg), "%ld", max);
+ move(MSGLINE, COLS - strlen(msg));
+ addstr(msg);
+ refresh();
+ }
+ else if (verbosemode == YES)
+ {
+ snprintf(msg, sizeof(msg), "> %s %ld of %ld", what, current, max);
+ }
+
+ start = now;
+ if ((linemode == NO) && (incurses == YES))
+ {
+ move(MSGLINE, 0);
+ i = (float)COLS * (float)current / (float)max;
+
+ standout();
+ for (; i > 0; i--)
+ addch(inch());
+ standend();
+ refresh();
+ }
+ else
+ if (linemode == NO || verbosemode == YES)
+ postmsg(msg);
+ }
+ ++searchcount;
+}
+
+/* print error message on system call failure */
+
+void
+myperror(char *text)
+{
+ char msg[MSGLEN + 1]; /* message */
+ char *s;
+
+ s = "Unknown error";
+#ifdef HAVE_STRERROR
+ s = strerror(errno);
+#else
+ if (errno < sys_nerr) {
+ s = sys_errlist[errno];
+ }
+#endif
+ (void) snprintf(msg, sizeof(msg), "%s: %s", text, s);
+ postmsg(msg);
+}
+
+/* postmsg clears the message line and prints the message */
+
+/* VARARGS */
+void
+postmsg(char *msg)
+{
+ if (linemode == YES || incurses == NO) {
+ (void) printf("%s\n", msg);
+ fflush(stdout);
+ }
+ else {
+ clearmsg();
+ addstr(msg);
+ refresh();
+ }
+ (void) strncpy(lastmsg, msg, sizeof(lastmsg) - 1);
+}
+
+/* clearmsg clears the first message line */
+
+void
+clearmsg(void)
+{
+ if (linemode == NO) {
+ move(MSGLINE, 0);
+ clrtoeol();
+ }
+}
+
+/* clearmsg2 clears the second message line */
+
+void
+clearmsg2(void)
+{
+ if (linemode == NO) {
+ move(MSGLINE + 1, 0);
+ clrtoeol();
+ }
+}
+
+/* postmsg2 clears the second message line and prints the message */
+
+void
+postmsg2(char *msg)
+{
+ if (linemode == YES) {
+ (void) printf("%s\n", msg);
+ }
+ else {
+ clearmsg2();
+ addstr(msg);
+ refresh();
+ }
+}
+
+/* display an error mesg - stdout or on second msg line */
+void
+posterr(char *msg, ...)
+{
+ va_list ap;
+ char errbuf[MSGLEN];
+
+ va_start(ap, msg);
+ if (linemode == YES || incurses == NO)
+ {
+ (void) vfprintf(stderr, msg, ap);
+ (void) fputc('\n', stderr);
+ } else {
+ vsnprintf(errbuf, sizeof(errbuf), msg, ap);
+ postmsg2(errbuf);
+ }
+}
+
+/* display a fatal error mesg -- stderr *after* shutting down curses */
+void
+postfatal(const char *msg, ...)
+{
+ va_list ap;
+ char errbuf[MSGLEN];
+
+ va_start(ap, msg);
+ vsnprintf(errbuf, sizeof(errbuf), msg, ap);
+ /* restore the terminal to its original mode */
+ if (incurses == YES) {
+ exitcurses();
+ }
+
+ /* display fatal error messages */
+ fprintf(stderr,"%s",errbuf);
+
+ /* shut down */
+ myexit(1);
+}
+
+ /* position references found file at specified line */
+
+void
+seekline(unsigned int line)
+{
+ int c;
+
+ /* verify that there is a references found file */
+ if (refsfound == NULL) {
+ return;
+ }
+ /* go to the beginning of the file */
+ rewind(refsfound);
+
+ /* find the requested line */
+ nextline = 1;
+ while (nextline < line && (c = getc(refsfound)) != EOF) {
+ if (c == '\n') {
+ nextline++;
+ }
+ }
+}
+
+/* get the OGS subsystem and book names */
+
+void
+ogsnames(char *file, char **subsystem, char **book)
+{
+ static char buf[PATHLEN + 1];
+ char *s, *slash;
+
+ *subsystem = *book = "";
+ (void) strcpy(buf,file);
+ s = buf;
+ if (*s == '/') {
+ ++s;
+ }
+ while ((slash = strchr(s, '/')) != NULL) {
+ *slash = '\0';
+ if ((int)strlen(s) >= 3 && strncmp(slash - 3, ".ss", 3) == 0) {
+ *subsystem = s;
+ s = slash + 1;
+ if ((slash = strchr(s, '/')) != NULL) {
+ *book = s;
+ *slash = '\0';
+ }
+ break;
+ }
+ s = slash + 1;
+ }
+}
+
+/* get the requested path components */
+
+char *
+pathcomponents(char *path, int components)
+{
+ int i;
+ char *s;
+
+ s = path + strlen(path) - 1;
+ for (i = 0; i < components; ++i) {
+ while (s > path && *--s != '/') {
+ ;
+ }
+ }
+ if (s > path && *s == '/') {
+ ++s;
+ }
+ return(s);
+}
+
+/* open the references found file for writing */
+
+BOOL
+writerefsfound(void)
+{
+ if (refsfound == NULL) {
+ if ((refsfound = myfopen(temp1, "wb")) == NULL) {
+ cannotopen(temp1);
+ return(NO);
+ }
+ } else {
+ (void) fclose(refsfound);
+ if ( (refsfound = myfopen(temp1, "wb")) == NULL) {
+ postmsg("Cannot reopen temporary file");
+ return(NO);
+ }
+ }
+ return(YES);
+}
diff --git a/src/edit.c b/src/edit.c
new file mode 100644
index 0000000..0f4edec
--- /dev/null
+++ b/src/edit.c
@@ -0,0 +1,139 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * file editing functions
+ */
+
+#include "global.h"
+#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+#include <ncurses.h>
+#else
+#include <curses.h>
+#endif
+
+static char const rcsid[] = "$Id: edit.c,v 1.7 2009/04/10 13:39:23 broeker Exp $";
+
+/* edit this displayed reference */
+
+void
+editref(int i)
+{
+ char file[PATHLEN + 1]; /* file name */
+ char linenum[NUMLEN + 1]; /* line number */
+
+ /* verify that there is a references found file */
+ if (refsfound == NULL) {
+ return;
+ }
+ /* get the selected line */
+ seekline(i + topline);
+
+ /* get the file name and line number */
+ if (fscanf(refsfound, "%" PATHLEN_STR "s%*s%" NUMLEN_STR "s", file, linenum) == 2) {
+ edit(file, linenum); /* edit it */
+ }
+ seekline(topline); /* restore the line pointer */
+}
+
+/* edit all references */
+
+void
+editall(void)
+{
+ char file[PATHLEN + 1]; /* file name */
+ char linenum[NUMLEN + 1]; /* line number */
+ int c;
+
+ /* verify that there is a references found file */
+ if (refsfound == NULL) {
+ return;
+ }
+ /* get the first line */
+ seekline(1);
+
+ /* get each file name and line number */
+ while (fscanf(refsfound, "%" PATHLEN_STR "s%*s%" NUMLEN_STR "s%*[^\n]", file, linenum) == 2) {
+ edit(file, linenum); /* edit it */
+ if (editallprompt == YES) {
+ addstr("Type ^D to stop editing all lines, or any other character to continue: ");
+ if ((c = mygetch()) == EOF || c == ctrl('D') || c == ctrl('Z')) {
+ break;
+ }
+ }
+ }
+ seekline(topline);
+}
+
+/* call the editor */
+
+void
+edit(char *file, char *linenum)
+{
+ char msg[MSGLEN + 1]; /* message */
+ char plusnum[NUMLEN + 20]; /* line number option: allow space for wordy line# flag */
+ char *s;
+
+ file = filepath(file);
+ (void) snprintf(msg, sizeof(msg), "%s +%s %s", mybasename(editor), linenum, file);
+ postmsg(msg);
+ (void) snprintf(plusnum, sizeof(plusnum), lineflag, linenum);
+ /* if this is the more or page commands */
+ if (strcmp(s = mybasename(editor), "more") == 0 || strcmp(s, "page") == 0) {
+
+ /* get it to pause after displaying a file smaller than the screen
+ length */
+ (void) execute(editor, editor, plusnum, file, "/dev/null", NULL);
+ }
+ else if (lineflagafterfile) {
+ (void) execute(editor, editor, file, plusnum, NULL);
+ }
+ else {
+ (void) execute(editor, editor, plusnum, file, NULL);
+ }
+ clear(); /* redisplay screen */
+}
+
+/* if requested, prepend a path to a relative file name */
+
+char *
+filepath(char *file)
+{
+ static char path[PATHLEN + 1];
+
+ if (prependpath != NULL && *file != '/') {
+ (void) snprintf(path, sizeof(path), "%s/%s", prependpath, file);
+ file = path;
+ }
+ return(file);
+}
diff --git a/src/egrep.c b/src/egrep.c
new file mode 100644
index 0000000..8ccf872
--- /dev/null
+++ b/src/egrep.c
@@ -0,0 +1,2318 @@
+/* A Bison parser, made by GNU Bison 2.4.2. */
+
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989-1990, 2000-2006, 2009-2010 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 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, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
+
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
+
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+/* Identify Bison output. */
+#define YYBISON 1
+
+/* Bison version. */
+#define YYBISON_VERSION "2.4.2"
+
+/* Skeleton name. */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers. */
+#define YYPURE 0
+
+/* Push parsers. */
+#define YYPUSH 0
+
+/* Pull parsers. */
+#define YYPULL 1
+
+/* Using locations. */
+#define YYLSP_NEEDED 0
+
+
+
+/* Copy the first part of user declarations. */
+
+/* Line 189 of yacc.c */
+#line 1 "egrep.y"
+
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: egrep.y,v 1.11 2006/04/21 10:45:48 broeker Exp $ */
+
+/*
+ * egrep -- fine lines containing a regular expression
+ */
+
+/* Line 189 of yacc.c */
+#line 47 "egrep.y"
+
+#include "global.h"
+#include <ctype.h>
+#include <stdio.h>
+
+#include <setjmp.h> /* jmp_buf */
+
+#define nextch() (*input++)
+
+#define MAXLIN 350
+#define MAXPOS 4000
+#define NCHARS 256
+#define NSTATES 128
+#define FINAL -1
+static char gotofn[NSTATES][NCHARS];
+static int state[NSTATES];
+static char out[NSTATES];
+static unsigned int line;
+static int name[MAXLIN];
+static unsigned int left[MAXLIN];
+static unsigned int right[MAXLIN];
+static unsigned int parent[MAXLIN];
+static int foll[MAXLIN];
+static int positions[MAXPOS];
+static char chars[MAXLIN];
+static int nxtpos;
+static int nxtchar;
+static int tmpstat[MAXLIN];
+static int initstat[MAXLIN];
+static int xstate;
+static int count;
+static int icount;
+static char *input;
+static long lnum;
+static int iflag;
+static jmp_buf env; /* setjmp/longjmp buffer */
+static char *message; /* error message */
+
+/* Internal prototypes: */
+static void cfoll(int v);
+static void cgotofn(void);
+static int cstate(int v);
+static int member(int symb, int set, int torf);
+static int notin(int n);
+static void synerror(void);
+static void overflo(void);
+static void add(int *array, int n);
+static void follow(unsigned int v);
+static int unary(int x, int d);
+static int node(int x, int l, int r);
+static unsigned int cclenter(int x);
+static unsigned int enter(int x);
+
+static int yylex(void);
+static int yyerror(char *);
+
+
+/* Line 189 of yacc.c */
+#line 171 "egrep.c"
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ CHAR = 258,
+ DOT = 259,
+ CCL = 260,
+ NCCL = 261,
+ OR = 262,
+ CAT = 263,
+ STAR = 264,
+ PLUS = 265,
+ QUEST = 266
+ };
+#endif
+/* Tokens. */
+#define CHAR 258
+#define DOT 259
+#define CCL 260
+#define NCCL 261
+#define OR 262
+#define CAT 263
+#define STAR 264
+#define PLUS 265
+#define QUEST 266
+
+
+
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
+typedef int YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+#endif
+
+
+/* Copy the second part of user declarations. */
+
+
+/* Line 264 of yacc.c */
+#line 235 "egrep.c"
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
+
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
+
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+# define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+# define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# else
+# define YYSIZE_T unsigned int
+# endif
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if defined YYENABLE_NLS && YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(msgid) msgid
+# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E. */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions. */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int yyi)
+#else
+static int
+YYID (yyi)
+ int yyi;
+#endif
+{
+ return yyi;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols. */
+
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# elif defined __BUILTIN_VA_ARG_INCR
+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+# elif defined _AIX
+# define YYSTACK_ALLOC __alloca
+# elif defined _MSC_VER
+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+# define alloca _alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# endif
+# endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
+# endif
+# else
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+# endif
+# if (defined __cplusplus && ! defined _STDLIB_H \
+ && ! ((defined YYMALLOC || defined malloc) \
+ && (defined YYFREE || defined free)))
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifndef YYFREE
+# define YYFREE free
+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# endif
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
+
+
+#if (! defined yyoverflow \
+ && (! defined __cplusplus \
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member. */
+union yyalloc
+{
+ yytype_int16 yyss_alloc;
+ YYSTYPE yyvs_alloc;
+};
+
+/* The size of the maximum gap between one aligned stack and the next. */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+# define YYSTACK_BYTES(N) \
+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined __GNUC__ && 1 < __GNUC__
+# define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
+ Stack = &yyptr->Stack_alloc; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (YYID (0))
+
+#endif
+
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL 6
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST 108
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 14
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 5
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 18
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 25
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 266
+
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const yytype_uint8 yytranslate[] =
+{
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 12, 13, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11
+};
+
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const yytype_uint8 yyprhs[] =
+{
+ 0, 0, 3, 5, 8, 13, 17, 21, 22, 24,
+ 26, 28, 30, 34, 37, 40, 43, 46, 50
+};
+
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yytype_int8 yyrhs[] =
+{
+ 15, 0, -1, 16, -1, 17, 18, -1, 7, 17,
+ 18, 7, -1, 7, 17, 18, -1, 17, 18, 7,
+ -1, -1, 3, -1, 4, -1, 5, -1, 6, -1,
+ 18, 7, 18, -1, 18, 18, -1, 18, 9, -1,
+ 18, 10, -1, 18, 11, -1, 12, 18, 13, -1,
+ 1, -1
+};
+
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const yytype_uint8 yyrline[] =
+{
+ 0, 105, 105, 110, 112, 114, 116, 120, 123, 125,
+ 127, 129, 133, 135, 137, 139, 141, 143, 145
+};
+#endif
+
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+ "$end", "error", "$undefined", "CHAR", "DOT", "CCL", "NCCL", "OR",
+ "CAT", "STAR", "PLUS", "QUEST", "'('", "')'", "$accept", "s", "t", "b",
+ "r", 0
+};
+#endif
+
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const yytype_uint16 yytoknum[] =
+{
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 40, 41
+};
+# endif
+
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const yytype_uint8 yyr1[] =
+{
+ 0, 14, 15, 16, 16, 16, 16, 17, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18
+};
+
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const yytype_uint8 yyr2[] =
+{
+ 0, 2, 1, 2, 4, 3, 3, 0, 1, 1,
+ 1, 1, 3, 2, 2, 2, 2, 3, 1
+};
+
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+static const yytype_uint8 yydefact[] =
+{
+ 7, 7, 0, 2, 0, 0, 1, 18, 8, 9,
+ 10, 11, 0, 0, 0, 0, 0, 14, 15, 16,
+ 0, 0, 0, 17, 0
+};
+
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yytype_int8 yydefgoto[] =
+{
+ -1, 2, 3, 4, 20
+};
+
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -5
+static const yytype_int8 yypact[] =
+{
+ 2, -5, 3, -5, 1, 1, -5, -5, -5, -5,
+ -5, -5, 1, 47, 60, 72, 86, -5, -5, -5,
+ 19, 96, 1, -5, 33
+};
+
+/* YYPGOTO[NTERM-NUM]. */
+static const yytype_int8 yypgoto[] =
+{
+ -5, -5, -5, 9, -4
+};
+
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+#define YYTABLE_NINF -14
+static const yytype_int8 yytable[] =
+{
+ 13, 14, 7, 6, 8, 9, 10, 11, 15, 1,
+ 5, 0, 24, 12, 0, 0, 0, 24, 24, -13,
+ 7, 0, -13, -13, -13, -13, -13, 0, 17, 18,
+ 19, -13, -13, -12, 7, 0, 8, 9, 10, 11,
+ -12, 0, 17, 18, 19, 12, -12, -3, 7, 0,
+ 8, 9, 10, 11, 16, 0, 17, 18, 19, 12,
+ -5, 7, 0, 8, 9, 10, 11, 21, 0, 17,
+ 18, 19, 12, 7, 0, 8, 9, 10, 11, 22,
+ 0, 17, 18, 19, 12, 23, -6, 7, 0, 8,
+ 9, 10, 11, 0, 0, 0, -4, 7, 12, 8,
+ 9, 10, 11, 0, 0, 0, 0, 0, 12
+};
+
+static const yytype_int8 yycheck[] =
+{
+ 4, 5, 1, 0, 3, 4, 5, 6, 12, 7,
+ 1, -1, 16, 12, -1, -1, -1, 21, 22, 0,
+ 1, -1, 3, 4, 5, 6, 7, -1, 9, 10,
+ 11, 12, 13, 0, 1, -1, 3, 4, 5, 6,
+ 7, -1, 9, 10, 11, 12, 13, 0, 1, -1,
+ 3, 4, 5, 6, 7, -1, 9, 10, 11, 12,
+ 0, 1, -1, 3, 4, 5, 6, 7, -1, 9,
+ 10, 11, 12, 1, -1, 3, 4, 5, 6, 7,
+ -1, 9, 10, 11, 12, 13, 0, 1, -1, 3,
+ 4, 5, 6, -1, -1, -1, 0, 1, 12, 3,
+ 4, 5, 6, -1, -1, -1, -1, -1, 12
+};
+
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const yytype_uint8 yystos[] =
+{
+ 0, 7, 15, 16, 17, 17, 0, 1, 3, 4,
+ 5, 6, 12, 18, 18, 18, 7, 9, 10, 11,
+ 18, 7, 7, 13, 18
+};
+
+#define yyerrok (yyerrstatus = 0)
+#define yyclearin (yychar = YYEMPTY)
+#define YYEMPTY (-2)
+#define YYEOF 0
+
+#define YYACCEPT goto yyacceptlab
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror. This remains here temporarily
+ to ease the transition to the new meaning of YYERROR, for GCC.
+ Once GCC version 2 has supplanted version 1, this can go. However,
+ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
+ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+ discussed. */
+
+#define YYFAIL goto yyerrlab
+#if defined YYFAIL
+ /* This is here to suppress warnings from the GCC cpp's
+ -Wunused-macros. Normally we don't worry about that warning, but
+ some users do, and we want to make it easy for users to remove
+ YYFAIL uses, which will produce warnings from Bison 2.5. */
+#endif
+
+#define YYRECOVERING() (!!yyerrstatus)
+
+#define YYBACKUP(Token, Value) \
+do \
+ if (yychar == YYEMPTY && yylen == 1) \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
+ YYPOPSTACK (1); \
+ goto yybackup; \
+ } \
+ else \
+ { \
+ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
+while (YYID (0))
+
+
+#define YYTERROR 1
+#define YYERRCODE 256
+
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (YYID (N)) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (YYID (0))
+#endif
+
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
+
+#ifndef YY_LOCATION_PRINT
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
+
+/* YYLEX -- calling `yylex' with the right arguments. */
+
+#ifdef YYLEX_PARAM
+# define YYLEX yylex (YYLEX_PARAM)
+#else
+# define YYLEX yylex ()
+#endif
+
+/* Enable debugging if requested. */
+#if YYDEBUG
+
+# ifndef YYFPRINTF
+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+# define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (YYID (0))
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Type, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (YYID (0))
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
+#endif
+{
+ if (!yyvaluep)
+ return;
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+ YYUSE (yyoutput);
+# endif
+ switch (yytype)
+ {
+ default:
+ break;
+ }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
+#endif
+{
+ if (yytype < YYNTOKENS)
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+ YYFPRINTF (yyoutput, ")");
+}
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included). |
+`------------------------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
+#else
+static void
+yy_stack_print (yybottom, yytop)
+ yytype_int16 *yybottom;
+ yytype_int16 *yytop;
+#endif
+{
+ YYFPRINTF (stderr, "Stack now");
+ for (; yybottom <= yytop; yybottom++)
+ {
+ int yybot = *yybottom;
+ YYFPRINTF (stderr, " %d", yybot);
+ }
+ YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (YYID (0))
+
+
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced. |
+`------------------------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
+#else
+static void
+yy_reduce_print (yyvsp, yyrule)
+ YYSTYPE *yyvsp;
+ int yyrule;
+#endif
+{
+ int yynrhs = yyr2[yyrule];
+ int yyi;
+ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ YYFPRINTF (stderr, " $%d = ", yyi + 1);
+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
+ );
+ YYFPRINTF (stderr, "\n");
+ }
+}
+
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
+
+/* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
+
+
+/* YYINITDEPTH -- initial size of the parser's stacks. */
+#ifndef YYINITDEPTH
+# define YYINITDEPTH 200
+#endif
+
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+ if the built-in stack extension method is used).
+
+ Do not make this value too large; the results are undefined if
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
+
+#ifndef YYMAXDEPTH
+# define YYMAXDEPTH 10000
+#endif
+
+
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+# if defined __GLIBC__ && defined _STRING_H
+# define yystrlen strlen
+# else
+/* Return the length of YYSTR. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static YYSIZE_T
+yystrlen (const char *yystr)
+#else
+static YYSIZE_T
+yystrlen (yystr)
+ const char *yystr;
+#endif
+{
+ YYSIZE_T yylen;
+ for (yylen = 0; yystr[yylen]; yylen++)
+ continue;
+ return yylen;
+}
+# endif
+# endif
+
+# ifndef yystpcpy
+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+# define yystpcpy stpcpy
+# else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static char *
+yystpcpy (char *yydest, const char *yysrc)
+#else
+static char *
+yystpcpy (yydest, yysrc)
+ char *yydest;
+ const char *yysrc;
+#endif
+{
+ char *yyd = yydest;
+ const char *yys = yysrc;
+
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
+
+ return yyd - 1;
+}
+# endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+ quotes and backslashes, so that it's suitable for yyerror. The
+ heuristic is that double-quoting is unnecessary unless the string
+ contains an apostrophe, a comma, or backslash (other than
+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
+ null, do not copy; instead, return the length of what the result
+ would have been. */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+ if (*yystr == '"')
+ {
+ YYSIZE_T yyn = 0;
+ char const *yyp = yystr;
+
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
+ do_not_strip_quotes: ;
+ }
+
+ if (! yyres)
+ return yystrlen (yystr);
+
+ return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
+
+/* Copy into YYRESULT an error message about the unexpected token
+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
+ including the terminating null byte. If YYRESULT is null, do not
+ copy anything; just return the number of bytes that would be
+ copied. As a special case, return 0 if an ordinary "syntax error"
+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
+ size calculation. */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
+{
+ int yyn = yypact[yystate];
+
+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+ return 0;
+ else
+ {
+ int yytype = YYTRANSLATE (yychar);
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ int yysize_overflow = 0;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ int yyx;
+
+# if 0
+ /* This is so xgettext sees the translatable formats that are
+ constructed on the fly. */
+ YY_("syntax error, unexpected %s");
+ YY_("syntax error, unexpected %s, expecting %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+ char *yyfmt;
+ char const *yyf;
+ static char const yyunexpected[] = "syntax error, unexpected %s";
+ static char const yyexpecting[] = ", expecting %s";
+ static char const yyor[] = " or %s";
+ char yyformat[sizeof yyunexpected
+ + sizeof yyexpecting - 1
+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+ * (sizeof yyor - 1))];
+ char const *yyprefix = yyexpecting;
+
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 1;
+
+ yyarg[0] = yytname[yytype];
+ yyfmt = yystpcpy (yyformat, yyunexpected);
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ yyformat[sizeof yyunexpected - 1] = '\0';
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+ yyfmt = yystpcpy (yyfmt, yyprefix);
+ yyprefix = yyor;
+ }
+
+ yyf = YY_(yyformat);
+ yysize1 = yysize + yystrlen (yyf);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+
+ if (yysize_overflow)
+ return YYSIZE_MAXIMUM;
+
+ if (yyresult)
+ {
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ char *yyp = yyresult;
+ int yyi = 0;
+ while ((*yyp = *yyf) != '\0')
+ {
+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyf += 2;
+ }
+ else
+ {
+ yyp++;
+ yyf++;
+ }
+ }
+ }
+ return yysize;
+ }
+}
+#endif /* YYERROR_VERBOSE */
+
+
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
+#endif
+{
+ YYUSE (yyvaluep);
+
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+ break;
+ }
+}
+
+/* Prevent warnings from -Wmissing-prototypes. */
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void *YYPARSE_PARAM);
+#else
+int yyparse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+/* The lookahead symbol. */
+int yychar;
+
+/* The semantic value of the lookahead symbol. */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far. */
+int yynerrs;
+
+
+
+/*-------------------------.
+| yyparse or yypush_parse. |
+`-------------------------*/
+
+#ifdef YYPARSE_PARAM
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+ void *YYPARSE_PARAM;
+#endif
+#else /* ! YYPARSE_PARAM */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void)
+#else
+int
+yyparse ()
+
+#endif
+#endif
+{
+
+
+ int yystate;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+
+ /* The stacks and their tools:
+ `yyss': related to states.
+ `yyvs': related to semantic values.
+
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss;
+ yytype_int16 *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs;
+ YYSTYPE *yyvsp;
+
+ YYSIZE_T yystacksize;
+
+ int yyn;
+ int yyresult;
+ /* Lookahead token as an internal (translated) token number. */
+ int yytoken;
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
+
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
+
+ /* The number of symbols on the RHS of the reduced rule.
+ Keep to zero when no symbol should be popped. */
+ int yylen = 0;
+
+ yytoken = 0;
+ yyss = yyssa;
+ yyvs = yyvsa;
+ yystacksize = YYINITDEPTH;
+
+ YYDPRINTF ((stderr, "Starting parse\n"));
+
+ yystate = 0;
+ yyerrstatus = 0;
+ yynerrs = 0;
+ yychar = YYEMPTY; /* Cause a token to be read. */
+
+ /* Initialize stack pointers.
+ Waste one element of value and location stack
+ so that they stay on the same level as the state stack.
+ The wasted elements are never initialized. */
+ yyssp = yyss;
+ yyvsp = yyvs;
+
+ goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate. |
+`------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. So pushing a state here evens the stacks. */
+ yyssp++;
+
+ yysetstate:
+ *yyssp = yystate;
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ {
+ /* Get the current used size of the three stacks, in elements. */
+ YYSIZE_T yysize = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+ {
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ yytype_int16 *yyss1 = yyss;
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+ &yystacksize);
+
+ yyss = yyss1;
+ yyvs = yyvs1;
+ }
+#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyexhaustedlab;
+# else
+ /* Extend the stack our own way. */
+ if (YYMAXDEPTH <= yystacksize)
+ goto yyexhaustedlab;
+ yystacksize *= 2;
+ if (YYMAXDEPTH < yystacksize)
+ yystacksize = YYMAXDEPTH;
+
+ {
+ yytype_int16 *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss_alloc, yyss);
+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
+# undef YYSTACK_RELOCATE
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
+ }
+# endif
+#endif /* no yyoverflow */
+
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;
+
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
+
+ if (yyss + yystacksize - 1 <= yyssp)
+ YYABORT;
+ }
+
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+
+ if (yystate == YYFINAL)
+ YYACCEPT;
+
+ goto yybackup;
+
+/*-----------.
+| yybackup. |
+`-----------*/
+yybackup:
+
+ /* Do appropriate processing given the current state. Read a
+ lookahead token if we need one and don't already have one. */
+
+ /* First try to decide what to do without reference to lookahead token. */
+ yyn = yypact[yystate];
+ if (yyn == YYPACT_NINF)
+ goto yydefault;
+
+ /* Not known => get a lookahead token if don't already have one. */
+
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ if (yychar == YYEMPTY)
+ {
+ YYDPRINTF ((stderr, "Reading a token: "));
+ yychar = YYLEX;
+ }
+
+ if (yychar <= YYEOF)
+ {
+ yychar = yytoken = YYEOF;
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
+ }
+ else
+ {
+ yytoken = YYTRANSLATE (yychar);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
+ }
+
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+ detect an error, take that action. */
+ yyn += yytoken;
+ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+ goto yydefault;
+ yyn = yytable[yyn];
+ if (yyn <= 0)
+ {
+ if (yyn == 0 || yyn == YYTABLE_NINF)
+ goto yyerrlab;
+ yyn = -yyn;
+ goto yyreduce;
+ }
+
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
+
+ /* Shift the lookahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+ /* Discard the shifted token. */
+ yychar = YYEMPTY;
+
+ yystate = yyn;
+ *++yyvsp = yylval;
+
+ goto yynewstate;
+
+
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state. |
+`-----------------------------------------------------------*/
+yydefault:
+ yyn = yydefact[yystate];
+ if (yyn == 0)
+ goto yyerrlab;
+ goto yyreduce;
+
+
+/*-----------------------------.
+| yyreduce -- Do a reduction. |
+`-----------------------------*/
+yyreduce:
+ /* yyn is the number of a rule to reduce with. */
+ yylen = yyr2[yyn];
+
+ /* If YYLEN is nonzero, implement the default value of the action:
+ `$$ = $1'.
+
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+ users should not rely upon it. Assigning to YYVAL
+ unconditionally makes the parser a bit smaller, and it avoids a
+ GCC warning that YYVAL may be used uninitialized. */
+ yyval = yyvsp[1-yylen];
+
+
+ YY_REDUCE_PRINT (yyn);
+ switch (yyn)
+ {
+ case 2:
+
+/* Line 1464 of yacc.c */
+#line 106 "egrep.y"
+ { unary(FINAL, (yyvsp[(1) - (1)]));
+ line--;
+ }
+ break;
+
+ case 3:
+
+/* Line 1464 of yacc.c */
+#line 111 "egrep.y"
+ { (yyval) = node(CAT, (yyvsp[(1) - (2)]), (yyvsp[(2) - (2)])); }
+ break;
+
+ case 4:
+
+/* Line 1464 of yacc.c */
+#line 113 "egrep.y"
+ { (yyval) = node(CAT, (yyvsp[(2) - (4)]), (yyvsp[(3) - (4)])); }
+ break;
+
+ case 5:
+
+/* Line 1464 of yacc.c */
+#line 115 "egrep.y"
+ { (yyval) = node(CAT, (yyvsp[(2) - (3)]), (yyvsp[(3) - (3)])); }
+ break;
+
+ case 6:
+
+/* Line 1464 of yacc.c */
+#line 117 "egrep.y"
+ { (yyval) = node(CAT, (yyvsp[(1) - (3)]), (yyvsp[(2) - (3)])); }
+ break;
+
+ case 7:
+
+/* Line 1464 of yacc.c */
+#line 120 "egrep.y"
+ { (yyval) = enter(DOT);
+ (yyval) = unary(STAR, (yyval)); }
+ break;
+
+ case 8:
+
+/* Line 1464 of yacc.c */
+#line 124 "egrep.y"
+ { (yyval) = enter((yyvsp[(1) - (1)])); }
+ break;
+
+ case 9:
+
+/* Line 1464 of yacc.c */
+#line 126 "egrep.y"
+ { (yyval) = enter(DOT); }
+ break;
+
+ case 10:
+
+/* Line 1464 of yacc.c */
+#line 128 "egrep.y"
+ { (yyval) = cclenter(CCL); }
+ break;
+
+ case 11:
+
+/* Line 1464 of yacc.c */
+#line 130 "egrep.y"
+ { (yyval) = cclenter(NCCL); }
+ break;
+
+ case 12:
+
+/* Line 1464 of yacc.c */
+#line 134 "egrep.y"
+ { (yyval) = node(OR, (yyvsp[(1) - (3)]), (yyvsp[(3) - (3)])); }
+ break;
+
+ case 13:
+
+/* Line 1464 of yacc.c */
+#line 136 "egrep.y"
+ { (yyval) = node(CAT, (yyvsp[(1) - (2)]), (yyvsp[(2) - (2)])); }
+ break;
+
+ case 14:
+
+/* Line 1464 of yacc.c */
+#line 138 "egrep.y"
+ { (yyval) = unary(STAR, (yyvsp[(1) - (2)])); }
+ break;
+
+ case 15:
+
+/* Line 1464 of yacc.c */
+#line 140 "egrep.y"
+ { (yyval) = unary(PLUS, (yyvsp[(1) - (2)])); }
+ break;
+
+ case 16:
+
+/* Line 1464 of yacc.c */
+#line 142 "egrep.y"
+ { (yyval) = unary(QUEST, (yyvsp[(1) - (2)])); }
+ break;
+
+ case 17:
+
+/* Line 1464 of yacc.c */
+#line 144 "egrep.y"
+ { (yyval) = (yyvsp[(2) - (3)]); }
+ break;
+
+
+
+/* Line 1464 of yacc.c */
+#line 1574 "egrep.c"
+ default: break;
+ }
+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+
+ *++yyvsp = yyval;
+
+ /* Now `shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
+
+ yyn = yyr1[yyn];
+
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yytable[yystate];
+ else
+ yystate = yydefgoto[yyn - YYNTOKENS];
+
+ goto yynewstate;
+
+
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
+ {
+ ++yynerrs;
+#if ! YYERROR_VERBOSE
+ yyerror (YY_("syntax error"));
+#else
+ {
+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+ {
+ YYSIZE_T yyalloc = 2 * yysize;
+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+ if (yymsg)
+ yymsg_alloc = yyalloc;
+ else
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ }
+ }
+
+ if (0 < yysize && yysize <= yymsg_alloc)
+ {
+ (void) yysyntax_error (yymsg, yystate, yychar);
+ yyerror (yymsg);
+ }
+ else
+ {
+ yyerror (YY_("syntax error"));
+ if (yysize != 0)
+ goto yyexhaustedlab;
+ }
+ }
+#endif
+ }
+
+
+
+ if (yyerrstatus == 3)
+ {
+ /* If just tried and failed to reuse lookahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+ {
+ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+ YYABORT;
+ }
+ else
+ {
+ yydestruct ("Error: discarding",
+ yytoken, &yylval);
+ yychar = YYEMPTY;
+ }
+ }
+
+ /* Else will try to reuse lookahead token after shifting the error
+ token. */
+ goto yyerrlab1;
+
+
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR. |
+`---------------------------------------------------*/
+yyerrorlab:
+
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (/*CONSTCOND*/ 0)
+ goto yyerrorlab;
+
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYERROR. */
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
+ yystate = *yyssp;
+ goto yyerrlab1;
+
+
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR. |
+`-------------------------------------------------------------*/
+yyerrlab1:
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
+
+ for (;;)
+ {
+ yyn = yypact[yystate];
+ if (yyn != YYPACT_NINF)
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
+
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+ YYABORT;
+
+
+ yydestruct ("Error: popping",
+ yystos[yystate], yyvsp);
+ YYPOPSTACK (1);
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
+ }
+
+ *++yyvsp = yylval;
+
+
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
+ yystate = yyn;
+ goto yynewstate;
+
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here. |
+`-------------------------------------*/
+yyacceptlab:
+ yyresult = 0;
+ goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here. |
+`-----------------------------------*/
+yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+#if !defined(yyoverflow) || YYERROR_VERBOSE
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
+yyexhaustedlab:
+ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
+#endif
+
+yyreturn:
+ if (yychar != YYEMPTY)
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYABORT or YYACCEPT. */
+ YYPOPSTACK (yylen);
+ YY_STACK_PRINT (yyss, yyssp);
+ while (yyssp != yyss)
+ {
+ yydestruct ("Cleanup: popping",
+ yystos[*yyssp], yyvsp);
+ YYPOPSTACK (1);
+ }
+#ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+#endif
+#if YYERROR_VERBOSE
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+#endif
+ /* Make sure YYID is used. */
+ return YYID (yyresult);
+}
+
+
+
+/* Line 1684 of yacc.c */
+#line 148 "egrep.y"
+
+static int
+yyerror(char *s)
+{
+ message = s;
+ longjmp(env, 1);
+ return 1; /* silence a warning */
+}
+
+static int
+yylex(void)
+{
+ int cclcnt, x;
+ char c, d;
+
+ switch(c = nextch()) {
+ case '|':
+ return (OR);
+ case '*':
+ return (STAR);
+ case '+':
+ return (PLUS);
+ case '?':
+ return (QUEST);
+ case '(':
+ return (c);
+ case ')':
+ return (c);
+ case '.':
+ return (DOT);
+ case '\0':
+ return (0);
+ case '\n':
+ return (OR);
+ case '[':
+ x = CCL;
+ cclcnt = 0;
+ count = nxtchar++;
+ if ((c = nextch()) == '^') {
+ x = NCCL;
+ c = nextch();
+ }
+ do {
+ if (c == '\0')
+ synerror();
+ if (c == '-'
+ && cclcnt > 0
+ && chars[nxtchar-1] != 0) {
+ if ((d = nextch()) != 0) {
+ c = chars[nxtchar-1];
+ while ((unsigned int)c < (unsigned int)d) {
+ if (nxtchar >= MAXLIN)
+ overflo();
+ chars[nxtchar++] = ++c;
+ cclcnt++;
+ }
+ continue;
+ } /* if() */
+ } /* if() */
+ if (nxtchar >= MAXLIN)
+ overflo();
+ chars[nxtchar++] = c;
+ cclcnt++;
+ } while ((c = nextch()) != ']');
+ chars[count] = cclcnt;
+ return (x);
+ case '\\':
+ if ((c = nextch()) == '\0')
+ synerror();
+ /* not reached */
+ case '$':
+ case '^':
+ c = '\n';
+ /* fall through */
+ default:
+ yylval = c;
+ return (CHAR);
+ }
+}
+
+static void
+synerror(void)
+{
+ yyerror("Syntax error");
+}
+
+static unsigned int
+enter(int x)
+{
+ if(line >= MAXLIN)
+ overflo();
+ name[line] = x;
+ left[line] = 0;
+ right[line] = 0;
+ return(line++);
+}
+
+static unsigned int
+cclenter(int x)
+{
+ unsigned int linno;
+
+ linno = enter(x);
+ right[linno] = count;
+ return (linno);
+}
+
+static int
+node(int x, int l, int r)
+{
+ if(line >= MAXLIN)
+ overflo();
+ name[line] = x;
+ left[line] = l;
+ right[line] = r;
+ parent[l] = line;
+ parent[r] = line;
+ return(line++);
+}
+
+static int
+unary(int x, int d)
+{
+ if(line >= MAXLIN)
+ overflo();
+ name[line] = x;
+ left[line] = d;
+ right[line] = 0;
+ parent[d] = line;
+ return(line++);
+}
+
+static void
+overflo(void)
+{
+ yyerror("internal table overflow");
+}
+
+static void
+cfoll(int v)
+{
+ unsigned int i;
+
+ if (left[v] == 0) {
+ count = 0;
+ for (i = 1; i <= line; i++)
+ tmpstat[i] = 0;
+ follow(v);
+ add(foll, v);
+ } else if (right[v] == 0)
+ cfoll(left[v]);
+ else {
+ cfoll(left[v]);
+ cfoll(right[v]);
+ }
+}
+
+static void
+cgotofn(void)
+{
+ unsigned int i, n, s;
+ int c, k;
+ char symbol[NCHARS];
+ unsigned int j, l, pc, pos;
+ unsigned int nc;
+ int curpos;
+ unsigned int num, number, newpos;
+
+ count = 0;
+ for (n=3; n<=line; n++)
+ tmpstat[n] = 0;
+ if (cstate(line-1)==0) {
+ tmpstat[line] = 1;
+ count++;
+ out[0] = 1;
+ }
+ for (n=3; n<=line; n++)
+ initstat[n] = tmpstat[n];
+ count--; /*leave out position 1 */
+ icount = count;
+ tmpstat[1] = 0;
+ add(state, 0);
+ n = 0;
+ for (s = 0; s <= n; s++) {
+ if (out[s] == 1)
+ continue;
+ for (i = 0; i < NCHARS; i++)
+ symbol[i] = 0;
+ num = positions[state[s]];
+ count = icount;
+ for (i = 3; i <= line; i++)
+ tmpstat[i] = initstat[i];
+ pos = state[s] + 1;
+ for (i = 0; i < num; i++) {
+ curpos = positions[pos];
+ if ((c = name[curpos]) >= 0) {
+ if (c < NCHARS) {
+ symbol[c] = 1;
+ } else if (c == DOT) {
+ for (k = 0; k < NCHARS; k++)
+ if (k != '\n')
+ symbol[k] = 1;
+ } else if (c == CCL) {
+ nc = chars[right[curpos]];
+ pc = right[curpos] + 1;
+ for (j = 0; j < nc; j++)
+ symbol[(unsigned char)(chars[pc++])] = 1;
+ } else if (c == NCCL) {
+ nc = chars[right[curpos]];
+ for (j = 0; j < NCHARS; j++) {
+ pc = right[curpos] + 1;
+ for (l = 0; l < nc; l++)
+ if (j==(unsigned char)(chars[pc++]))
+ goto cont;
+ if (j != '\n')
+ symbol[j] = 1;
+ cont:
+ ;
+ }
+ }
+ }
+ pos++;
+ } /* for (i) */
+ for (c=0; c<NCHARS; c++) {
+ if (symbol[c] == 1) {
+ /* nextstate(s,c) */
+ count = icount;
+ for (i=3; i <= line; i++)
+ tmpstat[i] = initstat[i];
+ pos = state[s] + 1;
+ for (i=0; i<num; i++) {
+ curpos = positions[pos];
+ if ((k = name[curpos]) >= 0)
+ if ((k == c)
+ || (k == DOT)
+ || (k == CCL && member(c, right[curpos], 1))
+ || (k == NCCL && member(c, right[curpos], 0))
+ ) {
+ number = positions[foll[curpos]];
+ newpos = foll[curpos] + 1;
+ for (j = 0; j < number; j++) {
+ if (tmpstat[positions[newpos]] != 1) {
+ tmpstat[positions[newpos]] = 1;
+ count++;
+ }
+ newpos++;
+ }
+ }
+ pos++;
+ } /* end nextstate */
+ if (notin(n)) {
+ if (n >= NSTATES)
+ overflo();
+ add(state, ++n);
+ if (tmpstat[line] == 1)
+ out[n] = 1;
+ gotofn[s][c] = n;
+ } else {
+ gotofn[s][c] = xstate;
+ }
+ } /* if (symbol) */
+ } /* for(c) */
+ } /* for(s) */
+}
+
+static int
+cstate(int v)
+{
+ int b;
+ if (left[v] == 0) {
+ if (tmpstat[v] != 1) {
+ tmpstat[v] = 1;
+ count++;
+ }
+ return(1);
+ }
+ else if (right[v] == 0) {
+ if (cstate(left[v]) == 0) return (0);
+ else if (name[v] == PLUS) return (1);
+ else return (0);
+ }
+ else if (name[v] == CAT) {
+ if (cstate(left[v]) == 0 && cstate(right[v]) == 0) return (0);
+ else return (1);
+ }
+ else { /* name[v] == OR */
+ b = cstate(right[v]);
+ if (cstate(left[v]) == 0 || b == 0) return (0);
+ else return (1);
+ }
+}
+
+static int
+member(int symb, int set, int torf)
+{
+ unsigned int i, num, pos;
+
+ num = chars[set];
+ pos = set + 1;
+ for (i = 0; i < num; i++)
+ if (symb == (unsigned char)(chars[pos++]))
+ return (torf);
+ return (!torf);
+}
+
+static int
+notin(int n)
+{
+ int i, j, pos;
+ for (i=0; i<=n; i++) {
+ if (positions[state[i]] == count) {
+ pos = state[i] + 1;
+ for (j=0; j < count; j++)
+ if (tmpstat[positions[pos++]] != 1) goto nxt;
+ xstate = i;
+ return (0);
+ }
+ nxt: ;
+ }
+ return (1);
+}
+
+static void
+add(int *array, int n)
+{
+ unsigned int i;
+
+ if (nxtpos + count > MAXPOS)
+ overflo();
+ array[n] = nxtpos;
+ positions[nxtpos++] = count;
+ for (i=3; i <= line; i++) {
+ if (tmpstat[i] == 1) {
+ positions[nxtpos++] = i;
+ }
+ }
+}
+
+static void
+follow(unsigned int v)
+{
+ unsigned int p;
+
+ if (v == line)
+ return;
+ p = parent[v];
+ switch(name[p]) {
+ case STAR:
+ case PLUS: cstate(v);
+ follow(p);
+ return;
+
+ case OR:
+ case QUEST: follow(p);
+ return;
+
+ case CAT:
+ if (v == left[p]) {
+ if (cstate(right[p]) == 0) {
+ follow(p);
+ return;
+ }
+ } else
+ follow(p);
+ return;
+ case FINAL:
+ if (tmpstat[line] != 1) {
+ tmpstat[line] = 1;
+ count++;
+ }
+ return;
+ }
+}
+
+char *
+egrepinit(char *egreppat)
+{
+ /* initialize the global data */
+ memset(gotofn, 0, sizeof(gotofn));
+ memset(state, 0, sizeof(state));
+ memset(out, 0, sizeof(out));
+ line = 1;
+ memset(name, 0, sizeof(name));
+ memset(left, 0, sizeof(left));
+ memset(right, 0, sizeof(right));
+ memset(parent, 0, sizeof(parent));
+ memset(foll, 0, sizeof(foll));
+ memset(positions, 0, sizeof(positions));
+ memset(chars, 0, sizeof(chars));
+ nxtpos = 0;
+ nxtchar = 0;
+ memset(tmpstat, 0, sizeof(tmpstat));
+ memset(initstat, 0, sizeof(initstat));
+ xstate = 0;
+ count = 0;
+ icount = 0;
+ input = egreppat;
+ message = NULL;
+ if (setjmp(env) == 0) {
+ yyparse();
+ cfoll(line-1);
+ cgotofn();
+ }
+ return(message);
+}
+
+int
+egrep(char *file, FILE *output, char *format)
+{
+ char *p;
+ unsigned int cstat;
+ int ccount;
+ char buf[2*BUFSIZ];
+ char *nlp;
+ unsigned int istat;
+ int in_line;
+ FILE *fptr;
+
+ if ((fptr = myfopen(file, "r")) == NULL)
+ return(-1);
+
+ ccount = 0;
+ lnum = 1;
+ in_line = 0;
+ p = buf;
+ nlp = p;
+ if ((ccount = fread(p, sizeof(char), BUFSIZ, fptr)) <= 0)
+ goto done;
+ in_line = 1;
+ istat = cstat = (unsigned int) gotofn[0]['\n'];
+ if (out[cstat])
+ goto found;
+ for (;;) {
+ if (!iflag)
+ cstat = (unsigned int) gotofn[cstat][(unsigned int)*p&0377];
+ /* all input chars made positive */
+ else
+ cstat = (unsigned int) gotofn[cstat][tolower((int)*p&0377)];
+ /* for -i option*/
+ if (out[cstat]) {
+ found:
+ for(;;) {
+ if (*p++ == '\n') {
+ in_line = 0;
+ succeed:
+ fprintf(output, format, file, lnum);
+ if (p <= nlp) {
+ while (nlp < &buf[2*BUFSIZ])
+ putc(*nlp++, output);
+ nlp = buf;
+ }
+ while (nlp < p)
+ putc(*nlp++, output);
+ lnum++;
+ nlp = p;
+ if ((out[(cstat=istat)]) == 0)
+ goto brk2;
+ } /* if (p++ == \n) */
+ cfound:
+ if (--ccount <= 0) {
+ if (p <= &buf[BUFSIZ]) {
+ ccount = fread(p, sizeof(char), BUFSIZ, fptr);
+ } else if (p == &buf[2*BUFSIZ]) {
+ p = buf;
+ ccount = fread(p, sizeof(char), BUFSIZ, fptr);
+ } else {
+ ccount = fread(p, sizeof(char), &buf[2*BUFSIZ] - p,
+ fptr);
+ }
+ if (ccount <= 0) {
+ if (in_line) {
+ in_line = 0;
+ goto succeed;
+ }
+ goto done;
+ }
+ } /* if(ccount <= 0) */
+ in_line = 1;
+ } /* for(ever) */
+ } /* if(out[cstat]) */
+
+ if (*p++ == '\n') {
+ in_line = 0;
+ lnum++;
+ nlp = p;
+ if (out[(cstat=istat)])
+ goto cfound;
+ }
+ brk2:
+ if (--ccount <= 0) {
+ if (p <= &buf[BUFSIZ]) {
+ ccount = fread(p, sizeof(char), BUFSIZ, fptr);
+ } else if (p == &buf[2*BUFSIZ]) {
+ p = buf;
+ ccount = fread(p, sizeof(char), BUFSIZ, fptr);
+ } else {
+ ccount = fread(p, sizeof(char), &buf[2*BUFSIZ] - p, fptr);
+ }
+ if (ccount <= 0)
+ break;
+ }
+ in_line = 1;
+ }
+done:
+ fclose(fptr);
+ return(0);
+}
+
+/* FIXME HBB: should export this to a separate file and use
+ * AC_REPLACE_FUNCS() */
+#if !STDC_HEADERS && !defined(HAVE_MEMSET) && !defined(HAVE_MEMORY_H)
+/*LINTLIBRARY*/
+/*
+ * Set an array of n chars starting at sp to the character c.
+ * Return sp.
+ */
+char *
+memset(char *sp, char c, int n)
+{
+ char *sp0 = sp;
+
+ while (--n >= 0)
+ *sp++ = c;
+ return (sp0);
+}
+#endif
+
+void
+egrepcaseless(int i)
+{
+ iflag = i; /* simulate "egrep -i" */
+}
+
diff --git a/src/egrep.y b/src/egrep.y
new file mode 100644
index 0000000..a930803
--- /dev/null
+++ b/src/egrep.y
@@ -0,0 +1,679 @@
+%{
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: egrep.y,v 1.11 2006/04/21 10:45:48 broeker Exp $ */
+
+/*
+ * egrep -- fine lines containing a regular expression
+ */
+%}
+
+%token CHAR DOT CCL NCCL OR CAT STAR PLUS QUEST
+%left OR
+%left CHAR DOT CCL NCCL '('
+%left CAT
+%left STAR PLUS QUEST
+
+%{
+#include "global.h"
+#include <ctype.h>
+#include <stdio.h>
+
+#include <setjmp.h> /* jmp_buf */
+
+#define nextch() (*input++)
+
+#define MAXLIN 350
+#define MAXPOS 4000
+#define NCHARS 256
+#define NSTATES 128
+#define FINAL -1
+static char gotofn[NSTATES][NCHARS];
+static int state[NSTATES];
+static char out[NSTATES];
+static unsigned int line;
+static int name[MAXLIN];
+static unsigned int left[MAXLIN];
+static unsigned int right[MAXLIN];
+static unsigned int parent[MAXLIN];
+static int foll[MAXLIN];
+static int positions[MAXPOS];
+static char chars[MAXLIN];
+static int nxtpos;
+static int nxtchar;
+static int tmpstat[MAXLIN];
+static int initstat[MAXLIN];
+static int xstate;
+static int count;
+static int icount;
+static char *input;
+static long lnum;
+static int iflag;
+static jmp_buf env; /* setjmp/longjmp buffer */
+static char *message; /* error message */
+
+/* Internal prototypes: */
+static void cfoll(int v);
+static void cgotofn(void);
+static int cstate(int v);
+static int member(int symb, int set, int torf);
+static int notin(int n);
+static void synerror(void);
+static void overflo(void);
+static void add(int *array, int n);
+static void follow(unsigned int v);
+static int unary(int x, int d);
+static int node(int x, int l, int r);
+static unsigned int cclenter(int x);
+static unsigned int enter(int x);
+
+static int yylex(void);
+static int yyerror(char *);
+%}
+
+%%
+s: t
+ { unary(FINAL, $1);
+ line--;
+ }
+ ;
+t: b r
+ { $$ = node(CAT, $1, $2); }
+ | OR b r OR
+ { $$ = node(CAT, $2, $3); }
+ | OR b r
+ { $$ = node(CAT, $2, $3); }
+ | b r OR
+ { $$ = node(CAT, $1, $2); }
+ ;
+b:
+ { $$ = enter(DOT);
+ $$ = unary(STAR, $$); }
+ ;
+r: CHAR
+ { $$ = enter($1); }
+ | DOT
+ { $$ = enter(DOT); }
+ | CCL
+ { $$ = cclenter(CCL); }
+ | NCCL
+ { $$ = cclenter(NCCL); }
+ ;
+
+r: r OR r
+ { $$ = node(OR, $1, $3); }
+ | r r %prec CAT
+ { $$ = node(CAT, $1, $2); }
+ | r STAR
+ { $$ = unary(STAR, $1); }
+ | r PLUS
+ { $$ = unary(PLUS, $1); }
+ | r QUEST
+ { $$ = unary(QUEST, $1); }
+ | '(' r ')'
+ { $$ = $2; }
+ | error
+ ;
+
+%%
+static int
+yyerror(char *s)
+{
+ message = s;
+ longjmp(env, 1);
+ return 1; /* silence a warning */
+}
+
+static int
+yylex(void)
+{
+ int cclcnt, x;
+ char c, d;
+
+ switch(c = nextch()) {
+ case '|':
+ return (OR);
+ case '*':
+ return (STAR);
+ case '+':
+ return (PLUS);
+ case '?':
+ return (QUEST);
+ case '(':
+ return (c);
+ case ')':
+ return (c);
+ case '.':
+ return (DOT);
+ case '\0':
+ return (0);
+ case '\n':
+ return (OR);
+ case '[':
+ x = CCL;
+ cclcnt = 0;
+ count = nxtchar++;
+ if ((c = nextch()) == '^') {
+ x = NCCL;
+ c = nextch();
+ }
+ do {
+ if (c == '\0')
+ synerror();
+ if (c == '-'
+ && cclcnt > 0
+ && chars[nxtchar-1] != 0) {
+ if ((d = nextch()) != 0) {
+ c = chars[nxtchar-1];
+ while ((unsigned int)c < (unsigned int)d) {
+ if (nxtchar >= MAXLIN)
+ overflo();
+ chars[nxtchar++] = ++c;
+ cclcnt++;
+ }
+ continue;
+ } /* if() */
+ } /* if() */
+ if (nxtchar >= MAXLIN)
+ overflo();
+ chars[nxtchar++] = c;
+ cclcnt++;
+ } while ((c = nextch()) != ']');
+ chars[count] = cclcnt;
+ return (x);
+ case '\\':
+ if ((c = nextch()) == '\0')
+ synerror();
+ /* not reached */
+ case '$':
+ case '^':
+ c = '\n';
+ /* fall through */
+ default:
+ yylval = c;
+ return (CHAR);
+ }
+}
+
+static void
+synerror(void)
+{
+ yyerror("Syntax error");
+}
+
+static unsigned int
+enter(int x)
+{
+ if(line >= MAXLIN)
+ overflo();
+ name[line] = x;
+ left[line] = 0;
+ right[line] = 0;
+ return(line++);
+}
+
+static unsigned int
+cclenter(int x)
+{
+ unsigned int linno;
+
+ linno = enter(x);
+ right[linno] = count;
+ return (linno);
+}
+
+static int
+node(int x, int l, int r)
+{
+ if(line >= MAXLIN)
+ overflo();
+ name[line] = x;
+ left[line] = l;
+ right[line] = r;
+ parent[l] = line;
+ parent[r] = line;
+ return(line++);
+}
+
+static int
+unary(int x, int d)
+{
+ if(line >= MAXLIN)
+ overflo();
+ name[line] = x;
+ left[line] = d;
+ right[line] = 0;
+ parent[d] = line;
+ return(line++);
+}
+
+static void
+overflo(void)
+{
+ yyerror("internal table overflow");
+}
+
+static void
+cfoll(int v)
+{
+ unsigned int i;
+
+ if (left[v] == 0) {
+ count = 0;
+ for (i = 1; i <= line; i++)
+ tmpstat[i] = 0;
+ follow(v);
+ add(foll, v);
+ } else if (right[v] == 0)
+ cfoll(left[v]);
+ else {
+ cfoll(left[v]);
+ cfoll(right[v]);
+ }
+}
+
+static void
+cgotofn(void)
+{
+ unsigned int i, n, s;
+ int c, k;
+ char symbol[NCHARS];
+ unsigned int j, l, pc, pos;
+ unsigned int nc;
+ int curpos;
+ unsigned int num, number, newpos;
+
+ count = 0;
+ for (n=3; n<=line; n++)
+ tmpstat[n] = 0;
+ if (cstate(line-1)==0) {
+ tmpstat[line] = 1;
+ count++;
+ out[0] = 1;
+ }
+ for (n=3; n<=line; n++)
+ initstat[n] = tmpstat[n];
+ count--; /*leave out position 1 */
+ icount = count;
+ tmpstat[1] = 0;
+ add(state, 0);
+ n = 0;
+ for (s = 0; s <= n; s++) {
+ if (out[s] == 1)
+ continue;
+ for (i = 0; i < NCHARS; i++)
+ symbol[i] = 0;
+ num = positions[state[s]];
+ count = icount;
+ for (i = 3; i <= line; i++)
+ tmpstat[i] = initstat[i];
+ pos = state[s] + 1;
+ for (i = 0; i < num; i++) {
+ curpos = positions[pos];
+ if ((c = name[curpos]) >= 0) {
+ if (c < NCHARS) {
+ symbol[c] = 1;
+ } else if (c == DOT) {
+ for (k = 0; k < NCHARS; k++)
+ if (k != '\n')
+ symbol[k] = 1;
+ } else if (c == CCL) {
+ nc = chars[right[curpos]];
+ pc = right[curpos] + 1;
+ for (j = 0; j < nc; j++)
+ symbol[(unsigned char)(chars[pc++])] = 1;
+ } else if (c == NCCL) {
+ nc = chars[right[curpos]];
+ for (j = 0; j < NCHARS; j++) {
+ pc = right[curpos] + 1;
+ for (l = 0; l < nc; l++)
+ if (j==(unsigned char)(chars[pc++]))
+ goto cont;
+ if (j != '\n')
+ symbol[j] = 1;
+ cont:
+ ;
+ }
+ }
+ }
+ pos++;
+ } /* for (i) */
+ for (c=0; c<NCHARS; c++) {
+ if (symbol[c] == 1) {
+ /* nextstate(s,c) */
+ count = icount;
+ for (i=3; i <= line; i++)
+ tmpstat[i] = initstat[i];
+ pos = state[s] + 1;
+ for (i=0; i<num; i++) {
+ curpos = positions[pos];
+ if ((k = name[curpos]) >= 0)
+ if ((k == c)
+ || (k == DOT)
+ || (k == CCL && member(c, right[curpos], 1))
+ || (k == NCCL && member(c, right[curpos], 0))
+ ) {
+ number = positions[foll[curpos]];
+ newpos = foll[curpos] + 1;
+ for (j = 0; j < number; j++) {
+ if (tmpstat[positions[newpos]] != 1) {
+ tmpstat[positions[newpos]] = 1;
+ count++;
+ }
+ newpos++;
+ }
+ }
+ pos++;
+ } /* end nextstate */
+ if (notin(n)) {
+ if (n >= NSTATES)
+ overflo();
+ add(state, ++n);
+ if (tmpstat[line] == 1)
+ out[n] = 1;
+ gotofn[s][c] = n;
+ } else {
+ gotofn[s][c] = xstate;
+ }
+ } /* if (symbol) */
+ } /* for(c) */
+ } /* for(s) */
+}
+
+static int
+cstate(int v)
+{
+ int b;
+ if (left[v] == 0) {
+ if (tmpstat[v] != 1) {
+ tmpstat[v] = 1;
+ count++;
+ }
+ return(1);
+ }
+ else if (right[v] == 0) {
+ if (cstate(left[v]) == 0) return (0);
+ else if (name[v] == PLUS) return (1);
+ else return (0);
+ }
+ else if (name[v] == CAT) {
+ if (cstate(left[v]) == 0 && cstate(right[v]) == 0) return (0);
+ else return (1);
+ }
+ else { /* name[v] == OR */
+ b = cstate(right[v]);
+ if (cstate(left[v]) == 0 || b == 0) return (0);
+ else return (1);
+ }
+}
+
+static int
+member(int symb, int set, int torf)
+{
+ unsigned int i, num, pos;
+
+ num = chars[set];
+ pos = set + 1;
+ for (i = 0; i < num; i++)
+ if (symb == (unsigned char)(chars[pos++]))
+ return (torf);
+ return (!torf);
+}
+
+static int
+notin(int n)
+{
+ int i, j, pos;
+ for (i=0; i<=n; i++) {
+ if (positions[state[i]] == count) {
+ pos = state[i] + 1;
+ for (j=0; j < count; j++)
+ if (tmpstat[positions[pos++]] != 1) goto nxt;
+ xstate = i;
+ return (0);
+ }
+ nxt: ;
+ }
+ return (1);
+}
+
+static void
+add(int *array, int n)
+{
+ unsigned int i;
+
+ if (nxtpos + count > MAXPOS)
+ overflo();
+ array[n] = nxtpos;
+ positions[nxtpos++] = count;
+ for (i=3; i <= line; i++) {
+ if (tmpstat[i] == 1) {
+ positions[nxtpos++] = i;
+ }
+ }
+}
+
+static void
+follow(unsigned int v)
+{
+ unsigned int p;
+
+ if (v == line)
+ return;
+ p = parent[v];
+ switch(name[p]) {
+ case STAR:
+ case PLUS: cstate(v);
+ follow(p);
+ return;
+
+ case OR:
+ case QUEST: follow(p);
+ return;
+
+ case CAT:
+ if (v == left[p]) {
+ if (cstate(right[p]) == 0) {
+ follow(p);
+ return;
+ }
+ } else
+ follow(p);
+ return;
+ case FINAL:
+ if (tmpstat[line] != 1) {
+ tmpstat[line] = 1;
+ count++;
+ }
+ return;
+ }
+}
+
+char *
+egrepinit(char *egreppat)
+{
+ /* initialize the global data */
+ memset(gotofn, 0, sizeof(gotofn));
+ memset(state, 0, sizeof(state));
+ memset(out, 0, sizeof(out));
+ line = 1;
+ memset(name, 0, sizeof(name));
+ memset(left, 0, sizeof(left));
+ memset(right, 0, sizeof(right));
+ memset(parent, 0, sizeof(parent));
+ memset(foll, 0, sizeof(foll));
+ memset(positions, 0, sizeof(positions));
+ memset(chars, 0, sizeof(chars));
+ nxtpos = 0;
+ nxtchar = 0;
+ memset(tmpstat, 0, sizeof(tmpstat));
+ memset(initstat, 0, sizeof(initstat));
+ xstate = 0;
+ count = 0;
+ icount = 0;
+ input = egreppat;
+ message = NULL;
+ if (setjmp(env) == 0) {
+ yyparse();
+ cfoll(line-1);
+ cgotofn();
+ }
+ return(message);
+}
+
+int
+egrep(char *file, FILE *output, char *format)
+{
+ char *p;
+ unsigned int cstat;
+ int ccount;
+ char buf[2*BUFSIZ];
+ char *nlp;
+ unsigned int istat;
+ int in_line;
+ FILE *fptr;
+
+ if ((fptr = myfopen(file, "r")) == NULL)
+ return(-1);
+
+ ccount = 0;
+ lnum = 1;
+ in_line = 0;
+ p = buf;
+ nlp = p;
+ if ((ccount = fread(p, sizeof(char), BUFSIZ, fptr)) <= 0)
+ goto done;
+ in_line = 1;
+ istat = cstat = (unsigned int) gotofn[0]['\n'];
+ if (out[cstat])
+ goto found;
+ for (;;) {
+ if (!iflag)
+ cstat = (unsigned int) gotofn[cstat][(unsigned int)*p&0377];
+ /* all input chars made positive */
+ else
+ cstat = (unsigned int) gotofn[cstat][tolower((int)*p&0377)];
+ /* for -i option*/
+ if (out[cstat]) {
+ found:
+ for(;;) {
+ if (*p++ == '\n') {
+ in_line = 0;
+ succeed:
+ fprintf(output, format, file, lnum);
+ if (p <= nlp) {
+ while (nlp < &buf[2*BUFSIZ])
+ putc(*nlp++, output);
+ nlp = buf;
+ }
+ while (nlp < p)
+ putc(*nlp++, output);
+ lnum++;
+ nlp = p;
+ if ((out[(cstat=istat)]) == 0)
+ goto brk2;
+ } /* if (p++ == \n) */
+ cfound:
+ if (--ccount <= 0) {
+ if (p <= &buf[BUFSIZ]) {
+ ccount = fread(p, sizeof(char), BUFSIZ, fptr);
+ } else if (p == &buf[2*BUFSIZ]) {
+ p = buf;
+ ccount = fread(p, sizeof(char), BUFSIZ, fptr);
+ } else {
+ ccount = fread(p, sizeof(char), &buf[2*BUFSIZ] - p,
+ fptr);
+ }
+ if (ccount <= 0) {
+ if (in_line) {
+ in_line = 0;
+ goto succeed;
+ }
+ goto done;
+ }
+ } /* if(ccount <= 0) */
+ in_line = 1;
+ } /* for(ever) */
+ } /* if(out[cstat]) */
+
+ if (*p++ == '\n') {
+ in_line = 0;
+ lnum++;
+ nlp = p;
+ if (out[(cstat=istat)])
+ goto cfound;
+ }
+ brk2:
+ if (--ccount <= 0) {
+ if (p <= &buf[BUFSIZ]) {
+ ccount = fread(p, sizeof(char), BUFSIZ, fptr);
+ } else if (p == &buf[2*BUFSIZ]) {
+ p = buf;
+ ccount = fread(p, sizeof(char), BUFSIZ, fptr);
+ } else {
+ ccount = fread(p, sizeof(char), &buf[2*BUFSIZ] - p, fptr);
+ }
+ if (ccount <= 0)
+ break;
+ }
+ in_line = 1;
+ }
+done:
+ fclose(fptr);
+ return(0);
+}
+
+/* FIXME HBB: should export this to a separate file and use
+ * AC_REPLACE_FUNCS() */
+#if !STDC_HEADERS && !defined(HAVE_MEMSET) && !defined(HAVE_MEMORY_H)
+/*LINTLIBRARY*/
+/*
+ * Set an array of n chars starting at sp to the character c.
+ * Return sp.
+ */
+char *
+memset(char *sp, char c, int n)
+{
+ char *sp0 = sp;
+
+ while (--n >= 0)
+ *sp++ = c;
+ return (sp0);
+}
+#endif
+
+void
+egrepcaseless(int i)
+{
+ iflag = i; /* simulate "egrep -i" */
+}
diff --git a/src/emacs.e b/src/emacs.e
new file mode 100644
index 0000000..9eff1ce
--- /dev/null
+++ b/src/emacs.e
@@ -0,0 +1,102 @@
+/ ========================================================================= /
+/ Copyright (c) 1998-2000, The Santa Cruz Operation /
+/ All rights reserved./
+/ /
+/ Redistribution and use in source and binary forms, with or without/
+/ modification, are permitted provided that the following conditions are met:/
+//
+/ *Redistributions of source code must retain the above copyright notice,/
+/ this list of conditions and the following disclaimer./
+//
+/ *Redistributions in binary form must reproduce the above copyright notice,/
+/ this list of conditions and the following disclaimer in the documentation/
+/ and/or other materials provided with the distribution./
+//
+/ *Neither name of The Santa Cruz Operation nor the names of its contributors/
+/ may be used to endorse or promote products derived from this software/
+/ without specific prior written permission. /
+//
+/ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS/
+/ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,/
+/ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR/
+/ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE/
+/ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR/
+/ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF/
+/ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS/
+/ INTERRUPTION)/
+/ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT/
+/ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY/
+/ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH/
+/ DAMAGE. /
+/ ========================================================================= /
+
+/ $Id: emacs.e,v 1.1 2000/04/27 16:33:47 petr Exp $ /
+
+
+/ emacs menu for cscope /
+((X) cscope (find current word [MACRO])
+ (extern symbol-character)
+
+ / if this character is not part of a symbol /
+ (cond ((not symbol-character)
+
+ / if the previous character is not part of a symbol, go to
+ the next word /
+ back
+ (cond ((not symbol-character) forward-word back-word))
+ ))
+ / get the current symbol (leave cursor at beginning of symbol) /
+ (while symbol-character forward) / go past last symbol character /
+ mark / mark this point /
+ back / back to last symbol character /
+ (while (cond (symbol-character (return back)))) / back fails at BOF /
+ (cond ((not symbol-character) forward)) / forward if not at BOF /
+ pickup-region / get the symbol /
+ (local-string symbol)
+ symbol=
+
+ / if arg > 0 then display the menu /
+ (cond ((> arg 0) (display-menu
+ (format symbol "5 Find functions calling %l()")
+ (format symbol "4 Find functions called by %l()")
+ (format symbol "3 Find global definition of %l")
+ (format symbol "2 Find symbol %l")
+ "1 Call cscope"
+ 5)
+ ))
+ / get the selection /
+ (local selection)
+ (selection= (read-character "Selection?"))
+
+ / if the selection is in range /
+ (cond ((&& (>= selection '1') (<= selection '5'))
+
+ / if the selection requests finding the symbol /
+ (local-string findsymbol)
+ (findsymbol= "")
+ (cond ((>= selection '2')
+ (findsymbol= (format (char-to-string (- selection 2)) symbol "-%l '%l'"))))
+
+ / if arg > 1 or < 0 then don't update the cross-reference database /
+ (local-string doption)
+ (doption= "")
+ (cond ((|| (> arg 1) (< arg 0)) (doption= "-d")))
+
+ / call cscope with usilent mode off /
+ (local oldmode) / save old usilent mode /
+ (oldmode= (set-mode "usilent" 0)) / turn off usilent mode /
+ (run-command (format doption findsymbol "cscope %l %l"))
+ (set-mode "usilent" oldmode) / restore usilent mode /
+ ))
+)
+/ see if the current character is part of a symbol /
+(symbol-character ()
+ (local c)
+ (c= current-character)
+ (return (cond ((&& (>= c 'a') (<= c 'z')))
+ ((&& (>= c 'A') (<= c 'Z')))
+ ((&& (>= c '0') (<= c '9')))
+ ((== c '_'))
+ )
+ )
+)
diff --git a/src/exec.c b/src/exec.c
new file mode 100644
index 0000000..56bd471
--- /dev/null
+++ b/src/exec.c
@@ -0,0 +1,190 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * process execution functions
+ */
+
+#include <unistd.h>
+#include "global.h"
+#include <stdarg.h>
+#include <sys/wait.h>
+#include <sys/types.h> /* pid_t */
+#ifdef __DJGPP__
+#include <process.h>
+#endif
+#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+#include <ncurses.h>
+#else
+#include <curses.h>
+#endif
+
+static char const rcsid[] = "$Id: exec.c,v 1.12 2009/04/10 13:39:23 broeker Exp $";
+
+static sighandler_t oldsigquit; /* old value of quit signal */
+static sighandler_t oldsighup; /* old value of hangup signal */
+static sighandler_t oldsigtstp; /* old value of SIGTSTP */
+
+#ifndef __MSDOS__ /* none of these is needed, there */
+static int join(pid_t p);
+static int myexecvp(char *a, char **args);
+static pid_t myfork(void);
+#endif
+
+/* execute forks and executes a program or shell script, waits for it to
+ * finish, and returns its exit code.
+ */
+
+/*VARARGS1*/
+int
+execute(char *a, ...) /* note: "exec" is already defined on u370 */
+{
+ va_list ap;
+ int exitcode = -1; /* initialize, to avoid warning */
+ char *argv[BUFSIZ];
+ pid_t p;
+
+ /* fork and exec the program or shell script */
+ endwin(); /* restore the terminal modes */
+ mousecleanup();
+ fflush(stdout);
+ va_start(ap, a);
+ for (p = 0; (argv[p] = va_arg(ap, char *)) != 0; p++)
+ ;
+#ifdef __MSDOS__
+ /* HBB 20010313: in MSDOG, everything is completely different.
+ * No fork()/exec()/wait(), but rather a single libc call: */
+ exitcode = spawnvp(P_WAIT, a, argv);
+#else
+ if ((p = myfork()) == 0) {
+ myexecvp(a, argv); /* child */
+ }
+ else {
+ exitcode = join(p); /* parent */
+ }
+#endif /* MSDOS */
+
+ /* the menu and scrollbar may be changed by the command executed */
+#if UNIXPC || !TERMINFO
+# ifndef __DJGPP__ /* leave CRLF handling as is */
+ nonl();
+# endif
+ raw(); /* endwin() turns off cbreak mode so restore it */
+ noecho();
+#endif
+ mousemenu();
+ drawscrollbar(topline, nextline);
+ va_end(ap);
+ return(exitcode);
+}
+
+#ifndef __MSDOS__ /* None of the following functions is used there */
+
+/* myexecvp is an interface to the execvp system call to
+ * modify argv[0] to reference the last component of its path-name.
+ */
+static int
+myexecvp(char *a, char **args)
+{
+ char msg[MSGLEN + 1];
+
+ /* modify argv[0] to reference the last component of its path name */
+ args[0] = mybasename(args[0]);
+
+ /* execute the program or shell script */
+ execvp(a, args); /* returns only on failure */
+ snprintf(msg, sizeof(msg), "\nCannot exec %s", a);
+ perror(msg); /* display the reason */
+ askforreturn(); /* wait until the user sees the message */
+ myexit(1); /* exit the child */
+ /* NOTREACHED */
+}
+
+/* myfork acts like fork but also handles signals */
+
+static pid_t
+myfork(void)
+{
+ pid_t p; /* process number */
+
+ p = fork();
+
+ /* the parent ignores the interrupt, quit, and hangup signals */
+ if (p > 0) {
+ oldsigquit = signal(SIGQUIT, SIG_IGN);
+ oldsighup = signal(SIGHUP, SIG_IGN);
+#ifdef SIGTSTP
+ oldsigtstp = signal(SIGTSTP, SIG_DFL);
+#endif
+ }
+ /* so they can be used to stop the child */
+ else if (p == 0) {
+ signal(SIGINT, SIG_DFL);
+ signal(SIGQUIT, SIG_DFL);
+ signal(SIGHUP, SIG_DFL);
+#ifdef SIGTSTP
+ signal(SIGTSTP, SIG_DFL);
+#endif
+ }
+ /* check for fork failure */
+ if (p == -1) {
+ myperror("Cannot fork");
+ }
+ return p;
+}
+
+/* join is the compliment of fork */
+
+static int
+join(pid_t p)
+{
+ int status;
+ pid_t w;
+
+ /* wait for the correct child to exit */
+ do {
+ w = wait(&status);
+ } while (p != -1 && w != p);
+
+ /* restore signal handling */
+ signal(SIGQUIT, oldsigquit);
+ signal(SIGHUP, oldsighup);
+#ifdef SIGTSTP
+ signal(SIGTSTP, oldsigtstp);
+#endif
+
+ /* return the child's exit code */
+ return(status >> 8);
+}
+
+#endif /* !MSDOS */
diff --git a/src/find.c b/src/find.c
new file mode 100644
index 0000000..d8da542
--- /dev/null
+++ b/src/find.c
@@ -0,0 +1,1302 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol or text cross-reference
+ *
+ * searching functions
+ */
+
+#include "global.h"
+
+#include "build.h"
+#include "scanner.h" /* for token definitions */
+
+#include <assert.h>
+#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+#include <ncurses.h>
+#else
+#include <curses.h>
+#endif
+#include <regex.h>
+
+static char const rcsid[] = "$Id: find.c,v 1.25 2012/06/15 11:18:11 nhorman Exp $";
+
+/* most of these functions have been optimized so their innermost loops have
+ * only one test for the desired character by putting the char and
+ * an end-of-block marker (\0) at the end of the disk block buffer.
+ * When the inner loop exits on the char, an outer loop will see if
+ * the char is followed by a \0. If so, it will read the next block
+ * and restart the inner loop.
+ */
+
+char *blockp; /* pointer to current char in block */
+char block[BUFSIZ + 2]; /* leave room for end-of-block mark */
+int blocklen; /* length of disk block read */
+char blockmark; /* mark character to be searched for */
+long blocknumber; /* block number */
+
+static char global[] = "<global>"; /* dummy global function name */
+static char cpattern[PATLEN + 1]; /* compressed pattern */
+static long lastfcnoffset; /* last function name offset */
+static POSTING *postingp; /* retrieved posting set pointer */
+static long postingsfound; /* retrieved number of postings */
+static regex_t regexp; /* regular expression */
+static BOOL isregexp_valid = NO; /* regular expression status */
+
+static BOOL match(void);
+static BOOL matchrest(void);
+static POSTING *getposting(void);
+static char *lcasify(char *s);
+static void findcalledbysub(char *file, BOOL macro);
+static void findterm(char *pattern);
+static void putline(FILE *output);
+static char *find_symbol_or_assignment(char *pattern, BOOL assign_flag);
+static BOOL check_for_assignment(void);
+static void putpostingref(POSTING *p, char *pat);
+static void putref(int seemore, char *file, char *func);
+static void putsource(int seemore, FILE *output);
+
+ /* find the symbol in the cross-reference */
+
+char *
+findsymbol(char *pattern)
+{
+ return find_symbol_or_assignment(pattern, NO);
+}
+
+ /* find the symbol in the cross-reference, and look for assignments */
+char *
+findassign(char *pattern)
+{
+ return find_symbol_or_assignment(pattern, YES);
+}
+
+ /* Test reference whether it's an assignment to the symbol found at
+ * (global variable) 'blockp' */
+static BOOL
+check_for_assignment(void)
+{
+ /* Do the extra work here to determine if this is an
+ * assignment or not. Do this by examining the next character
+ * or two in blockp */
+ char *asgn_char = blockp;
+
+ while (isspace((unsigned char) asgn_char[0])) {
+ /* skip any whitespace or \n */
+ asgn_char++;
+ if (asgn_char[0] == '\0') {
+ /* get the next block when we reach the end of
+ * the current block */
+ if (NULL == (asgn_char = read_block()))
+ return NO;
+ }
+ }
+ /* check for digraph starting with = */
+ if ((asgn_char[0] & 0x80) && (dichar1[(asgn_char[0] & 0177)/8] == '=')) {
+ return YES;
+ }
+ /* check for plain '=', not '==' */
+ if ((asgn_char[0] == '=') &&
+ (((asgn_char[1] != '=') && !(asgn_char[1] & 0x80)) ||
+ ((asgn_char[1] & 0x80) && (dichar1[(asgn_char[1]& 0177)/8] != '=')))) {
+ return YES;
+ }
+
+ /* check for operator assignments: +=, ... ^= ? */
+ if ( ( (asgn_char[0] == '+')
+ || (asgn_char[0] == '-')
+ || (asgn_char[0] == '*')
+ || (asgn_char[0] == '/')
+ || (asgn_char[0] == '%')
+ || (asgn_char[0] == '&')
+ || (asgn_char[0] == '|')
+ || (asgn_char[0] == '^')
+ )
+ && ((asgn_char[1] == '=') || ((asgn_char[1] & 0x80) && (dichar1[(asgn_char[1] &0177)/8] == '=')))
+
+ ) {
+ return YES;
+ }
+
+ /* check for two-letter operator assignments: <<= or >>= ? */
+ if ( ( (asgn_char[0] == '<')
+ || (asgn_char[0] == '>')
+ )
+ && (asgn_char[1] == asgn_char[0])
+ && ((asgn_char[2] == '=') || ((asgn_char[2] & 0x80) && (dichar1[(asgn_char[2] & 0177)/8] == '=')))
+ )
+ return YES;
+ return NO;
+}
+
+ /* The actual routine that does the work for findsymbol() and
+* findassign() */
+static char *
+find_symbol_or_assignment(char *pattern, BOOL assign_flag)
+{
+ char file[PATHLEN + 1]; /* source file name */
+ char function[PATLEN + 1]; /* function name */
+ char macro[PATLEN + 1]; /* macro name */
+ char symbol[PATLEN + 1]; /* symbol name */
+ char *cp;
+ char *s;
+ size_t s_len = 0;
+ char firstchar; /* first character of a potential symbol */
+ BOOL fcndef = NO;
+
+ if ((invertedindex == YES) && (assign_flag == NO)) {
+ long lastline = 0;
+ POSTING *p;
+
+ findterm(pattern);
+ while ((p = getposting()) != NULL) {
+ if (p->type != INCLUDE && p->lineoffset != lastline) {
+ putpostingref(p, 0);
+ lastline = p->lineoffset;
+ }
+ }
+ return NULL;
+ }
+
+ (void) scanpast('\t'); /* find the end of the header */
+ skiprefchar(); /* skip the file marker */
+ fetch_string_from_dbase(file, sizeof(file));
+ strcpy(function, global); /* set the dummy global function name */
+ strcpy(macro, global); /* set the dummy global macro name */
+
+ /* find the next symbol */
+ /* note: this code was expanded in-line for speed */
+ /* other macros were replaced by code using cp instead of blockp */
+ cp = blockp;
+ for (;;) {
+ setmark('\n');
+ do { /* innermost loop optimized to only one test */
+ while (*cp != '\n') {
+ ++cp;
+ }
+ } while (*(cp + 1) == '\0' && (cp = read_block()) != NULL);
+
+ /* skip the found character */
+ if (cp != NULL && *(++cp + 1) == '\0') {
+ cp = read_block();
+ }
+ if (cp == NULL) {
+ break;
+ }
+ /* look for a source file, function, or macro name */
+ if (*cp == '\t') {
+ blockp = cp;
+ switch (getrefchar()) {
+
+ case NEWFILE: /* file name */
+
+ /* save the name */
+ skiprefchar();
+ fetch_string_from_dbase(file, sizeof(file));
+
+ /* check for the end of the symbols */
+ if (*file == '\0') {
+ return NULL;
+ }
+ progress("Search", searchcount, nsrcfiles);
+ /* FALLTHROUGH */
+
+ case FCNEND: /* function end */
+ (void) strcpy(function, global);
+ goto notmatched; /* don't match name */
+
+ case FCNDEF: /* function name */
+ fcndef = YES;
+ s = function;
+ s_len = sizeof(function);
+ break;
+
+ case DEFINE: /* macro name */
+ if (fileversion >= 10) {
+ s = macro;
+ s_len = sizeof(macro);
+ } else {
+ s = symbol;
+ s_len = sizeof(symbol);
+ }
+ break;
+
+ case DEFINEEND: /* macro end */
+ (void) strcpy(macro, global);
+ goto notmatched;
+
+ case INCLUDE: /* #include file */
+ goto notmatched; /* don't match name */
+
+ default: /* other symbol */
+ s = symbol;
+ s_len = sizeof(symbol);
+ }
+ /* save the name */
+ skiprefchar();
+ fetch_string_from_dbase(s, s_len);
+
+ /* see if this is a regular expression pattern */
+ if (isregexp_valid == YES) {
+ if (caseless == YES) {
+ s = lcasify(s);
+ }
+ if (*s != '\0' && regexec (&regexp, s, (size_t)0, NULL, 0) == 0) {
+ goto matched;
+ }
+ }
+ /* match the symbol to the text pattern */
+ else if (strequal(pattern, s)) {
+ goto matched;
+ }
+ goto notmatched;
+ }
+ /* if this is a regular expression pattern */
+ if (isregexp_valid == YES) {
+
+ /* if this is a symbol */
+
+ /**************************************************
+ * The first character may be a digraph'ed char, so
+ * unpack it into firstchar, and then test that.
+ *
+ * Assume that all digraphed chars have the 8th bit
+ * set (0200).
+ **************************************************/
+ if (*cp & 0200) { /* digraph char? */
+ firstchar = dichar1[(*cp & 0177) / 8];
+ }
+ else {
+ firstchar = *cp;
+ }
+
+ if (isalpha((unsigned char)firstchar) || firstchar == '_') {
+ blockp = cp;
+ fetch_string_from_dbase(symbol, sizeof(symbol));
+ if (caseless == YES) {
+ s = lcasify(symbol); /* point to lower case version */
+ }
+ else {
+ s = symbol;
+ }
+
+ /* match the symbol to the regular expression */
+ if (*s != '\0' && regexec (&regexp, s, (size_t)0, NULL, 0) == 0) {
+ goto matched;
+ }
+ goto notmatched;
+ }
+ }
+ /* match the character to the text pattern */
+ else if (*cp == cpattern[0]) {
+ blockp = cp;
+
+ /* match the rest of the symbol to the text pattern */
+ if (matchrest()) {
+ s = NULL;
+ matched:
+ /* if the assignment flag is set then
+ * we are looking for assignments and
+ * some extra filtering is needed */
+ if(assign_flag == YES
+ && ! check_for_assignment())
+ goto notmatched;
+
+
+ /* output the file, function or macro, and source line */
+ if (strcmp(macro, global) && s != macro) {
+ putref(0, file, macro);
+ }
+ else if (fcndef == YES || s != function) {
+ fcndef = NO;
+ putref(0, file, function);
+ }
+ else {
+ putref(0, file, global);
+ }
+ }
+ notmatched:
+ if (blockp == NULL) {
+ return NULL;
+ }
+ fcndef = NO;
+ cp = blockp;
+ }
+ }
+ blockp = cp;
+
+ return NULL;
+}
+ /* find the function definition or #define */
+
+char *
+finddef(char *pattern)
+{
+ char file[PATHLEN + 1]; /* source file name */
+
+ if (invertedindex == YES) {
+ POSTING *p;
+
+ findterm(pattern);
+ while ((p = getposting()) != NULL) {
+ switch (p->type) {
+ case DEFINE:/* could be a macro */
+ case FCNDEF:
+ case CLASSDEF:
+ case ENUMDEF:
+ case MEMBERDEF:
+ case STRUCTDEF:
+ case TYPEDEF:
+ case UNIONDEF:
+ case GLOBALDEF:/* other global definition */
+ putpostingref(p, pattern);
+ }
+ }
+ return NULL;
+ }
+
+
+ /* find the next file name or definition */
+ while (scanpast('\t') != NULL) {
+ switch (*blockp) {
+
+ case NEWFILE:
+ skiprefchar(); /* save file name */
+ fetch_string_from_dbase(file, sizeof(file));
+ if (*file == '\0') { /* if end of symbols */
+ return NULL;
+ }
+ progress("Search", searchcount, nsrcfiles);
+ break;
+
+ case DEFINE: /* could be a macro */
+ case FCNDEF:
+ case CLASSDEF:
+ case ENUMDEF:
+ case MEMBERDEF:
+ case STRUCTDEF:
+ case TYPEDEF:
+ case UNIONDEF:
+ case GLOBALDEF: /* other global definition */
+ skiprefchar(); /* match name to pattern */
+ if (match()) {
+
+ /* output the file, function and source line */
+ putref(0, file, pattern);
+ }
+ break;
+ }
+ }
+
+ return NULL;
+}
+ /* find all function definitions (used by samuel only) */
+
+char *
+findallfcns(char *dummy)
+{
+ char file[PATHLEN + 1]; /* source file name */
+ char function[PATLEN + 1]; /* function name */
+
+ (void) dummy; /* unused argument */
+
+ /* find the next file name or definition */
+ while (scanpast('\t') != NULL) {
+ switch (*blockp) {
+
+ case NEWFILE:
+ skiprefchar(); /* save file name */
+ fetch_string_from_dbase(file, sizeof(file));
+ if (*file == '\0') { /* if end of symbols */
+ return NULL;
+ }
+ progress("Search", searchcount, nsrcfiles);
+ /* FALLTHROUGH */
+
+ case FCNEND: /* function end */
+ (void) strcpy(function, global);
+ break;
+
+ case FCNDEF:
+ case CLASSDEF:
+ skiprefchar(); /* save function name */
+ fetch_string_from_dbase(function, sizeof(function));
+
+ /* output the file, function and source line */
+ putref(0, file, function);
+ break;
+ }
+ }
+ return NULL;
+}
+
+ /* find the functions calling this function */
+
+char *
+findcalling(char *pattern)
+{
+ char file[PATHLEN + 1]; /* source file name */
+ char function[PATLEN + 1]; /* function name */
+ char tmpfunc[10][PATLEN + 1];/* 10 temporary function names */
+ char macro[PATLEN + 1]; /* macro name */
+ char *tmpblockp;
+ int morefuns, i;
+
+ if (invertedindex == YES) {
+ POSTING *p;
+
+ findterm(pattern);
+ while ((p = getposting()) != NULL) {
+ if (p->type == FCNCALL) {
+ putpostingref(p, 0);
+ }
+ }
+ return NULL;
+ }
+ /* find the next file name or function definition */
+ *macro = '\0'; /* a macro can be inside a function, but not vice versa */
+ tmpblockp = 0;
+ morefuns = 0; /* one function definition is normal case */
+ for (i = 0; i < 10; i++) *(tmpfunc[i]) = '\0';
+ while (scanpast('\t') != NULL) {
+ switch (*blockp) {
+
+ case NEWFILE: /* save file name */
+ skiprefchar();
+ fetch_string_from_dbase(file, sizeof(file));
+ if (*file == '\0') { /* if end of symbols */
+ return NULL;
+ }
+ progress("Search", searchcount, nsrcfiles);
+ (void) strcpy(function, global);
+ break;
+
+ case DEFINE: /* could be a macro */
+ if (fileversion >= 10) {
+ skiprefchar();
+ fetch_string_from_dbase(macro, sizeof(macro));
+ }
+ break;
+
+ case DEFINEEND:
+ *macro = '\0';
+ break;
+
+ case FCNDEF: /* save calling function name */
+ skiprefchar();
+ fetch_string_from_dbase(function, sizeof(function));
+ for (i = 0; i < morefuns; i++)
+ if ( !strcmp(tmpfunc[i], function) )
+ break;
+ if (i == morefuns) {
+ (void) strcpy(tmpfunc[morefuns], function);
+ if (++morefuns >= 10) morefuns = 9;
+ }
+ break;
+
+ case FCNEND:
+ for (i = 0; i < morefuns; i++)
+ *(tmpfunc[i]) = '\0';
+ morefuns = 0;
+ break;
+
+ case FCNCALL: /* match function called to pattern */
+ skiprefchar();
+ if (match()) {
+
+ /* output the file, calling function or macro, and source */
+ if (*macro != '\0') {
+ putref(1, file, macro);
+ }
+ else {
+ tmpblockp = blockp;
+ for (i = 0; i < morefuns; i++) {
+ blockp = tmpblockp;
+ putref(1, file, tmpfunc[i]);
+ }
+ }
+ }
+ }
+ }
+
+ return NULL;
+}
+
+/* find the text in the source files */
+
+char *
+findstring(char *pattern)
+{
+ char egreppat[2 * PATLEN];
+ char *cp, *pp;
+
+ /* translate special characters in the regular expression */
+ cp = egreppat;
+ for (pp = pattern; *pp != '\0'; ++pp) {
+ if (strchr(".*[\\^$+?|()", *pp) != NULL) {
+ *cp++ = '\\';
+ }
+ *cp++ = *pp;
+ }
+ *cp = '\0';
+
+ /* search the source files */
+ return(findregexp(egreppat));
+}
+
+/* find this regular expression in the source files */
+
+char *
+findregexp(char *egreppat)
+{
+ unsigned int i;
+ char *egreperror;
+
+ /* compile the pattern */
+ if ((egreperror = egrepinit(egreppat)) == NULL) {
+
+ /* search the files */
+ for (i = 0; i < nsrcfiles; ++i) {
+ char *file = filepath(srcfiles[i]);
+
+ progress("Search", searchcount, nsrcfiles);
+ if (egrep(file, refsfound, "%s <unknown> %ld ") < 0) {
+ posterr ("Cannot open file %s", file);
+ }
+ }
+ }
+ return(egreperror);
+}
+
+/* find matching file names */
+
+char *
+findfile(char *dummy)
+{
+ unsigned int i;
+
+ (void) dummy; /* unused argument */
+
+ for (i = 0; i < nsrcfiles; ++i) {
+ char *s;
+
+ if (caseless == YES) {
+ s = lcasify(srcfiles[i]);
+ } else {
+ s = srcfiles[i];
+ }
+ if (regexec (&regexp, s, (size_t)0, NULL, 0) == 0) {
+ (void) fprintf(refsfound, "%s <unknown> 1 <unknown>\n",
+ srcfiles[i]);
+ }
+ }
+
+ return NULL;
+}
+
+/* find files #including this file */
+
+char *
+findinclude(char *pattern)
+{
+ char file[PATHLEN + 1]; /* source file name */
+
+ if (invertedindex == YES) {
+ POSTING *p;
+
+ findterm(pattern);
+ while ((p = getposting()) != NULL) {
+ if (p->type == INCLUDE) {
+ putpostingref(p, 0);
+ }
+ }
+ return NULL;
+ }
+
+ /* find the next file name or function definition */
+ while (scanpast('\t') != NULL) {
+ switch (*blockp) {
+
+ case NEWFILE: /* save file name */
+ skiprefchar();
+ fetch_string_from_dbase(file, sizeof(file));
+ if (*file == '\0') { /* if end of symbols */
+ return NULL;
+ }
+ progress("Search", searchcount, nsrcfiles);
+ break;
+
+ case INCLUDE: /* match function called to pattern */
+ skiprefchar();
+ skiprefchar(); /* skip global or local #include marker */
+ if (match()) {
+
+ /* output the file and source line */
+ putref(0, file, global);
+ }
+ }
+ }
+
+ return NULL;
+}
+
+/* initialize */
+
+FINDINIT
+findinit(char *pattern)
+{
+ char buf[PATLEN + 3];
+ BOOL isregexp = NO;
+ int i;
+ char *s;
+ unsigned char c; /* HBB 20010427: changed uint to uchar */
+
+ /* HBB: be nice: free regexp before allocating a new one */
+ if(isregexp_valid == YES)
+ regfree(&regexp);
+
+ isregexp_valid = NO;
+
+ /* remove trailing white space */
+ for (s = pattern + strlen(pattern) - 1;
+ isspace((unsigned char)*s);
+ --s) {
+ *s = '\0';
+ }
+
+ /* HBB 20020620: new: make sure pattern is lowercased. Curses
+ * mode gets this right all on its own, but at least -L mode
+ * doesn't */
+ if (caseless == YES) {
+ pattern = lcasify(pattern);
+ }
+
+ /* allow a partial match for a file name */
+ if (field == FILENAME || field == INCLUDES) {
+ if (regcomp (&regexp, pattern, REG_EXTENDED | REG_NOSUB) != 0) {
+ return(REGCMPERROR);
+ } else {
+ isregexp_valid = YES;
+ }
+ return(NOERROR);
+ }
+ /* see if the pattern is a regular expression */
+ if (strpbrk(pattern, "^.[{*+$") != NULL) {
+ isregexp = YES;
+ } else {
+ /* check for a valid C symbol */
+ s = pattern;
+ if (!isalpha((unsigned char)*s) && *s != '_') {
+ return(NOTSYMBOL);
+ }
+ while (*++s != '\0') {
+ if (!isalnum((unsigned char)*s) && *s != '_') {
+ return(NOTSYMBOL);
+ }
+ }
+ /* look for use of the -T option (truncate symbol to 8
+ characters) on a database not built with -T */
+ if (trun_syms == YES && isuptodate == YES &&
+ dbtruncated == NO && s - pattern >= 8) {
+ (void) strcpy(pattern + 8, ".*");
+ isregexp = YES;
+ }
+ }
+ /* if this is a regular expression or letter case is to be ignored */
+ /* or there is an inverted index */
+ if (isregexp == YES || caseless == YES || invertedindex == YES) {
+
+ /* remove a leading ^ */
+ s = pattern;
+ if (*s == '^') {
+ (void) strcpy(newpat, s + 1);
+ (void) strcpy(s, newpat);
+ }
+ /* remove a trailing $ */
+ i = strlen(s) - 1;
+ if (s[i] == '$') {
+ if (i > 0 && s[i-1] == '\\' ) {
+ s[i-1] = '$';
+ }
+ s[i] = '\0';
+ }
+ /* if requested, try to truncate a C symbol pattern */
+ if (trun_syms == YES && strpbrk(s, "[{*+") == NULL) {
+ s[8] = '\0';
+ }
+ /* must be an exact match */
+ /* note: regcomp doesn't recognize ^*keypad$ as a syntax error
+ unless it is given as a single arg */
+ (void) snprintf(buf, sizeof(buf), "^%s$", s);
+ if (regcomp (&regexp, buf, REG_EXTENDED | REG_NOSUB) != 0) {
+ return(REGCMPERROR);
+ }
+ else
+ {
+ isregexp_valid = YES;
+ }
+ }
+ else {
+ /* if requested, truncate a C symbol pattern */
+ if (trun_syms == YES && field <= CALLING) {
+ pattern[8] = '\0';
+ }
+ /* compress the string pattern for matching */
+ s = cpattern;
+ for (i = 0; (c = pattern[i]) != '\0'; ++i) {
+ if (IS_A_DICODE(c, pattern[i + 1])) {
+ c = DICODE_COMPRESS(c, pattern[i + 1]);
+ ++i;
+ }
+ *s++ = c;
+ }
+ *s = '\0';
+ }
+ return(NOERROR);
+}
+
+void
+findcleanup(void)
+{
+ /* discard any regular expression */
+}
+
+/* match the pattern to the string */
+
+static BOOL
+match(void)
+{
+ char string[PATLEN + 1];
+
+ /* see if this is a regular expression pattern */
+ if (isregexp_valid == YES) {
+ fetch_string_from_dbase(string, sizeof(string));
+ if (*string == '\0') {
+ return(NO);
+ }
+ if (caseless == YES) {
+ return (regexec (&regexp, lcasify(string), (size_t)0, NULL, 0) ? NO : YES);
+ }
+ else {
+ return (regexec (&regexp, string, (size_t)0, NULL, 0) ? NO : YES);
+ }
+ }
+ /* it is a string pattern */
+ return((BOOL) (*blockp == cpattern[0] && matchrest()));
+}
+
+/* match the rest of the pattern to the name */
+
+static BOOL
+matchrest(void)
+{
+ int i = 1;
+
+ skiprefchar();
+ do {
+ while (*blockp == cpattern[i]) {
+ ++blockp;
+ ++i;
+ }
+ } while (*(blockp + 1) == '\0' && read_block() != NULL);
+
+ if (*blockp == '\n' && cpattern[i] == '\0') {
+ return(YES);
+ }
+ return(NO);
+}
+
+/* put the reference into the file */
+
+static void
+putref(int seemore, char *file, char *func)
+{
+ FILE *output;
+
+ if (strcmp(func, global) == 0) {
+ output = refsfound;
+ }
+ else {
+ output = nonglobalrefs;
+ }
+ (void) fprintf(output, "%s %s ", file, func);
+ putsource(seemore, output);
+}
+
+/* put the source line into the file */
+
+static void
+putsource(int seemore, FILE *output)
+{
+ char *tmpblockp;
+ char *cp, nextc = '\0';
+ BOOL Change = NO, retreat = NO;
+
+ if (fileversion <= 5) {
+ (void) scanpast(' ');
+ putline(output);
+ (void) putc('\n', output);
+ return;
+ }
+ /* scan back to the beginning of the source line */
+ cp = tmpblockp = blockp;
+ while (*cp != '\n' || nextc != '\n') {
+ nextc = *cp;
+ if (--cp < block) {
+ retreat = YES;
+ /* read the previous block */
+ (void) dbseek((blocknumber - 1) * BUFSIZ);
+ cp = &block[BUFSIZ - 1];
+ }
+ }
+ blockp = cp;
+ if (*blockp != '\n' || getrefchar() != '\n' ||
+ (!isdigit(getrefchar()) && fileversion >= 12)) {
+ postfatal("Internal error: cannot get source line from database");
+ /* NOTREACHED */
+ }
+ /* until a double newline is found */
+ do {
+ /* skip a symbol type */
+ if (*blockp == '\t') {
+ /* if retreat == YES, that means tmpblockp and blockp
+ * point to different blocks. Offset comparison should
+ * NOT be performed until they point to the same block.
+ */
+ if (seemore && Change == NO && retreat == NO &&
+ blockp > tmpblockp) {
+ Change = YES;
+ cp = blockp;
+ }
+ skiprefchar();
+ skiprefchar();
+ }
+ /* output a piece of the source line */
+ putline(output);
+ if (retreat == YES) retreat = NO;
+ } while (blockp != NULL && getrefchar() != '\n');
+ (void) putc('\n', output);
+ if (Change == YES) blockp = cp;
+}
+
+/* put the rest of the cross-reference line into the file */
+
+static void
+putline(FILE *output)
+{
+ char *cp;
+ unsigned c;
+
+ setmark('\n');
+ cp = blockp;
+ do {
+ while ((c = (unsigned)(*cp)) != '\n') {
+
+ /* check for a compressed digraph */
+ if (c > '\177') {
+ c &= 0177;
+ (void) putc(dichar1[c / 8], output);
+ (void) putc(dichar2[c & 7], output);
+ }
+ /* check for a compressed keyword */
+ else if (c < ' ') {
+ (void) fputs(keyword[c].text, output);
+ if (keyword[c].delim != '\0') {
+ (void) putc(' ', output);
+ }
+ if (keyword[c].delim == '(') {
+ (void) putc('(', output);
+ }
+ }
+ else {
+ (void) putc((int) c, output);
+ }
+ ++cp;
+ }
+ } while (*(cp + 1) == '\0' && (cp = read_block()) != NULL);
+ blockp = cp;
+}
+
+
+/* put the rest of the cross-reference line into the string */
+void
+fetch_string_from_dbase(char *s, size_t length)
+{
+ char *cp;
+ unsigned int c;
+
+ assert(length > sizeof (char *));
+
+ setmark('\n');
+ cp = blockp;
+ do {
+ while (length > 1 && (c = (unsigned int)(*cp)) != '\n') {
+ if (c >= 0x80 && length > 2) {
+ c &= 0x7f;
+ *s++ = dichar1[c / 8];
+ *s++ = dichar2[c & 7];
+ length -= 2;
+ } else {
+ *s++ = c;
+ length--;
+ }
+ ++cp;
+ }
+ } while (length > 0 && cp[1] == '\0' && (cp = read_block()) != NULL);
+ blockp = cp;
+ *s = '\0';
+}
+
+
+/* scan past the next occurence of this character in the cross-reference */
+char *
+scanpast(char c)
+{
+ char *cp;
+
+ setmark(c);
+ cp = blockp;
+ do { /* innermost loop optimized to only one test */
+ while (*cp != c) {
+ ++cp;
+ }
+ } while (*(cp + 1) == '\0' && (cp = read_block()) != NULL);
+ blockp = cp;
+ if (cp != NULL) {
+ skiprefchar(); /* skip the found character */
+ }
+ return(blockp);
+}
+
+/* read a block of the cross-reference */
+/* HBB 20040430: renamed from readblock(), to avoid name clash on QNX */
+char *
+read_block(void)
+{
+ /* read the next block */
+ blocklen = read(symrefs, block, BUFSIZ);
+ blockp = block;
+
+ /* add the search character and end-of-block mark */
+ block[blocklen] = blockmark;
+ block[blocklen + 1] = '\0';
+
+ /* return NULL on end-of-file */
+ if (blocklen == 0) {
+ blockp = NULL;
+ }
+ else {
+ ++blocknumber;
+ }
+ return(blockp);
+}
+
+static char *
+lcasify(char *s)
+{
+ static char ls[PATLEN+1]; /* largest possible match string */
+ char *lptr = ls;
+
+ while(*s) {
+ *lptr = tolower((unsigned char)*s);
+ lptr++;
+ s++;
+ }
+ *lptr = '\0';
+ return(ls);
+}
+
+/* find the functions called by this function */
+
+/* HBB 2000/05/05: for consitency of calling interface between the
+ * different 'find...()' functions, this now returns a char pointer,
+ * too. Implemented as a pointer to static storage containing 'y' or
+ * 'n', for the boolean result values YES and NO */
+
+char *
+findcalledby(char *pattern)
+{
+ char file[PATHLEN + 1]; /* source file name */
+ static char found_caller = 'n'; /* seen calling function? */
+ BOOL macro = NO;
+
+ if (invertedindex == YES) {
+ POSTING *p;
+
+ findterm(pattern);
+ while ((p = getposting()) != NULL) {
+ switch (p->type) {
+ case DEFINE: /* could be a macro */
+ case FCNDEF:
+ if (dbseek(p->lineoffset) != -1 &&
+ scanpast('\t') != NULL) { /* skip def */
+ found_caller = 'y';
+ findcalledbysub(srcfiles[p->fileindex], macro);
+ }
+ }
+ }
+ return(&found_caller);
+ }
+ /* find the function definition(s) */
+ while (scanpast('\t') != NULL) {
+ switch (*blockp) {
+
+ case NEWFILE:
+ skiprefchar(); /* save file name */
+ fetch_string_from_dbase(file, sizeof(file));
+ if (*file == '\0') { /* if end of symbols */
+ return(&found_caller);
+ }
+ progress("Search", searchcount, nsrcfiles);
+ break;
+
+ case DEFINE: /* could be a macro */
+ if (fileversion < 10) {
+ break;
+ }
+ macro = YES;
+ /* FALLTHROUGH */
+
+ case FCNDEF:
+ skiprefchar(); /* match name to pattern */
+ if (match()) {
+ found_caller = 'y';
+ findcalledbysub(file, macro);
+ }
+ break;
+ }
+ }
+
+ return (&found_caller);
+}
+
+/* find this term, which can be a regular expression */
+
+static void
+findterm(char *pattern)
+{
+ char *s;
+ int len;
+ char prefix[PATLEN + 1];
+ char term[PATLEN + 1];
+
+ npostings = 0; /* will be non-zero after database built */
+ lastfcnoffset = 0; /* clear the last function name found */
+ boolclear(); /* clear the posting set */
+
+ /* get the string prefix (if any) of the regular expression */
+ (void) strcpy(prefix, pattern);
+ if ((s = strpbrk(prefix, ".[{*+")) != NULL) {
+ *s = '\0';
+ }
+ /* if letter case is to be ignored */
+ if (caseless == YES) {
+
+ /* convert the prefix to upper case because it is lexically
+ less than lower case */
+ s = prefix;
+ while (*s != '\0') {
+ *s = toupper((unsigned char)*s);
+ ++s;
+ }
+ }
+ /* find the term lexically >= the prefix */
+ (void) invfind(&invcontrol, prefix);
+ if (caseless == YES) { /* restore lower case */
+ (void) strcpy(prefix, lcasify(prefix));
+ }
+ /* a null prefix matches the null term in the inverted index,
+ so move to the first real term */
+ if (*prefix == '\0') {
+ (void) invforward(&invcontrol);
+ }
+ len = strlen(prefix);
+ do {
+ (void) invterm(&invcontrol, term); /* get the term */
+ s = term;
+ if (caseless == YES) {
+ s = lcasify(s); /* make it lower case */
+ }
+ /* if it matches */
+ if (regexec (&regexp, s, (size_t)0, NULL, 0) == 0) {
+
+ /* add its postings to the set */
+ if ((postingp = boolfile(&invcontrol, &npostings, BOOL_OR)) == NULL) {
+ break;
+ }
+ }
+ /* if there is a prefix */
+ else if (len > 0) {
+
+ /* if ignoring letter case and the term is out of the
+ range of possible matches */
+ if (caseless == YES) {
+ if (strncmp(term, prefix, len) > 0) {
+ break; /* stop searching */
+ }
+ }
+ /* if using letter case and the prefix doesn't match */
+ else if (strncmp(term, prefix, len) != 0) {
+ break; /* stop searching */
+ }
+ }
+ /* display progress about every three seconds */
+ if (++searchcount % 50 == 0) {
+ progress("Symbols matched", searchcount, totalterms);
+ }
+ } while (invforward(&invcontrol)); /* while didn't wrap around */
+
+ /* initialize the progress message for retrieving the references */
+ searchcount = 0;
+ postingsfound = npostings;
+}
+
+/* get the next posting for this term */
+
+static POSTING *
+getposting(void)
+{
+ if (npostings-- <= 0) {
+ return(NULL);
+ }
+ /* display progress about every three seconds */
+ if (++searchcount % 100 == 0) {
+ progress("Possible references retrieved", searchcount,
+ postingsfound);
+ }
+ return(postingp++);
+}
+
+/* put the posting reference into the file */
+
+static void
+putpostingref(POSTING *p, char *pat)
+{
+ static char function[PATLEN + 1]; /* function name */
+
+ if (p->fcnoffset == 0) {
+ if (p->type == FCNDEF) { /* need to find the function name */
+ if (dbseek(p->lineoffset) != -1) {
+ scanpast(FCNDEF);
+ fetch_string_from_dbase(function,
+ sizeof(function));
+ }
+ }
+ else if (p->type != FCNCALL) {
+ strcpy(function, global);
+ }
+ }
+ else if (p->fcnoffset != lastfcnoffset) {
+ if (dbseek(p->fcnoffset) != -1) {
+ fetch_string_from_dbase(function, sizeof(function));
+ lastfcnoffset = p->fcnoffset;
+ }
+ }
+ if (dbseek(p->lineoffset) != -1) {
+ if (pat)
+ putref(0, srcfiles[p->fileindex], pat);
+ else
+ putref(0, srcfiles[p->fileindex], function);
+ }
+}
+
+/* seek to the database offset */
+
+long
+dbseek(long offset)
+{
+ long n;
+ int rc = 0;
+
+ if ((n = offset / BUFSIZ) != blocknumber) {
+ if ((rc = lseek(symrefs, n * BUFSIZ, 0)) == -1) {
+ myperror("Lseek failed");
+ (void) sleep(3);
+ return(rc);
+ }
+ (void) read_block();
+ blocknumber = n;
+ }
+ blockp = block + offset % BUFSIZ;
+ return(rc);
+}
+
+static void
+findcalledbysub(char *file, BOOL macro)
+{
+ /* find the next function call or the end of this function */
+ while (scanpast('\t') != NULL) {
+ switch (*blockp) {
+
+ case DEFINE: /* #define inside a function */
+ if (fileversion >= 10) { /* skip it */
+ while (scanpast('\t') != NULL &&
+ *blockp != DEFINEEND)
+ ;
+ }
+ break;
+
+ case FCNCALL: /* function call */
+
+ /* output the file name */
+ (void) fprintf(refsfound, "%s ", file);
+
+ /* output the function name */
+ skiprefchar();
+ putline(refsfound);
+ (void) putc(' ', refsfound);
+
+ /* output the source line */
+ putsource(1, refsfound);
+ break;
+
+ case DEFINEEND: /* #define end */
+
+ if (invertedindex == NO) {
+ if (macro == YES) {
+ return;
+ }
+ break; /* inside a function */
+ }
+ /* FALLTHROUGH */
+
+ case FCNDEF: /* function end (pre 9.5) */
+
+ if (invertedindex == NO) break;
+ /* FALLTHROUGH */
+
+ case FCNEND: /* function end */
+ case NEWFILE: /* file end */
+ return;
+ }
+ }
+}
diff --git a/src/fscanner.c b/src/fscanner.c
new file mode 100644
index 0000000..aa091a0
--- /dev/null
+++ b/src/fscanner.c
@@ -0,0 +1,32257 @@
+
+#line 3 "fscanner.c"
+
+#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 35
+#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;
+#endif /* ! C99 */
+
+/* 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 /* ! 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
+
+extern int 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)
+
+/* 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_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+#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.
+ */
+ int 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 int yy_n_chars; /* number of characters read into yy_ch_buf */
+int 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,int 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(n) 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 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; \
+ (yytext_ptr) -= (yy_more_len); \
+ yyleng = (size_t) (yy_cp - (yytext_ptr)); \
+ (yy_hold_char) = *yy_cp; \
+ *yy_cp = '\0'; \
+ (yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 67
+#define YY_END_OF_BUFFER 68
+/* 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[5144] =
+ { 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 33, 33, 0, 0, 0, 0, 58, 58, 68, 66,
+ 55, 44, 66, 47, 7, 36, 66, 45, 19, 20,
+ 23, 66, 66, 64, 22, 24, 21, 41, 66, 42,
+ 36, 36, 36, 36, 36, 6, 18, 53, 53, 66,
+ 36, 36, 27, 26, 27, 27, 27, 27, 67, 10,
+ 40, 40, 40, 38, 40, 34, 33, 34, 32, 51,
+ 49, 48, 51, 46, 58, 60, 59, 55, 54, 56,
+ 7, 36, 1, 2, 64, 57, 63, 64, 43, 36,
+ 36, 36, 36, 36, 53, 53, 3, 36, 36, 28,
+
+ 28, 28, 28, 28, 28, 10, 0, 0, 0, 0,
+ 39, 38, 0, 38, 38, 38, 0, 38, 0, 38,
+ 0, 0, 0, 33, 33, 0, 32, 0, 0, 50,
+ 52, 58, 60, 59, 61, 59, 62, 55, 56, 63,
+ 63, 36, 36, 0, 35, 0, 36, 36, 53, 53,
+ 36, 36, 28, 28, 28, 28, 13, 28, 28, 28,
+ 0, 0, 0, 0, 39, 38, 38, 0, 37, 0,
+ 0, 0, 38, 38, 38, 0, 0, 0, 0, 0,
+ 0, 0, 33, 33, 0, 31, 0, 0, 0, 36,
+ 30, 0, 0, 36, 36, 36, 36, 28, 28, 14,
+
+ 28, 28, 28, 28, 0, 0, 0, 0, 38, 38,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 36, 0,
+ 0, 0, 36, 36, 36, 28, 15, 14, 8, 28,
+ 28, 28, 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, 36, 65,
+ 28, 14, 8, 12, 28, 28, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,
+ 0, 0, 0, 0, 0, 36, 4, 4, 0, 8,
+
+ 11, 28, 0, 0, 10, 0, 0, 38, 0, 0,
+ 39, 0, 0, 0, 0, 33, 0, 32, 0, 0,
+ 0, 0, 29, 0, 0, 0, 0, 36, 4, 25,
+ 0, 0, 0, 0, 0, 0, 38, 38, 0, 38,
+ 38, 0, 38, 0, 0, 39, 0, 39, 0, 0,
+ 0, 0, 33, 33, 33, 0, 31, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 35, 0, 5, 25,
+ 0, 0, 0, 0, 0, 0, 37, 0, 38, 38,
+ 0, 37, 0, 38, 38, 38, 0, 38, 38, 38,
+ 38, 0, 0, 0, 38, 38, 38, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 39,
+ 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 16, 17, 0, 0, 0, 0, 0, 38, 38, 0,
+ 0, 38, 38, 38, 0, 38, 38, 38, 0, 38,
+ 0, 0, 0, 0, 0, 0, 0, 0, 38, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 33, 0, 0, 0, 33, 0, 33, 0,
+
+ 0, 0, 0, 0, 9, 0, 0, 0, 10, 0,
+ 10, 0, 0, 0, 0, 38, 0, 0, 38, 0,
+ 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
+ 38, 0, 0, 0, 38, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 39, 0, 0, 0,
+ 0, 0, 0, 0, 33, 0, 32, 0, 33, 0,
+ 33, 0, 33, 0, 33, 33, 0, 32, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
+ 0, 10, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 38, 38, 0, 38, 38, 0, 38, 0,
+ 0, 0, 0, 38, 38, 0, 0, 0, 38, 38,
+ 38, 0, 38, 0, 38, 0, 38, 38, 38, 38,
+ 38, 0, 38, 0, 0, 0, 0, 38, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 39, 0, 33, 0, 33, 0, 0, 33, 0,
+ 0, 33, 33, 0, 0, 0, 33, 0, 33, 33,
+ 0, 32, 33, 33, 33, 0, 31, 0, 0, 0,
+ 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
+ 0, 35, 0, 0, 0, 10, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 37, 0, 0, 0, 38, 0,
+ 0, 38, 38, 38, 38, 38, 38, 0, 38, 38,
+ 0, 38, 0, 0, 0, 38, 38, 38, 0, 0,
+ 0, 0, 0, 0, 0, 0, 38, 38, 0, 38,
+ 0, 38, 0, 0, 0, 38, 38, 38, 0, 37,
+ 0, 38, 38, 38, 38, 0, 0, 0, 0, 38,
+ 0, 38, 38, 38, 38, 38, 38, 38, 0, 38,
+ 0, 0, 38, 38, 38, 0, 0, 38, 38, 0,
+ 38, 0, 38, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 39, 0, 0, 0, 33, 0, 33, 0, 31, 0,
+ 31, 33, 33, 0, 32, 0, 0, 0, 0, 33,
+ 33, 0, 0, 33, 33, 0, 32, 0, 0, 0,
+ 0, 29, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
+ 0, 37, 37, 38, 38, 38, 0, 38, 38, 0,
+ 38, 0, 38, 38, 38, 38, 38, 0, 38, 38,
+ 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 38,
+ 38, 38, 0, 0, 38, 38, 38, 0, 0, 0,
+
+ 0, 0, 38, 38, 38, 0, 38, 38, 0, 38,
+ 0, 38, 38, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 38, 38, 38, 0, 38, 38, 38, 38,
+ 0, 0, 0, 38, 38, 38, 38, 38, 38, 38,
+ 38, 0, 0, 0, 0, 0, 0, 38, 38, 38,
+ 0, 37, 0, 38, 38, 38, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 39, 0, 0, 39, 0, 0, 33, 0,
+ 0, 0, 0, 0, 31, 33, 33, 0, 31, 0,
+ 0, 0, 0, 0, 33, 0, 33, 33, 0, 32,
+
+ 0, 33, 33, 0, 31, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 35, 0, 0, 0, 0, 0, 9,
+ 0, 0, 0, 37, 0, 0, 0, 37, 0, 0,
+ 0, 37, 37, 38, 38, 0, 38, 38, 38, 0,
+ 38, 38, 38, 38, 0, 0, 0, 38, 38, 38,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 38, 38, 38, 0, 38, 38, 0, 38, 0,
+ 38, 38, 0, 0, 37, 0, 0, 0, 0, 0,
+
+ 0, 0, 38, 38, 0, 37, 0, 38, 38, 38,
+ 38, 0, 38, 38, 38, 38, 0, 38, 38, 38,
+ 38, 0, 0, 0, 0, 0, 0, 0, 0, 38,
+ 0, 0, 0, 0, 38, 38, 0, 38, 38, 0,
+ 38, 0, 38, 38, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 39, 0, 0, 0, 33,
+ 0, 31, 0, 0, 0, 0, 33, 0, 0, 0,
+ 33, 0, 0, 31, 33, 33, 33, 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,
+ 38, 38, 0, 0, 38, 38, 38, 0, 38, 38,
+ 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 37, 37, 38,
+ 38, 0, 0, 37, 0, 38, 38, 38, 38, 0,
+ 38, 38, 38, 38, 0, 0, 0, 38, 38, 38,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 38, 38, 0, 0, 38, 38, 38, 38, 0,
+
+ 38, 38, 38, 0, 38, 0, 0, 0, 38, 0,
+ 0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
+ 0, 38, 38, 38, 0, 38, 38, 38, 0, 0,
+ 0, 0, 0, 0, 0, 38, 38, 0, 37, 0,
+ 38, 38, 38, 0, 38, 38, 38, 38, 0, 38,
+ 38, 38, 0, 0, 0, 0, 0, 0, 37, 0,
+ 0, 0, 37, 37, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 33, 0, 0,
+ 0, 33, 0, 33, 33, 0, 0, 0, 0, 0,
+ 0, 0, 33, 0, 33, 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, 9, 0, 0, 0, 0, 0, 0, 38,
+ 0, 0, 38, 0, 0, 0, 0, 38, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 38, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 38, 38,
+ 0, 0, 38, 38, 38, 38, 0, 38, 38, 38,
+
+ 0, 38, 0, 0, 0, 0, 37, 0, 0, 0,
+ 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
+ 0, 38, 0, 38, 38, 0, 0, 38, 0, 0,
+ 0, 0, 38, 0, 0, 0, 38, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 38, 38, 0,
+ 0, 38, 38, 38, 0, 38, 38, 38, 0, 38,
+ 0, 0, 0, 0, 0, 0, 0, 38, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 37, 37, 0, 0, 0, 0, 37, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 33, 0,
+ 33, 0, 31, 0, 33, 0, 33, 0, 33, 0,
+ 33, 0, 31, 33, 0, 31, 0, 0, 0, 33,
+ 0, 33, 0, 33, 0, 33, 0, 33, 0, 33,
+ 33, 0, 32, 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, 38, 0, 38,
+
+ 0, 0, 37, 37, 0, 0, 0, 38, 38, 0,
+ 0, 0, 38, 0, 0, 37, 37, 38, 0, 0,
+ 0, 37, 0, 0, 38, 0, 0, 37, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 38, 38, 0,
+ 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 38, 0, 0, 0, 0, 38, 0,
+ 0, 0, 38, 0, 38, 38, 38, 0, 38, 38,
+ 0, 38, 0, 38, 0, 38, 38, 38, 38, 0,
+ 38, 38, 0, 38, 0, 0, 0, 38, 0, 0,
+ 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 38, 38, 0, 0, 0, 0, 0, 0, 0, 38,
+ 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 33, 0,
+ 33, 33, 0, 31, 0, 0, 0, 33, 0, 33,
+ 0, 31, 33, 0, 0, 0, 0, 0, 33, 0,
+ 33, 0, 32, 0, 33, 0, 0, 32, 33, 33,
+ 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, 29, 0, 0, 0, 0, 0, 0,
+ 0, 38, 0, 38, 37, 38, 38, 0, 0, 38,
+ 0, 38, 37, 37, 0, 0, 0, 0, 0, 38,
+ 0, 0, 37, 37, 38, 38, 0, 38, 38, 38,
+ 38, 0, 0, 0, 38, 38, 0, 0, 0, 0,
+ 0, 38, 0, 0, 37, 37, 0, 38, 0, 0,
+ 0, 37, 0, 0, 0, 0, 38, 38, 0, 38,
+ 38, 0, 38, 0, 38, 0, 0, 0, 0, 0,
+ 0, 0, 0, 38, 38, 38, 38, 38, 38, 0,
+
+ 38, 0, 0, 0, 0, 38, 38, 38, 38, 38,
+ 38, 38, 38, 0, 38, 38, 0, 38, 0, 0,
+ 0, 38, 38, 38, 38, 0, 0, 0, 0, 0,
+ 38, 0, 38, 38, 0, 37, 0, 38, 38, 38,
+ 38, 0, 38, 38, 0, 38, 0, 38, 38, 38,
+ 38, 0, 0, 0, 38, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 38, 38, 0, 38, 38,
+ 0, 38, 38, 0, 38, 38, 38, 38, 38, 0,
+ 38, 0, 0, 0, 0, 0, 37, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 37, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 33, 33, 33, 0, 31, 0, 0, 0, 0, 0,
+ 0, 33, 0, 0, 33, 33, 0, 31, 33, 33,
+ 0, 0, 33, 0, 0, 33, 0, 32, 0, 33,
+ 0, 0, 0, 0, 29, 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, 38, 38, 38, 0, 0, 0, 38, 38,
+ 38, 0, 0, 0, 0, 0, 0, 38, 0, 0,
+
+ 38, 0, 38, 37, 38, 38, 0, 0, 38, 38,
+ 0, 38, 37, 37, 38, 38, 38, 0, 38, 38,
+ 38, 38, 0, 0, 0, 0, 0, 0, 0, 38,
+ 0, 38, 0, 0, 0, 0, 0, 38, 38, 38,
+ 38, 38, 38, 0, 38, 38, 0, 38, 0, 0,
+ 0, 38, 38, 38, 0, 0, 0, 0, 0, 0,
+ 0, 38, 38, 38, 38, 38, 0, 38, 38, 0,
+ 38, 38, 38, 38, 38, 38, 38, 38, 0, 38,
+ 0, 0, 38, 38, 38, 0, 0, 38, 38, 0,
+ 38, 0, 38, 38, 0, 0, 0, 38, 38, 38,
+
+ 38, 38, 38, 0, 38, 38, 38, 0, 0, 0,
+ 38, 0, 0, 0, 38, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 38, 38, 38, 38, 0,
+ 38, 38, 38, 38, 0, 38, 38, 0, 0, 38,
+ 38, 38, 38, 0, 38, 38, 38, 0, 0, 0,
+ 0, 0, 0, 0, 38, 0, 0, 0, 0, 0,
+ 0, 38, 38, 38, 38, 38, 38, 0, 38, 38,
+ 0, 38, 0, 0, 0, 38, 38, 38, 38, 0,
+ 38, 38, 38, 38, 38, 38, 38, 0, 38, 38,
+ 38, 38, 0, 0, 0, 0, 37, 0, 0, 0,
+
+ 0, 0, 37, 37, 0, 0, 0, 0, 0, 0,
+ 0, 37, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 33, 33, 0, 31, 0, 0, 0,
+ 33, 0, 33, 33, 0, 31, 33, 33, 33, 0,
+ 31, 0, 0, 0, 32, 0, 33, 0, 33, 33,
+ 0, 32, 0, 0, 0, 33, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 38, 37,
+ 38, 38, 0, 0, 38, 38, 0, 38, 37, 37,
+ 38, 38, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 38, 37, 38, 38, 0, 0, 38, 38, 0,
+ 38, 37, 37, 0, 0, 0, 38, 38, 0, 38,
+ 38, 38, 38, 0, 38, 38, 38, 38, 0, 38,
+ 38, 38, 38, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 38, 37, 38, 38, 0, 0, 38, 38,
+ 0, 38, 37, 37, 0, 0, 0, 0, 0, 0,
+ 0, 0, 38, 38, 38, 38, 38, 0, 38, 38,
+
+ 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 38, 38,
+ 38, 0, 38, 38, 0, 38, 0, 38, 38, 38,
+ 38, 38, 38, 38, 0, 38, 0, 0, 38, 38,
+ 38, 38, 38, 38, 38, 0, 38, 38, 38, 38,
+ 0, 0, 0, 38, 38, 38, 38, 38, 38, 38,
+ 38, 38, 0, 0, 0, 0, 0, 38, 38, 38,
+ 38, 38, 38, 0, 0, 0, 0, 38, 0, 0,
+ 0, 38, 0, 0, 0, 0, 0, 0, 38, 0,
+ 0, 38, 0, 0, 38, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 38, 38, 38, 38, 38, 0, 38,
+ 38, 38, 0, 0, 0, 0, 0, 38, 38, 38,
+ 38, 0, 38, 38, 38, 38, 0, 38, 38, 38,
+ 38, 38, 38, 38, 38, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
+ 0, 37, 37, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 33, 33, 0, 31, 0, 0, 0, 33, 0,
+ 33, 33, 33, 0, 31, 0, 0, 0, 0, 0,
+
+ 0, 0, 33, 0, 33, 33, 33, 0, 31, 0,
+ 0, 33, 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, 38,
+ 38, 0, 0, 38, 0, 0, 38, 38, 38, 38,
+ 0, 38, 38, 38, 38, 0, 0, 0, 38, 38,
+ 38, 0, 0, 0, 0, 0, 0, 0, 38, 38,
+ 0, 0, 38, 38, 38, 0, 38, 38, 38, 38,
+ 0, 0, 0, 38, 38, 38, 0, 0, 0, 0,
+
+ 0, 0, 0, 38, 0, 38, 38, 0, 0, 38,
+ 38, 38, 38, 0, 38, 38, 38, 0, 0, 0,
+ 0, 38, 0, 0, 0, 38, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 38, 38,
+ 0, 38, 38, 38, 0, 38, 38, 38, 38, 0,
+ 38, 38, 38, 0, 0, 0, 0, 0, 0, 38,
+ 37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 38, 38, 0, 38, 37, 0, 38, 38, 38,
+ 38, 0, 38, 38, 38, 38, 0, 38, 38, 38,
+
+ 38, 0, 0, 0, 0, 0, 38, 38, 38, 38,
+ 38, 38, 38, 38, 0, 0, 0, 0, 0, 0,
+ 38, 0, 0, 38, 38, 0, 38, 38, 0, 38,
+ 0, 38, 38, 38, 0, 0, 0, 38, 0, 0,
+ 0, 38, 38, 38, 38, 0, 38, 38, 38, 0,
+ 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 38, 0, 0, 0, 37, 0,
+ 0, 0, 0, 0, 0, 0, 0, 37, 37, 0,
+ 0, 0, 37, 0, 0, 0, 0, 0, 0, 0,
+ 37, 37, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 33, 0, 0, 33,
+ 33, 0, 0, 0, 31, 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, 38, 38, 0, 0, 38,
+ 38, 38, 38, 0, 38, 38, 38, 0, 38, 0,
+ 0, 0, 38, 0, 0, 0, 38, 0, 0, 0,
+
+ 0, 0, 0, 38, 38, 0, 0, 38, 38, 38,
+ 0, 38, 38, 38, 0, 0, 0, 37, 0, 0,
+ 0, 0, 0, 0, 38, 0, 0, 0, 0, 0,
+ 0, 38, 38, 0, 0, 38, 0, 0, 0, 0,
+ 0, 0, 0, 38, 0, 0, 0, 38, 0, 0,
+ 38, 0, 0, 38, 38, 0, 0, 38, 38, 38,
+ 0, 38, 38, 38, 0, 0, 0, 0, 0, 0,
+ 0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 37, 0, 38, 0, 0, 0, 0, 0,
+ 38, 38, 0, 0, 38, 38, 38, 38, 0, 38,
+
+ 38, 38, 0, 0, 0, 0, 38, 0, 0, 0,
+ 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 38, 38, 38,
+ 38, 0, 38, 38, 38, 0, 0, 0, 0, 0,
+ 38, 38, 0, 0, 37, 0, 38, 38, 38, 0,
+ 38, 38, 38, 38, 0, 38, 38, 38, 0, 0,
+ 0, 0, 0, 0, 0, 0, 37, 37, 0, 0,
+ 0, 0, 0, 38, 0, 0, 0, 0, 0, 38,
+ 0, 0, 0, 38, 38, 38, 0, 38, 38, 38,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 37, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 33, 0, 33, 33, 0, 31,
+ 33, 33, 0, 31, 0, 31, 0, 33, 0, 33,
+ 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,
+ 38, 0, 38, 0, 38, 0, 38, 38, 0, 0,
+ 38, 0, 0, 0, 0, 38, 0, 0, 38, 0,
+ 38, 38, 38, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 38, 0, 0, 38,
+ 0, 0, 37, 37, 38, 0, 38, 38, 0, 0,
+ 37, 37, 38, 0, 38, 0, 0, 0, 0, 0,
+ 0, 38, 38, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 38, 0, 0, 0, 0, 37, 37,
+
+ 0, 0, 38, 0, 38, 38, 0, 0, 38, 0,
+ 0, 0, 0, 0, 0, 0, 38, 0, 0, 0,
+ 37, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 38, 38, 0, 0, 38, 38, 38, 0, 38,
+ 38, 38, 0, 38, 0, 0, 0, 0, 0, 0,
+ 0, 38, 0, 0, 0, 0, 0, 0, 0, 38,
+ 37, 0, 38, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 38, 0, 0, 0, 0, 0, 37, 37,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,
+ 37, 33, 33, 0, 31, 0, 0, 0, 31, 0,
+ 0, 0, 0, 0, 33, 0, 0, 32, 0, 33,
+ 0, 0, 0, 0, 0, 29, 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, 38, 0, 0, 37, 37, 38, 38, 38, 0,
+
+ 38, 38, 0, 38, 37, 37, 38, 0, 38, 38,
+ 38, 38, 38, 0, 38, 38, 37, 0, 0, 0,
+ 37, 37, 0, 0, 37, 37, 38, 0, 38, 0,
+ 0, 38, 0, 0, 37, 37, 0, 0, 38, 0,
+ 0, 38, 38, 38, 38, 0, 38, 38, 38, 38,
+ 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,
+ 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 38, 0, 0, 37, 37, 38, 0, 38, 0, 37,
+ 0, 0, 0, 0, 0, 38, 0, 38, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 38, 0, 0, 0, 0, 0, 0, 38, 38,
+ 0, 0, 0, 0, 0, 0, 0, 38, 0, 0,
+ 0, 38, 38, 0, 0, 37, 37, 0, 37, 0,
+ 0, 0, 0, 0, 38, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 38, 0, 0, 0,
+ 0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 37,
+ 0, 0, 0, 37, 0, 0, 0, 0, 0, 33,
+ 0, 0, 0, 0, 0, 33, 0, 0, 33, 0,
+ 33, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 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, 38, 38, 38, 38, 38, 38, 0, 38, 38,
+ 0, 38, 0, 0, 0, 38, 38, 38, 0, 0,
+ 0, 0, 0, 38, 38, 38, 38, 0, 38, 38,
+ 38, 38, 0, 38, 0, 38, 38, 38, 38, 38,
+ 38, 38, 38, 0, 38, 38, 38, 38, 0, 0,
+ 0, 0, 38, 38, 38, 0, 38, 38, 38, 38,
+ 0, 38, 0, 0, 0, 0, 0, 38, 0, 37,
+
+ 0, 38, 0, 38, 0, 38, 38, 38, 38, 0,
+ 38, 38, 38, 38, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 38, 38, 38, 38, 0, 38, 38,
+ 38, 38, 0, 38, 0, 0, 0, 0, 0, 0,
+ 0, 0, 38, 0, 0, 0, 0, 0, 0, 38,
+ 0, 0, 0, 0, 38, 0, 0, 0, 0, 38,
+ 38, 0, 38, 38, 0, 38, 38, 0, 38, 38,
+ 38, 38, 38, 0, 38, 0, 0, 0, 0, 0,
+ 0, 38, 0, 0, 0, 0, 0, 0, 0, 38,
+
+ 0, 0, 0, 0, 37, 37, 0, 0, 0, 0,
+ 0, 0, 0, 37, 37, 0, 0, 0, 37, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 33, 0, 0,
+ 33, 0, 0, 32, 0, 33, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 38, 0, 38, 38,
+ 38, 38, 38, 38, 0, 38, 38, 38, 0, 0,
+ 0, 38, 0, 0, 0, 38, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 38, 0, 38, 38,
+
+ 38, 38, 0, 38, 38, 38, 38, 0, 38, 38,
+ 38, 38, 38, 38, 38, 38, 38, 0, 0, 0,
+ 38, 0, 0, 0, 0, 38, 0, 38, 38, 38,
+ 0, 38, 38, 38, 38, 0, 0, 0, 0, 0,
+ 0, 38, 0, 0, 0, 0, 38, 0, 0, 0,
+ 0, 0, 38, 0, 38, 38, 38, 38, 0, 38,
+ 38, 38, 38, 0, 0, 0, 0, 0, 38, 0,
+ 38, 38, 38, 38, 0, 38, 38, 38, 38, 0,
+ 0, 38, 0, 0, 0, 0, 38, 0, 0, 0,
+ 0, 38, 38, 38, 38, 38, 38, 0, 38, 38,
+
+ 0, 38, 0, 0, 0, 38, 38, 38, 38, 0,
+ 38, 38, 38, 38, 38, 38, 38, 0, 38, 38,
+ 38, 38, 0, 0, 0, 37, 0, 0, 37, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 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, 38, 0,
+
+ 0, 0, 0, 0, 0, 38, 0, 0, 0, 38,
+ 0, 0, 0, 0, 0, 38, 37, 38, 38, 0,
+ 0, 38, 38, 0, 38, 37, 37, 0, 0, 0,
+ 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 38, 38, 38, 38, 0, 38, 0, 0, 0,
+ 0, 0, 38, 0, 38, 0, 0, 37, 0, 0,
+ 0, 0, 0, 38, 38, 38, 38, 38, 0, 38,
+ 38, 38, 0, 0, 0, 0, 0, 38, 38, 38,
+ 38, 0, 38, 38, 38, 38, 0, 38, 38, 38,
+ 38, 38, 38, 38, 38, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 33, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 38, 0, 0, 0, 38, 38, 38,
+ 38, 0, 38, 38, 38, 0, 0, 0, 0, 0,
+ 38, 38, 0, 0, 38, 38, 38, 0, 38, 38,
+ 38, 38, 0, 38, 38, 38, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 38, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 38, 0, 0, 0, 0,
+ 0, 0, 0, 0, 38, 38, 38, 38, 0, 38,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 38, 0, 0, 0, 38, 0, 0, 38, 0, 0,
+ 0, 0, 0, 0, 0, 38, 0, 0, 0, 0,
+ 33, 0, 31, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 38, 0, 0, 0, 38, 0, 38, 0,
+ 0, 0, 0, 0, 0, 0, 0, 38, 0, 38,
+ 38, 0, 0, 38, 38, 38, 0, 38, 38, 38,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 38, 0,
+ 0, 0, 0, 0, 0, 38, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 38, 0, 0,
+ 0, 0, 0, 38, 0, 0, 37, 38, 38, 38,
+ 38, 38, 38, 38, 0, 38, 38, 38, 38, 38,
+ 37, 0, 0, 37, 37, 38, 0, 0, 0, 38,
+ 38, 38, 0, 38, 38, 38, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 38, 0, 38, 0, 0,
+ 0, 0, 38, 0, 0, 0, 38, 0, 38, 38,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 38, 0, 0, 0, 0, 38, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 38, 0,
+ 0, 0, 0, 37, 38, 38, 38, 38, 38, 38,
+ 38, 38, 0, 0, 0, 38, 0, 0, 37, 37,
+ 0, 0, 0, 0, 0, 0, 0, 0, 33, 0,
+ 0, 0, 0, 0, 0, 0, 0, 38, 0, 0,
+ 0, 0, 38, 0, 37, 38, 0, 38, 38, 0,
+ 37, 0, 0, 0, 38, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 37, 0, 0, 0, 0, 0,
+
+ 0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 38, 38, 38, 0, 38, 38, 38,
+ 38, 0, 38, 0, 0, 0, 0, 0, 37, 0,
+ 0, 0, 0, 0, 38, 0, 0, 0, 0, 0,
+ 37, 0, 0, 0, 38, 0, 38, 38, 38, 38,
+ 0, 38, 38, 38, 38, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 38,
+ 0, 0, 0, 0, 0, 0, 0, 38, 0, 0,
+ 0, 0, 0, 0, 0, 38, 0, 0, 0, 0,
+
+ 0, 0, 38, 0, 0, 0, 0, 0, 0, 38,
+ 0, 0, 0, 0, 0, 38, 0, 0, 0, 0,
+ 38, 38, 38, 38, 38, 0, 38, 38, 0, 0,
+ 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0
+ } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
+ 4, 4, 4, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 5, 1, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 1, 15, 1, 16, 17, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 19, 20, 21,
+ 22, 23, 1, 1, 24, 25, 25, 26, 27, 25,
+ 28, 28, 28, 28, 28, 25, 28, 29, 28, 28,
+ 28, 28, 30, 31, 25, 28, 28, 25, 28, 28,
+ 32, 33, 34, 1, 28, 1, 35, 25, 36, 37,
+
+ 38, 39, 28, 28, 40, 28, 28, 41, 42, 43,
+ 44, 28, 28, 45, 46, 47, 48, 28, 28, 25,
+ 28, 28, 49, 1, 50, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 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 yyconst flex_int32_t yy_meta[51] =
+ { 0,
+ 1, 2, 3, 4, 2, 5, 6, 7, 1, 8,
+ 1, 9, 10, 11, 8, 12, 13, 14, 10, 1,
+ 1, 8, 15, 16, 16, 16, 16, 17, 17, 17,
+ 17, 8, 1, 8, 16, 16, 16, 16, 16, 17,
+ 16, 17, 17, 17, 17, 17, 17, 16, 18, 1
+ } ;
+
+static yyconst flex_int32_t yy_base[6482] =
+ { 0,
+ 0, 49, 25, 55, 85, 0, 7389, 7383, 63, 67,
+ 134, 138, 141, 142, 143, 146, 59, 60, 7329,123454,
+ 156,123454, 160,123454, 148, 0, 117,123454,123454,123454,
+ 123454, 7293, 154, 0,123454,123454,123454,123454, 7284,123454,
+ 7245, 7242, 7233, 7161, 7141,123454,123454, 186, 190, 147,
+ 7153, 6994,123454,123454, 0, 6963, 35, 130,123454, 196,
+ 123454, 202, 206, 222, 163,123454, 226, 164,123454,123454,
+ 123454,123454, 6996,123454, 6927,123454, 231, 247,123454, 255,
+ 180, 0,123454,123454, 0,123454, 6926, 0,123454, 6893,
+ 6867, 259, 6756, 6737, 263, 275,123454, 6749, 6682, 0,
+
+ 6666, 175, 6667, 268, 6653, 279, 283, 275, 289, 0,
+ 0, 322, 281, 0, 355, 0, 304, 0, 283, 374,
+ 421, 6613, 6608, 326, 344, 285,123454, 6595, 6592,123454,
+ 123454, 6591,123454, 301,123454, 349,123454, 376, 380, 6587,
+ 123454, 6540, 6473, 402,123454, 296, 6466, 6457, 392, 425,
+ 6465, 6457, 6447, 6447, 6422, 6300, 416, 6290, 6281, 6272,
+ 440, 6205, 6229, 6239, 0, 479, 498, 444,123454, 305,
+ 6215, 6221, 0, 0, 0, 545, 578, 328, 597, 6189,
+ 336, 6199, 460, 468, 350,123454, 6172, 374, 6181, 5877,
+ 0, 5907, 5912, 5866, 5849, 5859, 5735, 5718, 464, 474,
+
+ 5709, 5703, 5434, 5407, 501, 5369, 437, 5379, 0, 0,
+ 5367, 5365, 5190, 473, 5106, 644, 663, 5094, 5104, 0,
+ 0, 0, 5080, 474, 5017, 5026, 4996, 485, 524, 4991,
+ 490, 5001, 4744, 4757, 510, 4736, 516, 0, 711, 538,
+ 4663, 4664, 549, 4662, 4650, 4155, 551, 4135, 552, 4144,
+ 4026, 556, 0, 0, 4002, 557, 4011, 3981, 558, 3980,
+ 570, 3990, 3966, 572, 599, 591, 3960, 592, 3835, 612,
+ 623, 0, 0, 635, 639, 3804, 3801, 3782, 3805, 636,
+ 3790, 638, 3789, 650, 3788, 651, 761, 3782, 655, 811,
+ 860, 3722, 3716, 3195, 656, 3181, 0,123454, 678, 0,
+
+ 689, 864, 701, 3156, 879, 3179, 657, 909, 3142, 678,
+ 952, 1000, 693, 3141, 857, 1050, 873, 3067, 1099, 1147,
+ 874, 1195,123454, 3066, 875, 3076, 1103, 892, 0, 0,
+ 963, 0, 0, 1117, 881, 1244, 1287, 0, 1335, 1385,
+ 0, 885, 1420, 1468, 1518, 0, 1568, 0, 1618, 1121,
+ 886, 219, 1125, 1141, 0, 887, 3052, 891, 239, 1667,
+ 1715, 0, 2988, 2887, 2867, 947, 2851, 957,123454, 0,
+ 2791, 2764, 1165, 337, 958, 300, 2766, 1096, 0, 1749,
+ 0, 2743, 1119, 0, 0, 0, 0, 1797, 0, 1846,
+ 0, 0, 1120, 438, 0, 0, 0, 1873, 1921, 0,
+
+ 1139, 1956, 2004, 2054, 2104, 2147, 1154, 2180, 2228, 2278,
+ 2328, 0, 1158, 472, 1159, 1163, 2742, 1164, 505, 542,
+ 1189, 2377, 2425, 2727, 1168, 2737, 2725, 1169, 1170, 604,
+ 123454,123454, 1686, 616, 1201, 1174, 617, 0, 0, 1202,
+ 672, 2467, 2500, 0, 2548, 2598, 0, 2633, 2681, 0,
+ 1206, 682, 1207, 2724, 2757, 0, 2805, 0, 2854, 2873,
+ 1208, 694, 0, 0, 0, 2921, 2956, 3004, 2719, 1212,
+ 3047, 0, 0, 3095, 0, 3144, 3163, 1213, 959, 0,
+ 0, 0, 3211, 1214, 2676, 1228, 1293, 3261, 1218, 1294,
+ 2642, 1219, 3311, 1295, 1434, 1436, 3361, 1446, 3411, 2641,
+
+ 1220, 3461, 1438, 1450, 1673, 348, 232, 1440, 1690, 1695,
+ 1733, 1696, 1708, 2532, 1224, 3511, 1699, 1727, 3561, 1700,
+ 2519, 1712, 1728, 3611, 3661, 0, 3696, 3744, 3787, 3820,
+ 3868, 1740, 2487, 1226, 0, 1744, 1745, 3918, 0, 1285,
+ 1746, 3961, 3994, 4042, 4092, 0, 4127, 0, 1749, 1758,
+ 1765, 4175, 1766, 1767, 1775, 1868, 4225, 1852, 1872, 1873,
+ 2486, 1286, 2473, 1287, 4275, 1448, 2468, 1874, 2383, 1970,
+ 4325, 1880, 4375, 1972, 2164, 4425, 1982, 2460, 2448, 1659,
+ 4475, 1691, 1881, 2197, 2209, 2399, 394, 436, 1893, 2403,
+ 2395, 2443, 2157, 2419, 1974, 4525, 2437, 4575, 2447, 1707,
+
+ 2442, 1739, 4625, 4668, 0, 4716, 0, 1777, 4751, 4799,
+ 1976, 4849, 2438, 4899, 4949, 2450, 2410, 2454, 4998, 5032,
+ 5075, 5123, 0, 2455, 5158, 5206, 5256, 5306, 5349, 5397,
+ 0, 1779, 5432, 2411, 2446, 2420, 2456, 5480, 2425, 1840,
+ 2462, 2463, 5530, 2475, 2428, 2476, 2514, 5580, 2516, 2485,
+ 5630, 5680, 2518, 5729, 2526, 2741, 2407, 1875, 2858, 2379,
+ 1984, 5778, 5828, 1986, 2520, 2647, 5877, 2649, 3148, 5926,
+ 2650, 2389, 5976, 3804, 6026, 2659, 2388, 2651, 2381, 6076,
+ 6126, 6169, 2208, 6210, 2206, 2210, 2733, 2771, 2774, 2786,
+ 2875, 2207, 2879, 2899, 518, 2982, 3165, 2380, 2871, 2205,
+
+ 2880, 6258, 2902, 3713, 2200, 2903, 2166, 2401, 6307, 2165,
+ 2467, 6356, 6406, 6441, 6482, 0, 0, 0, 6530, 0,
+ 6579, 6581, 6629, 2528, 2881, 0, 0, 0, 6672, 6720,
+ 0, 2530, 6755, 2974, 6803, 3053, 6853, 6896, 6944, 0,
+ 3168, 6979, 7027, 3169, 2976, 7077, 7127, 7162, 7210, 2167,
+ 3177, 7253, 0, 0, 7300, 7334, 7377, 3189, 7410, 7458,
+ 3193, 7508, 7543, 7584, 0, 0, 7632, 0, 7681, 7700,
+ 2661, 3054, 0, 0, 0, 3055, 3710, 7748, 7791, 7839,
+ 0, 3725, 7874, 2150, 2663, 2149, 2720, 3161, 7922, 3726,
+ 7972, 3834, 3170, 3846, 8021, 8055, 8098, 3967, 8131, 8179,
+
+ 8229, 8279, 4008, 3796, 6467, 4010, 7394, 4020, 2155, 2721,
+ 123454, 8329, 8379, 2785, 2143, 2142, 2787, 3836, 4141, 8429,
+ 8479, 3838, 1999, 8529, 8579, 4143, 3840, 3968, 1975, 8629,
+ 2901, 1962, 8679, 8722, 0, 2959, 3969, 4012, 4153, 4768,
+ 4014, 1903, 5184, 5733, 4674, 5881, 8770, 4145, 1902, 5449,
+ 2961, 8819, 8852, 8886, 8936, 8979, 9027, 9077, 0, 2984,
+ 9112, 9160, 9210, 0, 9253, 9286, 0, 9334, 9384, 0,
+ 9419, 9467, 4780, 1879, 2986, 4147, 4781, 9510, 9543, 0,
+ 9591, 0, 9640, 9642, 3045, 4675, 0, 0, 0, 9690,
+ 9740, 9775, 4676, 1876, 9816, 0, 0, 9863, 9912, 9955,
+
+ 5004, 9988,10036,10086,10129,10177,10227, 0, 5081,10262,
+ 10310,10360, 0, 4765, 1871,10410,10445, 5082, 1864,10486,
+ 0, 0, 0,10527, 0,10575,10625, 0,10675,10710,
+ 10758, 5355, 5083,10808, 0, 3046,10843, 3047,10891, 3160,
+ 10928, 0, 5446, 1844, 3724, 5176, 5461,10976,11026,11061,
+ 11109, 1850, 5462,11152, 0, 0, 1838, 3783, 1781, 3784,
+ 11200, 5178,11250, 5736, 5737, 5356,11300,11350,11385,11426,
+ 0, 0,11474,11524,11574, 0,11624,11674, 7569, 5357,
+ 1774, 1757, 1752, 3848, 1737, 9801,11724, 3850, 1732, 3959,
+ 5738, 1725, 3961, 5741,11774, 5742,11824,11874, 5746, 5754,
+
+ 1703,10471,11924, 5755, 5761, 5884, 5762,11974, 0, 4022,
+ 5763,12024, 0, 1687, 4024,12074, 5885, 5886, 5890,12124,
+ 5892,12174, 5908, 5893, 5902, 6187, 6459, 6216, 5894, 4169,
+ 209, 2483,12224, 6217, 6313, 1682, 1686, 1669,12274, 0,
+ 4666,12324,12374, 0,12409, 4667,12450, 0, 0, 0,
+ 12498, 0,12547,12581, 0, 4668, 6218, 0, 0, 0,
+ 12622,12670, 0, 4779,12705, 4992, 1668, 5005, 6460, 6480,
+ 12753, 0,12788,12836,12879,12912, 6482, 1667, 5009, 6461,
+ 6488,12960,13010,13053,13101,13151, 0, 6584,13186,13234,
+ 13284, 0, 1671, 5010,13333,13367,13402, 6489, 1463,13443,
+
+ 0, 0,13491,13526,13574, 6490, 6586,13617,13665, 0,
+ 0, 0,13715, 0,13765,13800,13848, 0, 0, 0,
+ 0,13891,13939, 0, 6607,13974,14022, 0,14072,14122,
+ 6609,14172, 6599, 6611,14222,14265,14313,14363, 0, 6678,
+ 14398,14446,14496, 0, 6601, 1439,14546,14596,14646,14696,
+ 14739, 5011,14772,14820, 5073,14870,14920,14970,15013, 6769,
+ 15046,15094, 0,15144,15194,15244,15294, 0, 6771,11411,
+ 6781, 6679, 5074, 6680, 5075, 6773,15344, 6775, 6902, 6903,
+ 15394, 6993, 5161, 1426,12435,12607,15444, 6995, 6904, 7005,
+ 6997, 7176, 6999, 7178, 7188, 1307, 5163, 1306, 5186,15494,
+
+ 5188, 7180,15544, 7192,15594, 7182,15644, 7259, 7304,15694,
+ 7309, 7424, 7260, 7561, 2396, 252, 7436, 7261, 5347, 7317,
+ 15744, 0, 5348, 7386,15787,15820, 0,15868,15918, 0,
+ 15953,16001, 7573, 7426, 7582,16044,16077, 0,16125, 0,
+ 16174,16208, 5349, 7428, 0, 0, 0, 7586, 7430, 7687,
+ 16256, 1305, 5460, 7574, 7703,16306, 5753,16356,16406,16456,
+ 16491,16539, 0, 7591, 7705,16582,16630, 0, 0, 0,
+ 16680, 0,16730,16765,16813, 7726, 7592, 0, 0, 0,
+ 16863,16906,16954, 0, 7728,16989, 1292, 1236,17037, 0,
+ 1208,17087, 0, 7730, 7707,17130,17171,17204, 0,17252,
+
+ 17302, 0,17337,17385, 0, 7797,17428,17461, 0, 0,
+ 17509, 0,17559,17594, 7888, 7709, 0, 0, 0,17642,
+ 7890, 0, 0, 0, 0,17692, 0,17727,17775, 7900,
+ 7798,17825, 8027, 7799, 8104,17875,17910,17958, 7892, 8145,
+ 18001, 0, 0, 0,18049, 0,18099,18134,18182, 0,
+ 0, 0, 0,18225,18273, 0, 8147,18308, 1188,18356,
+ 0, 5757,18406,18449, 0,18482, 5900, 0, 0, 0,
+ 18530, 0,18579,18613, 6164, 7894, 0, 0, 0,18661,
+ 18711,18761,18811,18854, 8157,18887,18935,18970,19018, 8105,
+ 8728,19061,19109, 0, 0,19159, 0,19209,19244, 0,
+
+ 0, 0,19292, 8825, 8106, 8149, 8844,19342, 8151, 8846,
+ 8729,19392, 8861,19442,13428, 6165, 8730, 8985, 8845, 8869,
+ 9126, 8986, 0, 9128,19492, 8987,19542, 9138,19592, 1187,
+ 6166,19641, 1181, 6171,19690,19733,19774, 6208, 9130, 9132,
+ 19822, 9259,19865, 9300,19913,19963,20006, 9302,20047, 1191,
+ 9260, 1190, 9304, 9528, 9645, 6682, 2863, 9261, 9312,20095,
+ 9317, 9433,20145, 9435, 1186, 9437, 9445,20195,20245, 0,
+ 20280,20328,20371,20404, 9449, 1149, 6209,20452, 9439, 9516,
+ 9557, 9518,20502, 9559, 9561, 9569, 6444, 9574,20552, 0,
+ 9647, 9648,20595,20643,20678, 0,20726,20776, 0,20811,
+
+ 20859, 0, 9670, 9660, 9672, 6571,20909,20952,20985,21033,
+ 0,21083, 0,21133,21168, 9805, 9662, 0, 0, 0,
+ 9793,21216, 9814,21266,21316,21366, 0,21416,21451,21499,
+ 21542,21575,21623, 9818, 9795, 9822, 0, 9823, 9869, 0,
+ 21673,21716, 6674,21749, 9961, 9824,21797,21847, 0,10002,
+ 9962,21890,21923, 0,21971,22021, 0,22056,22104, 0,
+ 10004,22147,22180, 0, 0,22228, 0,22278,22313,10014,
+ 9963, 0, 0, 0, 6783,10006,22361, 0, 6785,10008,
+ 22404,22437,22485,22535, 0,22570,10135,10136,10276,22618,
+ 6894,22668,22711,22759,22794,22842, 0,10137,10278,22885,
+
+ 22933, 0, 0,22983, 0,23033,23068,10288,10280, 0,
+ 0, 0,23116, 0,10475,10282,23159, 0,23192,23240,
+ 23290, 0,23325, 0,10484,23373,10488,10463,23423,10492,
+ 23473, 6895, 1140,10465,23522,10533,23571,10493,12896,10724,
+ 14756,10726, 1144,23621,10736,10494, 1127, 6896,10534,23670,
+ 10857,23719,10535,23769,10859,15030,10728,15804,10869,16061,
+ 23819,10944,10730,10861,23869,10945,23918,23967,10954, 1137,
+ 24016, 7007,24065,24115, 7009,24158, 0, 1118, 7190,10863,
+ 11075,24206,24249,24290,10946, 1111,24338,24388,11077,24438,
+ 24481, 0,11079, 1106,11403,11405,11081,24529,11087,24579,
+
+ 24629, 7251,24679,24729,11158,24779,11415,24829,24879,11424,
+ 11159,11432,24928,24977,12439,25027,25077, 7252,11160, 983,
+ 7253,25127,11161,12448,25177,11433,12452,11434,12456,12553,
+ 12427,25227, 971, 7310,12429, 0,12611,25277,25327,12457,
+ 960,12458,12620,25377, 7311,12599,25427, 0,25477,25512,
+ 25560,25603,25636,25684,12624,12601,25734,12628, 0,12629,
+ 12719,12630,25784,12721,25834,25884,25927,25975,26025, 0,
+ 12731,26060,26108,26158,12802,26208,26258,26308,26351,26399,
+ 26449, 0,12804,26484,26532,26582,26625, 7316,26658,26706,
+ 12814, 0,26756,26806,26849,12926,26882,12723,26930,12938,
+
+ 26980,27030,27080, 0, 0,27115,27163,27206,27239,27287,
+ 13059,12725,13200, 0,12806,13202,27337,12808,13212,27387,
+ 12888, 904,12928,13339,27437, 7373,12930,27487, 0,13432,
+ 12932,27530,27578,27613,27661,27711, 0,27746, 0,13441,
+ 13060,13445,13061,27794,13449,27844,27894,13204,27944,13540,
+ 17188,27994,13542, 903, 7374,13206,13420,28043,13552,17445,
+ 13623, 877,28092,13422, 873,13814,13450,13451,28141,13816,
+ 28190,13826,13544,13546,28240,13897,13988, 872,18466,28290,
+ 13990,13624,28340,28390, 0,13625, 864, 700, 706,28440,
+ 28483, 7438, 670, 0, 7440,28524, 7675,13818, 663, 7688,
+
+ 13820,28572,14000,28622,28672,14271,28715, 0, 653,28763,
+ 28806,14412,28847,13898,14414,13899,28895, 0,13992,17148,
+ 14005,28945,14424,28994, 648,29043,29086,29134, 0, 0,
+ 14786,29169,29217, 0, 7697,14272,14273,29267,14798, 0,
+ 29317,15060,29367,29417,29467,29510, 0,29558, 0,29608,
+ 29643,29691,15072,14416,29741,29791,15834, 7789,14418,14748,
+ 15846, 0,29841,15967,29891,29941,14788,29991,15969,14790,
+ 15979,14792,16091,15022, 0,16103,30041,30084,30132,30182,
+ 0,16180,30217,30265,30315,16222,15062,16224,30365,16234,
+ 30415, 628, 7790,30465,30515,30565,30608,30656, 0,16505,
+
+ 30691,15064, 626,15066,16507,30739,30789,30839,30874,30915,
+ 30963, 0, 0,31013,31063, 0,31113,31148,31196,16517,
+ 15796, 0, 0, 0, 0,31239,31287, 0,16588,31322,
+ 31370,16779,31420,31455,31503,15836,16781,31546,31594, 0,
+ 0, 0,31644, 0,31694,31729,31777, 0, 0, 0,
+ 31827,16791,31870,31903, 0, 0,31951, 0, 7791,31986,
+ 0, 0, 0,15838,16912,32034,32077,32125,32175, 0,
+ 17003,32210,32258,17005,32308,32358,32401,32449, 0,17015,
+ 32484,15840,32532,17136,32582, 7902,32632,15971,32682,17218,
+ 32732,32782,17230,15973,17351,32831,17353,32880, 597, 7904,
+
+ 16053, 0,17363,32930,16093, 596,16095,17475,32980,16097,
+ 33030,17487,33073,33121,33171,33214,17608,33247,33295,17610,
+ 33345,18871,33395,17620, 595,16226, 587, 571, 8015,16228,
+ 17741,33445,16509, 575,33495,33545,17743,16511,20388,33595,
+ 17753,16589,33645,16590, 573,20969,17924,16783,16785,21559,
+ 17926,33695,33745,17936,16913,33795, 0,33838, 8028,16914,
+ 8032,17007,17009,18007,17138,33886,18148,33936, 8033,33986,
+ 34029,34070,18150,34111,17180,18160,17220,34159,34202, 0,
+ 18231,17222,34250,34300,34335,18322,17224, 549,34376, 0,
+ 0,34424,34467,18324,34500, 517, 8034,34548,17355, 527,
+
+ 34598,18334,34648,17357,34698,34741,34789, 0,34839, 0,
+ 18496,34874,34922, 0, 8096,34972, 8097,35022,35072, 8098,
+ 35122,35159,35207,18508,17437, 496, 8159,17477,18585,35257,
+ 17479,35307,18627,17481,35357,18629,35407,35457,35507,35542,
+ 35583, 0, 0,35631,35681, 0,35731,35766,35814,18639,
+ 17612, 0, 0, 0,35857,35905, 0,18901,35940,18913,
+ 17614,35988,36038,36081,36129, 0, 8161,36164,36212,18984,
+ 36262,36297,36338,36386, 0, 0,36436, 0,36486,36521,
+ 18986,17745, 0, 0, 0,17747,18996,36569,36612, 0,
+ 0,19067,36645,36693,36743,19258,36793,36843, 0,36886,
+
+ 36934,36969, 0,37017,37067, 0,37102,37150,19260,17928,
+ 0,19270,37193,37226, 0, 0,37274, 0,37324,37359,
+ 19645,17930, 0, 0, 0,37407,37457,37500, 0,37548,
+ 37598, 0,37648,37683,37731,37781, 0,19647,18008, 8720,
+ 37831,37866, 8721,37914,37964, 8722,38001,38049, 0,19649,
+ 19653,18009,38092, 0, 0,38125,38173, 0,38208, 0,
+ 19654,38256,38306,38341,38382, 0, 0,38430,38480, 0,
+ 38530,38565,38613,19662,18152, 0, 0, 0,38663,19666,
+ 38713,38748,38789, 0, 0,38837, 0,38887,38922, 0,
+ 0, 0,18154,38970,19670,39019, 497,39068,39118,39161,
+
+ 19671,39194, 0, 0, 8813,18232,18233,39242,19672, 0,
+ 19739,39292,39342, 0,39392,39435,39483,39518,19780,18326,
+ 39566,18328, 0,19871,39616,20012,18458,20053,20294,39666,
+ 39716,39751,39799, 0,39849,39892,39940,39975,20296,18498,
+ 0, 0, 0,40023,40073,20306,18500,18502, 464,18631,
+ 40123,20418, 0,40173,20430,18633,30900, 0,40223,20601,
+ 18863,20692,18903,20694,18905,18907,34361,20704,40273,40323,
+ 20825,18988,20827,18990,19068,21733,20837,40373, 0,20999,
+ 19069,40423, 0,19262,21011,40473,19264,21182,19740,40523,
+ 21184,40573,40623, 8826,19741,40673,40716, 0,21194,19781,
+
+ 19782,21465,40764, 0,19872, 0,21467,40814,40864,19873,
+ 40914,40957,41005, 0,41055, 0,21477,41090,41138, 0,
+ 41188, 0,20013, 457,41238,41273,20014, 456,41314, 0,
+ 0, 0,20054,41362,41405,41453, 0,41503, 0,21589,
+ 41538,41586, 0,21601,21763,20055,41636,41671,21775,41712,
+ 41760, 0, 0,41810,41860, 0,41910,41945,41993, 0,
+ 0, 0, 0,42036,42084, 0,21896,42119,42167,21937,
+ 20298,21939, 0,20300,42217,42260,42308, 0,42358, 0,
+ 21949,42393,42441, 0,42491,20380,42541,22070,22072, 0,
+ 22082, 0,42591, 0,42634,42667, 0,42715,42765, 0,
+
+ 42800,42848,22153,20420,42898,22194,42941,42974, 0,43022,
+ 0,43072,43107,22196,20422, 0, 0, 0,43155,43205,
+ 43248,43296,43346, 0,22206,43381,43429,43479,43514,43555,
+ 0, 0,43603, 0,43652,43686, 8859,20424, 0, 0,
+ 0,43734, 0,43777, 0,43825,43875, 0,43925,43960,
+ 44008,22327,20602,44058, 0, 8863,44108,44143, 8865,44191,
+ 8977,44228, 0,22329,20603,44276,22339,44326,44376,44411,
+ 44452, 0, 0,22410,20696,44500,20698,44550,22451,44600,
+ 0,44650,44685,44733,44776,44809,22453,20829,44842,22463,
+ 44890,44940,22584,20831, 0,22586,44990,20961,22596, 8978,
+
+ 45040,22717,45090,45140, 0,45183,45216, 0,45264,45314,
+ 0,45349,45397,22808,21001,45447,22810,45497,45547,45590,
+ 0,45638,45688, 0,45738,45773,45821,45871, 0, 8979,
+ 45906, 9140,45954, 9142,45991, 0,22820,46039,46089,46124,
+ 21003, 455,46165, 0, 0, 418, 9251,46213,21005, 414,
+ 46263,22891,46313,21186,46363,46413, 0,46463,46506,23082,
+ 46539, 0, 0,46587,23084,21188,46637, 9253, 0,23094,
+ 46687, 0,46737,46772,46820,46863,46896,23165,21469, 9316,
+ 23206,35568,46944,23208,21471,23218,21551,21591,46994,23339,
+ 36323,38367,47044,23341,21593,23351,21595,23526,21725,23527,
+
+ 21765,21767,38774,23528,41299,47094,47144,23532,21769,23534,
+ 21897,47194,21898,47244,23544,47294,47344, 9447,21941,47394,
+ 23549,47444,21943,47494,23550,47543,47592,23551,47642,23674,
+ 22074, 402, 9506,47692, 0,22076, 0,23675,47742,22154,
+ 47792,23676,47842,22155, 0,23680,47892,47935,23682,47983,
+ 48026,48074,23692,48109,48157,23697, 0,48207, 0, 0,
+ 0,48257, 0,48307,48342, 0,23698,22198, 0, 0,
+ 0,48383,48431, 0,23699,48466,48514, 0,48564,48599,
+ 48647,23922,48690, 0, 0,48738,48788, 0,48838,48873,
+ 48921,23924,22200, 0, 0, 0,48971,49014,49062, 0,
+
+ 23926,49097,22331,49145,23930,49195, 0,23931,22333,49238,
+ 0,49271, 0,49319,49369, 0,49404,49452,23939,49495,
+ 49528, 0, 0,49576, 0,49626,49661,23943,22411, 0,
+ 0, 0,49709,23947,23948,22412,22455,23949,49759,49794,
+ 24022,49835, 0, 0,49883,49933, 0,49983,50018,50066,
+ 0, 0, 0,50116,50159,50207, 0,24023,50242,50290,
+ 22457,24024,50340,22588, 400,24028,22590,50390,22718,50440,
+ 24029,50490, 0,50525,50573,50616,50649,24041,22719,50697,
+ 24045,50747,50782,50830,50880,22812,24046,50923, 0, 0,
+ 0, 0,50971, 0,51021,51056,51104, 0, 0, 0,
+
+ 0,51147,51195, 0,24047,51230,51278, 0,51321,51354,
+ 0,51402, 0,51437,24164, 388, 9508,22814,24255,51485,
+ 51535,24296,51585,51635,51678,51726,51776, 0,24487,51811,
+ 51859,51909, 0,51959,24934,52009,22892, 0,25526,52059,
+ 25528,52109,52159,52202, 0,52250,52300, 0,52335,52383,
+ 22893, 0,25538,52433,25609,52483,25650,25652,23086,52533,
+ 23088,52583,25662,52633,52683,25933,52733,52783,23166,52833,
+ 52876,52924, 0,52974, 0,26074,53009, 0, 0,53057,
+ 0, 0,23167,53107,53157, 0,53207,53250,26076,53283,
+ 0, 0,26086,26357,23210,53331,53366,26498,53407,53455,
+
+ 0,53505,53555, 0,53605,53640, 0, 0, 0, 0,
+ 26500,53688,53738,53788,53838,53881,26510,53914,26631,23212,
+ 53962,23343, 0,26672,26674,23345,41697,26684,23556,54012,
+ 54062,26855,23704,26896,24165,24166,54112,26898,54161,54210,
+ 54253,26908, 352, 9510,24256,24257,54301,27129,54350,54399,
+ 27131,54449,24297, 331,54499, 0,27141,24298,24488, 0,
+ 27212,54549,27253,24489,54599,27255,54642,27265,54690,54733,
+ 54774,27536,25530,27627,25532,54822, 0,27629,25610,54865,
+ 54913,54948, 0,54996,55046, 0,55081,55129,55179,27639,
+ 55222,55255, 0, 0,55303, 0,55353,55388,27760,25611,
+
+ 0, 0, 0,55436, 0,27762,25654,55479,55512, 0,
+ 55560,55610, 0,55645,55693,27772, 9512,55743,55786,55819,
+ 55867, 0,55917, 0,55967,56002,28047,25656, 0, 0,
+ 0,56050,56100,56150, 0,56200,56235,56283,56326,56359,
+ 28048,25934,28049,56407, 0,56457,56500,56548,56583,25935,
+ 0,28053,56631,56681, 0,28055,26078,56724,56757, 0,
+ 56805,56855, 0,56890,56938,28065,56981,57014, 0, 0,
+ 57062, 0,57112,57147,28070,26080, 0, 0, 0,28071,
+ 26358,57195,26359,28072,57245,28145,57295,26502,57345,28146,
+ 57395, 0,28147,26504,57438, 9573,57471, 0,57519,57569,
+
+ 0,57604,57652,28151,57695,57728, 9632, 0,57776, 0,
+ 57826,57861,28153,26632, 0, 0, 0,57909,26633, 330,
+ 306, 9671,26676,28163,57959,58009,28168,58059, 9778,58102,
+ 0,58150,58200, 0,58235,58283,28169,26678,58333,28170,
+ 58383,58418,58466,58516,26856,28489,58559, 0, 0, 0,
+ 58607, 0,58657,58692,58740, 0, 0, 0, 0,58783,
+ 58831, 0,28530,58866,58914,28721,58964,59014,28812,26857,
+ 28853,59064,59114,59164,59207,59255, 0, 9780,59290,59338,
+ 29000,59388,29092,59438,59481, 0,59529,59579, 0,59614,
+ 59662,59712,29183,59762,59812,29185,59847,29195,59888,59936,
+
+ 0, 0,59986, 0,60036,60071,29516,26900, 0, 0,
+ 0,60119,60154,60202,29657,60245, 0,60293,60343, 0,
+ 60393,60428,29659,26902, 0, 0, 0,27133,60476,29669,
+ 60526, 0,30090,27135,60569, 0,60602,60650,60700, 0,
+ 60735,30231,30233,27213,60783,60818,60866,60916,27214,30243,
+ 60959, 0, 0, 0,61007, 0,61057,61092, 0, 0,
+ 0,61140,30614,27257,61190,30705,61240,61290,30707,27259,
+ 61340, 0,30717,27537,30904,27538,27631, 0,30913,31887,
+ 30917,27633,61390,61440,30921, 0,61483,27764, 309, 260,
+ 9816,27766,31162,61531,28077, 214,61581,61631,61674,31164,
+
+ 28175,61722,61772,61815,31174,28490,61863, 0,61906,28491,
+ 199,61954,61997,31245,62045, 0,28531, 0,31336,28532,
+ 62095,31338,62145,28722, 0,31348,62195,62245,62295, 0,
+ 0,62330,62378,62421,62454,62502,31469,28723, 0,31471,
+ 62552,62602,62652, 9953,28813,62702, 0,62752,62787,62835,
+ 62878,62911,31481,28814,62959,31552,63009,28854,31743,63059,
+ 63109,31745,63159,63209,63259,31755,63309,63359,63409,31917,
+ 63459,63509,63559,31929, 0,63609,63659,63709,63752,32000,
+ 63785,63833,63883,63933, 0,63983,64018,64066,64109,64142,
+ 32002,28855,32012,64190,32083,29093,64240,32224,64290,64340,
+
+ 32226,29094,64390,32236,64440,64490,64540, 0,64590,64625,
+ 64673,64716,64749,32407,29187,32498,64797,64847,32500,32510,
+ 64897,29189,32837,64947,64990,65038, 0, 9954,65073,33079,
+ 29517,65121, 0,33220,29518,65164,65197, 0,65245,65295,
+ 0,65330,65378, 0,33261,65421,65454, 0, 0,65502,
+ 0,65552,65587,33263,29661, 0, 0, 0,65635,65685,
+ 29663,33273,65735,65785,65835,65885,65928,33844,65961,66009,
+ 66059,66102,66150,66185,66233,34035,66283,34076,66333,66383,
+ 66433,66476,66524, 0, 9955,66559,34117,30091,66607, 0,
+ 34208,30092,66650,66698,66733,66781,66831, 0,66866,66914,
+
+ 34365,66964, 0,34374,30235,67007,67040,67088,67138, 0,
+ 67173,34378,67221,67271,67321,67364, 0,34382,30237, 0,
+ 67412,67447,67495,67545, 0,67580,34473,67628,34514,67678,
+ 67721,67769,67819,34516,30615,34526,30616,34747,30709,34888,
+ 30711,34890,30892,30894,67869,34900,35175,30922,30923,36629,
+ 35176,67919,67969,68012,35185,31166,31168, 183,68060, 0,
+ 31246,68110,35572, 0,68160,68203,35581,31247,68251,35585,
+ 0,68294,35589,31340,68335,35780,68383, 0,31342,68433,
+ 35782,68483,68533,35792, 0,68576,35863,31473,31475,68624,
+ 35954,68674,68724,35956,68774,68824,68874,68924,68967,69015,
+
+ 69065, 0,35966,69100,69148, 0,69198,36087,69248,69298,
+ 69341,69389, 0,36178,69424,69472,31553,69522, 0,36180,
+ 69572, 0,69622,36190,69672,69722,69772,36327,69822,31554,
+ 169, 0,69872,36336,69922,69972,31747,36340,70022,36344,
+ 31749,70072,70122,70165, 0,70213,70263, 0,70313,70348,
+ 70396,70446,36535,36537,36547,31879,70489,70522,36659, 0,
+ 0, 0, 0,70570, 0,70620,70655, 0, 0, 0,
+ 70703,70753,36671,70803,70853,70903,36892,70953,36983,71003,
+ 36985,31919,71053,36995,71103,71153,37116,71203,71253,71296,
+ 71344,71394, 0,71444,71479,37118,31921,10016,71527,71577,
+
+ 71620,71668,71703,71751,37128,31923,71801,37199,71851,71901,
+ 71951, 0,10018,71986,72034,72077,72110,72158,37240,32004,
+ 37242, 0,72208,72258,37252,72308,72351,10127,72399,37373,
+ 32006, 0,72434, 0,72475, 0, 0,72523, 0,72573,
+ 72608,37375,32084, 0, 0, 0,72656,37385,72706,72756,
+ 72806,72849,72897,72932,72980,37506,32085,73030,37697,73080,
+ 32228, 0,37699,73130,73180,73230,73280,73330,37709,73380,
+ 73430,37880,37882,73480,32230, 0,37892,73530,73580,73630,
+ 38017,32408,38018,32409,32502,73680,38027,32504,43540,38098,
+ 73730,38139,33080,73780,38141, 0,73823,38151,33081,33221,
+
+ 73871,38222,73921,73971,38224, 0,74014,38234,33222,38371,
+ 33265,74062, 0, 0,74105,38380,33267,33845, 0,38384,
+ 74153,74203,74246,38388,74287,33846,38579,34036,74335,38581,
+ 34037,74385,74420,74461,74509, 0, 0,74559,74609, 0,
+ 74659,74694,74742,38591,34077, 0, 0, 0,74785,74833,
+ 0,38778,74868,74916,74966,75009, 0,75057,75107, 0,
+ 75157,75192,75240,75290,38787,75340,75375,75416,75464, 0,
+ 0,75514, 0,75564,75599, 0, 0, 0,38791,34078,
+ 38795,34118,75647,75690, 0,75738,75788, 0,75838,75873,
+ 75921,75971,38936,38938,34119,34209,38948,76020,39025,76069,
+
+ 34210,76119,39167,76169,39208,10128, 0,76219,10129,76269,
+ 76319,10290,76369,76406,76454,34353,76504,39210,76554, 0,
+ 39220,34355,76597,76645,76680,76728,76778, 0,76813, 0,
+ 39441,39532,34383,76861, 0,76904, 0,76952,77002, 0,
+ 77052,77087,77135,77185,39534,39544,34384,34474,77235,39765,
+ 39767,34475,77285,39777, 0,77328, 0,77376, 0,77426,
+ 77461,39898,34518,39989,77509,39991,34520,77559,40001,77609,
+ 77652,77700,77750, 0,40722,77785,77833,40963,77883,77933,
+ 77976,78024, 0,41104,78059,10292,34748,78107,78157, 0,
+ 78200,10448,78233,78281,78331, 0,78366,41106,78414,78464,
+
+ 41116,78514,78564,41303,78614,78657,78705,78755, 0,78805,
+ 78848,41312,78881, 0, 0,78929,41316,41320,78979,79029,
+ 41411,41552,34749,79079,79129,79172,79220,79270, 0,79320,
+ 79355,41554,34892,41564,79403,41701,34894,79453,41710,35177,
+ 44437,41714,41718,35560,35562, 0,41959,41961,35590,79503,
+ 0,79553,41971,35591,79603, 0,79653,79703,79753,79796,
+ 0,42042,35784,79844,42133,35786,79894,42135,79944, 0,
+ 79987,80035,80070, 0,80118,80168, 0,80203,80251,42145,
+ 35864, 0,42266,80294,80327, 0, 0,80375, 0,80425,
+ 80460,42407,35865, 0, 0, 0,80508,42409,10450, 0,
+
+ 80558,10486,80608,80658,10525,80708,80745,80793,80843, 0,
+ 80886,80934,80969, 0,81017, 0,81052,81100,42419,35958,
+ 0,42640,35960,81150,42681,81200,42683,10526,81250,10527,
+ 81300,81350,10738,81400,81437,81485,42693,36088,36089, 0,
+ 42814,81535,42816,81585,42826,36182,81635,42947,81685,36184,
+ 81735,42988,81785,42990,10740,81835,81885,10871,81935,81985,
+ 10873,82035,82072,82120,36315, 0,43000,36317, 0,43121,
+ 82170,82220,82263, 0,82311,82361, 0,82411,82446,82494,
+ 82544,82594,43123,43133,36345,36346, 0,43254,82644,43395,
+ 36539,82694,82744,82779,82820, 0, 0,82868,82918, 0,
+
+ 82968,83003,83051,43397,36541, 0, 0, 0,83101,43407,
+ 83151,83186,83227, 0, 0,83275, 0,83325,83360, 0,
+ 0, 0, 156,10956,43544,83408,83458,43553,83508,43557,
+ 36621,83551,83584,83632, 0,83682, 0,10958,83717,43561,
+ 36661, 0, 0, 0,83765,83815,83858,83906,83956, 0,
+ 84006,84041,43658,36663,84089,84132,84180,84230, 0,84280,
+ 84315,36665,84363,43700,84413,43702,36893,84463,43712,43783,
+ 36894,43974,36987,36989,84513,43976,84563,84613,84663,43986,
+ 37120,84713, 0,84763,44157,84813,44159,84863, 0,37122,
+ 0,44169,84913,44244,37200,84963,85013, 0,85063,85098,
+
+ 85146,85189,85222,44245,37201,85270,44254,44441,85320,85370,
+ 44450,85420,44454,85470,44458,85520,37244,85570,85613,85661,
+ 0,85711, 0,44699,85746,85794, 0,85844,44701,37246,
+ 0,44711,85894,44782,44823,85944,44825,85994,44835,86044,
+ 44848,86094,86137,86185, 0,86235,86270,44856,37377,37379,
+ 86318,44858,86368,37507, 0,44868,45189,86418,37508,45230,
+ 0,45232, 0,86468, 0,86511,86544, 0,86592,86642,
+ 0,86677,86725,45242,37701,86775,45363,86825,86875,86918,
+ 0,86966,87016, 0,87066,87101,87149,87199, 0,11089,
+ 87234,11091,87282,11151,87319, 0,45365,45375,37703,87367,
+
+ 45596,45787,37884,37886,87417,45789,87460, 0,87508,87543,
+ 87591, 0,87626,45799,38019, 0,45920,87674,45922,38099,
+ 87724,45932,87774,46007,46008,38100, 0,46017,87824,87874,
+ 87924,46138,87967, 0,46140,38143,88015,46150,46163,38145,
+ 46165,38226,38228,88065,46167,88108,46171,38359,88156,46512,
+ 46553,88206,38361,88256,46555,88306,46565,88356,88406,88449,
+ 0,88497,88547, 0,88582,88630,88680,46786,88730,46788,
+ 88780,88815,88863,46798,88906, 0, 0,88954,89004, 0,
+ 89054,89089,89137, 0, 0, 0, 0,89180,89228, 0,
+ 46869,89263,89311,89361,89404,89452,89487,89535,89585,46910,
+
+ 89635,46912,89685,89735,89778,89826,89861,46922,38389,89909,
+ 47547,38390,47549,89959,90009,90052,90100, 0,47551,90135,
+ 90183,38583, 80,47555,38585,90233,38766, 0,47556,90283,
+ 90333,47564,90383,38768,90433,47568,90483, 0,90526,90574,
+ 90624, 0,90674,90709,38796, 0,47572,11152,47573,47574,
+ 90757,47941,38797,90807, 0,48032,38940,48123,38942,39168,
+ 90857,48125,39169,90907,48135,90957, 0,91000,48356,39212,
+ 48358,91048,91098,91148,91198,91241,91289,91324,91372,91422,
+ 91472,91515,11388,91548,91596,91646,91689,91737,91772,91820,
+ 0,48368,39214,91863,91896, 0,91944,91994, 0,92029,
+
+ 92077,48381,92120,92153,92201, 0,92251, 0,92301,92336,
+ 48383,39442, 0, 0, 0,92384,48385,92434, 0,92484,
+ 92527,48389,92560,92608,92658,92708,92751,92799,92834,11390,
+ 48480,39443,48482,92882,48492,48613,92932,92982,93017,93058,
+ 0, 0,93106, 0,93156,93191, 0, 0, 0,93239,
+ 39536, 0,48615, 0, 0,93289,48625,93339,48696,93389,
+ 93432, 0,93480,93530, 0,93565,93613,93663,48887,93713,
+ 48889,48899,49020,39538,39769,93763,49111,39771,93813,49113,
+ 93863,49123,39899, 0,49244, 0,49285,93913,49287,93963,
+ 94013,94056,94104,94139,94187,49297,94237,49418,94287,94337,
+
+ 94387, 0,94437,94472,94520,94563,94596,49420,39900, 0,
+ 49430,94644,49501,94694,94729,94770, 0, 0,94818,94868,
+ 0,94918,94953,49542,39993, 0, 0, 0,95001,49544,
+ 49554,95051,49675,95101,95136, 0,95177, 0, 0,95225,
+ 0,95260,49677,49687,39995,95308,95358,49808,95408,95458,
+ 95508,95551,95599, 0,12412,95634,49810,40723,95682,49820,
+ 95732,95775,49833,40724,49835,40964,49837,95823,49841,50032,
+ 50034,40965,95873,50044,95923,95973,50165,96023,96073,50256,
+ 96123,96173, 0,96216,96264,96299,96347,96397, 0,96432,
+ 50258,96480,50268,50539,96530,50541,41108,96580,96630,96673,
+
+ 96721,96764,96812,96847,96895,50551,96945,96995,41110,97045,
+ 50622,50663,41291,97095,97138, 0,97186,97236, 0,97286,
+ 97321,97369,97419,50665,50675,41293,97469,50796,97519,41321,
+ 97569,50798,97619,50808,97669,50929,97719,97769,51070,51072,
+ 97819,41322, 0,51082,12414,51153, 0,97869, 0, 0,
+ 0, 44, 0,97919, 0, 0,41412, 0,51244,97969,
+ 51246,51256,41413,98019, 0,98062,98110,98160, 0,98210,
+ 98245,51327,41556,51368,41558,51370,12450,51380,98293,98343,
+ 98386,98434,98484, 0,98534,98569,41689, 0,51451, 0,
+ 0, 0, 0,98617, 0,98667, 0,51453,41691,98717,
+
+ 51463,41719, 0,51684,98767,51825,12584,51827,98817,98867,
+ 51837, 0,98910,98958, 0,99008,99043,52208,99091,52349,
+ 12586,99141,12622,99191,12733,99241,99278,99326,52351, 0,
+ 0, 39, 0,99376, 0,99426,52361,52882,12735,53023,
+ 53025,53035,123454,99476,99494,99512,99530,99548,99560,99566,
+ 99576,99592,99608,99624,99642,99660,99678,99696,99708,99724,
+ 99740,99757,99774,99792,99809,99827,99845,99863,99881,99899,
+ 99917,99934,99951,99969,99987,100005,100023,100041,100059,100077,
+ 100095,100113,100131,100149,100167,100185,100203,100221,100239,100257,
+ 100275,100293,100311,100328,100345,100362,100379,100397,100415,100433,
+
+ 100450,100468,100486,100498,100514,100530,100547,100565,100577,100594,
+ 100612,100629,100646,100664,100682,100700,100717,100735,100753,100771,
+ 100789,100807,100825,100842,100859,100877,100895,100913,100931,100949,
+ 100967,100985,101003,101021,101039,101056,101074,101092,101110,101128,
+ 101146,101164,101182,101200,101218,101236,101254,101272,101290,101308,
+ 101326,101344,101362,101379,101396,101414,101432,101449,101466,101484,
+ 101502,101520,101538,101556,101574,101592,101610,101628,101646,101664,
+ 101682,101700,101718,101736,101754,101772,101790,101808,101826,101844,
+ 101862,101880,101898,101916,101934,101952,101970,101988,102006,102024,
+ 102042,102060,102078,102096,102114,102132,102150,102168,102186,102203,
+
+ 102220,102238,102256,102274,102292,102310,102328,102346,102364,102382,
+ 102400,102418,102435,102453,102471,102489,102507,102525,102543,102561,
+ 102579,102597,102615,102633,102651,102669,102687,102705,102723,102741,
+ 102759,102777,102795,102813,102831,102848,102865,102883,102901,102919,
+ 102937,102955,102973,102991,103009,103027,103045,103063,103081,103099,
+ 103117,103135,103153,103171,103189,103206,103224,103242,103260,103278,
+ 103296,103314,103332,103350,103368,103386,103404,103422,103440,103458,
+ 103476,103494,103512,103530,103548,103565,103583,103601,103619,103637,
+ 103655,103673,103691,103709,103727,103745,103763,103780,103797,103814,
+ 103831,103849,103867,103885,103903,103921,103939,103957,103975,103993,
+
+ 104011,104029,104047,104065,104083,104101,104119,104137,104155,104173,
+ 104191,104209,104227,104245,104263,104281,104299,104317,104335,104353,
+ 104371,104389,104407,104425,104443,104460,104477,104493,104510,104528,
+ 104546,104564,104582,104600,104618,104636,104654,104672,104690,104708,
+ 104726,104744,104762,104780,104798,104816,104834,104852,104870,104888,
+ 104906,104924,104942,104960,104978,104996,105014,105032,105050,105068,
+ 105086,105104,105122,105140,105158,105176,105194,105212,105230,105248,
+ 105266,105284,105302,105320,105338,105356,105374,105392,105410,105428,
+ 105446,105464,105482,105500,105518,105536,105554,105572,105590,105607,
+ 105624,105642,105660,105678,105696,105714,105732,105750,105768,105786,
+
+ 105804,105822,105840,105858,105876,105894,105912,105930,105948,105966,
+ 105984,106002,106020,106038,106056,106074,106092,106110,106128,106146,
+ 106164,106182,106200,106218,106236,106253,106270,106288,106306,106324,
+ 106342,106360,106378,106396,106414,106432,106450,106468,106486,106504,
+ 106522,106540,106558,106576,106594,106612,106630,106648,106666,106684,
+ 106702,106720,106738,106756,106774,106792,106810,106828,106846,106864,
+ 106882,106900,106918,106936,106954,106972,106990,107008,107026,107044,
+ 107062,107080,107098,107116,107134,107152,107170,107188,107206,107224,
+ 107242,107260,107278,107296,107314,107331,107349,107367,107385,107403,
+ 107421,107439,107457,107475,107493,107511,107529,107547,107565,107583,
+
+ 107601,107619,107637,107655,107673,107691,107709,107727,107745,107763,
+ 107781,107799,107817,107835,107853,107871,107889,107907,107925,107943,
+ 107961,107979,107997,108015,108033,108051,108069,108087,108105,108123,
+ 108141,108159,108177,108195,108213,108231,108249,108267,108285,108303,
+ 108321,108339,108357,108375,108393,108411,108429,108447,108465,108483,
+ 108501,108518,108536,108554,108572,108590,108608,108626,108644,108662,
+ 108679,108697,108714,108732,108750,108768,108786,108804,108822,108840,
+ 108858,108876,108894,108912,108930,108948,108966,108984,109002,109020,
+ 109038,109056,109074,109092,109110,109128,109146,109164,109182,109200,
+ 109218,109236,109254,109272,109290,109308,109326,109344,109362,109380,
+
+ 109398,109416,109434,109452,109470,109488,109506,109524,109542,109560,
+ 109578,109596,109614,109632,109650,109668,109686,109704,109722,109740,
+ 109758,109776,109794,109811,109829,109847,109865,109883,109901,109919,
+ 109937,109955,109973,109991,110009,110027,110045,110063,110081,110099,
+ 110117,110135,110153,110171,110189,110207,110225,110243,110261,110279,
+ 110297,110315,110333,110351,110369,110387,110405,110423,110441,110459,
+ 110477,110495,110513,110531,110549,110567,110585,110603,110621,110639,
+ 110657,110675,110693,110711,110729,110747,110765,110783,110801,110819,
+ 110837,110855,110873,110891,110909,110927,110945,110963,110981,110999,
+ 111017,111035,111053,111071,111089,111107,111125,111143,111161,111179,
+
+ 111197,111215,111233,111251,111269,111287,111305,111323,111341,111359,
+ 111377,111395,111413,111431,111449,111467,111485,111503,111521,111539,
+ 111557,111575,111593,111611,111629,111647,111665,111683,111701,111719,
+ 111737,111755,111773,111791,111809,111827,111845,111863,111881,111899,
+ 111917,111935,111953,111971,111989,112007,112025,112043,112061,112079,
+ 112097,112115,112133,112151,112169,112187,112205,112223,112241,112259,
+ 112277,112295,112313,112331,112349,112367,112385,112403,112421,112439,
+ 112457,112475,112493,112511,112529,112547,112565,112583,112601,112619,
+ 112637,112655,112673,112691,112709,112727,112745,112763,112781,112799,
+ 112817,112835,112853,112871,112889,112907,112925,112943,112961,112979,
+
+ 112997,113015,113033,113051,113069,113087,113105,113123,113141,113159,
+ 113177,113195,113213,113231,113249,113267,113285,113303,113321,113339,
+ 113357,113375,113393,113411,113429,113447,113465,113483,113501,113519,
+ 113537,113555,113573,113591,113609,113627,113645,113663,113681,113699,
+ 113717,113735,113753,113771,113789,113807,113825,113843,113861,113879,
+ 113897,113915,113933,113951,113969,113987,114005,114023,114041,114059,
+ 114077,114095,114113,114131,114148,114166,114184,114202,114220,114238,
+ 114256,114274,114292,114310,114328,114346,114364,114382,114400,114418,
+ 114436,114454,114472,114490,114508,114526,114544,114562,114580,114598,
+ 114616,114634,114652,114670,114688,114706,114724,114742,114760,114778,
+
+ 114796,114814,114832,114850,114868,114886,114904,114922,114940,114958,
+ 114976,114994,115012,115030,115048,115066,115084,115102,115120,115138,
+ 115156,115174,115192,115210,115228,115246,115264,115281,115299,115317,
+ 115335,115353,115371,115389,115407,115425,115443,115461,115479,115497,
+ 115515,115533,115551,115569,115587,115605,115623,115641,115659,115677,
+ 115695,115713,115731,115749,115767,115785,115803,115821,115839,115857,
+ 115875,115893,115911,115929,115947,115965,115983,116001,116019,116037,
+ 116055,116073,116091,116109,116127,116145,116163,116181,116199,116217,
+ 116235,116253,116271,116289,116307,116325,116343,116361,116379,116397,
+ 116415,116433,116451,116469,116487,116505,116523,116541,116559,116577,
+
+ 116595,116613,116631,116649,116667,116685,116703,116721,116739,116757,
+ 116775,116793,116811,116829,116847,116865,116883,116901,116919,116937,
+ 116955,116973,116991,117009,117027,117045,117063,117081,117099,117117,
+ 117135,117153,117171,117189,117207,117225,117243,117261,117279,117297,
+ 117315,117333,117351,117369,117387,117405,117423,117441,117459,117477,
+ 117495,117513,117531,117549,117567,117585,117603,117621,117639,117657,
+ 117675,117693,117711,117729,117747,117765,117783,117801,117819,117837,
+ 117855,117873,117891,117909,117927,117945,117963,117981,117999,118017,
+ 118035,118053,118071,118089,118107,118125,118143,118161,118179,118197,
+ 118215,118233,118251,118269,118287,118305,118323,118341,118359,118377,
+
+ 118395,118413,118431,118449,118467,118485,118503,118521,118539,118557,
+ 118575,118593,118611,118629,118647,118665,118683,118701,118719,118737,
+ 118755,118773,118791,118809,118827,118845,118863,118881,118899,118917,
+ 118935,118953,118971,118989,119007,119025,119043,119061,119079,119097,
+ 119115,119133,119151,119169,119187,119205,119223,119241,119259,119277,
+ 119295,119313,119331,119349,119367,119385,119403,119421,119439,119457,
+ 119475,119493,119511,119529,119547,119565,119583,119601,119619,119637,
+ 119655,119673,119691,119709,119727,119745,119763,119781,119799,119817,
+ 119835,119853,119871,119889,119907,119925,119943,119961,119979,119997,
+ 120015,120033,120051,120069,120087,120105,120123,120141,120159,120177,
+
+ 120195,120213,120231,120249,120267,120285,120303,120321,120339,120357,
+ 120375,120393,120411,120429,120447,120465,120483,120501,120519,120537,
+ 120555,120573,120591,120609,120627,120645,120663,120681,120699,120717,
+ 120735,120753,120771,120789,120807,120825,120843,120861,120879,120897,
+ 120915,120933,120951,120969,120987,121005,121023,121041,121059,121077,
+ 121095,121113,121131,121149,121167,121185,121203,121221,121239,121257,
+ 121275,121293,121311,121329,121347,121365,121383,121401,121419,121437,
+ 121455,121473,121491,121509,121527,121545,121563,121581,121599,121617,
+ 121635,121653,121671,121689,121707,121725,121743,121761,121779,121797,
+ 121815,121833,121851,121869,121887,121905,121923,121941,121959,121977,
+
+ 121995,122013,122031,122049,122067,122085,122103,122121,122139,122157,
+ 122175,122193,122211,122229,122247,122265,122283,122301,122319,122337,
+ 122355,122373,122391,122409,122427,122445,122463,122481,122499,122517,
+ 122535,122553,122571,122589,122607,122625,122643,122661,122679,122697,
+ 122715,122733,122751,122769,122787,122805,122823,122841,122859,122877,
+ 122895,122913,122931,122949,122967,122985,123003,123021,123039,123057,
+ 123075,123093,123111,123129,123147,123165,123183,123201,123219,123237,
+ 123255,123273,123291,123309,123327,123345,123363,123381,123399,123417,
+ 123435
+ } ;
+
+static yyconst flex_int16_t yy_def[6482] =
+ { 0,
+ 5143, 1, 1, 1, 5143, 5, 5144, 5144, 5145, 5145,
+ 5146, 5146, 5147, 5147, 5147, 5147, 5148, 5148, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5149, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5150, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5149, 5149, 5149, 5149, 5149, 5143, 5143, 5143, 5143, 5143,
+ 5149, 5149, 5143, 5143, 5151, 5151, 5151, 5151, 5143, 5143,
+ 5143, 5152, 5152, 5153, 5143, 5143, 5154, 5143, 5143, 5143,
+ 5143, 5143, 5155, 5143, 5156, 5143, 5157, 5143, 5143, 5143,
+ 5143, 5149, 5143, 5143, 5150, 5143, 5158, 5150, 5143, 5149,
+ 5149, 5149, 5149, 5149, 5143, 5143, 5143, 5149, 5149, 5151,
+
+ 5151, 5151, 5151, 5151, 5151, 5143, 5143, 5143, 63, 63,
+ 5159, 5153, 5143, 112, 5160, 112, 5161, 112, 5143, 112,
+ 5162, 5163, 5164, 5154, 5165, 5143, 5143, 5166, 5167, 5143,
+ 5143, 5156, 5143, 5157, 5143, 5157, 5143, 5143, 5143, 5158,
+ 5143, 5149, 5149, 5143, 5143, 5143, 5149, 5149, 5143, 5143,
+ 5149, 5149, 5151, 5151, 5151, 5151, 5143, 5151, 5151, 5151,
+ 5143, 5143, 5168, 5169, 5159, 5160, 166, 5161, 5143, 5143,
+ 5170, 5171, 120, 120, 167, 5172, 5162, 5143, 177, 5163,
+ 5173, 5164, 5143, 5165, 5143, 5143, 5166, 5174, 5167, 5149,
+ 5149, 5175, 5176, 5149, 5149, 5149, 5149, 5151, 5151, 5151,
+
+ 5151, 5151, 5151, 5151, 5143, 5168, 5177, 5169, 167, 167,
+ 5178, 5179, 5170, 5180, 5171, 5172, 216, 5181, 5182, 179,
+ 179, 217, 5163, 5183, 5184, 5185, 5166, 5186, 5149, 5175,
+ 5187, 5176, 5149, 5149, 5149, 5151, 5143, 5188, 5143, 5151,
+ 5151, 5151, 5143, 5143, 5143, 5168, 5189, 5178, 5190, 5179,
+ 5170, 5191, 217, 217, 5181, 5192, 5182, 5163, 5183, 5184,
+ 5193, 5185, 5166, 5186, 5194, 5143, 5175, 5195, 5149, 5196,
+ 5151, 5188, 5197, 5143, 5151, 5151, 5143, 5143, 5168, 5189,
+ 5178, 5198, 5170, 5191, 5181, 5199, 5143, 5184, 5200, 5143,
+ 5201, 5202, 5203, 5175, 5195, 5149, 5204, 5143, 5205, 5197,
+
+ 5143, 5151, 5143, 5143, 5168, 5178, 5198, 5143, 5181, 5199,
+ 5163, 5143, 5163, 5184, 5200, 5143, 5166, 5166, 5206, 5207,
+ 5143, 5201, 5143, 5202, 5208, 5203, 5175, 5149, 5204, 5209,
+ 5143, 5210, 5211, 5168, 5168, 5143, 308, 308, 5143, 5143,
+ 308, 5170, 308, 5143, 5143, 311, 5143, 311, 5143, 5212,
+ 5213, 5214, 5184, 5166, 316, 5166, 5166, 5215, 5216, 5217,
+ 5207, 361, 5218, 5219, 5202, 5220, 5175, 5175, 5143, 5209,
+ 5210, 5211, 5168, 5168, 5221, 5222, 5223, 5223, 337, 337,
+ 339, 5170, 5170, 308, 337, 308, 339, 5143, 308, 5224,
+ 343, 344, 5225, 5226, 343, 343, 380, 344, 5143, 344,
+
+ 5170, 344, 5143, 5143, 5143, 403, 5227, 406, 5143, 5143,
+ 5143, 409, 5228, 5229, 5230, 5231, 5231, 5232, 5233, 5234,
+ 5235, 5236, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243,
+ 5143, 5143, 5244, 5245, 5246, 5247, 5248, 380, 380, 5249,
+ 5250, 380, 380, 442, 5143, 5143, 442, 442, 5143, 442,
+ 5251, 5252, 5253, 449, 454, 454, 5143, 449, 5254, 449,
+ 5255, 5256, 460, 460, 455, 5143, 466, 5143, 5257, 5257,
+ 466, 466, 468, 5143, 471, 5258, 471, 5259, 5260, 477,
+ 477, 467, 5143, 5261, 5262, 5261, 5263, 5143, 5264, 5265,
+ 5266, 5267, 5143, 5268, 5269, 5270, 5143, 5271, 5143, 5272,
+
+ 5273, 5143, 5274, 5275, 5276, 5276, 5276, 5277, 5276, 5278,
+ 5279, 5280, 5281, 5282, 5283, 5143, 5284, 5285, 5143, 5286,
+ 5287, 5286, 5288, 5143, 5143, 525, 525, 5143, 527, 529,
+ 5143, 5289, 5290, 5291, 531, 5292, 5293, 5143, 538, 5294,
+ 5295, 538, 538, 5143, 5143, 542, 542, 542, 5289, 5296,
+ 5297, 5143, 5298, 5298, 5299, 5300, 5143, 5301, 5302, 5303,
+ 5304, 5305, 5304, 5306, 5143, 5307, 5307, 5308, 5309, 5310,
+ 5143, 5311, 5143, 5312, 5313, 5143, 5314, 5314, 5315, 5316,
+ 5143, 5317, 5318, 5319, 5320, 5321, 5322, 5322, 5323, 5322,
+ 5324, 5143, 5325, 5325, 5326, 5143, 5327, 5143, 5328, 5329,
+
+ 5328, 5330, 5143, 603, 596, 5143, 604, 5331, 604, 5143,
+ 5332, 5143, 5333, 5143, 5143, 5334, 5334, 5335, 5336, 5143,
+ 620, 5143, 621, 5337, 621, 5143, 5143, 5143, 628, 5143,
+ 629, 5338, 629, 5339, 5337, 5339, 5340, 5143, 5341, 5342,
+ 5343, 5344, 5143, 5345, 5346, 5345, 5347, 5143, 5348, 5349,
+ 5143, 5143, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5354,
+ 5355, 5143, 5143, 5357, 5358, 5359, 5360, 5361, 5356, 5143,
+ 5353, 5353, 5143, 5362, 5143, 5362, 5362, 5363, 5362, 5143,
+ 5143, 681, 5364, 681, 5364, 5365, 5366, 5367, 5368, 5369,
+ 5143, 5370, 5370, 5371, 5371, 5372, 5373, 5373, 5372, 5373,
+
+ 5374, 5143, 5375, 5376, 5377, 5377, 5378, 5379, 5143, 5378,
+ 5379, 5143, 5143, 713, 713, 713, 715, 702, 5143, 715,
+ 5376, 715, 5143, 5380, 5381, 722, 722, 714, 723, 5143,
+ 723, 5382, 723, 5383, 5143, 5384, 5143, 737, 5143, 738,
+ 5377, 738, 5143, 5385, 5386, 5143, 5143, 747, 5143, 5387,
+ 5387, 748, 752, 748, 5388, 5143, 756, 5387, 757, 5143,
+ 5389, 5143, 762, 762, 762, 764, 5143, 764, 5390, 764,
+ 5391, 5392, 770, 770, 763, 5389, 5393, 5143, 778, 5143,
+ 779, 5394, 779, 5395, 5396, 5395, 5397, 5398, 5143, 5399,
+ 5143, 5400, 5400, 5401, 5390, 5143, 796, 5394, 797, 5143,
+
+ 5143, 5143, 5402, 5403, 5404, 5405, 5143, 5406, 5406, 5143,
+ 5143, 5143, 5143, 5407, 5407, 5407, 5408, 5409, 5410, 5143,
+ 5143, 5411, 5412, 5143, 5143, 5413, 5413, 5409, 5412, 5143,
+ 5414, 5414, 5143, 833, 834, 5415, 5416, 5417, 5418, 5419,
+ 5419, 5420, 5421, 5422, 5422, 5423, 5143, 5424, 5425, 5426,
+ 5143, 5427, 5428, 5143, 5143, 855, 5143, 5143, 856, 5429,
+ 856, 5143, 5143, 863, 863, 863, 865, 5143, 5143, 865,
+ 865, 5143, 5430, 5429, 5431, 5432, 5433, 872, 878, 878,
+ 5143, 872, 5426, 872, 5434, 5435, 884, 884, 879, 5143,
+ 5143, 891, 5436, 5437, 892, 895, 892, 5143, 5143, 899,
+
+ 5425, 900, 5143, 5143, 904, 5143, 5143, 905, 5438, 905,
+ 5143, 5143, 912, 5432, 5437, 5143, 916, 5439, 5430, 917,
+ 920, 917, 903, 903, 903, 5143, 5143, 903, 5143, 903,
+ 5143, 5440, 5438, 5143, 934, 929, 934, 929, 5143, 929,
+ 929, 931, 5430, 5441, 5442, 5439, 5443, 5143, 5143, 949,
+ 5143, 5444, 5444, 950, 954, 950, 5445, 5446, 5445, 5446,
+ 5143, 5447, 5143, 5448, 5449, 5450, 5143, 5143, 968, 969,
+ 970, 969, 5143, 5143, 5143, 973, 5143, 5143, 5451, 5451,
+ 5452, 5453, 5454, 5453, 5453, 5453, 5143, 5453, 5453, 5455,
+ 5456, 5453, 5457, 5458, 5143, 5459, 5143, 5143, 5460, 5460,
+
+ 5454, 5461, 5143, 5461, 5461, 5462, 5461, 5143, 1008, 5463,
+ 5464, 5143, 1012, 5465, 5466, 5143, 5467, 5468, 5469, 5143,
+ 5470, 5143, 5471, 5472, 5472, 5473, 5473, 5474, 5473, 5475,
+ 5475, 5475, 5143, 5476, 5476, 5477, 5478, 5477, 5143, 1039,
+ 5477, 5143, 5143, 1043, 1043, 5477, 1043, 1043, 1047, 1039,
+ 5143, 1047, 5143, 1047, 1042, 5479, 5480, 1054, 1054, 1045,
+ 1042, 5143, 1042, 5477, 1042, 1033, 5477, 5481, 5482, 5483,
+ 5143, 1071, 1071, 5143, 1073, 1075, 5484, 5485, 5486, 5487,
+ 5488, 5143, 5143, 1083, 5143, 5143, 1084, 5489, 1084, 5143,
+ 5143, 1091, 5478, 5143, 5490, 5143, 1096, 5491, 5492, 1097,
+
+ 1100, 1097, 5143, 1103, 5143, 5493, 5493, 1103, 5143, 1103,
+ 1108, 1105, 5143, 1108, 5143, 1108, 5143, 1116, 1116, 1104,
+ 1109, 1117, 5143, 1117, 5493, 1117, 5143, 1127, 5143, 5143,
+ 5494, 5143, 5494, 5495, 5143, 1135, 5143, 5143, 1136, 5496,
+ 1136, 5143, 5143, 1143, 5497, 5492, 5143, 5143, 5143, 5143,
+ 1148, 5498, 1151, 5143, 1132, 5143, 5143, 5143, 1156, 5499,
+ 1159, 5143, 1162, 5143, 5143, 5143, 5143, 1164, 5500, 5501,
+ 5502, 5502, 5503, 5504, 5505, 5506, 5143, 5507, 5508, 5509,
+ 5143, 5510, 5511, 5511, 5512, 5511, 5143, 5512, 5512, 5513,
+ 5514, 5515, 5514, 5516, 5517, 5518, 5519, 5518, 5520, 5143,
+
+ 5521, 5522, 5143, 5523, 5143, 5524, 5143, 5525, 5526, 5143,
+ 5527, 5528, 5529, 5530, 5531, 5531, 5532, 5533, 5534, 5535,
+ 5143, 1221, 5536, 5537, 1221, 1221, 1225, 5143, 5143, 1225,
+ 1225, 5143, 5538, 5539, 5540, 1232, 1236, 1236, 5143, 1232,
+ 5143, 1232, 5541, 5542, 1242, 1242, 1237, 5543, 5543, 5544,
+ 5143, 5545, 5546, 5547, 5548, 5143, 5549, 5143, 5143, 5143,
+ 1260, 5143, 1256, 5550, 5550, 1260, 5143, 1260, 1266, 1262,
+ 5143, 1266, 5143, 1266, 5143, 5551, 5552, 1274, 1274, 1261,
+ 5143, 1275, 5143, 1275, 5550, 1275, 5545, 5553, 5143, 1289,
+ 5553, 5143, 1292, 5554, 5552, 1292, 1259, 1292, 1296, 5143,
+
+ 5143, 1296, 1296, 5143, 1296, 5555, 1304, 1307, 1297, 1307,
+ 5143, 1304, 5143, 1304, 5556, 5557, 1314, 1314, 1308, 5143,
+ 5557, 1297, 1259, 1297, 1256, 5143, 1297, 1297, 5143, 5558,
+ 5559, 5143, 5559, 5559, 5560, 5143, 1336, 5143, 5561, 5561,
+ 1336, 1336, 1341, 1338, 5143, 1341, 5143, 1341, 5143, 1348,
+ 1348, 1337, 1329, 1349, 5143, 1349, 5561, 1349, 5562, 5143,
+ 1360, 5562, 5143, 1363, 1364, 1364, 5562, 1363, 1364, 1360,
+ 5143, 1363, 5143, 1363, 5563, 5564, 1374, 1374, 1366, 5143,
+ 5143, 5143, 5143, 1381, 5565, 1384, 5143, 1387, 5143, 5566,
+ 5566, 1387, 5143, 1387, 1389, 5143, 1392, 5143, 1392, 1399,
+
+ 1399, 1388, 5143, 5567, 5568, 5569, 5570, 5143, 5571, 5572,
+ 5573, 5143, 5574, 5143, 5575, 5576, 5577, 5578, 5579, 5577,
+ 5580, 5573, 1412, 5581, 5143, 5582, 5143, 5583, 5143, 5584,
+ 5585, 5586, 5584, 5585, 5143, 1427, 1427, 5587, 5588, 5589,
+ 5143, 5590, 1429, 5591, 5143, 5143, 1446, 5592, 1446, 5592,
+ 5593, 5592, 5594, 5594, 5594, 5595, 5595, 5596, 5597, 5143,
+ 5598, 5599, 5143, 5600, 5601, 5600, 5602, 5143, 5143, 1469,
+ 1469, 5143, 1471, 1473, 5603, 5604, 5605, 5143, 5606, 5607,
+ 5608, 5609, 5143, 5610, 5610, 5611, 5612, 5613, 5143, 1489,
+ 5614, 5615, 1489, 5143, 1489, 1493, 5143, 5143, 1493, 1493,
+
+ 5143, 1493, 5601, 5613, 5616, 5617, 5143, 1501, 1508, 5143,
+ 1508, 5143, 1501, 5143, 1501, 5618, 5619, 1515, 1515, 1509,
+ 5620, 5143, 5621, 5143, 5143, 5143, 1526, 5143, 1526, 5143,
+ 1529, 1531, 5143, 5622, 5623, 5624, 1533, 5623, 5625, 1507,
+ 5143, 1507, 1542, 1542, 5626, 5627, 5143, 5143, 1548, 5628,
+ 5619, 1548, 1548, 1552, 5143, 5143, 1552, 1552, 5143, 1552,
+ 5622, 1559, 1562, 1542, 1562, 5143, 1559, 5143, 1559, 5629,
+ 5630, 1569, 1569, 1563, 5631, 5632, 5143, 1577, 5633, 5634,
+ 1577, 1577, 5143, 5143, 1581, 1581, 5635, 5636, 5637, 5143,
+ 5638, 5143, 1592, 5143, 1594, 5143, 1590, 5639, 5639, 1594,
+
+ 5143, 1594, 1596, 5143, 1600, 5143, 1600, 5640, 5641, 1607,
+ 1607, 1595, 5143, 1613, 5642, 5641, 1613, 1592, 1613, 5143,
+ 5143, 1617, 1617, 1617, 5635, 5143, 5643, 5644, 5143, 5645,
+ 5143, 5646, 5646, 5647, 5648, 5649, 5143, 5650, 1629, 5651,
+ 5652, 5653, 5653, 5143, 5654, 5654, 5648, 5655, 5647, 5648,
+ 5656, 5143, 5657, 5143, 5658, 1631, 5650, 1629, 5651, 1644,
+ 5143, 5654, 5654, 5659, 5143, 5660, 5661, 5143, 5662, 5662,
+ 5663, 5143, 5143, 5143, 5664, 1665, 1676, 5664, 5665, 5666,
+ 5667, 5143, 1668, 1668, 5668, 5669, 5143, 5143, 5670, 5143,
+ 1690, 1691, 5666, 5669, 5671, 5671, 5672, 5143, 5673, 5143,
+
+ 5143, 5674, 5143, 5143, 5675, 5143, 5676, 5143, 5143, 5677,
+ 5677, 5678, 5143, 5143, 5679, 5143, 5143, 1698, 5680, 5681,
+ 5682, 5143, 5680, 5683, 5143, 5684, 5685, 5686, 5686, 5687,
+ 5688, 5143, 5689, 5690, 5675, 1706, 5691, 5143, 5143, 5692,
+ 5681, 5692, 5693, 5143, 5694, 5695, 5143, 1747, 5143, 1747,
+ 5143, 1750, 1752, 5143, 5696, 5697, 5143, 5698, 1754, 5695,
+ 5699, 5700, 5143, 5701, 5143, 5143, 1766, 5143, 5143, 1767,
+ 5686, 1767, 5143, 5143, 5702, 5143, 5143, 5143, 1778, 5143,
+ 5143, 1779, 5703, 1779, 5143, 5143, 1785, 1777, 1787, 5143,
+ 5704, 1777, 5143, 5143, 1793, 5703, 1795, 5705, 5143, 5706,
+
+ 5143, 5143, 5143, 1803, 1787, 1803, 5143, 1806, 1808, 5143,
+ 5707, 5704, 5708, 1810, 5709, 5710, 5143, 5711, 5712, 5143,
+ 5713, 5714, 5713, 5715, 5143, 5716, 5717, 5143, 1828, 5718,
+ 5719, 1828, 5143, 1828, 5143, 5143, 1832, 1832, 1832, 5714,
+ 5717, 5720, 5713, 5143, 5721, 5143, 5143, 5722, 5143, 5723,
+ 5724, 5143, 5725, 5725, 5726, 5727, 5728, 5729, 5730, 5724,
+ 5731, 5731, 5143, 5732, 5725, 5733, 5727, 5728, 5729, 5730,
+ 5143, 5734, 5734, 5735, 5143, 5736, 5725, 5725, 1863, 5143,
+ 5737, 5738, 5143, 5143, 1884, 5739, 5740, 5741, 5742, 5143,
+ 1890, 5741, 5741, 1890, 5741, 1890, 5743, 5744, 5741, 5745,
+
+ 5746, 5143, 5747, 5143, 5143, 5748, 1884, 1907, 5742, 5143,
+ 1910, 5749, 1910, 5749, 5750, 5749, 5143, 1917, 5751, 5751,
+ 5752, 5143, 5753, 5143, 5754, 5143, 1926, 5143, 1928, 1927,
+ 5754, 1927, 5143, 1926, 5755, 5756, 5757, 5143, 5758, 1924,
+ 5143, 5759, 5143, 5143, 5143, 1945, 1938, 5143, 1946, 5143,
+ 1946, 5143, 5760, 5752, 5143, 5143, 5761, 5762, 5763, 5761,
+ 5764, 1924, 5143, 5765, 5143, 5143, 5756, 5143, 5766, 5767,
+ 5768, 5769, 5769, 5757, 1938, 5758, 5143, 1977, 5143, 5143,
+ 1978, 5770, 1978, 5143, 5143, 5771, 5771, 5772, 5143, 5773,
+ 5143, 5774, 5775, 5143, 5143, 5143, 1996, 5143, 1997, 5776,
+
+ 1997, 5777, 5773, 5777, 5778, 5143, 5143, 5143, 2008, 2008,
+ 5143, 2008, 2010, 5143, 5143, 2010, 5143, 2010, 5143, 5779,
+ 5780, 2018, 2018, 2009, 2011, 2019, 5143, 2019, 5780, 2019,
+ 5143, 5781, 5143, 2033, 5143, 5782, 5782, 2033, 5143, 2033,
+ 2038, 2035, 5143, 2038, 5143, 2038, 5143, 2046, 2046, 2034,
+ 5143, 5783, 2047, 2053, 2039, 2053, 5143, 2047, 2045, 2047,
+ 2060, 2060, 2054, 5784, 5785, 5143, 2066, 5143, 5143, 2067,
+ 5786, 2067, 5143, 5781, 5143, 5143, 2076, 5143, 2077, 5783,
+ 2077, 5787, 5143, 5788, 5143, 5789, 5143, 5790, 5143, 5791,
+ 5143, 5143, 5792, 5792, 5793, 5143, 5794, 5143, 5795, 5796,
+
+ 5790, 2089, 5797, 5143, 5798, 5799, 5798, 5800, 5143, 5792,
+ 5143, 5793, 2087, 5143, 5143, 2114, 5801, 2116, 5143, 5783,
+ 5143, 5802, 5143, 5802, 5802, 5803, 5802, 5804, 5805, 5806,
+ 5807, 5143, 5808, 5802, 5143, 5143, 5809, 5809, 2132, 5143,
+ 5810, 5806, 5143, 5811, 5802, 2135, 5809, 5809, 5809, 2135,
+ 5812, 5143, 5143, 5813, 5813, 5143, 2156, 2156, 5814, 5815,
+ 5816, 5817, 5818, 5819, 5820, 5143, 5821, 5143, 5822, 5143,
+ 2168, 2170, 5823, 2170, 5823, 5824, 5825, 5143, 2178, 2179,
+ 5826, 5825, 5143, 5143, 2184, 5827, 5828, 5827, 2185, 2189,
+ 2185, 5143, 2192, 5827, 2193, 5829, 5830, 5143, 5831, 5827,
+
+ 5143, 5832, 5143, 5833, 5143, 2205, 5143, 2207, 5143, 2206,
+ 5833, 2206, 5143, 2205, 2201, 5143, 2201, 5143, 5143, 2201,
+ 5143, 2201, 5143, 5834, 5828, 5829, 5835, 5836, 5837, 5143,
+ 5838, 5143, 5839, 5840, 5143, 5841, 5143, 5143, 5143, 2239,
+ 2239, 2239, 2241, 5143, 5143, 2241, 5143, 2241, 5143, 5842,
+ 5838, 2248, 2248, 2240, 2249, 5143, 2249, 5843, 2249, 5844,
+ 5845, 5143, 5143, 2263, 5143, 2264, 5846, 2264, 5143, 5847,
+ 5143, 2271, 2271, 5143, 2271, 2273, 5143, 2273, 5143, 2273,
+ 5848, 5849, 2280, 2280, 2272, 5847, 5850, 5143, 2288, 2237,
+ 2289, 5851, 2289, 5143, 5143, 5852, 5143, 5143, 2298, 2298,
+
+ 5143, 2298, 2300, 5143, 5143, 2300, 2300, 5143, 5853, 5852,
+ 2294, 5854, 2308, 2313, 2301, 2313, 5143, 2308, 5143, 2308,
+ 5855, 5856, 2320, 2320, 2314, 5143, 5143, 2326, 2326, 5143,
+ 5143, 2326, 5143, 2326, 5143, 5143, 2336, 5857, 5858, 2333,
+ 5143, 2336, 2333, 5143, 5143, 2333, 2333, 5143, 2335, 5853,
+ 5859, 5860, 2348, 2353, 2341, 2353, 5143, 2348, 2348, 2348,
+ 5853, 5143, 5143, 2363, 2363, 2363, 2365, 5143, 5143, 2365,
+ 5143, 2365, 5143, 5861, 5856, 2372, 2372, 2364, 5143, 5862,
+ 5143, 2381, 2381, 2381, 2383, 5143, 2383, 5143, 2383, 2389,
+ 2389, 2382, 5863, 5143, 5864, 5143, 5865, 5143, 5143, 2398,
+
+ 5865, 2400, 2400, 2398, 5866, 5867, 5868, 5143, 5869, 2396,
+ 5870, 5143, 5143, 2408, 5143, 2413, 5143, 2416, 5871, 5863,
+ 5143, 5868, 2408, 5869, 5143, 5872, 5872, 5873, 5865, 5143,
+ 5143, 2431, 5143, 2431, 5143, 2431, 5143, 2436, 5874, 5875,
+ 2438, 2438, 2432, 5143, 5143, 5876, 5876, 5877, 5878, 5877,
+ 5143, 5879, 2444, 5143, 5880, 5880, 5881, 2444, 5143, 5881,
+ 5881, 5882, 5876, 5880, 5880, 5880, 5883, 5884, 5143, 5143,
+ 5885, 5885, 5886, 5881, 5881, 2444, 5882, 5143, 2478, 5887,
+ 5888, 5143, 2482, 5889, 5890, 5143, 5891, 5892, 5893, 5143,
+ 5894, 5143, 5143, 5895, 5896, 5143, 2496, 2497, 5897, 5898,
+
+ 5896, 5899, 5143, 2503, 5893, 2490, 5900, 5143, 5143, 5901,
+ 5143, 2511, 5143, 2513, 5143, 2512, 5901, 2512, 5143, 2511,
+ 5143, 2521, 5902, 5903, 5143, 2525, 5904, 5903, 2526, 2529,
+ 2526, 2509, 5905, 5143, 2534, 5143, 2536, 5143, 2535, 5905,
+ 2535, 5143, 2534, 5906, 5907, 5908, 5143, 2547, 5906, 2547,
+ 5143, 2547, 2550, 5143, 5143, 2550, 5143, 2550, 5143, 2558,
+ 2558, 2548, 2551, 2559, 5143, 2559, 5906, 2559, 5143, 5909,
+ 5904, 5910, 2509, 5911, 5143, 2575, 5143, 2577, 5143, 2576,
+ 5911, 2576, 5143, 2575, 5143, 5912, 5143, 5913, 5914, 2536,
+ 5905, 2542, 5143, 2593, 2593, 2593, 2595, 5143, 5143, 2595,
+
+ 2595, 5143, 5915, 5905, 5143, 5916, 2602, 2607, 2607, 5143,
+ 2602, 5143, 2602, 5917, 5912, 2613, 2613, 2608, 5143, 5143,
+ 2620, 5143, 5143, 2621, 5918, 2621, 5143, 5143, 2628, 2628,
+ 2628, 2630, 5143, 2630, 5143, 2630, 5919, 5920, 2636, 2636,
+ 2629, 5143, 2619, 2642, 2642, 5143, 5143, 2642, 5143, 2642,
+ 5143, 5921, 5918, 5143, 2654, 2649, 5143, 2654, 2649, 5143,
+ 2649, 2649, 2651, 5922, 5923, 5143, 5924, 5143, 5143, 2669,
+ 2670, 2671, 2670, 5925, 5926, 5143, 5926, 5143, 5927, 5143,
+ 2680, 5143, 2680, 5143, 2683, 2685, 5928, 5920, 2636, 5929,
+ 5143, 5143, 5930, 5920, 2689, 5931, 5143, 5932, 5933, 2697,
+
+ 5143, 5934, 5143, 5143, 2704, 2704, 2704, 2706, 5143, 5143,
+ 2706, 2706, 5143, 5928, 5934, 5143, 5935, 5143, 5143, 2718,
+ 2718, 5143, 5143, 2718, 5143, 2718, 5143, 5143, 2728, 2725,
+ 2728, 2725, 5143, 2725, 2725, 2727, 5928, 5143, 5143, 2739,
+ 5936, 5937, 2740, 2743, 2740, 5938, 5939, 5143, 5940, 5937,
+ 5143, 5941, 5143, 5942, 5143, 5143, 2756, 5143, 2755, 5942,
+ 2759, 2759, 2755, 5143, 5943, 5944, 5143, 2751, 2756, 5942,
+ 5143, 2771, 5143, 2771, 5143, 2774, 2776, 5945, 5942, 2751,
+ 5946, 5947, 5143, 5947, 5947, 5948, 5947, 5949, 5143, 5950,
+ 5951, 5952, 5143, 5951, 5951, 5953, 5947, 5954, 5947, 5955,
+
+ 5947, 5951, 5952, 5953, 5956, 5143, 5143, 5956, 5956, 5957,
+ 5956, 5143, 5958, 5143, 5959, 5143, 5143, 5960, 5961, 5143,
+ 5962, 5143, 5963, 5143, 5964, 5965, 5143, 5966, 5143, 5967,
+ 5967, 5968, 5969, 5143, 2834, 5961, 2820, 5970, 5143, 5971,
+ 5143, 5972, 5143, 5963, 2824, 5964, 5143, 2829, 5967, 5143,
+ 2850, 5143, 5973, 2851, 5143, 5973, 2850, 5143, 2851, 2850,
+ 2852, 5143, 2850, 5143, 2850, 2855, 5974, 5973, 2865, 2865,
+ 2854, 2855, 5143, 2855, 5973, 2855, 5143, 2877, 5143, 2879,
+ 5143, 5975, 2879, 2879, 2883, 5143, 5143, 2883, 5143, 2883,
+ 5143, 5976, 5973, 2890, 2890, 2880, 5143, 2891, 5143, 2891,
+
+ 5975, 2891, 5977, 5143, 5978, 5143, 2906, 5979, 5973, 2906,
+ 2904, 2906, 2910, 5143, 5143, 2910, 2910, 5143, 5980, 2918,
+ 2920, 2904, 2920, 5143, 2918, 5143, 2918, 5981, 5977, 2927,
+ 2927, 2921, 5143, 5977, 5982, 5983, 5983, 5984, 5143, 2939,
+ 5985, 2939, 2939, 2942, 5143, 5143, 2942, 5143, 2942, 5143,
+ 2949, 2949, 2940, 5143, 2950, 5143, 2950, 5985, 2950, 5143,
+ 5986, 5986, 5143, 5987, 5988, 5989, 5990, 5143, 5991, 5143,
+ 5992, 5143, 2972, 2972, 5143, 2974, 2976, 5988, 5993, 5143,
+ 5994, 5143, 2982, 5143, 5143, 5995, 5995, 2982, 2985, 2982,
+ 2988, 2984, 5143, 2988, 5143, 2988, 5143, 2996, 2996, 2983,
+
+ 2985, 2997, 5143, 2997, 5995, 2997, 5143, 3007, 3007, 3007,
+ 3009, 5143, 3009, 3009, 5996, 5997, 5998, 5999, 6000, 5143,
+ 5143, 6001, 5143, 5143, 3024, 5143, 5143, 3025, 6002, 3025,
+ 5143, 5143, 3032, 5143, 6003, 5143, 5999, 3009, 6004, 5143,
+ 6005, 5143, 5143, 3042, 3042, 5143, 5143, 3042, 3042, 5143,
+ 5999, 3009, 6004, 5143, 6006, 5143, 6006, 6007, 6008, 5143,
+ 6009, 5143, 6010, 5143, 5143, 6006, 5143, 5143, 6011, 5143,
+ 3070, 5143, 3072, 5143, 3071, 6011, 3071, 3071, 3070, 5143,
+ 3080, 3068, 6012, 5143, 5143, 3085, 5143, 3084, 6012, 3088,
+ 3088, 3084, 6013, 6014, 6015, 5143, 3096, 6013, 3096, 5143,
+
+ 3096, 5143, 5143, 3099, 5143, 3099, 3106, 3106, 3097, 3085,
+ 6012, 5143, 5143, 5143, 5143, 3113, 6015, 3116, 6016, 6013,
+ 5143, 6013, 3100, 6017, 6018, 6019, 6020, 6021, 6022, 5143,
+ 5143, 6023, 6024, 6025, 6025, 6026, 5143, 6027, 6028, 5143,
+ 3140, 6029, 6029, 6030, 6031, 6032, 5143, 6033, 6028, 5143,
+ 6034, 5143, 6035, 6029, 5143, 3155, 6036, 6031, 6032, 3147,
+ 6033, 5143, 6037, 6038, 5143, 6039, 3140, 6029, 5143, 3155,
+ 3155, 6040, 6041, 6042, 6043, 5143, 3176, 6044, 6043, 3176,
+ 5143, 3176, 3180, 5143, 5143, 3180, 3180, 5143, 5143, 6045,
+ 3188, 3191, 3181, 3191, 5143, 3188, 5143, 3188, 6046, 6043,
+
+ 3198, 3198, 3192, 5143, 3204, 6047, 6048, 3204, 3204, 3208,
+ 5143, 5143, 3208, 3208, 5143, 6045, 6049, 5143, 3215, 3219,
+ 5143, 3219, 5143, 3215, 5143, 3215, 6050, 6051, 3226, 3226,
+ 3220, 5143, 5143, 5143, 3234, 5143, 3234, 5143, 3237, 3239,
+ 6052, 6053, 6054, 5143, 3218, 5143, 3218, 5143, 3247, 6053,
+ 3236, 6055, 5143, 5143, 3254, 6056, 6051, 3254, 3254, 3258,
+ 5143, 5143, 3258, 3258, 5143, 6052, 3265, 3267, 3247, 3267,
+ 5143, 3265, 5143, 3265, 6057, 6058, 3274, 3274, 3268, 6059,
+ 6060, 5143, 6061, 6061, 5143, 6060, 5143, 6062, 5143, 6063,
+ 5143, 3291, 6064, 6065, 3291, 3248, 3291, 3295, 5143, 5143,
+
+ 3295, 3295, 5143, 6066, 3303, 3305, 3248, 3305, 5143, 3303,
+ 5143, 3303, 6067, 6065, 3312, 3312, 3306, 5143, 6068, 6066,
+ 6069, 6070, 6068, 6071, 5143, 5143, 6065, 5143, 3248, 3328,
+ 3328, 5143, 5143, 3328, 3328, 5143, 6072, 6073, 5143, 6073,
+ 5143, 3341, 5143, 5143, 6074, 6074, 3341, 3341, 3347, 3343,
+ 5143, 3347, 5143, 3347, 5143, 3354, 3354, 3342, 3344, 3355,
+ 5143, 3355, 6074, 3355, 5143, 6075, 5143, 5143, 6076, 6068,
+ 6071, 5143, 5143, 5143, 3367, 5143, 3367, 3367, 3367, 5143,
+ 6076, 5143, 6075, 5143, 3384, 3384, 5143, 5143, 3384, 3384,
+ 5143, 5143, 6077, 5143, 5143, 6078, 3394, 6078, 3394, 5143,
+
+ 3394, 3395, 5143, 3399, 5143, 3399, 6079, 6078, 3406, 3406,
+ 3397, 5143, 3412, 5143, 6080, 3412, 3412, 5143, 5143, 3416,
+ 5143, 3416, 6081, 6078, 3422, 3422, 3413, 6082, 5143, 6083,
+ 5143, 3431, 6084, 6078, 3431, 3429, 3431, 5143, 5143, 3435,
+ 3435, 6085, 6086, 6078, 5143, 3445, 5143, 5143, 6087, 6087,
+ 3445, 3448, 3445, 3447, 5143, 3451, 5143, 3451, 3458, 3458,
+ 3446, 5143, 6088, 6089, 5143, 6090, 5143, 5143, 6091, 6091,
+ 5143, 3468, 6092, 6092, 6093, 6093, 6089, 3465, 6094, 3467,
+ 6095, 6096, 5143, 5143, 6097, 3484, 3484, 6098, 6097, 6099,
+ 6100, 6101, 6102, 5143, 6103, 6097, 5143, 5143, 3498, 6104,
+
+ 6104, 5143, 5143, 3503, 6105, 6101, 5143, 3484, 3484, 6106,
+ 6097, 5143, 3498, 6104, 5143, 3515, 6104, 3512, 6107, 6108,
+ 5143, 6109, 5143, 6108, 3521, 6109, 5143, 5143, 5143, 3529,
+ 3521, 3529, 5143, 3532, 3534, 5143, 6110, 6108, 3521, 6109,
+ 5143, 5143, 5143, 6111, 6112, 5143, 3546, 5143, 3546, 5143,
+ 3549, 3551, 6113, 6114, 5143, 6115, 5143, 6112, 6116, 5143,
+ 5143, 6117, 5143, 5143, 5143, 6118, 5143, 5143, 5143, 6119,
+ 5143, 5143, 5143, 6120, 3568, 5143, 5143, 5143, 3576, 6121,
+ 3579, 5143, 5143, 5143, 3584, 5143, 3584, 5143, 3587, 3589,
+ 6122, 6123, 6124, 5143, 6125, 6126, 5143, 6127, 5143, 5143,
+
+ 6126, 6128, 5143, 6129, 5143, 5143, 5143, 3607, 5143, 3607,
+ 5143, 3610, 3612, 6130, 6131, 6132, 5143, 5143, 6133, 6134,
+ 5143, 6131, 6135, 5143, 3599, 5143, 3599, 3599, 3599, 6136,
+ 6137, 5143, 3632, 6138, 6139, 3632, 3632, 3636, 5143, 5143,
+ 3636, 3636, 5143, 3636, 6130, 3643, 3646, 3624, 3646, 5143,
+ 3643, 5143, 3643, 6140, 6139, 3653, 3653, 3647, 5143, 5143,
+ 6133, 6133, 5143, 5143, 5143, 5143, 3664, 6133, 3667, 5143,
+ 5143, 3670, 5143, 3672, 5143, 6141, 5143, 6142, 5143, 5143,
+ 5143, 3679, 5143, 3679, 3679, 3679, 6143, 6144, 5143, 3689,
+ 6145, 6144, 3689, 5143, 3689, 5143, 5143, 3693, 3693, 5143,
+
+ 6146, 5143, 3702, 6147, 6148, 3702, 3702, 5143, 5143, 3706,
+ 3706, 6146, 5143, 5143, 5143, 3700, 3716, 6149, 6150, 3700,
+ 5143, 3716, 5143, 5143, 3700, 3700, 6146, 5143, 6151, 5143,
+ 3730, 5143, 5143, 6152, 6152, 6153, 6152, 6154, 6154, 6155,
+ 6152, 6156, 6157, 6158, 5143, 6159, 6152, 6152, 6160, 3745,
+ 6161, 5143, 5143, 3753, 6162, 6162, 6163, 6164, 5143, 3759,
+ 6163, 5143, 6165, 3752, 5143, 3765, 6166, 6166, 5143, 6167,
+ 3769, 3769, 6168, 6162, 3765, 6166, 5143, 3777, 6166, 5143,
+ 6169, 5143, 5143, 6170, 3769, 3769, 6171, 6167, 6167, 5143,
+ 6168, 5143, 5143, 6172, 5143, 5143, 5143, 5143, 3798, 5143,
+
+ 5143, 3799, 6173, 3799, 5143, 3798, 5143, 6174, 5143, 5143,
+ 3810, 5143, 3811, 6175, 3811, 5143, 6175, 5143, 3818, 6175,
+ 5143, 3810, 5143, 6176, 5143, 5143, 5143, 6174, 5143, 6177,
+ 6178, 3816, 5143, 6179, 5143, 5143, 6177, 6180, 5143, 6181,
+ 6173, 5143, 5143, 3842, 3842, 5143, 5143, 3842, 5143, 3842,
+ 5143, 5143, 6182, 6183, 6184, 6185, 3821, 3857, 6175, 3821,
+ 3816, 3857, 3818, 5143, 3821, 5143, 3821, 3867, 3867, 3858,
+ 5143, 5143, 6186, 5143, 5143, 5143, 6182, 5143, 6187, 5143,
+ 6188, 6185, 5143, 6173, 5143, 5143, 6185, 5143, 5143, 3889,
+ 5143, 5143, 3889, 5143, 3889, 6189, 6190, 3894, 5143, 5143,
+
+ 3899, 5143, 3901, 5143, 6191, 6192, 5143, 6193, 5143, 5143,
+ 5143, 3911, 3894, 3911, 5143, 3914, 3916, 5143, 6194, 6191,
+ 6195, 3918, 5143, 5143, 6196, 5143, 3926, 6197, 5143, 6198,
+ 6190, 3927, 3927, 3926, 3929, 3927, 3924, 5143, 3926, 5143,
+ 3926, 6199, 6196, 3941, 3941, 3933, 5143, 6200, 5143, 5143,
+ 5143, 3950, 5143, 3952, 5143, 6201, 6202, 5143, 6203, 5143,
+ 6202, 3958, 6203, 5143, 5143, 5143, 5143, 5143, 6204, 5143,
+ 5143, 6205, 6206, 5143, 6202, 3958, 6207, 5143, 5143, 5143,
+ 6208, 6209, 6210, 6209, 6211, 5143, 6212, 6213, 6214, 6215,
+ 5143, 6216, 6209, 5143, 6217, 3994, 3994, 6218, 6217, 6219,
+
+ 5143, 6220, 5143, 5143, 6221, 4004, 4004, 6222, 6217, 6223,
+ 6217, 5143, 4012, 4004, 4004, 6224, 6217, 6221, 4003, 6222,
+ 5143, 5143, 4021, 6225, 4021, 6225, 6226, 6225, 5143, 6227,
+ 6228, 5143, 4032, 4032, 5143, 4032, 4034, 5143, 5143, 4034,
+ 5143, 4034, 5143, 6229, 6230, 4042, 4042, 4033, 4043, 5143,
+ 4043, 6230, 4043, 5143, 5143, 4054, 4054, 5143, 5143, 4054,
+ 5143, 4054, 5143, 5143, 6231, 5143, 4066, 4066, 5143, 4066,
+ 4068, 5143, 4068, 5143, 4068, 4075, 4075, 4067, 6232, 6233,
+ 6234, 6230, 5143, 4083, 4083, 5143, 5143, 4083, 5143, 4083,
+ 5143, 5143, 6235, 6236, 6233, 6235, 6237, 5143, 6238, 5143,
+
+ 6239, 5143, 6240, 5143, 6241, 4104, 4102, 5143, 4104, 5143,
+ 5143, 4104, 5143, 4104, 5143, 6242, 5143, 6243, 5143, 4119,
+ 6244, 6233, 4119, 5143, 4119, 5143, 5143, 4123, 4123, 4123,
+ 6245, 6246, 6247, 5143, 4102, 4134, 4134, 5143, 5143, 4134,
+ 5143, 4134, 5143, 5143, 6242, 6248, 6233, 6249, 5143, 6250,
+ 6251, 6247, 5143, 6252, 4117, 4117, 4149, 5143, 4117, 5143,
+ 4117, 6253, 6254, 6255, 5143, 6256, 6257, 5143, 6258, 5143,
+ 4170, 5143, 5143, 4171, 6259, 4171, 5143, 6252, 5143, 5143,
+ 4180, 5143, 4181, 6256, 4181, 6260, 6254, 5143, 5143, 4189,
+ 4189, 4160, 4189, 5143, 5143, 4191, 4191, 6261, 5143, 5143,
+
+ 6262, 5143, 5143, 6256, 5143, 4205, 5143, 5143, 4172, 5143,
+ 4208, 6259, 4211, 4211, 4208, 5143, 6263, 6264, 5143, 5143,
+ 6263, 6265, 6259, 5143, 5143, 4224, 5143, 5143, 4224, 5143,
+ 4224, 6266, 6256, 6259, 5143, 6256, 6267, 5143, 6268, 6269,
+ 6270, 6271, 6267, 6267, 6267, 4238, 6268, 6272, 6273, 5143,
+ 4250, 5143, 6274, 6275, 5143, 4255, 5143, 5143, 5143, 4259,
+ 4260, 6276, 6277, 5143, 6278, 6279, 5143, 6280, 5143, 4269,
+ 4269, 5143, 4269, 4271, 5143, 5143, 4271, 4271, 5143, 6281,
+ 6279, 4267, 6282, 4279, 4284, 4272, 4284, 5143, 4279, 5143,
+ 4279, 6283, 6284, 4291, 4291, 4285, 5143, 6285, 4297, 4267,
+
+ 5143, 4297, 5143, 5143, 4297, 5143, 4297, 5143, 5143, 4309,
+ 4309, 5143, 4309, 4311, 5143, 4311, 4311, 5143, 6281, 6279,
+ 4267, 6286, 6287, 5143, 6288, 5143, 6285, 4326, 5143, 4326,
+ 5143, 5143, 4326, 5143, 4326, 5143, 6289, 6279, 6287, 4324,
+ 6290, 5143, 6291, 5143, 6292, 6293, 5143, 6294, 5143, 6295,
+ 5143, 6296, 5143, 6297, 4353, 5143, 5143, 4353, 5143, 5143,
+ 4353, 5143, 4353, 5143, 6295, 4351, 6298, 6279, 4267, 6299,
+ 5143, 5143, 4371, 4371, 5143, 5143, 4371, 5143, 4371, 5143,
+ 5143, 5143, 6300, 6301, 6302, 6293, 4347, 6303, 5143, 6304,
+ 6305, 5143, 5143, 4393, 4393, 4393, 4395, 5143, 5143, 4395,
+
+ 5143, 4395, 5143, 6306, 6307, 4402, 4402, 4394, 5143, 6302,
+ 5143, 4411, 4411, 4411, 4413, 5143, 4413, 5143, 4413, 4419,
+ 4419, 4412, 6308, 6309, 6310, 5143, 5143, 6311, 5143, 6312,
+ 6313, 4403, 4432, 5143, 4432, 5143, 4403, 4401, 4403, 6314,
+ 6315, 4439, 4439, 4433, 5143, 5143, 4445, 5143, 5143, 4445,
+ 5143, 4445, 6316, 6315, 5143, 4455, 5143, 5143, 4455, 5143,
+ 4455, 6317, 5143, 6318, 5143, 6319, 6320, 5143, 6321, 6322,
+ 6315, 6323, 6324, 6325, 5143, 6326, 5143, 5143, 5143, 6327,
+ 6327, 5143, 4478, 5143, 6328, 5143, 6329, 5143, 4488, 6325,
+ 4475, 6330, 5143, 6331, 6332, 5143, 5143, 4497, 5143, 4497,
+
+ 5143, 4500, 4502, 6333, 6334, 5143, 6335, 6336, 5143, 5143,
+ 6337, 5143, 6336, 5143, 6337, 5143, 6338, 5143, 4518, 5143,
+ 4520, 5143, 4519, 6338, 4519, 5143, 4518, 5143, 6339, 6334,
+ 4506, 6340, 5143, 6337, 6339, 5143, 6341, 5143, 6337, 5143,
+ 6342, 5143, 4542, 5143, 4543, 5143, 4543, 6343, 6344, 6342,
+ 5143, 6345, 5143, 6334, 4506, 6340, 6333, 5143, 6346, 6347,
+ 4520, 6338, 4526, 5143, 4564, 4564, 4564, 4566, 5143, 5143,
+ 4566, 4566, 5143, 6333, 6338, 5143, 6348, 5143, 5143, 4578,
+ 4578, 5143, 5143, 4578, 5143, 4578, 5143, 5143, 4588, 4585,
+ 4588, 4585, 5143, 4585, 4585, 4587, 6333, 6349, 6350, 5143,
+
+ 6344, 6351, 6352, 6353, 5143, 6354, 4573, 4607, 5143, 4607,
+ 5143, 4573, 4573, 6355, 6353, 4605, 6356, 5143, 6357, 6358,
+ 5143, 6359, 5143, 6357, 6360, 6353, 4605, 6356, 5143, 5143,
+ 5143, 6361, 4631, 4633, 6362, 6361, 5143, 6363, 6364, 6361,
+ 6365, 6366, 6367, 5143, 6368, 4633, 6361, 6369, 5143, 6370,
+ 6371, 5143, 6372, 5143, 6373, 5143, 6374, 5143, 5143, 4658,
+ 4658, 5143, 5143, 4658, 4658, 5143, 5143, 6375, 5143, 6374,
+ 5143, 4671, 5143, 6376, 4671, 4671, 4675, 5143, 5143, 4675,
+ 5143, 4675, 5143, 4682, 4682, 4672, 4673, 4683, 5143, 4683,
+ 6376, 4683, 5143, 5143, 4693, 5143, 4695, 5143, 5143, 6377,
+
+ 5143, 6378, 5143, 5143, 4703, 5143, 4705, 6379, 6376, 5143,
+ 6380, 6381, 6379, 5143, 5143, 4715, 5143, 4716, 6382, 4716,
+ 5143, 6383, 6384, 6385, 6386, 5143, 6376, 4673, 6387, 5143,
+ 5143, 6388, 5143, 6389, 5143, 6390, 5143, 4735, 4737, 5143,
+ 5143, 4737, 5143, 4737, 6389, 4735, 6391, 4726, 6392, 6392,
+ 5143, 6393, 6393, 5143, 4754, 6394, 6395, 6396, 6395, 6397,
+ 5143, 6398, 6399, 5143, 6400, 5143, 4754, 4754, 6401, 6395,
+ 6402, 5143, 5143, 5143, 5143, 4774, 5143, 4776, 5143, 5143,
+ 5143, 4780, 4782, 4782, 5143, 5143, 4785, 5143, 4787, 5143,
+ 4790, 6403, 6404, 4790, 4790, 4794, 5143, 5143, 4794, 4794,
+
+ 5143, 6405, 4801, 4803, 5143, 4803, 5143, 4801, 5143, 4801,
+ 6406, 6404, 4810, 4810, 4804, 5143, 6407, 5143, 4772, 5143,
+ 4818, 6408, 4821, 5143, 5143, 5143, 4825, 5143, 4827, 4824,
+ 6409, 6410, 6411, 5143, 6412, 6413, 5143, 5143, 4838, 4838,
+ 4838, 4840, 5143, 4840, 5143, 4840, 4846, 4846, 4839, 5143,
+ 6408, 4772, 6408, 4821, 4818, 5143, 6414, 5143, 6415, 5143,
+ 4860, 4860, 5143, 5143, 4860, 4860, 5143, 5143, 6416, 5143,
+ 6417, 6418, 6419, 6420, 6421, 5143, 6422, 6423, 5143, 6424,
+ 5143, 6421, 6421, 4876, 6422, 4850, 6408, 5143, 6415, 5143,
+ 5143, 4890, 5143, 4892, 5143, 6415, 5143, 6425, 5143, 5143,
+
+ 5143, 4901, 5143, 4901, 5143, 4904, 4906, 6426, 6427, 4903,
+ 6428, 5143, 6429, 5143, 4914, 4914, 4850, 4914, 5143, 5143,
+ 4916, 5143, 4916, 6430, 6408, 4923, 4923, 4915, 5143, 6431,
+ 6432, 5143, 6433, 5143, 4934, 4935, 4934, 4934, 4937, 5143,
+ 4937, 4937, 6434, 6435, 6408, 5143, 5143, 6425, 5143, 5143,
+ 5143, 4949, 5143, 4949, 4949, 4949, 6436, 6437, 5143, 6438,
+ 5143, 4961, 6439, 6440, 6441, 6408, 6442, 5143, 6443, 6444,
+ 6445, 6446, 5143, 6447, 5143, 5143, 6442, 5143, 5143, 6448,
+ 5143, 5143, 4982, 4982, 5143, 4982, 5143, 5143, 4984, 4984,
+ 6449, 5143, 6450, 6450, 5143, 6451, 6408, 5143, 5143, 4949,
+
+ 5143, 5000, 5143, 5002, 5143, 6452, 5143, 5143, 6444, 5143,
+ 6453, 6454, 6455, 5143, 5014, 5014, 5143, 5143, 5014, 5143,
+ 5014, 5143, 5143, 6444, 6456, 6457, 5143, 6457, 5143, 6450,
+ 5143, 6458, 5143, 6459, 5143, 6460, 5143, 5143, 6461, 6455,
+ 5143, 6444, 5010, 6462, 5014, 6463, 5014, 5143, 5015, 5014,
+ 5017, 5018, 5014, 5143, 5021, 5022, 6444, 5010, 6464, 5143,
+ 6465, 6466, 6457, 5143, 5031, 5064, 5143, 5143, 5064, 5143,
+ 5064, 6467, 6461, 6468, 6455, 6469, 5022, 6457, 5143, 5143,
+ 5079, 5143, 5143, 5079, 5143, 5079, 6465, 5080, 6470, 5064,
+ 5031, 5066, 5067, 5143, 5064, 5143, 5071, 6471, 6472, 5143,
+
+ 6473, 6465, 5080, 6474, 5143, 6469, 5079, 6457, 5143, 5143,
+ 6475, 5010, 5022, 5143, 5022, 5143, 5022, 6465, 5143, 6476,
+ 5096, 5143, 5096, 5143, 5096, 5143, 5096, 5143, 6477, 5031,
+ 5066, 5094, 5064, 5143, 5071, 5143, 6478, 6479, 5064, 6480,
+ 6481, 6476, 0, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143
+ } ;
+
+static yyconst flex_int16_t yy_nxt[123505] =
+ { 0,
+ 20, 21, 22, 21, 23, 24, 25, 26, 27, 20,
+ 28, 29, 30, 20, 31, 32, 33, 34, 35, 36,
+ 20, 37, 20, 26, 26, 26, 26, 26, 26, 26,
+ 26, 38, 39, 40, 26, 41, 26, 42, 26, 43,
+ 26, 26, 26, 26, 26, 44, 26, 45, 46, 47,
+ 48, 51, 48, 49, 52, 5139, 48, 50, 48, 49,
+ 5077, 76, 76, 50, 62, 63, 62, 62, 62, 63,
+ 62, 62, 77, 77, 64, 102, 63, 103, 64, 65,
+ 63, 51, 709, 65, 52, 53, 53, 54, 53, 53,
+ 53, 53, 55, 53, 53, 53, 53, 53, 53, 53,
+
+ 53, 53, 53, 53, 53, 53, 53, 53, 55, 55,
+ 55, 55, 55, 55, 55, 55, 53, 53, 53, 55,
+ 55, 56, 57, 55, 58, 55, 55, 55, 55, 55,
+ 55, 55, 55, 53, 53, 67, 67, 67, 67, 67,
+ 67, 67, 67, 71, 71, 71, 72, 72, 71, 81,
+ 68, 81, 81, 74, 68, 97, 74, 78, 79, 78,
+ 80, 80, 79, 80, 80, 83, 84, 86, 104, 600,
+ 87, 709, 105, 73, 73, 73, 122, 128, 73, 123,
+ 129, 81, 69, 81, 81, 1432, 69, 95, 79, 95,
+ 96, 96, 79, 96, 96, 83, 84, 106, 106, 106,
+
+ 106, 1432, 107, 109, 110, 109, 109, 110, 110, 110,
+ 110, 106, 108, 112, 154, 110, 1432, 5143, 113, 110,
+ 155, 287, 113, 114, 114, 114, 114, 124, 124, 124,
+ 124, 116, 415, 135, 117, 116, 116, 118, 119, 120,
+ 121, 290, 126, 116, 136, 207, 1215, 137, 138, 79,
+ 138, 139, 421, 116, 106, 116, 139, 79, 139, 139,
+ 144, 144, 144, 144, 149, 79, 149, 150, 588, 157,
+ 145, 157, 157, 1197, 127, 146, 150, 79, 150, 150,
+ 106, 106, 106, 106, 161, 107, 161, 161, 163, 1457,
+ 109, 164, 109, 109, 122, 108, 171, 123, 128, 172,
+
+ 112, 129, 305, 135, 158, 168, 168, 168, 168, 192,
+ 159, 1432, 193, 435, 5143, 168, 168, 5143, 211, 600,
+ 170, 212, 162, 114, 114, 114, 114, 124, 124, 124,
+ 124, 116, 709, 1432, 117, 116, 116, 118, 119, 120,
+ 121, 218, 126, 116, 219, 183, 183, 183, 183, 224,
+ 207, 135, 110, 116, 1432, 116, 114, 114, 114, 114,
+ 185, 207, 136, 225, 116, 137, 226, 117, 116, 116,
+ 118, 119, 167, 121, 127, 433, 116, 138, 79, 138,
+ 139, 139, 79, 139, 139, 587, 116, 228, 116, 173,
+ 124, 174, 186, 149, 79, 149, 150, 175, 175, 175,
+
+ 175, 600, 898, 144, 144, 144, 144, 207, 175, 175,
+ 175, 175, 175, 145, 175, 1197, 898, 157, 146, 157,
+ 157, 175, 121, 121, 121, 121, 150, 79, 150, 150,
+ 121, 785, 694, 117, 121, 121, 177, 178, 179, 121,
+ 308, 161, 121, 161, 161, 168, 168, 168, 168, 207,
+ 247, 453, 121, 106, 121, 168, 168, 898, 709, 709,
+ 170, 183, 183, 183, 183, 237, 659, 237, 237, 183,
+ 183, 183, 183, 695, 287, 238, 185, 238, 238, 162,
+ 114, 114, 114, 114, 185, 415, 252, 259, 116, 114,
+ 180, 117, 116, 116, 118, 119, 167, 121, 264, 898,
+
+ 116, 187, 243, 268, 243, 243, 144, 354, 186, 600,
+ 116, 270, 116, 173, 270, 209, 186, 237, 495, 237,
+ 237, 210, 210, 210, 210, 265, 265, 265, 265, 709,
+ 600, 207, 210, 210, 210, 210, 210, 244, 210, 274,
+ 266, 274, 274, 245, 290, 210, 121, 121, 121, 121,
+ 243, 709, 243, 243, 121, 421, 694, 117, 121, 121,
+ 177, 178, 217, 121, 280, 282, 121, 206, 168, 284,
+ 286, 259, 213, 121, 287, 659, 121, 659, 121, 121,
+ 121, 121, 121, 289, 562, 264, 183, 121, 290, 659,
+ 117, 121, 121, 177, 178, 179, 121, 659, 898, 121,
+
+ 265, 265, 265, 265, 292, 295, 327, 293, 230, 121,
+ 785, 121, 220, 270, 221, 266, 270, 504, 305, 336,
+ 222, 222, 222, 222, 299, 298, 299, 299, 709, 435,
+ 513, 222, 222, 222, 222, 222, 274, 222, 274, 274,
+ 301, 600, 301, 301, 222, 121, 121, 121, 121, 280,
+ 709, 307, 305, 121, 248, 1432, 117, 121, 121, 177,
+ 178, 217, 121, 284, 310, 121, 308, 255, 315, 295,
+ 307, 260, 327, 336, 381, 121, 1197, 121, 220, 299,
+ 253, 299, 299, 1197, 308, 518, 254, 254, 254, 254,
+ 301, 310, 301, 301, 345, 453, 344, 254, 254, 254,
+
+ 254, 254, 243, 254, 243, 243, 351, 537, 1432, 352,
+ 254, 273, 273, 1197, 273, 273, 273, 273, 100, 273,
+ 273, 273, 273, 273, 273, 273, 273, 273, 100, 273,
+ 273, 273, 273, 273, 100, 100, 100, 100, 100, 100,
+ 100, 100, 273, 273, 273, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 273,
+ 273, 180, 287, 287, 287, 287, 180, 180, 311, 180,
+ 180, 180, 180, 180, 312, 180, 180, 313, 180, 180,
+ 180, 180, 180, 180, 311, 311, 311, 311, 311, 311,
+ 311, 311, 180, 180, 180, 311, 311, 311, 311, 311,
+
+ 311, 311, 311, 311, 311, 311, 311, 311, 311, 180,
+ 180, 187, 290, 290, 290, 290, 187, 187, 316, 187,
+ 187, 187, 187, 187, 188, 187, 187, 317, 187, 187,
+ 187, 187, 187, 187, 316, 316, 316, 316, 316, 316,
+ 316, 316, 187, 187, 187, 316, 316, 316, 316, 316,
+ 316, 316, 316, 316, 316, 316, 316, 316, 316, 318,
+ 187, 319, 319, 319, 319, 331, 319, 331, 331, 332,
+ 315, 319, 319, 353, 659, 659, 321, 322, 319, 183,
+ 305, 305, 305, 305, 333, 334, 358, 363, 366, 359,
+ 364, 265, 207, 369, 375, 335, 369, 376, 393, 259,
+
+ 418, 394, 287, 419, 264, 659, 898, 290, 323, 213,
+ 308, 308, 308, 308, 213, 213, 337, 213, 338, 213,
+ 213, 339, 340, 338, 341, 342, 343, 344, 213, 213,
+ 338, 213, 337, 337, 337, 337, 337, 337, 337, 337,
+ 338, 213, 338, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 337, 337, 213, 213, 346,
+ 428, 345, 709, 324, 331, 181, 331, 331, 332, 346,
+ 429, 280, 551, 430, 305, 346, 346, 346, 346, 346,
+ 346, 346, 346, 333, 600, 709, 346, 346, 346, 346,
+ 346, 346, 346, 346, 346, 346, 346, 346, 346, 346,
+
+ 223, 347, 347, 347, 347, 223, 223, 348, 223, 223,
+ 223, 223, 223, 349, 223, 223, 350, 223, 223, 223,
+ 223, 223, 223, 348, 348, 348, 348, 348, 348, 348,
+ 348, 223, 223, 223, 348, 348, 348, 348, 348, 348,
+ 348, 348, 348, 348, 348, 348, 348, 348, 223, 223,
+ 187, 354, 354, 354, 354, 187, 187, 355, 187, 187,
+ 187, 187, 187, 188, 187, 187, 356, 355, 187, 187,
+ 187, 187, 187, 355, 355, 355, 355, 355, 355, 355,
+ 355, 187, 187, 187, 355, 355, 355, 355, 355, 355,
+ 355, 355, 355, 355, 355, 355, 355, 355, 357, 187,
+
+ 319, 319, 319, 319, 327, 327, 327, 327, 1432, 436,
+ 319, 319, 437, 1432, 367, 321, 231, 319, 373, 368,
+ 373, 373, 110, 110, 110, 110, 353, 353, 353, 353,
+ 207, 1197, 440, 284, 412, 441, 308, 413, 261, 319,
+ 562, 416, 354, 354, 354, 354, 124, 323, 319, 319,
+ 319, 319, 461, 261, 188, 462, 374, 356, 319, 319,
+ 110, 347, 600, 321, 362, 319, 373, 478, 373, 373,
+ 479, 484, 487, 417, 485, 488, 489, 492, 207, 490,
+ 493, 501, 428, 295, 319, 502, 327, 307, 709, 357,
+ 336, 497, 265, 265, 1197, 323, 319, 319, 319, 319,
+
+ 1197, 785, 498, 509, 374, 499, 319, 319, 114, 384,
+ 898, 321, 322, 319, 510, 515, 287, 511, 516, 520,
+ 523, 534, 521, 524, 535, 540, 310, 415, 541, 345,
+ 287, 315, 564, 580, 353, 354, 424, 602, 898, 284,
+ 381, 415, 344, 323, 248, 336, 336, 336, 336, 248,
+ 377, 248, 248, 248, 248, 336, 336, 249, 248, 248,
+ 378, 248, 377, 248, 248, 248, 248, 377, 377, 377,
+ 377, 377, 377, 377, 377, 248, 248, 248, 377, 377,
+ 377, 377, 377, 377, 377, 377, 377, 377, 377, 377,
+ 377, 377, 377, 248, 379, 409, 353, 354, 640, 658,
+
+ 661, 610, 659, 662, 380, 785, 555, 560, 495, 414,
+ 379, 379, 379, 379, 379, 379, 379, 379, 785, 1197,
+ 1197, 379, 379, 379, 379, 379, 379, 379, 379, 379,
+ 379, 379, 379, 379, 379, 213, 381, 381, 381, 381,
+ 213, 382, 213, 213, 213, 213, 381, 381, 214, 213,
+ 213, 383, 213, 382, 213, 213, 213, 213, 382, 382,
+ 382, 382, 382, 382, 382, 382, 213, 213, 213, 382,
+ 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
+ 382, 382, 382, 382, 213, 251, 384, 384, 384, 384,
+ 251, 251, 385, 251, 386, 251, 251, 387, 388, 386,
+
+ 389, 390, 391, 392, 251, 251, 386, 251, 385, 385,
+ 385, 385, 385, 385, 385, 385, 386, 251, 386, 385,
+ 385, 385, 385, 385, 385, 385, 385, 385, 385, 385,
+ 385, 385, 385, 251, 251, 395, 569, 396, 290, 188,
+ 327, 898, 305, 397, 397, 397, 397, 570, 573, 421,
+ 571, 504, 584, 435, 397, 397, 397, 397, 397, 574,
+ 397, 664, 420, 585, 665, 898, 586, 397, 213, 344,
+ 344, 344, 344, 213, 213, 398, 213, 344, 213, 213,
+ 339, 399, 344, 400, 401, 402, 344, 213, 213, 344,
+ 213, 398, 398, 398, 398, 398, 398, 398, 398, 344,
+
+ 213, 344, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 398, 398, 398, 398, 398, 213, 213, 255, 345,
+ 345, 345, 345, 255, 255, 403, 255, 345, 255, 255,
+ 404, 405, 345, 406, 407, 408, 345, 255, 255, 345,
+ 255, 403, 403, 403, 403, 403, 403, 403, 403, 345,
+ 255, 345, 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 255, 255, 180, 287,
+ 287, 287, 287, 180, 180, 311, 180, 180, 180, 180,
+ 180, 312, 180, 180, 313, 180, 180, 180, 180, 180,
+ 180, 311, 311, 311, 311, 311, 311, 311, 311, 180,
+
+ 180, 180, 311, 311, 311, 311, 311, 311, 311, 311,
+ 311, 311, 311, 311, 311, 311, 180, 180, 258, 409,
+ 409, 409, 409, 258, 258, 410, 258, 258, 258, 258,
+ 258, 411, 258, 258, 313, 258, 258, 258, 258, 258,
+ 258, 410, 410, 410, 410, 410, 410, 410, 410, 258,
+ 258, 258, 410, 410, 410, 410, 410, 410, 410, 410,
+ 410, 410, 410, 410, 410, 410, 258, 258, 319, 319,
+ 319, 319, 580, 709, 505, 680, 505, 505, 319, 319,
+ 785, 600, 600, 321, 423, 319, 207, 505, 709, 505,
+ 505, 305, 305, 305, 305, 600, 334, 590, 336, 207,
+
+ 1197, 381, 308, 207, 686, 659, 335, 687, 591, 513,
+ 596, 434, 518, 453, 308, 323, 319, 319, 319, 319,
+ 708, 597, 506, 709, 598, 453, 319, 319, 507, 612,
+ 442, 321, 362, 319, 511, 592, 511, 511, 562, 593,
+ 613, 618, 121, 614, 452, 562, 344, 392, 468, 594,
+ 562, 121, 711, 634, 659, 712, 635, 537, 637, 642,
+ 345, 638, 644, 323, 395, 645, 438, 471, 287, 287,
+ 562, 551, 439, 439, 439, 439, 183, 409, 647, 649,
+ 415, 648, 650, 439, 439, 439, 439, 439, 555, 439,
+ 724, 651, 771, 725, 785, 772, 439, 283, 442, 442,
+
+ 442, 442, 283, 283, 443, 283, 444, 283, 283, 445,
+ 446, 444, 447, 342, 448, 449, 283, 283, 444, 283,
+ 443, 443, 443, 443, 443, 443, 443, 443, 444, 283,
+ 444, 443, 443, 443, 443, 443, 443, 443, 443, 443,
+ 443, 443, 443, 443, 443, 283, 283, 114, 114, 114,
+ 114, 785, 121, 787, 110, 116, 468, 214, 117, 450,
+ 116, 118, 451, 120, 121, 484, 114, 116, 485, 110,
+ 110, 110, 110, 709, 353, 654, 354, 116, 709, 116,
+ 454, 110, 290, 327, 113, 560, 655, 495, 661, 656,
+ 455, 561, 600, 421, 504, 305, 454, 454, 454, 454,
+
+ 454, 454, 454, 454, 168, 144, 435, 454, 454, 454,
+ 454, 454, 454, 454, 454, 454, 454, 454, 454, 454,
+ 454, 251, 392, 392, 392, 392, 251, 251, 456, 251,
+ 392, 251, 251, 387, 457, 392, 458, 459, 460, 392,
+ 251, 251, 392, 251, 456, 456, 456, 456, 456, 456,
+ 456, 456, 392, 251, 392, 456, 456, 456, 456, 456,
+ 456, 456, 456, 456, 456, 456, 456, 456, 456, 251,
+ 251, 463, 667, 464, 573, 425, 336, 659, 381, 465,
+ 465, 465, 465, 668, 124, 574, 494, 513, 673, 518,
+ 465, 465, 465, 465, 465, 678, 465, 661, 679, 817,
+
+ 812, 659, 354, 465, 255, 345, 345, 345, 345, 255,
+ 255, 466, 255, 345, 255, 255, 404, 405, 345, 406,
+ 407, 467, 345, 255, 255, 345, 255, 466, 466, 466,
+ 466, 466, 466, 466, 466, 345, 255, 345, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
+ 466, 466, 255, 255, 255, 468, 468, 468, 468, 255,
+ 469, 255, 255, 255, 255, 468, 468, 256, 255, 255,
+ 470, 255, 469, 255, 255, 255, 255, 469, 469, 469,
+ 469, 469, 469, 469, 469, 255, 255, 255, 469, 469,
+ 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
+
+ 469, 469, 469, 255, 285, 471, 471, 471, 471, 285,
+ 285, 472, 285, 471, 285, 285, 473, 474, 471, 475,
+ 476, 477, 471, 285, 285, 471, 285, 472, 472, 472,
+ 472, 472, 472, 472, 472, 471, 285, 471, 472, 472,
+ 472, 472, 472, 472, 472, 472, 472, 472, 472, 472,
+ 472, 472, 285, 285, 403, 562, 562, 183, 697, 106,
+ 697, 697, 785, 785, 408, 124, 124, 124, 124, 114,
+ 403, 403, 403, 403, 403, 403, 403, 403, 600, 600,
+ 126, 403, 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 480, 698, 481, 327, 327,
+
+ 327, 327, 168, 482, 482, 482, 482, 106, 367, 144,
+ 231, 689, 127, 368, 482, 482, 482, 482, 482, 325,
+ 482, 836, 690, 428, 837, 503, 502, 482, 180, 287,
+ 287, 287, 287, 180, 180, 311, 180, 180, 180, 180,
+ 180, 312, 180, 180, 313, 180, 180, 180, 180, 180,
+ 180, 311, 311, 311, 311, 311, 311, 311, 311, 180,
+ 180, 180, 311, 311, 311, 311, 311, 311, 311, 311,
+ 311, 311, 311, 311, 311, 311, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 346, 180, 180, 180, 180,
+ 180, 181, 180, 180, 180, 346, 180, 180, 180, 180,
+
+ 180, 346, 346, 346, 346, 346, 346, 346, 346, 180,
+ 180, 180, 346, 346, 346, 346, 346, 346, 346, 346,
+ 346, 346, 346, 346, 346, 346, 180, 180, 258, 409,
+ 409, 409, 409, 258, 258, 410, 258, 258, 258, 258,
+ 258, 411, 258, 258, 483, 258, 258, 258, 258, 258,
+ 258, 410, 410, 410, 410, 410, 410, 410, 410, 258,
+ 258, 258, 410, 410, 410, 410, 410, 410, 410, 410,
+ 410, 410, 410, 410, 410, 410, 258, 258, 319, 319,
+ 319, 319, 106, 124, 354, 354, 354, 354, 319, 319,
+ 124, 183, 562, 321, 423, 319, 188, 590, 106, 356,
+
+ 586, 691, 586, 586, 305, 305, 305, 305, 591, 334,
+ 692, 696, 308, 344, 711, 693, 207, 599, 846, 335,
+ 562, 106, 344, 453, 537, 323, 319, 319, 319, 319,
+ 121, 357, 699, 537, 1456, 700, 319, 319, 785, 702,
+ 735, 321, 423, 319, 106, 106, 106, 106, 114, 107,
+ 703, 736, 308, 512, 517, 600, 442, 114, 449, 108,
+ 600, 425, 124, 744, 468, 789, 745, 618, 520, 777,
+ 746, 521, 536, 323, 337, 642, 790, 345, 345, 743,
+ 711, 261, 341, 854, 343, 106, 562, 287, 551, 551,
+ 337, 337, 337, 337, 337, 337, 337, 337, 415, 562,
+
+ 214, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 341, 542, 380, 409, 1216,
+ 353, 114, 493, 379, 379, 379, 379, 794, 805, 555,
+ 550, 560, 651, 819, 379, 379, 379, 379, 379, 806,
+ 379, 875, 559, 885, 381, 600, 886, 379, 213, 381,
+ 381, 381, 381, 213, 382, 213, 213, 213, 213, 381,
+ 381, 214, 213, 213, 383, 213, 382, 213, 213, 213,
+ 213, 382, 382, 382, 382, 382, 382, 382, 382, 213,
+ 213, 213, 382, 382, 382, 382, 382, 382, 382, 382,
+ 382, 382, 382, 382, 382, 382, 382, 213, 283, 442,
+
+ 442, 442, 442, 283, 283, 443, 283, 444, 283, 283,
+ 445, 446, 444, 447, 519, 448, 449, 283, 283, 444,
+ 283, 443, 443, 443, 443, 443, 443, 443, 443, 444,
+ 283, 444, 443, 443, 443, 443, 443, 443, 443, 443,
+ 443, 443, 443, 443, 443, 443, 283, 283, 395, 354,
+ 396, 667, 183, 290, 425, 562, 397, 397, 397, 397,
+ 495, 124, 668, 822, 421, 820, 823, 397, 397, 397,
+ 397, 397, 828, 397, 945, 829, 958, 344, 110, 898,
+ 397, 213, 344, 344, 344, 344, 213, 213, 398, 213,
+ 344, 213, 213, 339, 399, 344, 400, 401, 402, 344,
+
+ 213, 213, 344, 213, 398, 398, 398, 398, 398, 398,
+ 398, 398, 344, 213, 344, 398, 398, 398, 398, 398,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 213,
+ 213, 454, 256, 960, 982, 502, 961, 983, 325, 319,
+ 425, 455, 656, 807, 656, 656, 839, 454, 454, 454,
+ 454, 454, 454, 454, 454, 261, 214, 808, 454, 454,
+ 454, 454, 454, 454, 454, 454, 454, 454, 454, 454,
+ 454, 454, 463, 327, 525, 327, 327, 327, 327, 249,
+ 526, 526, 526, 526, 504, 367, 432, 231, 689, 809,
+ 368, 526, 526, 526, 526, 526, 431, 526, 990, 690,
+
+ 993, 991, 840, 493, 526, 283, 449, 449, 449, 449,
+ 283, 283, 527, 283, 449, 283, 283, 445, 528, 449,
+ 529, 401, 530, 449, 283, 283, 449, 283, 527, 527,
+ 527, 527, 527, 527, 527, 527, 449, 283, 449, 527,
+ 527, 527, 527, 527, 527, 527, 527, 527, 527, 527,
+ 527, 527, 527, 283, 283, 114, 114, 114, 114, 659,
+ 659, 659, 659, 116, 231, 106, 117, 531, 116, 118,
+ 532, 120, 121, 305, 810, 116, 144, 144, 144, 144,
+ 325, 144, 336, 516, 435, 116, 145, 116, 463, 319,
+ 464, 146, 841, 513, 877, 842, 465, 465, 465, 465,
+
+ 505, 1456, 505, 505, 702, 168, 811, 465, 465, 465,
+ 465, 465, 207, 465, 1010, 703, 848, 1011, 847, 849,
+ 465, 255, 345, 345, 345, 345, 255, 255, 466, 255,
+ 345, 255, 255, 404, 405, 345, 406, 407, 467, 345,
+ 255, 255, 345, 255, 466, 466, 466, 466, 466, 466,
+ 466, 466, 345, 255, 345, 466, 466, 466, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 255,
+ 255, 480, 1015, 538, 1036, 1016, 381, 1037, 308, 539,
+ 539, 539, 539, 696, 843, 696, 696, 518, 844, 453,
+ 539, 539, 539, 539, 539, 435, 539, 1056, 845, 1068,
+
+ 1057, 425, 516, 539, 255, 468, 468, 468, 468, 255,
+ 469, 255, 255, 255, 255, 468, 468, 256, 255, 255,
+ 470, 255, 469, 255, 255, 255, 255, 469, 469, 469,
+ 469, 469, 469, 469, 469, 255, 255, 255, 469, 469,
+ 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
+ 469, 469, 469, 255, 403, 735, 535, 344, 1079, 630,
+ 630, 468, 632, 632, 408, 188, 736, 947, 537, 890,
+ 403, 403, 403, 403, 403, 403, 403, 403, 265, 325,
+ 188, 403, 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 309, 542, 542, 542, 542,
+
+ 309, 309, 543, 309, 542, 309, 309, 544, 545, 542,
+ 546, 407, 547, 542, 309, 309, 542, 309, 543, 543,
+ 543, 543, 543, 543, 543, 543, 542, 309, 542, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 309, 309, 121, 121, 121, 121, 659,
+ 659, 659, 659, 121, 261, 256, 117, 548, 121, 177,
+ 549, 179, 121, 468, 810, 121, 697, 106, 697, 697,
+ 168, 442, 345, 630, 642, 121, 632, 121, 480, 114,
+ 481, 893, 618, 551, 894, 746, 482, 482, 482, 482,
+ 914, 114, 249, 915, 303, 344, 811, 482, 482, 482,
+
+ 482, 482, 918, 482, 698, 919, 932, 328, 231, 933,
+ 482, 180, 287, 287, 287, 287, 180, 180, 311, 180,
+ 180, 180, 180, 180, 552, 180, 180, 553, 180, 180,
+ 180, 180, 180, 180, 311, 311, 311, 311, 311, 311,
+ 311, 311, 180, 180, 180, 311, 311, 311, 311, 311,
+ 311, 311, 311, 311, 311, 311, 311, 311, 311, 180,
+ 180, 182, 488, 556, 488, 488, 182, 182, 557, 182,
+ 182, 182, 182, 182, 488, 182, 182, 558, 182, 182,
+ 182, 182, 182, 182, 557, 557, 557, 557, 557, 557,
+ 557, 557, 182, 182, 182, 557, 557, 557, 557, 557,
+
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 182,
+ 182, 260, 493, 493, 493, 493, 260, 260, 565, 260,
+ 260, 260, 260, 260, 261, 260, 260, 566, 260, 260,
+ 260, 260, 260, 260, 565, 565, 565, 565, 565, 565,
+ 565, 565, 260, 260, 260, 565, 565, 565, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 567,
+ 260, 187, 290, 290, 290, 290, 187, 187, 316, 187,
+ 187, 187, 187, 187, 188, 187, 187, 317, 187, 187,
+ 187, 187, 187, 187, 316, 316, 316, 316, 316, 316,
+ 316, 316, 187, 187, 187, 316, 316, 316, 316, 316,
+
+ 316, 316, 316, 316, 316, 316, 316, 316, 316, 318,
+ 187, 189, 499, 575, 499, 499, 189, 189, 576, 189,
+ 189, 189, 189, 189, 189, 189, 189, 577, 189, 189,
+ 189, 189, 189, 189, 576, 576, 576, 576, 576, 576,
+ 576, 576, 189, 189, 189, 576, 576, 576, 576, 576,
+ 576, 576, 576, 576, 576, 576, 576, 576, 576, 578,
+ 189, 324, 502, 502, 502, 502, 324, 324, 581, 324,
+ 324, 324, 324, 324, 325, 324, 324, 582, 324, 324,
+ 324, 324, 324, 324, 581, 581, 581, 581, 581, 581,
+ 581, 581, 324, 324, 324, 581, 581, 581, 581, 581,
+
+ 581, 581, 581, 581, 581, 581, 581, 581, 581, 324,
+ 324, 248, 516, 516, 516, 516, 248, 248, 603, 248,
+ 604, 248, 248, 605, 606, 604, 607, 608, 609, 610,
+ 248, 248, 604, 248, 603, 603, 603, 603, 603, 603,
+ 603, 603, 604, 248, 604, 603, 603, 603, 603, 603,
+ 603, 603, 603, 603, 603, 603, 603, 603, 603, 248,
+ 248, 213, 308, 308, 308, 308, 213, 213, 337, 213,
+ 338, 213, 213, 339, 615, 338, 341, 616, 343, 344,
+ 213, 213, 338, 213, 337, 337, 337, 337, 337, 337,
+ 337, 337, 338, 213, 338, 337, 337, 337, 337, 337,
+
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 213,
+ 213, 215, 524, 619, 524, 524, 215, 215, 620, 215,
+ 621, 215, 215, 622, 621, 621, 623, 624, 625, 626,
+ 215, 215, 621, 215, 620, 620, 620, 620, 620, 620,
+ 620, 620, 621, 215, 621, 620, 620, 620, 620, 620,
+ 620, 620, 620, 620, 620, 620, 620, 620, 620, 215,
+ 215, 213, 344, 344, 344, 344, 213, 213, 454, 213,
+ 344, 213, 213, 339, 399, 344, 463, 401, 525, 344,
+ 213, 213, 344, 213, 526, 526, 526, 526, 454, 454,
+ 454, 454, 344, 213, 344, 526, 526, 526, 526, 526,
+
+ 454, 526, 454, 454, 454, 454, 454, 454, 526, 213,
+ 213, 400, 449, 455, 168, 168, 168, 168, 265, 454,
+ 454, 454, 454, 777, 168, 168, 948, 121, 963, 170,
+ 454, 454, 454, 454, 454, 325, 454, 534, 634, 964,
+ 535, 635, 641, 454, 283, 449, 449, 449, 449, 283,
+ 283, 527, 283, 449, 283, 283, 445, 528, 449, 529,
+ 627, 530, 449, 283, 283, 449, 283, 527, 527, 527,
+ 527, 527, 527, 527, 527, 449, 283, 449, 527, 527,
+ 527, 527, 527, 527, 527, 527, 527, 527, 527, 527,
+ 527, 527, 283, 283, 398, 261, 960, 960, 353, 784,
+
+ 1147, 256, 214, 249, 402, 674, 669, 674, 674, 560,
+ 398, 398, 398, 398, 398, 398, 398, 398, 207, 304,
+ 676, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 398, 398, 398, 398, 463, 345, 464, 493, 303,
+ 354, 302, 290, 465, 465, 465, 465, 965, 542, 819,
+ 966, 495, 677, 421, 465, 465, 465, 465, 465, 794,
+ 465, 1173, 967, 1175, 1174, 296, 1176, 465, 255, 535,
+ 535, 535, 535, 255, 255, 628, 255, 629, 255, 255,
+ 404, 630, 629, 631, 632, 633, 345, 255, 255, 629,
+ 255, 628, 628, 628, 628, 628, 628, 628, 628, 629,
+
+ 255, 629, 628, 628, 628, 628, 628, 628, 628, 628,
+ 628, 628, 628, 628, 628, 628, 255, 255, 255, 345,
+ 345, 345, 345, 255, 255, 466, 255, 345, 255, 255,
+ 404, 405, 345, 480, 407, 538, 345, 255, 255, 345,
+ 255, 539, 539, 539, 539, 466, 466, 466, 466, 345,
+ 255, 345, 539, 539, 539, 539, 539, 466, 539, 466,
+ 466, 466, 466, 466, 466, 539, 255, 255, 403, 121,
+ 493, 681, 564, 231, 661, 1177, 406, 986, 408, 188,
+ 644, 819, 1018, 645, 403, 403, 403, 403, 403, 403,
+ 403, 403, 183, 261, 181, 403, 403, 403, 403, 403,
+
+ 403, 403, 403, 403, 403, 403, 403, 403, 403, 406,
+ 287, 467, 805, 121, 502, 256, 327, 466, 466, 466,
+ 466, 649, 183, 806, 650, 839, 979, 504, 466, 466,
+ 466, 466, 466, 980, 466, 580, 981, 1199, 680, 214,
+ 681, 466, 255, 468, 468, 468, 468, 255, 469, 255,
+ 255, 255, 255, 468, 468, 256, 255, 255, 470, 255,
+ 469, 255, 255, 255, 255, 469, 469, 469, 469, 469,
+ 469, 469, 469, 255, 255, 255, 469, 469, 469, 469,
+ 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
+ 469, 255, 309, 542, 542, 542, 542, 309, 309, 543,
+
+ 309, 542, 309, 309, 544, 545, 542, 546, 643, 547,
+ 542, 309, 309, 542, 309, 543, 543, 543, 543, 543,
+ 543, 543, 543, 542, 309, 542, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 309, 309, 480, 995, 481, 290, 168, 336, 249, 516,
+ 482, 482, 482, 482, 996, 1020, 1006, 674, 513, 1007,
+ 877, 482, 482, 482, 482, 482, 1021, 482, 207, 1022,
+ 1030, 106, 1030, 1030, 482, 258, 409, 409, 409, 409,
+ 258, 258, 410, 258, 258, 258, 258, 258, 411, 258,
+ 258, 483, 258, 258, 258, 258, 258, 258, 410, 410,
+
+ 410, 410, 410, 410, 410, 410, 258, 258, 258, 410,
+ 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
+ 410, 410, 410, 258, 258, 182, 182, 110, 182, 182,
+ 182, 182, 652, 182, 182, 182, 182, 182, 182, 182,
+ 182, 182, 652, 182, 182, 182, 182, 182, 652, 652,
+ 652, 652, 652, 652, 652, 652, 182, 182, 182, 652,
+ 652, 652, 652, 652, 652, 652, 652, 652, 652, 652,
+ 652, 652, 652, 182, 182, 260, 353, 353, 353, 353,
+ 260, 260, 663, 260, 260, 260, 260, 260, 261, 260,
+ 260, 416, 663, 260, 260, 260, 260, 260, 663, 663,
+
+ 663, 663, 663, 663, 663, 663, 260, 260, 260, 663,
+ 663, 663, 663, 663, 663, 663, 663, 663, 663, 663,
+ 663, 663, 663, 417, 260, 262, 571, 669, 571, 571,
+ 262, 262, 670, 262, 262, 262, 262, 262, 262, 262,
+ 262, 671, 262, 262, 262, 262, 262, 262, 670, 670,
+ 670, 670, 670, 670, 670, 670, 262, 262, 262, 670,
+ 670, 670, 670, 670, 670, 670, 670, 670, 670, 670,
+ 670, 670, 670, 672, 262, 187, 290, 290, 290, 290,
+ 187, 187, 316, 187, 187, 187, 187, 187, 188, 187,
+ 187, 317, 187, 187, 187, 187, 187, 187, 316, 316,
+
+ 316, 316, 316, 316, 316, 316, 187, 187, 187, 316,
+ 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
+ 316, 316, 316, 318, 187, 189, 674, 669, 674, 674,
+ 189, 189, 675, 189, 189, 189, 189, 189, 189, 189,
+ 189, 676, 675, 189, 189, 189, 189, 189, 675, 675,
+ 675, 675, 675, 675, 675, 675, 189, 189, 189, 675,
+ 675, 675, 675, 675, 675, 675, 675, 675, 675, 675,
+ 675, 675, 675, 677, 189, 324, 681, 681, 681, 681,
+ 324, 324, 682, 324, 324, 324, 681, 681, 325, 324,
+ 324, 683, 684, 681, 324, 324, 324, 324, 682, 682,
+
+ 682, 682, 682, 682, 682, 682, 324, 324, 324, 682,
+ 682, 682, 682, 682, 682, 682, 682, 682, 682, 682,
+ 682, 682, 682, 685, 324, 248, 336, 336, 336, 336,
+ 248, 377, 248, 248, 248, 248, 336, 336, 249, 248,
+ 248, 378, 248, 377, 248, 248, 248, 248, 377, 377,
+ 377, 377, 377, 377, 377, 377, 248, 248, 248, 377,
+ 377, 377, 377, 377, 377, 377, 377, 377, 377, 377,
+ 377, 377, 377, 377, 248, 250, 598, 704, 598, 598,
+ 250, 705, 250, 250, 250, 250, 598, 598, 250, 250,
+ 250, 706, 250, 705, 250, 250, 250, 250, 705, 705,
+
+ 705, 705, 705, 705, 705, 705, 250, 250, 250, 705,
+ 705, 705, 705, 705, 705, 705, 705, 705, 705, 705,
+ 705, 705, 705, 705, 250, 248, 516, 516, 516, 516,
+ 248, 248, 713, 248, 604, 248, 248, 605, 606, 604,
+ 607, 608, 714, 610, 248, 248, 604, 248, 713, 713,
+ 713, 713, 713, 713, 713, 713, 604, 248, 604, 713,
+ 713, 713, 713, 713, 713, 713, 713, 713, 713, 713,
+ 713, 713, 713, 248, 248, 603, 305, 610, 381, 1219,
+ 1223, 602, 1220, 1224, 1082, 609, 278, 1028, 1081, 518,
+ 1029, 603, 603, 603, 603, 603, 603, 603, 603, 277,
+
+ 276, 275, 603, 603, 603, 603, 603, 603, 603, 603,
+ 603, 603, 603, 603, 603, 603, 281, 715, 715, 715,
+ 715, 281, 281, 716, 281, 717, 281, 281, 718, 719,
+ 717, 720, 721, 722, 723, 281, 281, 717, 281, 716,
+ 716, 716, 716, 716, 716, 716, 716, 717, 281, 717,
+ 716, 716, 716, 716, 716, 716, 716, 716, 716, 716,
+ 716, 716, 716, 716, 281, 281, 726, 516, 727, 840,
+ 1023, 840, 840, 271, 728, 728, 728, 728, 877, 1024,
+ 269, 504, 114, 715, 1025, 728, 728, 728, 728, 728,
+ 191, 728, 1243, 914, 1070, 1244, 915, 749, 728, 248,
+
+ 610, 610, 610, 610, 248, 248, 729, 248, 610, 248,
+ 248, 605, 730, 610, 731, 732, 733, 610, 248, 248,
+ 610, 248, 729, 729, 729, 729, 729, 729, 729, 729,
+ 610, 248, 610, 729, 729, 729, 729, 729, 729, 729,
+ 729, 729, 729, 729, 729, 729, 729, 248, 248, 213,
+ 381, 381, 381, 381, 213, 382, 213, 213, 213, 213,
+ 381, 381, 214, 213, 213, 383, 213, 382, 213, 213,
+ 213, 213, 382, 382, 382, 382, 382, 382, 382, 382,
+ 213, 213, 213, 382, 382, 382, 382, 382, 382, 382,
+ 382, 382, 382, 382, 382, 382, 382, 382, 213, 250,
+
+ 614, 709, 614, 614, 250, 250, 737, 250, 738, 250,
+ 250, 739, 738, 738, 740, 741, 742, 743, 250, 250,
+ 738, 250, 737, 737, 737, 737, 737, 737, 737, 737,
+ 738, 250, 738, 737, 737, 737, 737, 737, 737, 737,
+ 737, 737, 737, 737, 737, 737, 737, 250, 250, 283,
+ 442, 442, 442, 442, 283, 283, 443, 283, 444, 283,
+ 283, 445, 446, 444, 447, 519, 448, 449, 283, 283,
+ 444, 283, 443, 443, 443, 443, 443, 443, 443, 443,
+ 444, 283, 444, 443, 443, 443, 443, 443, 443, 443,
+ 443, 443, 443, 443, 443, 443, 443, 283, 283, 114,
+
+ 114, 114, 114, 144, 231, 724, 168, 116, 1248, 188,
+ 117, 116, 116, 118, 119, 120, 121, 1098, 711, 116,
+ 1099, 1039, 1253, 1287, 1375, 610, 1288, 1376, 183, 116,
+ 261, 116, 215, 524, 619, 524, 524, 215, 215, 747,
+ 215, 621, 215, 215, 622, 621, 621, 623, 624, 748,
+ 626, 215, 215, 621, 215, 747, 747, 747, 747, 747,
+ 747, 747, 747, 621, 215, 621, 747, 747, 747, 747,
+ 747, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+ 215, 215, 620, 308, 535, 308, 405, 661, 993, 407,
+ 812, 1408, 625, 181, 744, 947, 453, 745, 620, 620,
+
+ 620, 620, 620, 620, 620, 620, 121, 256, 114, 620,
+ 620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
+ 620, 620, 620, 215, 749, 709, 749, 749, 215, 750,
+ 215, 215, 215, 215, 749, 749, 215, 215, 215, 751,
+ 215, 750, 215, 215, 215, 215, 750, 750, 750, 750,
+ 750, 750, 750, 750, 215, 215, 215, 750, 750, 750,
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 750,
+ 750, 750, 215, 752, 1416, 753, 1431, 1417, 535, 1432,
+ 468, 754, 754, 754, 754, 305, 305, 305, 305, 947,
+ 334, 642, 754, 754, 754, 754, 754, 207, 754, 1434,
+
+ 335, 1438, 1435, 214, 1439, 754, 215, 626, 755, 626,
+ 626, 215, 215, 756, 215, 626, 215, 215, 622, 626,
+ 626, 757, 758, 759, 626, 215, 215, 626, 215, 756,
+ 756, 756, 756, 756, 756, 756, 756, 626, 215, 626,
+ 756, 756, 756, 756, 756, 756, 756, 756, 756, 756,
+ 756, 756, 756, 756, 215, 215, 213, 308, 308, 308,
+ 308, 213, 213, 337, 213, 338, 213, 213, 339, 760,
+ 338, 341, 761, 343, 344, 213, 213, 338, 213, 337,
+ 337, 337, 337, 337, 337, 337, 337, 338, 213, 338,
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+
+ 337, 337, 337, 337, 213, 213, 255, 535, 535, 535,
+ 535, 255, 255, 762, 255, 629, 255, 255, 404, 630,
+ 629, 631, 632, 763, 345, 255, 255, 629, 255, 762,
+ 762, 762, 762, 762, 762, 762, 762, 629, 255, 629,
+ 762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 255, 255, 628, 449, 345, 353,
+ 711, 1068, 1477, 854, 1460, 1478, 633, 168, 777, 551,
+ 560, 948, 628, 628, 628, 628, 628, 628, 628, 628,
+ 249, 106, 207, 628, 628, 628, 628, 628, 628, 628,
+ 628, 628, 628, 628, 628, 628, 628, 285, 764, 764,
+
+ 764, 764, 285, 285, 765, 285, 766, 285, 285, 473,
+ 767, 766, 768, 769, 770, 471, 285, 285, 766, 285,
+ 765, 765, 765, 765, 765, 765, 765, 765, 766, 285,
+ 766, 765, 765, 765, 765, 765, 765, 765, 765, 765,
+ 765, 765, 765, 765, 765, 285, 285, 773, 114, 774,
+ 168, 168, 168, 168, 242, 775, 775, 775, 775, 918,
+ 168, 168, 919, 764, 121, 170, 775, 775, 775, 775,
+ 775, 241, 775, 960, 1134, 1145, 1360, 626, 1146, 775,
+ 257, 638, 755, 638, 638, 257, 257, 778, 257, 779,
+ 257, 257, 780, 779, 779, 781, 782, 783, 648, 257,
+
+ 257, 779, 257, 778, 778, 778, 778, 778, 778, 778,
+ 778, 779, 257, 779, 778, 778, 778, 778, 778, 778,
+ 778, 778, 778, 778, 778, 778, 778, 778, 257, 257,
+ 255, 345, 345, 345, 345, 255, 255, 403, 255, 345,
+ 255, 255, 404, 791, 345, 406, 792, 408, 345, 255,
+ 255, 345, 255, 403, 403, 403, 403, 403, 403, 403,
+ 403, 345, 255, 345, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403, 255, 255,
+ 257, 648, 795, 648, 648, 257, 257, 796, 257, 648,
+ 257, 257, 780, 648, 648, 797, 798, 799, 648, 257,
+
+ 257, 648, 257, 796, 796, 796, 796, 796, 796, 796,
+ 796, 648, 257, 648, 796, 796, 796, 796, 796, 796,
+ 796, 796, 796, 796, 796, 796, 796, 796, 257, 257,
+ 414, 651, 800, 651, 651, 414, 414, 801, 414, 414,
+ 414, 414, 414, 802, 414, 414, 803, 414, 414, 414,
+ 414, 414, 414, 801, 801, 801, 801, 801, 801, 801,
+ 801, 414, 414, 414, 801, 801, 801, 801, 801, 801,
+ 801, 801, 801, 801, 801, 801, 801, 801, 414, 414,
+ 182, 182, 110, 182, 182, 182, 182, 652, 182, 182,
+ 182, 182, 182, 182, 182, 182, 182, 652, 182, 182,
+
+ 182, 182, 182, 652, 652, 652, 652, 652, 652, 652,
+ 652, 182, 182, 182, 652, 652, 652, 652, 652, 652,
+ 652, 652, 652, 652, 652, 652, 652, 652, 182, 182,
+ 353, 353, 353, 353, 1026, 305, 1026, 1026, 963, 542,
+ 662, 240, 261, 493, 1181, 416, 435, 239, 354, 964,
+ 794, 1179, 1154, 967, 819, 1182, 354, 290, 818, 1190,
+ 236, 235, 1191, 290, 290, 680, 1487, 495, 1192, 1488,
+ 1575, 1193, 1027, 1576, 421, 421, 1195, 417, 561, 662,
+ 662, 662, 662, 561, 561, 813, 561, 561, 561, 561,
+ 561, 562, 561, 561, 814, 561, 561, 561, 561, 561,
+
+ 561, 813, 813, 813, 813, 813, 813, 813, 813, 561,
+ 561, 561, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 815, 561, 260, 353,
+ 353, 353, 353, 260, 260, 663, 260, 260, 260, 260,
+ 260, 261, 260, 260, 416, 663, 260, 260, 260, 260,
+ 260, 663, 663, 663, 663, 663, 663, 663, 663, 260,
+ 260, 260, 663, 663, 663, 663, 663, 663, 663, 663,
+ 663, 663, 663, 663, 663, 663, 417, 260, 354, 354,
+ 354, 354, 1030, 106, 1030, 1030, 573, 681, 1203, 234,
+ 188, 191, 502, 356, 1207, 327, 305, 574, 1018, 1204,
+
+ 673, 233, 1205, 839, 327, 1208, 504, 435, 838, 327,
+ 327, 327, 327, 1579, 144, 1212, 1580, 1031, 1213, 367,
+ 231, 231, 229, 1032, 368, 357, 262, 656, 807, 656,
+ 656, 262, 262, 821, 262, 262, 262, 262, 262, 262,
+ 262, 262, 808, 821, 262, 262, 262, 262, 262, 821,
+ 821, 821, 821, 821, 821, 821, 821, 262, 262, 262,
+ 821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
+ 821, 821, 821, 821, 809, 262, 420, 673, 824, 673,
+ 673, 420, 420, 825, 420, 420, 420, 420, 420, 421,
+ 420, 420, 826, 420, 420, 420, 420, 420, 420, 825,
+
+ 825, 825, 825, 825, 825, 825, 825, 420, 420, 420,
+ 825, 825, 825, 825, 825, 825, 825, 825, 825, 825,
+ 825, 825, 825, 825, 827, 420, 189, 674, 669, 674,
+ 674, 189, 189, 675, 189, 189, 189, 189, 189, 189,
+ 189, 189, 676, 675, 189, 189, 189, 189, 189, 675,
+ 675, 675, 675, 675, 675, 675, 675, 189, 189, 189,
+ 675, 675, 675, 675, 675, 675, 675, 675, 675, 675,
+ 675, 675, 675, 675, 677, 189, 424, 680, 680, 680,
+ 680, 424, 424, 830, 424, 424, 424, 680, 680, 425,
+ 424, 424, 831, 424, 680, 424, 424, 424, 424, 830,
+
+ 830, 830, 830, 830, 830, 830, 830, 424, 424, 424,
+ 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
+ 830, 830, 830, 830, 832, 424, 324, 681, 681, 681,
+ 681, 324, 324, 833, 324, 324, 324, 681, 681, 325,
+ 324, 324, 683, 324, 681, 324, 324, 324, 324, 833,
+ 833, 833, 833, 833, 833, 833, 833, 324, 324, 324,
+ 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
+ 833, 833, 833, 833, 685, 324, 834, 787, 1648, 1434,
+ 1380, 662, 1196, 124, 1434, 188, 835, 1673, 1026, 305,
+ 1026, 1026, 834, 834, 834, 834, 834, 834, 834, 834,
+
+ 435, 110, 181, 834, 834, 834, 834, 834, 834, 834,
+ 834, 834, 834, 834, 834, 834, 834, 682, 590, 336,
+ 712, 1679, 711, 114, 681, 862, 1027, 684, 214, 591,
+ 513, 1235, 696, 682, 682, 682, 682, 682, 682, 682,
+ 682, 106, 207, 205, 682, 682, 682, 682, 682, 682,
+ 682, 682, 682, 682, 682, 682, 682, 682, 248, 336,
+ 336, 336, 336, 248, 377, 248, 248, 248, 248, 336,
+ 336, 249, 248, 248, 378, 248, 377, 248, 248, 248,
+ 248, 377, 377, 377, 377, 377, 377, 377, 377, 248,
+ 248, 248, 377, 377, 377, 377, 377, 377, 377, 377,
+
+ 377, 377, 377, 377, 377, 377, 377, 248, 709, 709,
+ 709, 709, 204, 169, 115, 336, 116, 203, 168, 850,
+ 116, 116, 118, 851, 120, 852, 1217, 202, 116, 1218,
+ 853, 853, 853, 853, 853, 853, 853, 853, 116, 201,
+ 116, 853, 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 169, 599, 712, 712, 712,
+ 712, 599, 599, 855, 599, 856, 599, 599, 857, 858,
+ 856, 859, 860, 861, 862, 599, 599, 856, 599, 855,
+ 855, 855, 855, 855, 855, 855, 855, 856, 599, 856,
+ 855, 855, 855, 855, 855, 855, 855, 855, 855, 855,
+
+ 855, 855, 855, 855, 599, 599, 248, 516, 516, 516,
+ 516, 248, 248, 713, 248, 604, 248, 248, 605, 606,
+ 604, 607, 608, 714, 610, 248, 248, 604, 248, 713,
+ 713, 713, 713, 713, 713, 713, 713, 604, 248, 604,
+ 713, 713, 713, 713, 713, 713, 713, 713, 713, 713,
+ 713, 713, 713, 713, 248, 248, 726, 1734, 863, 200,
+ 712, 305, 516, 610, 864, 864, 864, 864, 353, 353,
+ 353, 353, 435, 877, 1081, 864, 864, 864, 864, 864,
+ 261, 864, 865, 416, 121, 199, 198, 197, 864, 603,
+ 723, 468, 308, 1250, 196, 1145, 876, 1214, 1146, 609,
+
+ 195, 1255, 642, 453, 951, 603, 603, 603, 603, 603,
+ 603, 603, 603, 194, 191, 417, 603, 603, 603, 603,
+ 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
+ 306, 865, 865, 865, 865, 306, 306, 866, 306, 867,
+ 306, 306, 868, 869, 867, 870, 608, 871, 872, 306,
+ 306, 867, 306, 866, 866, 866, 866, 866, 866, 866,
+ 866, 867, 306, 867, 866, 866, 866, 866, 866, 866,
+ 866, 866, 866, 866, 866, 866, 866, 866, 306, 306,
+ 168, 168, 168, 168, 1745, 190, 381, 1746, 308, 141,
+ 168, 168, 171, 133, 124, 873, 726, 1276, 727, 1294,
+
+ 1277, 535, 1295, 610, 728, 728, 728, 728, 188, 308,
+ 110, 535, 947, 936, 1081, 728, 728, 728, 728, 728,
+ 1315, 728, 1330, 1316, 1335, 1331, 181, 946, 728, 248,
+ 610, 610, 610, 610, 248, 248, 729, 248, 610, 248,
+ 248, 605, 730, 610, 731, 732, 733, 610, 248, 248,
+ 610, 248, 729, 729, 729, 729, 729, 729, 729, 729,
+ 610, 248, 610, 729, 729, 729, 729, 729, 729, 729,
+ 729, 729, 729, 729, 729, 729, 729, 248, 248, 878,
+ 344, 353, 812, 1030, 106, 1030, 1030, 1790, 160, 879,
+ 1791, 932, 560, 1407, 933, 878, 878, 878, 878, 878,
+
+ 878, 878, 878, 156, 153, 152, 878, 878, 878, 878,
+ 878, 878, 878, 878, 878, 878, 878, 878, 878, 878,
+ 281, 723, 723, 723, 723, 281, 281, 880, 281, 723,
+ 281, 281, 718, 881, 723, 882, 883, 884, 723, 281,
+ 281, 723, 281, 880, 880, 880, 880, 880, 880, 880,
+ 880, 723, 281, 723, 880, 880, 880, 880, 880, 880,
+ 880, 880, 880, 880, 880, 880, 880, 880, 281, 281,
+ 887, 345, 888, 110, 151, 986, 148, 662, 889, 889,
+ 889, 889, 965, 353, 484, 966, 1410, 485, 1179, 889,
+ 889, 889, 889, 889, 1404, 889, 960, 1405, 1253, 1147,
+
+ 147, 1817, 889, 213, 381, 381, 381, 381, 213, 382,
+ 213, 213, 213, 213, 381, 381, 214, 213, 213, 383,
+ 213, 382, 213, 213, 213, 213, 382, 382, 382, 382,
+ 382, 382, 382, 382, 213, 213, 213, 382, 382, 382,
+ 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
+ 382, 382, 213, 250, 614, 709, 614, 614, 250, 250,
+ 891, 250, 738, 250, 250, 739, 738, 738, 740, 741,
+ 892, 743, 250, 250, 738, 250, 891, 891, 891, 891,
+ 891, 891, 891, 891, 738, 250, 738, 891, 891, 891,
+ 891, 891, 891, 891, 891, 891, 891, 891, 891, 891,
+
+ 891, 250, 250, 737, 1412, 493, 354, 1826, 1855, 564,
+ 1827, 1856, 1177, 742, 143, 1413, 819, 495, 1414, 737,
+ 737, 737, 737, 737, 737, 737, 737, 142, 141, 133,
+ 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
+ 737, 737, 737, 737, 250, 598, 704, 598, 598, 250,
+ 705, 250, 250, 250, 250, 598, 598, 250, 250, 250,
+ 706, 250, 705, 250, 250, 250, 250, 705, 705, 705,
+ 705, 705, 705, 705, 705, 250, 250, 250, 705, 705,
+ 705, 705, 705, 705, 705, 705, 705, 705, 705, 705,
+ 705, 705, 705, 250, 895, 1181, 896, 354, 131, 1177,
+
+ 101, 1177, 897, 897, 897, 897, 1182, 667, 1418, 1415,
+ 1421, 1419, 1421, 897, 897, 897, 897, 897, 668, 897,
+ 1888, 820, 1897, 1889, 99, 1898, 897, 250, 743, 898,
+ 743, 743, 250, 250, 899, 250, 743, 250, 250, 739,
+ 743, 743, 900, 901, 902, 743, 250, 250, 743, 250,
+ 899, 899, 899, 899, 899, 899, 899, 899, 743, 250,
+ 743, 899, 899, 899, 899, 899, 899, 899, 899, 899,
+ 899, 899, 899, 899, 899, 250, 250, 452, 746, 903,
+ 746, 746, 452, 452, 904, 452, 905, 452, 452, 906,
+ 907, 905, 908, 909, 910, 911, 452, 452, 905, 452,
+
+ 904, 904, 904, 904, 904, 904, 904, 904, 905, 452,
+ 905, 904, 904, 904, 904, 904, 904, 904, 904, 904,
+ 904, 904, 904, 904, 904, 452, 452, 215, 524, 619,
+ 524, 524, 215, 215, 747, 215, 621, 215, 215, 622,
+ 621, 621, 623, 624, 748, 626, 215, 215, 621, 215,
+ 747, 747, 747, 747, 747, 747, 747, 747, 621, 215,
+ 621, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+ 747, 747, 747, 747, 747, 215, 215, 752, 1423, 912,
+ 680, 98, 681, 94, 502, 913, 913, 913, 913, 1424,
+ 1427, 1195, 1425, 1018, 1441, 839, 913, 913, 913, 913,
+
+ 913, 1428, 913, 1900, 1429, 1442, 1016, 93, 1017, 913,
+ 215, 749, 709, 749, 749, 215, 750, 215, 215, 215,
+ 215, 749, 749, 215, 215, 215, 751, 215, 750, 215,
+ 215, 215, 215, 750, 750, 750, 750, 750, 750, 750,
+ 750, 215, 215, 215, 750, 750, 750, 750, 750, 750,
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 215,
+ 620, 1207, 327, 336, 1935, 1956, 1958, 1936, 1957, 1959,
+ 753, 92, 1208, 504, 513, 1445, 754, 754, 754, 754,
+ 620, 620, 620, 620, 91, 90, 89, 754, 754, 754,
+ 754, 754, 620, 754, 620, 620, 620, 620, 620, 620,
+
+ 754, 114, 114, 114, 114, 265, 265, 265, 265, 116,
+ 85, 265, 117, 116, 116, 118, 119, 120, 121, 854,
+ 266, 116, 1451, 602, 1993, 1452, 1082, 1994, 5143, 2051,
+ 1459, 116, 2052, 116, 215, 626, 755, 626, 626, 215,
+ 215, 916, 215, 626, 215, 215, 622, 626, 626, 757,
+ 758, 917, 626, 215, 215, 626, 215, 916, 916, 916,
+ 916, 916, 916, 916, 916, 626, 215, 626, 916, 916,
+ 916, 916, 916, 916, 916, 916, 916, 916, 916, 916,
+ 916, 916, 215, 215, 756, 60, 2100, 2129, 1039, 961,
+ 986, 60, 5143, 5143, 759, 183, 183, 183, 183, 1462,
+
+ 756, 756, 756, 756, 756, 756, 756, 756, 5143, 5143,
+ 185, 756, 756, 756, 756, 756, 756, 756, 756, 756,
+ 756, 756, 756, 756, 756, 920, 689, 921, 712, 5143,
+ 862, 5143, 516, 922, 922, 922, 922, 690, 702, 1235,
+ 840, 1480, 186, 877, 922, 922, 922, 922, 922, 703,
+ 922, 2159, 847, 2161, 2160, 5143, 2162, 922, 533, 923,
+ 923, 923, 923, 533, 533, 924, 533, 925, 533, 533,
+ 926, 927, 925, 928, 929, 930, 931, 533, 533, 925,
+ 533, 924, 924, 924, 924, 924, 924, 924, 924, 925,
+ 533, 925, 924, 924, 924, 924, 924, 924, 924, 924,
+
+ 924, 924, 924, 924, 924, 924, 533, 533, 255, 535,
+ 535, 535, 535, 255, 255, 762, 255, 629, 255, 255,
+ 404, 630, 629, 631, 632, 763, 345, 255, 255, 629,
+ 255, 762, 762, 762, 762, 762, 762, 762, 762, 629,
+ 255, 629, 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 255, 255, 773, 5143,
+ 934, 5143, 1453, 305, 1453, 1453, 935, 935, 935, 935,
+ 979, 1170, 979, 979, 435, 114, 610, 935, 935, 935,
+ 935, 935, 560, 935, 1047, 1171, 1464, 1081, 516, 1465,
+ 935, 628, 5143, 381, 1082, 1467, 5143, 1454, 1468, 1481,
+
+ 5143, 633, 1482, 1455, 518, 1505, 5143, 628, 628, 628,
+ 628, 628, 628, 628, 628, 5143, 5143, 1172, 628, 628,
+ 628, 628, 628, 628, 628, 628, 628, 628, 628, 628,
+ 628, 628, 309, 936, 936, 936, 936, 309, 309, 937,
+ 309, 938, 309, 309, 544, 939, 938, 940, 632, 941,
+ 542, 309, 309, 938, 309, 937, 937, 937, 937, 937,
+ 937, 937, 937, 938, 309, 938, 937, 937, 937, 937,
+ 937, 937, 937, 937, 937, 937, 937, 937, 937, 937,
+ 309, 309, 121, 121, 121, 121, 5143, 5143, 1199, 865,
+ 121, 1904, 5143, 117, 942, 121, 177, 943, 179, 121,
+
+ 1250, 1434, 121, 1483, 1891, 872, 5143, 381, 5143, 1082,
+ 2197, 308, 121, 1039, 121, 773, 1486, 774, 1491, 1080,
+ 1505, 1492, 453, 775, 775, 775, 775, 5143, 735, 5143,
+ 381, 5143, 1522, 5143, 775, 775, 775, 775, 775, 736,
+ 775, 1516, 890, 1523, 1517, 5143, 1524, 775, 257, 638,
+ 755, 638, 638, 257, 257, 949, 257, 779, 257, 257,
+ 780, 779, 779, 781, 782, 950, 648, 257, 257, 779,
+ 257, 949, 949, 949, 949, 949, 949, 949, 949, 779,
+ 257, 779, 949, 949, 949, 949, 949, 949, 949, 949,
+ 949, 949, 949, 949, 949, 949, 257, 257, 778, 114,
+
+ 535, 535, 2227, 602, 2360, 862, 1281, 2361, 783, 5143,
+ 520, 947, 947, 521, 778, 778, 778, 778, 778, 778,
+ 778, 778, 5143, 5143, 5143, 778, 778, 778, 778, 778,
+ 778, 778, 778, 778, 778, 778, 778, 778, 778, 257,
+ 951, 898, 951, 951, 257, 952, 257, 257, 257, 257,
+ 951, 951, 257, 257, 257, 953, 257, 952, 257, 257,
+ 257, 257, 952, 952, 952, 952, 952, 952, 952, 952,
+ 257, 257, 257, 952, 952, 952, 952, 952, 952, 952,
+ 952, 952, 952, 952, 952, 952, 952, 952, 257, 954,
+ 923, 955, 308, 5143, 344, 5143, 961, 956, 956, 956,
+
+ 956, 1536, 1322, 1315, 1537, 537, 1316, 1589, 956, 956,
+ 956, 956, 956, 1539, 956, 2405, 911, 787, 2406, 5143,
+ 1380, 956, 255, 468, 468, 468, 468, 255, 469, 255,
+ 255, 255, 255, 468, 468, 256, 255, 255, 470, 255,
+ 469, 255, 255, 255, 255, 469, 469, 469, 469, 469,
+ 469, 469, 469, 255, 255, 255, 469, 469, 469, 469,
+ 469, 469, 469, 469, 469, 469, 469, 469, 469, 469,
+ 469, 255, 309, 542, 542, 542, 542, 309, 309, 543,
+ 309, 542, 309, 309, 544, 545, 542, 546, 643, 547,
+ 542, 309, 309, 542, 309, 543, 543, 543, 543, 543,
+
+ 543, 543, 543, 542, 309, 542, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 309, 309, 121, 121, 121, 121, 5143, 5143, 993, 535,
+ 121, 1408, 5143, 117, 121, 121, 177, 178, 179, 121,
+ 1545, 1434, 121, 1546, 1673, 1900, 2494, 1068, 2486, 2495,
+ 1460, 5143, 121, 5143, 121, 257, 648, 795, 648, 648,
+ 257, 257, 968, 257, 648, 257, 257, 780, 648, 648,
+ 797, 798, 969, 648, 257, 257, 648, 257, 968, 968,
+ 968, 968, 968, 968, 968, 968, 648, 257, 648, 968,
+ 968, 968, 968, 968, 968, 968, 968, 968, 968, 968,
+
+ 968, 968, 968, 257, 257, 796, 936, 345, 353, 858,
+ 858, 858, 860, 860, 860, 799, 5143, 1335, 551, 560,
+ 1547, 796, 796, 796, 796, 796, 796, 796, 796, 5143,
+ 5143, 5143, 796, 796, 796, 796, 796, 796, 796, 796,
+ 796, 796, 796, 796, 796, 796, 970, 344, 971, 344,
+ 5143, 812, 5143, 986, 972, 972, 972, 972, 1550, 468,
+ 1570, 1551, 1407, 1571, 1410, 972, 972, 972, 972, 972,
+ 1608, 972, 1477, 1609, 2637, 1478, 5143, 2638, 972, 180,
+ 287, 287, 287, 287, 180, 180, 311, 180, 180, 180,
+ 180, 180, 312, 180, 180, 313, 180, 180, 180, 180,
+
+ 180, 180, 311, 311, 311, 311, 311, 311, 311, 311,
+ 180, 180, 180, 311, 311, 311, 311, 311, 311, 311,
+ 311, 311, 311, 311, 311, 311, 311, 180, 180, 414,
+ 414, 287, 414, 414, 414, 414, 973, 414, 414, 414,
+ 414, 414, 415, 414, 414, 414, 973, 414, 414, 414,
+ 414, 414, 973, 973, 973, 973, 973, 973, 973, 973,
+ 414, 414, 414, 973, 973, 973, 973, 973, 973, 973,
+ 973, 973, 973, 973, 973, 973, 973, 414, 414, 486,
+ 974, 975, 974, 974, 486, 486, 976, 486, 486, 486,
+ 486, 486, 977, 486, 486, 978, 486, 486, 486, 486,
+
+ 486, 486, 976, 976, 976, 976, 976, 976, 976, 976,
+ 486, 486, 486, 976, 976, 976, 976, 976, 976, 976,
+ 976, 976, 976, 976, 976, 976, 976, 486, 486, 561,
+ 812, 812, 812, 812, 561, 561, 813, 561, 561, 561,
+ 561, 561, 562, 561, 561, 984, 561, 561, 561, 561,
+ 561, 561, 813, 813, 813, 813, 813, 813, 813, 813,
+ 561, 561, 561, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 985, 561, 561,
+ 986, 986, 986, 986, 561, 561, 987, 561, 561, 561,
+ 561, 561, 562, 561, 561, 988, 987, 561, 561, 561,
+
+ 561, 561, 987, 987, 987, 987, 987, 987, 987, 987,
+ 561, 561, 561, 987, 987, 987, 987, 987, 987, 987,
+ 987, 987, 987, 987, 987, 987, 987, 989, 561, 494,
+ 820, 997, 820, 820, 494, 494, 998, 494, 494, 494,
+ 494, 494, 495, 494, 494, 999, 494, 494, 494, 494,
+ 494, 494, 998, 998, 998, 998, 998, 998, 998, 998,
+ 494, 494, 494, 998, 998, 998, 998, 998, 998, 998,
+ 998, 998, 998, 998, 998, 998, 998, 1000, 494, 262,
+ 656, 807, 656, 656, 262, 262, 821, 262, 262, 262,
+ 262, 262, 262, 262, 262, 808, 821, 262, 262, 262,
+
+ 262, 262, 821, 821, 821, 821, 821, 821, 821, 821,
+ 262, 262, 262, 821, 821, 821, 821, 821, 821, 821,
+ 821, 821, 821, 821, 821, 821, 821, 809, 262, 187,
+ 290, 290, 290, 290, 187, 187, 316, 187, 187, 187,
+ 187, 187, 188, 187, 187, 317, 187, 187, 187, 187,
+ 187, 187, 316, 316, 316, 316, 316, 316, 316, 316,
+ 187, 187, 187, 316, 316, 316, 316, 316, 316, 316,
+ 316, 316, 316, 316, 316, 316, 316, 318, 187, 420,
+ 1002, 997, 1002, 1002, 420, 420, 1003, 420, 420, 420,
+ 420, 420, 421, 420, 420, 1004, 1003, 420, 420, 420,
+
+ 420, 420, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
+ 420, 420, 420, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
+ 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1005, 420, 424,
+ 680, 680, 680, 680, 424, 424, 1008, 424, 424, 424,
+ 680, 680, 425, 424, 424, 831, 1009, 680, 424, 424,
+ 424, 424, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
+ 424, 424, 424, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
+ 1008, 1008, 1008, 1008, 1008, 1008, 1008, 832, 424, 324,
+ 681, 681, 681, 681, 324, 324, 1012, 324, 324, 324,
+ 681, 681, 325, 324, 324, 683, 1013, 681, 324, 324,
+
+ 324, 324, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
+ 324, 324, 324, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
+ 1012, 1012, 1012, 1012, 1012, 1012, 1012, 685, 324, 834,
+ 345, 662, 1177, 1781, 1781, 1781, 1783, 1783, 1783, 835,
+ 5143, 1615, 1179, 1421, 1616, 834, 834, 834, 834, 834,
+ 834, 834, 834, 5143, 5143, 5143, 834, 834, 834, 834,
+ 834, 834, 834, 834, 834, 834, 834, 834, 834, 834,
+ 512, 847, 1033, 847, 847, 512, 1034, 512, 512, 512,
+ 512, 847, 847, 513, 512, 512, 1035, 512, 1034, 512,
+ 512, 512, 512, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
+
+ 1034, 512, 512, 512, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 512,
+ 121, 121, 121, 121, 5143, 5143, 2747, 805, 121, 1360,
+ 5143, 117, 121, 121, 177, 178, 179, 121, 806, 2833,
+ 121, 979, 1435, 5143, 5143, 5143, 1629, 354, 1635, 5143,
+ 121, 5143, 121, 114, 114, 114, 114, 1630, 495, 1636,
+ 1631, 116, 1637, 1639, 117, 116, 116, 118, 119, 167,
+ 121, 1177, 3017, 116, 1640, 1281, 1998, 1178, 1998, 2000,
+ 5143, 2000, 1421, 116, 5143, 116, 599, 854, 854, 854,
+ 854, 599, 1038, 855, 599, 856, 599, 1039, 1040, 858,
+
+ 856, 859, 1041, 861, 1042, 599, 599, 856, 599, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 856, 599, 856,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1038, 599, 599, 712, 712, 712,
+ 712, 599, 599, 1044, 599, 856, 599, 599, 857, 858,
+ 856, 859, 860, 1045, 862, 599, 599, 856, 599, 1044,
+ 1044, 1044, 1044, 1044, 1044, 1044, 1044, 856, 599, 856,
+ 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044,
+ 1044, 1044, 1044, 1044, 599, 599, 855, 1650, 662, 680,
+ 1998, 3056, 2078, 2000, 3057, 2080, 861, 5143, 1651, 1179,
+
+ 1195, 1652, 855, 855, 855, 855, 855, 855, 855, 855,
+ 5143, 5143, 5143, 855, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 855, 855, 855, 855, 599, 1039, 1039,
+ 1039, 1039, 599, 1038, 599, 599, 599, 599, 1039, 1039,
+ 600, 599, 599, 1046, 599, 1038, 599, 599, 599, 599,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 599, 599,
+ 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 599, 707, 1047, 1047,
+ 1047, 1047, 707, 707, 1048, 707, 1049, 707, 707, 1050,
+ 1051, 1049, 1052, 1053, 1054, 1055, 707, 707, 1049, 707,
+
+ 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1049, 707,
+ 1049, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048,
+ 1048, 1048, 1048, 1048, 1048, 707, 707, 1058, 1654, 1059,
+ 1658, 5143, 1016, 5143, 681, 1060, 1060, 1060, 1060, 1655,
+ 1665, 1659, 1656, 1681, 1002, 1018, 1060, 1060, 1060, 1060,
+ 1060, 1666, 1060, 2078, 1194, 2078, 2080, 5143, 2080, 1060,
+ 599, 862, 862, 862, 862, 599, 599, 1061, 599, 862,
+ 599, 599, 857, 1062, 862, 1063, 1064, 1065, 862, 599,
+ 599, 862, 599, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 862, 599, 862, 1061, 1061, 1061, 1061, 1061, 1061,
+
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 599, 599,
+ 248, 516, 516, 516, 516, 248, 248, 713, 248, 604,
+ 248, 248, 605, 606, 604, 726, 608, 863, 610, 248,
+ 248, 604, 248, 864, 864, 864, 864, 713, 713, 713,
+ 713, 604, 248, 604, 864, 864, 864, 864, 864, 713,
+ 864, 713, 713, 713, 713, 713, 713, 864, 248, 248,
+ 603, 1441, 502, 854, 1253, 5143, 1150, 1817, 607, 1152,
+ 609, 5143, 1442, 839, 1459, 1682, 603, 603, 603, 603,
+ 603, 603, 603, 603, 5143, 5143, 5143, 603, 603, 603,
+ 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
+
+ 603, 607, 319, 714, 265, 1453, 305, 1453, 1453, 713,
+ 713, 713, 713, 1685, 1698, 1693, 1686, 435, 1694, 1039,
+ 713, 713, 713, 713, 713, 1699, 713, 5143, 1700, 1150,
+ 1462, 5143, 1152, 713, 248, 336, 336, 336, 336, 248,
+ 377, 248, 248, 248, 248, 336, 336, 249, 248, 248,
+ 378, 248, 377, 248, 248, 248, 248, 377, 377, 377,
+ 377, 377, 377, 377, 377, 248, 248, 248, 377, 377,
+ 377, 377, 377, 377, 377, 377, 377, 377, 377, 377,
+ 377, 377, 377, 248, 306, 865, 865, 865, 865, 306,
+ 306, 866, 306, 867, 306, 306, 868, 869, 867, 870,
+
+ 1066, 871, 872, 306, 306, 867, 306, 866, 866, 866,
+ 866, 866, 866, 866, 866, 867, 306, 867, 866, 866,
+ 866, 866, 866, 866, 866, 866, 866, 866, 866, 866,
+ 866, 866, 306, 306, 726, 1706, 727, 712, 5143, 712,
+ 5143, 862, 728, 728, 728, 728, 1707, 1225, 1235, 1708,
+ 1235, 121, 1480, 728, 728, 728, 728, 728, 1712, 728,
+ 3144, 1234, 1719, 3145, 5143, 1720, 728, 248, 610, 610,
+ 610, 610, 248, 248, 729, 248, 610, 248, 248, 605,
+ 730, 610, 731, 732, 733, 610, 248, 248, 610, 248,
+ 729, 729, 729, 729, 729, 729, 729, 729, 610, 248,
+
+ 610, 729, 729, 729, 729, 729, 729, 729, 729, 729,
+ 729, 729, 729, 729, 729, 248, 248, 878, 1055, 1199,
+ 1460, 3322, 1904, 3491, 1994, 3544, 1891, 879, 3545, 1724,
+ 305, 1727, 1725, 878, 878, 878, 878, 878, 878, 878,
+ 878, 435, 5143, 5143, 878, 878, 878, 878, 878, 878,
+ 878, 878, 878, 878, 878, 878, 878, 878, 887, 865,
+ 1071, 610, 5143, 610, 5143, 1695, 1072, 1072, 1072, 1072,
+ 1250, 872, 1730, 1483, 1081, 1731, 1082, 1072, 1072, 1072,
+ 1072, 1072, 1486, 1072, 5143, 1732, 340, 1505, 5143, 1257,
+ 1072, 306, 872, 872, 872, 872, 306, 306, 1073, 306,
+
+ 872, 306, 306, 868, 1074, 872, 1075, 732, 1076, 872,
+ 306, 306, 872, 306, 1073, 1073, 1073, 1073, 1073, 1073,
+ 1073, 1073, 872, 306, 872, 1073, 1073, 1073, 1073, 1073,
+ 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 306,
+ 306, 168, 168, 168, 168, 340, 5143, 305, 1257, 1736,
+ 381, 168, 168, 218, 5143, 5143, 1077, 887, 435, 888,
+ 1737, 518, 1082, 1738, 1281, 889, 889, 889, 889, 5143,
+ 5143, 5143, 709, 1505, 1267, 1761, 889, 889, 889, 889,
+ 889, 1696, 889, 1740, 711, 1743, 1741, 2897, 1744, 889,
+ 517, 890, 1082, 890, 890, 517, 517, 1083, 517, 1084,
+
+ 517, 517, 1085, 1086, 1084, 1087, 1088, 1089, 1090, 517,
+ 517, 1084, 517, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+ 1083, 1084, 517, 1084, 1083, 1083, 1083, 1083, 1083, 1083,
+ 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 517, 517,
+ 250, 614, 709, 614, 614, 250, 250, 891, 250, 738,
+ 250, 250, 739, 738, 738, 740, 741, 892, 743, 250,
+ 250, 738, 250, 891, 891, 891, 891, 891, 891, 891,
+ 891, 738, 250, 738, 891, 891, 891, 891, 891, 891,
+ 891, 891, 891, 891, 891, 891, 891, 891, 250, 250,
+ 895, 340, 1091, 3675, 1257, 712, 3676, 308, 1092, 1092,
+
+ 1092, 1092, 986, 986, 986, 986, 1235, 1757, 453, 1092,
+ 1092, 1092, 1092, 1092, 562, 1092, 1763, 988, 1758, 5143,
+ 114, 1759, 1092, 737, 442, 308, 535, 1764, 5143, 1900,
+ 1105, 520, 2486, 896, 521, 618, 453, 947, 911, 897,
+ 897, 897, 897, 737, 737, 737, 737, 5143, 5143, 989,
+ 897, 897, 897, 897, 897, 737, 897, 737, 737, 737,
+ 737, 737, 737, 897, 898, 898, 898, 898, 5143, 169,
+ 176, 923, 121, 5143, 168, 850, 121, 121, 177, 1094,
+ 179, 852, 1536, 5143, 121, 1537, 1095, 1095, 1095, 1095,
+ 1095, 1095, 1095, 1095, 121, 5143, 121, 1095, 1095, 1095,
+
+ 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
+ 1095, 169, 250, 743, 898, 743, 743, 250, 250, 1096,
+ 250, 743, 250, 250, 739, 743, 743, 900, 901, 1097,
+ 743, 250, 250, 743, 250, 1096, 1096, 1096, 1096, 1096,
+ 1096, 1096, 1096, 743, 250, 743, 1096, 1096, 1096, 1096,
+ 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096,
+ 250, 250, 899, 936, 1281, 344, 3322, 3904, 3955, 3660,
+ 3905, 3956, 902, 5143, 1335, 1761, 537, 1547, 899, 899,
+ 899, 899, 899, 899, 899, 899, 5143, 5143, 5143, 899,
+ 899, 899, 899, 899, 899, 899, 899, 899, 899, 899,
+
+ 899, 899, 899, 1100, 1799, 1101, 114, 5143, 1147, 5143,
+ 1360, 1102, 1102, 1102, 1102, 1800, 931, 520, 1801, 1816,
+ 521, 1819, 1102, 1102, 1102, 1102, 1102, 1813, 1102, 399,
+ 1814, 399, 1506, 5143, 1506, 1102, 213, 308, 308, 308,
+ 308, 213, 213, 337, 213, 338, 213, 213, 339, 340,
+ 338, 341, 342, 343, 344, 213, 213, 338, 213, 337,
+ 337, 337, 337, 337, 337, 337, 337, 338, 213, 338,
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 213, 213, 452, 746, 903, 746,
+ 746, 452, 452, 1103, 452, 905, 452, 452, 906, 907,
+
+ 905, 908, 909, 1104, 911, 452, 452, 905, 452, 1103,
+ 1103, 1103, 1103, 1103, 1103, 1103, 1103, 905, 452, 905,
+ 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
+ 1103, 1103, 1103, 1103, 452, 452, 904, 121, 961, 468,
+ 4186, 2209, 2209, 4187, 2296, 2296, 910, 5143, 1821, 1589,
+ 642, 1822, 904, 904, 904, 904, 904, 904, 904, 904,
+ 5143, 5143, 5143, 904, 904, 904, 904, 904, 904, 904,
+ 904, 904, 904, 904, 904, 904, 904, 452, 1105, 1082,
+ 1105, 1105, 452, 1106, 452, 452, 452, 452, 1105, 1105,
+ 453, 452, 452, 1107, 452, 1106, 452, 452, 452, 452,
+
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 452, 452,
+ 452, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 452, 522, 1108, 1109,
+ 1108, 1108, 522, 522, 1110, 522, 1111, 522, 522, 1112,
+ 1113, 1111, 1114, 1115, 1116, 1117, 522, 522, 1111, 522,
+ 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1111, 522,
+ 1111, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
+ 1110, 1110, 1110, 1110, 1110, 522, 522, 1118, 1368, 1119,
+ 468, 5143, 1380, 5143, 1380, 1120, 1120, 1120, 1120, 1824,
+ 963, 1830, 1825, 1842, 1831, 1842, 1120, 1120, 1120, 1120,
+
+ 1120, 964, 1120, 2209, 1154, 4424, 2296, 5143, 2897, 1120,
+ 452, 911, 1121, 911, 911, 452, 452, 1122, 452, 911,
+ 452, 452, 906, 1123, 911, 1124, 1125, 1126, 911, 452,
+ 452, 911, 452, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 911, 452, 911, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 452, 452,
+ 215, 524, 619, 524, 524, 215, 215, 747, 215, 621,
+ 215, 215, 622, 621, 621, 752, 624, 912, 626, 215,
+ 215, 621, 215, 913, 913, 913, 913, 747, 747, 747,
+ 747, 621, 215, 621, 913, 913, 913, 913, 913, 747,
+
+ 913, 747, 747, 747, 747, 747, 747, 913, 215, 215,
+ 215, 626, 755, 626, 626, 215, 215, 916, 215, 626,
+ 215, 215, 622, 626, 626, 757, 758, 917, 626, 215,
+ 215, 626, 215, 916, 916, 916, 916, 916, 916, 916,
+ 916, 626, 215, 626, 916, 916, 916, 916, 916, 916,
+ 916, 916, 916, 916, 916, 916, 916, 916, 215, 215,
+ 920, 2265, 1127, 2515, 2267, 812, 2853, 986, 1128, 1128,
+ 1128, 1128, 1002, 997, 1002, 1002, 1407, 1844, 1410, 1128,
+ 1128, 1128, 1128, 1128, 421, 1128, 121, 1004, 1845, 5143,
+ 287, 1846, 1128, 756, 1849, 662, 493, 644, 5143, 2515,
+
+ 645, 649, 2853, 921, 650, 1850, 1179, 819, 1406, 922,
+ 922, 922, 922, 756, 756, 756, 756, 5143, 5143, 1005,
+ 922, 922, 922, 922, 922, 756, 922, 756, 756, 756,
+ 756, 756, 756, 922, 379, 1858, 986, 1177, 2515, 2538,
+ 2538, 2853, 2591, 2591, 380, 5143, 1859, 1410, 1421, 1409,
+ 379, 379, 379, 379, 379, 379, 379, 379, 5143, 5143,
+ 5143, 379, 379, 379, 379, 379, 379, 379, 379, 379,
+ 379, 379, 379, 379, 379, 213, 381, 381, 381, 381,
+ 213, 382, 213, 213, 213, 213, 381, 381, 214, 213,
+ 213, 383, 213, 382, 213, 213, 213, 213, 382, 382,
+
+ 382, 382, 382, 382, 382, 382, 213, 213, 213, 382,
+ 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
+ 382, 382, 382, 382, 213, 283, 442, 442, 442, 442,
+ 283, 283, 443, 283, 444, 283, 283, 445, 446, 444,
+ 447, 1129, 448, 449, 283, 283, 444, 283, 443, 443,
+ 443, 443, 443, 443, 443, 443, 444, 283, 444, 443,
+ 443, 443, 443, 443, 443, 443, 443, 443, 443, 443,
+ 443, 443, 443, 283, 283, 255, 535, 535, 535, 535,
+ 255, 255, 628, 255, 629, 255, 255, 404, 1130, 629,
+ 631, 1131, 633, 345, 255, 255, 629, 255, 628, 628,
+
+ 628, 628, 628, 628, 628, 628, 629, 255, 629, 628,
+ 628, 628, 628, 628, 628, 628, 628, 628, 628, 628,
+ 628, 628, 628, 255, 255, 395, 1639, 396, 124, 5143,
+ 662, 5143, 493, 397, 397, 397, 397, 1640, 493, 1864,
+ 1863, 1179, 1865, 819, 397, 397, 397, 397, 397, 1866,
+ 397, 2538, 1867, 2579, 2591, 5143, 2702, 397, 213, 344,
+ 344, 344, 344, 213, 213, 398, 213, 344, 213, 213,
+ 339, 399, 344, 400, 401, 402, 344, 213, 213, 344,
+ 213, 398, 398, 398, 398, 398, 398, 398, 398, 344,
+ 213, 344, 398, 398, 398, 398, 398, 398, 398, 398,
+
+ 398, 398, 398, 398, 398, 398, 213, 213, 255, 535,
+ 535, 535, 535, 255, 255, 762, 255, 629, 255, 255,
+ 404, 630, 629, 773, 632, 934, 345, 255, 255, 629,
+ 255, 935, 935, 935, 935, 762, 762, 762, 762, 629,
+ 255, 629, 935, 935, 935, 935, 935, 762, 935, 762,
+ 762, 762, 762, 762, 762, 935, 255, 255, 631, 1869,
+ 763, 1875, 5143, 680, 5143, 1016, 762, 762, 762, 762,
+ 1870, 1639, 1876, 1185, 1195, 1420, 1681, 762, 762, 762,
+ 762, 762, 1640, 762, 2579, 1879, 2579, 2702, 5143, 2702,
+ 762, 309, 936, 936, 936, 936, 309, 309, 937, 309,
+
+ 938, 309, 309, 544, 939, 938, 940, 1132, 941, 542,
+ 309, 309, 938, 309, 937, 937, 937, 937, 937, 937,
+ 937, 937, 938, 309, 938, 937, 937, 937, 937, 937,
+ 937, 937, 937, 937, 937, 937, 937, 937, 937, 309,
+ 309, 630, 5143, 773, 632, 774, 493, 1665, 681, 5143,
+ 5143, 775, 775, 775, 775, 5143, 319, 1881, 1666, 1018,
+ 1882, 1883, 775, 775, 775, 775, 775, 1886, 775, 3322,
+ 1887, 2105, 3660, 5143, 4614, 775, 536, 948, 1121, 948,
+ 948, 536, 536, 1135, 536, 1136, 536, 536, 1137, 1138,
+ 1136, 1139, 1140, 1141, 1142, 536, 536, 1136, 536, 1135,
+
+ 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1136, 536, 1136,
+ 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1135, 1135, 536, 536, 257, 638, 755, 638,
+ 638, 257, 257, 949, 257, 779, 257, 257, 780, 779,
+ 779, 781, 782, 950, 648, 257, 257, 779, 257, 949,
+ 949, 949, 949, 949, 949, 949, 949, 779, 257, 779,
+ 949, 949, 949, 949, 949, 949, 949, 949, 949, 949,
+ 949, 949, 949, 949, 257, 257, 954, 1902, 1143, 502,
+ 5143, 1016, 5143, 854, 1144, 1144, 1144, 1144, 1903, 1922,
+ 1915, 1446, 1681, 1916, 1459, 1144, 1144, 1144, 1144, 1144,
+
+ 1923, 1144, 4182, 1458, 4182, 4184, 5143, 4184, 1144, 257,
+ 951, 898, 951, 951, 257, 952, 257, 257, 257, 257,
+ 951, 951, 257, 257, 257, 953, 257, 952, 257, 257,
+ 257, 257, 952, 952, 952, 952, 952, 952, 952, 952,
+ 257, 257, 257, 952, 952, 952, 952, 952, 952, 952,
+ 952, 952, 952, 952, 952, 952, 952, 952, 257, 778,
+ 1039, 712, 862, 862, 4182, 4470, 5143, 4184, 4872, 955,
+ 5143, 1462, 1235, 1480, 1480, 956, 956, 956, 956, 778,
+ 778, 778, 778, 5143, 5143, 5143, 956, 956, 956, 956,
+ 956, 778, 956, 778, 778, 778, 778, 778, 778, 956,
+
+ 784, 961, 961, 961, 961, 784, 784, 1148, 784, 961,
+ 784, 784, 1149, 1150, 961, 1151, 1152, 1153, 961, 784,
+ 784, 961, 784, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 961, 784, 961, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 784, 784,
+ 255, 468, 468, 468, 468, 255, 469, 255, 255, 255,
+ 255, 468, 468, 256, 255, 255, 470, 255, 469, 255,
+ 255, 255, 255, 469, 469, 469, 469, 469, 469, 469,
+ 469, 255, 255, 255, 469, 469, 469, 469, 469, 469,
+ 469, 469, 469, 469, 469, 469, 469, 469, 469, 255,
+
+ 550, 967, 1155, 967, 967, 550, 550, 1156, 550, 967,
+ 550, 550, 1157, 1158, 967, 1159, 1160, 1161, 967, 550,
+ 550, 967, 550, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 967, 550, 967, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 550, 550,
+ 257, 648, 795, 648, 648, 257, 257, 968, 257, 648,
+ 257, 257, 780, 648, 648, 797, 798, 969, 648, 257,
+ 257, 648, 257, 968, 968, 968, 968, 968, 968, 968,
+ 968, 648, 257, 648, 968, 968, 968, 968, 968, 968,
+ 968, 968, 968, 968, 968, 968, 968, 968, 257, 257,
+
+ 970, 4895, 1162, 4540, 4896, 305, 4931, 305, 1163, 1163,
+ 1163, 1163, 353, 353, 353, 353, 435, 1938, 435, 1163,
+ 1163, 1163, 1163, 1163, 261, 1163, 712, 416, 1939, 5143,
+ 5143, 1461, 1163, 796, 1225, 1460, 516, 1953, 5143, 5143,
+ 1954, 1919, 1920, 971, 5143, 1712, 1727, 877, 1955, 972,
+ 972, 972, 972, 796, 796, 796, 796, 5143, 5143, 417,
+ 972, 972, 972, 972, 972, 796, 972, 796, 796, 796,
+ 796, 796, 796, 972, 414, 414, 287, 414, 414, 414,
+ 414, 973, 414, 414, 414, 414, 414, 415, 414, 414,
+ 414, 973, 414, 414, 414, 414, 414, 973, 973, 973,
+
+ 973, 973, 973, 973, 973, 414, 414, 414, 973, 973,
+ 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
+ 973, 973, 414, 414, 414, 651, 800, 651, 651, 414,
+ 414, 801, 414, 414, 414, 414, 414, 802, 414, 414,
+ 803, 414, 414, 414, 414, 414, 414, 801, 801, 801,
+ 801, 801, 801, 801, 801, 414, 414, 414, 801, 801,
+ 801, 801, 801, 801, 801, 801, 801, 801, 801, 801,
+ 801, 801, 414, 414, 180, 287, 287, 287, 287, 180,
+ 180, 311, 180, 180, 180, 180, 180, 312, 180, 180,
+ 313, 180, 180, 180, 180, 180, 180, 311, 311, 311,
+
+ 311, 311, 311, 311, 311, 180, 180, 180, 311, 311,
+ 311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
+ 311, 311, 180, 180, 554, 1164, 1165, 1164, 1164, 554,
+ 554, 1166, 554, 554, 554, 554, 554, 1167, 554, 554,
+ 803, 554, 554, 554, 554, 554, 554, 1166, 1166, 1166,
+ 1166, 1166, 1166, 1166, 1166, 554, 554, 554, 1166, 1166,
+ 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166,
+ 1166, 1166, 554, 554, 182, 488, 556, 488, 488, 182,
+ 182, 557, 182, 182, 182, 182, 182, 1168, 182, 182,
+ 1169, 182, 182, 182, 182, 182, 182, 557, 557, 557,
+
+ 557, 557, 557, 557, 557, 182, 182, 182, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 182, 182, 561, 986, 986, 986, 986, 561,
+ 561, 987, 561, 561, 561, 561, 561, 562, 561, 561,
+ 988, 987, 561, 561, 561, 561, 561, 987, 987, 987,
+ 987, 987, 987, 987, 987, 561, 561, 561, 987, 987,
+ 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
+ 987, 987, 989, 561, 260, 493, 493, 493, 493, 260,
+ 260, 565, 260, 260, 260, 260, 260, 261, 260, 260,
+ 566, 260, 260, 260, 260, 260, 260, 565, 565, 565,
+
+ 565, 565, 565, 565, 565, 260, 260, 260, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 565, 565, 567, 260, 187, 1177, 1177, 1177, 1177, 187,
+ 187, 316, 187, 187, 187, 187, 187, 188, 187, 187,
+ 1183, 187, 187, 187, 187, 187, 187, 316, 316, 316,
+ 316, 316, 316, 316, 316, 187, 187, 187, 316, 316,
+ 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
+ 316, 316, 1184, 187, 494, 1185, 1186, 1185, 1185, 494,
+ 494, 1187, 494, 494, 494, 494, 494, 495, 494, 494,
+ 1188, 1187, 494, 494, 494, 494, 494, 1187, 1187, 1187,
+
+ 1187, 1187, 1187, 1187, 1187, 494, 494, 494, 1187, 1187,
+ 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+ 1187, 1187, 1189, 494, 420, 1002, 997, 1002, 1002, 420,
+ 420, 1003, 420, 420, 420, 420, 420, 421, 420, 420,
+ 1004, 1003, 420, 420, 420, 420, 420, 1003, 1003, 1003,
+ 1003, 1003, 1003, 1003, 1003, 420, 420, 420, 1003, 1003,
+ 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
+ 1003, 1003, 1005, 420, 424, 680, 680, 680, 680, 424,
+ 424, 1008, 424, 424, 424, 680, 680, 425, 424, 424,
+ 831, 1009, 680, 424, 424, 424, 424, 1008, 1008, 1008,
+
+ 1008, 1008, 1008, 1008, 1008, 424, 424, 424, 1008, 1008,
+ 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
+ 1008, 1008, 832, 424, 324, 681, 681, 681, 681, 324,
+ 324, 1012, 324, 324, 324, 681, 681, 325, 324, 324,
+ 683, 1013, 681, 324, 324, 324, 324, 1012, 1012, 1012,
+ 1012, 1012, 1012, 1012, 1012, 324, 324, 324, 1012, 1012,
+ 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
+ 1012, 1012, 685, 324, 424, 1016, 1016, 1016, 1016, 424,
+ 424, 1200, 424, 424, 424, 424, 424, 425, 424, 424,
+ 1201, 424, 424, 424, 424, 424, 424, 1200, 1200, 1200,
+
+ 1200, 1200, 1200, 1200, 1200, 424, 424, 424, 1200, 1200,
+ 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
+ 1200, 1200, 424, 424, 324, 502, 502, 502, 502, 324,
+ 324, 581, 324, 324, 324, 324, 324, 325, 324, 324,
+ 582, 324, 324, 324, 324, 324, 324, 581, 581, 581,
+ 581, 581, 581, 581, 581, 324, 324, 324, 581, 581,
+ 581, 581, 581, 581, 581, 581, 581, 581, 581, 581,
+ 581, 581, 324, 324, 326, 1022, 1209, 1022, 1022, 326,
+ 326, 1210, 326, 326, 326, 326, 326, 326, 326, 326,
+ 1211, 326, 326, 326, 326, 326, 326, 1210, 1210, 1210,
+
+ 1210, 1210, 1210, 1210, 1210, 326, 326, 326, 1210, 1210,
+ 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
+ 1210, 1210, 326, 326, 248, 336, 336, 336, 336, 248,
+ 377, 248, 248, 248, 248, 336, 336, 249, 248, 248,
+ 378, 248, 377, 248, 248, 248, 248, 377, 377, 377,
+ 377, 377, 377, 377, 377, 248, 248, 248, 377, 377,
+ 377, 377, 377, 377, 377, 377, 377, 377, 377, 377,
+ 377, 377, 377, 248, 599, 1039, 1039, 1039, 1039, 599,
+ 1038, 599, 599, 599, 599, 1039, 1039, 600, 599, 599,
+ 1046, 599, 1038, 599, 599, 599, 599, 1038, 1038, 1038,
+
+ 1038, 1038, 1038, 1038, 1038, 599, 599, 599, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 599, 599, 862, 862, 862, 862, 599,
+ 599, 1061, 599, 862, 599, 599, 857, 1062, 862, 1063,
+ 1064, 1065, 862, 599, 599, 862, 599, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 862, 599, 862, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 599, 599, 599, 712, 712, 712, 712, 599,
+ 599, 1044, 599, 856, 599, 599, 857, 858, 856, 859,
+ 860, 1045, 862, 599, 599, 856, 599, 1044, 1044, 1044,
+
+ 1044, 1044, 1044, 1044, 1044, 856, 599, 856, 1044, 1044,
+ 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044,
+ 1044, 1044, 599, 599, 1058, 5005, 1221, 4976, 5006, 1817,
+ 5076, 1039, 1222, 1222, 1222, 1222, 1185, 1186, 1185, 1185,
+ 1971, 114, 1462, 1222, 1222, 1222, 1222, 1222, 495, 1222,
+ 1232, 1188, 1464, 5143, 1968, 1465, 1222, 855, 516, 1082,
+ 1082, 1961, 5143, 5105, 1479, 1969, 5106, 861, 1928, 1481,
+ 1505, 1505, 1482, 855, 855, 855, 855, 855, 855, 855,
+ 855, 5143, 5143, 1189, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855, 710, 1225,
+
+ 1225, 1225, 1225, 710, 710, 1226, 710, 1227, 710, 710,
+ 1228, 1229, 1227, 1230, 860, 1231, 1232, 710, 710, 1227,
+ 710, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1227,
+ 710, 1227, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
+ 1226, 1226, 1226, 1226, 1226, 1226, 710, 710, 709, 709,
+ 709, 709, 5143, 169, 115, 872, 116, 5143, 168, 850,
+ 450, 116, 118, 1233, 120, 852, 1486, 5143, 116, 1732,
+ 853, 853, 853, 853, 853, 853, 853, 853, 116, 5143,
+ 116, 853, 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 169, 1058, 5060, 1059, 4717,
+
+ 5118, 1281, 4719, 381, 1060, 1060, 1060, 1060, 354, 354,
+ 354, 354, 1761, 1975, 518, 1060, 1060, 1060, 1060, 1060,
+ 188, 1060, 1494, 356, 1976, 5143, 898, 1262, 1060, 1236,
+ 735, 1281, 712, 1988, 5143, 4717, 1504, 2002, 4719, 1237,
+ 2003, 736, 1761, 1235, 1090, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 5143, 5143, 357, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 707, 1055, 1055, 1055, 1055, 707, 707, 1238, 707, 1055,
+ 707, 707, 1050, 1239, 1055, 1240, 1241, 1242, 1055, 707,
+ 707, 1055, 707, 1238, 1238, 1238, 1238, 1238, 1238, 1238,
+
+ 1238, 1055, 707, 1055, 1238, 1238, 1238, 1238, 1238, 1238,
+ 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 707, 707,
+ 1245, 1510, 1246, 1225, 5143, 862, 5143, 344, 1247, 1247,
+ 1247, 1247, 2005, 516, 1712, 2006, 1480, 2007, 537, 1247,
+ 1247, 1247, 1247, 1247, 2020, 1247, 4717, 2021, 5119, 4719,
+ 5143, 5142, 1247, 248, 610, 610, 610, 610, 248, 248,
+ 878, 248, 610, 248, 248, 605, 730, 610, 887, 732,
+ 1071, 610, 248, 248, 610, 248, 1072, 1072, 1072, 1072,
+ 878, 878, 878, 878, 610, 248, 610, 1072, 1072, 1072,
+ 1072, 1072, 878, 1072, 878, 878, 878, 878, 878, 878,
+
+ 1072, 248, 248, 731, 308, 879, 535, 5143, 1147, 5143,
+ 1360, 878, 878, 878, 878, 744, 344, 1330, 745, 1816,
+ 1331, 1819, 878, 878, 878, 878, 878, 1570, 878, 5143,
+ 1571, 5143, 5143, 5143, 5143, 878, 306, 872, 872, 872,
+ 872, 306, 306, 1073, 306, 872, 306, 306, 868, 1074,
+ 872, 1075, 1251, 1076, 872, 306, 306, 872, 306, 1073,
+ 1073, 1073, 1073, 1073, 1073, 1073, 1073, 872, 306, 872,
+ 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073,
+ 1073, 1073, 1073, 1073, 306, 306, 729, 5143, 5143, 5143,
+ 961, 5143, 5143, 5143, 5143, 5143, 733, 662, 662, 662,
+
+ 662, 1589, 729, 729, 729, 729, 729, 729, 729, 729,
+ 5143, 5143, 814, 729, 729, 729, 729, 729, 729, 729,
+ 729, 729, 729, 729, 729, 729, 729, 887, 535, 888,
+ 961, 5143, 1380, 5143, 468, 889, 889, 889, 889, 1545,
+ 1952, 1589, 1546, 1842, 815, 642, 889, 889, 889, 889,
+ 889, 2065, 889, 5143, 1338, 5143, 5143, 5143, 5143, 889,
+ 213, 1082, 1082, 1082, 1082, 213, 382, 337, 213, 338,
+ 213, 381, 1256, 340, 338, 341, 1257, 343, 1258, 213,
+ 213, 338, 213, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 338, 213, 338, 1259, 1259, 1259, 1259, 1259, 1259,
+
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 382, 213,
+ 517, 890, 1082, 890, 890, 517, 517, 1260, 517, 1084,
+ 517, 517, 1085, 1086, 1084, 1087, 1088, 1261, 1090, 517,
+ 517, 1084, 517, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1084, 517, 1084, 1260, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 517, 517,
+ 1083, 121, 1380, 961, 5143, 5143, 5143, 5143, 5143, 5143,
+ 1089, 5143, 634, 1842, 1589, 635, 1083, 1083, 1083, 1083,
+ 1083, 1083, 1083, 1083, 5143, 5143, 5143, 1083, 1083, 1083,
+ 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+
+ 1083, 517, 1262, 1263, 1262, 1262, 517, 1264, 517, 517,
+ 517, 517, 1262, 1262, 518, 517, 517, 1265, 517, 1264,
+ 517, 517, 517, 517, 1264, 1264, 1264, 1264, 1264, 1264,
+ 1264, 1264, 517, 517, 517, 1264, 1264, 1264, 1264, 1264,
+ 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264,
+ 517, 611, 1266, 1267, 1266, 1266, 611, 611, 1268, 611,
+ 1269, 611, 611, 1270, 1271, 1269, 1272, 1273, 1274, 1275,
+ 611, 611, 1269, 611, 1268, 1268, 1268, 1268, 1268, 1268,
+ 1268, 1268, 1269, 611, 1269, 1268, 1268, 1268, 1268, 1268,
+ 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 611,
+
+ 611, 1278, 449, 1279, 2083, 5143, 812, 5143, 1408, 1280,
+ 1280, 1280, 1280, 777, 2089, 2084, 1142, 1407, 2085, 2131,
+ 1280, 1280, 1280, 1280, 1280, 2090, 1280, 5143, 2091, 5143,
+ 5143, 5143, 5143, 1280, 517, 1090, 1281, 1090, 1090, 517,
+ 517, 1282, 517, 1090, 517, 517, 1085, 1283, 1090, 1284,
+ 1285, 1286, 1090, 517, 517, 1090, 517, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1090, 517, 1090, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 1282, 517, 517, 250, 614, 709, 614, 614, 250,
+ 250, 891, 250, 738, 250, 250, 739, 738, 738, 895,
+
+ 741, 1091, 743, 250, 250, 738, 250, 1092, 1092, 1092,
+ 1092, 891, 891, 891, 891, 738, 250, 738, 1092, 1092,
+ 1092, 1092, 1092, 891, 1092, 891, 891, 891, 891, 891,
+ 891, 1092, 250, 250, 121, 121, 121, 121, 5143, 5143,
+ 5143, 1581, 121, 5143, 5143, 117, 121, 121, 177, 178,
+ 217, 121, 2095, 5143, 121, 1588, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 121, 5143, 121, 250, 743, 898,
+ 743, 743, 250, 250, 1096, 250, 743, 250, 250, 739,
+ 743, 743, 900, 901, 1097, 743, 250, 250, 743, 250,
+ 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 743, 250,
+
+ 743, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096,
+ 1096, 1096, 1096, 1096, 1096, 250, 250, 1100, 5143, 1289,
+ 5143, 5143, 986, 5143, 662, 1290, 1290, 1290, 1290, 1415,
+ 1644, 1415, 1415, 1410, 2102, 1179, 1290, 1290, 1290, 1290,
+ 1290, 819, 1290, 898, 1645, 2103, 5143, 1601, 1984, 1290,
+ 899, 2111, 1408, 986, 2105, 5143, 5143, 2106, 2108, 5143,
+ 1101, 2109, 2112, 2131, 1410, 1389, 1102, 1102, 1102, 1102,
+ 899, 899, 899, 899, 5143, 5143, 1646, 1102, 1102, 1102,
+ 1102, 1102, 899, 1102, 899, 899, 899, 899, 899, 899,
+ 1102, 452, 746, 903, 746, 746, 452, 452, 1103, 452,
+
+ 905, 452, 452, 906, 907, 905, 908, 909, 1104, 911,
+ 452, 452, 905, 452, 1103, 1103, 1103, 1103, 1103, 1103,
+ 1103, 1103, 905, 452, 905, 1103, 1103, 1103, 1103, 1103,
+ 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 452,
+ 452, 1118, 1849, 1292, 659, 5143, 353, 5143, 1177, 1293,
+ 1293, 1293, 1293, 1850, 1858, 2126, 2121, 560, 2127, 1421,
+ 1293, 1293, 1293, 1293, 1293, 1859, 1293, 5143, 2132, 5143,
+ 5143, 5143, 5143, 1293, 452, 1105, 1082, 1105, 1105, 452,
+ 1106, 452, 452, 452, 452, 1105, 1105, 453, 452, 452,
+ 1107, 452, 1106, 452, 452, 452, 452, 1106, 1106, 1106,
+
+ 1106, 1106, 1106, 1106, 1106, 452, 452, 452, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 452, 904, 183, 493, 680, 5143, 5143,
+ 5143, 5143, 5143, 5143, 910, 5143, 2133, 819, 1195, 2134,
+ 904, 904, 904, 904, 904, 904, 904, 904, 5143, 5143,
+ 5143, 904, 904, 904, 904, 904, 904, 904, 904, 904,
+ 904, 904, 904, 904, 904, 213, 308, 308, 308, 308,
+ 213, 213, 337, 213, 338, 213, 213, 339, 340, 338,
+ 341, 342, 343, 344, 213, 213, 338, 213, 337, 337,
+ 337, 337, 337, 337, 337, 337, 338, 213, 338, 337,
+
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 213, 213, 617, 1296, 1297, 1296, 1296,
+ 617, 617, 1298, 617, 1299, 617, 617, 1300, 1301, 1299,
+ 1302, 909, 1303, 1304, 617, 617, 1299, 617, 1298, 1298,
+ 1298, 1298, 1298, 1298, 1298, 1298, 1299, 617, 1299, 1298,
+ 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
+ 1298, 1298, 1298, 617, 617, 215, 524, 619, 524, 524,
+ 215, 215, 620, 215, 621, 215, 215, 622, 1305, 621,
+ 623, 1306, 625, 626, 215, 215, 621, 215, 620, 620,
+ 620, 620, 620, 620, 620, 620, 621, 215, 621, 620,
+
+ 620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
+ 620, 620, 620, 215, 215, 1118, 1181, 1119, 1858, 5143,
+ 1435, 5143, 1016, 1120, 1120, 1120, 1120, 1182, 353, 1859,
+ 1415, 2164, 2139, 1681, 1120, 1120, 1120, 1120, 1120, 2141,
+ 1120, 5143, 2142, 5143, 5143, 5143, 5143, 1120, 452, 911,
+ 1121, 911, 911, 452, 452, 1122, 452, 911, 452, 452,
+ 906, 1123, 911, 1124, 1125, 1126, 911, 452, 452, 911,
+ 452, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 911,
+ 452, 911, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 452, 452, 1307, 1875,
+
+ 502, 502, 5143, 5143, 5143, 5143, 5143, 5143, 1308, 5143,
+ 1876, 839, 839, 2143, 1307, 1307, 1307, 1307, 1307, 1307,
+ 1307, 1307, 5143, 5143, 5143, 1307, 1307, 1307, 1307, 1307,
+ 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 522,
+ 1117, 1309, 1117, 1117, 522, 522, 1310, 522, 1117, 522,
+ 522, 1112, 1311, 1117, 1312, 1313, 1314, 1117, 522, 522,
+ 1117, 522, 1310, 1310, 1310, 1310, 1310, 1310, 1310, 1310,
+ 1117, 522, 1117, 1310, 1310, 1310, 1310, 1310, 1310, 1310,
+ 1310, 1310, 1310, 1310, 1310, 1310, 1310, 522, 522, 1317,
+ 659, 1318, 2150, 1453, 305, 1453, 1453, 1319, 1319, 1319,
+
+ 1319, 2144, 2166, 2151, 2145, 435, 1002, 854, 1319, 1319,
+ 1319, 1319, 1319, 2167, 1319, 5143, 1680, 5143, 1459, 5143,
+ 5143, 1319, 215, 626, 755, 626, 626, 215, 215, 916,
+ 215, 626, 215, 215, 622, 626, 626, 920, 758, 1127,
+ 626, 215, 215, 626, 215, 1128, 1128, 1128, 1128, 916,
+ 916, 916, 916, 626, 215, 626, 1128, 1128, 1128, 1128,
+ 1128, 916, 1128, 916, 916, 916, 916, 916, 916, 1128,
+ 215, 215, 213, 344, 344, 344, 344, 213, 213, 398,
+ 213, 344, 213, 213, 339, 1320, 344, 400, 1321, 402,
+ 344, 213, 213, 344, 213, 398, 398, 398, 398, 398,
+
+ 398, 398, 398, 344, 213, 344, 398, 398, 398, 398,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 213, 213, 944, 1322, 1322, 1322, 1322, 944, 944, 1323,
+ 944, 1324, 944, 944, 1325, 1326, 1324, 1327, 1129, 1328,
+ 1329, 944, 944, 1324, 944, 1323, 1323, 1323, 1323, 1323,
+ 1323, 1323, 1323, 1324, 944, 1324, 1323, 1323, 1323, 1323,
+ 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323, 1323,
+ 944, 944, 255, 345, 345, 345, 345, 255, 255, 403,
+ 255, 345, 255, 255, 404, 1332, 345, 406, 1333, 408,
+ 345, 255, 255, 345, 255, 403, 403, 403, 403, 403,
+
+ 403, 403, 403, 345, 255, 345, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
+ 255, 255, 536, 948, 1121, 948, 948, 536, 536, 1336,
+ 536, 1136, 536, 536, 1137, 1138, 1136, 1139, 1140, 1337,
+ 1142, 536, 536, 1136, 536, 1336, 1336, 1336, 1336, 1336,
+ 1336, 1336, 1336, 1136, 536, 1136, 1336, 1336, 1336, 1336,
+ 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336,
+ 536, 536, 1135, 681, 1460, 1039, 5143, 5143, 5143, 5143,
+ 5143, 5143, 1141, 5143, 2176, 1727, 1462, 2177, 1135, 1135,
+ 1135, 1135, 1135, 1135, 1135, 1135, 5143, 5143, 5143, 1135,
+
+ 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1135, 536, 1338, 1281, 1338, 1338, 536, 1339,
+ 536, 536, 536, 536, 1338, 1338, 537, 536, 536, 1340,
+ 536, 1339, 536, 536, 536, 536, 1339, 1339, 1339, 1339,
+ 1339, 1339, 1339, 1339, 536, 536, 536, 1339, 1339, 1339,
+ 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
+ 1339, 1339, 536, 636, 1341, 1309, 1341, 1341, 636, 636,
+ 1342, 636, 1343, 636, 636, 1344, 1345, 1343, 1346, 1347,
+ 1348, 1349, 636, 636, 1343, 636, 1342, 1342, 1342, 1342,
+ 1342, 1342, 1342, 1342, 1343, 636, 1343, 1342, 1342, 1342,
+
+ 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342,
+ 1342, 636, 636, 1350, 502, 1351, 1207, 5143, 854, 5143,
+ 1478, 1352, 1352, 1352, 1352, 2181, 1922, 1208, 2182, 1459,
+ 1445, 2229, 1352, 1352, 1352, 1352, 1352, 1923, 1352, 5143,
+ 2183, 5143, 5143, 5143, 5143, 1352, 536, 1142, 1353, 1142,
+ 1142, 536, 536, 1354, 536, 1142, 536, 536, 1137, 1355,
+ 1142, 1356, 1357, 1358, 1142, 536, 536, 1142, 536, 1354,
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1142, 536, 1142,
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1354, 536, 536, 257, 638, 755, 638,
+
+ 638, 257, 257, 949, 257, 779, 257, 257, 780, 779,
+ 779, 954, 782, 1143, 648, 257, 257, 779, 257, 1144,
+ 1144, 1144, 1144, 949, 949, 949, 949, 779, 257, 779,
+ 1144, 1144, 1144, 1144, 1144, 949, 1144, 949, 949, 949,
+ 949, 949, 949, 1144, 257, 257, 784, 1147, 1147, 1147,
+ 1147, 784, 1359, 1148, 784, 961, 784, 1360, 1361, 1150,
+ 961, 1151, 1362, 1153, 1363, 784, 784, 961, 784, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 961, 784, 961,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1359, 784, 784, 961, 961, 961,
+
+ 961, 784, 784, 1365, 784, 961, 784, 784, 1149, 1150,
+ 961, 1151, 1152, 1366, 961, 784, 784, 961, 784, 1365,
+ 1365, 1365, 1365, 1365, 1365, 1365, 1365, 961, 784, 961,
+ 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365,
+ 1365, 1365, 1365, 1365, 784, 784, 784, 1360, 1360, 1360,
+ 1360, 784, 1359, 784, 784, 784, 784, 1360, 1360, 785,
+ 784, 784, 1367, 784, 1359, 784, 784, 784, 784, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 784, 784, 784,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 784, 957, 1368, 1368, 1368,
+
+ 1368, 957, 957, 1369, 957, 1368, 957, 957, 1370, 1371,
+ 1368, 1372, 1373, 1374, 1368, 957, 957, 1368, 957, 1369,
+ 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1368, 957, 1368,
+ 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369,
+ 1369, 1369, 1369, 1369, 957, 957, 1148, 5143, 5143, 5143,
+ 862, 5143, 5143, 5143, 5143, 5143, 1153, 659, 659, 659,
+ 659, 1480, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 5143, 5143, 810, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1377, 709, 1378,
+ 1460, 5143, 1817, 5143, 610, 1379, 1379, 1379, 1379, 2187,
+
+ 1938, 1727, 2188, 1971, 811, 1081, 1379, 1379, 1379, 1379,
+ 1379, 1939, 1379, 5143, 2198, 5143, 5143, 5143, 5143, 1379,
+ 641, 1154, 1380, 1154, 1154, 641, 641, 1381, 641, 1154,
+ 641, 641, 1382, 1383, 1154, 1384, 1385, 1386, 1154, 641,
+ 641, 1154, 641, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
+ 1381, 1154, 641, 1154, 1381, 1381, 1381, 1381, 1381, 1381,
+ 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 641, 641,
+ 550, 967, 1155, 967, 967, 550, 550, 1387, 550, 967,
+ 550, 550, 1157, 1158, 967, 1159, 1160, 1388, 967, 550,
+ 550, 967, 550, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
+
+ 1387, 967, 550, 967, 1387, 1387, 1387, 1387, 1387, 1387,
+ 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 550, 550,
+ 550, 1389, 1380, 1389, 1389, 550, 1390, 550, 550, 550,
+ 550, 1389, 1389, 551, 550, 550, 1391, 550, 1390, 550,
+ 550, 550, 550, 1390, 1390, 1390, 1390, 1390, 1390, 1390,
+ 1390, 550, 550, 550, 1390, 1390, 1390, 1390, 1390, 1390,
+ 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 550,
+ 646, 1392, 1393, 1392, 1392, 646, 646, 1394, 646, 1392,
+ 646, 646, 1395, 1396, 1392, 1397, 1398, 1399, 1392, 646,
+ 646, 1392, 646, 1394, 1394, 1394, 1394, 1394, 1394, 1394,
+
+ 1394, 1392, 646, 1392, 1394, 1394, 1394, 1394, 1394, 1394,
+ 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 646, 646,
+ 1156, 5143, 5143, 5143, 1039, 5143, 5143, 5143, 5143, 5143,
+ 1161, 1656, 1641, 1656, 1656, 1462, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 5143, 5143, 1877, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1400, 168, 1401, 1082, 5143, 1281, 5143, 1281, 1402,
+ 1402, 1402, 1402, 2199, 1225, 1505, 2200, 1761, 1878, 1761,
+ 1402, 1402, 1402, 1402, 1402, 1712, 1402, 5143, 1955, 5143,
+ 5143, 5143, 5143, 1402, 257, 648, 795, 648, 648, 257,
+
+ 257, 968, 257, 648, 257, 257, 780, 648, 648, 970,
+ 798, 1162, 648, 257, 257, 648, 257, 1163, 1163, 1163,
+ 1163, 968, 968, 968, 968, 648, 257, 648, 1163, 1163,
+ 1163, 1163, 1163, 968, 1163, 968, 968, 968, 968, 968,
+ 968, 1163, 257, 257, 414, 651, 800, 651, 651, 414,
+ 414, 801, 414, 414, 414, 414, 414, 802, 414, 414,
+ 803, 414, 414, 414, 414, 414, 414, 801, 801, 801,
+ 801, 801, 801, 801, 801, 414, 414, 414, 801, 801,
+ 801, 801, 801, 801, 801, 801, 801, 801, 801, 801,
+ 801, 801, 414, 414, 180, 287, 287, 287, 287, 180,
+
+ 180, 311, 180, 180, 180, 180, 180, 312, 180, 180,
+ 313, 180, 180, 180, 180, 180, 180, 311, 311, 311,
+ 311, 311, 311, 311, 311, 180, 180, 180, 311, 311,
+ 311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
+ 311, 311, 180, 180, 414, 414, 287, 414, 414, 414,
+ 414, 973, 414, 414, 414, 414, 414, 415, 414, 414,
+ 414, 973, 414, 414, 414, 414, 414, 973, 973, 973,
+ 973, 973, 973, 973, 973, 414, 414, 414, 973, 973,
+ 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
+ 973, 973, 414, 414, 554, 1164, 1165, 1164, 1164, 554,
+
+ 554, 1166, 554, 554, 554, 554, 554, 1167, 554, 554,
+ 1403, 554, 554, 554, 554, 554, 554, 1166, 1166, 1166,
+ 1166, 1166, 1166, 1166, 1166, 554, 554, 554, 1166, 1166,
+ 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166,
+ 1166, 1166, 554, 554, 187, 1177, 1177, 1177, 1177, 187,
+ 187, 316, 187, 187, 187, 187, 187, 188, 187, 187,
+ 1183, 187, 187, 187, 187, 187, 187, 316, 316, 316,
+ 316, 316, 316, 316, 316, 187, 187, 187, 316, 316,
+ 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
+ 316, 316, 1184, 187, 260, 493, 493, 493, 493, 260,
+
+ 260, 565, 260, 260, 260, 260, 260, 261, 260, 260,
+ 566, 260, 260, 260, 260, 260, 260, 565, 565, 565,
+ 565, 565, 565, 565, 565, 260, 260, 260, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 565, 565, 567, 260, 494, 1185, 1186, 1185, 1185, 494,
+ 494, 1187, 494, 494, 494, 494, 494, 495, 494, 494,
+ 1188, 1187, 494, 494, 494, 494, 494, 1187, 1187, 1187,
+ 1187, 1187, 1187, 1187, 1187, 494, 494, 494, 1187, 1187,
+ 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+ 1187, 1187, 1189, 494, 424, 680, 680, 680, 680, 424,
+
+ 424, 1436, 424, 424, 424, 680, 680, 425, 424, 424,
+ 831, 1437, 680, 424, 424, 424, 424, 1436, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1436, 424, 424, 424, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1436, 1436, 832, 424, 324, 681, 681, 681, 681, 324,
+ 324, 833, 324, 324, 324, 681, 681, 325, 324, 324,
+ 683, 324, 681, 324, 324, 324, 324, 833, 833, 833,
+ 833, 833, 833, 833, 833, 324, 324, 324, 833, 833,
+ 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
+ 833, 833, 685, 324, 426, 1205, 1432, 1205, 1205, 426,
+
+ 426, 1443, 426, 426, 426, 426, 426, 426, 426, 426,
+ 1444, 426, 426, 426, 426, 426, 426, 1443, 1443, 1443,
+ 1443, 1443, 1443, 1443, 1443, 426, 426, 426, 1443, 1443,
+ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443,
+ 1443, 1443, 426, 426, 324, 502, 502, 502, 502, 324,
+ 324, 581, 324, 324, 324, 324, 324, 325, 324, 324,
+ 582, 324, 324, 324, 324, 324, 324, 581, 581, 581,
+ 581, 581, 581, 581, 581, 324, 324, 324, 581, 581,
+ 581, 581, 581, 581, 581, 581, 581, 581, 581, 581,
+ 581, 581, 324, 324, 326, 1446, 1432, 1446, 1446, 326,
+
+ 326, 1447, 326, 326, 326, 1446, 1446, 326, 326, 326,
+ 1448, 1449, 1446, 326, 326, 326, 326, 1447, 1447, 1447,
+ 1447, 1447, 1447, 1447, 1447, 326, 326, 326, 1447, 1447,
+ 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
+ 1447, 1447, 1450, 326, 599, 712, 712, 712, 712, 599,
+ 599, 1044, 599, 856, 599, 599, 857, 858, 856, 1058,
+ 860, 1221, 862, 599, 599, 856, 599, 1222, 1222, 1222,
+ 1222, 1044, 1044, 1044, 1044, 856, 599, 856, 1222, 1222,
+ 1222, 1222, 1222, 1044, 1222, 1044, 1044, 1044, 1044, 1044,
+ 1044, 1222, 599, 599, 855, 5143, 5143, 5143, 516, 5143,
+
+ 5143, 5143, 859, 5143, 861, 662, 662, 662, 662, 877,
+ 855, 855, 855, 855, 855, 855, 855, 855, 5143, 5143,
+ 814, 855, 855, 855, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 855, 855, 859, 862, 1045, 535, 5143,
+ 862, 5143, 1147, 1044, 1044, 1044, 1044, 2224, 1232, 947,
+ 2225, 1480, 815, 1816, 1044, 1044, 1044, 1044, 1044, 1961,
+ 1044, 5143, 2230, 5143, 5143, 5143, 5143, 1044, 599, 1039,
+ 1039, 1039, 1039, 599, 1038, 599, 599, 599, 599, 1039,
+ 1039, 600, 599, 599, 1046, 599, 1038, 599, 599, 599,
+ 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 599,
+
+ 599, 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 599, 710, 1225,
+ 1225, 1225, 1225, 710, 710, 1226, 710, 1227, 710, 710,
+ 1228, 1229, 1227, 1230, 1463, 1231, 1232, 710, 710, 1227,
+ 710, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1227,
+ 710, 1227, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
+ 1226, 1226, 1226, 1226, 1226, 1226, 710, 710, 1058, 121,
+ 1059, 2232, 5143, 1360, 5143, 961, 1060, 1060, 1060, 1060,
+ 1719, 2235, 2233, 1720, 1819, 1726, 1589, 1060, 1060, 1060,
+ 1060, 1060, 2236, 1060, 5143, 2237, 5143, 5143, 5143, 5143,
+
+ 1060, 599, 862, 862, 862, 862, 599, 599, 1061, 599,
+ 862, 599, 599, 857, 1062, 862, 1063, 1064, 1065, 862,
+ 599, 599, 862, 599, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 862, 599, 862, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 599,
+ 599, 1236, 5143, 5143, 5143, 1360, 5143, 5143, 5143, 5143,
+ 5143, 1237, 493, 493, 493, 493, 1819, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 5143, 5143, 566, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1245, 610, 1469, 1380, 5143, 1380, 5143, 961,
+
+ 1470, 1470, 1470, 1470, 1730, 1938, 1842, 1731, 1842, 567,
+ 1589, 1470, 1470, 1470, 1470, 1470, 1939, 1470, 5143, 2238,
+ 5143, 5143, 5143, 5143, 1470, 710, 1232, 1232, 1232, 1232,
+ 710, 710, 1471, 710, 1232, 710, 710, 1228, 1472, 1232,
+ 1473, 1064, 1474, 1232, 710, 710, 1232, 710, 1471, 1471,
+ 1471, 1471, 1471, 1471, 1471, 1471, 1232, 710, 1232, 1471,
+ 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471,
+ 1471, 1471, 1471, 710, 710, 709, 709, 709, 709, 5143,
+ 169, 115, 336, 116, 5143, 168, 850, 531, 116, 118,
+ 1475, 120, 852, 2250, 5143, 116, 2251, 853, 853, 853,
+
+ 853, 853, 853, 853, 853, 116, 5143, 116, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 169, 1245, 1082, 1246, 1494, 5143, 812, 5143,
+ 1408, 1247, 1247, 1247, 1247, 2260, 709, 1988, 2261, 1407,
+ 2262, 2131, 1247, 1247, 1247, 1247, 1247, 1740, 1247, 5143,
+ 1741, 5143, 5143, 5143, 5143, 1247, 248, 336, 336, 336,
+ 336, 248, 377, 248, 248, 248, 248, 336, 336, 885,
+ 248, 248, 1484, 248, 377, 248, 248, 248, 248, 377,
+ 377, 377, 377, 377, 377, 377, 377, 248, 248, 248,
+ 377, 377, 377, 377, 377, 377, 377, 377, 377, 377,
+
+ 377, 377, 377, 377, 377, 248, 213, 381, 381, 381,
+ 381, 213, 382, 213, 213, 213, 213, 381, 381, 214,
+ 213, 213, 383, 213, 382, 213, 213, 213, 213, 382,
+ 382, 382, 382, 382, 382, 382, 382, 213, 213, 213,
+ 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
+ 382, 382, 382, 382, 382, 213, 213, 344, 344, 344,
+ 344, 213, 213, 398, 213, 344, 213, 213, 339, 399,
+ 344, 400, 401, 402, 344, 213, 213, 344, 213, 398,
+ 398, 398, 398, 398, 398, 398, 398, 344, 213, 344,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+
+ 398, 398, 398, 398, 213, 213, 213, 308, 308, 308,
+ 308, 213, 213, 379, 213, 338, 213, 213, 339, 340,
+ 338, 341, 342, 380, 344, 213, 213, 338, 213, 379,
+ 379, 379, 379, 379, 379, 379, 379, 338, 213, 338,
+ 379, 379, 379, 379, 379, 379, 379, 379, 379, 379,
+ 379, 379, 379, 379, 213, 213, 517, 890, 1082, 890,
+ 890, 517, 517, 1260, 517, 1084, 517, 517, 1085, 1086,
+ 1084, 1087, 1088, 1261, 1090, 517, 517, 1084, 517, 1260,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1084, 517, 1084,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+
+ 1260, 1260, 1260, 1260, 517, 517, 1278, 468, 1489, 1749,
+ 5143, 986, 5143, 662, 1490, 1490, 1490, 1490, 2281, 2311,
+ 2287, 2282, 1410, 1760, 1179, 1490, 1490, 1490, 1490, 1490,
+ 2312, 1490, 5143, 1105, 5143, 5143, 5143, 5143, 1490, 517,
+ 1262, 1263, 1262, 1262, 517, 1264, 517, 517, 517, 517,
+ 1262, 1262, 518, 517, 517, 1265, 517, 1264, 517, 517,
+ 517, 517, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264,
+ 517, 517, 517, 1264, 1264, 1264, 1264, 1264, 1264, 1264,
+ 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 517, 1083,
+ 516, 1408, 1177, 5143, 5143, 5143, 5143, 5143, 5143, 1089,
+
+ 5143, 2321, 2131, 1421, 2322, 1083, 1083, 1083, 1083, 1083,
+ 1083, 1083, 1083, 5143, 5143, 5143, 1083, 1083, 1083, 1083,
+ 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+ 213, 1082, 1082, 1082, 1082, 213, 382, 337, 213, 338,
+ 213, 381, 1256, 340, 338, 341, 1257, 343, 1258, 213,
+ 213, 338, 213, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 338, 213, 338, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 382, 213,
+ 734, 1493, 1494, 1493, 1493, 734, 734, 1495, 734, 1496,
+ 734, 734, 1497, 1498, 1496, 1499, 1088, 1500, 1501, 734,
+
+ 734, 1496, 734, 1495, 1495, 1495, 1495, 1495, 1495, 1495,
+ 1495, 1496, 734, 1496, 1495, 1495, 1495, 1495, 1495, 1495,
+ 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 734, 734,
+ 250, 614, 709, 614, 614, 250, 250, 737, 250, 738,
+ 250, 250, 739, 1502, 738, 740, 1503, 742, 743, 250,
+ 250, 738, 250, 737, 737, 737, 737, 737, 737, 737,
+ 737, 738, 250, 738, 737, 737, 737, 737, 737, 737,
+ 737, 737, 737, 737, 737, 737, 737, 737, 250, 250,
+ 1278, 308, 1279, 535, 5143, 662, 5143, 662, 1280, 1280,
+ 1280, 1280, 744, 345, 2338, 745, 1179, 2339, 1179, 1280,
+
+ 1280, 1280, 1280, 1280, 2351, 1280, 5143, 2352, 5143, 5143,
+ 5143, 5143, 1280, 517, 1090, 1281, 1090, 1090, 517, 517,
+ 1282, 517, 1090, 517, 517, 1085, 1283, 1090, 1284, 1285,
+ 1286, 1090, 517, 517, 1090, 517, 1282, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1090, 517, 1090, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 517, 517, 213, 1281, 1281, 1281, 1281, 213, 382,
+ 398, 213, 344, 213, 381, 1256, 399, 344, 400, 1506,
+ 402, 1258, 213, 213, 344, 213, 1507, 1507, 1507, 1507,
+ 1507, 1507, 1507, 1507, 344, 213, 344, 1507, 1507, 1507,
+
+ 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
+ 1507, 382, 213, 1508, 1232, 680, 1673, 5143, 5143, 5143,
+ 5143, 5143, 5143, 1509, 5143, 1961, 1195, 2485, 2362, 1508,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 5143, 5143, 5143,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 1508, 611, 1275, 1510, 1275, 1275, 611,
+ 611, 1511, 611, 1275, 611, 611, 1270, 1512, 1275, 1513,
+ 1514, 1515, 1275, 611, 611, 1275, 611, 1511, 1511, 1511,
+ 1511, 1511, 1511, 1511, 1511, 1275, 611, 1275, 1511, 1511,
+ 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1511,
+
+ 1511, 1511, 611, 611, 1518, 610, 1519, 308, 5143, 1891,
+ 5143, 1435, 1520, 1520, 1520, 1520, 2374, 345, 744, 2375,
+ 2488, 745, 2164, 1520, 1520, 1520, 1520, 1520, 2351, 1520,
+ 5143, 2352, 5143, 5143, 5143, 5143, 1520, 250, 743, 898,
+ 743, 743, 250, 250, 1096, 250, 743, 250, 250, 739,
+ 743, 743, 1100, 901, 1289, 743, 250, 250, 743, 250,
+ 1290, 1290, 1290, 1290, 1096, 1096, 1096, 1096, 743, 250,
+ 743, 1290, 1290, 1290, 1290, 1290, 1096, 1290, 1096, 1096,
+ 1096, 1096, 1096, 1096, 1290, 250, 250, 452, 746, 903,
+ 746, 746, 452, 452, 1103, 452, 905, 452, 452, 906,
+
+ 907, 905, 1118, 909, 1292, 911, 452, 452, 905, 452,
+ 1293, 1293, 1293, 1293, 1103, 1103, 1103, 1103, 905, 452,
+ 905, 1293, 1293, 1293, 1293, 1293, 1103, 1293, 1103, 1103,
+ 1103, 1103, 1103, 1103, 1293, 452, 452, 904, 2394, 5143,
+ 1016, 5143, 5143, 5143, 5143, 908, 5143, 910, 5143, 2395,
+ 305, 1681, 1815, 904, 904, 904, 904, 904, 904, 904,
+ 904, 435, 5143, 5143, 904, 904, 904, 904, 904, 904,
+ 904, 904, 904, 904, 904, 904, 904, 904, 337, 5143,
+ 5143, 5143, 681, 5143, 5143, 5143, 1919, 5143, 343, 659,
+ 659, 659, 659, 1018, 337, 337, 337, 337, 337, 337,
+
+ 337, 337, 5143, 5143, 810, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 908,
+ 2408, 1104, 1904, 5143, 1904, 5143, 854, 1103, 1103, 1103,
+ 1103, 2409, 961, 2502, 1818, 2502, 811, 1459, 1103, 1103,
+ 1103, 1103, 1103, 2419, 1103, 5143, 2420, 5143, 5143, 5143,
+ 5143, 1103, 452, 1105, 1082, 1105, 1105, 452, 1106, 452,
+ 452, 452, 452, 1105, 1105, 453, 452, 452, 1107, 452,
+ 1106, 452, 452, 452, 452, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 452, 452, 452, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+
+ 1106, 452, 617, 1296, 1297, 1296, 1296, 617, 617, 1298,
+ 617, 1299, 617, 617, 1300, 1301, 1299, 1302, 1525, 1303,
+ 1304, 617, 617, 1299, 617, 1298, 1298, 1298, 1298, 1298,
+ 1298, 1298, 1298, 1299, 617, 1299, 1298, 1298, 1298, 1298,
+ 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
+ 617, 617, 1118, 1581, 1119, 121, 5143, 1039, 5143, 712,
+ 1120, 1120, 1120, 1120, 2095, 2423, 1821, 2421, 1462, 1822,
+ 1235, 1120, 1120, 1120, 1120, 1120, 2424, 1120, 5143, 1596,
+ 5143, 5143, 5143, 5143, 1120, 452, 911, 1121, 911, 911,
+ 452, 452, 1122, 452, 911, 452, 452, 906, 1123, 911,
+
+ 1124, 1125, 1126, 911, 452, 452, 911, 452, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 911, 452, 911, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 452, 452, 1307, 5143, 5143, 5143, 854,
+ 5143, 5143, 5143, 5143, 5143, 1308, 659, 659, 659, 659,
+ 1459, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 5143,
+ 5143, 810, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307,
+ 1307, 1307, 1307, 1307, 1307, 1307, 1317, 1833, 1526, 1478,
+ 5143, 1460, 5143, 1817, 1527, 1527, 1527, 1527, 2428, 1581,
+ 2229, 1841, 1727, 811, 1971, 1527, 1527, 1527, 1527, 1527,
+
+ 2095, 1527, 5143, 2430, 5143, 5143, 5143, 5143, 1527, 617,
+ 1304, 1528, 1304, 1304, 617, 617, 1529, 617, 1304, 617,
+ 617, 1300, 1530, 1304, 1531, 1125, 1532, 1304, 617, 617,
+ 1304, 617, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
+ 1304, 617, 1304, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
+ 1529, 1529, 1529, 1529, 1529, 1529, 1529, 617, 617, 215,
+ 524, 619, 524, 524, 215, 215, 620, 215, 621, 215,
+ 215, 622, 1533, 621, 623, 1534, 625, 626, 215, 215,
+ 621, 215, 620, 620, 620, 620, 620, 620, 620, 620,
+ 621, 215, 621, 620, 620, 620, 620, 620, 620, 620,
+
+ 620, 620, 620, 620, 620, 620, 620, 215, 215, 1317,
+ 610, 1318, 345, 5143, 1460, 5143, 1082, 1319, 1319, 1319,
+ 1319, 2439, 659, 965, 2440, 1727, 966, 1505, 1319, 1319,
+ 1319, 1319, 1319, 2448, 1319, 5143, 2449, 5143, 5143, 5143,
+ 5143, 1319, 283, 449, 449, 449, 449, 283, 283, 527,
+ 283, 449, 283, 283, 445, 528, 449, 529, 627, 530,
+ 449, 283, 283, 449, 283, 527, 527, 527, 527, 527,
+ 527, 527, 527, 449, 283, 449, 527, 527, 527, 527,
+ 527, 527, 527, 527, 527, 527, 527, 527, 527, 527,
+ 283, 283, 533, 923, 923, 923, 923, 533, 533, 924,
+
+ 533, 925, 533, 533, 926, 927, 925, 928, 929, 930,
+ 931, 533, 533, 925, 533, 924, 924, 924, 924, 924,
+ 924, 924, 924, 925, 533, 925, 924, 924, 924, 924,
+ 924, 924, 924, 924, 924, 924, 924, 924, 924, 924,
+ 533, 533, 395, 2451, 396, 662, 5143, 1478, 5143, 1281,
+ 397, 397, 397, 397, 2452, 2467, 2462, 2122, 2229, 2463,
+ 1761, 397, 397, 397, 397, 397, 2468, 397, 5143, 1185,
+ 5143, 5143, 5143, 5143, 397, 213, 344, 344, 344, 344,
+ 213, 213, 398, 213, 344, 213, 213, 339, 399, 344,
+ 400, 401, 402, 344, 213, 213, 344, 213, 398, 398,
+
+ 398, 398, 398, 398, 398, 398, 344, 213, 344, 398,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 398, 398, 213, 213, 944, 1329, 1329, 1329, 1329,
+ 944, 944, 1540, 944, 1329, 944, 944, 1325, 1541, 1329,
+ 1542, 1543, 1544, 1329, 944, 944, 1329, 944, 1540, 1540,
+ 1540, 1540, 1540, 1540, 1540, 1540, 1329, 944, 1329, 1540,
+ 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540, 1540,
+ 1540, 1540, 1540, 944, 944, 536, 948, 1121, 948, 948,
+ 536, 536, 1336, 536, 1136, 536, 536, 1137, 1138, 1136,
+ 1139, 1140, 1337, 1142, 536, 536, 1136, 536, 1336, 1336,
+
+ 1336, 1336, 1336, 1336, 1336, 1336, 1136, 536, 1136, 1336,
+ 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336,
+ 1336, 1336, 1336, 536, 536, 1350, 662, 1548, 2476, 5143,
+ 712, 5143, 516, 1549, 1549, 1549, 1549, 2473, 680, 2477,
+ 2474, 1235, 1425, 877, 1549, 1549, 1549, 1549, 1549, 2480,
+ 1549, 5143, 2481, 5143, 5143, 5143, 5143, 1549, 536, 1338,
+ 1281, 1338, 1338, 536, 1339, 536, 536, 536, 536, 1338,
+ 1338, 537, 536, 536, 1340, 536, 1339, 536, 536, 536,
+ 536, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 536,
+ 536, 536, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
+
+ 1339, 1339, 1339, 1339, 1339, 1339, 1339, 536, 1135, 2490,
+ 1478, 535, 5143, 5143, 5143, 5143, 5143, 5143, 1141, 5143,
+ 2491, 2229, 947, 2492, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 5143, 5143, 5143, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 776,
+ 1552, 1528, 1552, 1552, 776, 776, 1553, 776, 1554, 776,
+ 776, 1555, 1556, 1554, 1557, 1140, 1558, 1559, 776, 776,
+ 1554, 776, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553,
+ 1554, 776, 1554, 1553, 1553, 1553, 1553, 1553, 1553, 1553,
+ 1553, 1553, 1553, 1553, 1553, 1553, 1553, 776, 776, 257,
+
+ 638, 755, 638, 638, 257, 257, 778, 257, 779, 257,
+ 257, 780, 1560, 779, 781, 1561, 783, 648, 257, 257,
+ 779, 257, 778, 778, 778, 778, 778, 778, 778, 778,
+ 779, 257, 779, 778, 778, 778, 778, 778, 778, 778,
+ 778, 778, 778, 778, 778, 778, 778, 257, 257, 1350,
+ 2166, 1351, 681, 5143, 516, 5143, 1147, 1352, 1352, 1352,
+ 1352, 2167, 1441, 2499, 2493, 877, 2500, 1816, 1352, 1352,
+ 1352, 1352, 1352, 1442, 1352, 5143, 1682, 5143, 5143, 5143,
+ 5143, 1352, 536, 1142, 1353, 1142, 1142, 536, 536, 1354,
+ 536, 1142, 536, 536, 1137, 1355, 1142, 1356, 1357, 1358,
+
+ 1142, 536, 536, 1142, 536, 1354, 1354, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1142, 536, 1142, 1354, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+ 536, 536, 1562, 2506, 1817, 1360, 5143, 5143, 5143, 5143,
+ 5143, 5143, 1563, 5143, 2507, 1971, 1819, 2508, 1562, 1562,
+ 1562, 1562, 1562, 1562, 1562, 1562, 5143, 5143, 5143, 1562,
+ 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562,
+ 1562, 1562, 1562, 636, 1349, 1564, 1349, 1349, 636, 636,
+ 1565, 636, 1349, 636, 636, 1344, 1566, 1349, 1567, 1568,
+ 1569, 1349, 636, 636, 1349, 636, 1565, 1565, 1565, 1565,
+
+ 1565, 1565, 1565, 1565, 1349, 636, 1349, 1565, 1565, 1565,
+ 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565, 1565,
+ 1565, 636, 636, 1572, 709, 1573, 709, 5143, 1147, 5143,
+ 1360, 1574, 1574, 1574, 1574, 2523, 308, 2527, 2524, 1816,
+ 2528, 1819, 1574, 1574, 1574, 1574, 1574, 2545, 1574, 5143,
+ 2546, 5143, 5143, 5143, 5143, 1574, 784, 1360, 1360, 1360,
+ 1360, 784, 1359, 784, 784, 784, 784, 1360, 1360, 785,
+ 784, 784, 1367, 784, 1359, 784, 784, 784, 784, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 784, 784, 784,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+
+ 1359, 1359, 1359, 1359, 1359, 784, 784, 961, 961, 961,
+ 961, 784, 784, 1148, 784, 961, 784, 784, 1149, 1150,
+ 961, 1151, 1152, 1153, 961, 784, 784, 961, 784, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 961, 784, 961,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 784, 784, 1365, 5143, 5143, 5143,
+ 1380, 5143, 5143, 5143, 5143, 5143, 1366, 1879, 2146, 1879,
+ 1879, 1842, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365,
+ 5143, 5143, 2147, 1365, 1365, 1365, 1365, 1365, 1365, 1365,
+ 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1377, 712, 1577,
+
+ 610, 5143, 812, 5143, 1408, 1578, 1578, 1578, 1578, 1953,
+ 1232, 1081, 1954, 1407, 2148, 2131, 1578, 1578, 1578, 1578,
+ 1578, 1961, 1578, 5143, 2230, 5143, 5143, 5143, 5143, 1578,
+ 959, 1581, 1581, 1581, 1581, 959, 959, 1582, 959, 1581,
+ 959, 959, 1583, 1584, 1581, 1585, 1152, 1586, 1581, 959,
+ 959, 1581, 959, 1582, 1582, 1582, 1582, 1582, 1582, 1582,
+ 1582, 1581, 959, 1581, 1582, 1582, 1582, 1582, 1582, 1582,
+ 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 959, 959,
+ 898, 898, 898, 898, 5143, 169, 176, 2274, 121, 5143,
+ 168, 850, 548, 121, 177, 1587, 179, 852, 2572, 5143,
+
+ 121, 1991, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
+ 121, 5143, 121, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
+ 1095, 1095, 1095, 1095, 1095, 1095, 1095, 169, 1377, 2232,
+ 1378, 2587, 5143, 1408, 5143, 986, 1379, 1379, 1379, 1379,
+ 2233, 2605, 2588, 2585, 2131, 1970, 1410, 1379, 1379, 1379,
+ 1379, 1379, 2606, 1379, 5143, 1262, 5143, 5143, 5143, 5143,
+ 1379, 255, 1380, 1380, 1380, 1380, 255, 469, 403, 255,
+ 345, 255, 468, 1590, 405, 345, 406, 1591, 408, 1592,
+ 255, 255, 345, 255, 1593, 1593, 1593, 1593, 1593, 1593,
+ 1593, 1593, 345, 255, 345, 1593, 1593, 1593, 1593, 1593,
+
+ 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 469,
+ 255, 641, 1154, 1380, 1154, 1154, 641, 641, 1594, 641,
+ 1154, 641, 641, 1382, 1383, 1154, 1384, 1385, 1595, 1154,
+ 641, 641, 1154, 641, 1594, 1594, 1594, 1594, 1594, 1594,
+ 1594, 1594, 1154, 641, 1154, 1594, 1594, 1594, 1594, 1594,
+ 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 641,
+ 641, 641, 1596, 1597, 1596, 1596, 641, 1598, 641, 641,
+ 641, 641, 1596, 1596, 642, 641, 641, 1599, 641, 1598,
+ 641, 641, 641, 641, 1598, 1598, 1598, 1598, 1598, 1598,
+ 1598, 1598, 641, 641, 641, 1598, 1598, 1598, 1598, 1598,
+
+ 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
+ 641, 788, 1600, 1601, 1600, 1600, 788, 788, 1602, 788,
+ 1600, 788, 788, 1603, 1604, 1600, 1605, 1606, 1607, 1600,
+ 788, 788, 1600, 788, 1602, 1602, 1602, 1602, 1602, 1602,
+ 1602, 1602, 1600, 788, 1600, 1602, 1602, 1602, 1602, 1602,
+ 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 1602, 788,
+ 788, 1381, 5143, 5143, 5143, 662, 5143, 5143, 5143, 5143,
+ 5143, 1386, 2122, 1860, 2122, 2122, 1179, 1381, 1381, 1381,
+ 1381, 1381, 1381, 1381, 1381, 5143, 5143, 2124, 1381, 1381,
+ 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
+
+ 1381, 1381, 1610, 336, 1611, 812, 5143, 986, 5143, 986,
+ 1612, 1612, 1612, 1612, 2614, 1494, 1407, 2615, 1410, 2125,
+ 1410, 1612, 1612, 1612, 1612, 1612, 1988, 1612, 5143, 2262,
+ 5143, 5143, 5143, 5143, 1612, 550, 967, 1155, 967, 967,
+ 550, 550, 1387, 550, 967, 550, 550, 1157, 1158, 967,
+ 1159, 1160, 1388, 967, 550, 550, 967, 550, 1387, 1387,
+ 1387, 1387, 1387, 1387, 1387, 1387, 967, 550, 967, 1387,
+ 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
+ 1387, 1387, 1387, 550, 550, 1400, 1281, 1613, 2666, 5143,
+ 1177, 5143, 662, 1614, 1614, 1614, 1614, 2652, 1749, 2667,
+
+ 2653, 1421, 1090, 1179, 1614, 1614, 1614, 1614, 1614, 2287,
+ 1614, 5143, 2668, 5143, 5143, 5143, 5143, 1614, 550, 1389,
+ 1380, 1389, 1389, 550, 1390, 550, 550, 550, 550, 1389,
+ 1389, 551, 550, 550, 1391, 550, 1390, 550, 550, 550,
+ 550, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 550,
+ 550, 550, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390,
+ 1390, 1390, 1390, 1390, 1390, 1390, 1390, 550, 1156, 898,
+ 662, 680, 5143, 5143, 5143, 5143, 5143, 5143, 1161, 5143,
+ 2002, 1179, 1195, 2003, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 5143, 5143, 5143, 1156, 1156, 1156, 1156, 1156,
+
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 255,
+ 345, 345, 345, 345, 255, 255, 403, 255, 345, 255,
+ 255, 404, 405, 345, 406, 407, 408, 345, 255, 255,
+ 345, 255, 403, 403, 403, 403, 403, 403, 403, 403,
+ 345, 255, 345, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 403, 255, 255, 793,
+ 1617, 1618, 1617, 1617, 793, 793, 1619, 793, 1617, 793,
+ 793, 1620, 1621, 1617, 1622, 1160, 1623, 1617, 793, 793,
+ 1617, 793, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619,
+ 1617, 793, 1617, 1619, 1619, 1619, 1619, 1619, 1619, 1619,
+
+ 1619, 1619, 1619, 1619, 1619, 1619, 1619, 793, 793, 257,
+ 648, 795, 648, 648, 257, 257, 796, 257, 648, 257,
+ 257, 780, 1624, 648, 797, 1625, 799, 648, 257, 257,
+ 648, 257, 796, 796, 796, 796, 796, 796, 796, 796,
+ 648, 257, 648, 796, 796, 796, 796, 796, 796, 796,
+ 796, 796, 796, 796, 796, 796, 796, 257, 257, 1400,
+ 712, 1401, 114, 5143, 1673, 5143, 1891, 1402, 1402, 1402,
+ 1402, 2674, 2678, 914, 2675, 2485, 915, 2488, 1402, 1402,
+ 1402, 1402, 1402, 2679, 1402, 5143, 1524, 5143, 5143, 5143,
+ 5143, 1402, 414, 651, 800, 651, 651, 414, 414, 801,
+
+ 414, 414, 414, 414, 414, 1626, 414, 414, 1627, 414,
+ 414, 414, 414, 414, 414, 801, 801, 801, 801, 801,
+ 801, 801, 801, 414, 414, 414, 801, 801, 801, 801,
+ 801, 801, 801, 801, 801, 801, 801, 801, 801, 801,
+ 414, 414, 260, 1408, 1408, 1408, 1408, 260, 260, 565,
+ 260, 260, 260, 260, 260, 261, 260, 260, 1632, 260,
+ 260, 260, 260, 260, 260, 565, 565, 565, 565, 565,
+ 565, 565, 565, 260, 260, 260, 565, 565, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 1633, 260, 561, 662, 662, 662, 662, 561, 561, 813,
+
+ 561, 561, 561, 561, 561, 562, 561, 561, 814, 561,
+ 561, 561, 561, 561, 561, 813, 813, 813, 813, 813,
+ 813, 813, 813, 561, 561, 561, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 815, 561, 189, 1414, 1641, 1414, 1414, 189, 189, 576,
+ 189, 189, 189, 189, 189, 189, 189, 189, 1642, 189,
+ 189, 189, 189, 189, 189, 576, 576, 576, 576, 576,
+ 576, 576, 576, 189, 189, 189, 576, 576, 576, 576,
+ 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
+ 1643, 189, 818, 1425, 1660, 1425, 1425, 818, 818, 1661,
+
+ 818, 818, 818, 818, 818, 819, 818, 818, 1662, 818,
+ 818, 818, 818, 818, 818, 1661, 1661, 1661, 1661, 1661,
+ 1661, 1661, 1661, 818, 818, 818, 1661, 1661, 1661, 1661,
+ 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661,
+ 1663, 818, 424, 680, 680, 680, 680, 424, 424, 830,
+ 424, 424, 424, 680, 680, 425, 424, 424, 831, 424,
+ 680, 424, 424, 424, 424, 830, 830, 830, 830, 830,
+ 830, 830, 830, 424, 424, 424, 830, 830, 830, 830,
+ 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
+ 832, 424, 426, 1429, 1667, 1429, 1429, 426, 426, 1668,
+
+ 426, 426, 426, 1429, 1429, 426, 426, 426, 1669, 426,
+ 1429, 426, 426, 426, 426, 1668, 1668, 1668, 1668, 1668,
+ 1668, 1668, 1668, 426, 426, 426, 1668, 1668, 1668, 1668,
+ 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668, 1668,
+ 1670, 426, 1432, 1432, 1432, 1432, 5143, 2689, 5143, 2695,
+ 5143, 114, 319, 319, 5143, 1329, 114, 1672, 2690, 319,
+ 2696, 2035, 918, 1773, 2716, 919, 2699, 918, 344, 1142,
+ 919, 5143, 2394, 898, 2408, 2717, 5143, 5143, 1338, 932,
+ 5143, 5143, 933, 2395, 2741, 2409, 2738, 2742, 2748, 323,
+ 1196, 1435, 1435, 1435, 1435, 1196, 1196, 1674, 1196, 1196,
+
+ 1196, 1196, 1196, 1197, 1196, 1196, 1675, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
+ 1674, 1196, 1196, 1196, 1674, 1674, 1674, 1674, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1196, 1196,
+ 1676, 168, 1435, 1904, 5143, 5143, 5143, 5143, 5143, 5143,
+ 1677, 5143, 2749, 2164, 2502, 2750, 1676, 1676, 1676, 1676,
+ 1676, 1676, 1676, 1676, 5143, 5143, 5143, 1676, 1676, 1676,
+ 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676,
+ 1676, 1436, 1581, 681, 1904, 5143, 5143, 5143, 5143, 5143,
+ 5143, 1437, 5143, 2095, 1018, 2502, 2421, 1436, 1436, 1436,
+
+ 1436, 1436, 1436, 1436, 1436, 5143, 5143, 5143, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1436, 1436, 324, 681, 681, 681, 681, 324, 324, 833,
+ 324, 324, 324, 681, 681, 325, 324, 324, 683, 324,
+ 681, 324, 324, 324, 324, 833, 833, 833, 833, 833,
+ 833, 833, 833, 324, 324, 324, 833, 833, 833, 833,
+ 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
+ 685, 324, 1683, 2408, 1435, 854, 5143, 5143, 5143, 5143,
+ 5143, 5143, 1684, 5143, 2409, 2164, 1459, 2764, 1683, 1683,
+ 1683, 1683, 1683, 1683, 1683, 1683, 5143, 5143, 5143, 1683,
+
+ 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683,
+ 1683, 1683, 1683, 838, 1445, 1687, 1445, 1445, 838, 838,
+ 1688, 838, 838, 838, 838, 838, 839, 838, 838, 1689,
+ 838, 838, 838, 838, 838, 838, 1688, 1688, 1688, 1688,
+ 1688, 1688, 1688, 1688, 838, 838, 838, 1688, 1688, 1688,
+ 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688, 1688,
+ 1688, 838, 838, 326, 1446, 1432, 1446, 1446, 326, 326,
+ 1690, 326, 326, 326, 1446, 1446, 326, 326, 326, 1448,
+ 326, 1446, 326, 326, 326, 326, 1690, 1690, 1690, 1690,
+ 1690, 1690, 1690, 1690, 326, 326, 326, 1690, 1690, 1690,
+
+ 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690, 1690,
+ 1690, 1450, 326, 1691, 1380, 1460, 1478, 5143, 5143, 5143,
+ 5143, 5143, 5143, 1692, 5143, 2765, 1727, 2229, 2766, 1691,
+ 1691, 1691, 1691, 1691, 1691, 1691, 1691, 5143, 5143, 5143,
+ 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691,
+ 1691, 1691, 1691, 1691, 1447, 1833, 1039, 1082, 5143, 5143,
+ 5143, 5143, 5143, 5143, 1449, 5143, 2428, 1462, 1505, 2767,
+ 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 5143, 5143,
+ 5143, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
+ 1447, 1447, 1447, 1447, 1447, 248, 1460, 1460, 1460, 1460,
+
+ 248, 377, 603, 248, 604, 248, 336, 1701, 606, 604,
+ 607, 1702, 609, 1703, 248, 248, 604, 248, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 604, 248, 604, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 377, 248, 599, 854, 854, 854, 854,
+ 599, 1038, 855, 599, 856, 599, 1039, 1040, 1709, 856,
+ 859, 1710, 861, 1042, 599, 599, 856, 599, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 856, 599, 856, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1038, 599, 215, 1468, 1713, 1468, 1468,
+
+ 215, 750, 620, 215, 621, 215, 749, 1714, 621, 621,
+ 623, 1715, 625, 1716, 215, 215, 621, 215, 1717, 1717,
+ 1717, 1717, 1717, 1717, 1717, 1717, 621, 215, 621, 1717,
+ 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717,
+ 1717, 1717, 1717, 750, 215, 599, 862, 862, 862, 862,
+ 599, 599, 1236, 599, 862, 599, 599, 857, 1062, 862,
+ 1245, 1064, 1469, 862, 599, 599, 862, 599, 1470, 1470,
+ 1470, 1470, 1236, 1236, 1236, 1236, 862, 599, 862, 1470,
+ 1470, 1470, 1470, 1470, 1236, 1470, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1470, 599, 599, 1063, 898, 1237, 2780, 5143,
+
+ 1478, 5143, 862, 1236, 1236, 1236, 1236, 2105, 812, 2781,
+ 2106, 2229, 1389, 1480, 1236, 1236, 1236, 1236, 1236, 2786,
+ 1236, 5143, 2787, 5143, 5143, 5143, 5143, 1236, 710, 1232,
+ 1232, 1232, 1232, 710, 710, 1471, 710, 1232, 710, 710,
+ 1228, 1472, 1232, 1473, 1718, 1474, 1232, 710, 710, 1232,
+ 710, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1232,
+ 710, 1232, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471,
+ 1471, 1471, 1471, 1471, 1471, 1471, 710, 710, 1061, 5143,
+ 5143, 5143, 1817, 5143, 5143, 5143, 5143, 5143, 1065, 2139,
+ 2458, 2139, 2139, 1971, 1061, 1061, 1061, 1061, 1061, 1061,
+
+ 1061, 1061, 5143, 5143, 2464, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1245,
+ 2789, 1246, 1039, 5143, 1817, 5143, 1994, 1247, 1247, 1247,
+ 1247, 2790, 986, 1462, 2130, 1971, 2465, 3019, 1247, 1247,
+ 1247, 1247, 1247, 2796, 1247, 5143, 2797, 5143, 5143, 5143,
+ 5143, 1247, 255, 1478, 1478, 1478, 1478, 255, 469, 628,
+ 255, 629, 255, 468, 1590, 630, 629, 631, 1721, 633,
+ 1592, 255, 255, 629, 255, 1722, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 629, 255, 629, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+
+ 469, 255, 876, 1483, 1460, 1483, 1483, 876, 1728, 876,
+ 876, 876, 876, 1483, 1483, 877, 876, 876, 1729, 876,
+ 1728, 876, 876, 876, 876, 1728, 1728, 1728, 1728, 1728,
+ 1728, 1728, 1728, 876, 876, 876, 1728, 1728, 1728, 1728,
+ 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
+ 1728, 876, 517, 890, 1082, 890, 890, 517, 517, 1260,
+ 517, 1084, 517, 517, 1085, 1086, 1084, 1278, 1088, 1489,
+ 1090, 517, 517, 1084, 517, 1490, 1490, 1490, 1490, 1260,
+ 1260, 1260, 1260, 1084, 517, 1084, 1490, 1490, 1490, 1490,
+ 1490, 1260, 1490, 1260, 1260, 1260, 1260, 1260, 1260, 1490,
+
+ 517, 517, 1083, 662, 1082, 381, 5143, 5143, 5143, 5143,
+ 1087, 5143, 1089, 5143, 2798, 1505, 518, 2799, 1083, 1083,
+ 1083, 1083, 1083, 1083, 1083, 1083, 5143, 5143, 5143, 1083,
+ 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+ 1083, 1083, 1083, 213, 1082, 1082, 1082, 1082, 213, 382,
+ 337, 213, 338, 213, 381, 1256, 340, 338, 341, 1257,
+ 343, 1258, 213, 213, 338, 213, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 338, 213, 338, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 382, 213, 1087, 1639, 1261, 986, 5143, 712, 5143,
+
+ 712, 1260, 1260, 1260, 1260, 1640, 2803, 2800, 1863, 1235,
+ 2801, 1235, 1260, 1260, 1260, 1260, 1260, 2804, 1260, 5143,
+ 1652, 5143, 5143, 5143, 5143, 1260, 517, 1262, 1263, 1262,
+ 1262, 517, 1264, 517, 517, 517, 517, 1262, 1262, 518,
+ 517, 517, 1265, 517, 1264, 517, 517, 517, 517, 1264,
+ 1264, 1264, 1264, 1264, 1264, 1264, 1264, 517, 517, 517,
+ 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264,
+ 1264, 1264, 1264, 1264, 1264, 517, 734, 1493, 1494, 1493,
+ 1493, 734, 734, 1495, 734, 1496, 734, 734, 1497, 1498,
+ 1496, 1499, 1739, 1500, 1501, 734, 734, 1496, 734, 1495,
+
+ 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1496, 734, 1496,
+ 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495,
+ 1495, 1495, 1495, 1495, 734, 734, 1278, 1177, 1279, 1658,
+ 5143, 1994, 5143, 1994, 1280, 1280, 1280, 1280, 2810, 1639,
+ 1659, 2811, 3019, 2812, 3019, 1280, 1280, 1280, 1280, 1280,
+ 1640, 1280, 5143, 2457, 5143, 5143, 5143, 5143, 1280, 517,
+ 1090, 1281, 1090, 1090, 517, 517, 1282, 517, 1090, 517,
+ 517, 1085, 1283, 1090, 1284, 1285, 1286, 1090, 517, 517,
+ 1090, 517, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1090, 517, 1090, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 517, 517, 213,
+ 344, 344, 344, 344, 213, 213, 454, 213, 344, 213,
+ 213, 339, 399, 344, 400, 401, 455, 344, 213, 213,
+ 344, 213, 454, 454, 454, 454, 454, 454, 454, 454,
+ 344, 213, 344, 454, 454, 454, 454, 454, 454, 454,
+ 454, 454, 454, 454, 454, 454, 454, 213, 213, 1508,
+ 5143, 5143, 5143, 344, 5143, 5143, 5143, 5143, 5143, 1509,
+ 662, 662, 662, 662, 537, 1508, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 5143, 5143, 814, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+
+ 1518, 1665, 1747, 862, 5143, 1147, 5143, 1360, 1748, 1748,
+ 1748, 1748, 1666, 2814, 1480, 1883, 1816, 815, 1819, 1748,
+ 1748, 1748, 1748, 1748, 2815, 1748, 5143, 2816, 5143, 5143,
+ 5143, 5143, 1748, 213, 1281, 1281, 1281, 1281, 213, 382,
+ 398, 213, 344, 213, 381, 1256, 399, 344, 400, 1506,
+ 402, 1258, 213, 213, 344, 213, 1507, 1507, 1507, 1507,
+ 1507, 1507, 1507, 1507, 344, 213, 344, 1507, 1507, 1507,
+ 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
+ 1507, 382, 213, 734, 1501, 1749, 1501, 1501, 734, 734,
+ 1750, 734, 1501, 734, 734, 1497, 1751, 1501, 1752, 1285,
+
+ 1753, 1501, 734, 734, 1501, 734, 1750, 1750, 1750, 1750,
+ 1750, 1750, 1750, 1750, 1501, 734, 1501, 1750, 1750, 1750,
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 734, 734, 250, 614, 709, 614, 614, 250, 250,
+ 737, 250, 738, 250, 250, 739, 1754, 738, 740, 1755,
+ 742, 743, 250, 250, 738, 250, 737, 737, 737, 737,
+ 737, 737, 737, 737, 738, 250, 738, 737, 737, 737,
+ 737, 737, 737, 737, 737, 737, 737, 737, 737, 737,
+ 737, 250, 250, 1518, 2820, 1519, 2824, 5143, 961, 5143,
+ 1380, 1520, 1520, 1520, 1520, 2821, 2837, 2825, 2822, 1589,
+
+ 2163, 1842, 1520, 1520, 1520, 1520, 1520, 2838, 1520, 5143,
+ 2839, 5143, 5143, 5143, 5143, 1520, 599, 712, 712, 712,
+ 712, 599, 599, 855, 599, 856, 599, 599, 857, 858,
+ 856, 859, 860, 861, 862, 599, 599, 856, 599, 855,
+ 855, 855, 855, 855, 855, 855, 855, 856, 599, 856,
+ 855, 855, 855, 855, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 855, 599, 599, 876, 1524, 1765, 1524,
+ 1524, 876, 876, 1766, 876, 1767, 876, 876, 1768, 1769,
+ 1767, 1770, 1771, 1772, 1773, 876, 876, 1767, 876, 1766,
+ 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1767, 876, 1767,
+
+ 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
+ 1766, 1766, 1766, 1766, 876, 876, 452, 746, 903, 746,
+ 746, 452, 452, 904, 452, 905, 452, 452, 906, 1774,
+ 905, 908, 1775, 910, 911, 452, 452, 905, 452, 904,
+ 904, 904, 904, 904, 904, 904, 904, 905, 452, 905,
+ 904, 904, 904, 904, 904, 904, 904, 904, 904, 904,
+ 904, 904, 904, 904, 452, 452, 452, 911, 1121, 911,
+ 911, 452, 452, 1307, 452, 911, 452, 452, 906, 1123,
+ 911, 1317, 1125, 1526, 911, 452, 452, 911, 452, 1527,
+ 1527, 1527, 1527, 1307, 1307, 1307, 1307, 911, 452, 911,
+
+ 1527, 1527, 1527, 1527, 1527, 1307, 1527, 1307, 1307, 1307,
+ 1307, 1307, 1307, 1527, 452, 452, 213, 308, 308, 308,
+ 308, 213, 213, 337, 213, 338, 213, 213, 339, 340,
+ 338, 341, 342, 343, 344, 213, 213, 338, 213, 337,
+ 337, 337, 337, 337, 337, 337, 337, 338, 213, 338,
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 213, 213, 1124, 2841, 1308, 2845,
+ 5143, 961, 5143, 812, 1307, 1307, 1307, 1307, 2842, 854,
+ 2846, 2843, 1589, 1910, 1407, 1307, 1307, 1307, 1307, 1307,
+ 2867, 1307, 5143, 2868, 5143, 5143, 5143, 5143, 1307, 617,
+
+ 1304, 1528, 1304, 1304, 617, 617, 1529, 617, 1304, 617,
+ 617, 1300, 1530, 1304, 1531, 1776, 1532, 1304, 617, 617,
+ 1304, 617, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
+ 1304, 617, 1304, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
+ 1529, 1529, 1529, 1529, 1529, 1529, 1529, 617, 617, 1122,
+ 5143, 5143, 5143, 812, 5143, 5143, 5143, 5143, 5143, 1126,
+ 662, 662, 662, 662, 1407, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 5143, 5143, 814, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1317, 1039, 1318, 1408, 5143, 986, 5143, 812, 1319, 1319,
+
+ 1319, 1319, 2892, 712, 2131, 2893, 1410, 815, 1407, 1319,
+ 1319, 1319, 1319, 1319, 2674, 1319, 5143, 2675, 5143, 5143,
+ 5143, 5143, 1319, 946, 1537, 1777, 1537, 1537, 946, 946,
+ 1778, 946, 1779, 946, 946, 1780, 1781, 1779, 1782, 1783,
+ 1784, 1547, 946, 946, 1779, 946, 1778, 1778, 1778, 1778,
+ 1778, 1778, 1778, 1778, 1779, 946, 1779, 1778, 1778, 1778,
+ 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778,
+ 1778, 946, 946, 533, 931, 931, 931, 931, 533, 533,
+ 1785, 533, 931, 533, 533, 926, 1786, 931, 1787, 1788,
+ 1789, 931, 533, 533, 931, 533, 1785, 1785, 1785, 1785,
+
+ 1785, 1785, 1785, 1785, 931, 533, 931, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 533, 533, 398, 5143, 5143, 5143, 812, 5143, 5143,
+ 5143, 5143, 5143, 402, 662, 662, 662, 662, 1407, 398,
+ 398, 398, 398, 398, 398, 398, 398, 5143, 5143, 814,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 398, 398, 398, 463, 2904, 464, 812, 5143, 986,
+ 5143, 1177, 465, 465, 465, 465, 2905, 712, 1407, 2007,
+ 1410, 815, 1421, 465, 465, 465, 465, 465, 2908, 465,
+ 5143, 2909, 5143, 5143, 5143, 5143, 465, 946, 1547, 1792,
+
+ 1547, 1547, 946, 946, 1793, 946, 1547, 946, 946, 1780,
+ 1794, 1547, 1795, 1796, 1797, 1547, 946, 946, 1547, 946,
+ 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1547, 946,
+ 1547, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793,
+ 1793, 1793, 1793, 1793, 1793, 946, 946, 536, 948, 1121,
+ 948, 948, 536, 536, 1336, 536, 1136, 536, 536, 1137,
+ 1138, 1136, 1350, 1140, 1548, 1142, 536, 536, 1136, 536,
+ 1549, 1549, 1549, 1549, 1336, 1336, 1336, 1336, 1136, 536,
+ 1136, 1549, 1549, 1549, 1549, 1549, 1336, 1549, 1336, 1336,
+ 1336, 1336, 1336, 1336, 1549, 536, 536, 1135, 712, 1177,
+
+ 1673, 5143, 5143, 5143, 5143, 1139, 5143, 1141, 5143, 2928,
+ 1421, 2485, 2929, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 5143, 5143, 5143, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1139, 535,
+ 1337, 2657, 5143, 1891, 5143, 1435, 1336, 1336, 1336, 1336,
+ 2935, 862, 2938, 2936, 2488, 2228, 2164, 1336, 1336, 1336,
+ 1336, 1336, 2224, 1336, 5143, 2225, 5143, 5143, 5143, 5143,
+ 1336, 536, 1338, 1281, 1338, 1338, 536, 1339, 536, 536,
+ 536, 536, 1338, 1338, 537, 536, 536, 1340, 536, 1339,
+ 536, 536, 536, 536, 1339, 1339, 1339, 1339, 1339, 1339,
+
+ 1339, 1339, 536, 536, 536, 1339, 1339, 1339, 1339, 1339,
+ 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
+ 536, 776, 1552, 1528, 1552, 1552, 776, 776, 1553, 776,
+ 1554, 776, 776, 1555, 1556, 1554, 1557, 1802, 1558, 1559,
+ 776, 776, 1554, 776, 1553, 1553, 1553, 1553, 1553, 1553,
+ 1553, 1553, 1554, 776, 1554, 1553, 1553, 1553, 1553, 1553,
+ 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 776,
+ 776, 1350, 2587, 1351, 898, 5143, 1016, 5143, 1891, 1352,
+ 1352, 1352, 1352, 2588, 1039, 2964, 2963, 1681, 2965, 2488,
+ 1352, 1352, 1352, 1352, 1352, 2966, 1352, 5143, 2967, 5143,
+
+ 5143, 5143, 5143, 1352, 536, 1142, 1353, 1142, 1142, 536,
+ 536, 1354, 536, 1142, 536, 536, 1137, 1355, 1142, 1356,
+ 1357, 1358, 1142, 536, 536, 1142, 536, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1354, 1354, 1142, 536, 1142, 1354, 1354,
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+ 1354, 1354, 536, 536, 1562, 709, 1904, 1435, 5143, 5143,
+ 5143, 5143, 5143, 5143, 1563, 5143, 2523, 2502, 2164, 2524,
+ 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 5143, 5143,
+ 5143, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562,
+ 1562, 1562, 1562, 1562, 1562, 1572, 2970, 1803, 2980, 5143,
+
+ 854, 5143, 854, 1804, 1804, 1804, 1804, 2971, 1082, 2981,
+ 1738, 1459, 1596, 1459, 1804, 1804, 1804, 1804, 1804, 2260,
+ 1804, 5143, 2261, 5143, 5143, 5143, 5143, 1804, 776, 1559,
+ 1805, 1559, 1559, 776, 776, 1806, 776, 1559, 776, 776,
+ 1555, 1807, 1559, 1808, 1357, 1809, 1559, 776, 776, 1559,
+ 776, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1559,
+ 776, 1559, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 776, 776, 257, 638,
+ 755, 638, 638, 257, 257, 778, 257, 779, 257, 257,
+ 780, 1810, 779, 781, 1811, 783, 648, 257, 257, 779,
+
+ 257, 778, 778, 778, 778, 778, 778, 778, 778, 779,
+ 257, 779, 778, 778, 778, 778, 778, 778, 778, 778,
+ 778, 778, 778, 778, 778, 778, 257, 257, 1572, 1749,
+ 1573, 709, 5143, 712, 5143, 854, 1574, 1574, 1574, 1574,
+ 2287, 1757, 2527, 2668, 1235, 2528, 1459, 1574, 1574, 1574,
+ 1574, 1574, 1758, 1574, 5143, 1759, 5143, 5143, 5143, 5143,
+ 1574, 784, 961, 961, 961, 961, 784, 784, 1365, 784,
+ 961, 784, 784, 1149, 1150, 961, 1377, 1152, 1577, 961,
+ 784, 784, 961, 784, 1578, 1578, 1578, 1578, 1365, 1365,
+ 1365, 1365, 961, 784, 961, 1578, 1578, 1578, 1578, 1578,
+
+ 1365, 1578, 1365, 1365, 1365, 1365, 1365, 1365, 1578, 784,
+ 784, 1148, 1763, 712, 1478, 5143, 5143, 5143, 5143, 1151,
+ 5143, 1153, 5143, 1764, 1235, 2229, 3034, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 5143, 5143, 5143, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1151, 1225, 1366, 114, 5143, 1478, 5143, 1460,
+ 1365, 1365, 1365, 1365, 1712, 3038, 914, 2207, 2229, 915,
+ 1727, 1365, 1365, 1365, 1365, 1365, 3039, 1365, 5143, 1773,
+ 5143, 5143, 5143, 5143, 1365, 784, 1360, 1360, 1360, 1360,
+ 784, 1359, 784, 784, 784, 784, 1360, 1360, 785, 784,
+
+ 784, 1367, 784, 1359, 784, 784, 784, 784, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 784, 784, 784, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 784, 959, 1581, 1581, 1581, 1581,
+ 959, 959, 1582, 959, 1581, 959, 959, 1583, 1584, 1581,
+ 1585, 1820, 1586, 1581, 959, 959, 1581, 959, 1582, 1582,
+ 1582, 1582, 1582, 1582, 1582, 1582, 1581, 959, 1581, 1582,
+ 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582,
+ 1582, 1582, 1582, 959, 959, 1377, 535, 1378, 3052, 5143,
+ 1817, 5143, 854, 1379, 1379, 1379, 1379, 1330, 931, 3053,
+
+ 1331, 1971, 2035, 1459, 1379, 1379, 1379, 1379, 1379, 1813,
+ 1379, 5143, 1814, 5143, 5143, 5143, 5143, 1379, 255, 468,
+ 468, 468, 468, 255, 469, 255, 255, 255, 255, 468,
+ 468, 256, 255, 255, 470, 255, 469, 255, 255, 255,
+ 255, 469, 469, 469, 469, 469, 469, 469, 469, 255,
+ 255, 255, 469, 469, 469, 469, 469, 469, 469, 469,
+ 469, 469, 469, 469, 469, 469, 469, 255, 255, 345,
+ 345, 345, 345, 255, 255, 403, 255, 345, 255, 255,
+ 404, 405, 345, 406, 407, 408, 345, 255, 255, 345,
+ 255, 403, 403, 403, 403, 403, 403, 403, 403, 345,
+
+ 255, 345, 403, 403, 403, 403, 403, 403, 403, 403,
+ 403, 403, 403, 403, 403, 403, 255, 255, 466, 862,
+ 1039, 1360, 5143, 5143, 5143, 5143, 5143, 5143, 467, 5143,
+ 3058, 1462, 1819, 3059, 466, 466, 466, 466, 466, 466,
+ 466, 466, 5143, 5143, 5143, 466, 466, 466, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 641,
+ 1154, 1380, 1154, 1154, 641, 641, 1594, 641, 1154, 641,
+ 641, 1382, 1383, 1154, 1384, 1385, 1595, 1154, 641, 641,
+ 1154, 641, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
+ 1154, 641, 1154, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
+
+ 1594, 1594, 1594, 1594, 1594, 1594, 1594, 641, 641, 1610,
+ 114, 1828, 3062, 5143, 1082, 5143, 1994, 1829, 1829, 1829,
+ 1829, 914, 114, 3063, 915, 1505, 1801, 3019, 1829, 1829,
+ 1829, 1829, 1829, 918, 1829, 5143, 919, 5143, 5143, 5143,
+ 5143, 1829, 641, 1596, 1597, 1596, 1596, 641, 1598, 641,
+ 641, 641, 641, 1596, 1596, 642, 641, 641, 1599, 641,
+ 1598, 641, 641, 641, 641, 1598, 1598, 1598, 1598, 1598,
+ 1598, 1598, 1598, 641, 641, 641, 1598, 1598, 1598, 1598,
+ 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
+ 1598, 641, 1381, 345, 1994, 1994, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 1386, 5143, 3094, 3019, 3019, 3095, 1381, 1381,
+ 1381, 1381, 1381, 1381, 1381, 1381, 5143, 5143, 5143, 1381,
+ 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
+ 1381, 1381, 1381, 255, 1380, 1380, 1380, 1380, 255, 469,
+ 403, 255, 345, 255, 468, 1590, 405, 345, 406, 1591,
+ 408, 1592, 255, 255, 345, 255, 1593, 1593, 1593, 1593,
+ 1593, 1593, 1593, 1593, 345, 255, 345, 1593, 1593, 1593,
+ 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593,
+ 1593, 469, 255, 962, 1832, 1833, 1832, 1832, 962, 962,
+ 1834, 962, 1832, 962, 962, 1835, 1836, 1832, 1837, 1385,
+
+ 1838, 1832, 962, 962, 1832, 962, 1834, 1834, 1834, 1834,
+ 1834, 1834, 1834, 1834, 1832, 962, 1832, 1834, 1834, 1834,
+ 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834,
+ 1834, 962, 962, 250, 743, 898, 743, 743, 250, 250,
+ 899, 250, 743, 250, 250, 739, 1839, 743, 900, 1840,
+ 902, 743, 250, 250, 743, 250, 899, 899, 899, 899,
+ 899, 899, 899, 899, 743, 250, 743, 899, 899, 899,
+ 899, 899, 899, 899, 899, 899, 899, 899, 899, 899,
+ 899, 250, 250, 1610, 961, 1611, 1833, 5143, 712, 5143,
+ 862, 1612, 1612, 1612, 1612, 2419, 961, 2428, 2420, 1235,
+
+ 2767, 1480, 1612, 1612, 1612, 1612, 1612, 3119, 1612, 5143,
+ 3120, 5143, 5143, 5143, 5143, 1612, 550, 967, 1155, 967,
+ 967, 550, 550, 1387, 550, 967, 550, 550, 1157, 1158,
+ 967, 1400, 1160, 1613, 967, 550, 550, 967, 550, 1614,
+ 1614, 1614, 1614, 1387, 1387, 1387, 1387, 967, 550, 967,
+ 1614, 1614, 1614, 1614, 1614, 1387, 1614, 1387, 1387, 1387,
+ 1387, 1387, 1387, 1614, 550, 550, 1156, 121, 1147, 1360,
+ 5143, 5143, 5143, 5143, 1159, 5143, 1161, 5143, 1145, 1816,
+ 1819, 1146, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 5143, 5143, 5143, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1159, 3123, 1388,
+ 812, 5143, 1380, 5143, 961, 1387, 1387, 1387, 1387, 3124,
+ 1849, 3125, 1846, 1842, 3126, 1589, 1387, 1387, 1387, 1387,
+ 1387, 1850, 1387, 5143, 2121, 5143, 5143, 5143, 5143, 1387,
+ 550, 1389, 1380, 1389, 1389, 550, 1390, 550, 550, 550,
+ 550, 1389, 1389, 551, 550, 550, 1391, 550, 1390, 550,
+ 550, 550, 550, 1390, 1390, 1390, 1390, 1390, 1390, 1390,
+ 1390, 550, 550, 550, 1390, 1390, 1390, 1390, 1390, 1390,
+ 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 550,
+ 793, 1617, 1618, 1617, 1617, 793, 793, 1619, 793, 1617,
+
+ 793, 793, 1620, 1621, 1617, 1622, 1847, 1623, 1617, 793,
+ 793, 1617, 793, 1619, 1619, 1619, 1619, 1619, 1619, 1619,
+ 1619, 1617, 793, 1617, 1619, 1619, 1619, 1619, 1619, 1619,
+ 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 793, 793,
+ 1400, 2789, 1401, 986, 5143, 961, 5143, 812, 1402, 1402,
+ 1402, 1402, 2790, 1858, 3128, 3127, 1589, 3129, 1407, 1402,
+ 1402, 1402, 1402, 1402, 1859, 1402, 5143, 2132, 5143, 5143,
+ 5143, 5143, 1402, 554, 1164, 1165, 1164, 1164, 554, 554,
+ 1166, 554, 554, 554, 554, 554, 1167, 554, 554, 1403,
+ 554, 554, 554, 554, 554, 554, 1166, 1166, 1166, 1166,
+
+ 1166, 1166, 1166, 1166, 554, 554, 554, 1166, 1166, 1166,
+ 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166,
+ 1166, 554, 554, 561, 812, 812, 812, 812, 561, 561,
+ 813, 561, 561, 561, 561, 561, 562, 561, 561, 984,
+ 561, 561, 561, 561, 561, 561, 813, 813, 813, 813,
+ 813, 813, 813, 813, 561, 561, 561, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 985, 561, 1001, 1631, 1851, 1631, 1631, 1001, 1001,
+ 1852, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1853,
+ 1001, 1001, 1001, 1001, 1001, 1001, 1852, 1852, 1852, 1852,
+
+ 1852, 1852, 1852, 1852, 1001, 1001, 1001, 1852, 1852, 1852,
+ 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+ 1852, 1854, 1001, 986, 986, 986, 986, 5143, 2476, 1869,
+ 1858, 5143, 5143, 5143, 1177, 562, 1875, 5143, 988, 2477,
+ 1870, 1859, 3130, 3131, 2791, 3132, 3137, 1876, 3133, 5143,
+ 2143, 3147, 2824, 265, 5143, 5143, 5143, 3138, 986, 5143,
+ 2484, 5143, 3148, 2825, 3153, 2487, 3152, 3154, 5143, 1410,
+ 989, 262, 1637, 1860, 1637, 1637, 262, 262, 670, 262,
+ 262, 262, 262, 262, 262, 262, 262, 1861, 262, 262,
+ 262, 262, 262, 262, 670, 670, 670, 670, 670, 670,
+
+ 670, 670, 262, 262, 262, 670, 670, 670, 670, 670,
+ 670, 670, 670, 670, 670, 670, 670, 670, 670, 1862,
+ 262, 260, 1408, 1408, 1408, 1408, 260, 260, 565, 260,
+ 260, 260, 260, 260, 261, 260, 260, 1632, 260, 260,
+ 260, 260, 260, 260, 565, 565, 565, 565, 565, 565,
+ 565, 565, 260, 260, 260, 565, 565, 565, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 1633,
+ 260, 986, 986, 986, 986, 5143, 1016, 3160, 3165, 5143,
+ 5143, 5143, 2824, 562, 1016, 5143, 988, 3157, 3161, 3166,
+ 3158, 2170, 2501, 2825, 854, 3172, 3169, 5143, 3173, 854,
+
+ 1922, 854, 5143, 5143, 5143, 3174, 1177, 5143, 3175, 5143,
+ 3178, 1923, 3199, 3179, 2183, 3200, 5143, 1421, 989, 559,
+ 1652, 1644, 1652, 1652, 559, 559, 1871, 559, 559, 559,
+ 559, 559, 560, 559, 559, 1872, 559, 559, 559, 559,
+ 559, 559, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871,
+ 559, 559, 559, 1871, 1871, 1871, 1871, 1871, 1871, 1871,
+ 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1873, 559, 187,
+ 1177, 1177, 1177, 1177, 187, 187, 316, 187, 187, 187,
+ 187, 187, 188, 187, 187, 1183, 187, 187, 187, 187,
+ 187, 187, 316, 316, 316, 316, 316, 316, 316, 316,
+
+ 187, 187, 187, 316, 316, 316, 316, 316, 316, 316,
+ 316, 316, 316, 316, 316, 316, 316, 1184, 187, 818,
+ 1415, 1644, 1415, 1415, 818, 818, 1880, 818, 818, 818,
+ 818, 818, 819, 818, 818, 1645, 1880, 818, 818, 818,
+ 818, 818, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880,
+ 818, 818, 818, 1880, 1880, 1880, 1880, 1880, 1880, 1880,
+ 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1646, 818, 424,
+ 680, 680, 680, 680, 424, 424, 830, 424, 424, 424,
+ 680, 680, 425, 424, 424, 831, 424, 680, 424, 424,
+ 424, 424, 830, 830, 830, 830, 830, 830, 830, 830,
+
+ 424, 424, 424, 830, 830, 830, 830, 830, 830, 830,
+ 830, 830, 830, 830, 830, 830, 830, 832, 424, 319,
+ 319, 319, 319, 5143, 1039, 5143, 1938, 5143, 1039, 319,
+ 319, 5143, 1763, 2678, 321, 3206, 319, 1939, 3207, 3227,
+ 2198, 114, 3228, 1764, 2679, 2215, 3034, 3232, 5143, 712,
+ 3251, 2657, 1464, 5143, 5143, 1465, 3243, 5143, 5143, 3244,
+ 2928, 3252, 2938, 2929, 2297, 3253, 323, 426, 1429, 1667,
+ 1429, 1429, 426, 426, 1884, 426, 426, 426, 1429, 1429,
+ 426, 426, 426, 1669, 1885, 1429, 426, 426, 426, 426,
+ 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 426, 426,
+
+ 426, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
+ 1884, 1884, 1884, 1884, 1884, 1670, 426, 319, 319, 319,
+ 319, 5143, 5143, 5143, 862, 862, 1460, 319, 319, 5143,
+ 1975, 1938, 321, 362, 319, 3256, 3275, 3280, 3257, 3276,
+ 3281, 1976, 1939, 898, 3285, 2536, 5143, 3289, 1082, 1082,
+ 5143, 5143, 5143, 5143, 2964, 5143, 5143, 2965, 3290, 3293,
+ 3313, 1984, 3294, 3314, 323, 1196, 1673, 1673, 1673, 1673,
+ 1196, 1196, 1890, 1196, 1196, 1196, 1891, 1891, 1197, 1196,
+ 1196, 1892, 1196, 1891, 1196, 1196, 1196, 1196, 1890, 1890,
+ 1890, 1890, 1890, 1890, 1890, 1890, 1196, 1196, 1196, 1890,
+
+ 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890,
+ 1890, 1890, 1890, 1893, 1196, 1196, 1891, 1891, 1891, 1891,
+ 1196, 1196, 1894, 1196, 1196, 1196, 1891, 1891, 1197, 1196,
+ 1196, 1895, 1896, 1891, 1196, 1196, 1196, 1196, 1894, 1894,
+ 1894, 1894, 1894, 1894, 1894, 1894, 1196, 1196, 1196, 1894,
+ 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894,
+ 1894, 1894, 1894, 1893, 1196, 1676, 114, 290, 1673, 5143,
+ 5143, 5143, 5143, 5143, 5143, 1677, 5143, 3319, 421, 2485,
+ 3320, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 5143,
+ 5143, 5143, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676,
+
+ 1676, 1676, 1676, 1676, 1676, 1676, 1017, 1682, 1904, 1682,
+ 1682, 1017, 1017, 1905, 1017, 1017, 1017, 1017, 1017, 1018,
+ 1017, 1017, 1906, 1017, 1017, 1017, 1017, 1017, 1017, 1905,
+ 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1017, 1017, 1017,
+ 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905, 1905,
+ 1905, 1905, 1905, 1905, 1017, 1017, 1907, 2630, 2486, 1891,
+ 5143, 5143, 5143, 5143, 5143, 5143, 1908, 5143, 3324, 3493,
+ 2488, 3325, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907,
+ 5143, 5143, 5143, 1907, 1907, 1907, 1907, 1907, 1907, 1907,
+ 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1683, 1478, 1435,
+
+ 2486, 5143, 5143, 5143, 5143, 5143, 5143, 1684, 5143, 3337,
+ 2164, 3493, 3338, 1683, 1683, 1683, 1683, 1683, 1683, 1683,
+ 1683, 5143, 5143, 5143, 1683, 1683, 1683, 1683, 1683, 1683,
+ 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 324, 502,
+ 502, 502, 502, 324, 324, 581, 324, 324, 324, 324,
+ 324, 325, 324, 324, 582, 324, 324, 324, 324, 324,
+ 324, 581, 581, 581, 581, 581, 581, 581, 581, 324,
+ 324, 324, 581, 581, 581, 581, 581, 581, 581, 581,
+ 581, 581, 581, 581, 581, 581, 324, 324, 838, 1910,
+ 1904, 1910, 1910, 838, 838, 1911, 838, 838, 838, 1910,
+
+ 1910, 839, 838, 838, 1912, 1913, 1910, 838, 838, 838,
+ 838, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 838,
+ 838, 838, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911,
+ 1911, 1911, 1911, 1911, 1911, 1911, 1914, 838, 326, 1446,
+ 1432, 1446, 1446, 326, 326, 1917, 326, 326, 326, 1446,
+ 1446, 326, 326, 326, 1448, 1918, 1446, 326, 326, 326,
+ 326, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 326,
+ 326, 326, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917,
+ 1917, 1917, 1917, 1917, 1917, 1917, 1450, 326, 1691, 1281,
+ 1891, 1904, 5143, 5143, 5143, 5143, 5143, 5143, 1692, 5143,
+
+ 2652, 2488, 2502, 2653, 1691, 1691, 1691, 1691, 1691, 1691,
+ 1691, 1691, 5143, 5143, 5143, 1691, 1691, 1691, 1691, 1691,
+ 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 599,
+ 854, 854, 854, 854, 599, 1038, 855, 599, 856, 599,
+ 1039, 1040, 858, 856, 859, 1041, 861, 1042, 599, 599,
+ 856, 599, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 856, 599, 856, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1038, 599, 1093,
+ 1700, 1924, 1700, 1700, 1093, 1925, 1926, 1093, 1927, 1093,
+ 1928, 1929, 1927, 1927, 1930, 1931, 1932, 1933, 1093, 1093,
+
+ 1927, 1093, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+ 1927, 1093, 1927, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+ 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1925, 1093, 248,
+ 336, 336, 336, 336, 248, 377, 248, 248, 248, 248,
+ 336, 336, 249, 248, 248, 378, 248, 377, 248, 248,
+ 248, 248, 377, 377, 377, 377, 377, 377, 377, 377,
+ 248, 248, 248, 377, 377, 377, 377, 377, 377, 377,
+ 377, 377, 377, 377, 377, 377, 377, 377, 248, 248,
+ 610, 610, 610, 610, 248, 248, 729, 248, 610, 248,
+ 248, 605, 730, 610, 731, 732, 733, 610, 248, 248,
+
+ 610, 248, 729, 729, 729, 729, 729, 729, 729, 729,
+ 610, 248, 610, 729, 729, 729, 729, 729, 729, 729,
+ 729, 729, 729, 729, 729, 729, 729, 248, 248, 248,
+ 516, 516, 516, 516, 248, 248, 713, 248, 604, 248,
+ 248, 605, 606, 604, 607, 608, 714, 610, 248, 248,
+ 604, 248, 713, 713, 713, 713, 713, 713, 713, 713,
+ 604, 248, 604, 713, 713, 713, 713, 713, 713, 713,
+ 713, 713, 713, 713, 713, 713, 713, 248, 248, 599,
+ 1039, 1039, 1039, 1039, 599, 1038, 599, 599, 599, 599,
+ 1039, 1039, 600, 599, 599, 1046, 599, 1038, 599, 599,
+
+ 599, 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 599, 599, 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 599, 250,
+ 1708, 1940, 1708, 1708, 250, 705, 737, 250, 738, 250,
+ 598, 1941, 738, 738, 740, 1942, 742, 1943, 250, 250,
+ 738, 250, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944,
+ 738, 250, 738, 1944, 1944, 1944, 1944, 1944, 1944, 1944,
+ 1944, 1944, 1944, 1944, 1944, 1944, 1944, 705, 250, 601,
+ 1763, 1763, 1763, 1763, 601, 601, 1945, 601, 1946, 601,
+ 601, 1947, 1948, 1946, 1949, 1950, 1951, 1952, 601, 601,
+
+ 1946, 601, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
+ 1946, 601, 1946, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
+ 1945, 1945, 1945, 1945, 1945, 1945, 1945, 601, 601, 709,
+ 709, 709, 709, 5143, 169, 115, 516, 116, 5143, 168,
+ 850, 116, 116, 118, 851, 120, 852, 1481, 5143, 116,
+ 1482, 853, 853, 853, 853, 853, 853, 853, 853, 116,
+ 5143, 116, 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 169, 215, 749, 709,
+ 749, 749, 215, 750, 215, 215, 215, 215, 749, 749,
+ 215, 215, 215, 751, 215, 750, 215, 215, 215, 215,
+
+ 750, 750, 750, 750, 750, 750, 750, 750, 215, 215,
+ 215, 750, 750, 750, 750, 750, 750, 750, 750, 750,
+ 750, 750, 750, 750, 750, 750, 215, 215, 626, 755,
+ 626, 626, 215, 215, 756, 215, 626, 215, 215, 622,
+ 626, 626, 757, 758, 759, 626, 215, 215, 626, 215,
+ 756, 756, 756, 756, 756, 756, 756, 756, 626, 215,
+ 626, 756, 756, 756, 756, 756, 756, 756, 756, 756,
+ 756, 756, 756, 756, 756, 215, 215, 215, 524, 619,
+ 524, 524, 215, 215, 747, 215, 621, 215, 215, 622,
+ 621, 621, 623, 624, 748, 626, 215, 215, 621, 215,
+
+ 747, 747, 747, 747, 747, 747, 747, 747, 621, 215,
+ 621, 747, 747, 747, 747, 747, 747, 747, 747, 747,
+ 747, 747, 747, 747, 747, 215, 215, 255, 535, 535,
+ 535, 535, 255, 255, 762, 255, 629, 255, 255, 404,
+ 630, 629, 631, 632, 763, 345, 255, 255, 629, 255,
+ 762, 762, 762, 762, 762, 762, 762, 762, 629, 255,
+ 629, 762, 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 255, 255, 257, 1725, 1962,
+ 1725, 1725, 257, 952, 778, 257, 779, 257, 951, 1963,
+ 779, 779, 781, 1964, 783, 1965, 257, 257, 779, 257,
+
+ 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 779, 257,
+ 779, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
+ 1966, 1966, 1966, 1966, 1966, 952, 257, 1080, 1732, 1817,
+ 1732, 1732, 1080, 1972, 1080, 1080, 1080, 1080, 1732, 1732,
+ 1081, 1080, 1080, 1973, 1080, 1972, 1080, 1080, 1080, 1080,
+ 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1080, 1080,
+ 1080, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972,
+ 1972, 1972, 1972, 1972, 1972, 1972, 1080, 512, 1738, 1460,
+ 1738, 1738, 512, 512, 1977, 512, 1978, 512, 512, 1979,
+ 1980, 1978, 1981, 1982, 1983, 1984, 512, 512, 1978, 512,
+
+ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1978, 512,
+ 1978, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977,
+ 1977, 1977, 1977, 1977, 1977, 512, 512, 517, 890, 1082,
+ 890, 890, 517, 517, 1083, 517, 1084, 517, 517, 1085,
+ 1985, 1084, 1087, 1986, 1089, 1090, 517, 517, 1084, 517,
+ 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1084, 517,
+ 1084, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+ 1083, 1083, 1083, 1083, 1083, 517, 517, 1093, 1744, 1713,
+ 1744, 1744, 1093, 1093, 1926, 1093, 1927, 1093, 1093, 1989,
+ 1927, 1927, 1930, 1990, 1932, 1991, 1093, 1093, 1927, 1093,
+
+ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1927, 1093,
+ 1927, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+ 1926, 1926, 1926, 1926, 1926, 1093, 1093, 517, 1090, 1281,
+ 1090, 1090, 517, 517, 1508, 517, 1090, 517, 517, 1085,
+ 1283, 1090, 1518, 1285, 1747, 1090, 517, 517, 1090, 517,
+ 1748, 1748, 1748, 1748, 1508, 1508, 1508, 1508, 1090, 517,
+ 1090, 1748, 1748, 1748, 1748, 1748, 1508, 1748, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1748, 517, 517, 213, 1281, 1281,
+ 1281, 1281, 213, 382, 398, 213, 344, 213, 381, 1256,
+ 399, 344, 400, 1506, 402, 1258, 213, 213, 344, 213,
+
+ 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 344, 213,
+ 344, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
+ 1507, 1507, 1507, 1507, 1507, 382, 213, 1284, 3009, 1509,
+ 308, 5143, 1016, 5143, 854, 1508, 1508, 1508, 1508, 3371,
+ 3009, 1315, 3372, 1681, 1316, 1459, 1508, 1508, 1508, 1508,
+ 1508, 3371, 1508, 5143, 3373, 5143, 5143, 5143, 5143, 1508,
+ 734, 1501, 1749, 1501, 1501, 734, 734, 1750, 734, 1501,
+ 734, 734, 1497, 1751, 1501, 1752, 1995, 1753, 1501, 734,
+ 734, 1501, 734, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 1501, 734, 1501, 1750, 1750, 1750, 1750, 1750, 1750,
+
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 734, 734,
+ 1282, 535, 854, 854, 5143, 5143, 5143, 5143, 5143, 5143,
+ 1286, 5143, 1545, 1459, 1459, 1546, 1282, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 5143, 5143, 5143, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 1518, 535, 1519, 1952, 5143, 1039, 5143, 2897, 1520,
+ 1520, 1520, 1520, 1545, 1232, 2065, 1546, 1462, 3380, 3559,
+ 1520, 1520, 1520, 1520, 1520, 1961, 1520, 5143, 2577, 5143,
+ 5143, 5143, 5143, 1520, 641, 1759, 1478, 1759, 1759, 641,
+ 641, 1996, 641, 1997, 641, 641, 1382, 1998, 1997, 1999,
+
+ 2000, 2001, 1154, 641, 641, 1997, 641, 1996, 1996, 1996,
+ 1996, 1996, 1996, 1996, 1996, 1997, 641, 1997, 1996, 1996,
+ 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996,
+ 1996, 1996, 641, 641, 213, 381, 381, 381, 381, 213,
+ 382, 213, 213, 213, 213, 381, 381, 214, 213, 213,
+ 383, 213, 382, 213, 213, 213, 213, 382, 382, 382,
+ 382, 382, 382, 382, 382, 213, 213, 213, 382, 382,
+ 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
+ 382, 382, 382, 213, 599, 712, 712, 712, 712, 599,
+ 599, 855, 599, 856, 599, 599, 857, 858, 856, 859,
+
+ 860, 861, 862, 599, 599, 856, 599, 855, 855, 855,
+ 855, 855, 855, 855, 855, 856, 599, 856, 855, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855, 855, 855,
+ 855, 855, 599, 599, 248, 516, 516, 516, 516, 248,
+ 248, 603, 248, 604, 248, 248, 605, 606, 604, 607,
+ 608, 609, 610, 248, 248, 604, 248, 603, 603, 603,
+ 603, 603, 603, 603, 603, 604, 248, 604, 603, 603,
+ 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
+ 603, 603, 248, 248, 876, 1524, 1765, 1524, 1524, 876,
+ 876, 2008, 876, 1767, 876, 876, 1768, 1769, 1767, 1770,
+
+ 1771, 2009, 1773, 876, 876, 1767, 876, 2008, 2008, 2008,
+ 2008, 2008, 2008, 2008, 2008, 1767, 876, 1767, 2008, 2008,
+ 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
+ 2008, 2008, 876, 876, 1766, 535, 712, 712, 5143, 5143,
+ 5143, 5143, 5143, 5143, 1772, 5143, 1330, 1235, 1235, 1331,
+ 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 5143, 5143,
+ 5143, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
+ 1766, 1766, 1766, 1766, 1766, 876, 1483, 1460, 1483, 1483,
+ 876, 1728, 876, 876, 876, 876, 1483, 1483, 877, 876,
+ 876, 1729, 876, 1728, 876, 876, 876, 876, 1728, 1728,
+
+ 1728, 1728, 1728, 1728, 1728, 1728, 876, 876, 876, 1728,
+ 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
+ 1728, 1728, 1728, 1728, 876, 1069, 2010, 2011, 2010, 2010,
+ 1069, 1069, 2012, 1069, 2013, 1069, 1069, 2014, 2015, 2013,
+ 2016, 2017, 2018, 2019, 1069, 1069, 2013, 1069, 2012, 2012,
+ 2012, 2012, 2012, 2012, 2012, 2012, 2013, 1069, 2013, 2012,
+ 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012, 2012,
+ 2012, 2012, 2012, 1069, 1069, 2022, 1147, 2023, 1360, 5143,
+ 2897, 5143, 862, 2024, 2024, 2024, 2024, 3407, 961, 3423,
+ 3408, 3559, 3424, 1480, 2024, 2024, 2024, 2024, 2024, 3119,
+
+ 2024, 5143, 3120, 5143, 5143, 5143, 5143, 2024, 876, 1773,
+ 2025, 1773, 1773, 876, 876, 2026, 876, 1773, 876, 876,
+ 1768, 2027, 1773, 2028, 2029, 2030, 1773, 876, 876, 1773,
+ 876, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 1773,
+ 876, 1773, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
+ 2026, 2026, 2026, 2026, 2026, 2026, 876, 876, 617, 1296,
+ 1297, 1296, 1296, 617, 617, 1298, 617, 1299, 617, 617,
+ 1300, 1301, 1299, 1302, 1525, 1303, 1304, 617, 617, 1299,
+ 617, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1299,
+ 617, 1299, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
+
+ 1298, 1298, 1298, 1298, 1298, 1298, 617, 617, 452, 746,
+ 903, 746, 746, 452, 452, 904, 452, 905, 452, 452,
+ 906, 2031, 905, 908, 2032, 910, 911, 452, 452, 905,
+ 452, 904, 904, 904, 904, 904, 904, 904, 904, 905,
+ 452, 905, 904, 904, 904, 904, 904, 904, 904, 904,
+ 904, 904, 904, 904, 904, 904, 452, 452, 255, 535,
+ 535, 535, 535, 255, 255, 628, 255, 629, 255, 255,
+ 404, 630, 629, 631, 632, 633, 345, 255, 255, 629,
+ 255, 628, 628, 628, 628, 628, 628, 628, 628, 629,
+ 255, 629, 628, 628, 628, 628, 628, 628, 628, 628,
+
+ 628, 628, 628, 628, 628, 628, 255, 255, 946, 1537,
+ 1777, 1537, 1537, 946, 946, 2033, 946, 1779, 946, 946,
+ 1780, 1781, 1779, 1782, 1783, 2034, 1547, 946, 946, 1779,
+ 946, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 1779,
+ 946, 1779, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033,
+ 2033, 2033, 2033, 2033, 2033, 2033, 946, 946, 1778, 3429,
+ 1460, 1817, 5143, 5143, 5143, 5143, 5143, 5143, 1784, 5143,
+ 3430, 1727, 1971, 2430, 1778, 1778, 1778, 1778, 1778, 1778,
+ 1778, 1778, 5143, 5143, 5143, 1778, 1778, 1778, 1778, 1778,
+ 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 946,
+
+ 2035, 1478, 2035, 2035, 946, 2036, 946, 946, 946, 946,
+ 2035, 2035, 947, 946, 946, 2037, 946, 2036, 946, 946,
+ 946, 946, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036,
+ 946, 946, 946, 2036, 2036, 2036, 2036, 2036, 2036, 2036,
+ 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 946, 1133,
+ 2038, 2039, 2038, 2038, 1133, 1133, 2040, 1133, 2041, 1133,
+ 1133, 2042, 2043, 2041, 2044, 2045, 2046, 2047, 1133, 1133,
+ 2041, 1133, 2040, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
+ 2041, 1133, 2041, 2040, 2040, 2040, 2040, 2040, 2040, 2040,
+ 2040, 2040, 2040, 2040, 2040, 2040, 2040, 1133, 1133, 2048,
+
+ 961, 2049, 1360, 5143, 1360, 5143, 1082, 2050, 2050, 2050,
+ 2050, 3433, 1380, 3443, 3434, 1819, 3444, 1505, 2050, 2050,
+ 2050, 2050, 2050, 2765, 2050, 5143, 2766, 5143, 5143, 5143,
+ 5143, 2050, 213, 344, 344, 344, 344, 213, 213, 454,
+ 213, 344, 213, 213, 339, 399, 344, 400, 401, 455,
+ 344, 213, 213, 344, 213, 454, 454, 454, 454, 454,
+ 454, 454, 454, 344, 213, 344, 454, 454, 454, 454,
+ 454, 454, 454, 454, 454, 454, 454, 454, 454, 454,
+ 213, 213, 283, 449, 449, 449, 449, 283, 283, 527,
+ 283, 449, 283, 283, 445, 528, 449, 529, 1543, 530,
+
+ 449, 283, 283, 449, 283, 527, 527, 527, 527, 527,
+ 527, 527, 527, 449, 283, 449, 527, 527, 527, 527,
+ 527, 527, 527, 527, 527, 527, 527, 527, 527, 527,
+ 283, 283, 398, 2111, 1082, 1994, 5143, 5143, 5143, 5143,
+ 5143, 5143, 402, 5143, 2112, 1505, 3019, 3462, 398, 398,
+ 398, 398, 398, 398, 398, 398, 5143, 5143, 5143, 398,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 398, 398, 463, 1581, 464, 3465, 5143, 1994, 5143,
+ 1478, 465, 465, 465, 465, 2095, 2803, 3466, 2756, 3019,
+ 3467, 2229, 465, 465, 465, 465, 465, 2804, 465, 5143,
+
+ 3471, 5143, 5143, 5143, 5143, 465, 533, 931, 931, 931,
+ 931, 533, 533, 1785, 533, 931, 533, 533, 926, 1786,
+ 931, 1787, 1788, 1789, 931, 533, 533, 931, 533, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 931, 533, 931,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 533, 533, 946, 1547, 1792, 1547,
+ 1547, 946, 946, 2053, 946, 1547, 946, 946, 1780, 1794,
+ 1547, 1795, 1796, 2054, 1547, 946, 946, 1547, 946, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 1547, 946, 1547,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+
+ 2053, 2053, 2053, 2053, 946, 946, 1133, 2047, 2055, 2047,
+ 2047, 1133, 1133, 2056, 1133, 2047, 1133, 1133, 2042, 2057,
+ 2047, 2058, 2059, 2060, 2047, 1133, 1133, 2047, 1133, 2056,
+ 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2047, 1133, 2047,
+ 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056, 2056,
+ 2056, 2056, 2056, 2056, 1133, 1133, 1793, 3478, 1281, 1994,
+ 5143, 5143, 5143, 5143, 5143, 5143, 1797, 5143, 3479, 1761,
+ 3019, 3480, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793,
+ 5143, 5143, 5143, 1793, 1793, 1793, 1793, 1793, 1793, 1793,
+ 1793, 1793, 1793, 1793, 1793, 1793, 1793, 2061, 290, 2062,
+
+ 3137, 5143, 1147, 5143, 1147, 2063, 2063, 2063, 2063, 3481,
+ 1432, 3138, 3482, 1816, 3483, 1816, 2063, 2063, 2063, 2063,
+ 2063, 3488, 2063, 5143, 3489, 5143, 5143, 5143, 5143, 2063,
+ 599, 862, 862, 862, 862, 599, 599, 1061, 599, 862,
+ 599, 599, 857, 1062, 862, 1063, 1064, 1065, 862, 599,
+ 599, 862, 599, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 862, 599, 862, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 599, 599,
+ 1080, 1801, 2025, 1801, 1801, 1080, 1080, 2066, 1080, 2067,
+ 1080, 1080, 2068, 2069, 2067, 2070, 2071, 2072, 1846, 1080,
+
+ 1080, 2067, 1080, 2066, 2066, 2066, 2066, 2066, 2066, 2066,
+ 2066, 2067, 1080, 2067, 2066, 2066, 2066, 2066, 2066, 2066,
+ 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 1080, 1080,
+ 536, 948, 1121, 948, 948, 536, 536, 1135, 536, 1136,
+ 536, 536, 1137, 2073, 1136, 1139, 2074, 1141, 1142, 536,
+ 536, 1136, 536, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1136, 536, 1136, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 536, 536,
+ 536, 1142, 1353, 1142, 1142, 536, 536, 1562, 536, 1142,
+ 536, 536, 1137, 1355, 1142, 1572, 1357, 1803, 1142, 536,
+
+ 536, 1142, 536, 1804, 1804, 1804, 1804, 1562, 1562, 1562,
+ 1562, 1142, 536, 1142, 1804, 1804, 1804, 1804, 1804, 1562,
+ 1804, 1562, 1562, 1562, 1562, 1562, 1562, 1804, 536, 536,
+ 1356, 3147, 1563, 319, 5143, 961, 5143, 1147, 1562, 1562,
+ 1562, 1562, 3148, 2166, 3495, 3494, 1589, 3496, 1816, 1562,
+ 1562, 1562, 1562, 1562, 2167, 1562, 5143, 2493, 5143, 5143,
+ 5143, 5143, 1562, 776, 1559, 1805, 1559, 1559, 776, 776,
+ 1806, 776, 1559, 776, 776, 1555, 1807, 1559, 1808, 2075,
+ 1809, 1559, 776, 776, 1559, 776, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1559, 776, 1559, 1806, 1806, 1806,
+
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 776, 776, 1354, 3147, 1147, 1380, 5143, 5143, 5143,
+ 5143, 5143, 5143, 1358, 5143, 3148, 1816, 1842, 3502, 1354,
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 5143, 5143, 5143,
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1354, 1572, 680, 1573, 3165, 5143, 812,
+ 5143, 1408, 1574, 1574, 1574, 1574, 3505, 1432, 3166, 3506,
+ 1407, 3507, 2131, 1574, 1574, 1574, 1574, 1574, 3510, 1574,
+ 5143, 3511, 5143, 5143, 5143, 5143, 1574, 550, 1814, 1792,
+ 1814, 1814, 550, 550, 2076, 550, 2077, 550, 550, 1157,
+
+ 2078, 2077, 2079, 2080, 2081, 967, 550, 550, 2077, 550,
+ 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2077, 550,
+ 2077, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076,
+ 2076, 2076, 2076, 2076, 2076, 550, 550, 248, 1817, 1817,
+ 1817, 1817, 248, 377, 729, 248, 610, 248, 336, 1701,
+ 730, 610, 731, 2086, 733, 1703, 248, 248, 610, 248,
+ 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 610, 248,
+ 610, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087,
+ 2087, 2087, 2087, 2087, 2087, 377, 248, 784, 1147, 1147,
+ 1147, 1147, 784, 1359, 1148, 784, 961, 784, 1360, 1361,
+
+ 2092, 961, 1151, 2093, 1153, 1363, 784, 784, 961, 784,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 961, 784,
+ 961, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1359, 784, 257, 1825, 2096,
+ 1825, 1825, 257, 952, 796, 257, 648, 257, 951, 1963,
+ 648, 648, 797, 2097, 799, 1965, 257, 257, 648, 257,
+ 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 648, 257,
+ 648, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098,
+ 2098, 2098, 2098, 2098, 2098, 952, 257, 641, 1154, 1380,
+ 1154, 1154, 641, 641, 1594, 641, 1154, 641, 641, 1382,
+
+ 1383, 1154, 1610, 1385, 1828, 1154, 641, 641, 1154, 641,
+ 1829, 1829, 1829, 1829, 1594, 1594, 1594, 1594, 1154, 641,
+ 1154, 1829, 1829, 1829, 1829, 1829, 1594, 1829, 1594, 1594,
+ 1594, 1594, 1594, 1594, 1829, 641, 641, 1381, 3518, 493,
+ 354, 5143, 5143, 5143, 5143, 1384, 5143, 1386, 5143, 3519,
+ 819, 495, 1910, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
+ 1381, 5143, 5143, 5143, 1381, 1381, 1381, 1381, 1381, 1381,
+ 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 255, 1380,
+ 1380, 1380, 1380, 255, 469, 403, 255, 345, 255, 468,
+ 1590, 405, 345, 406, 1591, 408, 1592, 255, 255, 345,
+
+ 255, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 345,
+ 255, 345, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593,
+ 1593, 1593, 1593, 1593, 1593, 1593, 469, 255, 1384, 3521,
+ 1595, 3525, 5143, 812, 5143, 1177, 1594, 1594, 1594, 1594,
+ 3522, 709, 3526, 3523, 1407, 3527, 1421, 1594, 1594, 1594,
+ 1594, 1594, 2187, 1594, 5143, 2188, 5143, 5143, 5143, 5143,
+ 1594, 641, 1596, 1597, 1596, 1596, 641, 1598, 641, 641,
+ 641, 641, 1596, 1596, 642, 641, 641, 1599, 641, 1598,
+ 641, 641, 641, 641, 1598, 1598, 1598, 1598, 1598, 1598,
+ 1598, 1598, 641, 641, 641, 1598, 1598, 1598, 1598, 1598,
+
+ 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
+ 641, 962, 1832, 1833, 1832, 1832, 962, 962, 1834, 962,
+ 1832, 962, 962, 1835, 1836, 1832, 1837, 2104, 1838, 1832,
+ 962, 962, 1832, 962, 1834, 1834, 1834, 1834, 1834, 1834,
+ 1834, 1834, 1832, 962, 1832, 1834, 1834, 1834, 1834, 1834,
+ 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, 962,
+ 962, 1610, 3539, 1611, 2970, 5143, 1673, 5143, 2486, 1612,
+ 1612, 1612, 1612, 3540, 709, 2971, 3541, 2485, 3542, 3493,
+ 1612, 1612, 1612, 1612, 1612, 2187, 1612, 5143, 2188, 5143,
+ 5143, 5143, 5143, 1612, 784, 961, 961, 961, 961, 784,
+
+ 784, 1148, 784, 961, 784, 784, 1149, 1150, 961, 1151,
+ 1152, 1153, 961, 784, 784, 961, 784, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 961, 784, 961, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 784, 784, 1080, 1846, 2113, 1846, 1846, 1080,
+ 1080, 2114, 1080, 1846, 1080, 1080, 2068, 2115, 1846, 2116,
+ 2117, 2118, 1846, 1080, 1080, 1846, 1080, 2114, 2114, 2114,
+ 2114, 2114, 2114, 2114, 2114, 1846, 1080, 1846, 2114, 2114,
+ 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
+ 2114, 2114, 1080, 1080, 550, 967, 1155, 967, 967, 550,
+
+ 550, 1156, 550, 967, 550, 550, 1157, 2119, 967, 1159,
+ 2120, 1161, 967, 550, 550, 967, 550, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 967, 550, 967, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 550, 550, 561, 812, 812, 812, 812, 561,
+ 561, 813, 561, 561, 561, 561, 561, 562, 561, 561,
+ 984, 561, 561, 561, 561, 561, 561, 813, 813, 813,
+ 813, 813, 813, 813, 813, 561, 561, 561, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 985, 561, 1001, 2122, 1860, 2122, 2122, 1001,
+
+ 1001, 2123, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+ 2124, 2123, 1001, 1001, 1001, 1001, 1001, 2123, 2123, 2123,
+ 2123, 2123, 2123, 2123, 2123, 1001, 1001, 1001, 2123, 2123,
+ 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123,
+ 2123, 2123, 2125, 1001, 986, 986, 986, 986, 5143, 3555,
+ 114, 1225, 5143, 5143, 5143, 2215, 562, 3062, 5143, 988,
+ 3556, 1464, 1712, 3557, 1465, 2297, 3243, 114, 3063, 3244,
+ 5143, 3582, 2223, 2232, 1817, 5143, 5143, 5143, 1464, 1891,
+ 5143, 1465, 5143, 3593, 2233, 3595, 3594, 2585, 3596, 5143,
+ 2488, 989, 1178, 1863, 2135, 1863, 1863, 1178, 1178, 2136,
+
+ 1178, 1178, 1178, 1178, 1178, 1179, 1178, 1178, 2137, 1178,
+ 1178, 1178, 1178, 1178, 1178, 2136, 2136, 2136, 2136, 2136,
+ 2136, 2136, 2136, 1178, 1178, 1178, 2136, 2136, 2136, 2136,
+ 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136,
+ 2138, 1178, 986, 986, 986, 986, 5143, 1460, 2408, 3603,
+ 5143, 5143, 5143, 709, 562, 2643, 5143, 988, 3280, 2409,
+ 3604, 3281, 3085, 3605, 1740, 3009, 3616, 1741, 5143, 3617,
+ 1082, 3329, 1478, 5143, 5143, 5143, 3371, 1435, 5143, 3018,
+ 5143, 3313, 3623, 3630, 3314, 2627, 3631, 5143, 2164, 989,
+ 559, 979, 1170, 979, 979, 559, 559, 2140, 559, 559,
+
+ 559, 559, 559, 560, 559, 559, 1171, 2140, 559, 559,
+ 559, 559, 559, 2140, 2140, 2140, 2140, 2140, 2140, 2140,
+ 2140, 559, 559, 559, 2140, 2140, 2140, 2140, 2140, 2140,
+ 2140, 2140, 2140, 2140, 2140, 2140, 2140, 2140, 1172, 559,
+ 187, 1177, 1177, 1177, 1177, 187, 187, 316, 187, 187,
+ 187, 187, 187, 188, 187, 187, 1183, 187, 187, 187,
+ 187, 187, 187, 316, 316, 316, 316, 316, 316, 316,
+ 316, 187, 187, 187, 316, 316, 316, 316, 316, 316,
+ 316, 316, 316, 316, 316, 316, 316, 316, 1184, 187,
+ 818, 1415, 1644, 1415, 1415, 818, 818, 1880, 818, 818,
+
+ 818, 818, 818, 819, 818, 818, 1645, 1880, 818, 818,
+ 818, 818, 818, 1880, 1880, 1880, 1880, 1880, 1880, 1880,
+ 1880, 818, 818, 818, 1880, 1880, 1880, 1880, 1880, 1880,
+ 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1646, 818,
+ 1194, 1883, 2152, 1883, 1883, 1194, 1194, 2153, 1194, 1194,
+ 1194, 1883, 1883, 1195, 1194, 1194, 2154, 1194, 1883, 1194,
+ 1194, 1194, 1194, 2153, 2153, 2153, 2153, 2153, 2153, 2153,
+ 2153, 1194, 1194, 1194, 2153, 2153, 2153, 2153, 2153, 2153,
+ 2153, 2153, 2153, 2153, 2153, 2153, 2153, 2153, 2155, 1194,
+ 426, 1429, 1667, 1429, 1429, 426, 426, 1884, 426, 426,
+
+ 426, 1429, 1429, 426, 426, 426, 1669, 1885, 1429, 426,
+ 426, 426, 426, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
+ 1884, 426, 426, 426, 1884, 1884, 1884, 1884, 1884, 1884,
+ 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1670, 426,
+ 1196, 1891, 1891, 1891, 1891, 1196, 1196, 2156, 1196, 1196,
+ 1196, 1891, 1891, 1197, 1196, 1196, 1895, 2157, 1891, 1196,
+ 1196, 1196, 1196, 2156, 2156, 2156, 2156, 2156, 2156, 2156,
+ 2156, 1196, 1196, 1196, 2156, 2156, 2156, 2156, 2156, 2156,
+ 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 1893, 1196,
+ 2158, 1281, 2486, 1904, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 1196, 5143, 3634, 3493, 2502, 3635, 2158, 2158, 2158, 2158,
+ 2158, 2158, 2158, 2158, 5143, 5143, 5143, 2158, 2158, 2158,
+ 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158,
+ 2158, 1894, 1281, 1435, 854, 5143, 5143, 5143, 5143, 5143,
+ 5143, 1896, 5143, 3654, 2164, 1459, 3655, 1894, 1894, 1894,
+ 1894, 1894, 1894, 1894, 1894, 5143, 5143, 5143, 1894, 1894,
+ 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894, 1894,
+ 1894, 1894, 424, 1016, 1016, 1016, 1016, 424, 424, 1200,
+ 424, 424, 424, 424, 424, 425, 424, 424, 1201, 424,
+ 424, 424, 424, 424, 424, 1200, 1200, 1200, 1200, 1200,
+
+ 1200, 1200, 1200, 424, 424, 424, 1200, 1200, 1200, 1200,
+ 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
+ 424, 424, 324, 1904, 1904, 1904, 1904, 324, 324, 2168,
+ 324, 324, 324, 681, 681, 325, 324, 324, 2169, 324,
+ 681, 324, 324, 324, 324, 2168, 2168, 2168, 2168, 2168,
+ 2168, 2168, 2168, 324, 324, 324, 2168, 2168, 2168, 2168,
+ 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
+ 685, 324, 1017, 2170, 2171, 2170, 2170, 1017, 1017, 2172,
+ 1017, 1017, 1017, 2170, 2170, 1018, 1017, 1017, 2173, 2174,
+ 2170, 1017, 1017, 1017, 1017, 2172, 2172, 2172, 2172, 2172,
+
+ 2172, 2172, 2172, 1017, 1017, 1017, 2172, 2172, 2172, 2172,
+ 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172,
+ 2175, 1017, 1907, 308, 854, 854, 5143, 5143, 5143, 5143,
+ 5143, 5143, 1908, 5143, 2545, 1459, 1459, 2546, 1907, 1907,
+ 1907, 1907, 1907, 1907, 1907, 1907, 5143, 5143, 5143, 1907,
+ 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907,
+ 1907, 1907, 1907, 838, 1910, 1904, 1910, 1910, 838, 838,
+ 2178, 838, 838, 838, 1910, 1910, 839, 838, 838, 1912,
+ 838, 1910, 838, 838, 838, 838, 2178, 2178, 2178, 2178,
+ 2178, 2178, 2178, 2178, 838, 838, 838, 2178, 2178, 2178,
+
+ 2178, 2178, 2178, 2178, 2178, 2178, 2178, 2178, 2178, 2178,
+ 2178, 1914, 838, 2179, 516, 2897, 1039, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2180, 5143, 1481, 3559, 1462, 1482, 2179,
+ 2179, 2179, 2179, 2179, 2179, 2179, 2179, 5143, 5143, 5143,
+ 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179,
+ 2179, 2179, 2179, 2179, 1911, 3009, 2897, 862, 5143, 5143,
+ 5143, 5143, 5143, 5143, 1913, 5143, 3371, 3559, 1480, 3659,
+ 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 5143, 5143,
+ 5143, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911,
+ 1911, 1911, 1911, 1911, 1911, 326, 1446, 1432, 1446, 1446,
+
+ 326, 326, 1917, 326, 326, 326, 1446, 1446, 326, 326,
+ 326, 1448, 1918, 1446, 326, 326, 326, 326, 1917, 1917,
+ 1917, 1917, 1917, 1917, 1917, 1917, 326, 326, 326, 1917,
+ 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917, 1917,
+ 1917, 1917, 1917, 1450, 326, 599, 854, 854, 854, 854,
+ 599, 1038, 855, 599, 856, 599, 1039, 1040, 858, 856,
+ 859, 1041, 861, 1042, 599, 599, 856, 599, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 856, 599, 856, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1038, 599, 709, 709, 709, 709, 5143,
+
+ 169, 115, 516, 116, 5143, 168, 850, 116, 116, 118,
+ 851, 120, 852, 1481, 5143, 116, 1482, 853, 853, 853,
+ 853, 853, 853, 853, 853, 116, 5143, 116, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853, 853, 853,
+ 853, 853, 169, 1093, 1744, 1713, 1744, 1744, 1093, 1093,
+ 2184, 1093, 1927, 1093, 1093, 1989, 1927, 1927, 1930, 1990,
+ 2185, 1991, 1093, 1093, 1927, 1093, 2184, 2184, 2184, 2184,
+ 2184, 2184, 2184, 2184, 1927, 1093, 1927, 2184, 2184, 2184,
+ 2184, 2184, 2184, 2184, 2184, 2184, 2184, 2184, 2184, 2184,
+ 2184, 1093, 1093, 1926, 308, 1817, 854, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 1932, 5143, 1315, 1971, 1459, 1316, 1926,
+ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 5143, 5143, 5143,
+ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+ 1926, 1926, 1926, 1926, 1093, 1928, 1940, 1928, 1928, 1093,
+ 1925, 1093, 1093, 1093, 1093, 1928, 1928, 1093, 1093, 1093,
+ 2186, 1093, 1925, 1093, 1093, 1093, 1093, 1925, 1925, 1925,
+ 1925, 1925, 1925, 1925, 1925, 1093, 1093, 1093, 1925, 1925,
+ 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925,
+ 1925, 1925, 1925, 1093, 2189, 535, 2190, 1147, 5143, 1082,
+ 5143, 1082, 2191, 2191, 2191, 2191, 1545, 1147, 3687, 1546,
+
+ 1505, 3688, 1505, 2191, 2191, 2191, 2191, 2191, 3691, 2191,
+ 5143, 3692, 5143, 5143, 5143, 5143, 2191, 1093, 1991, 1962,
+ 1991, 1991, 1093, 1093, 2192, 1093, 1991, 1093, 1093, 1989,
+ 1991, 1991, 2193, 2194, 2195, 1991, 1093, 1093, 1991, 1093,
+ 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 1991, 1093,
+ 1991, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192,
+ 2192, 2192, 2192, 2192, 2192, 1093, 1093, 599, 1039, 1039,
+ 1039, 1039, 599, 1038, 599, 599, 599, 599, 1039, 1039,
+ 600, 599, 599, 1046, 599, 1038, 599, 599, 599, 599,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 599, 599,
+
+ 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 599, 250, 598, 704,
+ 598, 598, 250, 705, 250, 250, 250, 250, 598, 598,
+ 250, 250, 250, 706, 250, 705, 250, 250, 250, 250,
+ 705, 705, 705, 705, 705, 705, 705, 705, 250, 250,
+ 250, 705, 705, 705, 705, 705, 705, 705, 705, 705,
+ 705, 705, 705, 705, 705, 705, 250, 250, 743, 898,
+ 743, 743, 250, 250, 899, 250, 743, 250, 250, 739,
+ 743, 743, 900, 901, 902, 743, 250, 250, 743, 250,
+ 899, 899, 899, 899, 899, 899, 899, 899, 743, 250,
+
+ 743, 899, 899, 899, 899, 899, 899, 899, 899, 899,
+ 899, 899, 899, 899, 899, 250, 250, 250, 614, 709,
+ 614, 614, 250, 250, 891, 250, 738, 250, 250, 739,
+ 738, 738, 740, 741, 892, 743, 250, 250, 738, 250,
+ 891, 891, 891, 891, 891, 891, 891, 891, 738, 250,
+ 738, 891, 891, 891, 891, 891, 891, 891, 891, 891,
+ 891, 891, 891, 891, 891, 250, 250, 599, 712, 712,
+ 712, 712, 599, 599, 1044, 599, 856, 599, 599, 857,
+ 858, 856, 859, 860, 1045, 862, 599, 599, 856, 599,
+ 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 856, 599,
+
+ 856, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044,
+ 1044, 1044, 1044, 1044, 1044, 599, 599, 855, 2394, 1478,
+ 1281, 5143, 5143, 5143, 5143, 5143, 5143, 861, 5143, 2395,
+ 2229, 1761, 2738, 855, 855, 855, 855, 855, 855, 855,
+ 855, 5143, 5143, 5143, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855, 710, 1225,
+ 1225, 1225, 1225, 710, 710, 1226, 710, 1227, 710, 710,
+ 1228, 1229, 1227, 1230, 2201, 1231, 1232, 710, 710, 1227,
+ 710, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1227,
+ 710, 1227, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
+
+ 1226, 1226, 1226, 1226, 1226, 1226, 710, 710, 213, 1082,
+ 1082, 1082, 1082, 213, 382, 337, 213, 338, 213, 381,
+ 1256, 615, 338, 341, 2202, 343, 1258, 213, 213, 338,
+ 213, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 338,
+ 213, 338, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 382, 213, 1058, 1360,
+ 1059, 2408, 5143, 1281, 5143, 1994, 1060, 1060, 1060, 1060,
+ 3704, 2111, 2409, 3705, 1761, 2748, 3019, 1060, 1060, 1060,
+ 1060, 1060, 2112, 1060, 5143, 3462, 5143, 5143, 5143, 5143,
+ 1060, 599, 862, 862, 862, 862, 599, 599, 1061, 599,
+
+ 862, 599, 599, 857, 1062, 862, 1063, 1064, 1065, 862,
+ 599, 599, 862, 599, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 862, 599, 862, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 599,
+ 599, 1234, 1955, 2203, 1955, 1955, 1234, 2204, 2205, 1234,
+ 2206, 1234, 2207, 2208, 2209, 2206, 2210, 2211, 2212, 2213,
+ 1234, 1234, 2206, 1234, 2214, 2214, 2214, 2214, 2214, 2214,
+ 2214, 2214, 2206, 1234, 2206, 2214, 2214, 2214, 2214, 2214,
+ 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2204,
+ 1234, 1476, 2215, 2215, 2215, 2215, 1476, 1476, 2216, 1476,
+
+ 2217, 1476, 1476, 2218, 2219, 2217, 2220, 2221, 2222, 2223,
+ 1476, 1476, 2217, 1476, 2216, 2216, 2216, 2216, 2216, 2216,
+ 2216, 2216, 2217, 1476, 2217, 2216, 2216, 2216, 2216, 2216,
+ 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 2216, 1476,
+ 1476, 257, 951, 898, 951, 951, 257, 952, 257, 257,
+ 257, 257, 951, 951, 257, 257, 257, 953, 257, 952,
+ 257, 257, 257, 257, 952, 952, 952, 952, 952, 952,
+ 952, 952, 257, 257, 257, 952, 952, 952, 952, 952,
+ 952, 952, 952, 952, 952, 952, 952, 952, 952, 952,
+ 257, 257, 648, 795, 648, 648, 257, 257, 796, 257,
+
+ 648, 257, 257, 780, 648, 648, 797, 798, 799, 648,
+ 257, 257, 648, 257, 796, 796, 796, 796, 796, 796,
+ 796, 796, 648, 257, 648, 796, 796, 796, 796, 796,
+ 796, 796, 796, 796, 796, 796, 796, 796, 796, 257,
+ 257, 257, 638, 755, 638, 638, 257, 257, 949, 257,
+ 779, 257, 257, 780, 779, 779, 781, 782, 950, 648,
+ 257, 257, 779, 257, 949, 949, 949, 949, 949, 949,
+ 949, 949, 779, 257, 779, 949, 949, 949, 949, 949,
+ 949, 949, 949, 949, 949, 949, 949, 949, 949, 257,
+ 257, 248, 1460, 1460, 1460, 1460, 248, 377, 603, 248,
+
+ 604, 248, 336, 1701, 606, 604, 607, 1702, 609, 1703,
+ 248, 248, 604, 248, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 604, 248, 604, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 377,
+ 248, 512, 1738, 1460, 1738, 1738, 512, 512, 2239, 512,
+ 1978, 512, 512, 1979, 1980, 1978, 1981, 1982, 2240, 1984,
+ 512, 512, 1978, 512, 2239, 2239, 2239, 2239, 2239, 2239,
+ 2239, 2239, 1978, 512, 1978, 2239, 2239, 2239, 2239, 2239,
+ 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 512,
+ 512, 1977, 3123, 1147, 1147, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 1983, 5143, 3124, 1816, 1816, 3713, 1977, 1977, 1977,
+ 1977, 1977, 1977, 1977, 1977, 5143, 5143, 5143, 1977, 1977,
+ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977,
+ 1977, 1977, 512, 847, 1033, 847, 847, 512, 1034, 512,
+ 512, 512, 512, 847, 847, 513, 512, 512, 1035, 512,
+ 1034, 512, 512, 512, 512, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 512, 512, 512, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 512, 595, 2241, 1968, 2241, 2241, 595, 595, 2242,
+ 595, 2243, 595, 595, 2244, 2245, 2243, 2246, 2247, 2248,
+
+ 2249, 595, 595, 2243, 595, 2242, 2242, 2242, 2242, 2242,
+ 2242, 2242, 2242, 2243, 595, 2243, 2242, 2242, 2242, 2242,
+ 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242, 2242,
+ 595, 595, 2252, 121, 2253, 2423, 5143, 1360, 5143, 1380,
+ 2254, 2254, 2254, 2254, 1821, 1380, 2424, 1822, 1819, 3715,
+ 1842, 2254, 2254, 2254, 2254, 2254, 3718, 2254, 5143, 3719,
+ 5143, 5143, 5143, 5143, 2254, 512, 1984, 1817, 1984, 1984,
+ 512, 512, 2255, 512, 1984, 512, 512, 1979, 2256, 1984,
+ 2257, 2258, 2259, 1984, 512, 512, 1984, 512, 2255, 2255,
+ 2255, 2255, 2255, 2255, 2255, 2255, 1984, 512, 1984, 2255,
+
+ 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255,
+ 2255, 2255, 2255, 512, 512, 734, 1493, 1494, 1493, 1493,
+ 734, 734, 1495, 734, 1496, 734, 734, 1497, 1498, 1496,
+ 1499, 1739, 1500, 1501, 734, 734, 1496, 734, 1495, 1495,
+ 1495, 1495, 1495, 1495, 1495, 1495, 1496, 734, 1496, 1495,
+ 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495,
+ 1495, 1495, 1495, 734, 734, 1093, 1928, 1940, 1928, 1928,
+ 1093, 1925, 1093, 1093, 1093, 1093, 1928, 1928, 1093, 1093,
+ 1093, 2186, 1093, 1925, 1093, 1093, 1093, 1093, 1925, 1925,
+ 1925, 1925, 1925, 1925, 1925, 1925, 1093, 1093, 1093, 1925,
+
+ 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925,
+ 1925, 1925, 1925, 1925, 1093, 1093, 1991, 1962, 1991, 1991,
+ 1093, 1093, 2192, 1093, 1991, 1093, 1093, 1989, 1991, 1991,
+ 2193, 2194, 2195, 1991, 1093, 1093, 1991, 1093, 2192, 2192,
+ 2192, 2192, 2192, 2192, 2192, 2192, 1991, 1093, 1991, 2192,
+ 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192,
+ 2192, 2192, 2192, 1093, 1093, 784, 1994, 1994, 1994, 1994,
+ 784, 784, 2263, 784, 2264, 784, 784, 1149, 2265, 2264,
+ 2266, 2267, 2268, 961, 784, 784, 2264, 784, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2264, 784, 2264, 2263,
+
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 784, 784, 517, 890, 1082, 890, 890,
+ 517, 517, 1083, 517, 1084, 517, 517, 1085, 2269, 1084,
+ 1087, 2270, 1089, 1090, 517, 517, 1084, 517, 1083, 1083,
+ 1083, 1083, 1083, 1083, 1083, 1083, 1084, 517, 1084, 1083,
+ 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+ 1083, 1083, 1083, 517, 517, 641, 1759, 1478, 1759, 1759,
+ 641, 641, 2271, 641, 1997, 641, 641, 1382, 1998, 1997,
+ 1999, 2000, 2272, 1154, 641, 641, 1997, 641, 2271, 2271,
+ 2271, 2271, 2271, 2271, 2271, 2271, 1997, 641, 1997, 2271,
+
+ 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271,
+ 2271, 2271, 2271, 641, 641, 1996, 610, 1408, 1408, 5143,
+ 5143, 5143, 5143, 5143, 5143, 2001, 5143, 1730, 2131, 2131,
+ 1731, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 5143,
+ 5143, 5143, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996,
+ 1996, 1996, 1996, 1996, 1996, 1996, 788, 2273, 2274, 2273,
+ 2273, 788, 788, 2275, 788, 2276, 788, 788, 1603, 2277,
+ 2276, 2278, 2279, 2280, 1600, 788, 788, 2276, 788, 2275,
+ 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2276, 788, 2276,
+ 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275,
+
+ 2275, 2275, 2275, 2275, 788, 788, 2283, 1849, 2284, 1408,
+ 5143, 353, 5143, 1408, 2285, 2285, 2285, 2285, 1850, 493,
+ 3736, 2782, 560, 3737, 2131, 2285, 2285, 2285, 2285, 2285,
+ 3740, 2285, 5143, 3741, 5143, 5143, 5143, 5143, 2285, 1291,
+ 2006, 1962, 2006, 2006, 1291, 1291, 2288, 1291, 2289, 1291,
+ 1291, 2290, 2289, 2289, 2291, 2292, 2293, 2109, 1291, 1291,
+ 2289, 1291, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288,
+ 2289, 1291, 2289, 2288, 2288, 2288, 2288, 2288, 2288, 2288,
+ 2288, 2288, 2288, 2288, 2288, 2288, 2288, 1291, 1291, 1234,
+ 2007, 2294, 2007, 2007, 1234, 1234, 2205, 1234, 2206, 1234,
+
+ 1234, 2295, 2209, 2206, 2210, 2296, 2212, 2297, 1234, 1234,
+ 2206, 1234, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+ 2206, 1234, 2206, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+ 2205, 2205, 2205, 2205, 2205, 2205, 2205, 1234, 1234, 876,
+ 1524, 1765, 1524, 1524, 876, 876, 2008, 876, 1767, 876,
+ 876, 1768, 1769, 1767, 1770, 1771, 2009, 1773, 876, 876,
+ 1767, 876, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
+ 1767, 876, 1767, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
+ 2008, 2008, 2008, 2008, 2008, 2008, 2008, 876, 876, 2022,
+ 5143, 2298, 5143, 5143, 1177, 5143, 812, 2299, 2299, 2299,
+
+ 2299, 2457, 2458, 2457, 2457, 1421, 354, 1407, 2299, 2299,
+ 2299, 2299, 2299, 1179, 2299, 3745, 2460, 3742, 5143, 3750,
+ 3743, 2299, 1766, 1432, 1408, 662, 3746, 5143, 5143, 2805,
+ 3751, 5143, 1772, 1879, 3757, 2131, 1179, 3758, 1766, 1766,
+ 1766, 1766, 1766, 1766, 1766, 1766, 5143, 5143, 2461, 1766,
+ 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
+ 1766, 1766, 1766, 248, 516, 516, 516, 516, 248, 248,
+ 603, 248, 604, 248, 248, 605, 606, 604, 607, 608,
+ 609, 610, 248, 248, 604, 248, 603, 603, 603, 603,
+ 603, 603, 603, 603, 604, 248, 604, 603, 603, 603,
+
+ 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
+ 603, 248, 248, 876, 1483, 1460, 1483, 1483, 876, 1728,
+ 876, 876, 876, 876, 1483, 1483, 877, 876, 876, 1729,
+ 876, 1728, 876, 876, 876, 876, 1728, 1728, 1728, 1728,
+ 1728, 1728, 1728, 1728, 876, 876, 876, 1728, 1728, 1728,
+ 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
+ 1728, 1728, 876, 1249, 2300, 2301, 2300, 2300, 1249, 1249,
+ 2302, 1249, 2303, 1249, 1249, 2304, 2305, 2303, 2306, 1771,
+ 2307, 2308, 1249, 1249, 2303, 1249, 2302, 2302, 2302, 2302,
+ 2302, 2302, 2302, 2302, 2303, 1249, 2303, 2302, 2302, 2302,
+
+ 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302,
+ 2302, 1249, 1249, 215, 749, 709, 749, 749, 215, 750,
+ 215, 215, 215, 215, 749, 749, 520, 215, 215, 2309,
+ 215, 750, 215, 215, 215, 215, 750, 750, 750, 750,
+ 750, 750, 750, 750, 215, 215, 215, 750, 750, 750,
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 750,
+ 750, 750, 215, 2022, 3762, 2023, 1435, 5143, 1673, 5143,
+ 2486, 2024, 2024, 2024, 2024, 3763, 3780, 3773, 3141, 2485,
+ 3774, 3493, 2024, 2024, 2024, 2024, 2024, 3781, 2024, 5143,
+ 2170, 5143, 5143, 5143, 5143, 2024, 876, 1773, 2025, 1773,
+
+ 1773, 876, 876, 2026, 876, 1773, 876, 876, 1768, 2027,
+ 1773, 2028, 2029, 2030, 1773, 876, 876, 1773, 876, 2026,
+ 2026, 2026, 2026, 2026, 2026, 2026, 2026, 1773, 876, 1773,
+ 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
+ 2026, 2026, 2026, 2026, 876, 876, 2313, 1435, 2486, 1891,
+ 5143, 5143, 5143, 5143, 5143, 5143, 2314, 5143, 3787, 3493,
+ 2488, 3788, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313,
+ 5143, 5143, 5143, 2313, 2313, 2313, 2313, 2313, 2313, 2313,
+ 2313, 2313, 2313, 2313, 2313, 2313, 2313, 1069, 2019, 2315,
+ 2019, 2019, 1069, 1069, 2316, 1069, 2019, 1069, 1069, 2014,
+
+ 2317, 2019, 2318, 2319, 2320, 2019, 1069, 1069, 2019, 1069,
+ 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2019, 1069,
+ 2019, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316, 2316,
+ 2316, 2316, 2316, 2316, 2316, 1069, 1069, 2323, 3790, 2324,
+ 1922, 5143, 1673, 5143, 1891, 2325, 2325, 2325, 2325, 3791,
+ 1922, 1923, 2508, 2485, 2850, 2488, 2325, 2325, 2325, 2325,
+ 2325, 1923, 2325, 5143, 2513, 5143, 5143, 5143, 5143, 2325,
+ 1535, 2326, 2327, 2326, 2326, 1535, 1535, 2328, 1535, 2329,
+ 1535, 1535, 2330, 2331, 2329, 2332, 2333, 2334, 2335, 1535,
+ 1535, 2329, 1535, 2328, 2328, 2328, 2328, 2328, 2328, 2328,
+
+ 2328, 2329, 1535, 2329, 2328, 2328, 2328, 2328, 2328, 2328,
+ 2328, 2328, 2328, 2328, 2328, 2328, 2328, 2328, 1535, 1535,
+ 946, 1537, 1777, 1537, 1537, 946, 946, 2033, 946, 1779,
+ 946, 946, 1780, 1781, 1779, 1782, 1783, 2034, 1547, 946,
+ 946, 1779, 946, 2033, 2033, 2033, 2033, 2033, 2033, 2033,
+ 2033, 1779, 946, 1779, 2033, 2033, 2033, 2033, 2033, 2033,
+ 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 946, 946,
+ 2048, 709, 2336, 1922, 5143, 1435, 5143, 1435, 2337, 2337,
+ 2337, 2337, 2187, 898, 1923, 2188, 2164, 2855, 2164, 2337,
+ 2337, 2337, 2337, 2337, 3830, 2337, 5143, 3831, 5143, 5143,
+
+ 5143, 5143, 2337, 946, 2035, 1478, 2035, 2035, 946, 2036,
+ 946, 946, 946, 946, 2035, 2035, 947, 946, 946, 2037,
+ 946, 2036, 946, 946, 946, 946, 2036, 2036, 2036, 2036,
+ 2036, 2036, 2036, 2036, 946, 946, 946, 2036, 2036, 2036,
+ 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036,
+ 2036, 2036, 946, 1778, 1938, 1478, 2897, 5143, 5143, 5143,
+ 5143, 5143, 5143, 1784, 5143, 1939, 2229, 3559, 2592, 1778,
+ 1778, 1778, 1778, 1778, 1778, 1778, 1778, 5143, 5143, 5143,
+ 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778,
+ 1778, 1778, 1778, 1778, 255, 535, 535, 535, 535, 255,
+
+ 255, 628, 255, 629, 255, 255, 404, 630, 629, 631,
+ 632, 633, 345, 255, 255, 629, 255, 628, 628, 628,
+ 628, 628, 628, 628, 628, 629, 255, 629, 628, 628,
+ 628, 628, 628, 628, 628, 628, 628, 628, 628, 628,
+ 628, 628, 255, 255, 1334, 2340, 2341, 2340, 2340, 1334,
+ 1334, 2342, 1334, 2343, 1334, 1334, 2344, 2345, 2343, 2346,
+ 1783, 2347, 2348, 1334, 1334, 2343, 1334, 2342, 2342, 2342,
+ 2342, 2342, 2342, 2342, 2342, 2343, 1334, 2343, 2342, 2342,
+ 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342,
+ 2342, 2342, 1334, 1334, 215, 626, 755, 626, 626, 215,
+
+ 215, 756, 215, 626, 215, 215, 622, 2349, 626, 757,
+ 2350, 759, 626, 215, 215, 626, 215, 756, 756, 756,
+ 756, 756, 756, 756, 756, 626, 215, 626, 756, 756,
+ 756, 756, 756, 756, 756, 756, 756, 756, 756, 756,
+ 756, 756, 215, 215, 2048, 3221, 2049, 516, 5143, 2897,
+ 5143, 1460, 2050, 2050, 2050, 2050, 3838, 712, 3840, 3839,
+ 3559, 3841, 1727, 2050, 2050, 2050, 2050, 2050, 1953, 2050,
+ 5143, 1954, 5143, 5143, 5143, 5143, 2050, 946, 1547, 1792,
+ 1547, 1547, 946, 946, 1793, 946, 1547, 946, 946, 1780,
+ 1794, 1547, 1795, 1796, 1797, 1547, 946, 946, 1547, 946,
+
+ 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1547, 946,
+ 1547, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793,
+ 1793, 1793, 1793, 1793, 1793, 946, 946, 309, 936, 936,
+ 936, 936, 309, 309, 937, 309, 938, 309, 309, 544,
+ 939, 938, 940, 1132, 941, 542, 309, 309, 938, 309,
+ 937, 937, 937, 937, 937, 937, 937, 937, 938, 309,
+ 938, 937, 937, 937, 937, 937, 937, 937, 937, 937,
+ 937, 937, 937, 937, 937, 309, 309, 2053, 5143, 5143,
+ 5143, 1082, 5143, 5143, 5143, 5143, 5143, 2054, 3480, 3472,
+ 3480, 3480, 1505, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+
+ 2053, 5143, 5143, 3747, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2061, 535,
+ 2353, 1082, 5143, 3660, 5143, 2897, 2354, 2354, 2354, 2354,
+ 2935, 344, 1505, 2936, 4164, 3748, 3559, 2354, 2354, 2354,
+ 2354, 2354, 3855, 2354, 5143, 3856, 5143, 5143, 5143, 5143,
+ 2354, 1334, 2348, 2355, 2348, 2348, 1334, 1334, 2356, 1334,
+ 2348, 1334, 1334, 2344, 2357, 2348, 2358, 1796, 2359, 2348,
+ 1334, 1334, 2348, 1334, 2356, 2356, 2356, 2356, 2356, 2356,
+ 2356, 2356, 2348, 1334, 2348, 2356, 2356, 2356, 2356, 2356,
+ 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 1334,
+
+ 1334, 2061, 1478, 2062, 121, 5143, 1281, 5143, 3660, 2063,
+ 2063, 2063, 2063, 3630, 1232, 1719, 3631, 1761, 1720, 4164,
+ 2063, 2063, 2063, 2063, 2063, 1961, 2063, 5143, 2703, 5143,
+ 5143, 5143, 5143, 2063, 1080, 1801, 2025, 1801, 1801, 1080,
+ 1080, 2363, 1080, 2067, 1080, 1080, 2068, 2069, 2067, 2070,
+ 2071, 2364, 1846, 1080, 1080, 2067, 1080, 2363, 2363, 2363,
+ 2363, 2363, 2363, 2363, 2363, 2067, 1080, 2067, 2363, 2363,
+ 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
+ 2363, 2363, 1080, 1080, 2066, 2587, 1994, 1147, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2072, 5143, 2588, 3019, 1816, 2963,
+
+ 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 5143, 5143,
+ 5143, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066,
+ 2066, 2066, 2066, 2066, 2066, 1080, 1732, 1817, 1732, 1732,
+ 1080, 1972, 1080, 1080, 1080, 1080, 1732, 1732, 1081, 1080,
+ 1080, 1973, 1080, 1972, 1080, 1080, 1080, 1080, 1972, 1972,
+ 1972, 1972, 1972, 1972, 1972, 1972, 1080, 1080, 1080, 1972,
+ 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972,
+ 1972, 1972, 1972, 1972, 1080, 1254, 2365, 2315, 2365, 2365,
+ 1254, 1254, 2366, 1254, 2367, 1254, 1254, 2368, 2369, 2367,
+ 2370, 2371, 2372, 2373, 1254, 1254, 2367, 1254, 2366, 2366,
+
+ 2366, 2366, 2366, 2366, 2366, 2366, 2367, 1254, 2367, 2366,
+ 2366, 2366, 2366, 2366, 2366, 2366, 2366, 2366, 2366, 2366,
+ 2366, 2366, 2366, 1254, 1254, 2376, 381, 2377, 1817, 5143,
+ 1147, 5143, 1147, 2378, 2378, 2378, 2378, 3881, 3521, 3595,
+ 3882, 1816, 3596, 1816, 2378, 2378, 2378, 2378, 2378, 3522,
+ 2378, 5143, 2984, 5143, 5143, 5143, 5143, 2378, 776, 1552,
+ 1528, 1552, 1552, 776, 776, 1553, 776, 1554, 776, 776,
+ 1555, 1556, 1554, 1557, 1802, 1558, 1559, 776, 776, 1554,
+ 776, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1554,
+ 776, 1554, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553,
+
+ 1553, 1553, 1553, 1553, 1553, 1553, 776, 776, 536, 948,
+ 1121, 948, 948, 536, 536, 1135, 536, 1136, 536, 536,
+ 1137, 2379, 1136, 1139, 2380, 1141, 1142, 536, 536, 1136,
+ 536, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1136,
+ 536, 1136, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1135, 1135, 1135, 1135, 536, 536, 550, 1814,
+ 1792, 1814, 1814, 550, 550, 2381, 550, 2077, 550, 550,
+ 1157, 2078, 2077, 2079, 2080, 2382, 967, 550, 550, 2077,
+ 550, 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2077,
+ 550, 2077, 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2381,
+
+ 2381, 2381, 2381, 2381, 2381, 2381, 550, 550, 2076, 709,
+ 1408, 1408, 5143, 5143, 5143, 5143, 5143, 5143, 2081, 5143,
+ 1740, 2131, 2131, 1741, 2076, 2076, 2076, 2076, 2076, 2076,
+ 2076, 2076, 5143, 5143, 5143, 2076, 2076, 2076, 2076, 2076,
+ 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 646,
+ 2383, 2055, 2383, 2383, 646, 646, 2384, 646, 2385, 646,
+ 646, 1395, 2386, 2385, 2387, 2388, 2389, 1392, 646, 646,
+ 2385, 646, 2384, 2384, 2384, 2384, 2384, 2384, 2384, 2384,
+ 2385, 646, 2385, 2384, 2384, 2384, 2384, 2384, 2384, 2384,
+ 2384, 2384, 2384, 2384, 2384, 2384, 2384, 646, 646, 2390,
+
+ 1494, 2391, 1994, 5143, 662, 5143, 986, 2392, 2392, 2392,
+ 2392, 1988, 114, 3896, 2627, 1179, 3897, 1410, 2392, 2392,
+ 2392, 2392, 2392, 3319, 2392, 5143, 3320, 5143, 5143, 5143,
+ 5143, 2392, 784, 1147, 1147, 1147, 1147, 784, 1359, 1148,
+ 784, 961, 784, 1360, 1361, 1150, 961, 1151, 1362, 1153,
+ 1363, 784, 784, 961, 784, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 961, 784, 961, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1359, 784, 1291, 2085, 2396, 2085, 2085, 1291, 2397, 2398,
+ 1291, 2109, 1291, 2237, 2399, 2109, 2109, 2400, 2401, 2402,
+
+ 2403, 1291, 1291, 2109, 1291, 2404, 2404, 2404, 2404, 2404,
+ 2404, 2404, 2404, 2109, 1291, 2109, 2404, 2404, 2404, 2404,
+ 2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404,
+ 2397, 1291, 248, 610, 610, 610, 610, 248, 248, 878,
+ 248, 610, 248, 248, 605, 730, 610, 731, 732, 879,
+ 610, 248, 248, 610, 248, 878, 878, 878, 878, 878,
+ 878, 878, 878, 610, 248, 610, 878, 878, 878, 878,
+ 878, 878, 878, 878, 878, 878, 878, 878, 878, 878,
+ 248, 248, 784, 1360, 1360, 1360, 1360, 784, 1359, 784,
+ 784, 784, 784, 1360, 1360, 785, 784, 784, 1367, 784,
+
+ 1359, 784, 784, 784, 784, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 784, 784, 784, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 784, 250, 2091, 2410, 2091, 2091, 250, 705, 899,
+ 250, 743, 250, 598, 1941, 743, 743, 900, 2411, 902,
+ 1943, 250, 250, 743, 250, 2412, 2412, 2412, 2412, 2412,
+ 2412, 2412, 2412, 743, 250, 743, 2412, 2412, 2412, 2412,
+ 2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412,
+ 705, 250, 786, 2111, 2111, 2111, 2111, 786, 786, 2413,
+ 786, 2111, 786, 786, 2414, 2415, 2111, 2416, 2417, 2418,
+
+ 2111, 786, 786, 2111, 786, 2413, 2413, 2413, 2413, 2413,
+ 2413, 2413, 2413, 2111, 786, 2111, 2413, 2413, 2413, 2413,
+ 2413, 2413, 2413, 2413, 2413, 2413, 2413, 2413, 2413, 2413,
+ 786, 786, 898, 898, 898, 898, 5143, 169, 176, 2643,
+ 121, 5143, 168, 850, 121, 121, 177, 1094, 179, 852,
+ 3616, 5143, 121, 3617, 1095, 1095, 1095, 1095, 1095, 1095,
+ 1095, 1095, 121, 5143, 121, 1095, 1095, 1095, 1095, 1095,
+ 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 169,
+ 257, 648, 795, 648, 648, 257, 257, 968, 257, 648,
+ 257, 257, 780, 648, 648, 797, 798, 969, 648, 257,
+
+ 257, 648, 257, 968, 968, 968, 968, 968, 968, 968,
+ 968, 648, 257, 648, 968, 968, 968, 968, 968, 968,
+ 968, 968, 968, 968, 968, 968, 968, 968, 257, 257,
+ 641, 1154, 1380, 1154, 1154, 641, 641, 1381, 641, 1154,
+ 641, 641, 1382, 2425, 1154, 1384, 2426, 1386, 1154, 641,
+ 641, 1154, 641, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
+ 1381, 1154, 641, 1154, 1381, 1381, 1381, 1381, 1381, 1381,
+ 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 641, 641,
+ 1291, 2109, 2096, 2109, 2109, 1291, 1291, 2398, 1291, 2109,
+ 1291, 1291, 2290, 2109, 2109, 2400, 2429, 2402, 2109, 1291,
+
+ 1291, 2109, 1291, 2398, 2398, 2398, 2398, 2398, 2398, 2398,
+ 2398, 2109, 1291, 2109, 2398, 2398, 2398, 2398, 2398, 2398,
+ 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 1291, 1291,
+ 784, 961, 961, 961, 961, 784, 784, 1148, 784, 961,
+ 784, 784, 1149, 1150, 961, 1151, 1152, 1153, 961, 784,
+ 784, 961, 784, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 961, 784, 961, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 784, 784,
+ 729, 2657, 1408, 1673, 5143, 5143, 5143, 5143, 5143, 5143,
+ 733, 5143, 2938, 2131, 2485, 3253, 729, 729, 729, 729,
+
+ 729, 729, 729, 729, 5143, 5143, 5143, 729, 729, 729,
+ 729, 729, 729, 729, 729, 729, 729, 729, 729, 729,
+ 729, 1080, 1846, 2113, 1846, 1846, 1080, 1080, 2431, 1080,
+ 1846, 1080, 1080, 2068, 2115, 1846, 2116, 2117, 2432, 1846,
+ 1080, 1080, 1846, 1080, 2431, 2431, 2431, 2431, 2431, 2431,
+ 2431, 2431, 1846, 1080, 1846, 2431, 2431, 2431, 2431, 2431,
+ 2431, 2431, 2431, 2431, 2431, 2431, 2431, 2431, 2431, 1080,
+ 1080, 1254, 2373, 2433, 2373, 2373, 1254, 1254, 2434, 1254,
+ 2373, 1254, 1254, 2368, 2435, 2373, 2436, 2437, 2438, 2373,
+ 1254, 1254, 2373, 1254, 2434, 2434, 2434, 2434, 2434, 2434,
+
+ 2434, 2434, 2373, 1254, 2373, 2434, 2434, 2434, 2434, 2434,
+ 2434, 2434, 2434, 2434, 2434, 2434, 2434, 2434, 2434, 1254,
+ 1254, 2114, 3907, 2486, 1673, 5143, 5143, 5143, 5143, 5143,
+ 5143, 2118, 5143, 3908, 3493, 2485, 3909, 2114, 2114, 2114,
+ 2114, 2114, 2114, 2114, 2114, 5143, 5143, 5143, 2114, 2114,
+ 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
+ 2114, 2114, 2441, 709, 2442, 3898, 5143, 1673, 5143, 1673,
+ 2443, 2443, 2443, 2443, 1740, 1994, 3921, 1741, 2485, 3922,
+ 2485, 2443, 2443, 2443, 2443, 2443, 3930, 2443, 5143, 3931,
+ 5143, 5143, 5143, 5143, 2443, 793, 1617, 1618, 1617, 1617,
+
+ 793, 793, 1619, 793, 1617, 793, 793, 1620, 1621, 1617,
+ 1622, 1847, 1623, 1617, 793, 793, 1617, 793, 1619, 1619,
+ 1619, 1619, 1619, 1619, 1619, 1619, 1617, 793, 1617, 1619,
+ 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619, 1619,
+ 1619, 1619, 1619, 793, 793, 1406, 2121, 2444, 2121, 2121,
+ 1406, 1406, 2445, 1406, 1406, 1406, 1406, 1406, 1407, 1406,
+ 1406, 2446, 1406, 1406, 1406, 1406, 1406, 1406, 2445, 2445,
+ 2445, 2445, 2445, 2445, 2445, 2445, 1406, 1406, 1406, 2445,
+ 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445,
+ 2445, 2445, 2445, 2447, 1406, 1001, 2122, 1860, 2122, 2122,
+
+ 1001, 1001, 2123, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+ 1001, 2124, 2123, 1001, 1001, 1001, 1001, 1001, 2123, 2123,
+ 2123, 2123, 2123, 2123, 2123, 2123, 1001, 1001, 1001, 2123,
+ 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123, 2123,
+ 2123, 2123, 2123, 2125, 1001, 1409, 2132, 2453, 2132, 2132,
+ 1409, 1409, 2454, 1409, 1409, 1409, 1409, 1409, 1410, 1409,
+ 1409, 2455, 1409, 1409, 1409, 1409, 1409, 1409, 2454, 2454,
+ 2454, 2454, 2454, 2454, 2454, 2454, 1409, 1409, 1409, 2454,
+ 2454, 2454, 2454, 2454, 2454, 2454, 2454, 2454, 2454, 2454,
+ 2454, 2454, 2454, 2456, 1409, 561, 812, 812, 812, 812,
+
+ 561, 561, 813, 561, 561, 561, 561, 561, 562, 561,
+ 561, 984, 561, 561, 561, 561, 561, 561, 813, 813,
+ 813, 813, 813, 813, 813, 813, 561, 561, 561, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 985, 561, 1178, 2457, 2458, 2457, 2457,
+ 1178, 1178, 2459, 1178, 1178, 1178, 1178, 1178, 1179, 1178,
+ 1178, 2460, 2459, 1178, 1178, 1178, 1178, 1178, 2459, 2459,
+ 2459, 2459, 2459, 2459, 2459, 2459, 1178, 1178, 1178, 2459,
+ 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459,
+ 2459, 2459, 2459, 2461, 1178, 559, 979, 1170, 979, 979,
+
+ 559, 559, 2140, 559, 559, 559, 559, 559, 560, 559,
+ 559, 1171, 2140, 559, 559, 559, 559, 559, 2140, 2140,
+ 2140, 2140, 2140, 2140, 2140, 2140, 559, 559, 559, 2140,
+ 2140, 2140, 2140, 2140, 2140, 2140, 2140, 2140, 2140, 2140,
+ 2140, 2140, 2140, 1172, 559, 1420, 2143, 2469, 2143, 2143,
+ 1420, 1420, 2470, 1420, 1420, 1420, 1420, 1420, 1421, 1420,
+ 1420, 2471, 1420, 1420, 1420, 1420, 1420, 1420, 2470, 2470,
+ 2470, 2470, 2470, 2470, 2470, 2470, 1420, 1420, 1420, 2470,
+ 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+ 2470, 2470, 2470, 2472, 1420, 424, 680, 680, 680, 680,
+
+ 424, 424, 830, 424, 424, 424, 680, 680, 425, 424,
+ 424, 831, 424, 680, 424, 424, 424, 424, 830, 830,
+ 830, 830, 830, 830, 830, 830, 424, 424, 424, 830,
+ 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
+ 830, 830, 830, 832, 424, 1194, 1883, 2152, 1883, 1883,
+ 1194, 1194, 2478, 1194, 1194, 1194, 1883, 1883, 1195, 1194,
+ 1194, 2154, 2479, 1883, 1194, 1194, 1194, 1194, 2478, 2478,
+ 2478, 2478, 2478, 2478, 2478, 2478, 1194, 1194, 1194, 2478,
+ 2478, 2478, 2478, 2478, 2478, 2478, 2478, 2478, 2478, 2478,
+ 2478, 2478, 2478, 2155, 1194, 1196, 1891, 1891, 1891, 1891,
+
+ 1196, 1196, 2156, 1196, 1196, 1196, 1891, 1891, 1197, 1196,
+ 1196, 1895, 2157, 1891, 1196, 1196, 1196, 1196, 2156, 2156,
+ 2156, 2156, 2156, 2156, 2156, 2156, 1196, 1196, 1196, 2156,
+ 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156, 2156,
+ 2156, 2156, 2156, 1893, 1196, 2482, 1994, 1891, 1904, 5143,
+ 5143, 5143, 5143, 5143, 5143, 2483, 5143, 3942, 2488, 2502,
+ 3943, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 5143,
+ 5143, 5143, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482,
+ 2482, 2482, 2482, 2482, 2482, 2482, 424, 1016, 1016, 1016,
+ 1016, 424, 424, 1200, 424, 424, 424, 424, 424, 425,
+
+ 424, 424, 1201, 424, 424, 424, 424, 424, 424, 1200,
+ 1200, 1200, 1200, 1200, 1200, 1200, 1200, 424, 424, 424,
+ 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
+ 1200, 1200, 1200, 1200, 424, 424, 324, 681, 681, 681,
+ 681, 324, 324, 834, 324, 324, 324, 681, 681, 325,
+ 324, 324, 683, 835, 681, 324, 324, 324, 324, 834,
+ 834, 834, 834, 834, 834, 834, 834, 324, 324, 324,
+ 834, 834, 834, 834, 834, 834, 834, 834, 834, 834,
+ 834, 834, 834, 834, 685, 324, 1017, 2170, 2171, 2170,
+ 2170, 1017, 1017, 2496, 1017, 1017, 1017, 2170, 2170, 1018,
+
+ 1017, 1017, 2173, 1017, 2170, 1017, 1017, 1017, 1017, 2496,
+ 2496, 2496, 2496, 2496, 2496, 2496, 2496, 1017, 1017, 1017,
+ 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496,
+ 2496, 2496, 2496, 2496, 2175, 1017, 833, 308, 1904, 1082,
+ 5143, 5143, 5143, 5143, 5143, 5143, 324, 5143, 1315, 2502,
+ 1505, 1316, 833, 833, 833, 833, 833, 833, 833, 833,
+ 5143, 5143, 5143, 833, 833, 833, 833, 833, 833, 833,
+ 833, 833, 833, 833, 833, 833, 833, 2497, 344, 1460,
+ 1478, 5143, 5143, 5143, 5143, 5143, 5143, 2498, 5143, 3855,
+ 1727, 2229, 3856, 2497, 2497, 2497, 2497, 2497, 2497, 2497,
+
+ 2497, 5143, 5143, 5143, 2497, 2497, 2497, 2497, 2497, 2497,
+ 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2172, 3958,
+ 1460, 1478, 5143, 5143, 5143, 5143, 5143, 5143, 2174, 5143,
+ 3959, 1727, 2229, 3960, 2172, 2172, 2172, 2172, 2172, 2172,
+ 2172, 2172, 5143, 5143, 5143, 2172, 2172, 2172, 2172, 2172,
+ 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 838,
+ 1910, 1904, 1910, 1910, 838, 838, 2503, 838, 838, 838,
+ 1910, 1910, 839, 838, 838, 1912, 2504, 1910, 838, 838,
+ 838, 838, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503,
+ 838, 838, 838, 2503, 2503, 2503, 2503, 2503, 2503, 2503,
+
+ 2503, 2503, 2503, 2503, 2503, 2503, 2503, 1914, 838, 2179,
+ 3962, 2897, 712, 5143, 5143, 5143, 5143, 5143, 5143, 2180,
+ 5143, 3963, 3559, 1235, 3964, 2179, 2179, 2179, 2179, 2179,
+ 2179, 2179, 2179, 5143, 5143, 5143, 2179, 2179, 2179, 2179,
+ 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179,
+ 1458, 2183, 2509, 2183, 2183, 1458, 2510, 2511, 1458, 2512,
+ 1458, 2513, 2514, 2515, 2512, 2516, 2517, 2518, 2519, 1458,
+ 1458, 2512, 1458, 2520, 2520, 2520, 2520, 2520, 2520, 2520,
+ 2520, 2512, 1458, 2512, 2520, 2520, 2520, 2520, 2520, 2520,
+ 2520, 2520, 2520, 2520, 2520, 2520, 2520, 2520, 2510, 1458,
+
+ 1093, 1744, 1713, 1744, 1744, 1093, 1093, 2184, 1093, 1927,
+ 1093, 1093, 1989, 1927, 1927, 1930, 1990, 2185, 1991, 1093,
+ 1093, 1927, 1093, 2184, 2184, 2184, 2184, 2184, 2184, 2184,
+ 2184, 1927, 1093, 1927, 2184, 2184, 2184, 2184, 2184, 2184,
+ 2184, 2184, 2184, 2184, 2184, 2184, 2184, 2184, 1093, 1093,
+ 2189, 5143, 2521, 5143, 5143, 862, 5143, 1478, 2522, 2522,
+ 2522, 2522, 986, 986, 986, 986, 1480, 898, 2229, 2522,
+ 2522, 2522, 2522, 2522, 562, 2522, 3289, 988, 2741, 5143,
+ 898, 2742, 2522, 1926, 3976, 1460, 1478, 3290, 5143, 5143,
+ 3966, 2741, 5143, 2190, 2742, 3977, 1727, 2229, 3978, 2191,
+
+ 2191, 2191, 2191, 1926, 1926, 1926, 1926, 5143, 5143, 989,
+ 2191, 2191, 2191, 2191, 2191, 1926, 2191, 1926, 1926, 1926,
+ 1926, 1926, 1926, 2191, 1093, 1991, 1962, 1991, 1991, 1093,
+ 1093, 2525, 1093, 1991, 1093, 1093, 1989, 1991, 1991, 2193,
+ 2194, 2526, 1991, 1093, 1093, 1991, 1093, 2525, 2525, 2525,
+ 2525, 2525, 2525, 2525, 2525, 1991, 1093, 1991, 2525, 2525,
+ 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525,
+ 2525, 2525, 1093, 1093, 2192, 898, 1039, 1460, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2195, 5143, 2105, 1462, 1727, 2106,
+ 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 5143, 5143,
+
+ 5143, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192,
+ 2192, 2192, 2192, 2192, 2192, 2529, 345, 2530, 1408, 5143,
+ 3660, 5143, 2897, 2531, 2531, 2531, 2531, 3094, 2789, 3981,
+ 3095, 4164, 3982, 3559, 2531, 2531, 2531, 2531, 2531, 2790,
+ 2531, 5143, 3127, 5143, 5143, 5143, 5143, 2531, 1461, 2198,
+ 2532, 2198, 2198, 1461, 2533, 2534, 1461, 2535, 1461, 2536,
+ 2537, 2538, 2535, 2539, 2540, 2541, 2542, 1461, 1461, 2535,
+ 1461, 2543, 2543, 2543, 2543, 2543, 2543, 2543, 2543, 2535,
+ 1461, 2535, 2543, 2543, 2543, 2543, 2543, 2543, 2543, 2543,
+ 2543, 2543, 2543, 2543, 2543, 2543, 2533, 1461, 599, 712,
+
+ 712, 712, 712, 599, 599, 855, 599, 856, 599, 599,
+ 857, 1709, 856, 859, 2544, 861, 862, 599, 599, 856,
+ 599, 855, 855, 855, 855, 855, 855, 855, 855, 856,
+ 599, 856, 855, 855, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 855, 855, 855, 599, 599, 599, 854,
+ 854, 854, 854, 599, 1038, 855, 599, 856, 599, 1039,
+ 1040, 858, 856, 859, 1041, 861, 1042, 599, 599, 856,
+ 599, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 856,
+ 599, 856, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1038, 599, 1234, 2007,
+
+ 2294, 2007, 2007, 1234, 1234, 2547, 1234, 2206, 1234, 1234,
+ 2295, 2209, 2206, 2210, 2296, 2548, 2297, 1234, 1234, 2206,
+ 1234, 2547, 2547, 2547, 2547, 2547, 2547, 2547, 2547, 2206,
+ 1234, 2206, 2547, 2547, 2547, 2547, 2547, 2547, 2547, 2547,
+ 2547, 2547, 2547, 2547, 2547, 2547, 1234, 1234, 2205, 353,
+ 3660, 1817, 5143, 5143, 5143, 5143, 5143, 5143, 2212, 5143,
+ 3983, 4164, 1971, 3984, 2205, 2205, 2205, 2205, 2205, 2205,
+ 2205, 2205, 5143, 5143, 5143, 2205, 2205, 2205, 2205, 2205,
+ 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 1234,
+ 2207, 854, 2207, 2207, 1234, 2204, 1234, 1234, 1234, 1234,
+
+ 2207, 2207, 1235, 1234, 1234, 2549, 1234, 2204, 1234, 1234,
+ 1234, 1234, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204,
+ 1234, 1234, 1234, 2204, 2204, 2204, 2204, 2204, 2204, 2204,
+ 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 1234, 1466,
+ 2550, 2551, 2550, 2550, 1466, 1466, 2552, 1466, 2553, 1466,
+ 1466, 2554, 2555, 2553, 2556, 2557, 2558, 2559, 1466, 1466,
+ 2553, 1466, 2552, 2552, 2552, 2552, 2552, 2552, 2552, 2552,
+ 2553, 1466, 2553, 2552, 2552, 2552, 2552, 2552, 2552, 2552,
+ 2552, 2552, 2552, 2552, 2552, 2552, 2552, 1466, 1466, 2560,
+ 3986, 2561, 3989, 5143, 1380, 5143, 812, 2562, 2562, 2562,
+
+ 2562, 3987, 1849, 3990, 2457, 1842, 2139, 1407, 2562, 2562,
+ 2562, 2562, 2562, 1850, 2562, 5143, 3991, 5143, 5143, 5143,
+ 5143, 2562, 1234, 2297, 2563, 2297, 2297, 1234, 1234, 2564,
+ 1234, 2297, 1234, 1234, 2295, 2565, 2297, 2566, 2567, 2568,
+ 2297, 1234, 1234, 2297, 1234, 2564, 2564, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2297, 1234, 2297, 2564, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
+ 1234, 1234, 599, 712, 712, 712, 712, 599, 599, 1044,
+ 599, 856, 599, 599, 857, 858, 856, 859, 860, 1045,
+ 862, 599, 599, 856, 599, 1044, 1044, 1044, 1044, 1044,
+
+ 1044, 1044, 1044, 856, 599, 856, 1044, 1044, 1044, 1044,
+ 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044,
+ 599, 599, 599, 1039, 1039, 1039, 1039, 599, 1038, 599,
+ 599, 599, 599, 1039, 1039, 600, 599, 599, 1046, 599,
+ 1038, 599, 599, 599, 599, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 599, 599, 599, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 599, 710, 1225, 1225, 1225, 1225, 710, 710, 1226,
+ 710, 1227, 710, 710, 1228, 1229, 1227, 1230, 2569, 1231,
+ 1232, 710, 710, 1227, 710, 1226, 1226, 1226, 1226, 1226,
+
+ 1226, 1226, 1226, 1227, 710, 1227, 1226, 1226, 1226, 1226,
+ 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226,
+ 710, 710, 255, 1478, 1478, 1478, 1478, 255, 469, 628,
+ 255, 629, 255, 468, 1590, 1130, 629, 631, 2570, 633,
+ 1592, 255, 255, 629, 255, 1722, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 629, 255, 629, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 469, 255, 858, 5143, 1058, 860, 1059, 1408, 1658, 986,
+ 5143, 5143, 1060, 1060, 1060, 1060, 5143, 1673, 3992, 1659,
+ 1410, 3993, 2812, 1060, 1060, 1060, 1060, 1060, 3998, 1060,
+
+ 5143, 3999, 5143, 5143, 5143, 5143, 1060, 599, 862, 862,
+ 862, 862, 599, 599, 1061, 599, 862, 599, 599, 857,
+ 1062, 862, 1063, 1064, 1065, 862, 599, 599, 862, 599,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 862, 599,
+ 862, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 599, 599, 1479, 2230, 2573,
+ 2230, 2230, 1479, 2574, 2575, 1479, 2576, 1479, 2577, 2578,
+ 2579, 2576, 2580, 2581, 2582, 2583, 1479, 1479, 2576, 1479,
+ 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2576, 1479,
+ 2576, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584,
+
+ 2584, 2584, 2584, 2584, 2584, 2574, 1479, 248, 1460, 1460,
+ 1460, 1460, 248, 377, 603, 248, 604, 248, 336, 1701,
+ 606, 604, 607, 1702, 609, 1703, 248, 248, 604, 248,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 604, 248,
+ 604, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 377, 248, 248, 1817, 1817,
+ 1817, 1817, 248, 377, 729, 248, 610, 248, 336, 1701,
+ 730, 610, 731, 2086, 733, 1703, 248, 248, 610, 248,
+ 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 610, 248,
+ 610, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087,
+
+ 2087, 2087, 2087, 2087, 2087, 377, 248, 1291, 2237, 2410,
+ 2237, 2237, 1291, 2397, 1291, 1291, 1291, 1291, 2237, 2237,
+ 1291, 1291, 1291, 2589, 1291, 2397, 1291, 1291, 1291, 1291,
+ 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 1291, 1291,
+ 1291, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397,
+ 2397, 2397, 2397, 2397, 2397, 2397, 1291, 1461, 2238, 854,
+ 2238, 2238, 1461, 1461, 2534, 1461, 2535, 1461, 1461, 2590,
+ 2538, 2535, 2539, 2591, 2541, 2592, 1461, 1461, 2535, 1461,
+ 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2535, 1461,
+ 2535, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534,
+
+ 2534, 2534, 2534, 2534, 2534, 1461, 1461, 512, 1738, 1460,
+ 1738, 1738, 512, 512, 2239, 512, 1978, 512, 512, 1979,
+ 1980, 1978, 1981, 1982, 2240, 1984, 512, 512, 1978, 512,
+ 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 1978, 512,
+ 1978, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239,
+ 2239, 2239, 2239, 2239, 2239, 512, 512, 2252, 5143, 2593,
+ 5143, 5143, 812, 5143, 812, 2594, 2594, 2594, 2594, 2782,
+ 2453, 2782, 2782, 1407, 4001, 1407, 2594, 2594, 2594, 2594,
+ 2594, 1407, 2594, 1891, 2784, 4002, 5143, 1435, 3492, 2594,
+ 1977, 2824, 1673, 1891, 4008, 5143, 5143, 4009, 4010, 5143,
+
+ 1983, 4011, 2825, 2485, 2488, 3152, 1977, 1977, 1977, 1977,
+ 1977, 1977, 1977, 1977, 5143, 5143, 2785, 1977, 1977, 1977,
+ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977,
+ 1977, 512, 847, 1033, 847, 847, 512, 1034, 512, 512,
+ 512, 512, 847, 847, 513, 512, 512, 1035, 512, 1034,
+ 512, 512, 512, 512, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 512, 512, 512, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
+ 512, 701, 2595, 2232, 2595, 2595, 701, 701, 2596, 701,
+ 2597, 701, 701, 2598, 2599, 2597, 2600, 1982, 2601, 2602,
+
+ 701, 701, 2597, 701, 2596, 2596, 2596, 2596, 2596, 2596,
+ 2596, 2596, 2597, 701, 2597, 2596, 2596, 2596, 2596, 2596,
+ 2596, 2596, 2596, 2596, 2596, 2596, 2596, 2596, 2596, 701,
+ 701, 250, 598, 704, 598, 598, 250, 705, 250, 250,
+ 250, 250, 598, 598, 893, 250, 250, 2603, 250, 705,
+ 250, 250, 250, 250, 705, 705, 705, 705, 705, 705,
+ 705, 705, 250, 250, 250, 705, 705, 705, 705, 705,
+ 705, 705, 705, 705, 705, 705, 705, 705, 705, 705,
+ 250, 2252, 1891, 2253, 4019, 5143, 1904, 5143, 854, 2254,
+ 2254, 2254, 2254, 4016, 1904, 4020, 4017, 2502, 2839, 1459,
+
+ 2254, 2254, 2254, 2254, 2254, 4027, 2254, 5143, 4028, 5143,
+ 5143, 5143, 5143, 2254, 512, 1984, 1817, 1984, 1984, 512,
+ 512, 2255, 512, 1984, 512, 512, 1979, 2256, 1984, 2257,
+ 2258, 2259, 1984, 512, 512, 1984, 512, 2255, 2255, 2255,
+ 2255, 2255, 2255, 2255, 2255, 1984, 512, 1984, 2255, 2255,
+ 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255,
+ 2255, 2255, 512, 512, 2607, 2845, 854, 1460, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2608, 5143, 2846, 1459, 1727, 4029,
+ 2607, 2607, 2607, 2607, 2607, 2607, 2607, 2607, 5143, 5143,
+ 5143, 2607, 2607, 2607, 2607, 2607, 2607, 2607, 2607, 2607,
+
+ 2607, 2607, 2607, 2607, 2607, 595, 2249, 2235, 2249, 2249,
+ 595, 595, 2609, 595, 2249, 595, 595, 2244, 2610, 2249,
+ 2611, 2612, 2613, 2249, 595, 595, 2249, 595, 2609, 2609,
+ 2609, 2609, 2609, 2609, 2609, 2609, 2249, 595, 2249, 2609,
+ 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609, 2609,
+ 2609, 2609, 2609, 595, 595, 2616, 2824, 2617, 1082, 5143,
+ 854, 5143, 1039, 2618, 2618, 2618, 2618, 2825, 1460, 4030,
+ 3499, 1459, 4031, 1462, 2618, 2618, 2618, 2618, 2618, 4044,
+ 2618, 5143, 4045, 5143, 5143, 5143, 5143, 2618, 1504, 2262,
+ 2619, 2262, 2262, 1504, 1504, 2620, 1504, 2621, 1504, 1504,
+
+ 2622, 2623, 2621, 2624, 2625, 2626, 2627, 1504, 1504, 2621,
+ 1504, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2621,
+ 1504, 2621, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620,
+ 2620, 2620, 2620, 2620, 2620, 2620, 1504, 1504, 784, 1994,
+ 1994, 1994, 1994, 784, 784, 2628, 784, 2264, 784, 784,
+ 1149, 2265, 2264, 2266, 2267, 2629, 961, 784, 784, 2264,
+ 784, 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2264,
+ 784, 2264, 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2628,
+ 2628, 2628, 2628, 2628, 2628, 2628, 784, 784, 2263, 854,
+ 854, 1039, 5143, 5143, 5143, 5143, 5143, 5143, 2268, 5143,
+
+ 2867, 1459, 1462, 2868, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 5143, 5143, 5143, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 957,
+ 2630, 2630, 2630, 2630, 957, 957, 2631, 957, 2632, 957,
+ 957, 1370, 2633, 2632, 2634, 2635, 2636, 1368, 957, 957,
+ 2632, 957, 2631, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2632, 957, 2632, 2631, 2631, 2631, 2631, 2631, 2631, 2631,
+ 2631, 2631, 2631, 2631, 2631, 2631, 2631, 957, 957, 2639,
+ 1478, 2640, 1478, 5143, 3660, 5143, 862, 2641, 2641, 2641,
+ 2641, 3337, 336, 4079, 3338, 4164, 4080, 1480, 2641, 2641,
+
+ 2641, 2641, 2641, 4081, 2641, 5143, 4082, 5143, 5143, 5143,
+ 5143, 2641, 1756, 2642, 2643, 2642, 2642, 1756, 1756, 2644,
+ 1756, 2645, 1756, 1756, 2646, 2647, 2645, 2648, 2649, 2650,
+ 2651, 1756, 1756, 2645, 1756, 2644, 2644, 2644, 2644, 2644,
+ 2644, 2644, 2644, 2645, 1756, 2645, 2644, 2644, 2644, 2644,
+ 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644,
+ 1756, 1756, 641, 1759, 1478, 1759, 1759, 641, 641, 2271,
+ 641, 1997, 641, 641, 1382, 1998, 1997, 1999, 2000, 2272,
+ 1154, 641, 641, 1997, 641, 2271, 2271, 2271, 2271, 2271,
+ 2271, 2271, 2271, 1997, 641, 1997, 2271, 2271, 2271, 2271,
+
+ 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271,
+ 641, 641, 2283, 5143, 2654, 5143, 5143, 862, 5143, 854,
+ 2655, 2655, 2655, 2655, 2791, 2792, 2791, 2791, 1480, 854,
+ 1459, 2655, 2655, 2655, 2655, 2655, 1410, 2655, 468, 2794,
+ 2867, 5143, 3548, 2868, 2655, 1996, 4102, 1281, 3660, 4094,
+ 5143, 5143, 4095, 4097, 5143, 2001, 3558, 4103, 1761, 4164,
+ 2207, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 5143,
+ 5143, 2795, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996,
+ 1996, 1996, 1996, 1996, 1996, 1996, 255, 1478, 1478, 1478,
+ 1478, 255, 469, 628, 255, 629, 255, 468, 1590, 630,
+
+ 629, 631, 1721, 633, 1592, 255, 255, 629, 255, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 629, 255, 629,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1722, 469, 255, 962, 2656, 2657, 2656,
+ 2656, 962, 962, 2658, 962, 2659, 962, 962, 1835, 2660,
+ 2659, 2661, 2000, 2662, 1832, 962, 962, 2659, 962, 2658,
+ 2658, 2658, 2658, 2658, 2658, 2658, 2658, 2659, 962, 2659,
+ 2658, 2658, 2658, 2658, 2658, 2658, 2658, 2658, 2658, 2658,
+ 2658, 2658, 2658, 2658, 962, 962, 250, 743, 898, 743,
+ 743, 250, 250, 899, 250, 743, 250, 250, 739, 2663,
+
+ 743, 900, 2664, 902, 743, 250, 250, 743, 250, 899,
+ 899, 899, 899, 899, 899, 899, 899, 743, 250, 743,
+ 899, 899, 899, 899, 899, 899, 899, 899, 899, 899,
+ 899, 899, 899, 899, 250, 250, 2283, 712, 2284, 862,
+ 5143, 1478, 5143, 1460, 2285, 2285, 2285, 2285, 1953, 4117,
+ 3058, 1954, 2229, 3059, 1727, 2285, 2285, 2285, 2285, 2285,
+ 4118, 2285, 5143, 2362, 5143, 5143, 5143, 5143, 2285, 1291,
+ 2006, 1962, 2006, 2006, 1291, 1291, 2669, 1291, 2289, 1291,
+ 1291, 2290, 2289, 2289, 2291, 2292, 2670, 2109, 1291, 1291,
+ 2289, 1291, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669,
+
+ 2289, 1291, 2289, 2669, 2669, 2669, 2669, 2669, 2669, 2669,
+ 2669, 2669, 2669, 2669, 2669, 2669, 2669, 1291, 1291, 2288,
+ 5143, 5143, 5143, 1380, 5143, 5143, 5143, 5143, 5143, 2293,
+ 662, 662, 662, 662, 1842, 2288, 2288, 2288, 2288, 2288,
+ 2288, 2288, 2288, 5143, 5143, 814, 2288, 2288, 2288, 2288,
+ 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288,
+ 2671, 1478, 2672, 1817, 5143, 1817, 5143, 961, 2673, 2673,
+ 2673, 2673, 4121, 610, 1971, 4122, 1971, 815, 1589, 2673,
+ 2673, 2673, 2673, 2673, 4132, 2673, 5143, 4133, 5143, 5143,
+ 5143, 5143, 2673, 599, 712, 712, 712, 712, 599, 599,
+
+ 855, 599, 856, 599, 599, 857, 858, 856, 859, 860,
+ 861, 862, 599, 599, 856, 599, 855, 855, 855, 855,
+ 855, 855, 855, 855, 856, 599, 856, 855, 855, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855, 855, 855,
+ 855, 599, 599, 1234, 2207, 854, 2207, 2207, 1234, 2204,
+ 1234, 1234, 1234, 1234, 2207, 2207, 1235, 1234, 1234, 2549,
+ 1234, 2204, 1234, 1234, 1234, 1234, 2204, 2204, 2204, 2204,
+ 2204, 2204, 2204, 2204, 1234, 1234, 1234, 2204, 2204, 2204,
+ 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204,
+ 2204, 2204, 1234, 1234, 2297, 2563, 2297, 2297, 1234, 1234,
+
+ 2564, 1234, 2297, 1234, 1234, 2295, 2565, 2297, 2566, 2567,
+ 2568, 2297, 1234, 1234, 2297, 1234, 2564, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2297, 1234, 2297, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
+ 2564, 1234, 1234, 876, 1524, 1765, 1524, 1524, 876, 876,
+ 2008, 876, 1767, 876, 876, 1768, 1769, 1767, 2022, 1771,
+ 2298, 1773, 876, 876, 1767, 876, 2299, 2299, 2299, 2299,
+ 2008, 2008, 2008, 2008, 1767, 876, 1767, 2299, 2299, 2299,
+ 2299, 2299, 2008, 2299, 2008, 2008, 2008, 2008, 2008, 2008,
+ 2299, 876, 876, 1766, 712, 1360, 1817, 5143, 5143, 5143,
+
+ 5143, 1770, 5143, 1772, 5143, 1953, 1819, 1971, 1954, 1766,
+ 1766, 1766, 1766, 1766, 1766, 1766, 1766, 5143, 5143, 5143,
+ 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
+ 1766, 1766, 1766, 1766, 248, 516, 516, 516, 516, 248,
+ 248, 603, 248, 604, 248, 248, 605, 606, 604, 607,
+ 608, 609, 610, 248, 248, 604, 248, 603, 603, 603,
+ 603, 603, 603, 603, 603, 604, 248, 604, 603, 603,
+ 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
+ 603, 603, 248, 248, 1770, 345, 2009, 4149, 5143, 812,
+ 5143, 1673, 2008, 2008, 2008, 2008, 4146, 1460, 4150, 4147,
+
+ 1407, 2238, 2485, 2008, 2008, 2008, 2008, 2008, 4151, 2008,
+ 5143, 4152, 5143, 5143, 5143, 5143, 2008, 876, 1483, 1460,
+ 1483, 1483, 876, 1728, 876, 876, 876, 876, 1483, 1483,
+ 877, 876, 876, 1729, 876, 1728, 876, 876, 876, 876,
+ 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 876, 876,
+ 876, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
+ 1728, 1728, 1728, 1728, 1728, 1728, 876, 1249, 2300, 2301,
+ 2300, 2300, 1249, 1249, 2302, 1249, 2303, 1249, 1249, 2304,
+ 2305, 2303, 2306, 2676, 2307, 2308, 1249, 1249, 2303, 1249,
+ 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2303, 1249,
+
+ 2303, 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302, 2302,
+ 2302, 2302, 2302, 2302, 2302, 1249, 1249, 2022, 1082, 2023,
+ 3009, 5143, 2486, 5143, 1673, 2024, 2024, 2024, 2024, 2260,
+ 1281, 3371, 2261, 3493, 3659, 2485, 2024, 2024, 2024, 2024,
+ 2024, 3654, 2024, 5143, 3655, 5143, 5143, 5143, 5143, 2024,
+ 876, 1773, 2025, 1773, 1773, 876, 876, 2026, 876, 1773,
+ 876, 876, 1768, 2027, 1773, 2028, 2029, 2030, 1773, 876,
+ 876, 1773, 876, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
+ 2026, 1773, 876, 1773, 2026, 2026, 2026, 2026, 2026, 2026,
+ 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 876, 876,
+
+ 2313, 4168, 1904, 3660, 5143, 5143, 5143, 5143, 5143, 5143,
+ 2314, 5143, 4169, 2502, 4164, 3343, 2313, 2313, 2313, 2313,
+ 2313, 2313, 2313, 2313, 5143, 5143, 5143, 2313, 2313, 2313,
+ 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313,
+ 2313, 2323, 898, 2680, 1749, 5143, 2897, 5143, 3660, 2681,
+ 2681, 2681, 2681, 2002, 1994, 2287, 2003, 3559, 3031, 4164,
+ 2681, 2681, 2681, 2681, 2681, 3896, 2681, 5143, 3897, 5143,
+ 5143, 5143, 5143, 2681, 1249, 2308, 2682, 2308, 2308, 1249,
+ 1249, 2683, 1249, 2308, 1249, 1249, 2304, 2684, 2308, 2685,
+ 2029, 2686, 2308, 1249, 1249, 2308, 1249, 2683, 2683, 2683,
+
+ 2683, 2683, 2683, 2683, 2683, 2308, 1249, 2308, 2683, 2683,
+ 2683, 2683, 2683, 2683, 2683, 2683, 2683, 2683, 2683, 2683,
+ 2683, 2683, 1249, 1249, 215, 749, 709, 749, 749, 215,
+ 750, 215, 215, 215, 215, 749, 749, 918, 215, 215,
+ 2687, 215, 750, 215, 215, 215, 215, 750, 750, 750,
+ 750, 750, 750, 750, 750, 215, 215, 215, 750, 750,
+ 750, 750, 750, 750, 750, 750, 750, 750, 750, 750,
+ 750, 750, 750, 215, 2323, 3038, 2324, 3052, 5143, 1994,
+ 5143, 862, 2325, 2325, 2325, 2325, 3039, 535, 3053, 4188,
+ 3019, 4199, 1480, 2325, 2325, 2325, 2325, 2325, 1330, 2325,
+
+ 5143, 1331, 5143, 5143, 5143, 5143, 2325, 452, 746, 903,
+ 746, 746, 452, 452, 904, 452, 905, 452, 452, 906,
+ 907, 905, 908, 909, 910, 911, 452, 452, 905, 452,
+ 904, 904, 904, 904, 904, 904, 904, 904, 905, 452,
+ 905, 904, 904, 904, 904, 904, 904, 904, 904, 904,
+ 904, 904, 904, 904, 904, 452, 452, 213, 308, 308,
+ 308, 308, 213, 213, 337, 213, 338, 213, 213, 339,
+ 340, 338, 341, 342, 343, 344, 213, 213, 338, 213,
+ 337, 337, 337, 337, 337, 337, 337, 337, 338, 213,
+ 338, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+
+ 337, 337, 337, 337, 337, 213, 213, 1103, 344, 3660,
+ 1281, 5143, 5143, 5143, 5143, 5143, 5143, 1104, 5143, 1570,
+ 4164, 1761, 1571, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
+ 1103, 5143, 5143, 5143, 1103, 1103, 1103, 1103, 1103, 1103,
+ 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 452, 1105,
+ 1082, 1105, 1105, 452, 1106, 452, 452, 452, 452, 1105,
+ 1105, 453, 452, 452, 1107, 452, 1106, 452, 452, 452,
+ 452, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 452,
+ 452, 452, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 452, 617, 1296,
+
+ 1297, 1296, 1296, 617, 617, 1298, 617, 1299, 617, 617,
+ 1300, 1301, 1299, 1302, 2691, 1303, 1304, 617, 617, 1299,
+ 617, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1299,
+ 617, 1299, 1298, 1298, 1298, 1298, 1298, 1298, 1298, 1298,
+ 1298, 1298, 1298, 1298, 1298, 1298, 617, 617, 946, 1537,
+ 1777, 1537, 1537, 946, 946, 1778, 946, 1779, 946, 946,
+ 1780, 2692, 1779, 1782, 2693, 1784, 1547, 946, 946, 1779,
+ 946, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1779,
+ 946, 1779, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778,
+ 1778, 1778, 1778, 1778, 1778, 1778, 946, 946, 1118, 2394,
+
+ 1119, 2394, 5143, 2897, 5143, 1460, 1120, 1120, 1120, 1120,
+ 2395, 610, 2395, 3071, 3559, 3072, 1727, 1120, 1120, 1120,
+ 1120, 1120, 4222, 1120, 5143, 4223, 5143, 5143, 5143, 5143,
+ 1120, 452, 911, 1121, 911, 911, 452, 452, 1122, 452,
+ 911, 452, 452, 906, 1123, 911, 1124, 1125, 1126, 911,
+ 452, 452, 911, 452, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 911, 452, 911, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 452,
+ 452, 946, 1537, 1777, 1537, 1537, 946, 946, 2033, 946,
+ 1779, 946, 946, 1780, 1781, 1779, 2048, 1783, 2336, 1547,
+
+ 946, 946, 1779, 946, 2337, 2337, 2337, 2337, 2033, 2033,
+ 2033, 2033, 1779, 946, 1779, 2337, 2337, 2337, 2337, 2337,
+ 2033, 2337, 2033, 2033, 2033, 2033, 2033, 2033, 2337, 946,
+ 946, 255, 535, 535, 535, 535, 255, 255, 628, 255,
+ 629, 255, 255, 404, 630, 629, 631, 632, 633, 345,
+ 255, 255, 629, 255, 628, 628, 628, 628, 628, 628,
+ 628, 628, 629, 255, 629, 628, 628, 628, 628, 628,
+ 628, 628, 628, 628, 628, 628, 628, 628, 628, 255,
+ 255, 1782, 961, 2034, 468, 5143, 1478, 5143, 1147, 2033,
+ 2033, 2033, 2033, 2419, 3958, 4232, 2420, 2229, 4233, 1816,
+
+ 2033, 2033, 2033, 2033, 2033, 3959, 2033, 5143, 3447, 5143,
+ 5143, 5143, 5143, 2033, 946, 2035, 1478, 2035, 2035, 946,
+ 2036, 946, 946, 946, 946, 2035, 2035, 947, 946, 946,
+ 2037, 946, 2036, 946, 946, 946, 946, 2036, 2036, 2036,
+ 2036, 2036, 2036, 2036, 2036, 946, 946, 946, 2036, 2036,
+ 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036,
+ 2036, 2036, 2036, 946, 1334, 2340, 2341, 2340, 2340, 1334,
+ 1334, 2342, 1334, 2343, 1334, 1334, 2344, 2345, 2343, 2346,
+ 2697, 2347, 2348, 1334, 1334, 2343, 1334, 2342, 2342, 2342,
+ 2342, 2342, 2342, 2342, 2342, 2343, 1334, 2343, 2342, 2342,
+
+ 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342,
+ 2342, 2342, 1334, 1334, 1781, 5143, 2048, 1783, 2049, 4238,
+ 4241, 1147, 5143, 5143, 2050, 2050, 2050, 2050, 5143, 2476,
+ 4239, 4242, 1816, 2782, 2791, 2050, 2050, 2050, 2050, 2050,
+ 2477, 2050, 5143, 3130, 5143, 5143, 5143, 5143, 2050, 946,
+ 1547, 1792, 1547, 1547, 946, 946, 1793, 946, 1547, 946,
+ 946, 1780, 1794, 1547, 1795, 1796, 1797, 1547, 946, 946,
+ 1547, 946, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793,
+ 1547, 946, 1547, 1793, 1793, 1793, 1793, 1793, 1793, 1793,
+ 1793, 1793, 1793, 1793, 1793, 1793, 1793, 946, 946, 2053,
+
+ 1869, 1360, 1147, 5143, 5143, 5143, 5143, 2061, 5143, 2353,
+ 5143, 1870, 1819, 1816, 3131, 2354, 2354, 2354, 2354, 2053,
+ 2053, 2053, 2053, 5143, 5143, 5143, 2354, 2354, 2354, 2354,
+ 2354, 2053, 2354, 2053, 2053, 2053, 2053, 2053, 2053, 2354,
+ 1795, 4246, 2054, 1673, 5143, 2486, 5143, 2486, 2053, 2053,
+ 2053, 2053, 4247, 3137, 4248, 2805, 3493, 4249, 3493, 2053,
+ 2053, 2053, 2053, 2053, 3138, 2053, 5143, 3483, 5143, 5143,
+ 5143, 5143, 2053, 1334, 2348, 2355, 2348, 2348, 1334, 1334,
+ 2356, 1334, 2348, 1334, 1334, 2344, 2357, 2348, 2358, 2700,
+ 2359, 2348, 1334, 1334, 2348, 1334, 2356, 2356, 2356, 2356,
+
+ 2356, 2356, 2356, 2356, 2348, 1334, 2348, 2356, 2356, 2356,
+ 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
+ 2356, 1334, 1334, 2061, 4001, 2062, 1891, 5143, 1904, 5143,
+ 1673, 2063, 2063, 2063, 2063, 4002, 3147, 4253, 4252, 2502,
+ 4254, 2485, 2063, 2063, 2063, 2063, 2063, 3148, 2063, 5143,
+ 3494, 5143, 5143, 5143, 5143, 2063, 1479, 2362, 2563, 2362,
+ 2362, 1479, 1479, 2575, 1479, 2576, 1479, 1479, 2701, 2579,
+ 2576, 2580, 2702, 2582, 2703, 1479, 1479, 2576, 1479, 2575,
+ 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2576, 1479, 2576,
+ 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575,
+
+ 2575, 2575, 2575, 2575, 1479, 1479, 1080, 1801, 2025, 1801,
+ 1801, 1080, 1080, 2363, 1080, 2067, 1080, 1080, 2068, 2069,
+ 2067, 2070, 2071, 2364, 1846, 1080, 1080, 2067, 1080, 2363,
+ 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2067, 1080, 2067,
+ 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
+ 2363, 2363, 2363, 2363, 1080, 1080, 2376, 5143, 2704, 5143,
+ 5143, 1435, 5143, 3660, 2705, 2705, 2705, 2705, 986, 986,
+ 986, 986, 2164, 3790, 4164, 2705, 2705, 2705, 2705, 2705,
+ 562, 2705, 3160, 988, 3791, 5143, 3147, 4257, 2705, 2066,
+ 1904, 2897, 862, 3161, 5143, 5143, 4258, 3148, 5143, 2072,
+
+ 3766, 4262, 3559, 1480, 4263, 2066, 2066, 2066, 2066, 2066,
+ 2066, 2066, 2066, 5143, 5143, 989, 2066, 2066, 2066, 2066,
+ 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066,
+ 1080, 1732, 1817, 1732, 1732, 1080, 1972, 1080, 1080, 1080,
+ 1080, 1732, 1732, 1081, 1080, 1080, 1973, 1080, 1972, 1080,
+ 1080, 1080, 1080, 1972, 1972, 1972, 1972, 1972, 1972, 1972,
+ 1972, 1080, 1080, 1080, 1972, 1972, 1972, 1972, 1972, 1972,
+ 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1080,
+ 1485, 2706, 2682, 2706, 2706, 1485, 1485, 2707, 1485, 2708,
+ 1485, 1485, 2709, 2710, 2708, 2711, 2071, 2712, 2713, 1485,
+
+ 1485, 2708, 1485, 2707, 2707, 2707, 2707, 2707, 2707, 2707,
+ 2707, 2708, 1485, 2708, 2707, 2707, 2707, 2707, 2707, 2707,
+ 2707, 2707, 2707, 2707, 2707, 2707, 2707, 2707, 1485, 1485,
+ 257, 951, 898, 951, 951, 257, 952, 257, 257, 257,
+ 257, 951, 951, 634, 257, 257, 2714, 257, 952, 257,
+ 257, 257, 257, 952, 952, 952, 952, 952, 952, 952,
+ 952, 257, 257, 257, 952, 952, 952, 952, 952, 952,
+ 952, 952, 952, 952, 952, 952, 952, 952, 952, 257,
+ 2376, 3165, 2377, 4267, 5143, 3660, 5143, 854, 2378, 2378,
+ 2378, 2378, 3166, 4282, 4268, 3507, 4164, 2850, 1459, 2378,
+
+ 2378, 2378, 2378, 2378, 4283, 2378, 5143, 2513, 5143, 5143,
+ 5143, 5143, 2378, 1080, 1846, 2113, 1846, 1846, 1080, 1080,
+ 2114, 1080, 1846, 1080, 1080, 2068, 2115, 1846, 2116, 2117,
+ 2118, 1846, 1080, 1080, 1846, 1080, 2114, 2114, 2114, 2114,
+ 2114, 2114, 2114, 2114, 1846, 1080, 1846, 2114, 2114, 2114,
+ 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
+ 2114, 1080, 1080, 1812, 2718, 2719, 2718, 2718, 1812, 1812,
+ 2720, 1812, 2721, 1812, 1812, 2722, 2723, 2721, 2724, 2725,
+ 2726, 2727, 1812, 1812, 2721, 1812, 2720, 2720, 2720, 2720,
+ 2720, 2720, 2720, 2720, 2721, 1812, 2721, 2720, 2720, 2720,
+
+ 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720,
+ 2720, 1812, 1812, 550, 1814, 1792, 1814, 1814, 550, 550,
+ 2381, 550, 2077, 550, 550, 1157, 2078, 2077, 2079, 2080,
+ 2382, 967, 550, 550, 2077, 550, 2381, 2381, 2381, 2381,
+ 2381, 2381, 2381, 2381, 2077, 550, 2077, 2381, 2381, 2381,
+ 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2381,
+ 2381, 550, 550, 2390, 5143, 2728, 5143, 5143, 2897, 5143,
+ 1994, 2729, 2729, 2729, 2729, 986, 986, 986, 986, 3559,
+ 1460, 3019, 2729, 2729, 2729, 2729, 2729, 562, 2729, 854,
+ 988, 4292, 5143, 4321, 4293, 2729, 2076, 4324, 1994, 1177,
+
+ 2867, 5143, 5143, 2868, 4322, 5143, 2081, 2855, 4325, 3019,
+ 1421, 2536, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076,
+ 5143, 5143, 989, 2076, 2076, 2076, 2076, 2076, 2076, 2076,
+ 2076, 2076, 2076, 2076, 2076, 2076, 2076, 793, 2730, 2355,
+ 2730, 2730, 793, 793, 2731, 793, 2732, 793, 793, 1620,
+ 2733, 2732, 2734, 2080, 2735, 1617, 793, 793, 2732, 793,
+ 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2732, 793,
+ 2732, 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731,
+ 2731, 2731, 2731, 2731, 2731, 793, 793, 257, 648, 795,
+ 648, 648, 257, 257, 796, 257, 648, 257, 257, 780,
+
+ 2736, 648, 797, 2737, 799, 648, 257, 257, 648, 257,
+ 796, 796, 796, 796, 796, 796, 796, 796, 648, 257,
+ 648, 796, 796, 796, 796, 796, 796, 796, 796, 796,
+ 796, 796, 796, 796, 796, 257, 257, 2390, 2897, 2391,
+ 4340, 5143, 2486, 5143, 2486, 2392, 2392, 2392, 2392, 4337,
+ 3548, 4341, 4338, 3493, 2592, 3493, 2392, 2392, 2392, 2392,
+ 2392, 4097, 2392, 5143, 4342, 5143, 5143, 5143, 5143, 2392,
+ 784, 1147, 1147, 1147, 1147, 784, 1359, 1148, 784, 961,
+ 784, 1360, 1361, 1150, 961, 1151, 1362, 1153, 1363, 784,
+ 784, 961, 784, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+
+ 1364, 961, 784, 961, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1359, 784,
+ 898, 898, 898, 898, 5143, 169, 176, 898, 121, 5143,
+ 168, 850, 121, 121, 177, 1094, 179, 852, 3830, 5143,
+ 121, 3831, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
+ 121, 5143, 121, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
+ 1095, 1095, 1095, 1095, 1095, 1095, 1095, 169, 1291, 2109,
+ 2096, 2109, 2109, 1291, 1291, 2739, 1291, 2109, 1291, 1291,
+ 2290, 2109, 2109, 2400, 2429, 2740, 2109, 1291, 1291, 2109,
+ 1291, 2739, 2739, 2739, 2739, 2739, 2739, 2739, 2739, 2109,
+
+ 1291, 2109, 2739, 2739, 2739, 2739, 2739, 2739, 2739, 2739,
+ 2739, 2739, 2739, 2739, 2739, 2739, 1291, 1291, 1291, 2237,
+ 2410, 2237, 2237, 1291, 2397, 1291, 1291, 1291, 1291, 2237,
+ 2237, 1291, 1291, 1291, 2589, 1291, 2397, 1291, 1291, 1291,
+ 1291, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 1291,
+ 1291, 1291, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397,
+ 2397, 2397, 2397, 2397, 2397, 2397, 2397, 1291, 2398, 2678,
+ 1435, 1891, 5143, 5143, 5143, 5143, 5143, 5143, 2402, 5143,
+ 2679, 2164, 2488, 3232, 2398, 2398, 2398, 2398, 2398, 2398,
+ 2398, 2398, 5143, 5143, 5143, 2398, 2398, 2398, 2398, 2398,
+
+ 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2743,
+ 308, 2744, 1952, 5143, 2486, 5143, 2897, 2745, 2745, 2745,
+ 2745, 2545, 4347, 2065, 2546, 3493, 3380, 3559, 2745, 2745,
+ 2745, 2745, 2745, 4348, 2745, 5143, 3885, 5143, 5143, 5143,
+ 5143, 2745, 784, 1360, 1360, 1360, 1360, 784, 1359, 784,
+ 784, 784, 784, 1360, 1360, 785, 784, 784, 1367, 784,
+ 1359, 784, 784, 784, 784, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 784, 784, 784, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 784, 250, 743, 898, 743, 743, 250, 250, 1096,
+
+ 250, 743, 250, 250, 739, 743, 743, 900, 901, 1097,
+ 743, 250, 250, 743, 250, 1096, 1096, 1096, 1096, 1096,
+ 1096, 1096, 1096, 743, 250, 743, 1096, 1096, 1096, 1096,
+ 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096,
+ 250, 250, 784, 961, 961, 961, 961, 784, 784, 1365,
+ 784, 961, 784, 784, 1149, 1150, 961, 1151, 1152, 1366,
+ 961, 784, 784, 961, 784, 1365, 1365, 1365, 1365, 1365,
+ 1365, 1365, 1365, 961, 784, 961, 1365, 1365, 1365, 1365,
+ 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365,
+ 784, 784, 959, 1581, 1581, 1581, 1581, 959, 959, 1582,
+
+ 959, 1581, 959, 959, 1583, 1584, 1581, 1585, 2751, 1586,
+ 1581, 959, 959, 1581, 959, 1582, 1582, 1582, 1582, 1582,
+ 1582, 1582, 1582, 1581, 959, 1581, 1582, 1582, 1582, 1582,
+ 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582, 1582,
+ 959, 959, 1148, 709, 2897, 862, 5143, 5143, 5143, 5143,
+ 5143, 5143, 1153, 5143, 2527, 3559, 1480, 2528, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 5143, 5143, 5143, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 255, 1380, 1380, 1380, 1380, 255, 469,
+ 403, 255, 345, 255, 468, 1590, 791, 345, 406, 2752,
+
+ 408, 1592, 255, 255, 345, 255, 1593, 1593, 1593, 1593,
+ 1593, 1593, 1593, 1593, 345, 255, 345, 1593, 1593, 1593,
+ 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593,
+ 1593, 469, 255, 1377, 4351, 1378, 862, 5143, 3660, 5143,
+ 1177, 1379, 1379, 1379, 1379, 4352, 4366, 2224, 2577, 4164,
+ 2225, 1421, 1379, 1379, 1379, 1379, 1379, 4367, 1379, 5143,
+ 2703, 5143, 5143, 5143, 5143, 1379, 1588, 2421, 2753, 2421,
+ 2421, 1588, 2754, 2755, 1588, 2430, 1588, 2756, 2757, 2758,
+ 2430, 2759, 2760, 2761, 2762, 1588, 1588, 2430, 1588, 2763,
+ 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2430, 1588, 2430,
+
+ 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763,
+ 2763, 2763, 2763, 2763, 2754, 1588, 962, 1832, 1833, 1832,
+ 1832, 962, 962, 1834, 962, 1832, 962, 962, 1835, 1836,
+ 1832, 1837, 2104, 1838, 1832, 962, 962, 1832, 962, 1834,
+ 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1832, 962, 1832,
+ 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834, 1834,
+ 1834, 1834, 1834, 1834, 962, 962, 1588, 2430, 2768, 2430,
+ 2430, 1588, 1588, 2755, 1588, 2430, 1588, 1588, 2769, 2758,
+ 2430, 2759, 2770, 2761, 2430, 1588, 1588, 2430, 1588, 2755,
+ 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2430, 1588, 2430,
+
+ 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
+ 2755, 2755, 2755, 2755, 1588, 1588, 1080, 1846, 2113, 1846,
+ 1846, 1080, 1080, 2431, 1080, 1846, 1080, 1080, 2068, 2115,
+ 1846, 2116, 2117, 2432, 1846, 1080, 1080, 1846, 1080, 2431,
+ 2431, 2431, 2431, 2431, 2431, 2431, 2431, 1846, 1080, 1846,
+ 2431, 2431, 2431, 2431, 2431, 2431, 2431, 2431, 2431, 2431,
+ 2431, 2431, 2431, 2431, 1080, 1080, 2441, 1975, 2771, 4369,
+ 5143, 1673, 5143, 1891, 2772, 2772, 2772, 2772, 1976, 1082,
+ 4370, 3285, 2485, 2984, 2488, 2772, 2772, 2772, 2772, 2772,
+ 2260, 2772, 5143, 2261, 5143, 5143, 5143, 5143, 2772, 248,
+
+ 610, 610, 610, 610, 248, 248, 729, 248, 610, 248,
+ 248, 605, 730, 610, 731, 732, 733, 610, 248, 248,
+ 610, 248, 729, 729, 729, 729, 729, 729, 729, 729,
+ 610, 248, 610, 729, 729, 729, 729, 729, 729, 729,
+ 729, 729, 729, 729, 729, 729, 729, 248, 248, 1485,
+ 2713, 2773, 2713, 2713, 1485, 1485, 2774, 1485, 2713, 1485,
+ 1485, 2709, 2775, 2713, 2776, 2117, 2777, 2713, 1485, 1485,
+ 2713, 1485, 2774, 2774, 2774, 2774, 2774, 2774, 2774, 2774,
+ 2713, 1485, 2713, 2774, 2774, 2774, 2774, 2774, 2774, 2774,
+ 2774, 2774, 2774, 2774, 2774, 2774, 2774, 1485, 1485, 2114,
+
+ 344, 1673, 2897, 5143, 5143, 5143, 5143, 5143, 5143, 2118,
+ 5143, 4384, 2485, 3559, 4385, 2114, 2114, 2114, 2114, 2114,
+ 2114, 2114, 2114, 5143, 5143, 5143, 2114, 2114, 2114, 2114,
+ 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
+ 257, 951, 898, 951, 951, 257, 952, 257, 257, 257,
+ 257, 951, 951, 644, 257, 257, 2778, 257, 952, 257,
+ 257, 257, 257, 952, 952, 952, 952, 952, 952, 952,
+ 952, 257, 257, 257, 952, 952, 952, 952, 952, 952,
+ 952, 952, 952, 952, 952, 952, 952, 952, 952, 257,
+ 2441, 4387, 2442, 1380, 5143, 3660, 5143, 3660, 2443, 2443,
+
+ 2443, 2443, 4388, 3548, 4390, 4389, 4164, 4391, 4164, 2443,
+ 2443, 2443, 2443, 2443, 4097, 2443, 5143, 4392, 5143, 5143,
+ 5143, 5143, 2443, 561, 812, 812, 812, 812, 561, 561,
+ 813, 561, 561, 561, 561, 561, 562, 561, 561, 984,
+ 561, 561, 561, 561, 561, 561, 813, 813, 813, 813,
+ 813, 813, 813, 813, 561, 561, 561, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 985, 561, 1406, 2782, 2453, 2782, 2782, 1406, 1406,
+ 2783, 1406, 1406, 1406, 1406, 1406, 1407, 1406, 1406, 2784,
+ 2783, 1406, 1406, 1406, 1406, 1406, 2783, 2783, 2783, 2783,
+
+ 2783, 2783, 2783, 2783, 1406, 1406, 1406, 2783, 2783, 2783,
+ 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783,
+ 2783, 2785, 1406, 260, 1408, 1408, 1408, 1408, 260, 260,
+ 565, 260, 260, 260, 260, 260, 261, 260, 260, 1632,
+ 260, 260, 260, 260, 260, 260, 565, 565, 565, 565,
+ 565, 565, 565, 565, 260, 260, 260, 565, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 565, 1633, 260, 1409, 2791, 2792, 2791, 2791, 1409, 1409,
+ 2793, 1409, 1409, 1409, 1409, 1409, 1410, 1409, 1409, 2794,
+ 2793, 1409, 1409, 1409, 1409, 1409, 2793, 2793, 2793, 2793,
+
+ 2793, 2793, 2793, 2793, 1409, 1409, 1409, 2793, 2793, 2793,
+ 2793, 2793, 2793, 2793, 2793, 2793, 2793, 2793, 2793, 2793,
+ 2793, 2795, 1409, 1178, 2457, 2458, 2457, 2457, 1178, 1178,
+ 2459, 1178, 1178, 1178, 1178, 1178, 1179, 1178, 1178, 2460,
+ 2459, 1178, 1178, 1178, 1178, 1178, 2459, 2459, 2459, 2459,
+ 2459, 2459, 2459, 2459, 1178, 1178, 1178, 2459, 2459, 2459,
+ 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459, 2459,
+ 2459, 2461, 1178, 187, 1177, 1177, 1177, 1177, 187, 187,
+ 316, 187, 187, 187, 187, 187, 188, 187, 187, 1183,
+ 187, 187, 187, 187, 187, 187, 316, 316, 316, 316,
+
+ 316, 316, 316, 316, 187, 187, 187, 316, 316, 316,
+ 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
+ 316, 1184, 187, 1420, 2805, 2806, 2805, 2805, 1420, 1420,
+ 2807, 1420, 1420, 1420, 1420, 1420, 1421, 1420, 1420, 2808,
+ 2807, 1420, 1420, 1420, 1420, 1420, 2807, 2807, 2807, 2807,
+ 2807, 2807, 2807, 2807, 1420, 1420, 1420, 2807, 2807, 2807,
+ 2807, 2807, 2807, 2807, 2807, 2807, 2807, 2807, 2807, 2807,
+ 2807, 2809, 1420, 1194, 1883, 2152, 1883, 1883, 1194, 1194,
+ 2478, 1194, 1194, 1194, 1883, 1883, 1195, 1194, 1194, 2154,
+ 2479, 1883, 1194, 1194, 1194, 1194, 2478, 2478, 2478, 2478,
+
+ 2478, 2478, 2478, 2478, 1194, 1194, 1194, 2478, 2478, 2478,
+ 2478, 2478, 2478, 2478, 2478, 2478, 2478, 2478, 2478, 2478,
+ 2478, 2155, 1194, 1196, 1891, 1891, 1891, 1891, 1196, 1196,
+ 2482, 1196, 1196, 1196, 1891, 1891, 1197, 1196, 1196, 1895,
+ 2483, 1891, 1196, 1196, 1196, 1196, 2482, 2482, 2482, 2482,
+ 2482, 2482, 2482, 2482, 1196, 1196, 1196, 2482, 2482, 2482,
+ 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482,
+ 2482, 1893, 1196, 424, 2486, 2486, 2486, 2486, 424, 424,
+ 2817, 424, 424, 424, 680, 680, 425, 424, 424, 2818,
+ 424, 680, 424, 424, 424, 424, 2817, 2817, 2817, 2817,
+
+ 2817, 2817, 2817, 2817, 424, 424, 424, 2817, 2817, 2817,
+ 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817,
+ 2817, 832, 424, 1196, 1435, 1435, 1435, 1435, 1196, 1196,
+ 1674, 1196, 1196, 1196, 1196, 1196, 1197, 1196, 1196, 1675,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1674, 1674, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1196, 1196, 1196, 1674, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
+ 1674, 1196, 1196, 326, 2492, 2826, 2492, 2492, 326, 326,
+ 2827, 326, 326, 326, 1446, 1446, 326, 326, 326, 2828,
+ 326, 1446, 326, 326, 326, 326, 2827, 2827, 2827, 2827,
+
+ 2827, 2827, 2827, 2827, 326, 326, 326, 2827, 2827, 2827,
+ 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827,
+ 2827, 1450, 326, 1680, 2493, 2486, 2493, 2493, 1680, 1680,
+ 2829, 1680, 1680, 1680, 2493, 2493, 1681, 1680, 1680, 2830,
+ 1680, 2493, 1680, 1680, 1680, 1680, 2829, 2829, 2829, 2829,
+ 2829, 2829, 2829, 2829, 1680, 1680, 1680, 2829, 2829, 2829,
+ 2829, 2829, 2829, 2829, 2829, 2829, 2829, 2829, 2829, 2829,
+ 2829, 2831, 1680, 1017, 2170, 2171, 2170, 2170, 1017, 1017,
+ 2834, 1017, 1017, 1017, 2170, 2170, 1018, 1017, 1017, 2173,
+ 2835, 2170, 1017, 1017, 1017, 1017, 2834, 2834, 2834, 2834,
+
+ 2834, 2834, 2834, 2834, 1017, 1017, 1017, 2834, 2834, 2834,
+ 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834,
+ 2834, 2175, 1017, 2497, 1817, 812, 1673, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2498, 5143, 4404, 1407, 2485, 4405, 2497,
+ 2497, 2497, 2497, 2497, 2497, 2497, 2497, 5143, 5143, 5143,
+ 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497,
+ 2497, 2497, 2497, 2497, 838, 1910, 1904, 1910, 1910, 838,
+ 838, 2503, 838, 838, 838, 1910, 1910, 839, 838, 838,
+ 1912, 2504, 1910, 838, 838, 838, 838, 2503, 2503, 2503,
+ 2503, 2503, 2503, 2503, 2503, 838, 838, 838, 2503, 2503,
+
+ 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503,
+ 2503, 2503, 1914, 838, 1680, 2508, 2847, 2508, 2508, 1680,
+ 1680, 2848, 1680, 1680, 1680, 1680, 1680, 1681, 1680, 1680,
+ 2849, 1680, 1680, 1680, 1680, 1680, 1680, 2848, 2848, 2848,
+ 2848, 2848, 2848, 2848, 2848, 1680, 1680, 1680, 2848, 2848,
+ 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2848,
+ 2848, 2848, 1680, 1680, 599, 854, 854, 854, 854, 599,
+ 1038, 855, 599, 856, 599, 1039, 1040, 858, 856, 859,
+ 1041, 861, 1042, 599, 599, 856, 599, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 856, 599, 856, 1043, 1043,
+
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1038, 599, 1458, 2850, 2203, 2850, 2850, 1458,
+ 1458, 2851, 1458, 2512, 1458, 1458, 2852, 2515, 2512, 2516,
+ 2853, 2854, 2855, 1458, 1458, 2512, 1458, 2851, 2851, 2851,
+ 2851, 2851, 2851, 2851, 2851, 2512, 1458, 2512, 2851, 2851,
+ 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851,
+ 2851, 2851, 1458, 1458, 2511, 1082, 3660, 1082, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2518, 5143, 2260, 4164, 1505, 2261,
+ 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 5143, 5143,
+ 5143, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511,
+
+ 2511, 2511, 2511, 2511, 2511, 1458, 2513, 2532, 2513, 2513,
+ 1458, 2510, 1458, 1458, 1458, 1458, 2513, 2513, 1459, 1458,
+ 1458, 2856, 1458, 2510, 1458, 1458, 1458, 1458, 2510, 2510,
+ 2510, 2510, 2510, 2510, 2510, 2510, 1458, 1458, 1458, 2510,
+ 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510,
+ 2510, 2510, 2510, 2510, 1458, 1697, 2857, 2858, 2857, 2857,
+ 1697, 1697, 2859, 1697, 2860, 1697, 1697, 2861, 2862, 2860,
+ 2863, 2864, 2865, 2866, 1697, 1697, 2860, 1697, 2859, 2859,
+ 2859, 2859, 2859, 2859, 2859, 2859, 2860, 1697, 2860, 2859,
+ 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859, 2859,
+
+ 2859, 2859, 2859, 1697, 1697, 2869, 1380, 2870, 114, 5143,
+ 3660, 5143, 2897, 2871, 2871, 2871, 2871, 4390, 345, 3319,
+ 4391, 4164, 3320, 3559, 2871, 2871, 2871, 2871, 2871, 2351,
+ 2871, 5143, 2352, 5143, 5143, 5143, 5143, 2871, 1458, 2855,
+ 2573, 2855, 2855, 1458, 1458, 2872, 1458, 2855, 1458, 1458,
+ 2852, 2873, 2855, 2874, 2875, 2876, 2855, 1458, 1458, 2855,
+ 1458, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2855,
+ 1458, 2855, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872,
+ 2872, 2872, 2872, 2872, 2872, 2872, 1458, 1458, 1093, 1744,
+ 1713, 1744, 1744, 1093, 1093, 2184, 1093, 1927, 1093, 1093,
+
+ 1989, 1927, 1927, 2189, 1990, 2521, 1991, 1093, 1093, 1927,
+ 1093, 2522, 2522, 2522, 2522, 2184, 2184, 2184, 2184, 1927,
+ 1093, 1927, 2522, 2522, 2522, 2522, 2522, 2184, 2522, 2184,
+ 2184, 2184, 2184, 2184, 2184, 2522, 1093, 1093, 1093, 1991,
+ 1962, 1991, 1991, 1093, 1093, 2525, 1093, 1991, 1093, 1093,
+ 1989, 1991, 1991, 2193, 2194, 2526, 1991, 1093, 1093, 1991,
+ 1093, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 1991,
+ 1093, 1991, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525,
+ 2525, 2525, 2525, 2525, 2525, 2525, 1093, 1093, 2529, 5143,
+ 2877, 5143, 5143, 1460, 5143, 1478, 2878, 2878, 2878, 2878,
+
+ 2805, 2806, 2805, 2805, 1727, 1380, 2229, 2878, 2878, 2878,
+ 2878, 2878, 1421, 2878, 1817, 2808, 4430, 5143, 1147, 4431,
+ 2878, 2192, 336, 862, 2897, 4440, 5143, 5143, 4441, 3407,
+ 5143, 2530, 3408, 4453, 1480, 3559, 4454, 2531, 2531, 2531,
+ 2531, 2192, 2192, 2192, 2192, 5143, 5143, 2809, 2531, 2531,
+ 2531, 2531, 2531, 2192, 2531, 2192, 2192, 2192, 2192, 2192,
+ 2192, 2531, 1461, 2238, 854, 2238, 2238, 1461, 1461, 2879,
+ 1461, 2535, 1461, 1461, 2590, 2538, 2535, 2539, 2591, 2880,
+ 2592, 1461, 1461, 2535, 1461, 2879, 2879, 2879, 2879, 2879,
+ 2879, 2879, 2879, 2535, 1461, 2535, 2879, 2879, 2879, 2879,
+
+ 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879,
+ 1461, 1461, 2534, 1147, 2897, 1478, 5143, 5143, 5143, 5143,
+ 5143, 5143, 2541, 5143, 3407, 3559, 2229, 3408, 2534, 2534,
+ 2534, 2534, 2534, 2534, 2534, 2534, 5143, 5143, 5143, 2534,
+ 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534,
+ 2534, 2534, 2534, 1461, 2536, 2881, 2536, 2536, 1461, 2533,
+ 1461, 1461, 1461, 1461, 2536, 2536, 1462, 1461, 1461, 2882,
+ 1461, 2533, 1461, 1461, 1461, 1461, 2533, 2533, 2533, 2533,
+ 2533, 2533, 2533, 2533, 1461, 1461, 1461, 2533, 2533, 2533,
+ 2533, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 2533,
+
+ 2533, 2533, 1461, 1705, 2883, 1698, 2883, 2883, 1705, 1705,
+ 2884, 1705, 2885, 1705, 1705, 2886, 2887, 2885, 2888, 2889,
+ 2890, 2891, 1705, 1705, 2885, 1705, 2884, 2884, 2884, 2884,
+ 2884, 2884, 2884, 2884, 2885, 1705, 2885, 2884, 2884, 2884,
+ 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884, 2884,
+ 2884, 1705, 1705, 2894, 4463, 2895, 4468, 5143, 1904, 5143,
+ 1460, 2896, 2896, 2896, 2896, 4464, 1817, 4469, 2756, 2502,
+ 2764, 1727, 2896, 2896, 2896, 2896, 2896, 4470, 2896, 5143,
+ 4471, 5143, 5143, 5143, 5143, 2896, 1461, 2592, 2897, 2592,
+ 2592, 1461, 1461, 2898, 1461, 2592, 1461, 1461, 2590, 2899,
+
+ 2592, 2900, 2901, 2902, 2592, 1461, 1461, 2592, 1461, 2898,
+ 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2592, 1461, 2592,
+ 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898,
+ 2898, 2898, 2898, 2898, 1461, 1461, 1234, 2007, 2294, 2007,
+ 2007, 1234, 1234, 2547, 1234, 2206, 1234, 1234, 2295, 2209,
+ 2206, 2210, 2296, 2548, 2297, 1234, 1234, 2206, 1234, 2547,
+ 2547, 2547, 2547, 2547, 2547, 2547, 2547, 2206, 1234, 2206,
+ 2547, 2547, 2547, 2547, 2547, 2547, 2547, 2547, 2547, 2547,
+ 2547, 2547, 2547, 2547, 1234, 1234, 2560, 5143, 2906, 5143,
+ 5143, 3660, 5143, 1673, 2907, 2907, 2907, 2907, 3127, 3468,
+
+ 3127, 3127, 4164, 1380, 2485, 2907, 2907, 2907, 2907, 2907,
+ 2131, 2907, 3465, 3469, 2765, 5143, 2803, 2766, 2907, 2205,
+ 812, 3660, 5143, 3466, 5143, 5143, 3467, 2804, 5143, 2212,
+ 3471, 4472, 4164, 5143, 4473, 2205, 2205, 2205, 2205, 2205,
+ 2205, 2205, 2205, 5143, 5143, 3470, 2205, 2205, 2205, 2205,
+ 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+ 599, 712, 712, 712, 712, 599, 599, 855, 599, 856,
+ 599, 599, 857, 858, 856, 859, 860, 861, 862, 599,
+ 599, 856, 599, 855, 855, 855, 855, 855, 855, 855,
+ 855, 856, 599, 856, 855, 855, 855, 855, 855, 855,
+
+ 855, 855, 855, 855, 855, 855, 855, 855, 599, 599,
+ 1234, 2207, 854, 2207, 2207, 1234, 2204, 1234, 1234, 1234,
+ 1234, 2207, 2207, 1235, 1234, 1234, 2549, 1234, 2204, 1234,
+ 1234, 1234, 1234, 2204, 2204, 2204, 2204, 2204, 2204, 2204,
+ 2204, 1234, 1234, 1234, 2204, 2204, 2204, 2204, 2204, 2204,
+ 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 1234,
+ 1711, 2910, 2911, 2910, 2910, 1711, 1711, 2912, 1711, 2913,
+ 1711, 1711, 2914, 2915, 2913, 2916, 2296, 2917, 2918, 1711,
+ 1711, 2913, 1711, 2912, 2912, 2912, 2912, 2912, 2912, 2912,
+ 2912, 2913, 1711, 2913, 2912, 2912, 2912, 2912, 2912, 2912,
+
+ 2912, 2912, 2912, 2912, 2912, 2912, 2912, 2912, 1711, 1711,
+ 215, 1468, 1713, 1468, 1468, 215, 750, 620, 215, 621,
+ 215, 749, 1714, 1305, 621, 623, 2919, 625, 1716, 215,
+ 215, 621, 215, 1717, 1717, 1717, 1717, 1717, 1717, 1717,
+ 1717, 621, 215, 621, 1717, 1717, 1717, 1717, 1717, 1717,
+ 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 750, 215,
+ 2560, 3465, 2561, 4475, 5143, 5143, 5143, 5143, 2562, 2562,
+ 2562, 2562, 3466, 4019, 4476, 3480, 5143, 4477, 5143, 2562,
+ 2562, 2562, 2562, 2562, 4020, 2562, 5143, 4482, 5143, 5143,
+ 5143, 5143, 2562, 1234, 2297, 2563, 2297, 2297, 1234, 1234,
+
+ 2564, 1234, 2297, 1234, 1234, 2295, 2565, 2297, 2566, 2567,
+ 2568, 2297, 1234, 1234, 2297, 1234, 2564, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2297, 1234, 2297, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
+ 2564, 1234, 1234, 2920, 4491, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2921, 5143, 4492, 5143, 5143, 4493, 2920,
+ 2920, 2920, 2920, 2920, 2920, 2920, 2920, 5143, 5143, 5143,
+ 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
+ 2920, 2920, 2920, 2920, 1466, 2559, 2922, 2559, 2559, 1466,
+ 1466, 2923, 1466, 2559, 1466, 1466, 2554, 2924, 2559, 2925,
+
+ 2926, 2927, 2559, 1466, 1466, 2559, 1466, 2923, 2923, 2923,
+ 2923, 2923, 2923, 2923, 2923, 2559, 1466, 2559, 2923, 2923,
+ 2923, 2923, 2923, 2923, 2923, 2923, 2923, 2923, 2923, 2923,
+ 2923, 2923, 1466, 1466, 2930, 502, 2931, 3521, 5143, 5143,
+ 5143, 5143, 2932, 2932, 2932, 2932, 4494, 709, 3522, 4495,
+ 5143, 3523, 5143, 2932, 2932, 2932, 2932, 2932, 2523, 2932,
+ 5143, 2524, 5143, 5143, 5143, 5143, 2932, 599, 862, 862,
+ 862, 862, 599, 599, 1061, 599, 862, 599, 599, 857,
+ 2933, 862, 1063, 2934, 1065, 862, 599, 599, 862, 599,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 862, 599,
+
+ 862, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 599, 599, 1479, 2362, 2563,
+ 2362, 2362, 1479, 1479, 2939, 1479, 2576, 1479, 1479, 2701,
+ 2579, 2576, 2580, 2702, 2940, 2703, 1479, 1479, 2576, 1479,
+ 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2576, 1479,
+ 2576, 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939,
+ 2939, 2939, 2939, 2939, 2939, 1479, 1479, 2575, 3525, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2582, 5143, 3526,
+ 5143, 5143, 3527, 2575, 2575, 2575, 2575, 2575, 2575, 2575,
+ 2575, 5143, 5143, 5143, 2575, 2575, 2575, 2575, 2575, 2575,
+
+ 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 1479, 2577,
+ 2897, 2577, 2577, 1479, 2574, 1479, 1479, 1479, 1479, 2577,
+ 2577, 1480, 1479, 1479, 2941, 1479, 2574, 1479, 1479, 1479,
+ 1479, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 1479,
+ 1479, 1479, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574,
+ 2574, 2574, 2574, 2574, 2574, 2574, 2574, 1479, 1723, 2942,
+ 2922, 2942, 2942, 1723, 1723, 2943, 1723, 2944, 1723, 1723,
+ 2945, 2946, 2944, 2947, 2948, 2949, 2950, 1723, 1723, 2944,
+ 1723, 2943, 2943, 2943, 2943, 2943, 2943, 2943, 2943, 2944,
+ 1723, 2944, 2943, 2943, 2943, 2943, 2943, 2943, 2943, 2943,
+
+ 2943, 2943, 2943, 2943, 2943, 2943, 1723, 1723, 2951, 4506,
+ 2952, 1082, 5143, 5143, 5143, 5143, 2953, 2953, 2953, 2953,
+ 4507, 709, 4030, 3818, 5143, 4031, 5143, 2953, 2953, 2953,
+ 2953, 2953, 2527, 2953, 5143, 2528, 5143, 5143, 5143, 5143,
+ 2953, 1479, 2703, 2954, 2703, 2703, 1479, 1479, 2955, 1479,
+ 2703, 1479, 1479, 2701, 2956, 2703, 2957, 2958, 2959, 2703,
+ 1479, 1479, 2703, 1479, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 2703, 1479, 2703, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 1479,
+ 1479, 1726, 2585, 2960, 2585, 2585, 1726, 2961, 1726, 1726,
+
+ 1726, 1726, 2585, 2585, 1727, 1726, 1726, 2962, 1726, 2961,
+ 1726, 1726, 1726, 1726, 2961, 2961, 2961, 2961, 2961, 2961,
+ 2961, 2961, 1726, 1726, 1726, 2961, 2961, 2961, 2961, 2961,
+ 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
+ 1726, 248, 1817, 1817, 1817, 1817, 248, 377, 729, 248,
+ 610, 248, 336, 1701, 730, 610, 731, 2086, 733, 1703,
+ 248, 248, 610, 248, 2087, 2087, 2087, 2087, 2087, 2087,
+ 2087, 2087, 610, 248, 610, 2087, 2087, 2087, 2087, 2087,
+ 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 377,
+ 248, 512, 1738, 1460, 1738, 1738, 512, 512, 2239, 512,
+
+ 1978, 512, 512, 1979, 1980, 1978, 2252, 1982, 2593, 1984,
+ 512, 512, 1978, 512, 2594, 2594, 2594, 2594, 2239, 2239,
+ 2239, 2239, 1978, 512, 1978, 2594, 2594, 2594, 2594, 2594,
+ 2239, 2594, 2239, 2239, 2239, 2239, 2239, 2239, 2594, 512,
+ 512, 1977, 3539, 5143, 5143, 5143, 5143, 5143, 5143, 1981,
+ 5143, 1983, 5143, 3540, 5143, 5143, 3541, 1977, 1977, 1977,
+ 1977, 1977, 1977, 1977, 1977, 5143, 5143, 5143, 1977, 1977,
+ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977,
+ 1977, 1977, 1981, 2970, 2240, 1082, 5143, 5143, 5143, 5143,
+ 2239, 2239, 2239, 2239, 2971, 3548, 4030, 3542, 5143, 4031,
+
+ 5143, 2239, 2239, 2239, 2239, 2239, 4097, 2239, 5143, 4342,
+ 5143, 5143, 5143, 5143, 2239, 512, 847, 1033, 847, 847,
+ 512, 1034, 512, 512, 512, 512, 847, 847, 513, 512,
+ 512, 1035, 512, 1034, 512, 512, 512, 512, 1034, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 512, 512, 512, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 1034, 512, 701, 2595, 2232, 2595, 2595,
+ 701, 701, 2596, 701, 2597, 701, 701, 2598, 2599, 2597,
+ 2600, 2968, 2601, 2602, 701, 701, 2597, 701, 2596, 2596,
+ 2596, 2596, 2596, 2596, 2596, 2596, 2597, 701, 2597, 2596,
+
+ 2596, 2596, 2596, 2596, 2596, 2596, 2596, 2596, 2596, 2596,
+ 2596, 2596, 2596, 701, 701, 2252, 3555, 2253, 712, 5143,
+ 5143, 5143, 5143, 2254, 2254, 2254, 2254, 3556, 535, 2674,
+ 3557, 5143, 2675, 5143, 2254, 2254, 2254, 2254, 2254, 2935,
+ 2254, 5143, 2936, 5143, 5143, 5143, 5143, 2254, 512, 1984,
+ 1817, 1984, 1984, 512, 512, 2255, 512, 1984, 512, 512,
+ 1979, 2256, 1984, 2257, 2258, 2259, 1984, 512, 512, 1984,
+ 512, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 1984,
+ 512, 1984, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255,
+ 2255, 2255, 2255, 2255, 2255, 2255, 512, 512, 599, 1039,
+
+ 1039, 1039, 1039, 599, 1038, 599, 599, 599, 599, 1039,
+ 1039, 600, 599, 599, 1046, 599, 1038, 599, 599, 599,
+ 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 599,
+ 599, 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 599, 2607, 4531,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2608, 5143,
+ 4532, 5143, 5143, 3818, 2607, 2607, 2607, 2607, 2607, 2607,
+ 2607, 2607, 5143, 5143, 5143, 2607, 2607, 2607, 2607, 2607,
+ 2607, 2607, 2607, 2607, 2607, 2607, 2607, 2607, 2607, 2616,
+ 3062, 2972, 308, 5143, 5143, 5143, 5143, 2973, 2973, 2973,
+
+ 2973, 3063, 2223, 2545, 3582, 5143, 2546, 5143, 2973, 2973,
+ 2973, 2973, 2973, 3593, 2973, 5143, 3594, 5143, 5143, 5143,
+ 5143, 2973, 701, 2602, 2587, 2602, 2602, 701, 701, 2974,
+ 701, 2602, 701, 701, 2598, 2975, 2602, 2976, 2258, 2977,
+ 2602, 701, 701, 2602, 701, 2974, 2974, 2974, 2974, 2974,
+ 2974, 2974, 2974, 2602, 701, 2602, 2974, 2974, 2974, 2974,
+ 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
+ 701, 701, 250, 598, 704, 598, 598, 250, 705, 250,
+ 250, 250, 250, 598, 598, 1098, 250, 250, 2978, 250,
+ 705, 250, 250, 250, 250, 705, 705, 705, 705, 705,
+
+ 705, 705, 705, 250, 250, 250, 705, 705, 705, 705,
+ 705, 705, 705, 705, 705, 705, 705, 705, 705, 705,
+ 705, 250, 2616, 3525, 2617, 961, 5143, 5143, 5143, 5143,
+ 2618, 2618, 2618, 2618, 3526, 4551, 4548, 3605, 5143, 4549,
+ 5143, 2618, 2618, 2618, 2618, 2618, 4552, 2618, 5143, 4553,
+ 5143, 5143, 5143, 5143, 2618, 213, 1082, 1082, 1082, 1082,
+ 213, 382, 337, 213, 338, 213, 381, 1256, 340, 338,
+ 341, 1257, 343, 1258, 213, 213, 338, 213, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 338, 213, 338, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+
+ 1259, 1259, 1259, 382, 213, 1504, 2262, 2619, 2262, 2262,
+ 1504, 1504, 2982, 1504, 2621, 1504, 1504, 2622, 2623, 2621,
+ 2624, 2625, 2983, 2627, 1504, 1504, 2621, 1504, 2982, 2982,
+ 2982, 2982, 2982, 2982, 2982, 2982, 2621, 1504, 2621, 2982,
+ 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982,
+ 2982, 2982, 2982, 1504, 1504, 2620, 4555, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 2626, 5143, 4556, 5143, 5143,
+ 4163, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 5143,
+ 5143, 5143, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620,
+ 2620, 2620, 2620, 2620, 2620, 2620, 1504, 2984, 2985, 2984,
+
+ 2984, 1504, 2986, 1504, 1504, 1504, 1504, 2984, 2984, 1505,
+ 1504, 1504, 2987, 1504, 2986, 1504, 1504, 1504, 1504, 2986,
+ 2986, 2986, 2986, 2986, 2986, 2986, 2986, 1504, 1504, 1504,
+ 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986,
+ 2986, 2986, 2986, 2986, 2986, 1504, 1742, 2988, 2989, 2988,
+ 2988, 1742, 1742, 2990, 1742, 2991, 1742, 1742, 2992, 2993,
+ 2991, 2994, 2995, 2996, 2997, 1742, 1742, 2991, 1742, 2990,
+ 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2991, 1742, 2991,
+ 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990, 2990,
+ 2990, 2990, 2990, 2990, 1742, 1742, 2998, 3624, 2999, 4576,
+
+ 5143, 5143, 5143, 5143, 3000, 3000, 3000, 3000, 4560, 1281,
+ 4577, 3031, 5143, 3343, 5143, 3000, 3000, 3000, 3000, 3000,
+ 2652, 3000, 5143, 2653, 5143, 5143, 5143, 5143, 3000, 1504,
+ 2627, 3001, 2627, 2627, 1504, 1504, 3002, 1504, 2627, 1504,
+ 1504, 2622, 3003, 2627, 3004, 3005, 3006, 2627, 1504, 1504,
+ 2627, 1504, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+ 2627, 1504, 2627, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 1504, 1504, 784,
+ 1994, 1994, 1994, 1994, 784, 784, 2628, 784, 2264, 784,
+ 784, 1149, 2265, 2264, 2266, 2267, 2629, 961, 784, 784,
+
+ 2264, 784, 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2628,
+ 2264, 784, 2264, 2628, 2628, 2628, 2628, 2628, 2628, 2628,
+ 2628, 2628, 2628, 2628, 2628, 2628, 2628, 784, 784, 2639,
+ 5143, 3007, 5143, 5143, 5143, 5143, 5143, 3008, 3008, 3008,
+ 3008, 986, 986, 986, 986, 5143, 516, 5143, 3008, 3008,
+ 3008, 3008, 3008, 562, 3008, 535, 988, 4598, 5143, 4605,
+ 4599, 3008, 2263, 4616, 5143, 5143, 4602, 5143, 5143, 4603,
+ 4606, 5143, 2268, 3071, 4617, 5143, 5143, 3072, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 5143, 5143, 989, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+
+ 2263, 2263, 2263, 959, 3009, 3009, 3009, 3009, 959, 959,
+ 3010, 959, 3011, 959, 959, 1583, 3012, 3011, 3013, 2267,
+ 3014, 1581, 959, 959, 3011, 959, 3010, 3010, 3010, 3010,
+ 3010, 3010, 3010, 3010, 3011, 959, 3011, 3010, 3010, 3010,
+ 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010,
+ 3010, 959, 959, 898, 898, 898, 898, 5143, 169, 176,
+ 4621, 121, 5143, 168, 850, 942, 121, 177, 3015, 179,
+ 852, 4622, 5143, 121, 3085, 1095, 1095, 1095, 1095, 1095,
+ 1095, 1095, 1095, 121, 5143, 121, 1095, 1095, 1095, 1095,
+ 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095,
+
+ 169, 2639, 3123, 2640, 345, 5143, 5143, 5143, 5143, 2641,
+ 2641, 2641, 2641, 3124, 2423, 3094, 3713, 5143, 3095, 5143,
+ 2641, 2641, 2641, 2641, 2641, 2424, 2641, 5143, 3715, 5143,
+ 5143, 5143, 5143, 2641, 517, 890, 1082, 890, 890, 517,
+ 517, 1083, 517, 1084, 517, 517, 1085, 1086, 1084, 1087,
+ 1088, 1089, 1090, 517, 517, 1084, 517, 1083, 1083, 1083,
+ 1083, 1083, 1083, 1083, 1083, 1084, 517, 1084, 1083, 1083,
+ 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+ 1083, 1083, 517, 517, 1260, 4627, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 1261, 5143, 4628, 5143, 5143, 3447,
+
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 5143, 5143,
+ 5143, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1260, 1260, 1260, 1260, 517, 1262, 1263, 1262, 1262,
+ 517, 1264, 517, 517, 517, 517, 1262, 1262, 518, 517,
+ 517, 1265, 517, 1264, 517, 517, 517, 517, 1264, 1264,
+ 1264, 1264, 1264, 1264, 1264, 1264, 517, 517, 517, 1264,
+ 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264,
+ 1264, 1264, 1264, 1264, 517, 734, 1493, 1494, 1493, 1493,
+ 734, 734, 1495, 734, 1496, 734, 734, 1497, 1498, 1496,
+ 1499, 3020, 1500, 1501, 734, 734, 1496, 734, 1495, 1495,
+
+ 1495, 1495, 1495, 1495, 1495, 1495, 1496, 734, 1496, 1495,
+ 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495, 1495,
+ 1495, 1495, 1495, 734, 734, 641, 1759, 1478, 1759, 1759,
+ 641, 641, 1996, 641, 1997, 641, 641, 1382, 3021, 1997,
+ 1999, 3022, 2001, 1154, 641, 641, 1997, 641, 1996, 1996,
+ 1996, 1996, 1996, 1996, 1996, 1996, 1997, 641, 1997, 1996,
+ 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996,
+ 1996, 1996, 1996, 641, 641, 1278, 3745, 1279, 3137, 5143,
+ 5143, 5143, 5143, 1280, 1280, 1280, 1280, 3746, 2486, 3138,
+ 4629, 5143, 3754, 5143, 1280, 1280, 1280, 1280, 1280, 4635,
+
+ 1280, 5143, 4636, 5143, 5143, 5143, 5143, 1280, 517, 1090,
+ 1281, 1090, 1090, 517, 517, 1282, 517, 1090, 517, 517,
+ 1085, 1283, 1090, 1284, 1285, 1286, 1090, 517, 517, 1090,
+ 517, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1090,
+ 517, 1090, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 517, 517, 641, 1759,
+ 1478, 1759, 1759, 641, 641, 2271, 641, 1997, 641, 641,
+ 1382, 1998, 1997, 2283, 2000, 2654, 1154, 641, 641, 1997,
+ 641, 2655, 2655, 2655, 2655, 2271, 2271, 2271, 2271, 1997,
+ 641, 1997, 2655, 2655, 2655, 2655, 2655, 2271, 2655, 2271,
+
+ 2271, 2271, 2271, 2271, 2271, 2655, 641, 641, 255, 1478,
+ 1478, 1478, 1478, 255, 469, 628, 255, 629, 255, 468,
+ 1590, 630, 629, 631, 1721, 633, 1592, 255, 255, 629,
+ 255, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 629,
+ 255, 629, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 469, 255, 1999, 1016,
+ 2272, 681, 5143, 5143, 5143, 5143, 2271, 2271, 2271, 2271,
+ 4639, 4644, 4641, 4640, 5143, 4642, 5143, 2271, 2271, 2271,
+ 2271, 2271, 4645, 2271, 5143, 4021, 5143, 5143, 5143, 5143,
+ 2271, 962, 2656, 2657, 2656, 2656, 962, 962, 2658, 962,
+
+ 2659, 962, 962, 1835, 2660, 2659, 2661, 3023, 2662, 1832,
+ 962, 962, 2659, 962, 2658, 2658, 2658, 2658, 2658, 2658,
+ 2658, 2658, 2659, 962, 2659, 2658, 2658, 2658, 2658, 2658,
+ 2658, 2658, 2658, 2658, 2658, 2658, 2658, 2658, 2658, 962,
+ 962, 1998, 5143, 2283, 2000, 2284, 4649, 709, 5143, 5143,
+ 5143, 2285, 2285, 2285, 2285, 5143, 4654, 4650, 2523, 5143,
+ 3169, 2524, 2285, 2285, 2285, 2285, 2285, 4655, 2285, 5143,
+ 3885, 5143, 5143, 5143, 5143, 2285, 213, 381, 381, 381,
+ 381, 213, 382, 213, 213, 213, 213, 381, 381, 214,
+ 213, 213, 383, 213, 382, 213, 213, 213, 213, 382,
+
+ 382, 382, 382, 382, 382, 382, 382, 213, 213, 213,
+ 382, 382, 382, 382, 382, 382, 382, 382, 382, 382,
+ 382, 382, 382, 382, 382, 213, 1760, 2668, 3001, 2668,
+ 2668, 1760, 1760, 3024, 1760, 3025, 1760, 1760, 3026, 3027,
+ 3025, 3028, 3029, 3030, 3031, 1760, 1760, 3025, 1760, 3024,
+ 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3025, 1760, 3025,
+ 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
+ 3024, 3024, 3024, 3024, 1760, 1760, 1291, 2006, 1962, 2006,
+ 2006, 1291, 1291, 2669, 1291, 2289, 1291, 1291, 2290, 2289,
+ 2289, 2291, 2292, 2670, 2109, 1291, 1291, 2289, 1291, 2669,
+
+ 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2289, 1291, 2289,
+ 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669,
+ 2669, 2669, 2669, 2669, 1291, 1291, 2671, 5143, 3032, 5143,
+ 5143, 5143, 5143, 5143, 3033, 3033, 3033, 3033, 986, 986,
+ 986, 986, 5143, 854, 5143, 3033, 3033, 3033, 3033, 3033,
+ 562, 3033, 1478, 988, 3174, 5143, 854, 3175, 3033, 2288,
+ 1478, 5143, 5143, 4079, 5143, 5143, 4080, 3174, 5143, 2672,
+ 3175, 4079, 5143, 5143, 4080, 2673, 2673, 2673, 2673, 2288,
+ 2288, 2288, 2288, 5143, 5143, 989, 2673, 2673, 2673, 2673,
+ 2673, 2288, 2673, 2288, 2288, 2288, 2288, 2288, 2288, 2673,
+
+ 876, 1483, 1460, 1483, 1483, 876, 1728, 876, 876, 876,
+ 876, 1483, 1483, 2020, 876, 876, 3035, 876, 1728, 876,
+ 876, 876, 876, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
+ 1728, 876, 876, 876, 1728, 1728, 1728, 1728, 1728, 1728,
+ 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 876,
+ 599, 712, 712, 712, 712, 599, 599, 855, 599, 856,
+ 599, 599, 857, 858, 856, 859, 860, 861, 862, 599,
+ 599, 856, 599, 855, 855, 855, 855, 855, 855, 855,
+ 855, 856, 599, 856, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855, 599, 599,
+
+ 876, 1773, 2025, 1773, 1773, 876, 876, 2313, 876, 1773,
+ 876, 876, 1768, 2027, 1773, 2323, 2029, 2680, 1773, 876,
+ 876, 1773, 876, 2681, 2681, 2681, 2681, 2313, 2313, 2313,
+ 2313, 1773, 876, 1773, 2681, 2681, 2681, 2681, 2681, 2313,
+ 2681, 2313, 2313, 2313, 2313, 2313, 2313, 2681, 876, 876,
+ 248, 516, 516, 516, 516, 248, 248, 603, 248, 604,
+ 248, 248, 605, 606, 604, 607, 608, 609, 610, 248,
+ 248, 604, 248, 603, 603, 603, 603, 603, 603, 603,
+ 603, 604, 248, 604, 603, 603, 603, 603, 603, 603,
+ 603, 603, 603, 603, 603, 603, 603, 603, 248, 248,
+
+ 2028, 2897, 2314, 712, 5143, 5143, 5143, 5143, 2313, 2313,
+ 2313, 2313, 4337, 4555, 2928, 4338, 5143, 2929, 5143, 2313,
+ 2313, 2313, 2313, 2313, 4556, 2313, 5143, 4698, 5143, 5143,
+ 5143, 5143, 2313, 1249, 2308, 2682, 2308, 2308, 1249, 1249,
+ 2683, 1249, 2308, 1249, 1249, 2304, 2684, 2308, 2685, 3036,
+ 2686, 2308, 1249, 1249, 2308, 1249, 2683, 2683, 2683, 2683,
+ 2683, 2683, 2683, 2683, 2308, 1249, 2308, 2683, 2683, 2683,
+ 2683, 2683, 2683, 2683, 2683, 2683, 2683, 2683, 2683, 2683,
+ 2683, 1249, 1249, 2026, 1478, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2030, 5143, 3630, 5143, 5143, 3631, 2026,
+
+ 2026, 2026, 2026, 2026, 2026, 2026, 2026, 5143, 5143, 5143,
+ 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
+ 2026, 2026, 2026, 2026, 2323, 712, 2324, 535, 5143, 5143,
+ 5143, 5143, 2325, 2325, 2325, 2325, 2674, 1478, 2935, 2675,
+ 5143, 2936, 5143, 2325, 2325, 2325, 2325, 2325, 3337, 2325,
+ 862, 3338, 5143, 5143, 5143, 5143, 2325, 2266, 3889, 2268,
+ 1952, 4708, 5143, 5143, 4709, 2263, 2263, 2263, 2263, 4713,
+ 4555, 2065, 4714, 5143, 4714, 5143, 2263, 2263, 2263, 2263,
+ 2263, 4556, 2263, 5143, 4721, 5143, 5143, 5143, 5143, 2263,
+ 452, 911, 1121, 911, 911, 452, 452, 1122, 452, 911,
+
+ 452, 452, 906, 3040, 911, 1124, 3041, 1126, 911, 452,
+ 452, 911, 452, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 911, 452, 911, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 452, 452,
+ 1538, 3042, 3043, 3042, 3042, 1538, 1538, 3044, 1538, 3045,
+ 1538, 1538, 3046, 3047, 3045, 3048, 2691, 3049, 3050, 1538,
+ 1538, 3045, 1538, 3044, 3044, 3044, 3044, 3044, 3044, 3044,
+ 3044, 3045, 1538, 3045, 3044, 3044, 3044, 3044, 3044, 3044,
+ 3044, 3044, 3044, 3044, 3044, 3044, 3044, 3044, 1538, 1538,
+ 946, 1547, 1792, 1547, 1547, 946, 946, 1793, 946, 1547,
+
+ 946, 946, 1780, 3054, 1547, 1795, 3055, 1797, 1547, 946,
+ 946, 1547, 946, 1793, 1793, 1793, 1793, 1793, 1793, 1793,
+ 1793, 1547, 946, 1547, 1793, 1793, 1793, 1793, 1793, 1793,
+ 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 946, 946,
+ 1479, 2577, 2897, 2577, 2577, 1479, 2574, 1479, 1479, 1479,
+ 1479, 2577, 2577, 1480, 1479, 1479, 2941, 1479, 2574, 1479,
+ 1479, 1479, 1479, 2574, 2574, 2574, 2574, 2574, 2574, 2574,
+ 2574, 1479, 1479, 1479, 2574, 2574, 2574, 2574, 2574, 2574,
+ 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 1479,
+ 1479, 2703, 2954, 2703, 2703, 1479, 1479, 2955, 1479, 2703,
+
+ 1479, 1479, 2701, 2956, 2703, 2957, 2958, 2959, 2703, 1479,
+ 1479, 2703, 1479, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2703, 1479, 2703, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 1479, 1479,
+ 1080, 1801, 2025, 1801, 1801, 1080, 1080, 2363, 1080, 2067,
+ 1080, 1080, 2068, 2069, 2067, 2376, 2071, 2704, 1846, 1080,
+ 1080, 2067, 1080, 2705, 2705, 2705, 2705, 2363, 2363, 2363,
+ 2363, 2067, 1080, 2067, 2705, 2705, 2705, 2705, 2705, 2363,
+ 2705, 2363, 2363, 2363, 2363, 2363, 2363, 2705, 1080, 1080,
+ 2066, 709, 5143, 5143, 5143, 5143, 5143, 5143, 2070, 5143,
+
+ 2072, 5143, 4722, 5143, 5143, 4723, 2066, 2066, 2066, 2066,
+ 2066, 2066, 2066, 2066, 5143, 5143, 5143, 2066, 2066, 2066,
+ 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066, 2066,
+ 2066, 2070, 3898, 2364, 2897, 5143, 5143, 5143, 5143, 2363,
+ 2363, 2363, 2363, 3921, 709, 4724, 3922, 5143, 4725, 5143,
+ 2363, 2363, 2363, 2363, 2363, 2523, 2363, 5143, 2524, 5143,
+ 5143, 5143, 5143, 2363, 1080, 1732, 1817, 1732, 1732, 1080,
+ 1972, 1080, 1080, 1080, 1080, 1732, 1732, 1081, 1080, 1080,
+ 1973, 1080, 1972, 1080, 1080, 1080, 1080, 1972, 1972, 1972,
+ 1972, 1972, 1972, 1972, 1972, 1080, 1080, 1080, 1972, 1972,
+
+ 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972,
+ 1972, 1972, 1972, 1080, 1485, 2706, 2682, 2706, 2706, 1485,
+ 1485, 2707, 1485, 2708, 1485, 1485, 2709, 2710, 2708, 2711,
+ 3060, 2712, 2713, 1485, 1485, 2708, 1485, 2707, 2707, 2707,
+ 2707, 2707, 2707, 2707, 2707, 2708, 1485, 2708, 2707, 2707,
+ 2707, 2707, 2707, 2707, 2707, 2707, 2707, 2707, 2707, 2707,
+ 2707, 2707, 1485, 1485, 2376, 4728, 2377, 709, 5143, 5143,
+ 5143, 5143, 2378, 2378, 2378, 2378, 4729, 4735, 2527, 3909,
+ 5143, 2528, 5143, 2378, 2378, 2378, 2378, 2378, 4736, 2378,
+ 5143, 3372, 5143, 5143, 5143, 5143, 2378, 1080, 1846, 2113,
+
+ 1846, 1846, 1080, 1080, 2114, 1080, 1846, 1080, 1080, 2068,
+ 2115, 1846, 2116, 2117, 2118, 1846, 1080, 1080, 1846, 1080,
+ 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 1846, 1080,
+ 1846, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
+ 2114, 2114, 2114, 2114, 2114, 1080, 1080, 599, 862, 862,
+ 862, 862, 599, 599, 1061, 599, 862, 599, 599, 857,
+ 1062, 862, 1063, 1064, 1065, 862, 599, 599, 862, 599,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 862, 599,
+ 862, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 599, 599, 536, 948, 1121,
+
+ 948, 948, 536, 536, 1135, 536, 1136, 536, 536, 1137,
+ 1138, 1136, 1139, 1140, 1141, 1142, 536, 536, 1136, 536,
+ 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1136, 536,
+ 1136, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1135, 1135, 1135, 536, 536, 213, 308, 308,
+ 308, 308, 213, 213, 337, 213, 338, 213, 213, 339,
+ 340, 338, 341, 342, 343, 344, 213, 213, 338, 213,
+ 337, 337, 337, 337, 337, 337, 337, 337, 338, 213,
+ 338, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 213, 213, 1336, 1994, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1337, 5143, 3896,
+ 5143, 5143, 3897, 1336, 1336, 1336, 1336, 1336, 1336, 1336,
+ 1336, 5143, 5143, 5143, 1336, 1336, 1336, 1336, 1336, 1336,
+ 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 536, 1338,
+ 1281, 1338, 1338, 536, 1339, 536, 536, 536, 536, 1338,
+ 1338, 537, 536, 536, 1340, 536, 1339, 536, 536, 536,
+ 536, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 536,
+ 536, 536, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
+ 1339, 1339, 1339, 1339, 1339, 1339, 1339, 536, 776, 1552,
+ 1528, 1552, 1552, 776, 776, 1553, 776, 1554, 776, 776,
+
+ 1555, 1556, 1554, 1557, 3064, 1558, 1559, 776, 776, 1554,
+ 776, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1554,
+ 776, 1554, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1553,
+ 1553, 1553, 1553, 1553, 1553, 1553, 776, 776, 550, 1814,
+ 1792, 1814, 1814, 550, 550, 2076, 550, 2077, 550, 550,
+ 1157, 3065, 2077, 2079, 3066, 2081, 967, 550, 550, 2077,
+ 550, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2077,
+ 550, 2077, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076,
+ 2076, 2076, 2076, 2076, 2076, 2076, 550, 550, 1350, 4746,
+ 1351, 3958, 5143, 5143, 5143, 5143, 1352, 1352, 1352, 1352,
+
+ 4747, 898, 3959, 3373, 5143, 3960, 5143, 1352, 1352, 1352,
+ 1352, 1352, 2964, 1352, 5143, 2965, 5143, 5143, 5143, 5143,
+ 1352, 536, 1142, 1353, 1142, 1142, 536, 536, 1354, 536,
+ 1142, 536, 536, 1137, 1355, 1142, 1356, 1357, 1358, 1142,
+ 536, 536, 1142, 536, 1354, 1354, 1354, 1354, 1354, 1354,
+ 1354, 1354, 1142, 536, 1142, 1354, 1354, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 536,
+ 536, 550, 1814, 1792, 1814, 1814, 550, 550, 2381, 550,
+ 2077, 550, 550, 1157, 2078, 2077, 2390, 2080, 2728, 967,
+ 550, 550, 2077, 550, 2729, 2729, 2729, 2729, 2381, 2381,
+
+ 2381, 2381, 2077, 550, 2077, 2729, 2729, 2729, 2729, 2729,
+ 2381, 2729, 2381, 2381, 2381, 2381, 2381, 2381, 2729, 550,
+ 550, 2079, 3962, 2382, 1380, 5143, 5143, 5143, 5143, 2381,
+ 2381, 2381, 2381, 3963, 3289, 4430, 3964, 5143, 4431, 5143,
+ 2381, 2381, 2381, 2381, 2381, 3290, 2381, 5143, 3966, 5143,
+ 5143, 5143, 5143, 2381, 793, 2730, 2355, 2730, 2730, 793,
+ 793, 2731, 793, 2732, 793, 793, 1620, 2733, 2732, 2734,
+ 3067, 2735, 1617, 793, 793, 2732, 793, 2731, 2731, 2731,
+ 2731, 2731, 2731, 2731, 2731, 2732, 793, 2732, 2731, 2731,
+ 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731,
+
+ 2731, 2731, 793, 793, 2078, 5143, 2390, 2080, 2391, 1380,
+ 961, 5143, 5143, 5143, 2392, 2392, 2392, 2392, 5143, 3962,
+ 4430, 3119, 5143, 4431, 3120, 2392, 2392, 2392, 2392, 2392,
+ 3963, 2392, 5143, 3978, 5143, 5143, 5143, 5143, 2392, 1815,
+ 2738, 3068, 2738, 2738, 1815, 3069, 3070, 1815, 3071, 1815,
+ 3072, 3073, 3074, 3071, 3075, 3076, 3077, 3078, 1815, 1815,
+ 3071, 1815, 3079, 3079, 3079, 3079, 3079, 3079, 3079, 3079,
+ 3071, 1815, 3071, 3079, 3079, 3079, 3079, 3079, 3079, 3079,
+ 3079, 3079, 3079, 3079, 3079, 3079, 3079, 3069, 1815, 1291,
+ 2109, 2096, 2109, 2109, 1291, 1291, 2739, 1291, 2109, 1291,
+
+ 1291, 2290, 2109, 2109, 2400, 2429, 2740, 2109, 1291, 1291,
+ 2109, 1291, 2739, 2739, 2739, 2739, 2739, 2739, 2739, 2739,
+ 2109, 1291, 2109, 2739, 2739, 2739, 2739, 2739, 2739, 2739,
+ 2739, 2739, 2739, 2739, 2739, 2739, 2739, 1291, 1291, 2743,
+ 2486, 3080, 4001, 5143, 5143, 5143, 5143, 3081, 3081, 3081,
+ 3081, 4756, 680, 4002, 4757, 5143, 4252, 5143, 3081, 3081,
+ 3081, 3081, 3081, 4758, 3081, 4761, 4759, 4764, 5143, 3137,
+ 5143, 3081, 2398, 2486, 5143, 5143, 4762, 5143, 4765, 3499,
+ 3138, 3502, 2744, 4766, 4769, 5143, 5143, 4770, 2745, 2745,
+ 2745, 2745, 2398, 2398, 2398, 2398, 5143, 5143, 5143, 2745,
+
+ 2745, 2745, 2745, 2745, 2398, 2745, 2398, 2398, 2398, 2398,
+ 2398, 2398, 2745, 1818, 2748, 3082, 2748, 2748, 1818, 3083,
+ 3084, 1818, 2764, 1818, 3085, 3086, 3087, 2764, 3088, 3089,
+ 3090, 3091, 1818, 1818, 2764, 1818, 3092, 3092, 3092, 3092,
+ 3092, 3092, 3092, 3092, 2764, 1818, 2764, 3092, 3092, 3092,
+ 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092,
+ 3092, 3083, 1818, 784, 961, 961, 961, 961, 784, 784,
+ 1148, 784, 961, 784, 784, 1149, 2092, 961, 1151, 3093,
+ 1153, 961, 784, 784, 961, 784, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 961, 784, 961, 1148, 1148, 1148,
+
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 784, 784, 784, 1147, 1147, 1147, 1147, 784, 1359,
+ 1148, 784, 961, 784, 1360, 1361, 1150, 961, 1151, 1362,
+ 1153, 1363, 784, 784, 961, 784, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 961, 784, 961, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1359, 784, 1588, 2430, 2768, 2430, 2430, 1588, 1588,
+ 3096, 1588, 2430, 1588, 1588, 2769, 2758, 2430, 2759, 2770,
+ 3097, 2430, 1588, 1588, 2430, 1588, 3096, 3096, 3096, 3096,
+ 3096, 3096, 3096, 3096, 2430, 1588, 2430, 3096, 3096, 3096,
+
+ 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096,
+ 3096, 1588, 1588, 1588, 2756, 1147, 2756, 2756, 1588, 2754,
+ 1588, 1588, 1588, 1588, 2756, 2756, 1589, 1588, 1588, 3098,
+ 1588, 2754, 1588, 1588, 1588, 1588, 2754, 2754, 2754, 2754,
+ 2754, 2754, 2754, 2754, 1588, 1588, 1588, 2754, 2754, 2754,
+ 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754,
+ 2754, 2754, 1588, 1823, 3099, 3100, 3099, 3099, 1823, 1823,
+ 3101, 1823, 3099, 1823, 1823, 3102, 3103, 3099, 3104, 3105,
+ 3106, 3099, 1823, 1823, 3099, 1823, 3101, 3101, 3101, 3101,
+ 3101, 3101, 3101, 3101, 3099, 1823, 3099, 3101, 3101, 3101,
+
+ 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101, 3101,
+ 3101, 1823, 1823, 2755, 2845, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2761, 5143, 2846, 5143, 5143, 4029, 2755,
+ 2755, 2755, 2755, 2755, 2755, 2755, 2755, 5143, 5143, 5143,
+ 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
+ 2755, 2755, 2755, 2755, 3107, 1460, 3108, 4555, 5143, 5143,
+ 5143, 5143, 3109, 3109, 3109, 3109, 3280, 854, 4556, 3281,
+ 5143, 4772, 5143, 3109, 3109, 3109, 3109, 3109, 3199, 3109,
+ 5143, 3200, 5143, 5143, 5143, 5143, 3109, 1818, 2764, 1147,
+ 2764, 2764, 1818, 1818, 3084, 1818, 2764, 1818, 1818, 3110,
+
+ 3087, 2764, 3088, 3111, 3090, 2764, 1818, 1818, 2764, 1818,
+ 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 2764, 1818,
+ 2764, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
+ 3084, 3084, 3084, 3084, 3084, 1818, 1818, 1841, 2767, 3112,
+ 2767, 2767, 1841, 1841, 3113, 1841, 2767, 1841, 1841, 3114,
+ 3115, 2767, 3116, 3117, 3118, 2767, 1841, 1841, 2767, 1841,
+ 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 2767, 1841,
+ 2767, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113,
+ 3113, 3113, 3113, 3113, 3113, 1841, 1841, 1080, 1846, 2113,
+ 1846, 1846, 1080, 1080, 2431, 1080, 1846, 1080, 1080, 2068,
+
+ 2115, 1846, 2441, 2117, 2771, 1846, 1080, 1080, 1846, 1080,
+ 2772, 2772, 2772, 2772, 2431, 2431, 2431, 2431, 1846, 1080,
+ 1846, 2772, 2772, 2772, 2772, 2772, 2431, 2772, 2431, 2431,
+ 2431, 2431, 2431, 2431, 2772, 1080, 1080, 248, 610, 610,
+ 610, 610, 248, 248, 729, 248, 610, 248, 248, 605,
+ 730, 610, 731, 732, 733, 610, 248, 248, 610, 248,
+ 729, 729, 729, 729, 729, 729, 729, 729, 610, 248,
+ 610, 729, 729, 729, 729, 729, 729, 729, 729, 729,
+ 729, 729, 729, 729, 729, 248, 248, 2116, 1478, 2432,
+ 854, 5143, 5143, 5143, 5143, 2431, 2431, 2431, 2431, 3630,
+
+ 2897, 3199, 3631, 5143, 3200, 5143, 2431, 2431, 2431, 2431,
+ 2431, 4792, 2431, 5143, 4793, 5143, 5143, 5143, 5143, 2431,
+ 1485, 2713, 2773, 2713, 2713, 1485, 1485, 2774, 1485, 2713,
+ 1485, 1485, 2709, 2775, 2713, 2776, 3121, 2777, 2713, 1485,
+ 1485, 2713, 1485, 2774, 2774, 2774, 2774, 2774, 2774, 2774,
+ 2774, 2713, 1485, 2713, 2774, 2774, 2774, 2774, 2774, 2774,
+ 2774, 2774, 2774, 2774, 2774, 2774, 2774, 2774, 1485, 1485,
+ 2114, 2897, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 2118, 5143, 4811, 5143, 5143, 4812, 2114, 2114, 2114, 2114,
+ 2114, 2114, 2114, 2114, 5143, 5143, 5143, 2114, 2114, 2114,
+
+ 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
+ 2114, 2441, 712, 2442, 1082, 5143, 5143, 5143, 5143, 2443,
+ 2443, 2443, 2443, 2928, 4155, 3313, 2929, 5143, 3314, 5143,
+ 2443, 2443, 2443, 2443, 2443, 4833, 2443, 5143, 4834, 5143,
+ 5143, 5143, 5143, 2443, 1406, 2782, 2453, 2782, 2782, 1406,
+ 1406, 2783, 1406, 1406, 1406, 1406, 1406, 1407, 1406, 1406,
+ 2784, 2783, 1406, 1406, 1406, 1406, 1406, 2783, 2783, 2783,
+ 2783, 2783, 2783, 2783, 2783, 1406, 1406, 1406, 2783, 2783,
+ 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783, 2783,
+ 2783, 2783, 2785, 1406, 260, 1408, 1408, 1408, 1408, 260,
+
+ 260, 565, 260, 260, 260, 260, 260, 261, 260, 260,
+ 1632, 260, 260, 260, 260, 260, 260, 565, 565, 565,
+ 565, 565, 565, 565, 565, 260, 260, 260, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 565, 565, 1633, 260, 1409, 2791, 2792, 2791, 2791, 1409,
+ 1409, 2793, 1409, 1409, 1409, 1409, 1409, 1410, 1409, 1409,
+ 2794, 2793, 1409, 1409, 1409, 1409, 1409, 2793, 2793, 2793,
+ 2793, 2793, 2793, 2793, 2793, 1409, 1409, 1409, 2793, 2793,
+ 2793, 2793, 2793, 2793, 2793, 2793, 2793, 2793, 2793, 2793,
+ 2793, 2793, 2795, 1409, 187, 1177, 1177, 1177, 1177, 187,
+
+ 187, 316, 187, 187, 187, 187, 187, 188, 187, 187,
+ 1183, 187, 187, 187, 187, 187, 187, 316, 316, 316,
+ 316, 316, 316, 316, 316, 187, 187, 187, 316, 316,
+ 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
+ 316, 316, 1184, 187, 1420, 2805, 2806, 2805, 2805, 1420,
+ 1420, 2807, 1420, 1420, 1420, 1420, 1420, 1421, 1420, 1420,
+ 2808, 2807, 1420, 1420, 1420, 1420, 1420, 2807, 2807, 2807,
+ 2807, 2807, 2807, 2807, 2807, 1420, 1420, 1420, 2807, 2807,
+ 2807, 2807, 2807, 2807, 2807, 2807, 2807, 2807, 2807, 2807,
+ 2807, 2807, 2809, 1420, 420, 2812, 2469, 2812, 2812, 420,
+
+ 420, 825, 420, 420, 420, 420, 420, 421, 420, 420,
+ 3134, 420, 420, 420, 420, 420, 420, 825, 825, 825,
+ 825, 825, 825, 825, 825, 420, 420, 420, 825, 825,
+ 825, 825, 825, 825, 825, 825, 825, 825, 825, 825,
+ 825, 825, 3135, 420, 1196, 1673, 1673, 1673, 1673, 1196,
+ 1196, 1890, 1196, 1196, 1196, 1891, 1891, 1197, 1196, 1196,
+ 1892, 1196, 1891, 1196, 1196, 1196, 1196, 1890, 1890, 1890,
+ 1890, 1890, 1890, 1890, 1890, 1196, 1196, 1196, 1890, 1890,
+ 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890,
+ 1890, 1890, 1893, 1196, 1909, 2816, 3139, 2816, 2816, 1909,
+
+ 1909, 3140, 1909, 1909, 1909, 3141, 3141, 1909, 1909, 1909,
+ 3142, 1909, 3141, 1909, 1909, 1909, 1909, 3140, 3140, 3140,
+ 3140, 3140, 3140, 3140, 3140, 1909, 1909, 1909, 3140, 3140,
+ 3140, 3140, 3140, 3140, 3140, 3140, 3140, 3140, 3140, 3140,
+ 3140, 3140, 3143, 1909, 424, 680, 680, 680, 680, 424,
+ 424, 1676, 424, 424, 424, 680, 680, 425, 424, 424,
+ 831, 1677, 680, 424, 424, 424, 424, 1676, 1676, 1676,
+ 1676, 1676, 1676, 1676, 1676, 424, 424, 424, 1676, 1676,
+ 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676,
+ 1676, 1676, 832, 424, 1196, 1891, 1891, 1891, 1891, 1196,
+
+ 1196, 2158, 1196, 1196, 1196, 1891, 1891, 1197, 1196, 1196,
+ 1895, 1196, 1891, 1196, 1196, 1196, 1196, 2158, 2158, 2158,
+ 2158, 2158, 2158, 2158, 2158, 1196, 1196, 1196, 2158, 2158,
+ 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158,
+ 2158, 2158, 1893, 1196, 426, 2822, 3149, 2822, 2822, 426,
+ 426, 3150, 426, 426, 426, 1429, 1429, 426, 426, 426,
+ 3151, 426, 1429, 426, 426, 426, 426, 3150, 3150, 3150,
+ 3150, 3150, 3150, 3150, 3150, 426, 426, 426, 3150, 3150,
+ 3150, 3150, 3150, 3150, 3150, 3150, 3150, 3150, 3150, 3150,
+ 3150, 3150, 1670, 426, 1196, 1435, 1435, 1435, 1435, 1196,
+
+ 1196, 1674, 1196, 1196, 1196, 1196, 1196, 1197, 1196, 1196,
+ 1675, 1196, 1196, 1196, 1196, 1196, 1196, 1674, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1196, 1196, 1196, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
+ 1674, 1674, 1196, 1196, 1432, 1432, 1432, 1432, 5143, 535,
+ 5143, 4155, 5143, 961, 319, 319, 5143, 4168, 3548, 1672,
+ 4602, 319, 4833, 4603, 4548, 4553, 1478, 4549, 4169, 4097,
+ 3038, 4856, 4520, 5143, 3052, 1147, 1147, 3337, 5143, 5143,
+ 3338, 3039, 5143, 5143, 4188, 3053, 3687, 3687, 4199, 3688,
+ 3688, 323, 326, 1446, 1432, 1446, 1446, 326, 326, 1691,
+
+ 326, 326, 326, 1446, 1446, 326, 326, 326, 1448, 1692,
+ 1446, 326, 326, 326, 326, 1691, 1691, 1691, 1691, 1691,
+ 1691, 1691, 1691, 326, 326, 326, 1691, 1691, 1691, 1691,
+ 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691,
+ 1450, 326, 1680, 2493, 2486, 2493, 2493, 1680, 1680, 3155,
+ 1680, 1680, 1680, 2493, 2493, 1681, 1680, 1680, 2830, 3156,
+ 2493, 1680, 1680, 1680, 1680, 3155, 3155, 3155, 3155, 3155,
+ 3155, 3155, 3155, 1680, 1680, 1680, 3155, 3155, 3155, 3155,
+ 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155,
+ 2831, 1680, 1017, 2170, 2171, 2170, 2170, 1017, 1017, 2834,
+
+ 1017, 1017, 1017, 2170, 2170, 1018, 1017, 1017, 2173, 2835,
+ 2170, 1017, 1017, 1017, 1017, 2834, 2834, 2834, 2834, 2834,
+ 2834, 2834, 2834, 1017, 1017, 1017, 2834, 2834, 2834, 2834,
+ 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834, 2834,
+ 2175, 1017, 1194, 2839, 2486, 2839, 2839, 1194, 1194, 3162,
+ 1194, 1194, 1194, 1194, 1194, 1195, 1194, 1194, 3163, 1194,
+ 1194, 1194, 1194, 1194, 1194, 3162, 3162, 3162, 3162, 3162,
+ 3162, 3162, 3162, 1194, 1194, 1194, 3162, 3162, 3162, 3162,
+ 3162, 3162, 3162, 3162, 3162, 3162, 3162, 3162, 3162, 3162,
+ 1194, 1194, 324, 1904, 1904, 1904, 1904, 324, 324, 2168,
+
+ 324, 324, 324, 681, 681, 325, 324, 324, 2169, 324,
+ 681, 324, 324, 324, 324, 2168, 2168, 2168, 2168, 2168,
+ 2168, 2168, 2168, 324, 324, 324, 2168, 2168, 2168, 2168,
+ 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
+ 685, 324, 1909, 2843, 2826, 2843, 2843, 1909, 1909, 3167,
+ 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 3168, 1909,
+ 1909, 1909, 1909, 1909, 1909, 3167, 3167, 3167, 3167, 3167,
+ 3167, 3167, 3167, 1909, 1909, 1909, 3167, 3167, 3167, 3167,
+ 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167,
+ 1909, 1909, 424, 1016, 1016, 1016, 1016, 424, 424, 1200,
+
+ 424, 424, 424, 424, 424, 425, 424, 424, 1201, 424,
+ 424, 424, 424, 424, 424, 1200, 1200, 1200, 1200, 1200,
+ 1200, 1200, 1200, 424, 424, 424, 1200, 1200, 1200, 1200,
+ 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
+ 424, 424, 3170, 1177, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3171, 5143, 4873, 5143, 5143, 4874, 3170, 3170,
+ 3170, 3170, 3170, 3170, 3170, 3170, 5143, 5143, 5143, 3170,
+ 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170,
+ 3170, 3170, 3170, 1458, 2850, 2203, 2850, 2850, 1458, 1458,
+ 2511, 1458, 2512, 1458, 1458, 2852, 2515, 2512, 2516, 2853,
+
+ 2518, 2855, 1458, 1458, 2512, 1458, 2511, 2511, 2511, 2511,
+ 2511, 2511, 2511, 2511, 2512, 1458, 2512, 2511, 2511, 2511,
+ 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511,
+ 2511, 1458, 1458, 2851, 4876, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2854, 5143, 4877, 5143, 5143, 3754, 2851,
+ 2851, 2851, 2851, 2851, 2851, 2851, 2851, 5143, 5143, 5143,
+ 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851,
+ 2851, 2851, 2851, 2851, 1458, 2513, 2532, 2513, 2513, 1458,
+ 2510, 1458, 1458, 1458, 1458, 2513, 2513, 1459, 1458, 1458,
+ 2856, 1458, 2510, 1458, 1458, 1458, 1458, 2510, 2510, 2510,
+
+ 2510, 2510, 2510, 2510, 2510, 1458, 1458, 1458, 2510, 2510,
+ 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510,
+ 2510, 2510, 2510, 1458, 2869, 4879, 3176, 3790, 5143, 5143,
+ 5143, 5143, 3177, 3177, 3177, 3177, 4880, 3160, 3791, 3766,
+ 5143, 4257, 5143, 3177, 3177, 3177, 3177, 3177, 3161, 3177,
+ 5143, 4258, 5143, 5143, 5143, 5143, 3177, 1458, 2855, 2573,
+ 2855, 2855, 1458, 1458, 2872, 1458, 2855, 1458, 1458, 2852,
+ 2873, 2855, 2874, 2875, 2876, 2855, 1458, 1458, 2855, 1458,
+ 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2855, 1458,
+ 2855, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872,
+
+ 2872, 2872, 2872, 2872, 2872, 1458, 1458, 599, 854, 854,
+ 854, 854, 599, 1038, 855, 599, 856, 599, 1039, 1040,
+ 858, 856, 859, 1041, 861, 1042, 599, 599, 856, 599,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 856, 599,
+ 856, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1038, 599, 1921, 3180, 3181,
+ 3180, 3180, 1921, 1921, 3182, 1921, 3183, 1921, 1921, 3184,
+ 3185, 3183, 3186, 2853, 3187, 3188, 1921, 1921, 3183, 1921,
+ 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3183, 1921,
+ 3183, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
+
+ 3182, 3182, 3182, 3182, 3182, 1921, 1921, 1093, 1700, 1924,
+ 1700, 1700, 1093, 1925, 1926, 1093, 1927, 1093, 1928, 1929,
+ 3189, 1927, 1930, 3190, 1932, 1933, 1093, 1093, 1927, 1093,
+ 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1927, 1093,
+ 1927, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+ 1934, 1934, 1934, 1934, 1934, 1925, 1093, 2869, 4884, 2870,
+ 1460, 5143, 5143, 5143, 5143, 2871, 2871, 2871, 2871, 4885,
+ 4728, 3280, 4021, 5143, 3281, 5143, 2871, 2871, 2871, 2871,
+ 2871, 4729, 2871, 709, 4899, 4910, 5143, 308, 5143, 2871,
+ 3191, 3660, 5143, 5143, 2187, 5143, 4911, 2188, 2545, 4912,
+
+ 3192, 2546, 4924, 5143, 5143, 4925, 3191, 3191, 3191, 3191,
+ 3191, 3191, 3191, 3191, 5143, 5143, 5143, 3191, 3191, 3191,
+ 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191,
+ 3191, 1697, 2866, 3193, 2866, 2866, 1697, 1697, 3194, 1697,
+ 2866, 1697, 1697, 2861, 3195, 2866, 3196, 3197, 3198, 2866,
+ 1697, 1697, 2866, 1697, 3194, 3194, 3194, 3194, 3194, 3194,
+ 3194, 3194, 2866, 1697, 2866, 3194, 3194, 3194, 3194, 3194,
+ 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 3194, 1697,
+ 1697, 3201, 345, 3202, 1232, 5143, 5143, 5143, 5143, 3203,
+ 3203, 3203, 3203, 4146, 1994, 1961, 4147, 5143, 4932, 5143,
+
+ 3203, 3203, 3203, 3203, 3203, 3942, 3203, 5143, 3943, 5143,
+ 5143, 5143, 5143, 3203, 1093, 1991, 1962, 1991, 1991, 1093,
+ 1093, 2525, 1093, 1991, 1093, 1093, 1989, 1991, 1991, 2529,
+ 2194, 2877, 1991, 1093, 1093, 1991, 1093, 2878, 2878, 2878,
+ 2878, 2525, 2525, 2525, 2525, 1991, 1093, 1991, 2878, 2878,
+ 2878, 2878, 2878, 2525, 2878, 2525, 2525, 2525, 2525, 2525,
+ 2525, 2878, 1093, 1093, 1461, 2238, 854, 2238, 2238, 1461,
+ 1461, 2879, 1461, 2535, 1461, 1461, 2590, 2538, 2535, 2539,
+ 2591, 2880, 2592, 1461, 1461, 2535, 1461, 2879, 2879, 2879,
+ 2879, 2879, 2879, 2879, 2879, 2535, 1461, 2535, 2879, 2879,
+
+ 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879,
+ 2879, 2879, 1461, 1461, 2894, 344, 3204, 3660, 5143, 5143,
+ 5143, 5143, 3205, 3205, 3205, 3205, 4384, 1460, 4944, 4385,
+ 5143, 4945, 5143, 3205, 3205, 3205, 3205, 3205, 3280, 3205,
+ 5143, 3281, 5143, 5143, 5143, 5143, 3205, 599, 1039, 1039,
+ 1039, 1039, 599, 1038, 599, 599, 599, 599, 1039, 1039,
+ 600, 599, 599, 1046, 599, 1038, 599, 599, 599, 599,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 599, 599,
+ 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 599, 2534, 1082, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2541, 5143, 3313,
+ 5143, 5143, 3314, 2534, 2534, 2534, 2534, 2534, 2534, 2534,
+ 2534, 5143, 5143, 5143, 2534, 2534, 2534, 2534, 2534, 2534,
+ 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 1461, 2536,
+ 2881, 2536, 2536, 1461, 2533, 1461, 1461, 1461, 1461, 2536,
+ 2536, 1462, 1461, 1461, 2882, 1461, 2533, 1461, 1461, 1461,
+ 1461, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 1461,
+ 1461, 1461, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 2533,
+ 2533, 2533, 2533, 2533, 2533, 2533, 2533, 1461, 1937, 3208,
+ 1922, 3208, 3208, 1937, 1937, 3209, 1937, 3210, 1937, 1937,
+
+ 3211, 3212, 3210, 3213, 2591, 3214, 3215, 1937, 1937, 3210,
+ 1937, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3210,
+ 1937, 3210, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209,
+ 3209, 3209, 3209, 3209, 3209, 3209, 1937, 1937, 250, 1708,
+ 1940, 1708, 1708, 250, 705, 737, 250, 738, 250, 598,
+ 1941, 1502, 738, 740, 3216, 742, 1943, 250, 250, 738,
+ 250, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 738,
+ 250, 738, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944,
+ 1944, 1944, 1944, 1944, 1944, 1944, 705, 250, 2894, 1478,
+ 2895, 535, 5143, 5143, 5143, 5143, 2896, 2896, 2896, 2896,
+
+ 3630, 1817, 4602, 3631, 5143, 4603, 5143, 2896, 2896, 2896,
+ 2896, 2896, 3595, 2896, 5143, 3596, 5143, 5143, 5143, 5143,
+ 2896, 1461, 2592, 2897, 2592, 2592, 1461, 1461, 2898, 1461,
+ 2592, 1461, 1461, 2590, 2899, 2592, 2900, 2901, 2902, 2592,
+ 1461, 1461, 2592, 1461, 2898, 2898, 2898, 2898, 2898, 2898,
+ 2898, 2898, 2592, 1461, 2592, 2898, 2898, 2898, 2898, 2898,
+ 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 1461,
+ 1461, 599, 2897, 2897, 2897, 2897, 599, 1038, 1061, 599,
+ 862, 599, 1039, 1040, 1062, 862, 1063, 3217, 1065, 1042,
+ 599, 599, 862, 599, 3218, 3218, 3218, 3218, 3218, 3218,
+
+ 3218, 3218, 862, 599, 862, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 1038,
+ 599, 3219, 4959, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3220, 5143, 4960, 5143, 5143, 3991, 3219, 3219, 3219,
+ 3219, 3219, 3219, 3219, 3219, 5143, 5143, 5143, 3219, 3219,
+ 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219,
+ 3219, 3219, 1705, 2891, 3221, 2891, 2891, 1705, 1705, 3222,
+ 1705, 2891, 1705, 1705, 2886, 3223, 2891, 3224, 3225, 3226,
+ 2891, 1705, 1705, 2891, 1705, 3222, 3222, 3222, 3222, 3222,
+ 3222, 3222, 3222, 2891, 1705, 2891, 3222, 3222, 3222, 3222,
+
+ 3222, 3222, 3222, 3222, 3222, 3222, 3222, 3222, 3222, 3222,
+ 1705, 1705, 3229, 4475, 3230, 4019, 5143, 5143, 5143, 5143,
+ 3231, 3231, 3231, 3231, 4476, 1673, 4020, 4477, 5143, 4482,
+ 5143, 3231, 3231, 3231, 3231, 3231, 4963, 3231, 5143, 4964,
+ 5143, 5143, 5143, 5143, 3231, 599, 712, 712, 712, 712,
+ 599, 599, 855, 599, 856, 599, 599, 857, 858, 856,
+ 859, 860, 861, 862, 599, 599, 856, 599, 855, 855,
+ 855, 855, 855, 855, 855, 855, 856, 599, 856, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 599, 599, 1234, 2007, 2294, 2007, 2007,
+
+ 1234, 1234, 2547, 1234, 2206, 1234, 1234, 2295, 2209, 2206,
+ 2560, 2296, 2906, 2297, 1234, 1234, 2206, 1234, 2907, 2907,
+ 2907, 2907, 2547, 2547, 2547, 2547, 2206, 1234, 2206, 2907,
+ 2907, 2907, 2907, 2907, 2547, 2907, 2547, 2547, 2547, 2547,
+ 2547, 2547, 2907, 1234, 1234, 2205, 4475, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2210, 5143, 2212, 5143, 4476, 5143, 5143,
+ 4493, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 5143,
+ 5143, 5143, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+ 2205, 2205, 2205, 2205, 2205, 2205, 2210, 3660, 2548, 1082,
+ 5143, 5143, 5143, 5143, 2547, 2547, 2547, 2547, 4965, 1082,
+
+ 4030, 4966, 5143, 4031, 5143, 2547, 2547, 2547, 2547, 2547,
+ 3313, 2547, 5143, 3314, 5143, 5143, 5143, 5143, 2547, 1234,
+ 2207, 854, 2207, 2207, 1234, 2204, 1234, 1234, 1234, 1234,
+ 2207, 2207, 1235, 1234, 1234, 2549, 1234, 2204, 1234, 1234,
+ 1234, 1234, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204,
+ 1234, 1234, 1234, 2204, 2204, 2204, 2204, 2204, 2204, 2204,
+ 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 1234, 1711,
+ 2910, 2911, 2910, 2910, 1711, 1711, 2912, 1711, 2913, 1711,
+ 1711, 2914, 2915, 2913, 2916, 3233, 2917, 2918, 1711, 1711,
+ 2913, 1711, 2912, 2912, 2912, 2912, 2912, 2912, 2912, 2912,
+
+ 2913, 1711, 2913, 2912, 2912, 2912, 2912, 2912, 2912, 2912,
+ 2912, 2912, 2912, 2912, 2912, 2912, 2912, 1711, 1711, 2560,
+ 1281, 2561, 898, 5143, 5143, 5143, 5143, 2562, 2562, 2562,
+ 2562, 4971, 3548, 3830, 4972, 5143, 3831, 5143, 2562, 2562,
+ 2562, 2562, 2562, 4097, 2562, 5143, 4563, 5143, 5143, 5143,
+ 5143, 2562, 1234, 2297, 2563, 2297, 2297, 1234, 1234, 2564,
+ 1234, 2297, 1234, 1234, 2295, 2565, 2297, 2566, 2567, 2568,
+ 2297, 1234, 1234, 2297, 1234, 2564, 2564, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2297, 1234, 2297, 2564, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
+
+ 1234, 1234, 2920, 712, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 2921, 5143, 2674, 5143, 5143, 2675, 2920, 2920,
+ 2920, 2920, 2920, 2920, 2920, 2920, 5143, 5143, 5143, 2920,
+ 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
+ 2920, 2920, 2920, 2930, 4531, 3234, 344, 5143, 5143, 5143,
+ 5143, 3235, 3235, 3235, 3235, 4532, 862, 3855, 4992, 5143,
+ 3856, 5143, 3235, 3235, 3235, 3235, 3235, 3275, 3235, 5143,
+ 3276, 5143, 5143, 5143, 5143, 3235, 1711, 2918, 3236, 2918,
+ 2918, 1711, 1711, 3237, 1711, 2918, 1711, 1711, 2914, 3238,
+ 2918, 3239, 2567, 3240, 2918, 1711, 1711, 2918, 1711, 3237,
+
+ 3237, 3237, 3237, 3237, 3237, 3237, 3237, 2918, 1711, 2918,
+ 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237,
+ 3237, 3237, 3237, 3237, 1711, 1711, 215, 1468, 1713, 1468,
+ 1468, 215, 750, 620, 215, 621, 215, 749, 1714, 1533,
+ 621, 623, 3241, 625, 1716, 215, 215, 621, 215, 1717,
+ 1717, 1717, 1717, 1717, 1717, 1717, 1717, 621, 215, 621,
+ 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717, 1717,
+ 1717, 1717, 1717, 1717, 750, 215, 2930, 961, 2931, 114,
+ 5143, 5143, 5143, 5143, 2932, 2932, 2932, 2932, 4996, 4555,
+ 3319, 4997, 5143, 3320, 5143, 2932, 2932, 2932, 2932, 2932,
+
+ 4556, 2932, 5143, 4721, 5143, 5143, 5143, 5143, 2932, 601,
+ 1952, 1952, 1952, 1952, 601, 601, 3245, 601, 1952, 601,
+ 601, 1947, 3246, 1952, 3247, 3248, 3249, 1952, 601, 601,
+ 1952, 601, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245,
+ 1952, 601, 1952, 3245, 3245, 3245, 3245, 3245, 3245, 3245,
+ 3245, 3245, 3245, 3245, 3245, 3245, 3245, 601, 601, 1479,
+ 2362, 2563, 2362, 2362, 1479, 1479, 2939, 1479, 2576, 1479,
+ 1479, 2701, 2579, 2576, 2580, 2702, 2940, 2703, 1479, 1479,
+ 2576, 1479, 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939,
+ 2576, 1479, 2576, 2939, 2939, 2939, 2939, 2939, 2939, 2939,
+
+ 2939, 2939, 2939, 2939, 2939, 2939, 2939, 1479, 1479, 2951,
+ 1281, 3254, 1994, 5143, 5143, 5143, 5143, 3255, 3255, 3255,
+ 3255, 4971, 3745, 3942, 4972, 5143, 3943, 5143, 3255, 3255,
+ 3255, 3255, 3255, 3746, 3255, 4644, 4629, 4654, 5143, 854,
+ 5143, 3255, 2575, 1478, 5143, 5143, 4645, 5143, 4655, 5007,
+ 3174, 5008, 2582, 3175, 3337, 5143, 5143, 3338, 2575, 2575,
+ 2575, 2575, 2575, 2575, 2575, 2575, 5143, 5143, 5143, 2575,
+ 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575,
+ 2575, 2575, 2575, 1479, 2577, 2897, 2577, 2577, 1479, 2574,
+ 1479, 1479, 1479, 1479, 2577, 2577, 1480, 1479, 1479, 2941,
+
+ 1479, 2574, 1479, 1479, 1479, 1479, 2574, 2574, 2574, 2574,
+ 2574, 2574, 2574, 2574, 1479, 1479, 1479, 2574, 2574, 2574,
+ 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574,
+ 2574, 2574, 1479, 1960, 3258, 3236, 3258, 3258, 1960, 1960,
+ 3259, 1960, 3260, 1960, 1960, 3261, 3262, 3260, 3263, 2702,
+ 3264, 3265, 1960, 1960, 3260, 1960, 3259, 3259, 3259, 3259,
+ 3259, 3259, 3259, 3259, 3260, 1960, 3260, 3259, 3259, 3259,
+ 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
+ 3259, 1960, 1960, 257, 1725, 1962, 1725, 1725, 257, 952,
+ 778, 257, 779, 257, 951, 1963, 1560, 779, 781, 3266,
+
+ 783, 1965, 257, 257, 779, 257, 1966, 1966, 1966, 1966,
+ 1966, 1966, 1966, 1966, 779, 257, 779, 1966, 1966, 1966,
+ 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
+ 1966, 952, 257, 2951, 2897, 2952, 5010, 5143, 5143, 5143,
+ 5143, 2953, 2953, 2953, 2953, 4724, 1817, 5011, 4725, 5143,
+ 4392, 5143, 2953, 2953, 2953, 2953, 2953, 5012, 2953, 5143,
+ 5013, 5143, 5143, 5143, 5143, 2953, 1479, 2703, 2954, 2703,
+ 2703, 1479, 1479, 2955, 1479, 2703, 1479, 1479, 2701, 2956,
+ 2703, 2957, 2958, 2959, 2703, 1479, 1479, 2703, 1479, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2703, 1479, 2703,
+
+ 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 2955, 2955, 1479, 1479, 599, 862, 862, 862,
+ 862, 599, 599, 1061, 599, 862, 599, 599, 857, 1062,
+ 862, 1063, 1064, 1065, 862, 599, 599, 862, 599, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 862, 599, 862,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 599, 599, 3267, 854, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3268, 5143, 2867, 5143,
+ 5143, 2868, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267,
+ 5143, 5143, 5143, 3267, 3267, 3267, 3267, 3267, 3267, 3267,
+
+ 3267, 3267, 3267, 3267, 3267, 3267, 3267, 1723, 2950, 3269,
+ 2950, 2950, 1723, 1723, 3270, 1723, 2950, 1723, 1723, 2945,
+ 3271, 2950, 3272, 3273, 3274, 2950, 1723, 1723, 2950, 1723,
+ 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 2950, 1723,
+ 2950, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270, 3270,
+ 3270, 3270, 3270, 3270, 3270, 1723, 1723, 3277, 1380, 3278,
+ 709, 5143, 5143, 5143, 5143, 3279, 3279, 3279, 3279, 5025,
+ 862, 4722, 5026, 5143, 4723, 5143, 3279, 3279, 3279, 3279,
+ 3279, 3058, 3279, 5143, 3059, 5143, 5143, 5143, 5143, 3279,
+ 248, 1460, 1460, 1460, 1460, 248, 377, 603, 248, 604,
+
+ 248, 336, 1701, 606, 604, 607, 1702, 609, 1703, 248,
+ 248, 604, 248, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 604, 248, 604, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 377, 248,
+ 1970, 2963, 3282, 2963, 2963, 1970, 3283, 1970, 1970, 1970,
+ 1970, 2963, 2963, 1971, 1970, 1970, 3284, 1970, 3283, 1970,
+ 1970, 1970, 1970, 3283, 3283, 3283, 3283, 3283, 3283, 3283,
+ 3283, 1970, 1970, 1970, 3283, 3283, 3283, 3283, 3283, 3283,
+ 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 1970,
+ 512, 847, 1033, 847, 847, 512, 1034, 512, 512, 512,
+
+ 512, 847, 847, 2250, 512, 512, 3286, 512, 1034, 512,
+ 512, 512, 512, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 512, 512, 512, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 512,
+ 599, 1039, 1039, 1039, 1039, 599, 1038, 599, 599, 599,
+ 599, 1039, 1039, 600, 599, 599, 1046, 599, 1038, 599,
+ 599, 599, 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 599, 599, 599, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 599,
+ 512, 1984, 1817, 1984, 1984, 512, 512, 2607, 512, 1984,
+
+ 512, 512, 1979, 2256, 1984, 2616, 2258, 2972, 1984, 512,
+ 512, 1984, 512, 2973, 2973, 2973, 2973, 2607, 2607, 2607,
+ 2607, 1984, 512, 1984, 2973, 2973, 2973, 2973, 2973, 2607,
+ 2973, 2607, 2607, 2607, 2607, 2607, 2607, 2973, 512, 512,
+ 2257, 862, 2608, 5031, 5143, 5143, 5143, 5143, 2607, 2607,
+ 2607, 2607, 4708, 1281, 5032, 4709, 5143, 4932, 5143, 2607,
+ 2607, 2607, 2607, 2607, 3654, 2607, 5143, 3655, 5143, 5143,
+ 5143, 5143, 2607, 701, 2602, 2587, 2602, 2602, 701, 701,
+ 2974, 701, 2602, 701, 701, 2598, 2975, 2602, 2976, 3287,
+ 2977, 2602, 701, 701, 2602, 701, 2974, 2974, 2974, 2974,
+
+ 2974, 2974, 2974, 2974, 2602, 701, 2602, 2974, 2974, 2974,
+ 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974, 2974,
+ 2974, 701, 701, 2255, 4168, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2259, 5143, 4169, 5143, 5143, 4856, 2255,
+ 2255, 2255, 2255, 2255, 2255, 2255, 2255, 5143, 5143, 5143,
+ 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255,
+ 2255, 2255, 2255, 2255, 2616, 5043, 2617, 2897, 5143, 5143,
+ 5143, 5143, 2618, 2618, 2618, 2618, 5044, 5058, 4337, 4520,
+ 5143, 4338, 5143, 2618, 2618, 2618, 2618, 2618, 5059, 2618,
+ 5143, 4563, 5143, 5143, 5143, 5143, 2618, 784, 1360, 1360,
+
+ 1360, 1360, 784, 1359, 784, 784, 784, 784, 1360, 1360,
+ 785, 784, 784, 1367, 784, 1359, 784, 784, 784, 784,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 784, 784,
+ 784, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 784, 1504, 2262, 2619,
+ 2262, 2262, 1504, 1504, 2982, 1504, 2621, 1504, 1504, 2622,
+ 2623, 2621, 2624, 2625, 2983, 2627, 1504, 1504, 2621, 1504,
+ 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2621, 1504,
+ 2621, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982,
+ 2982, 2982, 2982, 2982, 2982, 1504, 1504, 2998, 1478, 3291,
+
+ 4155, 5143, 5143, 5143, 5143, 3292, 3292, 3292, 3292, 5062,
+ 1994, 4833, 5063, 5143, 4834, 5143, 3292, 3292, 3292, 3292,
+ 3292, 3896, 3292, 5143, 3897, 5143, 5143, 5143, 5143, 3292,
+ 1504, 2984, 2985, 2984, 2984, 1504, 2986, 1504, 1504, 1504,
+ 1504, 2984, 2984, 1505, 1504, 1504, 2987, 1504, 2986, 1504,
+ 1504, 1504, 1504, 2986, 2986, 2986, 2986, 2986, 2986, 2986,
+ 2986, 1504, 1504, 1504, 2986, 2986, 2986, 2986, 2986, 2986,
+ 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 1504,
+ 213, 1082, 1082, 1082, 1082, 213, 382, 337, 213, 338,
+ 213, 381, 1256, 340, 338, 341, 1257, 343, 1258, 213,
+
+ 213, 338, 213, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 338, 213, 338, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 382, 213,
+ 2620, 1380, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 2626, 5143, 4390, 5143, 5143, 4391, 2620, 2620, 2620, 2620,
+ 2620, 2620, 2620, 2620, 5143, 5143, 5143, 2620, 2620, 2620,
+ 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620,
+ 2620, 1987, 3295, 3296, 3295, 3295, 1987, 1987, 3297, 1987,
+ 3298, 1987, 1987, 3299, 3300, 3298, 3301, 2625, 3302, 3303,
+ 1987, 1987, 3298, 1987, 3297, 3297, 3297, 3297, 3297, 3297,
+
+ 3297, 3297, 3298, 1987, 3298, 3297, 3297, 3297, 3297, 3297,
+ 3297, 3297, 3297, 3297, 3297, 3297, 3297, 3297, 3297, 1987,
+ 1987, 1093, 1744, 1713, 1744, 1744, 1093, 1093, 1926, 1093,
+ 1927, 1093, 1093, 1989, 3189, 1927, 1930, 3304, 1932, 1991,
+ 1093, 1093, 1927, 1093, 1926, 1926, 1926, 1926, 1926, 1926,
+ 1926, 1926, 1927, 1093, 1927, 1926, 1926, 1926, 1926, 1926,
+ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1093,
+ 1093, 2998, 1904, 2999, 1460, 5143, 5143, 5143, 5143, 3000,
+ 3000, 3000, 3000, 5072, 4728, 5074, 5073, 5143, 5075, 5143,
+ 3000, 3000, 3000, 3000, 3000, 4729, 3000, 5143, 4899, 5143,
+
+ 5143, 5143, 5143, 3000, 1504, 2627, 3001, 2627, 2627, 1504,
+ 1504, 3002, 1504, 2627, 1504, 1504, 2622, 3003, 2627, 3004,
+ 3005, 3006, 2627, 1504, 1504, 2627, 1504, 3002, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 2627, 1504, 2627, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 3002, 1504, 1504, 3305, 1082, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3306, 5143, 4030, 5143, 5143, 4031,
+ 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 5143, 5143,
+ 5143, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305,
+ 3305, 3305, 3305, 3305, 3305, 1742, 2997, 3307, 2997, 2997,
+
+ 1742, 1742, 3308, 1742, 2997, 1742, 1742, 2992, 3309, 2997,
+ 3310, 3311, 3312, 2997, 1742, 1742, 2997, 1742, 3308, 3308,
+ 3308, 3308, 3308, 3308, 3308, 3308, 2997, 1742, 2997, 3308,
+ 3308, 3308, 3308, 3308, 3308, 3308, 3308, 3308, 3308, 3308,
+ 3308, 3308, 3308, 1742, 1742, 3315, 4910, 3316, 3660, 5143,
+ 5143, 5143, 5143, 3317, 3317, 3317, 3317, 4911, 5088, 4944,
+ 4912, 5143, 4945, 5143, 3317, 3317, 3317, 3317, 3317, 5089,
+ 3317, 5143, 4698, 5143, 5143, 5143, 5143, 3317, 784, 1994,
+ 1994, 1994, 1994, 784, 784, 2628, 784, 2264, 784, 784,
+ 1149, 2265, 2264, 2639, 2267, 3007, 961, 784, 784, 2264,
+
+ 784, 3008, 3008, 3008, 3008, 2628, 2628, 2628, 2628, 2264,
+ 784, 2264, 3008, 3008, 3008, 3008, 3008, 2628, 3008, 2628,
+ 2628, 2628, 2628, 2628, 2628, 3008, 784, 784, 2263, 5100,
+ 5143, 5143, 5143, 5143, 5143, 5143, 2266, 5143, 2268, 5143,
+ 5101, 5143, 5143, 4766, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 5143, 5143, 5143, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2266,
+ 5103, 2629, 854, 5143, 5143, 5143, 5143, 2628, 2628, 2628,
+ 2628, 5104, 1478, 3174, 4772, 5143, 3175, 5143, 2628, 2628,
+ 2628, 2628, 2628, 4079, 2628, 5143, 4080, 5143, 5143, 5143,
+
+ 5143, 2628, 959, 3009, 3009, 3009, 3009, 959, 959, 3010,
+ 959, 3011, 959, 959, 1583, 3012, 3011, 3013, 3318, 3014,
+ 1581, 959, 959, 3011, 959, 3010, 3010, 3010, 3010, 3010,
+ 3010, 3010, 3010, 3011, 959, 3011, 3010, 3010, 3010, 3010,
+ 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010,
+ 959, 959, 2639, 4531, 2640, 344, 5143, 5143, 5143, 5143,
+ 2641, 2641, 2641, 2641, 4532, 4644, 4384, 4992, 5143, 4385,
+ 5143, 2641, 2641, 2641, 2641, 2641, 4645, 2641, 5143, 5007,
+ 5143, 5143, 5143, 5143, 2641, 517, 1090, 1281, 1090, 1090,
+ 517, 517, 1282, 517, 1090, 517, 517, 1085, 3326, 1090,
+
+ 1284, 3327, 1286, 1090, 517, 517, 1090, 517, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1090, 517, 1090, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 1282, 1282, 517, 517, 2665, 3328, 3329, 3328, 3328,
+ 2665, 2665, 3330, 2665, 3331, 2665, 2665, 3332, 3333, 3331,
+ 3334, 3020, 3335, 3336, 2665, 2665, 3331, 2665, 3330, 3330,
+ 3330, 3330, 3330, 3330, 3330, 3330, 3331, 2665, 3331, 3330,
+ 3330, 3330, 3330, 3330, 3330, 3330, 3330, 3330, 3330, 3330,
+ 3330, 3330, 3330, 2665, 2665, 641, 1154, 1380, 1154, 1154,
+ 641, 641, 1381, 641, 1154, 641, 641, 1382, 3339, 1154,
+
+ 1384, 3340, 1386, 1154, 641, 641, 1154, 641, 1381, 1381,
+ 1381, 1381, 1381, 1381, 1381, 1381, 1154, 641, 1154, 1381,
+ 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
+ 1381, 1381, 1381, 641, 641, 1760, 2668, 3001, 2668, 2668,
+ 1760, 1760, 3341, 1760, 3025, 1760, 1760, 3026, 3027, 3025,
+ 3028, 3029, 3342, 3031, 1760, 1760, 3025, 1760, 3341, 3341,
+ 3341, 3341, 3341, 3341, 3341, 3341, 3025, 1760, 3025, 3341,
+ 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
+ 3341, 3341, 3341, 1760, 1760, 3024, 4654, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3030, 5143, 4655, 5143, 5143,
+
+ 5008, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 5143,
+ 5143, 5143, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
+ 3024, 3024, 3024, 3024, 3024, 3024, 1760, 3343, 3344, 3343,
+ 3343, 1760, 3345, 1760, 1760, 1760, 1760, 3343, 3343, 1761,
+ 1760, 1760, 3346, 1760, 3345, 1760, 1760, 1760, 1760, 3345,
+ 3345, 3345, 3345, 3345, 3345, 3345, 3345, 1760, 1760, 1760,
+ 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345,
+ 3345, 3345, 3345, 3345, 3345, 1760, 2004, 3347, 3307, 3347,
+ 3347, 2004, 2004, 3348, 2004, 3349, 2004, 2004, 3350, 3351,
+ 3349, 3352, 3353, 3354, 3355, 2004, 2004, 3349, 2004, 3348,
+
+ 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3349, 2004, 3349,
+ 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348, 3348,
+ 3348, 3348, 3348, 3348, 2004, 2004, 3356, 854, 3357, 1478,
+ 5143, 5143, 5143, 5143, 3358, 3358, 3358, 3358, 3199, 961,
+ 5062, 3200, 5143, 5063, 5143, 3358, 3358, 3358, 3358, 3358,
+ 4548, 3358, 5143, 4549, 5143, 5143, 5143, 5143, 3358, 1760,
+ 3031, 3359, 3031, 3031, 1760, 1760, 3360, 1760, 3031, 1760,
+ 1760, 3026, 3361, 3031, 3362, 3363, 3364, 3031, 1760, 1760,
+ 3031, 1760, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3031, 1760, 3031, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+
+ 3360, 3360, 3360, 3360, 3360, 3360, 3360, 1760, 1760, 1291,
+ 2006, 1962, 2006, 2006, 1291, 1291, 2669, 1291, 2289, 1291,
+ 1291, 2290, 2289, 2289, 2671, 2292, 3032, 2109, 1291, 1291,
+ 2289, 1291, 3033, 3033, 3033, 3033, 2669, 2669, 2669, 2669,
+ 2289, 1291, 2289, 3033, 3033, 3033, 3033, 3033, 2669, 3033,
+ 2669, 2669, 2669, 2669, 2669, 2669, 3033, 1291, 1291, 452,
+ 3034, 2619, 3034, 3034, 452, 1106, 904, 452, 905, 452,
+ 1105, 3365, 907, 905, 908, 3366, 910, 3367, 452, 452,
+ 905, 452, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368,
+ 905, 452, 905, 3368, 3368, 3368, 3368, 3368, 3368, 3368,
+
+ 3368, 3368, 3368, 3368, 3368, 3368, 3368, 1106, 452, 876,
+ 1483, 1460, 1483, 1483, 876, 1728, 876, 876, 876, 876,
+ 1483, 1483, 2321, 876, 876, 3369, 876, 1728, 876, 876,
+ 876, 876, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
+ 876, 876, 876, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
+ 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 876, 617,
+ 1304, 1528, 1304, 1304, 617, 617, 1529, 617, 1304, 617,
+ 617, 1300, 1530, 1304, 1531, 1776, 1532, 1304, 617, 617,
+ 1304, 617, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
+ 1304, 617, 1304, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
+
+ 1529, 1529, 1529, 1529, 1529, 1529, 1529, 617, 617, 452,
+ 746, 903, 746, 746, 452, 452, 904, 452, 905, 452,
+ 452, 906, 907, 905, 908, 909, 910, 911, 452, 452,
+ 905, 452, 904, 904, 904, 904, 904, 904, 904, 904,
+ 905, 452, 905, 904, 904, 904, 904, 904, 904, 904,
+ 904, 904, 904, 904, 904, 904, 904, 452, 452, 213,
+ 308, 308, 308, 308, 213, 213, 337, 213, 338, 213,
+ 213, 339, 340, 338, 341, 342, 343, 344, 213, 213,
+ 338, 213, 337, 337, 337, 337, 337, 337, 337, 337,
+ 338, 213, 338, 337, 337, 337, 337, 337, 337, 337,
+
+ 337, 337, 337, 337, 337, 337, 337, 213, 213, 1103,
+ 3660, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1104,
+ 5143, 4924, 5143, 5143, 4925, 1103, 1103, 1103, 1103, 1103,
+ 1103, 1103, 1103, 5143, 5143, 5143, 1103, 1103, 1103, 1103,
+ 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
+ 452, 1105, 1082, 1105, 1105, 452, 1106, 452, 452, 452,
+ 452, 1105, 1105, 453, 452, 452, 1107, 452, 1106, 452,
+ 452, 452, 452, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 452, 452, 452, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 452,
+
+ 1535, 2326, 2327, 2326, 2326, 1535, 1535, 2328, 1535, 2329,
+ 1535, 1535, 2330, 2331, 2329, 2332, 2333, 2334, 2335, 1535,
+ 1535, 2329, 1535, 2328, 2328, 2328, 2328, 2328, 2328, 2328,
+ 2328, 2329, 1535, 2329, 2328, 2328, 2328, 2328, 2328, 2328,
+ 2328, 2328, 2328, 2328, 2328, 2328, 2328, 2328, 1535, 1535,
+ 1118, 862, 1119, 1281, 5143, 5143, 5143, 5143, 1120, 1120,
+ 1120, 1120, 4708, 535, 4971, 4709, 5143, 4972, 5143, 1120,
+ 1120, 1120, 1120, 1120, 4602, 1120, 5143, 4603, 5143, 5143,
+ 5143, 5143, 1120, 452, 911, 1121, 911, 911, 452, 452,
+ 1122, 452, 911, 452, 452, 906, 1123, 911, 1124, 1125,
+
+ 1126, 911, 452, 452, 911, 452, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 911, 452, 911, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 452, 452, 1538, 3050, 3374, 3050, 3050, 1538, 1538,
+ 3375, 1538, 3050, 1538, 1538, 3046, 3376, 3050, 3377, 3378,
+ 3379, 3050, 1538, 1538, 3050, 1538, 3375, 3375, 3375, 3375,
+ 3375, 3375, 3375, 3375, 3050, 1538, 3050, 3375, 3375, 3375,
+ 3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375,
+ 3375, 1538, 1538, 1334, 2348, 2355, 2348, 2348, 1334, 1334,
+ 2356, 1334, 2348, 1334, 1334, 2344, 2357, 2348, 2358, 2700,
+
+ 2359, 2348, 1334, 1334, 2348, 1334, 2356, 2356, 2356, 2356,
+ 2356, 2356, 2356, 2356, 2348, 1334, 2348, 2356, 2356, 2356,
+ 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356, 2356,
+ 2356, 1334, 1334, 1080, 1732, 1817, 1732, 1732, 1080, 1972,
+ 1080, 1080, 1080, 1080, 1732, 1732, 2374, 1080, 1080, 3381,
+ 1080, 1972, 1080, 1080, 1080, 1080, 1972, 1972, 1972, 1972,
+ 1972, 1972, 1972, 1972, 1080, 1080, 1080, 1972, 1972, 1972,
+ 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972,
+ 1972, 1972, 1080, 599, 862, 862, 862, 862, 599, 599,
+ 1061, 599, 862, 599, 599, 857, 1062, 862, 1063, 1064,
+
+ 1065, 862, 599, 599, 862, 599, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 862, 599, 862, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 599, 599, 536, 1142, 1353, 1142, 1142, 536, 536,
+ 1354, 536, 1142, 536, 536, 1137, 3382, 1142, 1356, 3383,
+ 1358, 1142, 536, 536, 1142, 536, 1354, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1354, 1142, 536, 1142, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+ 1354, 536, 536, 2698, 3384, 3374, 3384, 3384, 2698, 2698,
+ 3385, 2698, 3386, 2698, 2698, 3387, 3388, 3386, 3389, 3064,
+
+ 3390, 3391, 2698, 2698, 3386, 2698, 3385, 3385, 3385, 3385,
+ 3385, 3385, 3385, 3385, 3386, 2698, 3386, 3385, 3385, 3385,
+ 3385, 3385, 3385, 3385, 3385, 3385, 3385, 3385, 3385, 3385,
+ 3385, 2698, 2698, 550, 967, 1155, 967, 967, 550, 550,
+ 1156, 550, 967, 550, 550, 1157, 3392, 967, 1159, 3393,
+ 1161, 967, 550, 550, 967, 550, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 967, 550, 967, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 550, 550, 784, 1147, 1147, 1147, 1147, 784, 1359,
+ 1148, 784, 961, 784, 1360, 1361, 1150, 961, 1151, 1362,
+
+ 1153, 1363, 784, 784, 961, 784, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 961, 784, 961, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1359, 784, 1815, 3071, 2753, 3071, 3071, 1815, 1815,
+ 3394, 1815, 3071, 1815, 1815, 3395, 3074, 3071, 3075, 3396,
+ 3397, 3071, 1815, 1815, 3071, 1815, 3394, 3394, 3394, 3394,
+ 3394, 3394, 3394, 3394, 3071, 1815, 3071, 3394, 3394, 3394,
+ 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
+ 3394, 1815, 1815, 3070, 2897, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3077, 5143, 4724, 5143, 5143, 4725, 3070,
+
+ 3070, 3070, 3070, 3070, 3070, 3070, 3070, 5143, 5143, 5143,
+ 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070,
+ 3070, 3070, 3070, 3070, 1815, 3072, 3082, 3072, 3072, 1815,
+ 3069, 1815, 1815, 1815, 1815, 3072, 3072, 1816, 1815, 1815,
+ 3398, 1815, 3069, 1815, 1815, 1815, 1815, 3069, 3069, 3069,
+ 3069, 3069, 3069, 3069, 3069, 1815, 1815, 1815, 3069, 3069,
+ 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069,
+ 3069, 3069, 3069, 1815, 2082, 3399, 3400, 3399, 3399, 2082,
+ 2082, 3401, 2082, 3399, 2082, 2082, 3402, 3403, 3399, 3404,
+ 3405, 3406, 3399, 2082, 2082, 3399, 2082, 3401, 3401, 3401,
+
+ 3401, 3401, 3401, 3401, 3401, 3399, 2082, 3399, 3401, 3401,
+ 3401, 3401, 3401, 3401, 3401, 3401, 3401, 3401, 3401, 3401,
+ 3401, 3401, 2082, 2082, 3409, 345, 3410, 1994, 5143, 5143,
+ 5143, 5143, 3411, 3411, 3411, 3411, 4146, 862, 3942, 4147,
+ 5143, 3943, 5143, 3411, 3411, 3411, 3411, 3411, 3275, 3411,
+ 5143, 3276, 5143, 5143, 5143, 5143, 3411, 1291, 2109, 2096,
+ 2109, 2109, 1291, 1291, 2739, 1291, 2109, 1291, 1291, 2290,
+ 2109, 2109, 2743, 2429, 3080, 2109, 1291, 1291, 2109, 1291,
+ 3081, 3081, 3081, 3081, 2739, 2739, 2739, 2739, 2109, 1291,
+ 2109, 3081, 3081, 3081, 3081, 3081, 2739, 3081, 2739, 2739,
+
+ 2739, 2739, 2739, 2739, 3081, 1291, 1291, 1818, 2764, 1147,
+ 2764, 2764, 1818, 1818, 3412, 1818, 2764, 1818, 1818, 3110,
+ 3087, 2764, 3088, 3111, 3413, 2764, 1818, 1818, 2764, 1818,
+ 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 2764, 1818,
+ 2764, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
+ 3412, 3412, 3412, 3412, 3412, 1818, 1818, 1818, 3085, 3414,
+ 3085, 3085, 1818, 3083, 1818, 1818, 1818, 1818, 3085, 3085,
+ 1819, 1818, 1818, 3415, 1818, 3083, 1818, 1818, 1818, 1818,
+ 3083, 3083, 3083, 3083, 3083, 3083, 3083, 3083, 1818, 1818,
+ 1818, 3083, 3083, 3083, 3083, 3083, 3083, 3083, 3083, 3083,
+
+ 3083, 3083, 3083, 3083, 3083, 3083, 1818, 2088, 3416, 2083,
+ 3416, 3416, 2088, 2088, 3417, 2088, 3416, 2088, 2088, 3418,
+ 3419, 3416, 3420, 3421, 3422, 3416, 2088, 2088, 3416, 2088,
+ 3417, 3417, 3417, 3417, 3417, 3417, 3417, 3417, 3416, 2088,
+ 3416, 3417, 3417, 3417, 3417, 3417, 3417, 3417, 3417, 3417,
+ 3417, 3417, 3417, 3417, 3417, 2088, 2088, 3084, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3090, 5143, 5143,
+ 5143, 5143, 5143, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
+ 3084, 5143, 5143, 5143, 3084, 3084, 3084, 3084, 3084, 3084,
+ 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3425, 5143,
+
+ 3426, 5143, 5143, 5143, 5143, 5143, 3427, 3427, 3427, 3427,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3427, 3427, 3427,
+ 3427, 3427, 5143, 3427, 5143, 5143, 5143, 5143, 5143, 5143,
+ 3427, 1588, 2430, 2768, 2430, 2430, 1588, 1588, 3096, 1588,
+ 2430, 1588, 1588, 2769, 2758, 2430, 2759, 2770, 3097, 2430,
+ 1588, 1588, 2430, 1588, 3096, 3096, 3096, 3096, 3096, 3096,
+ 3096, 3096, 2430, 1588, 2430, 3096, 3096, 3096, 3096, 3096,
+ 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 1588,
+ 1588, 3107, 5143, 3431, 5143, 5143, 5143, 5143, 5143, 3432,
+ 3432, 3432, 3432, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 3432, 3432, 3432, 3432, 3432, 5143, 3432, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3432, 2755, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2761, 5143, 5143, 5143, 5143, 5143,
+ 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 5143, 5143,
+ 5143, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
+ 2755, 2755, 2755, 2755, 2755, 784, 961, 961, 961, 961,
+ 784, 784, 1148, 784, 961, 784, 784, 1149, 1150, 961,
+ 1151, 1152, 1153, 961, 784, 784, 961, 784, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 961, 784, 961, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+
+ 1148, 1148, 1148, 784, 784, 1588, 2756, 1147, 2756, 2756,
+ 1588, 2754, 1588, 1588, 1588, 1588, 2756, 2756, 1589, 1588,
+ 1588, 3098, 1588, 2754, 1588, 1588, 1588, 1588, 2754, 2754,
+ 2754, 2754, 2754, 2754, 2754, 2754, 1588, 1588, 1588, 2754,
+ 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754,
+ 2754, 2754, 2754, 2754, 1588, 2094, 3435, 3436, 3435, 3435,
+ 2094, 2094, 3437, 2094, 3435, 2094, 2094, 3438, 3439, 3435,
+ 3440, 2770, 3441, 3435, 2094, 2094, 3435, 2094, 3437, 3437,
+ 3437, 3437, 3437, 3437, 3437, 3437, 3435, 2094, 3435, 3437,
+ 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
+
+ 3437, 3437, 3437, 2094, 2094, 257, 1825, 2096, 1825, 1825,
+ 257, 952, 796, 257, 648, 257, 951, 1963, 1624, 648,
+ 797, 3442, 799, 1965, 257, 257, 648, 257, 2098, 2098,
+ 2098, 2098, 2098, 2098, 2098, 2098, 648, 257, 648, 2098,
+ 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098,
+ 2098, 2098, 2098, 952, 257, 3107, 5143, 3108, 5143, 5143,
+ 5143, 5143, 5143, 3109, 3109, 3109, 3109, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3109, 3109, 3109, 3109, 3109, 5143,
+ 3109, 5143, 5143, 5143, 5143, 5143, 5143, 3109, 255, 1380,
+ 1380, 1380, 1380, 255, 469, 403, 255, 345, 255, 468,
+
+ 1590, 405, 345, 406, 1591, 408, 1592, 255, 255, 345,
+ 255, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 345,
+ 255, 345, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593,
+ 1593, 1593, 1593, 1593, 1593, 1593, 469, 255, 1841, 2767,
+ 3112, 2767, 2767, 1841, 1841, 3445, 1841, 2767, 1841, 1841,
+ 3114, 3115, 2767, 3116, 3117, 3446, 2767, 1841, 1841, 2767,
+ 1841, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 2767,
+ 1841, 2767, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445,
+ 3445, 3445, 3445, 3445, 3445, 3445, 1841, 1841, 1841, 3447,
+ 3448, 3447, 3447, 1841, 3449, 1841, 1841, 1841, 1841, 3447,
+
+ 3447, 1842, 1841, 1841, 3450, 1841, 3449, 1841, 1841, 1841,
+ 1841, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 1841,
+ 1841, 1841, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449,
+ 3449, 3449, 3449, 3449, 3449, 3449, 3449, 1841, 2107, 3451,
+ 3452, 3451, 3451, 2107, 2107, 3453, 2107, 3451, 2107, 2107,
+ 3454, 3455, 3451, 3456, 3457, 3458, 3451, 2107, 2107, 3451,
+ 2107, 3453, 3453, 3453, 3453, 3453, 3453, 3453, 3453, 3451,
+ 2107, 3451, 3453, 3453, 3453, 3453, 3453, 3453, 3453, 3453,
+ 3453, 3453, 3453, 3453, 3453, 3453, 2107, 2107, 3113, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3118, 5143,
+
+ 5143, 5143, 5143, 5143, 3113, 3113, 3113, 3113, 3113, 3113,
+ 3113, 3113, 5143, 5143, 5143, 3113, 3113, 3113, 3113, 3113,
+ 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3459,
+ 5143, 3460, 5143, 5143, 5143, 5143, 5143, 3461, 3461, 3461,
+ 3461, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3461, 3461,
+ 3461, 3461, 3461, 5143, 3461, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3461, 1080, 1732, 1817, 1732, 1732, 1080, 1972, 1080,
+ 1080, 1080, 1080, 1732, 1732, 2439, 1080, 1080, 3463, 1080,
+ 1972, 1080, 1080, 1080, 1080, 1972, 1972, 1972, 1972, 1972,
+ 1972, 1972, 1972, 1080, 1080, 1080, 1972, 1972, 1972, 1972,
+
+ 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972,
+ 1972, 1080, 818, 3130, 3472, 3130, 3130, 818, 818, 1661,
+ 818, 818, 818, 818, 818, 819, 818, 818, 3473, 818,
+ 818, 818, 818, 818, 818, 1661, 1661, 1661, 1661, 1661,
+ 1661, 1661, 1661, 818, 818, 818, 1661, 1661, 1661, 1661,
+ 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661,
+ 3474, 818, 494, 3131, 2806, 3131, 3131, 494, 494, 998,
+ 494, 494, 494, 494, 494, 495, 494, 494, 3475, 494,
+ 494, 494, 494, 494, 494, 998, 998, 998, 998, 998,
+ 998, 998, 998, 494, 494, 494, 998, 998, 998, 998,
+
+ 998, 998, 998, 998, 998, 998, 998, 998, 998, 998,
+ 3476, 494, 1196, 1673, 1673, 1673, 1673, 1196, 1196, 1890,
+ 1196, 1196, 1196, 1891, 1891, 1197, 1196, 1196, 1892, 1196,
+ 1891, 1196, 1196, 1196, 1196, 1890, 1890, 1890, 1890, 1890,
+ 1890, 1890, 1890, 1196, 1196, 1196, 1890, 1890, 1890, 1890,
+ 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890,
+ 1893, 1196, 1432, 1432, 1432, 1432, 5143, 5143, 5143, 5143,
+ 5143, 5143, 319, 319, 5143, 5143, 5143, 1672, 5143, 319,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 323,
+ 1909, 3141, 3149, 3141, 3141, 1909, 1909, 3484, 1909, 1909,
+ 1909, 3141, 3141, 1909, 1909, 1909, 3485, 3486, 3141, 1909,
+ 1909, 1909, 1909, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
+ 3484, 1909, 1909, 1909, 3484, 3484, 3484, 3484, 3484, 3484,
+ 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3143, 1909,
+ 3487, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 1909, 5143, 5143, 5143, 5143, 5143, 3487, 3487, 3487, 3487,
+ 3487, 3487, 3487, 3487, 5143, 5143, 5143, 3487, 3487, 3487,
+ 3487, 3487, 3487, 3487, 3487, 3487, 3487, 3487, 3487, 3487,
+
+ 3487, 1196, 1891, 1891, 1891, 1891, 1196, 1196, 2158, 1196,
+ 1196, 1196, 1891, 1891, 1197, 1196, 1196, 1895, 1196, 1891,
+ 1196, 1196, 1196, 1196, 2158, 2158, 2158, 2158, 2158, 2158,
+ 2158, 2158, 1196, 1196, 1196, 2158, 2158, 2158, 2158, 2158,
+ 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 1893,
+ 1196, 1432, 1432, 1432, 1432, 5143, 5143, 5143, 5143, 5143,
+ 5143, 319, 319, 5143, 5143, 5143, 1672, 5143, 319, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 323, 426,
+
+ 1429, 1667, 1429, 1429, 426, 426, 1907, 426, 426, 426,
+ 1429, 1429, 426, 426, 426, 1669, 1908, 1429, 426, 426,
+ 426, 426, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907,
+ 426, 426, 426, 1907, 1907, 1907, 1907, 1907, 1907, 1907,
+ 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1670, 426, 2163,
+ 3152, 3497, 3152, 3152, 2163, 2163, 3498, 2163, 2163, 2163,
+ 3499, 3499, 2164, 2163, 2163, 3500, 2163, 3499, 2163, 2163,
+ 2163, 2163, 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3498,
+ 2163, 2163, 2163, 3498, 3498, 3498, 3498, 3498, 3498, 3498,
+ 3498, 3498, 3498, 3498, 3498, 3498, 3498, 3501, 2163, 1680,
+
+ 2493, 2486, 2493, 2493, 1680, 1680, 3155, 1680, 1680, 1680,
+ 2493, 2493, 1681, 1680, 1680, 2830, 3156, 2493, 1680, 1680,
+ 1680, 1680, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155,
+ 1680, 1680, 1680, 3155, 3155, 3155, 3155, 3155, 3155, 3155,
+ 3155, 3155, 3155, 3155, 3155, 3155, 3155, 2831, 1680, 1194,
+ 1883, 2152, 1883, 1883, 1194, 1194, 3503, 1194, 1194, 1194,
+ 1883, 1883, 1195, 1194, 1194, 2154, 3504, 1883, 1194, 1194,
+ 1194, 1194, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503,
+ 1194, 1194, 1194, 3503, 3503, 3503, 3503, 3503, 3503, 3503,
+ 3503, 3503, 3503, 3503, 3503, 3503, 3503, 2155, 1194, 324,
+
+ 1904, 1904, 1904, 1904, 324, 324, 2168, 324, 324, 324,
+ 681, 681, 325, 324, 324, 2169, 324, 681, 324, 324,
+ 324, 324, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
+ 324, 324, 324, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
+ 2168, 2168, 2168, 2168, 2168, 2168, 2168, 685, 324, 3508,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3509,
+ 5143, 5143, 5143, 5143, 5143, 3508, 3508, 3508, 3508, 3508,
+ 3508, 3508, 3508, 5143, 5143, 5143, 3508, 3508, 3508, 3508,
+ 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508,
+ 2163, 3169, 3512, 3169, 3169, 2163, 2163, 3513, 2163, 2163,
+
+ 2163, 2163, 2163, 2164, 2163, 2163, 3514, 2163, 2163, 2163,
+ 2163, 2163, 2163, 3513, 3513, 3513, 3513, 3513, 3513, 3513,
+ 3513, 2163, 2163, 2163, 3513, 3513, 3513, 3513, 3513, 3513,
+ 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 2163, 2163,
+ 3515, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 3516, 5143, 5143, 5143, 5143, 5143, 3515, 3515, 3515, 3515,
+ 3515, 3515, 3515, 3515, 5143, 5143, 5143, 3515, 3515, 3515,
+ 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515,
+ 3515, 3170, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3171, 5143, 5143, 5143, 5143, 5143, 3170, 3170, 3170,
+
+ 3170, 3170, 3170, 3170, 3170, 5143, 5143, 5143, 3170, 3170,
+ 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170,
+ 3170, 3170, 1458, 2850, 2203, 2850, 2850, 1458, 1458, 2851,
+ 1458, 2512, 1458, 1458, 2852, 2515, 2512, 2869, 2853, 3176,
+ 2855, 1458, 1458, 2512, 1458, 3177, 3177, 3177, 3177, 2851,
+ 2851, 2851, 2851, 2512, 1458, 2512, 3177, 3177, 3177, 3177,
+ 3177, 2851, 3177, 2851, 2851, 2851, 2851, 2851, 2851, 3177,
+ 1458, 1458, 2511, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 2516, 5143, 2518, 5143, 5143, 5143, 5143, 5143, 2511, 2511,
+ 2511, 2511, 2511, 2511, 2511, 2511, 5143, 5143, 5143, 2511,
+
+ 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511,
+ 2511, 2511, 2511, 599, 854, 854, 854, 854, 599, 1038,
+ 855, 599, 856, 599, 1039, 1040, 858, 856, 859, 1041,
+ 861, 1042, 599, 599, 856, 599, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 856, 599, 856, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1038, 599, 2516, 5143, 2854, 5143, 5143, 5143, 5143,
+ 5143, 2851, 2851, 2851, 2851, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 2851, 2851, 2851, 2851, 2851, 5143, 2851, 5143,
+ 5143, 5143, 5143, 5143, 5143, 2851, 1458, 2513, 2532, 2513,
+
+ 2513, 1458, 2510, 1458, 1458, 1458, 1458, 2513, 2513, 1459,
+ 1458, 1458, 2856, 1458, 2510, 1458, 1458, 1458, 1458, 2510,
+ 2510, 2510, 2510, 2510, 2510, 2510, 2510, 1458, 1458, 1458,
+ 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510,
+ 2510, 2510, 2510, 2510, 2510, 1458, 1921, 3180, 3181, 3180,
+ 3180, 1921, 1921, 3182, 1921, 3183, 1921, 1921, 3184, 3185,
+ 3183, 3186, 3528, 3187, 3188, 1921, 1921, 3183, 1921, 3182,
+ 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3183, 1921, 3183,
+ 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
+ 3182, 3182, 3182, 3182, 1921, 1921, 2869, 5143, 2870, 5143,
+
+ 5143, 5143, 5143, 5143, 2871, 2871, 2871, 2871, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 2871, 2871, 2871, 2871, 2871,
+ 5143, 2871, 5143, 5143, 5143, 5143, 5143, 5143, 2871, 1458,
+ 2855, 2573, 2855, 2855, 1458, 1458, 2872, 1458, 2855, 1458,
+ 1458, 2852, 2873, 2855, 2874, 2875, 2876, 2855, 1458, 1458,
+ 2855, 1458, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872,
+ 2855, 1458, 2855, 2872, 2872, 2872, 2872, 2872, 2872, 2872,
+ 2872, 2872, 2872, 2872, 2872, 2872, 2872, 1458, 1458, 1504,
+ 2262, 2619, 2262, 2262, 1504, 1504, 2620, 1504, 2621, 1504,
+ 1504, 2622, 2623, 2621, 2624, 2625, 2626, 2627, 1504, 1504,
+
+ 2621, 1504, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620,
+ 2621, 1504, 2621, 2620, 2620, 2620, 2620, 2620, 2620, 2620,
+ 2620, 2620, 2620, 2620, 2620, 2620, 2620, 1504, 1504, 3191,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3192,
+ 5143, 5143, 5143, 5143, 5143, 3191, 3191, 3191, 3191, 3191,
+ 3191, 3191, 3191, 5143, 5143, 5143, 3191, 3191, 3191, 3191,
+ 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191,
+ 3201, 5143, 3529, 5143, 5143, 5143, 5143, 5143, 3530, 3530,
+ 3530, 3530, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3530,
+ 3530, 3530, 3530, 3530, 5143, 3530, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 3530, 1921, 3188, 3531, 3188, 3188, 1921, 1921,
+ 3532, 1921, 3188, 1921, 1921, 3184, 3533, 3188, 3534, 2875,
+ 3535, 3188, 1921, 1921, 3188, 1921, 3532, 3532, 3532, 3532,
+ 3532, 3532, 3532, 3532, 3188, 1921, 3188, 3532, 3532, 3532,
+ 3532, 3532, 3532, 3532, 3532, 3532, 3532, 3532, 3532, 3532,
+ 3532, 1921, 1921, 1093, 1700, 1924, 1700, 1700, 1093, 1925,
+ 1926, 1093, 1927, 1093, 1928, 1929, 3536, 1927, 1930, 3537,
+ 1932, 1933, 1093, 1093, 1927, 1093, 1934, 1934, 1934, 1934,
+ 1934, 1934, 1934, 1934, 1927, 1093, 1927, 1934, 1934, 1934,
+ 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+ 1934, 1925, 1093, 3201, 5143, 3202, 5143, 5143, 5143, 5143,
+ 5143, 3203, 3203, 3203, 3203, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3203, 3203, 3203, 3203, 3203, 5143, 3203, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3203, 1461, 2238, 854, 2238,
+ 2238, 1461, 1461, 2879, 1461, 2535, 1461, 1461, 2590, 2538,
+ 2535, 2894, 2591, 3204, 2592, 1461, 1461, 2535, 1461, 3205,
+ 3205, 3205, 3205, 2879, 2879, 2879, 2879, 2535, 1461, 2535,
+ 3205, 3205, 3205, 3205, 3205, 2879, 3205, 2879, 2879, 2879,
+ 2879, 2879, 2879, 3205, 1461, 1461, 2534, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2539, 5143, 2541, 5143, 5143, 5143,
+
+ 5143, 5143, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534,
+ 5143, 5143, 5143, 2534, 2534, 2534, 2534, 2534, 2534, 2534,
+ 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2539, 5143, 2880,
+ 5143, 5143, 5143, 5143, 5143, 2879, 2879, 2879, 2879, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 2879, 2879, 2879, 2879,
+ 2879, 5143, 2879, 5143, 5143, 5143, 5143, 5143, 5143, 2879,
+ 1461, 2536, 2881, 2536, 2536, 1461, 2533, 1461, 1461, 1461,
+ 1461, 2536, 2536, 1462, 1461, 1461, 2882, 1461, 2533, 1461,
+ 1461, 1461, 1461, 2533, 2533, 2533, 2533, 2533, 2533, 2533,
+ 2533, 1461, 1461, 1461, 2533, 2533, 2533, 2533, 2533, 2533,
+
+ 2533, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 1461,
+ 1937, 3208, 1922, 3208, 3208, 1937, 1937, 3209, 1937, 3210,
+ 1937, 1937, 3211, 3212, 3210, 3213, 3543, 3214, 3215, 1937,
+ 1937, 3210, 1937, 3209, 3209, 3209, 3209, 3209, 3209, 3209,
+ 3209, 3210, 1937, 3210, 3209, 3209, 3209, 3209, 3209, 3209,
+ 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 1937, 1937,
+ 2894, 5143, 2895, 5143, 5143, 5143, 5143, 5143, 2896, 2896,
+ 2896, 2896, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2896,
+ 2896, 2896, 2896, 2896, 5143, 2896, 5143, 5143, 5143, 5143,
+ 5143, 5143, 2896, 1461, 2592, 2897, 2592, 2592, 1461, 1461,
+
+ 2898, 1461, 2592, 1461, 1461, 2590, 2899, 2592, 2900, 2901,
+ 2902, 2592, 1461, 1461, 2592, 1461, 2898, 2898, 2898, 2898,
+ 2898, 2898, 2898, 2898, 2592, 1461, 2592, 2898, 2898, 2898,
+ 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898,
+ 2898, 1461, 1461, 599, 862, 862, 862, 862, 599, 599,
+ 1236, 599, 862, 599, 599, 857, 1062, 862, 1063, 1064,
+ 1237, 862, 599, 599, 862, 599, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 862, 599, 862, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 599, 599, 3219, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 3220, 5143, 5143, 5143, 5143, 5143, 3219,
+ 3219, 3219, 3219, 3219, 3219, 3219, 3219, 5143, 5143, 5143,
+ 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219,
+ 3219, 3219, 3219, 3219, 3229, 5143, 3546, 5143, 5143, 5143,
+ 5143, 5143, 3547, 3547, 3547, 3547, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3547, 3547, 3547, 3547, 3547, 5143, 3547,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3547, 599, 2897, 2897,
+ 2897, 2897, 599, 1038, 1061, 599, 862, 599, 1039, 1040,
+ 1062, 862, 1063, 3217, 1065, 1042, 599, 599, 862, 599,
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 862, 599,
+
+ 862, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 3218, 3218, 1038, 599, 1937, 3215, 3548,
+ 3215, 3215, 1937, 1937, 3549, 1937, 3215, 1937, 1937, 3211,
+ 3550, 3215, 3551, 2901, 3552, 3215, 1937, 1937, 3215, 1937,
+ 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3215, 1937,
+ 3215, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549,
+ 3549, 3549, 3549, 3549, 3549, 1937, 1937, 250, 1708, 1940,
+ 1708, 1708, 250, 705, 737, 250, 738, 250, 598, 1941,
+ 1754, 738, 740, 3553, 742, 1943, 250, 250, 738, 250,
+ 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 738, 250,
+
+ 738, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944, 1944,
+ 1944, 1944, 1944, 1944, 1944, 705, 250, 3229, 5143, 3230,
+ 5143, 5143, 5143, 5143, 5143, 3231, 3231, 3231, 3231, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3231, 3231, 3231, 3231,
+ 3231, 5143, 3231, 5143, 5143, 5143, 5143, 5143, 5143, 3231,
+ 876, 3232, 3560, 3232, 3232, 876, 1728, 1766, 876, 1767,
+ 876, 1483, 3561, 1769, 1767, 1770, 3562, 1772, 3563, 876,
+ 876, 1767, 876, 3564, 3564, 3564, 3564, 3564, 3564, 3564,
+ 3564, 1767, 876, 1767, 3564, 3564, 3564, 3564, 3564, 3564,
+ 3564, 3564, 3564, 3564, 3564, 3564, 3564, 3564, 1728, 876,
+
+ 1234, 1955, 2203, 1955, 1955, 1234, 2204, 2205, 1234, 2206,
+ 1234, 2207, 2208, 3565, 2206, 2210, 3566, 2212, 2213, 1234,
+ 1234, 2206, 1234, 2214, 2214, 2214, 2214, 2214, 2214, 2214,
+ 2214, 2206, 1234, 2206, 2214, 2214, 2214, 2214, 2214, 2214,
+ 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2204, 1234,
+ 1234, 2297, 2563, 2297, 2297, 1234, 1234, 2920, 1234, 2297,
+ 1234, 1234, 2295, 2565, 2297, 2930, 2567, 3234, 2297, 1234,
+ 1234, 2297, 1234, 3235, 3235, 3235, 3235, 2920, 2920, 2920,
+ 2920, 2297, 1234, 2297, 3235, 3235, 3235, 3235, 3235, 2920,
+ 3235, 2920, 2920, 2920, 2920, 2920, 2920, 3235, 1234, 1234,
+
+ 599, 712, 712, 712, 712, 599, 599, 855, 599, 856,
+ 599, 599, 857, 858, 856, 859, 860, 861, 862, 599,
+ 599, 856, 599, 855, 855, 855, 855, 855, 855, 855,
+ 855, 856, 599, 856, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855, 599, 599,
+ 2566, 5143, 2921, 5143, 5143, 5143, 5143, 5143, 2920, 2920,
+ 2920, 2920, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2920,
+ 2920, 2920, 2920, 2920, 5143, 2920, 5143, 5143, 5143, 5143,
+ 5143, 5143, 2920, 1711, 2918, 3236, 2918, 2918, 1711, 1711,
+ 3237, 1711, 2918, 1711, 1711, 2914, 3238, 2918, 3239, 3567,
+
+ 3240, 2918, 1711, 1711, 2918, 1711, 3237, 3237, 3237, 3237,
+ 3237, 3237, 3237, 3237, 2918, 1711, 2918, 3237, 3237, 3237,
+ 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237,
+ 3237, 1711, 1711, 2564, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2568, 5143, 5143, 5143, 5143, 5143, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 5143, 5143, 5143,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2930, 5143, 2931, 5143, 5143, 5143,
+ 5143, 5143, 2932, 2932, 2932, 2932, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2932, 2932, 2932, 2932, 2932, 5143, 2932,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 2932, 946, 3244, 3568,
+ 3244, 3244, 946, 2036, 1778, 946, 1779, 946, 2035, 3569,
+ 1781, 1779, 1782, 3570, 1784, 3571, 946, 946, 1779, 946,
+ 3572, 3572, 3572, 3572, 3572, 3572, 3572, 3572, 1779, 946,
+ 1779, 3572, 3572, 3572, 3572, 3572, 3572, 3572, 3572, 3572,
+ 3572, 3572, 3572, 3572, 3572, 2036, 946, 710, 1232, 1232,
+ 1232, 1232, 710, 710, 1471, 710, 1232, 710, 710, 1228,
+ 1472, 1232, 1473, 3573, 1474, 1232, 710, 710, 1232, 710,
+ 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1232, 710,
+ 1232, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471,
+
+ 1471, 1471, 1471, 1471, 1471, 710, 710, 1061, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1065, 5143, 5143,
+ 5143, 5143, 5143, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 5143, 5143, 5143, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 213, 1082,
+ 1082, 1082, 1082, 213, 382, 337, 213, 338, 213, 381,
+ 1256, 760, 338, 341, 3574, 343, 1258, 213, 213, 338,
+ 213, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 338,
+ 213, 338, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 382, 213, 1245, 5143,
+
+ 1246, 5143, 5143, 5143, 5143, 5143, 1247, 1247, 1247, 1247,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1247, 1247, 1247,
+ 1247, 1247, 5143, 1247, 5143, 5143, 5143, 5143, 5143, 5143,
+ 1247, 2228, 3253, 3575, 3253, 3253, 2228, 2228, 3576, 2228,
+ 3253, 2228, 2228, 3577, 3578, 3253, 3579, 3580, 3581, 3253,
+ 2228, 2228, 3253, 2228, 3576, 3576, 3576, 3576, 3576, 3576,
+ 3576, 3576, 3253, 2228, 3253, 3576, 3576, 3576, 3576, 3576,
+ 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 2228,
+ 2228, 1479, 2362, 2563, 2362, 2362, 1479, 1479, 2939, 1479,
+ 2576, 1479, 1479, 2701, 2579, 2576, 2951, 2702, 3254, 2703,
+
+ 1479, 1479, 2576, 1479, 3255, 3255, 3255, 3255, 2939, 2939,
+ 2939, 2939, 2576, 1479, 2576, 3255, 3255, 3255, 3255, 3255,
+ 2939, 3255, 2939, 2939, 2939, 2939, 2939, 2939, 3255, 1479,
+ 1479, 2575, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2580,
+ 5143, 2582, 5143, 5143, 5143, 5143, 5143, 2575, 2575, 2575,
+ 2575, 2575, 2575, 2575, 2575, 5143, 5143, 5143, 2575, 2575,
+ 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575,
+ 2575, 2575, 2580, 5143, 2940, 5143, 5143, 5143, 5143, 5143,
+ 2939, 2939, 2939, 2939, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 2939, 2939, 2939, 2939, 2939, 5143, 2939, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 2939, 1479, 2577, 2897, 2577, 2577,
+ 1479, 2574, 1479, 1479, 1479, 1479, 2577, 2577, 1480, 1479,
+ 1479, 2941, 1479, 2574, 1479, 1479, 1479, 1479, 2574, 2574,
+ 2574, 2574, 2574, 2574, 2574, 2574, 1479, 1479, 1479, 2574,
+ 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574,
+ 2574, 2574, 2574, 2574, 1479, 1960, 3258, 3236, 3258, 3258,
+ 1960, 1960, 3259, 1960, 3260, 1960, 1960, 3261, 3262, 3260,
+ 3263, 3583, 3264, 3265, 1960, 1960, 3260, 1960, 3259, 3259,
+ 3259, 3259, 3259, 3259, 3259, 3259, 3260, 1960, 3260, 3259,
+ 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
+
+ 3259, 3259, 3259, 1960, 1960, 2951, 5143, 2952, 5143, 5143,
+ 5143, 5143, 5143, 2953, 2953, 2953, 2953, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2953, 2953, 2953, 2953, 2953, 5143,
+ 2953, 5143, 5143, 5143, 5143, 5143, 5143, 2953, 1479, 2703,
+ 2954, 2703, 2703, 1479, 1479, 2955, 1479, 2703, 1479, 1479,
+ 2701, 2956, 2703, 2957, 2958, 2959, 2703, 1479, 1479, 2703,
+ 1479, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2703,
+ 1479, 2703, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2955, 1479, 1479, 3267, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3268, 5143,
+
+ 5143, 5143, 5143, 5143, 3267, 3267, 3267, 3267, 3267, 3267,
+ 3267, 3267, 5143, 5143, 5143, 3267, 3267, 3267, 3267, 3267,
+ 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3277,
+ 5143, 3584, 5143, 5143, 5143, 5143, 5143, 3585, 3585, 3585,
+ 3585, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3585, 3585,
+ 3585, 3585, 3585, 5143, 3585, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3585, 1960, 3265, 3586, 3265, 3265, 1960, 1960, 3587,
+ 1960, 3265, 1960, 1960, 3261, 3588, 3265, 3589, 2958, 3590,
+ 3265, 1960, 1960, 3265, 1960, 3587, 3587, 3587, 3587, 3587,
+ 3587, 3587, 3587, 3265, 1960, 3265, 3587, 3587, 3587, 3587,
+
+ 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587,
+ 1960, 1960, 257, 1725, 1962, 1725, 1725, 257, 952, 778,
+ 257, 779, 257, 951, 1963, 1810, 779, 781, 3591, 783,
+ 1965, 257, 257, 779, 257, 1966, 1966, 1966, 1966, 1966,
+ 1966, 1966, 1966, 779, 257, 779, 1966, 1966, 1966, 1966,
+ 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
+ 952, 257, 3277, 5143, 3278, 5143, 5143, 5143, 5143, 5143,
+ 3279, 3279, 3279, 3279, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3279, 3279, 3279, 3279, 3279, 5143, 3279, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3279, 248, 1817, 1817, 1817, 1817,
+
+ 248, 377, 729, 248, 610, 248, 336, 1701, 730, 610,
+ 731, 2086, 733, 1703, 248, 248, 610, 248, 2087, 2087,
+ 2087, 2087, 2087, 2087, 2087, 2087, 610, 248, 610, 2087,
+ 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087,
+ 2087, 2087, 2087, 377, 248, 517, 3285, 2985, 3285, 3285,
+ 517, 1264, 1083, 517, 1084, 517, 1262, 3597, 1086, 1084,
+ 1087, 3598, 1089, 3599, 517, 517, 1084, 517, 3600, 3600,
+ 3600, 3600, 3600, 3600, 3600, 3600, 1084, 517, 1084, 3600,
+ 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600,
+ 3600, 3600, 3600, 1264, 517, 512, 847, 1033, 847, 847,
+
+ 512, 1034, 512, 512, 512, 512, 847, 847, 2614, 512,
+ 512, 3601, 512, 1034, 512, 512, 512, 512, 1034, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 512, 512, 512, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 1034, 512, 784, 1360, 1360, 1360, 1360,
+ 784, 1359, 784, 784, 784, 784, 1360, 1360, 785, 784,
+ 784, 1367, 784, 1359, 784, 784, 784, 784, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 784, 784, 784, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 784, 1504, 2262, 2619, 2262, 2262,
+
+ 1504, 1504, 2982, 1504, 2621, 1504, 1504, 2622, 2623, 2621,
+ 2998, 2625, 3291, 2627, 1504, 1504, 2621, 1504, 3292, 3292,
+ 3292, 3292, 2982, 2982, 2982, 2982, 2621, 1504, 2621, 3292,
+ 3292, 3292, 3292, 3292, 2982, 3292, 2982, 2982, 2982, 2982,
+ 2982, 2982, 3292, 1504, 1504, 2620, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2624, 5143, 2626, 5143, 5143, 5143, 5143,
+ 5143, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 5143,
+ 5143, 5143, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620,
+ 2620, 2620, 2620, 2620, 2620, 2620, 2624, 5143, 2983, 5143,
+ 5143, 5143, 5143, 5143, 2982, 2982, 2982, 2982, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 2982, 2982, 2982, 2982, 2982,
+ 5143, 2982, 5143, 5143, 5143, 5143, 5143, 5143, 2982, 1504,
+ 2984, 2985, 2984, 2984, 1504, 2986, 1504, 1504, 1504, 1504,
+ 2984, 2984, 1505, 1504, 1504, 2987, 1504, 2986, 1504, 1504,
+ 1504, 1504, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986,
+ 1504, 1504, 1504, 2986, 2986, 2986, 2986, 2986, 2986, 2986,
+ 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 1504, 1987,
+ 3295, 3296, 3295, 3295, 1987, 1987, 3297, 1987, 3298, 1987,
+ 1987, 3299, 3300, 3298, 3301, 3606, 3302, 3303, 1987, 1987,
+ 3298, 1987, 3297, 3297, 3297, 3297, 3297, 3297, 3297, 3297,
+
+ 3298, 1987, 3298, 3297, 3297, 3297, 3297, 3297, 3297, 3297,
+ 3297, 3297, 3297, 3297, 3297, 3297, 3297, 1987, 1987, 2998,
+ 5143, 2999, 5143, 5143, 5143, 5143, 5143, 3000, 3000, 3000,
+ 3000, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3000, 3000,
+ 3000, 3000, 3000, 5143, 3000, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3000, 1504, 2627, 3001, 2627, 2627, 1504, 1504, 3002,
+ 1504, 2627, 1504, 1504, 2622, 3003, 2627, 3004, 3005, 3006,
+ 2627, 1504, 1504, 2627, 1504, 3002, 3002, 3002, 3002, 3002,
+ 3002, 3002, 3002, 2627, 1504, 2627, 3002, 3002, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+
+ 1504, 1504, 3305, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3306, 5143, 5143, 5143, 5143, 5143, 3305, 3305,
+ 3305, 3305, 3305, 3305, 3305, 3305, 5143, 5143, 5143, 3305,
+ 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305,
+ 3305, 3305, 3305, 3315, 5143, 3607, 5143, 5143, 5143, 5143,
+ 5143, 3608, 3608, 3608, 3608, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3608, 3608, 3608, 3608, 3608, 5143, 3608, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3608, 1987, 3303, 3609, 3303,
+ 3303, 1987, 1987, 3610, 1987, 3303, 1987, 1987, 3299, 3611,
+ 3303, 3612, 3005, 3613, 3303, 1987, 1987, 3303, 1987, 3610,
+
+ 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3303, 1987, 3303,
+ 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610,
+ 3610, 3610, 3610, 3610, 1987, 1987, 1093, 1744, 1713, 1744,
+ 1744, 1093, 1093, 1926, 1093, 1927, 1093, 1093, 1989, 3536,
+ 1927, 1930, 3614, 1932, 1991, 1093, 1093, 1927, 1093, 1926,
+ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1927, 1093, 1927,
+ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+ 1926, 1926, 1926, 1926, 1093, 1093, 3315, 5143, 3316, 5143,
+ 5143, 5143, 5143, 5143, 3317, 3317, 3317, 3317, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3317, 3317, 3317, 3317, 3317,
+
+ 5143, 3317, 5143, 5143, 5143, 5143, 5143, 5143, 3317, 784,
+ 1147, 1147, 1147, 1147, 784, 1359, 1148, 784, 961, 784,
+ 1360, 1361, 3618, 961, 1151, 3619, 1153, 1363, 784, 784,
+ 961, 784, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 961, 784, 961, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1359, 784, 215,
+ 3325, 1962, 3325, 3325, 215, 750, 756, 215, 626, 215,
+ 749, 1714, 626, 626, 757, 3620, 759, 1716, 215, 215,
+ 626, 215, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621,
+ 626, 215, 626, 3621, 3621, 3621, 3621, 3621, 3621, 3621,
+
+ 3621, 3621, 3621, 3621, 3621, 3621, 3621, 750, 215, 734,
+ 1501, 1749, 1501, 1501, 734, 734, 1750, 734, 1501, 734,
+ 734, 1497, 1751, 1501, 1752, 1995, 1753, 1501, 734, 734,
+ 1501, 734, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1501, 734, 1501, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 734, 734, 517,
+ 890, 1082, 890, 890, 517, 517, 1083, 517, 1084, 517,
+ 517, 1085, 1086, 1084, 1087, 1088, 1089, 1090, 517, 517,
+ 1084, 517, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+ 1084, 517, 1084, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+
+ 1083, 1083, 1083, 1083, 1083, 1083, 1083, 517, 517, 1260,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1261,
+ 5143, 5143, 5143, 5143, 5143, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1260, 1260, 5143, 5143, 5143, 1260, 1260, 1260, 1260,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+ 517, 1262, 1263, 1262, 1262, 517, 1264, 517, 517, 517,
+ 517, 1262, 1262, 518, 517, 517, 1265, 517, 1264, 517,
+ 517, 517, 517, 1264, 1264, 1264, 1264, 1264, 1264, 1264,
+ 1264, 517, 517, 517, 1264, 1264, 1264, 1264, 1264, 1264,
+ 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 517,
+
+ 1756, 2642, 2643, 2642, 2642, 1756, 1756, 2644, 1756, 2645,
+ 1756, 1756, 2646, 2647, 2645, 2648, 2649, 2650, 2651, 1756,
+ 1756, 2645, 1756, 2644, 2644, 2644, 2644, 2644, 2644, 2644,
+ 2644, 2645, 1756, 2645, 2644, 2644, 2644, 2644, 2644, 2644,
+ 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 1756, 1756,
+ 1278, 5143, 1279, 5143, 5143, 5143, 5143, 5143, 1280, 1280,
+ 1280, 1280, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1280,
+ 1280, 1280, 1280, 1280, 5143, 1280, 5143, 5143, 5143, 5143,
+ 5143, 5143, 1280, 517, 1090, 1281, 1090, 1090, 517, 517,
+ 1282, 517, 1090, 517, 517, 1085, 1283, 1090, 1284, 1285,
+
+ 1286, 1090, 517, 517, 1090, 517, 1282, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1090, 517, 1090, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 517, 517, 2665, 3336, 3624, 3336, 3336, 2665, 2665,
+ 3625, 2665, 3336, 2665, 2665, 3332, 3626, 3336, 3627, 3628,
+ 3629, 3336, 2665, 2665, 3336, 2665, 3625, 3625, 3625, 3625,
+ 3625, 3625, 3625, 3625, 3336, 2665, 3336, 3625, 3625, 3625,
+ 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625,
+ 3625, 2665, 2665, 1760, 2668, 3001, 2668, 2668, 1760, 1760,
+ 3341, 1760, 3025, 1760, 1760, 3026, 3027, 3025, 3028, 3029,
+
+ 3342, 3031, 1760, 1760, 3025, 1760, 3341, 3341, 3341, 3341,
+ 3341, 3341, 3341, 3341, 3025, 1760, 3025, 3341, 3341, 3341,
+ 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
+ 3341, 1760, 1760, 3356, 5143, 3632, 5143, 5143, 5143, 5143,
+ 5143, 3633, 3633, 3633, 3633, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3633, 3633, 3633, 3633, 3633, 5143, 3633, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3633, 1760, 3343, 3344, 3343,
+ 3343, 1760, 3345, 1760, 1760, 1760, 1760, 3343, 3343, 1761,
+ 1760, 1760, 3346, 1760, 3345, 1760, 1760, 1760, 1760, 3345,
+ 3345, 3345, 3345, 3345, 3345, 3345, 3345, 1760, 1760, 1760,
+
+ 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345,
+ 3345, 3345, 3345, 3345, 3345, 1760, 213, 1281, 1281, 1281,
+ 1281, 213, 382, 398, 213, 344, 213, 381, 1256, 399,
+ 344, 400, 1506, 402, 1258, 213, 213, 344, 213, 1507,
+ 1507, 1507, 1507, 1507, 1507, 1507, 1507, 344, 213, 344,
+ 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
+ 1507, 1507, 1507, 1507, 382, 213, 3024, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3030, 5143, 5143, 5143,
+ 5143, 5143, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
+ 5143, 5143, 5143, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
+
+ 3024, 3024, 3024, 3024, 3024, 3024, 3024, 2286, 3636, 3609,
+ 3636, 3636, 2286, 2286, 3637, 2286, 3638, 2286, 2286, 3639,
+ 3640, 3638, 3641, 3029, 3642, 3643, 2286, 2286, 3638, 2286,
+ 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3638, 2286,
+ 3638, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637,
+ 3637, 3637, 3637, 3637, 3637, 2286, 2286, 1291, 2006, 1962,
+ 2006, 2006, 1291, 1291, 2288, 1291, 2289, 1291, 1291, 2290,
+ 3644, 2289, 2291, 3645, 2293, 2109, 1291, 1291, 2289, 1291,
+ 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2289, 1291,
+ 2289, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288,
+
+ 2288, 2288, 2288, 2288, 2288, 1291, 1291, 3356, 5143, 3357,
+ 5143, 5143, 5143, 5143, 5143, 3358, 3358, 3358, 3358, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3358, 3358, 3358, 3358,
+ 3358, 5143, 3358, 5143, 5143, 5143, 5143, 5143, 5143, 3358,
+ 1760, 3031, 3359, 3031, 3031, 1760, 1760, 3360, 1760, 3031,
+ 1760, 1760, 3026, 3361, 3031, 3362, 3363, 3364, 3031, 1760,
+ 1760, 3031, 1760, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3360, 3031, 1760, 3031, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 1760, 1760,
+ 3646, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 3647, 5143, 5143, 5143, 5143, 5143, 3646, 3646, 3646, 3646,
+ 3646, 3646, 3646, 3646, 5143, 5143, 5143, 3646, 3646, 3646,
+ 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646,
+ 3646, 2004, 3355, 3648, 3355, 3355, 2004, 2004, 3649, 2004,
+ 3355, 2004, 2004, 3350, 3650, 3355, 3651, 3652, 3653, 3355,
+ 2004, 2004, 3355, 2004, 3649, 3649, 3649, 3649, 3649, 3649,
+ 3649, 3649, 3355, 2004, 3355, 3649, 3649, 3649, 3649, 3649,
+ 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 3649, 2004,
+ 2004, 3656, 5143, 3657, 5143, 5143, 5143, 5143, 5143, 3658,
+ 3658, 3658, 3658, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 3658, 3658, 3658, 3658, 3658, 5143, 3658, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3658, 452, 1105, 1082, 1105, 1105, 452,
+ 1106, 452, 452, 452, 452, 1105, 1105, 453, 452, 452,
+ 1107, 452, 1106, 452, 452, 452, 452, 1106, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 452, 452, 452, 1106, 1106,
+ 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
+ 1106, 1106, 1106, 452, 452, 911, 1121, 911, 911, 452,
+ 452, 1122, 452, 911, 452, 452, 906, 1123, 911, 1124,
+ 1125, 1126, 911, 452, 452, 911, 452, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 911, 452, 911, 1122, 1122,
+
+ 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 452, 452, 452, 746, 903, 746, 746, 452,
+ 452, 1103, 452, 905, 452, 452, 906, 907, 905, 908,
+ 909, 1104, 911, 452, 452, 905, 452, 1103, 1103, 1103,
+ 1103, 1103, 1103, 1103, 1103, 905, 452, 905, 1103, 1103,
+ 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
+ 1103, 1103, 452, 452, 3018, 3372, 3660, 3372, 3372, 3018,
+ 3661, 3018, 3018, 3018, 3018, 3372, 3372, 3019, 3018, 3018,
+ 3662, 3018, 3661, 3018, 3018, 3018, 3018, 3661, 3661, 3661,
+ 3661, 3661, 3661, 3661, 3661, 3018, 3018, 3018, 3661, 3661,
+
+ 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661,
+ 3661, 3661, 3661, 3018, 3018, 3373, 3663, 3373, 3373, 3018,
+ 3018, 3664, 3018, 3373, 3018, 3018, 3665, 3666, 3373, 3667,
+ 3668, 3669, 3373, 3018, 3018, 3373, 3018, 3664, 3664, 3664,
+ 3664, 3664, 3664, 3664, 3664, 3373, 3018, 3373, 3664, 3664,
+ 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664,
+ 3664, 3664, 3018, 3018, 213, 308, 308, 308, 308, 213,
+ 213, 337, 213, 338, 213, 213, 339, 340, 338, 341,
+ 342, 343, 344, 213, 213, 338, 213, 337, 337, 337,
+ 337, 337, 337, 337, 337, 338, 213, 338, 337, 337,
+
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 213, 213, 1307, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 1308, 5143, 5143, 5143, 5143, 5143,
+ 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 5143, 5143,
+ 5143, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307,
+ 1307, 1307, 1307, 1307, 1307, 1535, 2335, 2719, 2335, 2335,
+ 1535, 1535, 3670, 1535, 2335, 1535, 1535, 2330, 3671, 2335,
+ 3672, 3673, 3674, 2335, 1535, 1535, 2335, 1535, 3670, 3670,
+ 3670, 3670, 3670, 3670, 3670, 3670, 2335, 1535, 2335, 3670,
+ 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
+
+ 3670, 3670, 3670, 1535, 1535, 1317, 5143, 1318, 5143, 5143,
+ 5143, 5143, 5143, 1319, 1319, 1319, 1319, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 1319, 1319, 1319, 1319, 1319, 5143,
+ 1319, 5143, 5143, 5143, 5143, 5143, 5143, 1319, 536, 3380,
+ 3001, 3380, 3380, 536, 1339, 1135, 536, 1136, 536, 1338,
+ 3677, 1138, 1136, 1139, 3678, 1141, 3679, 536, 536, 1136,
+ 536, 3680, 3680, 3680, 3680, 3680, 3680, 3680, 3680, 1136,
+ 536, 1136, 3680, 3680, 3680, 3680, 3680, 3680, 3680, 3680,
+ 3680, 3680, 3680, 3680, 3680, 3680, 1339, 536, 776, 1559,
+ 1805, 1559, 1559, 776, 776, 1806, 776, 1559, 776, 776,
+
+ 1555, 1807, 1559, 1808, 2075, 1809, 1559, 776, 776, 1559,
+ 776, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1559,
+ 776, 1559, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 776, 776, 536, 948,
+ 1121, 948, 948, 536, 536, 1135, 536, 1136, 536, 536,
+ 1137, 1138, 1136, 1139, 1140, 1141, 1142, 536, 536, 1136,
+ 536, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1136,
+ 536, 1136, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1135, 1135, 1135, 1135, 536, 536, 1336, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1337, 5143,
+
+ 5143, 5143, 5143, 5143, 1336, 1336, 1336, 1336, 1336, 1336,
+ 1336, 1336, 5143, 5143, 5143, 1336, 1336, 1336, 1336, 1336,
+ 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 536,
+ 1338, 1281, 1338, 1338, 536, 1339, 536, 536, 536, 536,
+ 1338, 1338, 537, 536, 536, 1340, 536, 1339, 536, 536,
+ 536, 536, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
+ 536, 536, 536, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
+ 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 536, 1812,
+ 2718, 2719, 2718, 2718, 1812, 1812, 2720, 1812, 2721, 1812,
+ 1812, 2722, 2723, 2721, 2724, 2725, 2726, 2727, 1812, 1812,
+
+ 2721, 1812, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720,
+ 2721, 1812, 2721, 2720, 2720, 2720, 2720, 2720, 2720, 2720,
+ 2720, 2720, 2720, 2720, 2720, 2720, 2720, 1812, 1812, 1350,
+ 5143, 1351, 5143, 5143, 5143, 5143, 5143, 1352, 1352, 1352,
+ 1352, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1352, 1352,
+ 1352, 1352, 1352, 5143, 1352, 5143, 5143, 5143, 5143, 5143,
+ 5143, 1352, 536, 1142, 1353, 1142, 1142, 536, 536, 1354,
+ 536, 1142, 536, 536, 1137, 1355, 1142, 1356, 1357, 1358,
+ 1142, 536, 536, 1142, 536, 1354, 1354, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1142, 536, 1142, 1354, 1354, 1354, 1354,
+
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+ 536, 536, 2698, 3391, 3681, 3391, 3391, 2698, 2698, 3682,
+ 2698, 3391, 2698, 2698, 3387, 3683, 3391, 3684, 3685, 3686,
+ 3391, 2698, 2698, 3391, 2698, 3682, 3682, 3682, 3682, 3682,
+ 3682, 3682, 3682, 3391, 2698, 3391, 3682, 3682, 3682, 3682,
+ 3682, 3682, 3682, 3682, 3682, 3682, 3682, 3682, 3682, 3682,
+ 2698, 2698, 1815, 3071, 2753, 3071, 3071, 1815, 1815, 3394,
+ 1815, 3071, 1815, 1815, 3395, 3074, 3071, 3075, 3396, 3397,
+ 3071, 1815, 1815, 3071, 1815, 3394, 3394, 3394, 3394, 3394,
+ 3394, 3394, 3394, 3071, 1815, 3071, 3394, 3394, 3394, 3394,
+
+ 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
+ 1815, 1815, 1815, 3072, 3082, 3072, 3072, 1815, 3069, 1815,
+ 1815, 1815, 1815, 3072, 3072, 1816, 1815, 1815, 3398, 1815,
+ 3069, 1815, 1815, 1815, 1815, 3069, 3069, 3069, 3069, 3069,
+ 3069, 3069, 3069, 1815, 1815, 1815, 3069, 3069, 3069, 3069,
+ 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069,
+ 3069, 1815, 3409, 5143, 3689, 5143, 5143, 5143, 5143, 5143,
+ 3690, 3690, 3690, 3690, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3690, 3690, 3690, 3690, 3690, 5143, 3690, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3690, 3070, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 3077, 5143, 5143, 5143, 5143,
+ 5143, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 5143,
+ 5143, 5143, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070,
+ 3070, 3070, 3070, 3070, 3070, 3070, 784, 1147, 1147, 1147,
+ 1147, 784, 1359, 1148, 784, 961, 784, 1360, 1361, 1150,
+ 961, 1151, 1362, 1153, 1363, 784, 784, 961, 784, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 961, 784, 961,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1359, 784, 2393, 3693, 3694, 3693,
+ 3693, 2393, 2393, 3695, 2393, 3693, 2393, 2393, 3696, 3697,
+
+ 3693, 3698, 3396, 3699, 3693, 2393, 2393, 3693, 2393, 3695,
+ 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3693, 2393, 3693,
+ 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695,
+ 3695, 3695, 3695, 3695, 2393, 2393, 1291, 2085, 2396, 2085,
+ 2085, 1291, 2397, 2398, 1291, 2109, 1291, 2237, 2399, 3700,
+ 2109, 2400, 3701, 2402, 2403, 1291, 1291, 2109, 1291, 2404,
+ 2404, 2404, 2404, 2404, 2404, 2404, 2404, 2109, 1291, 2109,
+ 2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404, 2404,
+ 2404, 2404, 2404, 2404, 2397, 1291, 3409, 5143, 3410, 5143,
+ 5143, 5143, 5143, 5143, 3411, 3411, 3411, 3411, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 3411, 3411, 3411, 3411, 3411,
+ 5143, 3411, 5143, 5143, 5143, 5143, 5143, 5143, 3411, 1818,
+ 2764, 1147, 2764, 2764, 1818, 1818, 3412, 1818, 2764, 1818,
+ 1818, 3110, 3087, 2764, 3088, 3111, 3413, 2764, 1818, 1818,
+ 2764, 1818, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
+ 2764, 1818, 2764, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
+ 3412, 3412, 3412, 3412, 3412, 3412, 3412, 1818, 1818, 3425,
+ 5143, 3702, 5143, 5143, 5143, 5143, 5143, 3703, 3703, 3703,
+ 3703, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3703, 3703,
+ 3703, 3703, 3703, 5143, 3703, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 3703, 784, 1360, 1360, 1360, 1360, 784, 1359, 784,
+ 784, 784, 784, 1360, 1360, 785, 784, 784, 1367, 784,
+ 1359, 784, 784, 784, 784, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 784, 784, 784, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 784, 3084, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3090, 5143, 5143, 5143, 5143, 5143, 3084, 3084,
+ 3084, 3084, 3084, 3084, 3084, 3084, 5143, 5143, 5143, 3084,
+ 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
+ 3084, 3084, 3084, 1818, 3085, 3414, 3085, 3085, 1818, 3083,
+
+ 1818, 1818, 1818, 1818, 3085, 3085, 1819, 1818, 1818, 3415,
+ 1818, 3083, 1818, 1818, 1818, 1818, 3083, 3083, 3083, 3083,
+ 3083, 3083, 3083, 3083, 1818, 1818, 1818, 3083, 3083, 3083,
+ 3083, 3083, 3083, 3083, 3083, 3083, 3083, 3083, 3083, 3083,
+ 3083, 3083, 1818, 2407, 3706, 2394, 3706, 3706, 2407, 2407,
+ 3707, 2407, 3706, 2407, 2407, 3708, 3709, 3706, 3710, 3111,
+ 3711, 3706, 2407, 2407, 3706, 2407, 3707, 3707, 3707, 3707,
+ 3707, 3707, 3707, 3707, 3706, 2407, 3706, 3707, 3707, 3707,
+ 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707,
+ 3707, 2407, 2407, 250, 2091, 2410, 2091, 2091, 250, 705,
+
+ 899, 250, 743, 250, 598, 1941, 1839, 743, 900, 3712,
+ 902, 1943, 250, 250, 743, 250, 2412, 2412, 2412, 2412,
+ 2412, 2412, 2412, 2412, 743, 250, 743, 2412, 2412, 2412,
+ 2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412, 2412,
+ 2412, 705, 250, 3425, 5143, 3426, 5143, 5143, 5143, 5143,
+ 5143, 3427, 3427, 3427, 3427, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3427, 3427, 3427, 3427, 3427, 5143, 3427, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3427, 784, 961, 961, 961,
+ 961, 784, 784, 1148, 784, 961, 784, 784, 1149, 1150,
+ 961, 1151, 1152, 1153, 961, 784, 784, 961, 784, 1148,
+
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 961, 784, 961,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 784, 784, 1588, 2430, 2768, 2430,
+ 2430, 1588, 1588, 3096, 1588, 2430, 1588, 1588, 2769, 2758,
+ 2430, 3107, 2770, 3431, 2430, 1588, 1588, 2430, 1588, 3432,
+ 3432, 3432, 3432, 3096, 3096, 3096, 3096, 2430, 1588, 2430,
+ 3432, 3432, 3432, 3432, 3432, 3096, 3432, 3096, 3096, 3096,
+ 3096, 3096, 3096, 3432, 1588, 1588, 2755, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2759, 5143, 2761, 5143, 5143, 5143,
+ 5143, 5143, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
+
+ 5143, 5143, 5143, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
+ 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2759, 5143, 3097,
+ 5143, 5143, 5143, 5143, 5143, 3096, 3096, 3096, 3096, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3096, 3096, 3096, 3096,
+ 3096, 5143, 3096, 5143, 5143, 5143, 5143, 5143, 5143, 3096,
+ 1588, 2756, 1147, 2756, 2756, 1588, 2754, 1588, 1588, 1588,
+ 1588, 2756, 2756, 1589, 1588, 1588, 3098, 1588, 2754, 1588,
+ 1588, 1588, 1588, 2754, 2754, 2754, 2754, 2754, 2754, 2754,
+ 2754, 1588, 1588, 1588, 2754, 2754, 2754, 2754, 2754, 2754,
+ 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754, 1588,
+
+ 2094, 3435, 3436, 3435, 3435, 2094, 2094, 3437, 2094, 3435,
+ 2094, 2094, 3438, 3439, 3435, 3440, 3714, 3441, 3435, 2094,
+ 2094, 3435, 2094, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
+ 3437, 3435, 2094, 3435, 3437, 3437, 3437, 3437, 3437, 3437,
+ 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 2094, 2094,
+ 3107, 5143, 3108, 5143, 5143, 5143, 5143, 5143, 3109, 3109,
+ 3109, 3109, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3109,
+ 3109, 3109, 3109, 3109, 5143, 3109, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3109, 1841, 2767, 3112, 2767, 2767, 1841, 1841,
+ 3445, 1841, 2767, 1841, 1841, 3114, 3115, 2767, 3116, 3117,
+
+ 3446, 2767, 1841, 1841, 2767, 1841, 3445, 3445, 3445, 3445,
+ 3445, 3445, 3445, 3445, 2767, 1841, 2767, 3445, 3445, 3445,
+ 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445,
+ 3445, 1841, 1841, 3459, 5143, 3716, 5143, 5143, 5143, 5143,
+ 5143, 3717, 3717, 3717, 3717, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3717, 3717, 3717, 3717, 3717, 5143, 3717, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3717, 1841, 3447, 3448, 3447,
+ 3447, 1841, 3449, 1841, 1841, 1841, 1841, 3447, 3447, 1842,
+ 1841, 1841, 3450, 1841, 3449, 1841, 1841, 1841, 1841, 3449,
+ 3449, 3449, 3449, 3449, 3449, 3449, 3449, 1841, 1841, 1841,
+
+ 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449,
+ 3449, 3449, 3449, 3449, 3449, 1841, 255, 1380, 1380, 1380,
+ 1380, 255, 469, 403, 255, 345, 255, 468, 1590, 405,
+ 345, 406, 1591, 408, 1592, 255, 255, 345, 255, 1593,
+ 1593, 1593, 1593, 1593, 1593, 1593, 1593, 345, 255, 345,
+ 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593,
+ 1593, 1593, 1593, 1593, 469, 255, 3113, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3118, 5143, 5143, 5143,
+ 5143, 5143, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113,
+ 5143, 5143, 5143, 3113, 3113, 3113, 3113, 3113, 3113, 3113,
+
+ 3113, 3113, 3113, 3113, 3113, 3113, 3113, 2427, 3720, 3721,
+ 3720, 3720, 2427, 2427, 3722, 2427, 3720, 2427, 2427, 3723,
+ 3724, 3720, 3725, 3117, 3726, 3720, 2427, 2427, 3720, 2427,
+ 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3720, 2427,
+ 3720, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722,
+ 3722, 3722, 3722, 3722, 3722, 2427, 2427, 1291, 2109, 2096,
+ 2109, 2109, 1291, 1291, 2398, 1291, 2109, 1291, 1291, 2290,
+ 3700, 2109, 2400, 3727, 2402, 2109, 1291, 1291, 2109, 1291,
+ 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2109, 1291,
+ 2109, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398,
+
+ 2398, 2398, 2398, 2398, 2398, 1291, 1291, 3459, 5143, 3460,
+ 5143, 5143, 5143, 5143, 5143, 3461, 3461, 3461, 3461, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3461, 3461, 3461, 3461,
+ 3461, 5143, 3461, 5143, 5143, 5143, 5143, 5143, 5143, 3461,
+ 550, 3462, 3112, 3462, 3462, 550, 1390, 1156, 550, 967,
+ 550, 1389, 3728, 1158, 967, 1159, 3729, 1161, 3730, 550,
+ 550, 967, 550, 3731, 3731, 3731, 3731, 3731, 3731, 3731,
+ 3731, 967, 550, 967, 3731, 3731, 3731, 3731, 3731, 3731,
+ 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 1390, 550,
+ 561, 812, 812, 812, 812, 561, 561, 813, 561, 561,
+
+ 561, 561, 561, 562, 561, 561, 984, 561, 561, 561,
+ 561, 561, 561, 813, 813, 813, 813, 813, 813, 813,
+ 813, 561, 561, 561, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 985, 561,
+ 2130, 3467, 3732, 3467, 3467, 2130, 2130, 3733, 2130, 2130,
+ 2130, 2130, 2130, 2131, 2130, 2130, 3734, 2130, 2130, 2130,
+ 2130, 2130, 2130, 3733, 3733, 3733, 3733, 3733, 3733, 3733,
+ 3733, 2130, 2130, 2130, 3733, 3733, 3733, 3733, 3733, 3733,
+ 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3735, 2130,
+ 260, 1408, 1408, 1408, 1408, 260, 260, 565, 260, 260,
+
+ 260, 260, 260, 261, 260, 260, 1632, 260, 260, 260,
+ 260, 260, 260, 565, 565, 565, 565, 565, 565, 565,
+ 565, 260, 260, 260, 565, 565, 565, 565, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 1633, 260,
+ 559, 3471, 3468, 3471, 3471, 559, 559, 1871, 559, 559,
+ 559, 559, 559, 560, 559, 559, 3738, 559, 559, 559,
+ 559, 559, 559, 1871, 1871, 1871, 1871, 1871, 1871, 1871,
+ 1871, 559, 559, 559, 1871, 1871, 1871, 1871, 1871, 1871,
+ 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 3739, 559,
+ 2484, 3483, 3752, 3483, 3483, 2484, 2484, 3753, 2484, 2484,
+
+ 2484, 3754, 3754, 2485, 2484, 2484, 3755, 2484, 3754, 2484,
+ 2484, 2484, 2484, 3753, 3753, 3753, 3753, 3753, 3753, 3753,
+ 3753, 2484, 2484, 2484, 3753, 3753, 3753, 3753, 3753, 3753,
+ 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3756, 2484,
+ 1909, 3141, 3149, 3141, 3141, 1909, 1909, 3484, 1909, 1909,
+ 1909, 3141, 3141, 1909, 1909, 1909, 3485, 3486, 3141, 1909,
+ 1909, 1909, 1909, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
+ 3484, 1909, 1909, 1909, 3484, 3484, 3484, 3484, 3484, 3484,
+ 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3143, 1909,
+ 3759, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 3760, 5143, 5143, 5143, 5143, 5143, 3759, 3759, 3759, 3759,
+ 3759, 3759, 3759, 3759, 5143, 5143, 5143, 3759, 3759, 3759,
+ 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
+ 3759, 2487, 3494, 3764, 3494, 3494, 2487, 2487, 3765, 2487,
+ 2487, 2487, 3766, 3766, 2488, 2487, 2487, 3767, 2487, 3766,
+ 2487, 2487, 2487, 2487, 3765, 3765, 3765, 3765, 3765, 3765,
+ 3765, 3765, 2487, 2487, 2487, 3765, 3765, 3765, 3765, 3765,
+ 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3768,
+ 2487, 1196, 1673, 1673, 1673, 1673, 1196, 1196, 1890, 1196,
+ 1196, 1196, 1891, 1891, 1197, 1196, 1196, 1892, 1196, 1891,
+
+ 1196, 1196, 1196, 1196, 1890, 1890, 1890, 1890, 1890, 1890,
+ 1890, 1890, 1196, 1196, 1196, 1890, 1890, 1890, 1890, 1890,
+ 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1893,
+ 1196, 2163, 3499, 1673, 3499, 3499, 2163, 2163, 3769, 2163,
+ 2163, 2163, 3499, 3499, 2164, 2163, 2163, 3770, 3771, 3499,
+ 2163, 2163, 2163, 2163, 3769, 3769, 3769, 3769, 3769, 3769,
+ 3769, 3769, 2163, 2163, 2163, 3769, 3769, 3769, 3769, 3769,
+ 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3501,
+ 2163, 3772, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 2163, 5143, 5143, 5143, 5143, 5143, 3772, 3772, 3772,
+
+ 3772, 3772, 3772, 3772, 3772, 5143, 5143, 5143, 3772, 3772,
+ 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772,
+ 3772, 3772, 2487, 3502, 1673, 3502, 3502, 2487, 2487, 3775,
+ 2487, 2487, 2487, 2487, 2487, 2488, 2487, 2487, 3776, 2487,
+ 2487, 2487, 2487, 2487, 2487, 3775, 3775, 3775, 3775, 3775,
+ 3775, 3775, 3775, 2487, 2487, 2487, 3775, 3775, 3775, 3775,
+ 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775,
+ 2487, 2487, 1194, 1883, 2152, 1883, 1883, 1194, 1194, 3777,
+ 1194, 1194, 1194, 1883, 1883, 1195, 1194, 1194, 2154, 3778,
+ 1883, 1194, 1194, 1194, 1194, 3777, 3777, 3777, 3777, 3777,
+
+ 3777, 3777, 3777, 1194, 1194, 1194, 3777, 3777, 3777, 3777,
+ 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777,
+ 2155, 1194, 3503, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3504, 5143, 5143, 5143, 5143, 5143, 3503, 3503,
+ 3503, 3503, 3503, 3503, 3503, 3503, 5143, 5143, 5143, 3503,
+ 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503, 3503,
+ 3503, 3503, 3503, 2501, 3507, 3782, 3507, 3507, 2501, 2501,
+ 3783, 2501, 2501, 2501, 2501, 2501, 2502, 2501, 2501, 3784,
+ 2501, 2501, 2501, 2501, 2501, 2501, 3783, 3783, 3783, 3783,
+ 3783, 3783, 3783, 3783, 2501, 2501, 2501, 3783, 3783, 3783,
+
+ 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783,
+ 3783, 2501, 2501, 3508, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3509, 5143, 5143, 5143, 5143, 5143, 3508,
+ 3508, 3508, 3508, 3508, 3508, 3508, 3508, 5143, 5143, 5143,
+ 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508, 3508,
+ 3508, 3508, 3508, 3508, 1196, 1435, 1435, 1435, 1435, 1196,
+ 1196, 1674, 1196, 1196, 1196, 1196, 1196, 1197, 1196, 1196,
+ 1675, 1196, 1196, 1196, 1196, 1196, 1196, 1674, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1196, 1196, 1196, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
+
+ 1674, 1674, 1196, 1196, 3785, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3786, 5143, 5143, 5143, 5143, 5143,
+ 3785, 3785, 3785, 3785, 3785, 3785, 3785, 3785, 5143, 5143,
+ 5143, 3785, 3785, 3785, 3785, 3785, 3785, 3785, 3785, 3785,
+ 3785, 3785, 3785, 3785, 3785, 1680, 2493, 2486, 2493, 2493,
+ 1680, 1680, 3515, 1680, 1680, 1680, 2493, 2493, 1681, 1680,
+ 1680, 2830, 3516, 2493, 1680, 1680, 1680, 1680, 3515, 3515,
+ 3515, 3515, 3515, 3515, 3515, 3515, 1680, 1680, 1680, 3515,
+ 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515,
+ 3515, 3515, 3515, 2831, 1680, 599, 854, 854, 854, 854,
+
+ 599, 1038, 855, 599, 856, 599, 1039, 1040, 858, 856,
+ 859, 1041, 861, 1042, 599, 599, 856, 599, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 856, 599, 856, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1038, 599, 1504, 3523, 3792, 3523, 3523,
+ 1504, 2986, 2620, 1504, 2621, 1504, 2984, 3793, 2623, 2621,
+ 2624, 3794, 2626, 3795, 1504, 1504, 2621, 1504, 3796, 3796,
+ 3796, 3796, 3796, 3796, 3796, 3796, 2621, 1504, 2621, 3796,
+ 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796,
+ 3796, 3796, 3796, 2986, 1504, 1726, 3527, 3797, 3527, 3527,
+
+ 1726, 2961, 3798, 1726, 3799, 1726, 2585, 3800, 3801, 3799,
+ 3802, 3803, 3804, 3805, 1726, 1726, 3799, 1726, 3806, 3806,
+ 3806, 3806, 3806, 3806, 3806, 3806, 3799, 1726, 3799, 3806,
+ 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806, 3806,
+ 3806, 3806, 3806, 2961, 1726, 1458, 2183, 2509, 2183, 2183,
+ 1458, 2510, 2511, 1458, 2512, 1458, 2513, 2514, 3807, 2512,
+ 2516, 3808, 2518, 2519, 1458, 1458, 2512, 1458, 2520, 2520,
+ 2520, 2520, 2520, 2520, 2520, 2520, 2512, 1458, 2512, 2520,
+ 2520, 2520, 2520, 2520, 2520, 2520, 2520, 2520, 2520, 2520,
+ 2520, 2520, 2520, 2510, 1458, 1458, 2855, 2573, 2855, 2855,
+
+ 1458, 1458, 3191, 1458, 2855, 1458, 1458, 2852, 2873, 2855,
+ 3201, 2875, 3529, 2855, 1458, 1458, 2855, 1458, 3530, 3530,
+ 3530, 3530, 3191, 3191, 3191, 3191, 2855, 1458, 2855, 3530,
+ 3530, 3530, 3530, 3530, 3191, 3530, 3191, 3191, 3191, 3191,
+ 3191, 3191, 3530, 1458, 1458, 2874, 5143, 3192, 5143, 5143,
+ 5143, 5143, 5143, 3191, 3191, 3191, 3191, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3191, 3191, 3191, 3191, 3191, 5143,
+ 3191, 5143, 5143, 5143, 5143, 5143, 5143, 3191, 1921, 3188,
+ 3531, 3188, 3188, 1921, 1921, 3532, 1921, 3188, 1921, 1921,
+ 3184, 3533, 3188, 3534, 3809, 3535, 3188, 1921, 1921, 3188,
+
+ 1921, 3532, 3532, 3532, 3532, 3532, 3532, 3532, 3532, 3188,
+ 1921, 3188, 3532, 3532, 3532, 3532, 3532, 3532, 3532, 3532,
+ 3532, 3532, 3532, 3532, 3532, 3532, 1921, 1921, 2872, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2876, 5143,
+ 5143, 5143, 5143, 5143, 2872, 2872, 2872, 2872, 2872, 2872,
+ 2872, 2872, 5143, 5143, 5143, 2872, 2872, 2872, 2872, 2872,
+ 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 3201,
+ 5143, 3202, 5143, 5143, 5143, 5143, 5143, 3203, 3203, 3203,
+ 3203, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3203, 3203,
+ 3203, 3203, 3203, 5143, 3203, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 3203, 2228, 3617, 3568, 3617, 3617, 2228, 2228, 3810,
+ 2228, 3811, 2228, 2228, 3577, 3812, 3811, 3813, 3814, 3815,
+ 3253, 2228, 2228, 3811, 2228, 3810, 3810, 3810, 3810, 3810,
+ 3810, 3810, 3810, 3811, 2228, 3811, 3810, 3810, 3810, 3810,
+ 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810,
+ 2228, 2228, 2228, 3541, 3816, 3541, 3541, 2228, 3817, 3810,
+ 2228, 3811, 2228, 3818, 3819, 3812, 3811, 3813, 3820, 3815,
+ 3821, 2228, 2228, 3811, 2228, 3822, 3822, 3822, 3822, 3822,
+ 3822, 3822, 3822, 3811, 2228, 3811, 3822, 3822, 3822, 3822,
+ 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822,
+
+ 3817, 2228, 512, 3542, 2960, 3542, 3542, 512, 1034, 1977,
+ 512, 1978, 512, 847, 3823, 1980, 1978, 1981, 3824, 1983,
+ 3825, 512, 512, 1978, 512, 3826, 3826, 3826, 3826, 3826,
+ 3826, 3826, 3826, 1978, 512, 1978, 3826, 3826, 3826, 3826,
+ 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826, 3826,
+ 1034, 512, 1461, 2198, 2532, 2198, 2198, 1461, 2533, 2534,
+ 1461, 2535, 1461, 2536, 2537, 3827, 2535, 2539, 3828, 2541,
+ 2542, 1461, 1461, 2535, 1461, 2543, 2543, 2543, 2543, 2543,
+ 2543, 2543, 2543, 2535, 1461, 2535, 2543, 2543, 2543, 2543,
+ 2543, 2543, 2543, 2543, 2543, 2543, 2543, 2543, 2543, 2543,
+
+ 2533, 1461, 1461, 2592, 2897, 2592, 2592, 1461, 1461, 3219,
+ 1461, 2592, 1461, 1461, 2590, 2899, 2592, 3229, 2901, 3546,
+ 2592, 1461, 1461, 2592, 1461, 3547, 3547, 3547, 3547, 3219,
+ 3219, 3219, 3219, 2592, 1461, 2592, 3547, 3547, 3547, 3547,
+ 3547, 3219, 3547, 3219, 3219, 3219, 3219, 3219, 3219, 3547,
+ 1461, 1461, 599, 2897, 2897, 2897, 2897, 599, 1038, 1061,
+ 599, 862, 599, 1039, 1040, 1062, 862, 1063, 3217, 1065,
+ 1042, 599, 599, 862, 599, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 862, 599, 862, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
+
+ 1038, 599, 2900, 5143, 3220, 5143, 5143, 5143, 5143, 5143,
+ 3219, 3219, 3219, 3219, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3219, 3219, 3219, 3219, 3219, 5143, 3219, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3219, 1937, 3215, 3548, 3215, 3215,
+ 1937, 1937, 3549, 1937, 3215, 1937, 1937, 3211, 3550, 3215,
+ 3551, 3829, 3552, 3215, 1937, 1937, 3215, 1937, 3549, 3549,
+ 3549, 3549, 3549, 3549, 3549, 3549, 3215, 1937, 3215, 3549,
+ 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549,
+ 3549, 3549, 3549, 1937, 1937, 2898, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 2902, 5143, 5143, 5143, 5143,
+
+ 5143, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 5143,
+ 5143, 5143, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898,
+ 2898, 2898, 2898, 2898, 2898, 2898, 3229, 5143, 3230, 5143,
+ 5143, 5143, 5143, 5143, 3231, 3231, 3231, 3231, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3231, 3231, 3231, 3231, 3231,
+ 5143, 3231, 5143, 5143, 5143, 5143, 5143, 5143, 3231, 599,
+ 1039, 1039, 1039, 1039, 599, 1038, 599, 599, 599, 599,
+ 1039, 1039, 600, 599, 599, 1046, 599, 1038, 599, 599,
+ 599, 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 599, 599, 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 599, 641,
+ 3557, 3832, 3557, 3557, 641, 1598, 1996, 641, 1997, 641,
+ 1596, 3833, 1998, 1997, 1999, 3834, 2001, 3835, 641, 641,
+ 1997, 641, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836,
+ 1997, 641, 1997, 3836, 3836, 3836, 3836, 3836, 3836, 3836,
+ 3836, 3836, 3836, 3836, 3836, 3836, 3836, 1598, 641, 248,
+ 1460, 1460, 1460, 1460, 248, 377, 603, 248, 604, 248,
+ 336, 1701, 606, 604, 607, 1702, 609, 1703, 248, 248,
+ 604, 248, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 604, 248, 604, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 377, 248, 876,
+ 1483, 1460, 1483, 1483, 876, 1728, 876, 876, 876, 876,
+ 1483, 1483, 877, 876, 876, 1729, 876, 1728, 876, 876,
+ 876, 876, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
+ 876, 876, 876, 1728, 1728, 1728, 1728, 1728, 1728, 1728,
+ 1728, 1728, 1728, 1728, 1728, 1728, 1728, 1728, 876, 876,
+ 1773, 2025, 1773, 1773, 876, 876, 2026, 876, 1773, 876,
+ 876, 1768, 2027, 1773, 2028, 2029, 2030, 1773, 876, 876,
+ 1773, 876, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
+ 1773, 876, 1773, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
+
+ 2026, 2026, 2026, 2026, 2026, 2026, 2026, 876, 876, 876,
+ 1524, 1765, 1524, 1524, 876, 876, 2008, 876, 1767, 876,
+ 876, 1768, 1769, 1767, 1770, 1771, 2009, 1773, 876, 876,
+ 1767, 876, 2008, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
+ 1767, 876, 1767, 2008, 2008, 2008, 2008, 2008, 2008, 2008,
+ 2008, 2008, 2008, 2008, 2008, 2008, 2008, 876, 876, 1762,
+ 3842, 3843, 3842, 3842, 1762, 1762, 3844, 1762, 3845, 1762,
+ 1762, 3846, 3847, 3845, 3848, 3849, 3850, 3851, 1762, 1762,
+ 3845, 1762, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844,
+ 3845, 1762, 3845, 3844, 3844, 3844, 3844, 3844, 3844, 3844,
+
+ 3844, 3844, 3844, 3844, 3844, 3844, 3844, 1762, 1762, 1234,
+ 1955, 2203, 1955, 1955, 1234, 2204, 2205, 1234, 2206, 1234,
+ 2207, 2208, 3852, 2206, 2210, 3853, 2212, 2213, 1234, 1234,
+ 2206, 1234, 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2214,
+ 2206, 1234, 2206, 2214, 2214, 2214, 2214, 2214, 2214, 2214,
+ 2214, 2214, 2214, 2214, 2214, 2214, 2214, 2204, 1234, 255,
+ 1478, 1478, 1478, 1478, 255, 469, 628, 255, 629, 255,
+ 468, 1590, 630, 629, 631, 1721, 633, 1592, 255, 255,
+ 629, 255, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 629, 255, 629, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 469, 255, 946,
+ 2035, 1478, 2035, 2035, 946, 2036, 946, 946, 946, 946,
+ 2035, 2035, 947, 946, 946, 2037, 946, 2036, 946, 946,
+ 946, 946, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036,
+ 946, 946, 946, 2036, 2036, 2036, 2036, 2036, 2036, 2036,
+ 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 946, 946,
+ 1547, 1792, 1547, 1547, 946, 946, 1793, 946, 1547, 946,
+ 946, 1780, 1794, 1547, 1795, 1796, 1797, 1547, 946, 946,
+ 1547, 946, 1793, 1793, 1793, 1793, 1793, 1793, 1793, 1793,
+ 1547, 946, 1547, 1793, 1793, 1793, 1793, 1793, 1793, 1793,
+
+ 1793, 1793, 1793, 1793, 1793, 1793, 1793, 946, 946, 946,
+ 1537, 1777, 1537, 1537, 946, 946, 2033, 946, 1779, 946,
+ 946, 1780, 1781, 1779, 1782, 1783, 2034, 1547, 946, 946,
+ 1779, 946, 2033, 2033, 2033, 2033, 2033, 2033, 2033, 2033,
+ 1779, 946, 1779, 2033, 2033, 2033, 2033, 2033, 2033, 2033,
+ 2033, 2033, 2033, 2033, 2033, 2033, 2033, 946, 946, 599,
+ 712, 712, 712, 712, 599, 599, 855, 599, 856, 599,
+ 599, 857, 1956, 856, 859, 3854, 861, 862, 599, 599,
+ 856, 599, 855, 855, 855, 855, 855, 855, 855, 855,
+ 856, 599, 856, 855, 855, 855, 855, 855, 855, 855,
+
+ 855, 855, 855, 855, 855, 855, 855, 599, 599, 2228,
+ 3253, 3575, 3253, 3253, 2228, 2228, 3857, 2228, 3253, 2228,
+ 2228, 3577, 3578, 3253, 3579, 3580, 3858, 3253, 2228, 2228,
+ 3253, 2228, 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3857,
+ 3253, 2228, 3253, 3857, 3857, 3857, 3857, 3857, 3857, 3857,
+ 3857, 3857, 3857, 3857, 3857, 3857, 3857, 2228, 2228, 2228,
+ 3818, 3832, 3818, 3818, 2228, 3817, 2228, 2228, 2228, 2228,
+ 3818, 3818, 2229, 2228, 2228, 3859, 2228, 3817, 2228, 2228,
+ 2228, 2228, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817,
+ 2228, 2228, 2228, 3817, 3817, 3817, 3817, 3817, 3817, 3817,
+
+ 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 2228, 2571,
+ 3860, 3861, 3860, 3860, 2571, 2571, 3862, 2571, 3860, 2571,
+ 2571, 3863, 3864, 3860, 3865, 3866, 3867, 3860, 2571, 2571,
+ 3860, 2571, 3862, 3862, 3862, 3862, 3862, 3862, 3862, 3862,
+ 3860, 2571, 3860, 3862, 3862, 3862, 3862, 3862, 3862, 3862,
+ 3862, 3862, 3862, 3862, 3862, 3862, 3862, 2571, 2571, 3576,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3581,
+ 5143, 5143, 5143, 5143, 5143, 3576, 3576, 3576, 3576, 3576,
+ 3576, 3576, 3576, 5143, 5143, 5143, 3576, 3576, 3576, 3576,
+ 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576,
+
+ 3868, 5143, 3869, 5143, 5143, 5143, 5143, 5143, 3870, 3870,
+ 3870, 3870, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3870,
+ 3870, 3870, 3870, 3870, 5143, 3870, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3870, 1080, 3582, 3871, 3582, 3582, 1080, 1972,
+ 2066, 1080, 2067, 1080, 1732, 3872, 2069, 2067, 2070, 3873,
+ 2072, 3874, 1080, 1080, 2067, 1080, 3875, 3875, 3875, 3875,
+ 3875, 3875, 3875, 3875, 2067, 1080, 2067, 3875, 3875, 3875,
+ 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875, 3875,
+ 3875, 1972, 1080, 1479, 2230, 2573, 2230, 2230, 1479, 2574,
+ 2575, 1479, 2576, 1479, 2577, 2578, 3876, 2576, 2580, 3877,
+
+ 2582, 2583, 1479, 1479, 2576, 1479, 2584, 2584, 2584, 2584,
+ 2584, 2584, 2584, 2584, 2576, 1479, 2576, 2584, 2584, 2584,
+ 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584,
+ 2584, 2574, 1479, 1479, 2703, 2954, 2703, 2703, 1479, 1479,
+ 3267, 1479, 2703, 1479, 1479, 2701, 2956, 2703, 3277, 2958,
+ 3584, 2703, 1479, 1479, 2703, 1479, 3585, 3585, 3585, 3585,
+ 3267, 3267, 3267, 3267, 2703, 1479, 2703, 3585, 3585, 3585,
+ 3585, 3585, 3267, 3585, 3267, 3267, 3267, 3267, 3267, 3267,
+ 3585, 1479, 1479, 599, 862, 862, 862, 862, 599, 599,
+ 1061, 599, 862, 599, 599, 857, 1062, 862, 1063, 1064,
+
+ 1065, 862, 599, 599, 862, 599, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 862, 599, 862, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 599, 599, 2957, 5143, 3268, 5143, 5143, 5143, 5143,
+ 5143, 3267, 3267, 3267, 3267, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3267, 3267, 3267, 3267, 3267, 5143, 3267, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3267, 1960, 3265, 3586, 3265,
+ 3265, 1960, 1960, 3587, 1960, 3265, 1960, 1960, 3261, 3588,
+ 3265, 3589, 3878, 3590, 3265, 1960, 1960, 3265, 1960, 3587,
+ 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3265, 1960, 3265,
+
+ 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587,
+ 3587, 3587, 3587, 3587, 1960, 1960, 2955, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 2959, 5143, 5143, 5143,
+ 5143, 5143, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+ 5143, 5143, 5143, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2955, 2955, 3277, 5143, 3278,
+ 5143, 5143, 5143, 5143, 5143, 3279, 3279, 3279, 3279, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3279, 3279, 3279, 3279,
+ 3279, 5143, 3279, 5143, 5143, 5143, 5143, 5143, 5143, 3279,
+ 550, 3594, 3575, 3594, 3594, 550, 1390, 2076, 550, 2077,
+
+ 550, 1389, 3728, 2078, 2077, 2079, 3879, 2081, 3730, 550,
+ 550, 2077, 550, 3880, 3880, 3880, 3880, 3880, 3880, 3880,
+ 3880, 2077, 550, 2077, 3880, 3880, 3880, 3880, 3880, 3880,
+ 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 1390, 550,
+ 517, 1262, 1263, 1262, 1262, 517, 1264, 517, 517, 517,
+ 517, 1262, 1262, 518, 517, 517, 1265, 517, 1264, 517,
+ 517, 517, 517, 1264, 1264, 1264, 1264, 1264, 1264, 1264,
+ 1264, 517, 517, 517, 1264, 1264, 1264, 1264, 1264, 1264,
+ 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 517,
+ 517, 1090, 1281, 1090, 1090, 517, 517, 1282, 517, 1090,
+
+ 517, 517, 1085, 1283, 1090, 1284, 1285, 1286, 1090, 517,
+ 517, 1090, 517, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 1090, 517, 1090, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 517, 517,
+ 517, 890, 1082, 890, 890, 517, 517, 1260, 517, 1084,
+ 517, 517, 1085, 1086, 1084, 1087, 1088, 1261, 1090, 517,
+ 517, 1084, 517, 1260, 1260, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1084, 517, 1084, 1260, 1260, 1260, 1260, 1260, 1260,
+ 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 517, 517,
+ 599, 854, 854, 854, 854, 599, 1038, 855, 599, 856,
+
+ 599, 1039, 1040, 858, 856, 859, 1041, 861, 1042, 599,
+ 599, 856, 599, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 856, 599, 856, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1038, 599,
+ 1726, 3605, 3560, 3605, 3605, 1726, 1726, 3798, 1726, 3799,
+ 1726, 1726, 3883, 3801, 3799, 3802, 3884, 3804, 3885, 1726,
+ 1726, 3799, 1726, 3798, 3798, 3798, 3798, 3798, 3798, 3798,
+ 3798, 3799, 1726, 3799, 3798, 3798, 3798, 3798, 3798, 3798,
+ 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 1726, 1726,
+ 1504, 2262, 2619, 2262, 2262, 1504, 1504, 2620, 1504, 2621,
+
+ 1504, 1504, 2622, 3886, 2621, 2624, 3887, 2626, 2627, 1504,
+ 1504, 2621, 1504, 2620, 2620, 2620, 2620, 2620, 2620, 2620,
+ 2620, 2621, 1504, 2621, 2620, 2620, 2620, 2620, 2620, 2620,
+ 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 1504, 1504,
+ 1504, 2627, 3001, 2627, 2627, 1504, 1504, 3305, 1504, 2627,
+ 1504, 1504, 2622, 3003, 2627, 3315, 3005, 3607, 2627, 1504,
+ 1504, 2627, 1504, 3608, 3608, 3608, 3608, 3305, 3305, 3305,
+ 3305, 2627, 1504, 2627, 3608, 3608, 3608, 3608, 3608, 3305,
+ 3608, 3305, 3305, 3305, 3305, 3305, 3305, 3608, 1504, 1504,
+ 213, 1082, 1082, 1082, 1082, 213, 382, 337, 213, 338,
+
+ 213, 381, 1256, 340, 338, 341, 1257, 343, 1258, 213,
+ 213, 338, 213, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 338, 213, 338, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 382, 213,
+ 3004, 5143, 3306, 5143, 5143, 5143, 5143, 5143, 3305, 3305,
+ 3305, 3305, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3305,
+ 3305, 3305, 3305, 3305, 5143, 3305, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3305, 1987, 3303, 3609, 3303, 3303, 1987, 1987,
+ 3610, 1987, 3303, 1987, 1987, 3299, 3611, 3303, 3612, 3888,
+ 3613, 3303, 1987, 1987, 3303, 1987, 3610, 3610, 3610, 3610,
+
+ 3610, 3610, 3610, 3610, 3303, 1987, 3303, 3610, 3610, 3610,
+ 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610,
+ 3610, 1987, 1987, 3002, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3006, 5143, 5143, 5143, 5143, 5143, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 5143, 5143, 5143,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3315, 5143, 3316, 5143, 5143, 5143,
+ 5143, 5143, 3317, 3317, 3317, 3317, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3317, 3317, 3317, 3317, 3317, 5143, 3317,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3317, 2228, 3617, 3568,
+
+ 3617, 3617, 2228, 2228, 3810, 2228, 3811, 2228, 2228, 3577,
+ 3812, 3811, 3813, 3814, 3815, 3253, 2228, 2228, 3811, 2228,
+ 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3811, 2228,
+ 3811, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810,
+ 3810, 3810, 3810, 3810, 3810, 2228, 2228, 3016, 3889, 3889,
+ 3889, 3889, 3016, 3016, 3890, 3016, 3889, 3016, 3016, 3891,
+ 3892, 3889, 3893, 3894, 3895, 3889, 3016, 3016, 3889, 3016,
+ 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3889, 3016,
+ 3889, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890,
+ 3890, 3890, 3890, 3890, 3890, 3016, 3016, 215, 626, 755,
+
+ 626, 626, 215, 215, 916, 215, 626, 215, 215, 622,
+ 626, 626, 757, 758, 917, 626, 215, 215, 626, 215,
+ 916, 916, 916, 916, 916, 916, 916, 916, 626, 215,
+ 626, 916, 916, 916, 916, 916, 916, 916, 916, 916,
+ 916, 916, 916, 916, 916, 215, 215, 213, 1281, 1281,
+ 1281, 1281, 213, 382, 398, 213, 344, 213, 381, 1256,
+ 399, 344, 400, 1506, 402, 1258, 213, 213, 344, 213,
+ 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 344, 213,
+ 344, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
+ 1507, 1507, 1507, 1507, 1507, 382, 213, 1508, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1509, 5143, 5143,
+ 5143, 5143, 5143, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+ 1508, 5143, 5143, 5143, 1508, 1508, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1756, 2651,
+ 3898, 2651, 2651, 1756, 1756, 3899, 1756, 2651, 1756, 1756,
+ 2646, 3900, 2651, 3901, 3902, 3903, 2651, 1756, 1756, 2651,
+ 1756, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 2651,
+ 1756, 2651, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899,
+ 3899, 3899, 3899, 3899, 3899, 3899, 1756, 1756, 1518, 5143,
+ 1519, 5143, 5143, 5143, 5143, 5143, 1520, 1520, 1520, 1520,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1520, 1520, 1520,
+ 1520, 1520, 5143, 1520, 5143, 5143, 5143, 5143, 5143, 5143,
+ 1520, 1760, 2668, 3001, 2668, 2668, 1760, 1760, 3341, 1760,
+ 3025, 1760, 1760, 3026, 3027, 3025, 3356, 3029, 3632, 3031,
+ 1760, 1760, 3025, 1760, 3633, 3633, 3633, 3633, 3341, 3341,
+ 3341, 3341, 3025, 1760, 3025, 3633, 3633, 3633, 3633, 3633,
+ 3341, 3633, 3341, 3341, 3341, 3341, 3341, 3341, 3633, 1760,
+ 1760, 3024, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3028,
+ 5143, 3030, 5143, 5143, 5143, 5143, 5143, 3024, 3024, 3024,
+ 3024, 3024, 3024, 3024, 3024, 5143, 5143, 5143, 3024, 3024,
+
+ 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
+ 3024, 3024, 3028, 5143, 3342, 5143, 5143, 5143, 5143, 5143,
+ 3341, 3341, 3341, 3341, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3341, 3341, 3341, 3341, 3341, 5143, 3341, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3341, 1760, 3343, 3344, 3343, 3343,
+ 1760, 3345, 1760, 1760, 1760, 1760, 3343, 3343, 1761, 1760,
+ 1760, 3346, 1760, 3345, 1760, 1760, 1760, 1760, 3345, 3345,
+ 3345, 3345, 3345, 3345, 3345, 3345, 1760, 1760, 1760, 3345,
+ 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345,
+ 3345, 3345, 3345, 3345, 1760, 2286, 3636, 3609, 3636, 3636,
+
+ 2286, 2286, 3637, 2286, 3638, 2286, 2286, 3639, 3640, 3638,
+ 3641, 3910, 3642, 3643, 2286, 2286, 3638, 2286, 3637, 3637,
+ 3637, 3637, 3637, 3637, 3637, 3637, 3638, 2286, 3638, 3637,
+ 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637,
+ 3637, 3637, 3637, 2286, 2286, 3356, 5143, 3357, 5143, 5143,
+ 5143, 5143, 5143, 3358, 3358, 3358, 3358, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3358, 3358, 3358, 3358, 3358, 5143,
+ 3358, 5143, 5143, 5143, 5143, 5143, 5143, 3358, 1760, 3031,
+ 3359, 3031, 3031, 1760, 1760, 3360, 1760, 3031, 1760, 1760,
+ 3026, 3361, 3031, 3362, 3363, 3364, 3031, 1760, 1760, 3031,
+
+ 1760, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3031,
+ 1760, 3031, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 3360, 3360, 1760, 1760, 3646, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3647, 5143,
+ 5143, 5143, 5143, 5143, 3646, 3646, 3646, 3646, 3646, 3646,
+ 3646, 3646, 5143, 5143, 5143, 3646, 3646, 3646, 3646, 3646,
+ 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3656,
+ 5143, 3911, 5143, 5143, 5143, 5143, 5143, 3912, 3912, 3912,
+ 3912, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3912, 3912,
+ 3912, 3912, 3912, 5143, 3912, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 3912, 2286, 3643, 3913, 3643, 3643, 2286, 2286, 3914,
+ 2286, 3643, 2286, 2286, 3639, 3915, 3643, 3916, 3363, 3917,
+ 3643, 2286, 2286, 3643, 2286, 3914, 3914, 3914, 3914, 3914,
+ 3914, 3914, 3914, 3643, 2286, 3643, 3914, 3914, 3914, 3914,
+ 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914,
+ 2286, 2286, 1291, 2006, 1962, 2006, 2006, 1291, 1291, 2288,
+ 1291, 2289, 1291, 1291, 2290, 3918, 2289, 2291, 3919, 2293,
+ 2109, 1291, 1291, 2289, 1291, 2288, 2288, 2288, 2288, 2288,
+ 2288, 2288, 2288, 2289, 1291, 2289, 2288, 2288, 2288, 2288,
+ 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288,
+
+ 1291, 1291, 3656, 5143, 3657, 5143, 5143, 5143, 5143, 5143,
+ 3658, 3658, 3658, 3658, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3658, 3658, 3658, 3658, 3658, 5143, 3658, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3658, 3018, 3659, 3923, 3659, 3659,
+ 3018, 3661, 3664, 3018, 3373, 3018, 3372, 3924, 3666, 3373,
+ 3667, 3925, 3669, 3926, 3018, 3018, 3373, 3018, 3927, 3927,
+ 3927, 3927, 3927, 3927, 3927, 3927, 3373, 3018, 3373, 3927,
+ 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927,
+ 3927, 3927, 3927, 3661, 3018, 784, 3660, 3660, 3660, 3660,
+ 784, 1359, 2263, 784, 2264, 784, 1360, 1361, 2265, 2264,
+
+ 2266, 3928, 2268, 1363, 784, 784, 2264, 784, 3929, 3929,
+ 3929, 3929, 3929, 3929, 3929, 3929, 2264, 784, 2264, 3929,
+ 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
+ 3929, 3929, 3929, 1359, 784, 784, 1994, 1994, 1994, 1994,
+ 784, 784, 2263, 784, 2264, 784, 784, 1149, 2265, 2264,
+ 2266, 2267, 2268, 961, 784, 784, 2264, 784, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2264, 784, 2264, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 784, 784, 3018, 3373, 3663, 3373, 3373,
+ 3018, 3018, 3932, 3018, 3373, 3018, 3018, 3665, 3666, 3373,
+
+ 3667, 3668, 3933, 3373, 3018, 3018, 3373, 3018, 3932, 3932,
+ 3932, 3932, 3932, 3932, 3932, 3932, 3373, 3018, 3373, 3932,
+ 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932,
+ 3932, 3932, 3932, 3018, 3018, 3018, 3372, 3660, 3372, 3372,
+ 3018, 3661, 3018, 3018, 3018, 3018, 3372, 3372, 3019, 3018,
+ 3018, 3662, 3018, 3661, 3018, 3018, 3018, 3018, 3661, 3661,
+ 3661, 3661, 3661, 3661, 3661, 3661, 3018, 3018, 3018, 3661,
+ 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661,
+ 3661, 3661, 3661, 3661, 3018, 3323, 3934, 3935, 3934, 3934,
+ 3323, 3323, 3936, 3323, 3934, 3323, 3323, 3937, 3938, 3934,
+
+ 3939, 3940, 3941, 3934, 3323, 3323, 3934, 3323, 3936, 3936,
+ 3936, 3936, 3936, 3936, 3936, 3936, 3934, 3323, 3934, 3936,
+ 3936, 3936, 3936, 3936, 3936, 3936, 3936, 3936, 3936, 3936,
+ 3936, 3936, 3936, 3323, 3323, 3664, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3669, 5143, 5143, 5143, 5143,
+ 5143, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 5143,
+ 5143, 5143, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664,
+ 3664, 3664, 3664, 3664, 3664, 3664, 3944, 5143, 3945, 5143,
+ 5143, 5143, 5143, 5143, 3946, 3946, 3946, 3946, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3946, 3946, 3946, 3946, 3946,
+
+ 5143, 3946, 5143, 5143, 5143, 5143, 5143, 5143, 3946, 452,
+ 911, 1121, 911, 911, 452, 452, 1307, 452, 911, 452,
+ 452, 906, 1123, 911, 1124, 1125, 1308, 911, 452, 452,
+ 911, 452, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307,
+ 911, 452, 911, 1307, 1307, 1307, 1307, 1307, 1307, 1307,
+ 1307, 1307, 1307, 1307, 1307, 1307, 1307, 452, 452, 617,
+ 1304, 1528, 1304, 1304, 617, 617, 1529, 617, 1304, 617,
+ 617, 1300, 1530, 1304, 1531, 3378, 1532, 1304, 617, 617,
+ 1304, 617, 1529, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
+ 1304, 617, 1304, 1529, 1529, 1529, 1529, 1529, 1529, 1529,
+
+ 1529, 1529, 1529, 1529, 1529, 1529, 1529, 617, 617, 1122,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1126,
+ 5143, 5143, 5143, 5143, 5143, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 5143, 5143, 5143, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
+ 946, 1537, 1777, 1537, 1537, 946, 946, 1778, 946, 1779,
+ 946, 946, 1780, 3947, 1779, 1782, 3948, 1784, 1547, 946,
+ 946, 1779, 946, 1778, 1778, 1778, 1778, 1778, 1778, 1778,
+ 1778, 1779, 946, 1779, 1778, 1778, 1778, 1778, 1778, 1778,
+ 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 946, 946,
+
+ 1317, 5143, 1318, 5143, 5143, 5143, 5143, 5143, 1319, 1319,
+ 1319, 1319, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1319,
+ 1319, 1319, 1319, 1319, 5143, 1319, 5143, 5143, 5143, 5143,
+ 5143, 5143, 1319, 1535, 2335, 2719, 2335, 2335, 1535, 1535,
+ 3670, 1535, 2335, 1535, 1535, 2330, 3671, 2335, 3672, 3673,
+ 3674, 2335, 1535, 1535, 2335, 1535, 3670, 3670, 3670, 3670,
+ 3670, 3670, 3670, 3670, 2335, 1535, 2335, 3670, 3670, 3670,
+ 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
+ 3670, 1535, 1535, 536, 1338, 1281, 1338, 1338, 536, 1339,
+ 536, 536, 536, 536, 1338, 1338, 537, 536, 536, 1340,
+
+ 536, 1339, 536, 536, 536, 536, 1339, 1339, 1339, 1339,
+ 1339, 1339, 1339, 1339, 536, 536, 536, 1339, 1339, 1339,
+ 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339, 1339,
+ 1339, 1339, 536, 536, 1142, 1353, 1142, 1142, 536, 536,
+ 1354, 536, 1142, 536, 536, 1137, 1355, 1142, 1356, 1357,
+ 1358, 1142, 536, 536, 1142, 536, 1354, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1354, 1142, 536, 1142, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+ 1354, 536, 536, 536, 948, 1121, 948, 948, 536, 536,
+ 1336, 536, 1136, 536, 536, 1137, 1138, 1136, 1139, 1140,
+
+ 1337, 1142, 536, 536, 1136, 536, 1336, 1336, 1336, 1336,
+ 1336, 1336, 1336, 1336, 1136, 536, 1136, 1336, 1336, 1336,
+ 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336,
+ 1336, 536, 536, 213, 344, 344, 344, 344, 213, 213,
+ 398, 213, 344, 213, 213, 339, 399, 344, 400, 401,
+ 402, 344, 213, 213, 344, 213, 398, 398, 398, 398,
+ 398, 398, 398, 398, 344, 213, 344, 398, 398, 398,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 213, 213, 1562, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 1563, 5143, 5143, 5143, 5143, 5143, 1562,
+
+ 1562, 1562, 1562, 1562, 1562, 1562, 1562, 5143, 5143, 5143,
+ 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562,
+ 1562, 1562, 1562, 1562, 1812, 2727, 3949, 2727, 2727, 1812,
+ 1812, 3950, 1812, 2727, 1812, 1812, 2722, 3951, 2727, 3952,
+ 3953, 3954, 2727, 1812, 1812, 2727, 1812, 3950, 3950, 3950,
+ 3950, 3950, 3950, 3950, 3950, 2727, 1812, 2727, 3950, 3950,
+ 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950,
+ 3950, 3950, 1812, 1812, 1572, 5143, 1573, 5143, 5143, 5143,
+ 5143, 5143, 1574, 1574, 1574, 1574, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 1574, 1574, 1574, 1574, 1574, 5143, 1574,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 1574, 1815, 3071, 2753,
+ 3071, 3071, 1815, 1815, 3394, 1815, 3071, 1815, 1815, 3395,
+ 3074, 3071, 3409, 3396, 3689, 3071, 1815, 1815, 3071, 1815,
+ 3690, 3690, 3690, 3690, 3394, 3394, 3394, 3394, 3071, 1815,
+ 3071, 3690, 3690, 3690, 3690, 3690, 3394, 3690, 3394, 3394,
+ 3394, 3394, 3394, 3394, 3690, 1815, 1815, 3070, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3075, 5143, 3077, 5143, 5143,
+ 5143, 5143, 5143, 3070, 3070, 3070, 3070, 3070, 3070, 3070,
+ 3070, 5143, 5143, 5143, 3070, 3070, 3070, 3070, 3070, 3070,
+ 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 784, 1147,
+
+ 1147, 1147, 1147, 784, 1359, 1148, 784, 961, 784, 1360,
+ 1361, 1150, 961, 1151, 1362, 1153, 1363, 784, 784, 961,
+ 784, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 961,
+ 784, 961, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1359, 784, 3075, 5143,
+ 3397, 5143, 5143, 5143, 5143, 5143, 3394, 3394, 3394, 3394,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3394, 3394, 3394,
+ 3394, 3394, 5143, 3394, 5143, 5143, 5143, 5143, 5143, 5143,
+ 3394, 1815, 3072, 3082, 3072, 3072, 1815, 3069, 1815, 1815,
+ 1815, 1815, 3072, 3072, 1816, 1815, 1815, 3398, 1815, 3069,
+
+ 1815, 1815, 1815, 1815, 3069, 3069, 3069, 3069, 3069, 3069,
+ 3069, 3069, 1815, 1815, 1815, 3069, 3069, 3069, 3069, 3069,
+ 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069,
+ 1815, 2393, 3693, 3694, 3693, 3693, 2393, 2393, 3695, 2393,
+ 3693, 2393, 2393, 3696, 3697, 3693, 3698, 3965, 3699, 3693,
+ 2393, 2393, 3693, 2393, 3695, 3695, 3695, 3695, 3695, 3695,
+ 3695, 3695, 3693, 2393, 3693, 3695, 3695, 3695, 3695, 3695,
+ 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 2393,
+ 2393, 3409, 5143, 3410, 5143, 5143, 5143, 5143, 5143, 3411,
+ 3411, 3411, 3411, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 3411, 3411, 3411, 3411, 3411, 5143, 3411, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3411, 1841, 2767, 3112, 2767, 2767, 1841,
+ 1841, 3113, 1841, 2767, 1841, 1841, 3114, 3115, 2767, 3116,
+ 3117, 3118, 2767, 1841, 1841, 2767, 1841, 3113, 3113, 3113,
+ 3113, 3113, 3113, 3113, 3113, 2767, 1841, 2767, 3113, 3113,
+ 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113,
+ 3113, 3113, 1841, 1841, 1818, 2764, 1147, 2764, 2764, 1818,
+ 1818, 3412, 1818, 2764, 1818, 1818, 3110, 3087, 2764, 3425,
+ 3111, 3702, 2764, 1818, 1818, 2764, 1818, 3703, 3703, 3703,
+ 3703, 3412, 3412, 3412, 3412, 2764, 1818, 2764, 3703, 3703,
+
+ 3703, 3703, 3703, 3412, 3703, 3412, 3412, 3412, 3412, 3412,
+ 3412, 3703, 1818, 1818, 3084, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3088, 5143, 3090, 5143, 5143, 5143, 5143, 5143,
+ 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 5143, 5143,
+ 5143, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
+ 3084, 3084, 3084, 3084, 3084, 3088, 5143, 3413, 5143, 5143,
+ 5143, 5143, 5143, 3412, 3412, 3412, 3412, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3412, 3412, 3412, 3412, 3412, 5143,
+ 3412, 5143, 5143, 5143, 5143, 5143, 5143, 3412, 1818, 3085,
+ 3414, 3085, 3085, 1818, 3083, 1818, 1818, 1818, 1818, 3085,
+
+ 3085, 1819, 1818, 1818, 3415, 1818, 3083, 1818, 1818, 1818,
+ 1818, 3083, 3083, 3083, 3083, 3083, 3083, 3083, 3083, 1818,
+ 1818, 1818, 3083, 3083, 3083, 3083, 3083, 3083, 3083, 3083,
+ 3083, 3083, 3083, 3083, 3083, 3083, 3083, 1818, 2407, 3706,
+ 2394, 3706, 3706, 2407, 2407, 3707, 2407, 3706, 2407, 2407,
+ 3708, 3709, 3706, 3710, 3967, 3711, 3706, 2407, 2407, 3706,
+ 2407, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3706,
+ 2407, 3706, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707,
+ 3707, 3707, 3707, 3707, 3707, 3707, 2407, 2407, 3425, 5143,
+ 3426, 5143, 5143, 5143, 5143, 5143, 3427, 3427, 3427, 3427,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3427, 3427, 3427,
+ 3427, 3427, 5143, 3427, 5143, 5143, 5143, 5143, 5143, 5143,
+ 3427, 1080, 3713, 3968, 3713, 3713, 1080, 1972, 2114, 1080,
+ 1846, 1080, 1732, 3872, 2115, 1846, 2116, 3969, 2118, 3874,
+ 1080, 1080, 1846, 1080, 3970, 3970, 3970, 3970, 3970, 3970,
+ 3970, 3970, 1846, 1080, 1846, 3970, 3970, 3970, 3970, 3970,
+ 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 1972,
+ 1080, 1588, 2421, 2753, 2421, 2421, 1588, 2754, 2755, 1588,
+ 2430, 1588, 2756, 2757, 3971, 2430, 2759, 3972, 2761, 2762,
+ 1588, 1588, 2430, 1588, 2763, 2763, 2763, 2763, 2763, 2763,
+
+ 2763, 2763, 2430, 1588, 2430, 2763, 2763, 2763, 2763, 2763,
+ 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2754,
+ 1588, 641, 3715, 3448, 3715, 3715, 641, 1598, 1381, 641,
+ 1154, 641, 1596, 3833, 1383, 1154, 1384, 3973, 1386, 3835,
+ 641, 641, 1154, 641, 3974, 3974, 3974, 3974, 3974, 3974,
+ 3974, 3974, 1154, 641, 1154, 3974, 3974, 3974, 3974, 3974,
+ 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 1598,
+ 641, 3445, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3459,
+ 5143, 3716, 5143, 5143, 5143, 5143, 5143, 3717, 3717, 3717,
+ 3717, 3445, 3445, 3445, 3445, 5143, 5143, 5143, 3717, 3717,
+
+ 3717, 3717, 3717, 3445, 3717, 3445, 3445, 3445, 3445, 3445,
+ 3445, 3717, 255, 1380, 1380, 1380, 1380, 255, 469, 403,
+ 255, 345, 255, 468, 1590, 405, 345, 406, 1591, 408,
+ 1592, 255, 255, 345, 255, 1593, 1593, 1593, 1593, 1593,
+ 1593, 1593, 1593, 345, 255, 345, 1593, 1593, 1593, 1593,
+ 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593,
+ 469, 255, 3116, 5143, 3446, 5143, 5143, 5143, 5143, 5143,
+ 3445, 3445, 3445, 3445, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3445, 3445, 3445, 3445, 3445, 5143, 3445, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3445, 1841, 3447, 3448, 3447, 3447,
+
+ 1841, 3449, 1841, 1841, 1841, 1841, 3447, 3447, 1842, 1841,
+ 1841, 3450, 1841, 3449, 1841, 1841, 1841, 1841, 3449, 3449,
+ 3449, 3449, 3449, 3449, 3449, 3449, 1841, 1841, 1841, 3449,
+ 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449,
+ 3449, 3449, 3449, 3449, 1841, 2427, 3720, 3721, 3720, 3720,
+ 2427, 2427, 3722, 2427, 3720, 2427, 2427, 3723, 3724, 3720,
+ 3725, 3979, 3726, 3720, 2427, 2427, 3720, 2427, 3722, 3722,
+ 3722, 3722, 3722, 3722, 3722, 3722, 3720, 2427, 3720, 3722,
+ 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722,
+ 3722, 3722, 3722, 2427, 2427, 3459, 5143, 3460, 5143, 5143,
+
+ 5143, 5143, 5143, 3461, 3461, 3461, 3461, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3461, 3461, 3461, 3461, 3461, 5143,
+ 3461, 5143, 5143, 5143, 5143, 5143, 5143, 3461, 550, 1389,
+ 1380, 1389, 1389, 550, 1390, 550, 550, 550, 550, 1389,
+ 1389, 551, 550, 550, 1391, 550, 1390, 550, 550, 550,
+ 550, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 550,
+ 550, 550, 1390, 1390, 1390, 1390, 1390, 1390, 1390, 1390,
+ 1390, 1390, 1390, 1390, 1390, 1390, 1390, 550, 550, 967,
+ 1155, 967, 967, 550, 550, 1156, 550, 967, 550, 550,
+ 1157, 1158, 967, 1159, 1160, 1161, 967, 550, 550, 967,
+
+ 550, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 967,
+ 550, 967, 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 550, 550, 1387, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1388, 5143,
+ 5143, 5143, 5143, 5143, 1387, 1387, 1387, 1387, 1387, 1387,
+ 1387, 1387, 5143, 5143, 5143, 1387, 1387, 1387, 1387, 1387,
+ 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 260,
+ 1408, 1408, 1408, 1408, 260, 260, 565, 260, 260, 260,
+ 260, 260, 261, 260, 260, 1632, 260, 260, 260, 260,
+ 260, 260, 565, 565, 565, 565, 565, 565, 565, 565,
+
+ 260, 260, 260, 565, 565, 565, 565, 565, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 1633, 260, 2130,
+ 3127, 3468, 3127, 3127, 2130, 2130, 3980, 2130, 2130, 2130,
+ 2130, 2130, 2131, 2130, 2130, 3469, 3980, 2130, 2130, 2130,
+ 2130, 2130, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980,
+ 2130, 2130, 2130, 3980, 3980, 3980, 3980, 3980, 3980, 3980,
+ 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3470, 2130, 561,
+ 812, 812, 812, 812, 561, 561, 813, 561, 561, 561,
+ 561, 561, 562, 561, 561, 984, 561, 561, 561, 561,
+ 561, 561, 813, 813, 813, 813, 813, 813, 813, 813,
+
+ 561, 561, 561, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 985, 561, 1196,
+ 1673, 1673, 1673, 1673, 1196, 1196, 1890, 1196, 1196, 1196,
+ 1891, 1891, 1197, 1196, 1196, 1892, 1196, 1891, 1196, 1196,
+ 1196, 1196, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890,
+ 1196, 1196, 1196, 1890, 1890, 1890, 1890, 1890, 1890, 1890,
+ 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1893, 1196, 2484,
+ 3754, 3764, 3754, 3754, 2484, 2484, 3994, 2484, 2484, 2484,
+ 3754, 3754, 2485, 2484, 2484, 3995, 3996, 3754, 2484, 2484,
+ 2484, 2484, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994,
+
+ 2484, 2484, 2484, 3994, 3994, 3994, 3994, 3994, 3994, 3994,
+ 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3756, 2484, 3997,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2484,
+ 5143, 5143, 5143, 5143, 5143, 3997, 3997, 3997, 3997, 3997,
+ 3997, 3997, 3997, 5143, 5143, 5143, 3997, 3997, 3997, 3997,
+ 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997,
+ 1909, 3141, 3149, 3141, 3141, 1909, 1909, 3759, 1909, 1909,
+ 1909, 3141, 3141, 1909, 1909, 1909, 3485, 3760, 3141, 1909,
+ 1909, 1909, 1909, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
+ 3759, 1909, 1909, 1909, 3759, 3759, 3759, 3759, 3759, 3759,
+
+ 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3143, 1909,
+ 424, 2486, 2486, 2486, 2486, 424, 424, 2817, 424, 424,
+ 424, 680, 680, 425, 424, 424, 2818, 424, 680, 424,
+ 424, 424, 424, 2817, 2817, 2817, 2817, 2817, 2817, 2817,
+ 2817, 424, 424, 424, 2817, 2817, 2817, 2817, 2817, 2817,
+ 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 832, 424,
+ 2487, 3766, 4003, 3766, 3766, 2487, 2487, 4004, 2487, 2487,
+ 2487, 3766, 3766, 2488, 2487, 2487, 4005, 4006, 3766, 2487,
+ 2487, 2487, 2487, 4004, 4004, 4004, 4004, 4004, 4004, 4004,
+ 4004, 2487, 2487, 2487, 4004, 4004, 4004, 4004, 4004, 4004,
+
+ 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 3768, 2487,
+ 4007, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 2487, 5143, 5143, 5143, 5143, 5143, 4007, 4007, 4007, 4007,
+ 4007, 4007, 4007, 4007, 5143, 5143, 5143, 4007, 4007, 4007,
+ 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007,
+ 4007, 2163, 3499, 1673, 3499, 3499, 2163, 2163, 3769, 2163,
+ 2163, 2163, 3499, 3499, 2164, 2163, 2163, 3770, 3771, 3499,
+ 2163, 2163, 2163, 2163, 3769, 3769, 3769, 3769, 3769, 3769,
+ 3769, 3769, 2163, 2163, 2163, 3769, 3769, 3769, 3769, 3769,
+ 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3501,
+
+ 2163, 4012, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4013, 5143, 5143, 5143, 5143, 5143, 4012, 4012, 4012,
+ 4012, 4012, 4012, 4012, 4012, 5143, 5143, 5143, 4012, 4012,
+ 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012,
+ 4012, 4012, 4014, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 4015, 5143, 5143, 5143, 5143, 5143, 4014, 4014,
+ 4014, 4014, 4014, 4014, 4014, 4014, 5143, 5143, 5143, 4014,
+ 4014, 4014, 4014, 4014, 4014, 4014, 4014, 4014, 4014, 4014,
+ 4014, 4014, 4014, 1194, 1883, 2152, 1883, 1883, 1194, 1194,
+ 3777, 1194, 1194, 1194, 1883, 1883, 1195, 1194, 1194, 2154,
+
+ 3778, 1883, 1194, 1194, 1194, 1194, 3777, 3777, 3777, 3777,
+ 3777, 3777, 3777, 3777, 1194, 1194, 1194, 3777, 3777, 3777,
+ 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777,
+ 3777, 2155, 1194, 1196, 1891, 1891, 1891, 1891, 1196, 1196,
+ 2158, 1196, 1196, 1196, 1891, 1891, 1197, 1196, 1196, 1895,
+ 1196, 1891, 1196, 1196, 1196, 1196, 2158, 2158, 2158, 2158,
+ 2158, 2158, 2158, 2158, 1196, 1196, 1196, 2158, 2158, 2158,
+ 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158,
+ 2158, 1893, 1196, 324, 1904, 1904, 1904, 1904, 324, 324,
+ 2168, 324, 324, 324, 681, 681, 325, 324, 324, 2169,
+
+ 324, 681, 324, 324, 324, 324, 2168, 2168, 2168, 2168,
+ 2168, 2168, 2168, 2168, 324, 324, 324, 2168, 2168, 2168,
+ 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
+ 2168, 685, 324, 2501, 4021, 4022, 4021, 4021, 2501, 2501,
+ 4023, 2501, 2501, 2501, 4021, 4021, 2502, 2501, 2501, 4024,
+ 4025, 4021, 2501, 2501, 2501, 2501, 4023, 4023, 4023, 4023,
+ 4023, 4023, 4023, 4023, 2501, 2501, 2501, 4023, 4023, 4023,
+ 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023,
+ 4023, 4026, 2501, 3785, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3786, 5143, 5143, 5143, 5143, 5143, 3785,
+
+ 3785, 3785, 3785, 3785, 3785, 3785, 3785, 5143, 5143, 5143,
+ 3785, 3785, 3785, 3785, 3785, 3785, 3785, 3785, 3785, 3785,
+ 3785, 3785, 3785, 3785, 1196, 1435, 1435, 1435, 1435, 1196,
+ 1196, 1674, 1196, 1196, 1196, 1196, 1196, 1197, 1196, 1196,
+ 1675, 1196, 1196, 1196, 1196, 1196, 1196, 1674, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1196, 1196, 1196, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
+ 1674, 1674, 1196, 1196, 213, 1082, 1082, 1082, 1082, 213,
+ 382, 337, 213, 338, 213, 381, 1256, 340, 338, 341,
+ 1257, 343, 1258, 213, 213, 338, 213, 1259, 1259, 1259,
+
+ 1259, 1259, 1259, 1259, 1259, 338, 213, 338, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 1259, 382, 213, 1504, 2984, 2985, 2984, 2984, 1504,
+ 2986, 1504, 1504, 1504, 1504, 2984, 2984, 1505, 1504, 1504,
+ 2987, 1504, 2986, 1504, 1504, 1504, 1504, 2986, 2986, 2986,
+ 2986, 2986, 2986, 2986, 2986, 1504, 1504, 1504, 2986, 2986,
+ 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986,
+ 2986, 2986, 2986, 1504, 1504, 2627, 3001, 2627, 2627, 1504,
+ 1504, 3002, 1504, 2627, 1504, 1504, 2622, 3003, 2627, 3004,
+ 3005, 3006, 2627, 1504, 1504, 2627, 1504, 3002, 3002, 3002,
+
+ 3002, 3002, 3002, 3002, 3002, 2627, 1504, 2627, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 3002, 1504, 1504, 1504, 2262, 2619, 2262, 2262, 1504,
+ 1504, 2982, 1504, 2621, 1504, 1504, 2622, 2623, 2621, 2624,
+ 2625, 2983, 2627, 1504, 1504, 2621, 1504, 2982, 2982, 2982,
+ 2982, 2982, 2982, 2982, 2982, 2621, 1504, 2621, 2982, 2982,
+ 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982,
+ 2982, 2982, 1504, 1504, 248, 1460, 1460, 1460, 1460, 248,
+ 377, 603, 248, 604, 248, 336, 1701, 606, 604, 607,
+ 1702, 609, 1703, 248, 248, 604, 248, 1704, 1704, 1704,
+
+ 1704, 1704, 1704, 1704, 1704, 604, 248, 604, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 377, 248, 1726, 3605, 3560, 3605, 3605, 1726,
+ 1726, 4032, 1726, 3799, 1726, 1726, 3883, 3801, 3799, 3802,
+ 3884, 4033, 3885, 1726, 1726, 3799, 1726, 4032, 4032, 4032,
+ 4032, 4032, 4032, 4032, 4032, 3799, 1726, 3799, 4032, 4032,
+ 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032,
+ 4032, 4032, 1726, 1726, 3798, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3804, 5143, 5143, 5143, 5143, 5143,
+ 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 5143, 5143,
+
+ 5143, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798,
+ 3798, 3798, 3798, 3798, 3798, 1726, 2585, 2960, 2585, 2585,
+ 1726, 2961, 1726, 1726, 1726, 1726, 2585, 2585, 1727, 1726,
+ 1726, 2962, 1726, 2961, 1726, 1726, 1726, 1726, 2961, 2961,
+ 2961, 2961, 2961, 2961, 2961, 2961, 1726, 1726, 1726, 2961,
+ 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
+ 2961, 2961, 2961, 2961, 1726, 1967, 4034, 4035, 4034, 4034,
+ 1967, 1967, 4036, 1967, 4037, 1967, 1967, 4038, 4039, 4037,
+ 4040, 4041, 4042, 4043, 1967, 1967, 4037, 1967, 4036, 4036,
+ 4036, 4036, 4036, 4036, 4036, 4036, 4037, 1967, 4037, 4036,
+
+ 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036, 4036,
+ 4036, 4036, 4036, 1967, 1967, 4046, 5143, 4047, 5143, 5143,
+ 5143, 5143, 5143, 4048, 4048, 4048, 4048, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4048, 4048, 4048, 4048, 4048, 5143,
+ 4048, 5143, 5143, 5143, 5143, 5143, 5143, 4048, 1726, 3885,
+ 3871, 3885, 3885, 1726, 1726, 4049, 1726, 3885, 1726, 1726,
+ 3883, 4050, 3885, 4051, 4052, 4053, 3885, 1726, 1726, 3885,
+ 1726, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 3885,
+ 1726, 3885, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049,
+ 4049, 4049, 4049, 4049, 4049, 4049, 1726, 1726, 3520, 4054,
+
+ 4055, 4054, 4054, 3520, 3520, 4056, 3520, 4057, 3520, 3520,
+ 4058, 4059, 4057, 4060, 4061, 4062, 4063, 3520, 3520, 4057,
+ 3520, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4057,
+ 3520, 4057, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056,
+ 4056, 4056, 4056, 4056, 4056, 4056, 3520, 3520, 1458, 2183,
+ 2509, 2183, 2183, 1458, 2510, 2511, 1458, 2512, 1458, 2513,
+ 2514, 4064, 2512, 2516, 4065, 2518, 2519, 1458, 1458, 2512,
+ 1458, 2520, 2520, 2520, 2520, 2520, 2520, 2520, 2520, 2512,
+ 1458, 2512, 2520, 2520, 2520, 2520, 2520, 2520, 2520, 2520,
+ 2520, 2520, 2520, 2520, 2520, 2520, 2510, 1458, 2228, 3617,
+
+ 3568, 3617, 3617, 2228, 2228, 4066, 2228, 3811, 2228, 2228,
+ 3577, 3812, 3811, 3813, 3814, 4067, 3253, 2228, 2228, 3811,
+ 2228, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 3811,
+ 2228, 3811, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066,
+ 4066, 4066, 4066, 4066, 4066, 4066, 2228, 2228, 3810, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3815, 5143,
+ 5143, 5143, 5143, 5143, 3810, 3810, 3810, 3810, 3810, 3810,
+ 3810, 3810, 5143, 5143, 5143, 3810, 3810, 3810, 3810, 3810,
+ 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 2571,
+ 4068, 4069, 4068, 4068, 2571, 2571, 4070, 2571, 4071, 2571,
+
+ 2571, 3863, 4072, 4071, 4073, 4074, 4075, 3860, 2571, 2571,
+ 4071, 2571, 4070, 4070, 4070, 4070, 4070, 4070, 4070, 4070,
+ 4071, 2571, 4071, 4070, 4070, 4070, 4070, 4070, 4070, 4070,
+ 4070, 4070, 4070, 4070, 4070, 4070, 4070, 2571, 2571, 4076,
+ 5143, 4077, 5143, 5143, 5143, 5143, 5143, 4078, 4078, 4078,
+ 4078, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4078, 4078,
+ 4078, 4078, 4078, 5143, 4078, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4078, 255, 1478, 1478, 1478, 1478, 255, 469, 628,
+ 255, 629, 255, 468, 1590, 630, 629, 631, 1721, 633,
+ 1592, 255, 255, 629, 255, 1722, 1722, 1722, 1722, 1722,
+
+ 1722, 1722, 1722, 629, 255, 629, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 469, 255, 2228, 3818, 3832, 3818, 3818, 2228, 3817, 2228,
+ 2228, 2228, 2228, 3818, 3818, 2229, 2228, 2228, 3859, 2228,
+ 3817, 2228, 2228, 2228, 2228, 3817, 3817, 3817, 3817, 3817,
+ 3817, 3817, 3817, 2228, 2228, 2228, 3817, 3817, 3817, 3817,
+ 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817,
+ 3817, 2228, 2228, 3253, 3575, 3253, 3253, 2228, 2228, 3576,
+ 2228, 3253, 2228, 2228, 3577, 3578, 3253, 3579, 3580, 3581,
+ 3253, 2228, 2228, 3253, 2228, 3576, 3576, 3576, 3576, 3576,
+
+ 3576, 3576, 3576, 3253, 2228, 3253, 3576, 3576, 3576, 3576,
+ 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576,
+ 2228, 2228, 512, 847, 1033, 847, 847, 512, 1034, 512,
+ 512, 512, 512, 847, 847, 513, 512, 512, 1035, 512,
+ 1034, 512, 512, 512, 512, 1034, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 512, 512, 512, 1034, 1034, 1034, 1034,
+ 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
+ 1034, 512, 512, 1984, 1817, 1984, 1984, 512, 512, 2255,
+ 512, 1984, 512, 512, 1979, 2256, 1984, 2257, 2258, 2259,
+ 1984, 512, 512, 1984, 512, 2255, 2255, 2255, 2255, 2255,
+
+ 2255, 2255, 2255, 1984, 512, 1984, 2255, 2255, 2255, 2255,
+ 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255,
+ 512, 512, 512, 1738, 1460, 1738, 1738, 512, 512, 2239,
+ 512, 1978, 512, 512, 1979, 1980, 1978, 1981, 1982, 2240,
+ 1984, 512, 512, 1978, 512, 2239, 2239, 2239, 2239, 2239,
+ 2239, 2239, 2239, 1978, 512, 1978, 2239, 2239, 2239, 2239,
+ 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239, 2239,
+ 512, 512, 1974, 4083, 3521, 4083, 4083, 1974, 1974, 4084,
+ 1974, 4085, 1974, 1974, 4086, 4087, 4085, 4088, 4089, 4090,
+ 4091, 1974, 1974, 4085, 1974, 4084, 4084, 4084, 4084, 4084,
+
+ 4084, 4084, 4084, 4085, 1974, 4085, 4084, 4084, 4084, 4084,
+ 4084, 4084, 4084, 4084, 4084, 4084, 4084, 4084, 4084, 4084,
+ 1974, 1974, 1461, 2198, 2532, 2198, 2198, 1461, 2533, 2534,
+ 1461, 2535, 1461, 2536, 2537, 4092, 2535, 2539, 4093, 2541,
+ 2542, 1461, 1461, 2535, 1461, 2543, 2543, 2543, 2543, 2543,
+ 2543, 2543, 2543, 2535, 1461, 2535, 2543, 2543, 2543, 2543,
+ 2543, 2543, 2543, 2543, 2543, 2543, 2543, 2543, 2543, 2543,
+ 2533, 1461, 641, 1596, 1597, 1596, 1596, 641, 1598, 641,
+ 641, 641, 641, 1596, 1596, 642, 641, 641, 1599, 641,
+ 1598, 641, 641, 641, 641, 1598, 1598, 1598, 1598, 1598,
+
+ 1598, 1598, 1598, 641, 641, 641, 1598, 1598, 1598, 1598,
+ 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598, 1598,
+ 1598, 641, 641, 1154, 1380, 1154, 1154, 641, 641, 1381,
+ 641, 1154, 641, 641, 1382, 1383, 1154, 1384, 1385, 1386,
+ 1154, 641, 641, 1154, 641, 1381, 1381, 1381, 1381, 1381,
+ 1381, 1381, 1381, 1154, 641, 1154, 1381, 1381, 1381, 1381,
+ 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
+ 641, 641, 641, 1759, 1478, 1759, 1759, 641, 641, 2271,
+ 641, 1997, 641, 641, 1382, 1998, 1997, 1999, 2000, 2272,
+ 1154, 641, 641, 1997, 641, 2271, 2271, 2271, 2271, 2271,
+
+ 2271, 2271, 2271, 1997, 641, 1997, 2271, 2271, 2271, 2271,
+ 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271,
+ 641, 641, 1291, 3839, 4098, 3839, 3839, 1291, 2397, 2288,
+ 1291, 2289, 1291, 2237, 2399, 2289, 2289, 2291, 4099, 2293,
+ 2403, 1291, 1291, 2289, 1291, 4100, 4100, 4100, 4100, 4100,
+ 4100, 4100, 4100, 2289, 1291, 2289, 4100, 4100, 4100, 4100,
+ 4100, 4100, 4100, 4100, 4100, 4100, 4100, 4100, 4100, 4100,
+ 2397, 1291, 1234, 2007, 2294, 2007, 2007, 1234, 1234, 2205,
+ 1234, 2206, 1234, 1234, 2295, 2209, 2206, 2210, 2296, 2212,
+ 2297, 1234, 1234, 2206, 1234, 2205, 2205, 2205, 2205, 2205,
+
+ 2205, 2205, 2205, 2206, 1234, 2206, 2205, 2205, 2205, 2205,
+ 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+ 1234, 1234, 599, 712, 712, 712, 712, 599, 599, 855,
+ 599, 856, 599, 599, 857, 858, 856, 859, 860, 861,
+ 862, 599, 599, 856, 599, 855, 855, 855, 855, 855,
+ 855, 855, 855, 856, 599, 856, 855, 855, 855, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855, 855, 855,
+ 599, 599, 2547, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 2548, 5143, 5143, 5143, 5143, 5143, 2547, 2547,
+ 2547, 2547, 2547, 2547, 2547, 2547, 5143, 5143, 5143, 2547,
+
+ 2547, 2547, 2547, 2547, 2547, 2547, 2547, 2547, 2547, 2547,
+ 2547, 2547, 2547, 1234, 2207, 854, 2207, 2207, 1234, 2204,
+ 1234, 1234, 1234, 1234, 2207, 2207, 1235, 1234, 1234, 2549,
+ 1234, 2204, 1234, 1234, 1234, 1234, 2204, 2204, 2204, 2204,
+ 2204, 2204, 2204, 2204, 1234, 1234, 1234, 2204, 2204, 2204,
+ 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204,
+ 2204, 2204, 1234, 1711, 2910, 2911, 2910, 2910, 1711, 1711,
+ 2912, 1711, 2913, 1711, 1711, 2914, 2915, 2913, 2916, 4104,
+ 2917, 2918, 1711, 1711, 2913, 1711, 2912, 2912, 2912, 2912,
+ 2912, 2912, 2912, 2912, 2913, 1711, 2913, 2912, 2912, 2912,
+
+ 2912, 2912, 2912, 2912, 2912, 2912, 2912, 2912, 2912, 2912,
+ 2912, 1711, 1711, 452, 3034, 2619, 3034, 3034, 452, 1106,
+ 904, 452, 905, 452, 1105, 3365, 1774, 905, 908, 4105,
+ 910, 3367, 452, 452, 905, 452, 3368, 3368, 3368, 3368,
+ 3368, 3368, 3368, 3368, 905, 452, 905, 3368, 3368, 3368,
+ 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368,
+ 3368, 1106, 452, 2560, 5143, 2561, 5143, 5143, 5143, 5143,
+ 5143, 2562, 2562, 2562, 2562, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 2562, 2562, 2562, 2562, 2562, 5143, 2562, 5143,
+ 5143, 5143, 5143, 5143, 5143, 2562, 1234, 2297, 2563, 2297,
+
+ 2297, 1234, 1234, 2564, 1234, 2297, 1234, 1234, 2295, 2565,
+ 2297, 2566, 2567, 2568, 2297, 1234, 1234, 2297, 1234, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2297, 1234, 2297,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2564, 1234, 1234, 3242, 4106, 4107, 4106,
+ 4106, 3242, 3242, 4108, 3242, 4109, 3242, 3242, 4110, 4111,
+ 4109, 4112, 4113, 4114, 4115, 3242, 3242, 4109, 3242, 4108,
+ 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4109, 3242, 4109,
+ 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108,
+ 4108, 4108, 4108, 4108, 3242, 3242, 3857, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 3858, 5143, 5143, 5143,
+ 5143, 5143, 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3857,
+ 5143, 5143, 5143, 3857, 3857, 3857, 3857, 3857, 3857, 3857,
+ 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3868, 5143, 4119,
+ 5143, 5143, 5143, 5143, 5143, 4120, 4120, 4120, 4120, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4120, 4120, 4120, 4120,
+ 4120, 5143, 4120, 5143, 5143, 5143, 5143, 5143, 5143, 4120,
+ 2937, 4123, 4124, 4123, 4123, 2937, 2937, 4125, 2937, 4123,
+ 2937, 2937, 4126, 4127, 4123, 4128, 3580, 4129, 4123, 2937,
+ 2937, 4123, 2937, 4125, 4125, 4125, 4125, 4125, 4125, 4125,
+
+ 4125, 4123, 2937, 4123, 4125, 4125, 4125, 4125, 4125, 4125,
+ 4125, 4125, 4125, 4125, 4125, 4125, 4125, 4125, 2937, 2937,
+ 1093, 1991, 1962, 1991, 1991, 1093, 1093, 2192, 1093, 1991,
+ 1093, 1093, 1989, 4130, 1991, 2193, 4131, 2195, 1991, 1093,
+ 1093, 1991, 1093, 2192, 2192, 2192, 2192, 2192, 2192, 2192,
+ 2192, 1991, 1093, 1991, 2192, 2192, 2192, 2192, 2192, 2192,
+ 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 1093, 1093,
+ 3868, 5143, 3869, 5143, 5143, 5143, 5143, 5143, 3870, 3870,
+ 3870, 3870, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3870,
+ 3870, 3870, 3870, 3870, 5143, 3870, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 3870, 248, 1460, 1460, 1460, 1460, 248, 377,
+ 603, 248, 604, 248, 336, 1701, 606, 604, 607, 1702,
+ 609, 1703, 248, 248, 604, 248, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 604, 248, 604, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 377, 248, 1080, 1732, 1817, 1732, 1732, 1080, 1972,
+ 1080, 1080, 1080, 1080, 1732, 1732, 1081, 1080, 1080, 1973,
+ 1080, 1972, 1080, 1080, 1080, 1080, 1972, 1972, 1972, 1972,
+ 1972, 1972, 1972, 1972, 1080, 1080, 1080, 1972, 1972, 1972,
+ 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972, 1972,
+
+ 1972, 1972, 1080, 1080, 1846, 2113, 1846, 1846, 1080, 1080,
+ 2114, 1080, 1846, 1080, 1080, 2068, 2115, 1846, 2116, 2117,
+ 2118, 1846, 1080, 1080, 1846, 1080, 2114, 2114, 2114, 2114,
+ 2114, 2114, 2114, 2114, 1846, 1080, 1846, 2114, 2114, 2114,
+ 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
+ 2114, 1080, 1080, 1080, 1801, 2025, 1801, 1801, 1080, 1080,
+ 2363, 1080, 2067, 1080, 1080, 2068, 2069, 2067, 2070, 2071,
+ 2364, 1846, 1080, 1080, 2067, 1080, 2363, 2363, 2363, 2363,
+ 2363, 2363, 2363, 2363, 2067, 1080, 2067, 2363, 2363, 2363,
+ 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
+
+ 2363, 1080, 1080, 2064, 4134, 4135, 4134, 4134, 2064, 2064,
+ 4136, 2064, 4137, 2064, 2064, 4138, 4139, 4137, 4140, 4141,
+ 4142, 4143, 2064, 2064, 4137, 2064, 4136, 4136, 4136, 4136,
+ 4136, 4136, 4136, 4136, 4137, 2064, 4137, 4136, 4136, 4136,
+ 4136, 4136, 4136, 4136, 4136, 4136, 4136, 4136, 4136, 4136,
+ 4136, 2064, 2064, 1479, 2230, 2573, 2230, 2230, 1479, 2574,
+ 2575, 1479, 2576, 1479, 2577, 2578, 4144, 2576, 2580, 4145,
+ 2582, 2583, 1479, 1479, 2576, 1479, 2584, 2584, 2584, 2584,
+ 2584, 2584, 2584, 2584, 2576, 1479, 2576, 2584, 2584, 2584,
+ 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584, 2584,
+
+ 2584, 2574, 1479, 550, 1814, 1792, 1814, 1814, 550, 550,
+ 2381, 550, 2077, 550, 550, 1157, 2078, 2077, 2079, 2080,
+ 2382, 967, 550, 550, 2077, 550, 2381, 2381, 2381, 2381,
+ 2381, 2381, 2381, 2381, 2077, 550, 2077, 2381, 2381, 2381,
+ 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2381,
+ 2381, 550, 550, 1726, 2585, 2960, 2585, 2585, 1726, 2961,
+ 1726, 1726, 1726, 1726, 2585, 2585, 1727, 1726, 1726, 2962,
+ 1726, 2961, 1726, 1726, 1726, 1726, 2961, 2961, 2961, 2961,
+ 2961, 2961, 2961, 2961, 1726, 1726, 1726, 2961, 2961, 2961,
+ 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
+
+ 2961, 2961, 1726, 1726, 3885, 3871, 3885, 3885, 1726, 1726,
+ 4049, 1726, 3885, 1726, 1726, 3883, 4050, 3885, 4051, 4052,
+ 4053, 3885, 1726, 1726, 3885, 1726, 4049, 4049, 4049, 4049,
+ 4049, 4049, 4049, 4049, 3885, 1726, 3885, 4049, 4049, 4049,
+ 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049,
+ 4049, 1726, 1726, 1987, 3295, 3296, 3295, 3295, 1987, 1987,
+ 3297, 1987, 3298, 1987, 1987, 3299, 3300, 3298, 3301, 3606,
+ 3302, 3303, 1987, 1987, 3298, 1987, 3297, 3297, 3297, 3297,
+ 3297, 3297, 3297, 3297, 3298, 1987, 3298, 3297, 3297, 3297,
+ 3297, 3297, 3297, 3297, 3297, 3297, 3297, 3297, 3297, 3297,
+
+ 3297, 1987, 1987, 1504, 2262, 2619, 2262, 2262, 1504, 1504,
+ 2620, 1504, 2621, 1504, 1504, 2622, 4153, 2621, 2624, 4154,
+ 2626, 2627, 1504, 1504, 2621, 1504, 2620, 2620, 2620, 2620,
+ 2620, 2620, 2620, 2620, 2621, 1504, 2621, 2620, 2620, 2620,
+ 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620,
+ 2620, 1504, 1504, 599, 862, 862, 862, 862, 599, 599,
+ 1061, 599, 862, 599, 599, 857, 1062, 862, 1063, 1064,
+ 1065, 862, 599, 599, 862, 599, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 862, 599, 862, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+
+ 1061, 599, 599, 1236, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 1237, 5143, 5143, 5143, 5143, 5143, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 5143, 5143, 5143,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 599, 1039, 1039, 1039, 1039, 599,
+ 1038, 599, 599, 599, 599, 1039, 1039, 600, 599, 599,
+ 1046, 599, 1038, 599, 599, 599, 599, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 599, 599, 599, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 599, 3321, 4155, 4155, 4155, 4155, 3321,
+
+ 3321, 4156, 3321, 4155, 3321, 3321, 4157, 4158, 4155, 4159,
+ 4160, 4161, 4155, 3321, 3321, 4155, 3321, 4156, 4156, 4156,
+ 4156, 4156, 4156, 4156, 4156, 4155, 3321, 4155, 4156, 4156,
+ 4156, 4156, 4156, 4156, 4156, 4156, 4156, 4156, 4156, 4156,
+ 4156, 4156, 3321, 3321, 213, 1281, 1281, 1281, 1281, 213,
+ 382, 398, 213, 344, 213, 381, 1256, 1790, 344, 400,
+ 4162, 402, 1258, 213, 213, 344, 213, 1507, 1507, 1507,
+ 1507, 1507, 1507, 1507, 1507, 344, 213, 344, 1507, 1507,
+ 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
+ 1507, 1507, 382, 213, 1245, 5143, 1246, 5143, 5143, 5143,
+
+ 5143, 5143, 1247, 1247, 1247, 1247, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 1247, 1247, 1247, 1247, 1247, 5143, 1247,
+ 5143, 5143, 5143, 5143, 5143, 5143, 1247, 517, 1090, 1281,
+ 1090, 1090, 517, 517, 1508, 517, 1090, 517, 517, 1085,
+ 1283, 1090, 1284, 1285, 1509, 1090, 517, 517, 1090, 517,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1090, 517,
+ 1090, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1508, 517, 517, 734, 1501, 1749,
+ 1501, 1501, 734, 734, 1750, 734, 1501, 734, 734, 1497,
+ 1751, 1501, 1752, 3628, 1753, 1501, 734, 734, 1501, 734,
+
+ 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1501, 734,
+ 1501, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750, 1750,
+ 1750, 1750, 1750, 1750, 1750, 734, 734, 1282, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1286, 5143, 5143,
+ 5143, 5143, 5143, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 5143, 5143, 5143, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 641, 1759,
+ 1478, 1759, 1759, 641, 641, 1996, 641, 1997, 641, 641,
+ 1382, 4165, 1997, 1999, 4166, 2001, 1154, 641, 641, 1997,
+ 641, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1997,
+
+ 641, 1997, 1996, 1996, 1996, 1996, 1996, 1996, 1996, 1996,
+ 1996, 1996, 1996, 1996, 1996, 1996, 641, 641, 1518, 5143,
+ 1519, 5143, 5143, 5143, 5143, 5143, 1520, 1520, 1520, 1520,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 1520, 1520, 1520,
+ 1520, 1520, 5143, 1520, 5143, 5143, 5143, 5143, 5143, 5143,
+ 1520, 1756, 2651, 3898, 2651, 2651, 1756, 1756, 3899, 1756,
+ 2651, 1756, 1756, 2646, 3900, 2651, 3901, 3902, 3903, 2651,
+ 1756, 1756, 2651, 1756, 3899, 3899, 3899, 3899, 3899, 3899,
+ 3899, 3899, 2651, 1756, 2651, 3899, 3899, 3899, 3899, 3899,
+ 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 1756,
+
+ 1756, 599, 2897, 2897, 2897, 2897, 599, 1038, 1061, 599,
+ 862, 599, 1039, 1040, 1062, 862, 1063, 3217, 1065, 1042,
+ 599, 599, 862, 599, 3218, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 862, 599, 862, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 1038,
+ 599, 1970, 3909, 3871, 3909, 3909, 1970, 1970, 4170, 1970,
+ 4171, 1970, 1970, 4172, 4173, 4171, 4174, 4175, 4176, 3978,
+ 1970, 1970, 4171, 1970, 4170, 4170, 4170, 4170, 4170, 4170,
+ 4170, 4170, 4171, 1970, 4171, 4170, 4170, 4170, 4170, 4170,
+ 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 1970,
+
+ 1970, 1760, 2668, 3001, 2668, 2668, 1760, 1760, 3024, 1760,
+ 3025, 1760, 1760, 3026, 4177, 3025, 3028, 4178, 3030, 3031,
+ 1760, 1760, 3025, 1760, 3024, 3024, 3024, 3024, 3024, 3024,
+ 3024, 3024, 3025, 1760, 3025, 3024, 3024, 3024, 3024, 3024,
+ 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 1760,
+ 1760, 1760, 3031, 3359, 3031, 3031, 1760, 1760, 3646, 1760,
+ 3031, 1760, 1760, 3026, 3361, 3031, 3656, 3363, 3911, 3031,
+ 1760, 1760, 3031, 1760, 3912, 3912, 3912, 3912, 3646, 3646,
+ 3646, 3646, 3031, 1760, 3031, 3912, 3912, 3912, 3912, 3912,
+ 3646, 3912, 3646, 3646, 3646, 3646, 3646, 3646, 3912, 1760,
+
+ 1760, 3362, 5143, 3647, 5143, 5143, 5143, 5143, 5143, 3646,
+ 3646, 3646, 3646, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 3646, 3646, 3646, 3646, 3646, 5143, 3646, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3646, 2286, 3643, 3913, 3643, 3643, 2286,
+ 2286, 3914, 2286, 3643, 2286, 2286, 3639, 3915, 3643, 3916,
+ 4179, 3917, 3643, 2286, 2286, 3643, 2286, 3914, 3914, 3914,
+ 3914, 3914, 3914, 3914, 3914, 3643, 2286, 3643, 3914, 3914,
+ 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914,
+ 3914, 3914, 2286, 2286, 3360, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3364, 5143, 5143, 5143, 5143, 5143,
+
+ 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 5143, 5143,
+ 5143, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 3360, 3656, 5143, 3657, 5143, 5143,
+ 5143, 5143, 5143, 3658, 3658, 3658, 3658, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3658, 3658, 3658, 3658, 3658, 5143,
+ 3658, 5143, 5143, 5143, 5143, 5143, 5143, 3658, 1841, 3922,
+ 3575, 3922, 3922, 1841, 1841, 4180, 1841, 4181, 1841, 1841,
+ 3114, 4182, 4181, 4183, 4184, 4185, 2767, 1841, 1841, 4181,
+ 1841, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4181,
+ 1841, 4181, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180,
+
+ 4180, 4180, 4180, 4180, 4180, 4180, 1841, 1841, 784, 3660,
+ 3660, 3660, 3660, 784, 1359, 2263, 784, 2264, 784, 1360,
+ 1361, 2265, 2264, 2266, 3928, 2268, 1363, 784, 784, 2264,
+ 784, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 2264,
+ 784, 2264, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
+ 3929, 3929, 3929, 3929, 3929, 3929, 1359, 784, 3018, 3372,
+ 3660, 3372, 3372, 3018, 3661, 3018, 3018, 3018, 3018, 3372,
+ 3372, 3019, 3018, 3018, 3662, 3018, 3661, 3018, 3018, 3018,
+ 3018, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3018,
+ 3018, 3018, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661,
+
+ 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3018, 3018, 3373,
+ 3663, 3373, 3373, 3018, 3018, 3664, 3018, 3373, 3018, 3018,
+ 3665, 3666, 3373, 3667, 3668, 3669, 3373, 3018, 3018, 3373,
+ 3018, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3373,
+ 3018, 3373, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664,
+ 3664, 3664, 3664, 3664, 3664, 3664, 3018, 3018, 3932, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3933, 5143,
+ 5143, 5143, 5143, 5143, 3932, 3932, 3932, 3932, 3932, 3932,
+ 3932, 3932, 5143, 5143, 5143, 3932, 3932, 3932, 3932, 3932,
+ 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 784,
+
+ 1994, 1994, 1994, 1994, 784, 784, 2628, 784, 2264, 784,
+ 784, 1149, 2265, 2264, 2266, 2267, 2629, 961, 784, 784,
+ 2264, 784, 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2628,
+ 2264, 784, 2264, 2628, 2628, 2628, 2628, 2628, 2628, 2628,
+ 2628, 2628, 2628, 2628, 2628, 2628, 2628, 784, 784, 3944,
+ 5143, 4189, 5143, 5143, 5143, 5143, 5143, 4190, 4190, 4190,
+ 4190, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4190, 4190,
+ 4190, 4190, 4190, 5143, 4190, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4190, 2263, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 2268, 5143, 5143, 5143, 5143, 5143, 2263, 2263,
+
+ 2263, 2263, 2263, 2263, 2263, 2263, 5143, 5143, 5143, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 3370, 4191, 4192, 4191, 4191, 3370, 3370,
+ 4193, 3370, 4191, 3370, 3370, 4194, 4195, 4191, 4196, 3668,
+ 4197, 4191, 3370, 3370, 4191, 3370, 4193, 4193, 4193, 4193,
+ 4193, 4193, 4193, 4193, 4191, 3370, 4191, 4193, 4193, 4193,
+ 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193,
+ 4193, 3370, 3370, 215, 3325, 1962, 3325, 3325, 215, 750,
+ 756, 215, 626, 215, 749, 1714, 2360, 626, 757, 4198,
+ 759, 1716, 215, 215, 626, 215, 3621, 3621, 3621, 3621,
+
+ 3621, 3621, 3621, 3621, 626, 215, 626, 3621, 3621, 3621,
+ 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621,
+ 3621, 750, 215, 3944, 5143, 3945, 5143, 5143, 5143, 5143,
+ 5143, 3946, 3946, 3946, 3946, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3946, 3946, 3946, 3946, 3946, 5143, 3946, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3946, 1334, 2340, 2341, 2340,
+ 2340, 1334, 1334, 2342, 1334, 2343, 1334, 1334, 2344, 2345,
+ 2343, 2346, 2697, 2347, 2348, 1334, 1334, 2343, 1334, 2342,
+ 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2343, 1334, 2343,
+ 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342,
+
+ 2342, 2342, 2342, 2342, 1334, 1334, 213, 344, 344, 344,
+ 344, 213, 213, 398, 213, 344, 213, 213, 339, 399,
+ 344, 400, 401, 402, 344, 213, 213, 344, 213, 398,
+ 398, 398, 398, 398, 398, 398, 398, 344, 213, 344,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 398, 398, 398, 213, 213, 536, 1142, 1353, 1142,
+ 1142, 536, 536, 1562, 536, 1142, 536, 536, 1137, 1355,
+ 1142, 1356, 1357, 1563, 1142, 536, 536, 1142, 536, 1562,
+ 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1142, 536, 1142,
+ 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562,
+
+ 1562, 1562, 1562, 1562, 536, 536, 776, 1559, 1805, 1559,
+ 1559, 776, 776, 1806, 776, 1559, 776, 776, 1555, 1807,
+ 1559, 1808, 3685, 1809, 1559, 776, 776, 1559, 776, 1806,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1559, 776, 1559,
+ 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806, 1806,
+ 1806, 1806, 1806, 1806, 776, 776, 1354, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 1358, 5143, 5143, 5143,
+ 5143, 5143, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+ 5143, 5143, 5143, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 550, 1814, 1792,
+
+ 1814, 1814, 550, 550, 2076, 550, 2077, 550, 550, 1157,
+ 4200, 2077, 2079, 4201, 2081, 967, 550, 550, 2077, 550,
+ 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2077, 550,
+ 2077, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076,
+ 2076, 2076, 2076, 2076, 2076, 550, 550, 1572, 5143, 1573,
+ 5143, 5143, 5143, 5143, 5143, 1574, 1574, 1574, 1574, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 1574, 1574, 1574, 1574,
+ 1574, 5143, 1574, 5143, 5143, 5143, 5143, 5143, 5143, 1574,
+ 1812, 2727, 3949, 2727, 2727, 1812, 1812, 3950, 1812, 2727,
+ 1812, 1812, 2722, 3951, 2727, 3952, 3953, 3954, 2727, 1812,
+
+ 1812, 2727, 1812, 3950, 3950, 3950, 3950, 3950, 3950, 3950,
+ 3950, 2727, 1812, 2727, 3950, 3950, 3950, 3950, 3950, 3950,
+ 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950, 1812, 1812,
+ 784, 1147, 1147, 1147, 1147, 784, 1359, 1148, 784, 961,
+ 784, 1360, 1361, 1150, 961, 1151, 1362, 1153, 1363, 784,
+ 784, 961, 784, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 961, 784, 961, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1359, 784,
+ 1841, 3960, 4202, 3960, 3960, 1841, 3449, 3113, 1841, 2767,
+ 1841, 3447, 4203, 3115, 2767, 3116, 4204, 3118, 4205, 1841,
+
+ 1841, 2767, 1841, 4206, 4206, 4206, 4206, 4206, 4206, 4206,
+ 4206, 2767, 1841, 2767, 4206, 4206, 4206, 4206, 4206, 4206,
+ 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 3449, 1841,
+ 1970, 3964, 4207, 3964, 3964, 1970, 3283, 4208, 1970, 3978,
+ 1970, 2963, 4209, 4210, 3978, 4211, 4212, 4213, 4214, 1970,
+ 1970, 3978, 1970, 4215, 4215, 4215, 4215, 4215, 4215, 4215,
+ 4215, 3978, 1970, 3978, 4215, 4215, 4215, 4215, 4215, 4215,
+ 4215, 4215, 4215, 4215, 4215, 4215, 4215, 4215, 3283, 1970,
+ 1815, 2738, 3068, 2738, 2738, 1815, 3069, 3070, 1815, 3071,
+ 1815, 3072, 3073, 4216, 3071, 3075, 4217, 3077, 3078, 1815,
+
+ 1815, 3071, 1815, 3079, 3079, 3079, 3079, 3079, 3079, 3079,
+ 3079, 3071, 1815, 3071, 3079, 3079, 3079, 3079, 3079, 3079,
+ 3079, 3079, 3079, 3079, 3079, 3079, 3079, 3079, 3069, 1815,
+ 512, 3966, 3282, 3966, 3966, 512, 1034, 2255, 512, 1984,
+ 512, 847, 3823, 2256, 1984, 2257, 4218, 2259, 3825, 512,
+ 512, 1984, 512, 4219, 4219, 4219, 4219, 4219, 4219, 4219,
+ 4219, 1984, 512, 1984, 4219, 4219, 4219, 4219, 4219, 4219,
+ 4219, 4219, 4219, 4219, 4219, 4219, 4219, 4219, 1034, 512,
+ 1818, 2748, 3082, 2748, 2748, 1818, 3083, 3084, 1818, 2764,
+ 1818, 3085, 3086, 4220, 2764, 3088, 4221, 3090, 3091, 1818,
+
+ 1818, 2764, 1818, 3092, 3092, 3092, 3092, 3092, 3092, 3092,
+ 3092, 2764, 1818, 2764, 3092, 3092, 3092, 3092, 3092, 3092,
+ 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3092, 3083, 1818,
+ 248, 1817, 1817, 1817, 1817, 248, 377, 729, 248, 610,
+ 248, 336, 1701, 730, 610, 731, 2086, 733, 1703, 248,
+ 248, 610, 248, 2087, 2087, 2087, 2087, 2087, 2087, 2087,
+ 2087, 610, 248, 610, 2087, 2087, 2087, 2087, 2087, 2087,
+ 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 377, 248,
+ 1080, 1846, 2113, 1846, 1846, 1080, 1080, 2431, 1080, 1846,
+ 1080, 1080, 2068, 2115, 1846, 2116, 2117, 2432, 1846, 1080,
+
+ 1080, 1846, 1080, 2431, 2431, 2431, 2431, 2431, 2431, 2431,
+ 2431, 1846, 1080, 1846, 2431, 2431, 2431, 2431, 2431, 2431,
+ 2431, 2431, 2431, 2431, 2431, 2431, 2431, 2431, 1080, 1080,
+ 2110, 4224, 4225, 4224, 4224, 2110, 2110, 4226, 2110, 4224,
+ 2110, 2110, 4227, 4228, 4224, 4229, 4230, 4231, 4224, 2110,
+ 2110, 4224, 2110, 4226, 4226, 4226, 4226, 4226, 4226, 4226,
+ 4226, 4224, 2110, 4224, 4226, 4226, 4226, 4226, 4226, 4226,
+ 4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226, 2110, 2110,
+ 641, 1154, 1380, 1154, 1154, 641, 641, 1594, 641, 1154,
+ 641, 641, 1382, 1383, 1154, 1384, 1385, 1595, 1154, 641,
+
+ 641, 1154, 641, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
+ 1594, 1154, 641, 1154, 1594, 1594, 1594, 1594, 1594, 1594,
+ 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 641, 641,
+ 1970, 3978, 3968, 3978, 3978, 1970, 1970, 4208, 1970, 3978,
+ 1970, 1970, 4172, 4210, 3978, 4211, 4234, 4213, 3978, 1970,
+ 1970, 3978, 1970, 4208, 4208, 4208, 4208, 4208, 4208, 4208,
+ 4208, 3978, 1970, 3978, 4208, 4208, 4208, 4208, 4208, 4208,
+ 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 1970, 1970,
+ 1841, 2767, 3112, 2767, 2767, 1841, 1841, 3113, 1841, 2767,
+ 1841, 1841, 3114, 4235, 2767, 3116, 4236, 3118, 2767, 1841,
+
+ 1841, 2767, 1841, 3113, 3113, 3113, 3113, 3113, 3113, 3113,
+ 3113, 2767, 1841, 2767, 3113, 3113, 3113, 3113, 3113, 3113,
+ 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 1841, 1841,
+ 2130, 3127, 3468, 3127, 3127, 2130, 2130, 3980, 2130, 2130,
+ 2130, 2130, 2130, 2131, 2130, 2130, 3469, 3980, 2130, 2130,
+ 2130, 2130, 2130, 3980, 3980, 3980, 3980, 3980, 3980, 3980,
+ 3980, 2130, 2130, 2130, 3980, 3980, 3980, 3980, 3980, 3980,
+ 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3470, 2130,
+ 561, 662, 662, 662, 662, 561, 561, 813, 561, 561,
+ 561, 561, 561, 562, 561, 561, 814, 561, 561, 561,
+
+ 561, 561, 561, 813, 813, 813, 813, 813, 813, 813,
+ 813, 561, 561, 561, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 815, 561,
+ 1406, 3991, 2135, 3991, 3991, 1406, 1406, 2445, 1406, 1406,
+ 1406, 1406, 1406, 1407, 1406, 1406, 4243, 1406, 1406, 1406,
+ 1406, 1406, 1406, 2445, 2445, 2445, 2445, 2445, 2445, 2445,
+ 2445, 1406, 1406, 1406, 2445, 2445, 2445, 2445, 2445, 2445,
+ 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 4244, 1406,
+ 2484, 3754, 3764, 3754, 3754, 2484, 2484, 3994, 2484, 2484,
+ 2484, 3754, 3754, 2485, 2484, 2484, 3995, 3996, 3754, 2484,
+
+ 2484, 2484, 2484, 3994, 3994, 3994, 3994, 3994, 3994, 3994,
+ 3994, 2484, 2484, 2484, 3994, 3994, 3994, 3994, 3994, 3994,
+ 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3756, 2484,
+ 4250, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4251, 5143, 5143, 5143, 5143, 5143, 4250, 4250, 4250, 4250,
+ 4250, 4250, 4250, 4250, 5143, 5143, 5143, 4250, 4250, 4250,
+ 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250,
+ 4250, 424, 2486, 2486, 2486, 2486, 424, 424, 2817, 424,
+ 424, 424, 680, 680, 425, 424, 424, 2818, 424, 680,
+ 424, 424, 424, 424, 2817, 2817, 2817, 2817, 2817, 2817,
+
+ 2817, 2817, 424, 424, 424, 2817, 2817, 2817, 2817, 2817,
+ 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 832,
+ 424, 1196, 1891, 1891, 1891, 1891, 1196, 1196, 2158, 1196,
+ 1196, 1196, 1891, 1891, 1197, 1196, 1196, 1895, 1196, 1891,
+ 1196, 1196, 1196, 1196, 2158, 2158, 2158, 2158, 2158, 2158,
+ 2158, 2158, 1196, 1196, 1196, 2158, 2158, 2158, 2158, 2158,
+ 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 1893,
+ 1196, 2487, 3766, 4003, 3766, 3766, 2487, 2487, 4004, 2487,
+ 2487, 2487, 3766, 3766, 2488, 2487, 2487, 4005, 4006, 3766,
+ 2487, 2487, 2487, 2487, 4004, 4004, 4004, 4004, 4004, 4004,
+
+ 4004, 4004, 2487, 2487, 2487, 4004, 4004, 4004, 4004, 4004,
+ 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 3768,
+ 2487, 4255, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4256, 5143, 5143, 5143, 5143, 5143, 4255, 4255, 4255,
+ 4255, 4255, 4255, 4255, 4255, 5143, 5143, 5143, 4255, 4255,
+ 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255,
+ 4255, 4255, 2163, 3499, 1673, 3499, 3499, 2163, 2163, 4012,
+ 2163, 2163, 2163, 3499, 3499, 2164, 2163, 2163, 3770, 4013,
+ 3499, 2163, 2163, 2163, 2163, 4012, 4012, 4012, 4012, 4012,
+ 4012, 4012, 4012, 2163, 2163, 2163, 4012, 4012, 4012, 4012,
+
+ 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012,
+ 3501, 2163, 4014, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 4015, 5143, 5143, 5143, 5143, 5143, 4014, 4014,
+ 4014, 4014, 4014, 4014, 4014, 4014, 5143, 5143, 5143, 4014,
+ 4014, 4014, 4014, 4014, 4014, 4014, 4014, 4014, 4014, 4014,
+ 4014, 4014, 4014, 2501, 4021, 4022, 4021, 4021, 2501, 2501,
+ 4259, 2501, 2501, 2501, 4021, 4021, 2502, 2501, 2501, 4024,
+ 2501, 4021, 2501, 2501, 2501, 2501, 4259, 4259, 4259, 4259,
+ 4259, 4259, 4259, 4259, 2501, 2501, 2501, 4259, 4259, 4259,
+ 4259, 4259, 4259, 4259, 4259, 4259, 4259, 4259, 4259, 4259,
+
+ 4259, 4026, 2501, 324, 1904, 1904, 1904, 1904, 324, 324,
+ 2168, 324, 324, 324, 681, 681, 325, 324, 324, 2169,
+ 324, 681, 324, 324, 324, 324, 2168, 2168, 2168, 2168,
+ 2168, 2168, 2168, 2168, 324, 324, 324, 2168, 2168, 2168,
+ 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
+ 2168, 685, 324, 4260, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4261, 5143, 5143, 5143, 5143, 5143, 4260,
+ 4260, 4260, 4260, 4260, 4260, 4260, 4260, 5143, 5143, 5143,
+ 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260,
+ 4260, 4260, 4260, 4260, 4023, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 4025, 5143, 5143, 5143, 5143, 5143,
+ 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 5143, 5143,
+ 5143, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023,
+ 4023, 4023, 4023, 4023, 4023, 838, 4029, 3782, 4029, 4029,
+ 838, 838, 4264, 838, 838, 838, 1910, 1910, 839, 838,
+ 838, 4265, 838, 1910, 838, 838, 838, 838, 4264, 4264,
+ 4264, 4264, 4264, 4264, 4264, 4264, 838, 838, 838, 4264,
+ 4264, 4264, 4264, 4264, 4264, 4264, 4264, 4264, 4264, 4264,
+ 4264, 4264, 4264, 1914, 838, 1726, 3605, 3560, 3605, 3605,
+ 1726, 1726, 4032, 1726, 3799, 1726, 1726, 3883, 3801, 3799,
+
+ 3802, 3884, 4033, 3885, 1726, 1726, 3799, 1726, 4032, 4032,
+ 4032, 4032, 4032, 4032, 4032, 4032, 3799, 1726, 3799, 4032,
+ 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032,
+ 4032, 4032, 4032, 1726, 1726, 4046, 5143, 4269, 5143, 5143,
+ 5143, 5143, 5143, 4270, 4270, 4270, 4270, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4270, 4270, 4270, 4270, 4270, 5143,
+ 4270, 5143, 5143, 5143, 5143, 5143, 5143, 4270, 3798, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3804, 5143,
+ 5143, 5143, 5143, 5143, 3798, 3798, 3798, 3798, 3798, 3798,
+ 3798, 3798, 5143, 5143, 5143, 3798, 3798, 3798, 3798, 3798,
+
+ 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 248,
+ 1460, 1460, 1460, 1460, 248, 377, 603, 248, 604, 248,
+ 336, 1701, 606, 604, 607, 1702, 609, 1703, 248, 248,
+ 604, 248, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 604, 248, 604, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 377, 248, 1726,
+ 2585, 2960, 2585, 2585, 1726, 2961, 1726, 1726, 1726, 1726,
+ 2585, 2585, 1727, 1726, 1726, 2962, 1726, 2961, 1726, 1726,
+ 1726, 1726, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
+ 1726, 1726, 1726, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
+
+ 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 1726, 2231,
+ 4271, 4272, 4271, 4271, 2231, 2231, 4273, 2231, 4274, 2231,
+ 2231, 4275, 4276, 4274, 4277, 3884, 4278, 4279, 2231, 2231,
+ 4274, 2231, 4273, 4273, 4273, 4273, 4273, 4273, 4273, 4273,
+ 4274, 2231, 4274, 4273, 4273, 4273, 4273, 4273, 4273, 4273,
+ 4273, 4273, 4273, 4273, 4273, 4273, 4273, 2231, 2231, 1093,
+ 1928, 1940, 1928, 1928, 1093, 1925, 1093, 1093, 1093, 1093,
+ 1928, 1928, 1740, 1093, 1093, 4280, 1093, 1925, 1093, 1093,
+ 1093, 1093, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925,
+ 1093, 1093, 1093, 1925, 1925, 1925, 1925, 1925, 1925, 1925,
+
+ 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1093, 4046,
+ 5143, 4047, 5143, 5143, 5143, 5143, 5143, 4048, 4048, 4048,
+ 4048, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4048, 4048,
+ 4048, 4048, 4048, 5143, 4048, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4048, 1726, 3885, 3871, 3885, 3885, 1726, 1726, 4049,
+ 1726, 3885, 1726, 1726, 3883, 4050, 3885, 4051, 4052, 4053,
+ 3885, 1726, 1726, 3885, 1726, 4049, 4049, 4049, 4049, 4049,
+ 4049, 4049, 4049, 3885, 1726, 3885, 4049, 4049, 4049, 4049,
+ 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049,
+ 1726, 1726, 4284, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 4285, 5143, 5143, 5143, 5143, 5143, 4284, 4284,
+ 4284, 4284, 4284, 4284, 4284, 4284, 5143, 5143, 5143, 4284,
+ 4284, 4284, 4284, 4284, 4284, 4284, 4284, 4284, 4284, 4284,
+ 4284, 4284, 4284, 1967, 4043, 4286, 4043, 4043, 1967, 1967,
+ 4287, 1967, 4043, 1967, 1967, 4038, 4288, 4043, 4289, 4290,
+ 4291, 4043, 1967, 1967, 4043, 1967, 4287, 4287, 4287, 4287,
+ 4287, 4287, 4287, 4287, 4043, 1967, 4043, 4287, 4287, 4287,
+ 4287, 4287, 4287, 4287, 4287, 4287, 4287, 4287, 4287, 4287,
+ 4287, 1967, 1967, 4294, 5143, 4295, 5143, 5143, 5143, 5143,
+ 5143, 4296, 4296, 4296, 4296, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 4296, 4296, 4296, 4296, 4296, 5143, 4296, 5143,
+ 5143, 5143, 5143, 5143, 5143, 4296, 1458, 2850, 2203, 2850,
+ 2850, 1458, 1458, 2511, 1458, 2512, 1458, 1458, 2852, 2515,
+ 2512, 2516, 2853, 2518, 2855, 1458, 1458, 2512, 1458, 2511,
+ 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2512, 1458, 2512,
+ 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511,
+ 2511, 2511, 2511, 2511, 1458, 1458, 599, 854, 854, 854,
+ 854, 599, 1038, 855, 599, 856, 599, 1039, 1040, 858,
+ 856, 859, 1041, 861, 1042, 599, 599, 856, 599, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 856, 599, 856,
+
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1038, 599, 2851, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 2854, 5143, 5143, 5143,
+ 5143, 5143, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851,
+ 5143, 5143, 5143, 2851, 2851, 2851, 2851, 2851, 2851, 2851,
+ 2851, 2851, 2851, 2851, 2851, 2851, 2851, 1458, 2513, 2532,
+ 2513, 2513, 1458, 2510, 1458, 1458, 1458, 1458, 2513, 2513,
+ 1459, 1458, 1458, 2856, 1458, 2510, 1458, 1458, 1458, 1458,
+ 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 1458, 1458,
+ 1458, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510,
+
+ 2510, 2510, 2510, 2510, 2510, 2510, 1458, 1921, 3180, 3181,
+ 3180, 3180, 1921, 1921, 3182, 1921, 3183, 1921, 1921, 3184,
+ 3185, 3183, 3186, 4297, 3187, 3188, 1921, 1921, 3183, 1921,
+ 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3183, 1921,
+ 3183, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
+ 3182, 3182, 3182, 3182, 3182, 1921, 1921, 1504, 3523, 3792,
+ 3523, 3523, 1504, 2986, 2620, 1504, 2621, 1504, 2984, 3793,
+ 3886, 2621, 2624, 4298, 2626, 3795, 1504, 1504, 2621, 1504,
+ 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 2621, 1504,
+ 2621, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796,
+
+ 3796, 3796, 3796, 3796, 3796, 2986, 1504, 2869, 5143, 2870,
+ 5143, 5143, 5143, 5143, 5143, 2871, 2871, 2871, 2871, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 2871, 2871, 2871, 2871,
+ 2871, 5143, 2871, 5143, 5143, 5143, 5143, 5143, 5143, 2871,
+ 1458, 2855, 2573, 2855, 2855, 1458, 1458, 2872, 1458, 2855,
+ 1458, 1458, 2852, 2873, 2855, 2874, 2875, 2876, 2855, 1458,
+ 1458, 2855, 1458, 2872, 2872, 2872, 2872, 2872, 2872, 2872,
+ 2872, 2855, 1458, 2855, 2872, 2872, 2872, 2872, 2872, 2872,
+ 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 1458, 1458,
+ 3538, 4299, 4300, 4299, 4299, 3538, 3538, 4301, 3538, 4302,
+
+ 3538, 3538, 4303, 4304, 4302, 4305, 4306, 4307, 4308, 3538,
+ 3538, 4302, 3538, 4301, 4301, 4301, 4301, 4301, 4301, 4301,
+ 4301, 4302, 3538, 4302, 4301, 4301, 4301, 4301, 4301, 4301,
+ 4301, 4301, 4301, 4301, 4301, 4301, 4301, 4301, 3538, 3538,
+ 2228, 3617, 3568, 3617, 3617, 2228, 2228, 4066, 2228, 3811,
+ 2228, 2228, 3577, 3812, 3811, 3813, 3814, 4067, 3253, 2228,
+ 2228, 3811, 2228, 4066, 4066, 4066, 4066, 4066, 4066, 4066,
+ 4066, 3811, 2228, 3811, 4066, 4066, 4066, 4066, 4066, 4066,
+ 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 2228, 2228,
+ 4076, 5143, 4309, 5143, 5143, 5143, 5143, 5143, 4310, 4310,
+
+ 4310, 4310, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4310,
+ 4310, 4310, 4310, 4310, 5143, 4310, 5143, 5143, 5143, 5143,
+ 5143, 5143, 4310, 3810, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3815, 5143, 5143, 5143, 5143, 5143, 3810,
+ 3810, 3810, 3810, 3810, 3810, 3810, 3810, 5143, 5143, 5143,
+ 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810,
+ 3810, 3810, 3810, 3810, 255, 1478, 1478, 1478, 1478, 255,
+ 469, 628, 255, 629, 255, 468, 1590, 630, 629, 631,
+ 1721, 633, 1592, 255, 255, 629, 255, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1722, 1722, 629, 255, 629, 1722, 1722,
+
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 1722, 1722, 469, 255, 2937, 4311, 4312, 4311, 4311, 2937,
+ 2937, 4313, 2937, 4314, 2937, 2937, 4126, 4315, 4314, 4316,
+ 3814, 4317, 4123, 2937, 2937, 4314, 2937, 4313, 4313, 4313,
+ 4313, 4313, 4313, 4313, 4313, 4314, 2937, 4314, 4313, 4313,
+ 4313, 4313, 4313, 4313, 4313, 4313, 4313, 4313, 4313, 4313,
+ 4313, 4313, 2937, 2937, 1093, 1991, 1962, 1991, 1991, 1093,
+ 1093, 2192, 1093, 1991, 1093, 1093, 1989, 4318, 1991, 2193,
+ 4319, 2195, 1991, 1093, 1093, 1991, 1093, 2192, 2192, 2192,
+ 2192, 2192, 2192, 2192, 2192, 1991, 1093, 1991, 2192, 2192,
+
+ 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192, 2192,
+ 2192, 2192, 1093, 1093, 4076, 5143, 4077, 5143, 5143, 5143,
+ 5143, 5143, 4078, 4078, 4078, 4078, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4078, 4078, 4078, 4078, 4078, 5143, 4078,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4078, 1461, 2238, 854,
+ 2238, 2238, 1461, 1461, 2534, 1461, 2535, 1461, 1461, 2590,
+ 2538, 2535, 2539, 2591, 2541, 2592, 1461, 1461, 2535, 1461,
+ 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2535, 1461,
+ 2535, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534,
+ 2534, 2534, 2534, 2534, 2534, 1461, 1461, 2879, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2880, 5143, 5143,
+ 5143, 5143, 5143, 2879, 2879, 2879, 2879, 2879, 2879, 2879,
+ 2879, 5143, 5143, 5143, 2879, 2879, 2879, 2879, 2879, 2879,
+ 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 1461, 2536,
+ 2881, 2536, 2536, 1461, 2533, 1461, 1461, 1461, 1461, 2536,
+ 2536, 1462, 1461, 1461, 2882, 1461, 2533, 1461, 1461, 1461,
+ 1461, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 1461,
+ 1461, 1461, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 2533,
+ 2533, 2533, 2533, 2533, 2533, 2533, 2533, 1461, 1937, 3208,
+ 1922, 3208, 3208, 1937, 1937, 3209, 1937, 3210, 1937, 1937,
+
+ 3211, 3212, 3210, 3213, 4326, 3214, 3215, 1937, 1937, 3210,
+ 1937, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3210,
+ 1937, 3210, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209,
+ 3209, 3209, 3209, 3209, 3209, 3209, 1937, 1937, 517, 3285,
+ 2985, 3285, 3285, 517, 1264, 1083, 517, 1084, 517, 1262,
+ 3597, 1985, 1084, 1087, 4327, 1089, 3599, 517, 517, 1084,
+ 517, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 1084,
+ 517, 1084, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600,
+ 3600, 3600, 3600, 3600, 3600, 3600, 1264, 517, 2894, 5143,
+ 2895, 5143, 5143, 5143, 5143, 5143, 2896, 2896, 2896, 2896,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2896, 2896, 2896,
+ 2896, 2896, 5143, 2896, 5143, 5143, 5143, 5143, 5143, 5143,
+ 2896, 1461, 2592, 2897, 2592, 2592, 1461, 1461, 2898, 1461,
+ 2592, 1461, 1461, 2590, 2899, 2592, 2900, 2901, 2902, 2592,
+ 1461, 1461, 2592, 1461, 2898, 2898, 2898, 2898, 2898, 2898,
+ 2898, 2898, 2592, 1461, 2592, 2898, 2898, 2898, 2898, 2898,
+ 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 1461,
+ 1461, 3554, 4328, 3539, 4328, 4328, 3554, 3554, 4329, 3554,
+ 4330, 3554, 3554, 4331, 4332, 4330, 4333, 4334, 4335, 4336,
+ 3554, 3554, 4330, 3554, 4329, 4329, 4329, 4329, 4329, 4329,
+
+ 4329, 4329, 4330, 3554, 4330, 4329, 4329, 4329, 4329, 4329,
+ 4329, 4329, 4329, 4329, 4329, 4329, 4329, 4329, 4329, 3554,
+ 3554, 709, 709, 709, 709, 5143, 169, 115, 5143, 116,
+ 5143, 168, 850, 116, 116, 118, 851, 120, 852, 5143,
+ 5143, 116, 5143, 853, 853, 853, 853, 853, 853, 853,
+ 853, 116, 5143, 116, 853, 853, 853, 853, 853, 853,
+ 853, 853, 853, 853, 853, 853, 853, 853, 169, 1291,
+ 2006, 1962, 2006, 2006, 1291, 1291, 2669, 1291, 2289, 1291,
+ 1291, 2290, 2289, 2289, 2291, 2292, 2670, 2109, 1291, 1291,
+ 2289, 1291, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669,
+
+ 2289, 1291, 2289, 2669, 2669, 2669, 2669, 2669, 2669, 2669,
+ 2669, 2669, 2669, 2669, 2669, 2669, 2669, 1291, 1291, 599,
+ 712, 712, 712, 712, 599, 599, 855, 599, 856, 599,
+ 599, 857, 858, 856, 859, 860, 861, 862, 599, 599,
+ 856, 599, 855, 855, 855, 855, 855, 855, 855, 855,
+ 856, 599, 856, 855, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 855, 855, 855, 855, 599, 599, 1234,
+ 2007, 2294, 2007, 2007, 1234, 1234, 2205, 1234, 2206, 1234,
+ 1234, 2295, 3565, 2206, 2210, 4343, 2212, 2297, 1234, 1234,
+ 2206, 1234, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+
+ 2206, 1234, 2206, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+ 2205, 2205, 2205, 2205, 2205, 2205, 2205, 1234, 1234, 1234,
+ 2007, 2294, 2007, 2007, 1234, 1234, 2547, 1234, 2206, 1234,
+ 1234, 2295, 2209, 2206, 2210, 2296, 2548, 2297, 1234, 1234,
+ 2206, 1234, 2547, 2547, 2547, 2547, 2547, 2547, 2547, 2547,
+ 2206, 1234, 2206, 2547, 2547, 2547, 2547, 2547, 2547, 2547,
+ 2547, 2547, 2547, 2547, 2547, 2547, 2547, 1234, 1234, 1234,
+ 2207, 854, 2207, 2207, 1234, 2204, 1234, 1234, 1234, 1234,
+ 2207, 2207, 1235, 1234, 1234, 2549, 1234, 2204, 1234, 1234,
+ 1234, 1234, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204,
+
+ 1234, 1234, 1234, 2204, 2204, 2204, 2204, 2204, 2204, 2204,
+ 2204, 2204, 2204, 2204, 2204, 2204, 2204, 2204, 1234, 1711,
+ 2910, 2911, 2910, 2910, 1711, 1711, 2912, 1711, 2913, 1711,
+ 1711, 2914, 2915, 2913, 2916, 4344, 2917, 2918, 1711, 1711,
+ 2913, 1711, 2912, 2912, 2912, 2912, 2912, 2912, 2912, 2912,
+ 2913, 1711, 2913, 2912, 2912, 2912, 2912, 2912, 2912, 2912,
+ 2912, 2912, 2912, 2912, 2912, 2912, 2912, 1711, 1711, 946,
+ 3244, 3568, 3244, 3244, 946, 2036, 1778, 946, 1779, 946,
+ 2035, 3569, 2692, 1779, 1782, 4345, 1784, 3571, 946, 946,
+ 1779, 946, 3572, 3572, 3572, 3572, 3572, 3572, 3572, 3572,
+
+ 1779, 946, 1779, 3572, 3572, 3572, 3572, 3572, 3572, 3572,
+ 3572, 3572, 3572, 3572, 3572, 3572, 3572, 2036, 946, 2209,
+ 5143, 2560, 2296, 2561, 5143, 5143, 5143, 5143, 5143, 2562,
+ 2562, 2562, 2562, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 2562, 2562, 2562, 2562, 2562, 5143, 2562, 5143, 5143, 5143,
+ 5143, 5143, 5143, 2562, 1234, 2297, 2563, 2297, 2297, 1234,
+ 1234, 2564, 1234, 2297, 1234, 1234, 2295, 2565, 2297, 2566,
+ 2567, 2568, 2297, 1234, 1234, 2297, 1234, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2297, 1234, 2297, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
+
+ 2564, 2564, 1234, 1234, 599, 862, 862, 862, 862, 599,
+ 599, 1061, 599, 862, 599, 599, 857, 1062, 862, 1063,
+ 1064, 1065, 862, 599, 599, 862, 599, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 862, 599, 862, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 599, 599, 2228, 3253, 3575, 3253, 3253, 2228,
+ 2228, 3857, 2228, 3253, 2228, 2228, 3577, 3578, 3253, 3868,
+ 3580, 4119, 3253, 2228, 2228, 3253, 2228, 4120, 4120, 4120,
+ 4120, 3857, 3857, 3857, 3857, 3253, 2228, 3253, 4120, 4120,
+ 4120, 4120, 4120, 3857, 4120, 3857, 3857, 3857, 3857, 3857,
+
+ 3857, 4120, 2228, 2228, 3576, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3579, 5143, 3581, 5143, 5143, 5143, 5143, 5143,
+ 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 5143, 5143,
+ 5143, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576,
+ 3576, 3576, 3576, 3576, 3576, 255, 1478, 1478, 1478, 1478,
+ 255, 469, 628, 255, 629, 255, 468, 1590, 630, 629,
+ 631, 1721, 633, 1592, 255, 255, 629, 255, 1722, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 629, 255, 629, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 469, 255, 3579, 5143, 3858, 5143, 5143,
+
+ 5143, 5143, 5143, 3857, 3857, 3857, 3857, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3857, 3857, 3857, 3857, 3857, 5143,
+ 3857, 5143, 5143, 5143, 5143, 5143, 5143, 3857, 2228, 3818,
+ 3832, 3818, 3818, 2228, 3817, 2228, 2228, 2228, 2228, 3818,
+ 3818, 2229, 2228, 2228, 3859, 2228, 3817, 2228, 2228, 2228,
+ 2228, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 2228,
+ 2228, 2228, 3817, 3817, 3817, 3817, 3817, 3817, 3817, 3817,
+ 3817, 3817, 3817, 3817, 3817, 3817, 3817, 2228, 2937, 4123,
+ 4124, 4123, 4123, 2937, 2937, 4125, 2937, 4123, 2937, 2937,
+ 4126, 4127, 4123, 4128, 4349, 4129, 4123, 2937, 2937, 4123,
+
+ 2937, 4125, 4125, 4125, 4125, 4125, 4125, 4125, 4125, 4123,
+ 2937, 4123, 4125, 4125, 4125, 4125, 4125, 4125, 4125, 4125,
+ 4125, 4125, 4125, 4125, 4125, 4125, 2937, 2937, 3868, 5143,
+ 3869, 5143, 5143, 5143, 5143, 5143, 3870, 3870, 3870, 3870,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3870, 3870, 3870,
+ 3870, 3870, 5143, 3870, 5143, 5143, 5143, 5143, 5143, 5143,
+ 3870, 1479, 2362, 2563, 2362, 2362, 1479, 1479, 2575, 1479,
+ 2576, 1479, 1479, 2701, 2579, 2576, 2580, 2702, 2582, 2703,
+ 1479, 1479, 2576, 1479, 2575, 2575, 2575, 2575, 2575, 2575,
+ 2575, 2575, 2576, 1479, 2576, 2575, 2575, 2575, 2575, 2575,
+
+ 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 1479,
+ 1479, 2939, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 2940, 5143, 5143, 5143, 5143, 5143, 2939, 2939, 2939,
+ 2939, 2939, 2939, 2939, 2939, 5143, 5143, 5143, 2939, 2939,
+ 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939,
+ 2939, 2939, 1479, 2577, 2897, 2577, 2577, 1479, 2574, 1479,
+ 1479, 1479, 1479, 2577, 2577, 1480, 1479, 1479, 2941, 1479,
+ 2574, 1479, 1479, 1479, 1479, 2574, 2574, 2574, 2574, 2574,
+ 2574, 2574, 2574, 1479, 1479, 1479, 2574, 2574, 2574, 2574,
+ 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574,
+
+ 2574, 1479, 1960, 3258, 3236, 3258, 3258, 1960, 1960, 3259,
+ 1960, 3260, 1960, 1960, 3261, 3262, 3260, 3263, 4353, 3264,
+ 3265, 1960, 1960, 3260, 1960, 3259, 3259, 3259, 3259, 3259,
+ 3259, 3259, 3259, 3260, 1960, 3260, 3259, 3259, 3259, 3259,
+ 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
+ 1960, 1960, 536, 3380, 3001, 3380, 3380, 536, 1339, 1135,
+ 536, 1136, 536, 1338, 3677, 2073, 1136, 1139, 4354, 1141,
+ 3679, 536, 536, 1136, 536, 3680, 3680, 3680, 3680, 3680,
+ 3680, 3680, 3680, 1136, 536, 1136, 3680, 3680, 3680, 3680,
+ 3680, 3680, 3680, 3680, 3680, 3680, 3680, 3680, 3680, 3680,
+
+ 1339, 536, 2951, 5143, 2952, 5143, 5143, 5143, 5143, 5143,
+ 2953, 2953, 2953, 2953, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 2953, 2953, 2953, 2953, 2953, 5143, 2953, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2953, 1479, 2703, 2954, 2703, 2703,
+ 1479, 1479, 2955, 1479, 2703, 1479, 1479, 2701, 2956, 2703,
+ 2957, 2958, 2959, 2703, 1479, 1479, 2703, 1479, 2955, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2955, 2703, 1479, 2703, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 2955, 1479, 1479, 3592, 4355, 4356, 4355, 4355,
+ 3592, 3592, 4357, 3592, 4358, 3592, 3592, 4359, 4360, 4358,
+
+ 4361, 4362, 4363, 4364, 3592, 3592, 4358, 3592, 4357, 4357,
+ 4357, 4357, 4357, 4357, 4357, 4357, 4358, 3592, 4358, 4357,
+ 4357, 4357, 4357, 4357, 4357, 4357, 4357, 4357, 4357, 4357,
+ 4357, 4357, 4357, 3592, 3592, 599, 1039, 1039, 1039, 1039,
+ 599, 1038, 599, 599, 599, 599, 1039, 1039, 600, 599,
+ 599, 1046, 599, 1038, 599, 599, 599, 599, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 599, 599, 599, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 599, 3615, 4371, 4372, 4371, 4371,
+ 3615, 3615, 4373, 3615, 4374, 3615, 3615, 4375, 4376, 4374,
+
+ 4377, 4378, 4379, 4380, 3615, 3615, 4374, 3615, 4373, 4373,
+ 4373, 4373, 4373, 4373, 4373, 4373, 4374, 3615, 4374, 4373,
+ 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373,
+ 4373, 4373, 4373, 3615, 3615, 1236, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 1237, 5143, 5143, 5143, 5143,
+ 5143, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 5143,
+ 5143, 5143, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 710, 1232, 1232, 1232,
+ 1232, 710, 710, 1471, 710, 1232, 710, 710, 1228, 1472,
+ 1232, 1473, 4381, 1474, 1232, 710, 710, 1232, 710, 1471,
+
+ 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1232, 710, 1232,
+ 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471,
+ 1471, 1471, 1471, 1471, 710, 710, 784, 1994, 1994, 1994,
+ 1994, 784, 784, 2263, 784, 2264, 784, 784, 1149, 4382,
+ 2264, 2266, 4383, 2268, 961, 784, 784, 2264, 784, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2264, 784, 2264,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 784, 784, 1245, 5143, 1246, 5143,
+ 5143, 5143, 5143, 5143, 1247, 1247, 1247, 1247, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 1247, 1247, 1247, 1247, 1247,
+
+ 5143, 1247, 5143, 5143, 5143, 5143, 5143, 5143, 1247, 962,
+ 2656, 2657, 2656, 2656, 962, 962, 2658, 962, 2659, 962,
+ 962, 1835, 2660, 2659, 2661, 3023, 2662, 1832, 962, 962,
+ 2659, 962, 2658, 2658, 2658, 2658, 2658, 2658, 2658, 2658,
+ 2659, 962, 2659, 2658, 2658, 2658, 2658, 2658, 2658, 2658,
+ 2658, 2658, 2658, 2658, 2658, 2658, 2658, 962, 962, 599,
+ 2897, 2897, 2897, 2897, 599, 1038, 1061, 599, 862, 599,
+ 1039, 1040, 1062, 862, 1063, 3217, 1065, 1042, 599, 599,
+ 862, 599, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
+ 862, 599, 862, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
+
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 1038, 599, 1970,
+ 3909, 3871, 3909, 3909, 1970, 1970, 4393, 1970, 4171, 1970,
+ 1970, 4172, 4173, 4171, 4174, 4175, 4394, 3978, 1970, 1970,
+ 4171, 1970, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393,
+ 4171, 1970, 4171, 4393, 4393, 4393, 4393, 4393, 4393, 4393,
+ 4393, 4393, 4393, 4393, 4393, 4393, 4393, 1970, 1970, 4170,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4176,
+ 5143, 5143, 5143, 5143, 5143, 4170, 4170, 4170, 4170, 4170,
+ 4170, 4170, 4170, 5143, 5143, 5143, 4170, 4170, 4170, 4170,
+ 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170,
+
+ 1970, 2963, 3282, 2963, 2963, 1970, 3283, 1970, 1970, 1970,
+ 1970, 2963, 2963, 1971, 1970, 1970, 3284, 1970, 3283, 1970,
+ 1970, 1970, 1970, 3283, 3283, 3283, 3283, 3283, 3283, 3283,
+ 3283, 1970, 1970, 1970, 3283, 3283, 3283, 3283, 3283, 3283,
+ 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 1970,
+ 2234, 4395, 4286, 4395, 4395, 2234, 2234, 4396, 2234, 4397,
+ 2234, 2234, 4398, 4399, 4397, 4400, 4401, 4402, 4403, 2234,
+ 2234, 4397, 2234, 4396, 4396, 4396, 4396, 4396, 4396, 4396,
+ 4396, 4397, 2234, 4397, 4396, 4396, 4396, 4396, 4396, 4396,
+ 4396, 4396, 4396, 4396, 4396, 4396, 4396, 4396, 2234, 2234,
+
+ 4406, 5143, 4407, 5143, 5143, 5143, 5143, 5143, 4408, 4408,
+ 4408, 4408, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4408,
+ 4408, 4408, 4408, 4408, 5143, 4408, 5143, 5143, 5143, 5143,
+ 5143, 5143, 4408, 2286, 3636, 3609, 3636, 3636, 2286, 2286,
+ 3637, 2286, 3638, 2286, 2286, 3639, 3640, 3638, 3641, 3910,
+ 3642, 3643, 2286, 2286, 3638, 2286, 3637, 3637, 3637, 3637,
+ 3637, 3637, 3637, 3637, 3638, 2286, 3638, 3637, 3637, 3637,
+ 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637,
+ 3637, 2286, 2286, 1760, 2668, 3001, 2668, 2668, 1760, 1760,
+ 3024, 1760, 3025, 1760, 1760, 3026, 4409, 3025, 3028, 4410,
+
+ 3030, 3031, 1760, 1760, 3025, 1760, 3024, 3024, 3024, 3024,
+ 3024, 3024, 3024, 3024, 3025, 1760, 3025, 3024, 3024, 3024,
+ 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
+ 3024, 1760, 1760, 1841, 3922, 3575, 3922, 3922, 1841, 1841,
+ 4411, 1841, 4181, 1841, 1841, 3114, 4182, 4181, 4183, 4184,
+ 4412, 2767, 1841, 1841, 4181, 1841, 4411, 4411, 4411, 4411,
+ 4411, 4411, 4411, 4411, 4181, 1841, 4181, 4411, 4411, 4411,
+ 4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411,
+ 4411, 1841, 1841, 4180, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4185, 5143, 5143, 5143, 5143, 5143, 4180,
+
+ 4180, 4180, 4180, 4180, 4180, 4180, 4180, 5143, 5143, 5143,
+ 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180,
+ 4180, 4180, 4180, 4180, 2107, 4413, 3861, 4413, 4413, 2107,
+ 2107, 4414, 2107, 4415, 2107, 2107, 3454, 4416, 4415, 4417,
+ 4418, 4419, 3451, 2107, 2107, 4415, 2107, 4414, 4414, 4414,
+ 4414, 4414, 4414, 4414, 4414, 4415, 2107, 4415, 4414, 4414,
+ 4414, 4414, 4414, 4414, 4414, 4414, 4414, 4414, 4414, 4414,
+ 4414, 4414, 2107, 2107, 4420, 5143, 4421, 5143, 5143, 5143,
+ 5143, 5143, 4422, 4422, 4422, 4422, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4422, 4422, 4422, 4422, 4422, 5143, 4422,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 4422, 876, 4188, 3871,
+ 4188, 4188, 876, 1728, 2026, 876, 1773, 876, 1483, 3561,
+ 2027, 1773, 2028, 4425, 2030, 3563, 876, 876, 1773, 876,
+ 4426, 4426, 4426, 4426, 4426, 4426, 4426, 4426, 1773, 876,
+ 1773, 4426, 4426, 4426, 4426, 4426, 4426, 4426, 4426, 4426,
+ 4426, 4426, 4426, 4426, 4426, 1728, 876, 3018, 3373, 3663,
+ 3373, 3373, 3018, 3018, 3932, 3018, 3373, 3018, 3018, 3665,
+ 3666, 3373, 3944, 3668, 4189, 3373, 3018, 3018, 3373, 3018,
+ 4190, 4190, 4190, 4190, 3932, 3932, 3932, 3932, 3373, 3018,
+ 3373, 4190, 4190, 4190, 4190, 4190, 3932, 4190, 3932, 3932,
+
+ 3932, 3932, 3932, 3932, 4190, 3018, 3018, 3664, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3667, 5143, 3669, 5143, 5143,
+ 5143, 5143, 5143, 3664, 3664, 3664, 3664, 3664, 3664, 3664,
+ 3664, 5143, 5143, 5143, 3664, 3664, 3664, 3664, 3664, 3664,
+ 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3667, 5143,
+ 3933, 5143, 5143, 5143, 5143, 5143, 3932, 3932, 3932, 3932,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3932, 3932, 3932,
+ 3932, 3932, 5143, 3932, 5143, 5143, 5143, 5143, 5143, 5143,
+ 3932, 3018, 3372, 3660, 3372, 3372, 3018, 3661, 3018, 3018,
+ 3018, 3018, 3372, 3372, 3019, 3018, 3018, 3662, 3018, 3661,
+
+ 3018, 3018, 3018, 3018, 3661, 3661, 3661, 3661, 3661, 3661,
+ 3661, 3661, 3018, 3018, 3018, 3661, 3661, 3661, 3661, 3661,
+ 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661,
+ 3018, 3370, 4191, 4192, 4191, 4191, 3370, 3370, 4193, 3370,
+ 4191, 3370, 3370, 4194, 4195, 4191, 4196, 4427, 4197, 4191,
+ 3370, 3370, 4191, 3370, 4193, 4193, 4193, 4193, 4193, 4193,
+ 4193, 4193, 4191, 3370, 4191, 4193, 4193, 4193, 4193, 4193,
+ 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 3370,
+ 3370, 3944, 5143, 3945, 5143, 5143, 5143, 5143, 5143, 3946,
+ 3946, 3946, 3946, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 3946, 3946, 3946, 3946, 3946, 5143, 3946, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3946, 946, 4199, 3575, 4199, 4199, 946,
+ 2036, 1793, 946, 1547, 946, 2035, 3569, 1794, 1547, 1795,
+ 4428, 1797, 3571, 946, 946, 1547, 946, 4429, 4429, 4429,
+ 4429, 4429, 4429, 4429, 4429, 1547, 946, 1547, 4429, 4429,
+ 4429, 4429, 4429, 4429, 4429, 4429, 4429, 4429, 4429, 4429,
+ 4429, 4429, 2036, 946, 793, 2730, 2355, 2730, 2730, 793,
+ 793, 2731, 793, 2732, 793, 793, 1620, 2733, 2732, 2734,
+ 3067, 2735, 1617, 793, 793, 2732, 793, 2731, 2731, 2731,
+ 2731, 2731, 2731, 2731, 2731, 2732, 793, 2732, 2731, 2731,
+
+ 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731, 2731,
+ 2731, 2731, 793, 793, 255, 1380, 1380, 1380, 1380, 255,
+ 469, 403, 255, 345, 255, 468, 1590, 405, 345, 406,
+ 1591, 408, 1592, 255, 255, 345, 255, 1593, 1593, 1593,
+ 1593, 1593, 1593, 1593, 1593, 345, 255, 345, 1593, 1593,
+ 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593,
+ 1593, 1593, 469, 255, 1841, 3447, 3448, 3447, 3447, 1841,
+ 3449, 1841, 1841, 1841, 1841, 3447, 3447, 1842, 1841, 1841,
+ 3450, 1841, 3449, 1841, 1841, 1841, 1841, 3449, 3449, 3449,
+ 3449, 3449, 3449, 3449, 3449, 1841, 1841, 1841, 3449, 3449,
+
+ 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449, 3449,
+ 3449, 3449, 3449, 1841, 1841, 2767, 3112, 2767, 2767, 1841,
+ 1841, 3113, 1841, 2767, 1841, 1841, 3114, 3115, 2767, 3116,
+ 3117, 3118, 2767, 1841, 1841, 2767, 1841, 3113, 3113, 3113,
+ 3113, 3113, 3113, 3113, 3113, 2767, 1841, 2767, 3113, 3113,
+ 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113,
+ 3113, 3113, 1841, 1841, 3445, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3446, 5143, 5143, 5143, 5143, 5143,
+ 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 5143, 5143,
+ 5143, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445,
+
+ 3445, 3445, 3445, 3445, 3445, 248, 1817, 1817, 1817, 1817,
+ 248, 377, 729, 248, 610, 248, 336, 1701, 730, 610,
+ 731, 2086, 733, 1703, 248, 248, 610, 248, 2087, 2087,
+ 2087, 2087, 2087, 2087, 2087, 2087, 610, 248, 610, 2087,
+ 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087,
+ 2087, 2087, 2087, 377, 248, 1970, 3978, 3968, 3978, 3978,
+ 1970, 1970, 4432, 1970, 3978, 1970, 1970, 4172, 4210, 3978,
+ 4211, 4234, 4433, 3978, 1970, 1970, 3978, 1970, 4432, 4432,
+ 4432, 4432, 4432, 4432, 4432, 4432, 3978, 1970, 3978, 4432,
+ 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432,
+
+ 4432, 4432, 4432, 1970, 1970, 2234, 4403, 4434, 4403, 4403,
+ 2234, 2234, 4435, 2234, 4403, 2234, 2234, 4398, 4436, 4403,
+ 4437, 4438, 4439, 4403, 2234, 2234, 4403, 2234, 4435, 4435,
+ 4435, 4435, 4435, 4435, 4435, 4435, 4403, 2234, 4403, 4435,
+ 4435, 4435, 4435, 4435, 4435, 4435, 4435, 4435, 4435, 4435,
+ 4435, 4435, 4435, 2234, 2234, 4208, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 4213, 5143, 5143, 5143, 5143,
+ 5143, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 5143,
+ 5143, 5143, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208,
+ 4208, 4208, 4208, 4208, 4208, 4208, 4442, 5143, 4443, 5143,
+
+ 5143, 5143, 5143, 5143, 4444, 4444, 4444, 4444, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 4444, 4444, 4444, 4444, 4444,
+ 5143, 4444, 5143, 5143, 5143, 5143, 5143, 5143, 4444, 3957,
+ 4445, 4446, 4445, 4445, 3957, 3957, 4447, 3957, 4445, 3957,
+ 3957, 4448, 4449, 4445, 4450, 4451, 4452, 4445, 3957, 3957,
+ 4445, 3957, 4447, 4447, 4447, 4447, 4447, 4447, 4447, 4447,
+ 4445, 3957, 4445, 4447, 4447, 4447, 4447, 4447, 4447, 4447,
+ 4447, 4447, 4447, 4447, 4447, 4447, 4447, 3957, 3957, 512,
+ 1984, 1817, 1984, 1984, 512, 512, 2607, 512, 1984, 512,
+ 512, 1979, 2256, 1984, 2257, 2258, 2608, 1984, 512, 512,
+
+ 1984, 512, 2607, 2607, 2607, 2607, 2607, 2607, 2607, 2607,
+ 1984, 512, 1984, 2607, 2607, 2607, 2607, 2607, 2607, 2607,
+ 2607, 2607, 2607, 2607, 2607, 2607, 2607, 512, 512, 2422,
+ 4455, 3958, 4455, 4455, 2422, 2422, 4456, 2422, 4455, 2422,
+ 2422, 4457, 4458, 4455, 4459, 4460, 4461, 4455, 2422, 2422,
+ 4455, 2422, 4456, 4456, 4456, 4456, 4456, 4456, 4456, 4456,
+ 4455, 2422, 4455, 4456, 4456, 4456, 4456, 4456, 4456, 4456,
+ 4456, 4456, 4456, 4456, 4456, 4456, 4456, 2422, 2422, 1588,
+ 2430, 2768, 2430, 2430, 1588, 1588, 2755, 1588, 2430, 1588,
+ 1588, 2769, 2758, 2430, 2759, 2770, 2761, 2430, 1588, 1588,
+
+ 2430, 1588, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
+ 2430, 1588, 2430, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
+ 2755, 2755, 2755, 2755, 2755, 2755, 2755, 1588, 1588, 784,
+ 961, 961, 961, 961, 784, 784, 1148, 784, 961, 784,
+ 784, 1149, 1150, 961, 1151, 1152, 1153, 961, 784, 784,
+ 961, 784, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 961, 784, 961, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 784, 784, 3096,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3097,
+ 5143, 5143, 5143, 5143, 5143, 3096, 3096, 3096, 3096, 3096,
+
+ 3096, 3096, 3096, 5143, 5143, 5143, 3096, 3096, 3096, 3096,
+ 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096, 3096,
+ 1588, 2756, 1147, 2756, 2756, 1588, 2754, 1588, 1588, 1588,
+ 1588, 2756, 2756, 1589, 1588, 1588, 3098, 1588, 2754, 1588,
+ 1588, 1588, 1588, 2754, 2754, 2754, 2754, 2754, 2754, 2754,
+ 2754, 1588, 1588, 1588, 2754, 2754, 2754, 2754, 2754, 2754,
+ 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754, 2754, 1588,
+ 2094, 3435, 3436, 3435, 3435, 2094, 2094, 3437, 2094, 3435,
+ 2094, 2094, 3438, 3439, 3435, 3440, 4465, 3441, 3435, 2094,
+ 2094, 3435, 2094, 3437, 3437, 3437, 3437, 3437, 3437, 3437,
+
+ 3437, 3435, 2094, 3435, 3437, 3437, 3437, 3437, 3437, 3437,
+ 3437, 3437, 3437, 3437, 3437, 3437, 3437, 3437, 2094, 2094,
+ 550, 3462, 3112, 3462, 3462, 550, 1390, 1156, 550, 967,
+ 550, 1389, 3728, 2119, 967, 1159, 4466, 1161, 3730, 550,
+ 550, 967, 550, 3731, 3731, 3731, 3731, 3731, 3731, 3731,
+ 3731, 967, 550, 967, 3731, 3731, 3731, 3731, 3731, 3731,
+ 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 1390, 550,
+ 3107, 5143, 3108, 5143, 5143, 5143, 5143, 5143, 3109, 3109,
+ 3109, 3109, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3109,
+ 3109, 3109, 3109, 3109, 5143, 3109, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 3109, 2427, 3720, 3721, 3720, 3720, 2427, 2427,
+ 3722, 2427, 3720, 2427, 2427, 3723, 3724, 3720, 3725, 3979,
+ 3726, 3720, 2427, 2427, 3720, 2427, 3722, 3722, 3722, 3722,
+ 3722, 3722, 3722, 3722, 3720, 2427, 3720, 3722, 3722, 3722,
+ 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722, 3722,
+ 3722, 2427, 2427, 561, 812, 812, 812, 812, 561, 561,
+ 813, 561, 561, 561, 561, 561, 562, 561, 561, 984,
+ 561, 561, 561, 561, 561, 561, 813, 813, 813, 813,
+ 813, 813, 813, 813, 561, 561, 561, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+
+ 813, 985, 561, 2484, 3754, 3764, 3754, 3754, 2484, 2484,
+ 4250, 2484, 2484, 2484, 3754, 3754, 2485, 2484, 2484, 3995,
+ 4251, 3754, 2484, 2484, 2484, 2484, 4250, 4250, 4250, 4250,
+ 4250, 4250, 4250, 4250, 2484, 2484, 2484, 4250, 4250, 4250,
+ 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250,
+ 4250, 3756, 2484, 3492, 4252, 4478, 4252, 4252, 3492, 3492,
+ 4479, 3492, 3492, 3492, 4252, 4252, 3493, 3492, 3492, 4480,
+ 3492, 4252, 3492, 3492, 3492, 3492, 4479, 4479, 4479, 4479,
+ 4479, 4479, 4479, 4479, 3492, 3492, 3492, 4479, 4479, 4479,
+ 4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479,
+
+ 4479, 4481, 3492, 2487, 3766, 4003, 3766, 3766, 2487, 2487,
+ 4255, 2487, 2487, 2487, 3766, 3766, 2488, 2487, 2487, 4005,
+ 4256, 3766, 2487, 2487, 2487, 2487, 4255, 4255, 4255, 4255,
+ 4255, 4255, 4255, 4255, 2487, 2487, 2487, 4255, 4255, 4255,
+ 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255,
+ 4255, 3768, 2487, 1680, 4257, 4483, 4257, 4257, 1680, 1680,
+ 4484, 1680, 1680, 1680, 2493, 2493, 1681, 1680, 1680, 4485,
+ 1680, 2493, 1680, 1680, 1680, 1680, 4484, 4484, 4484, 4484,
+ 4484, 4484, 4484, 4484, 1680, 1680, 1680, 4484, 4484, 4484,
+ 4484, 4484, 4484, 4484, 4484, 4484, 4484, 4484, 4484, 4484,
+
+ 4484, 2831, 1680, 1017, 4258, 4022, 4258, 4258, 1017, 1017,
+ 4486, 1017, 1017, 1017, 2170, 2170, 1018, 1017, 1017, 4487,
+ 1017, 2170, 1017, 1017, 1017, 1017, 4486, 4486, 4486, 4486,
+ 4486, 4486, 4486, 4486, 1017, 1017, 1017, 4486, 4486, 4486,
+ 4486, 4486, 4486, 4486, 4486, 4486, 4486, 4486, 4486, 4486,
+ 4486, 2175, 1017, 2501, 4021, 4022, 4021, 4021, 2501, 2501,
+ 4488, 2501, 2501, 2501, 4021, 4021, 2502, 2501, 2501, 4024,
+ 4489, 4021, 2501, 2501, 2501, 2501, 4488, 4488, 4488, 4488,
+ 4488, 4488, 4488, 4488, 2501, 2501, 2501, 4488, 4488, 4488,
+ 4488, 4488, 4488, 4488, 4488, 4488, 4488, 4488, 4488, 4488,
+
+ 4488, 4026, 2501, 4260, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4261, 5143, 5143, 5143, 5143, 5143, 4260,
+ 4260, 4260, 4260, 4260, 4260, 4260, 4260, 5143, 5143, 5143,
+ 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260,
+ 4260, 4260, 4260, 4260, 838, 1910, 1904, 1910, 1910, 838,
+ 838, 2179, 838, 838, 838, 1910, 1910, 839, 838, 838,
+ 1912, 2180, 1910, 838, 838, 838, 838, 2179, 2179, 2179,
+ 2179, 2179, 2179, 2179, 2179, 838, 838, 838, 2179, 2179,
+ 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179,
+ 2179, 2179, 1914, 838, 599, 854, 854, 854, 854, 599,
+
+ 1038, 855, 599, 856, 599, 1039, 1040, 858, 856, 859,
+ 1041, 861, 1042, 599, 599, 856, 599, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 856, 599, 856, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1038, 599, 1726, 3605, 3560, 3605, 3605, 1726,
+ 1726, 4032, 1726, 3799, 1726, 1726, 3883, 3801, 3799, 4046,
+ 3884, 4269, 3885, 1726, 1726, 3799, 1726, 4270, 4270, 4270,
+ 4270, 4032, 4032, 4032, 4032, 3799, 1726, 3799, 4270, 4270,
+ 4270, 4270, 4270, 4032, 4270, 4032, 4032, 4032, 4032, 4032,
+ 4032, 4270, 1726, 1726, 3798, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 3802, 5143, 3804, 5143, 5143, 5143, 5143, 5143,
+ 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 5143, 5143,
+ 5143, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798, 3798,
+ 3798, 3798, 3798, 3798, 3798, 248, 1460, 1460, 1460, 1460,
+ 248, 377, 603, 248, 604, 248, 336, 1701, 606, 604,
+ 607, 1702, 609, 1703, 248, 248, 604, 248, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 604, 248, 604, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 377, 248, 3802, 5143, 4033, 5143, 5143,
+ 5143, 5143, 5143, 4032, 4032, 4032, 4032, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 4032, 4032, 4032, 4032, 4032, 5143,
+ 4032, 5143, 5143, 5143, 5143, 5143, 5143, 4032, 1726, 2585,
+ 2960, 2585, 2585, 1726, 2961, 1726, 1726, 1726, 1726, 2585,
+ 2585, 1727, 1726, 1726, 2962, 1726, 2961, 1726, 1726, 1726,
+ 1726, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 1726,
+ 1726, 1726, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
+ 2961, 2961, 2961, 2961, 2961, 2961, 2961, 1726, 2231, 4271,
+ 4272, 4271, 4271, 2231, 2231, 4273, 2231, 4274, 2231, 2231,
+ 4275, 4276, 4274, 4277, 4496, 4278, 4279, 2231, 2231, 4274,
+ 2231, 4273, 4273, 4273, 4273, 4273, 4273, 4273, 4273, 4274,
+
+ 2231, 4274, 4273, 4273, 4273, 4273, 4273, 4273, 4273, 4273,
+ 4273, 4273, 4273, 4273, 4273, 4273, 2231, 2231, 4046, 5143,
+ 4047, 5143, 5143, 5143, 5143, 5143, 4048, 4048, 4048, 4048,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4048, 4048, 4048,
+ 4048, 4048, 5143, 4048, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4048, 1726, 3885, 3871, 3885, 3885, 1726, 1726, 4049, 1726,
+ 3885, 1726, 1726, 3883, 4050, 3885, 4051, 4052, 4053, 3885,
+ 1726, 1726, 3885, 1726, 4049, 4049, 4049, 4049, 4049, 4049,
+ 4049, 4049, 3885, 1726, 3885, 4049, 4049, 4049, 4049, 4049,
+ 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 1726,
+
+ 1726, 4284, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4285, 5143, 5143, 5143, 5143, 5143, 4284, 4284, 4284,
+ 4284, 4284, 4284, 4284, 4284, 5143, 5143, 5143, 4284, 4284,
+ 4284, 4284, 4284, 4284, 4284, 4284, 4284, 4284, 4284, 4284,
+ 4284, 4284, 4294, 5143, 4497, 5143, 5143, 5143, 5143, 5143,
+ 4498, 4498, 4498, 4498, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4498, 4498, 4498, 4498, 4498, 5143, 4498, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4498, 2231, 4279, 4499, 4279, 4279,
+ 2231, 2231, 4500, 2231, 4279, 2231, 2231, 4275, 4501, 4279,
+ 4502, 4052, 4503, 4279, 2231, 2231, 4279, 2231, 4500, 4500,
+
+ 4500, 4500, 4500, 4500, 4500, 4500, 4279, 2231, 4279, 4500,
+ 4500, 4500, 4500, 4500, 4500, 4500, 4500, 4500, 4500, 4500,
+ 4500, 4500, 4500, 2231, 2231, 1093, 1928, 1940, 1928, 1928,
+ 1093, 1925, 1093, 1093, 1093, 1093, 1928, 1928, 2527, 1093,
+ 1093, 4504, 1093, 1925, 1093, 1093, 1093, 1093, 1925, 1925,
+ 1925, 1925, 1925, 1925, 1925, 1925, 1093, 1093, 1093, 1925,
+ 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925, 1925,
+ 1925, 1925, 1925, 1925, 1093, 4294, 5143, 4295, 5143, 5143,
+ 5143, 5143, 5143, 4296, 4296, 4296, 4296, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4296, 4296, 4296, 4296, 4296, 5143,
+
+ 4296, 5143, 5143, 5143, 5143, 5143, 5143, 4296, 1458, 2850,
+ 2203, 2850, 2850, 1458, 1458, 2511, 1458, 2512, 1458, 1458,
+ 2852, 3807, 2512, 2516, 4508, 2518, 2855, 1458, 1458, 2512,
+ 1458, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2512,
+ 1458, 2512, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511,
+ 2511, 2511, 2511, 2511, 2511, 2511, 1458, 1458, 1458, 2850,
+ 2203, 2850, 2850, 1458, 1458, 2851, 1458, 2512, 1458, 1458,
+ 2852, 2515, 2512, 2516, 2853, 2854, 2855, 1458, 1458, 2512,
+ 1458, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2512,
+ 1458, 2512, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851,
+
+ 2851, 2851, 2851, 2851, 2851, 2851, 1458, 1458, 1458, 2513,
+ 2532, 2513, 2513, 1458, 2510, 1458, 1458, 1458, 1458, 2513,
+ 2513, 1459, 1458, 1458, 2856, 1458, 2510, 1458, 1458, 1458,
+ 1458, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 1458,
+ 1458, 1458, 2510, 2510, 2510, 2510, 2510, 2510, 2510, 2510,
+ 2510, 2510, 2510, 2510, 2510, 2510, 2510, 1458, 1921, 3180,
+ 3181, 3180, 3180, 1921, 1921, 3182, 1921, 3183, 1921, 1921,
+ 3184, 3185, 3183, 3186, 4509, 3187, 3188, 1921, 1921, 3183,
+ 1921, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3183,
+ 1921, 3183, 3182, 3182, 3182, 3182, 3182, 3182, 3182, 3182,
+
+ 3182, 3182, 3182, 3182, 3182, 3182, 1921, 1921, 2228, 3541,
+ 3816, 3541, 3541, 2228, 3817, 3810, 2228, 3811, 2228, 3818,
+ 3819, 4510, 3811, 3813, 4511, 3815, 3821, 2228, 2228, 3811,
+ 2228, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3811,
+ 2228, 3811, 3822, 3822, 3822, 3822, 3822, 3822, 3822, 3822,
+ 3822, 3822, 3822, 3822, 3822, 3822, 3817, 2228, 2515, 5143,
+ 2869, 2853, 2870, 5143, 5143, 5143, 5143, 5143, 2871, 2871,
+ 2871, 2871, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2871,
+ 2871, 2871, 2871, 2871, 5143, 2871, 5143, 5143, 5143, 5143,
+ 5143, 5143, 2871, 1458, 2855, 2573, 2855, 2855, 1458, 1458,
+
+ 2872, 1458, 2855, 1458, 1458, 2852, 2873, 2855, 2874, 2875,
+ 2876, 2855, 1458, 1458, 2855, 1458, 2872, 2872, 2872, 2872,
+ 2872, 2872, 2872, 2872, 2855, 1458, 2855, 2872, 2872, 2872,
+ 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872,
+ 2872, 1458, 1458, 2228, 3617, 3568, 3617, 3617, 2228, 2228,
+ 4066, 2228, 3811, 2228, 2228, 3577, 3812, 3811, 4076, 3814,
+ 4309, 3253, 2228, 2228, 3811, 2228, 4310, 4310, 4310, 4310,
+ 4066, 4066, 4066, 4066, 3811, 2228, 3811, 4310, 4310, 4310,
+ 4310, 4310, 4066, 4310, 4066, 4066, 4066, 4066, 4066, 4066,
+ 4310, 2228, 2228, 3810, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 3813, 5143, 3815, 5143, 5143, 5143, 5143, 5143, 3810,
+ 3810, 3810, 3810, 3810, 3810, 3810, 3810, 5143, 5143, 5143,
+ 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810,
+ 3810, 3810, 3810, 3810, 255, 1478, 1478, 1478, 1478, 255,
+ 469, 628, 255, 629, 255, 468, 1590, 630, 629, 631,
+ 1721, 633, 1592, 255, 255, 629, 255, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1722, 1722, 629, 255, 629, 1722, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 1722, 1722, 469, 255, 3813, 5143, 4067, 5143, 5143, 5143,
+ 5143, 5143, 4066, 4066, 4066, 4066, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 4066, 4066, 4066, 4066, 4066, 5143, 4066,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4066, 2937, 4311, 4312,
+ 4311, 4311, 2937, 2937, 4313, 2937, 4314, 2937, 2937, 4126,
+ 4315, 4314, 4316, 4512, 4317, 4123, 2937, 2937, 4314, 2937,
+ 4313, 4313, 4313, 4313, 4313, 4313, 4313, 4313, 4314, 2937,
+ 4314, 4313, 4313, 4313, 4313, 4313, 4313, 4313, 4313, 4313,
+ 4313, 4313, 4313, 4313, 4313, 2937, 2937, 4076, 5143, 4077,
+ 5143, 5143, 5143, 5143, 5143, 4078, 4078, 4078, 4078, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4078, 4078, 4078, 4078,
+ 4078, 5143, 4078, 5143, 5143, 5143, 5143, 5143, 5143, 4078,
+
+ 1504, 2627, 3001, 2627, 2627, 1504, 1504, 3002, 1504, 2627,
+ 1504, 1504, 2622, 3003, 2627, 3004, 3005, 3006, 2627, 1504,
+ 1504, 2627, 1504, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 2627, 1504, 2627, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 1504, 1504,
+ 599, 1039, 1039, 1039, 1039, 599, 1038, 599, 599, 599,
+ 599, 1039, 1039, 600, 599, 599, 1046, 599, 1038, 599,
+ 599, 599, 599, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 599, 599, 599, 1038, 1038, 1038, 1038, 1038, 1038,
+ 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 599,
+
+ 1461, 2238, 854, 2238, 2238, 1461, 1461, 2534, 1461, 2535,
+ 1461, 1461, 2590, 3827, 2535, 2539, 4513, 2541, 2592, 1461,
+ 1461, 2535, 1461, 2534, 2534, 2534, 2534, 2534, 2534, 2534,
+ 2534, 2535, 1461, 2535, 2534, 2534, 2534, 2534, 2534, 2534,
+ 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 1461, 1461,
+ 1461, 2238, 854, 2238, 2238, 1461, 1461, 2879, 1461, 2535,
+ 1461, 1461, 2590, 2538, 2535, 2539, 2591, 2880, 2592, 1461,
+ 1461, 2535, 1461, 2879, 2879, 2879, 2879, 2879, 2879, 2879,
+ 2879, 2535, 1461, 2535, 2879, 2879, 2879, 2879, 2879, 2879,
+ 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 1461, 1461,
+
+ 1461, 2536, 2881, 2536, 2536, 1461, 2533, 1461, 1461, 1461,
+ 1461, 2536, 2536, 1462, 1461, 1461, 2882, 1461, 2533, 1461,
+ 1461, 1461, 1461, 2533, 2533, 2533, 2533, 2533, 2533, 2533,
+ 2533, 1461, 1461, 1461, 2533, 2533, 2533, 2533, 2533, 2533,
+ 2533, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 2533, 1461,
+ 1937, 3208, 1922, 3208, 3208, 1937, 1937, 3209, 1937, 3210,
+ 1937, 1937, 3211, 3212, 3210, 3213, 4514, 3214, 3215, 1937,
+ 1937, 3210, 1937, 3209, 3209, 3209, 3209, 3209, 3209, 3209,
+ 3209, 3210, 1937, 3210, 3209, 3209, 3209, 3209, 3209, 3209,
+ 3209, 3209, 3209, 3209, 3209, 3209, 3209, 3209, 1937, 1937,
+
+ 641, 3557, 3832, 3557, 3557, 641, 1598, 1996, 641, 1997,
+ 641, 1596, 3833, 3021, 1997, 1999, 4515, 2001, 3835, 641,
+ 641, 1997, 641, 3836, 3836, 3836, 3836, 3836, 3836, 3836,
+ 3836, 1997, 641, 1997, 3836, 3836, 3836, 3836, 3836, 3836,
+ 3836, 3836, 3836, 3836, 3836, 3836, 3836, 3836, 1598, 641,
+ 2538, 5143, 2894, 2591, 2895, 5143, 5143, 5143, 5143, 5143,
+ 2896, 2896, 2896, 2896, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 2896, 2896, 2896, 2896, 2896, 5143, 2896, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2896, 1461, 2592, 2897, 2592, 2592,
+ 1461, 1461, 2898, 1461, 2592, 1461, 1461, 2590, 2899, 2592,
+
+ 2900, 2901, 2902, 2592, 1461, 1461, 2592, 1461, 2898, 2898,
+ 2898, 2898, 2898, 2898, 2898, 2898, 2592, 1461, 2592, 2898,
+ 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898,
+ 2898, 2898, 2898, 1461, 1461, 3558, 4342, 4516, 4342, 4342,
+ 3558, 4517, 4518, 3558, 4519, 3558, 4520, 4521, 4522, 4519,
+ 4523, 4524, 4525, 4526, 3558, 3558, 4519, 3558, 4527, 4527,
+ 4527, 4527, 4527, 4527, 4527, 4527, 4519, 3558, 4519, 4527,
+ 4527, 4527, 4527, 4527, 4527, 4527, 4527, 4527, 4527, 4527,
+ 4527, 4527, 4527, 4517, 3558, 1234, 2297, 2563, 2297, 2297,
+ 1234, 1234, 2564, 1234, 2297, 1234, 1234, 2295, 4528, 2297,
+
+ 2566, 4529, 2568, 2297, 1234, 1234, 2297, 1234, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2297, 1234, 2297, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
+ 2564, 2564, 2564, 1234, 1234, 784, 3660, 3660, 3660, 3660,
+ 784, 1359, 2263, 784, 2264, 784, 1360, 1361, 2265, 2264,
+ 2266, 3928, 2268, 1363, 784, 784, 2264, 784, 3929, 3929,
+ 3929, 3929, 3929, 3929, 3929, 3929, 2264, 784, 2264, 3929,
+ 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
+ 3929, 3929, 3929, 1359, 784, 2228, 3253, 3575, 3253, 3253,
+ 2228, 2228, 3576, 2228, 3253, 2228, 2228, 3577, 4533, 3253,
+
+ 3579, 4534, 3581, 3253, 2228, 2228, 3253, 2228, 3576, 3576,
+ 3576, 3576, 3576, 3576, 3576, 3576, 3253, 2228, 3253, 3576,
+ 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576,
+ 3576, 3576, 3576, 2228, 2228, 599, 862, 862, 862, 862,
+ 599, 599, 1061, 599, 862, 599, 599, 857, 1062, 862,
+ 1063, 1064, 1065, 862, 599, 599, 862, 599, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 862, 599, 862, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 599, 599, 1479, 2362, 2563, 2362, 2362,
+ 1479, 1479, 2575, 1479, 2576, 1479, 1479, 2701, 3876, 2576,
+
+ 2580, 4535, 2582, 2703, 1479, 1479, 2576, 1479, 2575, 2575,
+ 2575, 2575, 2575, 2575, 2575, 2575, 2576, 1479, 2576, 2575,
+ 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575,
+ 2575, 2575, 2575, 1479, 1479, 599, 712, 712, 712, 712,
+ 599, 599, 855, 599, 856, 599, 599, 857, 858, 856,
+ 859, 860, 861, 862, 599, 599, 856, 599, 855, 855,
+ 855, 855, 855, 855, 855, 855, 856, 599, 856, 855,
+ 855, 855, 855, 855, 855, 855, 855, 855, 855, 855,
+ 855, 855, 855, 599, 599, 1479, 2362, 2563, 2362, 2362,
+ 1479, 1479, 2939, 1479, 2576, 1479, 1479, 2701, 2579, 2576,
+
+ 2580, 2702, 2940, 2703, 1479, 1479, 2576, 1479, 2939, 2939,
+ 2939, 2939, 2939, 2939, 2939, 2939, 2576, 1479, 2576, 2939,
+ 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939, 2939,
+ 2939, 2939, 2939, 1479, 1479, 1479, 2577, 2897, 2577, 2577,
+ 1479, 2574, 1479, 1479, 1479, 1479, 2577, 2577, 1480, 1479,
+ 1479, 2941, 1479, 2574, 1479, 1479, 1479, 1479, 2574, 2574,
+ 2574, 2574, 2574, 2574, 2574, 2574, 1479, 1479, 1479, 2574,
+ 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574,
+ 2574, 2574, 2574, 2574, 1479, 1960, 3258, 3236, 3258, 3258,
+ 1960, 1960, 3259, 1960, 3260, 1960, 1960, 3261, 3262, 3260,
+
+ 3263, 4536, 3264, 3265, 1960, 1960, 3260, 1960, 3259, 3259,
+ 3259, 3259, 3259, 3259, 3259, 3259, 3260, 1960, 3260, 3259,
+ 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259, 3259,
+ 3259, 3259, 3259, 1960, 1960, 550, 3594, 3575, 3594, 3594,
+ 550, 1390, 2076, 550, 2077, 550, 1389, 3728, 3065, 2077,
+ 2079, 4537, 2081, 3730, 550, 550, 2077, 550, 3880, 3880,
+ 3880, 3880, 3880, 3880, 3880, 3880, 2077, 550, 2077, 3880,
+ 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880,
+ 3880, 3880, 3880, 1390, 550, 2579, 5143, 2951, 2702, 2952,
+ 5143, 5143, 5143, 5143, 5143, 2953, 2953, 2953, 2953, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 2953, 2953, 2953, 2953,
+ 2953, 5143, 2953, 5143, 5143, 5143, 5143, 5143, 5143, 2953,
+ 1479, 2703, 2954, 2703, 2703, 1479, 1479, 2955, 1479, 2703,
+ 1479, 1479, 2701, 2956, 2703, 2957, 2958, 2959, 2703, 1479,
+ 1479, 2703, 1479, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2703, 1479, 2703, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 1479, 1479,
+ 1504, 2262, 2619, 2262, 2262, 1504, 1504, 2620, 1504, 2621,
+ 1504, 1504, 2622, 2623, 2621, 2624, 2625, 2626, 2627, 1504,
+ 1504, 2621, 1504, 2620, 2620, 2620, 2620, 2620, 2620, 2620,
+
+ 2620, 2621, 1504, 2621, 2620, 2620, 2620, 2620, 2620, 2620,
+ 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 1504, 1504,
+ 213, 1082, 1082, 1082, 1082, 213, 382, 337, 213, 338,
+ 213, 381, 1256, 340, 338, 341, 1257, 343, 1258, 213,
+ 213, 338, 213, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 338, 213, 338, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 382, 213,
+ 2982, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 2983, 5143, 5143, 5143, 5143, 5143, 2982, 2982, 2982, 2982,
+ 2982, 2982, 2982, 2982, 5143, 5143, 5143, 2982, 2982, 2982,
+
+ 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982,
+ 2982, 1504, 2984, 2985, 2984, 2984, 1504, 2986, 1504, 1504,
+ 1504, 1504, 2984, 2984, 1505, 1504, 1504, 2987, 1504, 2986,
+ 1504, 1504, 1504, 1504, 2986, 2986, 2986, 2986, 2986, 2986,
+ 2986, 2986, 1504, 1504, 1504, 2986, 2986, 2986, 2986, 2986,
+ 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986,
+ 1504, 1987, 3295, 3296, 3295, 3295, 1987, 1987, 3297, 1987,
+ 3298, 1987, 1987, 3299, 3300, 3298, 3301, 4538, 3302, 3303,
+ 1987, 1987, 3298, 1987, 3297, 3297, 3297, 3297, 3297, 3297,
+ 3297, 3297, 3298, 1987, 3298, 3297, 3297, 3297, 3297, 3297,
+
+ 3297, 3297, 3297, 3297, 3297, 3297, 3297, 3297, 3297, 1987,
+ 1987, 2228, 3617, 3568, 3617, 3617, 2228, 2228, 3810, 2228,
+ 3811, 2228, 2228, 3577, 4510, 3811, 3813, 4539, 3815, 3253,
+ 2228, 2228, 3811, 2228, 3810, 3810, 3810, 3810, 3810, 3810,
+ 3810, 3810, 3811, 2228, 3811, 3810, 3810, 3810, 3810, 3810,
+ 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 2228,
+ 2228, 2998, 5143, 2999, 5143, 5143, 5143, 5143, 5143, 3000,
+ 3000, 3000, 3000, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 3000, 3000, 3000, 3000, 3000, 5143, 3000, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3000, 1504, 2627, 3001, 2627, 2627, 1504,
+
+ 1504, 3002, 1504, 2627, 1504, 1504, 2622, 3003, 2627, 3004,
+ 3005, 3006, 2627, 1504, 1504, 2627, 1504, 3002, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 2627, 1504, 2627, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 3002, 1504, 1504, 599, 2897, 2897, 2897, 2897, 599,
+ 1038, 1061, 599, 862, 599, 1039, 1040, 4540, 862, 1063,
+ 4541, 1065, 1042, 599, 599, 862, 599, 3218, 3218, 3218,
+ 3218, 3218, 3218, 3218, 3218, 862, 599, 862, 3218, 3218,
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 1038, 599, 786, 3052, 3052, 3052, 3052, 786,
+
+ 786, 4542, 786, 4543, 786, 786, 2414, 4544, 4543, 4545,
+ 4546, 4547, 2111, 786, 786, 4543, 786, 4542, 4542, 4542,
+ 4542, 4542, 4542, 4542, 4542, 4543, 786, 4543, 4542, 4542,
+ 4542, 4542, 4542, 4542, 4542, 4542, 4542, 4542, 4542, 4542,
+ 4542, 4542, 786, 786, 1093, 4389, 4098, 4389, 4389, 1093,
+ 1925, 2192, 1093, 1991, 1093, 1928, 1929, 1991, 1991, 2193,
+ 4557, 2195, 1933, 1093, 1093, 1991, 1093, 4558, 4558, 4558,
+ 4558, 4558, 4558, 4558, 4558, 1991, 1093, 1991, 4558, 4558,
+ 4558, 4558, 4558, 4558, 4558, 4558, 4558, 4558, 4558, 4558,
+ 4558, 4558, 1925, 1093, 3558, 4392, 2573, 4392, 4392, 3558,
+
+ 3558, 4518, 3558, 4519, 3558, 3558, 4561, 4522, 4519, 4523,
+ 4562, 4525, 4563, 3558, 3558, 4519, 3558, 4518, 4518, 4518,
+ 4518, 4518, 4518, 4518, 4518, 4519, 3558, 4519, 4518, 4518,
+ 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518,
+ 4518, 4518, 3558, 3558, 1970, 3909, 3871, 3909, 3909, 1970,
+ 1970, 4393, 1970, 4171, 1970, 1970, 4172, 4173, 4171, 4174,
+ 4175, 4394, 3978, 1970, 1970, 4171, 1970, 4393, 4393, 4393,
+ 4393, 4393, 4393, 4393, 4393, 4171, 1970, 4171, 4393, 4393,
+ 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393,
+ 4393, 4393, 1970, 1970, 4406, 5143, 4564, 5143, 5143, 5143,
+
+ 5143, 5143, 4565, 4565, 4565, 4565, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4565, 4565, 4565, 4565, 4565, 5143, 4565,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4565, 4170, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4176, 5143, 5143,
+ 5143, 5143, 5143, 4170, 4170, 4170, 4170, 4170, 4170, 4170,
+ 4170, 5143, 5143, 5143, 4170, 4170, 4170, 4170, 4170, 4170,
+ 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 1970, 2963,
+ 3282, 2963, 2963, 1970, 3283, 1970, 1970, 1970, 1970, 2963,
+ 2963, 1971, 1970, 1970, 3284, 1970, 3283, 1970, 1970, 1970,
+ 1970, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 1970,
+
+ 1970, 1970, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283,
+ 3283, 3283, 3283, 3283, 3283, 3283, 3283, 1970, 2586, 4566,
+ 4499, 4566, 4566, 2586, 2586, 4567, 2586, 4568, 2586, 2586,
+ 4569, 4570, 4568, 4571, 4175, 4572, 4573, 2586, 2586, 4568,
+ 2586, 4567, 4567, 4567, 4567, 4567, 4567, 4567, 4567, 4568,
+ 2586, 4568, 4567, 4567, 4567, 4567, 4567, 4567, 4567, 4567,
+ 4567, 4567, 4567, 4567, 4567, 4567, 2586, 2586, 1291, 2237,
+ 2410, 2237, 2237, 1291, 2397, 1291, 1291, 1291, 1291, 2237,
+ 2237, 2002, 1291, 1291, 4574, 1291, 2397, 1291, 1291, 1291,
+ 1291, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 1291,
+
+ 1291, 1291, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397,
+ 2397, 2397, 2397, 2397, 2397, 2397, 2397, 1291, 4406, 5143,
+ 4407, 5143, 5143, 5143, 5143, 5143, 4408, 4408, 4408, 4408,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4408, 4408, 4408,
+ 4408, 4408, 5143, 4408, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4408, 1970, 3978, 3968, 3978, 3978, 1970, 1970, 4208, 1970,
+ 3978, 1970, 1970, 4172, 4210, 3978, 4211, 4234, 4213, 3978,
+ 1970, 1970, 3978, 1970, 4208, 4208, 4208, 4208, 4208, 4208,
+ 4208, 4208, 3978, 1970, 3978, 4208, 4208, 4208, 4208, 4208,
+ 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 1970,
+
+ 1970, 3920, 4578, 4579, 4578, 4578, 3920, 3920, 4580, 3920,
+ 4581, 3920, 3920, 4582, 4583, 4581, 4584, 4585, 4586, 4587,
+ 3920, 3920, 4581, 3920, 4580, 4580, 4580, 4580, 4580, 4580,
+ 4580, 4580, 4581, 3920, 4581, 4580, 4580, 4580, 4580, 4580,
+ 4580, 4580, 4580, 4580, 4580, 4580, 4580, 4580, 4580, 3920,
+ 3920, 1841, 3922, 3575, 3922, 3922, 1841, 1841, 4411, 1841,
+ 4181, 1841, 1841, 3114, 4182, 4181, 4183, 4184, 4412, 2767,
+ 1841, 1841, 4181, 1841, 4411, 4411, 4411, 4411, 4411, 4411,
+ 4411, 4411, 4181, 1841, 4181, 4411, 4411, 4411, 4411, 4411,
+ 4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411, 1841,
+
+ 1841, 4420, 5143, 4588, 5143, 5143, 5143, 5143, 5143, 4589,
+ 4589, 4589, 4589, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4589, 4589, 4589, 4589, 4589, 5143, 4589, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4589, 4180, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4185, 5143, 5143, 5143, 5143, 5143,
+ 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 5143, 5143,
+ 5143, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180,
+ 4180, 4180, 4180, 4180, 4180, 2427, 4590, 4124, 4590, 4590,
+ 2427, 2427, 4591, 2427, 4592, 2427, 2427, 3723, 4593, 4592,
+ 4594, 4184, 4595, 3720, 2427, 2427, 4592, 2427, 4591, 4591,
+
+ 4591, 4591, 4591, 4591, 4591, 4591, 4592, 2427, 4592, 4591,
+ 4591, 4591, 4591, 4591, 4591, 4591, 4591, 4591, 4591, 4591,
+ 4591, 4591, 4591, 2427, 2427, 1291, 2109, 2096, 2109, 2109,
+ 1291, 1291, 2398, 1291, 2109, 1291, 1291, 2290, 4596, 2109,
+ 2400, 4597, 2402, 2109, 1291, 1291, 2109, 1291, 2398, 2398,
+ 2398, 2398, 2398, 2398, 2398, 2398, 2109, 1291, 2109, 2398,
+ 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398,
+ 2398, 2398, 2398, 1291, 1291, 4420, 5143, 4421, 5143, 5143,
+ 5143, 5143, 5143, 4422, 4422, 4422, 4422, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4422, 4422, 4422, 4422, 4422, 5143,
+
+ 4422, 5143, 5143, 5143, 5143, 5143, 5143, 4422, 876, 1773,
+ 2025, 1773, 1773, 876, 876, 2313, 876, 1773, 876, 876,
+ 1768, 2027, 1773, 2028, 2029, 2314, 1773, 876, 876, 1773,
+ 876, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 1773,
+ 876, 1773, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313,
+ 2313, 2313, 2313, 2313, 2313, 2313, 876, 876, 3018, 3659,
+ 3923, 3659, 3659, 3018, 3661, 3664, 3018, 3373, 3018, 3372,
+ 3924, 4600, 3373, 3667, 4601, 3669, 3926, 3018, 3018, 3373,
+ 3018, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3373,
+ 3018, 3373, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927,
+
+ 3927, 3927, 3927, 3927, 3927, 3927, 3661, 3018, 946, 1547,
+ 1792, 1547, 1547, 946, 946, 2053, 946, 1547, 946, 946,
+ 1780, 1794, 1547, 1795, 1796, 2054, 1547, 946, 946, 1547,
+ 946, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 1547,
+ 946, 1547, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 946, 946, 4432, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4433, 5143,
+ 5143, 5143, 5143, 5143, 4432, 4432, 4432, 4432, 4432, 4432,
+ 4432, 4432, 5143, 5143, 5143, 4432, 4432, 4432, 4432, 4432,
+ 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4442,
+
+ 5143, 4607, 5143, 5143, 5143, 5143, 5143, 4608, 4608, 4608,
+ 4608, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4608, 4608,
+ 4608, 4608, 4608, 5143, 4608, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4608, 248, 1817, 1817, 1817, 1817, 248, 377, 729,
+ 248, 610, 248, 336, 1701, 730, 610, 731, 2086, 733,
+ 1703, 248, 248, 610, 248, 2087, 2087, 2087, 2087, 2087,
+ 2087, 2087, 2087, 610, 248, 610, 2087, 2087, 2087, 2087,
+ 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087,
+ 377, 248, 2586, 4573, 4609, 4573, 4573, 2586, 2586, 4610,
+ 2586, 4573, 2586, 2586, 4569, 4611, 4573, 4612, 4234, 4613,
+
+ 4573, 2586, 2586, 4573, 2586, 4610, 4610, 4610, 4610, 4610,
+ 4610, 4610, 4610, 4573, 2586, 4573, 4610, 4610, 4610, 4610,
+ 4610, 4610, 4610, 4610, 4610, 4610, 4610, 4610, 4610, 4610,
+ 2586, 2586, 4442, 5143, 4443, 5143, 5143, 5143, 5143, 5143,
+ 4444, 4444, 4444, 4444, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4444, 4444, 4444, 4444, 4444, 5143, 4444, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4444, 1815, 3071, 2753, 3071, 3071,
+ 1815, 1815, 3070, 1815, 3071, 1815, 1815, 3395, 3074, 3071,
+ 3075, 3396, 3077, 3071, 1815, 1815, 3071, 1815, 3070, 3070,
+ 3070, 3070, 3070, 3070, 3070, 3070, 3071, 1815, 3071, 3070,
+
+ 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070,
+ 3070, 3070, 3070, 1815, 1815, 784, 1147, 1147, 1147, 1147,
+ 784, 1359, 1148, 784, 961, 784, 1360, 1361, 1150, 961,
+ 1151, 1362, 1153, 1363, 784, 784, 961, 784, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 961, 784, 961, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1359, 784, 3394, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3397, 5143, 5143, 5143, 5143,
+ 5143, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 5143,
+ 5143, 5143, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
+
+ 3394, 3394, 3394, 3394, 3394, 3394, 1815, 3072, 3082, 3072,
+ 3072, 1815, 3069, 1815, 1815, 1815, 1815, 3072, 3072, 1816,
+ 1815, 1815, 3398, 1815, 3069, 1815, 1815, 1815, 1815, 3069,
+ 3069, 3069, 3069, 3069, 3069, 3069, 3069, 1815, 1815, 1815,
+ 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069, 3069,
+ 3069, 3069, 3069, 3069, 3069, 1815, 2393, 3693, 3694, 3693,
+ 3693, 2393, 2393, 3695, 2393, 3693, 2393, 2393, 3696, 3697,
+ 3693, 3698, 4618, 3699, 3693, 2393, 2393, 3693, 2393, 3695,
+ 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3693, 2393, 3693,
+ 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695, 3695,
+
+ 3695, 3695, 3695, 3695, 2393, 2393, 1841, 3960, 4202, 3960,
+ 3960, 1841, 3449, 3113, 1841, 2767, 1841, 3447, 4203, 4235,
+ 2767, 3116, 4619, 3118, 4205, 1841, 1841, 2767, 1841, 4206,
+ 4206, 4206, 4206, 4206, 4206, 4206, 4206, 2767, 1841, 2767,
+ 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206,
+ 4206, 4206, 4206, 4206, 3449, 1841, 3409, 5143, 3410, 5143,
+ 5143, 5143, 5143, 5143, 3411, 3411, 3411, 3411, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3411, 3411, 3411, 3411, 3411,
+ 5143, 3411, 5143, 5143, 5143, 5143, 5143, 5143, 3411, 1818,
+ 2764, 1147, 2764, 2764, 1818, 1818, 3084, 1818, 2764, 1818,
+
+ 1818, 3110, 3087, 2764, 3088, 3111, 3090, 2764, 1818, 1818,
+ 2764, 1818, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
+ 2764, 1818, 2764, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
+ 3084, 3084, 3084, 3084, 3084, 3084, 3084, 1818, 1818, 3412,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3413,
+ 5143, 5143, 5143, 5143, 5143, 3412, 3412, 3412, 3412, 3412,
+ 3412, 3412, 3412, 5143, 5143, 5143, 3412, 3412, 3412, 3412,
+ 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
+ 1818, 3085, 3414, 3085, 3085, 1818, 3083, 1818, 1818, 1818,
+ 1818, 3085, 3085, 1819, 1818, 1818, 3415, 1818, 3083, 1818,
+
+ 1818, 1818, 1818, 3083, 3083, 3083, 3083, 3083, 3083, 3083,
+ 3083, 1818, 1818, 1818, 3083, 3083, 3083, 3083, 3083, 3083,
+ 3083, 3083, 3083, 3083, 3083, 3083, 3083, 3083, 3083, 1818,
+ 2407, 3706, 2394, 3706, 3706, 2407, 2407, 3707, 2407, 3706,
+ 2407, 2407, 3708, 3709, 3706, 3710, 4623, 3711, 3706, 2407,
+ 2407, 3706, 2407, 3707, 3707, 3707, 3707, 3707, 3707, 3707,
+ 3707, 3706, 2407, 3706, 3707, 3707, 3707, 3707, 3707, 3707,
+ 3707, 3707, 3707, 3707, 3707, 3707, 3707, 3707, 2407, 2407,
+ 641, 3715, 3448, 3715, 3715, 641, 1598, 1381, 641, 1154,
+ 641, 1596, 3833, 2425, 1154, 1384, 4624, 1386, 3835, 641,
+
+ 641, 1154, 641, 3974, 3974, 3974, 3974, 3974, 3974, 3974,
+ 3974, 1154, 641, 1154, 3974, 3974, 3974, 3974, 3974, 3974,
+ 3974, 3974, 3974, 3974, 3974, 3974, 3974, 3974, 1598, 641,
+ 3425, 5143, 3426, 5143, 5143, 5143, 5143, 5143, 3427, 3427,
+ 3427, 3427, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3427,
+ 3427, 3427, 3427, 3427, 5143, 3427, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3427, 784, 961, 961, 961, 961, 784, 784,
+ 1148, 784, 961, 784, 784, 1149, 1150, 961, 1151, 1152,
+ 1153, 961, 784, 784, 961, 784, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 961, 784, 961, 1148, 1148, 1148,
+
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 784, 784, 1588, 2430, 2768, 2430, 2430, 1588, 1588,
+ 2755, 1588, 2430, 1588, 1588, 2769, 3971, 2430, 2759, 4625,
+ 2761, 2430, 1588, 1588, 2430, 1588, 2755, 2755, 2755, 2755,
+ 2755, 2755, 2755, 2755, 2430, 1588, 2430, 2755, 2755, 2755,
+ 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
+ 2755, 1588, 1588, 784, 1360, 1360, 1360, 1360, 784, 1359,
+ 784, 784, 784, 784, 1360, 1360, 785, 784, 784, 1367,
+ 784, 1359, 784, 784, 784, 784, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 784, 784, 784, 1359, 1359, 1359,
+
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 784, 1196, 1673, 1673, 1673, 1673, 1196, 1196,
+ 1890, 1196, 1196, 1196, 1891, 1891, 1197, 1196, 1196, 1892,
+ 1196, 1891, 1196, 1196, 1196, 1196, 1890, 1890, 1890, 1890,
+ 1890, 1890, 1890, 1890, 1196, 1196, 1196, 1890, 1890, 1890,
+ 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890,
+ 1890, 1893, 1196, 3492, 4477, 4630, 4477, 4477, 3492, 3492,
+ 4631, 3492, 3492, 3492, 4252, 4252, 3493, 3492, 3492, 4632,
+ 3492, 4252, 3492, 3492, 3492, 3492, 4631, 4631, 4631, 4631,
+ 4631, 4631, 4631, 4631, 3492, 3492, 3492, 4631, 4631, 4631,
+
+ 4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631,
+ 4631, 4481, 3492, 424, 2486, 2486, 2486, 2486, 424, 424,
+ 2817, 424, 424, 424, 680, 680, 425, 424, 424, 2818,
+ 424, 680, 424, 424, 424, 424, 2817, 2817, 2817, 2817,
+ 2817, 2817, 2817, 2817, 424, 424, 424, 2817, 2817, 2817,
+ 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817,
+ 2817, 832, 424, 3492, 4252, 4478, 4252, 4252, 3492, 3492,
+ 4633, 3492, 3492, 3492, 4252, 4252, 3493, 3492, 3492, 4480,
+ 4634, 4252, 3492, 3492, 3492, 3492, 4633, 4633, 4633, 4633,
+ 4633, 4633, 4633, 4633, 3492, 3492, 3492, 4633, 4633, 4633,
+
+ 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
+ 4633, 4481, 3492, 1194, 4482, 4478, 4482, 4482, 1194, 1194,
+ 4637, 1194, 1194, 1194, 1883, 1883, 1195, 1194, 1194, 4638,
+ 1194, 1883, 1194, 1194, 1194, 1194, 4637, 4637, 4637, 4637,
+ 4637, 4637, 4637, 4637, 1194, 1194, 1194, 4637, 4637, 4637,
+ 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637,
+ 4637, 2155, 1194, 1680, 2493, 2486, 2493, 2493, 1680, 1680,
+ 3515, 1680, 1680, 1680, 2493, 2493, 1681, 1680, 1680, 2830,
+ 3516, 2493, 1680, 1680, 1680, 1680, 3515, 3515, 3515, 3515,
+ 3515, 3515, 3515, 3515, 1680, 1680, 1680, 3515, 3515, 3515,
+
+ 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515,
+ 3515, 2831, 1680, 1017, 2170, 2171, 2170, 2170, 1017, 1017,
+ 2497, 1017, 1017, 1017, 2170, 2170, 1018, 1017, 1017, 2173,
+ 2498, 2170, 1017, 1017, 1017, 1017, 2497, 2497, 2497, 2497,
+ 2497, 2497, 2497, 2497, 1017, 1017, 1017, 2497, 2497, 2497,
+ 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497,
+ 2497, 2175, 1017, 2501, 4021, 4022, 4021, 4021, 2501, 2501,
+ 4488, 2501, 2501, 2501, 4021, 4021, 2502, 2501, 2501, 4024,
+ 4489, 4021, 2501, 2501, 2501, 2501, 4488, 4488, 4488, 4488,
+ 4488, 4488, 4488, 4488, 2501, 2501, 2501, 4488, 4488, 4488,
+
+ 4488, 4488, 4488, 4488, 4488, 4488, 4488, 4488, 4488, 4488,
+ 4488, 4026, 2501, 3492, 4493, 4483, 4493, 4493, 3492, 3492,
+ 4646, 3492, 3492, 3492, 3492, 3492, 3493, 3492, 3492, 4647,
+ 3492, 3492, 3492, 3492, 3492, 3492, 4646, 4646, 4646, 4646,
+ 4646, 4646, 4646, 4646, 3492, 3492, 3492, 4646, 4646, 4646,
+ 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646,
+ 4646, 3492, 3492, 1726, 2585, 2960, 2585, 2585, 1726, 2961,
+ 1726, 1726, 1726, 1726, 2585, 2585, 4151, 1726, 1726, 4651,
+ 1726, 2961, 1726, 1726, 1726, 1726, 2961, 2961, 2961, 2961,
+ 2961, 2961, 2961, 2961, 1726, 1726, 1726, 2961, 2961, 2961,
+
+ 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
+ 2961, 2961, 1726, 1726, 3885, 3871, 3885, 3885, 1726, 1726,
+ 4284, 1726, 3885, 1726, 1726, 3883, 4050, 3885, 4294, 4052,
+ 4497, 3885, 1726, 1726, 3885, 1726, 4498, 4498, 4498, 4498,
+ 4284, 4284, 4284, 4284, 3885, 1726, 3885, 4498, 4498, 4498,
+ 4498, 4498, 4284, 4498, 4284, 4284, 4284, 4284, 4284, 4284,
+ 4498, 1726, 1726, 248, 1460, 1460, 1460, 1460, 248, 377,
+ 603, 248, 604, 248, 336, 1701, 606, 604, 607, 1702,
+ 609, 1703, 248, 248, 604, 248, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 604, 248, 604, 1704, 1704, 1704,
+
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 377, 248, 4051, 5143, 4285, 5143, 5143, 5143, 5143,
+ 5143, 4284, 4284, 4284, 4284, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 4284, 4284, 4284, 4284, 4284, 5143, 4284, 5143,
+ 5143, 5143, 5143, 5143, 5143, 4284, 2231, 4279, 4499, 4279,
+ 4279, 2231, 2231, 4500, 2231, 4279, 2231, 2231, 4275, 4501,
+ 4279, 4502, 4652, 4503, 4279, 2231, 2231, 4279, 2231, 4500,
+ 4500, 4500, 4500, 4500, 4500, 4500, 4500, 4279, 2231, 4279,
+ 4500, 4500, 4500, 4500, 4500, 4500, 4500, 4500, 4500, 4500,
+ 4500, 4500, 4500, 4500, 2231, 2231, 4049, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 4053, 5143, 5143, 5143,
+ 5143, 5143, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049,
+ 5143, 5143, 5143, 4049, 4049, 4049, 4049, 4049, 4049, 4049,
+ 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4294, 5143, 4295,
+ 5143, 5143, 5143, 5143, 5143, 4296, 4296, 4296, 4296, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4296, 4296, 4296, 4296,
+ 4296, 5143, 4296, 5143, 5143, 5143, 5143, 5143, 5143, 4296,
+ 784, 3660, 3660, 3660, 3660, 784, 1359, 2263, 784, 2264,
+ 784, 1360, 1361, 2265, 2264, 2266, 3928, 2268, 1363, 784,
+ 784, 2264, 784, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
+
+ 3929, 2264, 784, 2264, 3929, 3929, 3929, 3929, 3929, 3929,
+ 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 1359, 784,
+ 1458, 2855, 2573, 2855, 2855, 1458, 1458, 2872, 1458, 2855,
+ 1458, 1458, 2852, 4656, 2855, 2874, 4657, 2876, 2855, 1458,
+ 1458, 2855, 1458, 2872, 2872, 2872, 2872, 2872, 2872, 2872,
+ 2872, 2855, 1458, 2855, 2872, 2872, 2872, 2872, 2872, 2872,
+ 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 1458, 1458,
+ 3622, 4658, 4659, 4658, 4658, 3622, 3622, 4660, 3622, 4661,
+ 3622, 3622, 4662, 4663, 4661, 4664, 4538, 4665, 4666, 3622,
+ 3622, 4661, 3622, 4660, 4660, 4660, 4660, 4660, 4660, 4660,
+
+ 4660, 4661, 3622, 4661, 4660, 4660, 4660, 4660, 4660, 4660,
+ 4660, 4660, 4660, 4660, 4660, 4660, 4660, 4660, 3622, 3622,
+ 2228, 3253, 3575, 3253, 3253, 2228, 2228, 3576, 2228, 3253,
+ 2228, 2228, 3577, 4667, 3253, 3579, 4668, 3581, 3253, 2228,
+ 2228, 3253, 2228, 3576, 3576, 3576, 3576, 3576, 3576, 3576,
+ 3576, 3253, 2228, 3253, 3576, 3576, 3576, 3576, 3576, 3576,
+ 3576, 3576, 3576, 3576, 3576, 3576, 3576, 3576, 2228, 2228,
+ 1461, 2592, 2897, 2592, 2592, 1461, 1461, 2898, 1461, 2592,
+ 1461, 1461, 2590, 4669, 2592, 2900, 4670, 2902, 2592, 1461,
+ 1461, 2592, 1461, 2898, 2898, 2898, 2898, 2898, 2898, 2898,
+
+ 2898, 2592, 1461, 2592, 2898, 2898, 2898, 2898, 2898, 2898,
+ 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 1461, 1461,
+ 599, 854, 854, 854, 854, 599, 1038, 855, 599, 856,
+ 599, 1039, 1040, 858, 856, 859, 1041, 861, 1042, 599,
+ 599, 856, 599, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 856, 599, 856, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1038, 599,
+ 3558, 4392, 2573, 4392, 4392, 3558, 3558, 4671, 3558, 4519,
+ 3558, 3558, 4561, 4522, 4519, 4523, 4562, 4672, 4563, 3558,
+ 3558, 4519, 3558, 4671, 4671, 4671, 4671, 4671, 4671, 4671,
+
+ 4671, 4519, 3558, 4519, 4671, 4671, 4671, 4671, 4671, 4671,
+ 4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671, 3558, 3558,
+ 4518, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4525, 5143, 5143, 5143, 5143, 5143, 4518, 4518, 4518, 4518,
+ 4518, 4518, 4518, 4518, 5143, 5143, 5143, 4518, 4518, 4518,
+ 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518,
+ 4518, 3558, 4520, 4673, 4520, 4520, 3558, 4517, 3558, 3558,
+ 3558, 3558, 4520, 4520, 3559, 3558, 3558, 4674, 3558, 4517,
+ 3558, 3558, 3558, 3558, 4517, 4517, 4517, 4517, 4517, 4517,
+ 4517, 4517, 3558, 3558, 3558, 4517, 4517, 4517, 4517, 4517,
+
+ 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517,
+ 3558, 3837, 4675, 3193, 4675, 4675, 3837, 3837, 4676, 3837,
+ 4677, 3837, 3837, 4678, 4679, 4677, 4680, 4681, 4682, 4683,
+ 3837, 3837, 4677, 3837, 4676, 4676, 4676, 4676, 4676, 4676,
+ 4676, 4676, 4677, 3837, 4677, 4676, 4676, 4676, 4676, 4676,
+ 4676, 4676, 4676, 4676, 4676, 4676, 4676, 4676, 4676, 3837,
+ 3837, 4684, 5143, 4685, 5143, 5143, 5143, 5143, 5143, 4686,
+ 4686, 4686, 4686, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4686, 4686, 4686, 4686, 4686, 5143, 4686, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4686, 3558, 4563, 4687, 4563, 4563, 3558,
+
+ 3558, 4688, 3558, 4563, 3558, 3558, 4561, 4689, 4563, 4690,
+ 4691, 4692, 4563, 3558, 3558, 4563, 3558, 4688, 4688, 4688,
+ 4688, 4688, 4688, 4688, 4688, 4563, 3558, 4563, 4688, 4688,
+ 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688,
+ 4688, 4688, 3558, 3558, 1762, 3851, 4135, 3851, 3851, 1762,
+ 1762, 4693, 1762, 3851, 1762, 1762, 3846, 4694, 3851, 4695,
+ 4696, 4697, 3851, 1762, 1762, 3851, 1762, 4693, 4693, 4693,
+ 4693, 4693, 4693, 4693, 4693, 3851, 1762, 3851, 4693, 4693,
+ 4693, 4693, 4693, 4693, 4693, 4693, 4693, 4693, 4693, 4693,
+ 4693, 4693, 1762, 1762, 2937, 4123, 4124, 4123, 4123, 2937,
+
+ 2937, 4125, 2937, 4123, 2937, 2937, 4126, 4127, 4123, 4128,
+ 4349, 4129, 4123, 2937, 2937, 4123, 2937, 4125, 4125, 4125,
+ 4125, 4125, 4125, 4125, 4125, 4123, 2937, 4123, 4125, 4125,
+ 4125, 4125, 4125, 4125, 4125, 4125, 4125, 4125, 4125, 4125,
+ 4125, 4125, 2937, 2937, 1479, 2703, 2954, 2703, 2703, 1479,
+ 1479, 2955, 1479, 2703, 1479, 1479, 2701, 4699, 2703, 2957,
+ 4700, 2959, 2703, 1479, 1479, 2703, 1479, 2955, 2955, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2703, 1479, 2703, 2955, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 1479, 1479, 1504, 2627, 3001, 2627, 2627, 1504,
+
+ 1504, 3002, 1504, 2627, 1504, 1504, 2622, 4701, 2627, 3004,
+ 4702, 3006, 2627, 1504, 1504, 2627, 1504, 3002, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 2627, 1504, 2627, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 3002, 1504, 1504, 1476, 2223, 2223, 2223, 2223, 1476,
+ 1476, 4703, 1476, 2223, 1476, 1476, 2218, 4704, 2223, 4705,
+ 4706, 4707, 2223, 1476, 1476, 2223, 1476, 4703, 4703, 4703,
+ 4703, 4703, 4703, 4703, 4703, 2223, 1476, 2223, 4703, 4703,
+ 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703,
+ 4703, 4703, 1476, 1476, 784, 1994, 1994, 1994, 1994, 784,
+
+ 784, 2628, 784, 2264, 784, 784, 1149, 2265, 2264, 2266,
+ 2267, 2629, 961, 784, 784, 2264, 784, 2628, 2628, 2628,
+ 2628, 2628, 2628, 2628, 2628, 2264, 784, 2264, 2628, 2628,
+ 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2628,
+ 2628, 2628, 784, 784, 2263, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2268, 5143, 5143, 5143, 5143, 5143,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 5143, 5143,
+ 5143, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 959, 3009, 3009, 3009, 3009,
+ 959, 959, 3010, 959, 3011, 959, 959, 1583, 3012, 3011,
+
+ 3013, 4710, 3014, 1581, 959, 959, 3011, 959, 3010, 3010,
+ 3010, 3010, 3010, 3010, 3010, 3010, 3011, 959, 3011, 3010,
+ 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010, 3010,
+ 3010, 3010, 3010, 959, 959, 255, 1380, 1380, 1380, 1380,
+ 255, 469, 403, 255, 345, 255, 468, 1590, 1332, 345,
+ 406, 4711, 408, 1592, 255, 255, 345, 255, 1593, 1593,
+ 1593, 1593, 1593, 1593, 1593, 1593, 345, 255, 345, 1593,
+ 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593,
+ 1593, 1593, 1593, 469, 255, 2639, 5143, 2640, 5143, 5143,
+ 5143, 5143, 5143, 2641, 2641, 2641, 2641, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 2641, 2641, 2641, 2641, 2641, 5143,
+ 2641, 5143, 5143, 5143, 5143, 5143, 5143, 2641, 599, 862,
+ 862, 862, 862, 599, 599, 1061, 599, 862, 599, 599,
+ 857, 1062, 862, 1063, 1064, 1065, 862, 599, 599, 862,
+ 599, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 862,
+ 599, 862, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 599, 599, 1588, 4553,
+ 3663, 4553, 4553, 1588, 1588, 4715, 1588, 4716, 1588, 1588,
+ 2769, 4717, 4716, 4718, 4719, 4720, 2430, 1588, 1588, 4716,
+ 1588, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4716,
+
+ 1588, 4716, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715,
+ 4715, 4715, 4715, 4715, 4715, 4715, 1588, 1588, 1093, 1991,
+ 1962, 1991, 1991, 1093, 1093, 2525, 1093, 1991, 1093, 1093,
+ 1989, 1991, 1991, 2193, 2194, 2526, 1991, 1093, 1093, 1991,
+ 1093, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 1991,
+ 1093, 1991, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525,
+ 2525, 2525, 2525, 2525, 2525, 2525, 1093, 1093, 1970, 3909,
+ 3871, 3909, 3909, 1970, 1970, 4393, 1970, 4171, 1970, 1970,
+ 4172, 4173, 4171, 4406, 4175, 4564, 3978, 1970, 1970, 4171,
+ 1970, 4565, 4565, 4565, 4565, 4393, 4393, 4393, 4393, 4171,
+
+ 1970, 4171, 4565, 4565, 4565, 4565, 4565, 4393, 4565, 4393,
+ 4393, 4393, 4393, 4393, 4393, 4565, 1970, 1970, 4170, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4174, 5143, 4176, 5143,
+ 5143, 5143, 5143, 5143, 4170, 4170, 4170, 4170, 4170, 4170,
+ 4170, 4170, 5143, 5143, 5143, 4170, 4170, 4170, 4170, 4170,
+ 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4174,
+ 5143, 4394, 5143, 5143, 5143, 5143, 5143, 4393, 4393, 4393,
+ 4393, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4393, 4393,
+ 4393, 4393, 4393, 5143, 4393, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4393, 1970, 2963, 3282, 2963, 2963, 1970, 3283, 1970,
+
+ 1970, 1970, 1970, 2963, 2963, 1971, 1970, 1970, 3284, 1970,
+ 3283, 1970, 1970, 1970, 1970, 3283, 3283, 3283, 3283, 3283,
+ 3283, 3283, 3283, 1970, 1970, 1970, 3283, 3283, 3283, 3283,
+ 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283,
+ 3283, 1970, 2586, 4566, 4499, 4566, 4566, 2586, 2586, 4567,
+ 2586, 4568, 2586, 2586, 4569, 4570, 4568, 4571, 4726, 4572,
+ 4573, 2586, 2586, 4568, 2586, 4567, 4567, 4567, 4567, 4567,
+ 4567, 4567, 4567, 4568, 2586, 4568, 4567, 4567, 4567, 4567,
+ 4567, 4567, 4567, 4567, 4567, 4567, 4567, 4567, 4567, 4567,
+ 2586, 2586, 4406, 5143, 4407, 5143, 5143, 5143, 5143, 5143,
+
+ 4408, 4408, 4408, 4408, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4408, 4408, 4408, 4408, 4408, 5143, 4408, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4408, 1970, 3978, 3968, 3978, 3978,
+ 1970, 1970, 4208, 1970, 3978, 1970, 1970, 4172, 4210, 3978,
+ 4211, 4234, 4213, 3978, 1970, 1970, 3978, 1970, 4208, 4208,
+ 4208, 4208, 4208, 4208, 4208, 4208, 3978, 1970, 3978, 4208,
+ 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208,
+ 4208, 4208, 4208, 1970, 1970, 599, 2897, 2897, 2897, 2897,
+ 599, 1038, 1061, 599, 862, 599, 1039, 1040, 1062, 862,
+ 1063, 3217, 1065, 1042, 599, 599, 862, 599, 3218, 3218,
+
+ 3218, 3218, 3218, 3218, 3218, 3218, 862, 599, 862, 3218,
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 1038, 599, 1760, 2668, 3001, 2668, 2668,
+ 1760, 1760, 3024, 1760, 3025, 1760, 1760, 3026, 3027, 3025,
+ 3028, 3029, 3030, 3031, 1760, 1760, 3025, 1760, 3024, 3024,
+ 3024, 3024, 3024, 3024, 3024, 3024, 3025, 1760, 3025, 3024,
+ 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
+ 3024, 3024, 3024, 1760, 1760, 213, 1082, 1082, 1082, 1082,
+ 213, 382, 337, 213, 338, 213, 381, 1256, 340, 338,
+ 341, 1257, 343, 1258, 213, 213, 338, 213, 1259, 1259,
+
+ 1259, 1259, 1259, 1259, 1259, 1259, 338, 213, 338, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 382, 213, 3341, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3342, 5143, 5143, 5143, 5143,
+ 5143, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 5143,
+ 5143, 5143, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
+ 3341, 3341, 3341, 3341, 3341, 3341, 1760, 3343, 3344, 3343,
+ 3343, 1760, 3345, 1760, 1760, 1760, 1760, 3343, 3343, 1761,
+ 1760, 1760, 3346, 1760, 3345, 1760, 1760, 1760, 1760, 3345,
+ 3345, 3345, 3345, 3345, 3345, 3345, 3345, 1760, 1760, 1760,
+
+ 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345,
+ 3345, 3345, 3345, 3345, 3345, 1760, 2286, 3636, 3609, 3636,
+ 3636, 2286, 2286, 3637, 2286, 3638, 2286, 2286, 3639, 3640,
+ 3638, 3641, 4730, 3642, 3643, 2286, 2286, 3638, 2286, 3637,
+ 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3638, 2286, 3638,
+ 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637, 3637,
+ 3637, 3637, 3637, 3637, 2286, 2286, 1841, 3922, 3575, 3922,
+ 3922, 1841, 1841, 4180, 1841, 4181, 1841, 1841, 3114, 4731,
+ 4181, 4183, 4732, 4185, 2767, 1841, 1841, 4181, 1841, 4180,
+ 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4181, 1841, 4181,
+
+ 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180,
+ 4180, 4180, 4180, 4180, 1841, 1841, 3356, 5143, 3357, 5143,
+ 5143, 5143, 5143, 5143, 3358, 3358, 3358, 3358, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3358, 3358, 3358, 3358, 3358,
+ 5143, 3358, 5143, 5143, 5143, 5143, 5143, 5143, 3358, 1760,
+ 3031, 3359, 3031, 3031, 1760, 1760, 3360, 1760, 3031, 1760,
+ 1760, 3026, 3361, 3031, 3362, 3363, 3364, 3031, 1760, 1760,
+ 3031, 1760, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3031, 1760, 3031, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 3360, 3360, 3360, 1760, 1760, 1841,
+
+ 3922, 3575, 3922, 3922, 1841, 1841, 4411, 1841, 4181, 1841,
+ 1841, 3114, 4182, 4181, 4420, 4184, 4588, 2767, 1841, 1841,
+ 4181, 1841, 4589, 4589, 4589, 4589, 4411, 4411, 4411, 4411,
+ 4181, 1841, 4181, 4589, 4589, 4589, 4589, 4589, 4411, 4589,
+ 4411, 4411, 4411, 4411, 4411, 4411, 4589, 1841, 1841, 4183,
+ 5143, 4412, 5143, 5143, 5143, 5143, 5143, 4411, 4411, 4411,
+ 4411, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4411, 4411,
+ 4411, 4411, 4411, 5143, 4411, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4411, 2427, 4590, 4124, 4590, 4590, 2427, 2427, 4591,
+ 2427, 4592, 2427, 2427, 3723, 4593, 4592, 4594, 4733, 4595,
+
+ 3720, 2427, 2427, 4592, 2427, 4591, 4591, 4591, 4591, 4591,
+ 4591, 4591, 4591, 4592, 2427, 4592, 4591, 4591, 4591, 4591,
+ 4591, 4591, 4591, 4591, 4591, 4591, 4591, 4591, 4591, 4591,
+ 2427, 2427, 4182, 5143, 4420, 4184, 4421, 5143, 5143, 5143,
+ 5143, 5143, 4422, 4422, 4422, 4422, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4422, 4422, 4422, 4422, 4422, 5143, 4422,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4422, 3051, 4737, 4738,
+ 4737, 4737, 3051, 3051, 4739, 3051, 4737, 3051, 3051, 4740,
+ 4741, 4737, 4742, 4743, 4744, 4737, 3051, 3051, 4737, 3051,
+ 4739, 4739, 4739, 4739, 4739, 4739, 4739, 4739, 4737, 3051,
+
+ 4737, 4739, 4739, 4739, 4739, 4739, 4739, 4739, 4739, 4739,
+ 4739, 4739, 4739, 4739, 4739, 3051, 3051, 784, 1147, 1147,
+ 1147, 1147, 784, 1359, 1148, 784, 961, 784, 1360, 1361,
+ 1150, 961, 1151, 1362, 1153, 1363, 784, 784, 961, 784,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 961, 784,
+ 961, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1359, 784, 4432, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 4442, 5143, 4607, 5143, 5143,
+ 5143, 5143, 5143, 4608, 4608, 4608, 4608, 4432, 4432, 4432,
+ 4432, 5143, 5143, 5143, 4608, 4608, 4608, 4608, 4608, 4432,
+
+ 4608, 4432, 4432, 4432, 4432, 4432, 4432, 4608, 248, 1817,
+ 1817, 1817, 1817, 248, 377, 729, 248, 610, 248, 336,
+ 1701, 730, 610, 731, 2086, 733, 1703, 248, 248, 610,
+ 248, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 610,
+ 248, 610, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087,
+ 2087, 2087, 2087, 2087, 2087, 2087, 377, 248, 4211, 5143,
+ 4433, 5143, 5143, 5143, 5143, 5143, 4432, 4432, 4432, 4432,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4432, 4432, 4432,
+ 4432, 4432, 5143, 4432, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4432, 2586, 4573, 4609, 4573, 4573, 2586, 2586, 4610, 2586,
+
+ 4573, 2586, 2586, 4569, 4611, 4573, 4612, 4748, 4613, 4573,
+ 2586, 2586, 4573, 2586, 4610, 4610, 4610, 4610, 4610, 4610,
+ 4610, 4610, 4573, 2586, 4573, 4610, 4610, 4610, 4610, 4610,
+ 4610, 4610, 4610, 4610, 4610, 4610, 4610, 4610, 4610, 2586,
+ 2586, 4442, 5143, 4443, 5143, 5143, 5143, 5143, 5143, 4444,
+ 4444, 4444, 4444, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4444, 4444, 4444, 4444, 4444, 5143, 4444, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4444, 1815, 3071, 2753, 3071, 3071, 1815,
+ 1815, 3070, 1815, 3071, 1815, 1815, 3395, 4216, 3071, 3075,
+ 4749, 3077, 3071, 1815, 1815, 3071, 1815, 3070, 3070, 3070,
+
+ 3070, 3070, 3070, 3070, 3070, 3071, 1815, 3071, 3070, 3070,
+ 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070,
+ 3070, 3070, 1815, 1815, 784, 1360, 1360, 1360, 1360, 784,
+ 1359, 784, 784, 784, 784, 1360, 1360, 785, 784, 784,
+ 1367, 784, 1359, 784, 784, 784, 784, 1359, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 784, 784, 784, 1359, 1359,
+ 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1359,
+ 1359, 1359, 1359, 784, 1818, 2764, 1147, 2764, 2764, 1818,
+ 1818, 3084, 1818, 2764, 1818, 1818, 3110, 4220, 2764, 3088,
+ 4750, 3090, 2764, 1818, 1818, 2764, 1818, 3084, 3084, 3084,
+
+ 3084, 3084, 3084, 3084, 3084, 2764, 1818, 2764, 3084, 3084,
+ 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
+ 3084, 3084, 1818, 1818, 1420, 4629, 4751, 4629, 4629, 1420,
+ 1420, 2470, 1420, 1420, 1420, 1420, 1420, 1421, 1420, 1420,
+ 4752, 1420, 1420, 1420, 1420, 1420, 1420, 2470, 2470, 2470,
+ 2470, 2470, 2470, 2470, 2470, 1420, 1420, 1420, 2470, 2470,
+ 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+ 2470, 2470, 4753, 1420, 424, 2486, 2486, 2486, 2486, 424,
+ 424, 2817, 424, 424, 424, 680, 680, 425, 424, 424,
+ 2818, 424, 680, 424, 424, 424, 424, 2817, 2817, 2817,
+
+ 2817, 2817, 2817, 2817, 2817, 424, 424, 424, 2817, 2817,
+ 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817, 2817,
+ 2817, 2817, 832, 424, 3492, 4252, 4478, 4252, 4252, 3492,
+ 3492, 4754, 3492, 3492, 3492, 4252, 4252, 3493, 3492, 3492,
+ 4480, 4755, 4252, 3492, 3492, 3492, 3492, 4754, 4754, 4754,
+ 4754, 4754, 4754, 4754, 4754, 3492, 3492, 3492, 4754, 4754,
+ 4754, 4754, 4754, 4754, 4754, 4754, 4754, 4754, 4754, 4754,
+ 4754, 4754, 4481, 3492, 4633, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4634, 5143, 5143, 5143, 5143, 5143,
+ 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 5143, 5143,
+
+ 5143, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
+ 4633, 4633, 4633, 4633, 4633, 1194, 1883, 2152, 1883, 1883,
+ 1194, 1194, 3777, 1194, 1194, 1194, 1883, 1883, 1195, 1194,
+ 1194, 2154, 3778, 1883, 1194, 1194, 1194, 1194, 3777, 3777,
+ 3777, 3777, 3777, 3777, 3777, 3777, 1194, 1194, 1194, 3777,
+ 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777, 3777,
+ 3777, 3777, 3777, 2155, 1194, 1196, 1673, 1673, 1673, 1673,
+ 1196, 1196, 1890, 1196, 1196, 1196, 1891, 1891, 1197, 1196,
+ 1196, 1892, 1196, 1891, 1196, 1196, 1196, 1196, 1890, 1890,
+ 1890, 1890, 1890, 1890, 1890, 1890, 1196, 1196, 1196, 1890,
+
+ 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890,
+ 1890, 1890, 1890, 1893, 1196, 4767, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 4768, 5143, 5143, 5143, 5143,
+ 5143, 4767, 4767, 4767, 4767, 4767, 4767, 4767, 4767, 5143,
+ 5143, 5143, 4767, 4767, 4767, 4767, 4767, 4767, 4767, 4767,
+ 4767, 4767, 4767, 4767, 4767, 4767, 1196, 1435, 1435, 1435,
+ 1435, 1196, 1196, 1674, 1196, 1196, 1196, 1196, 1196, 1197,
+ 1196, 1196, 1675, 1196, 1196, 1196, 1196, 1196, 1196, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1196, 1196, 1196,
+ 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
+
+ 1674, 1674, 1674, 1674, 1196, 1196, 1726, 2585, 2960, 2585,
+ 2585, 1726, 2961, 1726, 1726, 1726, 1726, 2585, 2585, 4292,
+ 1726, 1726, 4771, 1726, 2961, 1726, 1726, 1726, 1726, 2961,
+ 2961, 2961, 2961, 2961, 2961, 2961, 2961, 1726, 1726, 1726,
+ 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961, 2961,
+ 2961, 2961, 2961, 2961, 2961, 1726, 784, 3660, 3660, 3660,
+ 3660, 784, 1359, 2263, 784, 2264, 784, 1360, 1361, 2265,
+ 2264, 2266, 3928, 2268, 1363, 784, 784, 2264, 784, 3929,
+ 3929, 3929, 3929, 3929, 3929, 3929, 3929, 2264, 784, 2264,
+ 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
+
+ 3929, 3929, 3929, 3929, 1359, 784, 3520, 4063, 4773, 4063,
+ 4063, 3520, 3520, 4774, 3520, 4063, 3520, 3520, 4058, 4775,
+ 4063, 4776, 4777, 4778, 4063, 3520, 3520, 4063, 3520, 4774,
+ 4774, 4774, 4774, 4774, 4774, 4774, 4774, 4063, 3520, 4063,
+ 4774, 4774, 4774, 4774, 4774, 4774, 4774, 4774, 4774, 4774,
+ 4774, 4774, 4774, 4774, 3520, 3520, 1504, 2262, 2619, 2262,
+ 2262, 1504, 1504, 2620, 1504, 2621, 1504, 1504, 2622, 2623,
+ 2621, 2624, 2625, 2626, 2627, 1504, 1504, 2621, 1504, 2620,
+ 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2621, 1504, 2621,
+ 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620, 2620,
+
+ 2620, 2620, 2620, 2620, 1504, 1504, 213, 1082, 1082, 1082,
+ 1082, 213, 382, 337, 213, 338, 213, 381, 1256, 340,
+ 338, 341, 1257, 343, 1258, 213, 213, 338, 213, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 338, 213, 338,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 382, 213, 2982, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 2983, 5143, 5143, 5143,
+ 5143, 5143, 2982, 2982, 2982, 2982, 2982, 2982, 2982, 2982,
+ 5143, 5143, 5143, 2982, 2982, 2982, 2982, 2982, 2982, 2982,
+ 2982, 2982, 2982, 2982, 2982, 2982, 2982, 1504, 2984, 2985,
+
+ 2984, 2984, 1504, 2986, 1504, 1504, 1504, 1504, 2984, 2984,
+ 1505, 1504, 1504, 2987, 1504, 2986, 1504, 1504, 1504, 1504,
+ 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 1504, 1504,
+ 1504, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986,
+ 2986, 2986, 2986, 2986, 2986, 2986, 1504, 3615, 4371, 4372,
+ 4371, 4371, 3615, 3615, 4373, 3615, 4374, 3615, 3615, 4375,
+ 4376, 4374, 4377, 4378, 4379, 4380, 3615, 3615, 4374, 3615,
+ 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4374, 3615,
+ 4374, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373,
+ 4373, 4373, 4373, 4373, 4373, 3615, 3615, 2998, 5143, 2999,
+
+ 5143, 5143, 5143, 5143, 5143, 3000, 3000, 3000, 3000, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3000, 3000, 3000, 3000,
+ 3000, 5143, 3000, 5143, 5143, 5143, 5143, 5143, 5143, 3000,
+ 1504, 2627, 3001, 2627, 2627, 1504, 1504, 3002, 1504, 2627,
+ 1504, 1504, 2622, 3003, 2627, 3004, 3005, 3006, 2627, 1504,
+ 1504, 2627, 1504, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 2627, 1504, 2627, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 1504, 1504,
+ 3622, 4666, 4779, 4666, 4666, 3622, 3622, 4780, 3622, 4666,
+ 3622, 3622, 4662, 4781, 4666, 4782, 4783, 4784, 4666, 3622,
+
+ 3622, 4666, 3622, 4780, 4780, 4780, 4780, 4780, 4780, 4780,
+ 4780, 4666, 3622, 4666, 4780, 4780, 4780, 4780, 4780, 4780,
+ 4780, 4780, 4780, 4780, 4780, 4780, 4780, 4780, 3622, 3622,
+ 1974, 4091, 4168, 4091, 4091, 1974, 1974, 4785, 1974, 4091,
+ 1974, 1974, 4086, 4786, 4091, 4787, 4788, 4789, 4091, 1974,
+ 1974, 4091, 1974, 4785, 4785, 4785, 4785, 4785, 4785, 4785,
+ 4785, 4091, 1974, 4091, 4785, 4785, 4785, 4785, 4785, 4785,
+ 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785, 1974, 1974,
+ 3558, 4392, 2573, 4392, 4392, 3558, 3558, 4671, 3558, 4519,
+ 3558, 3558, 4561, 4522, 4519, 4523, 4562, 4672, 4563, 3558,
+
+ 3558, 4519, 3558, 4671, 4671, 4671, 4671, 4671, 4671, 4671,
+ 4671, 4519, 3558, 4519, 4671, 4671, 4671, 4671, 4671, 4671,
+ 4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671, 3558, 3558,
+ 4684, 5143, 4790, 5143, 5143, 5143, 5143, 5143, 4791, 4791,
+ 4791, 4791, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4791,
+ 4791, 4791, 4791, 4791, 5143, 4791, 5143, 5143, 5143, 5143,
+ 5143, 5143, 4791, 599, 2897, 2897, 2897, 2897, 599, 1038,
+ 1061, 599, 862, 599, 1039, 1040, 1062, 862, 1063, 3217,
+ 1065, 1042, 599, 599, 862, 599, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 3218, 862, 599, 862, 3218, 3218, 3218,
+
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
+ 3218, 1038, 599, 4518, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4525, 5143, 5143, 5143, 5143, 5143, 4518,
+ 4518, 4518, 4518, 4518, 4518, 4518, 4518, 5143, 5143, 5143,
+ 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518,
+ 4518, 4518, 4518, 4518, 3558, 4520, 4673, 4520, 4520, 3558,
+ 4517, 3558, 3558, 3558, 3558, 4520, 4520, 3559, 3558, 3558,
+ 4674, 3558, 4517, 3558, 3558, 3558, 3558, 4517, 4517, 4517,
+ 4517, 4517, 4517, 4517, 4517, 3558, 3558, 3558, 4517, 4517,
+ 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517,
+
+ 4517, 4517, 4517, 3558, 4096, 4794, 3531, 4794, 4794, 4096,
+ 4096, 4795, 4096, 4796, 4096, 4096, 4797, 4798, 4796, 4799,
+ 4562, 4800, 4801, 4096, 4096, 4796, 4096, 4795, 4795, 4795,
+ 4795, 4795, 4795, 4795, 4795, 4796, 4096, 4796, 4795, 4795,
+ 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795,
+ 4795, 4795, 4096, 4096, 1291, 3839, 4098, 3839, 3839, 1291,
+ 2397, 2288, 1291, 2289, 1291, 2237, 2399, 3644, 2289, 2291,
+ 4802, 2293, 2403, 1291, 1291, 2289, 1291, 4100, 4100, 4100,
+ 4100, 4100, 4100, 4100, 4100, 2289, 1291, 2289, 4100, 4100,
+ 4100, 4100, 4100, 4100, 4100, 4100, 4100, 4100, 4100, 4100,
+
+ 4100, 4100, 2397, 1291, 4684, 5143, 4685, 5143, 5143, 5143,
+ 5143, 5143, 4686, 4686, 4686, 4686, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4686, 4686, 4686, 4686, 4686, 5143, 4686,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4686, 3558, 4563, 4687,
+ 4563, 4563, 3558, 3558, 4688, 3558, 4563, 3558, 3558, 4561,
+ 4689, 4563, 4690, 4691, 4692, 4563, 3558, 3558, 4563, 3558,
+ 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4563, 3558,
+ 4563, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688,
+ 4688, 4688, 4688, 4688, 4688, 3558, 3558, 4803, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4804, 5143, 5143,
+
+ 5143, 5143, 5143, 4803, 4803, 4803, 4803, 4803, 4803, 4803,
+ 4803, 5143, 5143, 5143, 4803, 4803, 4803, 4803, 4803, 4803,
+ 4803, 4803, 4803, 4803, 4803, 4803, 4803, 4803, 3837, 4683,
+ 4805, 4683, 4683, 3837, 3837, 4806, 3837, 4683, 3837, 3837,
+ 4678, 4807, 4683, 4808, 4809, 4810, 4683, 3837, 3837, 4683,
+ 3837, 4806, 4806, 4806, 4806, 4806, 4806, 4806, 4806, 4683,
+ 3837, 4683, 4806, 4806, 4806, 4806, 4806, 4806, 4806, 4806,
+ 4806, 4806, 4806, 4806, 4806, 4806, 3837, 3837, 4813, 5143,
+ 4814, 5143, 5143, 5143, 5143, 5143, 4815, 4815, 4815, 4815,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4815, 4815, 4815,
+
+ 4815, 4815, 5143, 4815, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4815, 1234, 2297, 2563, 2297, 2297, 1234, 1234, 2920, 1234,
+ 2297, 1234, 1234, 2295, 2565, 2297, 2566, 2567, 2921, 2297,
+ 1234, 1234, 2297, 1234, 2920, 2920, 2920, 2920, 2920, 2920,
+ 2920, 2920, 2297, 1234, 2297, 2920, 2920, 2920, 2920, 2920,
+ 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 1234,
+ 1234, 1711, 2918, 3236, 2918, 2918, 1711, 1711, 3237, 1711,
+ 2918, 1711, 1711, 2914, 3238, 2918, 3239, 4816, 3240, 2918,
+ 1711, 1711, 2918, 1711, 3237, 3237, 3237, 3237, 3237, 3237,
+ 3237, 3237, 2918, 1711, 2918, 3237, 3237, 3237, 3237, 3237,
+
+ 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 3237, 1711,
+ 1711, 2564, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 2568, 5143, 5143, 5143, 5143, 5143, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2564, 5143, 5143, 5143, 2564, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
+ 2564, 2564, 452, 3034, 2619, 3034, 3034, 452, 1106, 904,
+ 452, 905, 452, 1105, 3365, 2031, 905, 908, 4817, 910,
+ 3367, 452, 452, 905, 452, 3368, 3368, 3368, 3368, 3368,
+ 3368, 3368, 3368, 905, 452, 905, 3368, 3368, 3368, 3368,
+ 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368,
+
+ 1106, 452, 2930, 5143, 2931, 5143, 5143, 5143, 5143, 5143,
+ 2932, 2932, 2932, 2932, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 2932, 2932, 2932, 2932, 2932, 5143, 2932, 5143, 5143,
+ 5143, 5143, 5143, 5143, 2932, 4163, 4698, 3923, 4698, 4698,
+ 4163, 4163, 4818, 4163, 4698, 4163, 4163, 4819, 4820, 4698,
+ 4821, 4822, 4823, 4698, 4163, 4163, 4698, 4163, 4818, 4818,
+ 4818, 4818, 4818, 4818, 4818, 4818, 4698, 4163, 4698, 4818,
+ 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818,
+ 4818, 4818, 4818, 4163, 4163, 2064, 4143, 4824, 4143, 4143,
+ 2064, 2064, 4825, 2064, 4143, 2064, 2064, 4138, 4826, 4143,
+
+ 4827, 4828, 4829, 4143, 2064, 2064, 4143, 2064, 4825, 4825,
+ 4825, 4825, 4825, 4825, 4825, 4825, 4143, 2064, 4143, 4825,
+ 4825, 4825, 4825, 4825, 4825, 4825, 4825, 4825, 4825, 4825,
+ 4825, 4825, 4825, 2064, 2064, 1987, 3303, 3609, 3303, 3303,
+ 1987, 1987, 3610, 1987, 3303, 1987, 1987, 3299, 3611, 3303,
+ 3612, 3888, 3613, 3303, 1987, 1987, 3303, 1987, 3610, 3610,
+ 3610, 3610, 3610, 3610, 3610, 3610, 3303, 1987, 3303, 3610,
+ 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610,
+ 3610, 3610, 3610, 1987, 1987, 599, 862, 862, 862, 862,
+ 599, 599, 1236, 599, 862, 599, 599, 857, 1062, 862,
+
+ 1063, 1064, 1237, 862, 599, 599, 862, 599, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 862, 599, 862, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1236, 599, 599, 710, 1232, 1232, 1232, 1232,
+ 710, 710, 1471, 710, 1232, 710, 710, 1228, 1472, 1232,
+ 1473, 4830, 1474, 1232, 710, 710, 1232, 710, 1471, 1471,
+ 1471, 1471, 1471, 1471, 1471, 1471, 1232, 710, 1232, 1471,
+ 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471, 1471,
+ 1471, 1471, 1471, 710, 710, 1061, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 1065, 5143, 5143, 5143, 5143,
+
+ 5143, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 5143,
+ 5143, 5143, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 255, 1478, 1478, 1478,
+ 1478, 255, 469, 628, 255, 629, 255, 468, 1590, 2051,
+ 629, 631, 4831, 633, 1592, 255, 255, 629, 255, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 629, 255, 629,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1722, 469, 255, 1245, 5143, 1246, 5143,
+ 5143, 5143, 5143, 5143, 1247, 1247, 1247, 1247, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 1247, 1247, 1247, 1247, 1247,
+
+ 5143, 1247, 5143, 5143, 5143, 5143, 5143, 5143, 1247, 784,
+ 961, 961, 961, 961, 784, 784, 1148, 784, 961, 784,
+ 784, 1149, 3618, 961, 1151, 4835, 1153, 961, 784, 784,
+ 961, 784, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 961, 784, 961, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 784, 784, 536,
+ 4714, 3359, 4714, 4714, 536, 1339, 1354, 536, 1142, 536,
+ 1338, 3677, 1355, 1142, 1356, 4836, 1358, 3679, 536, 536,
+ 1142, 536, 4837, 4837, 4837, 4837, 4837, 4837, 4837, 4837,
+ 1142, 536, 1142, 4837, 4837, 4837, 4837, 4837, 4837, 4837,
+
+ 4837, 4837, 4837, 4837, 4837, 4837, 4837, 1339, 536, 1588,
+ 4553, 3663, 4553, 4553, 1588, 1588, 4838, 1588, 4716, 1588,
+ 1588, 2769, 4717, 4716, 4718, 4719, 4839, 2430, 1588, 1588,
+ 4716, 1588, 4838, 4838, 4838, 4838, 4838, 4838, 4838, 4838,
+ 4716, 1588, 4716, 4838, 4838, 4838, 4838, 4838, 4838, 4838,
+ 4838, 4838, 4838, 4838, 4838, 4838, 4838, 1588, 1588, 4715,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4720,
+ 5143, 5143, 5143, 5143, 5143, 4715, 4715, 4715, 4715, 4715,
+ 4715, 4715, 4715, 5143, 5143, 5143, 4715, 4715, 4715, 4715,
+ 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715,
+
+ 1823, 4840, 3935, 4840, 4840, 1823, 1823, 4841, 1823, 4842,
+ 1823, 1823, 3102, 4843, 4842, 4844, 4845, 4846, 3099, 1823,
+ 1823, 4842, 1823, 4841, 4841, 4841, 4841, 4841, 4841, 4841,
+ 4841, 4842, 1823, 4842, 4841, 4841, 4841, 4841, 4841, 4841,
+ 4841, 4841, 4841, 4841, 4841, 4841, 4841, 4841, 1823, 1823,
+ 4847, 5143, 4848, 5143, 5143, 5143, 5143, 5143, 4849, 4849,
+ 4849, 4849, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4849,
+ 4849, 4849, 4849, 4849, 5143, 4849, 5143, 5143, 5143, 5143,
+ 5143, 5143, 4849, 4163, 4721, 4850, 4721, 4721, 4163, 4851,
+ 4818, 4163, 4698, 4163, 4772, 4852, 4820, 4698, 4821, 4853,
+
+ 4823, 4854, 4163, 4163, 4698, 4163, 4855, 4855, 4855, 4855,
+ 4855, 4855, 4855, 4855, 4698, 4163, 4698, 4855, 4855, 4855,
+ 4855, 4855, 4855, 4855, 4855, 4855, 4855, 4855, 4855, 4855,
+ 4855, 4851, 4163, 1970, 2963, 3282, 2963, 2963, 1970, 3283,
+ 1970, 1970, 1970, 1970, 2963, 2963, 4404, 1970, 1970, 4857,
+ 1970, 3283, 1970, 1970, 1970, 1970, 3283, 3283, 3283, 3283,
+ 3283, 3283, 3283, 3283, 1970, 1970, 1970, 3283, 3283, 3283,
+ 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283, 3283,
+ 3283, 3283, 1970, 1760, 3031, 3359, 3031, 3031, 1760, 1760,
+ 3360, 1760, 3031, 1760, 1760, 3026, 4858, 3031, 3362, 4859,
+
+ 3364, 3031, 1760, 1760, 3031, 1760, 3360, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 3031, 1760, 3031, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3360, 1760, 1760, 4559, 4860, 4779, 4860, 4860, 4559, 4559,
+ 4861, 4559, 4862, 4559, 4559, 4863, 4864, 4862, 4865, 4730,
+ 4866, 4867, 4559, 4559, 4862, 4559, 4861, 4861, 4861, 4861,
+ 4861, 4861, 4861, 4861, 4862, 4559, 4862, 4861, 4861, 4861,
+ 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861,
+ 4861, 4559, 4559, 1841, 2767, 3112, 2767, 2767, 1841, 1841,
+ 3113, 1841, 2767, 1841, 1841, 3114, 4868, 2767, 3116, 4869,
+
+ 3118, 2767, 1841, 1841, 2767, 1841, 3113, 3113, 3113, 3113,
+ 3113, 3113, 3113, 3113, 2767, 1841, 2767, 3113, 3113, 3113,
+ 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113,
+ 3113, 1841, 1841, 784, 1994, 1994, 1994, 1994, 784, 784,
+ 2263, 784, 2264, 784, 784, 1149, 2265, 2264, 2266, 2267,
+ 2268, 961, 784, 784, 2264, 784, 2263, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2264, 784, 2264, 2263, 2263, 2263,
+ 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263, 2263,
+ 2263, 784, 784, 3018, 3373, 3663, 3373, 3373, 3018, 3018,
+ 3664, 3018, 3373, 3018, 3018, 3665, 3666, 3373, 3667, 3668,
+
+ 3669, 3373, 3018, 3018, 3373, 3018, 3664, 3664, 3664, 3664,
+ 3664, 3664, 3664, 3664, 3373, 3018, 3373, 3664, 3664, 3664,
+ 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664,
+ 3664, 3018, 3018, 3932, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3933, 5143, 5143, 5143, 5143, 5143, 3932,
+ 3932, 3932, 3932, 3932, 3932, 3932, 3932, 5143, 5143, 5143,
+ 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932, 3932,
+ 3932, 3932, 3932, 3932, 3018, 3372, 3660, 3372, 3372, 3018,
+ 3661, 3018, 3018, 3018, 3018, 3372, 3372, 3019, 3018, 3018,
+ 3662, 3018, 3661, 3018, 3018, 3018, 3018, 3661, 3661, 3661,
+
+ 3661, 3661, 3661, 3661, 3661, 3018, 3018, 3018, 3661, 3661,
+ 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661, 3661,
+ 3661, 3661, 3661, 3018, 3370, 4191, 4192, 4191, 4191, 3370,
+ 3370, 4193, 3370, 4191, 3370, 3370, 4194, 4195, 4191, 4196,
+ 4870, 4197, 4191, 3370, 3370, 4191, 3370, 4193, 4193, 4193,
+ 4193, 4193, 4193, 4193, 4193, 4191, 3370, 4191, 4193, 4193,
+ 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193, 4193,
+ 4193, 4193, 3370, 3370, 946, 4199, 3575, 4199, 4199, 946,
+ 2036, 1793, 946, 1547, 946, 2035, 3569, 3056, 1547, 1795,
+ 4871, 1797, 3571, 946, 946, 1547, 946, 4429, 4429, 4429,
+
+ 4429, 4429, 4429, 4429, 4429, 1547, 946, 1547, 4429, 4429,
+ 4429, 4429, 4429, 4429, 4429, 4429, 4429, 4429, 4429, 4429,
+ 4429, 4429, 2036, 946, 3944, 5143, 3945, 5143, 5143, 5143,
+ 5143, 5143, 3946, 3946, 3946, 3946, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3946, 3946, 3946, 3946, 3946, 5143, 3946,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3946, 187, 1177, 1177,
+ 1177, 1177, 187, 187, 316, 187, 187, 187, 187, 187,
+ 188, 187, 187, 1183, 187, 187, 187, 187, 187, 187,
+ 316, 316, 316, 316, 316, 316, 316, 316, 187, 187,
+ 187, 316, 316, 316, 316, 316, 316, 316, 316, 316,
+
+ 316, 316, 316, 316, 316, 1184, 187, 3492, 4252, 4478,
+ 4252, 4252, 3492, 3492, 4754, 3492, 3492, 3492, 4252, 4252,
+ 3493, 3492, 3492, 4480, 4755, 4252, 3492, 3492, 3492, 3492,
+ 4754, 4754, 4754, 4754, 4754, 4754, 4754, 4754, 3492, 3492,
+ 3492, 4754, 4754, 4754, 4754, 4754, 4754, 4754, 4754, 4754,
+ 4754, 4754, 4754, 4754, 4754, 4481, 3492, 1196, 1435, 1435,
+ 1435, 1435, 1196, 1196, 1674, 1196, 1196, 1196, 1196, 1196,
+ 1197, 1196, 1196, 1675, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1196, 1196,
+ 1196, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
+
+ 1674, 1674, 1674, 1674, 1674, 1196, 1196, 1196, 1891, 1891,
+ 1891, 1891, 1196, 1196, 2158, 1196, 1196, 1196, 1891, 1891,
+ 1197, 1196, 1196, 1895, 1196, 1891, 1196, 1196, 1196, 1196,
+ 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 1196, 1196,
+ 1196, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158,
+ 2158, 2158, 2158, 2158, 2158, 1893, 1196, 2484, 4766, 3497,
+ 4766, 4766, 2484, 2484, 4881, 2484, 2484, 2484, 2484, 2484,
+ 2485, 2484, 2484, 4882, 2484, 2484, 2484, 2484, 2484, 2484,
+ 4881, 4881, 4881, 4881, 4881, 4881, 4881, 4881, 2484, 2484,
+ 2484, 4881, 4881, 4881, 4881, 4881, 4881, 4881, 4881, 4881,
+
+ 4881, 4881, 4881, 4881, 4881, 2484, 2484, 4767, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4768, 5143, 5143,
+ 5143, 5143, 5143, 4767, 4767, 4767, 4767, 4767, 4767, 4767,
+ 4767, 5143, 5143, 5143, 4767, 4767, 4767, 4767, 4767, 4767,
+ 4767, 4767, 4767, 4767, 4767, 4767, 4767, 4767, 4163, 4772,
+ 4886, 4772, 4772, 4163, 4851, 4163, 4163, 4163, 4163, 4772,
+ 4772, 4164, 4163, 4163, 4887, 4163, 4851, 4163, 4163, 4163,
+ 4163, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4163,
+ 4163, 4163, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+ 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4163, 599, 854,
+
+ 854, 854, 854, 599, 1038, 855, 599, 856, 599, 1039,
+ 1040, 858, 856, 859, 1041, 861, 1042, 599, 599, 856,
+ 599, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 856,
+ 599, 856, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1038, 599, 1458, 2855,
+ 2573, 2855, 2855, 1458, 1458, 3191, 1458, 2855, 1458, 1458,
+ 2852, 2873, 2855, 2874, 2875, 3192, 2855, 1458, 1458, 2855,
+ 1458, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 2855,
+ 1458, 2855, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191,
+ 3191, 3191, 3191, 3191, 3191, 3191, 1458, 1458, 1921, 3188,
+
+ 3531, 3188, 3188, 1921, 1921, 3532, 1921, 3188, 1921, 1921,
+ 3184, 3533, 3188, 3534, 4888, 3535, 3188, 1921, 1921, 3188,
+ 1921, 3532, 3532, 3532, 3532, 3532, 3532, 3532, 3532, 3188,
+ 1921, 3188, 3532, 3532, 3532, 3532, 3532, 3532, 3532, 3532,
+ 3532, 3532, 3532, 3532, 3532, 3532, 1921, 1921, 2872, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2876, 5143,
+ 5143, 5143, 5143, 5143, 2872, 2872, 2872, 2872, 2872, 2872,
+ 2872, 2872, 5143, 5143, 5143, 2872, 2872, 2872, 2872, 2872,
+ 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 1504,
+ 3523, 3792, 3523, 3523, 1504, 2986, 2620, 1504, 2621, 1504,
+
+ 2984, 3793, 4153, 2621, 2624, 4889, 2626, 3795, 1504, 1504,
+ 2621, 1504, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796,
+ 2621, 1504, 2621, 3796, 3796, 3796, 3796, 3796, 3796, 3796,
+ 3796, 3796, 3796, 3796, 3796, 3796, 3796, 2986, 1504, 3201,
+ 5143, 3202, 5143, 5143, 5143, 5143, 5143, 3203, 3203, 3203,
+ 3203, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3203, 3203,
+ 3203, 3203, 3203, 5143, 3203, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3203, 213, 1082, 1082, 1082, 1082, 213, 382, 337,
+ 213, 338, 213, 381, 1256, 340, 338, 341, 1257, 343,
+ 1258, 213, 213, 338, 213, 1259, 1259, 1259, 1259, 1259,
+
+ 1259, 1259, 1259, 338, 213, 338, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 382, 213, 1504, 2627, 3001, 2627, 2627, 1504, 1504, 3305,
+ 1504, 2627, 1504, 1504, 2622, 3003, 2627, 3004, 3005, 3306,
+ 2627, 1504, 1504, 2627, 1504, 3305, 3305, 3305, 3305, 3305,
+ 3305, 3305, 3305, 2627, 1504, 2627, 3305, 3305, 3305, 3305,
+ 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305,
+ 1504, 1504, 3615, 4380, 4579, 4380, 4380, 3615, 3615, 4890,
+ 3615, 4380, 3615, 3615, 4375, 4891, 4380, 4892, 4893, 4894,
+ 4380, 3615, 3615, 4380, 3615, 4890, 4890, 4890, 4890, 4890,
+
+ 4890, 4890, 4890, 4380, 3615, 4380, 4890, 4890, 4890, 4890,
+ 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890,
+ 3615, 3615, 3002, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3006, 5143, 5143, 5143, 5143, 5143, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 5143, 5143, 5143, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 3002, 3002, 3315, 5143, 3316, 5143, 5143, 5143, 5143,
+ 5143, 3317, 3317, 3317, 3317, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3317, 3317, 3317, 3317, 3317, 5143, 3317, 5143,
+ 5143, 5143, 5143, 5143, 5143, 3317, 1461, 2592, 2897, 2592,
+
+ 2592, 1461, 1461, 3219, 1461, 2592, 1461, 1461, 2590, 2899,
+ 2592, 2900, 2901, 3220, 2592, 1461, 1461, 2592, 1461, 3219,
+ 3219, 3219, 3219, 3219, 3219, 3219, 3219, 2592, 1461, 2592,
+ 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219,
+ 3219, 3219, 3219, 3219, 1461, 1461, 1937, 3215, 3548, 3215,
+ 3215, 1937, 1937, 3549, 1937, 3215, 1937, 1937, 3211, 3550,
+ 3215, 3551, 4897, 3552, 3215, 1937, 1937, 3215, 1937, 3549,
+ 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3215, 1937, 3215,
+ 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549, 3549,
+ 3549, 3549, 3549, 3549, 1937, 1937, 2898, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 2902, 5143, 5143, 5143,
+ 5143, 5143, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898,
+ 5143, 5143, 5143, 2898, 2898, 2898, 2898, 2898, 2898, 2898,
+ 2898, 2898, 2898, 2898, 2898, 2898, 2898, 517, 3285, 2985,
+ 3285, 3285, 517, 1264, 1083, 517, 1084, 517, 1262, 3597,
+ 2269, 1084, 1087, 4898, 1089, 3599, 517, 517, 1084, 517,
+ 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 1084, 517,
+ 1084, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600, 3600,
+ 3600, 3600, 3600, 3600, 3600, 1264, 517, 3229, 5143, 3230,
+ 5143, 5143, 5143, 5143, 5143, 3231, 3231, 3231, 3231, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 3231, 3231, 3231, 3231,
+ 3231, 5143, 3231, 5143, 5143, 5143, 5143, 5143, 5143, 3231,
+ 3558, 4392, 2573, 4392, 4392, 3558, 3558, 4671, 3558, 4519,
+ 3558, 3558, 4561, 4522, 4519, 4684, 4562, 4790, 4563, 3558,
+ 3558, 4519, 3558, 4791, 4791, 4791, 4791, 4671, 4671, 4671,
+ 4671, 4519, 3558, 4519, 4791, 4791, 4791, 4791, 4791, 4671,
+ 4791, 4671, 4671, 4671, 4671, 4671, 4671, 4791, 3558, 3558,
+ 4518, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4523, 5143,
+ 4525, 5143, 5143, 5143, 5143, 5143, 4518, 4518, 4518, 4518,
+ 4518, 4518, 4518, 4518, 5143, 5143, 5143, 4518, 4518, 4518,
+
+ 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518,
+ 4518, 4523, 5143, 4672, 5143, 5143, 5143, 5143, 5143, 4671,
+ 4671, 4671, 4671, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4671, 4671, 4671, 4671, 4671, 5143, 4671, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4671, 3558, 4520, 4673, 4520, 4520, 3558,
+ 4517, 3558, 3558, 3558, 3558, 4520, 4520, 3559, 3558, 3558,
+ 4674, 3558, 4517, 3558, 3558, 3558, 3558, 4517, 4517, 4517,
+ 4517, 4517, 4517, 4517, 4517, 3558, 3558, 3558, 4517, 4517,
+ 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517,
+ 4517, 4517, 4517, 3558, 4096, 4794, 3531, 4794, 4794, 4096,
+
+ 4096, 4795, 4096, 4796, 4096, 4096, 4797, 4798, 4796, 4799,
+ 4900, 4800, 4801, 4096, 4096, 4796, 4096, 4795, 4795, 4795,
+ 4795, 4795, 4795, 4795, 4795, 4796, 4096, 4796, 4795, 4795,
+ 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795,
+ 4795, 4795, 4096, 4096, 4684, 5143, 4685, 5143, 5143, 5143,
+ 5143, 5143, 4686, 4686, 4686, 4686, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4686, 4686, 4686, 4686, 4686, 5143, 4686,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4686, 3558, 4563, 4687,
+ 4563, 4563, 3558, 3558, 4688, 3558, 4563, 3558, 3558, 4561,
+ 4689, 4563, 4690, 4691, 4692, 4563, 3558, 3558, 4563, 3558,
+
+ 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4563, 3558,
+ 4563, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688,
+ 4688, 4688, 4688, 4688, 4688, 3558, 3558, 4803, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4804, 5143, 5143,
+ 5143, 5143, 5143, 4803, 4803, 4803, 4803, 4803, 4803, 4803,
+ 4803, 5143, 5143, 5143, 4803, 4803, 4803, 4803, 4803, 4803,
+ 4803, 4803, 4803, 4803, 4803, 4803, 4803, 4803, 4813, 5143,
+ 4901, 5143, 5143, 5143, 5143, 5143, 4902, 4902, 4902, 4902,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4902, 4902, 4902,
+ 4902, 4902, 5143, 4902, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 4902, 599, 2897, 2897, 2897, 2897, 599, 1038, 1061, 599,
+ 862, 599, 1039, 1040, 1062, 862, 1063, 3217, 1065, 1042,
+ 599, 599, 862, 599, 3218, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 862, 599, 862, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 1038,
+ 599, 4096, 4801, 4903, 4801, 4801, 4096, 4096, 4904, 4096,
+ 4801, 4096, 4096, 4797, 4905, 4801, 4906, 4691, 4907, 4801,
+ 4096, 4096, 4801, 4096, 4904, 4904, 4904, 4904, 4904, 4904,
+ 4904, 4904, 4801, 4096, 4801, 4904, 4904, 4904, 4904, 4904,
+ 4904, 4904, 4904, 4904, 4904, 4904, 4904, 4904, 4904, 4096,
+
+ 4096, 1291, 3839, 4098, 3839, 3839, 1291, 2397, 2288, 1291,
+ 2289, 1291, 2237, 2399, 3918, 2289, 2291, 4908, 2293, 2403,
+ 1291, 1291, 2289, 1291, 4100, 4100, 4100, 4100, 4100, 4100,
+ 4100, 4100, 2289, 1291, 2289, 4100, 4100, 4100, 4100, 4100,
+ 4100, 4100, 4100, 4100, 4100, 4100, 4100, 4100, 4100, 2397,
+ 1291, 4813, 5143, 4814, 5143, 5143, 5143, 5143, 5143, 4815,
+ 4815, 4815, 4815, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4815, 4815, 4815, 4815, 4815, 5143, 4815, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4815, 1234, 2007, 2294, 2007, 2007, 1234,
+ 1234, 2205, 1234, 2206, 1234, 1234, 2295, 3852, 2206, 2210,
+
+ 4913, 2212, 2297, 1234, 1234, 2206, 1234, 2205, 2205, 2205,
+ 2205, 2205, 2205, 2205, 2205, 2206, 1234, 2206, 2205, 2205,
+ 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205, 2205,
+ 2205, 2205, 1234, 1234, 4163, 4698, 3923, 4698, 4698, 4163,
+ 4163, 4914, 4163, 4698, 4163, 4163, 4819, 4820, 4698, 4821,
+ 4822, 4915, 4698, 4163, 4163, 4698, 4163, 4914, 4914, 4914,
+ 4914, 4914, 4914, 4914, 4914, 4698, 4163, 4698, 4914, 4914,
+ 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914,
+ 4914, 4914, 4163, 4163, 4386, 4916, 4917, 4916, 4916, 4386,
+ 4386, 4918, 4386, 4916, 4386, 4386, 4919, 4920, 4916, 4921,
+
+ 4922, 4923, 4916, 4386, 4386, 4916, 4386, 4918, 4918, 4918,
+ 4918, 4918, 4918, 4918, 4918, 4916, 4386, 4916, 4918, 4918,
+ 4918, 4918, 4918, 4918, 4918, 4918, 4918, 4918, 4918, 4918,
+ 4918, 4918, 4386, 4386, 4818, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4823, 5143, 5143, 5143, 5143, 5143,
+ 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 5143, 5143,
+ 5143, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818,
+ 4818, 4818, 4818, 4818, 4818, 4926, 5143, 4927, 5143, 5143,
+ 5143, 5143, 5143, 4928, 4928, 4928, 4928, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4928, 4928, 4928, 4928, 4928, 5143,
+
+ 4928, 5143, 5143, 5143, 5143, 5143, 5143, 4928, 599, 862,
+ 862, 862, 862, 599, 599, 1061, 599, 862, 599, 599,
+ 857, 1062, 862, 1063, 1064, 1065, 862, 599, 599, 862,
+ 599, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 862,
+ 599, 862, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 599, 599, 1479, 2703,
+ 2954, 2703, 2703, 1479, 1479, 3267, 1479, 2703, 1479, 1479,
+ 2701, 2956, 2703, 2957, 2958, 3268, 2703, 1479, 1479, 2703,
+ 1479, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 2703,
+ 1479, 2703, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267,
+
+ 3267, 3267, 3267, 3267, 3267, 3267, 1479, 1479, 1960, 3265,
+ 3586, 3265, 3265, 1960, 1960, 3587, 1960, 3265, 1960, 1960,
+ 3261, 3588, 3265, 3589, 4929, 3590, 3265, 1960, 1960, 3265,
+ 1960, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3265,
+ 1960, 3265, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587,
+ 3587, 3587, 3587, 3587, 3587, 3587, 1960, 1960, 2955, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 2959, 5143,
+ 5143, 5143, 5143, 5143, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 5143, 5143, 5143, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 536,
+
+ 3380, 3001, 3380, 3380, 536, 1339, 1135, 536, 1136, 536,
+ 1338, 3677, 2379, 1136, 1139, 4930, 1141, 3679, 536, 536,
+ 1136, 536, 3680, 3680, 3680, 3680, 3680, 3680, 3680, 3680,
+ 1136, 536, 1136, 3680, 3680, 3680, 3680, 3680, 3680, 3680,
+ 3680, 3680, 3680, 3680, 3680, 3680, 3680, 1339, 536, 3277,
+ 5143, 3278, 5143, 5143, 5143, 5143, 5143, 3279, 3279, 3279,
+ 3279, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3279, 3279,
+ 3279, 3279, 3279, 5143, 3279, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3279, 1588, 4834, 3923, 4834, 4834, 1588, 2754, 4715,
+ 1588, 4716, 1588, 2756, 2757, 4717, 4716, 4718, 4933, 4720,
+
+ 2762, 1588, 1588, 4716, 1588, 4934, 4934, 4934, 4934, 4934,
+ 4934, 4934, 4934, 4716, 1588, 4716, 4934, 4934, 4934, 4934,
+ 4934, 4934, 4934, 4934, 4934, 4934, 4934, 4934, 4934, 4934,
+ 2754, 1588, 536, 1142, 1353, 1142, 1142, 536, 536, 1562,
+ 536, 1142, 536, 536, 1137, 1355, 1142, 1356, 1357, 1563,
+ 1142, 536, 536, 1142, 536, 1562, 1562, 1562, 1562, 1562,
+ 1562, 1562, 1562, 1142, 536, 1142, 1562, 1562, 1562, 1562,
+ 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562,
+ 536, 536, 1588, 4553, 3663, 4553, 4553, 1588, 1588, 4838,
+ 1588, 4716, 1588, 1588, 2769, 4717, 4716, 4718, 4719, 4839,
+
+ 2430, 1588, 1588, 4716, 1588, 4838, 4838, 4838, 4838, 4838,
+ 4838, 4838, 4838, 4716, 1588, 4716, 4838, 4838, 4838, 4838,
+ 4838, 4838, 4838, 4838, 4838, 4838, 4838, 4838, 4838, 4838,
+ 1588, 1588, 4847, 5143, 4935, 5143, 5143, 5143, 5143, 5143,
+ 4936, 4936, 4936, 4936, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4936, 4936, 4936, 4936, 4936, 5143, 4936, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4936, 4715, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 4720, 5143, 5143, 5143, 5143,
+ 5143, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 5143,
+ 5143, 5143, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715,
+
+ 4715, 4715, 4715, 4715, 4715, 4715, 2094, 4937, 4192, 4937,
+ 4937, 2094, 2094, 4938, 2094, 4939, 2094, 2094, 3438, 4940,
+ 4939, 4941, 4719, 4942, 3435, 2094, 2094, 4939, 2094, 4938,
+ 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4939, 2094, 4939,
+ 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938,
+ 4938, 4938, 4938, 4938, 2094, 2094, 257, 1825, 2096, 1825,
+ 1825, 257, 952, 796, 257, 648, 257, 951, 1963, 2736,
+ 648, 797, 4943, 799, 1965, 257, 257, 648, 257, 2098,
+ 2098, 2098, 2098, 2098, 2098, 2098, 2098, 648, 257, 648,
+ 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098,
+
+ 2098, 2098, 2098, 2098, 952, 257, 4847, 5143, 4848, 5143,
+ 5143, 5143, 5143, 5143, 4849, 4849, 4849, 4849, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 4849, 4849, 4849, 4849, 4849,
+ 5143, 4849, 5143, 5143, 5143, 5143, 5143, 5143, 4849, 784,
+ 3660, 3660, 3660, 3660, 784, 1359, 2263, 784, 2264, 784,
+ 1360, 1361, 2265, 2264, 2266, 3928, 2268, 1363, 784, 784,
+ 2264, 784, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
+ 2264, 784, 2264, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
+ 3929, 3929, 3929, 3929, 3929, 3929, 3929, 1359, 784, 1760,
+ 4856, 4946, 4856, 4856, 1760, 3345, 3024, 1760, 3025, 1760,
+
+ 3343, 4947, 3027, 3025, 3028, 4948, 3030, 4949, 1760, 1760,
+ 3025, 1760, 4950, 4950, 4950, 4950, 4950, 4950, 4950, 4950,
+ 3025, 1760, 3025, 4950, 4950, 4950, 4950, 4950, 4950, 4950,
+ 4950, 4950, 4950, 4950, 4950, 4950, 4950, 3345, 1760, 2286,
+ 3643, 3913, 3643, 3643, 2286, 2286, 3914, 2286, 3643, 2286,
+ 2286, 3639, 3915, 3643, 3916, 4179, 3917, 3643, 2286, 2286,
+ 3643, 2286, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914,
+ 3643, 2286, 3643, 3914, 3914, 3914, 3914, 3914, 3914, 3914,
+ 3914, 3914, 3914, 3914, 3914, 3914, 3914, 2286, 2286, 1760,
+ 2668, 3001, 2668, 2668, 1760, 1760, 3024, 1760, 3025, 1760,
+
+ 1760, 3026, 3027, 3025, 3028, 3029, 3030, 3031, 1760, 1760,
+ 3025, 1760, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
+ 3025, 1760, 3025, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
+ 3024, 3024, 3024, 3024, 3024, 3024, 3024, 1760, 1760, 3341,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3342,
+ 5143, 5143, 5143, 5143, 5143, 3341, 3341, 3341, 3341, 3341,
+ 3341, 3341, 3341, 5143, 5143, 5143, 3341, 3341, 3341, 3341,
+ 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
+ 1760, 3343, 3344, 3343, 3343, 1760, 3345, 1760, 1760, 1760,
+ 1760, 3343, 3343, 1761, 1760, 1760, 3346, 1760, 3345, 1760,
+
+ 1760, 1760, 1760, 3345, 3345, 3345, 3345, 3345, 3345, 3345,
+ 3345, 1760, 1760, 1760, 3345, 3345, 3345, 3345, 3345, 3345,
+ 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 1760,
+ 3920, 4578, 4579, 4578, 4578, 3920, 3920, 4580, 3920, 4581,
+ 3920, 3920, 4582, 4583, 4581, 4584, 4585, 4586, 4587, 3920,
+ 3920, 4581, 3920, 4580, 4580, 4580, 4580, 4580, 4580, 4580,
+ 4580, 4581, 3920, 4581, 4580, 4580, 4580, 4580, 4580, 4580,
+ 4580, 4580, 4580, 4580, 4580, 4580, 4580, 4580, 3920, 3920,
+ 3356, 5143, 3357, 5143, 5143, 5143, 5143, 5143, 3358, 3358,
+ 3358, 3358, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3358,
+
+ 3358, 3358, 3358, 3358, 5143, 3358, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3358, 1760, 3031, 3359, 3031, 3031, 1760, 1760,
+ 3360, 1760, 3031, 1760, 1760, 3026, 3361, 3031, 3362, 3363,
+ 3364, 3031, 1760, 1760, 3031, 1760, 3360, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 3031, 1760, 3031, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3360, 1760, 1760, 4559, 4867, 4951, 4867, 4867, 4559, 4559,
+ 4952, 4559, 4867, 4559, 4559, 4863, 4953, 4867, 4954, 4955,
+ 4956, 4867, 4559, 4559, 4867, 4559, 4952, 4952, 4952, 4952,
+ 4952, 4952, 4952, 4952, 4867, 4559, 4867, 4952, 4952, 4952,
+
+ 4952, 4952, 4952, 4952, 4952, 4952, 4952, 4952, 4952, 4952,
+ 4952, 4559, 4559, 3018, 3373, 3663, 3373, 3373, 3018, 3018,
+ 3664, 3018, 3373, 3018, 3018, 3665, 4600, 3373, 3667, 4957,
+ 3669, 3373, 3018, 3018, 3373, 3018, 3664, 3664, 3664, 3664,
+ 3664, 3664, 3664, 3664, 3373, 3018, 3373, 3664, 3664, 3664,
+ 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664, 3664,
+ 3664, 3018, 3018, 1196, 1673, 1673, 1673, 1673, 1196, 1196,
+ 1890, 1196, 1196, 1196, 1891, 1891, 1197, 1196, 1196, 1892,
+ 1196, 1891, 1196, 1196, 1196, 1196, 1890, 1890, 1890, 1890,
+ 1890, 1890, 1890, 1890, 1196, 1196, 1196, 1890, 1890, 1890,
+
+ 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890,
+ 1890, 1893, 1196, 1196, 1891, 1891, 1891, 1891, 1196, 1196,
+ 2158, 1196, 1196, 1196, 1891, 1891, 1197, 1196, 1196, 1895,
+ 1196, 1891, 1196, 1196, 1196, 1196, 2158, 2158, 2158, 2158,
+ 2158, 2158, 2158, 2158, 1196, 1196, 1196, 2158, 2158, 2158,
+ 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158,
+ 2158, 1893, 1196, 2484, 3754, 3764, 3754, 3754, 2484, 2484,
+ 4961, 2484, 2484, 2484, 3754, 3754, 2485, 2484, 2484, 3995,
+ 4962, 3754, 2484, 2484, 2484, 2484, 4961, 4961, 4961, 4961,
+ 4961, 4961, 4961, 4961, 2484, 2484, 2484, 4961, 4961, 4961,
+
+ 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961,
+ 4961, 3756, 2484, 1458, 2850, 2203, 2850, 2850, 1458, 1458,
+ 2511, 1458, 2512, 1458, 1458, 2852, 4064, 2512, 2516, 4967,
+ 2518, 2855, 1458, 1458, 2512, 1458, 2511, 2511, 2511, 2511,
+ 2511, 2511, 2511, 2511, 2512, 1458, 2512, 2511, 2511, 2511,
+ 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511,
+ 2511, 1458, 1458, 1504, 2627, 3001, 2627, 2627, 1504, 1504,
+ 3305, 1504, 2627, 1504, 1504, 2622, 3003, 2627, 3004, 3005,
+ 3306, 2627, 1504, 1504, 2627, 1504, 3305, 3305, 3305, 3305,
+ 3305, 3305, 3305, 3305, 2627, 1504, 2627, 3305, 3305, 3305,
+
+ 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305,
+ 3305, 1504, 1504, 1987, 3303, 3609, 3303, 3303, 1987, 1987,
+ 3610, 1987, 3303, 1987, 1987, 3299, 3611, 3303, 3612, 4783,
+ 3613, 3303, 1987, 1987, 3303, 1987, 3610, 3610, 3610, 3610,
+ 3610, 3610, 3610, 3610, 3303, 1987, 3303, 3610, 3610, 3610,
+ 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610, 3610,
+ 3610, 1987, 1987, 3002, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3006, 5143, 5143, 5143, 5143, 5143, 3002,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 5143, 5143, 5143,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+
+ 3002, 3002, 3002, 3002, 2228, 3617, 3568, 3617, 3617, 2228,
+ 2228, 3810, 2228, 3811, 2228, 2228, 3577, 4968, 3811, 3813,
+ 4969, 3815, 3253, 2228, 2228, 3811, 2228, 3810, 3810, 3810,
+ 3810, 3810, 3810, 3810, 3810, 3811, 2228, 3811, 3810, 3810,
+ 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810,
+ 3810, 3810, 2228, 2228, 3315, 5143, 3316, 5143, 5143, 5143,
+ 5143, 5143, 3317, 3317, 3317, 3317, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 3317, 3317, 3317, 3317, 3317, 5143, 3317,
+ 5143, 5143, 5143, 5143, 5143, 5143, 3317, 3615, 4380, 4579,
+ 4380, 4380, 3615, 3615, 4890, 3615, 4380, 3615, 3615, 4375,
+
+ 4891, 4380, 4892, 4893, 4894, 4380, 3615, 3615, 4380, 3615,
+ 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4380, 3615,
+ 4380, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890,
+ 4890, 4890, 4890, 4890, 4890, 3615, 3615, 1461, 2238, 854,
+ 2238, 2238, 1461, 1461, 2534, 1461, 2535, 1461, 1461, 2590,
+ 4092, 2535, 2539, 4970, 2541, 2592, 1461, 1461, 2535, 1461,
+ 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2535, 1461,
+ 2535, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534, 2534,
+ 2534, 2534, 2534, 2534, 2534, 1461, 1461, 1970, 4899, 4973,
+ 4899, 4899, 1970, 3283, 4170, 1970, 4171, 1970, 2963, 4209,
+
+ 4173, 4171, 4174, 4974, 4176, 4214, 1970, 1970, 4171, 1970,
+ 4975, 4975, 4975, 4975, 4975, 4975, 4975, 4975, 4171, 1970,
+ 4171, 4975, 4975, 4975, 4975, 4975, 4975, 4975, 4975, 4975,
+ 4975, 4975, 4975, 4975, 4975, 3283, 1970, 3558, 4342, 4516,
+ 4342, 4342, 3558, 4517, 4518, 3558, 4519, 3558, 4520, 4521,
+ 4976, 4519, 4523, 4977, 4525, 4526, 3558, 3558, 4519, 3558,
+ 4527, 4527, 4527, 4527, 4527, 4527, 4527, 4527, 4519, 3558,
+ 4519, 4527, 4527, 4527, 4527, 4527, 4527, 4527, 4527, 4527,
+ 4527, 4527, 4527, 4527, 4527, 4517, 3558, 3558, 4563, 4687,
+ 4563, 4563, 3558, 3558, 4803, 3558, 4563, 3558, 3558, 4561,
+
+ 4689, 4563, 4813, 4691, 4901, 4563, 3558, 3558, 4563, 3558,
+ 4902, 4902, 4902, 4902, 4803, 4803, 4803, 4803, 4563, 3558,
+ 4563, 4902, 4902, 4902, 4902, 4902, 4803, 4902, 4803, 4803,
+ 4803, 4803, 4803, 4803, 4902, 3558, 3558, 599, 2897, 2897,
+ 2897, 2897, 599, 1038, 1061, 599, 862, 599, 1039, 1040,
+ 1062, 862, 1063, 3217, 1065, 1042, 599, 599, 862, 599,
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 862, 599,
+ 862, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 3218, 3218, 1038, 599, 4690, 5143, 4804,
+ 5143, 5143, 5143, 5143, 5143, 4803, 4803, 4803, 4803, 5143,
+
+ 5143, 5143, 5143, 5143, 5143, 5143, 4803, 4803, 4803, 4803,
+ 4803, 5143, 4803, 5143, 5143, 5143, 5143, 5143, 5143, 4803,
+ 4096, 4801, 4903, 4801, 4801, 4096, 4096, 4904, 4096, 4801,
+ 4096, 4096, 4797, 4905, 4801, 4906, 4978, 4907, 4801, 4096,
+ 4096, 4801, 4096, 4904, 4904, 4904, 4904, 4904, 4904, 4904,
+ 4904, 4801, 4096, 4801, 4904, 4904, 4904, 4904, 4904, 4904,
+ 4904, 4904, 4904, 4904, 4904, 4904, 4904, 4904, 4096, 4096,
+ 4688, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4692, 5143, 5143, 5143, 5143, 5143, 4688, 4688, 4688, 4688,
+ 4688, 4688, 4688, 4688, 5143, 5143, 5143, 4688, 4688, 4688,
+
+ 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688,
+ 4688, 4813, 5143, 4814, 5143, 5143, 5143, 5143, 5143, 4815,
+ 4815, 4815, 4815, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4815, 4815, 4815, 4815, 4815, 5143, 4815, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4815, 1841, 4912, 4979, 4912, 4912, 1841,
+ 3449, 4180, 1841, 4181, 1841, 3447, 4203, 4182, 4181, 4183,
+ 4980, 4185, 4205, 1841, 1841, 4181, 1841, 4981, 4981, 4981,
+ 4981, 4981, 4981, 4981, 4981, 4181, 1841, 4181, 4981, 4981,
+ 4981, 4981, 4981, 4981, 4981, 4981, 4981, 4981, 4981, 4981,
+ 4981, 4981, 3449, 1841, 4163, 4698, 3923, 4698, 4698, 4163,
+
+ 4163, 4914, 4163, 4698, 4163, 4163, 4819, 4820, 4698, 4821,
+ 4822, 4915, 4698, 4163, 4163, 4698, 4163, 4914, 4914, 4914,
+ 4914, 4914, 4914, 4914, 4914, 4698, 4163, 4698, 4914, 4914,
+ 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914,
+ 4914, 4914, 4163, 4163, 4926, 5143, 4982, 5143, 5143, 5143,
+ 5143, 5143, 4983, 4983, 4983, 4983, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4983, 4983, 4983, 4983, 4983, 5143, 4983,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4983, 4818, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4823, 5143, 5143,
+ 5143, 5143, 5143, 4818, 4818, 4818, 4818, 4818, 4818, 4818,
+
+ 4818, 5143, 5143, 5143, 4818, 4818, 4818, 4818, 4818, 4818,
+ 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4163, 4772,
+ 4886, 4772, 4772, 4163, 4851, 4163, 4163, 4163, 4163, 4772,
+ 4772, 4164, 4163, 4163, 4887, 4163, 4851, 4163, 4163, 4163,
+ 4163, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4163,
+ 4163, 4163, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+ 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4163, 4554, 4984,
+ 4985, 4984, 4984, 4554, 4554, 4986, 4554, 4984, 4554, 4554,
+ 4987, 4988, 4984, 4989, 4822, 4990, 4984, 4554, 4554, 4984,
+ 4554, 4986, 4986, 4986, 4986, 4986, 4986, 4986, 4986, 4984,
+
+ 4554, 4984, 4986, 4986, 4986, 4986, 4986, 4986, 4986, 4986,
+ 4986, 4986, 4986, 4986, 4986, 4986, 4554, 4554, 1093, 4389,
+ 4098, 4389, 4389, 1093, 1925, 2192, 1093, 1991, 1093, 1928,
+ 1929, 4130, 1991, 2193, 4991, 2195, 1933, 1093, 1093, 1991,
+ 1093, 4558, 4558, 4558, 4558, 4558, 4558, 4558, 4558, 1991,
+ 1093, 1991, 4558, 4558, 4558, 4558, 4558, 4558, 4558, 4558,
+ 4558, 4558, 4558, 4558, 4558, 4558, 1925, 1093, 4926, 5143,
+ 4927, 5143, 5143, 5143, 5143, 5143, 4928, 4928, 4928, 4928,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4928, 4928, 4928,
+ 4928, 4928, 5143, 4928, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 4928, 1479, 2362, 2563, 2362, 2362, 1479, 1479, 2575, 1479,
+ 2576, 1479, 1479, 2701, 4144, 2576, 2580, 4993, 2582, 2703,
+ 1479, 1479, 2576, 1479, 2575, 2575, 2575, 2575, 2575, 2575,
+ 2575, 2575, 2576, 1479, 2576, 2575, 2575, 2575, 2575, 2575,
+ 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 2575, 1479,
+ 1479, 1479, 4932, 4687, 4932, 4932, 1479, 2574, 2955, 1479,
+ 2703, 1479, 2577, 2578, 2956, 2703, 2957, 4994, 2959, 2583,
+ 1479, 1479, 2703, 1479, 4995, 4995, 4995, 4995, 4995, 4995,
+ 4995, 4995, 2703, 1479, 2703, 4995, 4995, 4995, 4995, 4995,
+ 4995, 4995, 4995, 4995, 4995, 4995, 4995, 4995, 4995, 2574,
+
+ 1479, 1588, 4553, 3663, 4553, 4553, 1588, 1588, 4838, 1588,
+ 4716, 1588, 1588, 2769, 4717, 4716, 4718, 4719, 4839, 2430,
+ 1588, 1588, 4716, 1588, 4838, 4838, 4838, 4838, 4838, 4838,
+ 4838, 4838, 4716, 1588, 4716, 4838, 4838, 4838, 4838, 4838,
+ 4838, 4838, 4838, 4838, 4838, 4838, 4838, 4838, 4838, 1588,
+ 1588, 4847, 5143, 4935, 5143, 5143, 5143, 5143, 5143, 4936,
+ 4936, 4936, 4936, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4936, 4936, 4936, 4936, 4936, 5143, 4936, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4936, 4715, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4720, 5143, 5143, 5143, 5143, 5143,
+
+ 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 5143, 5143,
+ 5143, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715,
+ 4715, 4715, 4715, 4715, 4715, 2094, 4937, 4192, 4937, 4937,
+ 2094, 2094, 4938, 2094, 4939, 2094, 2094, 3438, 4940, 4939,
+ 4941, 4998, 4942, 3435, 2094, 2094, 4939, 2094, 4938, 4938,
+ 4938, 4938, 4938, 4938, 4938, 4938, 4939, 2094, 4939, 4938,
+ 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938,
+ 4938, 4938, 4938, 2094, 2094, 4847, 5143, 4848, 5143, 5143,
+ 5143, 5143, 5143, 4849, 4849, 4849, 4849, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 4849, 4849, 4849, 4849, 4849, 5143,
+
+ 4849, 5143, 5143, 5143, 5143, 5143, 5143, 4849, 213, 1082,
+ 1082, 1082, 1082, 213, 382, 337, 213, 338, 213, 381,
+ 1256, 340, 338, 341, 1257, 343, 1258, 213, 213, 338,
+ 213, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 338,
+ 213, 338, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259,
+ 1259, 1259, 1259, 1259, 1259, 1259, 382, 213, 1760, 3343,
+ 3344, 3343, 3343, 1760, 3345, 1760, 1760, 1760, 1760, 3343,
+ 3343, 1761, 1760, 1760, 3346, 1760, 3345, 1760, 1760, 1760,
+ 1760, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 1760,
+ 1760, 1760, 3345, 3345, 3345, 3345, 3345, 3345, 3345, 3345,
+
+ 3345, 3345, 3345, 3345, 3345, 3345, 3345, 1760, 1760, 3031,
+ 3359, 3031, 3031, 1760, 1760, 3360, 1760, 3031, 1760, 1760,
+ 3026, 3361, 3031, 3362, 3363, 3364, 3031, 1760, 1760, 3031,
+ 1760, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3031,
+ 1760, 3031, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 3360, 3360, 1760, 1760, 1760, 2668,
+ 3001, 2668, 2668, 1760, 1760, 3341, 1760, 3025, 1760, 1760,
+ 3026, 3027, 3025, 3028, 3029, 3342, 3031, 1760, 1760, 3025,
+ 1760, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3025,
+ 1760, 3025, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
+
+ 3341, 3341, 3341, 3341, 3341, 3341, 1760, 1760, 213, 1281,
+ 1281, 1281, 1281, 213, 382, 398, 213, 344, 213, 381,
+ 1256, 399, 344, 400, 1506, 402, 1258, 213, 213, 344,
+ 213, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 344,
+ 213, 344, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
+ 1507, 1507, 1507, 1507, 1507, 1507, 382, 213, 3646, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3647, 5143,
+ 5143, 5143, 5143, 5143, 3646, 3646, 3646, 3646, 3646, 3646,
+ 3646, 3646, 5143, 5143, 5143, 3646, 3646, 3646, 3646, 3646,
+ 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3920,
+
+ 4587, 4999, 4587, 4587, 3920, 3920, 5000, 3920, 4587, 3920,
+ 3920, 4582, 5001, 4587, 5002, 5003, 5004, 4587, 3920, 3920,
+ 4587, 3920, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000,
+ 4587, 3920, 4587, 5000, 5000, 5000, 5000, 5000, 5000, 5000,
+ 5000, 5000, 5000, 5000, 5000, 5000, 5000, 3920, 3920, 3656,
+ 5143, 3657, 5143, 5143, 5143, 5143, 5143, 3658, 3658, 3658,
+ 3658, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3658, 3658,
+ 3658, 3658, 3658, 5143, 3658, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3658, 561, 812, 812, 812, 812, 561, 561, 813,
+ 561, 561, 561, 561, 561, 562, 561, 561, 984, 561,
+
+ 561, 561, 561, 561, 561, 813, 813, 813, 813, 813,
+ 813, 813, 813, 561, 561, 561, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 985, 561, 2484, 3754, 3764, 3754, 3754, 2484, 2484, 3994,
+ 2484, 2484, 2484, 3754, 3754, 2485, 2484, 2484, 3995, 3996,
+ 3754, 2484, 2484, 2484, 2484, 3994, 3994, 3994, 3994, 3994,
+ 3994, 3994, 3994, 2484, 2484, 2484, 3994, 3994, 3994, 3994,
+ 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994,
+ 3756, 2484, 4961, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 4962, 5143, 5143, 5143, 5143, 5143, 4961, 4961,
+
+ 4961, 4961, 4961, 4961, 4961, 4961, 5143, 5143, 5143, 4961,
+ 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961,
+ 4961, 4961, 4961, 2937, 4311, 4312, 4311, 4311, 2937, 2937,
+ 4313, 2937, 4314, 2937, 2937, 4126, 4315, 4314, 4316, 4512,
+ 4317, 4123, 2937, 2937, 4314, 2937, 4313, 4313, 4313, 4313,
+ 4313, 4313, 4313, 4313, 4314, 2937, 4314, 4313, 4313, 4313,
+ 4313, 4313, 4313, 4313, 4313, 4313, 4313, 4313, 4313, 4313,
+ 4313, 2937, 2937, 248, 1460, 1460, 1460, 1460, 248, 377,
+ 603, 248, 604, 248, 336, 1701, 606, 604, 607, 1702,
+ 609, 1703, 248, 248, 604, 248, 1704, 1704, 1704, 1704,
+
+ 1704, 1704, 1704, 1704, 604, 248, 604, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 377, 248, 1970, 3909, 3871, 3909, 3909, 1970, 1970,
+ 4393, 1970, 4171, 1970, 1970, 4172, 4173, 4171, 4174, 4175,
+ 4394, 3978, 1970, 1970, 4171, 1970, 4393, 4393, 4393, 4393,
+ 4393, 4393, 4393, 4393, 4171, 1970, 4171, 4393, 4393, 4393,
+ 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393,
+ 4393, 1970, 1970, 4167, 5014, 4773, 5014, 5014, 4167, 4167,
+ 5015, 4167, 5016, 4167, 4167, 5017, 5018, 5016, 5019, 5020,
+ 5021, 5022, 4167, 4167, 5016, 4167, 5015, 5015, 5015, 5015,
+
+ 5015, 5015, 5015, 5015, 5016, 4167, 5016, 5015, 5015, 5015,
+ 5015, 5015, 5015, 5015, 5015, 5015, 5015, 5015, 5015, 5015,
+ 5015, 4167, 4167, 3558, 4342, 4516, 4342, 4342, 3558, 4517,
+ 4518, 3558, 4519, 3558, 4520, 4521, 5023, 4519, 4523, 5024,
+ 4525, 4526, 3558, 3558, 4519, 3558, 4527, 4527, 4527, 4527,
+ 4527, 4527, 4527, 4527, 4519, 3558, 4519, 4527, 4527, 4527,
+ 4527, 4527, 4527, 4527, 4527, 4527, 4527, 4527, 4527, 4527,
+ 4527, 4517, 3558, 255, 1478, 1478, 1478, 1478, 255, 469,
+ 628, 255, 629, 255, 468, 1590, 630, 629, 631, 1721,
+ 633, 1592, 255, 255, 629, 255, 1722, 1722, 1722, 1722,
+
+ 1722, 1722, 1722, 1722, 629, 255, 629, 1722, 1722, 1722,
+ 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722,
+ 1722, 469, 255, 1841, 3922, 3575, 3922, 3922, 1841, 1841,
+ 4411, 1841, 4181, 1841, 1841, 3114, 4182, 4181, 4183, 4184,
+ 4412, 2767, 1841, 1841, 4181, 1841, 4411, 4411, 4411, 4411,
+ 4411, 4411, 4411, 4411, 4181, 1841, 4181, 4411, 4411, 4411,
+ 4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411, 4411,
+ 4411, 1841, 1841, 4163, 4698, 3923, 4698, 4698, 4163, 4163,
+ 4914, 4163, 4698, 4163, 4163, 4819, 4820, 4698, 4926, 4822,
+ 4982, 4698, 4163, 4163, 4698, 4163, 4983, 4983, 4983, 4983,
+
+ 4914, 4914, 4914, 4914, 4698, 4163, 4698, 4983, 4983, 4983,
+ 4983, 4983, 4914, 4983, 4914, 4914, 4914, 4914, 4914, 4914,
+ 4983, 4163, 4163, 4818, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 4821, 5143, 4823, 5143, 5143, 5143, 5143, 5143, 4818,
+ 4818, 4818, 4818, 4818, 4818, 4818, 4818, 5143, 5143, 5143,
+ 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818,
+ 4818, 4818, 4818, 4818, 784, 3660, 3660, 3660, 3660, 784,
+ 1359, 2263, 784, 2264, 784, 1360, 1361, 2265, 2264, 2266,
+ 3928, 2268, 1363, 784, 784, 2264, 784, 3929, 3929, 3929,
+ 3929, 3929, 3929, 3929, 3929, 2264, 784, 2264, 3929, 3929,
+
+ 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
+ 3929, 3929, 1359, 784, 4821, 5143, 4915, 5143, 5143, 5143,
+ 5143, 5143, 4914, 4914, 4914, 4914, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 4914, 4914, 4914, 4914, 4914, 5143, 4914,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4914, 4163, 4772, 4886,
+ 4772, 4772, 4163, 4851, 4163, 4163, 4163, 4163, 4772, 4772,
+ 4164, 4163, 4163, 4887, 4163, 4851, 4163, 4163, 4163, 4163,
+ 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4163, 4163,
+ 4163, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+ 4851, 4851, 4851, 4851, 4851, 4851, 4163, 4554, 4984, 4985,
+
+ 4984, 4984, 4554, 4554, 4986, 4554, 4984, 4554, 4554, 4987,
+ 4988, 4984, 4989, 5027, 4990, 4984, 4554, 4554, 4984, 4554,
+ 4986, 4986, 4986, 4986, 4986, 4986, 4986, 4986, 4984, 4554,
+ 4984, 4986, 4986, 4986, 4986, 4986, 4986, 4986, 4986, 4986,
+ 4986, 4986, 4986, 4986, 4986, 4554, 4554, 4926, 5143, 4927,
+ 5143, 5143, 5143, 5143, 5143, 4928, 4928, 4928, 4928, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4928, 4928, 4928, 4928,
+ 4928, 5143, 4928, 5143, 5143, 5143, 5143, 5143, 5143, 4928,
+ 2228, 4992, 4979, 4992, 4992, 2228, 3817, 3576, 2228, 3253,
+ 2228, 3818, 3819, 3578, 3253, 3579, 5028, 3581, 3821, 2228,
+
+ 2228, 3253, 2228, 5029, 5029, 5029, 5029, 5029, 5029, 5029,
+ 5029, 3253, 2228, 3253, 5029, 5029, 5029, 5029, 5029, 5029,
+ 5029, 5029, 5029, 5029, 5029, 5029, 5029, 5029, 3817, 2228,
+ 1479, 2703, 2954, 2703, 2703, 1479, 1479, 3267, 1479, 2703,
+ 1479, 1479, 2701, 2956, 2703, 2957, 2958, 3268, 2703, 1479,
+ 1479, 2703, 1479, 3267, 3267, 3267, 3267, 3267, 3267, 3267,
+ 3267, 2703, 1479, 2703, 3267, 3267, 3267, 3267, 3267, 3267,
+ 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 1479, 1479,
+ 1588, 2421, 2753, 2421, 2421, 1588, 2754, 2755, 1588, 2430,
+ 1588, 2756, 2757, 5033, 2430, 2759, 5034, 2761, 2762, 1588,
+
+ 1588, 2430, 1588, 2763, 2763, 2763, 2763, 2763, 2763, 2763,
+ 2763, 2430, 1588, 2430, 2763, 2763, 2763, 2763, 2763, 2763,
+ 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2763, 2754, 1588,
+ 213, 1281, 1281, 1281, 1281, 213, 382, 398, 213, 344,
+ 213, 381, 1256, 399, 344, 400, 1506, 402, 1258, 213,
+ 213, 344, 213, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
+ 1507, 344, 213, 344, 1507, 1507, 1507, 1507, 1507, 1507,
+ 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1507, 382, 213,
+ 3646, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 3647, 5143, 5143, 5143, 5143, 5143, 3646, 3646, 3646, 3646,
+
+ 3646, 3646, 3646, 3646, 5143, 5143, 5143, 3646, 3646, 3646,
+ 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646,
+ 3646, 2286, 3643, 3913, 3643, 3643, 2286, 2286, 3914, 2286,
+ 3643, 2286, 2286, 3639, 3915, 3643, 3916, 4955, 3917, 3643,
+ 2286, 2286, 3643, 2286, 3914, 3914, 3914, 3914, 3914, 3914,
+ 3914, 3914, 3643, 2286, 3643, 3914, 3914, 3914, 3914, 3914,
+ 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 3914, 2286,
+ 2286, 3360, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3364, 5143, 5143, 5143, 5143, 5143, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 3360, 5143, 5143, 5143, 3360, 3360,
+
+ 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3360, 3360, 1841, 3922, 3575, 3922, 3922, 1841, 1841, 4180,
+ 1841, 4181, 1841, 1841, 3114, 5035, 4181, 4183, 5036, 4185,
+ 2767, 1841, 1841, 4181, 1841, 4180, 4180, 4180, 4180, 4180,
+ 4180, 4180, 4180, 4181, 1841, 4181, 4180, 4180, 4180, 4180,
+ 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180,
+ 1841, 1841, 3656, 5143, 3657, 5143, 5143, 5143, 5143, 5143,
+ 3658, 3658, 3658, 3658, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 3658, 3658, 3658, 3658, 3658, 5143, 3658, 5143, 5143,
+ 5143, 5143, 5143, 5143, 3658, 3920, 4587, 4999, 4587, 4587,
+
+ 3920, 3920, 5000, 3920, 4587, 3920, 3920, 4582, 5001, 4587,
+ 5002, 5003, 5004, 4587, 3920, 3920, 4587, 3920, 5000, 5000,
+ 5000, 5000, 5000, 5000, 5000, 5000, 4587, 3920, 4587, 5000,
+ 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000,
+ 5000, 5000, 5000, 3920, 3920, 2501, 5007, 5037, 5007, 5007,
+ 2501, 2501, 5038, 2501, 2501, 2501, 4021, 4021, 2502, 2501,
+ 2501, 5039, 2501, 4021, 2501, 2501, 2501, 2501, 5038, 5038,
+ 5038, 5038, 5038, 5038, 5038, 5038, 2501, 2501, 2501, 5038,
+ 5038, 5038, 5038, 5038, 5038, 5038, 5038, 5038, 5038, 5038,
+ 5038, 5038, 5038, 4026, 2501, 1726, 5008, 4973, 5008, 5008,
+
+ 1726, 2961, 4049, 1726, 3885, 1726, 2585, 3800, 4050, 3885,
+ 4051, 5040, 4053, 3805, 1726, 1726, 3885, 1726, 5041, 5041,
+ 5041, 5041, 5041, 5041, 5041, 5041, 3885, 1726, 3885, 5041,
+ 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041,
+ 5041, 5041, 5041, 2961, 1726, 599, 2897, 2897, 2897, 2897,
+ 599, 1038, 1061, 599, 862, 599, 1039, 1040, 1062, 862,
+ 1063, 3217, 1065, 1042, 599, 599, 862, 599, 3218, 3218,
+ 3218, 3218, 3218, 3218, 3218, 3218, 862, 599, 862, 3218,
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 1038, 599, 3558, 4392, 2573, 4392, 4392,
+
+ 3558, 3558, 4518, 3558, 4519, 3558, 3558, 4561, 4522, 4519,
+ 4523, 4562, 4525, 4563, 3558, 3558, 4519, 3558, 4518, 4518,
+ 4518, 4518, 4518, 4518, 4518, 4518, 4519, 3558, 4519, 4518,
+ 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518,
+ 4518, 4518, 4518, 3558, 3558, 4671, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 4672, 5143, 5143, 5143, 5143,
+ 5143, 4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671, 5143,
+ 5143, 5143, 4671, 4671, 4671, 4671, 4671, 4671, 4671, 4671,
+ 4671, 4671, 4671, 4671, 4671, 4671, 3558, 4520, 4673, 4520,
+ 4520, 3558, 4517, 3558, 3558, 3558, 3558, 4520, 4520, 3559,
+
+ 3558, 3558, 4674, 3558, 4517, 3558, 3558, 3558, 3558, 4517,
+ 4517, 4517, 4517, 4517, 4517, 4517, 4517, 3558, 3558, 3558,
+ 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517, 4517,
+ 4517, 4517, 4517, 4517, 4517, 3558, 4096, 4794, 3531, 4794,
+ 4794, 4096, 4096, 4795, 4096, 4796, 4096, 4096, 4797, 4798,
+ 4796, 4799, 5045, 4800, 4801, 4096, 4096, 4796, 4096, 4795,
+ 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4796, 4096, 4796,
+ 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795, 4795,
+ 4795, 4795, 4795, 4795, 4096, 4096, 1760, 4856, 4946, 4856,
+ 4856, 1760, 3345, 3024, 1760, 3025, 1760, 3343, 4947, 4177,
+
+ 3025, 3028, 5046, 3030, 4949, 1760, 1760, 3025, 1760, 4950,
+ 4950, 4950, 4950, 4950, 4950, 4950, 4950, 3025, 1760, 3025,
+ 4950, 4950, 4950, 4950, 4950, 4950, 4950, 4950, 4950, 4950,
+ 4950, 4950, 4950, 4950, 3345, 1760, 4684, 5143, 4685, 5143,
+ 5143, 5143, 5143, 5143, 4686, 4686, 4686, 4686, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 4686, 4686, 4686, 4686, 4686,
+ 5143, 4686, 5143, 5143, 5143, 5143, 5143, 5143, 4686, 3558,
+ 4563, 4687, 4563, 4563, 3558, 3558, 4688, 3558, 4563, 3558,
+ 3558, 4561, 4689, 4563, 4690, 4691, 4692, 4563, 3558, 3558,
+ 4563, 3558, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688,
+
+ 4563, 3558, 4563, 4688, 4688, 4688, 4688, 4688, 4688, 4688,
+ 4688, 4688, 4688, 4688, 4688, 4688, 4688, 3558, 3558, 4909,
+ 5047, 5048, 5047, 5047, 4909, 4909, 5049, 4909, 5050, 4909,
+ 4909, 5051, 5052, 5050, 5053, 5054, 5055, 5056, 4909, 4909,
+ 5050, 4909, 5049, 5049, 5049, 5049, 5049, 5049, 5049, 5049,
+ 5050, 4909, 5050, 5049, 5049, 5049, 5049, 5049, 5049, 5049,
+ 5049, 5049, 5049, 5049, 5049, 5049, 5049, 4909, 4909, 4163,
+ 4721, 4850, 4721, 4721, 4163, 4851, 4818, 4163, 4698, 4163,
+ 4772, 4852, 5060, 4698, 4821, 5061, 4823, 4854, 4163, 4163,
+ 4698, 4163, 4855, 4855, 4855, 4855, 4855, 4855, 4855, 4855,
+
+ 4698, 4163, 4698, 4855, 4855, 4855, 4855, 4855, 4855, 4855,
+ 4855, 4855, 4855, 4855, 4855, 4855, 4855, 4851, 4163, 2228,
+ 3253, 3575, 3253, 3253, 2228, 2228, 3857, 2228, 3253, 2228,
+ 2228, 3577, 3578, 3253, 3579, 3580, 3858, 3253, 2228, 2228,
+ 3253, 2228, 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3857,
+ 3253, 2228, 3253, 3857, 3857, 3857, 3857, 3857, 3857, 3857,
+ 3857, 3857, 3857, 3857, 3857, 3857, 3857, 2228, 2228, 599,
+ 862, 862, 862, 862, 599, 599, 1061, 599, 862, 599,
+ 599, 857, 1062, 862, 1063, 1064, 1065, 862, 599, 599,
+ 862, 599, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+
+ 862, 599, 862, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 599, 599, 4712,
+ 5064, 5065, 5064, 5064, 4712, 4712, 5066, 4712, 5064, 4712,
+ 4712, 5067, 5068, 5064, 5069, 5070, 5071, 5064, 4712, 4712,
+ 5064, 4712, 5066, 5066, 5066, 5066, 5066, 5066, 5066, 5066,
+ 5064, 4712, 5064, 5066, 5066, 5066, 5066, 5066, 5066, 5066,
+ 5066, 5066, 5066, 5066, 5066, 5066, 5066, 4712, 4712, 2427,
+ 4590, 4124, 4590, 4590, 2427, 2427, 4591, 2427, 4592, 2427,
+ 2427, 3723, 4593, 4592, 4594, 4733, 4595, 3720, 2427, 2427,
+ 4592, 2427, 4591, 4591, 4591, 4591, 4591, 4591, 4591, 4591,
+
+ 4592, 2427, 4592, 4591, 4591, 4591, 4591, 4591, 4591, 4591,
+ 4591, 4591, 4591, 4591, 4591, 4591, 4591, 2427, 2427, 324,
+ 1904, 1904, 1904, 1904, 324, 324, 2168, 324, 324, 324,
+ 681, 681, 325, 324, 324, 2169, 324, 681, 324, 324,
+ 324, 324, 2168, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
+ 324, 324, 324, 2168, 2168, 2168, 2168, 2168, 2168, 2168,
+ 2168, 2168, 2168, 2168, 2168, 2168, 2168, 685, 324, 2501,
+ 4021, 4022, 4021, 4021, 2501, 2501, 4260, 2501, 2501, 2501,
+ 4021, 4021, 2502, 2501, 2501, 4024, 4261, 4021, 2501, 2501,
+ 2501, 2501, 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260,
+
+ 2501, 2501, 2501, 4260, 4260, 4260, 4260, 4260, 4260, 4260,
+ 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4026, 2501, 1726,
+ 3885, 3871, 3885, 3885, 1726, 1726, 4284, 1726, 3885, 1726,
+ 1726, 3883, 4050, 3885, 4051, 4052, 4285, 3885, 1726, 1726,
+ 3885, 1726, 4284, 4284, 4284, 4284, 4284, 4284, 4284, 4284,
+ 3885, 1726, 3885, 4284, 4284, 4284, 4284, 4284, 4284, 4284,
+ 4284, 4284, 4284, 4284, 4284, 4284, 4284, 1726, 1726, 599,
+ 854, 854, 854, 854, 599, 1038, 855, 599, 856, 599,
+ 1039, 1040, 858, 856, 859, 1041, 861, 1042, 599, 599,
+ 856, 599, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+
+ 856, 599, 856, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1038, 599, 1841,
+ 4912, 4979, 4912, 4912, 1841, 3449, 4180, 1841, 4181, 1841,
+ 3447, 4203, 4731, 4181, 4183, 5078, 4185, 4205, 1841, 1841,
+ 4181, 1841, 4981, 4981, 4981, 4981, 4981, 4981, 4981, 4981,
+ 4181, 1841, 4181, 4981, 4981, 4981, 4981, 4981, 4981, 4981,
+ 4981, 4981, 4981, 4981, 4981, 4981, 4981, 3449, 1841, 4530,
+ 5079, 5080, 5079, 5079, 4530, 4530, 5081, 4530, 5079, 4530,
+ 4530, 5082, 5083, 5079, 5084, 5085, 5086, 5079, 4530, 4530,
+ 5079, 4530, 5081, 5081, 5081, 5081, 5081, 5081, 5081, 5081,
+
+ 5079, 4530, 5079, 5081, 5081, 5081, 5081, 5081, 5081, 5081,
+ 5081, 5081, 5081, 5081, 5081, 5081, 5081, 4530, 4530, 1479,
+ 2703, 2954, 2703, 2703, 1479, 1479, 2955, 1479, 2703, 1479,
+ 1479, 2701, 2956, 2703, 2957, 2958, 2959, 2703, 1479, 1479,
+ 2703, 1479, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2703, 1479, 2703, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+ 2955, 2955, 2955, 2955, 2955, 2955, 2955, 1479, 1479, 3267,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3268,
+ 5143, 5143, 5143, 5143, 5143, 3267, 3267, 3267, 3267, 3267,
+ 3267, 3267, 3267, 5143, 5143, 5143, 3267, 3267, 3267, 3267,
+
+ 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267,
+ 1479, 2577, 2897, 2577, 2577, 1479, 2574, 1479, 1479, 1479,
+ 1479, 2577, 2577, 1480, 1479, 1479, 2941, 1479, 2574, 1479,
+ 1479, 1479, 1479, 2574, 2574, 2574, 2574, 2574, 2574, 2574,
+ 2574, 1479, 1479, 1479, 2574, 2574, 2574, 2574, 2574, 2574,
+ 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 2574, 1479,
+ 4832, 5090, 5091, 5090, 5090, 4832, 4832, 5092, 4832, 5090,
+ 4832, 4832, 5093, 5094, 5090, 5095, 5096, 5097, 5090, 4832,
+ 4832, 5090, 4832, 5092, 5092, 5092, 5092, 5092, 5092, 5092,
+ 5092, 5090, 4832, 5090, 5092, 5092, 5092, 5092, 5092, 5092,
+
+ 5092, 5092, 5092, 5092, 5092, 5092, 5092, 5092, 4832, 4832,
+ 536, 4714, 3359, 4714, 4714, 536, 1339, 1354, 536, 1142,
+ 536, 1338, 3677, 3955, 1142, 1356, 5098, 1358, 3679, 536,
+ 536, 1142, 536, 4837, 4837, 4837, 4837, 4837, 4837, 4837,
+ 4837, 1142, 536, 1142, 4837, 4837, 4837, 4837, 4837, 4837,
+ 4837, 4837, 4837, 4837, 4837, 4837, 4837, 4837, 1339, 536,
+ 3277, 5143, 3278, 5143, 5143, 5143, 5143, 5143, 3279, 3279,
+ 3279, 3279, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 3279,
+ 3279, 3279, 3279, 3279, 5143, 3279, 5143, 5143, 5143, 5143,
+ 5143, 5143, 3279, 4163, 4698, 3923, 4698, 4698, 4163, 4163,
+
+ 4818, 4163, 4698, 4163, 4163, 4819, 4820, 4698, 4821, 4822,
+ 4823, 4698, 4163, 4163, 4698, 4163, 4818, 4818, 4818, 4818,
+ 4818, 4818, 4818, 4818, 4698, 4163, 4698, 4818, 4818, 4818,
+ 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818,
+ 4818, 4163, 4163, 784, 3660, 3660, 3660, 3660, 784, 1359,
+ 2263, 784, 2264, 784, 1360, 1361, 2265, 2264, 2266, 3928,
+ 2268, 1363, 784, 784, 2264, 784, 3929, 3929, 3929, 3929,
+ 3929, 3929, 3929, 3929, 2264, 784, 2264, 3929, 3929, 3929,
+ 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929, 3929,
+ 3929, 1359, 784, 4914, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 4915, 5143, 5143, 5143, 5143, 5143, 4914,
+ 4914, 4914, 4914, 4914, 4914, 4914, 4914, 5143, 5143, 5143,
+ 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914,
+ 4914, 4914, 4914, 4914, 4163, 4772, 4886, 4772, 4772, 4163,
+ 4851, 4163, 4163, 4163, 4163, 4772, 4772, 4164, 4163, 4163,
+ 4887, 4163, 4851, 4163, 4163, 4163, 4163, 4851, 4851, 4851,
+ 4851, 4851, 4851, 4851, 4851, 4163, 4163, 4163, 4851, 4851,
+ 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851, 4851,
+ 4851, 4851, 4851, 4163, 4554, 4984, 4985, 4984, 4984, 4554,
+ 4554, 4986, 4554, 4984, 4554, 4554, 4987, 4988, 4984, 4989,
+
+ 5107, 4990, 4984, 4554, 4554, 4984, 4554, 4986, 4986, 4986,
+ 4986, 4986, 4986, 4986, 4986, 4984, 4554, 4984, 4986, 4986,
+ 4986, 4986, 4986, 4986, 4986, 4986, 4986, 4986, 4986, 4986,
+ 4986, 4986, 4554, 4554, 2228, 4992, 4979, 4992, 4992, 2228,
+ 3817, 3576, 2228, 3253, 2228, 3818, 3819, 4533, 3253, 3579,
+ 5108, 3581, 3821, 2228, 2228, 3253, 2228, 5029, 5029, 5029,
+ 5029, 5029, 5029, 5029, 5029, 3253, 2228, 3253, 5029, 5029,
+ 5029, 5029, 5029, 5029, 5029, 5029, 5029, 5029, 5029, 5029,
+ 5029, 5029, 3817, 2228, 4926, 5143, 4927, 5143, 5143, 5143,
+ 5143, 5143, 4928, 4928, 4928, 4928, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 4928, 4928, 4928, 4928, 4928, 5143, 4928,
+ 5143, 5143, 5143, 5143, 5143, 5143, 4928, 1960, 3265, 3586,
+ 3265, 3265, 1960, 1960, 3587, 1960, 3265, 1960, 1960, 3261,
+ 3588, 3265, 3589, 5109, 3590, 3265, 1960, 1960, 3265, 1960,
+ 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3265, 1960,
+ 3265, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587, 3587,
+ 3587, 3587, 3587, 3587, 3587, 1960, 1960, 1588, 4553, 3663,
+ 4553, 4553, 1588, 1588, 4715, 1588, 4716, 1588, 1588, 2769,
+ 5110, 4716, 4718, 5111, 4720, 2430, 1588, 1588, 4716, 1588,
+ 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4716, 1588,
+
+ 4716, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715,
+ 4715, 4715, 4715, 4715, 4715, 1588, 1588, 1196, 1673, 1673,
+ 1673, 1673, 1196, 1196, 1890, 1196, 1196, 1196, 1891, 1891,
+ 1197, 1196, 1196, 1892, 1196, 1891, 1196, 1196, 1196, 1196,
+ 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1196, 1196,
+ 1196, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890, 1890,
+ 1890, 1890, 1890, 1890, 1890, 1893, 1196, 4167, 5022, 5112,
+ 5022, 5022, 4167, 4167, 5113, 4167, 5022, 4167, 4167, 5017,
+ 5114, 5022, 5115, 5116, 5117, 5022, 4167, 4167, 5022, 4167,
+ 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5022, 4167,
+
+ 5022, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113,
+ 5113, 5113, 5113, 5113, 5113, 4167, 4167, 1479, 4932, 4687,
+ 4932, 4932, 1479, 2574, 2955, 1479, 2703, 1479, 2577, 2578,
+ 5119, 2703, 2957, 5120, 2959, 2583, 1479, 1479, 2703, 1479,
+ 4995, 4995, 4995, 4995, 4995, 4995, 4995, 4995, 2703, 1479,
+ 2703, 4995, 4995, 4995, 4995, 4995, 4995, 4995, 4995, 4995,
+ 4995, 4995, 4995, 4995, 4995, 2574, 1479, 2110, 5121, 4738,
+ 5121, 5121, 2110, 2110, 5122, 2110, 5123, 2110, 2110, 4227,
+ 5124, 5123, 5125, 5126, 5127, 4224, 2110, 2110, 5123, 2110,
+ 5122, 5122, 5122, 5122, 5122, 5122, 5122, 5122, 5123, 2110,
+
+ 5123, 5122, 5122, 5122, 5122, 5122, 5122, 5122, 5122, 5122,
+ 5122, 5122, 5122, 5122, 5122, 2110, 2110, 4803, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4804, 5143, 5143,
+ 5143, 5143, 5143, 4803, 4803, 4803, 4803, 4803, 4803, 4803,
+ 4803, 5143, 5143, 5143, 4803, 4803, 4803, 4803, 4803, 4803,
+ 4803, 4803, 4803, 4803, 4803, 4803, 4803, 4803, 4096, 4801,
+ 4903, 4801, 4801, 4096, 4096, 4904, 4096, 4801, 4096, 4096,
+ 4797, 4905, 4801, 4906, 5128, 4907, 4801, 4096, 4096, 4801,
+ 4096, 4904, 4904, 4904, 4904, 4904, 4904, 4904, 4904, 4801,
+ 4096, 4801, 4904, 4904, 4904, 4904, 4904, 4904, 4904, 4904,
+
+ 4904, 4904, 4904, 4904, 4904, 4904, 4096, 4096, 1760, 4856,
+ 4946, 4856, 4856, 1760, 3345, 3024, 1760, 3025, 1760, 3343,
+ 4947, 4409, 3025, 3028, 5129, 3030, 4949, 1760, 1760, 3025,
+ 1760, 4950, 4950, 4950, 4950, 4950, 4950, 4950, 4950, 3025,
+ 1760, 3025, 4950, 4950, 4950, 4950, 4950, 4950, 4950, 4950,
+ 4950, 4950, 4950, 4950, 4950, 4950, 3345, 1760, 4813, 5143,
+ 4814, 5143, 5143, 5143, 5143, 5143, 4815, 4815, 4815, 4815,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 4815, 4815, 4815,
+ 4815, 4815, 5143, 4815, 5143, 5143, 5143, 5143, 5143, 5143,
+ 4815, 3592, 4364, 5130, 4364, 4364, 3592, 3592, 5131, 3592,
+
+ 4364, 3592, 3592, 4359, 5132, 4364, 5133, 5134, 5135, 4364,
+ 3592, 3592, 4364, 3592, 5131, 5131, 5131, 5131, 5131, 5131,
+ 5131, 5131, 4364, 3592, 4364, 5131, 5131, 5131, 5131, 5131,
+ 5131, 5131, 5131, 5131, 5131, 5131, 5131, 5131, 5131, 3592,
+ 3592, 1588, 4553, 3663, 4553, 4553, 1588, 1588, 4838, 1588,
+ 4716, 1588, 1588, 2769, 4717, 4716, 4718, 4719, 4839, 2430,
+ 1588, 1588, 4716, 1588, 4838, 4838, 4838, 4838, 4838, 4838,
+ 4838, 4838, 4716, 1588, 4716, 4838, 4838, 4838, 4838, 4838,
+ 4838, 4838, 4838, 4838, 4838, 4838, 4838, 4838, 4838, 1588,
+ 1588, 2094, 4937, 4192, 4937, 4937, 2094, 2094, 4938, 2094,
+
+ 4939, 2094, 2094, 3438, 4940, 4939, 4941, 5136, 4942, 3435,
+ 2094, 2094, 4939, 2094, 4938, 4938, 4938, 4938, 4938, 4938,
+ 4938, 4938, 4939, 2094, 4939, 4938, 4938, 4938, 4938, 4938,
+ 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938, 4938, 2094,
+ 2094, 550, 3462, 3112, 3462, 3462, 550, 1390, 1156, 550,
+ 967, 550, 1389, 3728, 3392, 967, 1159, 5137, 1161, 3730,
+ 550, 550, 967, 550, 3731, 3731, 3731, 3731, 3731, 3731,
+ 3731, 3731, 967, 550, 967, 3731, 3731, 3731, 3731, 3731,
+ 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 1390,
+ 550, 4717, 5143, 4847, 4719, 4848, 5143, 5143, 5143, 5143,
+
+ 5143, 4849, 4849, 4849, 4849, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 4849, 4849, 4849, 4849, 4849, 5143, 4849, 5143,
+ 5143, 5143, 5143, 5143, 5143, 4849, 3558, 4392, 2573, 4392,
+ 4392, 3558, 3558, 4518, 3558, 4519, 3558, 3558, 4561, 5023,
+ 4519, 4523, 5138, 4525, 4563, 3558, 3558, 4519, 3558, 4518,
+ 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4519, 3558, 4519,
+ 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518,
+ 4518, 4518, 4518, 4518, 3558, 3558, 550, 3594, 3575, 3594,
+ 3594, 550, 1390, 2076, 550, 2077, 550, 1389, 3728, 4200,
+ 2077, 2079, 5140, 2081, 3730, 550, 550, 2077, 550, 3880,
+
+ 3880, 3880, 3880, 3880, 3880, 3880, 3880, 2077, 550, 2077,
+ 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880,
+ 3880, 3880, 3880, 3880, 1390, 550, 1588, 2430, 2768, 2430,
+ 2430, 1588, 1588, 2755, 1588, 2430, 1588, 1588, 2769, 5033,
+ 2430, 2759, 5141, 2761, 2430, 1588, 1588, 2430, 1588, 2755,
+ 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2430, 1588, 2430,
+ 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755, 2755,
+ 2755, 2755, 2755, 2755, 1588, 1588, 59, 59, 59, 59,
+ 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
+ 59, 59, 59, 59, 61, 61, 61, 61, 61, 61,
+
+ 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
+ 61, 61, 66, 66, 66, 66, 66, 66, 66, 66,
+ 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
+ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
+ 70, 70, 70, 70, 70, 70, 70, 70, 75, 75,
+ 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
+ 75, 75, 75, 75, 75, 75, 82, 5143, 5143, 5143,
+ 5143, 5143, 5143, 82, 5143, 82, 82, 88, 5143, 88,
+ 5143, 88, 100, 5143, 5143, 5143, 5143, 5143, 5143, 100,
+ 5143, 100, 100, 111, 111, 111, 5143, 5143, 111, 5143,
+
+ 111, 5143, 111, 5143, 111, 5143, 5143, 111, 111, 115,
+ 115, 115, 5143, 5143, 115, 115, 5143, 115, 115, 115,
+ 115, 115, 5143, 115, 115, 125, 125, 125, 5143, 5143,
+ 125, 5143, 5143, 5143, 5143, 5143, 125, 5143, 5143, 125,
+ 125, 125, 130, 130, 130, 130, 130, 130, 130, 130,
+ 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
+ 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
+ 5143, 132, 132, 132, 132, 132, 132, 132, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 140, 140, 140, 140,
+
+ 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
+ 140, 140, 140, 140, 165, 5143, 5143, 5143, 5143, 5143,
+ 5143, 165, 5143, 165, 165, 166, 166, 166, 5143, 5143,
+ 166, 166, 5143, 166, 166, 166, 166, 166, 5143, 166,
+ 166, 169, 169, 169, 5143, 169, 5143, 5143, 169, 169,
+ 5143, 5143, 169, 5143, 5143, 169, 169, 169, 176, 176,
+ 176, 5143, 5143, 176, 176, 5143, 176, 176, 176, 176,
+ 176, 5143, 176, 176, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 182, 182, 182, 182, 182, 182, 182, 182,
+
+ 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
+ 184, 184, 184, 5143, 5143, 184, 5143, 5143, 5143, 5143,
+ 5143, 184, 184, 5143, 184, 184, 184, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 189, 189, 189, 189, 189,
+ 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
+ 189, 189, 189, 206, 206, 206, 206, 206, 206, 206,
+ 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
+ 206, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 213,
+
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 216, 216, 216, 5143, 5143,
+ 216, 216, 5143, 216, 216, 216, 216, 216, 5143, 216,
+ 216, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 227,
+ 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
+
+ 230, 230, 230, 230, 230, 232, 232, 232, 232, 232,
+ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
+ 232, 232, 232, 246, 246, 246, 246, 246, 246, 246,
+ 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
+ 246, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 250,
+ 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+ 250, 250, 250, 250, 250, 250, 250, 251, 251, 251,
+ 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
+ 251, 251, 251, 251, 251, 255, 255, 255, 255, 255,
+
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 258, 258, 258, 258, 258, 258, 258, 258, 258,
+ 258, 258, 258, 258, 258, 258, 258, 258, 258, 260,
+ 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
+ 260, 260, 260, 260, 260, 260, 260, 262, 262, 262,
+ 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
+ 262, 262, 262, 262, 262, 263, 263, 263, 263, 263,
+ 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
+
+ 263, 263, 263, 267, 267, 267, 267, 267, 267, 267,
+ 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
+ 267, 272, 272, 5143, 272, 272, 272, 272, 272, 272,
+ 272, 272, 272, 272, 272, 272, 272, 272, 272, 279,
+ 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
+ 279, 279, 279, 279, 279, 279, 279, 281, 281, 281,
+ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
+ 281, 281, 281, 281, 281, 283, 283, 283, 283, 283,
+ 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
+ 283, 283, 283, 285, 285, 285, 285, 285, 285, 285,
+
+ 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
+ 285, 288, 288, 288, 288, 288, 288, 288, 288, 288,
+ 288, 288, 288, 288, 288, 288, 288, 288, 288, 291,
+ 291, 291, 5143, 5143, 291, 5143, 5143, 5143, 5143, 5143,
+ 291, 5143, 5143, 291, 291, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294, 297, 5143, 5143, 5143, 5143, 297, 5143,
+ 5143, 5143, 297, 5143, 5143, 5143, 5143, 297, 297, 300,
+ 300, 5143, 300, 300, 300, 300, 300, 300, 300, 300,
+ 300, 300, 300, 300, 300, 300, 300, 306, 306, 306,
+
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 314, 314, 314, 314, 314, 314, 314,
+ 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
+ 314, 320, 320, 320, 5143, 5143, 320, 5143, 320, 320,
+ 5143, 5143, 320, 320, 5143, 320, 320, 320, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+
+ 326, 326, 326, 326, 329, 5143, 5143, 5143, 5143, 5143,
+ 5143, 329, 5143, 329, 329, 330, 5143, 330, 5143, 5143,
+ 330, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 330,
+ 330, 360, 360, 360, 5143, 5143, 360, 5143, 360, 360,
+ 5143, 5143, 360, 5143, 5143, 360, 360, 360, 361, 361,
+ 361, 5143, 5143, 361, 5143, 361, 361, 5143, 5143, 361,
+ 361, 5143, 361, 361, 361, 365, 365, 365, 365, 365,
+ 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
+ 365, 365, 365, 370, 5143, 5143, 5143, 5143, 5143, 5143,
+ 370, 5143, 370, 370, 371, 371, 5143, 371, 5143, 371,
+
+ 371, 371, 371, 371, 371, 371, 371, 371, 371, 371,
+ 371, 371, 372, 372, 5143, 372, 372, 372, 372, 372,
+ 372, 372, 372, 372, 372, 372, 5143, 372, 372, 372,
+ 111, 111, 111, 5143, 5143, 111, 5143, 5143, 5143, 111,
+ 5143, 111, 5143, 5143, 111, 111, 258, 258, 258, 258,
+ 258, 258, 258, 258, 258, 258, 258, 258, 258, 258,
+ 258, 258, 258, 258, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 263, 263, 263, 263, 263, 263, 263, 263,
+ 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
+
+ 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
+ 420, 420, 420, 420, 420, 420, 420, 420, 422, 422,
+ 422, 5143, 5143, 422, 5143, 422, 422, 5143, 5143, 422,
+ 422, 5143, 422, 422, 422, 424, 424, 424, 424, 424,
+ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
+ 424, 424, 424, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+ 426, 427, 427, 427, 427, 427, 427, 427, 427, 427,
+ 427, 427, 427, 427, 427, 427, 427, 427, 427, 279,
+ 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
+
+ 279, 279, 279, 279, 279, 279, 279, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 115, 115, 115, 5143, 5143, 115, 115,
+ 5143, 115, 115, 115, 115, 115, 5143, 115, 115, 283,
+ 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
+ 283, 283, 283, 283, 283, 283, 283, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 255, 255, 255, 255, 255,
+
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 182, 182, 182, 182, 182, 182, 182,
+ 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
+ 182, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 486,
+ 486, 486, 486, 486, 486, 486, 486, 486, 486, 486,
+ 486, 486, 486, 486, 486, 486, 486, 260, 260, 260,
+ 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
+ 260, 260, 260, 260, 260, 491, 491, 491, 491, 491,
+ 491, 491, 491, 491, 491, 491, 491, 491, 491, 491,
+
+ 491, 491, 491, 494, 494, 494, 494, 494, 494, 494,
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+ 494, 420, 420, 420, 420, 420, 420, 420, 420, 420,
+ 420, 420, 420, 420, 420, 420, 420, 420, 420, 496,
+ 496, 496, 496, 496, 496, 496, 496, 496, 496, 496,
+ 496, 496, 496, 496, 496, 496, 496, 422, 422, 422,
+ 5143, 5143, 422, 5143, 422, 422, 5143, 5143, 422, 422,
+ 5143, 422, 422, 422, 424, 424, 424, 424, 424, 424,
+ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
+ 424, 424, 500, 500, 500, 500, 500, 500, 500, 500,
+
+ 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 426, 426, 426, 426, 426, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 427, 427, 427, 427,
+ 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
+ 427, 427, 427, 427, 294, 294, 294, 294, 294, 294,
+ 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
+ 294, 294, 503, 503, 503, 503, 503, 503, 503, 503,
+ 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
+
+ 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
+ 206, 206, 206, 206, 206, 206, 206, 206, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 508, 508, 508, 508,
+ 508, 508, 508, 508, 508, 508, 508, 508, 508, 508,
+ 508, 508, 508, 508, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
+
+ 514, 514, 514, 514, 514, 514, 514, 514, 517, 517,
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+ 517, 517, 517, 517, 517, 517, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 522, 522, 522, 522, 522, 522, 522, 522,
+ 522, 522, 522, 522, 522, 522, 522, 522, 522, 522,
+ 115, 115, 115, 5143, 5143, 115, 115, 5143, 115, 115,
+ 115, 115, 115, 5143, 115, 115, 533, 533, 533, 533,
+
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 176, 176, 176, 5143, 5143, 176, 176, 5143, 176, 176,
+ 176, 176, 176, 5143, 176, 176, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+
+ 550, 550, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
+ 182, 182, 182, 182, 182, 182, 182, 182, 554, 554,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+ 554, 554, 554, 554, 554, 554, 314, 314, 314, 314,
+ 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
+ 314, 314, 314, 314, 559, 559, 559, 559, 559, 559,
+ 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
+ 559, 559, 561, 561, 561, 561, 561, 561, 561, 561,
+
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
+ 563, 563, 563, 563, 563, 563, 563, 563, 494, 494,
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+ 494, 494, 494, 494, 494, 494, 568, 568, 568, 568,
+ 568, 568, 568, 568, 568, 568, 568, 568, 568, 568,
+ 568, 568, 568, 568, 420, 420, 420, 420, 420, 420,
+ 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
+ 420, 420, 572, 572, 572, 572, 572, 572, 572, 572,
+ 572, 572, 572, 572, 572, 572, 572, 572, 572, 572,
+
+ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
+ 424, 424, 424, 424, 424, 424, 424, 424, 579, 579,
+ 579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
+ 579, 579, 579, 579, 579, 579, 503, 503, 503, 503,
+ 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
+ 503, 503, 503, 503, 583, 583, 583, 583, 583, 583,
+ 583, 583, 583, 583, 583, 583, 583, 583, 583, 583,
+ 583, 583, 206, 206, 206, 206, 206, 206, 206, 206,
+ 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+
+ 434, 434, 434, 434, 434, 434, 434, 434, 589, 589,
+ 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
+ 589, 589, 589, 589, 589, 589, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 595, 595, 595, 595, 595, 595, 595, 595,
+ 595, 595, 595, 595, 595, 595, 595, 595, 595, 595,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 601, 601,
+
+ 601, 601, 601, 601, 601, 601, 601, 601, 601, 601,
+ 601, 601, 601, 601, 601, 601, 517, 517, 517, 517,
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+ 517, 517, 517, 517, 611, 611, 611, 611, 611, 611,
+ 611, 611, 611, 611, 611, 611, 611, 611, 611, 611,
+ 611, 611, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 617, 617,
+ 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
+
+ 617, 617, 617, 617, 617, 617, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 283, 283, 283, 283, 283, 283, 283, 283,
+ 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 636, 636,
+ 636, 636, 636, 636, 636, 636, 636, 636, 636, 636,
+ 636, 636, 636, 636, 636, 636, 639, 639, 639, 639,
+
+ 639, 639, 639, 639, 639, 639, 639, 639, 639, 639,
+ 639, 639, 639, 639, 641, 641, 641, 641, 641, 641,
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+ 641, 641, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
+ 646, 646, 646, 646, 646, 646, 646, 646, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 554, 554, 554, 554,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+
+ 554, 554, 554, 554, 111, 111, 111, 5143, 5143, 111,
+ 5143, 5143, 5143, 111, 5143, 111, 5143, 5143, 111, 111,
+ 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
+ 182, 182, 182, 182, 182, 182, 182, 182, 559, 559,
+ 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
+ 559, 559, 559, 559, 559, 559, 653, 653, 653, 653,
+ 653, 653, 653, 653, 653, 653, 653, 653, 653, 653,
+ 653, 653, 653, 653, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 657, 657, 657, 657, 657, 657, 657, 657,
+
+ 657, 657, 657, 657, 657, 657, 657, 657, 657, 657,
+ 660, 660, 660, 660, 660, 660, 660, 660, 660, 660,
+ 660, 660, 660, 660, 660, 660, 660, 660, 260, 260,
+ 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
+ 260, 260, 260, 260, 260, 260, 494, 494, 494, 494,
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+ 494, 494, 494, 494, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 666, 666, 666, 666, 666, 666, 666, 666,
+ 666, 666, 666, 666, 666, 666, 666, 666, 666, 666,
+
+ 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
+ 420, 420, 420, 420, 420, 420, 420, 420, 572, 572,
+ 572, 572, 572, 572, 572, 572, 572, 572, 572, 572,
+ 572, 572, 572, 572, 572, 572, 125, 125, 125, 5143,
+ 5143, 125, 5143, 5143, 5143, 5143, 5143, 125, 5143, 5143,
+ 125, 125, 125, 189, 189, 189, 189, 189, 189, 189,
+ 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
+ 189, 424, 424, 424, 424, 424, 424, 424, 424, 424,
+ 424, 424, 424, 424, 424, 424, 424, 424, 424, 579,
+ 579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
+
+ 579, 579, 579, 579, 579, 579, 579, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 503, 503, 503, 503, 503,
+ 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
+ 503, 503, 503, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+ 688, 688, 688, 688, 688, 688, 688, 688, 688, 232,
+ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
+ 232, 232, 232, 232, 232, 232, 232, 206, 206, 206,
+
+ 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
+ 206, 206, 206, 206, 206, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 589, 589, 589, 589, 589, 589, 589,
+ 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
+ 589, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 701, 701, 701,
+ 701, 701, 701, 701, 701, 701, 701, 701, 701, 701,
+
+ 701, 701, 701, 701, 701, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 707, 707, 707, 707, 707, 707, 707,
+ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
+ 707, 710, 710, 710, 710, 710, 710, 710, 710, 710,
+ 710, 710, 710, 710, 710, 710, 710, 710, 710, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 517, 517, 517,
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+ 517, 517, 517, 517, 517, 734, 734, 734, 734, 734,
+
+ 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
+ 734, 734, 734, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 617, 617, 617, 617, 617, 617, 617, 617, 617,
+ 617, 617, 617, 617, 617, 617, 617, 617, 617, 115,
+ 115, 115, 5143, 5143, 115, 115, 5143, 115, 115, 115,
+ 115, 115, 5143, 115, 115, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+
+ 255, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 776,
+ 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
+ 776, 776, 776, 776, 776, 776, 776, 784, 784, 784,
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
+ 784, 784, 784, 784, 784, 786, 786, 786, 786, 786,
+ 786, 786, 786, 786, 786, 786, 786, 786, 786, 786,
+ 786, 786, 786, 641, 641, 641, 641, 641, 641, 641,
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+ 641, 788, 788, 788, 788, 788, 788, 788, 788, 788,
+
+ 788, 788, 788, 788, 788, 788, 788, 788, 788, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 793, 793, 793, 793, 793,
+ 793, 793, 793, 793, 793, 793, 793, 793, 793, 793,
+ 793, 793, 793, 554, 554, 554, 554, 554, 554, 554,
+ 554, 554, 554, 554, 554, 554, 554, 554, 554, 554,
+ 554, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 559,
+
+ 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
+ 559, 559, 559, 559, 559, 559, 559, 260, 260, 260,
+ 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
+ 260, 260, 260, 260, 260, 804, 804, 804, 804, 804,
+ 804, 804, 804, 804, 804, 804, 804, 804, 804, 804,
+ 804, 804, 804, 262, 262, 262, 262, 262, 262, 262,
+ 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
+ 262, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 660,
+ 660, 660, 660, 660, 660, 660, 660, 660, 660, 660,
+
+ 660, 660, 660, 660, 660, 660, 660, 125, 125, 125,
+ 5143, 5143, 125, 5143, 5143, 5143, 5143, 5143, 125, 5143,
+ 5143, 125, 125, 125, 816, 816, 816, 816, 816, 816,
+ 816, 816, 816, 816, 816, 816, 816, 816, 816, 816,
+ 816, 816, 818, 818, 818, 818, 818, 818, 818, 818,
+ 818, 818, 818, 818, 818, 818, 818, 818, 818, 818,
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+ 494, 494, 494, 494, 494, 494, 494, 494, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 666, 666, 666, 666,
+
+ 666, 666, 666, 666, 666, 666, 666, 666, 666, 666,
+ 666, 666, 666, 666, 189, 189, 189, 189, 189, 189,
+ 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
+ 189, 189, 420, 420, 420, 420, 420, 420, 420, 420,
+ 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 427, 427,
+ 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
+ 427, 427, 427, 427, 427, 427, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
+
+ 838, 838, 838, 838, 503, 503, 503, 503, 503, 503,
+ 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
+ 503, 503, 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
+ 688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+ 688, 688, 688, 688, 688, 688, 688, 688, 232, 232,
+ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
+ 232, 232, 232, 232, 232, 232, 206, 206, 206, 206,
+ 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
+ 206, 206, 206, 206, 434, 434, 434, 434, 434, 434,
+
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 701, 701,
+ 701, 701, 701, 701, 701, 701, 701, 701, 701, 701,
+ 701, 701, 701, 701, 701, 701, 169, 169, 169, 5143,
+ 169, 5143, 5143, 169, 169, 5143, 5143, 169, 5143, 5143,
+ 169, 169, 169, 250, 250, 250, 250, 250, 250, 250,
+ 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+
+ 250, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 710,
+ 710, 710, 710, 710, 710, 710, 710, 710, 710, 710,
+ 710, 710, 710, 710, 710, 710, 710, 874, 874, 874,
+ 874, 874, 874, 874, 874, 874, 874, 874, 874, 874,
+ 874, 874, 874, 874, 874, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 734,
+ 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
+ 734, 734, 734, 734, 734, 734, 734, 617, 617, 617,
+ 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
+ 617, 617, 617, 617, 617, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 115, 115, 115, 5143, 5143, 115, 115, 5143, 115,
+ 115, 115, 115, 115, 5143, 115, 115, 536, 536, 536,
+
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 176, 176, 176, 5143, 5143,
+ 176, 176, 5143, 176, 176, 176, 176, 176, 5143, 176,
+ 176, 944, 944, 944, 944, 944, 944, 944, 944, 944,
+ 944, 944, 944, 944, 944, 944, 944, 944, 944, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 776, 776, 776,
+ 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
+ 776, 776, 776, 776, 776, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+
+ 257, 257, 257, 784, 784, 784, 784, 784, 784, 784,
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
+ 784, 957, 957, 957, 957, 957, 957, 957, 957, 957,
+ 957, 957, 957, 957, 957, 957, 957, 957, 957, 959,
+ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
+ 959, 959, 959, 959, 959, 959, 959, 641, 641, 641,
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+ 641, 641, 641, 641, 641, 962, 962, 962, 962, 962,
+ 962, 962, 962, 962, 962, 962, 962, 962, 962, 962,
+ 962, 962, 962, 550, 550, 550, 550, 550, 550, 550,
+
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 793, 793, 793, 793, 793, 793, 793, 793, 793,
+ 793, 793, 793, 793, 793, 793, 793, 793, 793, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 559, 559, 559,
+ 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
+ 559, 559, 559, 559, 559, 260, 260, 260, 260, 260,
+ 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
+ 260, 260, 260, 804, 804, 804, 804, 804, 804, 804,
+ 804, 804, 804, 804, 804, 804, 804, 804, 804, 804,
+
+ 804, 262, 262, 262, 262, 262, 262, 262, 262, 262,
+ 262, 262, 262, 262, 262, 262, 262, 262, 262, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 992, 992, 992,
+ 992, 992, 992, 992, 992, 992, 992, 992, 992, 992,
+ 992, 992, 992, 992, 992, 818, 818, 818, 818, 818,
+ 818, 818, 818, 818, 818, 818, 818, 818, 818, 818,
+ 818, 818, 818, 994, 994, 994, 994, 994, 994, 994,
+ 994, 994, 994, 994, 994, 994, 994, 994, 994, 994,
+ 994, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 1001,
+ 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+ 1001, 1001, 1001, 1001, 1001, 1001, 1001, 420, 420, 420,
+ 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
+ 420, 420, 420, 420, 420, 424, 424, 424, 424, 424,
+ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
+ 424, 424, 424, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
+ 1014, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 838,
+
+ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 1019, 1019, 1019,
+ 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
+ 1019, 1019, 1019, 1019, 1019, 503, 503, 503, 503, 503,
+ 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
+ 503, 503, 503, 232, 232, 232, 232, 232, 232, 232,
+ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
+ 232, 206, 206, 206, 206, 206, 206, 206, 206, 206,
+ 206, 206, 206, 206, 206, 206, 206, 206, 206, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+
+ 434, 434, 434, 434, 434, 434, 434, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 250, 250, 250, 250, 250, 250, 250,
+ 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+ 250, 169, 169, 169, 5143, 169, 5143, 5143, 169, 169,
+ 5143, 5143, 169, 5143, 5143, 169, 169, 169, 176, 176,
+ 176, 5143, 5143, 176, 176, 5143, 176, 176, 176, 176,
+ 176, 5143, 176, 176, 166, 166, 166, 5143, 5143, 166,
+
+ 166, 5143, 166, 166, 166, 166, 166, 5143, 166, 166,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 1067, 1067, 1067, 1067,
+ 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067,
+ 1067, 1067, 1067, 1067, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069,
+ 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069,
+
+ 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078,
+ 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 517, 517, 517, 517,
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+ 517, 517, 517, 517, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+
+ 946, 946, 946, 946, 946, 946, 946, 946, 776, 776,
+ 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
+ 776, 776, 776, 776, 776, 776, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
+ 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 784, 784,
+
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
+ 784, 784, 784, 784, 784, 784, 959, 959, 959, 959,
+ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
+ 959, 959, 959, 959, 641, 641, 641, 641, 641, 641,
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+ 641, 641, 962, 962, 962, 962, 962, 962, 962, 962,
+ 962, 962, 962, 962, 962, 962, 962, 962, 962, 962,
+ 793, 793, 793, 793, 793, 793, 793, 793, 793, 793,
+ 793, 793, 793, 793, 793, 793, 793, 793, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+
+ 550, 550, 550, 550, 550, 550, 559, 559, 559, 559,
+ 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
+ 559, 559, 559, 559, 262, 262, 262, 262, 262, 262,
+ 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
+ 262, 262, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+ 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 563, 563,
+ 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
+ 563, 563, 563, 563, 563, 563, 1178, 1178, 1178, 1178,
+
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 660, 660, 660, 660, 660, 660,
+ 660, 660, 660, 660, 660, 660, 660, 660, 660, 660,
+ 660, 660, 818, 818, 818, 818, 818, 818, 818, 818,
+ 818, 818, 818, 818, 818, 818, 818, 818, 818, 818,
+ 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
+ 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 494, 494,
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+ 494, 494, 494, 494, 494, 494, 420, 420, 420, 420,
+ 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
+
+ 420, 420, 420, 420, 572, 572, 572, 572, 572, 572,
+ 572, 572, 572, 572, 572, 572, 572, 572, 572, 572,
+ 572, 572, 579, 579, 579, 579, 579, 579, 579, 579,
+ 579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1196, 1196,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1198, 1198, 1198, 1198,
+ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
+ 1198, 1198, 1198, 1198, 1017, 1017, 1017, 1017, 1017, 1017,
+
+ 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 1017, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202,
+ 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202,
+ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838, 1206, 1206,
+ 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
+ 1206, 1206, 1206, 1206, 1206, 1206, 230, 230, 230, 230,
+ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
+ 230, 230, 230, 230, 503, 503, 503, 503, 503, 503,
+ 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
+
+ 503, 503, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 589, 589, 589, 589, 589, 589, 589, 589, 589, 589,
+ 589, 589, 589, 589, 589, 589, 589, 589, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 601, 601, 601, 601, 601, 601, 601, 601, 601, 601,
+ 601, 601, 601, 601, 601, 601, 601, 601, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 710, 710, 710, 710,
+ 710, 710, 710, 710, 710, 710, 710, 710, 710, 710,
+ 710, 710, 710, 710, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249,
+ 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249,
+
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 784, 784,
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
+ 784, 784, 784, 784, 784, 784, 1252, 1252, 1252, 1252,
+ 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
+ 1252, 1252, 1252, 1252, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
+ 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254,
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+
+ 517, 517, 517, 517, 517, 517, 517, 517, 216, 216,
+ 216, 5143, 5143, 216, 216, 5143, 216, 216, 216, 216,
+ 216, 5143, 216, 216, 641, 641, 641, 641, 641, 641,
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+ 641, 641, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 1334, 1334, 1334, 1334,
+
+ 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334,
+ 1334, 1334, 1334, 1334, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
+ 784, 784, 784, 784, 784, 784, 784, 784, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 550, 550, 550, 182, 182, 182, 182,
+ 182, 182, 182, 182, 182, 182, 182, 182, 182, 182,
+
+ 182, 182, 182, 182, 260, 260, 260, 260, 260, 260,
+ 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
+ 260, 260, 559, 559, 559, 559, 559, 559, 559, 559,
+ 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
+ 660, 660, 660, 660, 660, 660, 660, 660, 660, 660,
+ 660, 660, 660, 660, 660, 660, 660, 660, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 992, 992, 992, 992,
+ 992, 992, 992, 992, 992, 992, 992, 992, 992, 992,
+ 992, 992, 992, 992, 1409, 1409, 1409, 1409, 1409, 1409,
+
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1409, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411,
+ 1411, 1411, 1411, 1411, 1411, 1411, 1411, 1411, 818, 818,
+ 818, 818, 818, 818, 818, 818, 818, 818, 818, 818,
+ 818, 818, 818, 818, 818, 818, 1180, 1180, 1180, 1180,
+ 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
+ 1180, 1180, 1180, 1180, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
+
+ 187, 187, 494, 494, 494, 494, 494, 494, 494, 494,
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+ 666, 666, 666, 666, 666, 666, 666, 666, 666, 666,
+ 666, 666, 666, 666, 666, 666, 666, 666, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1422, 1422, 1422, 1422,
+ 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422,
+ 1422, 1422, 1422, 1422, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+
+ 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426, 1426,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1430, 1430,
+ 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430, 1430,
+ 1430, 1430, 1430, 1430, 1430, 1430, 1433, 1433, 1433, 1433,
+ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
+ 1433, 1433, 1433, 1433, 424, 424, 424, 424, 424, 424,
+ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
+ 424, 424, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+
+ 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440,
+ 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 1206, 1206, 1206, 1206,
+ 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
+ 1206, 1206, 1206, 1206, 291, 291, 291, 5143, 5143, 291,
+ 5143, 5143, 5143, 5143, 5143, 291, 5143, 5143, 291, 291,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 688, 688,
+ 688, 688, 688, 688, 688, 688, 688, 688, 688, 688,
+
+ 688, 688, 688, 688, 688, 688, 503, 503, 503, 503,
+ 503, 503, 503, 503, 503, 503, 503, 503, 503, 503,
+ 503, 503, 503, 503, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 701, 701, 701, 701, 701, 701, 701, 701, 701, 701,
+ 701, 701, 701, 701, 701, 701, 701, 701, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 710, 710, 710, 710,
+
+ 710, 710, 710, 710, 710, 710, 710, 710, 710, 710,
+ 710, 710, 710, 710, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067,
+ 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+
+ 1234, 1234, 1234, 1234, 1466, 1466, 1466, 1466, 1466, 1466,
+ 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466, 1466,
+ 1466, 1466, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
+ 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 1249, 1249, 1249, 1249,
+ 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249,
+ 1249, 1249, 1249, 1249, 784, 784, 784, 784, 784, 784,
+
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
+ 784, 784, 959, 959, 959, 959, 959, 959, 959, 959,
+ 959, 959, 959, 959, 959, 959, 959, 959, 959, 959,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1485, 1485,
+ 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485,
+ 1485, 1485, 1485, 1485, 1485, 1485, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 517, 517, 517, 517, 517, 517,
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+
+ 517, 517, 734, 734, 734, 734, 734, 734, 734, 734,
+ 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1521, 1521, 1521, 1521,
+ 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521, 1521,
+ 1521, 1521, 1521, 1521, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535,
+
+ 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 1538, 1538,
+ 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
+ 1538, 1538, 1538, 1538, 1538, 1538, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 1334, 1334, 1334, 1334, 1334, 1334,
+ 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334,
+ 1334, 1334, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
+ 784, 784, 784, 784, 784, 784, 784, 784, 786, 786,
+ 786, 786, 786, 786, 786, 786, 786, 786, 786, 786,
+ 786, 786, 786, 786, 786, 786, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 641, 641, 641, 641, 641, 641,
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+ 641, 641, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 804, 804, 804, 804, 804, 804, 804, 804, 804, 804,
+
+ 804, 804, 804, 804, 804, 804, 804, 804, 559, 559,
+ 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
+ 559, 559, 559, 559, 559, 559, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1628, 1628, 1628, 1628, 1628, 1628,
+ 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628, 1628,
+ 1628, 1628, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634,
+ 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1634, 1178, 1178,
+
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1638, 1638, 1638, 1638,
+ 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638,
+ 1638, 1638, 1638, 1638, 818, 818, 818, 818, 818, 818,
+ 818, 818, 818, 818, 818, 818, 818, 818, 818, 818,
+ 818, 818, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+ 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647, 1647,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1649, 1649,
+ 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649, 1649,
+
+ 1649, 1649, 1649, 1649, 1649, 1649, 494, 494, 494, 494,
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+ 494, 494, 494, 494, 1653, 1653, 1653, 1653, 1653, 1653,
+ 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653, 1653,
+ 1653, 1653, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657,
+ 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1664, 1664,
+ 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664,
+ 1664, 1664, 1664, 1664, 1664, 1664, 1196, 1196, 1196, 1196,
+
+ 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1196, 1433, 1433, 1433, 1433, 1433, 1433,
+ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
+ 1433, 1433, 1671, 1671, 1671, 5143, 5143, 1671, 5143, 1671,
+ 1671, 5143, 5143, 1671, 5143, 5143, 1671, 1671, 1671, 1678,
+ 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1678,
+ 1678, 1678, 1678, 1678, 1678, 1678, 1678, 1680, 1680, 1680,
+ 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
+ 1680, 1680, 1680, 1680, 1680, 1017, 1017, 1017, 1017, 1017,
+ 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+
+ 1017, 1017, 1017, 1440, 1440, 1440, 1440, 1440, 1440, 1440,
+ 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440,
+ 1440, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 208, 208, 208, 208, 208, 208, 208,
+
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1697,
+ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1697,
+ 1697, 1697, 1697, 1697, 1697, 1697, 1697, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1705, 1705, 1705, 1705, 1705,
+ 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705, 1705,
+ 1705, 1705, 1705, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+
+ 1234, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1711,
+ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711,
+ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 710, 710, 710, 710, 710, 710, 710,
+ 710, 710, 710, 710, 710, 710, 710, 710, 710, 710,
+ 710, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1723,
+ 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723,
+ 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1249, 1249, 1249,
+ 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249,
+ 1249, 1249, 1249, 1249, 1249, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485,
+ 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1733,
+
+ 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1733,
+ 1733, 1733, 1733, 1733, 1733, 1733, 1733, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1735, 1735, 1735, 1735, 1735,
+ 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735, 1735,
+ 1735, 1735, 1735, 517, 517, 517, 517, 517, 517, 517,
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+ 517, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742,
+ 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 1742, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+
+ 213, 213, 213, 213, 213, 213, 213, 1756, 1756, 1756,
+ 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
+ 1756, 1756, 1756, 1756, 1756, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
+ 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 452, 452, 452,
+
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 617, 617, 617, 617, 617,
+ 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
+ 617, 617, 617, 1535, 1535, 1535, 1535, 1535, 1535, 1535,
+ 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535, 1535,
+ 1535, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334,
+ 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 1798, 1798, 1798,
+ 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798, 1798,
+
+ 1798, 1798, 1798, 1798, 1798, 1812, 1812, 1812, 1812, 1812,
+ 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812,
+ 1812, 1812, 1812, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 959, 959, 959, 959, 959, 959, 959, 959, 959,
+ 959, 959, 959, 959, 959, 959, 959, 959, 959, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1252, 1252, 1252,
+ 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
+ 1252, 1252, 1252, 1252, 1252, 1818, 1818, 1818, 1818, 1818,
+
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 1818, 1818, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1823,
+ 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823, 1823,
+ 1823, 1823, 1823, 1823, 1823, 1823, 1823, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 641, 641, 641, 641, 641,
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+
+ 641, 641, 641, 962, 962, 962, 962, 962, 962, 962,
+ 962, 962, 962, 962, 962, 962, 962, 962, 962, 962,
+ 962, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843, 1843,
+ 1843, 1843, 1843, 1843, 1843, 1843, 1843, 414, 414, 414,
+ 414, 414, 414, 414, 414, 414, 414, 414, 414, 414,
+ 414, 414, 414, 414, 414, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1848, 1848, 1848, 1848, 1848, 1848, 1848,
+
+ 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848,
+ 1848, 260, 260, 260, 260, 260, 260, 260, 260, 260,
+ 260, 260, 260, 260, 260, 260, 260, 260, 260, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 1857, 1857, 1857, 1857, 1857,
+ 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
+ 1857, 1857, 1857, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+
+ 1178, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638,
+ 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 125,
+ 125, 125, 5143, 5143, 125, 5143, 5143, 5143, 5143, 5143,
+ 125, 5143, 5143, 125, 125, 125, 189, 189, 189, 189,
+ 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
+ 189, 189, 189, 189, 818, 818, 818, 818, 818, 818,
+ 818, 818, 818, 818, 818, 818, 818, 818, 818, 818,
+ 818, 818, 563, 563, 563, 563, 563, 563, 563, 563,
+ 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
+ 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868,
+
+ 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1874, 1874, 1874, 1874,
+ 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874,
+ 1874, 1874, 1874, 1874, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664,
+ 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664,
+ 360, 360, 360, 5143, 5143, 360, 5143, 360, 360, 5143,
+ 5143, 360, 5143, 5143, 360, 360, 360, 426, 426, 426,
+
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 426, 426, 361, 361, 361, 5143, 5143,
+ 361, 5143, 361, 361, 5143, 5143, 361, 361, 5143, 361,
+ 361, 361, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899,
+ 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1680, 1680,
+ 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
+ 1680, 1680, 1680, 1680, 1680, 1680, 1901, 1901, 1901, 1901,
+ 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901, 1901,
+
+ 1901, 1901, 1901, 1901, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 1017, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909,
+ 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909,
+ 838, 838, 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838, 434, 434,
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 434, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1921, 1921, 1921, 1921, 1921, 1921,
+
+ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
+ 1921, 1921, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1937, 1937,
+ 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
+ 1937, 1937, 1937, 1937, 1937, 1937, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1711, 1711, 1711, 1711, 1711, 1711,
+ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711,
+
+ 1711, 1711, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 1960, 1960, 1960, 1960, 1960, 1960,
+ 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960,
+ 1960, 1960, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967,
+ 1967, 1967, 1967, 1967, 1967, 1967, 1967, 1967, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 1485, 1485, 1485, 1485,
+ 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485, 1485,
+ 1485, 1485, 1485, 1485, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+
+ 601, 601, 601, 601, 601, 601, 601, 601, 601, 601,
+ 601, 601, 601, 601, 601, 601, 601, 601, 1974, 1974,
+ 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974,
+ 1974, 1974, 1974, 1974, 1974, 1974, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1987, 1987, 1987, 1987, 1987, 1987,
+ 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987,
+ 1987, 1987, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992,
+ 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992, 1992,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 517, 517, 517, 517,
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+ 517, 517, 517, 517, 734, 734, 734, 734, 734, 734,
+ 734, 734, 734, 734, 734, 734, 734, 734, 734, 734,
+ 734, 734, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+ 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004, 2004,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1711, 1711,
+
+ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711,
+ 1711, 1711, 1711, 1711, 1711, 1711, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 2064, 2064,
+ 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064,
+
+ 2064, 2064, 2064, 2064, 2064, 2064, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 776, 776, 776, 776, 776, 776,
+ 776, 776, 776, 776, 776, 776, 776, 776, 776, 776,
+ 776, 776, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 2082, 2082, 2082, 2082, 2082, 2082, 2082, 2082, 2082, 2082,
+ 2082, 2082, 2082, 2082, 2082, 2082, 2082, 2082, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 1818, 2088, 2088, 2088, 2088,
+
+ 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088, 2088,
+ 2088, 2088, 2088, 2088, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094,
+ 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2099, 2099,
+ 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099,
+ 2099, 2099, 2099, 2099, 2099, 2099, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+
+ 1841, 1841, 1841, 1841, 2101, 2101, 2101, 2101, 2101, 2101,
+ 2101, 2101, 2101, 2101, 2101, 2101, 2101, 2101, 2101, 2101,
+ 2101, 2101, 641, 641, 641, 641, 641, 641, 641, 641,
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+ 2107, 2107, 2107, 2107, 2107, 2107, 2107, 2107, 2107, 2107,
+ 2107, 2107, 2107, 2107, 2107, 2107, 2107, 2107, 2110, 2110,
+ 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110,
+ 2110, 2110, 2110, 2110, 2110, 2110, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1848, 1848, 1848, 1848, 1848, 1848,
+
+ 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848,
+ 1848, 1848, 125, 125, 125, 5143, 5143, 125, 5143, 5143,
+ 5143, 5143, 5143, 125, 5143, 5143, 125, 125, 125, 1001,
+ 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+ 1001, 1001, 1001, 1001, 1001, 1001, 1001, 2128, 2128, 2128,
+ 2128, 2128, 2128, 2128, 2128, 2128, 2128, 2128, 2128, 2128,
+ 2128, 2128, 2128, 2128, 2128, 2130, 2130, 2130, 2130, 2130,
+ 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130,
+ 2130, 2130, 2130, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+
+ 1409, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 1857,
+ 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
+ 1857, 1857, 1857, 1857, 1857, 1857, 1857, 262, 262, 262,
+ 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
+ 262, 262, 262, 262, 262, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
+ 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180,
+ 1180, 559, 559, 559, 559, 559, 559, 559, 559, 559,
+
+ 559, 559, 559, 559, 559, 559, 559, 559, 559, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1874, 1874, 1874,
+ 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874,
+ 1874, 1874, 1874, 1874, 1874, 2149, 2149, 2149, 2149, 2149,
+ 2149, 2149, 2149, 2149, 2149, 2149, 2149, 2149, 2149, 2149,
+ 2149, 2149, 2149, 818, 818, 818, 818, 818, 818, 818,
+ 818, 818, 818, 818, 818, 818, 818, 818, 818, 818,
+ 818, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 426,
+
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+ 426, 426, 426, 426, 426, 426, 426, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1196, 1196, 1909, 1909, 1909, 1909, 1909,
+ 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909,
+ 1909, 1909, 1909, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
+ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
+ 1198, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 1433,
+ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
+
+ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1680, 1680, 1680,
+ 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
+ 1680, 1680, 1680, 1680, 1680, 2165, 2165, 2165, 2165, 2165,
+ 2165, 2165, 2165, 2165, 2165, 2165, 2165, 2165, 2165, 2165,
+ 2165, 2165, 2165, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 838, 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838, 838, 1206,
+ 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
+ 1206, 1206, 1206, 1206, 1206, 1206, 1206, 434, 434, 434,
+
+ 434, 434, 434, 434, 434, 434, 434, 434, 434, 434,
+ 434, 434, 434, 434, 434, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
+ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
+ 1921, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 2196,
+ 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196,
+ 2196, 2196, 2196, 2196, 2196, 2196, 2196, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+
+ 1726, 1726, 1726, 1726, 1726, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
+ 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
+ 1937, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+ 250, 250, 250, 250, 250, 250, 250, 250, 250, 1711,
+ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711,
+ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 2226, 2226, 2226, 2226, 2226,
+
+ 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226, 2226,
+ 2226, 2226, 2226, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960,
+ 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 2231, 2231, 2231,
+ 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231,
+ 2231, 2231, 2231, 2231, 2231, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+
+ 1970, 1970, 1970, 2234, 2234, 2234, 2234, 2234, 2234, 2234,
+ 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234, 2234,
+ 2234, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1987, 1987, 1987, 1987, 1987,
+ 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987,
+ 1987, 1987, 1987, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 601,
+ 601, 601, 601, 601, 601, 601, 601, 601, 601, 601,
+ 601, 601, 601, 601, 601, 601, 601, 641, 641, 641,
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+ 641, 641, 641, 641, 641, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 2286, 2286, 2286, 2286, 2286, 2286, 2286,
+ 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286,
+
+ 2286, 2310, 2310, 2310, 2310, 2310, 2310, 2310, 2310, 2310,
+ 2310, 2310, 2310, 2310, 2310, 2310, 2310, 2310, 2310, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 550, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1960,
+ 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960,
+ 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 2393, 2393, 2393, 2393, 2393, 2393, 2393,
+ 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393,
+ 2393, 248, 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 248, 248, 248, 248, 248, 248, 248, 1818,
+
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 2407, 2407, 2407,
+ 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
+ 2407, 2407, 2407, 2407, 2407, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 2094, 2094, 2094, 2094, 2094, 2094, 2094,
+ 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094,
+ 2094, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 784,
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
+
+ 784, 784, 784, 784, 784, 784, 784, 786, 786, 786,
+ 786, 786, 786, 786, 786, 786, 786, 786, 786, 786,
+ 786, 786, 786, 786, 786, 2422, 2422, 2422, 2422, 2422,
+ 2422, 2422, 2422, 2422, 2422, 2422, 2422, 2422, 2422, 2422,
+ 2422, 2422, 2422, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 2427,
+ 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427,
+ 2427, 2427, 2427, 2427, 2427, 2427, 2427, 1080, 1080, 1080,
+
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1001, 1001, 1001, 1001, 1001,
+ 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+ 1001, 1001, 1001, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 992,
+ 992, 992, 992, 992, 992, 992, 992, 992, 992, 992,
+ 992, 992, 992, 992, 992, 992, 992, 2130, 2130, 2130,
+ 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130,
+
+ 2130, 2130, 2130, 2130, 2130, 2450, 2450, 2450, 2450, 2450,
+ 2450, 2450, 2450, 2450, 2450, 2450, 2450, 2450, 2450, 2450,
+ 2450, 2450, 2450, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 2466,
+ 2466, 2466, 2466, 2466, 2466, 2466, 2466, 2466, 2466, 2466,
+ 2466, 2466, 2466, 2466, 2466, 2466, 2466, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 2475, 2475, 2475, 2475, 2475,
+
+ 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
+ 2475, 2475, 2475, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433,
+ 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 1433, 2484,
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 1899, 1899, 1899,
+ 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899,
+ 1899, 1899, 1899, 1899, 1899, 2487, 2487, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487,
+
+ 2487, 2487, 2487, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489,
+ 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 2489, 1680,
+ 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
+ 1680, 1680, 1680, 1680, 1680, 1680, 1680, 2165, 2165, 2165,
+ 2165, 2165, 2165, 2165, 2165, 2165, 2165, 2165, 2165, 2165,
+ 2165, 2165, 2165, 2165, 2165, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+
+ 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440,
+ 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2505, 2505, 2505,
+ 2505, 2505, 2505, 2505, 2505, 2505, 2505, 2505, 2505, 2505,
+ 2505, 2505, 2505, 2505, 2505, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+
+ 1458, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 1067,
+ 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067,
+ 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960,
+
+ 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1476,
+ 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476, 1476,
+ 1476, 1476, 1476, 1476, 1476, 1476, 1476, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2571, 2571, 2571, 2571, 2571,
+ 2571, 2571, 2571, 2571, 2571, 2571, 2571, 2571, 2571, 2571,
+ 2571, 2571, 2571, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231,
+ 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 1970,
+
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 2586, 2586, 2586,
+ 2586, 2586, 2586, 2586, 2586, 2586, 2586, 2586, 2586, 2586,
+ 2586, 2586, 2586, 2586, 2586, 2604, 2604, 2604, 2604, 2604,
+ 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604, 2604,
+ 2604, 2604, 2604, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987,
+ 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 784, 784, 784,
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
+ 784, 784, 784, 784, 784, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 2665, 2665, 2665, 2665, 2665, 2665, 2665,
+ 2665, 2665, 2665, 2665, 2665, 2665, 2665, 2665, 2665, 2665,
+ 2665, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2286,
+ 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286,
+ 2286, 2286, 2286, 2286, 2286, 2286, 2286, 1291, 1291, 1291,
+
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2677,
+ 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2688,
+ 2688, 2688, 2688, 2688, 2688, 2688, 2688, 2688, 2688, 2688,
+ 2688, 2688, 2688, 2688, 2688, 2688, 2688, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+
+ 876, 876, 876, 876, 876, 2694, 2694, 2694, 2694, 2694,
+ 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694, 2694,
+ 2694, 2694, 2694, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2698, 2698, 2698, 2698, 2698, 2698, 2698, 2698, 2698,
+ 2698, 2698, 2698, 2698, 2698, 2698, 2698, 2698, 2698, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 2715, 2715, 2715,
+ 2715, 2715, 2715, 2715, 2715, 2715, 2715, 2715, 2715, 2715,
+ 2715, 2715, 2715, 2715, 2715, 536, 536, 536, 536, 536,
+
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393,
+ 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 2746, 2746, 2746,
+ 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746, 2746,
+ 2746, 2746, 2746, 2746, 2746, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+
+ 1970, 1970, 1970, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
+ 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 250,
+ 250, 250, 250, 250, 250, 250, 250, 250, 250, 250,
+ 250, 250, 250, 250, 250, 250, 250, 2094, 2094, 2094,
+ 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094,
+ 2094, 2094, 2094, 2094, 2094, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 2427, 2427, 2427, 2427, 2427, 2427, 2427,
+
+ 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427,
+ 2427, 2779, 2779, 2779, 2779, 2779, 2779, 2779, 2779, 2779,
+ 2779, 2779, 2779, 2779, 2779, 2779, 2779, 2779, 2779, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 2130, 2130, 2130, 2130, 2130,
+ 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130,
+ 2130, 2130, 2130, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+ 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
+
+ 1001, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788,
+ 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1638, 1638, 1638, 1638, 1638,
+ 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638, 1638,
+ 1638, 1638, 1638, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
+
+ 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1657, 1657, 1657,
+ 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657,
+ 1657, 1657, 1657, 1657, 1657, 1664, 1664, 1664, 1664, 1664,
+ 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664, 1664,
+ 1664, 1664, 1664, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2813,
+
+ 2813, 2813, 2813, 2813, 2813, 2813, 2813, 2813, 2813, 2813,
+ 2813, 2813, 2813, 2813, 2813, 2813, 2813, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 2819, 2819, 2819, 2819, 2819,
+ 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819,
+ 2819, 2819, 2819, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823,
+ 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2832,
+ 2832, 2832, 2832, 2832, 2832, 2832, 2832, 2832, 2832, 2832,
+
+ 2832, 2832, 2832, 2832, 2832, 2832, 2832, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2836, 2836, 2836, 2836, 2836,
+ 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836, 2836,
+ 2836, 2836, 2836, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840,
+ 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2840, 2844,
+ 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844,
+ 2844, 2844, 2844, 2844, 2844, 2844, 2844, 1458, 1458, 1458,
+
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+
+ 1234, 1234, 1234, 1234, 1234, 2903, 2903, 2903, 2903, 2903,
+ 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903, 2903,
+ 2903, 2903, 2903, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 2937,
+ 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937,
+ 2937, 2937, 2937, 2937, 2937, 2937, 2937, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1970, 1970, 1970, 1970, 1970,
+
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 2586, 2586, 2586, 2586, 2586, 2586, 2586,
+ 2586, 2586, 2586, 2586, 2586, 2586, 2586, 2586, 2586, 2586,
+ 2586, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 2969, 2969, 2969,
+ 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969,
+ 2969, 2969, 2969, 2969, 2969, 2979, 2979, 2979, 2979, 2979,
+ 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979, 2979,
+
+ 2979, 2979, 2979, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016,
+ 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3016, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 2286, 2286, 2286,
+ 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286,
+ 2286, 2286, 2286, 2286, 2286, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 517, 517, 517, 517, 517, 517, 517,
+
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+ 517, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756,
+ 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1756, 1762,
+ 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
+ 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1711, 1711, 1711, 1711, 1711,
+ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711,
+ 1711, 1711, 1711, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+
+ 215, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037,
+ 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 3051, 3051, 3051,
+ 3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051,
+ 3051, 3051, 3051, 3051, 3051, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 1812, 1812, 1812, 1812, 1812, 1812, 1812,
+ 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812, 1812,
+ 1812, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 3061,
+ 3061, 3061, 3061, 3061, 3061, 3061, 3061, 3061, 3061, 3061,
+ 3061, 3061, 3061, 3061, 3061, 3061, 3061, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 784, 784, 784, 784, 784, 784, 784,
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
+ 784, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252,
+ 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1818,
+
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 550, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 550, 550, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 2427, 2427, 2427, 2427, 2427, 2427, 2427,
+ 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427, 2427,
+ 2427, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+
+ 257, 257, 257, 257, 257, 257, 257, 3122, 3122, 3122,
+ 3122, 3122, 3122, 3122, 3122, 3122, 3122, 3122, 3122, 3122,
+ 3122, 3122, 3122, 3122, 3122, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1848, 1848, 1848, 1848, 1848, 1848, 1848,
+ 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848,
+ 1848, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130,
+ 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2788,
+ 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788,
+ 2788, 2788, 2788, 2788, 2788, 2788, 2788, 1409, 1409, 1409,
+
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1409, 1409, 1409, 1409, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
+ 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
+ 1857, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
+ 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 1868,
+ 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868,
+ 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+
+ 1420, 1420, 1420, 1420, 1420, 1874, 1874, 1874, 1874, 1874,
+ 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874, 1874,
+ 1874, 1874, 1874, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
+ 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 424,
+ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
+ 424, 424, 424, 424, 424, 424, 424, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 3146, 3146, 3146, 3146, 3146,
+
+ 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146,
+ 3146, 3146, 3146, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823,
+ 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 1671,
+ 1671, 1671, 5143, 5143, 1671, 5143, 1671, 1671, 5143, 5143,
+ 1671, 5143, 5143, 1671, 1671, 1671, 326, 326, 326, 326,
+ 326, 326, 326, 326, 326, 326, 326, 326, 326, 326,
+ 326, 326, 326, 326, 1680, 1680, 1680, 1680, 1680, 1680,
+ 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
+
+ 1680, 1680, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
+ 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 3159, 3159,
+ 3159, 3159, 3159, 3159, 3159, 3159, 3159, 3159, 3159, 3159,
+ 3159, 3159, 3159, 3159, 3159, 3159, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 3164, 3164, 3164, 3164, 3164, 3164,
+ 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164,
+ 3164, 3164, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
+ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1937, 1937, 1937, 1937,
+ 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
+ 1937, 1937, 1937, 1937, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
+ 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762, 1762,
+
+ 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2677,
+ 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2677, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 3242, 3242, 3242, 3242,
+ 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242,
+ 3242, 3242, 3242, 3242, 3250, 3250, 3250, 3250, 3250, 3250,
+ 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250, 3250,
+ 3250, 3250, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937,
+
+ 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974,
+ 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1458, 1458,
+
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1937, 1937, 1937, 1937, 1937, 1937,
+ 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
+ 1937, 1937, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
+ 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+
+ 1504, 1504, 1504, 1504, 1504, 1504, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321,
+ 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3323, 3323,
+ 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323, 3323,
+ 3323, 3323, 3323, 3323, 3323, 3323, 2228, 2228, 2228, 2228,
+
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 3370, 3370, 3370, 3370, 3370, 3370, 3370, 3370, 3370, 3370,
+ 3370, 3370, 3370, 3370, 3370, 3370, 3370, 3370, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+
+ 946, 946, 946, 946, 2064, 2064, 2064, 2064, 2064, 2064,
+ 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064,
+ 2064, 2064, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1960, 1960,
+ 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960,
+ 1960, 1960, 1960, 1960, 1960, 1960, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1818, 1818, 1818, 1818, 1818, 1818,
+
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 1818, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 3428, 3428, 3428, 3428, 3428, 3428, 3428, 3428, 3428, 3428,
+ 3428, 3428, 3428, 3428, 3428, 3428, 3428, 3428, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 2110, 2110, 2110, 2110,
+ 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110,
+ 2110, 2110, 2110, 2110, 2094, 2094, 2094, 2094, 2094, 2094,
+ 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094, 2094,
+
+ 2094, 2094, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464,
+ 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 2130, 2130,
+ 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130,
+ 2130, 2130, 2130, 2130, 2130, 2130, 2802, 2802, 2802, 2802,
+ 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
+ 2802, 2802, 2802, 2802, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1409, 3477, 3477, 3477, 3477, 3477, 3477, 3477, 3477,
+
+ 3477, 3477, 3477, 3477, 3477, 3477, 3477, 3477, 3477, 3477,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 420, 420,
+ 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
+ 420, 420, 420, 420, 420, 420, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 3136, 3136, 3136, 3136, 3136, 3136,
+ 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
+ 3136, 3136, 1671, 1671, 1671, 5143, 5143, 1671, 5143, 1671,
+ 1671, 5143, 5143, 1671, 5143, 5143, 1671, 1671, 1671, 1909,
+
+ 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909,
+ 1909, 1909, 1909, 1909, 1909, 1909, 1909, 3490, 3490, 3490,
+ 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490, 3490,
+ 3490, 3490, 3490, 3490, 3490, 3492, 3492, 3492, 3492, 3492,
+ 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
+ 3492, 3492, 3492, 2487, 2487, 2487, 2487, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487,
+ 2487, 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146,
+ 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146, 426,
+ 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
+
+ 426, 426, 426, 426, 426, 426, 426, 2163, 2163, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2165, 2165, 2165, 2165, 2165,
+ 2165, 2165, 2165, 2165, 2165, 2165, 2165, 2165, 2165, 2165,
+ 2165, 2165, 2165, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 3164,
+ 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164,
+ 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3517, 3517, 3517,
+
+ 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517, 3517,
+ 3517, 3517, 3517, 3517, 3517, 1680, 1680, 1680, 1680, 1680,
+ 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
+ 1680, 1680, 1680, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
+ 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
+ 3520, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 3524,
+ 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524,
+ 3524, 3524, 3524, 3524, 3524, 3524, 3524, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+
+ 1093, 1093, 1093, 1093, 1093, 3538, 3538, 3538, 3538, 3538,
+ 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+ 3538, 3538, 3538, 2969, 2969, 2969, 2969, 2969, 2969, 2969,
+ 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969,
+ 2969, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 3554, 3554, 3554,
+ 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554,
+ 3554, 3554, 3554, 3554, 3554, 3558, 3558, 3558, 3558, 3558,
+
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1711,
+ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711, 1711,
+ 1711, 1711, 1711, 1711, 1711, 1711, 1711, 3242, 3242, 3242,
+ 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242, 3242,
+ 3242, 3242, 3242, 3242, 3242, 3061, 3061, 3061, 3061, 3061,
+ 3061, 3061, 3061, 3061, 3061, 3061, 3061, 3061, 3061, 3061,
+
+ 3061, 3061, 3061, 3592, 3592, 3592, 3592, 3592, 3592, 3592,
+ 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592,
+ 3592, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 2231,
+ 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231, 2231,
+ 2231, 2231, 2231, 2231, 2231, 2231, 2231, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
+ 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 3602,
+ 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602, 3602,
+ 3602, 3602, 3602, 3602, 3602, 3602, 3602, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 3615, 3615, 3615, 3615, 3615, 3615, 3615,
+ 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615,
+
+ 3615, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 710, 710, 710,
+ 710, 710, 710, 710, 710, 710, 710, 710, 710, 710,
+ 710, 710, 710, 710, 710, 3370, 3370, 3370, 3370, 3370,
+ 3370, 3370, 3370, 3370, 3370, 3370, 3370, 3370, 3370, 3370,
+ 3370, 3370, 3370, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
+ 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622, 3622,
+ 3622, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 2393,
+
+ 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393,
+ 2393, 2393, 2393, 2393, 2393, 2393, 2393, 1818, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 2407, 2407, 2407, 2407, 2407,
+ 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407, 2407,
+ 2407, 2407, 2407, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110,
+ 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 2110, 3122,
+ 3122, 3122, 3122, 3122, 3122, 3122, 3122, 3122, 3122, 3122,
+
+ 3122, 3122, 3122, 3122, 3122, 3122, 3122, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 2422, 2422, 2422, 2422, 2422,
+ 2422, 2422, 2422, 2422, 2422, 2422, 2422, 2422, 2422, 2422,
+ 2422, 2422, 2422, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1848, 1848, 1848,
+
+ 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848,
+ 1848, 1848, 1848, 1848, 1848, 2130, 2130, 2130, 2130, 2130,
+ 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130,
+ 2130, 2130, 2130, 818, 818, 818, 818, 818, 818, 818,
+ 818, 818, 818, 818, 818, 818, 818, 818, 818, 818,
+ 818, 494, 494, 494, 494, 494, 494, 494, 494, 494,
+ 494, 494, 494, 494, 494, 494, 494, 494, 494, 3744,
+ 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744,
+ 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3749, 3749, 3749,
+ 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749, 3749,
+
+ 3749, 3749, 3749, 3749, 3749, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1909, 1909, 1909, 1909, 1909, 1909, 1909,
+ 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909,
+ 1909, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 1196,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1899, 1899, 1899,
+ 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899, 1899,
+ 1899, 1899, 1899, 1899, 1899, 3492, 3492, 3492, 3492, 3492,
+
+ 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
+ 3492, 3492, 3492, 3761, 3761, 3761, 3761, 3761, 3761, 3761,
+ 3761, 3761, 3761, 3761, 3761, 3761, 3761, 3761, 3761, 3761,
+ 3761, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2163, 2163, 3779, 3779, 3779,
+ 3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779, 3779,
+ 3779, 3779, 3779, 3779, 3779, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+
+ 2501, 2501, 2501, 3789, 3789, 3789, 3789, 3789, 3789, 3789,
+ 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789,
+ 3789, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1921,
+ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1921,
+ 1921, 1921, 1921, 1921, 1921, 1921, 1921, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 3321, 3321, 3321, 3321, 3321,
+ 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321,
+ 3321, 3321, 3321, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1937, 1937, 1937,
+ 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937, 1937,
+ 1937, 1937, 1937, 1937, 1937, 3837, 3837, 3837, 3837, 3837,
+ 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837, 3837,
+ 3837, 3837, 3837, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+
+ 876, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 257, 257, 257, 257, 257, 257, 257,
+ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257,
+ 257, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1960,
+ 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960,
+ 1960, 1960, 1960, 1960, 1960, 1960, 1960, 2586, 2586, 2586,
+ 2586, 2586, 2586, 2586, 2586, 2586, 2586, 2586, 2586, 2586,
+ 2586, 2586, 2586, 2586, 2586, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 517, 517, 517, 517, 517, 517, 517,
+ 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
+ 517, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 3520,
+
+ 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
+ 3520, 3520, 3520, 3520, 3520, 3520, 3520, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1987, 1987, 1987, 1987, 1987, 1987, 1987,
+ 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987, 1987,
+ 1987, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+
+ 215, 215, 215, 215, 215, 215, 215, 3615, 3615, 3615,
+ 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615, 3615,
+ 3615, 3615, 3615, 3615, 3615, 2937, 2937, 2937, 2937, 2937,
+ 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937, 2937,
+ 2937, 2937, 2937, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 3906, 3906, 3906, 3906, 3906, 3906, 3906, 3906, 3906,
+ 3906, 3906, 3906, 3906, 3906, 3906, 3906, 3906, 3906, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 3920, 3920, 3920,
+
+ 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
+ 3920, 3920, 3920, 3920, 3920, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957,
+ 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 3961, 3961, 3961,
+ 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961,
+
+ 3961, 3961, 3961, 3961, 3961, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
+ 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
+ 3288, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 3975,
+ 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975,
+ 3975, 3975, 3975, 3975, 3975, 3975, 3975, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 550, 550, 550, 550, 550,
+
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 2130, 2130, 2130, 2130, 2130, 2130, 2130,
+ 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130,
+ 2130, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788,
+ 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 2788, 559,
+ 559, 559, 559, 559, 559, 559, 559, 559, 559, 559,
+ 559, 559, 559, 559, 559, 559, 559, 3985, 3985, 3985,
+ 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985, 3985,
+ 3985, 3985, 3985, 3985, 3985, 3988, 3988, 3988, 3988, 3988,
+ 3988, 3988, 3988, 3988, 3988, 3988, 3988, 3988, 3988, 3988,
+
+ 3988, 3988, 3988, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1848,
+ 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1848,
+ 1848, 1848, 1848, 1848, 1848, 1848, 1848, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1657, 1657, 1657, 1657, 1657,
+ 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657, 1657,
+ 1657, 1657, 1657, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
+ 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 1909,
+ 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909, 1909,
+ 1909, 1909, 1909, 1909, 1909, 1909, 1909, 4000, 4000, 4000,
+ 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000,
+ 4000, 4000, 4000, 4000, 4000, 2487, 2487, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+
+ 2163, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823,
+ 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 4018,
+ 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018,
+ 4018, 4018, 4018, 4018, 4018, 4018, 4018, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2844, 2844, 2844, 2844, 2844,
+ 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844,
+ 2844, 2844, 2844, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 641,
+
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+ 641, 641, 641, 641, 641, 641, 641, 4096, 4096, 4096,
+ 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096,
+ 4096, 4096, 4096, 4096, 4096, 4101, 4101, 4101, 4101, 4101,
+ 4101, 4101, 4101, 4101, 4101, 4101, 4101, 4101, 4101, 4101,
+ 4101, 4101, 4101, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 4116,
+ 4116, 4116, 4116, 4116, 4116, 4116, 4116, 4116, 4116, 4116,
+
+ 4116, 4116, 4116, 4116, 4116, 4116, 4116, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 550, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 4148, 4148, 4148, 4148, 4148, 4148, 4148, 4148, 4148,
+ 4148, 4148, 4148, 4148, 4148, 4148, 4148, 4148, 4148, 3370,
+ 3370, 3370, 3370, 3370, 3370, 3370, 3370, 3370, 3370, 3370,
+ 3370, 3370, 3370, 3370, 3370, 3370, 3370, 4163, 4163, 4163,
+
+ 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163,
+ 4163, 4163, 4163, 4163, 4163, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167,
+ 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 2286, 2286, 2286,
+ 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286, 2286,
+
+ 2286, 2286, 2286, 2286, 2286, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 784, 784, 784, 784, 784, 784, 784,
+ 784, 784, 784, 784, 784, 784, 784, 784, 784, 784,
+ 784, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037,
+ 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3051,
+ 3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051,
+ 3051, 3051, 3051, 3051, 3051, 3051, 3051, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 536, 536, 536, 536, 536,
+
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393,
+ 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 2393, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080,
+ 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 641, 641, 641, 641, 641,
+ 641, 641, 641, 641, 641, 641, 641, 641, 641, 641,
+
+ 641, 641, 641, 3957, 3957, 3957, 3957, 3957, 3957, 3957,
+ 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957,
+ 3957, 4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237,
+ 4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237, 4237, 2130,
+ 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130, 2130,
+ 2130, 2130, 2130, 2130, 2130, 2130, 2130, 4240, 4240, 4240,
+ 4240, 4240, 4240, 4240, 4240, 4240, 4240, 4240, 4240, 4240,
+ 4240, 4240, 4240, 4240, 4240, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
+
+ 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475, 2475,
+ 2475, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 1868, 1868, 1868,
+ 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868,
+ 1868, 1868, 1868, 1868, 1868, 4245, 4245, 4245, 4245, 4245,
+ 4245, 4245, 4245, 4245, 4245, 4245, 4245, 4245, 4245, 4245,
+ 4245, 4245, 4245, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+
+ 2484, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
+ 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3492,
+ 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
+ 3492, 3492, 3492, 3492, 3492, 3492, 3492, 4000, 4000, 4000,
+ 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000,
+ 4000, 4000, 4000, 4000, 4000, 2487, 2487, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487,
+ 2487, 2487, 2487, 3146, 3146, 3146, 3146, 3146, 3146, 3146,
+ 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146, 3146,
+ 3146, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789,
+
+ 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3159,
+ 3159, 3159, 3159, 3159, 3159, 3159, 3159, 3159, 3159, 3159,
+ 3159, 3159, 3159, 3159, 3159, 3159, 3159, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 3164, 3164, 3164, 3164, 3164,
+ 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164, 3164,
+ 3164, 3164, 3164, 4266, 4266, 4266, 4266, 4266, 4266, 4266,
+ 4266, 4266, 4266, 4266, 4266, 4266, 4266, 4266, 4266, 4266,
+ 4266, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 4281,
+
+ 4281, 4281, 4281, 4281, 4281, 4281, 4281, 4281, 4281, 4281,
+ 4281, 4281, 4281, 4281, 4281, 4281, 4281, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 4320, 4320, 4320, 4320, 4320, 4320, 4320,
+ 4320, 4320, 4320, 4320, 4320, 4320, 4320, 4320, 4320, 4320,
+ 4320, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 4323,
+ 4323, 4323, 4323, 4323, 4323, 4323, 4323, 4323, 4323, 4323,
+
+ 4323, 4323, 4323, 4323, 4323, 4323, 4323, 3558, 3558, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 3558, 3558, 4339, 4339, 4339, 4339, 4339,
+ 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339, 4339,
+ 4339, 4339, 4339, 4096, 4096, 4096, 4096, 4096, 4096, 4096,
+ 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096,
+ 4096, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 2677, 2677, 2677,
+
+ 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2677, 2677,
+ 2677, 2677, 2677, 2677, 2677, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064,
+ 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 4346,
+ 4346, 4346, 4346, 4346, 4346, 4346, 4346, 4346, 4346, 4346,
+ 4346, 4346, 4346, 4346, 4346, 4346, 4346, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+
+ 1093, 1093, 1093, 1093, 1093, 4350, 4350, 4350, 4350, 4350,
+ 4350, 4350, 4350, 4350, 4350, 4350, 4350, 4350, 4350, 4350,
+ 4350, 4350, 4350, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 4365, 4365, 4365, 4365, 4365, 4365, 4365, 4365, 4365,
+ 4365, 4365, 4365, 4365, 4365, 4365, 4365, 4365, 4365, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1974, 1974, 1974,
+ 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974, 1974,
+ 1974, 1974, 1974, 1974, 1974, 4368, 4368, 4368, 4368, 4368,
+
+ 4368, 4368, 4368, 4368, 4368, 4368, 4368, 4368, 4368, 4368,
+ 4368, 4368, 4368, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 4163,
+ 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163,
+ 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4386, 4386, 4386,
+ 4386, 4386, 4386, 4386, 4386, 4386, 4386, 4386, 4386, 4386,
+ 4386, 4386, 4386, 4386, 4386, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+
+ 1841, 1841, 1841, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096,
+ 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 4423, 4423, 4423,
+ 4423, 4423, 4423, 4423, 4423, 4423, 4423, 4423, 4423, 4423,
+ 4423, 4423, 4423, 4423, 4423, 215, 215, 215, 215, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 215, 215, 550, 550, 550, 550, 550, 550, 550,
+
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 4462, 4462, 4462,
+ 4462, 4462, 4462, 4462, 4462, 4462, 4462, 4462, 4462, 4462,
+ 4462, 4462, 4462, 4462, 4462, 4467, 4467, 4467, 4467, 4467,
+ 4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467, 4467,
+ 4467, 4467, 4467, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+
+ 1406, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464,
+ 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 3464, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409, 1409,
+ 1409, 1409, 1409, 1409, 1409, 1409, 1409, 561, 561, 561,
+ 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
+ 561, 561, 561, 561, 561, 2802, 2802, 2802, 2802, 2802,
+ 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802, 2802,
+ 2802, 2802, 2802, 4474, 4474, 4474, 4474, 4474, 4474, 4474,
+ 4474, 4474, 4474, 4474, 4474, 4474, 4474, 4474, 4474, 4474,
+ 4474, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 4018,
+ 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018,
+ 4018, 4018, 4018, 4018, 4018, 4018, 4018, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 4490, 4490, 4490, 4490, 4490,
+ 4490, 4490, 4490, 4490, 4490, 4490, 4490, 4490, 4490, 4490,
+ 4490, 4490, 4490, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 838, 838, 838, 838, 838, 838, 838, 838, 838,
+ 838, 838, 838, 838, 838, 838, 838, 838, 838, 1458,
+
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 3520, 3520, 3520,
+ 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520, 3520,
+ 3520, 3520, 3520, 3520, 3520, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 3524, 3524, 3524, 3524, 3524, 3524, 3524,
+ 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524,
+ 3524, 4505, 4505, 4505, 4505, 4505, 4505, 4505, 4505, 4505,
+ 4505, 4505, 4505, 4505, 4505, 4505, 4505, 4505, 4505, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 3538, 3538, 3538, 3538, 3538,
+ 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538, 3538,
+ 3538, 3538, 3538, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461, 1461,
+ 1461, 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969,
+ 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969, 2969, 4096,
+ 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096,
+ 4096, 4096, 4096, 4096, 4096, 4096, 4096, 3554, 3554, 3554,
+
+ 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554, 3554,
+ 3554, 3554, 3554, 3554, 3554, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163,
+ 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4530,
+ 4530, 4530, 4530, 4530, 4530, 4530, 4530, 4530, 4530, 4530,
+ 4530, 4530, 4530, 4530, 4530, 4530, 4530, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+
+ 1479, 1479, 1479, 1479, 1479, 3061, 3061, 3061, 3061, 3061,
+ 3061, 3061, 3061, 3061, 3061, 3061, 3061, 3061, 3061, 3061,
+ 3061, 3061, 3061, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592,
+ 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3592, 3524,
+ 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524, 3524,
+ 3524, 3524, 3524, 3524, 3524, 3524, 3524, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 4550, 4550, 4550, 4550, 4550,
+
+ 4550, 4550, 4550, 4550, 4550, 4550, 4550, 4550, 4550, 4550,
+ 4550, 4550, 4550, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554,
+ 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4559,
+ 4559, 4559, 4559, 4559, 4559, 4559, 4559, 4559, 4559, 4559,
+ 4559, 4559, 4559, 4559, 4559, 4559, 4559, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 4575, 4575, 4575, 4575, 4575,
+ 4575, 4575, 4575, 4575, 4575, 4575, 4575, 4575, 4575, 4575,
+
+ 4575, 4575, 4575, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 599, 599, 599, 599, 599, 599, 599, 599, 599,
+ 599, 599, 599, 599, 599, 599, 599, 599, 599, 3321,
+ 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321, 3321,
+ 3321, 3321, 3321, 3321, 3321, 3321, 3321, 876, 876, 876,
+ 876, 876, 876, 876, 876, 876, 876, 876, 876, 876,
+ 876, 876, 876, 876, 876, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 4604, 4604, 4604, 4604, 4604, 4604, 4604,
+
+ 4604, 4604, 4604, 4604, 4604, 4604, 4604, 4604, 4604, 4604,
+ 4604, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 4615,
+ 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615, 4615,
+ 4615, 4615, 4615, 4615, 4615, 4615, 4615, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 4620, 4620, 4620, 4620, 4620,
+ 4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620, 4620,
+ 4620, 4620, 4620, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+
+ 1588, 3122, 3122, 3122, 3122, 3122, 3122, 3122, 3122, 3122,
+ 3122, 3122, 3122, 3122, 3122, 3122, 3122, 3122, 3122, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 1818, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 2422, 2422, 2422, 2422, 2422,
+ 2422, 2422, 2422, 2422, 2422, 2422, 2422, 2422, 2422, 2422,
+ 2422, 2422, 2422, 4626, 4626, 4626, 4626, 4626, 4626, 4626,
+ 4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626, 4626,
+ 4626, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744,
+
+ 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 3136, 3136, 3136, 3136, 3136,
+ 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
+ 3136, 3136, 3136, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
+ 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
+ 3492, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680,
+ 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1017,
+
+ 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
+ 1017, 1017, 1017, 1017, 1017, 1017, 1017, 4643, 4643, 4643,
+ 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643,
+ 4643, 4643, 4643, 4643, 4643, 4648, 4648, 4648, 4648, 4648,
+ 4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648, 4648,
+ 4648, 4648, 4648, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 4163,
+ 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163,
+
+ 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4653, 4653, 4653,
+ 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653,
+ 4653, 4653, 4653, 4653, 4653, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 4554, 4554, 4554,
+
+ 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554,
+ 4554, 4554, 4554, 4554, 4554, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712,
+ 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 4712, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 2064, 2064, 2064,
+ 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064, 2064,
+
+ 2064, 2064, 2064, 2064, 2064, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
+ 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920, 3920,
+ 3920, 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727,
+ 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4734,
+ 4734, 4734, 4734, 4734, 4734, 4734, 4734, 4734, 4734, 4734,
+ 4734, 4734, 4734, 4734, 4734, 4734, 4734, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 4745, 4745, 4745, 4745, 4745,
+
+ 4745, 4745, 4745, 4745, 4745, 4745, 4745, 4745, 4745, 4745,
+ 4745, 4745, 4745, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 3957,
+ 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957, 3957,
+ 3957, 3957, 3957, 3957, 3957, 3957, 3957, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 3961, 3961, 3961, 3961, 3961,
+ 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961, 3961,
+
+ 3961, 3961, 3961, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818,
+ 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 1818, 3288,
+ 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288, 3288,
+ 3288, 3288, 3288, 3288, 3288, 3288, 3288, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 3492, 3492, 3492, 3492, 3492,
+ 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
+ 3492, 3492, 3492, 4000, 4000, 4000, 4000, 4000, 4000, 4000,
+
+ 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000,
+ 4000, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 4760,
+ 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4760,
+ 4760, 4760, 4760, 4760, 4760, 4760, 4760, 4763, 4763, 4763,
+ 4763, 4763, 4763, 4763, 4763, 4763, 4763, 4763, 4763, 4763,
+ 4763, 4763, 4763, 4763, 4763, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+
+ 2484, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136,
+ 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 3136, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2844, 2844, 2844,
+ 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844, 2844,
+ 2844, 2844, 2844, 2844, 2844, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 4163, 4163, 4163, 4163, 4163, 4163, 4163,
+ 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163,
+ 4163, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554,
+
+ 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 4832,
+
+ 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+ 4832, 4832, 4832, 4832, 4832, 4832, 4832, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163,
+ 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 4167, 4167, 4167,
+ 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167,
+ 4167, 4167, 4167, 4167, 4167, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 4096, 4096, 4096, 4096, 4096, 4096, 4096,
+ 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096,
+ 4096, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3037, 3037, 3037,
+
+ 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037, 3037,
+ 3037, 3037, 3037, 3037, 3037, 3051, 3051, 3051, 3051, 3051,
+ 3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051, 3051,
+ 3051, 3051, 3051, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815, 1815,
+ 1815, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 4875,
+ 4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875, 4875,
+ 4875, 4875, 4875, 4875, 4875, 4875, 4875, 3492, 3492, 3492,
+ 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492, 3492,
+
+ 3492, 3492, 3492, 3492, 3492, 4878, 4878, 4878, 4878, 4878,
+ 4878, 4878, 4878, 4878, 4878, 4878, 4878, 4878, 4878, 4878,
+ 4878, 4878, 4878, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163, 2163,
+ 2163, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789,
+ 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 3789, 2487,
+ 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487,
+ 2487, 2487, 2487, 2487, 2487, 2487, 2487, 3159, 3159, 3159,
+ 3159, 3159, 3159, 3159, 3159, 3159, 3159, 3159, 3159, 3159,
+ 3159, 3159, 3159, 3159, 3159, 4883, 4883, 4883, 4883, 4883,
+
+ 4883, 4883, 4883, 4883, 4883, 4883, 4883, 4883, 4883, 4883,
+ 4883, 4883, 4883, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727,
+ 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 4909, 4909, 4909, 4909, 4909,
+ 4909, 4909, 4909, 4909, 4909, 4909, 4909, 4909, 4909, 4909,
+
+ 4909, 4909, 4909, 452, 452, 452, 452, 452, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 452,
+ 452, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163,
+ 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1960, 1960, 1960, 1960, 1960,
+ 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960, 1960,
+ 1960, 1960, 1960, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+ 3018, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+
+ 946, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 4958,
+ 4958, 4958, 4958, 4958, 4958, 4958, 4958, 4958, 4958, 4958,
+ 4958, 4958, 4958, 4958, 4958, 4958, 4958, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420, 1420,
+ 1420, 1420, 1420, 1420, 1420, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 4474, 4474, 4474, 4474, 4474, 4474, 4474,
+ 4474, 4474, 4474, 4474, 4474, 4474, 4474, 4474, 4474, 4474,
+ 4474, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487,
+
+ 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 2487, 4018,
+ 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018, 4018,
+ 4018, 4018, 4018, 4018, 4018, 4018, 4018, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291,
+ 1291, 1291, 1291, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096,
+ 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 4096, 1234,
+
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234,
+ 1234, 1234, 1234, 1234, 1234, 1234, 1234, 4530, 4530, 4530,
+ 4530, 4530, 4530, 4530, 4530, 4530, 4530, 4530, 4530, 4530,
+ 4530, 4530, 4530, 4530, 4530, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 215,
+ 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
+
+ 215, 215, 215, 215, 215, 215, 215, 4554, 4554, 4554,
+ 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554, 4554,
+ 4554, 4554, 4554, 4554, 4554, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406, 1406,
+ 1406, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744,
+ 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 3744, 4643,
+ 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643,
+ 4643, 4643, 4643, 4643, 4643, 4643, 4643, 2484, 2484, 2484,
+
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 4653, 4653, 4653, 4653, 4653,
+ 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653,
+ 4653, 4653, 4653, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 5009, 5009, 5009,
+ 5009, 5009, 5009, 5009, 5009, 5009, 5009, 5009, 5009, 5009,
+
+ 5009, 5009, 5009, 5009, 5009, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970, 1970,
+ 1970, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093,
+ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 5030, 5030, 5030, 5030, 5030,
+
+ 5030, 5030, 5030, 5030, 5030, 5030, 5030, 5030, 5030, 5030,
+ 5030, 5030, 5030, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167,
+ 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 4167, 5042,
+ 5042, 5042, 5042, 5042, 5042, 5042, 5042, 5042, 5042, 5042,
+ 5042, 5042, 5042, 5042, 5042, 5042, 5042, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726, 1726,
+ 1726, 1726, 1726, 1726, 1726, 5057, 5057, 5057, 5057, 5057,
+ 5057, 5057, 5057, 5057, 5057, 5057, 5057, 5057, 5057, 5057,
+
+ 5057, 5057, 5057, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228, 2228,
+ 2228, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832,
+ 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 4832, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841, 1841,
+ 1841, 1841, 1841, 1841, 1841, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501, 2501,
+ 2501, 2501, 2501, 4727, 4727, 4727, 4727, 4727, 4727, 4727,
+
+ 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727, 4727,
+ 4727, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504,
+ 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 4909,
+ 4909, 4909, 4909, 4909, 4909, 4909, 4909, 4909, 4909, 4909,
+ 4909, 4909, 4909, 4909, 4909, 4909, 4909, 4163, 4163, 4163,
+ 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163, 4163,
+ 4163, 4163, 4163, 4163, 4163, 5087, 5087, 5087, 5087, 5087,
+ 5087, 5087, 5087, 5087, 5087, 5087, 5087, 5087, 5087, 5087,
+ 5087, 5087, 5087, 5099, 5099, 5099, 5099, 5099, 5099, 5099,
+ 5099, 5099, 5099, 5099, 5099, 5099, 5099, 5099, 5099, 5099,
+
+ 5099, 5102, 5102, 5102, 5102, 5102, 5102, 5102, 5102, 5102,
+ 5102, 5102, 5102, 5102, 5102, 5102, 5102, 5102, 5102, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458, 1458,
+ 1458, 1458, 1458, 1458, 1458, 1458, 1458, 4530, 4530, 4530,
+ 4530, 4530, 4530, 4530, 4530, 4530, 4530, 4530, 4530, 4530,
+ 4530, 4530, 4530, 4530, 4530, 536, 536, 536, 536, 536,
+ 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
+ 536, 536, 536, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484, 2484,
+ 2484, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643,
+
+ 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4643, 4653,
+ 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653, 4653,
+ 4653, 4653, 4653, 4653, 4653, 4653, 4653, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588, 1588,
+ 1588, 1588, 1588, 1588, 1588, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479, 1479,
+ 1479, 1479, 1479, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760,
+ 1760, 946, 946, 946, 946, 946, 946, 946, 946, 946,
+ 946, 946, 946, 946, 946, 946, 946, 946, 946, 3558,
+
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558, 3558,
+ 3558, 3558, 3558, 3558, 3558, 3558, 3558, 550, 550, 550,
+ 550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
+ 550, 550, 550, 550, 550, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018, 3018,
+ 3018, 3018, 3018, 19, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143
+ } ;
+
+static yyconst flex_int16_t yy_chk[123505] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 3, 2, 2, 3, 5132, 4, 2, 4, 4,
+ 5052, 17, 18, 4, 9, 9, 9, 9, 10, 10,
+ 10, 10, 17, 18, 9, 57, 9, 57, 10, 9,
+ 10, 4, 4723, 10, 4, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 11, 11, 11, 11, 12,
+ 12, 12, 12, 13, 14, 15, 13, 14, 16, 25,
+ 11, 25, 25, 15, 12, 50, 16, 21, 21, 21,
+ 21, 23, 23, 23, 23, 27, 27, 33, 58, 4423,
+ 33, 3831, 58, 13, 14, 15, 65, 68, 16, 65,
+ 68, 81, 11, 81, 81, 3758, 12, 48, 48, 48,
+ 48, 49, 49, 49, 49, 50, 50, 60, 60, 60,
+
+ 60, 3511, 60, 62, 62, 62, 62, 63, 63, 63,
+ 63, 1031, 60, 62, 102, 62, 3496, 63, 62, 63,
+ 102, 352, 63, 64, 64, 64, 64, 67, 67, 67,
+ 67, 64, 352, 77, 64, 64, 64, 64, 64, 64,
+ 64, 359, 67, 64, 77, 507, 1031, 77, 78, 78,
+ 78, 78, 359, 64, 1216, 64, 80, 80, 80, 80,
+ 92, 92, 92, 92, 95, 95, 95, 95, 507, 104,
+ 92, 104, 104, 3490, 67, 92, 96, 96, 96, 96,
+ 106, 106, 106, 106, 107, 106, 107, 107, 108, 1216,
+ 109, 108, 109, 109, 113, 106, 119, 113, 126, 119,
+
+ 109, 126, 376, 134, 104, 117, 117, 117, 117, 146,
+ 104, 3489, 146, 376, 134, 117, 117, 134, 170, 3321,
+ 117, 170, 107, 112, 112, 112, 112, 124, 124, 124,
+ 124, 112, 3320, 3154, 112, 112, 112, 112, 112, 112,
+ 112, 178, 124, 112, 178, 125, 125, 125, 125, 181,
+ 374, 136, 181, 112, 3143, 112, 115, 115, 115, 115,
+ 125, 506, 136, 185, 115, 136, 185, 115, 115, 115,
+ 115, 115, 115, 115, 124, 374, 115, 138, 138, 138,
+ 138, 139, 139, 139, 139, 506, 115, 188, 115, 120,
+ 188, 120, 125, 149, 149, 149, 149, 120, 120, 120,
+
+ 120, 3016, 2965, 144, 144, 144, 144, 587, 120, 120,
+ 120, 120, 120, 144, 120, 2832, 2750, 157, 144, 157,
+ 157, 120, 121, 121, 121, 121, 150, 150, 150, 150,
+ 121, 2746, 587, 121, 121, 121, 121, 121, 121, 121,
+ 394, 161, 121, 161, 161, 168, 168, 168, 168, 588,
+ 207, 394, 121, 207, 121, 168, 168, 2742, 2528, 2524,
+ 168, 183, 183, 183, 183, 199, 2449, 199, 199, 184,
+ 184, 184, 184, 588, 414, 200, 183, 200, 200, 161,
+ 166, 166, 166, 166, 184, 414, 214, 224, 166, 214,
+ 224, 166, 166, 166, 166, 166, 166, 166, 228, 2397,
+
+ 166, 228, 205, 231, 205, 205, 231, 419, 183, 2226,
+ 166, 235, 166, 167, 235, 167, 184, 237, 419, 237,
+ 237, 167, 167, 167, 167, 229, 229, 229, 229, 2200,
+ 2196, 695, 167, 167, 167, 167, 167, 205, 167, 240,
+ 229, 240, 240, 205, 420, 167, 176, 176, 176, 176,
+ 243, 2188, 243, 243, 176, 420, 695, 176, 176, 176,
+ 176, 176, 176, 176, 247, 249, 176, 247, 249, 252,
+ 256, 259, 252, 256, 259, 2145, 176, 2134, 176, 177,
+ 177, 177, 177, 261, 2128, 264, 261, 177, 264, 2127,
+ 177, 177, 177, 177, 177, 177, 177, 2125, 2106, 177,
+
+ 265, 265, 265, 265, 266, 268, 430, 266, 268, 177,
+ 2099, 177, 179, 270, 179, 265, 270, 430, 434, 437,
+ 179, 179, 179, 179, 271, 270, 271, 271, 2003, 434,
+ 437, 179, 179, 179, 179, 179, 274, 179, 274, 274,
+ 275, 1992, 275, 275, 179, 216, 216, 216, 216, 280,
+ 1925, 282, 280, 216, 282, 1909, 216, 216, 216, 216,
+ 216, 216, 216, 284, 286, 216, 284, 286, 289, 295,
+ 307, 289, 295, 307, 441, 216, 1899, 216, 217, 299,
+ 217, 299, 299, 1893, 452, 441, 217, 217, 217, 217,
+ 301, 310, 301, 301, 310, 452, 462, 217, 217, 217,
+
+ 217, 217, 303, 217, 303, 303, 313, 462, 1889, 313,
+ 217, 239, 239, 1888, 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, 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, 287, 287,
+ 287, 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, 290, 290, 290, 290, 290, 290, 290, 290,
+ 290, 291, 291, 291, 291, 302, 1887, 302, 302, 302,
+ 315, 291, 291, 315, 1878, 1865, 291, 291, 291, 1862,
+ 305, 305, 305, 305, 302, 305, 317, 321, 325, 317,
+ 321, 325, 305, 328, 335, 305, 328, 335, 342, 351,
+
+ 356, 342, 351, 356, 358, 1854, 1822, 358, 291, 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, 308, 308, 308,
+ 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
+ 308, 308, 308, 308, 308, 308, 308, 308, 308, 311,
+ 366, 479, 1741, 366, 331, 311, 331, 331, 331, 311,
+ 368, 375, 479, 368, 375, 311, 311, 311, 311, 311,
+ 311, 311, 311, 331, 1733, 1720, 311, 311, 311, 311,
+ 311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
+
+ 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,
+ 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, 316, 316, 316, 316, 316, 316, 316, 316,
+ 316, 316, 316, 316, 316, 316, 316, 316, 316, 316,
+
+ 319, 319, 319, 319, 327, 327, 327, 327, 1694, 378,
+ 319, 319, 378, 1686, 327, 319, 327, 319, 334, 327,
+ 334, 334, 350, 350, 350, 350, 353, 353, 353, 353,
+ 334, 1678, 383, 393, 350, 383, 393, 350, 353, 1670,
+ 1647, 353, 354, 354, 354, 354, 1643, 319, 320, 320,
+ 320, 320, 401, 1633, 354, 401, 334, 354, 320, 320,
+ 413, 415, 1476, 320, 320, 320, 373, 407, 373, 373,
+ 407, 413, 415, 353, 413, 415, 416, 418, 373, 416,
+ 418, 425, 428, 429, 425, 428, 429, 436, 1465, 354,
+ 436, 421, 1452, 1450, 1433, 320, 322, 322, 322, 322,
+
+ 1430, 1359, 421, 435, 373, 421, 322, 322, 451, 453,
+ 1291, 322, 322, 322, 435, 440, 484, 435, 440, 451,
+ 453, 461, 451, 453, 461, 470, 478, 484, 470, 478,
+ 486, 489, 492, 501, 489, 492, 501, 515, 1288, 534,
+ 515, 486, 534, 322, 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, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 336, 336, 336, 336, 336, 336,
+ 336, 336, 336, 336, 337, 487, 490, 494, 540, 562,
+
+ 564, 540, 562, 564, 337, 1287, 487, 490, 494, 487,
+ 337, 337, 337, 337, 337, 337, 337, 337, 1252, 1198,
+ 1196, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 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, 339, 339, 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, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 343, 495, 343, 496, 1184,
+ 503, 1146, 508, 343, 343, 343, 343, 495, 498, 496,
+ 495, 503, 504, 508, 343, 343, 343, 343, 343, 498,
+ 343, 566, 498, 504, 566, 1099, 504, 343, 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, 344, 344, 344,
+
+ 344, 344, 344, 344, 344, 344, 344, 344, 344, 344,
+ 344, 344, 344, 344, 344, 344, 344, 344, 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, 345, 345, 345, 345, 345,
+ 345, 345, 345, 345, 345, 345, 345, 345, 345, 345,
+ 345, 345, 345, 345, 345, 345, 345, 345, 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, 347, 347, 347, 347, 347, 347,
+ 347, 347, 347, 347, 347, 347, 347, 347, 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, 360, 360,
+ 360, 360, 580, 1093, 505, 580, 505, 505, 360, 360,
+ 1078, 1067, 1038, 360, 360, 360, 505, 433, 1037, 433,
+ 433, 509, 509, 509, 509, 1036, 509, 510, 512, 433,
+
+ 1014, 517, 520, 509, 582, 1001, 509, 582, 510, 512,
+ 513, 510, 517, 520, 522, 360, 361, 361, 361, 361,
+ 600, 513, 433, 600, 513, 522, 361, 361, 433, 518,
+ 523, 361, 361, 361, 511, 511, 511, 511, 992, 511,
+ 518, 523, 532, 518, 523, 989, 536, 537, 541, 511,
+ 985, 549, 602, 532, 983, 602, 532, 536, 537, 541,
+ 550, 537, 549, 361, 380, 549, 380, 551, 553, 554,
+ 982, 550, 380, 380, 380, 380, 981, 555, 551, 553,
+ 554, 551, 553, 380, 380, 380, 380, 380, 555, 380,
+ 608, 555, 632, 608, 959, 632, 380, 388, 388, 388,
+
+ 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
+ 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
+ 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
+ 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
+ 388, 388, 388, 388, 388, 388, 388, 390, 390, 390,
+ 390, 957, 952, 640, 558, 390, 640, 944, 390, 390,
+ 390, 390, 390, 390, 390, 558, 919, 390, 558, 556,
+ 556, 556, 556, 915, 559, 560, 568, 390, 894, 390,
+ 398, 556, 572, 583, 556, 559, 560, 568, 658, 560,
+ 398, 658, 874, 572, 583, 589, 398, 398, 398, 398,
+
+ 398, 398, 398, 398, 849, 842, 589, 398, 398, 398,
+ 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
+ 398, 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, 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, 402, 570, 402, 574, 832, 595, 829, 611, 402,
+ 402, 402, 402, 570, 577, 574, 570, 595, 574, 611,
+ 402, 402, 402, 402, 402, 577, 402, 661, 577, 664,
+
+ 661, 823, 664, 402, 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, 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, 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, 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, 405, 405, 406, 816, 815, 809, 593, 593,
+ 593, 593, 786, 784, 406, 575, 575, 575, 575, 750,
+ 406, 406, 406, 406, 406, 406, 406, 406, 710, 707,
+ 575, 406, 406, 406, 406, 406, 406, 406, 406, 406,
+ 406, 406, 406, 406, 406, 408, 593, 408, 584, 584,
+
+ 584, 584, 705, 408, 408, 408, 408, 700, 584, 692,
+ 584, 585, 575, 584, 408, 408, 408, 408, 408, 685,
+ 408, 683, 585, 686, 683, 585, 686, 408, 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, 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, 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, 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, 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, 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, 422, 422,
+ 422, 422, 698, 679, 569, 569, 569, 569, 422, 422,
+ 677, 672, 660, 422, 422, 422, 569, 591, 1215, 569,
+
+ 586, 586, 586, 586, 590, 590, 590, 590, 591, 590,
+ 586, 591, 617, 634, 708, 586, 590, 708, 698, 590,
+ 657, 594, 636, 617, 634, 422, 423, 423, 423, 423,
+ 645, 569, 594, 636, 1215, 594, 423, 423, 639, 597,
+ 613, 423, 423, 423, 592, 592, 592, 592, 635, 592,
+ 597, 613, 616, 597, 613, 601, 618, 624, 637, 592,
+ 599, 579, 578, 616, 641, 642, 616, 618, 624, 637,
+ 618, 624, 637, 423, 442, 641, 642, 644, 646, 642,
+ 711, 567, 442, 711, 442, 1032, 563, 650, 644, 646,
+ 442, 442, 442, 442, 442, 442, 442, 442, 650, 561,
+
+ 533, 442, 442, 442, 442, 442, 442, 442, 442, 442,
+ 442, 442, 442, 442, 442, 443, 647, 443, 649, 1032,
+ 653, 521, 665, 443, 443, 443, 443, 647, 655, 649,
+ 647, 653, 649, 665, 443, 443, 443, 443, 443, 655,
+ 443, 724, 655, 732, 724, 514, 732, 443, 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, 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, 446, 446, 446, 446, 446, 446,
+ 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
+ 446, 446, 446, 446, 446, 446, 446, 446, 448, 666,
+ 448, 668, 671, 678, 500, 491, 448, 448, 448, 448,
+ 666, 676, 668, 671, 678, 668, 671, 448, 448, 448,
+ 448, 448, 676, 448, 771, 676, 785, 771, 485, 785,
+ 448, 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, 449,
+ 449, 454, 469, 787, 810, 687, 787, 810, 427, 426,
+ 424, 454, 656, 656, 656, 656, 687, 454, 454, 454,
+ 454, 454, 454, 454, 454, 417, 382, 656, 454, 454,
+ 454, 454, 454, 454, 454, 454, 454, 454, 454, 454,
+ 454, 454, 455, 688, 455, 689, 689, 689, 689, 377,
+ 455, 455, 455, 455, 688, 689, 372, 689, 690, 656,
+ 689, 455, 455, 455, 455, 455, 371, 455, 814, 690,
+
+ 817, 814, 690, 817, 455, 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, 457, 457, 459, 459, 459, 459, 659,
+ 659, 659, 659, 459, 367, 1457, 459, 459, 459, 459,
+ 459, 459, 459, 699, 659, 459, 691, 691, 691, 691,
+ 365, 693, 701, 725, 699, 459, 691, 459, 460, 364,
+ 460, 691, 693, 701, 725, 693, 460, 460, 460, 460,
+
+ 694, 1457, 694, 694, 703, 706, 659, 460, 460, 460,
+ 460, 460, 694, 460, 831, 703, 706, 831, 703, 706,
+ 460, 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, 467, 836, 467, 851, 836, 734, 851, 745, 467,
+ 467, 467, 467, 696, 696, 696, 696, 734, 696, 745,
+ 467, 467, 467, 467, 467, 696, 467, 860, 696, 875,
+
+ 860, 363, 875, 467, 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, 468, 468, 468, 468,
+ 468, 468, 468, 468, 468, 468, 468, 468, 468, 468,
+ 468, 468, 468, 468, 471, 736, 772, 776, 885, 936,
+ 938, 885, 936, 938, 471, 357, 736, 772, 776, 736,
+ 471, 471, 471, 471, 471, 471, 471, 471, 326, 324,
+ 318, 471, 471, 471, 471, 471, 471, 471, 471, 471,
+ 471, 471, 471, 471, 471, 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, 476, 476, 476, 476, 669,
+ 669, 669, 669, 476, 314, 309, 476, 476, 476, 476,
+ 476, 476, 476, 788, 669, 476, 697, 697, 697, 697,
+ 741, 744, 793, 940, 788, 476, 940, 476, 477, 751,
+ 477, 741, 744, 793, 741, 744, 477, 477, 477, 477,
+ 751, 758, 306, 751, 304, 761, 669, 477, 477, 477,
+
+ 477, 477, 758, 477, 697, 758, 761, 296, 294, 761,
+ 477, 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, 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, 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, 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, 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, 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, 499, 499, 499,
+ 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
+ 499, 499, 499, 499, 499, 499, 499, 499, 499, 499,
+ 499, 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, 502, 502, 502, 502, 502, 502, 502,
+
+ 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
+ 502, 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, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 516, 516, 516, 516, 516, 516, 516, 516, 516,
+ 516, 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, 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, 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, 525, 525, 525,
+
+ 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
+ 525, 527, 777, 527, 704, 704, 704, 704, 293, 527,
+ 527, 527, 527, 777, 704, 704, 777, 782, 790, 704,
+ 527, 527, 527, 527, 527, 292, 527, 945, 782, 790,
+ 945, 782, 790, 527, 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,
+ 528, 528, 528, 528, 528, 528, 528, 528, 528, 528,
+ 528, 528, 528, 528, 529, 288, 958, 960, 804, 958,
+
+ 960, 285, 283, 281, 529, 674, 674, 674, 674, 804,
+ 529, 529, 529, 529, 529, 529, 529, 529, 279, 278,
+ 674, 529, 529, 529, 529, 529, 529, 529, 529, 529,
+ 529, 529, 529, 529, 529, 530, 792, 530, 818, 277,
+ 822, 276, 827, 530, 530, 530, 530, 792, 794, 818,
+ 792, 822, 674, 827, 530, 530, 530, 530, 530, 794,
+ 530, 984, 794, 988, 984, 269, 988, 530, 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, 531, 531, 531, 531, 531, 531,
+ 531, 531, 531, 531, 531, 531, 531, 531, 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,
+ 538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
+ 538, 538, 538, 538, 538, 538, 538, 538, 542, 798,
+ 828, 837, 990, 267, 993, 990, 542, 993, 542, 263,
+ 798, 828, 837, 798, 542, 542, 542, 542, 542, 542,
+ 542, 542, 262, 260, 258, 542, 542, 542, 542, 542,
+
+ 542, 542, 542, 542, 542, 542, 542, 542, 542, 543,
+ 803, 543, 806, 257, 838, 255, 841, 543, 543, 543,
+ 543, 803, 808, 806, 803, 838, 806, 841, 543, 543,
+ 543, 543, 543, 808, 543, 1010, 808, 1015, 1010, 251,
+ 1015, 543, 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, 544, 544, 544, 544, 544, 544,
+ 544, 544, 544, 544, 544, 544, 544, 544, 544, 544,
+ 544, 544, 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,
+ 545, 545, 547, 819, 547, 826, 250, 848, 248, 876,
+ 547, 547, 547, 547, 819, 839, 826, 819, 848, 826,
+ 876, 547, 547, 547, 547, 547, 839, 547, 246, 839,
+ 1030, 1030, 1030, 1030, 547, 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,
+
+ 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, 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, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 557, 557, 557, 557, 557,
+ 557, 557, 557, 557, 557, 565, 565, 565, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 565, 565, 565, 565, 565, 565, 565, 565, 565, 565,
+ 565, 565, 565, 565, 565, 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, 571, 571, 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, 573, 573, 573, 573, 573,
+ 573, 573, 573, 573, 573, 573, 573, 573, 573, 573,
+ 573, 573, 573, 573, 573, 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, 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, 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, 596, 596, 596,
+ 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
+ 596, 596, 596, 596, 596, 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, 598, 598, 598, 598, 598, 598, 598, 598, 598,
+ 598, 598, 598, 598, 598, 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, 604, 845, 886, 893, 1041,
+ 1046, 1056, 1041, 1046, 1056, 604, 245, 845, 886, 893,
+ 845, 604, 604, 604, 604, 604, 604, 604, 604, 244,
+
+ 242, 241, 604, 604, 604, 604, 604, 604, 604, 604,
+ 604, 604, 604, 604, 604, 604, 606, 606, 606, 606,
+ 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
+ 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
+ 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
+ 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
+ 606, 606, 606, 606, 606, 606, 609, 914, 609, 840,
+ 840, 840, 840, 236, 609, 609, 609, 609, 914, 840,
+ 234, 840, 873, 877, 840, 609, 609, 609, 609, 609,
+ 233, 609, 1064, 873, 877, 1064, 873, 877, 609, 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, 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, 612, 612, 612, 612, 612, 612, 612,
+ 612, 612, 612, 612, 612, 612, 612, 612, 612, 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, 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, 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, 615, 615, 615, 615, 615, 615, 615, 615, 615,
+ 615, 615, 615, 615, 615, 615, 615, 615, 615, 619,
+
+ 619, 619, 619, 232, 230, 1066, 901, 619, 1066, 227,
+ 619, 619, 619, 619, 619, 619, 619, 901, 1068, 619,
+ 901, 1068, 1079, 1094, 1152, 1079, 1094, 1152, 226, 619,
+ 225, 619, 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, 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, 621, 909, 918, 933, 1155, 1173, 1175, 1155,
+ 1173, 1175, 621, 223, 909, 918, 933, 909, 621, 621,
+
+ 621, 621, 621, 621, 621, 621, 219, 218, 215, 621,
+ 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
+ 621, 621, 621, 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, 622, 622, 625, 1183, 625, 1197, 1183, 946, 1197,
+ 962, 625, 625, 625, 625, 843, 843, 843, 843, 946,
+ 843, 962, 625, 625, 625, 625, 625, 843, 625, 1199,
+
+ 843, 1201, 1199, 213, 1201, 625, 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, 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, 627, 627, 627,
+ 627, 627, 627, 627, 627, 627, 627, 627, 627, 627,
+
+ 627, 627, 627, 627, 627, 627, 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, 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, 629, 932, 966, 980,
+ 1219, 1223, 1243, 1219, 1223, 1243, 629, 212, 932, 966,
+ 980, 932, 629, 629, 629, 629, 629, 629, 629, 629,
+ 211, 208, 206, 629, 629, 629, 629, 629, 629, 629,
+ 629, 629, 629, 629, 629, 629, 629, 630, 630, 630,
+
+ 630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
+ 630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
+ 630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
+ 630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
+ 630, 630, 630, 630, 630, 630, 630, 633, 943, 633,
+ 850, 850, 850, 850, 204, 633, 633, 633, 633, 943,
+ 850, 850, 943, 947, 953, 850, 633, 633, 633, 633,
+ 633, 203, 633, 1253, 947, 953, 1253, 947, 953, 633,
+ 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, 638, 638, 638, 638, 638, 638, 638, 638,
+ 638, 638, 638, 638, 638, 638, 638, 638, 638, 638,
+ 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, 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,
+ 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, 648,
+ 648, 648, 648, 648, 648, 648, 648, 648, 648, 648,
+ 648, 648, 648, 648, 648, 648, 648, 648, 648, 648,
+ 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, 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,
+ 652, 652, 652, 652, 652, 652, 652, 652, 652, 652,
+ 652, 652, 652, 652, 652, 652, 652, 652, 652, 652,
+
+ 652, 652, 652, 652, 652, 652, 652, 652, 652, 652,
+ 652, 652, 652, 652, 652, 652, 652, 652, 652, 652,
+ 652, 652, 652, 652, 652, 652, 652, 652, 652, 652,
+ 654, 654, 654, 654, 844, 844, 844, 844, 964, 965,
+ 991, 202, 654, 994, 996, 654, 844, 201, 999, 964,
+ 965, 991, 964, 965, 994, 996, 1000, 1004, 996, 999,
+ 198, 197, 999, 1005, 1007, 1011, 1257, 1000, 1004, 1257,
+ 1362, 1004, 844, 1362, 1005, 1007, 1011, 654, 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, 662, 662, 662,
+ 662, 662, 662, 662, 662, 662, 662, 662, 662, 662,
+ 662, 662, 662, 662, 662, 662, 662, 662, 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, 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, 667, 667,
+ 667, 667, 846, 846, 846, 846, 1006, 1017, 1018, 196,
+ 667, 195, 1019, 667, 1021, 1024, 1029, 1006, 1017, 1018,
+
+ 1006, 194, 1018, 1019, 1025, 1021, 1024, 1029, 1021, 1023,
+ 1023, 1023, 1023, 1367, 193, 1025, 1367, 846, 1025, 1023,
+ 192, 1023, 190, 846, 1023, 667, 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, 670, 670, 670, 670, 670, 670, 670,
+ 670, 670, 670, 670, 670, 670, 670, 670, 670, 670,
+ 670, 670, 670, 670, 670, 670, 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, 673, 673, 673,
+ 673, 673, 673, 673, 673, 673, 673, 673, 673, 673,
+ 673, 673, 673, 673, 673, 673, 675, 675, 675, 675,
+ 675, 675, 675, 675, 675, 675, 675, 675, 675, 675,
+ 675, 675, 675, 675, 675, 675, 675, 675, 675, 675,
+ 675, 675, 675, 675, 675, 675, 675, 675, 675, 675,
+ 675, 675, 675, 675, 675, 675, 675, 675, 675, 675,
+ 675, 675, 675, 675, 675, 675, 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, 680, 680,
+ 680, 680, 680, 680, 680, 680, 680, 680, 680, 680,
+ 680, 680, 680, 680, 680, 680, 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, 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, 682, 1375, 1416, 1431,
+ 1375, 1416, 1431, 189, 1434, 187, 682, 1434, 1026, 1026,
+ 1026, 1026, 682, 682, 682, 682, 682, 682, 682, 682,
+
+ 1026, 182, 180, 682, 682, 682, 682, 682, 682, 682,
+ 682, 682, 682, 682, 682, 682, 682, 684, 1028, 1034,
+ 1057, 1438, 1477, 172, 1438, 1477, 1026, 684, 171, 1028,
+ 1034, 1057, 1028, 684, 684, 684, 684, 684, 684, 684,
+ 684, 164, 163, 162, 684, 684, 684, 684, 684, 684,
+ 684, 684, 684, 684, 684, 684, 684, 684, 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, 709, 709,
+ 709, 709, 160, 709, 709, 1035, 709, 159, 709, 709,
+ 709, 709, 709, 709, 709, 709, 1035, 158, 709, 1035,
+ 709, 709, 709, 709, 709, 709, 709, 709, 709, 156,
+ 709, 709, 709, 709, 709, 709, 709, 709, 709, 709,
+ 709, 709, 709, 709, 709, 709, 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, 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, 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, 713, 713, 713, 713, 713,
+ 713, 713, 713, 713, 713, 713, 713, 713, 713, 713,
+ 713, 713, 713, 713, 713, 713, 714, 1487, 714, 155,
+ 1487, 1027, 1069, 1080, 714, 714, 714, 714, 805, 805,
+ 805, 805, 1027, 1069, 1080, 714, 714, 714, 714, 714,
+ 805, 714, 1070, 805, 1077, 154, 153, 152, 714, 715,
+ 1081, 1098, 1106, 1070, 151, 1077, 1070, 1027, 1077, 715,
+
+ 148, 1081, 1098, 1106, 1081, 715, 715, 715, 715, 715,
+ 715, 715, 715, 147, 143, 805, 715, 715, 715, 715,
+ 715, 715, 715, 715, 715, 715, 715, 715, 715, 715,
+ 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, 719, 719, 719, 719, 719, 719, 719, 719, 719,
+ 719, 719, 719, 719, 719, 719, 719, 719, 719, 719,
+ 721, 721, 721, 721, 1506, 142, 1088, 1506, 1107, 140,
+ 721, 721, 721, 132, 129, 721, 722, 1088, 722, 1107,
+
+ 1088, 1133, 1107, 1145, 722, 722, 722, 722, 128, 1125,
+ 123, 1131, 1133, 1134, 1145, 722, 722, 722, 722, 722,
+ 1125, 722, 1131, 1125, 1134, 1131, 122, 1134, 722, 723,
+ 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
+ 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
+ 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
+ 723, 723, 723, 723, 723, 723, 723, 723, 723, 723,
+ 723, 723, 723, 723, 723, 723, 723, 723, 723, 729,
+ 1140, 1172, 1174, 1456, 1456, 1456, 1456, 1543, 105, 729,
+ 1543, 1140, 1172, 1174, 1140, 729, 729, 729, 729, 729,
+
+ 729, 729, 729, 103, 101, 99, 729, 729, 729, 729,
+ 729, 729, 729, 729, 729, 729, 729, 729, 729, 729,
+ 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, 730, 730, 730, 730, 730, 730, 730, 730,
+ 730, 730, 730, 730, 730, 730, 730, 730, 730, 730,
+ 733, 1160, 733, 1169, 98, 1176, 94, 1178, 733, 733,
+ 733, 733, 1160, 1171, 1169, 1160, 1176, 1169, 1178, 733,
+ 733, 733, 733, 733, 1171, 733, 1575, 1171, 1579, 1575,
+
+ 93, 1579, 733, 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, 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, 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, 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, 738, 1179, 1180, 1189, 1591, 1632, 1648,
+ 1591, 1632, 1648, 738, 91, 1179, 1180, 1189, 1179, 738,
+ 738, 738, 738, 738, 738, 738, 738, 90, 87, 75,
+ 738, 738, 738, 738, 738, 738, 738, 738, 738, 738,
+ 738, 738, 738, 738, 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, 739, 739, 739, 739, 739, 739, 739, 739, 739,
+ 739, 739, 739, 739, 739, 739, 739, 739, 739, 739,
+ 739, 739, 739, 739, 742, 1182, 742, 1188, 73, 1191,
+
+ 56, 1193, 742, 742, 742, 742, 1182, 1190, 1188, 1182,
+ 1191, 1188, 1193, 742, 742, 742, 742, 742, 1190, 742,
+ 1672, 1190, 1675, 1672, 52, 1675, 742, 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, 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, 746, 746, 746,
+ 746, 746, 746, 746, 746, 746, 746, 746, 746, 746,
+ 746, 746, 746, 746, 746, 746, 746, 746, 746, 746,
+
+ 746, 746, 746, 746, 746, 746, 746, 746, 746, 746,
+ 746, 746, 746, 746, 746, 746, 746, 746, 746, 746,
+ 746, 746, 746, 746, 746, 746, 746, 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, 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, 748, 1192, 748,
+ 1194, 51, 1202, 45, 1206, 748, 748, 748, 748, 1192,
+ 1195, 1194, 1192, 1202, 1204, 1206, 748, 748, 748, 748,
+
+ 748, 1195, 748, 1679, 1195, 1204, 1679, 44, 1204, 748,
+ 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,
+ 752, 1208, 1213, 1218, 1702, 1718, 1721, 1702, 1718, 1721,
+ 752, 43, 1208, 1213, 1218, 1208, 752, 752, 752, 752,
+ 752, 752, 752, 752, 42, 41, 39, 752, 752, 752,
+ 752, 752, 752, 752, 752, 752, 752, 752, 752, 752,
+
+ 752, 755, 755, 755, 755, 1209, 1209, 1209, 1209, 755,
+ 32, 1211, 755, 755, 755, 755, 755, 755, 755, 1220,
+ 1209, 755, 1211, 1734, 1745, 1211, 1734, 1745, 19, 1788,
+ 1220, 755, 1788, 755, 756, 756, 756, 756, 756, 756,
+ 756, 756, 756, 756, 756, 756, 756, 756, 756, 756,
+ 756, 756, 756, 756, 756, 756, 756, 756, 756, 756,
+ 756, 756, 756, 756, 756, 756, 756, 756, 756, 756,
+ 756, 756, 756, 756, 756, 756, 756, 756, 756, 756,
+ 756, 756, 756, 756, 757, 8, 1826, 1855, 1224, 1826,
+ 1855, 7, 0, 0, 757, 807, 807, 807, 807, 1224,
+
+ 757, 757, 757, 757, 757, 757, 757, 757, 0, 0,
+ 807, 757, 757, 757, 757, 757, 757, 757, 757, 757,
+ 757, 757, 757, 757, 757, 759, 1212, 759, 1234, 0,
+ 1244, 0, 1249, 759, 759, 759, 759, 1212, 1217, 1234,
+ 1212, 1244, 807, 1249, 759, 759, 759, 759, 759, 1217,
+ 759, 1892, 1217, 1895, 1892, 0, 1895, 759, 760, 760,
+ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
+ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
+ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
+ 760, 760, 760, 760, 760, 760, 760, 760, 760, 760,
+
+ 760, 760, 760, 760, 760, 760, 760, 760, 762, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762, 762, 762,
+ 762, 762, 762, 762, 762, 762, 762, 762, 763, 0,
+ 763, 0, 1214, 1214, 1214, 1214, 763, 763, 763, 763,
+ 979, 979, 979, 979, 1214, 1233, 1254, 763, 763, 763,
+ 763, 763, 979, 763, 1235, 979, 1233, 1254, 1248, 1233,
+ 763, 764, 0, 1264, 1277, 1235, 0, 1214, 1235, 1248,
+
+ 0, 764, 1248, 1214, 1264, 1277, 0, 764, 764, 764,
+ 764, 764, 764, 764, 764, 0, 0, 979, 764, 764,
+ 764, 764, 764, 764, 764, 764, 764, 764, 764, 764,
+ 764, 764, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 767, 767, 767, 767, 767, 767, 767, 767,
+ 767, 767, 769, 769, 769, 769, 0, 0, 1897, 1250,
+ 769, 1897, 0, 769, 769, 769, 769, 769, 769, 769,
+
+ 1250, 1900, 769, 1250, 1900, 1255, 0, 1265, 0, 1295,
+ 1935, 1316, 769, 1935, 769, 770, 1255, 770, 1265, 1255,
+ 1295, 1265, 1316, 770, 770, 770, 770, 0, 1276, 0,
+ 1285, 0, 1294, 0, 770, 770, 770, 770, 770, 1276,
+ 770, 1285, 1276, 1294, 1285, 0, 1294, 770, 778, 778,
+ 778, 778, 778, 778, 778, 778, 778, 778, 778, 778,
+ 778, 778, 778, 778, 778, 778, 778, 778, 778, 778,
+ 778, 778, 778, 778, 778, 778, 778, 778, 778, 778,
+ 778, 778, 778, 778, 778, 778, 778, 778, 778, 778,
+ 778, 778, 778, 778, 778, 778, 778, 778, 779, 1306,
+
+ 1331, 1334, 1958, 1993, 2059, 1958, 1993, 2059, 779, 0,
+ 1306, 1331, 1334, 1306, 779, 779, 779, 779, 779, 779,
+ 779, 779, 0, 0, 0, 779, 779, 779, 779, 779,
+ 779, 779, 779, 779, 779, 779, 779, 779, 779, 780,
+ 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
+ 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
+ 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
+ 780, 780, 780, 780, 780, 780, 780, 780, 780, 780,
+ 780, 780, 780, 780, 780, 780, 780, 780, 780, 783,
+ 1315, 783, 1321, 0, 1339, 0, 1376, 783, 783, 783,
+
+ 783, 1315, 1330, 1321, 1315, 1339, 1321, 1376, 783, 783,
+ 783, 783, 783, 1330, 783, 2086, 1330, 2100, 2086, 0,
+ 2100, 783, 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, 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, 791, 791,
+
+ 791, 791, 791, 791, 791, 791, 791, 791, 791, 791,
+ 791, 791, 791, 791, 791, 791, 791, 791, 791, 791,
+ 791, 791, 795, 795, 795, 795, 0, 0, 2129, 1333,
+ 795, 2129, 0, 795, 795, 795, 795, 795, 795, 795,
+ 1333, 2159, 795, 1333, 2159, 2161, 2169, 2197, 2161, 2169,
+ 2197, 0, 795, 0, 795, 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,
+ 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, 797, 1335, 1390, 1405, 2215,
+ 2217, 2220, 2215, 2217, 2220, 797, 0, 1335, 1390, 1405,
+ 1335, 797, 797, 797, 797, 797, 797, 797, 797, 0,
+ 0, 0, 797, 797, 797, 797, 797, 797, 797, 797,
+ 797, 797, 797, 797, 797, 797, 799, 1340, 799, 1357,
+ 0, 1406, 0, 1409, 799, 799, 799, 799, 1340, 1385,
+ 1357, 1340, 1406, 1357, 1409, 799, 799, 799, 799, 799,
+ 1385, 799, 2227, 1385, 2267, 2227, 0, 2267, 799, 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, 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,
+ 801, 801, 801, 801, 801, 801, 801, 801, 801, 801,
+ 801, 801, 801, 801, 801, 801, 801, 801, 801, 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, 802, 802, 802, 802, 802,
+ 802, 802, 802, 802, 802, 802, 802, 802, 802, 802,
+ 802, 802, 802, 802, 802, 802, 802, 802, 802, 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, 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,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
+ 813, 813, 813, 813, 813, 813, 813, 813, 813, 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, 820, 820, 820, 820, 820, 820, 820, 820, 820,
+ 820, 820, 820, 820, 820, 820, 820, 820, 820, 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,
+ 821, 821, 821, 821, 821, 821, 821, 821, 821, 821,
+ 821, 821, 821, 821, 821, 821, 821, 821, 821, 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, 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, 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, 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, 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,
+ 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
+ 830, 830, 830, 830, 830, 830, 830, 830, 830, 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,
+ 833, 833, 833, 833, 833, 833, 833, 833, 833, 833,
+ 833, 833, 833, 833, 833, 833, 833, 833, 833, 834,
+ 1391, 1411, 1417, 2340, 2343, 2346, 2340, 2343, 2346, 834,
+ 0, 1391, 1411, 1417, 1391, 834, 834, 834, 834, 834,
+ 834, 834, 834, 0, 0, 0, 834, 834, 834, 834,
+ 834, 834, 834, 834, 834, 834, 834, 834, 834, 834,
+ 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, 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,
+ 852, 852, 852, 852, 0, 0, 2405, 1404, 852, 2405,
+ 0, 852, 852, 852, 852, 852, 852, 852, 1404, 2494,
+ 852, 1404, 2494, 0, 0, 0, 1407, 1419, 1410, 0,
+ 852, 0, 852, 853, 853, 853, 853, 1407, 1419, 1410,
+ 1407, 853, 1410, 1413, 853, 853, 853, 853, 853, 853,
+ 853, 1420, 2637, 853, 1413, 2637, 2656, 1413, 2659, 2656,
+ 0, 2659, 1420, 853, 0, 853, 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, 854, 854, 854, 854, 854, 854,
+ 854, 854, 854, 854, 854, 854, 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, 856, 1418, 1422, 1426,
+ 2661, 2700, 2730, 2661, 2700, 2730, 856, 0, 1418, 1422,
+
+ 1426, 1418, 856, 856, 856, 856, 856, 856, 856, 856,
+ 0, 0, 0, 856, 856, 856, 856, 856, 856, 856,
+ 856, 856, 856, 856, 856, 856, 856, 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, 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, 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, 861, 1421, 861,
+ 1424, 0, 1439, 0, 1440, 861, 861, 861, 861, 1421,
+ 1428, 1424, 1421, 1439, 1424, 1440, 861, 861, 861, 861,
+ 861, 1428, 861, 2732, 1428, 2734, 2732, 0, 2734, 861,
+ 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, 862, 862, 862, 862, 862, 862, 862, 862, 862,
+
+ 862, 862, 862, 862, 862, 862, 862, 862, 862, 862,
+ 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, 863, 863, 863,
+ 863, 863, 863, 863, 863, 863, 863, 863, 863, 863,
+ 863, 863, 863, 863, 863, 863, 863, 863, 863, 863,
+ 865, 1442, 1451, 1458, 2747, 0, 2768, 2747, 865, 2768,
+ 865, 0, 1442, 1451, 1458, 1442, 865, 865, 865, 865,
+ 865, 865, 865, 865, 0, 0, 0, 865, 865, 865,
+ 865, 865, 865, 865, 865, 865, 865, 865, 865, 865,
+
+ 865, 866, 1444, 866, 1448, 1453, 1453, 1453, 1453, 866,
+ 866, 866, 866, 1444, 1459, 1448, 1444, 1453, 1448, 1461,
+ 866, 866, 866, 866, 866, 1459, 866, 0, 1459, 2780,
+ 1461, 0, 2780, 866, 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, 868, 868, 868, 868, 868, 868,
+ 868, 868, 868, 868, 868, 868, 868, 868, 868, 868,
+ 868, 868, 868, 868, 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, 869,
+ 869, 869, 869, 869, 869, 869, 869, 869, 869, 869,
+ 869, 869, 869, 869, 871, 1462, 871, 1464, 0, 1466,
+ 0, 1479, 871, 871, 871, 871, 1462, 1467, 1464, 1462,
+ 1466, 1475, 1479, 871, 871, 871, 871, 871, 1467, 871,
+ 2818, 1467, 1475, 2818, 0, 1475, 871, 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, 878, 1480, 2833,
+ 1482, 3017, 2833, 3144, 3017, 3217, 3144, 878, 3217, 1480,
+ 1454, 1482, 1480, 878, 878, 878, 878, 878, 878, 878,
+ 878, 1454, 0, 0, 878, 878, 878, 878, 878, 878,
+ 878, 878, 878, 878, 878, 878, 878, 878, 879, 1481,
+ 879, 1484, 0, 1485, 0, 1454, 879, 879, 879, 879,
+ 1481, 1486, 1484, 1481, 1485, 1484, 1488, 879, 879, 879,
+ 879, 879, 1486, 879, 0, 1486, 3296, 1488, 0, 3296,
+ 879, 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, 883, 883, 883, 883, 3307, 0, 1455, 3307, 1491,
+ 1492, 883, 883, 883, 0, 0, 883, 884, 1455, 884,
+ 1491, 1492, 1504, 1491, 1517, 884, 884, 884, 884, 0,
+ 0, 0, 1503, 1504, 1505, 1517, 884, 884, 884, 884,
+ 884, 1455, 884, 1503, 3322, 1505, 1503, 3322, 1505, 884,
+ 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,
+ 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, 891, 891, 891, 891, 891, 891, 891, 891, 891,
+ 891, 891, 891, 891, 891, 891, 891, 891, 891, 891,
+ 892, 3329, 892, 3378, 3329, 1521, 3378, 1535, 892, 892,
+
+ 892, 892, 986, 986, 986, 986, 1521, 1516, 1535, 892,
+ 892, 892, 892, 892, 986, 892, 1523, 986, 1516, 0,
+ 1534, 1516, 892, 895, 1536, 1538, 1546, 1523, 0, 3491,
+ 1523, 1534, 3491, 895, 1534, 1536, 1538, 1546, 1536, 895,
+ 895, 895, 895, 895, 895, 895, 895, 0, 0, 986,
+ 895, 895, 895, 895, 895, 895, 895, 895, 895, 895,
+ 895, 895, 895, 895, 898, 898, 898, 898, 0, 898,
+ 898, 1539, 898, 0, 898, 898, 898, 898, 898, 898,
+ 898, 898, 1539, 0, 898, 1539, 898, 898, 898, 898,
+ 898, 898, 898, 898, 898, 0, 898, 898, 898, 898,
+
+ 898, 898, 898, 898, 898, 898, 898, 898, 898, 898,
+ 898, 898, 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, 900, 1545, 1551, 1571, 3544, 3628, 3685, 3544,
+ 3628, 3685, 900, 0, 1545, 1551, 1571, 1545, 900, 900,
+ 900, 900, 900, 900, 900, 900, 0, 0, 0, 900,
+ 900, 900, 900, 900, 900, 900, 900, 900, 900, 900,
+
+ 900, 900, 900, 902, 1550, 902, 1561, 0, 1576, 0,
+ 1580, 902, 902, 902, 902, 1550, 1570, 1561, 1550, 1576,
+ 1561, 1580, 902, 902, 902, 902, 902, 1570, 902, 3898,
+ 1570, 3913, 3898, 0, 3913, 902, 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, 903, 903, 903, 903, 903, 903, 903,
+ 903, 903, 903, 903, 903, 903, 903, 903, 903, 903,
+ 903, 903, 903, 903, 903, 903, 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, 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, 905, 1587, 1588, 1598,
+ 3928, 4106, 4109, 3928, 4106, 4109, 905, 0, 1587, 1588,
+ 1598, 1587, 905, 905, 905, 905, 905, 905, 905, 905,
+ 0, 0, 0, 905, 905, 905, 905, 905, 905, 905,
+ 905, 905, 905, 905, 905, 905, 905, 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, 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, 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, 907,
+ 907, 907, 907, 907, 907, 907, 907, 907, 907, 907,
+ 907, 907, 907, 907, 907, 907, 907, 910, 1589, 910,
+ 1599, 0, 1609, 0, 1616, 910, 910, 910, 910, 1589,
+ 1608, 1599, 1589, 1609, 1599, 1616, 910, 910, 910, 910,
+
+ 910, 1608, 910, 4112, 1608, 4186, 4112, 0, 4186, 910,
+ 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, 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,
+ 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, 912, 912, 912, 912, 912, 912, 912, 912,
+
+ 912, 912, 912, 912, 912, 912, 912, 912, 912, 912,
+ 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,
+ 917, 4192, 917, 4299, 4192, 1628, 4299, 1634, 917, 917,
+ 917, 917, 1002, 1002, 1002, 1002, 1628, 1615, 1634, 917,
+ 917, 917, 917, 917, 1002, 917, 1625, 1002, 1615, 0,
+ 1627, 1615, 917, 920, 1630, 1638, 1646, 1625, 0, 4302,
+
+ 1625, 1627, 4302, 920, 1627, 1630, 1638, 1646, 1630, 920,
+ 920, 920, 920, 920, 920, 920, 920, 0, 0, 1002,
+ 920, 920, 920, 920, 920, 920, 920, 920, 920, 920,
+ 920, 920, 920, 920, 924, 1636, 1649, 1653, 4305, 4328,
+ 4330, 4305, 4328, 4330, 924, 0, 1636, 1649, 1653, 1636,
+ 924, 924, 924, 924, 924, 924, 924, 924, 0, 0,
+ 0, 924, 924, 924, 924, 924, 924, 924, 924, 924,
+ 924, 924, 924, 924, 924, 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, 926, 926, 926, 926, 926,
+ 926, 926, 926, 926, 926, 926, 926, 926, 926, 926,
+ 926, 926, 926, 926, 926, 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,
+ 927, 927, 927, 927, 927, 927, 927, 927, 927, 927,
+ 927, 927, 927, 927, 927, 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, 929, 929, 929, 929,
+ 929, 929, 929, 929, 929, 929, 929, 929, 929, 929,
+ 929, 929, 929, 929, 929, 930, 1640, 930, 1642, 0,
+ 1657, 0, 1663, 930, 930, 930, 930, 1640, 1645, 1642,
+ 1640, 1657, 1642, 1663, 930, 930, 930, 930, 930, 1645,
+ 930, 4333, 1645, 4355, 4333, 0, 4355, 930, 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,
+ 931, 931, 931, 931, 931, 931, 931, 931, 931, 931,
+
+ 931, 931, 931, 931, 931, 931, 931, 931, 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, 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, 937, 1651,
+ 937, 1655, 0, 1664, 0, 1680, 937, 937, 937, 937,
+ 1651, 1659, 1655, 1651, 1664, 1655, 1680, 937, 937, 937,
+ 937, 937, 1659, 937, 4358, 1659, 4361, 4358, 0, 4361,
+ 937, 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, 941, 0, 941, 941, 941, 1662, 1666, 1685, 0,
+ 0, 941, 941, 941, 941, 0, 1669, 1662, 1666, 1685,
+ 1662, 1666, 941, 941, 941, 941, 941, 1669, 941, 4424,
+ 1669, 4438, 4424, 0, 4438, 941, 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, 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, 949, 949, 949,
+ 949, 949, 949, 949, 949, 949, 949, 949, 949, 949,
+ 949, 949, 949, 949, 949, 949, 950, 1681, 950, 1689,
+ 0, 1693, 0, 1697, 950, 950, 950, 950, 1681, 1699,
+ 1689, 1681, 1693, 1689, 1697, 950, 950, 950, 950, 950,
+
+ 1699, 950, 4590, 1699, 4592, 4590, 0, 4592, 950, 951,
+ 951, 951, 951, 951, 951, 951, 951, 951, 951, 951,
+ 951, 951, 951, 951, 951, 951, 951, 951, 951, 951,
+ 951, 951, 951, 951, 951, 951, 951, 951, 951, 951,
+ 951, 951, 951, 951, 951, 951, 951, 951, 951, 951,
+ 951, 951, 951, 951, 951, 951, 951, 951, 951, 954,
+ 1705, 1711, 1719, 1723, 4594, 4748, 0, 4594, 4748, 954,
+ 0, 1705, 1711, 1719, 1723, 954, 954, 954, 954, 954,
+ 954, 954, 954, 0, 0, 0, 954, 954, 954, 954,
+ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954,
+
+ 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, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961, 961, 961,
+ 961, 961, 961, 961, 961, 961, 961, 961, 961, 961,
+ 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, 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,
+
+ 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, 967,
+ 967, 967, 967, 967, 967, 967, 967, 967, 967, 967,
+ 967, 967, 967, 967, 967, 967, 967, 967, 967, 967,
+ 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,
+
+ 969, 4783, 969, 4830, 4783, 1695, 4830, 1696, 969, 969,
+ 969, 969, 1170, 1170, 1170, 1170, 1695, 1707, 1696, 969,
+ 969, 969, 969, 969, 1170, 969, 1710, 1170, 1707, 0,
+ 0, 1707, 969, 970, 1712, 1726, 1728, 1710, 0, 0,
+ 1710, 1695, 1696, 970, 0, 1712, 1726, 1728, 1712, 970,
+ 970, 970, 970, 970, 970, 970, 970, 0, 0, 1170,
+ 970, 970, 970, 970, 970, 970, 970, 970, 970, 970,
+ 970, 970, 970, 970, 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, 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, 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, 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, 975, 975, 975, 975, 975,
+ 975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
+ 975, 975, 975, 975, 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, 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, 978, 978, 978, 978, 978,
+ 978, 978, 978, 978, 978, 978, 978, 978, 978, 978,
+ 978, 978, 978, 978, 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, 987, 987, 987, 987, 987,
+ 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
+ 987, 987, 987, 987, 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, 995, 995, 995, 995, 995,
+ 995, 995, 995, 995, 995, 995, 995, 995, 995, 995,
+ 995, 995, 995, 995, 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, 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, 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, 1008, 1008, 1008, 1008, 1008, 1008,
+ 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
+ 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
+
+ 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
+ 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
+ 1008, 1008, 1008, 1008, 1012, 1012, 1012, 1012, 1012, 1012,
+ 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
+ 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
+ 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
+ 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
+ 1012, 1012, 1012, 1012, 1016, 1016, 1016, 1016, 1016, 1016,
+ 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
+ 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
+
+ 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
+ 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
+ 1016, 1016, 1016, 1016, 1020, 1020, 1020, 1020, 1020, 1020,
+ 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
+ 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
+ 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
+ 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020,
+ 1020, 1020, 1020, 1020, 1022, 1022, 1022, 1022, 1022, 1022,
+ 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
+ 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
+
+ 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
+ 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
+ 1022, 1022, 1022, 1022, 1033, 1033, 1033, 1033, 1033, 1033,
+ 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033,
+ 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033,
+ 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033,
+ 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033,
+ 1033, 1033, 1033, 1033, 1039, 1039, 1039, 1039, 1039, 1039,
+ 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
+ 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
+
+ 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
+ 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039, 1039,
+ 1039, 1039, 1039, 1039, 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,
+ 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
+ 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
+ 1042, 1042, 1042, 1042, 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, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043,
+ 1043, 1043, 1043, 1043, 1045, 4955, 1045, 5045, 4955, 1731,
+ 5045, 1735, 1045, 1045, 1045, 1045, 1185, 1185, 1185, 1185,
+ 1731, 1715, 1735, 1045, 1045, 1045, 1045, 1045, 1185, 1045,
+ 1724, 1185, 1715, 0, 1727, 1715, 1045, 1047, 1729, 1740,
+ 1742, 1724, 0, 5077, 1724, 1727, 5077, 1047, 1727, 1729,
+ 1740, 1742, 1729, 1047, 1047, 1047, 1047, 1047, 1047, 1047,
+ 1047, 0, 0, 1185, 1047, 1047, 1047, 1047, 1047, 1047,
+ 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 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,
+ 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051,
+ 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1053, 1053,
+ 1053, 1053, 0, 1053, 1053, 1730, 1053, 0, 1053, 1053,
+ 1053, 1053, 1053, 1053, 1053, 1053, 1730, 0, 1053, 1730,
+ 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 0,
+ 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
+ 1053, 1053, 1053, 1053, 1053, 1053, 1054, 5107, 1054, 5121,
+
+ 5107, 1746, 5121, 1756, 1054, 1054, 1054, 1054, 1186, 1186,
+ 1186, 1186, 1746, 1737, 1756, 1054, 1054, 1054, 1054, 1054,
+ 1186, 1054, 1743, 1186, 1737, 0, 1755, 1737, 1054, 1061,
+ 1758, 1760, 1762, 1743, 0, 5123, 1743, 1755, 5123, 1061,
+ 1755, 1758, 1760, 1762, 1758, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 0, 0, 1186, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061,
+ 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, 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,
+ 1065, 1761, 1065, 1764, 0, 1798, 0, 1812, 1065, 1065,
+ 1065, 1065, 1761, 1771, 1764, 1761, 1798, 1764, 1812, 1065,
+ 1065, 1065, 1065, 1065, 1771, 1065, 5125, 1771, 5139, 5125,
+ 0, 5139, 1065, 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, 1071, 1071, 1071, 1071, 1071, 1071,
+ 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071,
+
+ 1071, 1071, 1071, 1073, 1775, 1073, 1783, 0, 1815, 0,
+ 1818, 1073, 1073, 1073, 1073, 1775, 1791, 1783, 1775, 1815,
+ 1783, 1818, 1073, 1073, 1073, 1073, 1073, 1791, 1073, 0,
+ 1791, 0, 0, 0, 0, 1073, 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, 1074, 1074, 1074, 1074, 1074,
+ 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074,
+ 1074, 1074, 1074, 1074, 1074, 1074, 1075, 0, 0, 0,
+ 1821, 0, 0, 0, 0, 0, 1075, 1639, 1639, 1639,
+
+ 1639, 1821, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075,
+ 0, 0, 1639, 1075, 1075, 1075, 1075, 1075, 1075, 1075,
+ 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1076, 1796, 1076,
+ 1823, 0, 1827, 0, 1831, 1076, 1076, 1076, 1076, 1796,
+ 1800, 1823, 1796, 1827, 1639, 1831, 1076, 1076, 1076, 1076,
+ 1076, 1800, 1076, 0, 1800, 0, 0, 0, 0, 1076,
+ 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,
+ 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, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+ 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083,
+ 1084, 1811, 1841, 1843, 0, 0, 0, 0, 0, 0,
+ 1084, 0, 1811, 1841, 1843, 1811, 1084, 1084, 1084, 1084,
+ 1084, 1084, 1084, 1084, 0, 0, 0, 1084, 1084, 1084,
+ 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084,
+
+ 1084, 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, 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, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+ 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086,
+
+ 1086, 1089, 1813, 1089, 1816, 0, 1848, 0, 1856, 1089,
+ 1089, 1089, 1089, 1813, 1819, 1816, 1813, 1848, 1816, 1856,
+ 1089, 1089, 1089, 1089, 1089, 1819, 1089, 0, 1819, 0,
+ 0, 0, 0, 1089, 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, 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, 1091, 1091, 1091, 1091,
+ 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091, 1091,
+ 1091, 1091, 1091, 1091, 1095, 1095, 1095, 1095, 0, 0,
+ 0, 1824, 1095, 0, 0, 1095, 1095, 1095, 1095, 1095,
+ 1095, 1095, 1824, 0, 1095, 1824, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1095, 0, 1095, 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, 1097, 0, 1097,
+ 0, 0, 1857, 0, 1864, 1097, 1097, 1097, 1097, 1415,
+ 1415, 1415, 1415, 1857, 1830, 1864, 1097, 1097, 1097, 1097,
+ 1097, 1415, 1097, 1840, 1415, 1830, 0, 1842, 1830, 1097,
+ 1100, 1845, 1867, 1868, 1840, 0, 0, 1840, 1842, 0,
+ 1100, 1842, 1845, 1867, 1868, 1845, 1100, 1100, 1100, 1100,
+ 1100, 1100, 1100, 1100, 0, 0, 1415, 1100, 1100, 1100,
+ 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100, 1100,
+ 1100, 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, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
+ 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103,
+ 1103, 1104, 1850, 1104, 1853, 0, 1873, 0, 1874, 1104,
+ 1104, 1104, 1104, 1850, 1859, 1853, 1850, 1873, 1853, 1874,
+ 1104, 1104, 1104, 1104, 1104, 1859, 1104, 0, 1859, 0,
+ 0, 0, 0, 1104, 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, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
+ 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105,
+ 1105, 1105, 1105, 1105, 1108, 1861, 1882, 1886, 0, 0,
+ 0, 0, 0, 0, 1108, 0, 1861, 1882, 1886, 1861,
+ 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 0, 0,
+ 0, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
+ 1108, 1108, 1108, 1108, 1108, 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, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+
+ 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
+ 1109, 1109, 1109, 1109, 1109, 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, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 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, 1115, 1115, 1115,
+
+ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
+ 1115, 1115, 1115, 1115, 1115, 1116, 1866, 1116, 1870, 0,
+ 1898, 0, 1901, 1116, 1116, 1116, 1116, 1866, 1872, 1870,
+ 1866, 1898, 1870, 1901, 1116, 1116, 1116, 1116, 1116, 1872,
+ 1116, 0, 1872, 0, 0, 0, 0, 1116, 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, 1122, 1876,
+
+ 1914, 1916, 0, 0, 0, 0, 0, 0, 1122, 0,
+ 1876, 1914, 1916, 1876, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 0, 0, 0, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 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, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
+ 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1126,
+ 1877, 1126, 1881, 1919, 1919, 1919, 1919, 1126, 1126, 1126,
+
+ 1126, 1877, 1903, 1881, 1877, 1919, 1881, 1921, 1126, 1126,
+ 1126, 1126, 1126, 1903, 1126, 0, 1903, 0, 1921, 0,
+ 0, 1126, 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, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
+ 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
+ 1127, 1127, 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, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 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, 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, 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, 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, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1136, 1906, 1936, 1937, 0, 0, 0, 0,
+ 0, 0, 1136, 0, 1906, 1936, 1937, 1906, 1136, 1136,
+ 1136, 1136, 1136, 1136, 1136, 1136, 0, 0, 0, 1136,
+
+ 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136,
+ 1136, 1136, 1136, 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, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
+ 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
+ 1137, 1137, 1137, 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, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+
+ 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 1141, 1912, 1141, 1915, 0, 1954, 0,
+ 1959, 1141, 1141, 1141, 1141, 1912, 1923, 1915, 1912, 1954,
+ 1915, 1959, 1141, 1141, 1141, 1141, 1141, 1923, 1141, 0,
+ 1923, 0, 0, 0, 0, 1141, 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, 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, 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, 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, 1147, 1147,
+ 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,
+ 1147, 1147, 1147, 1147, 1147, 1147, 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, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 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, 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, 1150, 1150,
+ 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150, 1150,
+ 1150, 1150, 1150, 1150, 1150, 1150, 1151, 0, 0, 0,
+ 1960, 0, 0, 0, 0, 0, 1151, 1641, 1641, 1641,
+ 1641, 1960, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+ 0, 0, 1641, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+ 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1153, 1931, 1153,
+ 1967, 0, 1970, 0, 1972, 1153, 1153, 1153, 1153, 1931,
+
+ 1939, 1967, 1931, 1970, 1641, 1972, 1153, 1153, 1153, 1153,
+ 1153, 1939, 1153, 0, 1939, 0, 0, 0, 0, 1153,
+ 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,
+ 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,
+ 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, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
+ 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
+ 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, 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,
+ 1159, 0, 0, 0, 1974, 0, 0, 0, 0, 0,
+ 1159, 1656, 1656, 1656, 1656, 1974, 1159, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 0, 0, 1656, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
+ 1159, 1161, 1942, 1161, 1987, 0, 2002, 0, 2004, 1161,
+ 1161, 1161, 1161, 1942, 1953, 1987, 1942, 2002, 1656, 2004,
+ 1161, 1161, 1161, 1161, 1161, 1953, 1161, 0, 1953, 0,
+ 0, 0, 0, 1161, 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, 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, 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, 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,
+ 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
+ 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
+ 1165, 1165, 1165, 1165, 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, 1166, 1166, 1166, 1166,
+ 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166,
+ 1166, 1166, 1166, 1166, 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, 1167, 1167, 1167, 1167, 1167,
+ 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167,
+ 1167, 1167, 1167, 1167, 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, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 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, 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, 1187, 1187, 1187, 1187,
+ 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+ 1187, 1187, 1187, 1187, 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, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
+ 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
+ 1200, 1200, 1200, 1200, 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, 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,
+ 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
+ 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
+ 1205, 1205, 1205, 1205, 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, 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, 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, 1221, 1221, 1221, 1221, 1221,
+ 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221,
+ 1221, 1221, 1221, 1221, 1225, 0, 0, 0, 2021, 0,
+
+ 0, 0, 1225, 0, 1225, 1658, 1658, 1658, 1658, 2021,
+ 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 0, 0,
+ 1658, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225,
+ 1225, 1225, 1225, 1225, 1225, 1226, 1957, 1226, 2036, 0,
+ 2064, 0, 2082, 1226, 1226, 1226, 1226, 1957, 1961, 2036,
+ 1957, 2064, 1658, 2082, 1226, 1226, 1226, 1226, 1226, 1961,
+ 1226, 0, 1961, 0, 0, 0, 0, 1226, 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, 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, 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, 1229, 1229, 1229, 1229, 1229, 1229,
+ 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229,
+ 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1231, 1964,
+ 1231, 1969, 0, 2088, 0, 2094, 1231, 1231, 1231, 1231,
+ 1964, 1971, 1969, 1964, 2088, 1969, 2094, 1231, 1231, 1231,
+ 1231, 1231, 1971, 1231, 0, 1971, 0, 0, 0, 0,
+
+ 1231, 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,
+ 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232,
+ 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232,
+ 1232, 1236, 0, 0, 0, 2101, 0, 0, 0, 0,
+ 0, 1236, 1660, 1660, 1660, 1660, 2101, 1236, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 0, 0, 1660, 1236, 1236,
+ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236,
+ 1236, 1236, 1237, 1973, 1237, 2105, 0, 2107, 0, 2110,
+
+ 1237, 1237, 1237, 1237, 1973, 1976, 2105, 1973, 2107, 1660,
+ 2110, 1237, 1237, 1237, 1237, 1237, 1976, 1237, 0, 1976,
+ 0, 0, 0, 0, 1237, 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, 1241, 1241, 1241, 1241, 0,
+ 1241, 1241, 1982, 1241, 0, 1241, 1241, 1241, 1241, 1241,
+ 1241, 1241, 1241, 1982, 0, 1241, 1982, 1241, 1241, 1241,
+
+ 1241, 1241, 1241, 1241, 1241, 1241, 0, 1241, 1241, 1241,
+ 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241,
+ 1241, 1241, 1241, 1242, 1986, 1242, 1988, 0, 2126, 0,
+ 2130, 1242, 1242, 1242, 1242, 1986, 1990, 1988, 1986, 2126,
+ 1988, 2130, 1242, 1242, 1242, 1242, 1242, 1990, 1242, 0,
+ 1990, 0, 0, 0, 0, 1242, 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, 1251, 1251,
+ 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251,
+
+ 1251, 1251, 1251, 1251, 1251, 1251, 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, 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, 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, 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, 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, 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, 1261, 2000, 1261, 2005,
+ 0, 2133, 0, 2138, 1261, 1261, 1261, 1261, 2000, 2020,
+ 2005, 2000, 2133, 2005, 2138, 1261, 1261, 1261, 1261, 1261,
+ 2020, 1261, 0, 2020, 0, 0, 0, 0, 1261, 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, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262,
+ 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1266,
+ 2029, 2142, 2144, 0, 0, 0, 0, 0, 0, 1266,
+
+ 0, 2029, 2142, 2144, 2029, 1266, 1266, 1266, 1266, 1266,
+ 1266, 1266, 1266, 0, 0, 0, 1266, 1266, 1266, 1266,
+ 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266,
+ 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,
+ 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271,
+ 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271,
+
+ 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271,
+ 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271,
+ 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271,
+ 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,
+ 1274, 2032, 1274, 2037, 0, 2148, 0, 2149, 1274, 1274,
+ 1274, 1274, 2032, 2052, 2037, 2032, 2148, 2037, 2149, 1274,
+
+ 1274, 1274, 1274, 1274, 2052, 1274, 0, 2052, 0, 0,
+ 0, 0, 1274, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
+ 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
+ 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
+ 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
+ 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
+ 1275, 1275, 1275, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
+ 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
+ 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
+ 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
+
+ 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281,
+ 1281, 1281, 1281, 1282, 2065, 2155, 2160, 0, 0, 0,
+ 0, 0, 0, 1282, 0, 2065, 2155, 2160, 2065, 1282,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 0, 0, 0,
+ 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282, 1282,
+ 1282, 1282, 1282, 1282, 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, 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, 1286, 2071, 1286, 2074, 0, 2162,
+ 0, 2163, 1286, 1286, 1286, 1286, 2071, 2080, 2074, 2071,
+ 2162, 2074, 2163, 1286, 1286, 1286, 1286, 1286, 2080, 1286,
+ 0, 2080, 0, 0, 0, 0, 1286, 1289, 1289, 1289,
+ 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289,
+ 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289,
+ 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289,
+ 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289,
+ 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1292, 1292, 1292,
+ 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
+
+ 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
+ 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
+ 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1292,
+ 1292, 1292, 1292, 1292, 1292, 1292, 1292, 1296, 2084, 0,
+ 2165, 0, 0, 0, 0, 1296, 0, 1296, 0, 2084,
+ 1920, 2165, 2084, 1296, 1296, 1296, 1296, 1296, 1296, 1296,
+ 1296, 1920, 0, 0, 1296, 1296, 1296, 1296, 1296, 1296,
+ 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1297, 0,
+ 0, 0, 2175, 0, 0, 0, 1920, 0, 1297, 1851,
+ 1851, 1851, 1851, 2175, 1297, 1297, 1297, 1297, 1297, 1297,
+
+ 1297, 1297, 0, 0, 1851, 1297, 1297, 1297, 1297, 1297,
+ 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1298,
+ 2090, 1298, 2177, 0, 2182, 0, 2187, 1298, 1298, 1298,
+ 1298, 2090, 2093, 2177, 2090, 2182, 1851, 2187, 1298, 1298,
+ 1298, 1298, 1298, 2093, 1298, 0, 2093, 0, 0, 0,
+ 0, 1298, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+ 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300,
+
+ 1300, 1300, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301,
+ 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301,
+ 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301,
+ 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301,
+ 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301,
+ 1301, 1301, 1303, 2095, 1303, 2097, 0, 2199, 0, 2204,
+ 1303, 1303, 1303, 1303, 2095, 2103, 2097, 2095, 2199, 2097,
+ 2204, 1303, 1303, 1303, 1303, 1303, 2103, 1303, 0, 2103,
+ 0, 0, 0, 0, 1303, 1304, 1304, 1304, 1304, 1304,
+ 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
+
+ 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
+ 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
+ 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304,
+ 1304, 1304, 1304, 1304, 1304, 1307, 0, 0, 0, 2225,
+ 0, 0, 0, 0, 0, 1307, 1860, 1860, 1860, 1860,
+ 2225, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 0,
+ 0, 1860, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307,
+ 1307, 1307, 1307, 1307, 1307, 1307, 1308, 2108, 1308, 2228,
+ 0, 2231, 0, 2234, 1308, 1308, 1308, 1308, 2108, 2112,
+ 2228, 2108, 2231, 1860, 2234, 1308, 1308, 1308, 1308, 1308,
+
+ 2112, 1308, 0, 2112, 0, 0, 0, 0, 1308, 1311,
+ 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311,
+ 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311,
+ 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311,
+ 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311,
+ 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1313,
+ 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313,
+ 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313,
+ 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313,
+ 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313,
+
+ 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1314,
+ 2117, 1314, 2120, 0, 2251, 0, 2261, 1314, 1314, 1314,
+ 1314, 2117, 2124, 2120, 2117, 2251, 2120, 2261, 1314, 1314,
+ 1314, 1314, 1314, 2124, 1314, 0, 2124, 0, 0, 0,
+ 0, 1314, 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, 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, 1328, 2131, 1328, 2137, 0, 2282, 0, 2286,
+ 1328, 1328, 1328, 1328, 2131, 2141, 2137, 2131, 2282, 2137,
+ 2286, 1328, 1328, 1328, 1328, 1328, 2141, 1328, 0, 2141,
+ 0, 0, 0, 0, 1328, 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, 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,
+ 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, 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, 1336, 1336, 1336, 1336, 1336, 1336, 1336,
+ 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336,
+ 1336, 1336, 1336, 1336, 1336, 1337, 2147, 1337, 2151, 0,
+ 2310, 0, 2322, 1337, 1337, 1337, 1337, 2147, 2154, 2151,
+ 2147, 2310, 2151, 2322, 1337, 1337, 1337, 1337, 1337, 2154,
+ 1337, 0, 2154, 0, 0, 0, 0, 1337, 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, 1341, 2164,
+ 2339, 2352, 0, 0, 0, 0, 0, 0, 1341, 0,
+ 2164, 2339, 2352, 2164, 1341, 1341, 1341, 1341, 1341, 1341,
+ 1341, 1341, 0, 0, 0, 1341, 1341, 1341, 1341, 1341,
+ 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 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, 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, 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, 1347,
+ 1347, 1347, 1347, 1347, 1347, 1347, 1347, 1347, 1347, 1347,
+ 1347, 1347, 1347, 1347, 1347, 1347, 1347, 1347, 1347, 1348,
+ 2167, 1348, 2173, 0, 2375, 0, 2393, 1348, 1348, 1348,
+ 1348, 2167, 2176, 2173, 2167, 2375, 2173, 2393, 1348, 1348,
+ 1348, 1348, 1348, 2176, 1348, 0, 2176, 0, 0, 0,
+ 0, 1348, 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, 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, 1354, 2181, 2406, 2407, 0, 0, 0, 0,
+ 0, 0, 1354, 0, 2181, 2406, 2407, 2181, 1354, 1354,
+ 1354, 1354, 1354, 1354, 1354, 1354, 0, 0, 0, 1354,
+ 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354,
+ 1354, 1354, 1354, 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, 1358, 2186, 1358, 2194, 0, 2420, 0,
+ 2422, 1358, 1358, 1358, 1358, 2186, 2202, 2194, 2186, 2420,
+ 2194, 2422, 1358, 1358, 1358, 1358, 1358, 2202, 1358, 0,
+ 2202, 0, 0, 0, 0, 1358, 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, 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, 1363, 1363, 1363, 1363, 1363,
+ 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363,
+ 1363, 1363, 1363, 1363, 1363, 1363, 1364, 0, 0, 0,
+ 2427, 0, 0, 0, 0, 0, 1364, 1879, 1879, 1879,
+ 1879, 2427, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 0, 0, 1879, 1364, 1364, 1364, 1364, 1364, 1364, 1364,
+ 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1366, 2211, 1366,
+
+ 2440, 0, 2447, 0, 2448, 1366, 1366, 1366, 1366, 2211,
+ 2224, 2440, 2211, 2447, 1879, 2448, 1366, 1366, 1366, 1366,
+ 1366, 2224, 1366, 0, 2224, 0, 0, 0, 0, 1366,
+ 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, 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,
+ 1373, 1373, 1373, 1373, 0, 1373, 1373, 2229, 1373, 0,
+ 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 2229, 0,
+
+ 1373, 2229, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373,
+ 1373, 0, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373,
+ 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1374, 2233,
+ 1374, 2236, 0, 2450, 0, 2456, 1374, 1374, 1374, 1374,
+ 2233, 2250, 2236, 2233, 2450, 2236, 2456, 1374, 1374, 1374,
+ 1374, 1374, 2250, 1374, 0, 2250, 0, 0, 0, 0,
+ 1374, 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, 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, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
+ 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381,
+ 1381, 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, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
+ 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
+ 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
+ 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
+ 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383,
+ 1383, 1384, 0, 0, 0, 2461, 0, 0, 0, 0,
+ 0, 1384, 2122, 2122, 2122, 2122, 2461, 1384, 1384, 1384,
+ 1384, 1384, 1384, 1384, 1384, 0, 0, 2122, 1384, 1384,
+ 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
+
+ 1384, 1384, 1386, 2258, 1386, 2463, 0, 2465, 0, 2466,
+ 1386, 1386, 1386, 1386, 2258, 2260, 2463, 2258, 2465, 2122,
+ 2466, 1386, 1386, 1386, 1386, 1386, 2260, 1386, 0, 2260,
+ 0, 0, 0, 0, 1386, 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, 1387, 1387, 1387, 1387, 1387, 1387,
+ 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387, 1387,
+ 1387, 1387, 1387, 1387, 1387, 1388, 2270, 1388, 2281, 0,
+ 2472, 0, 2474, 1388, 1388, 1388, 1388, 2270, 2287, 2281,
+
+ 2270, 2472, 2281, 2474, 1388, 1388, 1388, 1388, 1388, 2287,
+ 1388, 0, 2287, 0, 0, 0, 0, 1388, 1389, 1389,
+ 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389,
+ 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389,
+ 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389,
+ 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389,
+ 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1389, 1392, 2292,
+ 2475, 2481, 0, 0, 0, 0, 0, 0, 1392, 0,
+ 2292, 2475, 2481, 2292, 1392, 1392, 1392, 1392, 1392, 1392,
+ 1392, 1392, 0, 0, 0, 1392, 1392, 1392, 1392, 1392,
+
+ 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1392, 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,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393,
+ 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 1393, 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, 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, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398,
+ 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1398, 1399,
+ 2296, 1399, 2309, 0, 2484, 0, 2487, 1399, 1399, 1399,
+ 1399, 2296, 2312, 2309, 2296, 2484, 2309, 2487, 1399, 1399,
+ 1399, 1399, 1399, 2312, 1399, 0, 2312, 0, 0, 0,
+ 0, 1399, 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, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403,
+ 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403,
+ 1403, 1403, 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, 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, 1412, 1412, 1412,
+ 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412, 1412,
+ 1412, 1412, 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,
+ 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414,
+ 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414, 1414,
+ 1414, 1414, 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, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
+ 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425, 1425,
+ 1425, 1425, 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, 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, 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, 1432, 1432, 1432, 1432, 0, 2321, 0, 2338,
+ 0, 2350, 1432, 1432, 0, 2351, 2361, 1432, 2321, 1432,
+ 2338, 2321, 2350, 2338, 2374, 2350, 2351, 2361, 2380, 2351,
+ 2361, 0, 2395, 2401, 2409, 2374, 0, 0, 2374, 2380,
+ 0, 0, 2380, 2395, 2401, 2409, 2395, 2401, 2409, 1432,
+ 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,
+ 1436, 2411, 2489, 2495, 0, 0, 0, 0, 0, 0,
+ 1436, 0, 2411, 2489, 2495, 2411, 1436, 1436, 1436, 1436,
+ 1436, 1436, 1436, 1436, 0, 0, 0, 1436, 1436, 1436,
+ 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436,
+ 1436, 1437, 2419, 2500, 2501, 0, 0, 0, 0, 0,
+ 0, 1437, 0, 2419, 2500, 2501, 2419, 1437, 1437, 1437,
+
+ 1437, 1437, 1437, 1437, 1437, 0, 0, 0, 1437, 1437,
+ 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437, 1437,
+ 1437, 1437, 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, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441,
+ 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441, 1441,
+ 1441, 1441, 1443, 2424, 2505, 2510, 0, 0, 0, 0,
+ 0, 0, 1443, 0, 2424, 2505, 2510, 2424, 1443, 1443,
+ 1443, 1443, 1443, 1443, 1443, 1443, 0, 0, 0, 1443,
+
+ 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443, 1443,
+ 1443, 1443, 1443, 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, 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, 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, 1447, 2426, 2523, 2527, 0, 0, 0,
+ 0, 0, 0, 1447, 0, 2426, 2523, 2527, 2426, 1447,
+ 1447, 1447, 1447, 1447, 1447, 1447, 1447, 0, 0, 0,
+ 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447, 1447,
+ 1447, 1447, 1447, 1447, 1449, 2428, 2533, 2546, 0, 0,
+ 0, 0, 0, 0, 1449, 0, 2428, 2533, 2546, 2428,
+ 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 0, 0,
+ 0, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449, 1449,
+ 1449, 1449, 1449, 1449, 1449, 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, 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, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+ 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463, 1463,
+ 1463, 1463, 1463, 1463, 1463, 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, 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, 1469, 1469, 1469, 1469,
+ 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469, 1469,
+ 1469, 1469, 1469, 1469, 1469, 1471, 2429, 1471, 2439, 0,
+
+ 2571, 0, 2574, 1471, 1471, 1471, 1471, 2429, 2446, 2439,
+ 2429, 2571, 2439, 2574, 1471, 1471, 1471, 1471, 1471, 2446,
+ 1471, 0, 2446, 0, 0, 0, 0, 1471, 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, 1473, 0,
+ 0, 0, 2586, 0, 0, 0, 0, 0, 1473, 2139,
+ 2139, 2139, 2139, 2586, 1473, 1473, 1473, 1473, 1473, 1473,
+
+ 1473, 1473, 0, 0, 2139, 1473, 1473, 1473, 1473, 1473,
+ 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1473, 1474,
+ 2452, 1474, 2604, 0, 2615, 0, 2638, 1474, 1474, 1474,
+ 1474, 2452, 2455, 2604, 2452, 2615, 2139, 2638, 1474, 1474,
+ 1474, 1474, 1474, 2455, 1474, 0, 2455, 0, 0, 0,
+ 0, 1474, 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, 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, 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, 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, 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, 1493, 2460, 2653, 2665, 0, 0, 0, 0,
+ 1493, 0, 1493, 0, 2460, 2653, 2665, 2460, 1493, 1493,
+ 1493, 1493, 1493, 1493, 1493, 1493, 0, 0, 0, 1493,
+ 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1493,
+ 1493, 1493, 1493, 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, 1495, 2462, 1495, 2464, 0, 2675, 0,
+
+ 2677, 1495, 1495, 1495, 1495, 2462, 2468, 2464, 2462, 2675,
+ 2464, 2677, 1495, 1495, 1495, 1495, 1495, 2468, 1495, 0,
+ 2468, 0, 0, 0, 0, 1495, 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, 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, 1498, 1498, 1498,
+ 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498,
+ 1498, 1498, 1498, 1498, 1498, 1498, 1500, 2471, 1500, 2473,
+ 0, 2688, 0, 2694, 1500, 1500, 1500, 1500, 2471, 2477,
+ 2473, 2471, 2688, 2473, 2694, 1500, 1500, 1500, 1500, 1500,
+ 2477, 1500, 0, 2477, 0, 0, 0, 0, 1500, 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, 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, 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, 1508,
+ 0, 0, 0, 2698, 0, 0, 0, 0, 0, 1508,
+ 2146, 2146, 2146, 2146, 2698, 1508, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 0, 0, 2146, 1508, 1508, 1508, 1508,
+ 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1508,
+
+ 1509, 2480, 1509, 2715, 0, 2741, 0, 2749, 1509, 1509,
+ 1509, 1509, 2480, 2485, 2715, 2480, 2741, 2146, 2749, 1509,
+ 1509, 1509, 1509, 1509, 2485, 1509, 0, 2485, 0, 0,
+ 0, 0, 1509, 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, 1510, 1510, 1510, 1510, 1510, 1510,
+ 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510, 1510,
+ 1510, 1510, 1510, 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, 1512, 1512, 1512, 1512, 1512, 1512,
+ 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512, 1512,
+ 1512, 1512, 1512, 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, 1514, 1514, 1514, 1514, 1514,
+ 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1514,
+ 1514, 1514, 1514, 1515, 2488, 1515, 2491, 0, 2754, 0,
+ 2766, 1515, 1515, 1515, 1515, 2488, 2499, 2491, 2488, 2754,
+
+ 2491, 2766, 1515, 1515, 1515, 1515, 1515, 2499, 1515, 0,
+ 2499, 0, 0, 0, 0, 1515, 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, 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, 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, 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, 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, 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, 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, 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, 1529, 2502, 1529, 2507,
+ 0, 2779, 0, 2785, 1529, 1529, 1529, 1529, 2502, 2517,
+ 2507, 2502, 2779, 2507, 2785, 1529, 1529, 1529, 1529, 1529,
+ 2517, 1529, 0, 2517, 0, 0, 0, 0, 1529, 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, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
+ 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1531,
+ 0, 0, 0, 2787, 0, 0, 0, 0, 0, 1531,
+ 2150, 2150, 2150, 2150, 2787, 1531, 1531, 1531, 1531, 1531,
+ 1531, 1531, 1531, 0, 0, 2150, 1531, 1531, 1531, 1531,
+ 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531, 1531,
+ 1532, 2540, 1532, 2788, 0, 2795, 0, 2797, 1532, 1532,
+
+ 1532, 1532, 2540, 2544, 2788, 2540, 2795, 2150, 2797, 1532,
+ 1532, 1532, 1532, 1532, 2544, 1532, 0, 2544, 0, 0,
+ 0, 0, 1532, 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, 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,
+
+ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
+ 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
+ 1541, 1541, 1541, 1542, 0, 0, 0, 2799, 0, 0,
+ 0, 0, 0, 1542, 2476, 2476, 2476, 2476, 2799, 1542,
+ 1542, 1542, 1542, 1542, 1542, 1542, 1542, 0, 0, 2476,
+ 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1542,
+ 1542, 1542, 1542, 1542, 1544, 2545, 1544, 2801, 0, 2802,
+ 0, 2809, 1544, 1544, 1544, 1544, 2545, 2549, 2801, 2545,
+ 2802, 2476, 2809, 1544, 1544, 1544, 1544, 1544, 2549, 1544,
+ 0, 2549, 0, 0, 0, 0, 1544, 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, 1547, 1547,
+ 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547, 1547,
+ 1547, 1547, 1547, 1547, 1547, 1547, 1547, 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, 1552, 2567, 2811,
+
+ 2813, 0, 0, 0, 0, 1552, 0, 1552, 0, 2567,
+ 2811, 2813, 2567, 1552, 1552, 1552, 1552, 1552, 1552, 1552,
+ 1552, 0, 0, 0, 1552, 1552, 1552, 1552, 1552, 1552,
+ 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1552, 1553, 2570,
+ 1553, 2572, 0, 2819, 0, 2823, 1553, 1553, 1553, 1553,
+ 2570, 2581, 2572, 2570, 2819, 2572, 2823, 1553, 1553, 1553,
+ 1553, 1553, 2581, 1553, 0, 2581, 0, 0, 0, 0,
+ 1553, 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, 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, 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, 1558, 2588, 1558, 2589, 0, 2831, 0, 2836, 1558,
+ 1558, 1558, 1558, 2588, 2591, 2589, 2588, 2831, 2589, 2836,
+ 1558, 1558, 1558, 1558, 1558, 2591, 1558, 0, 2591, 0,
+
+ 0, 0, 0, 1558, 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, 1559, 1559, 1559, 1559, 1559, 1559, 1559,
+ 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559, 1559,
+ 1559, 1559, 1559, 1559, 1562, 2603, 2840, 2844, 0, 0,
+ 0, 0, 0, 0, 1562, 0, 2603, 2840, 2844, 2603,
+ 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 0, 0,
+ 0, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562, 1562,
+ 1562, 1562, 1562, 1562, 1562, 1563, 2606, 1563, 2614, 0,
+
+ 2868, 0, 2893, 1563, 1563, 1563, 1563, 2606, 2625, 2614,
+ 2606, 2868, 2614, 2893, 1563, 1563, 1563, 1563, 1563, 2625,
+ 1563, 0, 2625, 0, 0, 0, 0, 1563, 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, 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, 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, 1568, 1568, 1568, 1568, 1568, 1568, 1568,
+ 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1568, 1569, 2652,
+ 1569, 2664, 0, 2903, 0, 2909, 1569, 1569, 1569, 1569,
+ 2652, 2667, 2664, 2652, 2903, 2664, 2909, 1569, 1569, 1569,
+ 1569, 1569, 2667, 1569, 0, 2667, 0, 0, 0, 0,
+ 1569, 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, 1581, 2674, 2929, 2936, 0, 0, 0, 0, 1581,
+ 0, 1581, 0, 2674, 2929, 2936, 2674, 1581, 1581, 1581,
+ 1581, 1581, 1581, 1581, 1581, 0, 0, 0, 1581, 1581,
+ 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581, 1581,
+ 1581, 1581, 1582, 2679, 1582, 2687, 0, 2937, 0, 2961,
+ 1582, 1582, 1582, 1582, 2679, 2690, 2687, 2679, 2937, 2687,
+ 2961, 1582, 1582, 1582, 1582, 1582, 2690, 1582, 0, 2690,
+ 0, 0, 0, 0, 1582, 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,
+ 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, 1584, 1584, 1584, 1584, 1584,
+ 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584,
+ 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584,
+ 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584,
+ 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584, 1584,
+ 1584, 1584, 1584, 1584, 1584, 1586, 2693, 1586, 2696, 0,
+ 2964, 0, 2967, 1586, 1586, 1586, 1586, 2693, 2699, 2696,
+
+ 2693, 2964, 2696, 2967, 1586, 1586, 1586, 1586, 1586, 2699,
+ 1586, 0, 2699, 0, 0, 0, 0, 1586, 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, 1590,
+ 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590,
+ 1590, 1590, 1590, 1590, 1590, 1590, 1590, 1590, 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,
+
+ 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592,
+ 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1592, 1593, 2702,
+ 2969, 2979, 0, 0, 0, 0, 0, 0, 1593, 0,
+ 2702, 2969, 2979, 2702, 1593, 1593, 1593, 1593, 1593, 1593,
+ 1593, 1593, 0, 0, 0, 1593, 1593, 1593, 1593, 1593,
+ 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1593, 1594,
+ 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
+ 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
+ 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
+ 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594,
+
+ 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1594, 1595,
+ 2714, 1595, 2717, 0, 2986, 0, 3018, 1595, 1595, 1595,
+ 1595, 2714, 2737, 2717, 2714, 2986, 2717, 3018, 1595, 1595,
+ 1595, 1595, 1595, 2737, 1595, 0, 2737, 0, 0, 0,
+ 0, 1595, 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, 1600, 2752, 3037, 3051, 0, 0, 0, 0,
+
+ 0, 0, 1600, 0, 2752, 3037, 3051, 2752, 1600, 1600,
+ 1600, 1600, 1600, 1600, 1600, 1600, 0, 0, 0, 1600,
+ 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600, 1600,
+ 1600, 1600, 1600, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
+ 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
+ 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
+ 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
+ 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601, 1601,
+ 1601, 1601, 1601, 1604, 1604, 1604, 1604, 1604, 1604, 1604,
+ 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604,
+
+ 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604,
+ 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604,
+ 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604, 1604,
+ 1604, 1604, 1604, 1606, 1606, 1606, 1606, 1606, 1606, 1606,
+ 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606,
+ 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606,
+ 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606,
+ 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606, 1606,
+ 1606, 1606, 1606, 1607, 2760, 1607, 2765, 0, 3059, 0,
+ 3061, 1607, 1607, 1607, 1607, 2760, 2770, 2765, 2760, 3059,
+
+ 2765, 3061, 1607, 1607, 1607, 1607, 1607, 2770, 1607, 0,
+ 2770, 0, 0, 0, 0, 1607, 1613, 1613, 1613, 1613,
+ 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+ 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+ 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+ 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613, 1613,
+ 1613, 1613, 1613, 1613, 1613, 1613, 1617, 2778, 3069, 3083,
+ 0, 0, 0, 0, 1617, 0, 1617, 0, 2778, 3069,
+ 3083, 2778, 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1617,
+ 0, 0, 0, 1617, 1617, 1617, 1617, 1617, 1617, 1617,
+
+ 1617, 1617, 1617, 1617, 1617, 1617, 1617, 1619, 2781, 1619,
+ 2784, 0, 3095, 0, 3120, 1619, 1619, 1619, 1619, 2781,
+ 2786, 2784, 2781, 3095, 2784, 3120, 1619, 1619, 1619, 1619,
+ 1619, 2786, 1619, 0, 2786, 0, 0, 0, 0, 1619,
+ 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, 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,
+ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
+
+ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
+ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
+ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
+ 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621, 1621,
+ 1623, 2790, 1623, 2794, 0, 3122, 0, 3126, 1623, 1623,
+ 1623, 1623, 2790, 2796, 2794, 2790, 3122, 2794, 3126, 1623,
+ 1623, 1623, 1623, 1623, 2796, 1623, 0, 2796, 0, 0,
+ 0, 0, 1623, 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, 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, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
+ 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
+ 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
+ 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
+ 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629, 1629,
+ 1629, 1629, 1629, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
+ 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
+ 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
+
+ 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
+ 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631, 1631,
+ 1631, 1631, 1631, 1635, 1635, 1635, 1635, 0, 2798, 2800,
+ 2804, 0, 0, 0, 2808, 1635, 2810, 0, 1635, 2798,
+ 2800, 2804, 2798, 2800, 2804, 2808, 2815, 2810, 2808, 0,
+ 2810, 2821, 2825, 2828, 0, 0, 0, 2815, 3129, 0,
+ 2815, 0, 2821, 2825, 2828, 2821, 2825, 2828, 0, 3129,
+ 1635, 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, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
+ 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
+ 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
+ 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
+ 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644, 1644,
+ 1644, 1650, 1650, 1650, 1650, 0, 2830, 2838, 2842, 0,
+ 0, 0, 2846, 1650, 2849, 0, 1650, 2830, 2838, 2842,
+ 2830, 2838, 2842, 2846, 2853, 2849, 2846, 0, 2849, 2856,
+
+ 2867, 2875, 0, 0, 0, 2853, 3133, 0, 2853, 0,
+ 2856, 2867, 2875, 2856, 2867, 2875, 0, 3133, 1650, 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, 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, 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, 1661, 1661,
+ 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661,
+ 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 1661, 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, 1665,
+
+ 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665,
+ 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1665, 1667,
+ 1667, 1667, 1667, 0, 2882, 0, 2892, 0, 2901, 1667,
+ 1667, 0, 2905, 2908, 1667, 2882, 1667, 2892, 2882, 2901,
+ 2892, 2919, 2901, 2905, 2908, 2928, 2905, 2908, 0, 2934,
+ 2935, 2938, 2919, 0, 0, 2919, 2928, 0, 0, 2928,
+ 2934, 2935, 2938, 2934, 2935, 2938, 1667, 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, 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, 1671, 1671, 1671,
+ 1671, 0, 0, 0, 2941, 2958, 2962, 1671, 1671, 0,
+ 2966, 2971, 1671, 1671, 1671, 2941, 2958, 2962, 2941, 2958,
+ 2962, 2966, 2971, 2978, 2966, 2971, 0, 2981, 2987, 3005,
+ 0, 0, 0, 0, 2978, 0, 0, 2978, 2981, 2987,
+ 3005, 2981, 2987, 3005, 1671, 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,
+ 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, 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, 1674, 1674, 1674, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674, 1674,
+ 1674, 1674, 1674, 1674, 1674, 1676, 3015, 3135, 3136, 0,
+ 0, 0, 0, 0, 0, 1676, 0, 3015, 3135, 3136,
+ 3015, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 0,
+ 0, 0, 1676, 1676, 1676, 1676, 1676, 1676, 1676, 1676,
+
+ 1676, 1676, 1676, 1676, 1676, 1676, 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, 1683, 3019, 3145, 3146,
+ 0, 0, 0, 0, 0, 0, 1683, 0, 3019, 3145,
+ 3146, 3019, 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1683,
+ 0, 0, 0, 1683, 1683, 1683, 1683, 1683, 1683, 1683,
+ 1683, 1683, 1683, 1683, 1683, 1683, 1683, 1684, 3022, 3153,
+
+ 3158, 0, 0, 0, 0, 0, 0, 1684, 0, 3022,
+ 3153, 3158, 3022, 1684, 1684, 1684, 1684, 1684, 1684, 1684,
+ 1684, 0, 0, 0, 1684, 1684, 1684, 1684, 1684, 1684,
+ 1684, 1684, 1684, 1684, 1684, 1684, 1684, 1684, 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,
+ 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687,
+ 1687, 1687, 1687, 1687, 1687, 1687, 1687, 1687, 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, 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, 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, 1691, 3029,
+ 3159, 3164, 0, 0, 0, 0, 0, 0, 1691, 0,
+
+ 3029, 3159, 3164, 3029, 1691, 1691, 1691, 1691, 1691, 1691,
+ 1691, 1691, 0, 0, 0, 1691, 1691, 1691, 1691, 1691,
+ 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 1691, 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, 1698,
+ 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698,
+ 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 1698, 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, 1700, 1700, 1700, 1700,
+ 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700,
+ 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 1700, 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, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701,
+ 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 1701, 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, 1703, 1703,
+ 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703,
+ 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1703, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704,
+ 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 1704, 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, 1706,
+ 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706,
+ 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 1706, 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, 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, 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, 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, 1713,
+ 1713, 1713, 1713, 0, 1713, 1713, 3035, 1713, 0, 1713,
+ 1713, 1713, 1713, 1713, 1713, 1713, 1713, 3035, 0, 1713,
+ 3035, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713,
+ 0, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713, 1713,
+ 1713, 1713, 1713, 1713, 1713, 1713, 1713, 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, 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, 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, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
+ 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716, 1716,
+ 1716, 1716, 1716, 1716, 1716, 1716, 1716, 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, 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, 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, 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, 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, 1732, 1732,
+ 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732, 1732,
+ 1732, 1732, 1732, 1732, 1732, 1732, 1732, 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, 1738, 1738,
+ 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738, 1738,
+ 1738, 1738, 1738, 1738, 1738, 1738, 1738, 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, 1739, 1739, 1739, 1739, 1739, 1739,
+ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739, 1739,
+ 1739, 1739, 1739, 1739, 1739, 1739, 1739, 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, 1744, 1744, 1744, 1744,
+ 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744, 1744,
+ 1744, 1744, 1744, 1744, 1744, 1744, 1744, 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, 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, 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, 1750, 3039, 1750,
+ 3041, 0, 3173, 0, 3175, 1750, 1750, 1750, 1750, 3039,
+ 3053, 3041, 3039, 3173, 3041, 3175, 1750, 1750, 1750, 1750,
+ 1750, 3053, 1750, 0, 3053, 0, 0, 0, 0, 1750,
+ 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, 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,
+ 1752, 3055, 3179, 3200, 0, 0, 0, 0, 0, 0,
+ 1752, 0, 3055, 3179, 3200, 3055, 1752, 1752, 1752, 1752,
+ 1752, 1752, 1752, 1752, 0, 0, 0, 1752, 1752, 1752,
+ 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752, 1752,
+ 1752, 1753, 3057, 1753, 3058, 0, 3207, 0, 3228, 1753,
+ 1753, 1753, 1753, 3057, 3063, 3058, 3057, 3207, 3058, 3228,
+ 1753, 1753, 1753, 1753, 1753, 3063, 1753, 0, 3063, 0,
+ 0, 0, 0, 1753, 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, 1754, 1754, 1754, 1754,
+ 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754, 1754,
+ 1754, 1754, 1754, 1754, 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, 1757, 1757, 1757, 1757, 1757, 1757,
+ 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757, 1757,
+ 1757, 1757, 1757, 1757, 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, 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, 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, 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, 1766, 1766, 1766, 1766,
+ 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766, 1766,
+ 1766, 1766, 1766, 1766, 1767, 3066, 3242, 3250, 0, 0,
+ 0, 0, 0, 0, 1767, 0, 3066, 3242, 3250, 3066,
+ 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 0, 0,
+ 0, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767, 1767,
+ 1767, 1767, 1767, 1767, 1767, 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, 1768, 1768, 1768,
+ 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768, 1768,
+ 1768, 1768, 1768, 1768, 1768, 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, 1772, 3076, 1772, 3089, 0,
+ 3257, 0, 3276, 1772, 1772, 1772, 1772, 3076, 3093, 3089,
+ 3076, 3257, 3089, 3276, 1772, 1772, 1772, 1772, 1772, 3093,
+
+ 1772, 0, 3093, 0, 0, 0, 0, 1772, 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, 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, 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, 1774,
+ 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774,
+
+ 1774, 1774, 1774, 1774, 1774, 1774, 1774, 1774, 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, 1776, 1776, 1776, 1776, 1776,
+ 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776,
+ 1776, 1776, 1776, 1776, 1776, 1776, 1776, 1776, 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, 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, 1778,
+ 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778,
+ 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1778, 1779, 3094,
+ 3281, 3283, 0, 0, 0, 0, 0, 0, 1779, 0,
+ 3094, 3281, 3283, 3094, 1779, 1779, 1779, 1779, 1779, 1779,
+ 1779, 1779, 0, 0, 0, 1779, 1779, 1779, 1779, 1779,
+ 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 1779, 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,
+ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780,
+ 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 1780, 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, 1781, 1781, 1781, 1781,
+ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781,
+ 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1781, 1784,
+
+ 3098, 1784, 3111, 0, 3288, 0, 3294, 1784, 1784, 1784,
+ 1784, 3098, 3117, 3111, 3098, 3288, 3111, 3294, 1784, 1784,
+ 1784, 1784, 1784, 3117, 1784, 0, 3117, 0, 0, 0,
+ 0, 1784, 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, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785, 1785,
+ 1785, 1785, 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, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786,
+ 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786, 1786,
+ 1786, 1786, 1787, 3119, 3314, 3319, 0, 0, 0, 0,
+ 0, 0, 1787, 0, 3119, 3314, 3319, 3119, 1787, 1787,
+ 1787, 1787, 1787, 1787, 1787, 1787, 0, 0, 0, 1787,
+ 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787, 1787,
+ 1787, 1787, 1787, 1789, 3124, 1789, 3125, 0, 3323, 0,
+ 3338, 1789, 1789, 1789, 1789, 3124, 3128, 3125, 3124, 3323,
+ 3125, 3338, 1789, 1789, 1789, 1789, 1789, 3128, 1789, 0,
+
+ 3128, 0, 0, 0, 0, 1789, 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, 1790, 1790, 1790, 1790,
+ 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790, 1790,
+ 1790, 1790, 1790, 1790, 1790, 1790, 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, 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, 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, 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, 1795, 3132, 3345, 3370,
+ 0, 0, 0, 0, 0, 0, 1795, 0, 3132, 3345,
+ 3370, 3132, 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 0, 0, 0, 1795, 1795, 1795, 1795, 1795, 1795, 1795,
+ 1795, 1795, 1795, 1795, 1795, 1795, 1795, 1797, 3134, 1797,
+
+ 3138, 0, 3408, 0, 3424, 1797, 1797, 1797, 1797, 3134,
+ 3142, 3138, 3134, 3408, 3138, 3424, 1797, 1797, 1797, 1797,
+ 1797, 3142, 1797, 0, 3142, 0, 0, 0, 0, 1797,
+ 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,
+ 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
+ 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799,
+ 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,
+ 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,
+ 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, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803,
+ 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803, 1803,
+ 1806, 3148, 1806, 3151, 0, 3428, 0, 3434, 1806, 1806,
+ 1806, 1806, 3148, 3157, 3151, 3148, 3428, 3151, 3434, 1806,
+ 1806, 1806, 1806, 1806, 3157, 1806, 0, 3157, 0, 0,
+ 0, 0, 1806, 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, 1808, 3161, 3444, 3449, 0, 0, 0,
+ 0, 0, 0, 1808, 0, 3161, 3444, 3449, 3161, 1808,
+ 1808, 1808, 1808, 1808, 1808, 1808, 1808, 0, 0, 0,
+ 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808, 1808,
+ 1808, 1808, 1808, 1808, 1809, 3163, 1809, 3166, 0, 3464,
+ 0, 3470, 1809, 1809, 1809, 1809, 3163, 3168, 3166, 3163,
+ 3464, 3166, 3470, 1809, 1809, 1809, 1809, 1809, 3168, 1809,
+ 0, 3168, 0, 0, 0, 0, 1809, 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, 1810,
+ 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810, 1810,
+ 1810, 1810, 1810, 1810, 1810, 1810, 1810, 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, 1817, 1817, 1817, 1817, 1817, 1817, 1817,
+ 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817,
+ 1817, 1817, 1817, 1817, 1817, 1817, 1817, 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, 1820, 1820,
+ 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820, 1820,
+ 1820, 1820, 1820, 1820, 1820, 1820, 1820, 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, 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, 1828, 1828, 1828, 1828,
+ 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1828,
+ 1828, 1828, 1828, 1828, 1828, 1828, 1828, 1832, 3172, 3474,
+ 3476, 0, 0, 0, 0, 1832, 0, 1832, 0, 3172,
+ 3474, 3476, 3172, 1832, 1832, 1832, 1832, 1832, 1832, 1832,
+ 1832, 0, 0, 0, 1832, 1832, 1832, 1832, 1832, 1832,
+ 1832, 1832, 1832, 1832, 1832, 1832, 1832, 1832, 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, 1834, 3174,
+ 1834, 3178, 0, 3477, 0, 3482, 1834, 1834, 1834, 1834,
+ 3174, 3190, 3178, 3174, 3477, 3178, 3482, 1834, 1834, 1834,
+ 1834, 1834, 3190, 1834, 0, 3190, 0, 0, 0, 0,
+ 1834, 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, 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, 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, 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, 1838, 3199, 1838, 3206, 0, 3488, 0, 3492, 1838,
+ 1838, 1838, 1838, 3199, 3216, 3206, 3199, 3488, 3206, 3492,
+ 1838, 1838, 1838, 1838, 1838, 3216, 1838, 0, 3216, 0,
+ 0, 0, 0, 1838, 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, 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, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+ 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846, 1846,
+ 1846, 1846, 1846, 1846, 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, 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, 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, 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, 1852, 1852, 1852, 1852,
+ 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852, 1852,
+ 1852, 1852, 1852, 1852, 1858, 1858, 1858, 1858, 0, 3227,
+ 3241, 3243, 0, 0, 0, 3252, 1858, 3256, 0, 1858,
+ 3227, 3241, 3243, 3227, 3241, 3243, 3252, 3266, 3256, 3252,
+ 0, 3256, 3275, 3280, 3284, 0, 0, 0, 3266, 3495,
+ 0, 3266, 0, 3275, 3280, 3284, 3275, 3280, 3284, 0,
+ 3495, 1858, 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, 1869, 1869, 1869, 1869, 0, 3286, 3290, 3293,
+ 0, 0, 0, 3304, 1869, 3313, 0, 1869, 3286, 3290,
+ 3293, 3286, 3290, 3293, 3304, 3324, 3313, 3304, 0, 3313,
+ 3327, 3337, 3340, 0, 0, 0, 3324, 3501, 0, 3324,
+ 0, 3327, 3337, 3340, 3327, 3337, 3340, 0, 3501, 1869,
+ 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, 1871,
+ 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871,
+ 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871, 1871,
+ 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,
+ 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, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880,
+ 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880,
+ 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,
+ 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883,
+ 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883, 1883,
+ 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, 1884, 1884, 1884, 1884,
+ 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
+ 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884, 1884,
+ 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, 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,
+ 1891, 3346, 3506, 3510, 0, 0, 0, 0, 0, 0,
+
+ 1891, 0, 3346, 3506, 3510, 3346, 1891, 1891, 1891, 1891,
+ 1891, 1891, 1891, 1891, 0, 0, 0, 1891, 1891, 1891,
+ 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891, 1891,
+ 1891, 1896, 3363, 3517, 3520, 0, 0, 0, 0, 0,
+ 0, 1896, 0, 3363, 3517, 3520, 3363, 1896, 1896, 1896,
+ 1896, 1896, 1896, 1896, 1896, 0, 0, 0, 1896, 1896,
+ 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896, 1896,
+ 1896, 1896, 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, 1902,
+
+ 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902,
+ 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902, 1902,
+ 1902, 1902, 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, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
+ 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904, 1904,
+ 1904, 1904, 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, 1907, 3366, 3524, 3538, 0, 0, 0, 0,
+ 0, 0, 1907, 0, 3366, 3524, 3538, 3366, 1907, 1907,
+ 1907, 1907, 1907, 1907, 1907, 1907, 0, 0, 0, 1907,
+ 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907, 1907,
+ 1907, 1907, 1907, 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,
+ 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910,
+
+ 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910, 1910,
+ 1910, 1910, 1910, 1911, 3369, 3545, 3554, 0, 0, 0,
+ 0, 0, 0, 1911, 0, 3369, 3545, 3554, 3369, 1911,
+ 1911, 1911, 1911, 1911, 1911, 1911, 1911, 0, 0, 0,
+ 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911, 1911,
+ 1911, 1911, 1911, 1911, 1913, 3371, 3558, 3592, 0, 0,
+ 0, 0, 0, 0, 1913, 0, 3371, 3558, 3592, 3371,
+ 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 0, 0,
+ 0, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913, 1913,
+ 1913, 1913, 1913, 1913, 1913, 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, 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, 1922, 1922, 1922,
+ 1922, 1922, 1922, 1922, 1922, 1922, 1922, 1922, 1922, 1922,
+ 1922, 1922, 1922, 1922, 1922, 1924, 1924, 1924, 1924, 0,
+
+ 1924, 1924, 3381, 1924, 0, 1924, 1924, 1924, 1924, 1924,
+ 1924, 1924, 1924, 3381, 0, 1924, 3381, 1924, 1924, 1924,
+ 1924, 1924, 1924, 1924, 1924, 1924, 0, 1924, 1924, 1924,
+ 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924, 1924,
+ 1924, 1924, 1924, 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, 1926,
+ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+ 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926, 1926,
+ 1926, 1926, 1926, 1927, 3383, 3596, 3602, 0, 0, 0,
+
+ 0, 0, 0, 1927, 0, 3383, 3596, 3602, 3383, 1927,
+ 1927, 1927, 1927, 1927, 1927, 1927, 1927, 0, 0, 0,
+ 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927, 1927,
+ 1927, 1927, 1927, 1927, 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, 1932, 3393, 1932, 3396, 0, 3615,
+ 0, 3622, 1932, 1932, 1932, 1932, 3393, 3398, 3396, 3393,
+
+ 3615, 3396, 3622, 1932, 1932, 1932, 1932, 1932, 3398, 1932,
+ 0, 3398, 0, 0, 0, 0, 1932, 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, 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, 1938,
+
+ 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938, 1938,
+ 1938, 1938, 1938, 1938, 1938, 1938, 1938, 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, 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, 1943, 1943, 1943,
+ 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
+ 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
+ 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
+
+ 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943, 1943,
+ 1943, 1943, 1943, 1943, 1943, 1943, 1943, 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, 1945, 1945, 1945,
+ 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
+ 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
+ 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
+
+ 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1945,
+ 1945, 1945, 1945, 1945, 1945, 1945, 1945, 1946, 3407, 3631,
+ 3635, 0, 0, 0, 0, 0, 0, 1946, 0, 3407,
+ 3631, 3635, 3407, 1946, 1946, 1946, 1946, 1946, 1946, 1946,
+ 1946, 0, 0, 0, 1946, 1946, 1946, 1946, 1946, 1946,
+ 1946, 1946, 1946, 1946, 1946, 1946, 1946, 1946, 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, 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, 1951, 3415,
+ 1951, 3423, 0, 3655, 0, 3661, 1951, 1951, 1951, 1951,
+ 3415, 3430, 3423, 3415, 3655, 3423, 3661, 1951, 1951, 1951,
+ 1951, 1951, 3430, 1951, 0, 3430, 0, 0, 0, 0,
+ 1951, 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, 1952, 1952, 1952,
+ 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952,
+ 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952, 1952,
+ 1952, 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, 1955, 1955, 1955,
+ 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
+ 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955,
+ 1955, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956,
+
+ 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956,
+ 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956,
+ 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956,
+ 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956, 1956,
+ 1956, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963,
+ 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963,
+ 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963,
+ 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963,
+ 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963, 1963,
+ 1963, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
+
+ 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
+ 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
+ 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
+ 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965, 1965,
+ 1965, 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, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
+ 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966, 1966,
+ 1966, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968,
+
+ 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968,
+ 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968,
+ 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968,
+ 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968, 1968,
+ 1968, 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, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977,
+ 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977, 1977,
+ 1977, 1978, 3433, 3688, 3692, 0, 0, 0, 0, 0,
+
+ 0, 1978, 0, 3433, 3688, 3692, 3433, 1978, 1978, 1978,
+ 1978, 1978, 1978, 1978, 1978, 0, 0, 0, 1978, 1978,
+ 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978, 1978,
+ 1978, 1978, 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, 1979, 1979, 1979, 1979, 1979, 1979,
+ 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979, 1979,
+ 1979, 1979, 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, 1983, 3442, 1983, 3443, 0, 3705, 0, 3719,
+ 1983, 1983, 1983, 1983, 3442, 3450, 3443, 3442, 3705, 3443,
+ 3719, 1983, 1983, 1983, 1983, 1983, 3450, 1983, 0, 3450,
+ 0, 0, 0, 0, 1983, 1984, 1984, 1984, 1984, 1984,
+ 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984,
+ 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984,
+ 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984,
+
+ 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984, 1984,
+ 1984, 1984, 1984, 1984, 1984, 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, 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,
+ 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, 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, 1994, 1994, 1994, 1994, 1994,
+ 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994,
+ 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994,
+ 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994,
+
+ 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994, 1994,
+ 1994, 1994, 1994, 1994, 1994, 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, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995,
+ 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995, 1995,
+ 1995, 1995, 1995, 1995, 1995, 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,
+ 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, 1997, 3463, 3735, 3737, 0,
+ 0, 0, 0, 0, 0, 1997, 0, 3463, 3735, 3737,
+ 3463, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 0,
+ 0, 0, 1997, 1997, 1997, 1997, 1997, 1997, 1997, 1997,
+ 1997, 1997, 1997, 1997, 1997, 1997, 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, 2001, 3466, 2001, 3469,
+ 0, 3739, 0, 3741, 2001, 2001, 2001, 2001, 3466, 3473,
+ 3469, 3466, 3739, 3469, 3741, 2001, 2001, 2001, 2001, 2001,
+ 3473, 2001, 0, 3473, 0, 0, 0, 0, 2001, 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, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006,
+ 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 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, 2007, 2007, 2007, 2007, 2007,
+ 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007,
+ 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 2007, 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, 2009,
+ 0, 2009, 0, 0, 3743, 0, 3744, 2009, 2009, 2009,
+
+ 2009, 2457, 2457, 2457, 2457, 3743, 3475, 3744, 2009, 2009,
+ 2009, 2009, 2009, 2457, 2009, 3479, 2457, 3475, 0, 3481,
+ 3475, 2009, 2010, 3485, 3748, 3749, 3479, 0, 0, 3479,
+ 3481, 0, 2010, 3481, 3485, 3748, 3749, 3485, 2010, 2010,
+ 2010, 2010, 2010, 2010, 2010, 2010, 0, 0, 2457, 2010,
+ 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
+ 2010, 2010, 2010, 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, 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, 2014, 2014, 2014, 2014, 2014, 2014,
+ 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014, 2014,
+ 2014, 2014, 2014, 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, 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, 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, 2018, 3493, 2018, 3500, 0, 3756, 0,
+ 3757, 2018, 2018, 2018, 2018, 3493, 3505, 3500, 3493, 3756,
+ 3500, 3757, 2018, 2018, 2018, 2018, 2018, 3505, 2018, 0,
+ 3505, 0, 0, 0, 0, 2018, 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, 2019, 2019, 2019, 2019,
+ 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019,
+ 2019, 2019, 2019, 2019, 2019, 2019, 2026, 3514, 3761, 3768,
+ 0, 0, 0, 0, 0, 0, 2026, 0, 3514, 3761,
+ 3768, 3514, 2026, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
+ 0, 0, 0, 2026, 2026, 2026, 2026, 2026, 2026, 2026,
+ 2026, 2026, 2026, 2026, 2026, 2026, 2026, 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, 2027,
+ 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2027,
+ 2027, 2027, 2027, 2027, 2027, 2027, 2027, 2030, 3519, 2030,
+ 3522, 0, 3774, 0, 3779, 2030, 2030, 2030, 2030, 3519,
+ 3526, 3522, 3519, 3774, 3522, 3779, 2030, 2030, 2030, 2030,
+ 2030, 3526, 2030, 0, 3526, 0, 0, 0, 0, 2030,
+ 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, 2031, 2031, 2031, 2031, 2031, 2031, 2031, 2031,
+ 2031, 2031, 2031, 2031, 2031, 2031, 2031, 2031, 2031, 2031,
+ 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,
+ 2034, 3537, 2034, 3540, 0, 3788, 0, 3789, 2034, 2034,
+ 2034, 2034, 3537, 3553, 3540, 3537, 3788, 3540, 3789, 2034,
+ 2034, 2034, 2034, 2034, 3553, 2034, 0, 3553, 0, 0,
+
+ 0, 0, 2034, 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, 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, 2038, 3556, 3817, 3830, 0, 0, 0,
+ 0, 0, 0, 2038, 0, 3556, 3817, 3830, 3556, 2038,
+ 2038, 2038, 2038, 2038, 2038, 2038, 2038, 0, 0, 0,
+ 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038, 2038,
+ 2038, 2038, 2038, 2038, 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, 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, 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, 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, 2046, 3559, 2046, 3562, 0, 3837,
+ 0, 3841, 2046, 2046, 2046, 2046, 3559, 3566, 3562, 3559,
+ 3837, 3562, 3841, 2046, 2046, 2046, 2046, 2046, 3566, 2046,
+ 0, 3566, 0, 0, 0, 0, 2046, 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, 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, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
+ 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
+ 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2053, 0, 0,
+ 0, 3856, 0, 0, 0, 0, 0, 2053, 3480, 3480,
+ 3480, 3480, 3856, 2053, 2053, 2053, 2053, 2053, 2053, 2053,
+
+ 2053, 0, 0, 3480, 2053, 2053, 2053, 2053, 2053, 2053,
+ 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2053, 2054, 3570,
+ 2054, 3882, 0, 3897, 0, 3906, 2054, 2054, 2054, 2054,
+ 3570, 3574, 3882, 3570, 3897, 3480, 3906, 2054, 2054, 2054,
+ 2054, 2054, 3574, 2054, 0, 3574, 0, 0, 0, 0,
+ 2054, 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, 2060, 3580, 2060, 3591, 0, 3920, 0, 3931, 2060,
+ 2060, 2060, 2060, 3580, 3593, 3591, 3580, 3920, 3591, 3931,
+ 2060, 2060, 2060, 2060, 2060, 3593, 2060, 0, 3593, 0,
+ 0, 0, 0, 2060, 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, 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, 2067, 3595, 3943, 3957, 0, 0,
+ 0, 0, 0, 0, 2067, 0, 3595, 3943, 3957, 3595,
+
+ 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 0, 0,
+ 0, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067, 2067,
+ 2067, 2067, 2067, 2067, 2067, 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, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068,
+ 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068, 2068,
+ 2068, 2068, 2068, 2068, 2068, 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, 2069, 2069, 2069, 2069, 2069,
+ 2069, 2069, 2069, 2069, 2069, 2069, 2069, 2069, 2069, 2069,
+ 2069, 2069, 2069, 2069, 2069, 2072, 3598, 2072, 3601, 0,
+ 3961, 0, 3975, 2072, 2072, 2072, 2072, 3598, 3604, 3601,
+ 3598, 3961, 3601, 3975, 2072, 2072, 2072, 2072, 2072, 3604,
+ 2072, 0, 3604, 0, 0, 0, 0, 2072, 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,
+ 2073, 2073, 2073, 2073, 2073, 2073, 2073, 2073, 2073, 2073,
+
+ 2073, 2073, 2073, 2073, 2073, 2073, 2073, 2073, 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,
+ 2075, 2075, 2075, 2075, 2075, 2075, 2075, 2075, 2075, 2075,
+ 2075, 2075, 2075, 2075, 2075, 2075, 2075, 2075, 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, 2076,
+ 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076,
+
+ 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2076, 2077, 3614,
+ 3982, 3984, 0, 0, 0, 0, 0, 0, 2077, 0,
+ 3614, 3982, 3984, 3614, 2077, 2077, 2077, 2077, 2077, 2077,
+ 2077, 2077, 0, 0, 0, 2077, 2077, 2077, 2077, 2077,
+ 2077, 2077, 2077, 2077, 2077, 2077, 2077, 2077, 2077, 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, 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, 2081,
+
+ 3616, 2081, 3619, 0, 3985, 0, 3988, 2081, 2081, 2081,
+ 2081, 3616, 3620, 3619, 3616, 3985, 3619, 3988, 2081, 2081,
+ 2081, 2081, 2081, 3620, 2081, 0, 3620, 0, 0, 0,
+ 0, 2081, 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, 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, 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, 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, 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, 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, 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, 2091, 2091,
+ 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091,
+ 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091, 2091,
+ 2091, 2091, 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, 2096, 2096, 2096, 2096, 0, 2096, 2096, 3623,
+ 2096, 0, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096,
+ 3623, 0, 2096, 3623, 2096, 2096, 2096, 2096, 2096, 2096,
+ 2096, 2096, 2096, 0, 2096, 2096, 2096, 2096, 2096, 2096,
+ 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096,
+ 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, 2098, 2098, 2098, 2098,
+ 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098,
+ 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098,
+ 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, 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,
+ 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, 2109,
+ 2109, 2109, 2109, 2109, 2109, 2109, 2109, 2109, 2109, 2109,
+ 2109, 2109, 2109, 2109, 2109, 2109, 2109, 2109, 2109, 2109,
+ 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, 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,
+ 2113, 3630, 3993, 3999, 0, 0, 0, 0, 0, 0,
+ 2113, 0, 3630, 3993, 3999, 3630, 2113, 2113, 2113, 2113,
+
+ 2113, 2113, 2113, 2113, 0, 0, 0, 2113, 2113, 2113,
+ 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113, 2113,
+ 2113, 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, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
+ 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114, 2114,
+ 2114, 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, 2116, 3634, 4000, 4009, 0, 0, 0, 0, 0,
+ 0, 2116, 0, 3634, 4000, 4009, 3634, 2116, 2116, 2116,
+ 2116, 2116, 2116, 2116, 2116, 0, 0, 0, 2116, 2116,
+ 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116, 2116,
+ 2116, 2116, 2118, 3645, 2118, 3654, 0, 4011, 0, 4017,
+ 2118, 2118, 2118, 2118, 3645, 3662, 3654, 3645, 4011, 3654,
+ 4017, 2118, 2118, 2118, 2118, 2118, 3662, 2118, 0, 3662,
+ 0, 0, 0, 0, 2118, 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, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119,
+ 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119, 2119,
+ 2119, 2119, 2119, 2119, 2119, 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, 2121, 2121, 2121, 2121,
+ 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121, 2121,
+ 2121, 2121, 2121, 2121, 2121, 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,
+ 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, 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,
+ 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, 2135, 2135, 2135, 2135, 2135,
+
+ 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135,
+ 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135,
+ 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135,
+ 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135, 2135,
+ 2135, 2135, 2135, 2135, 2135, 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, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136,
+ 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136, 2136,
+ 2136, 2136, 2136, 2136, 2136, 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, 2140, 2140, 2140,
+ 2140, 2140, 2140, 2140, 2140, 2140, 2140, 2140, 2140, 2140,
+ 2140, 2140, 2140, 2140, 2140, 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, 2143, 2143, 2143, 2143, 2143, 2143, 2143, 2143, 2143,
+ 2143, 2143, 2143, 2143, 2143, 2143, 2143, 2143, 2143, 2143,
+ 2143, 2143, 2143, 2143, 2143, 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, 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152, 2152,
+ 2152, 2152, 2152, 2152, 2152, 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, 2153, 2153, 2153, 2153, 2153,
+ 2153, 2153, 2153, 2153, 2153, 2153, 2153, 2153, 2153, 2153,
+ 2153, 2153, 2153, 2153, 2153, 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,
+ 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, 2158, 3668, 4018, 4026, 0,
+ 0, 0, 0, 0, 0, 2158, 0, 3668, 4018, 4026,
+ 3668, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 0,
+ 0, 0, 2158, 2158, 2158, 2158, 2158, 2158, 2158, 2158,
+ 2158, 2158, 2158, 2158, 2158, 2158, 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, 2166, 2166, 2166,
+ 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166, 2166,
+ 2166, 2166, 2166, 2166, 2166, 2166, 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, 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, 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, 2171, 3676, 4028, 4031,
+ 0, 0, 0, 0, 0, 0, 2171, 0, 3676, 4028,
+ 4031, 3676, 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 0, 0, 0, 2171, 2171, 2171, 2171, 2171, 2171, 2171,
+ 2171, 2171, 2171, 2171, 2171, 2171, 2171, 2172, 3678, 4045,
+ 4080, 0, 0, 0, 0, 0, 0, 2172, 0, 3678,
+ 4045, 4080, 3678, 2172, 2172, 2172, 2172, 2172, 2172, 2172,
+
+ 2172, 0, 0, 0, 2172, 2172, 2172, 2172, 2172, 2172,
+ 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2172, 2174, 3687,
+ 4082, 4095, 0, 0, 0, 0, 0, 0, 2174, 0,
+ 3687, 4082, 4095, 3687, 2174, 2174, 2174, 2174, 2174, 2174,
+ 2174, 2174, 0, 0, 0, 2174, 2174, 2174, 2174, 2174,
+ 2174, 2174, 2174, 2174, 2174, 2174, 2174, 2174, 2174, 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, 2178,
+ 2178, 2178, 2178, 2178, 2178, 2178, 2178, 2178, 2178, 2178,
+
+ 2178, 2178, 2178, 2178, 2178, 2178, 2178, 2178, 2178, 2179,
+ 3691, 4096, 4101, 0, 0, 0, 0, 0, 0, 2179,
+ 0, 3691, 4096, 4101, 3691, 2179, 2179, 2179, 2179, 2179,
+ 2179, 2179, 2179, 0, 0, 0, 2179, 2179, 2179, 2179,
+ 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179,
+ 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, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
+ 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183, 2183,
+
+ 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,
+ 2185, 0, 2185, 0, 0, 4116, 0, 4122, 2185, 2185,
+ 2185, 2185, 2467, 2467, 2467, 2467, 4116, 3701, 4122, 2185,
+ 2185, 2185, 2185, 2185, 2467, 2185, 3704, 2467, 3701, 0,
+ 3712, 3701, 2185, 2189, 3718, 4133, 4147, 3704, 0, 0,
+ 3704, 3712, 0, 2189, 3712, 3718, 4133, 4147, 3718, 2189,
+
+ 2189, 2189, 2189, 2189, 2189, 2189, 2189, 0, 0, 2467,
+ 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189, 2189,
+ 2189, 2189, 2189, 2189, 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, 2193, 3727, 4148, 4152, 0, 0,
+ 0, 0, 0, 0, 2193, 0, 3727, 4148, 4152, 3727,
+ 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 0, 0,
+
+ 0, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193, 2193,
+ 2193, 2193, 2193, 2193, 2193, 2195, 3729, 2195, 3734, 0,
+ 4163, 0, 4167, 2195, 2195, 2195, 2195, 3729, 3736, 3734,
+ 3729, 4163, 3734, 4167, 2195, 2195, 2195, 2195, 2195, 3736,
+ 2195, 0, 3736, 0, 0, 0, 0, 2195, 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, 2198, 2198,
+ 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198,
+ 2198, 2198, 2198, 2198, 2198, 2198, 2198, 2198, 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, 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, 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, 2203, 2203, 2203, 2203, 2203, 2203,
+ 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203,
+ 2203, 2203, 2203, 2203, 2203, 2203, 2203, 2203, 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, 2206, 3738,
+ 4187, 4223, 0, 0, 0, 0, 0, 0, 2206, 0,
+ 3738, 4187, 4223, 3738, 2206, 2206, 2206, 2206, 2206, 2206,
+ 2206, 2206, 0, 0, 0, 2206, 2206, 2206, 2206, 2206,
+ 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 2206, 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, 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, 2209, 2209, 2209, 2209, 2209,
+ 2209, 2209, 2209, 2209, 2209, 2209, 2209, 2209, 2209, 2209,
+ 2209, 2209, 2209, 2209, 2209, 2209, 2209, 2209, 2209, 2212,
+ 3740, 2212, 3742, 0, 4233, 0, 4237, 2212, 2212, 2212,
+
+ 2212, 3740, 3746, 3742, 3740, 4233, 3742, 4237, 2212, 2212,
+ 2212, 2212, 2212, 3746, 2212, 0, 3746, 0, 0, 0,
+ 0, 2212, 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, 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, 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, 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, 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, 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, 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, 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, 2221,
+ 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221,
+ 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221, 2221,
+ 2221, 2221, 2222, 0, 2222, 2222, 2222, 3747, 3751, 4240,
+ 0, 0, 2222, 2222, 2222, 2222, 0, 3755, 3747, 3751,
+ 4240, 3747, 3751, 2222, 2222, 2222, 2222, 2222, 3755, 2222,
+
+ 0, 3755, 0, 0, 0, 0, 2222, 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, 2223, 2223, 2223,
+ 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223, 2223,
+ 2223, 2223, 2223, 2223, 2223, 2223, 2223, 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, 2230,
+ 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230, 2230,
+
+ 2230, 2230, 2230, 2230, 2230, 2230, 2230, 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, 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, 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, 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, 2238, 2238,
+ 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238, 2238,
+
+ 2238, 2238, 2238, 2238, 2238, 2238, 2238, 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, 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, 2240, 0, 2240,
+ 0, 0, 4244, 0, 4245, 2240, 2240, 2240, 2240, 2782,
+ 2782, 2782, 2782, 4244, 3763, 4245, 2240, 2240, 2240, 2240,
+ 2240, 2782, 2240, 3767, 2782, 3763, 0, 3770, 3763, 2240,
+ 2241, 3773, 4249, 4254, 3767, 0, 0, 3767, 3770, 0,
+
+ 2241, 3770, 3773, 4249, 4254, 3773, 2241, 2241, 2241, 2241,
+ 2241, 2241, 2241, 2241, 0, 0, 2782, 2241, 2241, 2241,
+ 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241, 2241,
+ 2241, 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,
+ 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244,
+ 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244, 2244,
+ 2244, 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, 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, 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, 2248, 3776, 2248, 3781, 0, 4263, 0, 4266, 2248,
+ 2248, 2248, 2248, 3776, 3784, 3781, 3776, 4263, 3781, 4266,
+
+ 2248, 2248, 2248, 2248, 2248, 3784, 2248, 0, 3784, 0,
+ 0, 0, 0, 2248, 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, 2249, 2249, 2249, 2249, 2249, 2249,
+ 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249, 2249,
+ 2249, 2249, 2249, 2249, 2255, 3787, 4281, 4293, 0, 0,
+ 0, 0, 0, 0, 2255, 0, 3787, 4281, 4293, 3787,
+ 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 0, 0,
+ 0, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255, 2255,
+
+ 2255, 2255, 2255, 2255, 2255, 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, 2256, 2256, 2256, 2256,
+ 2256, 2256, 2256, 2256, 2256, 2256, 2256, 2256, 2256, 2256,
+ 2256, 2256, 2256, 2256, 2256, 2259, 3791, 2259, 3794, 0,
+ 4320, 0, 4323, 2259, 2259, 2259, 2259, 3791, 3803, 3794,
+ 3791, 4320, 3794, 4323, 2259, 2259, 2259, 2259, 2259, 3803,
+ 2259, 0, 3803, 0, 0, 0, 0, 2259, 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, 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, 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, 2264, 3808,
+ 4338, 4339, 0, 0, 0, 0, 0, 0, 2264, 0,
+
+ 3808, 4338, 4339, 3808, 2264, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 0, 0, 0, 2264, 2264, 2264, 2264, 2264,
+ 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 2264, 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, 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, 2268,
+ 3814, 2268, 3820, 0, 4346, 0, 4350, 2268, 2268, 2268,
+ 2268, 3814, 3824, 3820, 3814, 4346, 3820, 4350, 2268, 2268,
+
+ 2268, 2268, 2268, 3824, 2268, 0, 3824, 0, 0, 0,
+ 0, 2268, 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, 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, 2271, 2271,
+ 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271,
+
+ 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271, 2271,
+ 2271, 2271, 2272, 0, 2272, 0, 0, 4365, 0, 4368,
+ 2272, 2272, 2272, 2272, 2791, 2791, 2791, 2791, 4365, 3828,
+ 4368, 2272, 2272, 2272, 2272, 2272, 2791, 2272, 3834, 2791,
+ 3828, 0, 3838, 3828, 2272, 2273, 3840, 4385, 4386, 3834,
+ 0, 0, 3834, 3838, 0, 2273, 3838, 3840, 4385, 4386,
+ 3840, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 0,
+ 0, 2791, 2273, 2273, 2273, 2273, 2273, 2273, 2273, 2273,
+ 2273, 2273, 2273, 2273, 2273, 2273, 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, 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, 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, 2280, 3853, 2280, 3854,
+ 0, 4391, 0, 4405, 2280, 2280, 2280, 2280, 3853, 3855,
+ 3854, 3853, 4391, 3854, 4405, 2280, 2280, 2280, 2280, 2280,
+ 3855, 2280, 0, 3855, 0, 0, 0, 0, 2280, 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, 2288,
+
+ 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288,
+ 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2288, 2289,
+ 0, 0, 0, 4431, 0, 0, 0, 0, 0, 2289,
+ 3750, 3750, 3750, 3750, 4431, 2289, 2289, 2289, 2289, 2289,
+ 2289, 2289, 2289, 0, 0, 3750, 2289, 2289, 2289, 2289,
+ 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289, 2289,
+ 2293, 3859, 2293, 4441, 0, 4454, 0, 4462, 2293, 2293,
+ 2293, 2293, 3859, 3873, 4441, 3859, 4454, 3750, 4462, 2293,
+ 2293, 2293, 2293, 2293, 3873, 2293, 0, 3873, 0, 0,
+ 0, 0, 2293, 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, 2294, 2294, 2294, 2294, 2294, 2294, 2294,
+ 2294, 2294, 2294, 2294, 2294, 2294, 2294, 2294, 2294, 2294,
+ 2294, 2294, 2294, 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, 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, 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, 2298, 2298, 2298, 2298, 2298,
+ 2298, 2298, 2298, 2298, 2298, 2298, 2298, 2298, 2298, 2298,
+ 2298, 2298, 2298, 2300, 3877, 4467, 4471, 0, 0, 0,
+
+ 0, 2300, 0, 2300, 0, 3877, 4467, 4471, 3877, 2300,
+ 2300, 2300, 2300, 2300, 2300, 2300, 2300, 0, 0, 0,
+ 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300, 2300,
+ 2300, 2300, 2300, 2300, 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, 2301, 2301, 2301, 2301, 2301,
+ 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301, 2301,
+ 2301, 2301, 2301, 2301, 2302, 3879, 2302, 3881, 0, 4473,
+ 0, 4474, 2302, 2302, 2302, 2302, 3879, 3884, 3881, 3879,
+
+ 4473, 3881, 4474, 2302, 2302, 2302, 2302, 2302, 3884, 2302,
+ 0, 3884, 0, 0, 0, 0, 2302, 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, 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, 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, 2307, 3887, 2307,
+ 3896, 0, 4481, 0, 4490, 2307, 2307, 2307, 2307, 3887,
+ 3905, 3896, 3887, 4481, 3896, 4490, 2307, 2307, 2307, 2307,
+ 2307, 3905, 2307, 0, 3905, 0, 0, 0, 0, 2307,
+ 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,
+
+ 2313, 3908, 4495, 4505, 0, 0, 0, 0, 0, 0,
+ 2313, 0, 3908, 4495, 4505, 3908, 2313, 2313, 2313, 2313,
+ 2313, 2313, 2313, 2313, 0, 0, 0, 2313, 2313, 2313,
+ 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313, 2313,
+ 2313, 2314, 3919, 2314, 3921, 0, 4517, 0, 4530, 2314,
+ 2314, 2314, 2314, 3919, 3925, 3921, 3919, 4517, 3921, 4530,
+ 2314, 2314, 2314, 2314, 2314, 3925, 2314, 0, 3925, 0,
+ 0, 0, 0, 2314, 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,
+
+ 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+ 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317, 2317,
+ 2317, 2317, 2317, 2317, 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, 2320, 3930, 2320, 3942, 0, 4549,
+ 0, 4550, 2320, 2320, 2320, 2320, 3930, 3948, 3942, 3930,
+ 4549, 3942, 4550, 2320, 2320, 2320, 2320, 2320, 3948, 2320,
+
+ 0, 3948, 0, 0, 0, 0, 2320, 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, 2327, 2327, 2327,
+ 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327,
+ 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327,
+ 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327,
+ 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2327,
+
+ 2327, 2327, 2327, 2327, 2327, 2327, 2327, 2328, 3956, 4554,
+ 4559, 0, 0, 0, 0, 0, 0, 2328, 0, 3956,
+ 4554, 4559, 3956, 2328, 2328, 2328, 2328, 2328, 2328, 2328,
+ 2328, 0, 0, 0, 2328, 2328, 2328, 2328, 2328, 2328,
+ 2328, 2328, 2328, 2328, 2328, 2328, 2328, 2328, 2330, 2330,
+ 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330,
+ 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330,
+ 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330,
+ 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330,
+ 2330, 2330, 2330, 2330, 2330, 2330, 2330, 2330, 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, 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, 2334, 3959,
+
+ 2334, 3963, 0, 4575, 0, 4599, 2334, 2334, 2334, 2334,
+ 3959, 3969, 3963, 3959, 4575, 3963, 4599, 2334, 2334, 2334,
+ 2334, 2334, 3969, 2334, 0, 3969, 0, 0, 0, 0,
+ 2334, 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335,
+ 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335,
+ 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335,
+ 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335,
+ 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335, 2335,
+ 2335, 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, 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, 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341,
+ 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341,
+ 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341,
+ 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341,
+ 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341, 2341,
+ 2341, 2342, 3972, 2342, 3973, 0, 4603, 0, 4604, 2342,
+ 2342, 2342, 2342, 3972, 3977, 3973, 3972, 4603, 3973, 4604,
+
+ 2342, 2342, 2342, 2342, 2342, 3977, 2342, 0, 3977, 0,
+ 0, 0, 0, 2342, 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, 2344, 2344, 2344, 2344, 2344, 2344, 2344, 2344, 2344,
+ 2344, 2344, 2344, 2344, 2344, 2344, 2344, 2344, 2344, 2344,
+ 2344, 2344, 2344, 2344, 2345, 2345, 2345, 2345, 2345, 2345,
+ 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345,
+ 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345,
+ 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345,
+
+ 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345, 2345,
+ 2345, 2345, 2345, 2345, 2347, 0, 2347, 2347, 2347, 3981,
+ 3983, 4615, 0, 0, 2347, 2347, 2347, 2347, 0, 3987,
+ 3981, 3983, 4615, 3981, 3983, 2347, 2347, 2347, 2347, 2347,
+ 3987, 2347, 0, 3987, 0, 0, 0, 0, 2347, 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, 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, 2353,
+
+ 3990, 4620, 4626, 0, 0, 0, 0, 2353, 0, 2353,
+ 0, 3990, 4620, 4626, 3990, 2353, 2353, 2353, 2353, 2353,
+ 2353, 2353, 2353, 0, 0, 0, 2353, 2353, 2353, 2353,
+ 2353, 2353, 2353, 2353, 2353, 2353, 2353, 2353, 2353, 2353,
+ 2356, 3992, 2356, 3995, 0, 4636, 0, 4640, 2356, 2356,
+ 2356, 2356, 3992, 3998, 3995, 3992, 4636, 3995, 4640, 2356,
+ 2356, 2356, 2356, 2356, 3998, 2356, 0, 3998, 0, 0,
+ 0, 0, 2356, 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,
+
+ 2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357,
+ 2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357, 2357,
+ 2357, 2357, 2357, 2359, 4002, 2359, 4005, 0, 4642, 0,
+ 4643, 2359, 2359, 2359, 2359, 4002, 4008, 4005, 4002, 4642,
+ 4005, 4643, 2359, 2359, 2359, 2359, 2359, 4008, 2359, 0,
+ 4008, 0, 0, 0, 0, 2359, 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, 2362, 2362, 2362, 2362, 2362, 2362, 2362, 2362,
+ 2362, 2362, 2362, 2362, 2362, 2362, 2362, 2362, 2362, 2362,
+
+ 2362, 2362, 2362, 2362, 2362, 2362, 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, 2363, 2363, 2363, 2363,
+ 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363, 2363,
+ 2363, 2363, 2363, 2363, 2363, 2363, 2364, 0, 2364, 0,
+ 0, 4648, 0, 4653, 2364, 2364, 2364, 2364, 2792, 2792,
+ 2792, 2792, 4648, 4010, 4653, 2364, 2364, 2364, 2364, 2364,
+ 2792, 2364, 4016, 2792, 4010, 0, 4020, 4010, 2364, 2365,
+ 4024, 4709, 4712, 4016, 0, 0, 4016, 4020, 0, 2365,
+
+ 4020, 4024, 4709, 4712, 4024, 2365, 2365, 2365, 2365, 2365,
+ 2365, 2365, 2365, 0, 0, 2792, 2365, 2365, 2365, 2365,
+ 2365, 2365, 2365, 2365, 2365, 2365, 2365, 2365, 2365, 2365,
+ 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,
+ 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, 2369, 2369, 2369, 2369, 2369, 2369, 2369, 2369,
+ 2369, 2369, 2369, 2369, 2369, 2369, 2369, 2369, 2369, 2369,
+ 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, 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,
+ 2372, 4027, 2372, 4030, 0, 4722, 0, 4725, 2372, 2372,
+ 2372, 2372, 4027, 4044, 4030, 4027, 4722, 4030, 4725, 2372,
+
+ 2372, 2372, 2372, 2372, 4044, 2372, 0, 4044, 0, 0,
+ 0, 0, 2372, 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, 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, 2379, 2379, 2379, 2379, 2379,
+
+ 2379, 2379, 2379, 2379, 2379, 2379, 2379, 2379, 2379, 2379,
+ 2379, 2379, 2379, 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, 2381, 2381, 2381, 2381, 2381,
+ 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2381, 2381,
+ 2381, 2381, 2381, 2382, 0, 2382, 0, 0, 4727, 0,
+ 4734, 2382, 2382, 2382, 2382, 2803, 2803, 2803, 2803, 4727,
+ 4052, 4734, 2382, 2382, 2382, 2382, 2382, 2803, 2382, 4065,
+ 2803, 4052, 0, 4079, 4052, 2382, 2383, 4081, 4745, 4753,
+
+ 4065, 0, 0, 4065, 4079, 0, 2383, 4079, 4081, 4745,
+ 4753, 4081, 2383, 2383, 2383, 2383, 2383, 2383, 2383, 2383,
+ 0, 0, 2803, 2383, 2383, 2383, 2383, 2383, 2383, 2383,
+ 2383, 2383, 2383, 2383, 2383, 2383, 2383, 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, 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, 2388, 2388, 2388, 2388, 2388, 2388,
+ 2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388, 2388,
+ 2388, 2388, 2388, 2388, 2388, 2388, 2388, 2389, 4093, 2389,
+ 4094, 0, 4757, 0, 4759, 2389, 2389, 2389, 2389, 4093,
+ 4097, 4094, 4093, 4757, 4094, 4759, 2389, 2389, 2389, 2389,
+ 2389, 4097, 2389, 0, 4097, 0, 0, 0, 0, 2389,
+ 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394,
+ 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394,
+ 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394,
+
+ 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394,
+ 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394, 2394,
+ 2396, 2396, 2396, 2396, 0, 2396, 2396, 4099, 2396, 0,
+ 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 4099, 0,
+ 2396, 4099, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396,
+ 2396, 0, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396,
+ 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2396, 2398, 2398,
+ 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398,
+ 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398,
+ 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398,
+
+ 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398,
+ 2398, 2398, 2398, 2398, 2398, 2398, 2398, 2398, 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, 2399, 2399, 2399, 2399, 2399,
+ 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399,
+ 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2399, 2400, 4103,
+ 4760, 4763, 0, 0, 0, 0, 0, 0, 2400, 0,
+ 4103, 4760, 4763, 4103, 2400, 2400, 2400, 2400, 2400, 2400,
+ 2400, 2400, 0, 0, 0, 2400, 2400, 2400, 2400, 2400,
+
+ 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2400, 2402,
+ 4105, 2402, 4118, 0, 4770, 0, 4793, 2402, 2402, 2402,
+ 2402, 4105, 4121, 4118, 4105, 4770, 4118, 4793, 2402, 2402,
+ 2402, 2402, 2402, 4121, 2402, 0, 4121, 0, 0, 0,
+ 0, 2402, 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, 2408, 2408,
+ 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408,
+ 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408, 2408,
+ 2408, 2408, 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, 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, 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, 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, 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, 2416, 4131, 4812, 4832, 0, 0, 0, 0,
+ 0, 0, 2416, 0, 4131, 4812, 4832, 4131, 2416, 2416,
+ 2416, 2416, 2416, 2416, 2416, 2416, 0, 0, 0, 2416,
+ 2416, 2416, 2416, 2416, 2416, 2416, 2416, 2416, 2416, 2416,
+ 2416, 2416, 2416, 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, 2417, 2417, 2417, 2417, 2417,
+ 2417, 2417, 2417, 2417, 2417, 2417, 2417, 2417, 2417, 2417,
+ 2417, 2417, 2417, 2418, 4132, 2418, 4145, 0, 4851, 0,
+ 4874, 2418, 2418, 2418, 2418, 4132, 4146, 4145, 4132, 4851,
+ 4145, 4874, 2418, 2418, 2418, 2418, 2418, 4146, 2418, 0,
+ 4146, 0, 0, 0, 0, 2418, 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, 2421, 2421,
+
+ 2421, 2421, 2421, 2421, 2421, 2421, 2421, 2421, 2421, 2421,
+ 2421, 2421, 2421, 2421, 2421, 2421, 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, 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, 2430, 2430,
+
+ 2430, 2430, 2430, 2430, 2430, 2430, 2430, 2430, 2430, 2430,
+ 2430, 2430, 2430, 2430, 2430, 2430, 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, 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, 2432, 4150, 2432, 4151,
+ 0, 4875, 0, 4878, 2432, 2432, 2432, 2432, 4150, 4154,
+ 4151, 4150, 4875, 4151, 4878, 2432, 2432, 2432, 2432, 2432,
+ 4154, 2432, 0, 4154, 0, 0, 0, 0, 2432, 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, 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, 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, 2436,
+
+ 4162, 4883, 4909, 0, 0, 0, 0, 0, 0, 2436,
+ 0, 4162, 4883, 4909, 4162, 2436, 2436, 2436, 2436, 2436,
+ 2436, 2436, 2436, 0, 0, 0, 2436, 2436, 2436, 2436,
+ 2436, 2436, 2436, 2436, 2436, 2436, 2436, 2436, 2436, 2436,
+ 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, 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,
+ 2438, 4164, 2438, 4166, 0, 4925, 0, 4945, 2438, 2438,
+
+ 2438, 2438, 4164, 4169, 4166, 4164, 4925, 4166, 4945, 2438,
+ 2438, 2438, 2438, 2438, 4169, 2438, 0, 4169, 0, 0,
+ 0, 0, 2438, 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, 2444, 2444, 2444, 2444, 2444, 2444, 2444,
+ 2444, 2444, 2444, 2444, 2444, 2444, 2444, 2444, 2444, 2444,
+ 2444, 2444, 2444, 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, 2445,
+
+ 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445,
+ 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445, 2445,
+ 2445, 2445, 2445, 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, 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, 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, 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,
+
+ 2469, 2469, 2469, 2469, 2469, 2469, 2469, 2469, 2469, 2469,
+ 2469, 2469, 2469, 2469, 2469, 2469, 2469, 2469, 2469, 2469,
+ 2469, 2469, 2469, 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, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+ 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470,
+ 2470, 2470, 2470, 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, 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, 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,
+ 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482,
+ 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482, 2482,
+ 2482, 2482, 2482, 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, 2486,
+
+ 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486,
+ 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486, 2486,
+ 2486, 2486, 2486, 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, 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, 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, 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, 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, 2496, 2496, 2496, 2496, 2496, 2496, 2496,
+ 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496,
+ 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496,
+
+ 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496,
+ 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496, 2496,
+ 2496, 2496, 2496, 2497, 4175, 4958, 4964, 0, 0, 0,
+ 0, 0, 0, 2497, 0, 4175, 4958, 4964, 4175, 2497,
+ 2497, 2497, 2497, 2497, 2497, 2497, 2497, 0, 0, 0,
+ 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497, 2497,
+ 2497, 2497, 2497, 2497, 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, 2503, 2503, 2503, 2503,
+
+ 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503, 2503,
+ 2503, 2503, 2503, 2503, 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, 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, 2509, 2509, 2509, 2509, 2509,
+
+ 2509, 2509, 2509, 2509, 2509, 2509, 2509, 2509, 2509, 2509,
+ 2509, 2509, 2509, 2509, 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, 2511, 2511, 2511, 2511, 2511, 2511,
+ 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511, 2511,
+ 2511, 2511, 2511, 2511, 2512, 4178, 4966, 4972, 0, 0,
+ 0, 0, 0, 0, 2512, 0, 4178, 4966, 4972, 4178,
+ 2512, 2512, 2512, 2512, 2512, 2512, 2512, 2512, 0, 0,
+ 0, 2512, 2512, 2512, 2512, 2512, 2512, 2512, 2512, 2512,
+
+ 2512, 2512, 2512, 2512, 2512, 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,
+ 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, 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, 2518, 4184, 2518, 4198, 0,
+ 4997, 0, 5009, 2518, 2518, 2518, 2518, 4184, 4201, 4198,
+ 4184, 4997, 4198, 5009, 2518, 2518, 2518, 2518, 2518, 4201,
+ 2518, 0, 4201, 0, 0, 0, 0, 2518, 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, 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, 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, 2521, 2521, 2521, 2521, 2521,
+ 2521, 2521, 2521, 2521, 2521, 2521, 2521, 2521, 2521, 2521,
+ 2521, 2521, 2521, 2521, 2521, 2521, 2521, 2521, 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, 2525, 2525, 2525, 2525, 2525,
+ 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525,
+ 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2525, 2526, 0,
+ 2526, 0, 0, 5013, 0, 5026, 2526, 2526, 2526, 2526,
+
+ 2805, 2805, 2805, 2805, 5013, 4204, 5026, 2526, 2526, 2526,
+ 2526, 2526, 2805, 2526, 4212, 2805, 4204, 0, 4217, 4204,
+ 2526, 2529, 4218, 5030, 5042, 4212, 0, 0, 4212, 4217,
+ 0, 2529, 4217, 4218, 5030, 5042, 4218, 2529, 2529, 2529,
+ 2529, 2529, 2529, 2529, 2529, 0, 0, 2805, 2529, 2529,
+ 2529, 2529, 2529, 2529, 2529, 2529, 2529, 2529, 2529, 2529,
+ 2529, 2529, 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, 2535, 4221, 5057, 5063, 0, 0, 0, 0,
+ 0, 0, 2535, 0, 4221, 5057, 5063, 4221, 2535, 2535,
+ 2535, 2535, 2535, 2535, 2535, 2535, 0, 0, 0, 2535,
+ 2535, 2535, 2535, 2535, 2535, 2535, 2535, 2535, 2535, 2535,
+ 2535, 2535, 2535, 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, 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, 2538, 2538, 2538, 2538, 2538, 2538, 2538,
+ 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538,
+ 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538,
+ 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538,
+ 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538, 2538,
+ 2538, 2538, 2538, 2541, 4222, 2541, 4232, 0, 5073, 0,
+ 5075, 2541, 2541, 2541, 2541, 4222, 4234, 4232, 4222, 5073,
+ 4232, 5075, 2541, 2541, 2541, 2541, 2541, 4234, 2541, 0,
+ 4234, 0, 0, 0, 0, 2541, 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, 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, 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, 2548, 0, 2548, 0,
+ 0, 5087, 0, 5099, 2548, 2548, 2548, 2548, 3127, 3127,
+
+ 3127, 3127, 5087, 4236, 5099, 2548, 2548, 2548, 2548, 2548,
+ 3127, 2548, 4239, 3127, 4236, 0, 4242, 4236, 2548, 2550,
+ 4243, 5102, 0, 4239, 0, 0, 4239, 4242, 0, 2550,
+ 4242, 4243, 5102, 0, 4243, 2550, 2550, 2550, 2550, 2550,
+ 2550, 2550, 2550, 0, 0, 3127, 2550, 2550, 2550, 2550,
+ 2550, 2550, 2550, 2550, 2550, 2550, 2550, 2550, 2550, 2550,
+ 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, 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551,
+
+ 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551, 2551,
+ 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, 2554, 2554, 2554, 2554, 2554, 2554, 2554, 2554,
+ 2554, 2554, 2554, 2554, 2554, 2554, 2554, 2554, 2554, 2554,
+ 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, 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,
+ 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,
+ 2558, 4247, 2558, 4248, 0, 0, 0, 0, 2558, 2558,
+ 2558, 2558, 4247, 4253, 4248, 4247, 0, 4248, 0, 2558,
+ 2558, 2558, 2558, 2558, 4253, 2558, 0, 4253, 0, 0,
+ 0, 0, 2558, 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, 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, 2564, 4262, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2564, 0, 4262, 0, 0, 4262, 2564,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 0, 0, 0,
+ 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564, 2564,
+ 2564, 2564, 2564, 2564, 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, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565,
+ 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565, 2565,
+ 2565, 2565, 2565, 2565, 2568, 4265, 2568, 4268, 0, 0,
+ 0, 0, 2568, 2568, 2568, 2568, 4265, 4280, 4268, 4265,
+ 0, 4268, 0, 2568, 2568, 2568, 2568, 2568, 4280, 2568,
+ 0, 4280, 0, 0, 0, 0, 2568, 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, 2569, 2569, 2569, 2569, 2569, 2569, 2569,
+
+ 2569, 2569, 2569, 2569, 2569, 2569, 2569, 2569, 2569, 2569,
+ 2569, 2569, 2569, 2569, 2569, 2569, 2569, 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, 2576, 4283, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2576, 0, 4283,
+ 0, 0, 4283, 2576, 2576, 2576, 2576, 2576, 2576, 2576,
+ 2576, 0, 0, 0, 2576, 2576, 2576, 2576, 2576, 2576,
+
+ 2576, 2576, 2576, 2576, 2576, 2576, 2576, 2576, 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, 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, 2579, 2579,
+ 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579,
+ 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579,
+ 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579,
+ 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579,
+
+ 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2579, 2582, 4292,
+ 2582, 4298, 0, 0, 0, 0, 2582, 2582, 2582, 2582,
+ 4292, 4319, 4298, 4292, 0, 4298, 0, 2582, 2582, 2582,
+ 2582, 2582, 4319, 2582, 0, 4319, 0, 0, 0, 0,
+ 2582, 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, 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, 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,
+ 2587, 2587, 2587, 2587, 2587, 2587, 2587, 2587, 2587, 2587,
+ 2587, 2587, 2587, 2587, 2587, 2587, 2587, 2587, 2587, 2587,
+ 2587, 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, 2593, 2593,
+ 2593, 2593, 2593, 2593, 2593, 2593, 2593, 2593, 2593, 2593,
+ 2593, 2593, 2593, 2593, 2593, 2593, 2593, 2593, 2593, 2593,
+ 2593, 2595, 4322, 0, 0, 0, 0, 0, 0, 2595,
+ 0, 2595, 0, 4322, 0, 0, 4322, 2595, 2595, 2595,
+ 2595, 2595, 2595, 2595, 2595, 0, 0, 0, 2595, 2595,
+ 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595, 2595,
+ 2595, 2595, 2596, 4325, 2596, 4327, 0, 0, 0, 0,
+ 2596, 2596, 2596, 2596, 4325, 4337, 4327, 4325, 0, 4327,
+
+ 0, 2596, 2596, 2596, 2596, 2596, 4337, 2596, 0, 4337,
+ 0, 0, 0, 0, 2596, 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, 2599, 2599, 2599, 2599, 2599,
+ 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599,
+ 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599,
+ 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599,
+
+ 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599, 2599,
+ 2599, 2599, 2599, 2599, 2599, 2601, 4341, 2601, 4343, 0,
+ 0, 0, 0, 2601, 2601, 2601, 2601, 4341, 4345, 4343,
+ 4341, 0, 4343, 0, 2601, 2601, 2601, 2601, 2601, 4345,
+ 2601, 0, 4345, 0, 0, 0, 0, 2601, 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, 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, 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, 2605, 2605,
+ 2605, 2605, 2605, 2605, 2605, 2605, 2605, 2605, 2605, 2605,
+ 2605, 2605, 2605, 2605, 2605, 2605, 2605, 2605, 2607, 4348,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2607, 0,
+ 4348, 0, 0, 4348, 2607, 2607, 2607, 2607, 2607, 2607,
+ 2607, 2607, 0, 0, 0, 2607, 2607, 2607, 2607, 2607,
+ 2607, 2607, 2607, 2607, 2607, 2607, 2607, 2607, 2607, 2608,
+ 4352, 2608, 4354, 0, 0, 0, 0, 2608, 2608, 2608,
+
+ 2608, 4352, 4367, 4354, 4352, 0, 4354, 0, 2608, 2608,
+ 2608, 2608, 2608, 4367, 2608, 0, 4367, 0, 0, 0,
+ 0, 2608, 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, 2610, 2610,
+ 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
+ 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610, 2610,
+ 2610, 2610, 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, 2613, 4370, 2613, 4383, 0, 0, 0, 0,
+ 2613, 2613, 2613, 2613, 4370, 4384, 4383, 4370, 0, 4383,
+ 0, 2613, 2613, 2613, 2613, 2613, 4384, 2613, 0, 4384,
+ 0, 0, 0, 0, 2613, 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,
+ 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, 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, 2621, 4388, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2621, 0, 4388, 0, 0,
+ 4388, 2621, 2621, 2621, 2621, 2621, 2621, 2621, 2621, 0,
+ 0, 0, 2621, 2621, 2621, 2621, 2621, 2621, 2621, 2621,
+ 2621, 2621, 2621, 2621, 2621, 2621, 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, 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, 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, 2623, 2623,
+ 2623, 2623, 2623, 2623, 2623, 2623, 2623, 2623, 2623, 2623,
+ 2623, 2623, 2623, 2623, 2623, 2623, 2626, 4390, 2626, 4404,
+
+ 0, 0, 0, 0, 2626, 2626, 2626, 2626, 4390, 4410,
+ 4404, 4390, 0, 4404, 0, 2626, 2626, 2626, 2626, 2626,
+ 4410, 2626, 0, 4410, 0, 0, 0, 0, 2626, 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, 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, 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2628,
+ 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2628, 2629,
+ 0, 2629, 0, 0, 0, 0, 0, 2629, 2629, 2629,
+ 2629, 3989, 3989, 3989, 3989, 0, 4425, 0, 2629, 2629,
+ 2629, 2629, 2629, 3989, 2629, 4428, 3989, 4425, 0, 4430,
+ 4425, 2629, 2630, 4440, 0, 0, 4428, 0, 0, 4428,
+ 4430, 0, 2630, 4430, 4440, 0, 0, 4440, 2630, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 0, 0, 3989, 2630,
+ 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630, 2630,
+
+ 2630, 2630, 2630, 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, 2635, 2635, 2635, 2635, 0, 2635, 2635,
+ 4453, 2635, 0, 2635, 2635, 2635, 2635, 2635, 2635, 2635,
+ 2635, 4453, 0, 2635, 4453, 2635, 2635, 2635, 2635, 2635,
+ 2635, 2635, 2635, 2635, 0, 2635, 2635, 2635, 2635, 2635,
+ 2635, 2635, 2635, 2635, 2635, 2635, 2635, 2635, 2635, 2635,
+
+ 2635, 2636, 4464, 2636, 4466, 0, 0, 0, 0, 2636,
+ 2636, 2636, 2636, 4464, 4469, 4466, 4464, 0, 4466, 0,
+ 2636, 2636, 2636, 2636, 2636, 4469, 2636, 0, 4469, 0,
+ 0, 0, 0, 2636, 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, 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, 2644, 4470, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2644, 0, 4470, 0, 0, 4470,
+
+ 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 0, 0,
+ 0, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644, 2644,
+ 2644, 2644, 2644, 2644, 2644, 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, 2646, 2646, 2646, 2646, 2646, 2646, 2646, 2646,
+ 2646, 2646, 2646, 2646, 2646, 2646, 2646, 2646, 2646, 2646,
+ 2646, 2646, 2646, 2646, 2646, 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, 2647, 2647, 2647, 2647, 2647,
+ 2647, 2647, 2647, 2647, 2647, 2647, 2647, 2647, 2647, 2647,
+ 2647, 2647, 2647, 2647, 2647, 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, 2649, 2649, 2649, 2649, 2649,
+ 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649, 2649,
+ 2649, 2649, 2649, 2649, 2649, 2650, 4472, 2650, 4476, 0,
+ 0, 0, 0, 2650, 2650, 2650, 2650, 4472, 4480, 4476,
+ 4472, 0, 4476, 0, 2650, 2650, 2650, 2650, 2650, 4480,
+
+ 2650, 0, 4480, 0, 0, 0, 0, 2650, 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, 2651, 2651,
+ 2651, 2651, 2651, 2651, 2651, 2651, 2651, 2651, 2651, 2651,
+ 2651, 2651, 2651, 2651, 2651, 2651, 2651, 2651, 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, 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,
+ 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2657,
+ 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2657, 2658, 4485,
+ 2658, 4487, 0, 0, 0, 0, 2658, 2658, 2658, 2658,
+ 4485, 4492, 4487, 4485, 0, 4487, 0, 2658, 2658, 2658,
+ 2658, 2658, 4492, 2658, 0, 4492, 0, 0, 0, 0,
+ 2658, 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660,
+
+ 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660,
+ 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660,
+ 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660,
+ 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660, 2660,
+ 2660, 2662, 0, 2662, 2662, 2662, 4494, 4504, 0, 0,
+ 0, 2662, 2662, 2662, 2662, 0, 4507, 4494, 4504, 0,
+ 4494, 4504, 2662, 2662, 2662, 2662, 2662, 4507, 2662, 0,
+ 4507, 0, 0, 0, 0, 2662, 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, 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, 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, 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, 2669, 2669, 2669, 2669,
+ 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669,
+ 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669,
+
+ 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669,
+ 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669, 2669,
+ 2669, 2669, 2669, 2669, 2669, 2669, 2670, 0, 2670, 0,
+ 0, 0, 0, 0, 2670, 2670, 2670, 2670, 4241, 4241,
+ 4241, 4241, 0, 4508, 0, 2670, 2670, 2670, 2670, 2670,
+ 4241, 2670, 4511, 4241, 4508, 0, 4513, 4508, 2670, 2671,
+ 4515, 0, 0, 4511, 0, 0, 4511, 4513, 0, 2671,
+ 4513, 4515, 0, 0, 4515, 2671, 2671, 2671, 2671, 2671,
+ 2671, 2671, 2671, 0, 0, 4241, 2671, 2671, 2671, 2671,
+ 2671, 2671, 2671, 2671, 2671, 2671, 2671, 2671, 2671, 2671,
+
+ 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676,
+ 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676,
+ 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676,
+ 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676,
+ 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676, 2676,
+ 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678,
+ 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678,
+ 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678,
+ 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678,
+ 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678, 2678,
+
+ 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680,
+ 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680,
+ 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680,
+ 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680,
+ 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680, 2680,
+ 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682,
+ 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682,
+ 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682,
+ 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682,
+ 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682, 2682,
+
+ 2683, 4524, 2683, 4529, 0, 0, 0, 0, 2683, 2683,
+ 2683, 2683, 4524, 4532, 4529, 4524, 0, 4529, 0, 2683,
+ 2683, 2683, 2683, 2683, 4532, 2683, 0, 4532, 0, 0,
+ 0, 0, 2683, 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, 2685, 4534, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2685, 0, 4534, 0, 0, 4534, 2685,
+
+ 2685, 2685, 2685, 2685, 2685, 2685, 2685, 0, 0, 0,
+ 2685, 2685, 2685, 2685, 2685, 2685, 2685, 2685, 2685, 2685,
+ 2685, 2685, 2685, 2685, 2686, 4535, 2686, 4537, 0, 0,
+ 0, 0, 2686, 2686, 2686, 2686, 4535, 4539, 4537, 4535,
+ 0, 4537, 0, 2686, 2686, 2686, 2686, 2686, 4539, 2686,
+ 4541, 4539, 0, 0, 0, 0, 2686, 2689, 4548, 2689,
+ 4552, 4541, 0, 0, 4541, 2689, 2689, 2689, 2689, 4548,
+ 4556, 4552, 4548, 0, 4552, 0, 2689, 2689, 2689, 2689,
+ 2689, 4556, 2689, 0, 4556, 0, 0, 0, 0, 2689,
+ 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, 2691, 2691, 2691,
+ 2691, 2691, 2691, 2691, 2691, 2691, 2691, 2691, 2691, 2691,
+ 2691, 2691, 2691, 2691, 2691, 2691, 2691, 2691, 2691, 2691,
+ 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, 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,
+ 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697,
+
+ 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697,
+ 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697,
+ 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697,
+ 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697, 2697,
+ 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, 2701, 2701, 2701, 2701,
+ 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
+ 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701, 2701,
+ 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, 2703, 2703, 2703, 2703,
+ 2703, 2703, 2703, 2703, 2703, 2703, 2703, 2703, 2703, 2703,
+ 2703, 2703, 2703, 2703, 2703, 2703, 2703, 2703, 2703, 2703,
+ 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704,
+ 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704,
+ 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704,
+ 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704,
+ 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704, 2704,
+ 2706, 4557, 0, 0, 0, 0, 0, 0, 2706, 0,
+
+ 2706, 0, 4557, 0, 0, 4557, 2706, 2706, 2706, 2706,
+ 2706, 2706, 2706, 2706, 0, 0, 0, 2706, 2706, 2706,
+ 2706, 2706, 2706, 2706, 2706, 2706, 2706, 2706, 2706, 2706,
+ 2706, 2707, 4560, 2707, 4562, 0, 0, 0, 0, 2707,
+ 2707, 2707, 2707, 4560, 4574, 4562, 4560, 0, 4562, 0,
+ 2707, 2707, 2707, 2707, 2707, 4574, 2707, 0, 4574, 0,
+ 0, 0, 0, 2707, 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, 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, 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, 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710,
+ 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710, 2710,
+ 2710, 2710, 2710, 2710, 2712, 4577, 2712, 4597, 0, 0,
+ 0, 0, 2712, 2712, 2712, 2712, 4577, 4598, 4597, 4577,
+ 0, 4597, 0, 2712, 2712, 2712, 2712, 2712, 4598, 2712,
+ 0, 4598, 0, 0, 0, 0, 2712, 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, 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, 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, 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, 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, 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, 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, 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, 2720, 4601, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 2720, 0, 4601,
+ 0, 0, 4601, 2720, 2720, 2720, 2720, 2720, 2720, 2720,
+ 2720, 0, 0, 0, 2720, 2720, 2720, 2720, 2720, 2720,
+ 2720, 2720, 2720, 2720, 2720, 2720, 2720, 2720, 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, 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, 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, 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, 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, 2726, 4602,
+ 2726, 4606, 0, 0, 0, 0, 2726, 2726, 2726, 2726,
+
+ 4602, 4614, 4606, 4602, 0, 4606, 0, 2726, 2726, 2726,
+ 2726, 2726, 4614, 2726, 0, 4614, 0, 0, 0, 0,
+ 2726, 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, 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, 2728, 2728, 2728, 2728, 2728, 2728, 2728,
+ 2728, 2728, 2728, 2728, 2728, 2728, 2728, 2728, 2728, 2728,
+ 2728, 2731, 4617, 2731, 4619, 0, 0, 0, 0, 2731,
+ 2731, 2731, 2731, 4617, 4622, 4619, 4617, 0, 4619, 0,
+ 2731, 2731, 2731, 2731, 2731, 4622, 2731, 0, 4622, 0,
+ 0, 0, 0, 2731, 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,
+ 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733,
+ 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733, 2733,
+
+ 2733, 2733, 2733, 2733, 2735, 0, 2735, 2735, 2735, 4624,
+ 4625, 0, 0, 0, 2735, 2735, 2735, 2735, 0, 4628,
+ 4624, 4625, 0, 4624, 4625, 2735, 2735, 2735, 2735, 2735,
+ 4628, 2735, 0, 4628, 0, 0, 0, 0, 2735, 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,
+ 2738, 2738, 2738, 2738, 2738, 2738, 2738, 2738, 2738, 2738,
+ 2738, 2738, 2738, 2738, 2738, 2738, 2738, 2738, 2738, 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, 2739, 2739, 2739, 2739,
+ 2739, 2739, 2739, 2739, 2739, 2739, 2739, 2739, 2739, 2739,
+ 2739, 2739, 2739, 2739, 2739, 2739, 2739, 2739, 2739, 2740,
+ 4632, 2740, 4635, 0, 0, 0, 0, 2740, 2740, 2740,
+ 2740, 4632, 4638, 4635, 4632, 0, 4635, 0, 2740, 2740,
+ 2740, 2740, 2740, 4638, 2740, 4639, 4638, 4641, 0, 4645,
+ 0, 2740, 2743, 4647, 0, 0, 4639, 0, 4641, 4639,
+ 4645, 4641, 2743, 4645, 4647, 0, 0, 4647, 2743, 2743,
+ 2743, 2743, 2743, 2743, 2743, 2743, 0, 0, 0, 2743,
+
+ 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743, 2743,
+ 2743, 2743, 2743, 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, 2748, 2748, 2748, 2748, 2748,
+ 2748, 2748, 2748, 2748, 2748, 2748, 2748, 2748, 2748, 2748,
+ 2748, 2748, 2748, 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, 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, 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, 2753, 2753, 2753, 2753, 2753, 2753, 2753,
+ 2753, 2753, 2753, 2753, 2753, 2753, 2753, 2753, 2753, 2753,
+ 2753, 2753, 2753, 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, 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, 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, 2756, 2756, 2756, 2756, 2756, 2756, 2756,
+ 2756, 2756, 2756, 2756, 2756, 2756, 2756, 2756, 2756, 2756,
+ 2756, 2756, 2756, 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, 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, 2759, 4650, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2759, 0, 4650, 0, 0, 4650, 2759,
+ 2759, 2759, 2759, 2759, 2759, 2759, 2759, 0, 0, 0,
+ 2759, 2759, 2759, 2759, 2759, 2759, 2759, 2759, 2759, 2759,
+ 2759, 2759, 2759, 2759, 2761, 4651, 2761, 4655, 0, 0,
+ 0, 0, 2761, 2761, 2761, 2761, 4651, 4657, 4655, 4651,
+ 0, 4655, 0, 2761, 2761, 2761, 2761, 2761, 4657, 2761,
+ 0, 4657, 0, 0, 0, 0, 2761, 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, 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, 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, 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, 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, 2771, 2771, 2771, 2771, 2771, 2771, 2771,
+ 2771, 2771, 2771, 2771, 2771, 2771, 2771, 2771, 2771, 2771,
+ 2771, 2771, 2771, 2771, 2771, 2771, 2771, 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, 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, 2774, 4668, 2774,
+ 4670, 0, 0, 0, 0, 2774, 2774, 2774, 2774, 4668,
+
+ 4674, 4670, 4668, 0, 4670, 0, 2774, 2774, 2774, 2774,
+ 2774, 4674, 2774, 0, 4674, 0, 0, 0, 0, 2774,
+ 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, 2775, 2775, 2775, 2775,
+ 2775, 2775, 2775, 2775, 2775, 2775, 2775, 2775, 2775, 2775,
+ 2775, 2775, 2775, 2775, 2775, 2775, 2775, 2775, 2775, 2775,
+ 2776, 4691, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2776, 0, 4691, 0, 0, 4691, 2776, 2776, 2776, 2776,
+ 2776, 2776, 2776, 2776, 0, 0, 0, 2776, 2776, 2776,
+
+ 2776, 2776, 2776, 2776, 2776, 2776, 2776, 2776, 2776, 2776,
+ 2776, 2777, 4700, 2777, 4702, 0, 0, 0, 0, 2777,
+ 2777, 2777, 2777, 4700, 4708, 4702, 4700, 0, 4702, 0,
+ 2777, 2777, 2777, 2777, 2777, 4708, 2777, 0, 4708, 0,
+ 0, 0, 0, 2777, 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, 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, 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, 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, 2793, 2793, 2793, 2793, 2793, 2793,
+ 2793, 2793, 2793, 2793, 2793, 2793, 2793, 2793, 2793, 2793,
+ 2793, 2793, 2793, 2793, 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, 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, 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, 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, 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, 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,
+ 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814,
+ 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814, 2814,
+ 2814, 2814, 2814, 2814, 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, 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, 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, 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, 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, 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, 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, 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, 2824, 2824, 2824, 2824, 2824, 2824, 2824, 2824, 2824,
+ 2824, 2824, 2824, 2824, 2824, 2824, 2824, 2824, 2824, 2824,
+ 2824, 2824, 2824, 2824, 2826, 2826, 2826, 2826, 0, 4711,
+ 0, 4713, 0, 4719, 2826, 2826, 0, 4724, 4729, 2826,
+ 4711, 2826, 4713, 4711, 4719, 4713, 4732, 4719, 4724, 4729,
+ 4736, 4724, 4729, 0, 4747, 4749, 4750, 4732, 0, 0,
+ 4732, 4736, 0, 0, 4736, 4747, 4749, 4750, 4747, 4749,
+ 4750, 2826, 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, 2827, 2827,
+ 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827,
+ 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827, 2827,
+ 2827, 2827, 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, 2829, 2829,
+ 2829, 2829, 2829, 2829, 2829, 2829, 2829, 2829, 2829, 2829,
+ 2829, 2829, 2829, 2829, 2829, 2829, 2829, 2829, 2829, 2829,
+ 2829, 2829, 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, 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, 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, 2839, 2839, 2839, 2839, 2839, 2839, 2839, 2839,
+ 2839, 2839, 2839, 2839, 2839, 2839, 2839, 2839, 2839, 2839,
+ 2839, 2839, 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, 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, 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, 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, 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, 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, 2848, 4752, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2848, 0, 4752, 0, 0, 4752, 2848, 2848,
+ 2848, 2848, 2848, 2848, 2848, 2848, 0, 0, 0, 2848,
+ 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2848, 2848,
+ 2848, 2848, 2848, 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, 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, 2851, 4756, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2851, 0, 4756, 0, 0, 4756, 2851,
+ 2851, 2851, 2851, 2851, 2851, 2851, 2851, 0, 0, 0,
+ 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851, 2851,
+ 2851, 2851, 2851, 2851, 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, 2852, 2852, 2852, 2852, 2852,
+ 2852, 2852, 2852, 2852, 2852, 2852, 2852, 2852, 2852, 2852,
+ 2852, 2852, 2852, 2852, 2854, 4758, 2854, 4762, 0, 0,
+ 0, 0, 2854, 2854, 2854, 2854, 4758, 4765, 4762, 4758,
+ 0, 4762, 0, 2854, 2854, 2854, 2854, 2854, 4765, 2854,
+ 0, 4765, 0, 0, 0, 0, 2854, 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, 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, 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, 2862, 2862, 2862, 2862, 2862, 2862,
+ 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2862, 2862,
+
+ 2862, 2862, 2862, 2862, 2862, 2862, 2862, 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, 2864, 2864, 2864,
+ 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2864,
+ 2864, 2864, 2864, 2864, 2864, 2864, 2864, 2865, 4769, 2865,
+ 4771, 0, 0, 0, 0, 2865, 2865, 2865, 2865, 4769,
+ 4792, 4771, 4769, 0, 4771, 0, 2865, 2865, 2865, 2865,
+ 2865, 4792, 2865, 4802, 4792, 4811, 0, 4817, 0, 2865,
+ 2872, 4822, 0, 0, 4802, 0, 4811, 4802, 4817, 4811,
+
+ 2872, 4817, 4822, 0, 0, 4822, 2872, 2872, 2872, 2872,
+ 2872, 2872, 2872, 2872, 0, 0, 0, 2872, 2872, 2872,
+ 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872, 2872,
+ 2872, 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, 2876, 4831, 2876, 4833, 0, 0, 0, 0, 2876,
+ 2876, 2876, 2876, 4831, 4835, 4833, 4831, 0, 4833, 0,
+
+ 2876, 2876, 2876, 2876, 2876, 4835, 2876, 0, 4835, 0,
+ 0, 0, 0, 2876, 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, 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, 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, 2879, 2879, 2879, 2879,
+
+ 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879,
+ 2879, 2879, 2879, 2879, 2880, 4836, 2880, 4853, 0, 0,
+ 0, 0, 2880, 2880, 2880, 2880, 4836, 4857, 4853, 4836,
+ 0, 4853, 0, 2880, 2880, 2880, 2880, 2880, 4857, 2880,
+ 0, 4857, 0, 0, 0, 0, 2880, 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, 2881, 2881, 2881, 2881, 2881, 2881,
+ 2881, 2881, 2881, 2881, 2881, 2881, 2881, 2881, 2881, 2881,
+ 2881, 2881, 2881, 2881, 2881, 2881, 2881, 2883, 4859, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 2883, 0, 4859,
+ 0, 0, 4859, 2883, 2883, 2883, 2883, 2883, 2883, 2883,
+ 2883, 0, 0, 0, 2883, 2883, 2883, 2883, 2883, 2883,
+ 2883, 2883, 2883, 2883, 2883, 2883, 2883, 2883, 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, 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, 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, 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, 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, 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, 2890, 4869,
+ 2890, 4871, 0, 0, 0, 0, 2890, 2890, 2890, 2890,
+
+ 4869, 4872, 4871, 4869, 0, 4871, 0, 2890, 2890, 2890,
+ 2890, 2890, 4872, 2890, 0, 4872, 0, 0, 0, 0,
+ 2890, 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, 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, 2897, 2897, 2897, 2897, 2897, 2897, 2897,
+ 2897, 2897, 2897, 2897, 2897, 2897, 2897, 2897, 2897, 2897,
+ 2897, 2898, 4873, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2898, 0, 4873, 0, 0, 4873, 2898, 2898, 2898,
+ 2898, 2898, 2898, 2898, 2898, 0, 0, 0, 2898, 2898,
+ 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898, 2898,
+ 2898, 2898, 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, 2899, 2899, 2899, 2899, 2899, 2899,
+
+ 2899, 2899, 2899, 2899, 2899, 2899, 2899, 2899, 2899, 2899,
+ 2899, 2899, 2902, 4877, 2902, 4880, 0, 0, 0, 0,
+ 2902, 2902, 2902, 2902, 4877, 4882, 4880, 4877, 0, 4880,
+ 0, 2902, 2902, 2902, 2902, 2902, 4882, 2902, 0, 4882,
+ 0, 0, 0, 0, 2902, 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, 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904,
+ 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904, 2904,
+ 2904, 2904, 2904, 2904, 2904, 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,
+ 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, 2910, 4885, 0, 0, 0,
+ 0, 0, 0, 2910, 0, 2910, 0, 4885, 0, 0,
+ 4885, 2910, 2910, 2910, 2910, 2910, 2910, 2910, 2910, 0,
+ 0, 0, 2910, 2910, 2910, 2910, 2910, 2910, 2910, 2910,
+ 2910, 2910, 2910, 2910, 2910, 2910, 2912, 4887, 2912, 4889,
+ 0, 0, 0, 0, 2912, 2912, 2912, 2912, 4887, 4896,
+
+ 4889, 4887, 0, 4889, 0, 2912, 2912, 2912, 2912, 2912,
+ 4896, 2912, 0, 4896, 0, 0, 0, 0, 2912, 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, 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, 2915, 2915, 2915, 2915, 2915,
+
+ 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915,
+ 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2915, 2917,
+ 4898, 2917, 4908, 0, 0, 0, 0, 2917, 2917, 2917,
+ 2917, 4898, 4911, 4908, 4898, 0, 4908, 0, 2917, 2917,
+ 2917, 2917, 2917, 4911, 2917, 0, 4911, 0, 0, 0,
+ 0, 2917, 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, 2920, 4913, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2920, 0, 4913, 0, 0, 4913, 2920, 2920,
+ 2920, 2920, 2920, 2920, 2920, 2920, 0, 0, 0, 2920,
+ 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920, 2920,
+ 2920, 2920, 2920, 2921, 4924, 2921, 4930, 0, 0, 0,
+ 0, 2921, 2921, 2921, 2921, 4924, 4931, 4930, 4924, 0,
+ 4930, 0, 2921, 2921, 2921, 2921, 2921, 4931, 2921, 0,
+ 4931, 0, 0, 0, 0, 2921, 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, 2924, 2924, 2924, 2924, 2924, 2924, 2924,
+ 2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924, 2924,
+ 2924, 2924, 2924, 2924, 2924, 2924, 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, 2926, 2926, 2926, 2926, 2926, 2926, 2926,
+ 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926, 2926,
+ 2926, 2926, 2926, 2926, 2926, 2926, 2927, 4933, 2927, 4943,
+ 0, 0, 0, 0, 2927, 2927, 2927, 2927, 4933, 4944,
+ 4943, 4933, 0, 4943, 0, 2927, 2927, 2927, 2927, 2927,
+
+ 4944, 2927, 0, 4944, 0, 0, 0, 0, 2927, 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, 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, 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, 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, 2940,
+ 4948, 2940, 4957, 0, 0, 0, 0, 2940, 2940, 2940,
+ 2940, 4948, 4960, 4957, 4948, 0, 4957, 0, 2940, 2940,
+ 2940, 2940, 2940, 4960, 2940, 4963, 4960, 4965, 0, 4967,
+ 0, 2940, 2942, 4969, 0, 0, 4963, 0, 4965, 4963,
+ 4967, 4965, 2942, 4967, 4969, 0, 0, 4969, 2942, 2942,
+ 2942, 2942, 2942, 2942, 2942, 2942, 0, 0, 0, 2942,
+ 2942, 2942, 2942, 2942, 2942, 2942, 2942, 2942, 2942, 2942,
+ 2942, 2942, 2942, 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, 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, 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, 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, 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,
+ 2948, 2948, 2948, 2948, 2948, 2948, 2948, 2948, 2948, 2948,
+ 2948, 2948, 2948, 2948, 2948, 2948, 2948, 2948, 2948, 2948,
+ 2948, 2948, 2948, 2949, 4970, 2949, 4971, 0, 0, 0,
+ 0, 2949, 2949, 2949, 2949, 4970, 4974, 4971, 4970, 0,
+ 4971, 0, 2949, 2949, 2949, 2949, 2949, 4974, 2949, 0,
+ 4974, 0, 0, 0, 0, 2949, 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, 2950, 2950, 2950, 2950,
+
+ 2950, 2950, 2950, 2950, 2950, 2950, 2950, 2950, 2950, 2950,
+ 2950, 2950, 2950, 2950, 2950, 2950, 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, 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, 2955, 4977, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2955, 0, 4977, 0,
+ 0, 4977, 2955, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+ 0, 0, 0, 2955, 2955, 2955, 2955, 2955, 2955, 2955,
+
+ 2955, 2955, 2955, 2955, 2955, 2955, 2955, 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, 2956, 2956, 2956, 2956, 2956, 2956, 2956,
+ 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2956,
+ 2956, 2956, 2956, 2956, 2956, 2956, 2956, 2959, 4980, 2959,
+ 4991, 0, 0, 0, 0, 2959, 2959, 2959, 2959, 4980,
+ 4993, 4991, 4980, 0, 4991, 0, 2959, 2959, 2959, 2959,
+ 2959, 4993, 2959, 0, 4993, 0, 0, 0, 0, 2959,
+ 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, 2960, 2960, 2960, 2960,
+ 2960, 2960, 2960, 2960, 2960, 2960, 2960, 2960, 2960, 2960,
+ 2960, 2960, 2960, 2960, 2960, 2960, 2960, 2960, 2960, 2960,
+ 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, 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,
+ 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,
+ 2968, 2968, 2968, 2968, 2968, 2968, 2968, 2968, 2968, 2968,
+ 2968, 2968, 2968, 2968, 2968, 2968, 2968, 2968, 2968, 2968,
+ 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, 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,
+ 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, 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,
+ 2974, 4994, 2974, 4996, 0, 0, 0, 0, 2974, 2974,
+ 2974, 2974, 4994, 5006, 4996, 4994, 0, 4996, 0, 2974,
+ 2974, 2974, 2974, 2974, 5006, 2974, 0, 5006, 0, 0,
+ 0, 0, 2974, 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, 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, 2976, 5011, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2976, 0, 5011, 0, 0, 5011, 2976,
+ 2976, 2976, 2976, 2976, 2976, 2976, 2976, 0, 0, 0,
+ 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976, 2976,
+ 2976, 2976, 2976, 2976, 2977, 5012, 2977, 5024, 0, 0,
+ 0, 0, 2977, 2977, 2977, 2977, 5012, 5025, 5024, 5012,
+ 0, 5024, 0, 2977, 2977, 2977, 2977, 2977, 5025, 2977,
+ 0, 5025, 0, 0, 0, 0, 2977, 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, 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, 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, 2983, 5028, 2983,
+
+ 5032, 0, 0, 0, 0, 2983, 2983, 2983, 2983, 5028,
+ 5034, 5032, 5028, 0, 5032, 0, 2983, 2983, 2983, 2983,
+ 2983, 5034, 2983, 0, 5034, 0, 0, 0, 0, 2983,
+ 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,
+ 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, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985,
+ 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985, 2985,
+ 2988, 5036, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2988, 0, 5036, 0, 0, 5036, 2988, 2988, 2988, 2988,
+ 2988, 2988, 2988, 2988, 0, 0, 0, 2988, 2988, 2988,
+ 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988, 2988,
+ 2988, 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, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993,
+ 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993, 2993,
+ 2993, 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, 2995, 2995, 2995, 2995, 2995, 2995, 2995, 2995,
+ 2995, 2995, 2995, 2995, 2995, 2995, 2995, 2995, 2995, 2995,
+ 2995, 2996, 5039, 2996, 5040, 0, 0, 0, 0, 2996,
+ 2996, 2996, 2996, 5039, 5044, 5040, 5039, 0, 5040, 0,
+ 2996, 2996, 2996, 2996, 2996, 5044, 2996, 0, 5044, 0,
+
+ 0, 0, 0, 2996, 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, 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, 3002, 5046, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3002, 0, 5046, 0, 0, 5046,
+ 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 0, 0,
+ 0, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002, 3002,
+ 3002, 3002, 3002, 3002, 3002, 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, 3003, 3003, 3003, 3003, 3003, 3003, 3003, 3003, 3003,
+ 3003, 3003, 3003, 3003, 3003, 3003, 3003, 3003, 3003, 3003,
+ 3003, 3003, 3003, 3003, 3003, 3006, 5059, 3006, 5061, 0,
+ 0, 0, 0, 3006, 3006, 3006, 3006, 5059, 5062, 5061,
+ 5059, 0, 5061, 0, 3006, 3006, 3006, 3006, 3006, 5062,
+ 3006, 0, 5062, 0, 0, 0, 0, 3006, 3007, 3007,
+ 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007,
+ 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007,
+
+ 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007,
+ 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007,
+ 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3007, 3009, 5072,
+ 0, 0, 0, 0, 0, 0, 3009, 0, 3009, 0,
+ 5072, 0, 0, 5072, 3009, 3009, 3009, 3009, 3009, 3009,
+ 3009, 3009, 0, 0, 0, 3009, 3009, 3009, 3009, 3009,
+ 3009, 3009, 3009, 3009, 3009, 3009, 3009, 3009, 3009, 3010,
+ 5074, 3010, 5076, 0, 0, 0, 0, 3010, 3010, 3010,
+ 3010, 5074, 5078, 5076, 5074, 0, 5076, 0, 3010, 3010,
+ 3010, 3010, 3010, 5078, 3010, 0, 5078, 0, 0, 0,
+
+ 0, 3010, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,
+ 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,
+ 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,
+ 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,
+ 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012, 3012,
+ 3012, 3012, 3014, 5089, 3014, 5098, 0, 0, 0, 0,
+ 3014, 3014, 3014, 3014, 5089, 5101, 5098, 5089, 0, 5098,
+ 0, 3014, 3014, 3014, 3014, 3014, 5101, 3014, 0, 5101,
+ 0, 0, 0, 0, 3014, 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, 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, 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021,
+ 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021,
+ 3021, 3021, 3021, 3021, 3021, 3023, 3023, 3023, 3023, 3023,
+ 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023,
+
+ 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023,
+ 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023,
+ 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023, 3023,
+ 3023, 3023, 3023, 3023, 3023, 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, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
+ 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024, 3024,
+ 3024, 3024, 3024, 3024, 3024, 3025, 5104, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3025, 0, 5104, 0, 0,
+
+ 5104, 3025, 3025, 3025, 3025, 3025, 3025, 3025, 3025, 0,
+ 0, 0, 3025, 3025, 3025, 3025, 3025, 3025, 3025, 3025,
+ 3025, 3025, 3025, 3025, 3025, 3025, 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, 3026, 3026, 3026, 3026, 3026, 3026, 3026,
+ 3026, 3026, 3026, 3026, 3026, 3026, 3026, 3026, 3026, 3026,
+ 3026, 3026, 3026, 3026, 3026, 3026, 3027, 3027, 3027, 3027,
+ 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027,
+ 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027,
+
+ 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027,
+ 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027, 3027,
+ 3027, 3027, 3027, 3027, 3027, 3027, 3030, 5106, 3030, 5108,
+ 0, 0, 0, 0, 3030, 3030, 3030, 3030, 5106, 5111,
+ 5108, 5106, 0, 5108, 0, 3030, 3030, 3030, 3030, 3030,
+ 5111, 3030, 0, 5111, 0, 0, 0, 0, 3030, 3031,
+ 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031,
+ 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031,
+ 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031,
+ 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031,
+
+ 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 3031, 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, 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, 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, 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, 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, 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, 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, 3042, 3042, 3042, 3042, 3042,
+ 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042,
+ 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 3042, 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, 3043,
+ 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043,
+
+ 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3043, 3044,
+ 5118, 0, 0, 0, 0, 0, 0, 0, 0, 3044,
+ 0, 5118, 0, 0, 5118, 3044, 3044, 3044, 3044, 3044,
+ 3044, 3044, 3044, 0, 0, 0, 3044, 3044, 3044, 3044,
+ 3044, 3044, 3044, 3044, 3044, 3044, 3044, 3044, 3044, 3044,
+ 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046,
+ 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046,
+ 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046,
+ 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046,
+ 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046, 3046,
+
+ 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047,
+ 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047,
+ 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047,
+ 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047,
+ 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047, 3047,
+ 3049, 5120, 3049, 5129, 0, 0, 0, 0, 3049, 3049,
+ 3049, 3049, 5120, 5137, 5129, 5120, 0, 5129, 0, 3049,
+ 3049, 3049, 3049, 3049, 5137, 3049, 0, 5137, 0, 0,
+ 0, 0, 3049, 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, 3050, 3050, 3050, 3050, 3050,
+ 3050, 3050, 3050, 3050, 3050, 3050, 3050, 3050, 3050, 3050,
+ 3050, 3050, 3050, 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, 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, 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, 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, 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, 3060,
+ 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060,
+ 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060, 3060,
+ 3060, 3060, 3060, 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, 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, 3064,
+ 3064, 3064, 3064, 3064, 3064, 3064, 3064, 3064, 3064, 3064,
+ 3064, 3064, 3064, 3064, 3064, 3064, 3064, 3064, 3064, 3064,
+ 3064, 3064, 3064, 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,
+ 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065,
+ 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065, 3065,
+ 3065, 3065, 3065, 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,
+ 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067,
+ 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067, 3067,
+ 3067, 3067, 3067, 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, 3068, 3068, 3068, 3068, 3068, 3068, 3068,
+ 3068, 3068, 3068, 3068, 3068, 3068, 3068, 3068, 3068, 3068,
+ 3068, 3068, 3068, 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, 3070, 3070, 3070, 3070, 3070,
+ 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070, 3070,
+ 3070, 3070, 3070, 3071, 5138, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3071, 0, 5138, 0, 0, 5138, 3071,
+
+ 3071, 3071, 3071, 3071, 3071, 3071, 3071, 0, 0, 0,
+ 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071, 3071,
+ 3071, 3071, 3071, 3071, 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, 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, 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, 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, 3077, 5140, 3077, 5141, 0, 0,
+ 0, 0, 3077, 3077, 3077, 3077, 5140, 5142, 5141, 5140,
+ 0, 5141, 0, 3077, 3077, 3077, 3077, 3077, 5142, 3077,
+ 0, 5142, 0, 0, 0, 0, 3077, 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, 3080, 3080, 3080, 3080, 3080, 3080, 3080,
+ 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080, 3080,
+
+ 3080, 3080, 3080, 3080, 3080, 3080, 3080, 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, 3084,
+ 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084, 3084,
+ 3084, 3084, 3084, 3084, 3084, 3084, 3084, 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, 3085, 3085, 3085, 3085, 3085, 3085, 3085,
+ 3085, 3085, 3085, 3085, 3085, 3085, 3085, 3085, 3085, 3085,
+
+ 3085, 3085, 3085, 3085, 3085, 3085, 3085, 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, 3087, 3087,
+ 3087, 3087, 3087, 3087, 3087, 3087, 3087, 3087, 3087, 3087,
+ 3087, 3087, 3087, 3087, 3087, 3087, 3087, 3088, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3088, 0, 0,
+ 0, 0, 0, 3088, 3088, 3088, 3088, 3088, 3088, 3088,
+ 3088, 0, 0, 0, 3088, 3088, 3088, 3088, 3088, 3088,
+ 3088, 3088, 3088, 3088, 3088, 3088, 3088, 3088, 3090, 0,
+
+ 3090, 0, 0, 0, 0, 0, 3090, 3090, 3090, 3090,
+ 0, 0, 0, 0, 0, 0, 0, 3090, 3090, 3090,
+ 3090, 3090, 0, 3090, 0, 0, 0, 0, 0, 0,
+ 3090, 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, 3097, 0, 3097, 0, 0, 0, 0, 0, 3097,
+ 3097, 3097, 3097, 0, 0, 0, 0, 0, 0, 0,
+
+ 3097, 3097, 3097, 3097, 3097, 0, 3097, 0, 0, 0,
+ 0, 0, 0, 3097, 3099, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3099, 0, 0, 0, 0, 0,
+ 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 0, 0,
+ 0, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099, 3099,
+ 3099, 3099, 3099, 3099, 3099, 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, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100,
+ 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100, 3100,
+
+ 3100, 3100, 3100, 3100, 3100, 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, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102,
+ 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102, 3102,
+ 3102, 3102, 3102, 3102, 3102, 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, 3103, 3103, 3103, 3103, 3103,
+ 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103, 3103,
+
+ 3103, 3103, 3103, 3103, 3103, 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, 3105, 3105, 3105, 3105, 3105,
+ 3105, 3105, 3105, 3105, 3105, 3105, 3105, 3105, 3105, 3105,
+ 3105, 3105, 3105, 3105, 3105, 3106, 0, 3106, 0, 0,
+ 0, 0, 0, 3106, 3106, 3106, 3106, 0, 0, 0,
+ 0, 0, 0, 0, 3106, 3106, 3106, 3106, 3106, 0,
+ 3106, 0, 0, 0, 0, 0, 0, 3106, 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, 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, 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,
+ 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113,
+ 3113, 3113, 3113, 3113, 3113, 3113, 3113, 3113, 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, 3114, 3114, 3114, 3114, 3114, 3114,
+ 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114,
+ 3114, 3114, 3114, 3114, 3114, 3114, 3114, 3114, 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, 3116, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3116, 0,
+
+ 0, 0, 0, 0, 3116, 3116, 3116, 3116, 3116, 3116,
+ 3116, 3116, 0, 0, 0, 3116, 3116, 3116, 3116, 3116,
+ 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3116, 3118,
+ 0, 3118, 0, 0, 0, 0, 0, 3118, 3118, 3118,
+ 3118, 0, 0, 0, 0, 0, 0, 0, 3118, 3118,
+ 3118, 3118, 3118, 0, 3118, 0, 0, 0, 0, 0,
+ 0, 3118, 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, 3121, 3121, 3121, 3121, 3121, 3121,
+
+ 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121, 3121,
+ 3121, 3121, 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, 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, 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, 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, 3139, 3139, 3139, 3139, 0, 0, 0, 0,
+ 0, 0, 3139, 3139, 0, 0, 0, 3139, 0, 3139,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3139,
+ 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, 3140, 3140, 3140,
+ 3140, 3140, 3140, 3140, 3140, 3140, 3140, 3140, 3140, 3140,
+ 3140, 3140, 3140, 3140, 3140, 3140, 3140, 3140, 3140, 3140,
+ 3141, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3141, 0, 0, 0, 0, 0, 3141, 3141, 3141, 3141,
+ 3141, 3141, 3141, 3141, 0, 0, 0, 3141, 3141, 3141,
+ 3141, 3141, 3141, 3141, 3141, 3141, 3141, 3141, 3141, 3141,
+
+ 3141, 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, 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, 3149, 3149, 3149, 3149, 0, 0, 0, 0, 0,
+ 0, 3149, 3149, 0, 0, 0, 3149, 0, 3149, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3149, 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, 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, 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, 3152, 3152, 3152, 3152, 3152,
+ 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152,
+ 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 3152, 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, 3155, 3155, 3155, 3155, 3155,
+ 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155,
+ 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 3155, 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,
+ 3162, 3162, 3162, 3162, 3162, 3162, 3162, 3162, 3162, 3162,
+ 3162, 3162, 3162, 3162, 3162, 3162, 3162, 3162, 3162, 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, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165,
+ 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3165, 3167,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3167,
+ 0, 0, 0, 0, 0, 3167, 3167, 3167, 3167, 3167,
+ 3167, 3167, 3167, 0, 0, 0, 3167, 3167, 3167, 3167,
+ 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167, 3167,
+ 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, 3169, 3169, 3169, 3169, 3169, 3169, 3169, 3169, 3169,
+ 3169, 3169, 3169, 3169, 3169, 3169, 3169, 3169, 3169, 3169,
+ 3170, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3170, 0, 0, 0, 0, 0, 3170, 3170, 3170, 3170,
+ 3170, 3170, 3170, 3170, 0, 0, 0, 3170, 3170, 3170,
+ 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170, 3170,
+ 3170, 3171, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3171, 0, 0, 0, 0, 0, 3171, 3171, 3171,
+
+ 3171, 3171, 3171, 3171, 3171, 0, 0, 0, 3171, 3171,
+ 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171, 3171,
+ 3171, 3171, 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, 3176, 3176,
+ 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176,
+ 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176, 3176,
+ 3176, 3176, 3180, 0, 0, 0, 0, 0, 0, 0,
+ 3180, 0, 3180, 0, 0, 0, 0, 0, 3180, 3180,
+ 3180, 3180, 3180, 3180, 3180, 3180, 0, 0, 0, 3180,
+
+ 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180, 3180,
+ 3180, 3180, 3180, 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, 3181, 3181, 3181, 3181, 3181, 3181, 3181,
+ 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181, 3181,
+ 3181, 3181, 3181, 3182, 0, 3182, 0, 0, 0, 0,
+ 0, 3182, 3182, 3182, 3182, 0, 0, 0, 0, 0,
+ 0, 0, 3182, 3182, 3182, 3182, 3182, 0, 3182, 0,
+ 0, 0, 0, 0, 0, 3182, 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, 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, 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, 3187, 0, 3187, 0,
+
+ 0, 0, 0, 0, 3187, 3187, 3187, 3187, 0, 0,
+ 0, 0, 0, 0, 0, 3187, 3187, 3187, 3187, 3187,
+ 0, 3187, 0, 0, 0, 0, 0, 0, 3187, 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, 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, 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, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189,
+ 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3189, 3191,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3191,
+ 0, 0, 0, 0, 0, 3191, 3191, 3191, 3191, 3191,
+ 3191, 3191, 3191, 0, 0, 0, 3191, 3191, 3191, 3191,
+ 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191, 3191,
+ 3192, 0, 3192, 0, 0, 0, 0, 0, 3192, 3192,
+ 3192, 3192, 0, 0, 0, 0, 0, 0, 0, 3192,
+ 3192, 3192, 3192, 3192, 0, 3192, 0, 0, 0, 0,
+
+ 0, 0, 3192, 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, 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, 3197, 3197, 3197, 3197, 3197,
+ 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197, 3197,
+
+ 3197, 3197, 3197, 3198, 0, 3198, 0, 0, 0, 0,
+ 0, 3198, 3198, 3198, 3198, 0, 0, 0, 0, 0,
+ 0, 0, 3198, 3198, 3198, 3198, 3198, 0, 3198, 0,
+ 0, 0, 0, 0, 0, 3198, 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, 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, 3208, 0, 0, 0,
+ 0, 0, 0, 0, 3208, 0, 3208, 0, 0, 0,
+
+ 0, 0, 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3208,
+ 0, 0, 0, 3208, 3208, 3208, 3208, 3208, 3208, 3208,
+ 3208, 3208, 3208, 3208, 3208, 3208, 3208, 3209, 0, 3209,
+ 0, 0, 0, 0, 0, 3209, 3209, 3209, 3209, 0,
+ 0, 0, 0, 0, 0, 0, 3209, 3209, 3209, 3209,
+ 3209, 0, 3209, 0, 0, 0, 0, 0, 0, 3209,
+ 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, 3211, 3211, 3211, 3211,
+ 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211,
+
+ 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211, 3211,
+ 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,
+ 3212, 3212, 3212, 3212, 3212, 3212, 3212, 3212, 3212, 3212,
+ 3212, 3212, 3212, 3212, 3212, 3212, 3212, 3212, 3212, 3212,
+ 3214, 0, 3214, 0, 0, 0, 0, 0, 3214, 3214,
+ 3214, 3214, 0, 0, 0, 0, 0, 0, 0, 3214,
+ 3214, 3214, 3214, 3214, 0, 3214, 0, 0, 0, 0,
+ 0, 0, 3214, 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, 3215,
+ 3215, 3215, 3215, 3215, 3215, 3215, 3215, 3215, 3215, 3215,
+ 3215, 3215, 3215, 3215, 3215, 3215, 3215, 3215, 3215, 3215,
+ 3215, 3215, 3215, 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,
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218, 3218,
+ 3218, 3218, 3218, 3219, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 3219, 0, 0, 0, 0, 0, 3219,
+ 3219, 3219, 3219, 3219, 3219, 3219, 3219, 0, 0, 0,
+ 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219, 3219,
+ 3219, 3219, 3219, 3219, 3220, 0, 3220, 0, 0, 0,
+ 0, 0, 3220, 3220, 3220, 3220, 0, 0, 0, 0,
+ 0, 0, 0, 3220, 3220, 3220, 3220, 3220, 0, 3220,
+ 0, 0, 0, 0, 0, 0, 3220, 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, 3221,
+
+ 3221, 3221, 3221, 3221, 3221, 3221, 3221, 3221, 3221, 3221,
+ 3221, 3221, 3221, 3221, 3221, 3221, 3221, 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, 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, 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, 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, 3226, 0, 3226,
+ 0, 0, 0, 0, 0, 3226, 3226, 3226, 3226, 0,
+ 0, 0, 0, 0, 0, 0, 3226, 3226, 3226, 3226,
+ 3226, 0, 3226, 0, 0, 0, 0, 0, 0, 3226,
+ 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,
+ 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232,
+ 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232, 3232,
+
+ 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,
+ 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,
+
+ 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, 3236, 3236, 3236, 3236,
+ 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236,
+ 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236, 3236,
+ 3237, 0, 3237, 0, 0, 0, 0, 0, 3237, 3237,
+ 3237, 3237, 0, 0, 0, 0, 0, 0, 0, 3237,
+ 3237, 3237, 3237, 3237, 0, 3237, 0, 0, 0, 0,
+ 0, 0, 3237, 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, 3238, 3238, 3238, 3238, 3238, 3238,
+ 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238, 3238,
+ 3238, 3238, 3238, 3239, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3239, 0, 0, 0, 0, 0, 3239,
+ 3239, 3239, 3239, 3239, 3239, 3239, 3239, 0, 0, 0,
+ 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239, 3239,
+ 3239, 3239, 3239, 3239, 3240, 0, 3240, 0, 0, 0,
+ 0, 0, 3240, 3240, 3240, 3240, 0, 0, 0, 0,
+ 0, 0, 0, 3240, 3240, 3240, 3240, 3240, 0, 3240,
+
+ 0, 0, 0, 0, 0, 0, 3240, 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, 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, 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, 3246, 3246, 3246, 3246, 3246, 3246, 3246,
+ 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3246,
+
+ 3246, 3246, 3246, 3246, 3246, 3246, 3246, 3247, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3247, 0, 0,
+ 0, 0, 0, 3247, 3247, 3247, 3247, 3247, 3247, 3247,
+ 3247, 0, 0, 0, 3247, 3247, 3247, 3247, 3247, 3247,
+ 3247, 3247, 3247, 3247, 3247, 3247, 3247, 3247, 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, 3249, 0,
+
+ 3249, 0, 0, 0, 0, 0, 3249, 3249, 3249, 3249,
+ 0, 0, 0, 0, 0, 0, 0, 3249, 3249, 3249,
+ 3249, 3249, 0, 3249, 0, 0, 0, 0, 0, 0,
+ 3249, 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, 3253, 3253, 3253,
+ 3253, 3253, 3253, 3253, 3253, 3253, 3253, 3253, 3253, 3253,
+ 3253, 3253, 3253, 3253, 3253, 3253, 3253, 3253, 3253, 3253,
+ 3253, 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, 3254, 3254,
+ 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254,
+ 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254, 3254,
+ 3254, 3258, 0, 0, 0, 0, 0, 0, 0, 3258,
+ 0, 3258, 0, 0, 0, 0, 0, 3258, 3258, 3258,
+ 3258, 3258, 3258, 3258, 3258, 0, 0, 0, 3258, 3258,
+ 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258, 3258,
+ 3258, 3258, 3259, 0, 3259, 0, 0, 0, 0, 0,
+ 3259, 3259, 3259, 3259, 0, 0, 0, 0, 0, 0,
+ 0, 3259, 3259, 3259, 3259, 3259, 0, 3259, 0, 0,
+
+ 0, 0, 0, 0, 3259, 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,
+ 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, 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, 3264, 0, 3264, 0, 0,
+ 0, 0, 0, 3264, 3264, 3264, 3264, 0, 0, 0,
+ 0, 0, 0, 0, 3264, 3264, 3264, 3264, 3264, 0,
+ 3264, 0, 0, 0, 0, 0, 0, 3264, 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,
+ 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265,
+ 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3265, 3267, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3267, 0,
+
+ 0, 0, 0, 0, 3267, 3267, 3267, 3267, 3267, 3267,
+ 3267, 3267, 0, 0, 0, 3267, 3267, 3267, 3267, 3267,
+ 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3267, 3268,
+ 0, 3268, 0, 0, 0, 0, 0, 3268, 3268, 3268,
+ 3268, 0, 0, 0, 0, 0, 0, 0, 3268, 3268,
+ 3268, 3268, 3268, 0, 3268, 0, 0, 0, 0, 0,
+ 0, 3268, 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, 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, 3273, 3273, 3273, 3273, 3273, 3273,
+ 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273, 3273,
+ 3273, 3273, 3274, 0, 3274, 0, 0, 0, 0, 0,
+ 3274, 3274, 3274, 3274, 0, 0, 0, 0, 0, 0,
+ 0, 3274, 3274, 3274, 3274, 3274, 0, 3274, 0, 0,
+ 0, 0, 0, 0, 3274, 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,
+ 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, 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, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
+ 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285, 3285,
+ 3285, 3285, 3285, 3285, 3285, 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, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287,
+ 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287, 3287,
+ 3287, 3287, 3287, 3287, 3287, 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, 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, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
+ 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291, 3291,
+ 3291, 3291, 3291, 3291, 3291, 3295, 0, 0, 0, 0,
+ 0, 0, 0, 3295, 0, 3295, 0, 0, 0, 0,
+ 0, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 0,
+ 0, 0, 3295, 3295, 3295, 3295, 3295, 3295, 3295, 3295,
+ 3295, 3295, 3295, 3295, 3295, 3295, 3297, 0, 3297, 0,
+ 0, 0, 0, 0, 3297, 3297, 3297, 3297, 0, 0,
+
+ 0, 0, 0, 0, 0, 3297, 3297, 3297, 3297, 3297,
+ 0, 3297, 0, 0, 0, 0, 0, 0, 3297, 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, 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, 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, 3302,
+ 0, 3302, 0, 0, 0, 0, 0, 3302, 3302, 3302,
+ 3302, 0, 0, 0, 0, 0, 0, 0, 3302, 3302,
+ 3302, 3302, 3302, 0, 3302, 0, 0, 0, 0, 0,
+ 0, 3302, 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, 3303, 3303, 3303, 3303, 3303, 3303,
+ 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303, 3303,
+
+ 3303, 3303, 3305, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3305, 0, 0, 0, 0, 0, 3305, 3305,
+ 3305, 3305, 3305, 3305, 3305, 3305, 0, 0, 0, 3305,
+ 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305, 3305,
+ 3305, 3305, 3305, 3306, 0, 3306, 0, 0, 0, 0,
+ 0, 3306, 3306, 3306, 3306, 0, 0, 0, 0, 0,
+ 0, 0, 3306, 3306, 3306, 3306, 3306, 0, 3306, 0,
+ 0, 0, 0, 0, 0, 3306, 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, 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, 3311, 3311,
+ 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311, 3311,
+ 3311, 3311, 3311, 3311, 3311, 3311, 3312, 0, 3312, 0,
+ 0, 0, 0, 0, 3312, 3312, 3312, 3312, 0, 0,
+ 0, 0, 0, 0, 0, 3312, 3312, 3312, 3312, 3312,
+
+ 0, 3312, 0, 0, 0, 0, 0, 0, 3312, 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, 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, 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, 3325, 3325, 3325, 3325, 3325, 3325, 3325, 3325, 3325,
+
+ 3325, 3325, 3325, 3325, 3325, 3325, 3325, 3325, 3325, 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, 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, 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, 3330,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3330,
+ 0, 0, 0, 0, 0, 3330, 3330, 3330, 3330, 3330,
+ 3330, 3330, 3330, 0, 0, 0, 3330, 3330, 3330, 3330,
+ 3330, 3330, 3330, 3330, 3330, 3330, 3330, 3330, 3330, 3330,
+ 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, 3332, 3332, 3332, 3332, 3332, 3332, 3332, 3332,
+ 3332, 3332, 3332, 3332, 3332, 3332, 3332, 3332, 3332, 3332,
+
+ 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333,
+ 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333,
+ 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333,
+ 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333,
+ 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333, 3333,
+ 3335, 0, 3335, 0, 0, 0, 0, 0, 3335, 3335,
+ 3335, 3335, 0, 0, 0, 0, 0, 0, 0, 3335,
+ 3335, 3335, 3335, 3335, 0, 3335, 0, 0, 0, 0,
+ 0, 0, 3335, 3336, 3336, 3336, 3336, 3336, 3336, 3336,
+ 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336,
+
+ 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336,
+ 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336,
+ 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336, 3336,
+ 3336, 3336, 3336, 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, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
+ 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
+
+ 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
+ 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
+ 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341, 3341,
+ 3341, 3341, 3341, 3342, 0, 3342, 0, 0, 0, 0,
+ 0, 3342, 3342, 3342, 3342, 0, 0, 0, 0, 0,
+ 0, 0, 3342, 3342, 3342, 3342, 3342, 0, 3342, 0,
+ 0, 0, 0, 0, 0, 3342, 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, 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, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
+ 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344, 3344,
+ 3344, 3344, 3344, 3344, 3344, 3344, 3347, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3347, 0, 0, 0,
+ 0, 0, 3347, 3347, 3347, 3347, 3347, 3347, 3347, 3347,
+ 0, 0, 0, 3347, 3347, 3347, 3347, 3347, 3347, 3347,
+
+ 3347, 3347, 3347, 3347, 3347, 3347, 3347, 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, 3351,
+ 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351, 3351,
+ 3351, 3351, 3351, 3351, 3351, 3351, 3351, 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, 3354, 0, 3354,
+ 0, 0, 0, 0, 0, 3354, 3354, 3354, 3354, 0,
+ 0, 0, 0, 0, 0, 0, 3354, 3354, 3354, 3354,
+ 3354, 0, 3354, 0, 0, 0, 0, 0, 0, 3354,
+ 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355,
+ 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355,
+ 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355,
+ 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355,
+ 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355, 3355,
+ 3360, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 3360, 0, 0, 0, 0, 0, 3360, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 0, 0, 0, 3360, 3360, 3360,
+ 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360, 3360,
+ 3360, 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, 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, 3364, 0, 3364, 0, 0, 0, 0, 0, 3364,
+ 3364, 3364, 3364, 0, 0, 0, 0, 0, 0, 0,
+
+ 3364, 3364, 3364, 3364, 3364, 0, 3364, 0, 0, 0,
+ 0, 0, 0, 3364, 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, 3365, 3365, 3365, 3365, 3365, 3365, 3365, 3365, 3365,
+ 3365, 3365, 3365, 3365, 3365, 3365, 3365, 3365, 3365, 3365,
+ 3365, 3365, 3365, 3365, 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, 3367, 3367, 3367, 3367,
+
+ 3367, 3367, 3367, 3367, 3367, 3367, 3367, 3367, 3367, 3367,
+ 3367, 3367, 3367, 3367, 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, 3368, 3368, 3368, 3368,
+ 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368, 3368,
+ 3368, 3368, 3368, 3368, 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,
+ 3372, 3372, 3372, 3372, 3372, 3372, 3372, 3372, 3372, 3372,
+
+ 3372, 3372, 3372, 3372, 3372, 3372, 3372, 3372, 3372, 3372,
+ 3372, 3372, 3372, 3372, 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, 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,
+ 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374,
+
+ 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374, 3374,
+ 3374, 3374, 3374, 3374, 3375, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3375, 0, 0, 0, 0, 0,
+ 3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375, 0, 0,
+ 0, 3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375, 3375,
+ 3375, 3375, 3375, 3375, 3375, 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, 3379, 0, 3379, 0, 0,
+ 0, 0, 0, 3379, 3379, 3379, 3379, 0, 0, 0,
+ 0, 0, 0, 0, 3379, 3379, 3379, 3379, 3379, 0,
+ 3379, 0, 0, 0, 0, 0, 0, 3379, 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, 3380, 3380, 3380, 3380, 3380, 3380,
+ 3380, 3380, 3380, 3380, 3380, 3380, 3380, 3380, 3380, 3380,
+ 3380, 3380, 3380, 3380, 3380, 3380, 3380, 3380, 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, 3382, 3382,
+ 3382, 3382, 3382, 3382, 3382, 3382, 3382, 3382, 3382, 3382,
+ 3382, 3382, 3382, 3382, 3382, 3382, 3382, 3382, 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,
+ 3384, 3384, 3384, 3384, 3384, 3384, 3384, 3384, 3384, 3384,
+ 3384, 3384, 3384, 3384, 3384, 3384, 3384, 3384, 3385, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3385, 0,
+
+ 0, 0, 0, 0, 3385, 3385, 3385, 3385, 3385, 3385,
+ 3385, 3385, 0, 0, 0, 3385, 3385, 3385, 3385, 3385,
+ 3385, 3385, 3385, 3385, 3385, 3385, 3385, 3385, 3385, 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, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387,
+ 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 3387, 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, 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, 3390,
+ 0, 3390, 0, 0, 0, 0, 0, 3390, 3390, 3390,
+ 3390, 0, 0, 0, 0, 0, 0, 0, 3390, 3390,
+ 3390, 3390, 3390, 0, 3390, 0, 0, 0, 0, 0,
+ 0, 3390, 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, 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, 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, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
+ 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392, 3392,
+ 3392, 3392, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
+ 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
+ 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
+ 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
+
+ 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394, 3394,
+ 3394, 3394, 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, 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, 3397, 0, 3397, 0, 0, 0, 0, 0,
+ 3397, 3397, 3397, 3397, 0, 0, 0, 0, 0, 0,
+ 0, 3397, 3397, 3397, 3397, 3397, 0, 3397, 0, 0,
+ 0, 0, 0, 0, 3397, 3399, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 3399, 0, 0, 0, 0,
+ 0, 3399, 3399, 3399, 3399, 3399, 3399, 3399, 3399, 0,
+ 0, 0, 3399, 3399, 3399, 3399, 3399, 3399, 3399, 3399,
+ 3399, 3399, 3399, 3399, 3399, 3399, 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, 3400, 3400, 3400, 3400, 3400, 3400, 3400,
+ 3400, 3400, 3400, 3400, 3400, 3400, 3400, 3400, 3400, 3400,
+ 3400, 3400, 3400, 3400, 3400, 3400, 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, 3403, 3403,
+ 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403, 3403,
+ 3403, 3403, 3403, 3403, 3403, 3403, 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, 3405, 3405,
+ 3405, 3405, 3405, 3405, 3405, 3405, 3405, 3405, 3405, 3405,
+ 3405, 3405, 3405, 3405, 3405, 3405, 3406, 0, 3406, 0,
+ 0, 0, 0, 0, 3406, 3406, 3406, 3406, 0, 0,
+
+ 0, 0, 0, 0, 0, 3406, 3406, 3406, 3406, 3406,
+ 0, 3406, 0, 0, 0, 0, 0, 0, 3406, 3412,
+ 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
+ 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
+ 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
+ 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412,
+ 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3412, 3413,
+ 0, 3413, 0, 0, 0, 0, 0, 3413, 3413, 3413,
+ 3413, 0, 0, 0, 0, 0, 0, 0, 3413, 3413,
+ 3413, 3413, 3413, 0, 3413, 0, 0, 0, 0, 0,
+
+ 0, 3413, 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, 3416, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3416, 0, 0, 0, 0, 0, 3416, 3416,
+ 3416, 3416, 3416, 3416, 3416, 3416, 0, 0, 0, 3416,
+ 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416, 3416,
+ 3416, 3416, 3416, 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, 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, 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, 3419, 3419, 3419, 3419, 3419,
+ 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419, 3419,
+ 3419, 3419, 3419, 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, 3421, 3421, 3421, 3421, 3421, 3421,
+ 3421, 3421, 3421, 3421, 3421, 3421, 3421, 3421, 3421, 3421,
+ 3421, 3421, 3421, 3422, 0, 3422, 0, 0, 0, 0,
+ 0, 3422, 3422, 3422, 3422, 0, 0, 0, 0, 0,
+ 0, 0, 3422, 3422, 3422, 3422, 3422, 0, 3422, 0,
+ 0, 0, 0, 0, 0, 3422, 3429, 3429, 3429, 3429,
+ 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429,
+ 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429,
+
+ 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429,
+ 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429, 3429,
+ 3429, 3429, 3429, 3429, 3429, 3429, 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, 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, 3435, 0, 0, 0,
+ 0, 0, 0, 0, 3435, 0, 3435, 0, 0, 0,
+ 0, 0, 3435, 3435, 3435, 3435, 3435, 3435, 3435, 3435,
+
+ 0, 0, 0, 3435, 3435, 3435, 3435, 3435, 3435, 3435,
+ 3435, 3435, 3435, 3435, 3435, 3435, 3435, 3437, 0, 3437,
+ 0, 0, 0, 0, 0, 3437, 3437, 3437, 3437, 0,
+ 0, 0, 0, 0, 0, 0, 3437, 3437, 3437, 3437,
+ 3437, 0, 3437, 0, 0, 0, 0, 0, 0, 3437,
+ 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, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438,
+ 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438, 3438,
+
+ 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, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439,
+ 3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439, 3439,
+ 3441, 0, 3441, 0, 0, 0, 0, 0, 3441, 3441,
+ 3441, 3441, 0, 0, 0, 0, 0, 0, 0, 3441,
+ 3441, 3441, 3441, 3441, 0, 3441, 0, 0, 0, 0,
+ 0, 0, 3441, 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, 3445,
+ 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445,
+ 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445, 3445,
+ 3445, 3445, 3445, 3446, 0, 3446, 0, 0, 0, 0,
+ 0, 3446, 3446, 3446, 3446, 0, 0, 0, 0, 0,
+ 0, 0, 3446, 3446, 3446, 3446, 3446, 0, 3446, 0,
+ 0, 0, 0, 0, 0, 3446, 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, 3448, 3448, 3448, 3448,
+ 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448,
+ 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448,
+ 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448,
+ 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448, 3448,
+ 3448, 3448, 3448, 3448, 3448, 3448, 3451, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3451, 0, 0, 0,
+ 0, 0, 3451, 3451, 3451, 3451, 3451, 3451, 3451, 3451,
+ 0, 0, 0, 3451, 3451, 3451, 3451, 3451, 3451, 3451,
+
+ 3451, 3451, 3451, 3451, 3451, 3451, 3451, 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, 3455,
+ 3455, 3455, 3455, 3455, 3455, 3455, 3455, 3455, 3455, 3455,
+ 3455, 3455, 3455, 3455, 3455, 3455, 3455, 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, 3457, 3457,
+ 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3457,
+
+ 3457, 3457, 3457, 3457, 3457, 3457, 3457, 3458, 0, 3458,
+ 0, 0, 0, 0, 0, 3458, 3458, 3458, 3458, 0,
+ 0, 0, 0, 0, 0, 0, 3458, 3458, 3458, 3458,
+ 3458, 0, 3458, 0, 0, 0, 0, 0, 0, 3458,
+ 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, 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,
+ 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
+
+ 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
+ 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
+ 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
+ 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465, 3465,
+ 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, 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,
+ 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, 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,
+ 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, 3471, 3471, 3471,
+ 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471,
+ 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471, 3471,
+ 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,
+ 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
+ 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
+ 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
+ 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
+ 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484, 3484,
+ 3487, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 3487, 0, 0, 0, 0, 0, 3487, 3487, 3487, 3487,
+ 3487, 3487, 3487, 3487, 0, 0, 0, 3487, 3487, 3487,
+ 3487, 3487, 3487, 3487, 3487, 3487, 3487, 3487, 3487, 3487,
+ 3487, 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, 3494, 3494, 3494, 3494, 3494, 3494, 3494,
+ 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494, 3494,
+ 3494, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497,
+ 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497,
+
+ 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497,
+ 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497,
+ 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497, 3497,
+ 3497, 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, 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, 3499, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3499, 0, 0, 0, 0, 0, 3499, 3499, 3499,
+
+ 3499, 3499, 3499, 3499, 3499, 0, 0, 0, 3499, 3499,
+ 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499, 3499,
+ 3499, 3499, 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, 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, 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, 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, 3504, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3504, 0, 0, 0, 0, 0, 3504, 3504,
+ 3504, 3504, 3504, 3504, 3504, 3504, 0, 0, 0, 3504,
+ 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504, 3504,
+ 3504, 3504, 3504, 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,
+ 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507,
+
+ 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507, 3507,
+ 3507, 3507, 3507, 3509, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3509, 0, 0, 0, 0, 0, 3509,
+ 3509, 3509, 3509, 3509, 3509, 3509, 3509, 0, 0, 0,
+ 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509, 3509,
+ 3509, 3509, 3509, 3509, 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, 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, 3513, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3513, 0, 0, 0, 0, 0,
+ 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 0, 0,
+ 0, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513, 3513,
+ 3513, 3513, 3513, 3513, 3513, 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, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515,
+ 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515, 3515,
+ 3515, 3515, 3515, 3515, 3515, 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,
+ 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, 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, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
+ 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523, 3523,
+ 3523, 3523, 3523, 3523, 3523, 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, 3527, 3527, 3527,
+ 3527, 3527, 3527, 3527, 3527, 3527, 3527, 3527, 3527, 3527,
+ 3527, 3527, 3527, 3527, 3527, 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, 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, 3529, 3529, 3529, 3529,
+ 3529, 3529, 3529, 3529, 3529, 3529, 3529, 3529, 3529, 3529,
+ 3529, 3529, 3529, 3529, 3529, 3532, 0, 3532, 0, 0,
+ 0, 0, 0, 3532, 3532, 3532, 3532, 0, 0, 0,
+ 0, 0, 0, 0, 3532, 3532, 3532, 3532, 3532, 0,
+ 3532, 0, 0, 0, 0, 0, 0, 3532, 3533, 3533,
+ 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533,
+ 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533,
+
+ 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533,
+ 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533,
+ 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3533, 3534, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3534, 0,
+ 0, 0, 0, 0, 3534, 3534, 3534, 3534, 3534, 3534,
+ 3534, 3534, 0, 0, 0, 3534, 3534, 3534, 3534, 3534,
+ 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3534, 3535,
+ 0, 3535, 0, 0, 0, 0, 0, 3535, 3535, 3535,
+ 3535, 0, 0, 0, 0, 0, 0, 0, 3535, 3535,
+ 3535, 3535, 3535, 0, 3535, 0, 0, 0, 0, 0,
+
+ 0, 3535, 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, 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, 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, 3541, 3541,
+ 3541, 3541, 3541, 3541, 3541, 3541, 3541, 3541, 3541, 3541,
+ 3541, 3541, 3541, 3541, 3541, 3541, 3541, 3541, 3541, 3541,
+
+ 3541, 3541, 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, 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, 3543,
+ 3543, 3543, 3543, 3543, 3543, 3543, 3543, 3543, 3543, 3543,
+ 3543, 3543, 3543, 3543, 3543, 3543, 3543, 3543, 3543, 3543,
+
+ 3543, 3543, 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, 3546, 3546, 3546, 3546, 3546, 3546,
+ 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546, 3546,
+ 3546, 3546, 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, 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, 3549, 0, 3549, 0, 0, 0, 0, 0,
+ 3549, 3549, 3549, 3549, 0, 0, 0, 0, 0, 0,
+ 0, 3549, 3549, 3549, 3549, 3549, 0, 3549, 0, 0,
+ 0, 0, 0, 0, 3549, 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, 3550, 3550, 3550,
+ 3550, 3550, 3550, 3550, 3550, 3550, 3550, 3550, 3550, 3550,
+ 3550, 3550, 3550, 3550, 3550, 3551, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3551, 0, 0, 0, 0,
+
+ 0, 3551, 3551, 3551, 3551, 3551, 3551, 3551, 3551, 0,
+ 0, 0, 3551, 3551, 3551, 3551, 3551, 3551, 3551, 3551,
+ 3551, 3551, 3551, 3551, 3551, 3551, 3552, 0, 3552, 0,
+ 0, 0, 0, 0, 3552, 3552, 3552, 3552, 0, 0,
+ 0, 0, 0, 0, 0, 3552, 3552, 3552, 3552, 3552,
+ 0, 3552, 0, 0, 0, 0, 0, 0, 3552, 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, 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, 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, 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, 3560, 3560, 3560, 3560,
+ 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560,
+
+ 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 3560, 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, 3561,
+ 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561,
+ 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 3561, 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, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563,
+
+ 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 3563, 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, 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,
+ 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565,
+
+ 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 3565, 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, 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, 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, 3569,
+ 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569,
+ 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569,
+ 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569,
+ 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569,
+ 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 3569, 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, 3571, 3571,
+ 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571,
+
+ 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 3571, 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, 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, 3573,
+ 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573,
+ 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573,
+ 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573,
+ 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573,
+
+ 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 3573, 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, 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, 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, 3577, 3577, 3577, 3577, 3577,
+ 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577,
+
+ 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 3577, 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, 3579,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3579,
+ 0, 0, 0, 0, 0, 3579, 3579, 3579, 3579, 3579,
+ 3579, 3579, 3579, 0, 0, 0, 3579, 3579, 3579, 3579,
+ 3579, 3579, 3579, 3579, 3579, 3579, 3579, 3579, 3579, 3579,
+
+ 3581, 0, 3581, 0, 0, 0, 0, 0, 3581, 3581,
+ 3581, 3581, 0, 0, 0, 0, 0, 0, 0, 3581,
+ 3581, 3581, 3581, 3581, 0, 3581, 0, 0, 0, 0,
+ 0, 0, 3581, 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, 3582, 3582, 3582, 3582, 3582,
+ 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582, 3582,
+ 3582, 3582, 3582, 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, 3583, 3583, 3583, 3583, 3583,
+ 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583, 3583,
+ 3583, 3583, 3583, 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, 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, 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, 3586, 3586, 3586, 3586, 3586,
+ 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3586, 3586,
+ 3586, 3586, 3586, 3587, 0, 3587, 0, 0, 0, 0,
+ 0, 3587, 3587, 3587, 3587, 0, 0, 0, 0, 0,
+ 0, 0, 3587, 3587, 3587, 3587, 3587, 0, 3587, 0,
+ 0, 0, 0, 0, 0, 3587, 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, 3589, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3589, 0, 0, 0,
+ 0, 0, 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3589,
+ 0, 0, 0, 3589, 3589, 3589, 3589, 3589, 3589, 3589,
+ 3589, 3589, 3589, 3589, 3589, 3589, 3589, 3590, 0, 3590,
+ 0, 0, 0, 0, 0, 3590, 3590, 3590, 3590, 0,
+ 0, 0, 0, 0, 0, 0, 3590, 3590, 3590, 3590,
+ 3590, 0, 3590, 0, 0, 0, 0, 0, 0, 3590,
+ 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,
+ 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,
+ 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597,
+ 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597, 3597,
+ 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, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599,
+ 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599, 3599,
+ 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,
+ 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, 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,
+ 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605,
+ 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605,
+ 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605,
+ 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605,
+ 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605, 3605,
+ 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, 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,
+ 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, 3607,
+ 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607,
+ 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607, 3607,
+ 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609,
+
+ 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609,
+ 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609,
+ 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609,
+ 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609, 3609,
+ 3610, 0, 3610, 0, 0, 0, 0, 0, 3610, 3610,
+ 3610, 3610, 0, 0, 0, 0, 0, 0, 0, 3610,
+ 3610, 3610, 3610, 3610, 0, 3610, 0, 0, 0, 0,
+ 0, 0, 3610, 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, 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, 3612, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3612, 0, 0, 0, 0, 0, 3612,
+ 3612, 3612, 3612, 3612, 3612, 3612, 3612, 0, 0, 0,
+ 3612, 3612, 3612, 3612, 3612, 3612, 3612, 3612, 3612, 3612,
+ 3612, 3612, 3612, 3612, 3613, 0, 3613, 0, 0, 0,
+ 0, 0, 3613, 3613, 3613, 3613, 0, 0, 0, 0,
+ 0, 0, 0, 3613, 3613, 3613, 3613, 3613, 0, 3613,
+ 0, 0, 0, 0, 0, 0, 3613, 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, 3617, 3617,
+ 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617, 3617,
+ 3617, 3617, 3617, 3617, 3617, 3617, 3617, 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, 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, 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, 3621, 3621,
+ 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621, 3621,
+ 3621, 3621, 3621, 3621, 3621, 3621, 3621, 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, 3625, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 3625, 0, 0,
+ 0, 0, 0, 3625, 3625, 3625, 3625, 3625, 3625, 3625,
+ 3625, 0, 0, 0, 3625, 3625, 3625, 3625, 3625, 3625,
+ 3625, 3625, 3625, 3625, 3625, 3625, 3625, 3625, 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, 3626,
+ 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626,
+ 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3626, 3629, 0,
+ 3629, 0, 0, 0, 0, 0, 3629, 3629, 3629, 3629,
+
+ 0, 0, 0, 0, 0, 0, 0, 3629, 3629, 3629,
+ 3629, 3629, 0, 3629, 0, 0, 0, 0, 0, 0,
+ 3629, 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, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
+ 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632, 3632,
+ 3632, 3636, 0, 0, 0, 0, 0, 0, 0, 3636,
+ 0, 3636, 0, 0, 0, 0, 0, 3636, 3636, 3636,
+ 3636, 3636, 3636, 3636, 3636, 0, 0, 0, 3636, 3636,
+
+ 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636, 3636,
+ 3636, 3636, 3637, 0, 3637, 0, 0, 0, 0, 0,
+ 3637, 3637, 3637, 3637, 0, 0, 0, 0, 0, 0,
+ 0, 3637, 3637, 3637, 3637, 3637, 0, 3637, 0, 0,
+ 0, 0, 0, 0, 3637, 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,
+ 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, 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, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640,
+ 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640, 3640,
+ 3640, 3640, 3640, 3640, 3640, 3642, 0, 3642, 0, 0,
+ 0, 0, 0, 3642, 3642, 3642, 3642, 0, 0, 0,
+ 0, 0, 0, 0, 3642, 3642, 3642, 3642, 3642, 0,
+ 3642, 0, 0, 0, 0, 0, 0, 3642, 3643, 3643,
+ 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643,
+ 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643,
+
+ 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643,
+ 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643,
+ 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3643, 3646, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3646, 0,
+ 0, 0, 0, 0, 3646, 3646, 3646, 3646, 3646, 3646,
+ 3646, 3646, 0, 0, 0, 3646, 3646, 3646, 3646, 3646,
+ 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3646, 3647,
+ 0, 3647, 0, 0, 0, 0, 0, 3647, 3647, 3647,
+ 3647, 0, 0, 0, 0, 0, 0, 0, 3647, 3647,
+ 3647, 3647, 3647, 0, 3647, 0, 0, 0, 0, 0,
+
+ 0, 3647, 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, 3650, 3650,
+ 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650,
+ 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650, 3650,
+ 3650, 3650, 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, 3652, 3652, 3652, 3652, 3652, 3652,
+ 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652, 3652,
+
+ 3652, 3652, 3653, 0, 3653, 0, 0, 0, 0, 0,
+ 3653, 3653, 3653, 3653, 0, 0, 0, 0, 0, 0,
+ 0, 3653, 3653, 3653, 3653, 3653, 0, 3653, 0, 0,
+ 0, 0, 0, 0, 3653, 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, 3659, 3659, 3659, 3659,
+ 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659, 3659,
+ 3659, 3659, 3659, 3659, 3659, 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, 3660, 3660, 3660, 3660,
+ 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660, 3660,
+ 3660, 3660, 3660, 3660, 3660, 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, 3663, 3663, 3663, 3663, 3663, 3663, 3663, 3663,
+ 3663, 3663, 3663, 3663, 3663, 3663, 3663, 3663, 3663, 3663,
+ 3663, 3663, 3663, 3663, 3663, 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,
+ 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, 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, 3665, 3665, 3665, 3665, 3665,
+ 3665, 3665, 3665, 3665, 3665, 3665, 3665, 3665, 3665, 3665,
+ 3665, 3665, 3665, 3665, 3665, 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, 3666, 3666, 3666,
+ 3666, 3666, 3666, 3666, 3666, 3666, 3666, 3666, 3666, 3666,
+ 3666, 3666, 3666, 3666, 3666, 3667, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3667, 0, 0, 0, 0,
+ 0, 3667, 3667, 3667, 3667, 3667, 3667, 3667, 3667, 0,
+ 0, 0, 3667, 3667, 3667, 3667, 3667, 3667, 3667, 3667,
+ 3667, 3667, 3667, 3667, 3667, 3667, 3669, 0, 3669, 0,
+ 0, 0, 0, 0, 3669, 3669, 3669, 3669, 0, 0,
+ 0, 0, 0, 0, 0, 3669, 3669, 3669, 3669, 3669,
+
+ 0, 3669, 0, 0, 0, 0, 0, 0, 3669, 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,
+ 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670,
+ 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 3670, 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, 3672,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3672,
+ 0, 0, 0, 0, 0, 3672, 3672, 3672, 3672, 3672,
+ 3672, 3672, 3672, 0, 0, 0, 3672, 3672, 3672, 3672,
+ 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672, 3672,
+ 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, 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,
+
+ 3674, 0, 3674, 0, 0, 0, 0, 0, 3674, 3674,
+ 3674, 3674, 0, 0, 0, 0, 0, 0, 0, 3674,
+ 3674, 3674, 3674, 3674, 0, 3674, 0, 0, 0, 0,
+ 0, 0, 3674, 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, 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, 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, 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,
+ 3679, 3679, 3679, 3679, 3679, 3679, 3679, 3679, 3679, 3679,
+ 3679, 3679, 3679, 3679, 3679, 3679, 3679, 3679, 3679, 3679,
+ 3679, 3679, 3679, 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, 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, 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, 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, 3682, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3682, 0, 0, 0, 0, 0, 3682,
+
+ 3682, 3682, 3682, 3682, 3682, 3682, 3682, 0, 0, 0,
+ 3682, 3682, 3682, 3682, 3682, 3682, 3682, 3682, 3682, 3682,
+ 3682, 3682, 3682, 3682, 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,
+ 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683,
+ 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683, 3683,
+ 3683, 3683, 3683, 3683, 3686, 0, 3686, 0, 0, 0,
+ 0, 0, 3686, 3686, 3686, 3686, 0, 0, 0, 0,
+ 0, 0, 0, 3686, 3686, 3686, 3686, 3686, 0, 3686,
+
+ 0, 0, 0, 0, 0, 0, 3686, 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, 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, 3693, 0, 0,
+ 0, 0, 0, 0, 0, 3693, 0, 3693, 0, 0,
+ 0, 0, 0, 3693, 3693, 3693, 3693, 3693, 3693, 3693,
+ 3693, 0, 0, 0, 3693, 3693, 3693, 3693, 3693, 3693,
+ 3693, 3693, 3693, 3693, 3693, 3693, 3693, 3693, 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,
+ 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694,
+ 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3694, 3695, 0,
+ 3695, 0, 0, 0, 0, 0, 3695, 3695, 3695, 3695,
+ 0, 0, 0, 0, 0, 0, 0, 3695, 3695, 3695,
+ 3695, 3695, 0, 3695, 0, 0, 0, 0, 0, 0,
+ 3695, 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, 3696, 3696,
+ 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696,
+ 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696, 3696,
+ 3696, 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, 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, 3699, 0, 3699, 0, 0, 0, 0, 0, 3699,
+ 3699, 3699, 3699, 0, 0, 0, 0, 0, 0, 0,
+
+ 3699, 3699, 3699, 3699, 3699, 0, 3699, 0, 0, 0,
+ 0, 0, 0, 3699, 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,
+ 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700,
+ 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700,
+ 3700, 3700, 3700, 3700, 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,
+ 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702,
+
+ 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702, 3702,
+ 3702, 3702, 3702, 3702, 3706, 0, 0, 0, 0, 0,
+ 0, 0, 3706, 0, 3706, 0, 0, 0, 0, 0,
+ 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 0, 0,
+ 0, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706, 3706,
+ 3706, 3706, 3706, 3706, 3706, 3707, 0, 3707, 0, 0,
+ 0, 0, 0, 3707, 3707, 3707, 3707, 0, 0, 0,
+ 0, 0, 0, 0, 3707, 3707, 3707, 3707, 3707, 0,
+ 3707, 0, 0, 0, 0, 0, 0, 3707, 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, 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, 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, 3709, 3709,
+ 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709,
+ 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3709, 3711, 0,
+ 3711, 0, 0, 0, 0, 0, 3711, 3711, 3711, 3711,
+
+ 0, 0, 0, 0, 0, 0, 0, 3711, 3711, 3711,
+ 3711, 3711, 0, 3711, 0, 0, 0, 0, 0, 0,
+ 3711, 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, 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, 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, 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, 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, 3715, 3715, 3715,
+ 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715,
+ 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715, 3715,
+ 3715, 3716, 0, 0, 0, 0, 0, 0, 0, 3716,
+ 0, 3716, 0, 0, 0, 0, 0, 3716, 3716, 3716,
+ 3716, 3716, 3716, 3716, 3716, 0, 0, 0, 3716, 3716,
+
+ 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716, 3716,
+ 3716, 3716, 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, 3721, 3721, 3721, 3721, 3721, 3721, 3721,
+ 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721, 3721,
+ 3721, 3721, 3722, 0, 3722, 0, 0, 0, 0, 0,
+ 3722, 3722, 3722, 3722, 0, 0, 0, 0, 0, 0,
+ 0, 3722, 3722, 3722, 3722, 3722, 0, 3722, 0, 0,
+ 0, 0, 0, 0, 3722, 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,
+ 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, 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,
+ 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, 3726, 0, 3726, 0, 0,
+
+ 0, 0, 0, 3726, 3726, 3726, 3726, 0, 0, 0,
+ 0, 0, 0, 0, 3726, 3726, 3726, 3726, 3726, 0,
+ 3726, 0, 0, 0, 0, 0, 0, 3726, 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,
+ 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728,
+ 3728, 3728, 3728, 3728, 3728, 3728, 3728, 3728, 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, 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, 3731, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3731, 0,
+ 0, 0, 0, 0, 3731, 3731, 3731, 3731, 3731, 3731,
+ 3731, 3731, 0, 0, 0, 3731, 3731, 3731, 3731, 3731,
+ 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 3731, 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, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732,
+ 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 3732, 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, 3733, 3733, 3733, 3733, 3733,
+ 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733,
+ 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 3733, 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, 3745, 3745, 3745, 3745,
+
+ 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745,
+ 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 3745, 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, 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,
+
+ 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753,
+ 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3753, 3754,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 3754,
+ 0, 0, 0, 0, 0, 3754, 3754, 3754, 3754, 3754,
+ 3754, 3754, 3754, 0, 0, 0, 3754, 3754, 3754, 3754,
+ 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754, 3754,
+ 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, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
+
+ 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759, 3759,
+ 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, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762,
+ 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762, 3762,
+ 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,
+ 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765,
+
+ 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765, 3765,
+ 3766, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3766, 0, 0, 0, 0, 0, 3766, 3766, 3766, 3766,
+ 3766, 3766, 3766, 3766, 0, 0, 0, 3766, 3766, 3766,
+ 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766, 3766,
+ 3766, 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, 3769, 3769, 3769,
+ 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769,
+ 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769, 3769,
+
+ 3769, 3772, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3772, 0, 0, 0, 0, 0, 3772, 3772, 3772,
+ 3772, 3772, 3772, 3772, 3772, 0, 0, 0, 3772, 3772,
+ 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772, 3772,
+ 3772, 3772, 3775, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3775, 0, 0, 0, 0, 0, 3775, 3775,
+ 3775, 3775, 3775, 3775, 3775, 3775, 0, 0, 0, 3775,
+ 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775, 3775,
+ 3775, 3775, 3775, 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, 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, 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, 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, 3782,
+ 3782, 3782, 3782, 3782, 3782, 3782, 3782, 3782, 3782, 3782,
+ 3782, 3782, 3782, 3782, 3782, 3782, 3782, 3782, 3782, 3782,
+ 3782, 3782, 3782, 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, 3783,
+ 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783,
+ 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783, 3783,
+ 3783, 3783, 3783, 3786, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3786, 0, 0, 0, 0, 0, 3786,
+
+ 3786, 3786, 3786, 3786, 3786, 3786, 3786, 0, 0, 0,
+ 3786, 3786, 3786, 3786, 3786, 3786, 3786, 3786, 3786, 3786,
+ 3786, 3786, 3786, 3786, 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, 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, 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, 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, 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, 3793, 3793, 3793, 3793, 3793,
+ 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793, 3793,
+ 3793, 3793, 3793, 3793, 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, 3795, 3795, 3795, 3795,
+ 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795, 3795,
+ 3795, 3795, 3795, 3795, 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, 3796, 3796, 3796, 3796,
+ 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796, 3796,
+ 3796, 3796, 3796, 3796, 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, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797,
+ 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797, 3797,
+ 3797, 3797, 3797, 3797, 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, 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, 3799, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3799, 0, 0, 0, 0, 0,
+ 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 0, 0,
+
+ 0, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799, 3799,
+ 3799, 3799, 3799, 3799, 3799, 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, 3800, 3800, 3800,
+ 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800, 3800,
+ 3800, 3800, 3800, 3800, 3800, 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, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801,
+
+ 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801, 3801,
+ 3801, 3801, 3801, 3801, 3801, 3804, 0, 3804, 0, 0,
+ 0, 0, 0, 3804, 3804, 3804, 3804, 0, 0, 0,
+ 0, 0, 0, 0, 3804, 3804, 3804, 3804, 3804, 0,
+ 3804, 0, 0, 0, 0, 0, 0, 3804, 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, 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, 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, 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, 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, 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, 3810, 3810,
+ 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810,
+ 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3810, 3811, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3811, 0,
+ 0, 0, 0, 0, 3811, 3811, 3811, 3811, 3811, 3811,
+ 3811, 3811, 0, 0, 0, 3811, 3811, 3811, 3811, 3811,
+ 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 3811, 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,
+ 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812,
+ 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3812, 3815,
+ 0, 3815, 0, 0, 0, 0, 0, 3815, 3815, 3815,
+ 3815, 0, 0, 0, 0, 0, 0, 0, 3815, 3815,
+ 3815, 3815, 3815, 0, 3815, 0, 0, 0, 0, 0,
+ 0, 3815, 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, 3816, 3816,
+
+ 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
+ 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816, 3816,
+ 3816, 3816, 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, 3818, 3818,
+ 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818,
+ 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818, 3818,
+ 3818, 3818, 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, 3821, 3821, 3821, 3821, 3821, 3821, 3821,
+ 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821, 3821,
+ 3821, 3821, 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, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823, 3823,
+ 3823, 3823, 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, 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, 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, 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, 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, 3827, 3827, 3827, 3827, 3827, 3827, 3827,
+ 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827, 3827,
+ 3827, 3827, 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, 3829, 3829, 3829, 3829, 3829, 3829,
+ 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829, 3829,
+ 3829, 3829, 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, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833,
+ 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833, 3833,
+ 3833, 3833, 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, 3835, 3835,
+ 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835,
+ 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835, 3835,
+ 3835, 3835, 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, 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, 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, 3842,
+
+ 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842,
+ 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842, 3842,
+ 3842, 3842, 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, 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, 3844, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3844, 0, 0, 0, 0, 0, 3844, 3844,
+ 3844, 3844, 3844, 3844, 3844, 3844, 0, 0, 0, 3844,
+
+ 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844, 3844,
+ 3844, 3844, 3844, 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, 3846, 3846, 3846, 3846, 3846, 3846,
+ 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846, 3846,
+ 3846, 3846, 3846, 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,
+ 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847,
+
+ 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847, 3847,
+ 3847, 3847, 3847, 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, 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, 3850, 0, 3850, 0, 0, 0, 0,
+ 0, 3850, 3850, 3850, 3850, 0, 0, 0, 0, 0,
+ 0, 0, 3850, 3850, 3850, 3850, 3850, 0, 3850, 0,
+ 0, 0, 0, 0, 0, 3850, 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, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851,
+ 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851, 3851,
+ 3851, 3851, 3851, 3851, 3851, 3851, 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, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852,
+ 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852, 3852,
+ 3852, 3852, 3852, 3852, 3852, 3852, 3857, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 3857, 0, 0, 0,
+ 0, 0, 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3857,
+ 0, 0, 0, 3857, 3857, 3857, 3857, 3857, 3857, 3857,
+ 3857, 3857, 3857, 3857, 3857, 3857, 3857, 3858, 0, 3858,
+ 0, 0, 0, 0, 0, 3858, 3858, 3858, 3858, 0,
+ 0, 0, 0, 0, 0, 0, 3858, 3858, 3858, 3858,
+ 3858, 0, 3858, 0, 0, 0, 0, 0, 0, 3858,
+ 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, 3864, 3864, 3864, 3864, 3864, 3864, 3864, 3864,
+ 3864, 3864, 3864, 3864, 3864, 3864, 3864, 3864, 3864, 3864,
+ 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, 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,
+ 3867, 0, 3867, 0, 0, 0, 0, 0, 3867, 3867,
+ 3867, 3867, 0, 0, 0, 0, 0, 0, 0, 3867,
+ 3867, 3867, 3867, 3867, 0, 3867, 0, 0, 0, 0,
+
+ 0, 0, 3867, 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, 3871,
+ 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871,
+ 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871, 3871,
+ 3871, 3871, 3871, 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, 3872, 3872, 3872, 3872, 3872, 3872,
+ 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872, 3872,
+
+ 3872, 3872, 3872, 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, 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, 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, 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, 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,
+ 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876,
+ 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876, 3876,
+ 3876, 3876, 3876, 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, 3878, 3878, 3878, 3878, 3878, 3878, 3878,
+ 3878, 3878, 3878, 3878, 3878, 3878, 3878, 3878, 3878, 3878,
+
+ 3878, 3878, 3878, 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, 3880, 3880, 3880, 3880, 3880, 3880,
+ 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880, 3880,
+ 3880, 3880, 3880, 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, 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, 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, 3885,
+ 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885,
+ 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885, 3885,
+ 3885, 3885, 3885, 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, 3886,
+ 3886, 3886, 3886, 3886, 3886, 3886, 3886, 3886, 3886, 3886,
+ 3886, 3886, 3886, 3886, 3886, 3886, 3886, 3886, 3886, 3886,
+
+ 3886, 3886, 3886, 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, 3889, 3889, 3889, 3889, 3889, 3889, 3889,
+ 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889,
+ 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889,
+ 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889,
+ 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889, 3889,
+
+ 3889, 3889, 3889, 3890, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3890, 0, 0, 0, 0, 0, 3890,
+ 3890, 3890, 3890, 3890, 3890, 3890, 3890, 0, 0, 0,
+ 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890, 3890,
+ 3890, 3890, 3890, 3890, 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, 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,
+ 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892,
+ 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892, 3892,
+ 3892, 3892, 3892, 3892, 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, 3895, 0, 3895, 0, 0, 0,
+
+ 0, 0, 3895, 3895, 3895, 3895, 0, 0, 0, 0,
+ 0, 0, 0, 3895, 3895, 3895, 3895, 3895, 0, 3895,
+ 0, 0, 0, 0, 0, 0, 3895, 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, 3899, 3899, 3899, 3899, 3899, 3899, 3899,
+ 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899, 3899,
+ 3899, 3899, 3899, 3899, 3899, 3899, 3899, 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, 3900, 3900, 3900,
+ 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3900,
+ 3900, 3900, 3900, 3900, 3900, 3900, 3900, 3901, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3901, 0, 0,
+ 0, 0, 0, 3901, 3901, 3901, 3901, 3901, 3901, 3901,
+ 3901, 0, 0, 0, 3901, 3901, 3901, 3901, 3901, 3901,
+ 3901, 3901, 3901, 3901, 3901, 3901, 3901, 3901, 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, 3902,
+
+ 3902, 3902, 3902, 3902, 3902, 3902, 3902, 3902, 3902, 3902,
+ 3902, 3902, 3902, 3902, 3902, 3902, 3902, 3902, 3903, 0,
+ 3903, 0, 0, 0, 0, 0, 3903, 3903, 3903, 3903,
+ 0, 0, 0, 0, 0, 0, 0, 3903, 3903, 3903,
+ 3903, 3903, 0, 3903, 0, 0, 0, 0, 0, 0,
+ 3903, 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, 3904, 3904, 3904, 3904, 3904, 3904, 3904,
+ 3904, 3904, 3904, 3904, 3904, 3904, 3904, 3904, 3904, 3904,
+
+ 3904, 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, 3907, 3907, 3907,
+ 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907,
+ 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907, 3907,
+ 3907, 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, 3909, 3909, 3909,
+ 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909,
+ 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909, 3909,
+
+ 3909, 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, 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910,
+ 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910, 3910,
+ 3910, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911,
+ 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911,
+ 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911,
+ 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911,
+ 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911, 3911,
+
+ 3911, 3914, 0, 3914, 0, 0, 0, 0, 0, 3914,
+ 3914, 3914, 3914, 0, 0, 0, 0, 0, 0, 0,
+ 3914, 3914, 3914, 3914, 3914, 0, 3914, 0, 0, 0,
+ 0, 0, 0, 3914, 3915, 3915, 3915, 3915, 3915, 3915,
+ 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915,
+ 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915,
+ 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915,
+ 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915, 3915,
+ 3915, 3915, 3915, 3915, 3916, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 3916, 0, 0, 0, 0, 0,
+
+ 3916, 3916, 3916, 3916, 3916, 3916, 3916, 3916, 0, 0,
+ 0, 3916, 3916, 3916, 3916, 3916, 3916, 3916, 3916, 3916,
+ 3916, 3916, 3916, 3916, 3916, 3917, 0, 3917, 0, 0,
+ 0, 0, 0, 3917, 3917, 3917, 3917, 0, 0, 0,
+ 0, 0, 0, 0, 3917, 3917, 3917, 3917, 3917, 0,
+ 3917, 0, 0, 0, 0, 0, 0, 3917, 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,
+ 3918, 3918, 3918, 3918, 3918, 3918, 3918, 3918, 3918, 3918,
+
+ 3918, 3918, 3918, 3918, 3918, 3918, 3918, 3918, 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, 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, 3924, 3924, 3924, 3924, 3924, 3924,
+ 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924,
+
+ 3924, 3924, 3924, 3924, 3924, 3924, 3924, 3924, 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, 3927, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 3927, 0,
+ 0, 0, 0, 0, 3927, 3927, 3927, 3927, 3927, 3927,
+ 3927, 3927, 0, 0, 0, 3927, 3927, 3927, 3927, 3927,
+ 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 3927, 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, 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, 3933,
+ 0, 3933, 0, 0, 0, 0, 0, 3933, 3933, 3933,
+ 3933, 0, 0, 0, 0, 0, 0, 0, 3933, 3933,
+ 3933, 3933, 3933, 0, 3933, 0, 0, 0, 0, 0,
+ 0, 3933, 3935, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 3935, 0, 0, 0, 0, 0, 3935, 3935,
+
+ 3935, 3935, 3935, 3935, 3935, 3935, 0, 0, 0, 3935,
+ 3935, 3935, 3935, 3935, 3935, 3935, 3935, 3935, 3935, 3935,
+ 3935, 3935, 3935, 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, 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, 3941, 0, 3941, 0, 0, 0, 0,
+ 0, 3941, 3941, 3941, 3941, 0, 0, 0, 0, 0,
+ 0, 0, 3941, 3941, 3941, 3941, 3941, 0, 3941, 0,
+ 0, 0, 0, 0, 0, 3941, 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, 3947, 3947,
+ 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947, 3947,
+
+ 3947, 3947, 3947, 3947, 3947, 3947, 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, 3949, 3949,
+ 3949, 3949, 3949, 3949, 3949, 3949, 3949, 3949, 3949, 3949,
+ 3949, 3949, 3949, 3949, 3949, 3949, 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, 3950, 3950,
+ 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950, 3950,
+
+ 3950, 3950, 3950, 3950, 3950, 3950, 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, 3951, 3951,
+ 3951, 3951, 3951, 3951, 3951, 3951, 3951, 3951, 3951, 3951,
+ 3951, 3951, 3951, 3951, 3951, 3951, 3952, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 3952, 0, 0, 0,
+ 0, 0, 3952, 3952, 3952, 3952, 3952, 3952, 3952, 3952,
+ 0, 0, 0, 3952, 3952, 3952, 3952, 3952, 3952, 3952,
+ 3952, 3952, 3952, 3952, 3952, 3952, 3952, 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, 3954, 0, 3954,
+ 0, 0, 0, 0, 0, 3954, 3954, 3954, 3954, 0,
+ 0, 0, 0, 0, 0, 0, 3954, 3954, 3954, 3954,
+ 3954, 0, 3954, 0, 0, 0, 0, 0, 0, 3954,
+ 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, 3955, 3955, 3955, 3955,
+ 3955, 3955, 3955, 3955, 3955, 3955, 3955, 3955, 3955, 3955,
+ 3955, 3955, 3955, 3955, 3955, 3955, 3955, 3955, 3955, 3955,
+ 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,
+ 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, 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,
+ 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,
+ 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, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+ 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965, 3965,
+ 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, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966,
+ 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966, 3966,
+ 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, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967,
+ 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967, 3967,
+ 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,
+ 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, 3970, 3970, 3970, 3970,
+ 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970,
+ 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970, 3970,
+ 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,
+ 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,
+ 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, 3978, 3978, 3978, 3978, 3978, 3978, 3978, 3978,
+ 3978, 3978, 3978, 3978, 3978, 3978, 3978, 3978, 3978, 3978,
+ 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, 3979, 3979, 3979, 3979, 3979, 3979, 3979, 3979, 3979,
+ 3979, 3979, 3979, 3979, 3979, 3979, 3979, 3979, 3979, 3979,
+ 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, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980,
+ 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980, 3980,
+ 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, 3986, 3986, 3986, 3986,
+ 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986,
+ 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986, 3986,
+ 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, 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,
+ 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,
+ 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994,
+ 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994, 3994,
+ 3997, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3997, 0, 0, 0, 0, 0, 3997, 3997, 3997, 3997,
+ 3997, 3997, 3997, 3997, 0, 0, 0, 3997, 3997, 3997,
+ 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997, 3997,
+ 3997, 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, 4001, 4001, 4001,
+
+ 4001, 4001, 4001, 4001, 4001, 4001, 4001, 4001, 4001, 4001,
+ 4001, 4001, 4001, 4001, 4001, 4001, 4001, 4001, 4001, 4001,
+ 4001, 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, 4003, 4003, 4003,
+ 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003,
+ 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003, 4003,
+ 4003, 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, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004,
+ 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004, 4004,
+ 4004, 4007, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4007, 0, 0, 0, 0, 0, 4007, 4007, 4007,
+ 4007, 4007, 4007, 4007, 4007, 0, 0, 0, 4007, 4007,
+ 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007, 4007,
+ 4007, 4007, 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, 4012, 4012, 4012, 4012, 4012, 4012,
+
+ 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012, 4012,
+ 4012, 4012, 4015, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 4015, 0, 0, 0, 0, 0, 4015, 4015,
+ 4015, 4015, 4015, 4015, 4015, 4015, 0, 0, 0, 4015,
+ 4015, 4015, 4015, 4015, 4015, 4015, 4015, 4015, 4015, 4015,
+ 4015, 4015, 4015, 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, 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, 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, 4023, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4023, 0, 0, 0, 0, 0, 4023,
+ 4023, 4023, 4023, 4023, 4023, 4023, 4023, 0, 0, 0,
+ 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023, 4023,
+ 4023, 4023, 4023, 4023, 4025, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 0, 4025, 0, 0, 0, 0, 0,
+ 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 0, 0,
+ 0, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025, 4025,
+ 4025, 4025, 4025, 4025, 4025, 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, 4029, 4029, 4029,
+ 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029, 4029,
+ 4029, 4029, 4029, 4029, 4029, 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, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032,
+ 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032, 4032,
+ 4032, 4032, 4032, 4032, 4032, 4033, 0, 4033, 0, 0,
+ 0, 0, 0, 4033, 4033, 4033, 4033, 0, 0, 0,
+ 0, 0, 0, 0, 4033, 4033, 4033, 4033, 4033, 0,
+ 4033, 0, 0, 0, 0, 0, 0, 4033, 4034, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4034, 0,
+ 0, 0, 0, 0, 4034, 4034, 4034, 4034, 4034, 4034,
+ 4034, 4034, 0, 0, 0, 4034, 4034, 4034, 4034, 4034,
+
+ 4034, 4034, 4034, 4034, 4034, 4034, 4034, 4034, 4034, 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, 4035,
+ 4035, 4035, 4035, 4035, 4035, 4035, 4035, 4035, 4035, 4035,
+ 4035, 4035, 4035, 4035, 4035, 4035, 4035, 4035, 4035, 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, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038,
+
+ 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 4038, 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, 4039, 4039, 4039, 4039, 4039,
+ 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039,
+ 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 4039, 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,
+ 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041,
+
+ 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4041, 4042,
+ 0, 4042, 0, 0, 0, 0, 0, 4042, 4042, 4042,
+ 4042, 0, 0, 0, 0, 0, 0, 0, 4042, 4042,
+ 4042, 4042, 4042, 0, 4042, 0, 0, 0, 0, 0,
+ 0, 4042, 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, 4043, 4043, 4043, 4043, 4043, 4043,
+ 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043, 4043,
+ 4043, 4043, 4049, 0, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 4049, 0, 0, 0, 0, 0, 4049, 4049,
+ 4049, 4049, 4049, 4049, 4049, 4049, 0, 0, 0, 4049,
+ 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049, 4049,
+ 4049, 4049, 4049, 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, 4053, 0, 4053, 0, 0, 0, 0,
+ 0, 4053, 4053, 4053, 4053, 0, 0, 0, 0, 0,
+
+ 0, 0, 4053, 4053, 4053, 4053, 4053, 0, 4053, 0,
+ 0, 0, 0, 0, 0, 4053, 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, 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, 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, 4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055,
+
+ 4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055, 4055,
+ 4055, 4055, 4055, 4055, 4055, 4055, 4056, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 4056, 0, 0, 0,
+ 0, 0, 4056, 4056, 4056, 4056, 4056, 4056, 4056, 4056,
+ 0, 0, 0, 4056, 4056, 4056, 4056, 4056, 4056, 4056,
+ 4056, 4056, 4056, 4056, 4056, 4056, 4056, 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, 4058, 4058,
+ 4058, 4058, 4058, 4058, 4058, 4058, 4058, 4058, 4058, 4058,
+
+ 4058, 4058, 4058, 4058, 4058, 4058, 4058, 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, 4059,
+ 4059, 4059, 4059, 4059, 4059, 4059, 4059, 4059, 4059, 4059,
+ 4059, 4059, 4059, 4059, 4059, 4059, 4059, 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, 4062, 0, 4062,
+ 0, 0, 0, 0, 0, 4062, 4062, 4062, 4062, 0,
+ 0, 0, 0, 0, 0, 0, 4062, 4062, 4062, 4062,
+ 4062, 0, 4062, 0, 0, 0, 0, 0, 0, 4062,
+ 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, 4063, 4063, 4063, 4063,
+ 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063,
+ 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063, 4063,
+ 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,
+ 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,
+ 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066,
+ 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066, 4066,
+ 4067, 0, 4067, 0, 0, 0, 0, 0, 4067, 4067,
+
+ 4067, 4067, 0, 0, 0, 0, 0, 0, 0, 4067,
+ 4067, 4067, 4067, 4067, 0, 4067, 0, 0, 0, 0,
+ 0, 0, 4067, 4068, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4068, 0, 0, 0, 0, 0, 4068,
+ 4068, 4068, 4068, 4068, 4068, 4068, 4068, 0, 0, 0,
+ 4068, 4068, 4068, 4068, 4068, 4068, 4068, 4068, 4068, 4068,
+ 4068, 4068, 4068, 4068, 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, 4069, 4069, 4069, 4069,
+
+ 4069, 4069, 4069, 4069, 4069, 4069, 4069, 4069, 4069, 4069,
+ 4069, 4069, 4069, 4069, 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, 4072, 4072, 4072, 4072, 4072,
+ 4072, 4072, 4072, 4072, 4072, 4072, 4072, 4072, 4072, 4072,
+ 4072, 4072, 4072, 4072, 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, 4074, 4074, 4074, 4074,
+
+ 4074, 4074, 4074, 4074, 4074, 4074, 4074, 4074, 4074, 4074,
+ 4074, 4074, 4074, 4074, 4075, 0, 4075, 0, 0, 0,
+ 0, 0, 4075, 4075, 4075, 4075, 0, 0, 0, 0,
+ 0, 0, 0, 4075, 4075, 4075, 4075, 4075, 0, 4075,
+ 0, 0, 0, 0, 0, 0, 4075, 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, 4084, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 0, 4084, 0, 0,
+ 0, 0, 0, 4084, 4084, 4084, 4084, 4084, 4084, 4084,
+ 4084, 0, 0, 0, 4084, 4084, 4084, 4084, 4084, 4084,
+ 4084, 4084, 4084, 4084, 4084, 4084, 4084, 4084, 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, 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, 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, 4087, 4087, 4087, 4087, 4087, 4087,
+ 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087,
+ 4087, 4087, 4087, 4087, 4087, 4087, 4087, 4087, 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, 4090, 0,
+ 4090, 0, 0, 0, 0, 0, 4090, 4090, 4090, 4090,
+
+ 0, 0, 0, 0, 0, 0, 0, 4090, 4090, 4090,
+ 4090, 4090, 0, 4090, 0, 0, 0, 0, 0, 0,
+ 4090, 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, 4091, 4091, 4091, 4091, 4091, 4091, 4091,
+ 4091, 4091, 4091, 4091, 4091, 4091, 4091, 4091, 4091, 4091,
+ 4091, 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, 4092, 4092, 4092, 4092, 4092, 4092, 4092,
+ 4092, 4092, 4092, 4092, 4092, 4092, 4092, 4092, 4092, 4092,
+ 4092, 4098, 4098, 4098, 4098, 0, 4098, 4098, 0, 4098,
+ 0, 4098, 4098, 4098, 4098, 4098, 4098, 4098, 4098, 0,
+ 0, 4098, 0, 4098, 4098, 4098, 4098, 4098, 4098, 4098,
+ 4098, 4098, 0, 4098, 4098, 4098, 4098, 4098, 4098, 4098,
+ 4098, 4098, 4098, 4098, 4098, 4098, 4098, 4098, 4098, 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, 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, 4102, 4102, 4102, 4102, 4102,
+ 4102, 4102, 4102, 4102, 4102, 4102, 4102, 4102, 4102, 4102,
+ 4102, 4102, 4102, 4102, 4102, 4102, 4102, 4102, 4102, 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,
+
+ 4104, 4104, 4104, 4104, 4104, 4104, 4104, 4104, 4104, 4104,
+ 4104, 4104, 4104, 4104, 4104, 4104, 4104, 4104, 4104, 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,
+ 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108,
+ 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108, 4108, 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, 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, 4111, 4111, 4111, 4111, 4111,
+ 4111, 4111, 4111, 4111, 4111, 4111, 4111, 4111, 4111, 4111,
+ 4111, 4111, 4111, 4111, 4111, 4111, 4111, 4111, 4111, 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, 4114,
+ 0, 4114, 4114, 4114, 0, 0, 0, 0, 0, 4114,
+ 4114, 4114, 4114, 0, 0, 0, 0, 0, 0, 0,
+ 4114, 4114, 4114, 4114, 4114, 0, 4114, 0, 0, 0,
+ 0, 0, 0, 4114, 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, 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, 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, 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, 4119, 4119, 4119, 4119, 4119, 4119,
+ 4119, 4119, 4119, 4119, 4119, 4119, 4119, 4119, 4119, 4119,
+
+ 4119, 4119, 4119, 4119, 4123, 0, 0, 0, 0, 0,
+ 0, 0, 4123, 0, 4123, 0, 0, 0, 0, 0,
+ 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 0, 0,
+ 0, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123,
+ 4123, 4123, 4123, 4123, 4123, 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, 4125, 0, 4125, 0, 0,
+
+ 0, 0, 0, 4125, 4125, 4125, 4125, 0, 0, 0,
+ 0, 0, 0, 0, 4125, 4125, 4125, 4125, 4125, 0,
+ 4125, 0, 0, 0, 0, 0, 0, 4125, 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, 4126, 4126, 4126, 4126, 4126, 4126,
+ 4126, 4126, 4126, 4126, 4126, 4126, 4126, 4126, 4126, 4126,
+ 4126, 4126, 4126, 4126, 4126, 4126, 4126, 4126, 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, 4129, 0,
+ 4129, 0, 0, 0, 0, 0, 4129, 4129, 4129, 4129,
+ 0, 0, 0, 0, 0, 0, 0, 4129, 4129, 4129,
+ 4129, 4129, 0, 4129, 0, 0, 0, 0, 0, 0,
+ 4129, 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, 4134, 4134, 4134, 4134, 4134, 4134, 4134,
+
+ 4134, 4134, 4134, 4134, 4134, 4134, 4134, 4134, 4134, 4134,
+ 4134, 4136, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4136, 0, 0, 0, 0, 0, 4136, 4136, 4136,
+ 4136, 4136, 4136, 4136, 4136, 0, 0, 0, 4136, 4136,
+ 4136, 4136, 4136, 4136, 4136, 4136, 4136, 4136, 4136, 4136,
+ 4136, 4136, 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, 4138, 4138, 4138, 4138, 4138, 4138,
+ 4138, 4138, 4138, 4138, 4138, 4138, 4138, 4138, 4138, 4138,
+
+ 4138, 4138, 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, 4139, 4139, 4139, 4139, 4139, 4139, 4139,
+ 4139, 4139, 4139, 4139, 4139, 4139, 4139, 4139, 4139, 4139,
+ 4139, 4139, 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, 4142, 0, 4142, 0, 0, 0, 0, 0,
+ 4142, 4142, 4142, 4142, 0, 0, 0, 0, 0, 0,
+ 0, 4142, 4142, 4142, 4142, 4142, 0, 4142, 0, 0,
+ 0, 0, 0, 0, 4142, 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, 4143, 4143, 4143,
+ 4143, 4143, 4143, 4143, 4143, 4143, 4143, 4143, 4143, 4143,
+ 4143, 4143, 4143, 4143, 4143, 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, 4144, 4144, 4144,
+ 4144, 4144, 4144, 4144, 4144, 4144, 4144, 4144, 4144, 4144,
+ 4144, 4144, 4144, 4144, 4144, 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, 4149, 4149, 4149, 4149, 4149, 4149, 4149, 4149, 4149,
+ 4149, 4149, 4149, 4149, 4149, 4149, 4149, 4149, 4149, 4149,
+ 4149, 4149, 4149, 4149, 4149, 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,
+ 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, 4156, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4156, 0, 0, 0, 0,
+ 0, 4156, 4156, 4156, 4156, 4156, 4156, 4156, 4156, 0,
+ 0, 0, 4156, 4156, 4156, 4156, 4156, 4156, 4156, 4156,
+ 4156, 4156, 4156, 4156, 4156, 4156, 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, 4158, 4158,
+ 4158, 4158, 4158, 4158, 4158, 4158, 4158, 4158, 4158, 4158,
+ 4158, 4158, 4158, 4158, 4158, 4158, 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, 4161, 0, 4161, 0,
+ 0, 0, 0, 0, 4161, 4161, 4161, 4161, 0, 0,
+ 0, 0, 0, 0, 0, 4161, 4161, 4161, 4161, 4161,
+
+ 0, 4161, 0, 0, 0, 0, 0, 0, 4161, 4165,
+ 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165,
+ 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165,
+ 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165,
+ 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165,
+ 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165, 4165, 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,
+ 4168, 4168, 4168, 4168, 4168, 4168, 4168, 4168, 4168, 4168,
+
+ 4168, 4168, 4168, 4168, 4168, 4168, 4168, 4168, 4168, 4170,
+ 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170,
+ 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170,
+ 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170,
+ 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170,
+ 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4170, 4171,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4171,
+ 0, 0, 0, 0, 0, 4171, 4171, 4171, 4171, 4171,
+ 4171, 4171, 4171, 0, 0, 0, 4171, 4171, 4171, 4171,
+ 4171, 4171, 4171, 4171, 4171, 4171, 4171, 4171, 4171, 4171,
+
+ 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,
+ 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,
+
+ 4176, 0, 4176, 0, 0, 0, 0, 0, 4176, 4176,
+ 4176, 4176, 0, 0, 0, 0, 0, 0, 0, 4176,
+ 4176, 4176, 4176, 4176, 0, 4176, 0, 0, 0, 0,
+ 0, 0, 4176, 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, 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, 4179,
+ 4179, 4179, 4179, 4179, 4179, 4179, 4179, 4179, 4179, 4179,
+ 4179, 4179, 4179, 4179, 4179, 4179, 4179, 4179, 4179, 4179,
+ 4179, 4179, 4179, 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, 4180,
+ 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180,
+ 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180, 4180,
+ 4180, 4180, 4180, 4181, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4181, 0, 0, 0, 0, 0, 4181,
+
+ 4181, 4181, 4181, 4181, 4181, 4181, 4181, 0, 0, 0,
+ 4181, 4181, 4181, 4181, 4181, 4181, 4181, 4181, 4181, 4181,
+ 4181, 4181, 4181, 4181, 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, 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, 4185, 0, 4185, 0, 0, 0,
+ 0, 0, 4185, 4185, 4185, 4185, 0, 0, 0, 0,
+ 0, 0, 0, 4185, 4185, 4185, 4185, 4185, 0, 4185,
+
+ 0, 0, 0, 0, 0, 0, 4185, 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, 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, 4189,
+ 4189, 4189, 4189, 4189, 4189, 4189, 4189, 4189, 4189, 4189,
+
+ 4189, 4189, 4189, 4189, 4189, 4189, 4189, 4191, 0, 0,
+ 0, 0, 0, 0, 0, 4191, 0, 4191, 0, 0,
+ 0, 0, 0, 4191, 4191, 4191, 4191, 4191, 4191, 4191,
+ 4191, 0, 0, 0, 4191, 4191, 4191, 4191, 4191, 4191,
+ 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4191, 4193, 0,
+ 4193, 0, 0, 0, 0, 0, 4193, 4193, 4193, 4193,
+ 0, 0, 0, 0, 0, 0, 0, 4193, 4193, 4193,
+ 4193, 4193, 0, 4193, 0, 0, 0, 0, 0, 0,
+ 4193, 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,
+ 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194,
+ 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194, 4194,
+ 4194, 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, 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, 4197, 0, 4197, 0, 0, 0, 0, 0, 4197,
+ 4197, 4197, 4197, 0, 0, 0, 0, 0, 0, 0,
+
+ 4197, 4197, 4197, 4197, 4197, 0, 4197, 0, 0, 0,
+ 0, 0, 0, 4197, 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, 4199, 4199, 4199, 4199, 4199,
+ 4199, 4199, 4199, 4199, 4199, 4199, 4199, 4199, 4199, 4199,
+ 4199, 4199, 4199, 4199, 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, 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, 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, 4203, 4203, 4203, 4203,
+
+ 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203, 4203,
+ 4203, 4203, 4203, 4203, 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, 4206, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4206, 0, 0, 0, 0, 0,
+ 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 0, 0,
+ 0, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206, 4206,
+
+ 4206, 4206, 4206, 4206, 4206, 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, 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, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208,
+ 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208, 4208,
+
+ 4208, 4208, 4208, 4208, 4208, 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, 4210, 4210, 4210,
+ 4210, 4210, 4210, 4210, 4210, 4210, 4210, 4210, 4210, 4210,
+ 4210, 4210, 4210, 4210, 4210, 4211, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4211, 0, 0, 0, 0,
+ 0, 4211, 4211, 4211, 4211, 4211, 4211, 4211, 4211, 0,
+ 0, 0, 4211, 4211, 4211, 4211, 4211, 4211, 4211, 4211,
+ 4211, 4211, 4211, 4211, 4211, 4211, 4213, 0, 4213, 0,
+
+ 0, 0, 0, 0, 4213, 4213, 4213, 4213, 0, 0,
+ 0, 0, 0, 0, 0, 4213, 4213, 4213, 4213, 4213,
+ 0, 4213, 0, 0, 0, 0, 0, 0, 4213, 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, 4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216,
+ 4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216, 4216, 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, 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, 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, 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, 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, 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, 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, 4226,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4226,
+ 0, 0, 0, 0, 0, 4226, 4226, 4226, 4226, 4226,
+
+ 4226, 4226, 4226, 0, 0, 0, 4226, 4226, 4226, 4226,
+ 4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226, 4226,
+ 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, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227,
+ 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227, 4227,
+ 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, 4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228,
+ 4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228, 4228,
+ 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,
+ 4231, 0, 4231, 0, 0, 0, 0, 0, 4231, 4231,
+ 4231, 4231, 0, 0, 0, 0, 0, 0, 0, 4231,
+ 4231, 4231, 4231, 4231, 0, 4231, 0, 0, 0, 0,
+
+ 0, 0, 4231, 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, 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, 4238,
+ 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238,
+ 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238, 4238,
+
+ 4238, 4238, 4238, 4250, 4250, 4250, 4250, 4250, 4250, 4250,
+ 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250,
+ 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250,
+ 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250,
+ 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250, 4250,
+ 4250, 4250, 4250, 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, 4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252,
+ 4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252, 4252,
+
+ 4252, 4252, 4252, 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, 4255, 4255, 4255, 4255, 4255, 4255,
+ 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255, 4255,
+ 4255, 4255, 4255, 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, 4257, 4257, 4257, 4257, 4257, 4257,
+ 4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257, 4257,
+
+ 4257, 4257, 4257, 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, 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, 4260, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4260, 0, 0, 0, 0, 0, 4260,
+ 4260, 4260, 4260, 4260, 4260, 4260, 4260, 0, 0, 0,
+ 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260, 4260,
+ 4260, 4260, 4260, 4260, 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, 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,
+ 4267, 4267, 4267, 4267, 4267, 4267, 4267, 4267, 4267, 4267,
+ 4267, 4267, 4267, 4267, 4267, 4267, 4267, 4267, 4267, 4267,
+ 4267, 4267, 4267, 4267, 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, 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, 4271, 0, 0, 0, 0, 0,
+
+ 0, 0, 4271, 0, 4271, 0, 0, 0, 0, 0,
+ 4271, 4271, 4271, 4271, 4271, 4271, 4271, 4271, 0, 0,
+ 0, 4271, 4271, 4271, 4271, 4271, 4271, 4271, 4271, 4271,
+ 4271, 4271, 4271, 4271, 4271, 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, 4272, 4272, 4272, 4272,
+ 4272, 4272, 4272, 4272, 4272, 4272, 4272, 4272, 4272, 4272,
+ 4272, 4272, 4272, 4272, 4272, 4273, 0, 4273, 0, 0,
+ 0, 0, 0, 4273, 4273, 4273, 4273, 0, 0, 0,
+
+ 0, 0, 0, 0, 4273, 4273, 4273, 4273, 4273, 0,
+ 4273, 0, 0, 0, 0, 0, 0, 4273, 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, 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,
+
+ 4276, 4276, 4276, 4276, 4276, 4276, 4276, 4276, 4276, 4276,
+ 4276, 4276, 4276, 4276, 4276, 4276, 4276, 4276, 4278, 0,
+ 4278, 0, 0, 0, 0, 0, 4278, 4278, 4278, 4278,
+ 0, 0, 0, 0, 0, 0, 0, 4278, 4278, 4278,
+ 4278, 4278, 0, 4278, 0, 0, 0, 0, 0, 0,
+ 4278, 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279,
+ 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279,
+ 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279,
+ 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279,
+ 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279, 4279,
+
+ 4279, 4284, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4284, 0, 0, 0, 0, 0, 4284, 4284, 4284,
+ 4284, 4284, 4284, 4284, 4284, 0, 0, 0, 4284, 4284,
+ 4284, 4284, 4284, 4284, 4284, 4284, 4284, 4284, 4284, 4284,
+ 4284, 4284, 4285, 0, 4285, 0, 0, 0, 0, 0,
+ 4285, 4285, 4285, 4285, 0, 0, 0, 0, 0, 0,
+ 0, 4285, 4285, 4285, 4285, 4285, 0, 4285, 0, 0,
+ 0, 0, 0, 0, 4285, 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, 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, 4290, 4290, 4290,
+ 4290, 4290, 4290, 4290, 4290, 4290, 4290, 4290, 4290, 4290,
+ 4290, 4290, 4290, 4290, 4290, 4291, 0, 4291, 0, 0,
+ 0, 0, 0, 4291, 4291, 4291, 4291, 0, 0, 0,
+ 0, 0, 0, 0, 4291, 4291, 4291, 4291, 4291, 0,
+
+ 4291, 0, 0, 0, 0, 0, 0, 4291, 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,
+ 4297, 4297, 4297, 4297, 4297, 4297, 4297, 4297, 4297, 4297,
+ 4297, 4297, 4297, 4297, 4297, 4297, 4297, 4297, 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, 4301,
+ 4301, 4301, 4301, 4301, 4301, 4301, 4301, 4301, 4301, 4301,
+
+ 4301, 4301, 4301, 4301, 4301, 4301, 4301, 4301, 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,
+ 4303, 4303, 4303, 4303, 4303, 4303, 4303, 4303, 4303, 4303,
+ 4303, 4303, 4303, 4303, 4303, 4303, 4303, 4303, 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, 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, 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, 4307, 0,
+ 4307, 4307, 4307, 0, 0, 0, 0, 0, 4307, 4307,
+ 4307, 4307, 0, 0, 0, 0, 0, 0, 0, 4307,
+ 4307, 4307, 4307, 4307, 0, 4307, 0, 0, 0, 0,
+ 0, 0, 4307, 4308, 4308, 4308, 4308, 4308, 4308, 4308,
+
+ 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308,
+ 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308,
+ 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308,
+ 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308, 4308,
+ 4308, 4308, 4308, 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, 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, 4311, 0, 0, 0, 0, 0, 0,
+
+ 0, 4311, 0, 4311, 0, 0, 0, 0, 0, 4311,
+ 4311, 4311, 4311, 4311, 4311, 4311, 4311, 0, 0, 0,
+ 4311, 4311, 4311, 4311, 4311, 4311, 4311, 4311, 4311, 4311,
+ 4311, 4311, 4311, 4311, 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, 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, 4313, 0, 4313, 0, 0, 0,
+ 0, 0, 4313, 4313, 4313, 4313, 0, 0, 0, 0,
+
+ 0, 0, 0, 4313, 4313, 4313, 4313, 4313, 0, 4313,
+ 0, 0, 0, 0, 0, 0, 4313, 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, 4315, 4315,
+ 4315, 4315, 4315, 4315, 4315, 4315, 4315, 4315, 4315, 4315,
+ 4315, 4315, 4315, 4315, 4315, 4315, 4315, 4317, 0, 4317,
+ 0, 0, 0, 0, 0, 4317, 4317, 4317, 4317, 0,
+ 0, 0, 0, 0, 0, 0, 4317, 4317, 4317, 4317,
+ 4317, 0, 4317, 0, 0, 0, 0, 0, 0, 4317,
+
+ 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, 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,
+ 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,
+
+ 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, 4326, 4326, 4326, 4326,
+ 4326, 4326, 4326, 4326, 4326, 4326, 4326, 4326, 4326, 4326,
+ 4326, 4326, 4326, 4326, 4326, 4326, 4326, 4326, 4326, 4326,
+ 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,
+
+ 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, 4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331,
+ 4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331, 4331,
+ 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,
+
+ 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,
+ 4335, 0, 4335, 4335, 4335, 0, 0, 0, 0, 0,
+ 4335, 4335, 4335, 4335, 0, 0, 0, 0, 0, 0,
+ 0, 4335, 4335, 4335, 4335, 4335, 0, 4335, 0, 0,
+ 0, 0, 0, 0, 4335, 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,
+ 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, 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,
+ 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, 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, 4344, 4344, 4344, 4344,
+ 4344, 4344, 4344, 4344, 4344, 4344, 4344, 4344, 4344, 4344,
+ 4344, 4344, 4344, 4344, 4344, 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, 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, 4349, 4349, 4349,
+ 4349, 4349, 4349, 4349, 4349, 4349, 4349, 4349, 4349, 4349,
+ 4349, 4349, 4349, 4349, 4349, 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, 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, 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, 4356, 4356, 4356,
+ 4356, 4356, 4356, 4356, 4356, 4356, 4356, 4356, 4356, 4356,
+ 4356, 4356, 4356, 4356, 4356, 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,
+ 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, 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,
+ 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, 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, 4360, 4360, 4360, 4360,
+ 4360, 4360, 4360, 4360, 4360, 4360, 4360, 4360, 4360, 4360,
+ 4360, 4360, 4360, 4360, 4360, 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, 4362, 4362, 4362,
+ 4362, 4362, 4362, 4362, 4362, 4362, 4362, 4362, 4362, 4362,
+ 4362, 4362, 4362, 4362, 4362, 4363, 0, 4363, 4363, 4363,
+ 0, 0, 0, 0, 0, 4363, 4363, 4363, 4363, 0,
+
+ 0, 0, 0, 0, 0, 0, 4363, 4363, 4363, 4363,
+ 4363, 0, 4363, 0, 0, 0, 0, 0, 0, 4363,
+ 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, 4364, 4364, 4364, 4364, 4364, 4364, 4364, 4364,
+ 4364, 4364, 4364, 4364, 4364, 4364, 4364, 4364, 4364, 4364,
+ 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, 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,
+ 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, 4372, 4372, 4372, 4372, 4372, 4372, 4372, 4372, 4372,
+ 4372, 4372, 4372, 4372, 4372, 4372, 4372, 4372, 4372, 4372,
+ 4373, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4373, 0, 0, 0, 0, 0, 4373, 4373, 4373, 4373,
+ 4373, 4373, 4373, 4373, 0, 0, 0, 4373, 4373, 4373,
+
+ 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373, 4373,
+ 4373, 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, 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, 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, 4378, 4378, 4378, 4378, 4378, 4378, 4378, 4378,
+ 4378, 4378, 4378, 4378, 4378, 4378, 4378, 4378, 4378, 4378,
+ 4378, 4379, 0, 4379, 0, 0, 0, 0, 0, 4379,
+ 4379, 4379, 4379, 0, 0, 0, 0, 0, 0, 0,
+ 4379, 4379, 4379, 4379, 4379, 0, 4379, 0, 0, 0,
+ 0, 0, 0, 4379, 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, 4380, 4380, 4380, 4380,
+ 4380, 4380, 4380, 4380, 4380, 4380, 4380, 4380, 4380, 4380,
+ 4380, 4380, 4380, 4380, 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, 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, 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, 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, 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, 4389, 4389, 4389, 4389, 4389, 4389, 4389, 4389, 4389,
+ 4389, 4389, 4389, 4389, 4389, 4389, 4389, 4389, 4389, 4389,
+ 4389, 4389, 4389, 4389, 4392, 4392, 4392, 4392, 4392, 4392,
+
+ 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392,
+ 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392,
+ 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392,
+ 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392, 4392,
+ 4392, 4392, 4392, 4392, 4393, 4393, 4393, 4393, 4393, 4393,
+ 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393,
+ 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393,
+ 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393,
+ 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393, 4393,
+ 4393, 4393, 4393, 4393, 4394, 0, 4394, 0, 0, 0,
+
+ 0, 0, 4394, 4394, 4394, 4394, 0, 0, 0, 0,
+ 0, 0, 0, 4394, 4394, 4394, 4394, 4394, 0, 4394,
+ 0, 0, 0, 0, 0, 0, 4394, 4395, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4395, 0, 0,
+ 0, 0, 0, 4395, 4395, 4395, 4395, 4395, 4395, 4395,
+ 4395, 0, 0, 0, 4395, 4395, 4395, 4395, 4395, 4395,
+ 4395, 4395, 4395, 4395, 4395, 4395, 4395, 4395, 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, 4399, 4399,
+ 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399,
+ 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399,
+ 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399,
+ 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399,
+ 4399, 4399, 4399, 4399, 4399, 4399, 4399, 4399, 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, 4401,
+
+ 4401, 4401, 4401, 4401, 4401, 4401, 4401, 4401, 4401, 4401,
+ 4401, 4401, 4401, 4401, 4401, 4401, 4401, 4401, 4402, 0,
+ 4402, 0, 0, 0, 0, 0, 4402, 4402, 4402, 4402,
+ 0, 0, 0, 0, 0, 0, 0, 4402, 4402, 4402,
+ 4402, 4402, 0, 4402, 0, 0, 0, 0, 0, 0,
+ 4402, 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, 4403, 4403, 4403, 4403, 4403, 4403, 4403,
+ 4403, 4403, 4403, 4403, 4403, 4403, 4403, 4403, 4403, 4403,
+
+ 4403, 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, 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, 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, 4412, 0, 4412, 0, 0, 0, 0, 0, 4412,
+ 4412, 4412, 4412, 0, 0, 0, 0, 0, 0, 0,
+ 4412, 4412, 4412, 4412, 4412, 0, 4412, 0, 0, 0,
+ 0, 0, 0, 4412, 4413, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4413, 0, 0, 0, 0, 0,
+ 4413, 4413, 4413, 4413, 4413, 4413, 4413, 4413, 0, 0,
+ 0, 4413, 4413, 4413, 4413, 4413, 4413, 4413, 4413, 4413,
+ 4413, 4413, 4413, 4413, 4413, 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, 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, 4418, 4418, 4418, 4418, 4418, 4418, 4418, 4418,
+ 4418, 4418, 4418, 4418, 4418, 4418, 4418, 4418, 4418, 4418,
+ 4418, 4418, 4418, 4418, 4418, 4419, 0, 4419, 0, 0,
+ 0, 0, 0, 4419, 4419, 4419, 4419, 0, 0, 0,
+ 0, 0, 0, 0, 4419, 4419, 4419, 4419, 4419, 0,
+
+ 4419, 0, 0, 0, 0, 0, 0, 4419, 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,
+ 4426, 4426, 4426, 4426, 4426, 4426, 4426, 4426, 4426, 4426,
+ 4426, 4426, 4426, 4426, 4426, 4426, 4426, 4426, 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,
+ 4427, 4427, 4427, 4427, 4427, 4427, 4427, 4427, 4427, 4427,
+
+ 4427, 4427, 4427, 4427, 4427, 4427, 4427, 4427, 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, 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, 4432, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4432, 0,
+ 0, 0, 0, 0, 4432, 4432, 4432, 4432, 4432, 4432,
+ 4432, 4432, 0, 0, 0, 4432, 4432, 4432, 4432, 4432,
+ 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4432, 4433,
+
+ 0, 4433, 0, 0, 0, 0, 0, 4433, 4433, 4433,
+ 4433, 0, 0, 0, 0, 0, 0, 0, 4433, 4433,
+ 4433, 4433, 4433, 0, 4433, 0, 0, 0, 0, 0,
+ 0, 4433, 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, 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, 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, 4436,
+ 4436, 4436, 4436, 4436, 4436, 4436, 4436, 4436, 4436, 4436,
+ 4436, 4436, 4436, 4436, 4436, 4436, 4436, 4436, 4436, 4436,
+ 4436, 4436, 4439, 0, 4439, 0, 0, 0, 0, 0,
+ 4439, 4439, 4439, 4439, 0, 0, 0, 0, 0, 0,
+ 0, 4439, 4439, 4439, 4439, 4439, 0, 4439, 0, 0,
+ 0, 0, 0, 0, 4439, 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, 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, 4447, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4447, 0, 0, 0, 0,
+ 0, 4447, 4447, 4447, 4447, 4447, 4447, 4447, 4447, 0,
+ 0, 0, 4447, 4447, 4447, 4447, 4447, 4447, 4447, 4447,
+
+ 4447, 4447, 4447, 4447, 4447, 4447, 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, 4448, 4448, 4448,
+ 4448, 4448, 4448, 4448, 4448, 4448, 4448, 4448, 4448, 4448,
+ 4448, 4448, 4448, 4448, 4448, 4448, 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, 4449, 4449,
+ 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449, 4449,
+
+ 4449, 4449, 4449, 4449, 4449, 4449, 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, 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, 4452, 0, 4452, 0,
+ 0, 0, 0, 0, 4452, 4452, 4452, 4452, 0, 0,
+ 0, 0, 0, 0, 0, 4452, 4452, 4452, 4452, 4452,
+ 0, 4452, 0, 0, 0, 0, 0, 0, 4452, 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, 4456,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4456,
+ 0, 0, 0, 0, 0, 4456, 4456, 4456, 4456, 4456,
+ 4456, 4456, 4456, 0, 0, 0, 4456, 4456, 4456, 4456,
+ 4456, 4456, 4456, 4456, 4456, 4456, 4456, 4456, 4456, 4456,
+ 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, 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,
+ 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, 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,
+ 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, 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,
+ 4461, 0, 4461, 0, 0, 0, 0, 0, 4461, 4461,
+ 4461, 4461, 0, 0, 0, 0, 0, 0, 0, 4461,
+ 4461, 4461, 4461, 4461, 0, 4461, 0, 0, 0, 0,
+ 0, 0, 4461, 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, 4463, 4463, 4463, 4463, 4463, 4463,
+
+ 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463, 4463,
+ 4463, 4463, 4463, 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, 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, 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, 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, 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, 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, 4477,
+ 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
+
+ 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477, 4477,
+ 4477, 4477, 4477, 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, 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, 4479, 4479, 4479, 4479, 4479, 4479,
+
+ 4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479, 4479,
+ 4479, 4479, 4479, 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,
+ 4482, 4482, 4482, 4482, 4482, 4482, 4482, 4482, 4482, 4482,
+ 4482, 4482, 4482, 4482, 4482, 4482, 4482, 4482, 4482, 4482,
+ 4482, 4482, 4482, 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, 4484, 4484, 4484, 4484, 4484, 4484, 4484,
+
+ 4484, 4484, 4484, 4484, 4484, 4484, 4484, 4484, 4484, 4484,
+ 4484, 4484, 4484, 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, 4486, 4486, 4486, 4486, 4486, 4486,
+ 4486, 4486, 4486, 4486, 4486, 4486, 4486, 4486, 4486, 4486,
+ 4486, 4486, 4486, 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, 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, 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, 4493, 4493, 4493, 4493, 4493, 4493,
+ 4493, 4493, 4493, 4493, 4493, 4493, 4493, 4493, 4493, 4493,
+ 4493, 4493, 4493, 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, 4496, 4496, 4496, 4496, 4496,
+
+ 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496,
+ 4496, 4496, 4496, 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, 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, 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, 4500, 0, 4500, 0, 0, 0, 0,
+ 0, 4500, 4500, 4500, 4500, 0, 0, 0, 0, 0,
+ 0, 0, 4500, 4500, 4500, 4500, 4500, 0, 4500, 0,
+ 0, 0, 0, 0, 0, 4500, 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, 4502, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 4502, 0, 0, 0,
+ 0, 0, 4502, 4502, 4502, 4502, 4502, 4502, 4502, 4502,
+ 0, 0, 0, 4502, 4502, 4502, 4502, 4502, 4502, 4502,
+ 4502, 4502, 4502, 4502, 4502, 4502, 4502, 4503, 0, 4503,
+ 0, 0, 0, 0, 0, 4503, 4503, 4503, 4503, 0,
+ 0, 0, 0, 0, 0, 0, 4503, 4503, 4503, 4503,
+ 4503, 0, 4503, 0, 0, 0, 0, 0, 0, 4503,
+ 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, 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,
+ 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, 4509, 4509, 4509, 4509, 4509, 4509, 4509, 4509, 4509,
+ 4509, 4509, 4509, 4509, 4509, 4509, 4509, 4509, 4509, 4509,
+ 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, 4510, 4510, 4510,
+
+ 4510, 4510, 4510, 4510, 4510, 4510, 4510, 4510, 4510, 4510,
+ 4510, 4510, 4510, 4510, 4510, 4510, 4510, 4510, 4510, 4510,
+ 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,
+ 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,
+ 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,
+ 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, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518,
+ 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518, 4518,
+ 4519, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4519, 0, 0, 0, 0, 0, 4519, 4519, 4519, 4519,
+ 4519, 4519, 4519, 4519, 0, 0, 0, 4519, 4519, 4519,
+ 4519, 4519, 4519, 4519, 4519, 4519, 4519, 4519, 4519, 4519,
+ 4519, 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, 4520, 4520, 4520, 4520, 4520, 4520, 4520,
+
+ 4520, 4520, 4520, 4520, 4520, 4520, 4520, 4520, 4520, 4520,
+ 4520, 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, 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, 4525, 0, 4525, 0, 0, 0, 0, 0, 4525,
+ 4525, 4525, 4525, 0, 0, 0, 0, 0, 0, 0,
+ 4525, 4525, 4525, 4525, 4525, 0, 4525, 0, 0, 0,
+ 0, 0, 0, 4525, 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, 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, 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, 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, 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, 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, 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, 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, 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, 4542, 4542, 4542, 4542, 4542,
+ 4542, 4542, 4542, 4542, 4542, 4542, 4542, 4542, 4542, 4542,
+ 4542, 4542, 4542, 4542, 4543, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4543, 0, 0, 0, 0, 0,
+ 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 0, 0,
+ 0, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543, 4543,
+ 4543, 4543, 4543, 4543, 4543, 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, 4544, 4544, 4544,
+ 4544, 4544, 4544, 4544, 4544, 4544, 4544, 4544, 4544, 4544,
+ 4544, 4544, 4544, 4544, 4544, 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,
+ 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, 4547, 0, 4547, 0, 0,
+ 0, 0, 0, 4547, 4547, 4547, 4547, 0, 0, 0,
+
+ 0, 0, 0, 0, 4547, 4547, 4547, 4547, 4547, 0,
+ 4547, 0, 0, 0, 0, 0, 0, 4547, 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, 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, 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, 4553, 4553, 4553, 4553, 4553,
+
+ 4553, 4553, 4553, 4553, 4553, 4553, 4553, 4553, 4553, 4553,
+ 4553, 4553, 4553, 4553, 4553, 4553, 4553, 4553, 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, 4558, 4558, 4558, 4558, 4558,
+ 4558, 4558, 4558, 4558, 4558, 4558, 4558, 4558, 4558, 4558,
+ 4558, 4558, 4558, 4558, 4558, 4558, 4558, 4558, 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, 4566, 0,
+ 0, 0, 0, 0, 0, 0, 4566, 0, 4566, 0,
+ 0, 0, 0, 0, 4566, 4566, 4566, 4566, 4566, 4566,
+ 4566, 4566, 0, 0, 0, 4566, 4566, 4566, 4566, 4566,
+ 4566, 4566, 4566, 4566, 4566, 4566, 4566, 4566, 4566, 4567,
+ 0, 4567, 0, 0, 0, 0, 0, 4567, 4567, 4567,
+ 4567, 0, 0, 0, 0, 0, 0, 0, 4567, 4567,
+ 4567, 4567, 4567, 0, 4567, 0, 0, 0, 0, 0,
+ 0, 4567, 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, 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, 4570, 4570, 4570, 4570, 4570, 4570,
+ 4570, 4570, 4570, 4570, 4570, 4570, 4570, 4570, 4570, 4570,
+ 4570, 4570, 4572, 0, 4572, 0, 0, 0, 0, 0,
+
+ 4572, 4572, 4572, 4572, 0, 0, 0, 0, 0, 0,
+ 0, 4572, 4572, 4572, 4572, 4572, 0, 4572, 0, 0,
+ 0, 0, 0, 0, 4572, 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, 4573, 4573, 4573, 4573, 4573, 4573, 4573, 4573, 4573,
+ 4573, 4573, 4573, 4573, 4573, 4573, 4573, 4573, 4573, 4573,
+ 4573, 4573, 4573, 4573, 4573, 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, 4576, 4576, 4576, 4576, 4576,
+ 4576, 4576, 4576, 4576, 4576, 4576, 4576, 4576, 4576, 4576,
+ 4576, 4576, 4576, 4576, 4576, 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, 4579, 4579, 4579, 4579, 4579,
+ 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579,
+ 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579,
+
+ 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579,
+ 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579, 4579,
+ 4579, 4579, 4579, 4579, 4579, 4580, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4580, 0, 0, 0, 0,
+ 0, 4580, 4580, 4580, 4580, 4580, 4580, 4580, 4580, 0,
+ 0, 0, 4580, 4580, 4580, 4580, 4580, 4580, 4580, 4580,
+ 4580, 4580, 4580, 4580, 4580, 4580, 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, 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, 4585, 4585, 4585, 4585,
+ 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585,
+ 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585,
+ 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585,
+
+ 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585, 4585,
+ 4585, 4585, 4585, 4585, 4585, 4585, 4586, 0, 4586, 0,
+ 0, 0, 0, 0, 4586, 4586, 4586, 4586, 0, 0,
+ 0, 0, 0, 0, 0, 4586, 4586, 4586, 4586, 4586,
+ 0, 4586, 0, 0, 0, 0, 0, 0, 4586, 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, 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,
+ 4588, 4588, 4588, 4588, 4588, 4588, 4588, 4588, 4588, 4588,
+ 4588, 4588, 4588, 4588, 4588, 4588, 4588, 4588, 4588, 4591,
+ 0, 4591, 0, 0, 0, 0, 0, 4591, 4591, 4591,
+ 4591, 0, 0, 0, 0, 0, 0, 0, 4591, 4591,
+ 4591, 4591, 4591, 0, 4591, 0, 0, 0, 0, 0,
+ 0, 4591, 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593,
+ 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593,
+
+ 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593,
+ 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593,
+ 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593, 4593,
+ 4593, 4593, 4595, 0, 4595, 4595, 4595, 0, 0, 0,
+ 0, 0, 4595, 4595, 4595, 4595, 0, 0, 0, 0,
+ 0, 0, 0, 4595, 4595, 4595, 4595, 4595, 0, 4595,
+ 0, 0, 0, 0, 0, 0, 4595, 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, 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, 4607, 0, 0,
+ 0, 0, 0, 0, 0, 4607, 0, 4607, 0, 0,
+ 0, 0, 0, 4607, 4607, 4607, 4607, 4607, 4607, 4607,
+ 4607, 0, 0, 0, 4607, 4607, 4607, 4607, 4607, 4607,
+
+ 4607, 4607, 4607, 4607, 4607, 4607, 4607, 4607, 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, 4609,
+ 4609, 4609, 4609, 4609, 4609, 4609, 4609, 4609, 4609, 4609,
+ 4609, 4609, 4609, 4609, 4609, 4609, 4609, 4609, 4610, 0,
+ 4610, 0, 0, 0, 0, 0, 4610, 4610, 4610, 4610,
+ 0, 0, 0, 0, 0, 0, 0, 4610, 4610, 4610,
+ 4610, 4610, 0, 4610, 0, 0, 0, 0, 0, 0,
+ 4610, 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, 4611, 4611, 4611,
+ 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
+ 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611, 4611,
+ 4611, 4613, 0, 4613, 0, 0, 0, 0, 0, 4613,
+ 4613, 4613, 4613, 0, 0, 0, 0, 0, 0, 0,
+ 4613, 4613, 4613, 4613, 4613, 0, 4613, 0, 0, 0,
+ 0, 0, 0, 4613, 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,
+
+ 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618,
+ 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618, 4618,
+ 4618, 4618, 4618, 4618, 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, 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,
+
+ 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623,
+ 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623, 4623,
+ 4623, 4623, 4623, 4623, 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, 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, 4630, 4630, 4630, 4630, 4630,
+ 4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630, 4630,
+ 4630, 4630, 4630, 4630, 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, 4631, 4631, 4631, 4631, 4631,
+ 4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631, 4631,
+ 4631, 4631, 4631, 4631, 4633, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4633, 0, 0, 0, 0, 0,
+ 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 0, 0,
+
+ 0, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633, 4633,
+ 4633, 4633, 4633, 4633, 4633, 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, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637,
+ 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637, 4637,
+ 4637, 4637, 4637, 4637, 4637, 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, 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644,
+
+ 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644, 4644,
+ 4644, 4644, 4644, 4644, 4644, 4646, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4646, 0, 0, 0, 0,
+ 0, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 0,
+ 0, 0, 4646, 4646, 4646, 4646, 4646, 4646, 4646, 4646,
+ 4646, 4646, 4646, 4646, 4646, 4646, 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, 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, 4652, 4652, 4652,
+ 4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652, 4652,
+ 4652, 4652, 4652, 4652, 4652, 4652, 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, 4656, 4656, 4656, 4656,
+ 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656,
+ 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656,
+ 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656,
+ 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656, 4656,
+ 4656, 4656, 4656, 4656, 4656, 4656, 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, 4658, 4658, 4658, 4658, 4658, 4658, 4658, 4658,
+ 4658, 4658, 4658, 4658, 4658, 4658, 4658, 4658, 4658, 4658,
+
+ 4658, 4658, 4658, 4658, 4658, 4658, 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, 4660, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 4660, 0, 0, 0,
+ 0, 0, 4660, 4660, 4660, 4660, 4660, 4660, 4660, 4660,
+ 0, 0, 0, 4660, 4660, 4660, 4660, 4660, 4660, 4660,
+ 4660, 4660, 4660, 4660, 4660, 4660, 4660, 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, 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, 4665, 0, 4665,
+
+ 0, 0, 0, 0, 0, 4665, 4665, 4665, 4665, 0,
+ 0, 0, 0, 0, 0, 0, 4665, 4665, 4665, 4665,
+ 4665, 0, 4665, 0, 0, 0, 0, 0, 0, 4665,
+ 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, 4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666,
+ 4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666, 4666,
+ 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,
+ 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,
+ 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,
+ 4672, 0, 4672, 0, 0, 0, 0, 0, 4672, 4672,
+ 4672, 4672, 0, 0, 0, 0, 0, 0, 0, 4672,
+ 4672, 4672, 4672, 4672, 0, 4672, 0, 0, 0, 0,
+ 0, 0, 4672, 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, 4673, 4673, 4673, 4673, 4673, 4673,
+
+ 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673, 4673,
+ 4673, 4673, 4673, 4675, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4675, 0, 0, 0, 0, 0, 4675,
+ 4675, 4675, 4675, 4675, 4675, 4675, 4675, 0, 0, 0,
+ 4675, 4675, 4675, 4675, 4675, 4675, 4675, 4675, 4675, 4675,
+ 4675, 4675, 4675, 4675, 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, 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,
+ 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679,
+ 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679, 4679,
+ 4679, 4679, 4679, 4679, 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,
+ 4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681,
+ 4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681, 4681,
+
+ 4681, 4681, 4681, 4681, 4682, 0, 4682, 0, 0, 0,
+ 0, 0, 4682, 4682, 4682, 4682, 0, 0, 0, 0,
+ 0, 0, 0, 4682, 4682, 4682, 4682, 4682, 0, 4682,
+ 0, 0, 0, 0, 0, 0, 4682, 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, 4688, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4688, 0, 0,
+
+ 0, 0, 0, 4688, 4688, 4688, 4688, 4688, 4688, 4688,
+ 4688, 0, 0, 0, 4688, 4688, 4688, 4688, 4688, 4688,
+ 4688, 4688, 4688, 4688, 4688, 4688, 4688, 4688, 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, 4692, 0,
+ 4692, 0, 0, 0, 0, 0, 4692, 4692, 4692, 4692,
+ 0, 0, 0, 0, 0, 0, 0, 4692, 4692, 4692,
+
+ 4692, 4692, 0, 4692, 0, 0, 0, 0, 0, 0,
+ 4692, 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, 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, 4694, 4694, 4694, 4694, 4694, 4694, 4694, 4694,
+
+ 4694, 4694, 4694, 4694, 4694, 4694, 4694, 4694, 4694, 4694,
+ 4694, 4695, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4695, 0, 0, 0, 0, 0, 4695, 4695, 4695,
+ 4695, 4695, 4695, 4695, 4695, 0, 0, 0, 4695, 4695,
+ 4695, 4695, 4695, 4695, 4695, 4695, 4695, 4695, 4695, 4695,
+ 4695, 4695, 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, 4696, 4696,
+ 4696, 4696, 4696, 4696, 4696, 4696, 4696, 4696, 4696, 4696,
+ 4696, 4696, 4696, 4696, 4696, 4696, 4696, 4696, 4696, 4696,
+
+ 4696, 4696, 4697, 0, 4697, 0, 0, 0, 0, 0,
+ 4697, 4697, 4697, 4697, 0, 0, 0, 0, 0, 0,
+ 0, 4697, 4697, 4697, 4697, 4697, 0, 4697, 0, 0,
+ 0, 0, 0, 0, 4697, 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, 4698, 4698, 4698,
+ 4698, 4698, 4698, 4698, 4698, 4698, 4698, 4698, 4698, 4698,
+ 4698, 4698, 4698, 4698, 4698, 4699, 4699, 4699, 4699, 4699,
+ 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699,
+
+ 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699,
+ 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699,
+ 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699, 4699,
+ 4699, 4699, 4699, 4699, 4699, 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, 4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701,
+ 4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701, 4701,
+ 4701, 4701, 4701, 4701, 4701, 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, 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703,
+ 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703, 4703,
+ 4703, 4703, 4703, 4703, 4703, 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, 4704, 4704, 4704, 4704, 4704,
+ 4704, 4704, 4704, 4704, 4704, 4704, 4704, 4704, 4704, 4704,
+ 4704, 4704, 4704, 4704, 4704, 4705, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4705, 0, 0, 0, 0,
+
+ 0, 4705, 4705, 4705, 4705, 4705, 4705, 4705, 4705, 0,
+ 0, 0, 4705, 4705, 4705, 4705, 4705, 4705, 4705, 4705,
+ 4705, 4705, 4705, 4705, 4705, 4705, 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, 4707, 0, 4707, 0,
+ 0, 0, 0, 0, 4707, 4707, 4707, 4707, 0, 0,
+ 0, 0, 0, 0, 0, 4707, 4707, 4707, 4707, 4707,
+
+ 0, 4707, 0, 0, 0, 0, 0, 0, 4707, 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, 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, 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,
+ 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715,
+ 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4715, 4716,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4716,
+ 0, 0, 0, 0, 0, 4716, 4716, 4716, 4716, 4716,
+ 4716, 4716, 4716, 0, 0, 0, 4716, 4716, 4716, 4716,
+ 4716, 4716, 4716, 4716, 4716, 4716, 4716, 4716, 4716, 4716,
+
+ 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, 4717, 4717, 4717, 4717,
+ 4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717,
+ 4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717, 4717,
+ 4720, 0, 4720, 0, 0, 0, 0, 0, 4720, 4720,
+ 4720, 4720, 0, 0, 0, 0, 0, 0, 0, 4720,
+ 4720, 4720, 4720, 4720, 0, 4720, 0, 0, 0, 0,
+ 0, 0, 4720, 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, 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, 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, 4730, 4730, 4730, 4730, 4730,
+ 4730, 4730, 4730, 4730, 4730, 4730, 4730, 4730, 4730, 4730,
+ 4730, 4730, 4730, 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, 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, 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, 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, 4739, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4739, 0, 0, 0, 0, 0, 4739,
+ 4739, 4739, 4739, 4739, 4739, 4739, 4739, 0, 0, 0,
+ 4739, 4739, 4739, 4739, 4739, 4739, 4739, 4739, 4739, 4739,
+ 4739, 4739, 4739, 4739, 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, 4740, 4740, 4740, 4740, 4740,
+ 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740, 4740,
+ 4740, 4740, 4740, 4740, 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, 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, 4743, 4743, 4743, 4743,
+ 4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743, 4743,
+ 4743, 4743, 4743, 4743, 4744, 0, 4744, 0, 0, 0,
+ 0, 0, 4744, 4744, 4744, 4744, 0, 0, 0, 0,
+ 0, 0, 0, 4744, 4744, 4744, 4744, 4744, 0, 4744,
+ 0, 0, 0, 0, 0, 0, 4744, 4751, 4751, 4751,
+ 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751,
+ 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751,
+ 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751,
+ 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751, 4751,
+
+ 4751, 4751, 4751, 4751, 4751, 4751, 4751, 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, 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, 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, 4764,
+ 4764, 4764, 4764, 4764, 4764, 4764, 4764, 4764, 4764, 4764,
+ 4764, 4764, 4764, 4764, 4764, 4764, 4764, 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, 4768, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4768, 0, 0,
+ 0, 0, 0, 4768, 4768, 4768, 4768, 4768, 4768, 4768,
+ 4768, 0, 0, 0, 4768, 4768, 4768, 4768, 4768, 4768,
+ 4768, 4768, 4768, 4768, 4768, 4768, 4768, 4768, 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, 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, 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, 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,
+ 4775, 4775, 4775, 4775, 4775, 4775, 4775, 4775, 4775, 4775,
+ 4775, 4775, 4775, 4775, 4775, 4775, 4775, 4775, 4776, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4776, 0,
+ 0, 0, 0, 0, 4776, 4776, 4776, 4776, 4776, 4776,
+ 4776, 4776, 0, 0, 0, 4776, 4776, 4776, 4776, 4776,
+ 4776, 4776, 4776, 4776, 4776, 4776, 4776, 4776, 4776, 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,
+ 4777, 4777, 4777, 4777, 4777, 4777, 4777, 4777, 4777, 4777,
+ 4777, 4777, 4777, 4777, 4777, 4777, 4777, 4777, 4777, 4778,
+ 0, 4778, 0, 0, 0, 0, 0, 4778, 4778, 4778,
+ 4778, 0, 0, 0, 0, 0, 0, 0, 4778, 4778,
+ 4778, 4778, 4778, 0, 4778, 0, 0, 0, 0, 0,
+ 0, 4778, 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, 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, 4780, 4780, 4780, 4780, 4780, 4780,
+ 4780, 4780, 4780, 4780, 4780, 4780, 4780, 4780, 4780, 4780,
+ 4780, 4780, 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, 4782, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 4782, 0, 0, 0, 0, 0, 4782, 4782,
+ 4782, 4782, 4782, 4782, 4782, 4782, 0, 0, 0, 4782,
+ 4782, 4782, 4782, 4782, 4782, 4782, 4782, 4782, 4782, 4782,
+ 4782, 4782, 4782, 4784, 0, 4784, 0, 0, 0, 0,
+ 0, 4784, 4784, 4784, 4784, 0, 0, 0, 0, 0,
+ 0, 0, 4784, 4784, 4784, 4784, 4784, 0, 4784, 0,
+ 0, 0, 0, 0, 0, 4784, 4785, 4785, 4785, 4785,
+
+ 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785,
+ 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785,
+ 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785,
+ 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785, 4785,
+ 4785, 4785, 4785, 4785, 4785, 4785, 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, 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, 4787, 0, 0, 0,
+
+ 0, 0, 0, 0, 0, 0, 4787, 0, 0, 0,
+ 0, 0, 4787, 4787, 4787, 4787, 4787, 4787, 4787, 4787,
+ 0, 0, 0, 4787, 4787, 4787, 4787, 4787, 4787, 4787,
+ 4787, 4787, 4787, 4787, 4787, 4787, 4787, 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, 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, 4789, 0, 4789,
+ 0, 0, 0, 0, 0, 4789, 4789, 4789, 4789, 0,
+
+ 0, 0, 0, 0, 0, 0, 4789, 4789, 4789, 4789,
+ 4789, 0, 4789, 0, 0, 0, 0, 0, 0, 4789,
+ 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,
+ 4794, 0, 0, 0, 0, 0, 0, 0, 4794, 0,
+ 4794, 0, 0, 0, 0, 0, 4794, 4794, 4794, 4794,
+ 4794, 4794, 4794, 4794, 0, 0, 0, 4794, 4794, 4794,
+
+ 4794, 4794, 4794, 4794, 4794, 4794, 4794, 4794, 4794, 4794,
+ 4794, 4795, 0, 4795, 0, 0, 0, 0, 0, 4795,
+ 4795, 4795, 4795, 0, 0, 0, 0, 0, 0, 0,
+ 4795, 4795, 4795, 4795, 4795, 0, 4795, 0, 0, 0,
+ 0, 0, 0, 4795, 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, 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, 4798, 4798, 4798, 4798,
+ 4798, 4798, 4798, 4798, 4798, 4798, 4798, 4798, 4798, 4798,
+ 4798, 4798, 4798, 4798, 4800, 0, 4800, 0, 0, 0,
+ 0, 0, 4800, 4800, 4800, 4800, 0, 0, 0, 0,
+ 0, 0, 0, 4800, 4800, 4800, 4800, 4800, 0, 4800,
+ 0, 0, 0, 0, 0, 0, 4800, 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, 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, 4803, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4803, 0, 0,
+ 0, 0, 0, 4803, 4803, 4803, 4803, 4803, 4803, 4803,
+ 4803, 0, 0, 0, 4803, 4803, 4803, 4803, 4803, 4803,
+ 4803, 4803, 4803, 4803, 4803, 4803, 4803, 4803, 4804, 0,
+ 4804, 0, 0, 0, 0, 0, 4804, 4804, 4804, 4804,
+ 0, 0, 0, 0, 0, 0, 0, 4804, 4804, 4804,
+ 4804, 4804, 0, 4804, 0, 0, 0, 0, 0, 0,
+
+ 4804, 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,
+ 4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805,
+ 4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805, 4805,
+ 4805, 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, 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, 4810, 0, 4810, 0, 0, 0, 0, 0, 4810,
+ 4810, 4810, 4810, 0, 0, 0, 0, 0, 0, 0,
+ 4810, 4810, 4810, 4810, 4810, 0, 4810, 0, 0, 0,
+ 0, 0, 0, 4810, 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, 4816, 4816, 4816, 4816,
+ 4816, 4816, 4816, 4816, 4816, 4816, 4816, 4816, 4816, 4816,
+ 4816, 4816, 4816, 4816, 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, 4818, 4818, 4818, 4818,
+ 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818, 4818,
+ 4818, 4818, 4818, 4818, 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, 4821, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4821, 0, 0, 0, 0, 0,
+ 4821, 4821, 4821, 4821, 4821, 4821, 4821, 4821, 0, 0,
+ 0, 4821, 4821, 4821, 4821, 4821, 4821, 4821, 4821, 4821,
+ 4821, 4821, 4821, 4821, 4821, 4823, 0, 4823, 0, 0,
+ 0, 0, 0, 4823, 4823, 4823, 4823, 0, 0, 0,
+ 0, 0, 0, 0, 4823, 4823, 4823, 4823, 4823, 0,
+
+ 4823, 0, 0, 0, 0, 0, 0, 4823, 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, 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, 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, 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, 4827, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4827, 0,
+ 0, 0, 0, 0, 4827, 4827, 4827, 4827, 4827, 4827,
+ 4827, 4827, 0, 0, 0, 4827, 4827, 4827, 4827, 4827,
+ 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 4827, 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, 4829,
+ 0, 4829, 0, 0, 0, 0, 0, 4829, 4829, 4829,
+ 4829, 0, 0, 0, 0, 0, 0, 0, 4829, 4829,
+ 4829, 4829, 4829, 0, 4829, 0, 0, 0, 0, 0,
+ 0, 4829, 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, 4834, 4834, 4834, 4834, 4834, 4834,
+ 4834, 4834, 4834, 4834, 4834, 4834, 4834, 4834, 4834, 4834,
+ 4834, 4834, 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, 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, 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, 4839, 0, 4839, 0, 0, 0, 0, 0,
+ 4839, 4839, 4839, 4839, 0, 0, 0, 0, 0, 0,
+ 0, 4839, 4839, 4839, 4839, 4839, 0, 4839, 0, 0,
+ 0, 0, 0, 0, 4839, 4840, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 4840, 0, 0, 0, 0,
+ 0, 4840, 4840, 4840, 4840, 4840, 4840, 4840, 4840, 0,
+ 0, 0, 4840, 4840, 4840, 4840, 4840, 4840, 4840, 4840,
+
+ 4840, 4840, 4840, 4840, 4840, 4840, 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, 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, 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, 4846, 0, 4846, 0,
+ 0, 0, 0, 0, 4846, 4846, 4846, 4846, 0, 0,
+ 0, 0, 0, 0, 0, 4846, 4846, 4846, 4846, 4846,
+ 0, 4846, 0, 0, 0, 0, 0, 0, 4846, 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,
+ 4850, 4850, 4850, 4850, 4850, 4850, 4850, 4850, 4850, 4850,
+ 4850, 4850, 4850, 4850, 4850, 4850, 4850, 4850, 4850, 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, 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, 4858,
+ 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858,
+ 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858,
+ 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858,
+ 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858,
+ 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 4858, 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, 4860, 4860,
+ 4860, 4860, 4860, 4860, 4860, 4860, 4860, 4860, 4860, 4860,
+ 4860, 4860, 4860, 4860, 4860, 4860, 4860, 4860, 4860, 4861,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4861,
+ 0, 0, 0, 0, 0, 4861, 4861, 4861, 4861, 4861,
+ 4861, 4861, 4861, 0, 0, 0, 4861, 4861, 4861, 4861,
+ 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861, 4861,
+ 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,
+ 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,
+ 4866, 0, 4866, 0, 0, 0, 0, 0, 4866, 4866,
+ 4866, 4866, 0, 0, 0, 0, 0, 0, 0, 4866,
+
+ 4866, 4866, 4866, 4866, 0, 4866, 0, 0, 0, 0,
+ 0, 0, 4866, 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, 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, 4868, 4868, 4868, 4868, 4868, 4868,
+
+ 4868, 4868, 4868, 4868, 4868, 4868, 4868, 4868, 4868, 4868,
+ 4868, 4868, 4868, 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, 4876, 4876, 4876, 4876, 4876, 4876, 4876,
+ 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876,
+ 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876,
+ 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876,
+
+ 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876, 4876,
+ 4876, 4876, 4876, 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, 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, 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, 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,
+ 4888, 4888, 4888, 4888, 4888, 4888, 4888, 4888, 4888, 4888,
+ 4888, 4888, 4888, 4888, 4888, 4888, 4888, 4888, 4888, 4888,
+ 4888, 4888, 4888, 4890, 4890, 4890, 4890, 4890, 4890, 4890,
+ 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890,
+ 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890,
+ 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890,
+
+ 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890, 4890,
+ 4890, 4890, 4890, 4891, 4891, 4891, 4891, 4891, 4891, 4891,
+ 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891,
+ 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891,
+ 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891,
+ 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891, 4891,
+ 4891, 4891, 4891, 4892, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4892, 0, 0, 0, 0, 0, 4892,
+ 4892, 4892, 4892, 4892, 4892, 4892, 4892, 0, 0, 0,
+ 4892, 4892, 4892, 4892, 4892, 4892, 4892, 4892, 4892, 4892,
+
+ 4892, 4892, 4892, 4892, 4893, 4893, 4893, 4893, 4893, 4893,
+ 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893,
+ 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893,
+ 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893,
+ 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893, 4893,
+ 4893, 4893, 4893, 4893, 4894, 0, 4894, 0, 0, 0,
+ 0, 0, 4894, 4894, 4894, 4894, 0, 0, 0, 0,
+ 0, 0, 0, 4894, 4894, 4894, 4894, 4894, 0, 4894,
+ 0, 0, 0, 0, 0, 0, 4894, 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, 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, 4897, 4897,
+ 4897, 4897, 4897, 4897, 4897, 4897, 4897, 4897, 4897, 4897,
+ 4897, 4897, 4897, 4897, 4897, 4897, 4897, 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, 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, 4900, 4900,
+ 4900, 4900, 4900, 4900, 4900, 4900, 4900, 4900, 4900, 4900,
+ 4900, 4900, 4900, 4900, 4900, 4900, 4900, 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, 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, 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, 4903, 4903, 4903, 4903, 4903, 4903,
+ 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4903,
+ 4903, 4903, 4903, 4903, 4903, 4903, 4903, 4904, 0, 4904,
+ 0, 0, 0, 0, 0, 4904, 4904, 4904, 4904, 0,
+
+ 0, 0, 0, 0, 0, 0, 4904, 4904, 4904, 4904,
+ 4904, 0, 4904, 0, 0, 0, 0, 0, 0, 4904,
+ 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,
+ 4905, 4905, 4905, 4905, 4905, 4905, 4905, 4905, 4905, 4905,
+ 4905, 4905, 4905, 4905, 4905, 4905, 4905, 4905, 4905, 4905,
+ 4906, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 4906, 0, 0, 0, 0, 0, 4906, 4906, 4906, 4906,
+ 4906, 4906, 4906, 4906, 0, 0, 0, 4906, 4906, 4906,
+
+ 4906, 4906, 4906, 4906, 4906, 4906, 4906, 4906, 4906, 4906,
+ 4906, 4907, 0, 4907, 0, 0, 0, 0, 0, 4907,
+ 4907, 4907, 4907, 0, 0, 0, 0, 0, 0, 0,
+ 4907, 4907, 4907, 4907, 4907, 0, 4907, 0, 0, 0,
+ 0, 0, 0, 4907, 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, 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, 4914, 4914, 4914, 4914, 4914,
+ 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914, 4914,
+ 4914, 4914, 4914, 4914, 4915, 0, 4915, 0, 0, 0,
+ 0, 0, 4915, 4915, 4915, 4915, 0, 0, 0, 0,
+ 0, 0, 0, 4915, 4915, 4915, 4915, 4915, 0, 4915,
+ 0, 0, 0, 0, 0, 0, 4915, 4916, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4916, 0, 0,
+ 0, 0, 0, 4916, 4916, 4916, 4916, 4916, 4916, 4916,
+
+ 4916, 0, 0, 0, 4916, 4916, 4916, 4916, 4916, 4916,
+ 4916, 4916, 4916, 4916, 4916, 4916, 4916, 4916, 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, 4919, 4919,
+ 4919, 4919, 4919, 4919, 4919, 4919, 4919, 4919, 4919, 4919,
+ 4919, 4919, 4919, 4919, 4919, 4919, 4919, 4919, 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, 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, 4922, 4922, 4922, 4922, 4922,
+ 4922, 4922, 4922, 4922, 4922, 4922, 4922, 4922, 4922, 4922,
+ 4922, 4922, 4922, 4922, 4922, 4922, 4922, 4922, 4923, 0,
+ 4923, 0, 0, 0, 0, 0, 4923, 4923, 4923, 4923,
+ 0, 0, 0, 0, 0, 0, 0, 4923, 4923, 4923,
+ 4923, 4923, 0, 4923, 0, 0, 0, 0, 0, 0,
+
+ 4923, 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, 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, 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, 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, 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, 4935, 0, 4935, 0, 0, 0, 0, 0, 4935,
+ 4935, 4935, 4935, 0, 0, 0, 0, 0, 0, 0,
+ 4935, 4935, 4935, 4935, 4935, 0, 4935, 0, 0, 0,
+ 0, 0, 0, 4935, 4937, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4937, 0, 0, 0, 0, 0,
+
+ 4937, 4937, 4937, 4937, 4937, 4937, 4937, 4937, 0, 0,
+ 0, 4937, 4937, 4937, 4937, 4937, 4937, 4937, 4937, 4937,
+ 4937, 4937, 4937, 4937, 4937, 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, 4942, 0, 4942, 0, 0,
+ 0, 0, 0, 4942, 4942, 4942, 4942, 0, 0, 0,
+ 0, 0, 0, 0, 4942, 4942, 4942, 4942, 4942, 0,
+
+ 4942, 0, 0, 0, 0, 0, 0, 4942, 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, 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, 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, 4947, 4947,
+ 4947, 4947, 4947, 4947, 4947, 4947, 4947, 4947, 4947, 4947,
+
+ 4947, 4947, 4947, 4947, 4947, 4947, 4947, 4947, 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, 4949,
+ 4949, 4949, 4949, 4949, 4949, 4949, 4949, 4949, 4949, 4949,
+ 4949, 4949, 4949, 4949, 4949, 4949, 4949, 4949, 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, 4950, 4950, 4950, 4950, 4950,
+ 4950, 4950, 4950, 4950, 4950, 4950, 4950, 4950, 4950, 4950,
+
+ 4950, 4950, 4950, 4950, 4950, 4950, 4950, 4950, 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, 4952, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 4952, 0,
+ 0, 0, 0, 0, 4952, 4952, 4952, 4952, 4952, 4952,
+ 4952, 4952, 0, 0, 0, 4952, 4952, 4952, 4952, 4952,
+ 4952, 4952, 4952, 4952, 4952, 4952, 4952, 4952, 4952, 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,
+ 4953, 4953, 4953, 4953, 4953, 4953, 4953, 4953, 4953, 4953,
+ 4953, 4953, 4953, 4953, 4953, 4953, 4953, 4953, 4953, 4956,
+ 0, 4956, 0, 0, 0, 0, 0, 4956, 4956, 4956,
+ 4956, 0, 0, 0, 0, 0, 0, 0, 4956, 4956,
+ 4956, 4956, 4956, 0, 4956, 0, 0, 0, 0, 0,
+ 0, 4956, 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, 4959,
+ 4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959,
+ 4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959, 4959,
+ 4959, 4959, 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, 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961,
+ 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961, 4961,
+ 4961, 4961, 4962, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 4962, 0, 0, 0, 0, 0, 4962, 4962,
+
+ 4962, 4962, 4962, 4962, 4962, 4962, 0, 0, 0, 4962,
+ 4962, 4962, 4962, 4962, 4962, 4962, 4962, 4962, 4962, 4962,
+ 4962, 4962, 4962, 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, 4968, 4968, 4968, 4968, 4968, 4968,
+ 4968, 4968, 4968, 4968, 4968, 4968, 4968, 4968, 4968, 4968,
+ 4968, 4968, 4968, 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, 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, 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, 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, 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, 4976, 4976, 4976, 4976, 4976, 4976, 4976,
+ 4976, 4976, 4976, 4976, 4976, 4976, 4976, 4976, 4976, 4976,
+ 4976, 4976, 4976, 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, 4978, 4978, 4978, 4978, 4978, 4978,
+ 4978, 4978, 4978, 4978, 4978, 4978, 4978, 4978, 4978, 4978,
+ 4978, 4978, 4978, 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,
+
+ 4979, 4979, 4979, 4979, 4979, 4979, 4979, 4979, 4979, 4979,
+ 4979, 4979, 4979, 4979, 4979, 4979, 4979, 4979, 4979, 4979,
+ 4979, 4979, 4979, 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, 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, 4982, 4982, 4982, 4982, 4982, 4982,
+ 4982, 4982, 4982, 4982, 4982, 4982, 4982, 4982, 4982, 4982,
+ 4982, 4982, 4982, 4984, 0, 0, 0, 0, 0, 0,
+ 0, 4984, 0, 4984, 0, 0, 0, 0, 0, 4984,
+ 4984, 4984, 4984, 4984, 4984, 4984, 4984, 0, 0, 0,
+ 4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984, 4984,
+ 4984, 4984, 4984, 4984, 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, 4985, 4985, 4985, 4985, 4985,
+
+ 4985, 4985, 4985, 4985, 4985, 4985, 4985, 4985, 4985, 4985,
+ 4985, 4985, 4985, 4985, 4986, 0, 4986, 0, 0, 0,
+ 0, 0, 4986, 4986, 4986, 4986, 0, 0, 0, 0,
+ 0, 0, 0, 4986, 4986, 4986, 4986, 4986, 0, 4986,
+ 0, 0, 0, 0, 0, 0, 4986, 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, 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, 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, 4988, 4988, 4988, 4988, 4988, 4988,
+ 4988, 4988, 4988, 4988, 4988, 4988, 4988, 4988, 4988, 4988,
+ 4988, 4988, 4988, 4988, 4988, 4988, 4988, 4990, 0, 4990,
+ 0, 0, 0, 0, 0, 4990, 4990, 4990, 4990, 0,
+ 0, 0, 0, 0, 0, 0, 4990, 4990, 4990, 4990,
+ 4990, 0, 4990, 0, 0, 0, 0, 0, 0, 4990,
+ 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, 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992, 4992,
+ 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,
+ 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, 4998, 4998, 4998, 4998,
+ 4998, 4998, 4998, 4998, 4998, 4998, 4998, 4998, 4998, 4998,
+ 4998, 4998, 4998, 4998, 4998, 4998, 4998, 4998, 4998, 4998,
+ 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,
+ 5000, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 5000, 0, 0, 0, 0, 0, 5000, 5000, 5000, 5000,
+
+ 5000, 5000, 5000, 5000, 0, 0, 0, 5000, 5000, 5000,
+ 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000, 5000,
+ 5000, 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, 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5001,
+ 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5001,
+ 5001, 5002, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 5002, 0, 0, 0, 0, 0, 5002, 5002, 5002,
+ 5002, 5002, 5002, 5002, 5002, 0, 0, 0, 5002, 5002,
+
+ 5002, 5002, 5002, 5002, 5002, 5002, 5002, 5002, 5002, 5002,
+ 5002, 5002, 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, 5004, 0, 5004, 0, 0, 0, 0, 0,
+ 5004, 5004, 5004, 5004, 0, 0, 0, 0, 0, 0,
+ 0, 5004, 5004, 5004, 5004, 5004, 0, 5004, 0, 0,
+ 0, 0, 0, 0, 5004, 5005, 5005, 5005, 5005, 5005,
+
+ 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005,
+ 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005,
+ 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005,
+ 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005, 5005,
+ 5005, 5005, 5005, 5005, 5005, 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, 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,
+ 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, 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, 5010, 5010, 5010, 5010, 5010, 5010, 5010, 5010, 5010,
+ 5010, 5010, 5010, 5010, 5010, 5010, 5010, 5010, 5010, 5010,
+ 5010, 5010, 5010, 5010, 5010, 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, 5015, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 5015, 0, 0, 0, 0,
+ 0, 5015, 5015, 5015, 5015, 5015, 5015, 5015, 5015, 0,
+ 0, 0, 5015, 5015, 5015, 5015, 5015, 5015, 5015, 5015,
+ 5015, 5015, 5015, 5015, 5015, 5015, 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, 5017, 5017, 5017, 5017, 5017, 5017, 5017, 5017,
+ 5017, 5017, 5017, 5017, 5017, 5017, 5017, 5017, 5017, 5017,
+ 5017, 5017, 5017, 5017, 5017, 5017, 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, 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, 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, 5021, 0, 5021, 0,
+ 0, 0, 0, 0, 5021, 5021, 5021, 5021, 0, 0,
+ 0, 0, 0, 0, 0, 5021, 5021, 5021, 5021, 5021,
+ 0, 5021, 0, 0, 0, 0, 0, 0, 5021, 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, 5022, 5022, 5022, 5022, 5022,
+
+ 5022, 5022, 5022, 5022, 5022, 5022, 5022, 5022, 5022, 5022,
+ 5022, 5022, 5022, 5022, 5022, 5022, 5022, 5022, 5022, 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, 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, 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, 5029, 5029, 5029, 5029, 5029,
+ 5029, 5029, 5029, 5029, 5029, 5029, 5029, 5029, 5029, 5029,
+ 5029, 5029, 5029, 5029, 5029, 5029, 5029, 5029, 5029, 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, 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, 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, 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, 5037,
+ 5037, 5037, 5037, 5037, 5037, 5037, 5037, 5037, 5037, 5037,
+ 5037, 5037, 5037, 5037, 5037, 5037, 5037, 5037, 5037, 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, 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, 5041, 5041, 5041, 5041, 5041,
+ 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041,
+ 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 5041, 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, 5048, 5048, 5048, 5048, 5048,
+
+ 5048, 5048, 5048, 5048, 5048, 5048, 5048, 5048, 5048, 5048,
+ 5048, 5048, 5048, 5048, 5048, 5048, 5048, 5048, 5048, 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, 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, 5060, 5060, 5060, 5060, 5060,
+
+ 5060, 5060, 5060, 5060, 5060, 5060, 5060, 5060, 5060, 5060,
+ 5060, 5060, 5060, 5060, 5060, 5060, 5060, 5060, 5060, 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, 5064, 5064, 5064, 5064, 5064, 5064, 5064, 5064, 5064,
+ 5064, 5064, 5064, 5064, 5064, 5064, 5064, 5064, 5064, 5066,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 5066,
+ 0, 0, 0, 0, 0, 5066, 5066, 5066, 5066, 5066,
+ 5066, 5066, 5066, 0, 0, 0, 5066, 5066, 5066, 5066,
+
+ 5066, 5066, 5066, 5066, 5066, 5066, 5066, 5066, 5066, 5066,
+ 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,
+ 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,
+ 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,
+ 5071, 0, 5071, 0, 0, 0, 0, 0, 5071, 5071,
+ 5071, 5071, 0, 0, 0, 0, 0, 0, 0, 5071,
+ 5071, 5071, 5071, 5071, 0, 5071, 0, 0, 0, 0,
+ 0, 0, 5071, 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, 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, 5081, 0, 0, 0, 0, 0, 0,
+
+ 0, 0, 0, 5081, 0, 0, 0, 0, 0, 5081,
+ 5081, 5081, 5081, 5081, 5081, 5081, 5081, 0, 0, 0,
+ 5081, 5081, 5081, 5081, 5081, 5081, 5081, 5081, 5081, 5081,
+ 5081, 5081, 5081, 5081, 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, 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,
+ 5083, 5083, 5083, 5083, 5083, 5083, 5083, 5083, 5083, 5083,
+ 5083, 5083, 5083, 5083, 5083, 5083, 5083, 5083, 5083, 5083,
+ 5083, 5083, 5083, 5083, 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,
+ 5085, 5085, 5085, 5085, 5085, 5085, 5085, 5085, 5085, 5085,
+ 5085, 5085, 5085, 5085, 5085, 5085, 5085, 5085, 5085, 5085,
+ 5085, 5085, 5085, 5085, 5086, 0, 5086, 0, 0, 0,
+ 0, 0, 5086, 5086, 5086, 5086, 0, 0, 0, 0,
+
+ 0, 0, 0, 5086, 5086, 5086, 5086, 5086, 0, 5086,
+ 0, 0, 0, 0, 0, 0, 5086, 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, 5094,
+ 5094, 5094, 5094, 5094, 5094, 5094, 5094, 5094, 5094, 5094,
+ 5094, 5094, 5094, 5094, 5094, 5094, 5094, 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, 5096,
+
+ 5096, 5096, 5096, 5096, 5096, 5096, 5096, 5096, 5096, 5096,
+ 5096, 5096, 5096, 5096, 5096, 5096, 5096, 5100, 5100, 5100,
+ 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100,
+ 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100,
+ 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100,
+ 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100, 5100,
+ 5100, 5100, 5100, 5100, 5100, 5100, 5100, 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, 5105,
+
+ 5105, 5105, 5105, 5105, 5105, 5105, 5105, 5105, 5105, 5105,
+ 5105, 5105, 5105, 5105, 5105, 5105, 5105, 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, 5110, 5110, 5110,
+ 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110,
+ 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110,
+ 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110,
+
+ 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5110,
+ 5110, 5110, 5110, 5110, 5110, 5110, 5110, 5113, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 5113, 0, 0,
+ 0, 0, 0, 5113, 5113, 5113, 5113, 5113, 5113, 5113,
+ 5113, 0, 0, 0, 5113, 5113, 5113, 5113, 5113, 5113,
+ 5113, 5113, 5113, 5113, 5113, 5113, 5113, 5113, 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, 5114, 5114, 5114, 5114, 5114,
+ 5114, 5114, 5114, 5114, 5114, 5114, 5114, 5114, 5114, 5114,
+
+ 5114, 5114, 5114, 5114, 5114, 5114, 5114, 5114, 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,
+ 5116, 5116, 5116, 5116, 5116, 5116, 5116, 5116, 5116, 5116,
+ 5116, 5116, 5116, 5116, 5116, 5116, 5116, 5116, 5117, 0,
+ 5117, 0, 0, 0, 0, 0, 5117, 5117, 5117, 5117,
+ 0, 0, 0, 0, 0, 0, 0, 5117, 5117, 5117,
+ 5117, 5117, 0, 5117, 0, 0, 0, 0, 0, 0,
+ 5117, 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, 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, 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, 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, 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, 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, 5127, 0, 5127, 5127, 5127, 0, 0, 0, 0,
+
+ 0, 5127, 5127, 5127, 5127, 0, 0, 0, 0, 0,
+ 0, 0, 5127, 5127, 5127, 5127, 5127, 0, 5127, 0,
+ 0, 0, 0, 0, 0, 5127, 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, 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, 5134, 5134, 5134, 5134, 5134,
+ 5134, 5134, 5134, 5134, 5134, 5134, 5134, 5134, 5134, 5134,
+ 5134, 5134, 5134, 5134, 5134, 5134, 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, 5136, 5136, 5136, 5136, 5136, 5136, 5136,
+ 5136, 5136, 5136, 5136, 5136, 5136, 5136, 5136, 5136, 5136,
+ 5136, 5136, 5136, 5136, 5136, 5136, 5144, 5144, 5144, 5144,
+ 5144, 5144, 5144, 5144, 5144, 5144, 5144, 5144, 5144, 5144,
+ 5144, 5144, 5144, 5144, 5145, 5145, 5145, 5145, 5145, 5145,
+
+ 5145, 5145, 5145, 5145, 5145, 5145, 5145, 5145, 5145, 5145,
+ 5145, 5145, 5146, 5146, 5146, 5146, 5146, 5146, 5146, 5146,
+ 5146, 5146, 5146, 5146, 5146, 5146, 5146, 5146, 5146, 5146,
+ 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147,
+ 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5147, 5148, 5148,
+ 5148, 5148, 5148, 5148, 5148, 5148, 5148, 5148, 5148, 5148,
+ 5148, 5148, 5148, 5148, 5148, 5148, 5149, 0, 0, 0,
+ 0, 0, 0, 5149, 0, 5149, 5149, 5150, 0, 5150,
+ 0, 5150, 5151, 0, 0, 0, 0, 0, 0, 5151,
+ 0, 5151, 5151, 5152, 5152, 5152, 0, 0, 5152, 0,
+
+ 5152, 0, 5152, 0, 5152, 0, 0, 5152, 5152, 5153,
+ 5153, 5153, 0, 0, 5153, 5153, 0, 5153, 5153, 5153,
+ 5153, 5153, 0, 5153, 5153, 5154, 5154, 5154, 0, 0,
+ 5154, 0, 0, 0, 0, 0, 5154, 0, 0, 5154,
+ 5154, 5154, 5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155,
+ 5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155, 5155,
+ 5156, 5156, 5156, 5156, 5156, 5156, 5156, 5156, 5156, 5156,
+ 0, 5156, 5156, 5156, 5156, 5156, 5156, 5156, 5157, 5157,
+ 5157, 5157, 5157, 5157, 5157, 5157, 5157, 5157, 5157, 5157,
+ 5157, 5157, 5157, 5157, 5157, 5157, 5158, 5158, 5158, 5158,
+
+ 5158, 5158, 5158, 5158, 5158, 5158, 5158, 5158, 5158, 5158,
+ 5158, 5158, 5158, 5158, 5159, 0, 0, 0, 0, 0,
+ 0, 5159, 0, 5159, 5159, 5160, 5160, 5160, 0, 0,
+ 5160, 5160, 0, 5160, 5160, 5160, 5160, 5160, 0, 5160,
+ 5160, 5161, 5161, 5161, 0, 5161, 0, 0, 5161, 5161,
+ 0, 0, 5161, 0, 0, 5161, 5161, 5161, 5162, 5162,
+ 5162, 0, 0, 5162, 5162, 0, 5162, 5162, 5162, 5162,
+ 5162, 0, 5162, 5162, 5163, 5163, 5163, 5163, 5163, 5163,
+ 5163, 5163, 5163, 5163, 5163, 5163, 5163, 5163, 5163, 5163,
+ 5163, 5163, 5164, 5164, 5164, 5164, 5164, 5164, 5164, 5164,
+
+ 5164, 5164, 5164, 5164, 5164, 5164, 5164, 5164, 5164, 5164,
+ 5165, 5165, 5165, 0, 0, 5165, 0, 0, 0, 0,
+ 0, 5165, 5165, 0, 5165, 5165, 5165, 5166, 5166, 5166,
+ 5166, 5166, 5166, 5166, 5166, 5166, 5166, 5166, 5166, 5166,
+ 5166, 5166, 5166, 5166, 5166, 5167, 5167, 5167, 5167, 5167,
+ 5167, 5167, 5167, 5167, 5167, 5167, 5167, 5167, 5167, 5167,
+ 5167, 5167, 5167, 5168, 5168, 5168, 5168, 5168, 5168, 5168,
+ 5168, 5168, 5168, 5168, 5168, 5168, 5168, 5168, 5168, 5168,
+ 5168, 5169, 5169, 5169, 5169, 5169, 5169, 5169, 5169, 5169,
+ 5169, 5169, 5169, 5169, 5169, 5169, 5169, 5169, 5169, 5170,
+
+ 5170, 5170, 5170, 5170, 5170, 5170, 5170, 5170, 5170, 5170,
+ 5170, 5170, 5170, 5170, 5170, 5170, 5170, 5171, 5171, 5171,
+ 5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171, 5171,
+ 5171, 5171, 5171, 5171, 5171, 5172, 5172, 5172, 0, 0,
+ 5172, 5172, 0, 5172, 5172, 5172, 5172, 5172, 0, 5172,
+ 5172, 5173, 5173, 5173, 5173, 5173, 5173, 5173, 5173, 5173,
+ 5173, 5173, 5173, 5173, 5173, 5173, 5173, 5173, 5173, 5174,
+ 5174, 5174, 5174, 5174, 5174, 5174, 5174, 5174, 5174, 5174,
+ 5174, 5174, 5174, 5174, 5174, 5174, 5174, 5175, 5175, 5175,
+ 5175, 5175, 5175, 5175, 5175, 5175, 5175, 5175, 5175, 5175,
+
+ 5175, 5175, 5175, 5175, 5175, 5176, 5176, 5176, 5176, 5176,
+ 5176, 5176, 5176, 5176, 5176, 5176, 5176, 5176, 5176, 5176,
+ 5176, 5176, 5176, 5177, 5177, 5177, 5177, 5177, 5177, 5177,
+ 5177, 5177, 5177, 5177, 5177, 5177, 5177, 5177, 5177, 5177,
+ 5177, 5178, 5178, 5178, 5178, 5178, 5178, 5178, 5178, 5178,
+ 5178, 5178, 5178, 5178, 5178, 5178, 5178, 5178, 5178, 5179,
+ 5179, 5179, 5179, 5179, 5179, 5179, 5179, 5179, 5179, 5179,
+ 5179, 5179, 5179, 5179, 5179, 5179, 5179, 5180, 5180, 5180,
+ 5180, 5180, 5180, 5180, 5180, 5180, 5180, 5180, 5180, 5180,
+ 5180, 5180, 5180, 5180, 5180, 5181, 5181, 5181, 5181, 5181,
+
+ 5181, 5181, 5181, 5181, 5181, 5181, 5181, 5181, 5181, 5181,
+ 5181, 5181, 5181, 5182, 5182, 5182, 5182, 5182, 5182, 5182,
+ 5182, 5182, 5182, 5182, 5182, 5182, 5182, 5182, 5182, 5182,
+ 5182, 5183, 5183, 5183, 5183, 5183, 5183, 5183, 5183, 5183,
+ 5183, 5183, 5183, 5183, 5183, 5183, 5183, 5183, 5183, 5184,
+ 5184, 5184, 5184, 5184, 5184, 5184, 5184, 5184, 5184, 5184,
+ 5184, 5184, 5184, 5184, 5184, 5184, 5184, 5185, 5185, 5185,
+ 5185, 5185, 5185, 5185, 5185, 5185, 5185, 5185, 5185, 5185,
+ 5185, 5185, 5185, 5185, 5185, 5186, 5186, 5186, 5186, 5186,
+ 5186, 5186, 5186, 5186, 5186, 5186, 5186, 5186, 5186, 5186,
+
+ 5186, 5186, 5186, 5187, 5187, 5187, 5187, 5187, 5187, 5187,
+ 5187, 5187, 5187, 5187, 5187, 5187, 5187, 5187, 5187, 5187,
+ 5187, 5188, 5188, 0, 5188, 5188, 5188, 5188, 5188, 5188,
+ 5188, 5188, 5188, 5188, 5188, 5188, 5188, 5188, 5188, 5189,
+ 5189, 5189, 5189, 5189, 5189, 5189, 5189, 5189, 5189, 5189,
+ 5189, 5189, 5189, 5189, 5189, 5189, 5189, 5190, 5190, 5190,
+ 5190, 5190, 5190, 5190, 5190, 5190, 5190, 5190, 5190, 5190,
+ 5190, 5190, 5190, 5190, 5190, 5191, 5191, 5191, 5191, 5191,
+ 5191, 5191, 5191, 5191, 5191, 5191, 5191, 5191, 5191, 5191,
+ 5191, 5191, 5191, 5192, 5192, 5192, 5192, 5192, 5192, 5192,
+
+ 5192, 5192, 5192, 5192, 5192, 5192, 5192, 5192, 5192, 5192,
+ 5192, 5193, 5193, 5193, 5193, 5193, 5193, 5193, 5193, 5193,
+ 5193, 5193, 5193, 5193, 5193, 5193, 5193, 5193, 5193, 5194,
+ 5194, 5194, 0, 0, 5194, 0, 0, 0, 0, 0,
+ 5194, 0, 0, 5194, 5194, 5195, 5195, 5195, 5195, 5195,
+ 5195, 5195, 5195, 5195, 5195, 5195, 5195, 5195, 5195, 5195,
+ 5195, 5195, 5195, 5196, 0, 0, 0, 0, 5196, 0,
+ 0, 0, 5196, 0, 0, 0, 0, 5196, 5196, 5197,
+ 5197, 0, 5197, 5197, 5197, 5197, 5197, 5197, 5197, 5197,
+ 5197, 5197, 5197, 5197, 5197, 5197, 5197, 5198, 5198, 5198,
+
+ 5198, 5198, 5198, 5198, 5198, 5198, 5198, 5198, 5198, 5198,
+ 5198, 5198, 5198, 5198, 5198, 5199, 5199, 5199, 5199, 5199,
+ 5199, 5199, 5199, 5199, 5199, 5199, 5199, 5199, 5199, 5199,
+ 5199, 5199, 5199, 5200, 5200, 5200, 5200, 5200, 5200, 5200,
+ 5200, 5200, 5200, 5200, 5200, 5200, 5200, 5200, 5200, 5200,
+ 5200, 5201, 5201, 5201, 0, 0, 5201, 0, 5201, 5201,
+ 0, 0, 5201, 5201, 0, 5201, 5201, 5201, 5202, 5202,
+ 5202, 5202, 5202, 5202, 5202, 5202, 5202, 5202, 5202, 5202,
+ 5202, 5202, 5202, 5202, 5202, 5202, 5203, 5203, 5203, 5203,
+ 5203, 5203, 5203, 5203, 5203, 5203, 5203, 5203, 5203, 5203,
+
+ 5203, 5203, 5203, 5203, 5204, 0, 0, 0, 0, 0,
+ 0, 5204, 0, 5204, 5204, 5205, 0, 5205, 0, 0,
+ 5205, 0, 0, 0, 0, 0, 0, 0, 0, 5205,
+ 5205, 5206, 5206, 5206, 0, 0, 5206, 0, 5206, 5206,
+ 0, 0, 5206, 0, 0, 5206, 5206, 5206, 5207, 5207,
+ 5207, 0, 0, 5207, 0, 5207, 5207, 0, 0, 5207,
+ 5207, 0, 5207, 5207, 5207, 5208, 5208, 5208, 5208, 5208,
+ 5208, 5208, 5208, 5208, 5208, 5208, 5208, 5208, 5208, 5208,
+ 5208, 5208, 5208, 5209, 0, 0, 0, 0, 0, 0,
+ 5209, 0, 5209, 5209, 5210, 5210, 0, 5210, 0, 5210,
+
+ 5210, 5210, 5210, 5210, 5210, 5210, 5210, 5210, 5210, 5210,
+ 5210, 5210, 5211, 5211, 0, 5211, 5211, 5211, 5211, 5211,
+ 5211, 5211, 5211, 5211, 5211, 5211, 0, 5211, 5211, 5211,
+ 5212, 5212, 5212, 0, 0, 5212, 0, 0, 0, 5212,
+ 0, 5212, 0, 0, 5212, 5212, 5213, 5213, 5213, 5213,
+ 5213, 5213, 5213, 5213, 5213, 5213, 5213, 5213, 5213, 5213,
+ 5213, 5213, 5213, 5213, 5214, 5214, 5214, 5214, 5214, 5214,
+ 5214, 5214, 5214, 5214, 5214, 5214, 5214, 5214, 5214, 5214,
+ 5214, 5214, 5215, 5215, 5215, 5215, 5215, 5215, 5215, 5215,
+ 5215, 5215, 5215, 5215, 5215, 5215, 5215, 5215, 5215, 5215,
+
+ 5216, 5216, 5216, 5216, 5216, 5216, 5216, 5216, 5216, 5216,
+ 5216, 5216, 5216, 5216, 5216, 5216, 5216, 5216, 5217, 5217,
+ 5217, 0, 0, 5217, 0, 5217, 5217, 0, 0, 5217,
+ 5217, 0, 5217, 5217, 5217, 5218, 5218, 5218, 5218, 5218,
+ 5218, 5218, 5218, 5218, 5218, 5218, 5218, 5218, 5218, 5218,
+ 5218, 5218, 5218, 5219, 5219, 5219, 5219, 5219, 5219, 5219,
+ 5219, 5219, 5219, 5219, 5219, 5219, 5219, 5219, 5219, 5219,
+ 5219, 5220, 5220, 5220, 5220, 5220, 5220, 5220, 5220, 5220,
+ 5220, 5220, 5220, 5220, 5220, 5220, 5220, 5220, 5220, 5221,
+ 5221, 5221, 5221, 5221, 5221, 5221, 5221, 5221, 5221, 5221,
+
+ 5221, 5221, 5221, 5221, 5221, 5221, 5221, 5222, 5222, 5222,
+ 5222, 5222, 5222, 5222, 5222, 5222, 5222, 5222, 5222, 5222,
+ 5222, 5222, 5222, 5222, 5222, 5223, 5223, 5223, 5223, 5223,
+ 5223, 5223, 5223, 5223, 5223, 5223, 5223, 5223, 5223, 5223,
+ 5223, 5223, 5223, 5224, 5224, 5224, 0, 0, 5224, 5224,
+ 0, 5224, 5224, 5224, 5224, 5224, 0, 5224, 5224, 5225,
+ 5225, 5225, 5225, 5225, 5225, 5225, 5225, 5225, 5225, 5225,
+ 5225, 5225, 5225, 5225, 5225, 5225, 5225, 5226, 5226, 5226,
+ 5226, 5226, 5226, 5226, 5226, 5226, 5226, 5226, 5226, 5226,
+ 5226, 5226, 5226, 5226, 5226, 5227, 5227, 5227, 5227, 5227,
+
+ 5227, 5227, 5227, 5227, 5227, 5227, 5227, 5227, 5227, 5227,
+ 5227, 5227, 5227, 5228, 5228, 5228, 5228, 5228, 5228, 5228,
+ 5228, 5228, 5228, 5228, 5228, 5228, 5228, 5228, 5228, 5228,
+ 5228, 5229, 5229, 5229, 5229, 5229, 5229, 5229, 5229, 5229,
+ 5229, 5229, 5229, 5229, 5229, 5229, 5229, 5229, 5229, 5230,
+ 5230, 5230, 5230, 5230, 5230, 5230, 5230, 5230, 5230, 5230,
+ 5230, 5230, 5230, 5230, 5230, 5230, 5230, 5231, 5231, 5231,
+ 5231, 5231, 5231, 5231, 5231, 5231, 5231, 5231, 5231, 5231,
+ 5231, 5231, 5231, 5231, 5231, 5232, 5232, 5232, 5232, 5232,
+ 5232, 5232, 5232, 5232, 5232, 5232, 5232, 5232, 5232, 5232,
+
+ 5232, 5232, 5232, 5233, 5233, 5233, 5233, 5233, 5233, 5233,
+ 5233, 5233, 5233, 5233, 5233, 5233, 5233, 5233, 5233, 5233,
+ 5233, 5234, 5234, 5234, 5234, 5234, 5234, 5234, 5234, 5234,
+ 5234, 5234, 5234, 5234, 5234, 5234, 5234, 5234, 5234, 5235,
+ 5235, 5235, 5235, 5235, 5235, 5235, 5235, 5235, 5235, 5235,
+ 5235, 5235, 5235, 5235, 5235, 5235, 5235, 5236, 5236, 5236,
+ 0, 0, 5236, 0, 5236, 5236, 0, 0, 5236, 5236,
+ 0, 5236, 5236, 5236, 5237, 5237, 5237, 5237, 5237, 5237,
+ 5237, 5237, 5237, 5237, 5237, 5237, 5237, 5237, 5237, 5237,
+ 5237, 5237, 5238, 5238, 5238, 5238, 5238, 5238, 5238, 5238,
+
+ 5238, 5238, 5238, 5238, 5238, 5238, 5238, 5238, 5238, 5238,
+ 5239, 5239, 5239, 5239, 5239, 5239, 5239, 5239, 5239, 5239,
+ 5239, 5239, 5239, 5239, 5239, 5239, 5239, 5239, 5240, 5240,
+ 5240, 5240, 5240, 5240, 5240, 5240, 5240, 5240, 5240, 5240,
+ 5240, 5240, 5240, 5240, 5240, 5240, 5241, 5241, 5241, 5241,
+ 5241, 5241, 5241, 5241, 5241, 5241, 5241, 5241, 5241, 5241,
+ 5241, 5241, 5241, 5241, 5242, 5242, 5242, 5242, 5242, 5242,
+ 5242, 5242, 5242, 5242, 5242, 5242, 5242, 5242, 5242, 5242,
+ 5242, 5242, 5243, 5243, 5243, 5243, 5243, 5243, 5243, 5243,
+ 5243, 5243, 5243, 5243, 5243, 5243, 5243, 5243, 5243, 5243,
+
+ 5244, 5244, 5244, 5244, 5244, 5244, 5244, 5244, 5244, 5244,
+ 5244, 5244, 5244, 5244, 5244, 5244, 5244, 5244, 5245, 5245,
+ 5245, 5245, 5245, 5245, 5245, 5245, 5245, 5245, 5245, 5245,
+ 5245, 5245, 5245, 5245, 5245, 5245, 5246, 5246, 5246, 5246,
+ 5246, 5246, 5246, 5246, 5246, 5246, 5246, 5246, 5246, 5246,
+ 5246, 5246, 5246, 5246, 5247, 5247, 5247, 5247, 5247, 5247,
+ 5247, 5247, 5247, 5247, 5247, 5247, 5247, 5247, 5247, 5247,
+ 5247, 5247, 5248, 5248, 5248, 5248, 5248, 5248, 5248, 5248,
+ 5248, 5248, 5248, 5248, 5248, 5248, 5248, 5248, 5248, 5248,
+ 5249, 5249, 5249, 5249, 5249, 5249, 5249, 5249, 5249, 5249,
+
+ 5249, 5249, 5249, 5249, 5249, 5249, 5249, 5249, 5250, 5250,
+ 5250, 5250, 5250, 5250, 5250, 5250, 5250, 5250, 5250, 5250,
+ 5250, 5250, 5250, 5250, 5250, 5250, 5251, 5251, 5251, 5251,
+ 5251, 5251, 5251, 5251, 5251, 5251, 5251, 5251, 5251, 5251,
+ 5251, 5251, 5251, 5251, 5252, 5252, 5252, 5252, 5252, 5252,
+ 5252, 5252, 5252, 5252, 5252, 5252, 5252, 5252, 5252, 5252,
+ 5252, 5252, 5253, 5253, 5253, 5253, 5253, 5253, 5253, 5253,
+ 5253, 5253, 5253, 5253, 5253, 5253, 5253, 5253, 5253, 5253,
+ 5254, 5254, 5254, 0, 0, 5254, 5254, 0, 5254, 5254,
+ 5254, 5254, 5254, 0, 5254, 5254, 5255, 5255, 5255, 5255,
+
+ 5255, 5255, 5255, 5255, 5255, 5255, 5255, 5255, 5255, 5255,
+ 5255, 5255, 5255, 5255, 5256, 5256, 5256, 5256, 5256, 5256,
+ 5256, 5256, 5256, 5256, 5256, 5256, 5256, 5256, 5256, 5256,
+ 5256, 5256, 5257, 5257, 5257, 5257, 5257, 5257, 5257, 5257,
+ 5257, 5257, 5257, 5257, 5257, 5257, 5257, 5257, 5257, 5257,
+ 5258, 5258, 5258, 0, 0, 5258, 5258, 0, 5258, 5258,
+ 5258, 5258, 5258, 0, 5258, 5258, 5259, 5259, 5259, 5259,
+ 5259, 5259, 5259, 5259, 5259, 5259, 5259, 5259, 5259, 5259,
+ 5259, 5259, 5259, 5259, 5260, 5260, 5260, 5260, 5260, 5260,
+ 5260, 5260, 5260, 5260, 5260, 5260, 5260, 5260, 5260, 5260,
+
+ 5260, 5260, 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5261,
+ 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5261, 5261,
+ 5262, 5262, 5262, 5262, 5262, 5262, 5262, 5262, 5262, 5262,
+ 5262, 5262, 5262, 5262, 5262, 5262, 5262, 5262, 5263, 5263,
+ 5263, 5263, 5263, 5263, 5263, 5263, 5263, 5263, 5263, 5263,
+ 5263, 5263, 5263, 5263, 5263, 5263, 5264, 5264, 5264, 5264,
+ 5264, 5264, 5264, 5264, 5264, 5264, 5264, 5264, 5264, 5264,
+ 5264, 5264, 5264, 5264, 5265, 5265, 5265, 5265, 5265, 5265,
+ 5265, 5265, 5265, 5265, 5265, 5265, 5265, 5265, 5265, 5265,
+ 5265, 5265, 5266, 5266, 5266, 5266, 5266, 5266, 5266, 5266,
+
+ 5266, 5266, 5266, 5266, 5266, 5266, 5266, 5266, 5266, 5266,
+ 5267, 5267, 5267, 5267, 5267, 5267, 5267, 5267, 5267, 5267,
+ 5267, 5267, 5267, 5267, 5267, 5267, 5267, 5267, 5268, 5268,
+ 5268, 5268, 5268, 5268, 5268, 5268, 5268, 5268, 5268, 5268,
+ 5268, 5268, 5268, 5268, 5268, 5268, 5269, 5269, 5269, 5269,
+ 5269, 5269, 5269, 5269, 5269, 5269, 5269, 5269, 5269, 5269,
+ 5269, 5269, 5269, 5269, 5270, 5270, 5270, 5270, 5270, 5270,
+ 5270, 5270, 5270, 5270, 5270, 5270, 5270, 5270, 5270, 5270,
+ 5270, 5270, 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271,
+ 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271, 5271,
+
+ 5272, 5272, 5272, 5272, 5272, 5272, 5272, 5272, 5272, 5272,
+ 5272, 5272, 5272, 5272, 5272, 5272, 5272, 5272, 5273, 5273,
+ 5273, 5273, 5273, 5273, 5273, 5273, 5273, 5273, 5273, 5273,
+ 5273, 5273, 5273, 5273, 5273, 5273, 5274, 5274, 5274, 5274,
+ 5274, 5274, 5274, 5274, 5274, 5274, 5274, 5274, 5274, 5274,
+ 5274, 5274, 5274, 5274, 5275, 5275, 5275, 5275, 5275, 5275,
+ 5275, 5275, 5275, 5275, 5275, 5275, 5275, 5275, 5275, 5275,
+ 5275, 5275, 5276, 5276, 5276, 5276, 5276, 5276, 5276, 5276,
+ 5276, 5276, 5276, 5276, 5276, 5276, 5276, 5276, 5276, 5276,
+ 5277, 5277, 5277, 5277, 5277, 5277, 5277, 5277, 5277, 5277,
+
+ 5277, 5277, 5277, 5277, 5277, 5277, 5277, 5277, 5278, 5278,
+ 5278, 5278, 5278, 5278, 5278, 5278, 5278, 5278, 5278, 5278,
+ 5278, 5278, 5278, 5278, 5278, 5278, 5279, 5279, 5279, 5279,
+ 5279, 5279, 5279, 5279, 5279, 5279, 5279, 5279, 5279, 5279,
+ 5279, 5279, 5279, 5279, 5280, 5280, 5280, 5280, 5280, 5280,
+ 5280, 5280, 5280, 5280, 5280, 5280, 5280, 5280, 5280, 5280,
+ 5280, 5280, 5281, 5281, 5281, 5281, 5281, 5281, 5281, 5281,
+ 5281, 5281, 5281, 5281, 5281, 5281, 5281, 5281, 5281, 5281,
+ 5282, 5282, 5282, 5282, 5282, 5282, 5282, 5282, 5282, 5282,
+ 5282, 5282, 5282, 5282, 5282, 5282, 5282, 5282, 5283, 5283,
+
+ 5283, 5283, 5283, 5283, 5283, 5283, 5283, 5283, 5283, 5283,
+ 5283, 5283, 5283, 5283, 5283, 5283, 5284, 5284, 5284, 5284,
+ 5284, 5284, 5284, 5284, 5284, 5284, 5284, 5284, 5284, 5284,
+ 5284, 5284, 5284, 5284, 5285, 5285, 5285, 5285, 5285, 5285,
+ 5285, 5285, 5285, 5285, 5285, 5285, 5285, 5285, 5285, 5285,
+ 5285, 5285, 5286, 5286, 5286, 5286, 5286, 5286, 5286, 5286,
+ 5286, 5286, 5286, 5286, 5286, 5286, 5286, 5286, 5286, 5286,
+ 5287, 5287, 5287, 5287, 5287, 5287, 5287, 5287, 5287, 5287,
+ 5287, 5287, 5287, 5287, 5287, 5287, 5287, 5287, 5288, 5288,
+ 5288, 5288, 5288, 5288, 5288, 5288, 5288, 5288, 5288, 5288,
+
+ 5288, 5288, 5288, 5288, 5288, 5288, 5289, 5289, 5289, 5289,
+ 5289, 5289, 5289, 5289, 5289, 5289, 5289, 5289, 5289, 5289,
+ 5289, 5289, 5289, 5289, 5290, 5290, 5290, 5290, 5290, 5290,
+ 5290, 5290, 5290, 5290, 5290, 5290, 5290, 5290, 5290, 5290,
+ 5290, 5290, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291,
+ 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291,
+ 5292, 5292, 5292, 5292, 5292, 5292, 5292, 5292, 5292, 5292,
+ 5292, 5292, 5292, 5292, 5292, 5292, 5292, 5292, 5293, 5293,
+ 5293, 5293, 5293, 5293, 5293, 5293, 5293, 5293, 5293, 5293,
+ 5293, 5293, 5293, 5293, 5293, 5293, 5294, 5294, 5294, 5294,
+
+ 5294, 5294, 5294, 5294, 5294, 5294, 5294, 5294, 5294, 5294,
+ 5294, 5294, 5294, 5294, 5295, 5295, 5295, 5295, 5295, 5295,
+ 5295, 5295, 5295, 5295, 5295, 5295, 5295, 5295, 5295, 5295,
+ 5295, 5295, 5296, 5296, 5296, 5296, 5296, 5296, 5296, 5296,
+ 5296, 5296, 5296, 5296, 5296, 5296, 5296, 5296, 5296, 5296,
+ 5297, 5297, 5297, 5297, 5297, 5297, 5297, 5297, 5297, 5297,
+ 5297, 5297, 5297, 5297, 5297, 5297, 5297, 5297, 5298, 5298,
+ 5298, 5298, 5298, 5298, 5298, 5298, 5298, 5298, 5298, 5298,
+ 5298, 5298, 5298, 5298, 5298, 5298, 5299, 5299, 5299, 5299,
+ 5299, 5299, 5299, 5299, 5299, 5299, 5299, 5299, 5299, 5299,
+
+ 5299, 5299, 5299, 5299, 5300, 5300, 5300, 0, 0, 5300,
+ 0, 0, 0, 5300, 0, 5300, 0, 0, 5300, 5300,
+ 5301, 5301, 5301, 5301, 5301, 5301, 5301, 5301, 5301, 5301,
+ 5301, 5301, 5301, 5301, 5301, 5301, 5301, 5301, 5302, 5302,
+ 5302, 5302, 5302, 5302, 5302, 5302, 5302, 5302, 5302, 5302,
+ 5302, 5302, 5302, 5302, 5302, 5302, 5303, 5303, 5303, 5303,
+ 5303, 5303, 5303, 5303, 5303, 5303, 5303, 5303, 5303, 5303,
+ 5303, 5303, 5303, 5303, 5304, 5304, 5304, 5304, 5304, 5304,
+ 5304, 5304, 5304, 5304, 5304, 5304, 5304, 5304, 5304, 5304,
+ 5304, 5304, 5305, 5305, 5305, 5305, 5305, 5305, 5305, 5305,
+
+ 5305, 5305, 5305, 5305, 5305, 5305, 5305, 5305, 5305, 5305,
+ 5306, 5306, 5306, 5306, 5306, 5306, 5306, 5306, 5306, 5306,
+ 5306, 5306, 5306, 5306, 5306, 5306, 5306, 5306, 5307, 5307,
+ 5307, 5307, 5307, 5307, 5307, 5307, 5307, 5307, 5307, 5307,
+ 5307, 5307, 5307, 5307, 5307, 5307, 5308, 5308, 5308, 5308,
+ 5308, 5308, 5308, 5308, 5308, 5308, 5308, 5308, 5308, 5308,
+ 5308, 5308, 5308, 5308, 5309, 5309, 5309, 5309, 5309, 5309,
+ 5309, 5309, 5309, 5309, 5309, 5309, 5309, 5309, 5309, 5309,
+ 5309, 5309, 5310, 5310, 5310, 5310, 5310, 5310, 5310, 5310,
+ 5310, 5310, 5310, 5310, 5310, 5310, 5310, 5310, 5310, 5310,
+
+ 5311, 5311, 5311, 5311, 5311, 5311, 5311, 5311, 5311, 5311,
+ 5311, 5311, 5311, 5311, 5311, 5311, 5311, 5311, 5312, 5312,
+ 5312, 5312, 5312, 5312, 5312, 5312, 5312, 5312, 5312, 5312,
+ 5312, 5312, 5312, 5312, 5312, 5312, 5313, 5313, 5313, 0,
+ 0, 5313, 0, 0, 0, 0, 0, 5313, 0, 0,
+ 5313, 5313, 5313, 5314, 5314, 5314, 5314, 5314, 5314, 5314,
+ 5314, 5314, 5314, 5314, 5314, 5314, 5314, 5314, 5314, 5314,
+ 5314, 5315, 5315, 5315, 5315, 5315, 5315, 5315, 5315, 5315,
+ 5315, 5315, 5315, 5315, 5315, 5315, 5315, 5315, 5315, 5316,
+ 5316, 5316, 5316, 5316, 5316, 5316, 5316, 5316, 5316, 5316,
+
+ 5316, 5316, 5316, 5316, 5316, 5316, 5316, 5317, 5317, 5317,
+ 5317, 5317, 5317, 5317, 5317, 5317, 5317, 5317, 5317, 5317,
+ 5317, 5317, 5317, 5317, 5317, 5318, 5318, 5318, 5318, 5318,
+ 5318, 5318, 5318, 5318, 5318, 5318, 5318, 5318, 5318, 5318,
+ 5318, 5318, 5318, 5319, 5319, 5319, 5319, 5319, 5319, 5319,
+ 5319, 5319, 5319, 5319, 5319, 5319, 5319, 5319, 5319, 5319,
+ 5319, 5320, 5320, 5320, 5320, 5320, 5320, 5320, 5320, 5320,
+ 5320, 5320, 5320, 5320, 5320, 5320, 5320, 5320, 5320, 5321,
+ 5321, 5321, 5321, 5321, 5321, 5321, 5321, 5321, 5321, 5321,
+ 5321, 5321, 5321, 5321, 5321, 5321, 5321, 5322, 5322, 5322,
+
+ 5322, 5322, 5322, 5322, 5322, 5322, 5322, 5322, 5322, 5322,
+ 5322, 5322, 5322, 5322, 5322, 5323, 5323, 5323, 5323, 5323,
+ 5323, 5323, 5323, 5323, 5323, 5323, 5323, 5323, 5323, 5323,
+ 5323, 5323, 5323, 5324, 5324, 5324, 5324, 5324, 5324, 5324,
+ 5324, 5324, 5324, 5324, 5324, 5324, 5324, 5324, 5324, 5324,
+ 5324, 5325, 5325, 5325, 5325, 5325, 5325, 5325, 5325, 5325,
+ 5325, 5325, 5325, 5325, 5325, 5325, 5325, 5325, 5325, 5326,
+ 5326, 5326, 5326, 5326, 5326, 5326, 5326, 5326, 5326, 5326,
+ 5326, 5326, 5326, 5326, 5326, 5326, 5326, 5327, 5327, 5327,
+ 5327, 5327, 5327, 5327, 5327, 5327, 5327, 5327, 5327, 5327,
+
+ 5327, 5327, 5327, 5327, 5327, 5328, 5328, 5328, 5328, 5328,
+ 5328, 5328, 5328, 5328, 5328, 5328, 5328, 5328, 5328, 5328,
+ 5328, 5328, 5328, 5329, 5329, 5329, 5329, 5329, 5329, 5329,
+ 5329, 5329, 5329, 5329, 5329, 5329, 5329, 5329, 5329, 5329,
+ 5329, 5330, 5330, 5330, 5330, 5330, 5330, 5330, 5330, 5330,
+ 5330, 5330, 5330, 5330, 5330, 5330, 5330, 5330, 5330, 5331,
+ 5331, 5331, 5331, 5331, 5331, 5331, 5331, 5331, 5331, 5331,
+ 5331, 5331, 5331, 5331, 5331, 5331, 5331, 5332, 5332, 5332,
+ 5332, 5332, 5332, 5332, 5332, 5332, 5332, 5332, 5332, 5332,
+ 5332, 5332, 5332, 5332, 5332, 5333, 5333, 5333, 5333, 5333,
+
+ 5333, 5333, 5333, 5333, 5333, 5333, 5333, 5333, 5333, 5333,
+ 5333, 5333, 5333, 5334, 5334, 5334, 5334, 5334, 5334, 5334,
+ 5334, 5334, 5334, 5334, 5334, 5334, 5334, 5334, 5334, 5334,
+ 5334, 5335, 5335, 5335, 5335, 5335, 5335, 5335, 5335, 5335,
+ 5335, 5335, 5335, 5335, 5335, 5335, 5335, 5335, 5335, 5336,
+ 5336, 5336, 0, 0, 5336, 5336, 0, 5336, 5336, 5336,
+ 5336, 5336, 0, 5336, 5336, 5337, 5337, 5337, 5337, 5337,
+ 5337, 5337, 5337, 5337, 5337, 5337, 5337, 5337, 5337, 5337,
+ 5337, 5337, 5337, 5338, 5338, 5338, 5338, 5338, 5338, 5338,
+ 5338, 5338, 5338, 5338, 5338, 5338, 5338, 5338, 5338, 5338,
+
+ 5338, 5339, 5339, 5339, 5339, 5339, 5339, 5339, 5339, 5339,
+ 5339, 5339, 5339, 5339, 5339, 5339, 5339, 5339, 5339, 5340,
+ 5340, 5340, 5340, 5340, 5340, 5340, 5340, 5340, 5340, 5340,
+ 5340, 5340, 5340, 5340, 5340, 5340, 5340, 5341, 5341, 5341,
+ 5341, 5341, 5341, 5341, 5341, 5341, 5341, 5341, 5341, 5341,
+ 5341, 5341, 5341, 5341, 5341, 5342, 5342, 5342, 5342, 5342,
+ 5342, 5342, 5342, 5342, 5342, 5342, 5342, 5342, 5342, 5342,
+ 5342, 5342, 5342, 5343, 5343, 5343, 5343, 5343, 5343, 5343,
+ 5343, 5343, 5343, 5343, 5343, 5343, 5343, 5343, 5343, 5343,
+ 5343, 5344, 5344, 5344, 5344, 5344, 5344, 5344, 5344, 5344,
+
+ 5344, 5344, 5344, 5344, 5344, 5344, 5344, 5344, 5344, 5345,
+ 5345, 5345, 5345, 5345, 5345, 5345, 5345, 5345, 5345, 5345,
+ 5345, 5345, 5345, 5345, 5345, 5345, 5345, 5346, 5346, 5346,
+ 5346, 5346, 5346, 5346, 5346, 5346, 5346, 5346, 5346, 5346,
+ 5346, 5346, 5346, 5346, 5346, 5347, 5347, 5347, 5347, 5347,
+ 5347, 5347, 5347, 5347, 5347, 5347, 5347, 5347, 5347, 5347,
+ 5347, 5347, 5347, 5348, 5348, 5348, 5348, 5348, 5348, 5348,
+ 5348, 5348, 5348, 5348, 5348, 5348, 5348, 5348, 5348, 5348,
+ 5348, 5349, 5349, 5349, 5349, 5349, 5349, 5349, 5349, 5349,
+ 5349, 5349, 5349, 5349, 5349, 5349, 5349, 5349, 5349, 5350,
+
+ 5350, 5350, 5350, 5350, 5350, 5350, 5350, 5350, 5350, 5350,
+ 5350, 5350, 5350, 5350, 5350, 5350, 5350, 5351, 5351, 5351,
+ 5351, 5351, 5351, 5351, 5351, 5351, 5351, 5351, 5351, 5351,
+ 5351, 5351, 5351, 5351, 5351, 5352, 5352, 5352, 5352, 5352,
+ 5352, 5352, 5352, 5352, 5352, 5352, 5352, 5352, 5352, 5352,
+ 5352, 5352, 5352, 5353, 5353, 5353, 5353, 5353, 5353, 5353,
+ 5353, 5353, 5353, 5353, 5353, 5353, 5353, 5353, 5353, 5353,
+ 5353, 5354, 5354, 5354, 5354, 5354, 5354, 5354, 5354, 5354,
+ 5354, 5354, 5354, 5354, 5354, 5354, 5354, 5354, 5354, 5355,
+ 5355, 5355, 5355, 5355, 5355, 5355, 5355, 5355, 5355, 5355,
+
+ 5355, 5355, 5355, 5355, 5355, 5355, 5355, 5356, 5356, 5356,
+ 0, 0, 5356, 0, 0, 0, 0, 0, 5356, 0,
+ 0, 5356, 5356, 5356, 5357, 5357, 5357, 5357, 5357, 5357,
+ 5357, 5357, 5357, 5357, 5357, 5357, 5357, 5357, 5357, 5357,
+ 5357, 5357, 5358, 5358, 5358, 5358, 5358, 5358, 5358, 5358,
+ 5358, 5358, 5358, 5358, 5358, 5358, 5358, 5358, 5358, 5358,
+ 5359, 5359, 5359, 5359, 5359, 5359, 5359, 5359, 5359, 5359,
+ 5359, 5359, 5359, 5359, 5359, 5359, 5359, 5359, 5360, 5360,
+ 5360, 5360, 5360, 5360, 5360, 5360, 5360, 5360, 5360, 5360,
+ 5360, 5360, 5360, 5360, 5360, 5360, 5361, 5361, 5361, 5361,
+
+ 5361, 5361, 5361, 5361, 5361, 5361, 5361, 5361, 5361, 5361,
+ 5361, 5361, 5361, 5361, 5362, 5362, 5362, 5362, 5362, 5362,
+ 5362, 5362, 5362, 5362, 5362, 5362, 5362, 5362, 5362, 5362,
+ 5362, 5362, 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363,
+ 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363, 5363,
+ 5364, 5364, 5364, 5364, 5364, 5364, 5364, 5364, 5364, 5364,
+ 5364, 5364, 5364, 5364, 5364, 5364, 5364, 5364, 5365, 5365,
+ 5365, 5365, 5365, 5365, 5365, 5365, 5365, 5365, 5365, 5365,
+ 5365, 5365, 5365, 5365, 5365, 5365, 5366, 5366, 5366, 5366,
+ 5366, 5366, 5366, 5366, 5366, 5366, 5366, 5366, 5366, 5366,
+
+ 5366, 5366, 5366, 5366, 5367, 5367, 5367, 5367, 5367, 5367,
+ 5367, 5367, 5367, 5367, 5367, 5367, 5367, 5367, 5367, 5367,
+ 5367, 5367, 5368, 5368, 5368, 5368, 5368, 5368, 5368, 5368,
+ 5368, 5368, 5368, 5368, 5368, 5368, 5368, 5368, 5368, 5368,
+ 5369, 5369, 5369, 5369, 5369, 5369, 5369, 5369, 5369, 5369,
+ 5369, 5369, 5369, 5369, 5369, 5369, 5369, 5369, 5370, 5370,
+ 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370, 5370,
+ 5370, 5370, 5370, 5370, 5370, 5370, 5371, 5371, 5371, 5371,
+ 5371, 5371, 5371, 5371, 5371, 5371, 5371, 5371, 5371, 5371,
+ 5371, 5371, 5371, 5371, 5372, 5372, 5372, 5372, 5372, 5372,
+
+ 5372, 5372, 5372, 5372, 5372, 5372, 5372, 5372, 5372, 5372,
+ 5372, 5372, 5373, 5373, 5373, 5373, 5373, 5373, 5373, 5373,
+ 5373, 5373, 5373, 5373, 5373, 5373, 5373, 5373, 5373, 5373,
+ 5374, 5374, 5374, 5374, 5374, 5374, 5374, 5374, 5374, 5374,
+ 5374, 5374, 5374, 5374, 5374, 5374, 5374, 5374, 5375, 5375,
+ 5375, 5375, 5375, 5375, 5375, 5375, 5375, 5375, 5375, 5375,
+ 5375, 5375, 5375, 5375, 5375, 5375, 5376, 5376, 5376, 0,
+ 5376, 0, 0, 5376, 5376, 0, 0, 5376, 0, 0,
+ 5376, 5376, 5376, 5377, 5377, 5377, 5377, 5377, 5377, 5377,
+ 5377, 5377, 5377, 5377, 5377, 5377, 5377, 5377, 5377, 5377,
+
+ 5377, 5378, 5378, 5378, 5378, 5378, 5378, 5378, 5378, 5378,
+ 5378, 5378, 5378, 5378, 5378, 5378, 5378, 5378, 5378, 5379,
+ 5379, 5379, 5379, 5379, 5379, 5379, 5379, 5379, 5379, 5379,
+ 5379, 5379, 5379, 5379, 5379, 5379, 5379, 5380, 5380, 5380,
+ 5380, 5380, 5380, 5380, 5380, 5380, 5380, 5380, 5380, 5380,
+ 5380, 5380, 5380, 5380, 5380, 5381, 5381, 5381, 5381, 5381,
+ 5381, 5381, 5381, 5381, 5381, 5381, 5381, 5381, 5381, 5381,
+ 5381, 5381, 5381, 5382, 5382, 5382, 5382, 5382, 5382, 5382,
+ 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382, 5382,
+ 5382, 5383, 5383, 5383, 5383, 5383, 5383, 5383, 5383, 5383,
+
+ 5383, 5383, 5383, 5383, 5383, 5383, 5383, 5383, 5383, 5384,
+ 5384, 5384, 5384, 5384, 5384, 5384, 5384, 5384, 5384, 5384,
+ 5384, 5384, 5384, 5384, 5384, 5384, 5384, 5385, 5385, 5385,
+ 5385, 5385, 5385, 5385, 5385, 5385, 5385, 5385, 5385, 5385,
+ 5385, 5385, 5385, 5385, 5385, 5386, 5386, 5386, 5386, 5386,
+ 5386, 5386, 5386, 5386, 5386, 5386, 5386, 5386, 5386, 5386,
+ 5386, 5386, 5386, 5387, 5387, 5387, 5387, 5387, 5387, 5387,
+ 5387, 5387, 5387, 5387, 5387, 5387, 5387, 5387, 5387, 5387,
+ 5387, 5388, 5388, 5388, 0, 0, 5388, 5388, 0, 5388,
+ 5388, 5388, 5388, 5388, 0, 5388, 5388, 5389, 5389, 5389,
+
+ 5389, 5389, 5389, 5389, 5389, 5389, 5389, 5389, 5389, 5389,
+ 5389, 5389, 5389, 5389, 5389, 5390, 5390, 5390, 0, 0,
+ 5390, 5390, 0, 5390, 5390, 5390, 5390, 5390, 0, 5390,
+ 5390, 5391, 5391, 5391, 5391, 5391, 5391, 5391, 5391, 5391,
+ 5391, 5391, 5391, 5391, 5391, 5391, 5391, 5391, 5391, 5392,
+ 5392, 5392, 5392, 5392, 5392, 5392, 5392, 5392, 5392, 5392,
+ 5392, 5392, 5392, 5392, 5392, 5392, 5392, 5393, 5393, 5393,
+ 5393, 5393, 5393, 5393, 5393, 5393, 5393, 5393, 5393, 5393,
+ 5393, 5393, 5393, 5393, 5393, 5394, 5394, 5394, 5394, 5394,
+ 5394, 5394, 5394, 5394, 5394, 5394, 5394, 5394, 5394, 5394,
+
+ 5394, 5394, 5394, 5395, 5395, 5395, 5395, 5395, 5395, 5395,
+ 5395, 5395, 5395, 5395, 5395, 5395, 5395, 5395, 5395, 5395,
+ 5395, 5396, 5396, 5396, 5396, 5396, 5396, 5396, 5396, 5396,
+ 5396, 5396, 5396, 5396, 5396, 5396, 5396, 5396, 5396, 5397,
+ 5397, 5397, 5397, 5397, 5397, 5397, 5397, 5397, 5397, 5397,
+ 5397, 5397, 5397, 5397, 5397, 5397, 5397, 5398, 5398, 5398,
+ 5398, 5398, 5398, 5398, 5398, 5398, 5398, 5398, 5398, 5398,
+ 5398, 5398, 5398, 5398, 5398, 5399, 5399, 5399, 5399, 5399,
+ 5399, 5399, 5399, 5399, 5399, 5399, 5399, 5399, 5399, 5399,
+ 5399, 5399, 5399, 5400, 5400, 5400, 5400, 5400, 5400, 5400,
+
+ 5400, 5400, 5400, 5400, 5400, 5400, 5400, 5400, 5400, 5400,
+ 5400, 5401, 5401, 5401, 5401, 5401, 5401, 5401, 5401, 5401,
+ 5401, 5401, 5401, 5401, 5401, 5401, 5401, 5401, 5401, 5402,
+ 5402, 5402, 5402, 5402, 5402, 5402, 5402, 5402, 5402, 5402,
+ 5402, 5402, 5402, 5402, 5402, 5402, 5402, 5403, 5403, 5403,
+ 5403, 5403, 5403, 5403, 5403, 5403, 5403, 5403, 5403, 5403,
+ 5403, 5403, 5403, 5403, 5403, 5404, 5404, 5404, 5404, 5404,
+ 5404, 5404, 5404, 5404, 5404, 5404, 5404, 5404, 5404, 5404,
+ 5404, 5404, 5404, 5405, 5405, 5405, 5405, 5405, 5405, 5405,
+ 5405, 5405, 5405, 5405, 5405, 5405, 5405, 5405, 5405, 5405,
+
+ 5405, 5406, 5406, 5406, 5406, 5406, 5406, 5406, 5406, 5406,
+ 5406, 5406, 5406, 5406, 5406, 5406, 5406, 5406, 5406, 5407,
+ 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5407,
+ 5407, 5407, 5407, 5407, 5407, 5407, 5407, 5408, 5408, 5408,
+ 5408, 5408, 5408, 5408, 5408, 5408, 5408, 5408, 5408, 5408,
+ 5408, 5408, 5408, 5408, 5408, 5409, 5409, 5409, 5409, 5409,
+ 5409, 5409, 5409, 5409, 5409, 5409, 5409, 5409, 5409, 5409,
+ 5409, 5409, 5409, 5410, 5410, 5410, 5410, 5410, 5410, 5410,
+ 5410, 5410, 5410, 5410, 5410, 5410, 5410, 5410, 5410, 5410,
+ 5410, 5411, 5411, 5411, 5411, 5411, 5411, 5411, 5411, 5411,
+
+ 5411, 5411, 5411, 5411, 5411, 5411, 5411, 5411, 5411, 5412,
+ 5412, 5412, 5412, 5412, 5412, 5412, 5412, 5412, 5412, 5412,
+ 5412, 5412, 5412, 5412, 5412, 5412, 5412, 5413, 5413, 5413,
+ 5413, 5413, 5413, 5413, 5413, 5413, 5413, 5413, 5413, 5413,
+ 5413, 5413, 5413, 5413, 5413, 5414, 5414, 5414, 5414, 5414,
+ 5414, 5414, 5414, 5414, 5414, 5414, 5414, 5414, 5414, 5414,
+ 5414, 5414, 5414, 5415, 5415, 5415, 5415, 5415, 5415, 5415,
+ 5415, 5415, 5415, 5415, 5415, 5415, 5415, 5415, 5415, 5415,
+ 5415, 5416, 5416, 5416, 5416, 5416, 5416, 5416, 5416, 5416,
+ 5416, 5416, 5416, 5416, 5416, 5416, 5416, 5416, 5416, 5417,
+
+ 5417, 5417, 5417, 5417, 5417, 5417, 5417, 5417, 5417, 5417,
+ 5417, 5417, 5417, 5417, 5417, 5417, 5417, 5418, 5418, 5418,
+ 5418, 5418, 5418, 5418, 5418, 5418, 5418, 5418, 5418, 5418,
+ 5418, 5418, 5418, 5418, 5418, 5419, 5419, 5419, 5419, 5419,
+ 5419, 5419, 5419, 5419, 5419, 5419, 5419, 5419, 5419, 5419,
+ 5419, 5419, 5419, 5420, 5420, 5420, 5420, 5420, 5420, 5420,
+ 5420, 5420, 5420, 5420, 5420, 5420, 5420, 5420, 5420, 5420,
+ 5420, 5421, 5421, 5421, 5421, 5421, 5421, 5421, 5421, 5421,
+ 5421, 5421, 5421, 5421, 5421, 5421, 5421, 5421, 5421, 5422,
+ 5422, 5422, 5422, 5422, 5422, 5422, 5422, 5422, 5422, 5422,
+
+ 5422, 5422, 5422, 5422, 5422, 5422, 5422, 5423, 5423, 5423,
+ 5423, 5423, 5423, 5423, 5423, 5423, 5423, 5423, 5423, 5423,
+ 5423, 5423, 5423, 5423, 5423, 5424, 5424, 5424, 5424, 5424,
+ 5424, 5424, 5424, 5424, 5424, 5424, 5424, 5424, 5424, 5424,
+ 5424, 5424, 5424, 5425, 5425, 5425, 5425, 5425, 5425, 5425,
+ 5425, 5425, 5425, 5425, 5425, 5425, 5425, 5425, 5425, 5425,
+ 5425, 5426, 5426, 5426, 0, 5426, 0, 0, 5426, 5426,
+ 0, 0, 5426, 0, 0, 5426, 5426, 5426, 5427, 5427,
+ 5427, 0, 0, 5427, 5427, 0, 5427, 5427, 5427, 5427,
+ 5427, 0, 5427, 5427, 5428, 5428, 5428, 0, 0, 5428,
+
+ 5428, 0, 5428, 5428, 5428, 5428, 5428, 0, 5428, 5428,
+ 5429, 5429, 5429, 5429, 5429, 5429, 5429, 5429, 5429, 5429,
+ 5429, 5429, 5429, 5429, 5429, 5429, 5429, 5429, 5430, 5430,
+ 5430, 5430, 5430, 5430, 5430, 5430, 5430, 5430, 5430, 5430,
+ 5430, 5430, 5430, 5430, 5430, 5430, 5431, 5431, 5431, 5431,
+ 5431, 5431, 5431, 5431, 5431, 5431, 5431, 5431, 5431, 5431,
+ 5431, 5431, 5431, 5431, 5432, 5432, 5432, 5432, 5432, 5432,
+ 5432, 5432, 5432, 5432, 5432, 5432, 5432, 5432, 5432, 5432,
+ 5432, 5432, 5433, 5433, 5433, 5433, 5433, 5433, 5433, 5433,
+ 5433, 5433, 5433, 5433, 5433, 5433, 5433, 5433, 5433, 5433,
+
+ 5434, 5434, 5434, 5434, 5434, 5434, 5434, 5434, 5434, 5434,
+ 5434, 5434, 5434, 5434, 5434, 5434, 5434, 5434, 5435, 5435,
+ 5435, 5435, 5435, 5435, 5435, 5435, 5435, 5435, 5435, 5435,
+ 5435, 5435, 5435, 5435, 5435, 5435, 5436, 5436, 5436, 5436,
+ 5436, 5436, 5436, 5436, 5436, 5436, 5436, 5436, 5436, 5436,
+ 5436, 5436, 5436, 5436, 5437, 5437, 5437, 5437, 5437, 5437,
+ 5437, 5437, 5437, 5437, 5437, 5437, 5437, 5437, 5437, 5437,
+ 5437, 5437, 5438, 5438, 5438, 5438, 5438, 5438, 5438, 5438,
+ 5438, 5438, 5438, 5438, 5438, 5438, 5438, 5438, 5438, 5438,
+ 5439, 5439, 5439, 5439, 5439, 5439, 5439, 5439, 5439, 5439,
+
+ 5439, 5439, 5439, 5439, 5439, 5439, 5439, 5439, 5440, 5440,
+ 5440, 5440, 5440, 5440, 5440, 5440, 5440, 5440, 5440, 5440,
+ 5440, 5440, 5440, 5440, 5440, 5440, 5441, 5441, 5441, 5441,
+ 5441, 5441, 5441, 5441, 5441, 5441, 5441, 5441, 5441, 5441,
+ 5441, 5441, 5441, 5441, 5442, 5442, 5442, 5442, 5442, 5442,
+ 5442, 5442, 5442, 5442, 5442, 5442, 5442, 5442, 5442, 5442,
+ 5442, 5442, 5443, 5443, 5443, 5443, 5443, 5443, 5443, 5443,
+ 5443, 5443, 5443, 5443, 5443, 5443, 5443, 5443, 5443, 5443,
+ 5444, 5444, 5444, 5444, 5444, 5444, 5444, 5444, 5444, 5444,
+ 5444, 5444, 5444, 5444, 5444, 5444, 5444, 5444, 5445, 5445,
+
+ 5445, 5445, 5445, 5445, 5445, 5445, 5445, 5445, 5445, 5445,
+ 5445, 5445, 5445, 5445, 5445, 5445, 5446, 5446, 5446, 5446,
+ 5446, 5446, 5446, 5446, 5446, 5446, 5446, 5446, 5446, 5446,
+ 5446, 5446, 5446, 5446, 5447, 5447, 5447, 5447, 5447, 5447,
+ 5447, 5447, 5447, 5447, 5447, 5447, 5447, 5447, 5447, 5447,
+ 5447, 5447, 5448, 5448, 5448, 5448, 5448, 5448, 5448, 5448,
+ 5448, 5448, 5448, 5448, 5448, 5448, 5448, 5448, 5448, 5448,
+ 5449, 5449, 5449, 5449, 5449, 5449, 5449, 5449, 5449, 5449,
+ 5449, 5449, 5449, 5449, 5449, 5449, 5449, 5449, 5450, 5450,
+ 5450, 5450, 5450, 5450, 5450, 5450, 5450, 5450, 5450, 5450,
+
+ 5450, 5450, 5450, 5450, 5450, 5450, 5451, 5451, 5451, 5451,
+ 5451, 5451, 5451, 5451, 5451, 5451, 5451, 5451, 5451, 5451,
+ 5451, 5451, 5451, 5451, 5452, 5452, 5452, 5452, 5452, 5452,
+ 5452, 5452, 5452, 5452, 5452, 5452, 5452, 5452, 5452, 5452,
+ 5452, 5452, 5453, 5453, 5453, 5453, 5453, 5453, 5453, 5453,
+ 5453, 5453, 5453, 5453, 5453, 5453, 5453, 5453, 5453, 5453,
+ 5454, 5454, 5454, 5454, 5454, 5454, 5454, 5454, 5454, 5454,
+ 5454, 5454, 5454, 5454, 5454, 5454, 5454, 5454, 5455, 5455,
+ 5455, 5455, 5455, 5455, 5455, 5455, 5455, 5455, 5455, 5455,
+ 5455, 5455, 5455, 5455, 5455, 5455, 5456, 5456, 5456, 5456,
+
+ 5456, 5456, 5456, 5456, 5456, 5456, 5456, 5456, 5456, 5456,
+ 5456, 5456, 5456, 5456, 5457, 5457, 5457, 5457, 5457, 5457,
+ 5457, 5457, 5457, 5457, 5457, 5457, 5457, 5457, 5457, 5457,
+ 5457, 5457, 5458, 5458, 5458, 5458, 5458, 5458, 5458, 5458,
+ 5458, 5458, 5458, 5458, 5458, 5458, 5458, 5458, 5458, 5458,
+ 5459, 5459, 5459, 5459, 5459, 5459, 5459, 5459, 5459, 5459,
+ 5459, 5459, 5459, 5459, 5459, 5459, 5459, 5459, 5460, 5460,
+ 5460, 5460, 5460, 5460, 5460, 5460, 5460, 5460, 5460, 5460,
+ 5460, 5460, 5460, 5460, 5460, 5460, 5461, 5461, 5461, 5461,
+ 5461, 5461, 5461, 5461, 5461, 5461, 5461, 5461, 5461, 5461,
+
+ 5461, 5461, 5461, 5461, 5462, 5462, 5462, 5462, 5462, 5462,
+ 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5462, 5462,
+ 5462, 5462, 5463, 5463, 5463, 5463, 5463, 5463, 5463, 5463,
+ 5463, 5463, 5463, 5463, 5463, 5463, 5463, 5463, 5463, 5463,
+ 5464, 5464, 5464, 5464, 5464, 5464, 5464, 5464, 5464, 5464,
+ 5464, 5464, 5464, 5464, 5464, 5464, 5464, 5464, 5465, 5465,
+ 5465, 5465, 5465, 5465, 5465, 5465, 5465, 5465, 5465, 5465,
+ 5465, 5465, 5465, 5465, 5465, 5465, 5466, 5466, 5466, 5466,
+ 5466, 5466, 5466, 5466, 5466, 5466, 5466, 5466, 5466, 5466,
+ 5466, 5466, 5466, 5466, 5467, 5467, 5467, 5467, 5467, 5467,
+
+ 5467, 5467, 5467, 5467, 5467, 5467, 5467, 5467, 5467, 5467,
+ 5467, 5467, 5468, 5468, 5468, 5468, 5468, 5468, 5468, 5468,
+ 5468, 5468, 5468, 5468, 5468, 5468, 5468, 5468, 5468, 5468,
+ 5469, 5469, 5469, 5469, 5469, 5469, 5469, 5469, 5469, 5469,
+ 5469, 5469, 5469, 5469, 5469, 5469, 5469, 5469, 5470, 5470,
+ 5470, 5470, 5470, 5470, 5470, 5470, 5470, 5470, 5470, 5470,
+ 5470, 5470, 5470, 5470, 5470, 5470, 5471, 5471, 5471, 5471,
+ 5471, 5471, 5471, 5471, 5471, 5471, 5471, 5471, 5471, 5471,
+ 5471, 5471, 5471, 5471, 5472, 5472, 5472, 5472, 5472, 5472,
+ 5472, 5472, 5472, 5472, 5472, 5472, 5472, 5472, 5472, 5472,
+
+ 5472, 5472, 5473, 5473, 5473, 5473, 5473, 5473, 5473, 5473,
+ 5473, 5473, 5473, 5473, 5473, 5473, 5473, 5473, 5473, 5473,
+ 5474, 5474, 5474, 5474, 5474, 5474, 5474, 5474, 5474, 5474,
+ 5474, 5474, 5474, 5474, 5474, 5474, 5474, 5474, 5475, 5475,
+ 5475, 5475, 5475, 5475, 5475, 5475, 5475, 5475, 5475, 5475,
+ 5475, 5475, 5475, 5475, 5475, 5475, 5476, 5476, 5476, 5476,
+ 5476, 5476, 5476, 5476, 5476, 5476, 5476, 5476, 5476, 5476,
+ 5476, 5476, 5476, 5476, 5477, 5477, 5477, 5477, 5477, 5477,
+ 5477, 5477, 5477, 5477, 5477, 5477, 5477, 5477, 5477, 5477,
+ 5477, 5477, 5478, 5478, 5478, 5478, 5478, 5478, 5478, 5478,
+
+ 5478, 5478, 5478, 5478, 5478, 5478, 5478, 5478, 5478, 5478,
+ 5479, 5479, 5479, 5479, 5479, 5479, 5479, 5479, 5479, 5479,
+ 5479, 5479, 5479, 5479, 5479, 5479, 5479, 5479, 5480, 5480,
+ 5480, 5480, 5480, 5480, 5480, 5480, 5480, 5480, 5480, 5480,
+ 5480, 5480, 5480, 5480, 5480, 5480, 5481, 5481, 5481, 5481,
+ 5481, 5481, 5481, 5481, 5481, 5481, 5481, 5481, 5481, 5481,
+ 5481, 5481, 5481, 5481, 5482, 5482, 5482, 5482, 5482, 5482,
+ 5482, 5482, 5482, 5482, 5482, 5482, 5482, 5482, 5482, 5482,
+ 5482, 5482, 5483, 5483, 5483, 5483, 5483, 5483, 5483, 5483,
+ 5483, 5483, 5483, 5483, 5483, 5483, 5483, 5483, 5483, 5483,
+
+ 5484, 5484, 5484, 5484, 5484, 5484, 5484, 5484, 5484, 5484,
+ 5484, 5484, 5484, 5484, 5484, 5484, 5484, 5484, 5485, 5485,
+ 5485, 5485, 5485, 5485, 5485, 5485, 5485, 5485, 5485, 5485,
+ 5485, 5485, 5485, 5485, 5485, 5485, 5486, 5486, 5486, 5486,
+ 5486, 5486, 5486, 5486, 5486, 5486, 5486, 5486, 5486, 5486,
+ 5486, 5486, 5486, 5486, 5487, 5487, 5487, 5487, 5487, 5487,
+ 5487, 5487, 5487, 5487, 5487, 5487, 5487, 5487, 5487, 5487,
+ 5487, 5487, 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488,
+ 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488, 5488,
+ 5489, 5489, 5489, 5489, 5489, 5489, 5489, 5489, 5489, 5489,
+
+ 5489, 5489, 5489, 5489, 5489, 5489, 5489, 5489, 5490, 5490,
+ 5490, 0, 0, 5490, 5490, 0, 5490, 5490, 5490, 5490,
+ 5490, 0, 5490, 5490, 5491, 5491, 5491, 5491, 5491, 5491,
+ 5491, 5491, 5491, 5491, 5491, 5491, 5491, 5491, 5491, 5491,
+ 5491, 5491, 5492, 5492, 5492, 5492, 5492, 5492, 5492, 5492,
+ 5492, 5492, 5492, 5492, 5492, 5492, 5492, 5492, 5492, 5492,
+ 5493, 5493, 5493, 5493, 5493, 5493, 5493, 5493, 5493, 5493,
+ 5493, 5493, 5493, 5493, 5493, 5493, 5493, 5493, 5494, 5494,
+ 5494, 5494, 5494, 5494, 5494, 5494, 5494, 5494, 5494, 5494,
+ 5494, 5494, 5494, 5494, 5494, 5494, 5495, 5495, 5495, 5495,
+
+ 5495, 5495, 5495, 5495, 5495, 5495, 5495, 5495, 5495, 5495,
+ 5495, 5495, 5495, 5495, 5496, 5496, 5496, 5496, 5496, 5496,
+ 5496, 5496, 5496, 5496, 5496, 5496, 5496, 5496, 5496, 5496,
+ 5496, 5496, 5497, 5497, 5497, 5497, 5497, 5497, 5497, 5497,
+ 5497, 5497, 5497, 5497, 5497, 5497, 5497, 5497, 5497, 5497,
+ 5498, 5498, 5498, 5498, 5498, 5498, 5498, 5498, 5498, 5498,
+ 5498, 5498, 5498, 5498, 5498, 5498, 5498, 5498, 5499, 5499,
+ 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499, 5499,
+ 5499, 5499, 5499, 5499, 5499, 5499, 5500, 5500, 5500, 5500,
+ 5500, 5500, 5500, 5500, 5500, 5500, 5500, 5500, 5500, 5500,
+
+ 5500, 5500, 5500, 5500, 5501, 5501, 5501, 5501, 5501, 5501,
+ 5501, 5501, 5501, 5501, 5501, 5501, 5501, 5501, 5501, 5501,
+ 5501, 5501, 5502, 5502, 5502, 5502, 5502, 5502, 5502, 5502,
+ 5502, 5502, 5502, 5502, 5502, 5502, 5502, 5502, 5502, 5502,
+ 5503, 5503, 5503, 5503, 5503, 5503, 5503, 5503, 5503, 5503,
+ 5503, 5503, 5503, 5503, 5503, 5503, 5503, 5503, 5504, 5504,
+ 5504, 5504, 5504, 5504, 5504, 5504, 5504, 5504, 5504, 5504,
+ 5504, 5504, 5504, 5504, 5504, 5504, 5505, 5505, 5505, 5505,
+ 5505, 5505, 5505, 5505, 5505, 5505, 5505, 5505, 5505, 5505,
+ 5505, 5505, 5505, 5505, 5506, 5506, 5506, 5506, 5506, 5506,
+
+ 5506, 5506, 5506, 5506, 5506, 5506, 5506, 5506, 5506, 5506,
+ 5506, 5506, 5507, 5507, 5507, 5507, 5507, 5507, 5507, 5507,
+ 5507, 5507, 5507, 5507, 5507, 5507, 5507, 5507, 5507, 5507,
+ 5508, 5508, 5508, 5508, 5508, 5508, 5508, 5508, 5508, 5508,
+ 5508, 5508, 5508, 5508, 5508, 5508, 5508, 5508, 5509, 5509,
+ 5509, 5509, 5509, 5509, 5509, 5509, 5509, 5509, 5509, 5509,
+ 5509, 5509, 5509, 5509, 5509, 5509, 5510, 5510, 5510, 5510,
+ 5510, 5510, 5510, 5510, 5510, 5510, 5510, 5510, 5510, 5510,
+ 5510, 5510, 5510, 5510, 5511, 5511, 5511, 5511, 5511, 5511,
+ 5511, 5511, 5511, 5511, 5511, 5511, 5511, 5511, 5511, 5511,
+
+ 5511, 5511, 5512, 5512, 5512, 5512, 5512, 5512, 5512, 5512,
+ 5512, 5512, 5512, 5512, 5512, 5512, 5512, 5512, 5512, 5512,
+ 5513, 5513, 5513, 5513, 5513, 5513, 5513, 5513, 5513, 5513,
+ 5513, 5513, 5513, 5513, 5513, 5513, 5513, 5513, 5514, 5514,
+ 5514, 5514, 5514, 5514, 5514, 5514, 5514, 5514, 5514, 5514,
+ 5514, 5514, 5514, 5514, 5514, 5514, 5515, 5515, 5515, 5515,
+ 5515, 5515, 5515, 5515, 5515, 5515, 5515, 5515, 5515, 5515,
+ 5515, 5515, 5515, 5515, 5516, 5516, 5516, 5516, 5516, 5516,
+ 5516, 5516, 5516, 5516, 5516, 5516, 5516, 5516, 5516, 5516,
+ 5516, 5516, 5517, 5517, 5517, 5517, 5517, 5517, 5517, 5517,
+
+ 5517, 5517, 5517, 5517, 5517, 5517, 5517, 5517, 5517, 5517,
+ 5518, 5518, 5518, 5518, 5518, 5518, 5518, 5518, 5518, 5518,
+ 5518, 5518, 5518, 5518, 5518, 5518, 5518, 5518, 5519, 5519,
+ 5519, 5519, 5519, 5519, 5519, 5519, 5519, 5519, 5519, 5519,
+ 5519, 5519, 5519, 5519, 5519, 5519, 5520, 5520, 5520, 5520,
+ 5520, 5520, 5520, 5520, 5520, 5520, 5520, 5520, 5520, 5520,
+ 5520, 5520, 5520, 5520, 5521, 5521, 5521, 5521, 5521, 5521,
+ 5521, 5521, 5521, 5521, 5521, 5521, 5521, 5521, 5521, 5521,
+ 5521, 5521, 5522, 5522, 5522, 5522, 5522, 5522, 5522, 5522,
+ 5522, 5522, 5522, 5522, 5522, 5522, 5522, 5522, 5522, 5522,
+
+ 5523, 5523, 5523, 5523, 5523, 5523, 5523, 5523, 5523, 5523,
+ 5523, 5523, 5523, 5523, 5523, 5523, 5523, 5523, 5524, 5524,
+ 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524, 5524,
+ 5524, 5524, 5524, 5524, 5524, 5524, 5525, 5525, 5525, 5525,
+ 5525, 5525, 5525, 5525, 5525, 5525, 5525, 5525, 5525, 5525,
+ 5525, 5525, 5525, 5525, 5526, 5526, 5526, 0, 0, 5526,
+ 0, 0, 0, 0, 0, 5526, 0, 0, 5526, 5526,
+ 5527, 5527, 5527, 5527, 5527, 5527, 5527, 5527, 5527, 5527,
+ 5527, 5527, 5527, 5527, 5527, 5527, 5527, 5527, 5528, 5528,
+ 5528, 5528, 5528, 5528, 5528, 5528, 5528, 5528, 5528, 5528,
+
+ 5528, 5528, 5528, 5528, 5528, 5528, 5529, 5529, 5529, 5529,
+ 5529, 5529, 5529, 5529, 5529, 5529, 5529, 5529, 5529, 5529,
+ 5529, 5529, 5529, 5529, 5530, 5530, 5530, 5530, 5530, 5530,
+ 5530, 5530, 5530, 5530, 5530, 5530, 5530, 5530, 5530, 5530,
+ 5530, 5530, 5531, 5531, 5531, 5531, 5531, 5531, 5531, 5531,
+ 5531, 5531, 5531, 5531, 5531, 5531, 5531, 5531, 5531, 5531,
+ 5532, 5532, 5532, 5532, 5532, 5532, 5532, 5532, 5532, 5532,
+ 5532, 5532, 5532, 5532, 5532, 5532, 5532, 5532, 5533, 5533,
+ 5533, 5533, 5533, 5533, 5533, 5533, 5533, 5533, 5533, 5533,
+ 5533, 5533, 5533, 5533, 5533, 5533, 5534, 5534, 5534, 5534,
+
+ 5534, 5534, 5534, 5534, 5534, 5534, 5534, 5534, 5534, 5534,
+ 5534, 5534, 5534, 5534, 5535, 5535, 5535, 5535, 5535, 5535,
+ 5535, 5535, 5535, 5535, 5535, 5535, 5535, 5535, 5535, 5535,
+ 5535, 5535, 5536, 5536, 5536, 5536, 5536, 5536, 5536, 5536,
+ 5536, 5536, 5536, 5536, 5536, 5536, 5536, 5536, 5536, 5536,
+ 5537, 5537, 5537, 5537, 5537, 5537, 5537, 5537, 5537, 5537,
+ 5537, 5537, 5537, 5537, 5537, 5537, 5537, 5537, 5538, 5538,
+ 5538, 5538, 5538, 5538, 5538, 5538, 5538, 5538, 5538, 5538,
+ 5538, 5538, 5538, 5538, 5538, 5538, 5539, 5539, 5539, 5539,
+ 5539, 5539, 5539, 5539, 5539, 5539, 5539, 5539, 5539, 5539,
+
+ 5539, 5539, 5539, 5539, 5540, 5540, 5540, 5540, 5540, 5540,
+ 5540, 5540, 5540, 5540, 5540, 5540, 5540, 5540, 5540, 5540,
+ 5540, 5540, 5541, 5541, 5541, 5541, 5541, 5541, 5541, 5541,
+ 5541, 5541, 5541, 5541, 5541, 5541, 5541, 5541, 5541, 5541,
+ 5542, 5542, 5542, 5542, 5542, 5542, 5542, 5542, 5542, 5542,
+ 5542, 5542, 5542, 5542, 5542, 5542, 5542, 5542, 5543, 5543,
+ 5543, 5543, 5543, 5543, 5543, 5543, 5543, 5543, 5543, 5543,
+ 5543, 5543, 5543, 5543, 5543, 5543, 5544, 5544, 5544, 5544,
+ 5544, 5544, 5544, 5544, 5544, 5544, 5544, 5544, 5544, 5544,
+ 5544, 5544, 5544, 5544, 5545, 5545, 5545, 5545, 5545, 5545,
+
+ 5545, 5545, 5545, 5545, 5545, 5545, 5545, 5545, 5545, 5545,
+ 5545, 5545, 5546, 5546, 5546, 5546, 5546, 5546, 5546, 5546,
+ 5546, 5546, 5546, 5546, 5546, 5546, 5546, 5546, 5546, 5546,
+ 5547, 5547, 5547, 5547, 5547, 5547, 5547, 5547, 5547, 5547,
+ 5547, 5547, 5547, 5547, 5547, 5547, 5547, 5547, 5548, 5548,
+ 5548, 5548, 5548, 5548, 5548, 5548, 5548, 5548, 5548, 5548,
+ 5548, 5548, 5548, 5548, 5548, 5548, 5549, 5549, 5549, 5549,
+ 5549, 5549, 5549, 5549, 5549, 5549, 5549, 5549, 5549, 5549,
+ 5549, 5549, 5549, 5549, 5550, 5550, 5550, 5550, 5550, 5550,
+ 5550, 5550, 5550, 5550, 5550, 5550, 5550, 5550, 5550, 5550,
+
+ 5550, 5550, 5551, 5551, 5551, 5551, 5551, 5551, 5551, 5551,
+ 5551, 5551, 5551, 5551, 5551, 5551, 5551, 5551, 5551, 5551,
+ 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552,
+ 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5553, 5553,
+ 5553, 5553, 5553, 5553, 5553, 5553, 5553, 5553, 5553, 5553,
+ 5553, 5553, 5553, 5553, 5553, 5553, 5554, 5554, 5554, 5554,
+ 5554, 5554, 5554, 5554, 5554, 5554, 5554, 5554, 5554, 5554,
+ 5554, 5554, 5554, 5554, 5555, 5555, 5555, 5555, 5555, 5555,
+ 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555, 5555,
+ 5555, 5555, 5556, 5556, 5556, 5556, 5556, 5556, 5556, 5556,
+
+ 5556, 5556, 5556, 5556, 5556, 5556, 5556, 5556, 5556, 5556,
+ 5557, 5557, 5557, 5557, 5557, 5557, 5557, 5557, 5557, 5557,
+ 5557, 5557, 5557, 5557, 5557, 5557, 5557, 5557, 5558, 5558,
+ 5558, 5558, 5558, 5558, 5558, 5558, 5558, 5558, 5558, 5558,
+ 5558, 5558, 5558, 5558, 5558, 5558, 5559, 5559, 5559, 5559,
+ 5559, 5559, 5559, 5559, 5559, 5559, 5559, 5559, 5559, 5559,
+ 5559, 5559, 5559, 5559, 5560, 5560, 5560, 5560, 5560, 5560,
+ 5560, 5560, 5560, 5560, 5560, 5560, 5560, 5560, 5560, 5560,
+ 5560, 5560, 5561, 5561, 5561, 5561, 5561, 5561, 5561, 5561,
+ 5561, 5561, 5561, 5561, 5561, 5561, 5561, 5561, 5561, 5561,
+
+ 5562, 5562, 5562, 5562, 5562, 5562, 5562, 5562, 5562, 5562,
+ 5562, 5562, 5562, 5562, 5562, 5562, 5562, 5562, 5563, 5563,
+ 5563, 5563, 5563, 5563, 5563, 5563, 5563, 5563, 5563, 5563,
+ 5563, 5563, 5563, 5563, 5563, 5563, 5564, 5564, 5564, 5564,
+ 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564, 5564,
+ 5564, 5564, 5564, 5564, 5565, 5565, 5565, 5565, 5565, 5565,
+ 5565, 5565, 5565, 5565, 5565, 5565, 5565, 5565, 5565, 5565,
+ 5565, 5565, 5566, 5566, 5566, 5566, 5566, 5566, 5566, 5566,
+ 5566, 5566, 5566, 5566, 5566, 5566, 5566, 5566, 5566, 5566,
+ 5567, 5567, 5567, 5567, 5567, 5567, 5567, 5567, 5567, 5567,
+
+ 5567, 5567, 5567, 5567, 5567, 5567, 5567, 5567, 5568, 5568,
+ 5568, 5568, 5568, 5568, 5568, 5568, 5568, 5568, 5568, 5568,
+ 5568, 5568, 5568, 5568, 5568, 5568, 5569, 5569, 5569, 5569,
+ 5569, 5569, 5569, 5569, 5569, 5569, 5569, 5569, 5569, 5569,
+ 5569, 5569, 5569, 5569, 5570, 5570, 5570, 5570, 5570, 5570,
+ 5570, 5570, 5570, 5570, 5570, 5570, 5570, 5570, 5570, 5570,
+ 5570, 5570, 5571, 5571, 5571, 5571, 5571, 5571, 5571, 5571,
+ 5571, 5571, 5571, 5571, 5571, 5571, 5571, 5571, 5571, 5571,
+ 5572, 5572, 5572, 5572, 5572, 5572, 5572, 5572, 5572, 5572,
+ 5572, 5572, 5572, 5572, 5572, 5572, 5572, 5572, 5573, 5573,
+
+ 5573, 5573, 5573, 5573, 5573, 5573, 5573, 5573, 5573, 5573,
+ 5573, 5573, 5573, 5573, 5573, 5573, 5574, 5574, 5574, 5574,
+ 5574, 5574, 5574, 5574, 5574, 5574, 5574, 5574, 5574, 5574,
+ 5574, 5574, 5574, 5574, 5575, 5575, 5575, 5575, 5575, 5575,
+ 5575, 5575, 5575, 5575, 5575, 5575, 5575, 5575, 5575, 5575,
+ 5575, 5575, 5576, 5576, 5576, 5576, 5576, 5576, 5576, 5576,
+ 5576, 5576, 5576, 5576, 5576, 5576, 5576, 5576, 5576, 5576,
+ 5577, 5577, 5577, 5577, 5577, 5577, 5577, 5577, 5577, 5577,
+ 5577, 5577, 5577, 5577, 5577, 5577, 5577, 5577, 5578, 5578,
+ 5578, 5578, 5578, 5578, 5578, 5578, 5578, 5578, 5578, 5578,
+
+ 5578, 5578, 5578, 5578, 5578, 5578, 5579, 5579, 5579, 5579,
+ 5579, 5579, 5579, 5579, 5579, 5579, 5579, 5579, 5579, 5579,
+ 5579, 5579, 5579, 5579, 5580, 5580, 5580, 5580, 5580, 5580,
+ 5580, 5580, 5580, 5580, 5580, 5580, 5580, 5580, 5580, 5580,
+ 5580, 5580, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581,
+ 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581, 5581,
+ 5582, 5582, 5582, 5582, 5582, 5582, 5582, 5582, 5582, 5582,
+ 5582, 5582, 5582, 5582, 5582, 5582, 5582, 5582, 5583, 5583,
+ 5583, 5583, 5583, 5583, 5583, 5583, 5583, 5583, 5583, 5583,
+ 5583, 5583, 5583, 5583, 5583, 5583, 5584, 5584, 5584, 5584,
+
+ 5584, 5584, 5584, 5584, 5584, 5584, 5584, 5584, 5584, 5584,
+ 5584, 5584, 5584, 5584, 5585, 5585, 5585, 5585, 5585, 5585,
+ 5585, 5585, 5585, 5585, 5585, 5585, 5585, 5585, 5585, 5585,
+ 5585, 5585, 5586, 5586, 5586, 0, 0, 5586, 0, 5586,
+ 5586, 0, 0, 5586, 0, 0, 5586, 5586, 5586, 5587,
+ 5587, 5587, 5587, 5587, 5587, 5587, 5587, 5587, 5587, 5587,
+ 5587, 5587, 5587, 5587, 5587, 5587, 5587, 5588, 5588, 5588,
+ 5588, 5588, 5588, 5588, 5588, 5588, 5588, 5588, 5588, 5588,
+ 5588, 5588, 5588, 5588, 5588, 5589, 5589, 5589, 5589, 5589,
+ 5589, 5589, 5589, 5589, 5589, 5589, 5589, 5589, 5589, 5589,
+
+ 5589, 5589, 5589, 5590, 5590, 5590, 5590, 5590, 5590, 5590,
+ 5590, 5590, 5590, 5590, 5590, 5590, 5590, 5590, 5590, 5590,
+ 5590, 5591, 5591, 5591, 5591, 5591, 5591, 5591, 5591, 5591,
+ 5591, 5591, 5591, 5591, 5591, 5591, 5591, 5591, 5591, 5592,
+ 5592, 5592, 5592, 5592, 5592, 5592, 5592, 5592, 5592, 5592,
+ 5592, 5592, 5592, 5592, 5592, 5592, 5592, 5593, 5593, 5593,
+ 5593, 5593, 5593, 5593, 5593, 5593, 5593, 5593, 5593, 5593,
+ 5593, 5593, 5593, 5593, 5593, 5594, 5594, 5594, 5594, 5594,
+ 5594, 5594, 5594, 5594, 5594, 5594, 5594, 5594, 5594, 5594,
+ 5594, 5594, 5594, 5595, 5595, 5595, 5595, 5595, 5595, 5595,
+
+ 5595, 5595, 5595, 5595, 5595, 5595, 5595, 5595, 5595, 5595,
+ 5595, 5596, 5596, 5596, 5596, 5596, 5596, 5596, 5596, 5596,
+ 5596, 5596, 5596, 5596, 5596, 5596, 5596, 5596, 5596, 5597,
+ 5597, 5597, 5597, 5597, 5597, 5597, 5597, 5597, 5597, 5597,
+ 5597, 5597, 5597, 5597, 5597, 5597, 5597, 5598, 5598, 5598,
+ 5598, 5598, 5598, 5598, 5598, 5598, 5598, 5598, 5598, 5598,
+ 5598, 5598, 5598, 5598, 5598, 5599, 5599, 5599, 5599, 5599,
+ 5599, 5599, 5599, 5599, 5599, 5599, 5599, 5599, 5599, 5599,
+ 5599, 5599, 5599, 5600, 5600, 5600, 5600, 5600, 5600, 5600,
+ 5600, 5600, 5600, 5600, 5600, 5600, 5600, 5600, 5600, 5600,
+
+ 5600, 5601, 5601, 5601, 5601, 5601, 5601, 5601, 5601, 5601,
+ 5601, 5601, 5601, 5601, 5601, 5601, 5601, 5601, 5601, 5602,
+ 5602, 5602, 5602, 5602, 5602, 5602, 5602, 5602, 5602, 5602,
+ 5602, 5602, 5602, 5602, 5602, 5602, 5602, 5603, 5603, 5603,
+ 5603, 5603, 5603, 5603, 5603, 5603, 5603, 5603, 5603, 5603,
+ 5603, 5603, 5603, 5603, 5603, 5604, 5604, 5604, 5604, 5604,
+ 5604, 5604, 5604, 5604, 5604, 5604, 5604, 5604, 5604, 5604,
+ 5604, 5604, 5604, 5605, 5605, 5605, 5605, 5605, 5605, 5605,
+ 5605, 5605, 5605, 5605, 5605, 5605, 5605, 5605, 5605, 5605,
+ 5605, 5606, 5606, 5606, 5606, 5606, 5606, 5606, 5606, 5606,
+
+ 5606, 5606, 5606, 5606, 5606, 5606, 5606, 5606, 5606, 5607,
+ 5607, 5607, 5607, 5607, 5607, 5607, 5607, 5607, 5607, 5607,
+ 5607, 5607, 5607, 5607, 5607, 5607, 5607, 5608, 5608, 5608,
+ 5608, 5608, 5608, 5608, 5608, 5608, 5608, 5608, 5608, 5608,
+ 5608, 5608, 5608, 5608, 5608, 5609, 5609, 5609, 5609, 5609,
+ 5609, 5609, 5609, 5609, 5609, 5609, 5609, 5609, 5609, 5609,
+ 5609, 5609, 5609, 5610, 5610, 5610, 5610, 5610, 5610, 5610,
+ 5610, 5610, 5610, 5610, 5610, 5610, 5610, 5610, 5610, 5610,
+ 5610, 5611, 5611, 5611, 5611, 5611, 5611, 5611, 5611, 5611,
+ 5611, 5611, 5611, 5611, 5611, 5611, 5611, 5611, 5611, 5612,
+
+ 5612, 5612, 5612, 5612, 5612, 5612, 5612, 5612, 5612, 5612,
+ 5612, 5612, 5612, 5612, 5612, 5612, 5612, 5613, 5613, 5613,
+ 5613, 5613, 5613, 5613, 5613, 5613, 5613, 5613, 5613, 5613,
+ 5613, 5613, 5613, 5613, 5613, 5614, 5614, 5614, 5614, 5614,
+ 5614, 5614, 5614, 5614, 5614, 5614, 5614, 5614, 5614, 5614,
+ 5614, 5614, 5614, 5615, 5615, 5615, 5615, 5615, 5615, 5615,
+ 5615, 5615, 5615, 5615, 5615, 5615, 5615, 5615, 5615, 5615,
+ 5615, 5616, 5616, 5616, 5616, 5616, 5616, 5616, 5616, 5616,
+ 5616, 5616, 5616, 5616, 5616, 5616, 5616, 5616, 5616, 5617,
+ 5617, 5617, 5617, 5617, 5617, 5617, 5617, 5617, 5617, 5617,
+
+ 5617, 5617, 5617, 5617, 5617, 5617, 5617, 5618, 5618, 5618,
+ 5618, 5618, 5618, 5618, 5618, 5618, 5618, 5618, 5618, 5618,
+ 5618, 5618, 5618, 5618, 5618, 5619, 5619, 5619, 5619, 5619,
+ 5619, 5619, 5619, 5619, 5619, 5619, 5619, 5619, 5619, 5619,
+ 5619, 5619, 5619, 5620, 5620, 5620, 5620, 5620, 5620, 5620,
+ 5620, 5620, 5620, 5620, 5620, 5620, 5620, 5620, 5620, 5620,
+ 5620, 5621, 5621, 5621, 5621, 5621, 5621, 5621, 5621, 5621,
+ 5621, 5621, 5621, 5621, 5621, 5621, 5621, 5621, 5621, 5622,
+ 5622, 5622, 5622, 5622, 5622, 5622, 5622, 5622, 5622, 5622,
+ 5622, 5622, 5622, 5622, 5622, 5622, 5622, 5623, 5623, 5623,
+
+ 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623, 5623,
+ 5623, 5623, 5623, 5623, 5623, 5624, 5624, 5624, 5624, 5624,
+ 5624, 5624, 5624, 5624, 5624, 5624, 5624, 5624, 5624, 5624,
+ 5624, 5624, 5624, 5625, 5625, 5625, 5625, 5625, 5625, 5625,
+ 5625, 5625, 5625, 5625, 5625, 5625, 5625, 5625, 5625, 5625,
+ 5625, 5626, 5626, 5626, 5626, 5626, 5626, 5626, 5626, 5626,
+ 5626, 5626, 5626, 5626, 5626, 5626, 5626, 5626, 5626, 5627,
+ 5627, 5627, 5627, 5627, 5627, 5627, 5627, 5627, 5627, 5627,
+ 5627, 5627, 5627, 5627, 5627, 5627, 5627, 5628, 5628, 5628,
+ 5628, 5628, 5628, 5628, 5628, 5628, 5628, 5628, 5628, 5628,
+
+ 5628, 5628, 5628, 5628, 5628, 5629, 5629, 5629, 5629, 5629,
+ 5629, 5629, 5629, 5629, 5629, 5629, 5629, 5629, 5629, 5629,
+ 5629, 5629, 5629, 5630, 5630, 5630, 5630, 5630, 5630, 5630,
+ 5630, 5630, 5630, 5630, 5630, 5630, 5630, 5630, 5630, 5630,
+ 5630, 5631, 5631, 5631, 5631, 5631, 5631, 5631, 5631, 5631,
+ 5631, 5631, 5631, 5631, 5631, 5631, 5631, 5631, 5631, 5632,
+ 5632, 5632, 5632, 5632, 5632, 5632, 5632, 5632, 5632, 5632,
+ 5632, 5632, 5632, 5632, 5632, 5632, 5632, 5633, 5633, 5633,
+ 5633, 5633, 5633, 5633, 5633, 5633, 5633, 5633, 5633, 5633,
+ 5633, 5633, 5633, 5633, 5633, 5634, 5634, 5634, 5634, 5634,
+
+ 5634, 5634, 5634, 5634, 5634, 5634, 5634, 5634, 5634, 5634,
+ 5634, 5634, 5634, 5635, 5635, 5635, 5635, 5635, 5635, 5635,
+ 5635, 5635, 5635, 5635, 5635, 5635, 5635, 5635, 5635, 5635,
+ 5635, 5636, 5636, 5636, 5636, 5636, 5636, 5636, 5636, 5636,
+ 5636, 5636, 5636, 5636, 5636, 5636, 5636, 5636, 5636, 5637,
+ 5637, 5637, 5637, 5637, 5637, 5637, 5637, 5637, 5637, 5637,
+ 5637, 5637, 5637, 5637, 5637, 5637, 5637, 5638, 5638, 5638,
+ 5638, 5638, 5638, 5638, 5638, 5638, 5638, 5638, 5638, 5638,
+ 5638, 5638, 5638, 5638, 5638, 5639, 5639, 5639, 5639, 5639,
+ 5639, 5639, 5639, 5639, 5639, 5639, 5639, 5639, 5639, 5639,
+
+ 5639, 5639, 5639, 5640, 5640, 5640, 5640, 5640, 5640, 5640,
+ 5640, 5640, 5640, 5640, 5640, 5640, 5640, 5640, 5640, 5640,
+ 5640, 5641, 5641, 5641, 5641, 5641, 5641, 5641, 5641, 5641,
+ 5641, 5641, 5641, 5641, 5641, 5641, 5641, 5641, 5641, 5642,
+ 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5642,
+ 5642, 5642, 5642, 5642, 5642, 5642, 5642, 5643, 5643, 5643,
+ 5643, 5643, 5643, 5643, 5643, 5643, 5643, 5643, 5643, 5643,
+ 5643, 5643, 5643, 5643, 5643, 5644, 5644, 5644, 5644, 5644,
+ 5644, 5644, 5644, 5644, 5644, 5644, 5644, 5644, 5644, 5644,
+ 5644, 5644, 5644, 5645, 5645, 5645, 5645, 5645, 5645, 5645,
+
+ 5645, 5645, 5645, 5645, 5645, 5645, 5645, 5645, 5645, 5645,
+ 5645, 5646, 5646, 5646, 5646, 5646, 5646, 5646, 5646, 5646,
+ 5646, 5646, 5646, 5646, 5646, 5646, 5646, 5646, 5646, 5647,
+ 5647, 5647, 5647, 5647, 5647, 5647, 5647, 5647, 5647, 5647,
+ 5647, 5647, 5647, 5647, 5647, 5647, 5647, 5648, 5648, 5648,
+ 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648,
+ 5648, 5648, 5648, 5648, 5648, 5649, 5649, 5649, 5649, 5649,
+ 5649, 5649, 5649, 5649, 5649, 5649, 5649, 5649, 5649, 5649,
+ 5649, 5649, 5649, 5650, 5650, 5650, 5650, 5650, 5650, 5650,
+ 5650, 5650, 5650, 5650, 5650, 5650, 5650, 5650, 5650, 5650,
+
+ 5650, 5651, 5651, 5651, 5651, 5651, 5651, 5651, 5651, 5651,
+ 5651, 5651, 5651, 5651, 5651, 5651, 5651, 5651, 5651, 5652,
+ 5652, 5652, 0, 0, 5652, 0, 0, 0, 0, 0,
+ 5652, 0, 0, 5652, 5652, 5652, 5653, 5653, 5653, 5653,
+ 5653, 5653, 5653, 5653, 5653, 5653, 5653, 5653, 5653, 5653,
+ 5653, 5653, 5653, 5653, 5654, 5654, 5654, 5654, 5654, 5654,
+ 5654, 5654, 5654, 5654, 5654, 5654, 5654, 5654, 5654, 5654,
+ 5654, 5654, 5655, 5655, 5655, 5655, 5655, 5655, 5655, 5655,
+ 5655, 5655, 5655, 5655, 5655, 5655, 5655, 5655, 5655, 5655,
+ 5656, 5656, 5656, 5656, 5656, 5656, 5656, 5656, 5656, 5656,
+
+ 5656, 5656, 5656, 5656, 5656, 5656, 5656, 5656, 5657, 5657,
+ 5657, 5657, 5657, 5657, 5657, 5657, 5657, 5657, 5657, 5657,
+ 5657, 5657, 5657, 5657, 5657, 5657, 5658, 5658, 5658, 5658,
+ 5658, 5658, 5658, 5658, 5658, 5658, 5658, 5658, 5658, 5658,
+ 5658, 5658, 5658, 5658, 5659, 5659, 5659, 5659, 5659, 5659,
+ 5659, 5659, 5659, 5659, 5659, 5659, 5659, 5659, 5659, 5659,
+ 5659, 5659, 5660, 5660, 5660, 5660, 5660, 5660, 5660, 5660,
+ 5660, 5660, 5660, 5660, 5660, 5660, 5660, 5660, 5660, 5660,
+ 5661, 5661, 5661, 0, 0, 5661, 0, 5661, 5661, 0,
+ 0, 5661, 0, 0, 5661, 5661, 5661, 5662, 5662, 5662,
+
+ 5662, 5662, 5662, 5662, 5662, 5662, 5662, 5662, 5662, 5662,
+ 5662, 5662, 5662, 5662, 5662, 5663, 5663, 5663, 0, 0,
+ 5663, 0, 5663, 5663, 0, 0, 5663, 5663, 0, 5663,
+ 5663, 5663, 5664, 5664, 5664, 5664, 5664, 5664, 5664, 5664,
+ 5664, 5664, 5664, 5664, 5664, 5664, 5664, 5664, 5664, 5664,
+ 5665, 5665, 5665, 5665, 5665, 5665, 5665, 5665, 5665, 5665,
+ 5665, 5665, 5665, 5665, 5665, 5665, 5665, 5665, 5666, 5666,
+ 5666, 5666, 5666, 5666, 5666, 5666, 5666, 5666, 5666, 5666,
+ 5666, 5666, 5666, 5666, 5666, 5666, 5667, 5667, 5667, 5667,
+ 5667, 5667, 5667, 5667, 5667, 5667, 5667, 5667, 5667, 5667,
+
+ 5667, 5667, 5667, 5667, 5668, 5668, 5668, 5668, 5668, 5668,
+ 5668, 5668, 5668, 5668, 5668, 5668, 5668, 5668, 5668, 5668,
+ 5668, 5668, 5669, 5669, 5669, 5669, 5669, 5669, 5669, 5669,
+ 5669, 5669, 5669, 5669, 5669, 5669, 5669, 5669, 5669, 5669,
+ 5670, 5670, 5670, 5670, 5670, 5670, 5670, 5670, 5670, 5670,
+ 5670, 5670, 5670, 5670, 5670, 5670, 5670, 5670, 5671, 5671,
+ 5671, 5671, 5671, 5671, 5671, 5671, 5671, 5671, 5671, 5671,
+ 5671, 5671, 5671, 5671, 5671, 5671, 5672, 5672, 5672, 5672,
+ 5672, 5672, 5672, 5672, 5672, 5672, 5672, 5672, 5672, 5672,
+ 5672, 5672, 5672, 5672, 5673, 5673, 5673, 5673, 5673, 5673,
+
+ 5673, 5673, 5673, 5673, 5673, 5673, 5673, 5673, 5673, 5673,
+ 5673, 5673, 5674, 5674, 5674, 5674, 5674, 5674, 5674, 5674,
+ 5674, 5674, 5674, 5674, 5674, 5674, 5674, 5674, 5674, 5674,
+ 5675, 5675, 5675, 5675, 5675, 5675, 5675, 5675, 5675, 5675,
+ 5675, 5675, 5675, 5675, 5675, 5675, 5675, 5675, 5676, 5676,
+ 5676, 5676, 5676, 5676, 5676, 5676, 5676, 5676, 5676, 5676,
+ 5676, 5676, 5676, 5676, 5676, 5676, 5677, 5677, 5677, 5677,
+ 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677, 5677,
+ 5677, 5677, 5677, 5677, 5678, 5678, 5678, 5678, 5678, 5678,
+ 5678, 5678, 5678, 5678, 5678, 5678, 5678, 5678, 5678, 5678,
+
+ 5678, 5678, 5679, 5679, 5679, 5679, 5679, 5679, 5679, 5679,
+ 5679, 5679, 5679, 5679, 5679, 5679, 5679, 5679, 5679, 5679,
+ 5680, 5680, 5680, 5680, 5680, 5680, 5680, 5680, 5680, 5680,
+ 5680, 5680, 5680, 5680, 5680, 5680, 5680, 5680, 5681, 5681,
+ 5681, 5681, 5681, 5681, 5681, 5681, 5681, 5681, 5681, 5681,
+ 5681, 5681, 5681, 5681, 5681, 5681, 5682, 5682, 5682, 5682,
+ 5682, 5682, 5682, 5682, 5682, 5682, 5682, 5682, 5682, 5682,
+ 5682, 5682, 5682, 5682, 5683, 5683, 5683, 5683, 5683, 5683,
+ 5683, 5683, 5683, 5683, 5683, 5683, 5683, 5683, 5683, 5683,
+ 5683, 5683, 5684, 5684, 5684, 5684, 5684, 5684, 5684, 5684,
+
+ 5684, 5684, 5684, 5684, 5684, 5684, 5684, 5684, 5684, 5684,
+ 5685, 5685, 5685, 5685, 5685, 5685, 5685, 5685, 5685, 5685,
+ 5685, 5685, 5685, 5685, 5685, 5685, 5685, 5685, 5686, 5686,
+ 5686, 5686, 5686, 5686, 5686, 5686, 5686, 5686, 5686, 5686,
+ 5686, 5686, 5686, 5686, 5686, 5686, 5687, 5687, 5687, 5687,
+ 5687, 5687, 5687, 5687, 5687, 5687, 5687, 5687, 5687, 5687,
+ 5687, 5687, 5687, 5687, 5688, 5688, 5688, 5688, 5688, 5688,
+ 5688, 5688, 5688, 5688, 5688, 5688, 5688, 5688, 5688, 5688,
+ 5688, 5688, 5689, 5689, 5689, 5689, 5689, 5689, 5689, 5689,
+ 5689, 5689, 5689, 5689, 5689, 5689, 5689, 5689, 5689, 5689,
+
+ 5690, 5690, 5690, 5690, 5690, 5690, 5690, 5690, 5690, 5690,
+ 5690, 5690, 5690, 5690, 5690, 5690, 5690, 5690, 5691, 5691,
+ 5691, 5691, 5691, 5691, 5691, 5691, 5691, 5691, 5691, 5691,
+ 5691, 5691, 5691, 5691, 5691, 5691, 5692, 5692, 5692, 5692,
+ 5692, 5692, 5692, 5692, 5692, 5692, 5692, 5692, 5692, 5692,
+ 5692, 5692, 5692, 5692, 5693, 5693, 5693, 5693, 5693, 5693,
+ 5693, 5693, 5693, 5693, 5693, 5693, 5693, 5693, 5693, 5693,
+ 5693, 5693, 5694, 5694, 5694, 5694, 5694, 5694, 5694, 5694,
+ 5694, 5694, 5694, 5694, 5694, 5694, 5694, 5694, 5694, 5694,
+ 5695, 5695, 5695, 5695, 5695, 5695, 5695, 5695, 5695, 5695,
+
+ 5695, 5695, 5695, 5695, 5695, 5695, 5695, 5695, 5696, 5696,
+ 5696, 5696, 5696, 5696, 5696, 5696, 5696, 5696, 5696, 5696,
+ 5696, 5696, 5696, 5696, 5696, 5696, 5697, 5697, 5697, 5697,
+ 5697, 5697, 5697, 5697, 5697, 5697, 5697, 5697, 5697, 5697,
+ 5697, 5697, 5697, 5697, 5698, 5698, 5698, 5698, 5698, 5698,
+ 5698, 5698, 5698, 5698, 5698, 5698, 5698, 5698, 5698, 5698,
+ 5698, 5698, 5699, 5699, 5699, 5699, 5699, 5699, 5699, 5699,
+ 5699, 5699, 5699, 5699, 5699, 5699, 5699, 5699, 5699, 5699,
+ 5700, 5700, 5700, 5700, 5700, 5700, 5700, 5700, 5700, 5700,
+ 5700, 5700, 5700, 5700, 5700, 5700, 5700, 5700, 5701, 5701,
+
+ 5701, 5701, 5701, 5701, 5701, 5701, 5701, 5701, 5701, 5701,
+ 5701, 5701, 5701, 5701, 5701, 5701, 5702, 5702, 5702, 5702,
+ 5702, 5702, 5702, 5702, 5702, 5702, 5702, 5702, 5702, 5702,
+ 5702, 5702, 5702, 5702, 5703, 5703, 5703, 5703, 5703, 5703,
+ 5703, 5703, 5703, 5703, 5703, 5703, 5703, 5703, 5703, 5703,
+ 5703, 5703, 5704, 5704, 5704, 5704, 5704, 5704, 5704, 5704,
+ 5704, 5704, 5704, 5704, 5704, 5704, 5704, 5704, 5704, 5704,
+ 5705, 5705, 5705, 5705, 5705, 5705, 5705, 5705, 5705, 5705,
+ 5705, 5705, 5705, 5705, 5705, 5705, 5705, 5705, 5706, 5706,
+ 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706, 5706,
+
+ 5706, 5706, 5706, 5706, 5706, 5706, 5707, 5707, 5707, 5707,
+ 5707, 5707, 5707, 5707, 5707, 5707, 5707, 5707, 5707, 5707,
+ 5707, 5707, 5707, 5707, 5708, 5708, 5708, 5708, 5708, 5708,
+ 5708, 5708, 5708, 5708, 5708, 5708, 5708, 5708, 5708, 5708,
+ 5708, 5708, 5709, 5709, 5709, 5709, 5709, 5709, 5709, 5709,
+ 5709, 5709, 5709, 5709, 5709, 5709, 5709, 5709, 5709, 5709,
+ 5710, 5710, 5710, 5710, 5710, 5710, 5710, 5710, 5710, 5710,
+ 5710, 5710, 5710, 5710, 5710, 5710, 5710, 5710, 5711, 5711,
+ 5711, 5711, 5711, 5711, 5711, 5711, 5711, 5711, 5711, 5711,
+ 5711, 5711, 5711, 5711, 5711, 5711, 5712, 5712, 5712, 5712,
+
+ 5712, 5712, 5712, 5712, 5712, 5712, 5712, 5712, 5712, 5712,
+ 5712, 5712, 5712, 5712, 5713, 5713, 5713, 5713, 5713, 5713,
+ 5713, 5713, 5713, 5713, 5713, 5713, 5713, 5713, 5713, 5713,
+ 5713, 5713, 5714, 5714, 5714, 5714, 5714, 5714, 5714, 5714,
+ 5714, 5714, 5714, 5714, 5714, 5714, 5714, 5714, 5714, 5714,
+ 5715, 5715, 5715, 5715, 5715, 5715, 5715, 5715, 5715, 5715,
+ 5715, 5715, 5715, 5715, 5715, 5715, 5715, 5715, 5716, 5716,
+ 5716, 5716, 5716, 5716, 5716, 5716, 5716, 5716, 5716, 5716,
+ 5716, 5716, 5716, 5716, 5716, 5716, 5717, 5717, 5717, 5717,
+ 5717, 5717, 5717, 5717, 5717, 5717, 5717, 5717, 5717, 5717,
+
+ 5717, 5717, 5717, 5717, 5718, 5718, 5718, 5718, 5718, 5718,
+ 5718, 5718, 5718, 5718, 5718, 5718, 5718, 5718, 5718, 5718,
+ 5718, 5718, 5719, 5719, 5719, 5719, 5719, 5719, 5719, 5719,
+ 5719, 5719, 5719, 5719, 5719, 5719, 5719, 5719, 5719, 5719,
+ 5720, 5720, 5720, 5720, 5720, 5720, 5720, 5720, 5720, 5720,
+ 5720, 5720, 5720, 5720, 5720, 5720, 5720, 5720, 5721, 5721,
+ 5721, 5721, 5721, 5721, 5721, 5721, 5721, 5721, 5721, 5721,
+ 5721, 5721, 5721, 5721, 5721, 5721, 5722, 5722, 5722, 5722,
+ 5722, 5722, 5722, 5722, 5722, 5722, 5722, 5722, 5722, 5722,
+ 5722, 5722, 5722, 5722, 5723, 5723, 5723, 5723, 5723, 5723,
+
+ 5723, 5723, 5723, 5723, 5723, 5723, 5723, 5723, 5723, 5723,
+ 5723, 5723, 5724, 5724, 5724, 0, 0, 5724, 0, 0,
+ 0, 0, 0, 5724, 0, 0, 5724, 5724, 5724, 5725,
+ 5725, 5725, 5725, 5725, 5725, 5725, 5725, 5725, 5725, 5725,
+ 5725, 5725, 5725, 5725, 5725, 5725, 5725, 5726, 5726, 5726,
+ 5726, 5726, 5726, 5726, 5726, 5726, 5726, 5726, 5726, 5726,
+ 5726, 5726, 5726, 5726, 5726, 5727, 5727, 5727, 5727, 5727,
+ 5727, 5727, 5727, 5727, 5727, 5727, 5727, 5727, 5727, 5727,
+ 5727, 5727, 5727, 5728, 5728, 5728, 5728, 5728, 5728, 5728,
+ 5728, 5728, 5728, 5728, 5728, 5728, 5728, 5728, 5728, 5728,
+
+ 5728, 5729, 5729, 5729, 5729, 5729, 5729, 5729, 5729, 5729,
+ 5729, 5729, 5729, 5729, 5729, 5729, 5729, 5729, 5729, 5730,
+ 5730, 5730, 5730, 5730, 5730, 5730, 5730, 5730, 5730, 5730,
+ 5730, 5730, 5730, 5730, 5730, 5730, 5730, 5731, 5731, 5731,
+ 5731, 5731, 5731, 5731, 5731, 5731, 5731, 5731, 5731, 5731,
+ 5731, 5731, 5731, 5731, 5731, 5732, 5732, 5732, 5732, 5732,
+ 5732, 5732, 5732, 5732, 5732, 5732, 5732, 5732, 5732, 5732,
+ 5732, 5732, 5732, 5733, 5733, 5733, 5733, 5733, 5733, 5733,
+ 5733, 5733, 5733, 5733, 5733, 5733, 5733, 5733, 5733, 5733,
+ 5733, 5734, 5734, 5734, 5734, 5734, 5734, 5734, 5734, 5734,
+
+ 5734, 5734, 5734, 5734, 5734, 5734, 5734, 5734, 5734, 5735,
+ 5735, 5735, 5735, 5735, 5735, 5735, 5735, 5735, 5735, 5735,
+ 5735, 5735, 5735, 5735, 5735, 5735, 5735, 5736, 5736, 5736,
+ 5736, 5736, 5736, 5736, 5736, 5736, 5736, 5736, 5736, 5736,
+ 5736, 5736, 5736, 5736, 5736, 5737, 5737, 5737, 5737, 5737,
+ 5737, 5737, 5737, 5737, 5737, 5737, 5737, 5737, 5737, 5737,
+ 5737, 5737, 5737, 5738, 5738, 5738, 5738, 5738, 5738, 5738,
+ 5738, 5738, 5738, 5738, 5738, 5738, 5738, 5738, 5738, 5738,
+ 5738, 5739, 5739, 5739, 5739, 5739, 5739, 5739, 5739, 5739,
+ 5739, 5739, 5739, 5739, 5739, 5739, 5739, 5739, 5739, 5740,
+
+ 5740, 5740, 5740, 5740, 5740, 5740, 5740, 5740, 5740, 5740,
+ 5740, 5740, 5740, 5740, 5740, 5740, 5740, 5741, 5741, 5741,
+ 5741, 5741, 5741, 5741, 5741, 5741, 5741, 5741, 5741, 5741,
+ 5741, 5741, 5741, 5741, 5741, 5742, 5742, 5742, 5742, 5742,
+ 5742, 5742, 5742, 5742, 5742, 5742, 5742, 5742, 5742, 5742,
+ 5742, 5742, 5742, 5743, 5743, 5743, 5743, 5743, 5743, 5743,
+ 5743, 5743, 5743, 5743, 5743, 5743, 5743, 5743, 5743, 5743,
+ 5743, 5744, 5744, 5744, 5744, 5744, 5744, 5744, 5744, 5744,
+ 5744, 5744, 5744, 5744, 5744, 5744, 5744, 5744, 5744, 5745,
+ 5745, 5745, 5745, 5745, 5745, 5745, 5745, 5745, 5745, 5745,
+
+ 5745, 5745, 5745, 5745, 5745, 5745, 5745, 5746, 5746, 5746,
+ 5746, 5746, 5746, 5746, 5746, 5746, 5746, 5746, 5746, 5746,
+ 5746, 5746, 5746, 5746, 5746, 5747, 5747, 5747, 5747, 5747,
+ 5747, 5747, 5747, 5747, 5747, 5747, 5747, 5747, 5747, 5747,
+ 5747, 5747, 5747, 5748, 5748, 5748, 5748, 5748, 5748, 5748,
+ 5748, 5748, 5748, 5748, 5748, 5748, 5748, 5748, 5748, 5748,
+ 5748, 5749, 5749, 5749, 5749, 5749, 5749, 5749, 5749, 5749,
+ 5749, 5749, 5749, 5749, 5749, 5749, 5749, 5749, 5749, 5750,
+ 5750, 5750, 5750, 5750, 5750, 5750, 5750, 5750, 5750, 5750,
+ 5750, 5750, 5750, 5750, 5750, 5750, 5750, 5751, 5751, 5751,
+
+ 5751, 5751, 5751, 5751, 5751, 5751, 5751, 5751, 5751, 5751,
+ 5751, 5751, 5751, 5751, 5751, 5752, 5752, 5752, 5752, 5752,
+ 5752, 5752, 5752, 5752, 5752, 5752, 5752, 5752, 5752, 5752,
+ 5752, 5752, 5752, 5753, 5753, 5753, 5753, 5753, 5753, 5753,
+ 5753, 5753, 5753, 5753, 5753, 5753, 5753, 5753, 5753, 5753,
+ 5753, 5754, 5754, 5754, 5754, 5754, 5754, 5754, 5754, 5754,
+ 5754, 5754, 5754, 5754, 5754, 5754, 5754, 5754, 5754, 5755,
+ 5755, 5755, 5755, 5755, 5755, 5755, 5755, 5755, 5755, 5755,
+ 5755, 5755, 5755, 5755, 5755, 5755, 5755, 5756, 5756, 5756,
+ 5756, 5756, 5756, 5756, 5756, 5756, 5756, 5756, 5756, 5756,
+
+ 5756, 5756, 5756, 5756, 5756, 5757, 5757, 5757, 5757, 5757,
+ 5757, 5757, 5757, 5757, 5757, 5757, 5757, 5757, 5757, 5757,
+ 5757, 5757, 5757, 5758, 5758, 5758, 5758, 5758, 5758, 5758,
+ 5758, 5758, 5758, 5758, 5758, 5758, 5758, 5758, 5758, 5758,
+ 5758, 5759, 5759, 5759, 5759, 5759, 5759, 5759, 5759, 5759,
+ 5759, 5759, 5759, 5759, 5759, 5759, 5759, 5759, 5759, 5760,
+ 5760, 5760, 5760, 5760, 5760, 5760, 5760, 5760, 5760, 5760,
+ 5760, 5760, 5760, 5760, 5760, 5760, 5760, 5761, 5761, 5761,
+ 5761, 5761, 5761, 5761, 5761, 5761, 5761, 5761, 5761, 5761,
+ 5761, 5761, 5761, 5761, 5761, 5762, 5762, 5762, 5762, 5762,
+
+ 5762, 5762, 5762, 5762, 5762, 5762, 5762, 5762, 5762, 5762,
+ 5762, 5762, 5762, 5763, 5763, 5763, 5763, 5763, 5763, 5763,
+ 5763, 5763, 5763, 5763, 5763, 5763, 5763, 5763, 5763, 5763,
+ 5763, 5764, 5764, 5764, 5764, 5764, 5764, 5764, 5764, 5764,
+ 5764, 5764, 5764, 5764, 5764, 5764, 5764, 5764, 5764, 5765,
+ 5765, 5765, 5765, 5765, 5765, 5765, 5765, 5765, 5765, 5765,
+ 5765, 5765, 5765, 5765, 5765, 5765, 5765, 5766, 5766, 5766,
+ 5766, 5766, 5766, 5766, 5766, 5766, 5766, 5766, 5766, 5766,
+ 5766, 5766, 5766, 5766, 5766, 5767, 5767, 5767, 5767, 5767,
+ 5767, 5767, 5767, 5767, 5767, 5767, 5767, 5767, 5767, 5767,
+
+ 5767, 5767, 5767, 5768, 5768, 5768, 5768, 5768, 5768, 5768,
+ 5768, 5768, 5768, 5768, 5768, 5768, 5768, 5768, 5768, 5768,
+ 5768, 5769, 5769, 5769, 5769, 5769, 5769, 5769, 5769, 5769,
+ 5769, 5769, 5769, 5769, 5769, 5769, 5769, 5769, 5769, 5770,
+ 5770, 5770, 5770, 5770, 5770, 5770, 5770, 5770, 5770, 5770,
+ 5770, 5770, 5770, 5770, 5770, 5770, 5770, 5771, 5771, 5771,
+ 5771, 5771, 5771, 5771, 5771, 5771, 5771, 5771, 5771, 5771,
+ 5771, 5771, 5771, 5771, 5771, 5772, 5772, 5772, 5772, 5772,
+ 5772, 5772, 5772, 5772, 5772, 5772, 5772, 5772, 5772, 5772,
+ 5772, 5772, 5772, 5773, 5773, 5773, 5773, 5773, 5773, 5773,
+
+ 5773, 5773, 5773, 5773, 5773, 5773, 5773, 5773, 5773, 5773,
+ 5773, 5774, 5774, 5774, 5774, 5774, 5774, 5774, 5774, 5774,
+ 5774, 5774, 5774, 5774, 5774, 5774, 5774, 5774, 5774, 5775,
+ 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5775,
+ 5775, 5775, 5775, 5775, 5775, 5775, 5775, 5776, 5776, 5776,
+ 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776, 5776,
+ 5776, 5776, 5776, 5776, 5776, 5777, 5777, 5777, 5777, 5777,
+ 5777, 5777, 5777, 5777, 5777, 5777, 5777, 5777, 5777, 5777,
+ 5777, 5777, 5777, 5778, 5778, 5778, 5778, 5778, 5778, 5778,
+ 5778, 5778, 5778, 5778, 5778, 5778, 5778, 5778, 5778, 5778,
+
+ 5778, 5779, 5779, 5779, 5779, 5779, 5779, 5779, 5779, 5779,
+ 5779, 5779, 5779, 5779, 5779, 5779, 5779, 5779, 5779, 5780,
+ 5780, 5780, 5780, 5780, 5780, 5780, 5780, 5780, 5780, 5780,
+ 5780, 5780, 5780, 5780, 5780, 5780, 5780, 5781, 5781, 5781,
+ 5781, 5781, 5781, 5781, 5781, 5781, 5781, 5781, 5781, 5781,
+ 5781, 5781, 5781, 5781, 5781, 5782, 5782, 5782, 5782, 5782,
+ 5782, 5782, 5782, 5782, 5782, 5782, 5782, 5782, 5782, 5782,
+ 5782, 5782, 5782, 5783, 5783, 5783, 5783, 5783, 5783, 5783,
+ 5783, 5783, 5783, 5783, 5783, 5783, 5783, 5783, 5783, 5783,
+ 5783, 5784, 5784, 5784, 5784, 5784, 5784, 5784, 5784, 5784,
+
+ 5784, 5784, 5784, 5784, 5784, 5784, 5784, 5784, 5784, 5785,
+ 5785, 5785, 5785, 5785, 5785, 5785, 5785, 5785, 5785, 5785,
+ 5785, 5785, 5785, 5785, 5785, 5785, 5785, 5786, 5786, 5786,
+ 5786, 5786, 5786, 5786, 5786, 5786, 5786, 5786, 5786, 5786,
+ 5786, 5786, 5786, 5786, 5786, 5787, 5787, 5787, 5787, 5787,
+ 5787, 5787, 5787, 5787, 5787, 5787, 5787, 5787, 5787, 5787,
+ 5787, 5787, 5787, 5788, 5788, 5788, 5788, 5788, 5788, 5788,
+ 5788, 5788, 5788, 5788, 5788, 5788, 5788, 5788, 5788, 5788,
+ 5788, 5789, 5789, 5789, 5789, 5789, 5789, 5789, 5789, 5789,
+ 5789, 5789, 5789, 5789, 5789, 5789, 5789, 5789, 5789, 5790,
+
+ 5790, 5790, 5790, 5790, 5790, 5790, 5790, 5790, 5790, 5790,
+ 5790, 5790, 5790, 5790, 5790, 5790, 5790, 5791, 5791, 5791,
+ 5791, 5791, 5791, 5791, 5791, 5791, 5791, 5791, 5791, 5791,
+ 5791, 5791, 5791, 5791, 5791, 5792, 5792, 5792, 5792, 5792,
+ 5792, 5792, 5792, 5792, 5792, 5792, 5792, 5792, 5792, 5792,
+ 5792, 5792, 5792, 5793, 5793, 5793, 5793, 5793, 5793, 5793,
+ 5793, 5793, 5793, 5793, 5793, 5793, 5793, 5793, 5793, 5793,
+ 5793, 5794, 5794, 5794, 5794, 5794, 5794, 5794, 5794, 5794,
+ 5794, 5794, 5794, 5794, 5794, 5794, 5794, 5794, 5794, 5795,
+ 5795, 5795, 5795, 5795, 5795, 5795, 5795, 5795, 5795, 5795,
+
+ 5795, 5795, 5795, 5795, 5795, 5795, 5795, 5796, 5796, 5796,
+ 5796, 5796, 5796, 5796, 5796, 5796, 5796, 5796, 5796, 5796,
+ 5796, 5796, 5796, 5796, 5796, 5797, 5797, 5797, 5797, 5797,
+ 5797, 5797, 5797, 5797, 5797, 5797, 5797, 5797, 5797, 5797,
+ 5797, 5797, 5797, 5798, 5798, 5798, 5798, 5798, 5798, 5798,
+ 5798, 5798, 5798, 5798, 5798, 5798, 5798, 5798, 5798, 5798,
+ 5798, 5799, 5799, 5799, 5799, 5799, 5799, 5799, 5799, 5799,
+ 5799, 5799, 5799, 5799, 5799, 5799, 5799, 5799, 5799, 5800,
+ 5800, 5800, 5800, 5800, 5800, 5800, 5800, 5800, 5800, 5800,
+ 5800, 5800, 5800, 5800, 5800, 5800, 5800, 5801, 5801, 5801,
+
+ 5801, 5801, 5801, 5801, 5801, 5801, 5801, 5801, 5801, 5801,
+ 5801, 5801, 5801, 5801, 5801, 5802, 5802, 5802, 5802, 5802,
+ 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802, 5802,
+ 5802, 5802, 5802, 5803, 5803, 5803, 5803, 5803, 5803, 5803,
+ 5803, 5803, 5803, 5803, 5803, 5803, 5803, 5803, 5803, 5803,
+ 5803, 5804, 5804, 5804, 5804, 5804, 5804, 5804, 5804, 5804,
+ 5804, 5804, 5804, 5804, 5804, 5804, 5804, 5804, 5804, 5805,
+ 5805, 5805, 5805, 5805, 5805, 5805, 5805, 5805, 5805, 5805,
+ 5805, 5805, 5805, 5805, 5805, 5805, 5805, 5806, 5806, 5806,
+ 5806, 5806, 5806, 5806, 5806, 5806, 5806, 5806, 5806, 5806,
+
+ 5806, 5806, 5806, 5806, 5806, 5807, 5807, 5807, 5807, 5807,
+ 5807, 5807, 5807, 5807, 5807, 5807, 5807, 5807, 5807, 5807,
+ 5807, 5807, 5807, 5808, 5808, 5808, 5808, 5808, 5808, 5808,
+ 5808, 5808, 5808, 5808, 5808, 5808, 5808, 5808, 5808, 5808,
+ 5808, 5809, 5809, 5809, 5809, 5809, 5809, 5809, 5809, 5809,
+ 5809, 5809, 5809, 5809, 5809, 5809, 5809, 5809, 5809, 5810,
+ 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,
+ 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5811, 5811, 5811,
+ 5811, 5811, 5811, 5811, 5811, 5811, 5811, 5811, 5811, 5811,
+ 5811, 5811, 5811, 5811, 5811, 5812, 5812, 5812, 5812, 5812,
+
+ 5812, 5812, 5812, 5812, 5812, 5812, 5812, 5812, 5812, 5812,
+ 5812, 5812, 5812, 5813, 5813, 5813, 5813, 5813, 5813, 5813,
+ 5813, 5813, 5813, 5813, 5813, 5813, 5813, 5813, 5813, 5813,
+ 5813, 5814, 5814, 5814, 5814, 5814, 5814, 5814, 5814, 5814,
+ 5814, 5814, 5814, 5814, 5814, 5814, 5814, 5814, 5814, 5815,
+ 5815, 5815, 5815, 5815, 5815, 5815, 5815, 5815, 5815, 5815,
+ 5815, 5815, 5815, 5815, 5815, 5815, 5815, 5816, 5816, 5816,
+ 5816, 5816, 5816, 5816, 5816, 5816, 5816, 5816, 5816, 5816,
+ 5816, 5816, 5816, 5816, 5816, 5817, 5817, 5817, 5817, 5817,
+ 5817, 5817, 5817, 5817, 5817, 5817, 5817, 5817, 5817, 5817,
+
+ 5817, 5817, 5817, 5818, 5818, 5818, 5818, 5818, 5818, 5818,
+ 5818, 5818, 5818, 5818, 5818, 5818, 5818, 5818, 5818, 5818,
+ 5818, 5819, 5819, 5819, 5819, 5819, 5819, 5819, 5819, 5819,
+ 5819, 5819, 5819, 5819, 5819, 5819, 5819, 5819, 5819, 5820,
+ 5820, 5820, 5820, 5820, 5820, 5820, 5820, 5820, 5820, 5820,
+ 5820, 5820, 5820, 5820, 5820, 5820, 5820, 5821, 5821, 5821,
+ 5821, 5821, 5821, 5821, 5821, 5821, 5821, 5821, 5821, 5821,
+ 5821, 5821, 5821, 5821, 5821, 5822, 5822, 5822, 5822, 5822,
+ 5822, 5822, 5822, 5822, 5822, 5822, 5822, 5822, 5822, 5822,
+ 5822, 5822, 5822, 5823, 5823, 5823, 5823, 5823, 5823, 5823,
+
+ 5823, 5823, 5823, 5823, 5823, 5823, 5823, 5823, 5823, 5823,
+ 5823, 5824, 5824, 5824, 5824, 5824, 5824, 5824, 5824, 5824,
+ 5824, 5824, 5824, 5824, 5824, 5824, 5824, 5824, 5824, 5825,
+ 5825, 5825, 5825, 5825, 5825, 5825, 5825, 5825, 5825, 5825,
+ 5825, 5825, 5825, 5825, 5825, 5825, 5825, 5826, 5826, 5826,
+ 5826, 5826, 5826, 5826, 5826, 5826, 5826, 5826, 5826, 5826,
+ 5826, 5826, 5826, 5826, 5826, 5827, 5827, 5827, 5827, 5827,
+ 5827, 5827, 5827, 5827, 5827, 5827, 5827, 5827, 5827, 5827,
+ 5827, 5827, 5827, 5828, 5828, 5828, 5828, 5828, 5828, 5828,
+ 5828, 5828, 5828, 5828, 5828, 5828, 5828, 5828, 5828, 5828,
+
+ 5828, 5829, 5829, 5829, 5829, 5829, 5829, 5829, 5829, 5829,
+ 5829, 5829, 5829, 5829, 5829, 5829, 5829, 5829, 5829, 5830,
+ 5830, 5830, 5830, 5830, 5830, 5830, 5830, 5830, 5830, 5830,
+ 5830, 5830, 5830, 5830, 5830, 5830, 5830, 5831, 5831, 5831,
+ 5831, 5831, 5831, 5831, 5831, 5831, 5831, 5831, 5831, 5831,
+ 5831, 5831, 5831, 5831, 5831, 5832, 5832, 5832, 5832, 5832,
+ 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832, 5832,
+ 5832, 5832, 5832, 5833, 5833, 5833, 5833, 5833, 5833, 5833,
+ 5833, 5833, 5833, 5833, 5833, 5833, 5833, 5833, 5833, 5833,
+ 5833, 5834, 5834, 5834, 5834, 5834, 5834, 5834, 5834, 5834,
+
+ 5834, 5834, 5834, 5834, 5834, 5834, 5834, 5834, 5834, 5835,
+ 5835, 5835, 5835, 5835, 5835, 5835, 5835, 5835, 5835, 5835,
+ 5835, 5835, 5835, 5835, 5835, 5835, 5835, 5836, 5836, 5836,
+ 5836, 5836, 5836, 5836, 5836, 5836, 5836, 5836, 5836, 5836,
+ 5836, 5836, 5836, 5836, 5836, 5837, 5837, 5837, 5837, 5837,
+ 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837, 5837,
+ 5837, 5837, 5837, 5838, 5838, 5838, 5838, 5838, 5838, 5838,
+ 5838, 5838, 5838, 5838, 5838, 5838, 5838, 5838, 5838, 5838,
+ 5838, 5839, 5839, 5839, 5839, 5839, 5839, 5839, 5839, 5839,
+ 5839, 5839, 5839, 5839, 5839, 5839, 5839, 5839, 5839, 5840,
+
+ 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5840,
+ 5840, 5840, 5840, 5840, 5840, 5840, 5840, 5841, 5841, 5841,
+ 5841, 5841, 5841, 5841, 5841, 5841, 5841, 5841, 5841, 5841,
+ 5841, 5841, 5841, 5841, 5841, 5842, 5842, 5842, 5842, 5842,
+ 5842, 5842, 5842, 5842, 5842, 5842, 5842, 5842, 5842, 5842,
+ 5842, 5842, 5842, 5843, 5843, 5843, 5843, 5843, 5843, 5843,
+ 5843, 5843, 5843, 5843, 5843, 5843, 5843, 5843, 5843, 5843,
+ 5843, 5844, 5844, 5844, 5844, 5844, 5844, 5844, 5844, 5844,
+ 5844, 5844, 5844, 5844, 5844, 5844, 5844, 5844, 5844, 5845,
+ 5845, 5845, 5845, 5845, 5845, 5845, 5845, 5845, 5845, 5845,
+
+ 5845, 5845, 5845, 5845, 5845, 5845, 5845, 5846, 5846, 5846,
+ 5846, 5846, 5846, 5846, 5846, 5846, 5846, 5846, 5846, 5846,
+ 5846, 5846, 5846, 5846, 5846, 5847, 5847, 5847, 5847, 5847,
+ 5847, 5847, 5847, 5847, 5847, 5847, 5847, 5847, 5847, 5847,
+ 5847, 5847, 5847, 5848, 5848, 5848, 5848, 5848, 5848, 5848,
+ 5848, 5848, 5848, 5848, 5848, 5848, 5848, 5848, 5848, 5848,
+ 5848, 5849, 5849, 5849, 5849, 5849, 5849, 5849, 5849, 5849,
+ 5849, 5849, 5849, 5849, 5849, 5849, 5849, 5849, 5849, 5850,
+ 5850, 5850, 5850, 5850, 5850, 5850, 5850, 5850, 5850, 5850,
+ 5850, 5850, 5850, 5850, 5850, 5850, 5850, 5851, 5851, 5851,
+
+ 5851, 5851, 5851, 5851, 5851, 5851, 5851, 5851, 5851, 5851,
+ 5851, 5851, 5851, 5851, 5851, 5852, 5852, 5852, 5852, 5852,
+ 5852, 5852, 5852, 5852, 5852, 5852, 5852, 5852, 5852, 5852,
+ 5852, 5852, 5852, 5853, 5853, 5853, 5853, 5853, 5853, 5853,
+ 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853, 5853,
+ 5853, 5854, 5854, 5854, 5854, 5854, 5854, 5854, 5854, 5854,
+ 5854, 5854, 5854, 5854, 5854, 5854, 5854, 5854, 5854, 5855,
+ 5855, 5855, 5855, 5855, 5855, 5855, 5855, 5855, 5855, 5855,
+ 5855, 5855, 5855, 5855, 5855, 5855, 5855, 5856, 5856, 5856,
+ 5856, 5856, 5856, 5856, 5856, 5856, 5856, 5856, 5856, 5856,
+
+ 5856, 5856, 5856, 5856, 5856, 5857, 5857, 5857, 5857, 5857,
+ 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857, 5857,
+ 5857, 5857, 5857, 5858, 5858, 5858, 5858, 5858, 5858, 5858,
+ 5858, 5858, 5858, 5858, 5858, 5858, 5858, 5858, 5858, 5858,
+ 5858, 5859, 5859, 5859, 5859, 5859, 5859, 5859, 5859, 5859,
+ 5859, 5859, 5859, 5859, 5859, 5859, 5859, 5859, 5859, 5860,
+ 5860, 5860, 5860, 5860, 5860, 5860, 5860, 5860, 5860, 5860,
+ 5860, 5860, 5860, 5860, 5860, 5860, 5860, 5861, 5861, 5861,
+ 5861, 5861, 5861, 5861, 5861, 5861, 5861, 5861, 5861, 5861,
+ 5861, 5861, 5861, 5861, 5861, 5862, 5862, 5862, 5862, 5862,
+
+ 5862, 5862, 5862, 5862, 5862, 5862, 5862, 5862, 5862, 5862,
+ 5862, 5862, 5862, 5863, 5863, 5863, 5863, 5863, 5863, 5863,
+ 5863, 5863, 5863, 5863, 5863, 5863, 5863, 5863, 5863, 5863,
+ 5863, 5864, 5864, 5864, 5864, 5864, 5864, 5864, 5864, 5864,
+ 5864, 5864, 5864, 5864, 5864, 5864, 5864, 5864, 5864, 5865,
+ 5865, 5865, 5865, 5865, 5865, 5865, 5865, 5865, 5865, 5865,
+ 5865, 5865, 5865, 5865, 5865, 5865, 5865, 5866, 5866, 5866,
+ 5866, 5866, 5866, 5866, 5866, 5866, 5866, 5866, 5866, 5866,
+ 5866, 5866, 5866, 5866, 5866, 5867, 5867, 5867, 5867, 5867,
+ 5867, 5867, 5867, 5867, 5867, 5867, 5867, 5867, 5867, 5867,
+
+ 5867, 5867, 5867, 5868, 5868, 5868, 5868, 5868, 5868, 5868,
+ 5868, 5868, 5868, 5868, 5868, 5868, 5868, 5868, 5868, 5868,
+ 5868, 5869, 5869, 5869, 5869, 5869, 5869, 5869, 5869, 5869,
+ 5869, 5869, 5869, 5869, 5869, 5869, 5869, 5869, 5869, 5870,
+ 5870, 5870, 5870, 5870, 5870, 5870, 5870, 5870, 5870, 5870,
+ 5870, 5870, 5870, 5870, 5870, 5870, 5870, 5871, 5871, 5871,
+ 5871, 5871, 5871, 5871, 5871, 5871, 5871, 5871, 5871, 5871,
+ 5871, 5871, 5871, 5871, 5871, 5872, 5872, 5872, 5872, 5872,
+ 5872, 5872, 5872, 5872, 5872, 5872, 5872, 5872, 5872, 5872,
+ 5872, 5872, 5872, 5873, 5873, 5873, 5873, 5873, 5873, 5873,
+
+ 5873, 5873, 5873, 5873, 5873, 5873, 5873, 5873, 5873, 5873,
+ 5873, 5874, 5874, 5874, 5874, 5874, 5874, 5874, 5874, 5874,
+ 5874, 5874, 5874, 5874, 5874, 5874, 5874, 5874, 5874, 5875,
+ 5875, 5875, 5875, 5875, 5875, 5875, 5875, 5875, 5875, 5875,
+ 5875, 5875, 5875, 5875, 5875, 5875, 5875, 5876, 5876, 5876,
+ 5876, 5876, 5876, 5876, 5876, 5876, 5876, 5876, 5876, 5876,
+ 5876, 5876, 5876, 5876, 5876, 5877, 5877, 5877, 5877, 5877,
+ 5877, 5877, 5877, 5877, 5877, 5877, 5877, 5877, 5877, 5877,
+ 5877, 5877, 5877, 5878, 5878, 5878, 5878, 5878, 5878, 5878,
+ 5878, 5878, 5878, 5878, 5878, 5878, 5878, 5878, 5878, 5878,
+
+ 5878, 5879, 5879, 5879, 5879, 5879, 5879, 5879, 5879, 5879,
+ 5879, 5879, 5879, 5879, 5879, 5879, 5879, 5879, 5879, 5880,
+ 5880, 5880, 5880, 5880, 5880, 5880, 5880, 5880, 5880, 5880,
+ 5880, 5880, 5880, 5880, 5880, 5880, 5880, 5881, 5881, 5881,
+ 5881, 5881, 5881, 5881, 5881, 5881, 5881, 5881, 5881, 5881,
+ 5881, 5881, 5881, 5881, 5881, 5882, 5882, 5882, 5882, 5882,
+ 5882, 5882, 5882, 5882, 5882, 5882, 5882, 5882, 5882, 5882,
+ 5882, 5882, 5882, 5883, 5883, 5883, 5883, 5883, 5883, 5883,
+ 5883, 5883, 5883, 5883, 5883, 5883, 5883, 5883, 5883, 5883,
+ 5883, 5884, 5884, 5884, 5884, 5884, 5884, 5884, 5884, 5884,
+
+ 5884, 5884, 5884, 5884, 5884, 5884, 5884, 5884, 5884, 5885,
+ 5885, 5885, 5885, 5885, 5885, 5885, 5885, 5885, 5885, 5885,
+ 5885, 5885, 5885, 5885, 5885, 5885, 5885, 5886, 5886, 5886,
+ 5886, 5886, 5886, 5886, 5886, 5886, 5886, 5886, 5886, 5886,
+ 5886, 5886, 5886, 5886, 5886, 5887, 5887, 5887, 5887, 5887,
+ 5887, 5887, 5887, 5887, 5887, 5887, 5887, 5887, 5887, 5887,
+ 5887, 5887, 5887, 5888, 5888, 5888, 5888, 5888, 5888, 5888,
+ 5888, 5888, 5888, 5888, 5888, 5888, 5888, 5888, 5888, 5888,
+ 5888, 5889, 5889, 5889, 5889, 5889, 5889, 5889, 5889, 5889,
+ 5889, 5889, 5889, 5889, 5889, 5889, 5889, 5889, 5889, 5890,
+
+ 5890, 5890, 5890, 5890, 5890, 5890, 5890, 5890, 5890, 5890,
+ 5890, 5890, 5890, 5890, 5890, 5890, 5890, 5891, 5891, 5891,
+ 5891, 5891, 5891, 5891, 5891, 5891, 5891, 5891, 5891, 5891,
+ 5891, 5891, 5891, 5891, 5891, 5892, 5892, 5892, 5892, 5892,
+ 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5892, 5892,
+ 5892, 5892, 5892, 5893, 5893, 5893, 5893, 5893, 5893, 5893,
+ 5893, 5893, 5893, 5893, 5893, 5893, 5893, 5893, 5893, 5893,
+ 5893, 5894, 5894, 5894, 5894, 5894, 5894, 5894, 5894, 5894,
+ 5894, 5894, 5894, 5894, 5894, 5894, 5894, 5894, 5894, 5895,
+ 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5895,
+
+ 5895, 5895, 5895, 5895, 5895, 5895, 5895, 5896, 5896, 5896,
+ 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896, 5896,
+ 5896, 5896, 5896, 5896, 5896, 5897, 5897, 5897, 5897, 5897,
+ 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897, 5897,
+ 5897, 5897, 5897, 5898, 5898, 5898, 5898, 5898, 5898, 5898,
+ 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898, 5898,
+ 5898, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899,
+ 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5899, 5900,
+ 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5900,
+ 5900, 5900, 5900, 5900, 5900, 5900, 5900, 5901, 5901, 5901,
+
+ 5901, 5901, 5901, 5901, 5901, 5901, 5901, 5901, 5901, 5901,
+ 5901, 5901, 5901, 5901, 5901, 5902, 5902, 5902, 5902, 5902,
+ 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5902, 5902,
+ 5902, 5902, 5902, 5903, 5903, 5903, 5903, 5903, 5903, 5903,
+ 5903, 5903, 5903, 5903, 5903, 5903, 5903, 5903, 5903, 5903,
+ 5903, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5904,
+ 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5904, 5905,
+ 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5905,
+ 5905, 5905, 5905, 5905, 5905, 5905, 5905, 5906, 5906, 5906,
+ 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5906, 5906,
+
+ 5906, 5906, 5906, 5906, 5906, 5907, 5907, 5907, 5907, 5907,
+ 5907, 5907, 5907, 5907, 5907, 5907, 5907, 5907, 5907, 5907,
+ 5907, 5907, 5907, 5908, 5908, 5908, 5908, 5908, 5908, 5908,
+ 5908, 5908, 5908, 5908, 5908, 5908, 5908, 5908, 5908, 5908,
+ 5908, 5909, 5909, 5909, 5909, 5909, 5909, 5909, 5909, 5909,
+ 5909, 5909, 5909, 5909, 5909, 5909, 5909, 5909, 5909, 5910,
+ 5910, 5910, 5910, 5910, 5910, 5910, 5910, 5910, 5910, 5910,
+ 5910, 5910, 5910, 5910, 5910, 5910, 5910, 5911, 5911, 5911,
+ 5911, 5911, 5911, 5911, 5911, 5911, 5911, 5911, 5911, 5911,
+ 5911, 5911, 5911, 5911, 5911, 5912, 5912, 5912, 5912, 5912,
+
+ 5912, 5912, 5912, 5912, 5912, 5912, 5912, 5912, 5912, 5912,
+ 5912, 5912, 5912, 5913, 5913, 5913, 5913, 5913, 5913, 5913,
+ 5913, 5913, 5913, 5913, 5913, 5913, 5913, 5913, 5913, 5913,
+ 5913, 5914, 5914, 5914, 5914, 5914, 5914, 5914, 5914, 5914,
+ 5914, 5914, 5914, 5914, 5914, 5914, 5914, 5914, 5914, 5915,
+ 5915, 5915, 5915, 5915, 5915, 5915, 5915, 5915, 5915, 5915,
+ 5915, 5915, 5915, 5915, 5915, 5915, 5915, 5916, 5916, 5916,
+ 5916, 5916, 5916, 5916, 5916, 5916, 5916, 5916, 5916, 5916,
+ 5916, 5916, 5916, 5916, 5916, 5917, 5917, 5917, 5917, 5917,
+ 5917, 5917, 5917, 5917, 5917, 5917, 5917, 5917, 5917, 5917,
+
+ 5917, 5917, 5917, 5918, 5918, 5918, 5918, 5918, 5918, 5918,
+ 5918, 5918, 5918, 5918, 5918, 5918, 5918, 5918, 5918, 5918,
+ 5918, 5919, 5919, 5919, 5919, 5919, 5919, 5919, 5919, 5919,
+ 5919, 5919, 5919, 5919, 5919, 5919, 5919, 5919, 5919, 5920,
+ 5920, 5920, 5920, 5920, 5920, 5920, 5920, 5920, 5920, 5920,
+ 5920, 5920, 5920, 5920, 5920, 5920, 5920, 5921, 5921, 5921,
+ 5921, 5921, 5921, 5921, 5921, 5921, 5921, 5921, 5921, 5921,
+ 5921, 5921, 5921, 5921, 5921, 5922, 5922, 5922, 5922, 5922,
+ 5922, 5922, 5922, 5922, 5922, 5922, 5922, 5922, 5922, 5922,
+ 5922, 5922, 5922, 5923, 5923, 5923, 5923, 5923, 5923, 5923,
+
+ 5923, 5923, 5923, 5923, 5923, 5923, 5923, 5923, 5923, 5923,
+ 5923, 5924, 5924, 5924, 5924, 5924, 5924, 5924, 5924, 5924,
+ 5924, 5924, 5924, 5924, 5924, 5924, 5924, 5924, 5924, 5925,
+ 5925, 5925, 5925, 5925, 5925, 5925, 5925, 5925, 5925, 5925,
+ 5925, 5925, 5925, 5925, 5925, 5925, 5925, 5926, 5926, 5926,
+ 5926, 5926, 5926, 5926, 5926, 5926, 5926, 5926, 5926, 5926,
+ 5926, 5926, 5926, 5926, 5926, 5927, 5927, 5927, 5927, 5927,
+ 5927, 5927, 5927, 5927, 5927, 5927, 5927, 5927, 5927, 5927,
+ 5927, 5927, 5927, 5928, 5928, 5928, 5928, 5928, 5928, 5928,
+ 5928, 5928, 5928, 5928, 5928, 5928, 5928, 5928, 5928, 5928,
+
+ 5928, 5929, 5929, 5929, 5929, 5929, 5929, 5929, 5929, 5929,
+ 5929, 5929, 5929, 5929, 5929, 5929, 5929, 5929, 5929, 5930,
+ 5930, 5930, 5930, 5930, 5930, 5930, 5930, 5930, 5930, 5930,
+ 5930, 5930, 5930, 5930, 5930, 5930, 5930, 5931, 5931, 5931,
+ 5931, 5931, 5931, 5931, 5931, 5931, 5931, 5931, 5931, 5931,
+ 5931, 5931, 5931, 5931, 5931, 5932, 5932, 5932, 5932, 5932,
+ 5932, 5932, 5932, 5932, 5932, 5932, 5932, 5932, 5932, 5932,
+ 5932, 5932, 5932, 5933, 5933, 5933, 5933, 5933, 5933, 5933,
+ 5933, 5933, 5933, 5933, 5933, 5933, 5933, 5933, 5933, 5933,
+ 5933, 5934, 5934, 5934, 5934, 5934, 5934, 5934, 5934, 5934,
+
+ 5934, 5934, 5934, 5934, 5934, 5934, 5934, 5934, 5934, 5935,
+ 5935, 5935, 5935, 5935, 5935, 5935, 5935, 5935, 5935, 5935,
+ 5935, 5935, 5935, 5935, 5935, 5935, 5935, 5936, 5936, 5936,
+ 5936, 5936, 5936, 5936, 5936, 5936, 5936, 5936, 5936, 5936,
+ 5936, 5936, 5936, 5936, 5936, 5937, 5937, 5937, 5937, 5937,
+ 5937, 5937, 5937, 5937, 5937, 5937, 5937, 5937, 5937, 5937,
+ 5937, 5937, 5937, 5938, 5938, 5938, 5938, 5938, 5938, 5938,
+ 5938, 5938, 5938, 5938, 5938, 5938, 5938, 5938, 5938, 5938,
+ 5938, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939,
+ 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5939, 5940,
+
+ 5940, 5940, 5940, 5940, 5940, 5940, 5940, 5940, 5940, 5940,
+ 5940, 5940, 5940, 5940, 5940, 5940, 5940, 5941, 5941, 5941,
+ 5941, 5941, 5941, 5941, 5941, 5941, 5941, 5941, 5941, 5941,
+ 5941, 5941, 5941, 5941, 5941, 5942, 5942, 5942, 5942, 5942,
+ 5942, 5942, 5942, 5942, 5942, 5942, 5942, 5942, 5942, 5942,
+ 5942, 5942, 5942, 5943, 5943, 5943, 5943, 5943, 5943, 5943,
+ 5943, 5943, 5943, 5943, 5943, 5943, 5943, 5943, 5943, 5943,
+ 5943, 5944, 5944, 5944, 5944, 5944, 5944, 5944, 5944, 5944,
+ 5944, 5944, 5944, 5944, 5944, 5944, 5944, 5944, 5944, 5945,
+ 5945, 5945, 5945, 5945, 5945, 5945, 5945, 5945, 5945, 5945,
+
+ 5945, 5945, 5945, 5945, 5945, 5945, 5945, 5946, 5946, 5946,
+ 5946, 5946, 5946, 5946, 5946, 5946, 5946, 5946, 5946, 5946,
+ 5946, 5946, 5946, 5946, 5946, 5947, 5947, 5947, 5947, 5947,
+ 5947, 5947, 5947, 5947, 5947, 5947, 5947, 5947, 5947, 5947,
+ 5947, 5947, 5947, 5948, 5948, 5948, 5948, 5948, 5948, 5948,
+ 5948, 5948, 5948, 5948, 5948, 5948, 5948, 5948, 5948, 5948,
+ 5948, 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949,
+ 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5949, 5950,
+ 5950, 5950, 5950, 5950, 5950, 5950, 5950, 5950, 5950, 5950,
+ 5950, 5950, 5950, 5950, 5950, 5950, 5950, 5951, 5951, 5951,
+
+ 5951, 5951, 5951, 5951, 5951, 5951, 5951, 5951, 5951, 5951,
+ 5951, 5951, 5951, 5951, 5951, 5952, 5952, 5952, 5952, 5952,
+ 5952, 5952, 5952, 5952, 5952, 5952, 5952, 5952, 5952, 5952,
+ 5952, 5952, 5952, 5953, 5953, 5953, 5953, 5953, 5953, 5953,
+ 5953, 5953, 5953, 5953, 5953, 5953, 5953, 5953, 5953, 5953,
+ 5953, 5954, 5954, 5954, 5954, 5954, 5954, 5954, 5954, 5954,
+ 5954, 5954, 5954, 5954, 5954, 5954, 5954, 5954, 5954, 5955,
+ 5955, 5955, 5955, 5955, 5955, 5955, 5955, 5955, 5955, 5955,
+ 5955, 5955, 5955, 5955, 5955, 5955, 5955, 5956, 5956, 5956,
+ 5956, 5956, 5956, 5956, 5956, 5956, 5956, 5956, 5956, 5956,
+
+ 5956, 5956, 5956, 5956, 5956, 5957, 5957, 5957, 5957, 5957,
+ 5957, 5957, 5957, 5957, 5957, 5957, 5957, 5957, 5957, 5957,
+ 5957, 5957, 5957, 5958, 5958, 5958, 5958, 5958, 5958, 5958,
+ 5958, 5958, 5958, 5958, 5958, 5958, 5958, 5958, 5958, 5958,
+ 5958, 5959, 5959, 5959, 5959, 5959, 5959, 5959, 5959, 5959,
+ 5959, 5959, 5959, 5959, 5959, 5959, 5959, 5959, 5959, 5960,
+ 5960, 5960, 5960, 5960, 5960, 5960, 5960, 5960, 5960, 5960,
+ 5960, 5960, 5960, 5960, 5960, 5960, 5960, 5961, 5961, 5961,
+ 5961, 5961, 5961, 5961, 5961, 5961, 5961, 5961, 5961, 5961,
+ 5961, 5961, 5961, 5961, 5961, 5962, 5962, 5962, 5962, 5962,
+
+ 5962, 5962, 5962, 5962, 5962, 5962, 5962, 5962, 5962, 5962,
+ 5962, 5962, 5962, 5963, 5963, 5963, 5963, 5963, 5963, 5963,
+ 5963, 5963, 5963, 5963, 5963, 5963, 5963, 5963, 5963, 5963,
+ 5963, 5964, 5964, 5964, 5964, 5964, 5964, 5964, 5964, 5964,
+ 5964, 5964, 5964, 5964, 5964, 5964, 5964, 5964, 5964, 5965,
+ 5965, 5965, 0, 0, 5965, 0, 5965, 5965, 0, 0,
+ 5965, 0, 0, 5965, 5965, 5965, 5966, 5966, 5966, 5966,
+ 5966, 5966, 5966, 5966, 5966, 5966, 5966, 5966, 5966, 5966,
+ 5966, 5966, 5966, 5966, 5967, 5967, 5967, 5967, 5967, 5967,
+ 5967, 5967, 5967, 5967, 5967, 5967, 5967, 5967, 5967, 5967,
+
+ 5967, 5967, 5968, 5968, 5968, 5968, 5968, 5968, 5968, 5968,
+ 5968, 5968, 5968, 5968, 5968, 5968, 5968, 5968, 5968, 5968,
+ 5969, 5969, 5969, 5969, 5969, 5969, 5969, 5969, 5969, 5969,
+ 5969, 5969, 5969, 5969, 5969, 5969, 5969, 5969, 5970, 5970,
+ 5970, 5970, 5970, 5970, 5970, 5970, 5970, 5970, 5970, 5970,
+ 5970, 5970, 5970, 5970, 5970, 5970, 5971, 5971, 5971, 5971,
+ 5971, 5971, 5971, 5971, 5971, 5971, 5971, 5971, 5971, 5971,
+ 5971, 5971, 5971, 5971, 5972, 5972, 5972, 5972, 5972, 5972,
+ 5972, 5972, 5972, 5972, 5972, 5972, 5972, 5972, 5972, 5972,
+ 5972, 5972, 5973, 5973, 5973, 5973, 5973, 5973, 5973, 5973,
+
+ 5973, 5973, 5973, 5973, 5973, 5973, 5973, 5973, 5973, 5973,
+ 5974, 5974, 5974, 5974, 5974, 5974, 5974, 5974, 5974, 5974,
+ 5974, 5974, 5974, 5974, 5974, 5974, 5974, 5974, 5975, 5975,
+ 5975, 5975, 5975, 5975, 5975, 5975, 5975, 5975, 5975, 5975,
+ 5975, 5975, 5975, 5975, 5975, 5975, 5976, 5976, 5976, 5976,
+ 5976, 5976, 5976, 5976, 5976, 5976, 5976, 5976, 5976, 5976,
+ 5976, 5976, 5976, 5976, 5977, 5977, 5977, 5977, 5977, 5977,
+ 5977, 5977, 5977, 5977, 5977, 5977, 5977, 5977, 5977, 5977,
+ 5977, 5977, 5978, 5978, 5978, 5978, 5978, 5978, 5978, 5978,
+ 5978, 5978, 5978, 5978, 5978, 5978, 5978, 5978, 5978, 5978,
+
+ 5979, 5979, 5979, 5979, 5979, 5979, 5979, 5979, 5979, 5979,
+ 5979, 5979, 5979, 5979, 5979, 5979, 5979, 5979, 5980, 5980,
+ 5980, 5980, 5980, 5980, 5980, 5980, 5980, 5980, 5980, 5980,
+ 5980, 5980, 5980, 5980, 5980, 5980, 5981, 5981, 5981, 5981,
+ 5981, 5981, 5981, 5981, 5981, 5981, 5981, 5981, 5981, 5981,
+ 5981, 5981, 5981, 5981, 5982, 5982, 5982, 5982, 5982, 5982,
+ 5982, 5982, 5982, 5982, 5982, 5982, 5982, 5982, 5982, 5982,
+ 5982, 5982, 5983, 5983, 5983, 5983, 5983, 5983, 5983, 5983,
+ 5983, 5983, 5983, 5983, 5983, 5983, 5983, 5983, 5983, 5983,
+ 5984, 5984, 5984, 5984, 5984, 5984, 5984, 5984, 5984, 5984,
+
+ 5984, 5984, 5984, 5984, 5984, 5984, 5984, 5984, 5985, 5985,
+ 5985, 5985, 5985, 5985, 5985, 5985, 5985, 5985, 5985, 5985,
+ 5985, 5985, 5985, 5985, 5985, 5985, 5986, 5986, 5986, 5986,
+ 5986, 5986, 5986, 5986, 5986, 5986, 5986, 5986, 5986, 5986,
+ 5986, 5986, 5986, 5986, 5987, 5987, 5987, 5987, 5987, 5987,
+ 5987, 5987, 5987, 5987, 5987, 5987, 5987, 5987, 5987, 5987,
+ 5987, 5987, 5988, 5988, 5988, 5988, 5988, 5988, 5988, 5988,
+ 5988, 5988, 5988, 5988, 5988, 5988, 5988, 5988, 5988, 5988,
+ 5989, 5989, 5989, 5989, 5989, 5989, 5989, 5989, 5989, 5989,
+ 5989, 5989, 5989, 5989, 5989, 5989, 5989, 5989, 5990, 5990,
+
+ 5990, 5990, 5990, 5990, 5990, 5990, 5990, 5990, 5990, 5990,
+ 5990, 5990, 5990, 5990, 5990, 5990, 5991, 5991, 5991, 5991,
+ 5991, 5991, 5991, 5991, 5991, 5991, 5991, 5991, 5991, 5991,
+ 5991, 5991, 5991, 5991, 5992, 5992, 5992, 5992, 5992, 5992,
+ 5992, 5992, 5992, 5992, 5992, 5992, 5992, 5992, 5992, 5992,
+ 5992, 5992, 5993, 5993, 5993, 5993, 5993, 5993, 5993, 5993,
+ 5993, 5993, 5993, 5993, 5993, 5993, 5993, 5993, 5993, 5993,
+ 5994, 5994, 5994, 5994, 5994, 5994, 5994, 5994, 5994, 5994,
+ 5994, 5994, 5994, 5994, 5994, 5994, 5994, 5994, 5995, 5995,
+ 5995, 5995, 5995, 5995, 5995, 5995, 5995, 5995, 5995, 5995,
+
+ 5995, 5995, 5995, 5995, 5995, 5995, 5996, 5996, 5996, 5996,
+ 5996, 5996, 5996, 5996, 5996, 5996, 5996, 5996, 5996, 5996,
+ 5996, 5996, 5996, 5996, 5997, 5997, 5997, 5997, 5997, 5997,
+ 5997, 5997, 5997, 5997, 5997, 5997, 5997, 5997, 5997, 5997,
+ 5997, 5997, 5998, 5998, 5998, 5998, 5998, 5998, 5998, 5998,
+ 5998, 5998, 5998, 5998, 5998, 5998, 5998, 5998, 5998, 5998,
+ 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999,
+ 5999, 5999, 5999, 5999, 5999, 5999, 5999, 5999, 6000, 6000,
+ 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000, 6000,
+ 6000, 6000, 6000, 6000, 6000, 6000, 6001, 6001, 6001, 6001,
+
+ 6001, 6001, 6001, 6001, 6001, 6001, 6001, 6001, 6001, 6001,
+ 6001, 6001, 6001, 6001, 6002, 6002, 6002, 6002, 6002, 6002,
+ 6002, 6002, 6002, 6002, 6002, 6002, 6002, 6002, 6002, 6002,
+ 6002, 6002, 6003, 6003, 6003, 6003, 6003, 6003, 6003, 6003,
+ 6003, 6003, 6003, 6003, 6003, 6003, 6003, 6003, 6003, 6003,
+ 6004, 6004, 6004, 6004, 6004, 6004, 6004, 6004, 6004, 6004,
+ 6004, 6004, 6004, 6004, 6004, 6004, 6004, 6004, 6005, 6005,
+ 6005, 6005, 6005, 6005, 6005, 6005, 6005, 6005, 6005, 6005,
+ 6005, 6005, 6005, 6005, 6005, 6005, 6006, 6006, 6006, 6006,
+ 6006, 6006, 6006, 6006, 6006, 6006, 6006, 6006, 6006, 6006,
+
+ 6006, 6006, 6006, 6006, 6007, 6007, 6007, 6007, 6007, 6007,
+ 6007, 6007, 6007, 6007, 6007, 6007, 6007, 6007, 6007, 6007,
+ 6007, 6007, 6008, 6008, 6008, 6008, 6008, 6008, 6008, 6008,
+ 6008, 6008, 6008, 6008, 6008, 6008, 6008, 6008, 6008, 6008,
+ 6009, 6009, 6009, 6009, 6009, 6009, 6009, 6009, 6009, 6009,
+ 6009, 6009, 6009, 6009, 6009, 6009, 6009, 6009, 6010, 6010,
+ 6010, 6010, 6010, 6010, 6010, 6010, 6010, 6010, 6010, 6010,
+ 6010, 6010, 6010, 6010, 6010, 6010, 6011, 6011, 6011, 6011,
+ 6011, 6011, 6011, 6011, 6011, 6011, 6011, 6011, 6011, 6011,
+ 6011, 6011, 6011, 6011, 6012, 6012, 6012, 6012, 6012, 6012,
+
+ 6012, 6012, 6012, 6012, 6012, 6012, 6012, 6012, 6012, 6012,
+ 6012, 6012, 6013, 6013, 6013, 6013, 6013, 6013, 6013, 6013,
+ 6013, 6013, 6013, 6013, 6013, 6013, 6013, 6013, 6013, 6013,
+ 6014, 6014, 6014, 6014, 6014, 6014, 6014, 6014, 6014, 6014,
+ 6014, 6014, 6014, 6014, 6014, 6014, 6014, 6014, 6015, 6015,
+ 6015, 6015, 6015, 6015, 6015, 6015, 6015, 6015, 6015, 6015,
+ 6015, 6015, 6015, 6015, 6015, 6015, 6016, 6016, 6016, 6016,
+ 6016, 6016, 6016, 6016, 6016, 6016, 6016, 6016, 6016, 6016,
+ 6016, 6016, 6016, 6016, 6017, 6017, 6017, 6017, 6017, 6017,
+ 6017, 6017, 6017, 6017, 6017, 6017, 6017, 6017, 6017, 6017,
+
+ 6017, 6017, 6018, 6018, 6018, 6018, 6018, 6018, 6018, 6018,
+ 6018, 6018, 6018, 6018, 6018, 6018, 6018, 6018, 6018, 6018,
+ 6019, 6019, 6019, 6019, 6019, 6019, 6019, 6019, 6019, 6019,
+ 6019, 6019, 6019, 6019, 6019, 6019, 6019, 6019, 6020, 6020,
+ 6020, 6020, 6020, 6020, 6020, 6020, 6020, 6020, 6020, 6020,
+ 6020, 6020, 6020, 6020, 6020, 6020, 6021, 6021, 6021, 6021,
+ 6021, 6021, 6021, 6021, 6021, 6021, 6021, 6021, 6021, 6021,
+ 6021, 6021, 6021, 6021, 6022, 6022, 6022, 6022, 6022, 6022,
+ 6022, 6022, 6022, 6022, 6022, 6022, 6022, 6022, 6022, 6022,
+ 6022, 6022, 6023, 6023, 6023, 6023, 6023, 6023, 6023, 6023,
+
+ 6023, 6023, 6023, 6023, 6023, 6023, 6023, 6023, 6023, 6023,
+ 6024, 6024, 6024, 6024, 6024, 6024, 6024, 6024, 6024, 6024,
+ 6024, 6024, 6024, 6024, 6024, 6024, 6024, 6024, 6025, 6025,
+ 6025, 6025, 6025, 6025, 6025, 6025, 6025, 6025, 6025, 6025,
+ 6025, 6025, 6025, 6025, 6025, 6025, 6026, 6026, 6026, 6026,
+ 6026, 6026, 6026, 6026, 6026, 6026, 6026, 6026, 6026, 6026,
+ 6026, 6026, 6026, 6026, 6027, 6027, 6027, 6027, 6027, 6027,
+ 6027, 6027, 6027, 6027, 6027, 6027, 6027, 6027, 6027, 6027,
+ 6027, 6027, 6028, 6028, 6028, 0, 0, 6028, 0, 6028,
+ 6028, 0, 0, 6028, 0, 0, 6028, 6028, 6028, 6029,
+
+ 6029, 6029, 6029, 6029, 6029, 6029, 6029, 6029, 6029, 6029,
+ 6029, 6029, 6029, 6029, 6029, 6029, 6029, 6030, 6030, 6030,
+ 6030, 6030, 6030, 6030, 6030, 6030, 6030, 6030, 6030, 6030,
+ 6030, 6030, 6030, 6030, 6030, 6031, 6031, 6031, 6031, 6031,
+ 6031, 6031, 6031, 6031, 6031, 6031, 6031, 6031, 6031, 6031,
+ 6031, 6031, 6031, 6032, 6032, 6032, 6032, 6032, 6032, 6032,
+ 6032, 6032, 6032, 6032, 6032, 6032, 6032, 6032, 6032, 6032,
+ 6032, 6033, 6033, 6033, 6033, 6033, 6033, 6033, 6033, 6033,
+ 6033, 6033, 6033, 6033, 6033, 6033, 6033, 6033, 6033, 6034,
+ 6034, 6034, 6034, 6034, 6034, 6034, 6034, 6034, 6034, 6034,
+
+ 6034, 6034, 6034, 6034, 6034, 6034, 6034, 6035, 6035, 6035,
+ 6035, 6035, 6035, 6035, 6035, 6035, 6035, 6035, 6035, 6035,
+ 6035, 6035, 6035, 6035, 6035, 6036, 6036, 6036, 6036, 6036,
+ 6036, 6036, 6036, 6036, 6036, 6036, 6036, 6036, 6036, 6036,
+ 6036, 6036, 6036, 6037, 6037, 6037, 6037, 6037, 6037, 6037,
+ 6037, 6037, 6037, 6037, 6037, 6037, 6037, 6037, 6037, 6037,
+ 6037, 6038, 6038, 6038, 6038, 6038, 6038, 6038, 6038, 6038,
+ 6038, 6038, 6038, 6038, 6038, 6038, 6038, 6038, 6038, 6039,
+ 6039, 6039, 6039, 6039, 6039, 6039, 6039, 6039, 6039, 6039,
+ 6039, 6039, 6039, 6039, 6039, 6039, 6039, 6040, 6040, 6040,
+
+ 6040, 6040, 6040, 6040, 6040, 6040, 6040, 6040, 6040, 6040,
+ 6040, 6040, 6040, 6040, 6040, 6041, 6041, 6041, 6041, 6041,
+ 6041, 6041, 6041, 6041, 6041, 6041, 6041, 6041, 6041, 6041,
+ 6041, 6041, 6041, 6042, 6042, 6042, 6042, 6042, 6042, 6042,
+ 6042, 6042, 6042, 6042, 6042, 6042, 6042, 6042, 6042, 6042,
+ 6042, 6043, 6043, 6043, 6043, 6043, 6043, 6043, 6043, 6043,
+ 6043, 6043, 6043, 6043, 6043, 6043, 6043, 6043, 6043, 6044,
+ 6044, 6044, 6044, 6044, 6044, 6044, 6044, 6044, 6044, 6044,
+ 6044, 6044, 6044, 6044, 6044, 6044, 6044, 6045, 6045, 6045,
+ 6045, 6045, 6045, 6045, 6045, 6045, 6045, 6045, 6045, 6045,
+
+ 6045, 6045, 6045, 6045, 6045, 6046, 6046, 6046, 6046, 6046,
+ 6046, 6046, 6046, 6046, 6046, 6046, 6046, 6046, 6046, 6046,
+ 6046, 6046, 6046, 6047, 6047, 6047, 6047, 6047, 6047, 6047,
+ 6047, 6047, 6047, 6047, 6047, 6047, 6047, 6047, 6047, 6047,
+ 6047, 6048, 6048, 6048, 6048, 6048, 6048, 6048, 6048, 6048,
+ 6048, 6048, 6048, 6048, 6048, 6048, 6048, 6048, 6048, 6049,
+ 6049, 6049, 6049, 6049, 6049, 6049, 6049, 6049, 6049, 6049,
+ 6049, 6049, 6049, 6049, 6049, 6049, 6049, 6050, 6050, 6050,
+ 6050, 6050, 6050, 6050, 6050, 6050, 6050, 6050, 6050, 6050,
+ 6050, 6050, 6050, 6050, 6050, 6051, 6051, 6051, 6051, 6051,
+
+ 6051, 6051, 6051, 6051, 6051, 6051, 6051, 6051, 6051, 6051,
+ 6051, 6051, 6051, 6052, 6052, 6052, 6052, 6052, 6052, 6052,
+ 6052, 6052, 6052, 6052, 6052, 6052, 6052, 6052, 6052, 6052,
+ 6052, 6053, 6053, 6053, 6053, 6053, 6053, 6053, 6053, 6053,
+ 6053, 6053, 6053, 6053, 6053, 6053, 6053, 6053, 6053, 6054,
+ 6054, 6054, 6054, 6054, 6054, 6054, 6054, 6054, 6054, 6054,
+ 6054, 6054, 6054, 6054, 6054, 6054, 6054, 6055, 6055, 6055,
+ 6055, 6055, 6055, 6055, 6055, 6055, 6055, 6055, 6055, 6055,
+ 6055, 6055, 6055, 6055, 6055, 6056, 6056, 6056, 6056, 6056,
+ 6056, 6056, 6056, 6056, 6056, 6056, 6056, 6056, 6056, 6056,
+
+ 6056, 6056, 6056, 6057, 6057, 6057, 6057, 6057, 6057, 6057,
+ 6057, 6057, 6057, 6057, 6057, 6057, 6057, 6057, 6057, 6057,
+ 6057, 6058, 6058, 6058, 6058, 6058, 6058, 6058, 6058, 6058,
+ 6058, 6058, 6058, 6058, 6058, 6058, 6058, 6058, 6058, 6059,
+ 6059, 6059, 6059, 6059, 6059, 6059, 6059, 6059, 6059, 6059,
+ 6059, 6059, 6059, 6059, 6059, 6059, 6059, 6060, 6060, 6060,
+ 6060, 6060, 6060, 6060, 6060, 6060, 6060, 6060, 6060, 6060,
+ 6060, 6060, 6060, 6060, 6060, 6061, 6061, 6061, 6061, 6061,
+ 6061, 6061, 6061, 6061, 6061, 6061, 6061, 6061, 6061, 6061,
+ 6061, 6061, 6061, 6062, 6062, 6062, 6062, 6062, 6062, 6062,
+
+ 6062, 6062, 6062, 6062, 6062, 6062, 6062, 6062, 6062, 6062,
+ 6062, 6063, 6063, 6063, 6063, 6063, 6063, 6063, 6063, 6063,
+ 6063, 6063, 6063, 6063, 6063, 6063, 6063, 6063, 6063, 6064,
+ 6064, 6064, 6064, 6064, 6064, 6064, 6064, 6064, 6064, 6064,
+ 6064, 6064, 6064, 6064, 6064, 6064, 6064, 6065, 6065, 6065,
+ 6065, 6065, 6065, 6065, 6065, 6065, 6065, 6065, 6065, 6065,
+ 6065, 6065, 6065, 6065, 6065, 6066, 6066, 6066, 6066, 6066,
+ 6066, 6066, 6066, 6066, 6066, 6066, 6066, 6066, 6066, 6066,
+ 6066, 6066, 6066, 6067, 6067, 6067, 6067, 6067, 6067, 6067,
+ 6067, 6067, 6067, 6067, 6067, 6067, 6067, 6067, 6067, 6067,
+
+ 6067, 6068, 6068, 6068, 6068, 6068, 6068, 6068, 6068, 6068,
+ 6068, 6068, 6068, 6068, 6068, 6068, 6068, 6068, 6068, 6069,
+ 6069, 6069, 6069, 6069, 6069, 6069, 6069, 6069, 6069, 6069,
+ 6069, 6069, 6069, 6069, 6069, 6069, 6069, 6070, 6070, 6070,
+ 6070, 6070, 6070, 6070, 6070, 6070, 6070, 6070, 6070, 6070,
+ 6070, 6070, 6070, 6070, 6070, 6071, 6071, 6071, 6071, 6071,
+ 6071, 6071, 6071, 6071, 6071, 6071, 6071, 6071, 6071, 6071,
+ 6071, 6071, 6071, 6072, 6072, 6072, 6072, 6072, 6072, 6072,
+ 6072, 6072, 6072, 6072, 6072, 6072, 6072, 6072, 6072, 6072,
+ 6072, 6073, 6073, 6073, 6073, 6073, 6073, 6073, 6073, 6073,
+
+ 6073, 6073, 6073, 6073, 6073, 6073, 6073, 6073, 6073, 6074,
+ 6074, 6074, 6074, 6074, 6074, 6074, 6074, 6074, 6074, 6074,
+ 6074, 6074, 6074, 6074, 6074, 6074, 6074, 6075, 6075, 6075,
+ 6075, 6075, 6075, 6075, 6075, 6075, 6075, 6075, 6075, 6075,
+ 6075, 6075, 6075, 6075, 6075, 6076, 6076, 6076, 6076, 6076,
+ 6076, 6076, 6076, 6076, 6076, 6076, 6076, 6076, 6076, 6076,
+ 6076, 6076, 6076, 6077, 6077, 6077, 6077, 6077, 6077, 6077,
+ 6077, 6077, 6077, 6077, 6077, 6077, 6077, 6077, 6077, 6077,
+ 6077, 6078, 6078, 6078, 6078, 6078, 6078, 6078, 6078, 6078,
+ 6078, 6078, 6078, 6078, 6078, 6078, 6078, 6078, 6078, 6079,
+
+ 6079, 6079, 6079, 6079, 6079, 6079, 6079, 6079, 6079, 6079,
+ 6079, 6079, 6079, 6079, 6079, 6079, 6079, 6080, 6080, 6080,
+ 6080, 6080, 6080, 6080, 6080, 6080, 6080, 6080, 6080, 6080,
+ 6080, 6080, 6080, 6080, 6080, 6081, 6081, 6081, 6081, 6081,
+ 6081, 6081, 6081, 6081, 6081, 6081, 6081, 6081, 6081, 6081,
+ 6081, 6081, 6081, 6082, 6082, 6082, 6082, 6082, 6082, 6082,
+ 6082, 6082, 6082, 6082, 6082, 6082, 6082, 6082, 6082, 6082,
+ 6082, 6083, 6083, 6083, 6083, 6083, 6083, 6083, 6083, 6083,
+ 6083, 6083, 6083, 6083, 6083, 6083, 6083, 6083, 6083, 6084,
+ 6084, 6084, 6084, 6084, 6084, 6084, 6084, 6084, 6084, 6084,
+
+ 6084, 6084, 6084, 6084, 6084, 6084, 6084, 6085, 6085, 6085,
+ 6085, 6085, 6085, 6085, 6085, 6085, 6085, 6085, 6085, 6085,
+ 6085, 6085, 6085, 6085, 6085, 6086, 6086, 6086, 6086, 6086,
+ 6086, 6086, 6086, 6086, 6086, 6086, 6086, 6086, 6086, 6086,
+ 6086, 6086, 6086, 6087, 6087, 6087, 6087, 6087, 6087, 6087,
+ 6087, 6087, 6087, 6087, 6087, 6087, 6087, 6087, 6087, 6087,
+ 6087, 6088, 6088, 6088, 6088, 6088, 6088, 6088, 6088, 6088,
+ 6088, 6088, 6088, 6088, 6088, 6088, 6088, 6088, 6088, 6089,
+ 6089, 6089, 6089, 6089, 6089, 6089, 6089, 6089, 6089, 6089,
+ 6089, 6089, 6089, 6089, 6089, 6089, 6089, 6090, 6090, 6090,
+
+ 6090, 6090, 6090, 6090, 6090, 6090, 6090, 6090, 6090, 6090,
+ 6090, 6090, 6090, 6090, 6090, 6091, 6091, 6091, 6091, 6091,
+ 6091, 6091, 6091, 6091, 6091, 6091, 6091, 6091, 6091, 6091,
+ 6091, 6091, 6091, 6092, 6092, 6092, 6092, 6092, 6092, 6092,
+ 6092, 6092, 6092, 6092, 6092, 6092, 6092, 6092, 6092, 6092,
+ 6092, 6093, 6093, 6093, 6093, 6093, 6093, 6093, 6093, 6093,
+ 6093, 6093, 6093, 6093, 6093, 6093, 6093, 6093, 6093, 6094,
+ 6094, 6094, 6094, 6094, 6094, 6094, 6094, 6094, 6094, 6094,
+ 6094, 6094, 6094, 6094, 6094, 6094, 6094, 6095, 6095, 6095,
+ 6095, 6095, 6095, 6095, 6095, 6095, 6095, 6095, 6095, 6095,
+
+ 6095, 6095, 6095, 6095, 6095, 6096, 6096, 6096, 6096, 6096,
+ 6096, 6096, 6096, 6096, 6096, 6096, 6096, 6096, 6096, 6096,
+ 6096, 6096, 6096, 6097, 6097, 6097, 6097, 6097, 6097, 6097,
+ 6097, 6097, 6097, 6097, 6097, 6097, 6097, 6097, 6097, 6097,
+ 6097, 6098, 6098, 6098, 6098, 6098, 6098, 6098, 6098, 6098,
+ 6098, 6098, 6098, 6098, 6098, 6098, 6098, 6098, 6098, 6099,
+ 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6099,
+ 6099, 6099, 6099, 6099, 6099, 6099, 6099, 6100, 6100, 6100,
+ 6100, 6100, 6100, 6100, 6100, 6100, 6100, 6100, 6100, 6100,
+ 6100, 6100, 6100, 6100, 6100, 6101, 6101, 6101, 6101, 6101,
+
+ 6101, 6101, 6101, 6101, 6101, 6101, 6101, 6101, 6101, 6101,
+ 6101, 6101, 6101, 6102, 6102, 6102, 6102, 6102, 6102, 6102,
+ 6102, 6102, 6102, 6102, 6102, 6102, 6102, 6102, 6102, 6102,
+ 6102, 6103, 6103, 6103, 6103, 6103, 6103, 6103, 6103, 6103,
+ 6103, 6103, 6103, 6103, 6103, 6103, 6103, 6103, 6103, 6104,
+ 6104, 6104, 6104, 6104, 6104, 6104, 6104, 6104, 6104, 6104,
+ 6104, 6104, 6104, 6104, 6104, 6104, 6104, 6105, 6105, 6105,
+ 6105, 6105, 6105, 6105, 6105, 6105, 6105, 6105, 6105, 6105,
+ 6105, 6105, 6105, 6105, 6105, 6106, 6106, 6106, 6106, 6106,
+ 6106, 6106, 6106, 6106, 6106, 6106, 6106, 6106, 6106, 6106,
+
+ 6106, 6106, 6106, 6107, 6107, 6107, 6107, 6107, 6107, 6107,
+ 6107, 6107, 6107, 6107, 6107, 6107, 6107, 6107, 6107, 6107,
+ 6107, 6108, 6108, 6108, 6108, 6108, 6108, 6108, 6108, 6108,
+ 6108, 6108, 6108, 6108, 6108, 6108, 6108, 6108, 6108, 6109,
+ 6109, 6109, 6109, 6109, 6109, 6109, 6109, 6109, 6109, 6109,
+ 6109, 6109, 6109, 6109, 6109, 6109, 6109, 6110, 6110, 6110,
+ 6110, 6110, 6110, 6110, 6110, 6110, 6110, 6110, 6110, 6110,
+ 6110, 6110, 6110, 6110, 6110, 6111, 6111, 6111, 6111, 6111,
+ 6111, 6111, 6111, 6111, 6111, 6111, 6111, 6111, 6111, 6111,
+ 6111, 6111, 6111, 6112, 6112, 6112, 6112, 6112, 6112, 6112,
+
+ 6112, 6112, 6112, 6112, 6112, 6112, 6112, 6112, 6112, 6112,
+ 6112, 6113, 6113, 6113, 6113, 6113, 6113, 6113, 6113, 6113,
+ 6113, 6113, 6113, 6113, 6113, 6113, 6113, 6113, 6113, 6114,
+ 6114, 6114, 6114, 6114, 6114, 6114, 6114, 6114, 6114, 6114,
+ 6114, 6114, 6114, 6114, 6114, 6114, 6114, 6115, 6115, 6115,
+ 6115, 6115, 6115, 6115, 6115, 6115, 6115, 6115, 6115, 6115,
+ 6115, 6115, 6115, 6115, 6115, 6116, 6116, 6116, 6116, 6116,
+ 6116, 6116, 6116, 6116, 6116, 6116, 6116, 6116, 6116, 6116,
+ 6116, 6116, 6116, 6117, 6117, 6117, 6117, 6117, 6117, 6117,
+ 6117, 6117, 6117, 6117, 6117, 6117, 6117, 6117, 6117, 6117,
+
+ 6117, 6118, 6118, 6118, 6118, 6118, 6118, 6118, 6118, 6118,
+ 6118, 6118, 6118, 6118, 6118, 6118, 6118, 6118, 6118, 6119,
+ 6119, 6119, 6119, 6119, 6119, 6119, 6119, 6119, 6119, 6119,
+ 6119, 6119, 6119, 6119, 6119, 6119, 6119, 6120, 6120, 6120,
+ 6120, 6120, 6120, 6120, 6120, 6120, 6120, 6120, 6120, 6120,
+ 6120, 6120, 6120, 6120, 6120, 6121, 6121, 6121, 6121, 6121,
+ 6121, 6121, 6121, 6121, 6121, 6121, 6121, 6121, 6121, 6121,
+ 6121, 6121, 6121, 6122, 6122, 6122, 6122, 6122, 6122, 6122,
+ 6122, 6122, 6122, 6122, 6122, 6122, 6122, 6122, 6122, 6122,
+ 6122, 6123, 6123, 6123, 6123, 6123, 6123, 6123, 6123, 6123,
+
+ 6123, 6123, 6123, 6123, 6123, 6123, 6123, 6123, 6123, 6124,
+ 6124, 6124, 6124, 6124, 6124, 6124, 6124, 6124, 6124, 6124,
+ 6124, 6124, 6124, 6124, 6124, 6124, 6124, 6125, 6125, 6125,
+ 6125, 6125, 6125, 6125, 6125, 6125, 6125, 6125, 6125, 6125,
+ 6125, 6125, 6125, 6125, 6125, 6126, 6126, 6126, 6126, 6126,
+ 6126, 6126, 6126, 6126, 6126, 6126, 6126, 6126, 6126, 6126,
+ 6126, 6126, 6126, 6127, 6127, 6127, 6127, 6127, 6127, 6127,
+ 6127, 6127, 6127, 6127, 6127, 6127, 6127, 6127, 6127, 6127,
+ 6127, 6128, 6128, 6128, 6128, 6128, 6128, 6128, 6128, 6128,
+ 6128, 6128, 6128, 6128, 6128, 6128, 6128, 6128, 6128, 6129,
+
+ 6129, 6129, 6129, 6129, 6129, 6129, 6129, 6129, 6129, 6129,
+ 6129, 6129, 6129, 6129, 6129, 6129, 6129, 6130, 6130, 6130,
+ 6130, 6130, 6130, 6130, 6130, 6130, 6130, 6130, 6130, 6130,
+ 6130, 6130, 6130, 6130, 6130, 6131, 6131, 6131, 6131, 6131,
+ 6131, 6131, 6131, 6131, 6131, 6131, 6131, 6131, 6131, 6131,
+ 6131, 6131, 6131, 6132, 6132, 6132, 6132, 6132, 6132, 6132,
+ 6132, 6132, 6132, 6132, 6132, 6132, 6132, 6132, 6132, 6132,
+ 6132, 6133, 6133, 6133, 6133, 6133, 6133, 6133, 6133, 6133,
+ 6133, 6133, 6133, 6133, 6133, 6133, 6133, 6133, 6133, 6134,
+ 6134, 6134, 6134, 6134, 6134, 6134, 6134, 6134, 6134, 6134,
+
+ 6134, 6134, 6134, 6134, 6134, 6134, 6134, 6135, 6135, 6135,
+ 6135, 6135, 6135, 6135, 6135, 6135, 6135, 6135, 6135, 6135,
+ 6135, 6135, 6135, 6135, 6135, 6136, 6136, 6136, 6136, 6136,
+ 6136, 6136, 6136, 6136, 6136, 6136, 6136, 6136, 6136, 6136,
+ 6136, 6136, 6136, 6137, 6137, 6137, 6137, 6137, 6137, 6137,
+ 6137, 6137, 6137, 6137, 6137, 6137, 6137, 6137, 6137, 6137,
+ 6137, 6138, 6138, 6138, 6138, 6138, 6138, 6138, 6138, 6138,
+ 6138, 6138, 6138, 6138, 6138, 6138, 6138, 6138, 6138, 6139,
+ 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6139,
+ 6139, 6139, 6139, 6139, 6139, 6139, 6139, 6140, 6140, 6140,
+
+ 6140, 6140, 6140, 6140, 6140, 6140, 6140, 6140, 6140, 6140,
+ 6140, 6140, 6140, 6140, 6140, 6141, 6141, 6141, 6141, 6141,
+ 6141, 6141, 6141, 6141, 6141, 6141, 6141, 6141, 6141, 6141,
+ 6141, 6141, 6141, 6142, 6142, 6142, 6142, 6142, 6142, 6142,
+ 6142, 6142, 6142, 6142, 6142, 6142, 6142, 6142, 6142, 6142,
+ 6142, 6143, 6143, 6143, 6143, 6143, 6143, 6143, 6143, 6143,
+ 6143, 6143, 6143, 6143, 6143, 6143, 6143, 6143, 6143, 6144,
+ 6144, 6144, 6144, 6144, 6144, 6144, 6144, 6144, 6144, 6144,
+ 6144, 6144, 6144, 6144, 6144, 6144, 6144, 6145, 6145, 6145,
+ 6145, 6145, 6145, 6145, 6145, 6145, 6145, 6145, 6145, 6145,
+
+ 6145, 6145, 6145, 6145, 6145, 6146, 6146, 6146, 6146, 6146,
+ 6146, 6146, 6146, 6146, 6146, 6146, 6146, 6146, 6146, 6146,
+ 6146, 6146, 6146, 6147, 6147, 6147, 6147, 6147, 6147, 6147,
+ 6147, 6147, 6147, 6147, 6147, 6147, 6147, 6147, 6147, 6147,
+ 6147, 6148, 6148, 6148, 6148, 6148, 6148, 6148, 6148, 6148,
+ 6148, 6148, 6148, 6148, 6148, 6148, 6148, 6148, 6148, 6149,
+ 6149, 6149, 6149, 6149, 6149, 6149, 6149, 6149, 6149, 6149,
+ 6149, 6149, 6149, 6149, 6149, 6149, 6149, 6150, 6150, 6150,
+ 6150, 6150, 6150, 6150, 6150, 6150, 6150, 6150, 6150, 6150,
+ 6150, 6150, 6150, 6150, 6150, 6151, 6151, 6151, 6151, 6151,
+
+ 6151, 6151, 6151, 6151, 6151, 6151, 6151, 6151, 6151, 6151,
+ 6151, 6151, 6151, 6152, 6152, 6152, 6152, 6152, 6152, 6152,
+ 6152, 6152, 6152, 6152, 6152, 6152, 6152, 6152, 6152, 6152,
+ 6152, 6153, 6153, 6153, 6153, 6153, 6153, 6153, 6153, 6153,
+ 6153, 6153, 6153, 6153, 6153, 6153, 6153, 6153, 6153, 6154,
+ 6154, 6154, 6154, 6154, 6154, 6154, 6154, 6154, 6154, 6154,
+ 6154, 6154, 6154, 6154, 6154, 6154, 6154, 6155, 6155, 6155,
+ 6155, 6155, 6155, 6155, 6155, 6155, 6155, 6155, 6155, 6155,
+ 6155, 6155, 6155, 6155, 6155, 6156, 6156, 6156, 6156, 6156,
+ 6156, 6156, 6156, 6156, 6156, 6156, 6156, 6156, 6156, 6156,
+
+ 6156, 6156, 6156, 6157, 6157, 6157, 6157, 6157, 6157, 6157,
+ 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157, 6157,
+ 6157, 6158, 6158, 6158, 6158, 6158, 6158, 6158, 6158, 6158,
+ 6158, 6158, 6158, 6158, 6158, 6158, 6158, 6158, 6158, 6159,
+ 6159, 6159, 6159, 6159, 6159, 6159, 6159, 6159, 6159, 6159,
+ 6159, 6159, 6159, 6159, 6159, 6159, 6159, 6160, 6160, 6160,
+ 6160, 6160, 6160, 6160, 6160, 6160, 6160, 6160, 6160, 6160,
+ 6160, 6160, 6160, 6160, 6160, 6161, 6161, 6161, 6161, 6161,
+ 6161, 6161, 6161, 6161, 6161, 6161, 6161, 6161, 6161, 6161,
+ 6161, 6161, 6161, 6162, 6162, 6162, 6162, 6162, 6162, 6162,
+
+ 6162, 6162, 6162, 6162, 6162, 6162, 6162, 6162, 6162, 6162,
+ 6162, 6163, 6163, 6163, 6163, 6163, 6163, 6163, 6163, 6163,
+ 6163, 6163, 6163, 6163, 6163, 6163, 6163, 6163, 6163, 6164,
+ 6164, 6164, 6164, 6164, 6164, 6164, 6164, 6164, 6164, 6164,
+ 6164, 6164, 6164, 6164, 6164, 6164, 6164, 6165, 6165, 6165,
+ 6165, 6165, 6165, 6165, 6165, 6165, 6165, 6165, 6165, 6165,
+ 6165, 6165, 6165, 6165, 6165, 6166, 6166, 6166, 6166, 6166,
+ 6166, 6166, 6166, 6166, 6166, 6166, 6166, 6166, 6166, 6166,
+ 6166, 6166, 6166, 6167, 6167, 6167, 6167, 6167, 6167, 6167,
+ 6167, 6167, 6167, 6167, 6167, 6167, 6167, 6167, 6167, 6167,
+
+ 6167, 6168, 6168, 6168, 6168, 6168, 6168, 6168, 6168, 6168,
+ 6168, 6168, 6168, 6168, 6168, 6168, 6168, 6168, 6168, 6169,
+ 6169, 6169, 6169, 6169, 6169, 6169, 6169, 6169, 6169, 6169,
+ 6169, 6169, 6169, 6169, 6169, 6169, 6169, 6170, 6170, 6170,
+ 6170, 6170, 6170, 6170, 6170, 6170, 6170, 6170, 6170, 6170,
+ 6170, 6170, 6170, 6170, 6170, 6171, 6171, 6171, 6171, 6171,
+ 6171, 6171, 6171, 6171, 6171, 6171, 6171, 6171, 6171, 6171,
+ 6171, 6171, 6171, 6172, 6172, 6172, 6172, 6172, 6172, 6172,
+ 6172, 6172, 6172, 6172, 6172, 6172, 6172, 6172, 6172, 6172,
+ 6172, 6173, 6173, 6173, 6173, 6173, 6173, 6173, 6173, 6173,
+
+ 6173, 6173, 6173, 6173, 6173, 6173, 6173, 6173, 6173, 6174,
+ 6174, 6174, 6174, 6174, 6174, 6174, 6174, 6174, 6174, 6174,
+ 6174, 6174, 6174, 6174, 6174, 6174, 6174, 6175, 6175, 6175,
+ 6175, 6175, 6175, 6175, 6175, 6175, 6175, 6175, 6175, 6175,
+ 6175, 6175, 6175, 6175, 6175, 6176, 6176, 6176, 6176, 6176,
+ 6176, 6176, 6176, 6176, 6176, 6176, 6176, 6176, 6176, 6176,
+ 6176, 6176, 6176, 6177, 6177, 6177, 6177, 6177, 6177, 6177,
+ 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177, 6177,
+ 6177, 6178, 6178, 6178, 6178, 6178, 6178, 6178, 6178, 6178,
+ 6178, 6178, 6178, 6178, 6178, 6178, 6178, 6178, 6178, 6179,
+
+ 6179, 6179, 6179, 6179, 6179, 6179, 6179, 6179, 6179, 6179,
+ 6179, 6179, 6179, 6179, 6179, 6179, 6179, 6180, 6180, 6180,
+ 6180, 6180, 6180, 6180, 6180, 6180, 6180, 6180, 6180, 6180,
+ 6180, 6180, 6180, 6180, 6180, 6181, 6181, 6181, 6181, 6181,
+ 6181, 6181, 6181, 6181, 6181, 6181, 6181, 6181, 6181, 6181,
+ 6181, 6181, 6181, 6182, 6182, 6182, 6182, 6182, 6182, 6182,
+ 6182, 6182, 6182, 6182, 6182, 6182, 6182, 6182, 6182, 6182,
+ 6182, 6183, 6183, 6183, 6183, 6183, 6183, 6183, 6183, 6183,
+ 6183, 6183, 6183, 6183, 6183, 6183, 6183, 6183, 6183, 6184,
+ 6184, 6184, 6184, 6184, 6184, 6184, 6184, 6184, 6184, 6184,
+
+ 6184, 6184, 6184, 6184, 6184, 6184, 6184, 6185, 6185, 6185,
+ 6185, 6185, 6185, 6185, 6185, 6185, 6185, 6185, 6185, 6185,
+ 6185, 6185, 6185, 6185, 6185, 6186, 6186, 6186, 6186, 6186,
+ 6186, 6186, 6186, 6186, 6186, 6186, 6186, 6186, 6186, 6186,
+ 6186, 6186, 6186, 6187, 6187, 6187, 6187, 6187, 6187, 6187,
+ 6187, 6187, 6187, 6187, 6187, 6187, 6187, 6187, 6187, 6187,
+ 6187, 6188, 6188, 6188, 6188, 6188, 6188, 6188, 6188, 6188,
+ 6188, 6188, 6188, 6188, 6188, 6188, 6188, 6188, 6188, 6189,
+ 6189, 6189, 6189, 6189, 6189, 6189, 6189, 6189, 6189, 6189,
+ 6189, 6189, 6189, 6189, 6189, 6189, 6189, 6190, 6190, 6190,
+
+ 6190, 6190, 6190, 6190, 6190, 6190, 6190, 6190, 6190, 6190,
+ 6190, 6190, 6190, 6190, 6190, 6191, 6191, 6191, 6191, 6191,
+ 6191, 6191, 6191, 6191, 6191, 6191, 6191, 6191, 6191, 6191,
+ 6191, 6191, 6191, 6192, 6192, 6192, 6192, 6192, 6192, 6192,
+ 6192, 6192, 6192, 6192, 6192, 6192, 6192, 6192, 6192, 6192,
+ 6192, 6193, 6193, 6193, 6193, 6193, 6193, 6193, 6193, 6193,
+ 6193, 6193, 6193, 6193, 6193, 6193, 6193, 6193, 6193, 6194,
+ 6194, 6194, 6194, 6194, 6194, 6194, 6194, 6194, 6194, 6194,
+ 6194, 6194, 6194, 6194, 6194, 6194, 6194, 6195, 6195, 6195,
+ 6195, 6195, 6195, 6195, 6195, 6195, 6195, 6195, 6195, 6195,
+
+ 6195, 6195, 6195, 6195, 6195, 6196, 6196, 6196, 6196, 6196,
+ 6196, 6196, 6196, 6196, 6196, 6196, 6196, 6196, 6196, 6196,
+ 6196, 6196, 6196, 6197, 6197, 6197, 6197, 6197, 6197, 6197,
+ 6197, 6197, 6197, 6197, 6197, 6197, 6197, 6197, 6197, 6197,
+ 6197, 6198, 6198, 6198, 6198, 6198, 6198, 6198, 6198, 6198,
+ 6198, 6198, 6198, 6198, 6198, 6198, 6198, 6198, 6198, 6199,
+ 6199, 6199, 6199, 6199, 6199, 6199, 6199, 6199, 6199, 6199,
+ 6199, 6199, 6199, 6199, 6199, 6199, 6199, 6200, 6200, 6200,
+ 6200, 6200, 6200, 6200, 6200, 6200, 6200, 6200, 6200, 6200,
+ 6200, 6200, 6200, 6200, 6200, 6201, 6201, 6201, 6201, 6201,
+
+ 6201, 6201, 6201, 6201, 6201, 6201, 6201, 6201, 6201, 6201,
+ 6201, 6201, 6201, 6202, 6202, 6202, 6202, 6202, 6202, 6202,
+ 6202, 6202, 6202, 6202, 6202, 6202, 6202, 6202, 6202, 6202,
+ 6202, 6203, 6203, 6203, 6203, 6203, 6203, 6203, 6203, 6203,
+ 6203, 6203, 6203, 6203, 6203, 6203, 6203, 6203, 6203, 6204,
+ 6204, 6204, 6204, 6204, 6204, 6204, 6204, 6204, 6204, 6204,
+ 6204, 6204, 6204, 6204, 6204, 6204, 6204, 6205, 6205, 6205,
+ 6205, 6205, 6205, 6205, 6205, 6205, 6205, 6205, 6205, 6205,
+ 6205, 6205, 6205, 6205, 6205, 6206, 6206, 6206, 6206, 6206,
+ 6206, 6206, 6206, 6206, 6206, 6206, 6206, 6206, 6206, 6206,
+
+ 6206, 6206, 6206, 6207, 6207, 6207, 6207, 6207, 6207, 6207,
+ 6207, 6207, 6207, 6207, 6207, 6207, 6207, 6207, 6207, 6207,
+ 6207, 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6208,
+ 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6208, 6209,
+ 6209, 6209, 6209, 6209, 6209, 6209, 6209, 6209, 6209, 6209,
+ 6209, 6209, 6209, 6209, 6209, 6209, 6209, 6210, 6210, 6210,
+ 6210, 6210, 6210, 6210, 6210, 6210, 6210, 6210, 6210, 6210,
+ 6210, 6210, 6210, 6210, 6210, 6211, 6211, 6211, 6211, 6211,
+ 6211, 6211, 6211, 6211, 6211, 6211, 6211, 6211, 6211, 6211,
+ 6211, 6211, 6211, 6212, 6212, 6212, 6212, 6212, 6212, 6212,
+
+ 6212, 6212, 6212, 6212, 6212, 6212, 6212, 6212, 6212, 6212,
+ 6212, 6213, 6213, 6213, 6213, 6213, 6213, 6213, 6213, 6213,
+ 6213, 6213, 6213, 6213, 6213, 6213, 6213, 6213, 6213, 6214,
+ 6214, 6214, 6214, 6214, 6214, 6214, 6214, 6214, 6214, 6214,
+ 6214, 6214, 6214, 6214, 6214, 6214, 6214, 6215, 6215, 6215,
+ 6215, 6215, 6215, 6215, 6215, 6215, 6215, 6215, 6215, 6215,
+ 6215, 6215, 6215, 6215, 6215, 6216, 6216, 6216, 6216, 6216,
+ 6216, 6216, 6216, 6216, 6216, 6216, 6216, 6216, 6216, 6216,
+ 6216, 6216, 6216, 6217, 6217, 6217, 6217, 6217, 6217, 6217,
+ 6217, 6217, 6217, 6217, 6217, 6217, 6217, 6217, 6217, 6217,
+
+ 6217, 6218, 6218, 6218, 6218, 6218, 6218, 6218, 6218, 6218,
+ 6218, 6218, 6218, 6218, 6218, 6218, 6218, 6218, 6218, 6219,
+ 6219, 6219, 6219, 6219, 6219, 6219, 6219, 6219, 6219, 6219,
+ 6219, 6219, 6219, 6219, 6219, 6219, 6219, 6220, 6220, 6220,
+ 6220, 6220, 6220, 6220, 6220, 6220, 6220, 6220, 6220, 6220,
+ 6220, 6220, 6220, 6220, 6220, 6221, 6221, 6221, 6221, 6221,
+ 6221, 6221, 6221, 6221, 6221, 6221, 6221, 6221, 6221, 6221,
+ 6221, 6221, 6221, 6222, 6222, 6222, 6222, 6222, 6222, 6222,
+ 6222, 6222, 6222, 6222, 6222, 6222, 6222, 6222, 6222, 6222,
+ 6222, 6223, 6223, 6223, 6223, 6223, 6223, 6223, 6223, 6223,
+
+ 6223, 6223, 6223, 6223, 6223, 6223, 6223, 6223, 6223, 6224,
+ 6224, 6224, 6224, 6224, 6224, 6224, 6224, 6224, 6224, 6224,
+ 6224, 6224, 6224, 6224, 6224, 6224, 6224, 6225, 6225, 6225,
+ 6225, 6225, 6225, 6225, 6225, 6225, 6225, 6225, 6225, 6225,
+ 6225, 6225, 6225, 6225, 6225, 6226, 6226, 6226, 6226, 6226,
+ 6226, 6226, 6226, 6226, 6226, 6226, 6226, 6226, 6226, 6226,
+ 6226, 6226, 6226, 6227, 6227, 6227, 6227, 6227, 6227, 6227,
+ 6227, 6227, 6227, 6227, 6227, 6227, 6227, 6227, 6227, 6227,
+ 6227, 6228, 6228, 6228, 6228, 6228, 6228, 6228, 6228, 6228,
+ 6228, 6228, 6228, 6228, 6228, 6228, 6228, 6228, 6228, 6229,
+
+ 6229, 6229, 6229, 6229, 6229, 6229, 6229, 6229, 6229, 6229,
+ 6229, 6229, 6229, 6229, 6229, 6229, 6229, 6230, 6230, 6230,
+ 6230, 6230, 6230, 6230, 6230, 6230, 6230, 6230, 6230, 6230,
+ 6230, 6230, 6230, 6230, 6230, 6231, 6231, 6231, 6231, 6231,
+ 6231, 6231, 6231, 6231, 6231, 6231, 6231, 6231, 6231, 6231,
+ 6231, 6231, 6231, 6232, 6232, 6232, 6232, 6232, 6232, 6232,
+ 6232, 6232, 6232, 6232, 6232, 6232, 6232, 6232, 6232, 6232,
+ 6232, 6233, 6233, 6233, 6233, 6233, 6233, 6233, 6233, 6233,
+ 6233, 6233, 6233, 6233, 6233, 6233, 6233, 6233, 6233, 6234,
+ 6234, 6234, 6234, 6234, 6234, 6234, 6234, 6234, 6234, 6234,
+
+ 6234, 6234, 6234, 6234, 6234, 6234, 6234, 6235, 6235, 6235,
+ 6235, 6235, 6235, 6235, 6235, 6235, 6235, 6235, 6235, 6235,
+ 6235, 6235, 6235, 6235, 6235, 6236, 6236, 6236, 6236, 6236,
+ 6236, 6236, 6236, 6236, 6236, 6236, 6236, 6236, 6236, 6236,
+ 6236, 6236, 6236, 6237, 6237, 6237, 6237, 6237, 6237, 6237,
+ 6237, 6237, 6237, 6237, 6237, 6237, 6237, 6237, 6237, 6237,
+ 6237, 6238, 6238, 6238, 6238, 6238, 6238, 6238, 6238, 6238,
+ 6238, 6238, 6238, 6238, 6238, 6238, 6238, 6238, 6238, 6239,
+ 6239, 6239, 6239, 6239, 6239, 6239, 6239, 6239, 6239, 6239,
+ 6239, 6239, 6239, 6239, 6239, 6239, 6239, 6240, 6240, 6240,
+
+ 6240, 6240, 6240, 6240, 6240, 6240, 6240, 6240, 6240, 6240,
+ 6240, 6240, 6240, 6240, 6240, 6241, 6241, 6241, 6241, 6241,
+ 6241, 6241, 6241, 6241, 6241, 6241, 6241, 6241, 6241, 6241,
+ 6241, 6241, 6241, 6242, 6242, 6242, 6242, 6242, 6242, 6242,
+ 6242, 6242, 6242, 6242, 6242, 6242, 6242, 6242, 6242, 6242,
+ 6242, 6243, 6243, 6243, 6243, 6243, 6243, 6243, 6243, 6243,
+ 6243, 6243, 6243, 6243, 6243, 6243, 6243, 6243, 6243, 6244,
+ 6244, 6244, 6244, 6244, 6244, 6244, 6244, 6244, 6244, 6244,
+ 6244, 6244, 6244, 6244, 6244, 6244, 6244, 6245, 6245, 6245,
+ 6245, 6245, 6245, 6245, 6245, 6245, 6245, 6245, 6245, 6245,
+
+ 6245, 6245, 6245, 6245, 6245, 6246, 6246, 6246, 6246, 6246,
+ 6246, 6246, 6246, 6246, 6246, 6246, 6246, 6246, 6246, 6246,
+ 6246, 6246, 6246, 6247, 6247, 6247, 6247, 6247, 6247, 6247,
+ 6247, 6247, 6247, 6247, 6247, 6247, 6247, 6247, 6247, 6247,
+ 6247, 6248, 6248, 6248, 6248, 6248, 6248, 6248, 6248, 6248,
+ 6248, 6248, 6248, 6248, 6248, 6248, 6248, 6248, 6248, 6249,
+ 6249, 6249, 6249, 6249, 6249, 6249, 6249, 6249, 6249, 6249,
+ 6249, 6249, 6249, 6249, 6249, 6249, 6249, 6250, 6250, 6250,
+ 6250, 6250, 6250, 6250, 6250, 6250, 6250, 6250, 6250, 6250,
+ 6250, 6250, 6250, 6250, 6250, 6251, 6251, 6251, 6251, 6251,
+
+ 6251, 6251, 6251, 6251, 6251, 6251, 6251, 6251, 6251, 6251,
+ 6251, 6251, 6251, 6252, 6252, 6252, 6252, 6252, 6252, 6252,
+ 6252, 6252, 6252, 6252, 6252, 6252, 6252, 6252, 6252, 6252,
+ 6252, 6253, 6253, 6253, 6253, 6253, 6253, 6253, 6253, 6253,
+ 6253, 6253, 6253, 6253, 6253, 6253, 6253, 6253, 6253, 6254,
+ 6254, 6254, 6254, 6254, 6254, 6254, 6254, 6254, 6254, 6254,
+ 6254, 6254, 6254, 6254, 6254, 6254, 6254, 6255, 6255, 6255,
+ 6255, 6255, 6255, 6255, 6255, 6255, 6255, 6255, 6255, 6255,
+ 6255, 6255, 6255, 6255, 6255, 6256, 6256, 6256, 6256, 6256,
+ 6256, 6256, 6256, 6256, 6256, 6256, 6256, 6256, 6256, 6256,
+
+ 6256, 6256, 6256, 6257, 6257, 6257, 6257, 6257, 6257, 6257,
+ 6257, 6257, 6257, 6257, 6257, 6257, 6257, 6257, 6257, 6257,
+ 6257, 6258, 6258, 6258, 6258, 6258, 6258, 6258, 6258, 6258,
+ 6258, 6258, 6258, 6258, 6258, 6258, 6258, 6258, 6258, 6259,
+ 6259, 6259, 6259, 6259, 6259, 6259, 6259, 6259, 6259, 6259,
+ 6259, 6259, 6259, 6259, 6259, 6259, 6259, 6260, 6260, 6260,
+ 6260, 6260, 6260, 6260, 6260, 6260, 6260, 6260, 6260, 6260,
+ 6260, 6260, 6260, 6260, 6260, 6261, 6261, 6261, 6261, 6261,
+ 6261, 6261, 6261, 6261, 6261, 6261, 6261, 6261, 6261, 6261,
+ 6261, 6261, 6261, 6262, 6262, 6262, 6262, 6262, 6262, 6262,
+
+ 6262, 6262, 6262, 6262, 6262, 6262, 6262, 6262, 6262, 6262,
+ 6262, 6263, 6263, 6263, 6263, 6263, 6263, 6263, 6263, 6263,
+ 6263, 6263, 6263, 6263, 6263, 6263, 6263, 6263, 6263, 6264,
+ 6264, 6264, 6264, 6264, 6264, 6264, 6264, 6264, 6264, 6264,
+ 6264, 6264, 6264, 6264, 6264, 6264, 6264, 6265, 6265, 6265,
+ 6265, 6265, 6265, 6265, 6265, 6265, 6265, 6265, 6265, 6265,
+ 6265, 6265, 6265, 6265, 6265, 6266, 6266, 6266, 6266, 6266,
+ 6266, 6266, 6266, 6266, 6266, 6266, 6266, 6266, 6266, 6266,
+ 6266, 6266, 6266, 6267, 6267, 6267, 6267, 6267, 6267, 6267,
+ 6267, 6267, 6267, 6267, 6267, 6267, 6267, 6267, 6267, 6267,
+
+ 6267, 6268, 6268, 6268, 6268, 6268, 6268, 6268, 6268, 6268,
+ 6268, 6268, 6268, 6268, 6268, 6268, 6268, 6268, 6268, 6269,
+ 6269, 6269, 6269, 6269, 6269, 6269, 6269, 6269, 6269, 6269,
+ 6269, 6269, 6269, 6269, 6269, 6269, 6269, 6270, 6270, 6270,
+ 6270, 6270, 6270, 6270, 6270, 6270, 6270, 6270, 6270, 6270,
+ 6270, 6270, 6270, 6270, 6270, 6271, 6271, 6271, 6271, 6271,
+ 6271, 6271, 6271, 6271, 6271, 6271, 6271, 6271, 6271, 6271,
+ 6271, 6271, 6271, 6272, 6272, 6272, 6272, 6272, 6272, 6272,
+ 6272, 6272, 6272, 6272, 6272, 6272, 6272, 6272, 6272, 6272,
+ 6272, 6273, 6273, 6273, 6273, 6273, 6273, 6273, 6273, 6273,
+
+ 6273, 6273, 6273, 6273, 6273, 6273, 6273, 6273, 6273, 6274,
+ 6274, 6274, 6274, 6274, 6274, 6274, 6274, 6274, 6274, 6274,
+ 6274, 6274, 6274, 6274, 6274, 6274, 6274, 6275, 6275, 6275,
+ 6275, 6275, 6275, 6275, 6275, 6275, 6275, 6275, 6275, 6275,
+ 6275, 6275, 6275, 6275, 6275, 6276, 6276, 6276, 6276, 6276,
+ 6276, 6276, 6276, 6276, 6276, 6276, 6276, 6276, 6276, 6276,
+ 6276, 6276, 6276, 6277, 6277, 6277, 6277, 6277, 6277, 6277,
+ 6277, 6277, 6277, 6277, 6277, 6277, 6277, 6277, 6277, 6277,
+ 6277, 6278, 6278, 6278, 6278, 6278, 6278, 6278, 6278, 6278,
+ 6278, 6278, 6278, 6278, 6278, 6278, 6278, 6278, 6278, 6279,
+
+ 6279, 6279, 6279, 6279, 6279, 6279, 6279, 6279, 6279, 6279,
+ 6279, 6279, 6279, 6279, 6279, 6279, 6279, 6280, 6280, 6280,
+ 6280, 6280, 6280, 6280, 6280, 6280, 6280, 6280, 6280, 6280,
+ 6280, 6280, 6280, 6280, 6280, 6281, 6281, 6281, 6281, 6281,
+ 6281, 6281, 6281, 6281, 6281, 6281, 6281, 6281, 6281, 6281,
+ 6281, 6281, 6281, 6282, 6282, 6282, 6282, 6282, 6282, 6282,
+ 6282, 6282, 6282, 6282, 6282, 6282, 6282, 6282, 6282, 6282,
+ 6282, 6283, 6283, 6283, 6283, 6283, 6283, 6283, 6283, 6283,
+ 6283, 6283, 6283, 6283, 6283, 6283, 6283, 6283, 6283, 6284,
+ 6284, 6284, 6284, 6284, 6284, 6284, 6284, 6284, 6284, 6284,
+
+ 6284, 6284, 6284, 6284, 6284, 6284, 6284, 6285, 6285, 6285,
+ 6285, 6285, 6285, 6285, 6285, 6285, 6285, 6285, 6285, 6285,
+ 6285, 6285, 6285, 6285, 6285, 6286, 6286, 6286, 6286, 6286,
+ 6286, 6286, 6286, 6286, 6286, 6286, 6286, 6286, 6286, 6286,
+ 6286, 6286, 6286, 6287, 6287, 6287, 6287, 6287, 6287, 6287,
+ 6287, 6287, 6287, 6287, 6287, 6287, 6287, 6287, 6287, 6287,
+ 6287, 6288, 6288, 6288, 6288, 6288, 6288, 6288, 6288, 6288,
+ 6288, 6288, 6288, 6288, 6288, 6288, 6288, 6288, 6288, 6289,
+ 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6289,
+ 6289, 6289, 6289, 6289, 6289, 6289, 6289, 6290, 6290, 6290,
+
+ 6290, 6290, 6290, 6290, 6290, 6290, 6290, 6290, 6290, 6290,
+ 6290, 6290, 6290, 6290, 6290, 6291, 6291, 6291, 6291, 6291,
+ 6291, 6291, 6291, 6291, 6291, 6291, 6291, 6291, 6291, 6291,
+ 6291, 6291, 6291, 6292, 6292, 6292, 6292, 6292, 6292, 6292,
+ 6292, 6292, 6292, 6292, 6292, 6292, 6292, 6292, 6292, 6292,
+ 6292, 6293, 6293, 6293, 6293, 6293, 6293, 6293, 6293, 6293,
+ 6293, 6293, 6293, 6293, 6293, 6293, 6293, 6293, 6293, 6294,
+ 6294, 6294, 6294, 6294, 6294, 6294, 6294, 6294, 6294, 6294,
+ 6294, 6294, 6294, 6294, 6294, 6294, 6294, 6295, 6295, 6295,
+ 6295, 6295, 6295, 6295, 6295, 6295, 6295, 6295, 6295, 6295,
+
+ 6295, 6295, 6295, 6295, 6295, 6296, 6296, 6296, 6296, 6296,
+ 6296, 6296, 6296, 6296, 6296, 6296, 6296, 6296, 6296, 6296,
+ 6296, 6296, 6296, 6297, 6297, 6297, 6297, 6297, 6297, 6297,
+ 6297, 6297, 6297, 6297, 6297, 6297, 6297, 6297, 6297, 6297,
+ 6297, 6298, 6298, 6298, 6298, 6298, 6298, 6298, 6298, 6298,
+ 6298, 6298, 6298, 6298, 6298, 6298, 6298, 6298, 6298, 6299,
+ 6299, 6299, 6299, 6299, 6299, 6299, 6299, 6299, 6299, 6299,
+ 6299, 6299, 6299, 6299, 6299, 6299, 6299, 6300, 6300, 6300,
+ 6300, 6300, 6300, 6300, 6300, 6300, 6300, 6300, 6300, 6300,
+ 6300, 6300, 6300, 6300, 6300, 6301, 6301, 6301, 6301, 6301,
+
+ 6301, 6301, 6301, 6301, 6301, 6301, 6301, 6301, 6301, 6301,
+ 6301, 6301, 6301, 6302, 6302, 6302, 6302, 6302, 6302, 6302,
+ 6302, 6302, 6302, 6302, 6302, 6302, 6302, 6302, 6302, 6302,
+ 6302, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303,
+ 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6303, 6304,
+ 6304, 6304, 6304, 6304, 6304, 6304, 6304, 6304, 6304, 6304,
+ 6304, 6304, 6304, 6304, 6304, 6304, 6304, 6305, 6305, 6305,
+ 6305, 6305, 6305, 6305, 6305, 6305, 6305, 6305, 6305, 6305,
+ 6305, 6305, 6305, 6305, 6305, 6306, 6306, 6306, 6306, 6306,
+ 6306, 6306, 6306, 6306, 6306, 6306, 6306, 6306, 6306, 6306,
+
+ 6306, 6306, 6306, 6307, 6307, 6307, 6307, 6307, 6307, 6307,
+ 6307, 6307, 6307, 6307, 6307, 6307, 6307, 6307, 6307, 6307,
+ 6307, 6308, 6308, 6308, 6308, 6308, 6308, 6308, 6308, 6308,
+ 6308, 6308, 6308, 6308, 6308, 6308, 6308, 6308, 6308, 6309,
+ 6309, 6309, 6309, 6309, 6309, 6309, 6309, 6309, 6309, 6309,
+ 6309, 6309, 6309, 6309, 6309, 6309, 6309, 6310, 6310, 6310,
+ 6310, 6310, 6310, 6310, 6310, 6310, 6310, 6310, 6310, 6310,
+ 6310, 6310, 6310, 6310, 6310, 6311, 6311, 6311, 6311, 6311,
+ 6311, 6311, 6311, 6311, 6311, 6311, 6311, 6311, 6311, 6311,
+ 6311, 6311, 6311, 6312, 6312, 6312, 6312, 6312, 6312, 6312,
+
+ 6312, 6312, 6312, 6312, 6312, 6312, 6312, 6312, 6312, 6312,
+ 6312, 6313, 6313, 6313, 6313, 6313, 6313, 6313, 6313, 6313,
+ 6313, 6313, 6313, 6313, 6313, 6313, 6313, 6313, 6313, 6314,
+ 6314, 6314, 6314, 6314, 6314, 6314, 6314, 6314, 6314, 6314,
+ 6314, 6314, 6314, 6314, 6314, 6314, 6314, 6315, 6315, 6315,
+ 6315, 6315, 6315, 6315, 6315, 6315, 6315, 6315, 6315, 6315,
+ 6315, 6315, 6315, 6315, 6315, 6316, 6316, 6316, 6316, 6316,
+ 6316, 6316, 6316, 6316, 6316, 6316, 6316, 6316, 6316, 6316,
+ 6316, 6316, 6316, 6317, 6317, 6317, 6317, 6317, 6317, 6317,
+ 6317, 6317, 6317, 6317, 6317, 6317, 6317, 6317, 6317, 6317,
+
+ 6317, 6318, 6318, 6318, 6318, 6318, 6318, 6318, 6318, 6318,
+ 6318, 6318, 6318, 6318, 6318, 6318, 6318, 6318, 6318, 6319,
+ 6319, 6319, 6319, 6319, 6319, 6319, 6319, 6319, 6319, 6319,
+ 6319, 6319, 6319, 6319, 6319, 6319, 6319, 6320, 6320, 6320,
+ 6320, 6320, 6320, 6320, 6320, 6320, 6320, 6320, 6320, 6320,
+ 6320, 6320, 6320, 6320, 6320, 6321, 6321, 6321, 6321, 6321,
+ 6321, 6321, 6321, 6321, 6321, 6321, 6321, 6321, 6321, 6321,
+ 6321, 6321, 6321, 6322, 6322, 6322, 6322, 6322, 6322, 6322,
+ 6322, 6322, 6322, 6322, 6322, 6322, 6322, 6322, 6322, 6322,
+ 6322, 6323, 6323, 6323, 6323, 6323, 6323, 6323, 6323, 6323,
+
+ 6323, 6323, 6323, 6323, 6323, 6323, 6323, 6323, 6323, 6324,
+ 6324, 6324, 6324, 6324, 6324, 6324, 6324, 6324, 6324, 6324,
+ 6324, 6324, 6324, 6324, 6324, 6324, 6324, 6325, 6325, 6325,
+ 6325, 6325, 6325, 6325, 6325, 6325, 6325, 6325, 6325, 6325,
+ 6325, 6325, 6325, 6325, 6325, 6326, 6326, 6326, 6326, 6326,
+ 6326, 6326, 6326, 6326, 6326, 6326, 6326, 6326, 6326, 6326,
+ 6326, 6326, 6326, 6327, 6327, 6327, 6327, 6327, 6327, 6327,
+ 6327, 6327, 6327, 6327, 6327, 6327, 6327, 6327, 6327, 6327,
+ 6327, 6328, 6328, 6328, 6328, 6328, 6328, 6328, 6328, 6328,
+ 6328, 6328, 6328, 6328, 6328, 6328, 6328, 6328, 6328, 6329,
+
+ 6329, 6329, 6329, 6329, 6329, 6329, 6329, 6329, 6329, 6329,
+ 6329, 6329, 6329, 6329, 6329, 6329, 6329, 6330, 6330, 6330,
+ 6330, 6330, 6330, 6330, 6330, 6330, 6330, 6330, 6330, 6330,
+ 6330, 6330, 6330, 6330, 6330, 6331, 6331, 6331, 6331, 6331,
+ 6331, 6331, 6331, 6331, 6331, 6331, 6331, 6331, 6331, 6331,
+ 6331, 6331, 6331, 6332, 6332, 6332, 6332, 6332, 6332, 6332,
+ 6332, 6332, 6332, 6332, 6332, 6332, 6332, 6332, 6332, 6332,
+ 6332, 6333, 6333, 6333, 6333, 6333, 6333, 6333, 6333, 6333,
+ 6333, 6333, 6333, 6333, 6333, 6333, 6333, 6333, 6333, 6334,
+ 6334, 6334, 6334, 6334, 6334, 6334, 6334, 6334, 6334, 6334,
+
+ 6334, 6334, 6334, 6334, 6334, 6334, 6334, 6335, 6335, 6335,
+ 6335, 6335, 6335, 6335, 6335, 6335, 6335, 6335, 6335, 6335,
+ 6335, 6335, 6335, 6335, 6335, 6336, 6336, 6336, 6336, 6336,
+ 6336, 6336, 6336, 6336, 6336, 6336, 6336, 6336, 6336, 6336,
+ 6336, 6336, 6336, 6337, 6337, 6337, 6337, 6337, 6337, 6337,
+ 6337, 6337, 6337, 6337, 6337, 6337, 6337, 6337, 6337, 6337,
+ 6337, 6338, 6338, 6338, 6338, 6338, 6338, 6338, 6338, 6338,
+ 6338, 6338, 6338, 6338, 6338, 6338, 6338, 6338, 6338, 6339,
+ 6339, 6339, 6339, 6339, 6339, 6339, 6339, 6339, 6339, 6339,
+ 6339, 6339, 6339, 6339, 6339, 6339, 6339, 6340, 6340, 6340,
+
+ 6340, 6340, 6340, 6340, 6340, 6340, 6340, 6340, 6340, 6340,
+ 6340, 6340, 6340, 6340, 6340, 6341, 6341, 6341, 6341, 6341,
+ 6341, 6341, 6341, 6341, 6341, 6341, 6341, 6341, 6341, 6341,
+ 6341, 6341, 6341, 6342, 6342, 6342, 6342, 6342, 6342, 6342,
+ 6342, 6342, 6342, 6342, 6342, 6342, 6342, 6342, 6342, 6342,
+ 6342, 6343, 6343, 6343, 6343, 6343, 6343, 6343, 6343, 6343,
+ 6343, 6343, 6343, 6343, 6343, 6343, 6343, 6343, 6343, 6344,
+ 6344, 6344, 6344, 6344, 6344, 6344, 6344, 6344, 6344, 6344,
+ 6344, 6344, 6344, 6344, 6344, 6344, 6344, 6345, 6345, 6345,
+ 6345, 6345, 6345, 6345, 6345, 6345, 6345, 6345, 6345, 6345,
+
+ 6345, 6345, 6345, 6345, 6345, 6346, 6346, 6346, 6346, 6346,
+ 6346, 6346, 6346, 6346, 6346, 6346, 6346, 6346, 6346, 6346,
+ 6346, 6346, 6346, 6347, 6347, 6347, 6347, 6347, 6347, 6347,
+ 6347, 6347, 6347, 6347, 6347, 6347, 6347, 6347, 6347, 6347,
+ 6347, 6348, 6348, 6348, 6348, 6348, 6348, 6348, 6348, 6348,
+ 6348, 6348, 6348, 6348, 6348, 6348, 6348, 6348, 6348, 6349,
+ 6349, 6349, 6349, 6349, 6349, 6349, 6349, 6349, 6349, 6349,
+ 6349, 6349, 6349, 6349, 6349, 6349, 6349, 6350, 6350, 6350,
+ 6350, 6350, 6350, 6350, 6350, 6350, 6350, 6350, 6350, 6350,
+ 6350, 6350, 6350, 6350, 6350, 6351, 6351, 6351, 6351, 6351,
+
+ 6351, 6351, 6351, 6351, 6351, 6351, 6351, 6351, 6351, 6351,
+ 6351, 6351, 6351, 6352, 6352, 6352, 6352, 6352, 6352, 6352,
+ 6352, 6352, 6352, 6352, 6352, 6352, 6352, 6352, 6352, 6352,
+ 6352, 6353, 6353, 6353, 6353, 6353, 6353, 6353, 6353, 6353,
+ 6353, 6353, 6353, 6353, 6353, 6353, 6353, 6353, 6353, 6354,
+ 6354, 6354, 6354, 6354, 6354, 6354, 6354, 6354, 6354, 6354,
+ 6354, 6354, 6354, 6354, 6354, 6354, 6354, 6355, 6355, 6355,
+ 6355, 6355, 6355, 6355, 6355, 6355, 6355, 6355, 6355, 6355,
+ 6355, 6355, 6355, 6355, 6355, 6356, 6356, 6356, 6356, 6356,
+ 6356, 6356, 6356, 6356, 6356, 6356, 6356, 6356, 6356, 6356,
+
+ 6356, 6356, 6356, 6357, 6357, 6357, 6357, 6357, 6357, 6357,
+ 6357, 6357, 6357, 6357, 6357, 6357, 6357, 6357, 6357, 6357,
+ 6357, 6358, 6358, 6358, 6358, 6358, 6358, 6358, 6358, 6358,
+ 6358, 6358, 6358, 6358, 6358, 6358, 6358, 6358, 6358, 6359,
+ 6359, 6359, 6359, 6359, 6359, 6359, 6359, 6359, 6359, 6359,
+ 6359, 6359, 6359, 6359, 6359, 6359, 6359, 6360, 6360, 6360,
+ 6360, 6360, 6360, 6360, 6360, 6360, 6360, 6360, 6360, 6360,
+ 6360, 6360, 6360, 6360, 6360, 6361, 6361, 6361, 6361, 6361,
+ 6361, 6361, 6361, 6361, 6361, 6361, 6361, 6361, 6361, 6361,
+ 6361, 6361, 6361, 6362, 6362, 6362, 6362, 6362, 6362, 6362,
+
+ 6362, 6362, 6362, 6362, 6362, 6362, 6362, 6362, 6362, 6362,
+ 6362, 6363, 6363, 6363, 6363, 6363, 6363, 6363, 6363, 6363,
+ 6363, 6363, 6363, 6363, 6363, 6363, 6363, 6363, 6363, 6364,
+ 6364, 6364, 6364, 6364, 6364, 6364, 6364, 6364, 6364, 6364,
+ 6364, 6364, 6364, 6364, 6364, 6364, 6364, 6365, 6365, 6365,
+ 6365, 6365, 6365, 6365, 6365, 6365, 6365, 6365, 6365, 6365,
+ 6365, 6365, 6365, 6365, 6365, 6366, 6366, 6366, 6366, 6366,
+ 6366, 6366, 6366, 6366, 6366, 6366, 6366, 6366, 6366, 6366,
+ 6366, 6366, 6366, 6367, 6367, 6367, 6367, 6367, 6367, 6367,
+ 6367, 6367, 6367, 6367, 6367, 6367, 6367, 6367, 6367, 6367,
+
+ 6367, 6368, 6368, 6368, 6368, 6368, 6368, 6368, 6368, 6368,
+ 6368, 6368, 6368, 6368, 6368, 6368, 6368, 6368, 6368, 6369,
+ 6369, 6369, 6369, 6369, 6369, 6369, 6369, 6369, 6369, 6369,
+ 6369, 6369, 6369, 6369, 6369, 6369, 6369, 6370, 6370, 6370,
+ 6370, 6370, 6370, 6370, 6370, 6370, 6370, 6370, 6370, 6370,
+ 6370, 6370, 6370, 6370, 6370, 6371, 6371, 6371, 6371, 6371,
+ 6371, 6371, 6371, 6371, 6371, 6371, 6371, 6371, 6371, 6371,
+ 6371, 6371, 6371, 6372, 6372, 6372, 6372, 6372, 6372, 6372,
+ 6372, 6372, 6372, 6372, 6372, 6372, 6372, 6372, 6372, 6372,
+ 6372, 6373, 6373, 6373, 6373, 6373, 6373, 6373, 6373, 6373,
+
+ 6373, 6373, 6373, 6373, 6373, 6373, 6373, 6373, 6373, 6374,
+ 6374, 6374, 6374, 6374, 6374, 6374, 6374, 6374, 6374, 6374,
+ 6374, 6374, 6374, 6374, 6374, 6374, 6374, 6375, 6375, 6375,
+ 6375, 6375, 6375, 6375, 6375, 6375, 6375, 6375, 6375, 6375,
+ 6375, 6375, 6375, 6375, 6375, 6376, 6376, 6376, 6376, 6376,
+ 6376, 6376, 6376, 6376, 6376, 6376, 6376, 6376, 6376, 6376,
+ 6376, 6376, 6376, 6377, 6377, 6377, 6377, 6377, 6377, 6377,
+ 6377, 6377, 6377, 6377, 6377, 6377, 6377, 6377, 6377, 6377,
+ 6377, 6378, 6378, 6378, 6378, 6378, 6378, 6378, 6378, 6378,
+ 6378, 6378, 6378, 6378, 6378, 6378, 6378, 6378, 6378, 6379,
+
+ 6379, 6379, 6379, 6379, 6379, 6379, 6379, 6379, 6379, 6379,
+ 6379, 6379, 6379, 6379, 6379, 6379, 6379, 6380, 6380, 6380,
+ 6380, 6380, 6380, 6380, 6380, 6380, 6380, 6380, 6380, 6380,
+ 6380, 6380, 6380, 6380, 6380, 6381, 6381, 6381, 6381, 6381,
+ 6381, 6381, 6381, 6381, 6381, 6381, 6381, 6381, 6381, 6381,
+ 6381, 6381, 6381, 6382, 6382, 6382, 6382, 6382, 6382, 6382,
+ 6382, 6382, 6382, 6382, 6382, 6382, 6382, 6382, 6382, 6382,
+ 6382, 6383, 6383, 6383, 6383, 6383, 6383, 6383, 6383, 6383,
+ 6383, 6383, 6383, 6383, 6383, 6383, 6383, 6383, 6383, 6384,
+ 6384, 6384, 6384, 6384, 6384, 6384, 6384, 6384, 6384, 6384,
+
+ 6384, 6384, 6384, 6384, 6384, 6384, 6384, 6385, 6385, 6385,
+ 6385, 6385, 6385, 6385, 6385, 6385, 6385, 6385, 6385, 6385,
+ 6385, 6385, 6385, 6385, 6385, 6386, 6386, 6386, 6386, 6386,
+ 6386, 6386, 6386, 6386, 6386, 6386, 6386, 6386, 6386, 6386,
+ 6386, 6386, 6386, 6387, 6387, 6387, 6387, 6387, 6387, 6387,
+ 6387, 6387, 6387, 6387, 6387, 6387, 6387, 6387, 6387, 6387,
+ 6387, 6388, 6388, 6388, 6388, 6388, 6388, 6388, 6388, 6388,
+ 6388, 6388, 6388, 6388, 6388, 6388, 6388, 6388, 6388, 6389,
+ 6389, 6389, 6389, 6389, 6389, 6389, 6389, 6389, 6389, 6389,
+ 6389, 6389, 6389, 6389, 6389, 6389, 6389, 6390, 6390, 6390,
+
+ 6390, 6390, 6390, 6390, 6390, 6390, 6390, 6390, 6390, 6390,
+ 6390, 6390, 6390, 6390, 6390, 6391, 6391, 6391, 6391, 6391,
+ 6391, 6391, 6391, 6391, 6391, 6391, 6391, 6391, 6391, 6391,
+ 6391, 6391, 6391, 6392, 6392, 6392, 6392, 6392, 6392, 6392,
+ 6392, 6392, 6392, 6392, 6392, 6392, 6392, 6392, 6392, 6392,
+ 6392, 6393, 6393, 6393, 6393, 6393, 6393, 6393, 6393, 6393,
+ 6393, 6393, 6393, 6393, 6393, 6393, 6393, 6393, 6393, 6394,
+ 6394, 6394, 6394, 6394, 6394, 6394, 6394, 6394, 6394, 6394,
+ 6394, 6394, 6394, 6394, 6394, 6394, 6394, 6395, 6395, 6395,
+ 6395, 6395, 6395, 6395, 6395, 6395, 6395, 6395, 6395, 6395,
+
+ 6395, 6395, 6395, 6395, 6395, 6396, 6396, 6396, 6396, 6396,
+ 6396, 6396, 6396, 6396, 6396, 6396, 6396, 6396, 6396, 6396,
+ 6396, 6396, 6396, 6397, 6397, 6397, 6397, 6397, 6397, 6397,
+ 6397, 6397, 6397, 6397, 6397, 6397, 6397, 6397, 6397, 6397,
+ 6397, 6398, 6398, 6398, 6398, 6398, 6398, 6398, 6398, 6398,
+ 6398, 6398, 6398, 6398, 6398, 6398, 6398, 6398, 6398, 6399,
+ 6399, 6399, 6399, 6399, 6399, 6399, 6399, 6399, 6399, 6399,
+ 6399, 6399, 6399, 6399, 6399, 6399, 6399, 6400, 6400, 6400,
+ 6400, 6400, 6400, 6400, 6400, 6400, 6400, 6400, 6400, 6400,
+ 6400, 6400, 6400, 6400, 6400, 6401, 6401, 6401, 6401, 6401,
+
+ 6401, 6401, 6401, 6401, 6401, 6401, 6401, 6401, 6401, 6401,
+ 6401, 6401, 6401, 6402, 6402, 6402, 6402, 6402, 6402, 6402,
+ 6402, 6402, 6402, 6402, 6402, 6402, 6402, 6402, 6402, 6402,
+ 6402, 6403, 6403, 6403, 6403, 6403, 6403, 6403, 6403, 6403,
+ 6403, 6403, 6403, 6403, 6403, 6403, 6403, 6403, 6403, 6404,
+ 6404, 6404, 6404, 6404, 6404, 6404, 6404, 6404, 6404, 6404,
+ 6404, 6404, 6404, 6404, 6404, 6404, 6404, 6405, 6405, 6405,
+ 6405, 6405, 6405, 6405, 6405, 6405, 6405, 6405, 6405, 6405,
+ 6405, 6405, 6405, 6405, 6405, 6406, 6406, 6406, 6406, 6406,
+ 6406, 6406, 6406, 6406, 6406, 6406, 6406, 6406, 6406, 6406,
+
+ 6406, 6406, 6406, 6407, 6407, 6407, 6407, 6407, 6407, 6407,
+ 6407, 6407, 6407, 6407, 6407, 6407, 6407, 6407, 6407, 6407,
+ 6407, 6408, 6408, 6408, 6408, 6408, 6408, 6408, 6408, 6408,
+ 6408, 6408, 6408, 6408, 6408, 6408, 6408, 6408, 6408, 6409,
+ 6409, 6409, 6409, 6409, 6409, 6409, 6409, 6409, 6409, 6409,
+ 6409, 6409, 6409, 6409, 6409, 6409, 6409, 6410, 6410, 6410,
+ 6410, 6410, 6410, 6410, 6410, 6410, 6410, 6410, 6410, 6410,
+ 6410, 6410, 6410, 6410, 6410, 6411, 6411, 6411, 6411, 6411,
+ 6411, 6411, 6411, 6411, 6411, 6411, 6411, 6411, 6411, 6411,
+ 6411, 6411, 6411, 6412, 6412, 6412, 6412, 6412, 6412, 6412,
+
+ 6412, 6412, 6412, 6412, 6412, 6412, 6412, 6412, 6412, 6412,
+ 6412, 6413, 6413, 6413, 6413, 6413, 6413, 6413, 6413, 6413,
+ 6413, 6413, 6413, 6413, 6413, 6413, 6413, 6413, 6413, 6414,
+ 6414, 6414, 6414, 6414, 6414, 6414, 6414, 6414, 6414, 6414,
+ 6414, 6414, 6414, 6414, 6414, 6414, 6414, 6415, 6415, 6415,
+ 6415, 6415, 6415, 6415, 6415, 6415, 6415, 6415, 6415, 6415,
+ 6415, 6415, 6415, 6415, 6415, 6416, 6416, 6416, 6416, 6416,
+ 6416, 6416, 6416, 6416, 6416, 6416, 6416, 6416, 6416, 6416,
+ 6416, 6416, 6416, 6417, 6417, 6417, 6417, 6417, 6417, 6417,
+ 6417, 6417, 6417, 6417, 6417, 6417, 6417, 6417, 6417, 6417,
+
+ 6417, 6418, 6418, 6418, 6418, 6418, 6418, 6418, 6418, 6418,
+ 6418, 6418, 6418, 6418, 6418, 6418, 6418, 6418, 6418, 6419,
+ 6419, 6419, 6419, 6419, 6419, 6419, 6419, 6419, 6419, 6419,
+ 6419, 6419, 6419, 6419, 6419, 6419, 6419, 6420, 6420, 6420,
+ 6420, 6420, 6420, 6420, 6420, 6420, 6420, 6420, 6420, 6420,
+ 6420, 6420, 6420, 6420, 6420, 6421, 6421, 6421, 6421, 6421,
+ 6421, 6421, 6421, 6421, 6421, 6421, 6421, 6421, 6421, 6421,
+ 6421, 6421, 6421, 6422, 6422, 6422, 6422, 6422, 6422, 6422,
+ 6422, 6422, 6422, 6422, 6422, 6422, 6422, 6422, 6422, 6422,
+ 6422, 6423, 6423, 6423, 6423, 6423, 6423, 6423, 6423, 6423,
+
+ 6423, 6423, 6423, 6423, 6423, 6423, 6423, 6423, 6423, 6424,
+ 6424, 6424, 6424, 6424, 6424, 6424, 6424, 6424, 6424, 6424,
+ 6424, 6424, 6424, 6424, 6424, 6424, 6424, 6425, 6425, 6425,
+ 6425, 6425, 6425, 6425, 6425, 6425, 6425, 6425, 6425, 6425,
+ 6425, 6425, 6425, 6425, 6425, 6426, 6426, 6426, 6426, 6426,
+ 6426, 6426, 6426, 6426, 6426, 6426, 6426, 6426, 6426, 6426,
+ 6426, 6426, 6426, 6427, 6427, 6427, 6427, 6427, 6427, 6427,
+ 6427, 6427, 6427, 6427, 6427, 6427, 6427, 6427, 6427, 6427,
+ 6427, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428,
+ 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6428, 6429,
+
+ 6429, 6429, 6429, 6429, 6429, 6429, 6429, 6429, 6429, 6429,
+ 6429, 6429, 6429, 6429, 6429, 6429, 6429, 6430, 6430, 6430,
+ 6430, 6430, 6430, 6430, 6430, 6430, 6430, 6430, 6430, 6430,
+ 6430, 6430, 6430, 6430, 6430, 6431, 6431, 6431, 6431, 6431,
+ 6431, 6431, 6431, 6431, 6431, 6431, 6431, 6431, 6431, 6431,
+ 6431, 6431, 6431, 6432, 6432, 6432, 6432, 6432, 6432, 6432,
+ 6432, 6432, 6432, 6432, 6432, 6432, 6432, 6432, 6432, 6432,
+ 6432, 6433, 6433, 6433, 6433, 6433, 6433, 6433, 6433, 6433,
+ 6433, 6433, 6433, 6433, 6433, 6433, 6433, 6433, 6433, 6434,
+ 6434, 6434, 6434, 6434, 6434, 6434, 6434, 6434, 6434, 6434,
+
+ 6434, 6434, 6434, 6434, 6434, 6434, 6434, 6435, 6435, 6435,
+ 6435, 6435, 6435, 6435, 6435, 6435, 6435, 6435, 6435, 6435,
+ 6435, 6435, 6435, 6435, 6435, 6436, 6436, 6436, 6436, 6436,
+ 6436, 6436, 6436, 6436, 6436, 6436, 6436, 6436, 6436, 6436,
+ 6436, 6436, 6436, 6437, 6437, 6437, 6437, 6437, 6437, 6437,
+ 6437, 6437, 6437, 6437, 6437, 6437, 6437, 6437, 6437, 6437,
+ 6437, 6438, 6438, 6438, 6438, 6438, 6438, 6438, 6438, 6438,
+ 6438, 6438, 6438, 6438, 6438, 6438, 6438, 6438, 6438, 6439,
+ 6439, 6439, 6439, 6439, 6439, 6439, 6439, 6439, 6439, 6439,
+ 6439, 6439, 6439, 6439, 6439, 6439, 6439, 6440, 6440, 6440,
+
+ 6440, 6440, 6440, 6440, 6440, 6440, 6440, 6440, 6440, 6440,
+ 6440, 6440, 6440, 6440, 6440, 6441, 6441, 6441, 6441, 6441,
+ 6441, 6441, 6441, 6441, 6441, 6441, 6441, 6441, 6441, 6441,
+ 6441, 6441, 6441, 6442, 6442, 6442, 6442, 6442, 6442, 6442,
+ 6442, 6442, 6442, 6442, 6442, 6442, 6442, 6442, 6442, 6442,
+ 6442, 6443, 6443, 6443, 6443, 6443, 6443, 6443, 6443, 6443,
+ 6443, 6443, 6443, 6443, 6443, 6443, 6443, 6443, 6443, 6444,
+ 6444, 6444, 6444, 6444, 6444, 6444, 6444, 6444, 6444, 6444,
+ 6444, 6444, 6444, 6444, 6444, 6444, 6444, 6445, 6445, 6445,
+ 6445, 6445, 6445, 6445, 6445, 6445, 6445, 6445, 6445, 6445,
+
+ 6445, 6445, 6445, 6445, 6445, 6446, 6446, 6446, 6446, 6446,
+ 6446, 6446, 6446, 6446, 6446, 6446, 6446, 6446, 6446, 6446,
+ 6446, 6446, 6446, 6447, 6447, 6447, 6447, 6447, 6447, 6447,
+ 6447, 6447, 6447, 6447, 6447, 6447, 6447, 6447, 6447, 6447,
+ 6447, 6448, 6448, 6448, 6448, 6448, 6448, 6448, 6448, 6448,
+ 6448, 6448, 6448, 6448, 6448, 6448, 6448, 6448, 6448, 6449,
+ 6449, 6449, 6449, 6449, 6449, 6449, 6449, 6449, 6449, 6449,
+ 6449, 6449, 6449, 6449, 6449, 6449, 6449, 6450, 6450, 6450,
+ 6450, 6450, 6450, 6450, 6450, 6450, 6450, 6450, 6450, 6450,
+ 6450, 6450, 6450, 6450, 6450, 6451, 6451, 6451, 6451, 6451,
+
+ 6451, 6451, 6451, 6451, 6451, 6451, 6451, 6451, 6451, 6451,
+ 6451, 6451, 6451, 6452, 6452, 6452, 6452, 6452, 6452, 6452,
+ 6452, 6452, 6452, 6452, 6452, 6452, 6452, 6452, 6452, 6452,
+ 6452, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453,
+ 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6453, 6454,
+ 6454, 6454, 6454, 6454, 6454, 6454, 6454, 6454, 6454, 6454,
+ 6454, 6454, 6454, 6454, 6454, 6454, 6454, 6455, 6455, 6455,
+ 6455, 6455, 6455, 6455, 6455, 6455, 6455, 6455, 6455, 6455,
+ 6455, 6455, 6455, 6455, 6455, 6456, 6456, 6456, 6456, 6456,
+ 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456, 6456,
+
+ 6456, 6456, 6456, 6457, 6457, 6457, 6457, 6457, 6457, 6457,
+ 6457, 6457, 6457, 6457, 6457, 6457, 6457, 6457, 6457, 6457,
+ 6457, 6458, 6458, 6458, 6458, 6458, 6458, 6458, 6458, 6458,
+ 6458, 6458, 6458, 6458, 6458, 6458, 6458, 6458, 6458, 6459,
+ 6459, 6459, 6459, 6459, 6459, 6459, 6459, 6459, 6459, 6459,
+ 6459, 6459, 6459, 6459, 6459, 6459, 6459, 6460, 6460, 6460,
+ 6460, 6460, 6460, 6460, 6460, 6460, 6460, 6460, 6460, 6460,
+ 6460, 6460, 6460, 6460, 6460, 6461, 6461, 6461, 6461, 6461,
+ 6461, 6461, 6461, 6461, 6461, 6461, 6461, 6461, 6461, 6461,
+ 6461, 6461, 6461, 6462, 6462, 6462, 6462, 6462, 6462, 6462,
+
+ 6462, 6462, 6462, 6462, 6462, 6462, 6462, 6462, 6462, 6462,
+ 6462, 6463, 6463, 6463, 6463, 6463, 6463, 6463, 6463, 6463,
+ 6463, 6463, 6463, 6463, 6463, 6463, 6463, 6463, 6463, 6464,
+ 6464, 6464, 6464, 6464, 6464, 6464, 6464, 6464, 6464, 6464,
+ 6464, 6464, 6464, 6464, 6464, 6464, 6464, 6465, 6465, 6465,
+ 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465, 6465,
+ 6465, 6465, 6465, 6465, 6465, 6466, 6466, 6466, 6466, 6466,
+ 6466, 6466, 6466, 6466, 6466, 6466, 6466, 6466, 6466, 6466,
+ 6466, 6466, 6466, 6467, 6467, 6467, 6467, 6467, 6467, 6467,
+ 6467, 6467, 6467, 6467, 6467, 6467, 6467, 6467, 6467, 6467,
+
+ 6467, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468,
+ 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6468, 6469,
+ 6469, 6469, 6469, 6469, 6469, 6469, 6469, 6469, 6469, 6469,
+ 6469, 6469, 6469, 6469, 6469, 6469, 6469, 6470, 6470, 6470,
+ 6470, 6470, 6470, 6470, 6470, 6470, 6470, 6470, 6470, 6470,
+ 6470, 6470, 6470, 6470, 6470, 6471, 6471, 6471, 6471, 6471,
+ 6471, 6471, 6471, 6471, 6471, 6471, 6471, 6471, 6471, 6471,
+ 6471, 6471, 6471, 6472, 6472, 6472, 6472, 6472, 6472, 6472,
+ 6472, 6472, 6472, 6472, 6472, 6472, 6472, 6472, 6472, 6472,
+ 6472, 6473, 6473, 6473, 6473, 6473, 6473, 6473, 6473, 6473,
+
+ 6473, 6473, 6473, 6473, 6473, 6473, 6473, 6473, 6473, 6474,
+ 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6474,
+ 6474, 6474, 6474, 6474, 6474, 6474, 6474, 6475, 6475, 6475,
+ 6475, 6475, 6475, 6475, 6475, 6475, 6475, 6475, 6475, 6475,
+ 6475, 6475, 6475, 6475, 6475, 6476, 6476, 6476, 6476, 6476,
+ 6476, 6476, 6476, 6476, 6476, 6476, 6476, 6476, 6476, 6476,
+ 6476, 6476, 6476, 6477, 6477, 6477, 6477, 6477, 6477, 6477,
+ 6477, 6477, 6477, 6477, 6477, 6477, 6477, 6477, 6477, 6477,
+ 6477, 6478, 6478, 6478, 6478, 6478, 6478, 6478, 6478, 6478,
+ 6478, 6478, 6478, 6478, 6478, 6478, 6478, 6478, 6478, 6479,
+
+ 6479, 6479, 6479, 6479, 6479, 6479, 6479, 6479, 6479, 6479,
+ 6479, 6479, 6479, 6479, 6479, 6479, 6479, 6480, 6480, 6480,
+ 6480, 6480, 6480, 6480, 6480, 6480, 6480, 6480, 6480, 6480,
+ 6480, 6480, 6480, 6480, 6480, 6481, 6481, 6481, 6481, 6481,
+ 6481, 6481, 6481, 6481, 6481, 6481, 6481, 6481, 6481, 6481,
+ 6481, 6481, 6481, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+ 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143, 5143,
+
+ 5143, 5143, 5143, 5143
+ } ;
+
+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
+static int yy_more_flag = 0;
+static int yy_more_len = 0;
+#define yymore() ((yy_more_flag) = 1)
+#define YY_MORE_ADJ (yy_more_len)
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "fscanner.l"
+#line 2 "fscanner.l"
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * C symbol scanner
+ */
+#include "global.h"
+#include "alloc.h"
+#include "scanner.h"
+#include "lookup.h"
+
+#include <assert.h>
+
+/* the line counting has been moved from character reading for speed */
+/* comments are discarded */
+
+#ifndef FLEX_SCANNER
+# error Sorry, this scanner needs flex. It is not usable with AT&T Lex.
+#endif
+
+#define IFLEVELINC 5 /* #if nesting level size increment */
+#define YY_NO_TOP_STATE 1
+
+static char const rcsid[] = "$Id: fscanner.l,v 1.17 2012/08/02 21:48:08 broeker Exp $";
+
+int first; /* buffer index for first char of symbol */
+int last; /* buffer index for last char of symbol */
+int lineno; /* symbol line number */
+int myylineno = 1;
+
+/* HBB 20001007: new variables, emulating yytext in a way that allows
+ * the yymore() simulation, my_yymore(), to be used even in the presence of
+ * yyless(). */
+size_t my_yyleng = 0;
+char *my_yytext = NULL;
+
+static BOOL arraydimension; /* inside array dimension declaration */
+static BOOL bplisting; /* breakpoint listing */
+static int braces; /* unmatched left brace count */
+static BOOL classdef; /* c++ class definition */
+static BOOL elseelif; /* #else or #elif found */
+static BOOL esudef; /* enum/struct/union global definition */
+static BOOL external; /* external definition */
+static int externalbraces; /* external definition outer brace count */
+static BOOL fcndef; /* function definition */
+static BOOL global; /* file global scope (outside functions) */
+static int iflevel; /* #if nesting level */
+static BOOL initializer; /* data initializer */
+static int initializerbraces; /* data initializer outer brace count */
+static BOOL lex; /* lex file */
+static int miflevel = IFLEVELINC; /* maximum #if nesting level */
+static int *maxifbraces; /* maximum brace count within #if */
+static int *preifbraces; /* brace count before #if */
+static int parens; /* unmatched left parenthesis count */
+static BOOL ppdefine; /* preprocessor define statement */
+static BOOL pseudoelif; /* pseudo-#elif */
+static BOOL oldtype; /* next identifier is an old type */
+static BOOL rules; /* lex/yacc rules */
+static BOOL sdl; /* sdl file */
+static BOOL structfield; /* structure field declaration */
+static int tagdef; /* class/enum/struct/union tag definition */
+static BOOL template; /* function template */
+static int templateparens; /* function template outer parentheses count */
+static int typedefbraces = -1; /* initial typedef brace count */
+static int token; /* token found */
+static int ident_start; /* begin of preceding identifier */
+
+/* If this is defined to 1, use flex rules rather than the input
+ * function to discard comments. The scanner gains quite a bit of
+ * speed this way, because of a large reduction of the number of I/O
+ * system/library calls. The original skipcomment_input() called
+ * getc() so often that the call overhead of shared libraries
+ * vs. static linking, alone, already caused a sizeable performance
+ * hit (up to 40% gross gain on a cscope -cub of its own source
+ * dir). */
+#define COMMENTS_BY_FLEX 1
+
+#if !COMMENTS_BY_FLEX
+static int skipcomment_input(void);
+static int comment(void);
+static int insidestring_input(int);
+#endif
+
+static void my_yymore(void);
+
+#if COMMENTS_BY_FLEX
+# define skipcomment_input input
+#else
+
+# define YY_INPUT(buf,result,max_size) \
+{ \
+ int c = skipcomment_input (); \
+ result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \
+}
+
+#endif /* !COMMENTS_BY_FLEX*/
+
+
+/* flex options: stack of start conditions, and don't use yywrap() */
+
+/* exclusive start conditions. not available in AT&T lex -> use flex! */
+
+#line 29751 "fscanner.c"
+
+#define INITIAL 0
+#define SDL 1
+#define IN_PREPROC 2
+#define WAS_ENDIF 3
+#define WAS_IDENTIFIER 4
+#define WAS_ESU 5
+#define IN_DQUOTE 6
+#define IN_SQUOTE 7
+#define COMMENT 8
+
+#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 );
+
+int 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
+
+ static void yyunput (int c,char *buf_ptr );
+
+#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 fwrite( yytext, yyleng, 1, yyout )
+#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) \
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
+ { \
+ int c = '*'; \
+ int n; \
+ for ( n = 0; n < max_size && \
+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+ buf[n] = (char) c; \
+ if ( c == '\n' ) \
+ buf[n++] = (char) c; \
+ if ( c == EOF && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
+ result = n; \
+ } \
+ else \
+ { \
+ errno=0; \
+ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
+ { \
+ 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;
+
+#line 148 "fscanner.l"
+
+
+#line 29957 "fscanner.c"
+
+ 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( );
+ }
+
+ while ( 1 ) /* loops until end-of-file is reached */
+ {
+ (yy_more_len) = 0;
+ if ( (yy_more_flag) )
+ {
+ (yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
+ (yy_more_flag) = 0;
+ }
+ 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:
+ do
+ {
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+ if ( yy_accept[yy_current_state] )
+ {
+ (yy_last_accepting_state) = yy_current_state;
+ (yy_last_accepting_cpos) = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 5144 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ ++yy_cp;
+ }
+ while ( yy_base[yy_current_state] != 123454 );
+
+yy_find_action:
+ yy_act = yy_accept[yy_current_state];
+ if ( yy_act == 0 )
+ { /* have to back up */
+ yy_cp = (yy_last_accepting_cpos);
+ yy_current_state = (yy_last_accepting_state);
+ 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);
+ yy_current_state = (yy_last_accepting_state);
+ goto yy_find_action;
+
+case 1:
+YY_RULE_SETUP
+#line 150 "fscanner.l"
+{ /* lex/yacc C declarations/definitions */
+ global = YES;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 155 "fscanner.l"
+{
+ global = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 160 "fscanner.l"
+{ /* lex/yacc rules delimiter */
+ braces = 0;
+ if (rules == NO) {
+ /* this %% starts the section containing the rules */
+ rules = YES;
+
+ /* Copy yytext to private buffer, to be able to add further
+ * content following it: */
+ my_yymore();
+
+ /* simulate a yylex() or yyparse() definition */
+ (void) strcat(my_yytext, " /* ");
+ first = strlen(my_yytext);
+ if (lex == YES) {
+ (void) strcat(my_yytext, "yylex");
+ } else {
+ /* yacc: yyparse implicitly calls yylex */
+ char *s = " yylex()";
+ char *cp = s + strlen(s);
+ while (--cp >= s) {
+ unput(*cp);
+ }
+ (void) strcat(my_yytext, "yyparse");
+ }
+ last = strlen(my_yytext);
+ (void) strcat(my_yytext, " */");
+ my_yyleng = strlen(my_yytext);
+ return(FCNDEF);
+ } else {
+ /* were in the rules section, now comes the closing one */
+ rules = NO;
+ global = YES;
+ last = first;
+ my_yymore();
+ return(FCNEND);
+ /* NOTREACHED */
+ }
+ }
+ YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 199 "fscanner.l"
+{ /* sdl state, treat as function def */
+ braces = 1;
+ fcndef = YES;
+ token = FCNDEF;
+ goto findident;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 206 "fscanner.l"
+{ /* end of an sdl state, treat as end of a function */
+ goto endstate;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 211 "fscanner.l"
+{ /* count unmatched left braces for fcn def detection */
+ ++braces;
+
+ /* mark an untagged enum/struct/union so its beginning
+ can be found */
+ if (tagdef) {
+ if (braces == 1) {
+ esudef = YES;
+ }
+ token = tagdef;
+ tagdef = '\0';
+ last = first;
+ my_yymore();
+ return(token);
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 7:
+YY_RULE_SETUP
+#line 230 "fscanner.l"
+{ /* start a preprocessor line */
+ if (rules == NO) /* don't consider CPP for lex/yacc rules */
+ BEGIN(IN_PREPROC);
+ yyleng = 1; /* get rid of the blanks, if any */
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 237 "fscanner.l"
+{ /* #endif */
+ /* delay treatment of #endif depending on whether an
+ * #if comes right after it, or not */
+ /* HBB 20010619: new pattern allows trailing garbage
+ * after the #endif */
+ BEGIN(WAS_ENDIF);
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 9:
+/* rule 9 can match eol */
+YY_RULE_SETUP
+#line 246 "fscanner.l"
+{
+ /* attempt to correct erroneous brace count caused by:
+ *
+ * #if ...
+ * ... {
+ * #endif
+ * #if ...
+ * ... {
+ * #endif
+ */
+ /* the current #if must not have an #else or #elif */
+ if (elseelif == YES) {
+ goto endif;
+ /* NOTREACHED */
+ }
+ pseudoelif = YES;
+ BEGIN(INITIAL);
+ yyless(1); /* rescan all but the line ending */
+ yy_set_bol(1);
+ goto eol;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 10:
+/* rule 10 can match eol */
+YY_RULE_SETUP
+#line 268 "fscanner.l"
+{ /* an #endif with no #if right after it */
+ endif:
+ if (iflevel > 0) {
+ /* get the maximum brace count for this #if */
+ if (braces < maxifbraces[--iflevel]) {
+ braces = maxifbraces[iflevel];
+ }
+ }
+ BEGIN(INITIAL);
+ yyless(1);
+ yy_set_bol(1);
+ goto eol;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 11:
+#line 284 "fscanner.l"
+case 12:
+#line 285 "fscanner.l"
+case 13:
+YY_RULE_SETUP
+#line 285 "fscanner.l"
+{ /* #if directive */
+ elseelif = NO;
+ if (pseudoelif == YES) {
+ pseudoelif = NO;
+ goto elif;
+ /* NOTREACHED */
+ }
+ /* make sure there is room for the current brace count */
+ if (iflevel == miflevel) {
+ miflevel += IFLEVELINC;
+ maxifbraces = myrealloc(maxifbraces, miflevel * sizeof(int));
+ preifbraces = myrealloc(preifbraces, miflevel * sizeof(int));
+ }
+ /* push the current brace count */
+ preifbraces[iflevel] = braces;
+ maxifbraces[iflevel++] = 0;
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 305 "fscanner.l"
+{ /* #else --- eat up whole line */
+ elseelif = YES;
+ if (iflevel > 0) {
+
+ /* save the maximum brace count for this #if */
+ if (braces > maxifbraces[iflevel - 1]) {
+ maxifbraces[iflevel - 1] = braces;
+ }
+ /* restore the brace count to before the #if */
+ braces = preifbraces[iflevel - 1];
+ }
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 320 "fscanner.l"
+{ /* #elif */
+ /* elseelif = YES; --- HBB I doubt this is correct */
+ elif:
+ if (iflevel > 0) {
+
+ /* save the maximum brace count for this #if */
+ if (braces > maxifbraces[iflevel - 1]) {
+ maxifbraces[iflevel - 1] = braces;
+ }
+ /* restore the brace count to before the #if */
+ braces = preifbraces[iflevel - 1];
+ }
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 16:
+#line 338 "fscanner.l"
+case 17:
+YY_RULE_SETUP
+#line 338 "fscanner.l"
+{ /* #include file */
+ char *s;
+ char remember = yytext[yyleng-1];
+
+ my_yymore();
+ s = strpbrk(my_yytext, "\"<");
+ if (!s)
+ return(LEXERR);
+ my_yytext[my_yyleng-1] = '\0';
+ incfile(s + 1, s);
+ my_yytext[my_yyleng-1] = remember;
+ first = s - my_yytext;
+ last = my_yyleng - 1;
+ if (compress == YES) {
+ my_yytext[0] = '\2'; /* compress the keyword */
+ }
+ BEGIN(INITIAL);
+ return(INCLUDE);
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 359 "fscanner.l"
+{
+ /* could be the last enum member initializer */
+ if (braces == initializerbraces) {
+ initializerbraces = -1;
+ initializer = NO;
+ }
+ if (--braces <= 0) {
+ endstate:
+ braces = 0;
+ classdef = NO;
+ }
+ if (braces == 0 || (braces == 1 && classdef == YES)) {
+
+ /* if the end of an enum/struct/union definition */
+ if (esudef == YES) {
+ esudef = NO;
+ }
+ /* if the end of the function */
+ else if (fcndef == YES) {
+ fcndef = NO;
+ last = first;
+ my_yymore();
+ return(FCNEND);
+ }
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 19:
+YY_RULE_SETUP
+#line 388 "fscanner.l"
+{ /* count unmatched left parentheses for function templates */
+ ++parens;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 20:
+YY_RULE_SETUP
+#line 393 "fscanner.l"
+{
+ if (--parens <= 0) {
+ parens = 0;
+ }
+ /* if the end of a function template */
+ if (parens == templateparens) {
+ templateparens = -1;
+ template = NO;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 21:
+YY_RULE_SETUP
+#line 405 "fscanner.l"
+{ /* if a global definition initializer */
+ if (!my_yytext)
+ return(LEXERR);
+ if (global == YES && ppdefine == NO && my_yytext[0] != '#') {
+ initializerbraces = braces;
+ initializer = YES;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 22:
+YY_RULE_SETUP
+#line 415 "fscanner.l"
+{ /* a if global structure field */
+ if (!my_yytext)
+ return(LEXERR);
+ if (global == YES && ppdefine == NO && my_yytext[0] != '#') {
+ structfield = YES;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 424 "fscanner.l"
+{
+ if (braces == initializerbraces) {
+ initializerbraces = -1;
+ initializer = NO;
+ }
+ structfield = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 24:
+YY_RULE_SETUP
+#line 433 "fscanner.l"
+{ /* if the enum/struct/union was not a definition */
+ if (braces == 0) {
+ esudef = NO;
+ }
+ /* if the end of a typedef */
+ if (braces == typedefbraces) {
+ typedefbraces = -1;
+ }
+ /* if the end of a external definition */
+ if (braces == externalbraces) {
+ externalbraces = -1;
+ external = NO;
+ }
+ structfield = NO;
+ initializer = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 451 "fscanner.l"
+{
+
+ /* preprocessor macro or constant definition */
+ ppdefine = YES;
+ token = DEFINE;
+ if (compress == YES) {
+ my_yytext[0] = '\1'; /* compress the keyword */
+ }
+ findident:
+ /* search backwards through yytext[] to find the identifier */
+ /* NOTE: this had better be left to flex, by use of
+ * yet another starting condition */
+ my_yymore();
+ first = my_yyleng - 1;
+ while (my_yytext[first] != ' ' && my_yytext[first] != '\t') {
+ --first;
+ }
+ ++first;
+ last = my_yyleng;
+ BEGIN(INITIAL);
+ goto definition;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 26:
+/* rule 26 can match eol */
+YY_RULE_SETUP
+#line 474 "fscanner.l"
+{ /* unknown preprocessor line */
+ BEGIN(INITIAL);
+ ++myylineno;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 27:
+#line 481 "fscanner.l"
+case 28:
+YY_RULE_SETUP
+#line 481 "fscanner.l"
+{ /* unknown preprocessor line */
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 29:
+/* rule 29 can match eol */
+YY_RULE_SETUP
+#line 487 "fscanner.l"
+{ /* class definition */
+ classdef = YES;
+ tagdef = 'c';
+ yyless(5); /* eat up 'class', and re-scan */
+ yy_set_bol(0);
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 496 "fscanner.l"
+{
+ ident_start = first;
+ BEGIN(WAS_ESU);
+ goto more;
+ }
+ YY_BREAK
+
+case 31:
+/* rule 31 can match eol */
+YY_RULE_SETUP
+#line 502 "fscanner.l"
+{ /* e/s/u definition */
+ tagdef = my_yytext[ident_start];
+ BEGIN(WAS_IDENTIFIER);
+ goto ident;
+ }
+ YY_BREAK
+case 32:
+/* rule 32 can match eol */
+YY_RULE_SETUP
+#line 507 "fscanner.l"
+{ /* e/s/u definition without a tag */
+ tagdef = my_yytext[ident_start];
+ BEGIN(INITIAL);
+ if (braces == 0) {
+ esudef = YES;
+ }
+ last = first;
+ yyless(0); /* re-scan all this as normal text */
+ tagdef = '\0';
+ goto more;
+ }
+ YY_BREAK
+case 33:
+/* rule 33 can match eol */
+#line 519 "fscanner.l"
+case 34:
+/* rule 34 can match eol */
+YY_RULE_SETUP
+#line 519 "fscanner.l"
+{ /* e/s/u usage */
+ BEGIN(WAS_IDENTIFIER);
+ goto ident;
+ }
+ YY_BREAK
+
+case 35:
+/* rule 35 can match eol */
+YY_RULE_SETUP
+#line 525 "fscanner.l"
+{ /* ignore 'if' */
+ yyless(2);
+ yy_set_bol(0);
+ goto more;
+}
+ YY_BREAK
+case 36:
+YY_RULE_SETUP
+#line 531 "fscanner.l"
+{ /* identifier found: do nothing, yet. (!) */
+ BEGIN(WAS_IDENTIFIER);
+ ident_start = first;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+
+case 37:
+/* rule 37 can match eol */
+YY_RULE_SETUP
+#line 539 "fscanner.l"
+{
+ /* a function definition */
+ /* note: "#define a (b) {" and "#if defined(a)\n#"
+ * are not fcn definitions! */
+ /* warning: "if (...)" must not overflow yytext,
+ * so the content of function argument definitions
+ * is restricted, in particular parentheses are
+ * not allowed */
+ /* FIXME HBB 20001003: the above 'not allowed' may well be the
+ * reason for the parsing bug concerning function pointer usage,
+ * I suspect. --- I think my new special-case rule for 'if'
+ * could be helpful in removing that limitation */
+ if ((braces == 0 && ppdefine == NO && my_yytext[0] != '#' && rules == NO) ||
+ (braces == 1 && classdef == YES)) {
+ fcndef = YES;
+ token = FCNDEF;
+ goto fcn;
+ /* NOTREACHED */
+ }
+ goto fcncal;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 38:
+/* rule 38 can match eol */
+YY_RULE_SETUP
+#line 561 "fscanner.l"
+{ /* function call */
+ fcncal: if (fcndef == YES || ppdefine == YES || rules == YES) {
+ token = FCNCALL;
+ goto fcn;
+ /* NOTREACHED */
+ }
+ if (template == NO) {
+ templateparens = parens;
+ template = YES;
+ }
+ goto ident;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 39:
+/* rule 39 can match eol */
+YY_RULE_SETUP
+#line 574 "fscanner.l"
+{ /* typedef name or modifier use */
+ goto ident;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 40:
+/* rule 40 can match eol */
+YY_RULE_SETUP
+#line 578 "fscanner.l"
+{ /* general identifer usage */
+ char *s;
+
+ if (global == YES && ppdefine == NO && my_yytext[0] != '#' &&
+ external == NO && initializer == NO &&
+ arraydimension == NO && structfield == NO &&
+ template == NO && fcndef == NO) {
+ if (esudef == YES) {
+ /* if enum/struct/union */
+ token = MEMBERDEF;
+ } else {
+ token = GLOBALDEF;
+ }
+ } else {
+ ident:
+ token = IDENT;
+ }
+ fcn:
+ if (YYSTATE == WAS_IDENTIFIER) {
+ /* Position back to the actual identifier: */
+ last = first;
+ first = ident_start;
+ yyless(0);
+ /* HBB 20001008: if the anti-backup-pattern above matched,
+ * and the matched context ended with a \n, then the scanner
+ * believes it's at the start of a new line. But the yyless()
+ * should feeds that \n back into the input, so that's
+ * wrong. --> force 'beginning-of-line' status off. */
+ yy_set_bol(0);
+ BEGIN(INITIAL);
+ } else {
+ my_yymore();
+ last = my_yyleng;
+ }
+ definition:
+
+ /* if a long line */
+ if (yyleng > STMTMAX) {
+ int c;
+
+ /* skip to the end of the line */
+ warning("line too long");
+ while ((c = skipcomment_input()) > LEXEOF) {
+ if (c == '\n') {
+ unput(c);
+ break;
+ }
+ }
+ }
+ /* truncate a long symbol */
+ if (yyleng > PATLEN) {
+ warning("symbol too long");
+ my_yyleng = first + PATLEN;
+ my_yytext[my_yyleng] = '\0';
+ }
+
+ /* if found word was a keyword: */
+ if ((s = lookup(my_yytext + first)) != NULL) {
+ first = my_yyleng;
+
+ /* if the start of a typedef */
+ if (s == typedeftext) {
+ typedefbraces = braces;
+ oldtype = YES;
+ }
+ /* if an enum/struct/union */
+ /* (needed for "typedef struct tag name;" so
+ tag isn't marked as the typedef name) */
+ else if (s == enumtext || s == structtext || s == uniontext) {
+ /* do nothing */
+ } else if (s == externtext) {
+ /* if an external definition */
+ externalbraces = braces;
+ external = YES;
+ } else if (templateparens == parens && template == YES) {
+ /* keyword doesn't start a function
+ * template */
+ templateparens = -1;
+ template = NO;
+ } else {
+ /* identifier after typedef was a
+ * keyword */
+ oldtype = NO;
+ }
+ } else {
+ /* not a keyword --> found an identifier */
+ /* last = yyleng; */
+
+ /* if a class/enum/struct/union tag definition */
+ /* FIXME HBB 20001001: why reject "class"? */
+ if (tagdef && strnotequal(my_yytext + first, "class")) {
+ token = tagdef;
+ tagdef = '\0';
+ if (braces == 0) {
+ esudef = YES;
+ }
+ } else if (braces == typedefbraces && oldtype == NO &&
+ arraydimension == NO) {
+ /* if a typedef name */
+ token = TYPEDEF;
+ } else {
+ oldtype = NO;
+ }
+ /* my_yymore(); */
+ return(token);
+ /* NOTREACHED */
+ }
+ }
+ YY_BREAK
+
+case 41:
+YY_RULE_SETUP
+#line 688 "fscanner.l"
+{ /* array dimension (don't worry or about subscripts) */
+ arraydimension = YES;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 42:
+YY_RULE_SETUP
+#line 693 "fscanner.l"
+{
+ arraydimension = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 43:
+/* rule 43 can match eol */
+YY_RULE_SETUP
+#line 698 "fscanner.l"
+{ /* preprocessor statement is continued on next line */
+ /* save the '\\' to the output file, but not the '\n': */
+ yyleng = 1;
+ my_yymore();
+ goto eol;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 44:
+/* rule 44 can match eol */
+YY_RULE_SETUP
+#line 705 "fscanner.l"
+{ /* end of the line */
+ if (ppdefine == YES) { /* end of a #define */
+ ppdefine = NO;
+ yyless(yyleng - 1);
+ last = first;
+ my_yymore();
+ return(DEFINEEND);
+ }
+ /* skip the first 8 columns of a breakpoint listing line */
+ /* and skip the file path in the page header */
+ if (bplisting == YES) {
+ int c, i;
+
+ /* FIXME HBB 20001007: should call input() instead */
+ switch (skipcomment_input()) { /* tab and EOF just fall through */
+ case ' ': /* breakpoint number line */
+ case '[':
+ for (i = 1; i < 8 && skipcomment_input() > LEXEOF; ++i)
+ ;
+ break;
+ case '.': /* header line */
+ case '/':
+ /* skip to the end of the line */
+ while ((c = skipcomment_input()) > LEXEOF) {
+ if (c == '\n') {
+ unput(c);
+ break;
+ }
+ }
+ break;
+ case '\n': /* empty line */
+ unput('\n');
+ break;
+ }
+ }
+ eol:
+ ++myylineno;
+ first = 0;
+ last = 0;
+ if (symbols > 0) {
+ /* no my_yymore(): \n doesn't need to be in my_yytext */
+ return(NEWLINE);
+ }
+ /* line ended --> flush my_yytext */
+ if (my_yytext)
+ *my_yytext = '\0';
+ my_yyleng = 0;
+ lineno = myylineno;
+ }
+ YY_BREAK
+case 45:
+YY_RULE_SETUP
+#line 755 "fscanner.l"
+{ /* character constant */
+ if (sdl == NO)
+ BEGIN(IN_SQUOTE);
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 46:
+YY_RULE_SETUP
+#line 761 "fscanner.l"
+{
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 47:
+YY_RULE_SETUP
+#line 766 "fscanner.l"
+{ /* string constant */
+ BEGIN(IN_DQUOTE);
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 48:
+YY_RULE_SETUP
+#line 771 "fscanner.l"
+{
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+
+case 49:
+/* rule 49 can match eol */
+YY_RULE_SETUP
+#line 777 "fscanner.l"
+{ /* syntax error: unexpected EOL */
+ BEGIN(INITIAL);
+ goto eol;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 50:
+#line 783 "fscanner.l"
+case 51:
+YY_RULE_SETUP
+#line 783 "fscanner.l"
+{
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 52:
+/* rule 52 can match eol */
+YY_RULE_SETUP
+#line 787 "fscanner.l"
+{ /* line continuation inside a string! */
+ myylineno++;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+
+case 53:
+YY_RULE_SETUP
+#line 794 "fscanner.l"
+{ /* don't save leading white space */
+ }
+ YY_BREAK
+case 54:
+/* rule 54 can match eol */
+YY_RULE_SETUP
+#line 797 "fscanner.l"
+{ /* eat whitespace at end of line */
+ unput('\n');
+ }
+ YY_BREAK
+case 55:
+YY_RULE_SETUP
+#line 801 "fscanner.l"
+{ /* eat non-blank whitespace sequences, replace
+ * by single blank */
+ unput(' ');
+ }
+ YY_BREAK
+case 56:
+YY_RULE_SETUP
+#line 806 "fscanner.l"
+{ /* compress sequential whitespace here, not in putcrossref() */
+ unput(' ');
+ }
+ YY_BREAK
+case 57:
+YY_RULE_SETUP
+#line 810 "fscanner.l"
+yy_push_state(COMMENT);
+ YY_BREAK
+
+case 58:
+#line 813 "fscanner.l"
+case 59:
+YY_RULE_SETUP
+#line 813 "fscanner.l"
+; /* do nothing */
+ YY_BREAK
+case 60:
+/* rule 60 can match eol */
+#line 815 "fscanner.l"
+case 61:
+/* rule 61 can match eol */
+YY_RULE_SETUP
+#line 815 "fscanner.l"
+{
+ if (ppdefine == NO) {
+ goto eol;
+ } else {
+ ++myylineno;
+ }
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 62:
+YY_RULE_SETUP
+#line 823 "fscanner.l"
+{
+ /* replace the comment by a single blank */
+ unput(' ');
+ yy_pop_state();
+ }
+ YY_BREAK
+
+case 63:
+/* rule 63 can match eol */
+YY_RULE_SETUP
+#line 830 "fscanner.l"
+{
+ /* C++-style one-line comment */
+ goto eol;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 64:
+#line 837 "fscanner.l"
+case 65:
+#line 838 "fscanner.l"
+case 66:
+YY_RULE_SETUP
+#line 838 "fscanner.l"
+{ /* punctuation and operators */
+ more:
+ my_yymore();
+ first = my_yyleng;
+ }
+ YY_BREAK
+case 67:
+YY_RULE_SETUP
+#line 844 "fscanner.l"
+ECHO;
+ YY_BREAK
+#line 30979 "fscanner.c"
+case YY_STATE_EOF(INITIAL):
+case YY_STATE_EOF(SDL):
+case YY_STATE_EOF(IN_PREPROC):
+case YY_STATE_EOF(WAS_ENDIF):
+case YY_STATE_EOF(WAS_IDENTIFIER):
+case YY_STATE_EOF(WAS_ESU):
+case YY_STATE_EOF(IN_DQUOTE):
+case YY_STATE_EOF(IN_SQUOTE):
+case YY_STATE_EOF(COMMENT):
+ yyterminate();
+
+ 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 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
+ {
+ int 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;
+
+ int yy_c_buf_p_offset =
+ (int) ((yy_c_buf_p) - b->yy_ch_buf);
+
+ if ( b->yy_is_our_buffer )
+ {
+ int 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), (size_t) 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 )
+ {
+ register YY_CHAR yy_c = (*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;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 5144 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ }
+
+ 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);
+
+ register YY_CHAR yy_c = 1;
+ if ( yy_accept[yy_current_state] )
+ {
+ (yy_last_accepting_state) = yy_current_state;
+ (yy_last_accepting_cpos) = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 5144 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ yy_is_jam = (yy_current_state == 5143);
+
+ return yy_is_jam ? 0 : yy_current_state;
+}
+
+ static void yyunput (int c, register char * yy_bp )
+{
+ register char *yy_cp;
+
+ yy_cp = (yy_c_buf_p);
+
+ /* undo effects of setting up yytext */
+ *yy_cp = (yy_hold_char);
+
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+ register int number_to_move = (yy_n_chars) + 2;
+ register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+ register char *source =
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+
+ while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+ *--dest = *--source;
+
+ yy_cp += (int) (dest - source);
+ yy_bp += (int) (dest - source);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
+ }
+
+ *--yy_cp = (char) c;
+
+ (yytext_ptr) = yy_bp;
+ (yy_hold_char) = *yy_cp;
+ (yy_c_buf_p) = yy_cp;
+}
+
+#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 */
+ int 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 );
+}
+
+#ifndef __cplusplus
+extern int isatty (int );
+#endif /* __cplusplus */
+
+/* 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)
+{
+ int 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 bytes the byte buffer to scan
+ * @param 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, int _yybytes_len )
+{
+ YY_BUFFER_STATE b;
+ char *buf;
+ yy_size_t n;
+ int 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.
+ *
+ */
+int 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 844 "fscanner.l"
+
+
+
+void
+initscanner(char *srcfile)
+{
+ char *s;
+
+ if (maxifbraces == NULL) {
+ maxifbraces = mymalloc(miflevel * sizeof(int));
+ preifbraces = mymalloc(miflevel * sizeof(int));
+ }
+ first = 0; /* buffer index for first char of symbol */
+ last = 0; /* buffer index for last char of symbol */
+ lineno = 1; /* symbol line number */
+ myylineno = 1; /* input line number */
+ arraydimension = NO; /* inside array dimension declaration */
+ bplisting = NO; /* breakpoint listing */
+ braces = 0; /* unmatched left brace count */
+ classdef = NO; /* c++ class definition */
+ elseelif = NO; /* #else or #elif found */
+ esudef = NO; /* enum/struct/union global definition */
+ external = NO; /* external definition */
+ externalbraces = -1; /* external definition outer brace count */
+ fcndef = NO; /* function definition */
+ global = YES; /* file global scope (outside functions) */
+ iflevel = 0; /* #if nesting level */
+ initializer = NO; /* data initializer */
+ initializerbraces = -1; /* data initializer outer brace count */
+ lex = NO; /* lex file */
+ parens = 0; /* unmatched left parenthesis count */
+ ppdefine = NO; /* preprocessor define statement */
+ pseudoelif = NO; /* pseudo-#elif */
+ oldtype = NO; /* next identifier is an old type */
+ rules = NO; /* lex/yacc rules */
+ sdl = NO; /* sdl file */
+ structfield = NO; /* structure field declaration */
+ tagdef = '\0'; /* class/enum/struct/union tag definition */
+ template = NO; /* function template */
+ templateparens = -1; /* function template outer parentheses count */
+ typedefbraces = -1; /* initial typedef braces count */
+ ident_start = 0; /* start of previously found identifier */
+
+ if (my_yytext)
+ *my_yytext = '\0';
+ my_yyleng = 0;
+
+ BEGIN(INITIAL);
+
+ /* if this is not a C file */
+ if ((s = strrchr(srcfile, '.')) != NULL) {
+ switch (*++s) { /* this switch saves time on C files */
+ case 'b':
+ if (strcmp(s, "bp") == 0) { /* breakpoint listing */
+ bplisting = YES;
+ }
+ break;
+ case 'l':
+ if (strcmp(s, "l") == 0) { /* lex */
+ lex = YES;
+ global = NO;
+ }
+ break;
+ case 's':
+ if (strcmp(s, "sd") == 0) { /* sdl */
+ sdl = YES;
+ BEGIN(SDL);
+ }
+ break;
+ case 'y':
+ if (strcmp(s, "y") == 0) { /* yacc */
+ global = NO;
+ }
+ break;
+ }
+ }
+}
+
+#if !COMMENTS_BY_FLEX
+
+/* A micro-scanner that serves as the input() function of the
+ * scanner. It throws away any comments in the input, correctly
+ * avoiding doing this inside string/character constants, and knows
+ * about backslash sequences. Now that the main scanner doesn't use
+ * yymore() any longer, this could be replaced by lex rules. Left for
+ * trying later. */
+
+/* Status variable: If this is non-NUL, it's the character that
+* terminates a string we're currently in. */
+static int string_terminator = '\0';
+
+/* Helper routine: treat 'c' as a character found inside a
+ * string. Check if this character might be the end of that
+ * string. Backslashes have to be taken care of, for the sake of
+ * "quotes like \"these\" found inside a string". */
+static int
+insidestring_input(int c)
+{
+ static BOOL was_backslash = NO;
+
+ if ((c == '\\') && (was_backslash == NO)) {
+ /* escape character found --> treat next char specially */
+ /* FIXME HBB 20001003: need treatment of backslash in the main
+ * scanner, too. It'll get false line counts in case of "\\'",
+ * otherwise --- they can occur as part of a lex pattern */
+ was_backslash = YES;
+ return c;
+ }
+
+ if (((c == '\t') && (lex == YES))
+ /* Note: "\\\n" is removed even inside strings! */
+ || ((c == '\n') && (was_backslash == NO))
+ || (c == EOF)
+ || ((c == string_terminator) && (was_backslash == NO))
+ ) {
+ /* Line ended, or end-of-string was found. That is a syntax
+ * error. To recover, stop treatment as a string constant: */
+ string_terminator = '\0';
+ } else if (!isprint((unsigned char)c)) {
+ /* mask unprintable characters */
+ c = ' ';
+ }
+
+ was_backslash = NO;
+ return c;
+}
+
+/* Helper function: skip over input until end of comment is found (or
+ * we find that it wasn't really comment, in the first place): */
+static int
+comment(void)
+{
+ int c, lastc;
+
+ /* Coming here, we've just read in the opening '/' of a
+ * comment. */
+ do {
+ if ((c = getc(yyin)) == '*') { /* C comment */
+ lastc = '\0';
+ while ((c = getc(yyin)) != EOF
+ /* fewer '/'s --> test them first! */
+ && (c != '/' || lastc != '*')
+ ) {
+ if (c == '\n') {
+ /* keep the line number count */
+ /* FIXME HBB 20001008: this is not synchronized
+ * properly with myylineno changes by the main
+ * scanner. A strong point in favour of moving
+ * this to lex-code that is, IMHO */
+ ++myylineno;
+ }
+ lastc = c;
+ }
+ /* return a blank for Reiser cpp token concatenation */
+ /* FIXME HBB 20001008: what on earth is 'Reiser cpp'? ANSI
+ * C defines cpp to explicitly replace any comment by a
+ * blank. Pre-ANSI cpp's behaved differently, but do we
+ * really want that? If at all, it should only ever be a
+ * non-default option (like gcc's "-traditional-cpp")
+ * */
+ if ((c = getc(yyin)) == '_' || isalnum(c)) {
+ (void) ungetc(c, yyin);
+ c = ' ';
+ break;
+ }
+ } else if (c == '/') { /* C++ comment */
+ while ((c = getc(yyin)) != EOF && c != '\n') {
+ ; /* do nothing else */
+ }
+ break;
+ } else { /* not a comment */
+ (void) ungetc(c, yyin);
+ c = '/';
+ break;
+ /* NOTREACHED */
+ }
+
+ /* there may be an immediately following comment */
+ } while (c == '/');
+ return(c);
+}
+
+/* The core of the actual input() function to be used by (f)lex. The
+ * calling scheme between this and the actual input() redefinition is
+ * a bit different for lex and flex. See the #ifdef FLEX_SCANNER part
+ * in the head section. */
+static int
+skipcomment_input(void)
+{
+ int c;
+
+ c = getc (yyin);
+ if (string_terminator != '\0') {
+ /* don't look for comments inside strings! */
+ return insidestring_input(c);
+ } else if (c == '/') {
+ /* swallow everything until end of comment, if this is one */
+ return comment ();
+ } else if (c == '"' || c == '\'') {
+ /* a string is beginning here, so switch input method */
+ string_terminator = c;
+ }
+
+ return c;
+}
+
+#endif /* !COMMENTS_BY_FLEX */
+
+#define MY_YY_ALLOCSTEP 1000
+static void
+my_yymore(void)
+{
+ static size_t yytext_size = 0;
+
+ /* my_yytext is an ever-growing buffer. It will not ever
+ * shrink, nor will it be freed at end of program, for now */
+ while (my_yyleng + yyleng + 1 >= yytext_size) {
+ my_yytext = myrealloc(my_yytext,
+ yytext_size += MY_YY_ALLOCSTEP);
+ }
+
+ strncpy (my_yytext + my_yyleng, yytext, yyleng+1);
+ my_yyleng += yyleng;
+}
+
diff --git a/src/fscanner.l b/src/fscanner.l
new file mode 100644
index 0000000..2b264d3
--- /dev/null
+++ b/src/fscanner.l
@@ -0,0 +1,1066 @@
+%{
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * C symbol scanner
+ */
+#include "global.h"
+#include "alloc.h"
+#include "scanner.h"
+#include "lookup.h"
+
+#include <assert.h>
+
+/* the line counting has been moved from character reading for speed */
+/* comments are discarded */
+
+#ifndef FLEX_SCANNER
+# error Sorry, this scanner needs flex. It is not usable with AT&T Lex.
+#endif
+
+#define IFLEVELINC 5 /* #if nesting level size increment */
+#define YY_NO_TOP_STATE 1
+
+static char const rcsid[] = "$Id: fscanner.l,v 1.17 2012/08/02 21:48:08 broeker Exp $";
+
+int first; /* buffer index for first char of symbol */
+int last; /* buffer index for last char of symbol */
+int lineno; /* symbol line number */
+int myylineno = 1;
+
+/* HBB 20001007: new variables, emulating yytext in a way that allows
+ * the yymore() simulation, my_yymore(), to be used even in the presence of
+ * yyless(). */
+size_t my_yyleng = 0;
+char *my_yytext = NULL;
+
+static BOOL arraydimension; /* inside array dimension declaration */
+static BOOL bplisting; /* breakpoint listing */
+static int braces; /* unmatched left brace count */
+static BOOL classdef; /* c++ class definition */
+static BOOL elseelif; /* #else or #elif found */
+static BOOL esudef; /* enum/struct/union global definition */
+static BOOL external; /* external definition */
+static int externalbraces; /* external definition outer brace count */
+static BOOL fcndef; /* function definition */
+static BOOL global; /* file global scope (outside functions) */
+static int iflevel; /* #if nesting level */
+static BOOL initializer; /* data initializer */
+static int initializerbraces; /* data initializer outer brace count */
+static BOOL lex; /* lex file */
+static int miflevel = IFLEVELINC; /* maximum #if nesting level */
+static int *maxifbraces; /* maximum brace count within #if */
+static int *preifbraces; /* brace count before #if */
+static int parens; /* unmatched left parenthesis count */
+static BOOL ppdefine; /* preprocessor define statement */
+static BOOL pseudoelif; /* pseudo-#elif */
+static BOOL oldtype; /* next identifier is an old type */
+static BOOL rules; /* lex/yacc rules */
+static BOOL sdl; /* sdl file */
+static BOOL structfield; /* structure field declaration */
+static int tagdef; /* class/enum/struct/union tag definition */
+static BOOL template; /* function template */
+static int templateparens; /* function template outer parentheses count */
+static int typedefbraces = -1; /* initial typedef brace count */
+static int token; /* token found */
+static int ident_start; /* begin of preceding identifier */
+
+/* If this is defined to 1, use flex rules rather than the input
+ * function to discard comments. The scanner gains quite a bit of
+ * speed this way, because of a large reduction of the number of I/O
+ * system/library calls. The original skipcomment_input() called
+ * getc() so often that the call overhead of shared libraries
+ * vs. static linking, alone, already caused a sizeable performance
+ * hit (up to 40% gross gain on a cscope -cub of its own source
+ * dir). */
+#define COMMENTS_BY_FLEX 1
+
+#if !COMMENTS_BY_FLEX
+static int skipcomment_input(void);
+static int comment(void);
+static int insidestring_input(int);
+#endif
+
+static void my_yymore(void);
+
+#if COMMENTS_BY_FLEX
+# define skipcomment_input input
+#else
+
+# define YY_INPUT(buf,result,max_size) \
+{ \
+ int c = skipcomment_input (); \
+ result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \
+}
+
+#endif /* !COMMENTS_BY_FLEX*/
+
+
+%}
+identifier [a-zA-Z_$][a-zA-Z_0-9$]*
+number \.?[0-9][.0-9a-fA-FlLuUxX]*
+comment "/*"([^*]*("*"+[^/])?)*"*/"|"//"[^\n]*\n
+ws [ \t\r\v\f]
+wsnl [ \t\r\v\f\n]|{comment}
+
+/* flex options: stack of start conditions, and don't use yywrap() */
+%option stack
+%option noyywrap
+
+%start SDL
+%a 4000
+%o 7000
+
+/* exclusive start conditions. not available in AT&T lex -> use flex! */
+%x IN_PREPROC WAS_ENDIF WAS_IDENTIFIER WAS_ESU IN_DQUOTE IN_SQUOTE COMMENT
+
+%%
+
+%\{ { /* lex/yacc C declarations/definitions */
+ global = YES;
+ goto more;
+ /* NOTREACHED */
+ }
+%\} {
+ global = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+^%% { /* lex/yacc rules delimiter */
+ braces = 0;
+ if (rules == NO) {
+ /* this %% starts the section containing the rules */
+ rules = YES;
+
+ /* Copy yytext to private buffer, to be able to add further
+ * content following it: */
+ my_yymore();
+
+ /* simulate a yylex() or yyparse() definition */
+ (void) strcat(my_yytext, " /* ");
+ first = strlen(my_yytext);
+ if (lex == YES) {
+ (void) strcat(my_yytext, "yylex");
+ } else {
+ /* yacc: yyparse implicitly calls yylex */
+ char *s = " yylex()";
+ char *cp = s + strlen(s);
+ while (--cp >= s) {
+ unput(*cp);
+ }
+ (void) strcat(my_yytext, "yyparse");
+ }
+ last = strlen(my_yytext);
+ (void) strcat(my_yytext, " */");
+ my_yyleng = strlen(my_yytext);
+ return(FCNDEF);
+ } else {
+ /* were in the rules section, now comes the closing one */
+ rules = NO;
+ global = YES;
+ last = first;
+ my_yymore();
+ return(FCNEND);
+ /* NOTREACHED */
+ }
+ }
+
+<SDL>STATE[ \t]+({identifier}|\*) { /* sdl state, treat as function def */
+ braces = 1;
+ fcndef = YES;
+ token = FCNDEF;
+ goto findident;
+ /* NOTREACHED */
+ }
+<SDL>ENDSTATE[ \t] { /* end of an sdl state, treat as end of a function */
+ goto endstate;
+ /* NOTREACHED */
+ }
+
+\{ { /* count unmatched left braces for fcn def detection */
+ ++braces;
+
+ /* mark an untagged enum/struct/union so its beginning
+ can be found */
+ if (tagdef) {
+ if (braces == 1) {
+ esudef = YES;
+ }
+ token = tagdef;
+ tagdef = '\0';
+ last = first;
+ my_yymore();
+ return(token);
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+
+\#{ws}* { /* start a preprocessor line */
+ if (rules == NO) /* don't consider CPP for lex/yacc rules */
+ BEGIN(IN_PREPROC);
+ yyleng = 1; /* get rid of the blanks, if any */
+ goto more;
+ /* NOTREACHED */
+ }
+<IN_PREPROC>endif([^a-zA-Z0-9_$\n].*)? { /* #endif */
+ /* delay treatment of #endif depending on whether an
+ * #if comes right after it, or not */
+ /* HBB 20010619: new pattern allows trailing garbage
+ * after the #endif */
+ BEGIN(WAS_ENDIF);
+ goto more;
+ /* NOTREACHED */
+ }
+<WAS_ENDIF>\n{wsnl}*#{ws}*if(ndef|def)?{ws}+ {
+ /* attempt to correct erroneous brace count caused by:
+ *
+ * #if ...
+ * ... {
+ * #endif
+ * #if ...
+ * ... {
+ * #endif
+ */
+ /* the current #if must not have an #else or #elif */
+ if (elseelif == YES) {
+ goto endif;
+ /* NOTREACHED */
+ }
+ pseudoelif = YES;
+ BEGIN(INITIAL);
+ yyless(1); /* rescan all but the line ending */
+ yy_set_bol(1);
+ goto eol;
+ /* NOTREACHED */
+ }
+<WAS_ENDIF>\n{wsnl}* { /* an #endif with no #if right after it */
+ endif:
+ if (iflevel > 0) {
+ /* get the maximum brace count for this #if */
+ if (braces < maxifbraces[--iflevel]) {
+ braces = maxifbraces[iflevel];
+ }
+ }
+ BEGIN(INITIAL);
+ yyless(1);
+ yy_set_bol(1);
+ goto eol;
+ /* NOTREACHED */
+ }
+
+<IN_PREPROC>ifndef{ws}+ |
+<IN_PREPROC>ifdef{ws}+ |
+<IN_PREPROC>if{ws}+ { /* #if directive */
+ elseelif = NO;
+ if (pseudoelif == YES) {
+ pseudoelif = NO;
+ goto elif;
+ /* NOTREACHED */
+ }
+ /* make sure there is room for the current brace count */
+ if (iflevel == miflevel) {
+ miflevel += IFLEVELINC;
+ maxifbraces = myrealloc(maxifbraces, miflevel * sizeof(int));
+ preifbraces = myrealloc(preifbraces, miflevel * sizeof(int));
+ }
+ /* push the current brace count */
+ preifbraces[iflevel] = braces;
+ maxifbraces[iflevel++] = 0;
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+<IN_PREPROC>else({ws}.*)? { /* #else --- eat up whole line */
+ elseelif = YES;
+ if (iflevel > 0) {
+
+ /* save the maximum brace count for this #if */
+ if (braces > maxifbraces[iflevel - 1]) {
+ maxifbraces[iflevel - 1] = braces;
+ }
+ /* restore the brace count to before the #if */
+ braces = preifbraces[iflevel - 1];
+ }
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+<IN_PREPROC>elif{ws}+ { /* #elif */
+ /* elseelif = YES; --- HBB I doubt this is correct */
+ elif:
+ if (iflevel > 0) {
+
+ /* save the maximum brace count for this #if */
+ if (braces > maxifbraces[iflevel - 1]) {
+ maxifbraces[iflevel - 1] = braces;
+ }
+ /* restore the brace count to before the #if */
+ braces = preifbraces[iflevel - 1];
+ }
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+
+<IN_PREPROC>include{ws}*\"[^"\n]+\" |
+<IN_PREPROC>include{ws}*<[^>\n]+> { /* #include file */
+ char *s;
+ char remember = yytext[yyleng-1];
+
+ my_yymore();
+ s = strpbrk(my_yytext, "\"<");
+ if (!s)
+ return(LEXERR);
+ my_yytext[my_yyleng-1] = '\0';
+ incfile(s + 1, s);
+ my_yytext[my_yyleng-1] = remember;
+ first = s - my_yytext;
+ last = my_yyleng - 1;
+ if (compress == YES) {
+ my_yytext[0] = '\2'; /* compress the keyword */
+ }
+ BEGIN(INITIAL);
+ return(INCLUDE);
+ /* NOTREACHED */
+ }
+
+\} {
+ /* could be the last enum member initializer */
+ if (braces == initializerbraces) {
+ initializerbraces = -1;
+ initializer = NO;
+ }
+ if (--braces <= 0) {
+ endstate:
+ braces = 0;
+ classdef = NO;
+ }
+ if (braces == 0 || (braces == 1 && classdef == YES)) {
+
+ /* if the end of an enum/struct/union definition */
+ if (esudef == YES) {
+ esudef = NO;
+ }
+ /* if the end of the function */
+ else if (fcndef == YES) {
+ fcndef = NO;
+ last = first;
+ my_yymore();
+ return(FCNEND);
+ }
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+
+\( { /* count unmatched left parentheses for function templates */
+ ++parens;
+ goto more;
+ /* NOTREACHED */
+ }
+\) {
+ if (--parens <= 0) {
+ parens = 0;
+ }
+ /* if the end of a function template */
+ if (parens == templateparens) {
+ templateparens = -1;
+ template = NO;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+= { /* if a global definition initializer */
+ if (!my_yytext)
+ return(LEXERR);
+ if (global == YES && ppdefine == NO && my_yytext[0] != '#') {
+ initializerbraces = braces;
+ initializer = YES;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+: { /* a if global structure field */
+ if (!my_yytext)
+ return(LEXERR);
+ if (global == YES && ppdefine == NO && my_yytext[0] != '#') {
+ structfield = YES;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+\, {
+ if (braces == initializerbraces) {
+ initializerbraces = -1;
+ initializer = NO;
+ }
+ structfield = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+; { /* if the enum/struct/union was not a definition */
+ if (braces == 0) {
+ esudef = NO;
+ }
+ /* if the end of a typedef */
+ if (braces == typedefbraces) {
+ typedefbraces = -1;
+ }
+ /* if the end of a external definition */
+ if (braces == externalbraces) {
+ externalbraces = -1;
+ external = NO;
+ }
+ structfield = NO;
+ initializer = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+<IN_PREPROC>define{ws}+{identifier} {
+
+ /* preprocessor macro or constant definition */
+ ppdefine = YES;
+ token = DEFINE;
+ if (compress == YES) {
+ my_yytext[0] = '\1'; /* compress the keyword */
+ }
+ findident:
+ /* search backwards through yytext[] to find the identifier */
+ /* NOTE: this had better be left to flex, by use of
+ * yet another starting condition */
+ my_yymore();
+ first = my_yyleng - 1;
+ while (my_yytext[first] != ' ' && my_yytext[first] != '\t') {
+ --first;
+ }
+ ++first;
+ last = my_yyleng;
+ BEGIN(INITIAL);
+ goto definition;
+ /* NOTREACHED */
+ }
+<IN_PREPROC>\n { /* unknown preprocessor line */
+ BEGIN(INITIAL);
+ ++myylineno;
+ goto more;
+ /* NOTREACHED */
+ }
+<IN_PREPROC>. |
+<IN_PREPROC>{identifier} { /* unknown preprocessor line */
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+
+class{wsnl}+{identifier}({wsnl}|{identifier}|[():])*\{ { /* class definition */
+ classdef = YES;
+ tagdef = 'c';
+ yyless(5); /* eat up 'class', and re-scan */
+ yy_set_bol(0);
+ goto more;
+ /* NOTREACHED */
+ }
+
+("enum"|"struct"|"union") {
+ ident_start = first;
+ BEGIN(WAS_ESU);
+ goto more;
+ }
+<WAS_ESU>{
+({wsnl}+{identifier}){wsnl}*\{ { /* e/s/u definition */
+ tagdef = my_yytext[ident_start];
+ BEGIN(WAS_IDENTIFIER);
+ goto ident;
+ }
+{wsnl}*\{ { /* e/s/u definition without a tag */
+ tagdef = my_yytext[ident_start];
+ BEGIN(INITIAL);
+ if (braces == 0) {
+ esudef = YES;
+ }
+ last = first;
+ yyless(0); /* re-scan all this as normal text */
+ tagdef = '\0';
+ goto more;
+ }
+({wsnl}+{identifier})?{wsnl}* |
+.|\n { /* e/s/u usage */
+ BEGIN(WAS_IDENTIFIER);
+ goto ident;
+ }
+}
+
+if{wsnl}*\( { /* ignore 'if' */
+ yyless(2);
+ yy_set_bol(0);
+ goto more;
+}
+
+{identifier} { /* identifier found: do nothing, yet. (!) */
+ BEGIN(WAS_IDENTIFIER);
+ ident_start = first;
+ goto more;
+ /* NOTREACHED */
+ }
+
+<WAS_IDENTIFIER>{
+{ws}*\(({wsnl}|{identifier}|{number}|[*&[\]=,.:])*\)([()]|{wsnl})*[:a-zA-Z_#{] {
+ /* a function definition */
+ /* note: "#define a (b) {" and "#if defined(a)\n#"
+ * are not fcn definitions! */
+ /* warning: "if (...)" must not overflow yytext,
+ * so the content of function argument definitions
+ * is restricted, in particular parentheses are
+ * not allowed */
+ /* FIXME HBB 20001003: the above 'not allowed' may well be the
+ * reason for the parsing bug concerning function pointer usage,
+ * I suspect. --- I think my new special-case rule for 'if'
+ * could be helpful in removing that limitation */
+ if ((braces == 0 && ppdefine == NO && my_yytext[0] != '#' && rules == NO) ||
+ (braces == 1 && classdef == YES)) {
+ fcndef = YES;
+ token = FCNDEF;
+ goto fcn;
+ /* NOTREACHED */
+ }
+ goto fcncal;
+ /* NOTREACHED */
+ }
+{ws}*\(([*&[\]=,.]|{identifier}|{number}|{wsnl})* { /* function call */
+ fcncal: if (fcndef == YES || ppdefine == YES || rules == YES) {
+ token = FCNCALL;
+ goto fcn;
+ /* NOTREACHED */
+ }
+ if (template == NO) {
+ templateparens = parens;
+ template = YES;
+ }
+ goto ident;
+ /* NOTREACHED */
+ }
+("*"|{wsnl})+{identifier} { /* typedef name or modifier use */
+ goto ident;
+ /* NOTREACHED */
+ }
+.|\n { /* general identifer usage */
+ char *s;
+
+ if (global == YES && ppdefine == NO && my_yytext[0] != '#' &&
+ external == NO && initializer == NO &&
+ arraydimension == NO && structfield == NO &&
+ template == NO && fcndef == NO) {
+ if (esudef == YES) {
+ /* if enum/struct/union */
+ token = MEMBERDEF;
+ } else {
+ token = GLOBALDEF;
+ }
+ } else {
+ ident:
+ token = IDENT;
+ }
+ fcn:
+ if (YYSTATE == WAS_IDENTIFIER) {
+ /* Position back to the actual identifier: */
+ last = first;
+ first = ident_start;
+ yyless(0);
+ /* HBB 20001008: if the anti-backup-pattern above matched,
+ * and the matched context ended with a \n, then the scanner
+ * believes it's at the start of a new line. But the yyless()
+ * should feeds that \n back into the input, so that's
+ * wrong. --> force 'beginning-of-line' status off. */
+ yy_set_bol(0);
+ BEGIN(INITIAL);
+ } else {
+ my_yymore();
+ last = my_yyleng;
+ }
+ definition:
+
+ /* if a long line */
+ if (yyleng > STMTMAX) {
+ int c;
+
+ /* skip to the end of the line */
+ warning("line too long");
+ while ((c = skipcomment_input()) > LEXEOF) {
+ if (c == '\n') {
+ unput(c);
+ break;
+ }
+ }
+ }
+ /* truncate a long symbol */
+ if (yyleng > PATLEN) {
+ warning("symbol too long");
+ my_yyleng = first + PATLEN;
+ my_yytext[my_yyleng] = '\0';
+ }
+
+ /* if found word was a keyword: */
+ if ((s = lookup(my_yytext + first)) != NULL) {
+ first = my_yyleng;
+
+ /* if the start of a typedef */
+ if (s == typedeftext) {
+ typedefbraces = braces;
+ oldtype = YES;
+ }
+ /* if an enum/struct/union */
+ /* (needed for "typedef struct tag name;" so
+ tag isn't marked as the typedef name) */
+ else if (s == enumtext || s == structtext || s == uniontext) {
+ /* do nothing */
+ } else if (s == externtext) {
+ /* if an external definition */
+ externalbraces = braces;
+ external = YES;
+ } else if (templateparens == parens && template == YES) {
+ /* keyword doesn't start a function
+ * template */
+ templateparens = -1;
+ template = NO;
+ } else {
+ /* identifier after typedef was a
+ * keyword */
+ oldtype = NO;
+ }
+ } else {
+ /* not a keyword --> found an identifier */
+ /* last = yyleng; */
+
+ /* if a class/enum/struct/union tag definition */
+ /* FIXME HBB 20001001: why reject "class"? */
+ if (tagdef && strnotequal(my_yytext + first, "class")) {
+ token = tagdef;
+ tagdef = '\0';
+ if (braces == 0) {
+ esudef = YES;
+ }
+ } else if (braces == typedefbraces && oldtype == NO &&
+ arraydimension == NO) {
+ /* if a typedef name */
+ token = TYPEDEF;
+ } else {
+ oldtype = NO;
+ }
+ /* my_yymore(); */
+ return(token);
+ /* NOTREACHED */
+ }
+ }
+}
+
+\[ { /* array dimension (don't worry or about subscripts) */
+ arraydimension = YES;
+ goto more;
+ /* NOTREACHED */
+ }
+\] {
+ arraydimension = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+\\\n { /* preprocessor statement is continued on next line */
+ /* save the '\\' to the output file, but not the '\n': */
+ yyleng = 1;
+ my_yymore();
+ goto eol;
+ /* NOTREACHED */
+ }
+\n { /* end of the line */
+ if (ppdefine == YES) { /* end of a #define */
+ ppdefine = NO;
+ yyless(yyleng - 1);
+ last = first;
+ my_yymore();
+ return(DEFINEEND);
+ }
+ /* skip the first 8 columns of a breakpoint listing line */
+ /* and skip the file path in the page header */
+ if (bplisting == YES) {
+ int c, i;
+
+ /* FIXME HBB 20001007: should call input() instead */
+ switch (skipcomment_input()) { /* tab and EOF just fall through */
+ case ' ': /* breakpoint number line */
+ case '[':
+ for (i = 1; i < 8 && skipcomment_input() > LEXEOF; ++i)
+ ;
+ break;
+ case '.': /* header line */
+ case '/':
+ /* skip to the end of the line */
+ while ((c = skipcomment_input()) > LEXEOF) {
+ if (c == '\n') {
+ unput(c);
+ break;
+ }
+ }
+ break;
+ case '\n': /* empty line */
+ unput('\n');
+ break;
+ }
+ }
+ eol:
+ ++myylineno;
+ first = 0;
+ last = 0;
+ if (symbols > 0) {
+ /* no my_yymore(): \n doesn't need to be in my_yytext */
+ return(NEWLINE);
+ }
+ /* line ended --> flush my_yytext */
+ if (my_yytext)
+ *my_yytext = '\0';
+ my_yyleng = 0;
+ lineno = myylineno;
+ }
+
+\' { /* character constant */
+ if (sdl == NO)
+ BEGIN(IN_SQUOTE);
+ goto more;
+ /* NOTREACHED */
+ }
+<IN_SQUOTE>\' {
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+\" { /* string constant */
+ BEGIN(IN_DQUOTE);
+ goto more;
+ /* NOTREACHED */
+ }
+<IN_DQUOTE>\" {
+ BEGIN(INITIAL);
+ goto more;
+ /* NOTREACHED */
+ }
+<IN_DQUOTE,IN_SQUOTE>{
+\n { /* syntax error: unexpected EOL */
+ BEGIN(INITIAL);
+ goto eol;
+ /* NOTREACHED */
+ }
+\\. |
+. {
+ goto more;
+ /* NOTREACHED */
+ }
+\\\n { /* line continuation inside a string! */
+ myylineno++;
+ goto more;
+ /* NOTREACHED */
+ }
+}
+
+^{ws}+ { /* don't save leading white space */
+ }
+
+{ws}+\n { /* eat whitespace at end of line */
+ unput('\n');
+ }
+
+[\t\r\v\f]+ { /* eat non-blank whitespace sequences, replace
+ * by single blank */
+ unput(' ');
+ }
+
+{ws}{2,} { /* compress sequential whitespace here, not in putcrossref() */
+ unput(' ');
+ }
+
+"/*" yy_push_state(COMMENT);
+<COMMENT>{
+[^*\n]* |
+"*"+[^*/\n]* ; /* do nothing */
+[^*\n]*\n |
+"*"+[^*/\n]*\n {
+ if (ppdefine == NO) {
+ goto eol;
+ } else {
+ ++myylineno;
+ }
+ /* NOTREACHED */
+ }
+"*"+"/" {
+ /* replace the comment by a single blank */
+ unput(' ');
+ yy_pop_state();
+ }
+}
+
+"//".*\n? {
+ /* C++-style one-line comment */
+ goto eol;
+ /* NOTREACHED */
+ }
+
+{number} | /* number */
+<SDL>STATE[ \t]+ | /* ... and other syntax error catchers... */
+. { /* punctuation and operators */
+ more:
+ my_yymore();
+ first = my_yyleng;
+ }
+
+%%
+
+void
+initscanner(char *srcfile)
+{
+ char *s;
+
+ if (maxifbraces == NULL) {
+ maxifbraces = mymalloc(miflevel * sizeof(int));
+ preifbraces = mymalloc(miflevel * sizeof(int));
+ }
+ first = 0; /* buffer index for first char of symbol */
+ last = 0; /* buffer index for last char of symbol */
+ lineno = 1; /* symbol line number */
+ myylineno = 1; /* input line number */
+ arraydimension = NO; /* inside array dimension declaration */
+ bplisting = NO; /* breakpoint listing */
+ braces = 0; /* unmatched left brace count */
+ classdef = NO; /* c++ class definition */
+ elseelif = NO; /* #else or #elif found */
+ esudef = NO; /* enum/struct/union global definition */
+ external = NO; /* external definition */
+ externalbraces = -1; /* external definition outer brace count */
+ fcndef = NO; /* function definition */
+ global = YES; /* file global scope (outside functions) */
+ iflevel = 0; /* #if nesting level */
+ initializer = NO; /* data initializer */
+ initializerbraces = -1; /* data initializer outer brace count */
+ lex = NO; /* lex file */
+ parens = 0; /* unmatched left parenthesis count */
+ ppdefine = NO; /* preprocessor define statement */
+ pseudoelif = NO; /* pseudo-#elif */
+ oldtype = NO; /* next identifier is an old type */
+ rules = NO; /* lex/yacc rules */
+ sdl = NO; /* sdl file */
+ structfield = NO; /* structure field declaration */
+ tagdef = '\0'; /* class/enum/struct/union tag definition */
+ template = NO; /* function template */
+ templateparens = -1; /* function template outer parentheses count */
+ typedefbraces = -1; /* initial typedef braces count */
+ ident_start = 0; /* start of previously found identifier */
+
+ if (my_yytext)
+ *my_yytext = '\0';
+ my_yyleng = 0;
+
+ BEGIN(INITIAL);
+
+ /* if this is not a C file */
+ if ((s = strrchr(srcfile, '.')) != NULL) {
+ switch (*++s) { /* this switch saves time on C files */
+ case 'b':
+ if (strcmp(s, "bp") == 0) { /* breakpoint listing */
+ bplisting = YES;
+ }
+ break;
+ case 'l':
+ if (strcmp(s, "l") == 0) { /* lex */
+ lex = YES;
+ global = NO;
+ }
+ break;
+ case 's':
+ if (strcmp(s, "sd") == 0) { /* sdl */
+ sdl = YES;
+ BEGIN(SDL);
+ }
+ break;
+ case 'y':
+ if (strcmp(s, "y") == 0) { /* yacc */
+ global = NO;
+ }
+ break;
+ }
+ }
+}
+
+#if !COMMENTS_BY_FLEX
+
+/* A micro-scanner that serves as the input() function of the
+ * scanner. It throws away any comments in the input, correctly
+ * avoiding doing this inside string/character constants, and knows
+ * about backslash sequences. Now that the main scanner doesn't use
+ * yymore() any longer, this could be replaced by lex rules. Left for
+ * trying later. */
+
+/* Status variable: If this is non-NUL, it's the character that
+* terminates a string we're currently in. */
+static int string_terminator = '\0';
+
+/* Helper routine: treat 'c' as a character found inside a
+ * string. Check if this character might be the end of that
+ * string. Backslashes have to be taken care of, for the sake of
+ * "quotes like \"these\" found inside a string". */
+static int
+insidestring_input(int c)
+{
+ static BOOL was_backslash = NO;
+
+ if ((c == '\\') && (was_backslash == NO)) {
+ /* escape character found --> treat next char specially */
+ /* FIXME HBB 20001003: need treatment of backslash in the main
+ * scanner, too. It'll get false line counts in case of "\\'",
+ * otherwise --- they can occur as part of a lex pattern */
+ was_backslash = YES;
+ return c;
+ }
+
+ if (((c == '\t') && (lex == YES))
+ /* Note: "\\\n" is removed even inside strings! */
+ || ((c == '\n') && (was_backslash == NO))
+ || (c == EOF)
+ || ((c == string_terminator) && (was_backslash == NO))
+ ) {
+ /* Line ended, or end-of-string was found. That is a syntax
+ * error. To recover, stop treatment as a string constant: */
+ string_terminator = '\0';
+ } else if (!isprint((unsigned char)c)) {
+ /* mask unprintable characters */
+ c = ' ';
+ }
+
+ was_backslash = NO;
+ return c;
+}
+
+/* Helper function: skip over input until end of comment is found (or
+ * we find that it wasn't really comment, in the first place): */
+static int
+comment(void)
+{
+ int c, lastc;
+
+ /* Coming here, we've just read in the opening '/' of a
+ * comment. */
+ do {
+ if ((c = getc(yyin)) == '*') { /* C comment */
+ lastc = '\0';
+ while ((c = getc(yyin)) != EOF
+ /* fewer '/'s --> test them first! */
+ && (c != '/' || lastc != '*')
+ ) {
+ if (c == '\n') {
+ /* keep the line number count */
+ /* FIXME HBB 20001008: this is not synchronized
+ * properly with myylineno changes by the main
+ * scanner. A strong point in favour of moving
+ * this to lex-code that is, IMHO */
+ ++myylineno;
+ }
+ lastc = c;
+ }
+ /* return a blank for Reiser cpp token concatenation */
+ /* FIXME HBB 20001008: what on earth is 'Reiser cpp'? ANSI
+ * C defines cpp to explicitly replace any comment by a
+ * blank. Pre-ANSI cpp's behaved differently, but do we
+ * really want that? If at all, it should only ever be a
+ * non-default option (like gcc's "-traditional-cpp")
+ * */
+ if ((c = getc(yyin)) == '_' || isalnum(c)) {
+ (void) ungetc(c, yyin);
+ c = ' ';
+ break;
+ }
+ } else if (c == '/') { /* C++ comment */
+ while ((c = getc(yyin)) != EOF && c != '\n') {
+ ; /* do nothing else */
+ }
+ break;
+ } else { /* not a comment */
+ (void) ungetc(c, yyin);
+ c = '/';
+ break;
+ /* NOTREACHED */
+ }
+
+ /* there may be an immediately following comment */
+ } while (c == '/');
+ return(c);
+}
+
+/* The core of the actual input() function to be used by (f)lex. The
+ * calling scheme between this and the actual input() redefinition is
+ * a bit different for lex and flex. See the #ifdef FLEX_SCANNER part
+ * in the head section. */
+static int
+skipcomment_input(void)
+{
+ int c;
+
+ c = getc (yyin);
+ if (string_terminator != '\0') {
+ /* don't look for comments inside strings! */
+ return insidestring_input(c);
+ } else if (c == '/') {
+ /* swallow everything until end of comment, if this is one */
+ return comment ();
+ } else if (c == '"' || c == '\'') {
+ /* a string is beginning here, so switch input method */
+ string_terminator = c;
+ }
+
+ return c;
+}
+
+#endif /* !COMMENTS_BY_FLEX */
+
+#define MY_YY_ALLOCSTEP 1000
+static void
+my_yymore(void)
+{
+ static size_t yytext_size = 0;
+
+ /* my_yytext is an ever-growing buffer. It will not ever
+ * shrink, nor will it be freed at end of program, for now */
+ while (my_yyleng + yyleng + 1 >= yytext_size) {
+ my_yytext = myrealloc(my_yytext,
+ yytext_size += MY_YY_ALLOCSTEP);
+ }
+
+ strncpy (my_yytext + my_yyleng, yytext, yyleng+1);
+ my_yyleng += yyleng;
+}
diff --git a/src/global.h b/src/global.h
new file mode 100644
index 0000000..cda29aa
--- /dev/null
+++ b/src/global.h
@@ -0,0 +1,430 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: global.h,v 1.38 2012/03/05 19:28:13 nhorman Exp $ */
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * global type, data, and function definitions
+ */
+
+#ifndef CSCOPE_GLOBAL_H
+#define CSCOPE_GLOBAL_H
+
+#include "config.h"
+#include <unistd.h>
+#include <sys/types.h>
+#include <ctype.h> /* isalpha, isdigit, etc. */
+#include <signal.h> /* SIGINT and SIGQUIT */
+#include <stdio.h> /* standard I/O package */
+#include <stdlib.h> /* standard library functions */
+
+/* A special "magic" header file required by HP/Compaq NSK (Non-Stop
+ * Kernel) to present a more Unix-ish environment ... */
+#ifdef HAVE_FLOSS_H
+# include <floss.h>
+#endif
+
+/* Replace most of the #if BSD stuff. Taken straight from the autoconf
+ * manual, with an extension for handling memset(). */
+#if STDC_HEADERS
+# include <string.h> /* string functions */
+#else
+# ifndef HAVE_STRCHR
+# define strchr index
+# define strrchr rindex
+# endif
+char *strchr (), *strrchr ();
+# ifndef HAVE_MEMCPY
+# define memcpy(d, s, n) bcopy ((s), (d), (n))
+# define memmove(d, s, n) bcopy ((s), (d), (n))
+# endif
+# ifndef HAVE_MEMSET
+# ifndef HAVE_MEMORY_H
+char *memset();
+# else
+# include <memory.h> /* memset */
+# endif /*V9*/
+# endif /* HAVE_MEMSET */
+#endif /* STDC_HEADERS */
+
+#include "constants.h" /* misc. constants */
+#include "invlib.h" /* inverted index library */
+#include "library.h" /* library function return values */
+
+/* Fallback, in case 'configure' failed to do its part of the job */
+#ifndef RETSIGTYPE
+#if SVR2 || BSD && !sun
+#define RETSIGTYPE int
+#else
+#define RETSIGTYPE void
+#endif
+#endif /* RETSIGTYPE */
+
+#ifndef HAVE_SIGHANDLER_T
+typedef RETSIGTYPE (*sighandler_t)(int);
+#endif
+
+#if HAVE_STDARG_H
+#include <stdarg.h>
+#if !HAVE_VSNPRINTF
+int rpl_vsnprintf(char *, size_t, const char *, va_list);
+#endif
+#if !HAVE_SNPRINTF
+int rpl_snprintf(char *, size_t, const char *, ...);
+#endif
+#if !HAVE_VASPRINTF
+int rpl_vasprintf(char **, const char *, va_list);
+#endif
+#if !HAVE_ASPRINTF
+int rpl_asprintf(char **, const char *, ...);
+#endif
+#endif /* HAVE_STDARG_H */
+
+/* FIXME: this testing for platforms is foolish. Stop it! */
+#if BSD
+# undef tolower /* BSD toupper and tolower don't test the character */
+# undef toupper
+# define tolower(c) (isupper(c) ? (c) - 'A' + 'a' : (c))
+# define toupper(c) (islower(c) ? (c) - 'a' + 'A' : (c))
+# if !sun
+# if !__FreeBSD__
+/* in traditional BSD, *printf() doesn't return the number of bytes
+ * written */
+# define PRINTF_RETVAL_BROKEN 1
+# endif /* !FreeBSD */
+# endif /* !sun */
+#endif
+
+/* Un-comment this if you're on a filesystem that doesn't support
+ * filenames longer than 14 characters */
+/* HBB FIXME 20030302: should have an autoconf test for this: */
+/* #define SHORT_NAMES_ONLY */
+
+/* Just in case autoconf didn't correctly flag HAVE_FIXKEYPAD */
+#ifndef HAVE_FIXKEYPAD
+# if SVR2 && !BSD && !V9 && !u3b2 && !sun
+# define HAVE_FIXKEYPAD
+# endif
+#endif
+
+/* HBB 20020728: if <fcntl.h> is there, #include it here, since that's
+ * where the system definitions of O_TEXT should be coming from */
+#ifdef HAVE_FCNTL_H
+# include <fcntl.h>
+#endif
+
+/* HBB 20020103: Need to force text or binary mode opens on Cygwins,
+ * because of their "binary/text mode mount" silliness :-( */
+#ifndef O_TEXT
+# ifdef _O_TEXT
+# define O_TEXT _O_TEXT
+# else
+# define O_TEXT 0x00
+# endif
+#endif
+/* Same for binary mode --- moved here from vp.h */
+#ifndef O_BINARY
+# ifdef _O_BINARY
+# define O_BINARY _O_BINARY
+# else
+# define O_BINARY 0x00
+# endif
+#endif
+
+#undef SETMODE
+#if O_BINARY || O_TEXT
+/* OK, looks like we are on an MSDOS-ish platform ---> define SETMODE
+ * to actually do something */
+# ifdef HAVE_SETMODE
+# define SETMODE(fildes, mode) setmode(fildes,mode)
+# else
+# ifdef HAVE__SETMODE
+# define SETMODE(fildes, mode) _setmode(fildes,mode)
+# endif
+# endif
+#endif
+
+/* access(2) parameters. Only make assumptions about their values if
+ * <unistd.h> fails to define them. */
+#ifdef R_OK
+# define READ R_OK
+#else
+# define READ 4
+#endif
+#ifdef W_OK
+# define WRITE W_OK
+#else
+# define WRITE 2
+#endif
+
+/* This can happen on only vaguely Unix-ish platforms... */
+#ifndef HAVE_LSTAT
+# define lstat(file,buf) stat(file,buf)
+#endif
+
+typedef enum { /* boolean data type */
+ NO,
+ YES
+} BOOL;
+
+typedef enum { /* findinit return code */
+ NOERROR,
+ NOTSYMBOL,
+ REGCMPERROR
+} FINDINIT;
+
+typedef struct { /* mouse action */
+ int button;
+ int percent;
+ int x1;
+ int y1;
+ int x2;
+ int y2;
+} MOUSE;
+
+struct cmd { /* command history struct */
+ struct cmd *prev, *next; /* list ptrs */
+ int field; /* input field number */
+ char *text; /* input field text */
+};
+
+/* digraph data for text compression */
+extern char dichar1[]; /* 16 most frequent first chars */
+extern char dichar2[]; /* 8 most frequent second chars
+ using the above as first chars */
+extern char dicode1[]; /* digraph first character code */
+extern char dicode2[]; /* digraph second character code */
+
+/* and some macros to help using dicodes: */
+/* Check if a given pair of chars is compressable as a dicode: */
+#define IS_A_DICODE(inchar1, inchar2) \
+ (dicode1[(unsigned char)(inchar1)] && dicode2[(unsigned char)(inchar2)])
+/* Combine the pair into a dicode */
+#define DICODE_COMPRESS(inchar1, inchar2) \
+ ((0200 - 2) + dicode1[(unsigned char)(inchar1)] \
+ + dicode2[(unsigned char)(inchar2)])
+
+/* main.c global data */
+extern char *editor, *home, *shell, *lineflag; /* environment variables */
+extern char *home; /* Home directory */
+extern BOOL lineflagafterfile;
+extern char *argv0; /* command name */
+extern BOOL compress; /* compress the characters in the crossref */
+extern BOOL dbtruncated; /* database symbols truncated to 8 chars */
+extern int dispcomponents; /* file path components to display */
+#if CCS
+extern BOOL displayversion; /* display the C Compilation System version */
+#endif
+extern BOOL editallprompt; /* prompt between editing files */
+extern unsigned int fileargc; /* file argument count */
+extern char **fileargv; /* file argument values */
+extern int fileversion; /* cross-reference file version */
+extern BOOL incurses; /* in curses */
+extern BOOL invertedindex; /* the database has an inverted index */
+extern BOOL isuptodate; /* consider the crossref up-to-date */
+extern BOOL kernelmode; /* don't use DFLT_INCDIR - bad for kernels */
+extern BOOL linemode; /* use line oriented user interface */
+extern BOOL verbosemode; /* print extra information on line mode */
+extern BOOL recurse_dir; /* recurse dirs when searching for src files */
+extern char *namefile; /* file of file names */
+extern BOOL ogs; /* display OGS book and subsystem names */
+extern char *prependpath; /* prepend path to file names */
+extern FILE *refsfound; /* references found file */
+extern char temp1[]; /* temporary file name */
+extern char temp2[]; /* temporary file name */
+extern long totalterms; /* total inverted index terms */
+extern BOOL trun_syms; /* truncate symbols to 8 characters */
+extern char tempstring[TEMPSTRING_LEN + 1]; /* global dummy string buffer */
+extern char *tmpdir; /* temporary directory */
+
+/* command.c global data */
+extern BOOL caseless; /* ignore letter case when searching */
+extern BOOL *change; /* change this line */
+extern BOOL changing; /* changing text */
+extern int selecting;
+extern unsigned int curdispline;
+extern char newpat[]; /* new pattern */
+extern char Pattern[]; /* symbol or text pattern */
+
+/* crossref.c global data */
+extern long dboffset; /* new database offset */
+extern BOOL errorsfound; /* prompt before clearing error messages */
+extern long lineoffset; /* source line database offset */
+extern long npostings; /* number of postings */
+extern unsigned long symbols; /* number of symbols */
+
+/* dir.c global data */
+extern char currentdir[]; /* current directory */
+extern char **incdirs; /* #include directories */
+extern char **srcdirs; /* source directories */
+extern char **srcfiles; /* source files */
+extern unsigned long nincdirs; /* number of #include directories */
+extern unsigned long nsrcdirs; /* number of source directories */
+extern unsigned long nsrcfiles; /* number of source files */
+extern unsigned long msrcfiles; /* maximum number of source files */
+
+/* display.c global data */
+extern int booklen; /* OGS book name display field length */
+extern int *displine; /* screen line of displayed reference */
+extern unsigned int disprefs; /* displayed references */
+extern int fcnlen; /* function name display field length */
+extern int field; /* input field */
+extern int filelen; /* file name display field length */
+extern unsigned fldcolumn; /* input field column */
+extern unsigned int mdisprefs; /* maximum displayed references */
+extern unsigned int nextline; /* next line to be shown */
+extern FILE *nonglobalrefs; /* non-global references file */
+extern int numlen; /* line number display field length */
+extern unsigned int topline; /* top line of page */
+extern int bottomline; /* bottom line of page */
+extern long searchcount; /* count of files searched */
+extern int subsystemlen; /* OGS subsystem name display field length */
+extern unsigned int totallines; /* total reference lines */
+extern const char dispchars[]; /* display chars for jumping to lines */
+
+/* find.c global data */
+extern char block[]; /* cross-reference file block */
+extern char blockmark; /* mark character to be searched for */
+extern long blocknumber; /* block number */
+extern char *blockp; /* pointer to current character in block */
+extern int blocklen; /* length of disk block read */
+
+/* lookup.c global data */
+extern struct keystruct {
+ char *text;
+ char delim;
+ struct keystruct *next;
+} keyword[];
+
+/* mouse.c global data */
+extern BOOL mouse; /* mouse interface */
+
+#if UNIXPC
+extern BOOL unixpcmouse; /* UNIX PC mouse interface */
+#endif
+
+/* cscope functions called from more than one function or between files */
+
+char *filepath(char *file);
+char *findcalledby(char *pattern);
+char *findcalling(char *pattern);
+char *findallfcns(char *dummy);
+char *finddef(char *pattern);
+char *findfile(char *dummy);
+char *findinclude(char *pattern);
+char *findsymbol(char *pattern);
+char *findassign(char *pattern);
+char *findregexp(char *egreppat);
+char *findstring(char *pattern);
+char *inviewpath(char *file);
+char *lookup(char *ident);
+char *pathcomponents(char *path, int components);
+char *read_block(void);
+char *scanpast(char c);
+
+
+void addcmd(int f, char *s);
+void addsrcfile(char *path);
+void askforchar(void);
+void askforreturn(void);
+void atchange(void);
+void atfield(void);
+void cannotwrite(char *file);
+void cannotopen(char *file);
+void clearmsg(void);
+void clearmsg2(void);
+void countrefs(void);
+void crossref(char *srcfile);
+void dispinit(void);
+void display(void);
+void drawscrollbar(int top, int bot);
+void edit(char *file, char *linenum);
+void editall(void);
+void editref(int);
+void entercurses(void);
+void exitcurses(void);
+void findcleanup(void);
+void freesrclist(void);
+void freeinclist(void);
+void freecrossref(void);
+void freefilelist(void);
+void help(void);
+void incfile(char *file, char *type);
+void includedir(char *_dirname);
+void initsymtab(void);
+void makefilelist(void);
+void mousecleanup(void);
+void mousemenu(void);
+void mouseinit(void);
+void mousereinit(void);
+void myexit(int sig);
+void myperror(char *text);
+void ogsnames(char *file, char **subsystem, char **book);
+void progress(char *what, long current, long max);
+void putfilename(char *srcfile);
+void postmsg(char *msg);
+void postmsg2(char *msg);
+void posterr(char *msg,...);
+void postfatal(const char *msg,...);
+void putposting(char *term, int type);
+void fetch_string_from_dbase(char *, size_t);
+void resetcmd(void);
+void seekline(unsigned int line);
+void setfield(void);
+void shellpath(char *out, int limit, char *in);
+void sourcedir(char *dirlist);
+void myungetch(int c);
+void warning(char *text);
+void writestring(char *s);
+
+BOOL command(int commandc);
+BOOL infilelist(char *file);
+BOOL readrefs(char *filename);
+BOOL search(void);
+BOOL writerefsfound(void);
+
+FINDINIT findinit(char *pattern);
+MOUSE *getmouseaction(char leading_char);
+struct cmd *currentcmd(void);
+struct cmd *prevcmd(void);
+struct cmd *nextcmd(void);
+
+int egrep(char *file, FILE *output, char *format);
+int mygetline(char p[], char s[], unsigned size, int firstchar, BOOL iscaseless);
+int mygetch(void);
+int hash(char *ss);
+int execute(char *a, ...);
+long dbseek(long offset);
+
+
+#endif /* CSCOPE_GLOBAL_H */
diff --git a/src/gmacs.ml b/src/gmacs.ml
new file mode 100644
index 0000000..514e542
--- /dev/null
+++ b/src/gmacs.ml
@@ -0,0 +1,65 @@
+ ; ===========================================================================
+ ; Copyright (c) 1998-2000, The Santa Cruz Operation
+ ; All rights reserved.
+
+ ; Redistribution and use in source and binary forms, with or without
+ ; modification, are permitted provided that the following conditions are met:
+
+ ; *Redistributions of source code must retain the above copyright notice,
+ ; this list of conditions and the following disclaimer.
+
+ ; *Redistributions in binary form must reproduce the above copyright notice,
+ ; this list of conditions and the following disclaimer in the documentation
+ ; and/or other materials provided with the distribution.
+
+ ; *Neither name of The Santa Cruz Operation nor the names of its contributors
+ ; may be used to endorse or promote products derived from this software
+ ; without specific prior written permission.
+
+ ; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ ; IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ ; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ ; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ ; INTERRUPTION)
+ ; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ ; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ ; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ ; DAMAGE.
+ ; =========================================================================
+ ; $Id: gmacs.ml,v 1.1 2000/04/27 16:33:47 petr Exp $
+
+
+ ; cscope.ml (s.cscope.ml) - 1.4 (2/21/84 14:53:58)
+ ;
+ ; Macro to handle invocation of gmacs by cscope from the
+ ; experimental tools. Cscope invokes gmacs with two arguments:
+ ;
+ ; gmacs +line file
+ ;
+ ; This macro gobbles the line number, visits the specified file,
+ ; and moves to the specified line number.
+
+(progn
+ args
+ pluses
+ (setq pluses 0)
+ (setq args (argc))
+ (if (> args 1)
+ (progn
+ (if (= (string-to-char "+") (string-to-char (argv 1)))
+ (setq pluses 1)
+ )
+ (setq args (- args 1))
+ (while (> args pluses)
+ (visit-file (argv args))
+ (setq args (- args 1))
+ )
+ (if (= (> (argc) 2) (> pluses 0))
+ (goto-line (argv 1))
+ )
+ )
+ )
+)
diff --git a/src/gscope.c b/src/gscope.c
new file mode 100644
index 0000000..f26f1b1
--- /dev/null
+++ b/src/gscope.c
@@ -0,0 +1 @@
+/* Placeholder file --- replace by real gscope.c if you have it */ \ No newline at end of file
diff --git a/src/help.c b/src/help.c
new file mode 100644
index 0000000..26d1db7
--- /dev/null
+++ b/src/help.c
@@ -0,0 +1,151 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * display help
+ *
+ */
+
+#include "global.h"
+#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+#include <ncurses.h>
+#else
+#include <curses.h>
+#endif
+/*
+ max num of lines of help screen -
+ this number needs to be increased if more than n help items are needed
+*/
+#define MAXHELP 50 /* maximum number of help strings */
+
+static char const rcsid[] = "$Id: help.c,v 1.6 2005/04/29 18:44:31 broeker Exp $";
+
+void
+help(void)
+{
+ char **ep, *s, **tp, *text[MAXHELP];
+ int ln;
+
+ tp = text;
+ if (changing == NO) {
+ if (mouse) {
+ *tp++ = "Point with the mouse and click button 1 to move to the desired input field,\n";
+ *tp++ = "type the pattern to search for, and then press the RETURN key. For the first 4\n";
+ *tp++ = "and last 2 input fields, the pattern can be a regcomp(3) regular expression.\n";
+ *tp++ = "If the search is successful, you can edit the file containing a displayed line\n";
+ *tp++ = "by pointing with the mouse and clicking button 1.\n";
+ *tp++ = "\nYou can either use the button 2 menu or these single-character commands:\n\n";
+ } else {
+ *tp++ = "Press the RETURN key repeatedly to move to the desired input field, type the\n";
+ *tp++ = "pattern to search for, and then press the RETURN key. For the first 4 and\n";
+ *tp++ = "last 2 input fields, the pattern can be a regcomp(3) regular expression.\n";
+ *tp++ = "If the search is successful, you can use these single-character commands:\n\n";
+ *tp++ = "0-9a-zA-Z\tEdit the file containing the displayed line.\n";
+ }
+ *tp++ = "space bar\tDisplay next set of matching lines.\n";
+ *tp++ = "+\t\tDisplay next set of matching lines.\n";
+ *tp++ = "^V\t\tDisplay next set of matching lines.\n";
+ *tp++ = "-\t\tDisplay previous set of matching lines.\n";
+ *tp++ = "^E\t\tEdit all lines.\n";
+ *tp++ = ">\t\tWrite the list of lines being displayed to a file.\n";
+ *tp++ = ">>\t\tAppend the list of lines being displayed to a file.\n";
+ *tp++ = "<\t\tRead lines from a file.\n";
+ *tp++ = "^\t\tFilter all lines through a shell command.\n";
+ *tp++ = "|\t\tPipe all lines to a shell command.\n";
+ if (!mouse) {
+ *tp++ = "\nAt any time you can use these single-character commands:\n\n";
+ *tp++ = "TAB\t\tSwap positions between input and output areas.\n";
+ *tp++ = "RETURN\t\tMove to the next input field.\n";
+ *tp++ = "^N\t\tMove to the next input field.\n";
+ *tp++ = "^P\t\tMove to the previous input field.\n";
+ }
+ *tp++ = "^Y / ^A\t\tSearch with the last pattern typed.\n";
+ *tp++ = "^B\t\tRecall previous input field and search pattern.\n";
+ *tp++ = "^F\t\tRecall next input field and search pattern.\n";
+ if(caseless)
+ *tp++ = "^C\t\tToggle ignore/use letter case when searching (IGNORE).\n";
+ else
+ *tp++ = "^C\t\tToggle ignore/use letter case when searching (USE).\n";
+ *tp++ = "^R\t\tRebuild the cross-reference.\n";
+ *tp++ = "!\t\tStart an interactive shell (type ^D to return to cscope).\n";
+ *tp++ = "^L\t\tRedraw the screen.\n";
+ *tp++ = "?\t\tDisplay this list of commands.\n";
+ *tp++ = "^D\t\tExit cscope.\n";
+ *tp++ = "\nNote: If the first character of the pattern you want to search for matches\n";
+ *tp++ = "a command, type a \\ character first.\n";
+ *tp++ = "Note: Some ctrl keys may be occupied by your terminal configuration.\n";
+ } else {
+ if (mouse) {
+ *tp++ = "Point with the mouse and click button 1 to mark or unmark the line to be\n";
+ *tp++ = "changed. You can also use the button 2 menu or these single-character\n";
+ *tp++ = "commands:\n\n";
+ }
+ else {
+ *tp++ = "When changing text, you can use these single-character commands:\n\n";
+ *tp++ = "0-9a-zA-Z\tMark or unmark the line to be changed.\n";
+ }
+ *tp++ = "*\t\tMark or unmark all displayed lines to be changed.\n";
+ *tp++ = "space bar\tDisplay next set of lines.\n";
+ *tp++ = "+\t\tDisplay next set of lines.\n";
+ *tp++ = "-\t\tDisplay previous set of lines.\n";
+ *tp++ = "^A\t\tMark or unmark all lines to be changed.\n";
+ *tp++ = "^D\t\tChange the marked lines and exit.\n";
+ *tp++ = "ESC\t\tExit without changing the marked lines.\n";
+ *tp++ = "!\t\tStart an interactive shell (type ^D to return to cscope).\n";
+ *tp++ = "^L\t\tRedraw the screen.\n";
+ *tp++ = "?\t\tDisplay this list of commands.\n";
+ }
+ /* print help, a screen at a time */
+ ep = tp;
+ ln = 0;
+ for (tp = text; tp < ep; ) {
+ if (ln < LINES - 1) {
+ for (s = *tp; *s != '\0'; ++s) {
+ if (*s == '\n') {
+ ++ln;
+ }
+ }
+ (void) addstr(*tp++);
+ }
+ else {
+ (void) addstr("\n");
+ askforchar();
+ (void) clear();
+ ln = 0;
+ }
+ }
+ if (ln) {
+ (void) addstr("\n");
+ askforchar();
+ }
+}
diff --git a/src/history.c b/src/history.c
new file mode 100644
index 0000000..3733c26
--- /dev/null
+++ b/src/history.c
@@ -0,0 +1,105 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol or text cross-reference
+ *
+ * command history
+ */
+
+#include "global.h"
+
+#include "alloc.h"
+
+static char const rcsid[] = "$Id: history.c,v 1.3 2006/07/23 20:59:20 broeker Exp $";
+
+static struct cmd *tail, *current;
+
+/* add a cmd to the history list */
+void
+addcmd(int f, char *s) /* field number and command text */
+{
+ struct cmd *h;
+
+ h = mymalloc(sizeof(struct cmd));
+ if( tail) {
+ tail->next = h;
+ h->next = 0;
+ h->prev = tail;
+ tail = h;
+ } else {
+ tail = h;
+ h->next = h->prev = 0;
+ }
+ h->field = f;
+ h->text = my_strdup( s);
+ current = 0;
+}
+
+ /* return previous history item */
+struct cmd *
+prevcmd(void)
+{
+ if( current) {
+ if( current->prev) /* stay on first item */
+ return current = current->prev;
+ else
+ return current;
+ } else if( tail)
+ return current = tail;
+ else
+ return NULL;
+}
+
+ /* return next history item */
+struct cmd *
+nextcmd(void)
+{
+ if( current) {
+ if( current->next) /* stay on first item */
+ return current = current->next;
+ else
+ return current;
+ } else
+ return NULL;
+}
+ /* reset current to tail */
+void
+resetcmd(void)
+{
+ current = 0;
+}
+
+struct cmd *
+currentcmd(void)
+{
+ return current;
+}
diff --git a/src/input.c b/src/input.c
new file mode 100644
index 0000000..79d7431
--- /dev/null
+++ b/src/input.c
@@ -0,0 +1,335 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * terminal input functions
+ */
+
+#include "global.h"
+#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+#include <ncurses.h>
+#else
+#include <curses.h>
+#endif
+#include <setjmp.h> /* jmp_buf */
+#include <stdlib.h>
+#include <errno.h>
+#if HAVE_SYS_TERMIOS_H
+#include <sys/termios.h>
+#endif
+
+static char const rcsid[] = "$Id: input.c,v 1.15 2006/08/20 15:00:34 broeker Exp $";
+
+static jmp_buf env; /* setjmp/longjmp buffer */
+static int prevchar; /* previous, ungotten character */
+
+/* Internal prototypes: */
+static RETSIGTYPE catchint(int sig);
+
+/* catch the interrupt signal */
+
+/*ARGSUSED*/
+static RETSIGTYPE
+catchint(int sig)
+{
+ (void) sig; /* 'use' it, to avoid a warning */
+
+ signal(SIGINT, catchint);
+ longjmp(env, 1);
+}
+
+/* unget a character */
+void
+myungetch(int c)
+{
+ prevchar = c;
+}
+
+/* get a character from the terminal */
+int
+mygetch(void)
+{
+ sighandler_t savesig; /* old value of signal */
+ int c;
+
+ /* change an interrupt signal to a break key character */
+ if (setjmp(env) == 0) {
+ savesig = signal(SIGINT, catchint);
+ refresh(); /* update the display */
+ mousereinit(); /* curses can change the menu number */
+ if(prevchar) {
+ c = prevchar;
+ prevchar = 0;
+ } else {
+ c = -1;
+ while (c == -1) {
+ /* get a character from the terminal */
+ c = getch();
+ if ((c == -1) && (errno != EINTR))
+ break;
+ }
+ }
+ } else { /* longjmp to here from signal handler */
+ c = KEY_BREAK;
+ }
+ signal(SIGINT, savesig);
+ return(c);
+}
+
+
+/* get a line from the terminal in non-canonical mode */
+int
+mygetline(char p[], char s[], unsigned size, int firstchar, BOOL iscaseless)
+{
+ int c;
+ unsigned int i = 0, j;
+ char *sright; /* substring to the right of the cursor */
+ unsigned int ri = 0; /* position in right-string */
+
+ /* Inserts and deletes are always performed on the left-string,
+ * but we'll also have a right-string 'sright' to hold characters
+ * which are on the right of the cursor [insertion point].
+ *
+ * Think of 'sright' as a stack -- we push chars into it when the cursor
+ * moves left, and we pop chars off it when the cursor moves right again.
+ * At the end of the function, we'll pop off any remaining characters
+ * onto the end of 's'
+ */
+ sright = calloc(sizeof(char), size );
+
+ strcpy ( s, p);
+ i += strlen(p);
+ /* if a character already has been typed */
+ if (firstchar != '\0') {
+ if(iscaseless == YES) {
+ firstchar = tolower(firstchar);
+ }
+ addch(firstchar); /* display it */
+ s[i++] = firstchar; /* save it */
+ }
+ /* until the end of the line is reached */
+ while ((c = mygetch()) != '\r' && c != '\n' && c != KEY_ENTER) {
+ if (c == KEY_LEFT || c == ctrl('B')) { /* left */
+ if (i > 0) {
+ addch('\b');
+ /* move this char into the second (rhs) string */
+ sright[ri++] = s[--i];
+ }
+ } else if (c == KEY_RIGHT || c == ctrl('F')) { /* right */
+ if (i < size && ri > 0) {
+ /* move this char to the left of the cursor */
+ s[i++] = sright[--ri];
+ addch(s[i-1]);
+ }
+ } else if (
+#ifdef KEY_HOME
+ c == KEY_HOME ||
+#endif
+ c == ctrl('A') ) {
+ while (i > 0) {
+ sright[ri++] = s[--i];
+ addch('\b');
+ addch(s[i]);
+ addch('\b');
+ }
+ } else if (
+#ifdef KEY_END
+ c == KEY_END ||
+#endif
+ c == ctrl('E') ) {
+ while (ri > 0) {
+ s[i++] = sright[--ri];
+ addch(s[i-1]);
+ }
+ } else if (c == erasechar() || c == KEY_BACKSPACE
+ || c == DEL || c == ctrl('H') ) {
+ /* erase */
+ if (i > 0) {
+ if (ri == 0) {
+ addstr("\b \b");
+ } else {
+ addch('\b');
+ delch();
+ }
+ s[i] = '\0';
+ --i;
+ }
+ } else if (c == killchar() || c == KEY_BREAK) {
+ /* kill */
+ for (j = 0; j < i; ++j) {
+ addch('\b');
+ }
+ for (j = 0; j < i; ++j) {
+ addch(' ');
+ }
+ for (j = 0; j < i; ++j) {
+ addch('\b');
+ }
+ i = 0;
+ } else if (isprint(c) || c == '\t') {
+ /* printable */
+ if(iscaseless == YES) {
+ c = tolower(c);
+ }
+ /* if it will fit on the line */
+ if (i < size) {
+ s[i++] = c; /* save it */
+ if (ri == 0) {
+ addch(c); /* display it */
+ } else {
+ insch(c); /* display it */
+ addch(c); /* advance cursor */
+ }
+ }
+#if UNIXPC
+ } else if (unixpcmouse == YES && c == ESC) { /* mouse */
+ getmouseaction(ESC); /* ignore it */
+#endif
+ } else if (mouse == YES && c == ctrl('X')) {
+ getmouseaction(ctrl('X')); /* ignore it */
+ } else if (c == EOF) { /* end-of-file */
+ break;
+ }
+
+ /* return on an empty line to allow a command to be entered */
+ if (firstchar != '\0' && (i+ri) == 0) {
+ break;
+ }
+ }
+
+ /* move any remaining chars on the rhs of the cursor
+ * onto the end of our string
+ */
+ while (ri > 0) {
+ s[i++] = sright[--ri];
+ }
+ free(sright);
+
+ s[i] = '\0';
+ return(i);
+}
+
+/* ask user to enter a character after reading the message */
+
+void
+askforchar(void)
+{
+ addstr("Type any character to continue: ");
+ mygetch();
+}
+
+/* ask user to press the RETURN key after reading the message */
+
+void
+askforreturn(void)
+{
+ fprintf(stderr, "Press the RETURN key to continue: ");
+ getchar();
+ /* HBB 20060419: message probably messed up the screen --- redraw */
+ if (incurses == YES) {
+ redrawwin(curscr);
+ }
+}
+
+/* expand the ~ and $ shell meta characters in a path */
+
+void
+shellpath(char *out, int limit, char *in)
+{
+ char *lastchar;
+ char *s, *v;
+
+ /* skip leading white space */
+ while (isspace((unsigned char)*in)) {
+ ++in;
+ }
+ lastchar = out + limit - 1;
+
+ /* a tilde (~) by itself represents $HOME; followed by a name it
+ represents the $LOGDIR of that login name */
+ if (*in == '~') {
+ *out++ = *in++; /* copy the ~ because it may not be expanded */
+
+ /* get the login name */
+ s = out;
+ while (s < lastchar && *in != '/' && *in != '\0' && !isspace((unsigned char)*in)) {
+ *s++ = *in++;
+ }
+ *s = '\0';
+
+ /* if the login name is null, then use $HOME */
+ if (*out == '\0') {
+ v = getenv("HOME");
+ } else { /* get the home directory of the login name */
+ v = logdir(out);
+ }
+ /* copy the directory name if it isn't too big */
+ if (v != NULL && strlen(v) < (lastchar - out)) {
+ strcpy(out - 1, v);
+ out += strlen(v) - 1;
+ } else {
+ /* login not found, so ~ must be part of the file name */
+ out += strlen(out);
+ }
+ }
+ /* get the rest of the path */
+ while (out < lastchar && *in != '\0' && !isspace((unsigned char)*in)) {
+
+ /* look for an environment variable */
+ if (*in == '$') {
+ *out++ = *in++; /* copy the $ because it may not be expanded */
+
+ /* get the variable name */
+ s = out;
+ while (s < lastchar && *in != '/' && *in != '\0' &&
+ !isspace((unsigned char)*in)) {
+ *s++ = *in++;
+ }
+ *s = '\0';
+
+ /* get its value, but only it isn't too big */
+ if ((v = getenv(out)) != NULL && strlen(v) < (lastchar - out)) {
+ strcpy(out - 1, v);
+ out += strlen(v) - 1;
+ } else {
+ /* var not found, or too big, so assume $ must be part of the
+ * file name */
+ out += strlen(out);
+ }
+ }
+ else { /* ordinary character */
+ *out++ = *in++;
+ }
+ }
+ *out = '\0';
+}
diff --git a/src/invlib.c b/src/invlib.c
new file mode 100644
index 0000000..872ca38
--- /dev/null
+++ b/src/invlib.c
@@ -0,0 +1,1186 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#if SHARE
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#define ERR -1
+#endif
+#include "invlib.h"
+#include "global.h"
+
+#include <assert.h>
+
+#define DEBUG 0 /* debugging code and realloc messages */
+#define BLOCKSIZE 2 * BUFSIZ /* logical block size */
+#define POSTINC 10000 /* posting buffer size increment */
+#define SEP ' ' /* sorted posting field separator */
+#define SETINC 100 /* posting set size increment */
+#define STATS 0 /* print statistics */
+#define SUPERINC 10000 /* super index size increment */
+#define TERMMAX 512 /* term max size */
+#define FMTVERSION 1 /* inverted index format version */
+#define ZIPFSIZE 200 /* zipf curve size */
+
+static char const rcsid[] = "$Id: invlib.c,v 1.21 2012/07/10 20:01:40 nhorman Exp $";
+
+#if DEBUG
+/* FIXME HBB 20010705: nowhere in the source is `invbreak' ever set to
+ * a value other than the (silent) initialization to zero. Pretty
+ * useless, that looks */
+int invbreak;
+#endif
+
+static int boolready(void);
+static int invnewterm(void);
+static void invstep(INVCONTROL *invcntl);
+static void invcannotalloc(unsigned n);
+static void invcannotopen(char *file);
+static void invcannotwrite(char *file);
+
+#if STATS
+int showzipf; /* show postings per term distribution */
+#endif
+
+static POSTING *item, *enditem, *item1 = NULL, *item2 = NULL;
+static unsigned setsize1, setsize2;
+static long numitems, totterm, zerolong;
+static char *indexfile, *postingfile;
+static FILE *outfile, *fpost;
+static unsigned supersize = SUPERINC, supintsize;
+static unsigned int numpost, numlogblk, amtused, nextpost;
+static unsigned int lastinblk, numinvitems;
+static POSTING *POST, *postptr;
+static unsigned long *SUPINT, *supint, nextsupfing;
+static char *SUPFING, *supfing;
+static char thisterm[TERMMAX];
+typedef union logicalblk {
+ long invblk[BLOCKSIZE / sizeof(long)];
+ char chrblk[BLOCKSIZE];
+} t_logicalblk;
+static t_logicalblk logicalblk;
+
+#if DEBUG || STATS
+static long totpost;
+#endif
+
+#if STATS
+static int zipf[ZIPFSIZE + 1];
+#endif
+
+long
+invmake(char *invname, char *invpost, FILE *infile)
+{
+ unsigned char *s;
+ long num;
+ int i;
+ long fileindex = 0; /* initialze, to avoid warning */
+ unsigned postsize = POSTINC * sizeof(POSTING);
+ unsigned long *intptr;
+ char line[TERMMAX];
+ long tlong;
+ PARAM param;
+ POSTING posting;
+ char temp[BLOCKSIZE];
+#if STATS
+ int j;
+ unsigned maxtermlen = 0;
+#endif
+ /* output file */
+ if ((outfile = vpfopen(invname, "w+b")) == NULL) {
+ invcannotopen(invname);
+ return(0);
+ }
+ indexfile = invname;
+ fseek(outfile, BUFSIZ, SEEK_SET);
+
+ /* posting file */
+ if ((fpost = vpfopen(invpost, "wb")) == NULL) {
+ invcannotopen(invpost);
+ return(0);
+ }
+ postingfile = invpost;
+ nextpost = 0;
+ /* get space for the postings list */
+ if ((POST = malloc(postsize)) == NULL) {
+ invcannotalloc(postsize);
+ return(0);
+ }
+ postptr = POST;
+ /* get space for the superfinger (superindex) */
+ if ((SUPFING = malloc(supersize)) == NULL) {
+ invcannotalloc(supersize);
+ return(0);
+ }
+ supfing = SUPFING;
+ /* FIXME HBB: magic number alert (40) */
+ supintsize = supersize / 40;
+ /* also for the superfinger index */
+ if ((SUPINT = malloc(supintsize * sizeof(long))) == NULL) {
+ invcannotalloc(supintsize * sizeof(long));
+ return(0);
+ }
+ supint = SUPINT;
+ supint++; /* leave first term open for a count */
+ /* initialize using an empty term */
+ strcpy(thisterm, "");
+ *supint++ = 0;
+ *supfing++ = ' ';
+ *supfing++ = '\0';
+ nextsupfing = 2;
+#if DEBUG || STATS
+ totpost = 0L;
+#endif
+ totterm = 0L;
+ numpost = 1;
+
+ /* set up as though a block had come and gone, i.e., set up for new block */
+ /* 3 longs needed for: numinvitems, next block, and previous block */
+ amtused = 3 * sizeof(long);
+ numinvitems = 0;
+ numlogblk = 0;
+ lastinblk = sizeof(t_logicalblk);
+
+ /* now loop as long as more to read (till eof) */
+ while (fgets(line, TERMMAX, infile) != NULL) {
+#if DEBUG || STATS
+ ++totpost;
+#endif
+ s = strchr(line, SEP);
+ if (s != NULL) {
+ *s = '\0';
+ }
+ else {
+ continue;
+ }
+#if STATS
+ if ((i = strlen(line)) > maxtermlen) {
+ maxtermlen = i;
+ }
+#endif
+#if DEBUG
+ printf("%ld: %s ", totpost, line);
+ fflush(stdout);
+#endif
+ if (strcmp(thisterm, line) == 0) {
+ if (postptr + 10 > POST + postsize / sizeof(POSTING)) {
+ i = postptr - POST;
+ postsize += POSTINC * sizeof(POSTING);
+ if ((POST = realloc(POST, postsize)) == NULL) {
+ invcannotalloc(postsize);
+ return(0);
+ }
+ postptr = i + POST;
+#if DEBUG
+ printf("reallocated post space to %u, totpost=%ld\n",
+ postsize, totpost);
+#endif
+ }
+ numpost++;
+ } else {
+ /* have a new term */
+ if (!invnewterm()) {
+ return(0);
+ }
+ strcpy(thisterm, line);
+ numpost = 1;
+ postptr = POST;
+ fileindex = 0;
+ }
+ /* get the new posting */
+ num = *++s - '!';
+ i = 1;
+ do {
+ num = BASE * num + *++s - '!';
+ } while (++i < PRECISION);
+ posting.lineoffset = num;
+ while (++fileindex < nsrcfiles && num > srcoffset[fileindex]) {
+ ;
+ }
+ posting.fileindex = --fileindex;
+ posting.type = *++s;
+ ++s;
+ if (*s != '\n') {
+ num = *++s - '!';
+ while (*++s != '\n') {
+ num = BASE * num + *s - '!';
+ }
+ posting.fcnoffset = num;
+ }
+ else {
+ posting.fcnoffset = 0;
+ }
+ *postptr++ = posting;
+#if DEBUG
+ printf("%ld %ld %ld %ld\n", posting.fileindex,
+ posting.fcnoffset, posting.lineoffset, posting.type);
+ fflush(stdout);
+#endif
+ }
+ if (!invnewterm()) {
+ return(0);
+ }
+ /* now clean up final block */
+ logicalblk.invblk[0] = numinvitems;
+ /* loops pointer around to start */
+ logicalblk.invblk[1] = 0;
+ logicalblk.invblk[2] = numlogblk - 1;
+ if (fwrite(&logicalblk, sizeof(t_logicalblk), 1, outfile) == 0) {
+ goto cannotwrite;
+ }
+ numlogblk++;
+ /* write out block to save space. what in it doesn't matter */
+ if (fwrite(&logicalblk, sizeof(t_logicalblk), 1, outfile) == 0) {
+ goto cannotwrite;
+ }
+ /* finish up the super finger */
+ *SUPINT = numlogblk;
+ /* add to the offsets the size of the offset pointers */
+ intptr = (SUPINT + 1);
+ i = (char *)supint - (char *)SUPINT;
+ while (intptr < supint)
+ *intptr++ += i;
+ /* write out the offsets (1 for the N at start) and the super finger */
+ if (fwrite(SUPINT, sizeof(*SUPINT), numlogblk + 1, outfile) == 0 ||
+ fwrite(SUPFING, 1, supfing - SUPFING, outfile) == 0) {
+ goto cannotwrite;
+ }
+ /* save the size for reference later */
+ nextsupfing = sizeof(long) + sizeof(long) * numlogblk + (supfing - SUPFING);
+ /* make sure the file ends at a logical block boundary. This is
+ necessary for invinsert to correctly create extended blocks
+ */
+ i = nextsupfing % sizeof(t_logicalblk);
+ /* write out junk to fill log blk */
+ if (fwrite(temp, sizeof(t_logicalblk) - i, 1, outfile) == 0 ||
+ fflush(outfile) == EOF) { /* rewind doesn't check for write failure */
+ goto cannotwrite;
+ }
+ /* write the control area */
+ rewind(outfile);
+ param.version = FMTVERSION;
+ param.filestat = 0;
+ param.sizeblk = sizeof(t_logicalblk);
+ param.startbyte = (numlogblk + 1) * sizeof(t_logicalblk) + BUFSIZ;;
+ param.supsize = nextsupfing;
+ param.cntlsize = BUFSIZ;
+ param.share = 0;
+ if (fwrite(&param, sizeof(param), 1, outfile) == 0) {
+ goto cannotwrite;
+ }
+ for (i = 0; i < 10; i++) /* for future use */
+ if (fwrite(&zerolong, sizeof(zerolong), 1, outfile) == 0) {
+ goto cannotwrite;
+ }
+
+ /* make first block loop backwards to last block */
+ if (fflush(outfile) == EOF) { /* fseek doesn't check for write failure */
+ goto cannotwrite;
+ }
+ /* get to second word first block */
+ fseek(outfile, BUFSIZ + 2 * sizeof(long), SEEK_SET);
+ tlong = numlogblk - 1;
+ if (fwrite(&tlong, sizeof(tlong), 1, outfile) == 0 ||
+ fclose(outfile) == EOF) {
+ cannotwrite:
+ invcannotwrite(invname);
+ return(0);
+ }
+ if (fclose(fpost) == EOF) {
+ invcannotwrite(postingfile);
+ return(0);
+ }
+ --totterm; /* don't count null term */
+#if STATS
+ printf("logical blocks = %d, postings = %ld, terms = %ld, max term length = %d\n",
+ numlogblk, totpost, totterm, maxtermlen);
+ if (showzipf) {
+ printf("\n************* ZIPF curve ****************\n");
+ for (j = ZIPFSIZE; j > 1; j--)
+ if (zipf[j])
+ break;
+ for (i = 1; i < j; ++i) {
+ printf("%3d -%6d ", i, zipf[i]);
+ if (i % 6 == 0) putchar('\n');
+ }
+ printf(">%d-%6d\n", ZIPFSIZE, zipf[0]);
+ }
+#endif
+ /* free all malloc'd memory */
+ free(POST);
+ free(SUPFING);
+ free(SUPINT);
+ return(totterm);
+}
+
+/* add a term to the data base */
+
+static int
+invnewterm(void)
+{
+ int backupflag, i, j, holditems, gooditems, howfar;
+ unsigned int maxback, len, numwilluse, wdlen;
+ char *tptr, *tptr3;
+
+ union {
+ unsigned long packword[2];
+ ENTRY e;
+ } iteminfo;
+
+ gooditems = 0; /* initialize, to avoid warning */
+ totterm++;
+#if STATS
+ /* keep zipfian info on the distribution */
+ if (numpost <= ZIPFSIZE)
+ zipf[numpost]++;
+ else
+ zipf[0]++;
+#endif
+ len = strlen(thisterm);
+ /* length of term rounded up to long boundary */
+ wdlen = (len + (sizeof(long) - 1)) / sizeof(long);
+ /* each term needs 2 longs for its iteminfo and
+ * 1 long for its offset */
+ numwilluse = (wdlen + 3) * sizeof(long);
+ /* new block if at least 1 item in block */
+ if (numinvitems && numwilluse + amtused > sizeof(t_logicalblk)) {
+ /* set up new block */
+ if (supfing + 500 > SUPFING + supersize) {
+ i = supfing - SUPFING;
+ supersize += 20000;
+ if ((SUPFING = (char *)realloc(SUPFING, supersize)) == NULL) {
+ invcannotalloc(supersize);
+ return(0);
+ }
+ supfing = i + SUPFING;
+#if DEBUG
+ printf("reallocated superfinger space to %d, totpost=%ld\n",
+ supersize, totpost);
+#endif
+ }
+ /* check that room for the offset as well */
+ /* FIXME HBB: magic number alert (10) */
+ if ((numlogblk + 10) > supintsize) {
+ i = supint - SUPINT;
+ supintsize += SUPERINC;
+ if ((SUPINT = realloc(SUPINT, supintsize * sizeof(long))) == NULL) {
+ invcannotalloc(supintsize * sizeof(long));
+ return(0);
+ }
+ supint = i + SUPINT;
+#if DEBUG
+ printf("reallocated superfinger offset to %d, totpost = %ld\n",
+ supintsize * sizeof(long), totpost);
+#endif
+ }
+ /* See if backup is efficatious */
+ backupflag = 0;
+ maxback = (int) strlen(thisterm) / 10;
+ holditems = numinvitems;
+ if (maxback > numinvitems)
+ maxback = numinvitems - 2;
+ howfar = 0;
+ while (maxback-- > 1) {
+ howfar++;
+ iteminfo.packword[0] =
+ logicalblk.invblk[--holditems * 2 + (sizeof(long) - 1)];
+ if ((i = iteminfo.e.size / 10) < maxback) {
+ maxback = i;
+ backupflag = howfar;
+ gooditems = holditems;
+ }
+ }
+ /* see if backup will occur */
+ if (backupflag) {
+ numinvitems = gooditems;
+ }
+ logicalblk.invblk[0] = numinvitems;
+ /* set forward pointer pointing to next */
+ logicalblk.invblk[1] = numlogblk + 1;
+ /* set back pointer to last block */
+ logicalblk.invblk[2] = numlogblk - 1;
+ if (fwrite(logicalblk.chrblk, 1, sizeof(t_logicalblk), outfile) == 0) {
+ invcannotwrite(indexfile);
+ return(0);
+ }
+ /* 3 longs needed for: numinvitems, next block, and previous block */
+ amtused = 3 * sizeof(long);
+ numlogblk++;
+ /* check if had to back up, if so do it */
+ if (backupflag) {
+ char *tptr2;
+
+ /* find out where the end of the new block is */
+ iteminfo.packword[0] = logicalblk.invblk[numinvitems*2+1];
+ tptr3 = logicalblk.chrblk + iteminfo.e.offset;
+ /* move the index for this block */
+ for (i = 3; i <= (backupflag * 2 + 2); i++)
+ logicalblk.invblk[i] = logicalblk.invblk[numinvitems*2+i];
+ /* move the word into the super index */
+ iteminfo.packword[0] = logicalblk.invblk[3];
+ iteminfo.packword[1] = logicalblk.invblk[4];
+ tptr2 = logicalblk.chrblk + iteminfo.e.offset;
+ strncpy(supfing, tptr2, (int) iteminfo.e.size);
+ *(supfing + iteminfo.e.size) = '\0';
+#if DEBUG
+ printf("backup %d at term=%s to term=%s\n",
+ backupflag, thisterm, supfing);
+#endif
+ *supint++ = nextsupfing;
+ nextsupfing += strlen(supfing) + 1;
+ supfing += strlen(supfing) + 1;
+ /* now fix up the logical block */
+ tptr = logicalblk.chrblk + lastinblk;
+ lastinblk = sizeof(t_logicalblk);
+ tptr2 = logicalblk.chrblk + lastinblk;
+ j = tptr3 - tptr;
+ while (tptr3 > tptr)
+ *--tptr2 = *--tptr3;
+ lastinblk -= j;
+ amtused += ((2 * sizeof(long)) * backupflag + j);
+ for (i = 3; i < (backupflag * 2 + 2); i += 2) {
+ iteminfo.packword[0] = logicalblk.invblk[i];
+ iteminfo.e.offset += (tptr2 - tptr3);
+ logicalblk.invblk[i] = iteminfo.packword[0];
+ }
+ numinvitems = backupflag;
+ } else { /* no backup needed */
+ numinvitems = 0;
+ lastinblk = sizeof(t_logicalblk);
+ /* add new term to superindex */
+ strcpy(supfing, thisterm);
+ supfing += strlen(thisterm) + 1;
+ *supint++ = nextsupfing;
+ nextsupfing += strlen(thisterm) + 1;
+ }
+ }
+ /* HBB 20010501: Fixed bug by replacing magic number '8' by
+ * what it actually represents. */
+ lastinblk -= (numwilluse - 2 * sizeof(long));
+ iteminfo.e.offset = lastinblk;
+ iteminfo.e.size = len;
+ iteminfo.e.space = 0;
+ iteminfo.e.post = numpost;
+ strncpy(logicalblk.chrblk + lastinblk, thisterm, len);
+ amtused += numwilluse;
+ logicalblk.invblk[(lastinblk/sizeof(long))+wdlen] = nextpost;
+ if ((i = postptr - POST) > 0) {
+ if (fwrite(POST, sizeof(POSTING), i, fpost) == 0) {
+ invcannotwrite(postingfile);
+ return(0);
+ }
+ nextpost += i * sizeof(POSTING);
+ }
+ logicalblk.invblk[3+2*numinvitems++] = iteminfo.packword[0];
+ logicalblk.invblk[2+2*numinvitems] = iteminfo.packword[1];
+ return(1);
+}
+
+/*
+ * If 'invname' ends with the 'from' substring, it is replaced inline with the
+ * 'to' substring (which must be of the exact same length), and the function
+ * returns 0. Otherwise, returns -1.
+ */
+
+static int
+invflipname(char * invname, const char *from, const char *to)
+{
+ char *temp, *i = NULL;
+
+ assert(strlen(from) == strlen(to));
+
+ temp = invname - 1;
+ while( (temp = strstr(temp + 1, from)))
+ i = temp;
+ if (!i || i[strlen(from)] != '\0')
+ return -1;
+ while(*to)
+ *i++ = *to++;
+ return 0;
+}
+
+int
+invopen(INVCONTROL *invcntl, char *invname, char *invpost, int stat)
+{
+ int read_index;
+
+ if ((invcntl->invfile = vpfopen(invname, ((stat == 0) ? "rb" : "r+b"))) == NULL) {
+ /* If db created without '-f', but now invoked with '-f cscope.out',
+ * we need to check for 'cscope.in.out', rather than 'cscope.out.in':
+ * I.e, hack around our own violation of the inverse db naming convention */
+ if (!invflipname(invname, INVNAME2, INVNAME)) {
+ if ((invcntl->invfile = vpfopen(invname, ((stat == 0) ? "rb" : "r+b"))))
+ goto openedinvname;
+ invflipname(invname, INVNAME, INVNAME2); /* change back for err msg */
+ }
+ /* more silliness: if you create the db with '-f cscope', then try to open
+ * it without '-f cscope', you'll fail unless we check for 'cscope.out.in'
+ * here. */
+ else if (!invflipname(invname, INVNAME, INVNAME2)) {
+ if ((invcntl->invfile = vpfopen(invname, ((stat == 0) ? "rb" : "r+b"))))
+ goto openedinvname;
+ invflipname(invname, INVNAME2, INVNAME); /* change back for err msg */
+ }
+ invcannotopen(invname);
+ return(-1);
+ }
+openedinvname:
+ if (fread(&invcntl->param, sizeof(invcntl->param), 1, invcntl->invfile) == 0) {
+ fprintf(stderr, "%s: empty inverted file\n", argv0);
+ goto closeinv;
+ }
+ if (invcntl->param.version != FMTVERSION) {
+ fprintf(stderr, "%s: cannot read old index format; use -U option to force database to rebuild\n", argv0);
+ goto closeinv;
+ }
+ assert(invcntl->param.sizeblk == sizeof(t_logicalblk));
+
+ if (stat == 0 && invcntl->param.filestat == INVALONE) {
+ fprintf(stderr, "%s: inverted file is locked\n", argv0);
+ goto closeinv;
+ }
+ if ((invcntl->postfile = vpfopen(invpost, ((stat == 0) ? "rb" : "r+b"))) == NULL) {
+ /* exact same naming convention hacks as above for invname */
+ if (!invflipname(invpost, INVPOST2, INVPOST)) {
+ if ((invcntl->postfile = vpfopen(invpost, ((stat == 0) ? "rb" : "r+b"))))
+ goto openedinvpost;
+ invflipname(invpost, INVPOST, INVPOST2); /* change back for err msg */
+ } else if (!invflipname(invpost, INVPOST, INVPOST2)) {
+ if ((invcntl->postfile = vpfopen(invpost,((stat == 0)?"rb":"r+b"))))
+ goto openedinvpost;
+ invflipname(invpost, INVPOST2, INVPOST); /* change back for err msg */
+ }
+ invcannotopen(invpost);
+ goto closeinv;
+ }
+openedinvpost:
+ /* allocate core for a logical block */
+ if ((invcntl->logblk = malloc((unsigned) invcntl->param.sizeblk)) == NULL) {
+ invcannotalloc((unsigned) invcntl->param.sizeblk);
+ goto closeboth;
+ }
+ /* allocate for and read in superfinger */
+ read_index = 1;
+ invcntl->iindex = NULL;
+#if SHARE
+ if (invcntl->param.share == 1) {
+ key_t shm_key;
+ struct shmid_ds shm_buf;
+ int shm_id;
+
+ /* see if the shared segment exists */
+ shm_key = ftok(invname, 2);
+ shm_id = shmget(shm_key, 0, 0);
+ /* Failure simply means (hopefully) that segment doesn't exists */
+ if (shm_id == -1) {
+ /* Have to give general write permission due to AMdahl not having protected segments */
+ shm_id = shmget(shm_key, invcntl->param.supsize + sizeof(long), IPC_CREAT | 0666);
+ if (shm_id == -1)
+ perror("Could not create shared memory segment");
+ } else
+ read_index = 0;
+
+ if (shm_id != -1) {
+ invcntl->iindex = shmat(shm_id, 0, ((read_index) ? 0 : SHM_RDONLY));
+ if (invcntl->iindex == (char *)ERR) {
+ fprintf(stderr, "%s: shared memory link failed\n", argv0);
+ invcntl->iindex = NULL;
+ read_index = 1;
+ }
+ }
+ }
+#endif
+ if (invcntl->iindex == NULL)
+ /* FIXME HBB: magic number alert (4) */
+ invcntl->iindex = malloc((unsigned) invcntl->param.supsize
+ + 4 *sizeof(long));
+ if (invcntl->iindex == NULL) {
+ invcannotalloc((unsigned) invcntl->param.supsize);
+ free(invcntl->logblk);
+ goto closeboth;
+ }
+ if (read_index) {
+ fseek(invcntl->invfile, invcntl->param.startbyte, SEEK_SET);
+ fread(invcntl->iindex, (int) invcntl->param.supsize, 1,
+ invcntl->invfile);
+ }
+ invcntl->numblk = -1;
+ if (boolready() == -1) {
+ closeboth:
+ fclose(invcntl->postfile);
+ closeinv:
+ fclose(invcntl->invfile);
+ return(-1);
+ }
+ /* write back out the control block if anything changed */
+ invcntl->param.filestat = stat;
+ if (stat > invcntl->param.filestat ) {
+ rewind(invcntl->invfile);
+ fwrite(&invcntl->param, sizeof(invcntl->param), 1, invcntl->invfile);
+ }
+ return(1);
+}
+
+/** invclose must be called to wrap things up and deallocate core **/
+void
+invclose(INVCONTROL *invcntl)
+{
+ /* write out the control block in case anything changed */
+ if (invcntl->param.filestat > 0) {
+ invcntl->param.filestat = 0;
+ rewind(invcntl->invfile);
+ fwrite(&invcntl->param, 1,
+ sizeof(invcntl->param), invcntl->invfile);
+ }
+ if (invcntl->param.filestat == INVALONE) {
+ /* write out the super finger */
+ fseek(invcntl->invfile, invcntl->param.startbyte, SEEK_SET);
+ fwrite(invcntl->iindex, 1,
+ (int) invcntl->param.supsize, invcntl->invfile);
+ }
+ fclose(invcntl->invfile);
+ fclose(invcntl->postfile);
+#if SHARE
+ if (invcntl->param.share > 0) {
+ shmdt(invcntl->iindex);
+ invcntl->iindex = NULL;
+ }
+#endif
+ if (invcntl->iindex != NULL)
+ free(invcntl->iindex);
+ free(invcntl->logblk);
+}
+
+/** invstep steps the inverted file forward one item **/
+static void
+invstep(INVCONTROL *invcntl)
+{
+ if (invcntl->keypnt < (invcntl->logblk->invblk[0] - 1)) {
+ invcntl->keypnt++;
+ return;
+ }
+
+ /* move forward a block else wrap */
+ invcntl->numblk = invcntl->logblk->invblk[1]; /* was: *(int *)(invcntl->logblk + sizeof(long))*/
+
+ /* now read in the block */
+ fseek(invcntl->invfile,
+ invcntl->numblk*invcntl->param.sizeblk + invcntl->param.cntlsize,
+ SEEK_SET);
+ fread(invcntl->logblk, (int) invcntl->param.sizeblk, 1,
+ invcntl->invfile);
+ invcntl->keypnt = 0;
+}
+
+/** invforward moves forward one term in the inverted file **/
+int
+invforward(INVCONTROL *invcntl)
+{
+ invstep(invcntl);
+ /* skip things with 0 postings */
+ /* FIXME HBB: magic number alert! (3) */
+ while (((ENTRY * )(invcntl->logblk->invblk + 3) + invcntl->keypnt)->post == 0) {
+ invstep(invcntl);
+ }
+ /* Check for having wrapped - reached start of inverted file! */
+ if ((invcntl->numblk == 0) && (invcntl->keypnt == 0))
+ return(0);
+ return(1);
+}
+
+/** invterm gets the present term from the present logical block **/
+long
+invterm(INVCONTROL *invcntl, char *term)
+{
+ ENTRY * entryptr;
+
+ /* FIXME HBB: magic number alert! (3) */
+ entryptr = (ENTRY *)(invcntl->logblk->invblk + 3) + invcntl->keypnt;
+ strncpy(term, invcntl->logblk->chrblk + entryptr->offset,
+ (int) entryptr->size);
+ *(term + entryptr->size) = '\0';
+ return(entryptr->post);
+}
+
+/** invfind searches for an individual item in the inverted file **/
+long
+invfind(INVCONTROL *invcntl, char *searchterm) /* term being searched for */
+{
+ int imid, ilow, ihigh;
+ long num;
+ int i;
+ unsigned long *intptr, *intptr2;
+ ENTRY *entryptr;
+
+ /* make sure it is initialized via invready */
+ if (invcntl->invfile == 0)
+ return(-1L);
+
+ /* now search for the appropriate finger block */
+ intptr = (unsigned long *)invcntl->iindex;
+
+ ilow = 0;
+ ihigh = *intptr++ - 1;
+ while (ilow <= ihigh) {
+ imid = (ilow + ihigh) / 2;
+ intptr2 = intptr + imid;
+ i = strcmp(searchterm, (invcntl->iindex + *intptr2));
+ if (i < 0)
+ ihigh = imid - 1;
+ else if (i > 0)
+ ilow = ++imid;
+ else {
+ ilow = imid + 1;
+ break;
+ }
+ }
+ /* be careful about case where searchterm is after last in this block */
+ imid = (ilow) ? ilow - 1 : 0;
+
+ /* fetch the appropriate logical block if not in core */
+ /* note always fetch it if the file is busy */
+ if ((imid != invcntl->numblk) || (invcntl->param.filestat >= INVBUSY)) {
+ fseek(invcntl->invfile,
+ (imid*invcntl->param.sizeblk) + invcntl->param.cntlsize,
+ SEEK_SET);
+ invcntl->numblk = imid;
+ fread(invcntl->logblk, (int)invcntl->param.sizeblk, 1,
+ invcntl->invfile);
+ }
+
+srch_ext:
+ /* now find the term in this block. tricky this */
+ intptr = (unsigned long *) invcntl->logblk->invblk;
+
+ ilow = 0;
+ ihigh = *intptr - 1;
+ intptr += 3;
+ num = 0;
+ while (ilow <= ihigh) {
+ imid = (ilow + ihigh) / 2;
+ entryptr = (ENTRY *)intptr + imid;
+ i = strncmp(searchterm, invcntl->logblk->chrblk + entryptr->offset,
+ (int) entryptr->size );
+ if (i == 0)
+ i = strlen(searchterm) - entryptr->size;
+ if (i < 0)
+ ihigh = imid - 1;
+ else if (i > 0)
+ ilow = ++imid;
+ else {
+ num = entryptr->post;
+ break;
+ }
+ }
+ /* be careful about case where searchterm is after last in this block */
+ if (imid >= invcntl->logblk->invblk[0]) {
+ invcntl->keypnt = invcntl->logblk->invblk[0];
+ invstep(invcntl);
+ /* note if this happens the term could be in extended block */
+ if (invcntl->param.startbyte < invcntl->numblk * invcntl->param.sizeblk)
+ goto srch_ext;
+ } else
+ invcntl->keypnt = imid;
+ return(num);
+}
+
+#if DEBUG
+
+/** invdump dumps the block the term parameter is in **/
+void
+invdump(INVCONTROL *invcntl, char *term)
+{
+ long i, j, n, *longptr;
+ ENTRY * entryptr;
+ char temp[512], *ptr;
+
+ /* dump superindex if term is "-" */
+ if (*term == '-') {
+ j = atoi(term + 1);
+ longptr = (long *)invcntl->iindex;
+ n = *longptr++;
+ printf("Superindex dump, num blocks=%ld\n", n);
+ longptr += j;
+ while ((longptr <= ((long *)invcntl->iindex) + n) && invbreak == 0) {
+ printf("%2ld %6ld %s\n", j++, *longptr, invcntl->iindex + *longptr);
+ longptr++;
+ }
+ return;
+ } else if (*term == '#') {
+ j = atoi(term + 1);
+ /* fetch the appropriate logical block */
+ invcntl->numblk = j;
+ fseek(invcntl->invfile,
+ (j * invcntl->param.sizeblk) + invcntl->param.cntlsize,
+ SEEK_SET);
+ fread(invcntl->logblk, (int) invcntl->param.sizeblk, 1,
+ invcntl->invfile);
+ } else
+ i = abs((int) invfind(invcntl, term));
+ longptr = invcntl->logblk->invblk;
+ n = *longptr++;
+ printf("Entry term to invdump=%s, postings=%ld, forwrd ptr=%ld, back ptr=%ld\n"
+ , term, i, *(longptr), *(longptr + 1));
+ /* FIXME HBB: magic number alert! (3) */
+ entryptr = (ENTRY *) (invcntl->logblk->invblk + 3);
+ printf("%ld terms in this block, block=%ld\n", n, invcntl->numblk);
+ printf("\tterm\t\t\tposts\tsize\toffset\tspace\t1st word\n");
+ for (j = 0; j < n && invbreak == 0; j++) {
+ ptr = invcntl->logblk->chrblk + entryptr->offset;
+ strncpy(temp, ptr, (int) entryptr->size);
+ temp[entryptr->size] = '\0';
+ ptr += (sizeof(long) * (long)((entryptr->size + (sizeof(long) - 1)) / sizeof(long)));
+ printf("%2ld %-24s\t%5ld\t%3d\t%d\t%d\t%ld\n", j, temp, entryptr->post,
+ entryptr->size, entryptr->offset, entryptr->space,
+ *(long *)ptr);
+ entryptr++;
+ }
+}
+#endif
+
+static int
+boolready(void)
+{
+ numitems = 0;
+ if (item1 != NULL)
+ free(item1);
+ setsize1 = SETINC;
+ if ((item1 = malloc(SETINC * sizeof(POSTING))) == NULL) {
+ invcannotalloc(SETINC);
+ return(-1);
+ }
+ if (item2 != NULL)
+ free(item2);
+ setsize2 = SETINC;
+ if ((item2 = malloc(SETINC * sizeof(POSTING))) == NULL) {
+ invcannotalloc(SETINC);
+ return(-1);
+ }
+ item = item1;
+ enditem = item;
+ return(0);
+}
+
+void
+boolclear(void)
+{
+ numitems = 0;
+ item = item1;
+ enditem = item;
+}
+
+POSTING *
+boolfile(INVCONTROL *invcntl, long *num, int boolarg)
+{
+ ENTRY *entryptr;
+ FILE *file;
+ void *ptr;
+ unsigned long *ptr2;
+ POSTING *newitem = NULL; /* initialize, to avoid warning */
+ POSTING posting;
+ unsigned u;
+ POSTING *newsetp = NULL, *set1p;
+ long newsetc, set1c, set2c;
+
+ /* FIXME HBB: magic number alert! (3) */
+ entryptr = (ENTRY *) (invcntl->logblk->invblk + 3) + invcntl->keypnt;
+ ptr = invcntl->logblk->chrblk + entryptr->offset;
+ ptr2 = ((unsigned long *) ptr) + (entryptr->size + (sizeof(long) - 1)) / sizeof(long);
+ *num = entryptr->post;
+ switch (boolarg) {
+ case BOOL_OR:
+ case NOT:
+ if (*num == 0) {
+ *num = numitems;
+ return(item);
+ }
+ }
+ /* make room for the new set */
+ u = 0;
+ switch (boolarg) {
+ case AND:
+ case NOT:
+ newsetp = item;
+ break;
+
+ case BOOL_OR:
+ u = enditem - item;
+ /* FALLTHROUGH */
+ case REVERSENOT:
+ u += *num;
+ if (item == item2) {
+ if (u > setsize1) {
+ u += SETINC;
+ if ((item1 = realloc(
+ item1, u * sizeof(POSTING))) == NULL) {
+ goto cannotalloc;
+ }
+ setsize1 = u;
+ }
+ newitem = item1;
+ }
+ else {
+ if (u > setsize2) {
+ u += SETINC;
+ if ((item2 = realloc(
+ item2, u * sizeof(POSTING))) == NULL) {
+ cannotalloc:
+ invcannotalloc(u * sizeof(POSTING));
+ boolready();
+ *num = -1;
+ return(NULL);
+ }
+ setsize2 = u;
+ }
+ newitem = item2;
+ }
+#if 0 /* this write is only need by commented-out code later */
+ set1p = item;
+#endif
+ newsetp = newitem;
+ }
+ file = invcntl->postfile;
+ fseek(file, *ptr2, SEEK_SET);
+ fread(&posting, sizeof(posting), 1, file);
+ newsetc = 0;
+ switch (boolarg) {
+ case BOOL_OR:
+ /* while something in both sets */
+ set1p = item;
+ newsetp = newitem;
+ for (set1c = 0, set2c = 0;
+ set1c < numitems && set2c < *num; newsetc++) {
+ if (set1p->lineoffset < posting.lineoffset) {
+ *newsetp++ = *set1p++;
+ set1c++;
+ }
+ else if (set1p->lineoffset > posting.lineoffset) {
+ *newsetp++ = posting;
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ else if (set1p->type < posting.type) {
+ *newsetp++ = *set1p++;
+ set1c++;
+ }
+ else if (set1p->type > posting.type) {
+ *newsetp++ = posting;
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ else { /* identical postings */
+ *newsetp++ = *set1p++;
+ set1c++;
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ }
+ /* find out what ran out and move the rest in */
+ if (set1c < numitems) {
+ newsetc += numitems - set1c;
+ while (set1c++ < numitems) {
+ *newsetp++ = *set1p++;
+ }
+ } else {
+ while (set2c++ < *num) {
+ *newsetp++ = posting;
+ newsetc++;
+ fread(&posting, (int) sizeof(posting), 1, file);
+ }
+ }
+ item = newitem;
+ break; /* end of BOOL_OR */
+#if 0
+ case AND:
+ for (set1c = 0, set2c = 0; set1c < numitems && set2c < *num; ) {
+ if (set1p->lineoffset < posting.lineoffset) {
+ set1p++;
+ set1c++;
+ }
+ else if (set1p->lineoffset > posting.lineoffset) {
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ else if (set1p->type < posting.type) {
+ *set1p++;
+ set1c++;
+ }
+ else if (set1p->type > posting.type) {
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ else { /* identical postings */
+ *newsetp++ = *set1p++;
+ newsetc++;
+ set1c++;
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ }
+ break; /* end of AND */
+
+ case NOT:
+ for (set1c = 0, set2c = 0; set1c < numitems && set2c < *num; ) {
+ if (set1p->lineoffset < posting.lineoffset) {
+ *newsetp++ = *set1p++;
+ newsetc++;
+ set1c++;
+ }
+ else if (set1p->lineoffset > posting.lineoffset) {
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ else if (set1p->type < posting.type) {
+ *newsetp++ = *set1p++;
+ newsetc++;
+ set1c++;
+ }
+ else if (set1p->type > posting.type) {
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ else { /* identical postings */
+ set1c++;
+ set1p++;
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ }
+ newsetc += numitems - set1c;
+ while (set1c++ < numitems) {
+ *newsetp++ = *set1p++;
+ }
+ break; /* end of NOT */
+
+ case REVERSENOT: /* core NOT incoming set */
+ for (set1c = 0, set2c = 0; set1c < numitems && set2c < *num; ) {
+ if (set1p->lineoffset < posting.lineoffset) {
+ set1p++;
+ set1c++;
+ }
+ else if (set1p->lineoffset > posting.lineoffset) {
+ *newsetp++ = posting;
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ else if (set1p->type < posting.type) {
+ set1p++;
+ set1c++;
+ }
+ else if (set1p->type > posting.type) {
+ *newsetp++ = posting;
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ else { /* identical postings */
+ set1c++;
+ set1p++;
+ fread(&posting, (int) sizeof(posting), 1, file);
+ set2c++;
+ }
+ }
+ while (set2c++ < *num) {
+ *newsetp++ = posting;
+ newsetc++;
+ fread(&posting, (int) sizeof(posting), 1, file);
+ }
+ item = newitem;
+ break; /* end of REVERSENOT */
+#endif
+ }
+ numitems = newsetc;
+ *num = newsetc;
+ enditem = (POSTING *) newsetp;
+ return((POSTING *) item);
+}
+
+#if 0
+POSTING *
+boolsave(int clear) /* flag about whether to clear core */
+{
+ int i;
+ POSTING *ptr;
+ POSTING *oldstuff, *newstuff;
+
+ if (numitems == 0) {
+ if (clear)
+ boolclear();
+ return(NULL);
+ }
+ /* if clear then give them what we have and use boolready to realloc */
+ if (clear) {
+ ptr = item;
+ /* free up the space we didn't give them */
+ if (item == item1)
+ item1 = NULL;
+ else
+ item2 = NULL;
+ boolready();
+ return(ptr);
+ }
+ i = (enditem - item) * sizeof(POSTING) + 100;
+ if ((ptr = malloc(i))r == NULL) {
+ invcannotalloc(i);
+ return(ptr);
+ }
+ /* move present set into place */
+ oldstuff = item;
+ newstuff = ptr;
+ while (oldstuff < enditem)
+ *newstuff++ = *oldstuff++;
+ return(ptr);
+}
+#endif
+
+static void
+invcannotalloc(unsigned n)
+{
+ fprintf(stderr, "%s: cannot allocate %u bytes\n", argv0, n);
+}
+
+static void
+invcannotopen(char *file)
+{
+ fprintf(stderr, "%s: cannot open file %s\n", argv0, file);
+}
+
+static void
+invcannotwrite(char *file)
+{
+ perror(argv0); /* must be first to preserve errno */
+ fprintf(stderr, "%s: write to file %s failed\n", argv0, file);
+}
diff --git a/src/invlib.h b/src/invlib.h
new file mode 100644
index 0000000..d394835
--- /dev/null
+++ b/src/invlib.h
@@ -0,0 +1,118 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: invlib.h,v 1.7 2004/02/12 18:14:05 broeker Exp $ */
+
+
+#ifndef CSCOPE_INVLIB_H
+#define CSCOPE_INVLIB_H
+
+#include <stdio.h> /* need definition of FILE* */
+#include <limits.h>
+
+/* inverted index definitions */
+
+/* postings temporary file long number coding into characters */
+/* FIXME HBB: where would these definitions come from ? */
+#if CHAR_MAX==255
+# define BASE 223 /* 255 - ' ' */
+# define PRECISION 4 /* maximum digits after converting a long */
+#else
+# if CHAR_MAX==127 /* assume sign-extension of a char when converted to an int */
+# define BASE 95 /* 127 - ' ' */
+# define PRECISION 5 /* maximum digits after converting a long */
+# else
+ #error Need a platform with 8 bits in a char value
+# endif
+#endif
+
+/* inverted index access parameters */
+#define INVAVAIL 0
+#define INVBUSY 1
+#define INVALONE 2
+
+/* boolean set operations */
+#define BOOL_OR 3
+#define AND 4
+#define NOT 5
+#define REVERSENOT 6
+
+/* note that the entire first block is for parameters */
+typedef struct {
+ long version; /* inverted index format version */
+ long filestat; /* file status word */
+ long sizeblk; /* size of logical block in bytes */
+ long startbyte; /* first byte of superfinger */
+ long supsize; /* size of superfinger in bytes */
+ long cntlsize; /* size of max cntl space (should be a multiple of BUFSIZ) */
+ long share; /* flag whether to use shared memory */
+} PARAM;
+
+typedef struct {
+ FILE *invfile; /* the inverted file ptr */
+ FILE *postfile; /* posting file ptr */
+ PARAM param; /* control parameters for the file */
+ char *iindex; /* ptr to space for superindex */
+ union logicalblk *logblk; /* ptr to space for a logical block */
+ long numblk; /* number of block presently at *logblk */
+ long keypnt; /* number item in present block found */
+} INVCONTROL;
+
+typedef struct {
+ short offset; /* offset in this logical block */
+ unsigned char size; /* size of term */
+ unsigned char space; /* number of longs of growth space */
+ long post; /* number of postings for this entry */
+} ENTRY;
+
+typedef struct {
+ long lineoffset; /* source line database offset */
+ long fcnoffset; /* function name database offset */
+ long fileindex : 24; /* source file name index */
+ long type : 8; /* reference type (mark character) */
+} POSTING;
+
+extern long *srcoffset; /* source file name database offsets */
+extern int nsrcoffset; /* number of file name database offsets */
+
+
+void boolclear(void);
+POSTING *boolfile(INVCONTROL *invcntl, long *num, int boolarg);
+void invclose(INVCONTROL *invcntl);
+void invdump(INVCONTROL *invcntl, char *term);
+long invfind(INVCONTROL *invcntl, char *searchterm);
+int invforward(INVCONTROL *invcntl);
+int invopen(INVCONTROL *invcntl, char *invname, char *invpost, int status);
+long invmake(char *invname, char *invpost, FILE *infile);
+long invterm(INVCONTROL *invcntl, char *term);
+
+#endif /* CSCOPE_INVLIB_H */
diff --git a/src/library.h b/src/library.h
new file mode 100644
index 0000000..af5a5ed
--- /dev/null
+++ b/src/library.h
@@ -0,0 +1,53 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: library.h,v 1.11 2006/07/23 20:59:20 broeker Exp $ */
+
+#ifndef CSCOPE_LIBRARY_H
+#define CSCOPE_LIBRARY_H
+
+#include <stdio.h> /* need FILE* type def. */
+
+/* private library */
+char *compath(char *pathname);
+char *egrepinit(char *egreppat);
+char *logdir(char *name);
+char *mybasename(char *path);
+FILE *myfopen(char *path, char *mode);
+char *mygetenv(char *variable, char *deflt);
+int myopen(char *path, int flag, int mode);
+FILE *mypopen(char *cmd, char *mode);
+int mypclose(FILE *ptr);
+FILE *vpfopen(char *filename, char *type);
+void egrepcaseless(int i);
+
+#endif /* CSCOPE_LIBRARY_H */
diff --git a/src/logdir.c b/src/logdir.c
new file mode 100644
index 0000000..8ed4b40
--- /dev/null
+++ b/src/logdir.c
@@ -0,0 +1,102 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/*
+ * logdir()
+ *
+ * This routine does not use the getpwent(3) library routine
+ * because the latter uses the stdio package. The allocation of
+ * storage in this package destroys the integrity of the shell's
+ * storage allocation.
+ */
+
+#include <unistd.h>
+#include <string.h>
+#include "global.h"
+
+#define OURBUFSIZ 160 /* renamed: avoid conflict with <stdio.h> */
+
+static char const rcsid[] = "$Id: logdir.c,v 1.5 2002/07/28 15:40:07 broeker Exp $";
+
+static char line[OURBUFSIZ+1];
+
+/* Internal prototypes: */
+static char *nextfield(char *p);
+
+
+static char *
+nextfield(char *p)
+{
+ while (*p && *p != ':')
+ ++p;
+ if (*p) *p++ = 0;
+ return(p);
+}
+
+char *
+logdir(char *name)
+{
+ char *p;
+ int i, j;
+ int pwf;
+
+ /* attempt to open the password file */
+ if ((pwf = myopen("/etc/passwd", 0, 0)) == -1)
+ return(0);
+
+ /* find the matching password entry */
+ do {
+ /* get the next line in the password file */
+ i = read(pwf, line, OURBUFSIZ);
+ for (j = 0; j < i; j++)
+ if (line[j] == '\n')
+ break;
+ /* return a null pointer if the whole file has been read */
+ if (j >= i)
+ return(0);
+ line[++j] = 0; /* terminate the line */
+ (void) lseek(pwf, (long) (j - i), 1); /* point at the next line */
+ p = nextfield(line); /* get the logname */
+ } while (*name != *line || /* fast pretest */
+ strcmp(name, line) != 0);
+ (void) close(pwf);
+
+ /* skip the intervening fields */
+ p = nextfield(p);
+ p = nextfield(p);
+ p = nextfield(p);
+ p = nextfield(p);
+
+ /* return the login directory */
+ (void) nextfield(p);
+ return(p);
+}
diff --git a/src/lookup.c b/src/lookup.c
new file mode 100644
index 0000000..809dff9
--- /dev/null
+++ b/src/lookup.c
@@ -0,0 +1,151 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * keyword look-up routine for the C symbol scanner
+ */
+
+#include "global.h"
+#include "lookup.h"
+
+static char const rcsid[] = "$Id: lookup.c,v 1.4 2006/04/21 10:45:48 broeker Exp $";
+
+/* keyword text for fast testing of keywords in the scanner */
+char enumtext[] = "enum";
+char externtext[] = "extern";
+char structtext[] = "struct";
+char typedeftext[] = "typedef";
+char uniontext[] = "union";
+
+/* This keyword table is also used for keyword text compression. Keywords
+ * with an index less than the numeric value of a space are replaced with the
+ * control character corresponding to the index, so they cannot be moved
+ * without changing the database file version and adding compatibility code
+ * for old databases.
+ */
+struct keystruct keyword[] = {
+ {"", '\0', NULL}, /* dummy entry */
+ {"#define", ' ', NULL}, /* must be table entry 1 */
+ {"#include", ' ', NULL}, /* must be table entry 2 */
+ {"break", '\0', NULL}, /* rarely in cross-reference */
+ {"case", ' ', NULL},
+ {"char", ' ', NULL},
+ {"continue", '\0', NULL}, /* rarely in cross-reference */
+ {"default", '\0', NULL}, /* rarely in cross-reference */
+ {"double", ' ', NULL},
+ {"\t", '\0', NULL}, /* must be the table entry 9 */
+ {"\n", '\0', NULL}, /* must be the table entry 10 */
+ {"else", ' ', NULL},
+ {enumtext, ' ', NULL},
+ {externtext, ' ', NULL},
+ {"float", ' ', NULL},
+ {"for", '(', NULL},
+ {"goto", ' ', NULL},
+ {"if", '(', NULL},
+ {"int", ' ', NULL},
+ {"long", ' ', NULL},
+ {"register", ' ', NULL},
+ {"return", '\0', NULL},
+ {"short", ' ', NULL},
+ {"sizeof", '\0', NULL},
+ {"static", ' ', NULL},
+ {structtext, ' ', NULL},
+ {"switch", '(', NULL},
+ {typedeftext, ' ', NULL},
+ {uniontext, ' ', NULL},
+ {"unsigned", ' ', NULL},
+ {"void", ' ', NULL},
+ {"while", '(', NULL},
+
+ /* these keywords are not compressed */
+ {"do", '\0', NULL},
+ {"auto", ' ', NULL},
+ {"fortran", ' ', NULL},
+ {"const", ' ', NULL},
+ {"signed", ' ', NULL},
+ {"volatile", ' ', NULL},
+};
+#define KEYWORDS (sizeof(keyword) / sizeof(struct keystruct))
+
+#define HASHMOD (KEYWORDS * 2 + 1)
+
+static struct keystruct *hashtab[HASHMOD]; /* pointer table */
+
+/* put the keywords into the symbol table */
+
+void
+initsymtab(void)
+{
+ unsigned int i, j;
+ struct keystruct *p;
+
+ for (i = 1; i < KEYWORDS; ++i) {
+ p = keyword + i;
+ j = hash(p->text) % HASHMOD;
+ p->next = hashtab[j];
+ hashtab[j] = p;
+ }
+}
+
+/* see if this identifier is a keyword */
+
+char *
+lookup(char *ident)
+{
+ struct keystruct *p;
+ int c;
+
+ /* look up the identifier in the keyword table */
+ for (p = hashtab[hash(ident) % HASHMOD]; p != NULL; p = p->next) {
+ if (strequal(ident, p->text)) {
+ if (compress == YES && (c = p - keyword) < ' ') {
+ ident[0] = c; /* compress the keyword */
+ }
+ return(p->text);
+ }
+ }
+ /* this is an identifier */
+ return(NULL);
+}
+
+/* form hash value for string */
+int
+hash(char *ss)
+{
+ int i;
+ unsigned char *s = (unsigned char *)ss;
+
+ for (i = 0; *s != '\0'; )
+ i += *s++; /* += is faster than <<= for cscope */
+ return(i);
+}
diff --git a/src/lookup.h b/src/lookup.h
new file mode 100644
index 0000000..8c7770f
--- /dev/null
+++ b/src/lookup.h
@@ -0,0 +1,48 @@
+/*===========================================================================
+ Copyright (c) 2001, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: lookup.h,v 1.1 2001/06/01 12:43:24 broeker Exp $ */
+
+
+#ifndef CSCOPE_LOOKUP_H
+#define CSCOPE_LOOKUP_H
+
+/* declarations for objects defined in lookup.c */
+
+/* keyword text for fast testing of keywords in the scanner */
+extern char enumtext[];
+extern char externtext[];
+extern char structtext[];
+extern char typedeftext[];
+extern char uniontext[];
+
+#endif /* CSCOPE_LOOKUP_H */
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 0000000..c447c30
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,1070 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * main functions
+ */
+
+#include "global.h"
+
+#include "build.h"
+#include "vp.h"
+#include "version.h" /* FILEVERSION and FIXVERSION */
+#include "scanner.h"
+#include "alloc.h"
+
+#include <stdlib.h> /* atoi */
+#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+#include <ncurses.h>
+#else
+#include <curses.h>
+#endif
+#include <sys/types.h> /* needed by stat.h */
+#include <sys/stat.h> /* stat */
+#include <signal.h>
+#ifdef HAVE_GETOPT_LONG
+#include <getopt.h>
+#endif
+
+/* defaults for unset environment variables */
+#define EDITOR "vi"
+#define HOME "/" /* no $HOME --> use root directory */
+#define SHELL "sh"
+#define LINEFLAG "+%s" /* default: used by vi and emacs */
+#define TMPDIR "/tmp"
+#ifndef DFLT_INCDIR
+#define DFLT_INCDIR "/usr/include"
+#endif
+
+static char const rcsid[] = "$Id: main.c,v 1.55 2011/07/04 13:41:17 nhorman Exp $";
+
+/* note: these digraph character frequencies were calculated from possible
+ printable digraphs in the cross-reference for the C compiler */
+char dichar1[] = " teisaprnl(of)=c"; /* 16 most frequent first chars */
+char dichar2[] = " tnerpla"; /* 8 most frequent second chars
+ using the above as first chars */
+char dicode1[256]; /* digraph first character code */
+char dicode2[256]; /* digraph second character code */
+
+char *editor, *shell, *lineflag; /* environment variables */
+char *home; /* Home directory */
+BOOL lineflagafterfile;
+char *argv0; /* command name */
+BOOL compress = YES; /* compress the characters in the crossref */
+BOOL dbtruncated; /* database symbols are truncated to 8 chars */
+int dispcomponents = 1; /* file path components to display */
+#if CCS
+BOOL displayversion; /* display the C Compilation System version */
+#endif
+BOOL editallprompt = YES; /* prompt between editing files */
+unsigned int fileargc; /* file argument count */
+char **fileargv; /* file argument values */
+int fileversion; /* cross-reference file version */
+BOOL incurses = NO; /* in curses */
+BOOL invertedindex; /* the database has an inverted index */
+BOOL isuptodate; /* consider the crossref up-to-date */
+BOOL kernelmode; /* don't use DFLT_INCDIR - bad for kernels */
+BOOL linemode = NO; /* use line oriented user interface */
+BOOL verbosemode = NO; /* print extra information on line mode */
+BOOL recurse_dir = NO; /* recurse dirs when searching for src files */
+char *namefile; /* file of file names */
+BOOL ogs; /* display OGS book and subsystem names */
+char *prependpath; /* prepend path to file names */
+FILE *refsfound; /* references found file */
+char temp1[PATHLEN + 1]; /* temporary file name */
+char temp2[PATHLEN + 1]; /* temporary file name */
+char tempdirpv[PATHLEN + 1]; /* private temp directory */
+long totalterms; /* total inverted index terms */
+BOOL trun_syms; /* truncate symbols to 8 characters */
+char tempstring[TEMPSTRING_LEN + 1]; /* use this as a buffer, instead of 'yytext',
+ * which had better be left alone */
+char *tmpdir; /* temporary directory */
+
+static BOOL onesearch; /* one search only in line mode */
+static char *reflines; /* symbol reference lines file */
+
+/* Internal prototypes: */
+static void initcompress(void);
+static void longusage(void);
+static void skiplist(FILE *oldrefs);
+static void usage(void);
+
+#ifdef HAVE_FIXKEYPAD
+void fixkeypad();
+#endif
+
+#if defined(KEY_RESIZE) && !defined(__DJGPP__)
+void
+sigwinch_handler(int sig, siginfo_t *info, void *unused)
+{
+ (void) sig;
+ (void) info;
+ (void) unused;
+ if(incurses == YES)
+ ungetch(KEY_RESIZE);
+}
+#endif
+
+#ifdef HAVE_GETOPT_LONG
+struct option lopts[] = {
+ {"help", 0, NULL, 'h'},
+ {"version", 0, NULL, 'V'},
+ {0, 0, 0, 0}
+};
+
+char ** parse_options(int *argc, char **argv)
+{
+ int opt;
+ int longind;
+ char path[PATHLEN + 1]; /* file path */
+ char *s;
+ int argcc = *argc;
+
+
+ while ((opt = getopt_long(argcc, argv,
+ "hVbcCdeF:f:I:i:kLl0:1:2:3:4:5:6:7:8:9:P:p:qRs:TUuv",
+ lopts, &longind)) != -1) {
+ switch(opt) {
+
+ case '?':
+ usage();
+ myexit(1);
+ break;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ /* The input fields numbers for line mode operation */
+ field = opt - '0';
+ if (strlen(optarg) > PATHLEN) {
+ postfatal("\
+ cscope: pattern too long, cannot be > \
+ %d characters\n", PATLEN);
+ }
+ strcpy(Pattern, optarg);
+ break;
+ case 'b': /* only build the cross-reference */
+ buildonly = YES;
+ linemode = YES;
+ break;
+ case 'c': /* ASCII characters only in crossref */
+ compress = NO;
+ break;
+ case 'C': /* turn on caseless mode for symbol searches */
+ caseless = YES;
+ egrepcaseless(caseless); /* simulate egrep -i flag */
+ break;
+ case 'd': /* consider crossref up-to-date */
+ isuptodate = YES;
+ break;
+ case 'e': /* suppress ^E prompt between files */
+ editallprompt = NO;
+ break;
+ case 'h':
+ longusage();
+ myexit(1);
+ break;
+ case 'k': /* ignore DFLT_INCDIR */
+ kernelmode = YES;
+ break;
+ case 'L':
+ onesearch = YES;
+ /* FALLTHROUGH */
+ case 'l':
+ linemode = YES;
+ break;
+ case 'v':
+ verbosemode = YES;
+ break;
+ case 'V':
+ fprintf(stderr, "%s: version %d%s\n", argv0,
+ FILEVERSION, FIXVERSION);
+ myexit(0);
+ break;
+ case 'q': /* quick search */
+ invertedindex = YES;
+ break;
+ case 'T': /* truncate symbols to 8 characters */
+ trun_syms = YES;
+ break;
+ case 'u': /* unconditionally build the cross-reference */
+ unconditional = YES;
+ break;
+ case 'U': /* assume some files have changed */
+ fileschanged = YES;
+ break;
+ case 'R':
+ recurse_dir = YES;
+ break;
+ case 'f': /* alternate cross-reference file */
+ reffile = optarg;
+ if (strlen(reffile) > sizeof(path) - 3) {
+ postfatal("\
+ cscope: reffile too long, cannot \
+ be > %d characters\n", sizeof(path) - 3);
+ /* NOTREACHED */
+ }
+ strcpy(path, reffile);
+
+ s = path + strlen(path);
+ strcpy(s, ".in");
+ invname = my_strdup(path);
+ strcpy(s, ".po");
+ invpost = my_strdup(path);
+ break;
+
+ case 'F': /* symbol reference lines file */
+ reflines = optarg;
+ break;
+ case 'i': /* file containing file names */
+ namefile = optarg;
+ break;
+ case 'I': /* #include file directory */
+ includedir(optarg);
+ break;
+ case 'p': /* file path components to display */
+ dispcomponents = atoi(optarg);
+ break;
+ case 'P': /* prepend path to file names */
+ prependpath = optarg;
+ break;
+ case 's': /* additional source file directory */
+ sourcedir(optarg);
+ break;
+ }
+ }
+ /*
+ * This adjusts argv so that we only see the remaining
+ * args. Its ugly, but we need to do it so that the rest
+ * of the main routine doesn't get all confused
+ */
+ *argc = *argc - optind;
+ return &argv[optind];
+}
+#endif
+
+int
+main(int argc, char **argv)
+{
+ FILE *names; /* name file pointer */
+ int oldnum; /* number in old cross-ref */
+ char path[PATHLEN + 1]; /* file path */
+ FILE *oldrefs; /* old cross-reference file */
+ char *s;
+ int c;
+ unsigned int i;
+ pid_t pid;
+ struct stat stat_buf;
+#if defined(KEY_RESIZE) && !defined(__DJGPP__)
+ struct sigaction winch_action;
+#endif
+ mode_t orig_umask;
+
+ yyin = stdin;
+ yyout = stdout;
+ /* save the command name for messages */
+ argv0 = argv[0];
+
+ /* set the options */
+#ifdef HAVE_GETOPT_LONG
+ argv = parse_options(&argc, argv);
+#else
+ while (--argc > 0 && (*++argv)[0] == '-') {
+ /* HBB 20030814: add GNU-style --help and --version options */
+ if (strequal(argv[0], "--help")
+ || strequal(argv[0], "-h")) {
+ longusage();
+ myexit(0);
+ }
+ if (strequal(argv[0], "--version")
+ || strequal(argv[0], "-V")) {
+#if CCS
+ displayversion = YES;
+#else
+ fprintf(stderr, "%s: version %d%s\n", argv0,
+ FILEVERSION, FIXVERSION);
+ myexit(0);
+#endif
+ }
+
+ for (s = argv[0] + 1; *s != '\0'; s++) {
+
+ /* look for an input field number */
+ if (isdigit((unsigned char) *s)) {
+ field = *s - '0';
+ if (field > 8) {
+ field = 8;
+ }
+ if (*++s == '\0' && --argc > 0) {
+ s = *++argv;
+ }
+ if (strlen(s) > PATLEN) {
+ postfatal("\
+cscope: pattern too long, cannot be > %d characters\n", PATLEN);
+ /* NOTREACHED */
+ }
+ strcpy(Pattern, s);
+ goto nextarg;
+ }
+ switch (*s) {
+ case '-': /* end of options */
+ --argc;
+ ++argv;
+ goto lastarg;
+ case 'b': /* only build the cross-reference */
+ buildonly = YES;
+ linemode = YES;
+ break;
+ case 'c': /* ASCII characters only in crossref */
+ compress = NO;
+ break;
+ case 'C': /* turn on caseless mode for symbol searches */
+ caseless = YES;
+ egrepcaseless(caseless); /* simulate egrep -i flag */
+ break;
+ case 'd': /* consider crossref up-to-date */
+ isuptodate = YES;
+ break;
+ case 'e': /* suppress ^E prompt between files */
+ editallprompt = NO;
+ break;
+ case 'k': /* ignore DFLT_INCDIR */
+ kernelmode = YES;
+ break;
+ case 'L':
+ onesearch = YES;
+ /* FALLTHROUGH */
+ case 'l':
+ linemode = YES;
+ break;
+ case 'v':
+ verbosemode = YES;
+ break;
+ case 'o': /* display OGS book and subsystem names */
+ ogs = YES;
+ break;
+ case 'q': /* quick search */
+ invertedindex = YES;
+ break;
+ case 'T': /* truncate symbols to 8 characters */
+ trun_syms = YES;
+ break;
+ case 'u': /* unconditionally build the cross-reference */
+ unconditional = YES;
+ break;
+ case 'U': /* assume some files have changed */
+ fileschanged = YES;
+ break;
+ case 'R':
+ recurse_dir = YES;
+ break;
+ case 'f': /* alternate cross-reference file */
+ case 'F': /* symbol reference lines file */
+ case 'i': /* file containing file names */
+ case 'I': /* #include file directory */
+ case 'p': /* file path components to display */
+ case 'P': /* prepend path to file names */
+ case 's': /* additional source file directory */
+ case 'S':
+ c = *s;
+ if (*++s == '\0' && --argc > 0) {
+ s = *++argv;
+ }
+ if (*s == '\0') {
+ fprintf(stderr, "%s: -%c option: missing or empty value\n",
+ argv0, c);
+ goto usage;
+ }
+ switch (c) {
+ case 'f': /* alternate cross-reference file */
+ reffile = s;
+ if (strlen(reffile) > sizeof(path) - 3) {
+ postfatal("\
+cscope: reffile too long, cannot be > %d characters\n", sizeof(path) - 3);
+ /* NOTREACHED */
+ }
+ strcpy(path, s);
+#ifdef SHORT_NAMES_ONLY
+ /* System V has a 14 character limit */
+ s = mybasename(path);
+ if (strlen(s) > 11) {
+ s[11] = '\0';
+ }
+#endif
+ s = path + strlen(path);
+ strcpy(s, ".in");
+ invname = my_strdup(path);
+ strcpy(s, ".po");
+ invpost = my_strdup(path);
+ break;
+ case 'F': /* symbol reference lines file */
+ reflines = s;
+ break;
+ case 'i': /* file containing file names */
+ namefile = s;
+ break;
+ case 'I': /* #include file directory */
+ includedir(s);
+ break;
+ case 'p': /* file path components to display */
+ if (*s < '0' || *s > '9' ) {
+ fprintf(stderr, "\
+%s: -p option: missing or invalid numeric value\n",
+ argv0);
+ goto usage;
+ }
+ dispcomponents = atoi(s);
+ break;
+ case 'P': /* prepend path to file names */
+ prependpath = s;
+ break;
+ case 's': /* additional source directory */
+ case 'S':
+ sourcedir(s);
+ break;
+ }
+ goto nextarg;
+ default:
+ fprintf(stderr, "%s: unknown option: -%c\n", argv0,
+ *s);
+ usage:
+ usage();
+ fprintf(stderr, "Try the -h option for more information.\n");
+ myexit(1);
+ } /* switch(option letter) */
+ } /* for(option) */
+ nextarg:
+ ;
+ } /* while(argv) */
+
+ lastarg:
+#endif
+ /* read the environment */
+ editor = mygetenv("EDITOR", EDITOR);
+ editor = mygetenv("VIEWER", editor); /* use viewer if set */
+ editor = mygetenv("CSCOPE_EDITOR", editor); /* has last word */
+ home = mygetenv("HOME", HOME);
+ shell = mygetenv("SHELL", SHELL);
+ lineflag = mygetenv("CSCOPE_LINEFLAG", LINEFLAG);
+ lineflagafterfile = getenv("CSCOPE_LINEFLAG_AFTER_FILE") ? 1 : 0;
+ tmpdir = mygetenv("TMPDIR", TMPDIR);
+
+ /* XXX remove if/when clearerr() in dir.c does the right thing. */
+ if (namefile && strcmp(namefile, "-") == 0 && !buildonly) {
+ postfatal("cscope: Must use -b if file list comes from stdin\n");
+ /* NOTREACHED */
+ }
+
+ /* make sure that tmpdir exists */
+ if (lstat (tmpdir, &stat_buf)) {
+ fprintf (stderr, "\
+cscope: Temporary directory %s does not exist or cannot be accessed\n",
+ tmpdir);
+ fprintf (stderr, "\
+cscope: Please create the directory or set the environment variable\n\
+cscope: TMPDIR to a valid directory\n");
+ myexit(1);
+ }
+
+ /* create the temporary file names */
+ orig_umask = umask(S_IRWXG|S_IRWXO);
+ pid = getpid();
+ snprintf(tempdirpv, sizeof(tempdirpv), "%s/cscope.%d", tmpdir, pid);
+ if(mkdir(tempdirpv,S_IRWXU)) {
+ fprintf(stderr, "\
+cscope: Could not create private temp dir %s\n",
+ tempdirpv);
+ myexit(1);
+ }
+ umask(orig_umask);
+
+ snprintf(temp1, sizeof(temp1), "%s/cscope.1", tempdirpv);
+ snprintf(temp2, sizeof(temp2), "%s/cscope.2", tempdirpv);
+
+ /* if running in the foreground */
+ if (signal(SIGINT, SIG_IGN) != SIG_IGN) {
+ /* cleanup on the interrupt and quit signals */
+ signal(SIGINT, myexit);
+ signal(SIGQUIT, myexit);
+ }
+ /* cleanup on the hangup signal */
+ signal(SIGHUP, myexit);
+
+ /* ditto the TERM signal */
+ signal(SIGTERM, myexit);
+
+ /* ignore PIPE signal, so myexit() will have a chance to clean up in
+ * linemode, while in curses mode the "|" command can cause a pipe signal
+ * too
+ */
+ signal(SIGPIPE, SIG_IGN);
+
+ /* if the database path is relative and it can't be created */
+ if (reffile[0] != '/' && access(".", WRITE) != 0) {
+
+ /* put it in the home directory if the database may not be
+ * up-to-date or doesn't exist in the relative directory,
+ * so a database in the current directory will be
+ * used instead of failing to open a non-existant database in
+ * the home directory
+ */
+ snprintf(path, sizeof(path), "%s/%s", home, reffile);
+ if (isuptodate == NO || access(path, READ) == 0) {
+ reffile = my_strdup(path);
+ snprintf(path, sizeof(path), "%s/%s", home, invname);
+ invname = my_strdup(path);
+ snprintf(path, sizeof(path), "%s/%s", home, invpost);
+ invpost = my_strdup(path);
+ }
+ }
+
+ if (linemode == NO) {
+ signal(SIGINT, SIG_IGN); /* ignore interrupts */
+
+#if defined(KEY_RESIZE) && !defined(__DJGPP__)
+ winch_action.sa_sigaction = sigwinch_handler;
+ sigemptyset(&winch_action.sa_mask);
+ winch_action.sa_flags = SA_SIGINFO;
+ sigaction(SIGWINCH,&winch_action,NULL);
+#endif
+
+ /* initialize the curses display package */
+ initscr(); /* initialize the screen */
+ entercurses();
+#if TERMINFO
+ keypad(stdscr, TRUE); /* enable the keypad */
+# ifdef HAVE_FIXKEYPAD
+ fixkeypad(); /* fix for getch() intermittently returning garbage */
+# endif
+#endif /* TERMINFO */
+#if UNIXPC
+ standend(); /* turn off reverse video */
+#endif
+ dispinit(); /* initialize display parameters */
+ setfield(); /* set the initial cursor position */
+ clearmsg(); /* clear any build progress message */
+ display(); /* display the version number and input fields */
+ }
+
+
+ /* if the cross-reference is to be considered up-to-date */
+ if (isuptodate == YES) {
+ if ((oldrefs = vpfopen(reffile, "rb")) == NULL) {
+ postfatal("cscope: cannot open file %s\n", reffile);
+ /* NOTREACHED */
+ }
+ /* get the crossref file version but skip the current directory */
+ if (fscanf(oldrefs, "cscope %d %*s", &fileversion) != 1) {
+ postfatal("cscope: cannot read file version from file %s\n",
+ reffile);
+ /* NOTREACHED */
+ }
+ if (fileversion >= 8) {
+
+ /* override these command line options */
+ compress = YES;
+ invertedindex = NO;
+
+ /* see if there are options in the database */
+ for (;;) {
+ getc(oldrefs); /* skip the blank */
+ if ((c = getc(oldrefs)) != '-') {
+ ungetc(c, oldrefs);
+ break;
+ }
+ switch (getc(oldrefs)) {
+ case 'c': /* ASCII characters only */
+ compress = NO;
+ break;
+ case 'q': /* quick search */
+ invertedindex = YES;
+ fscanf(oldrefs, "%ld", &totalterms);
+ break;
+ case 'T': /* truncate symbols to 8 characters */
+ dbtruncated = YES;
+ trun_syms = YES;
+ break;
+ }
+ }
+ initcompress();
+ seek_to_trailer(oldrefs);
+ }
+ /* skip the source and include directory lists */
+ skiplist(oldrefs);
+ skiplist(oldrefs);
+
+ /* get the number of source files */
+ if (fscanf(oldrefs, "%lu", &nsrcfiles) != 1) {
+ postfatal("\
+cscope: cannot read source file size from file %s\n", reffile);
+ /* NOTREACHED */
+ }
+ /* get the source file list */
+ srcfiles = mymalloc(nsrcfiles * sizeof(char *));
+ if (fileversion >= 9) {
+
+ /* allocate the string space */
+ if (fscanf(oldrefs, "%d", &oldnum) != 1) {
+ postfatal("\
+cscope: cannot read string space size from file %s\n", reffile);
+ /* NOTREACHED */
+ }
+ s = mymalloc(oldnum);
+ getc(oldrefs); /* skip the newline */
+
+ /* read the strings */
+ if (fread(s, oldnum, 1, oldrefs) != 1) {
+ postfatal("\
+cscope: cannot read source file names from file %s\n", reffile);
+ /* NOTREACHED */
+ }
+ /* change newlines to nulls */
+ for (i = 0; i < nsrcfiles; ++i) {
+ srcfiles[i] = s;
+ for (++s; *s != '\n'; ++s) {
+ ;
+ }
+ *s = '\0';
+ ++s;
+ }
+ /* if there is a file of source file names */
+ if ((namefile != NULL && (names = vpfopen(namefile, "r")) != NULL)
+ || (names = vpfopen(NAMEFILE, "r")) != NULL) {
+
+ /* read any -p option from it */
+ while (fgets(path, sizeof(path), names) != NULL && *path == '-') {
+ i = path[1];
+ s = path + 2; /* for "-Ipath" */
+ if (*s == '\0') { /* if "-I path" */
+ fgets(path, sizeof(path), names);
+ s = path;
+ }
+ switch (i) {
+ case 'p': /* file path components to display */
+ if (*s < '0' || *s > '9') {
+ posterr("cscope: -p option in file %s: missing or invalid numeric value\n", namefile);
+
+ }
+ dispcomponents = atoi(s);
+ }
+ }
+ fclose(names);
+ }
+ } else {
+ for (i = 0; i < nsrcfiles; ++i) {
+ if (!fgets(path, sizeof(path), oldrefs) ) {
+ postfatal("\
+cscope: cannot read source file name from file %s\n",
+ reffile);
+ /* NOTREACHED */
+ }
+ srcfiles[i] = my_strdup(path);
+ }
+ }
+ fclose(oldrefs);
+ } else {
+ /* save the file arguments */
+ fileargc = argc;
+ fileargv = argv;
+
+ /* get source directories from the environment */
+ if ((s = getenv("SOURCEDIRS")) != NULL) {
+ sourcedir(s);
+ }
+ /* make the source file list */
+ srcfiles = mymalloc(msrcfiles * sizeof(char *));
+ makefilelist();
+ if (nsrcfiles == 0) {
+ postfatal("cscope: no source files found\n");
+ /* NOTREACHED */
+ }
+ /* get include directories from the environment */
+ if ((s = getenv("INCLUDEDIRS")) != NULL) {
+ includedir(s);
+ }
+ /* add /usr/include to the #include directory list,
+ but not in kernelmode... kernels tend not to use it. */
+ if (kernelmode == NO) {
+ if (NULL != (s = getenv("INCDIR"))) {
+ includedir(s);
+ } else {
+ includedir(DFLT_INCDIR);
+ }
+ }
+
+ /* initialize the C keyword table */
+ initsymtab();
+
+ /* Tell build.c about the filenames to create: */
+ setup_build_filenames(reffile);
+
+ /* build the cross-reference */
+ initcompress();
+ if (linemode == NO || verbosemode == YES) /* display if verbose as well */
+ postmsg("Building cross-reference...");
+ build();
+ if (linemode == NO )
+ clearmsg(); /* clear any build progress message */
+ if (buildonly == YES) {
+ myexit(0);
+ }
+ }
+ opendatabase();
+
+ /* if using the line oriented user interface so cscope can be a
+ subprocess to emacs or samuel */
+ if (linemode == YES) {
+ if (*Pattern != '\0') { /* do any optional search */
+ if (search() == YES) {
+ /* print the total number of lines in
+ * verbose mode */
+ if (verbosemode == YES)
+ printf("cscope: %d lines\n",
+ totallines);
+
+ while ((c = getc(refsfound)) != EOF)
+ putchar(c);
+ }
+ }
+ if (onesearch == YES)
+ myexit(0);
+
+ for (;;) {
+ char buf[PATLEN + 2];
+
+ printf(">> ");
+ fflush(stdout);
+ if (fgets(buf, sizeof(buf), stdin) == NULL) {
+ myexit(0);
+ }
+ /* remove any trailing newline character */
+ if (*(s = buf + strlen(buf) - 1) == '\n') {
+ *s = '\0';
+ }
+ switch (*buf) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': /* samuel only */
+ field = *buf - '0';
+ strcpy(Pattern, buf + 1);
+ search();
+ printf("cscope: %d lines\n", totallines);
+ while ((c = getc(refsfound)) != EOF) {
+ putchar(c);
+ }
+ break;
+
+ case 'c': /* toggle caseless mode */
+ case ctrl('C'):
+ if (caseless == NO) {
+ caseless = YES;
+ } else {
+ caseless = NO;
+ }
+ egrepcaseless(caseless);
+ break;
+
+ case 'r': /* rebuild database cscope style */
+ case ctrl('R'):
+ freefilelist();
+ makefilelist();
+ /* FALLTHROUGH */
+
+ case 'R': /* rebuild database samuel style */
+ rebuild();
+ putchar('\n');
+ break;
+
+ case 'C': /* clear file names */
+ freefilelist();
+ putchar('\n');
+ break;
+
+ case 'F': /* add a file name */
+ strcpy(path, buf + 1);
+ if (infilelist(path) == NO &&
+ (s = inviewpath(path)) != NULL) {
+ addsrcfile(s);
+ }
+ putchar('\n');
+ break;
+
+ case 'q': /* quit */
+ case ctrl('D'):
+ case ctrl('Z'):
+ myexit(0);
+
+ default:
+ fprintf(stderr, "cscope: unknown command '%s'\n", buf);
+ break;
+ }
+ }
+ /* NOTREACHED */
+ }
+ /* pause before clearing the screen if there have been error messages */
+ if (errorsfound == YES) {
+ errorsfound = NO;
+ askforreturn();
+ }
+ /* do any optional search */
+ if (*Pattern != '\0') {
+ atfield(); /* move to the input field */
+ command(ctrl('Y')); /* search */
+ } else if (reflines != NULL) {
+ /* read any symbol reference lines file */
+ readrefs(reflines);
+ }
+ display(); /* update the display */
+
+ for (;;) {
+ if (!selecting)
+ atfield(); /* move to the input field */
+
+ /* exit if the quit command is entered */
+ if ((c = mygetch()) == EOF || c == ctrl('D')) {
+ break;
+ }
+ if (c == ctrl('Z')) {
+#ifdef SIGTSTP
+ kill(0, SIGTSTP);
+ continue;
+#else
+ break;
+#endif
+ }
+ /* execute the commmand, updating the display if necessary */
+ if (command(c) == YES) {
+ display();
+ }
+
+ if (selecting) {
+ move(displine[curdispline], 0);
+ refresh();
+ }
+ }
+ /* cleanup and exit */
+ myexit(0);
+ /* NOTREACHED */
+ return 0; /* avoid warning... */
+}
+
+void
+cannotopen(char *file)
+{
+ posterr("Cannot open file %s", file);
+}
+
+/* FIXME MTE - should use postfatal here */
+void
+cannotwrite(char *file)
+{
+ char msg[MSGLEN + 1];
+
+ snprintf(msg, sizeof(msg), "Removed file %s because write failed", file);
+
+ myperror(msg); /* display the reason */
+
+ unlink(file);
+ myexit(1); /* calls exit(2), which closes files */
+}
+
+
+/* set up the digraph character tables for text compression */
+static void
+initcompress(void)
+{
+ int i;
+
+ if (compress == YES) {
+ for (i = 0; i < 16; ++i) {
+ dicode1[(unsigned char) (dichar1[i])] = i * 8 + 1;
+ }
+ for (i = 0; i < 8; ++i) {
+ dicode2[(unsigned char) (dichar2[i])] = i + 1;
+ }
+ }
+}
+
+/* skip the list in the cross-reference file */
+
+static void
+skiplist(FILE *oldrefs)
+{
+ int i;
+
+ if (fscanf(oldrefs, "%d", &i) != 1) {
+ postfatal("cscope: cannot read list size from file %s\n", reffile);
+ /* NOTREACHED */
+ }
+ while (--i >= 0) {
+ if (fscanf(oldrefs, "%*s") != 0) {
+ postfatal("cscope: cannot read list name from file %s\n", reffile);
+ /* NOTREACHED */
+ }
+ }
+}
+
+
+/* enter curses mode */
+void
+entercurses(void)
+{
+ incurses = YES;
+#ifndef __MSDOS__ /* HBB 20010313 */
+ nonl(); /* don't translate an output \n to \n\r */
+#endif
+ raw(); /* single character input */
+ noecho(); /* don't echo input characters */
+ clear(); /* clear the screen */
+ mouseinit(); /* initialize any mouse interface */
+ drawscrollbar(topline, nextline);
+}
+
+
+/* exit curses mode */
+void
+exitcurses(void)
+{
+ /* clear the bottom line */
+ move(LINES - 1, 0);
+ clrtoeol();
+ refresh();
+
+ /* exit curses and restore the terminal modes */
+ endwin();
+ incurses = NO;
+
+ /* restore the mouse */
+ mousecleanup();
+ fflush(stdout);
+}
+
+
+/* normal usage message */
+static void
+usage(void)
+{
+ fprintf(stderr, "Usage: cscope [-bcCdehklLqRTuUvV] [-f file] [-F file] [-i file] [-I dir] [-s dir]\n");
+ fprintf(stderr, " [-p number] [-P path] [-[0-8] pattern] [source files]\n");
+}
+
+
+/* long usage message */
+static void
+longusage(void)
+{
+ usage();
+ fprintf(stderr, "\
+\n\
+-b Build the cross-reference only.\n\
+-C Ignore letter case when searching.\n\
+-c Use only ASCII characters in the cross-ref file (don't compress).\n\
+-d Do not update the cross-reference.\n\
+-e Suppress the <Ctrl>-e command prompt between files.\n\
+-F symfile Read symbol reference lines from symfile.\n\
+-f reffile Use reffile as cross-ref file name instead of %s.\n",
+ REFFILE);
+ fprintf(stderr, "\
+-h This help screen.\n\
+-I incdir Look in incdir for any #include files.\n\
+-i namefile Browse through files listed in namefile, instead of %s\n",
+ NAMEFILE);
+ fprintf(stderr, "\
+-k Kernel Mode - don't use %s for #include files.\n",
+ DFLT_INCDIR);
+ fputs("\
+-L Do a single search with line-oriented output.\n\
+-l Line-oriented interface.\n\
+-num pattern Go to input field num (counting from 0) and find pattern.\n\
+-P path Prepend path to relative file names in pre-built cross-ref file.\n\
+-p n Display the last n file path components.\n\
+-q Build an inverted index for quick symbol searching.\n\
+-R Recurse directories for files.\n\
+-s dir Look in dir for additional source files.\n\
+-T Use only the first eight characters to match against C symbols.\n\
+-U Check file time stamps.\n\
+-u Unconditionally build the cross-reference file.\n\
+-v Be more verbose in line mode.\n\
+-V Print the version number.\n\
+\n\
+Please see the manpage for more information.\n",
+ stderr);
+}
+
+/* cleanup and exit */
+
+void
+myexit(int sig)
+{
+ /* HBB 20010313; close file before unlinking it. Unix may not care
+ * about that, but DOS absolutely needs it */
+ if (refsfound != NULL)
+ fclose(refsfound);
+
+ /* remove any temporary files */
+ if (temp1[0] != '\0') {
+ unlink(temp1);
+ unlink(temp2);
+ rmdir(tempdirpv);
+ }
+ /* restore the terminal to its original mode */
+ if (incurses == YES) {
+ exitcurses();
+ }
+ /* dump core for debugging on the quit signal */
+ if (sig == SIGQUIT) {
+ abort();
+ }
+ /* HBB 20000421: be nice: free allocated data */
+ freefilelist();
+ freeinclist();
+ freesrclist();
+ freecrossref();
+ free_newbuildfiles();
+
+ exit(sig);
+}
diff --git a/src/mouse.c b/src/mouse.c
new file mode 100644
index 0000000..69b85c0
--- /dev/null
+++ b/src/mouse.c
@@ -0,0 +1,433 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * mouse functions
+ */
+
+#include "global.h"
+
+BOOL mouse = NO; /* mouse interface */
+
+#ifdef UNIXPC /* build command requires #ifdef instead of #if */
+#include <sys/window.h>
+BOOL unixpcmouse = NO; /* running with a mouse on the Unix PC? */
+static int uw_hs, uw_vs; /* character height and width */
+#endif
+
+static char const rcsid[] = "$Id: mouse.c,v 1.4 2001/07/05 14:31:00 broeker Exp $";
+
+typedef struct { /* menu */
+ char *text;
+ char *value;
+} MENU;
+
+static MENU mainmenu[] = { /* main menu */
+ {"Send", "##\033s##\r"},
+ {"Repeat", "\031"},
+ {"Edit All", "\05"},
+ {"Rebuild", "\022"},
+ {"Shell", "!"},
+ {"Redraw", "\f"},
+ {"Help", "?"},
+ {"Exit", "\04"},
+ {NULL, NULL}
+};
+
+static MENU changemenu[] = { /* change mode menu */
+ {"Mark Screen", "*"},
+ {"Mark All", "a"},
+ {"Change", "\04"},
+ {"No Change", "\033"},
+ {"Shell", "!"},
+ {"Redraw", "\f"},
+ {"Help", "?"},
+ {NULL, NULL}
+};
+
+static MENU *loaded; /* menu loaded */
+static BOOL emacsviterm = NO; /* terminal type */
+
+static void loadmenu(MENU *menu);
+static int getcoordinate(void);
+static int getpercent(void);
+
+/* see if there is a mouse interface */
+
+void
+mouseinit(void)
+{
+ char *term;
+
+ /* see if this is emacsterm or viterm */
+ term = mygetenv("TERM", "");
+ if (strcmp(term, "emacsterm") == 0 ||
+ strcmp(term, "viterm") == 0) {
+ emacsviterm = YES;
+ mouse = YES;
+ }
+ /* the MOUSE enviroment variable is for 5620 terminal programs that have
+ mouse support but the TERM environment variable is the same as a
+ terminal without a mouse, such as myx */
+ else if (strcmp(mygetenv("MOUSE", ""), "myx") == 0) {
+ mouse = YES;
+ }
+#if UNIXPC
+ else if (strcmp(term,"s4") == 0 ||
+ strcmp(term,"s120") == 0 ||
+ strcmp(term,"s90") == 0) {
+ int retval;
+ struct uwdata uwd; /* Window data structure */
+ struct umdata umd; /* Mouse data structure */
+
+ /* Ask for character size info */
+
+ retval = ioctl(1,WIOCGETD,&uwd);
+ if(retval || uwd.uw_hs <= 0 || uwd.uw_vs <= 0) {
+ /**************************************************
+ * something wrong with the kernel, so fake it...
+ **************************************************/
+ if(!strcmp(term,"s4")) {
+ uw_hs = 9;
+ uw_vs = 12;
+ }
+ else {
+ uw_hs = 6;
+ uw_vs = 10;
+ }
+ }
+ else {
+ /* Kernel is working and knows about this font */
+ uw_hs = uwd.uw_hs;
+ uw_vs = uwd.uw_vs;
+ }
+
+ /**************************************************
+ * Now turn on mouse reporting so we can actually
+ * make use of all this stuff.
+ **************************************************/
+ if((retval = ioctl(1,WIOCGETMOUSE,&umd)) != -1) {
+ umd.um_flags= MSDOWN+MSUP;
+ ioctl(1,WIOCSETMOUSE,&umd);
+ }
+ unixpcmouse = YES;
+ }
+#endif
+ if (mouse == YES) {
+ loadmenu(mainmenu);
+ }
+}
+
+/* load the correct mouse menu */
+
+void
+mousemenu(void)
+{
+ if (mouse == YES) {
+ if (changing == YES) {
+ loadmenu(changemenu);
+ }
+ else {
+ loadmenu(mainmenu);
+ }
+ }
+}
+
+/* download a menu */
+
+static void
+loadmenu(MENU *menu)
+{
+ int i;
+
+ if (emacsviterm == YES) {
+ mousereinit();
+ (void) printf("\033V1"); /* display the scrollbar */
+ (void) printf("\033M0@%s@%s@", menu[0].text, menu[0].value);
+ for (i = 1; menu[i].text != NULL; ++i) {
+ (void) printf("\033M@%s@%s@", menu[i].text, menu[i].value);
+ }
+ }
+ else { /* myx */
+ int len;
+
+ mousecleanup();
+ (void) printf("\033[6;1X\033[9;1X");
+ for (i = 0; menu[i].text != NULL; ++i) {
+ len = strlen(menu[i].text);
+ (void) printf("\033[%d;%dx%s%s", len,
+ (int) (len + strlen(menu[i].value)),
+ menu[i].text, menu[i].value);
+ }
+ loaded = menu;
+ }
+ (void) fflush(stdout);
+}
+
+/* reinitialize the mouse in case curses changed the attributes */
+
+void
+mousereinit(void)
+{
+ if (emacsviterm == YES) {
+
+ /* enable the mouse click and sweep coordinate control sequence */
+ /* and switch to menu 2 */
+ (void) printf("\033{2\033#2");
+ (void) fflush(stdout);
+ }
+}
+
+/* restore the mouse attributes */
+
+void
+mousecleanup(void)
+{
+ int i;
+
+ if (loaded != NULL) { /* only true for myx */
+
+ /* remove the mouse menu */
+ (void) printf("\033[6;0X\033[9;0X");
+ for (i = 0; loaded[i].text != NULL; ++i) {
+ (void) printf("\033[0;0x");
+ }
+ loaded = NULL;
+ }
+}
+
+/* draw the scrollbar */
+
+void
+drawscrollbar(int top, int bot)
+{
+ int p1, p2;
+
+ if (emacsviterm == YES) {
+ if (bot > top) {
+ p1 = 16 + (top - 1) * 100 / totallines;
+ p2 = 16 + (bot - 1) * 100 / totallines;
+ if (p2 > 116) {
+ p2 = 116;
+ }
+ if (p1 < 16) {
+ p1 = 16;
+ }
+ /* don't send ^S or ^Q because it will hang a layer using cu(1) */
+ if (p1 == ctrl('Q') || p1 == ctrl('S')) {
+ ++p1;
+ }
+ if (p2 == ctrl('Q') || p2 == ctrl('S')) {
+ ++p2;
+ }
+ }
+ else {
+ p1 = p2 = 16;
+ }
+ (void) printf("\033W%c%c", p1, p2);
+ }
+}
+
+/* get the mouse information */
+
+MOUSE *
+getmouseaction(char leading_char)
+{
+ static MOUSE m;
+
+#if UNIXPC
+
+ if(unixpcmouse == YES && leading_char == ESC) {
+
+ /* Called if cscope received an ESC character. See if it is
+ * a mouse report and if so, decipher it. A mouse report
+ * looks like: "<ESC>[?xx;yy;b;rM"
+ */
+ int x = 0, y = 0, button = 0, reason = 0;
+ int i;
+
+ /* Get a mouse report. The form is: XX;YY;B;RM where
+ * XX is 1,2, or 3 decimal digits with the X pixel position.
+ * Similarly for YY. B is a single decimal digit with the
+ * button number (4 for one, 2 for two, and 1 for three).
+ * R is the reason for the mouse report.
+ *
+ * In general, the input is read until the mouse report has
+ * been completely read in or we have discovered that this
+ * escape sequence is NOT a mouse report. In the latter case
+ * return the last character read to the input stream with
+ * myungetch().
+ */
+
+ /* Check for "[?" being next 2 chars */
+ if(((i = mygetch()) != '[') || ((i = mygetch()) != '?')) {
+ myungetch(i);
+ return(NULL);
+ }
+
+ /* Grab the X position (in pixels) */
+ while(isdigit(i = mygetch())) {
+ x = (x*10) + (i - '0');
+ }
+ if(i != ';') {
+ myungetch(i);
+ return(NULL); /* not a mouse report after all */
+ }
+
+ /* Grab the Y position (in pixels) */
+ while(isdigit(i = mygetch())) {
+ y = (y*10) + (i - '0');
+ }
+ if(i != ';') {
+ myungetch(i);
+ return(NULL);
+ }
+
+ /* Get which button */
+ if((button = mygetch()) > '4') {
+ myungetch(button);
+ return(NULL);
+ }
+ if((i = mygetch()) != ';') {
+ myungetch(i);
+ return(NULL);
+ }
+
+ /* Get the reason for this mouse report */
+ if((reason = mygetch()) > '8') {
+ myungetch(reason);
+ return(NULL);
+ }
+
+ /* sequence should terminate with an 'M' */
+ if((i = mygetch()) != 'M') {
+ myungetch(i);
+ return(NULL);
+ }
+
+
+ /* OK. We get a mouse report whenever a button is depressed
+ * or released. Let's ignore the report whenever the button
+ * is depressed until when I am ready to implement sweeping.
+ */
+ if(reason != '2') {
+ return(NULL); /* '2' means button is released */
+ }
+
+ /************************************************************
+ * Always indicate button 1 irregardless of which button was
+ * really pushed.
+ ************************************************************/
+ m.button = 1;
+
+ /************************************************************
+ * Convert pixel coordinates to line and column coords.
+ * The height and width are obtained using an ioctl() call
+ * in mouseinit(). This assumes that variable width chars
+ * are not being used ('though it would probably work anyway).
+ ************************************************************/
+
+ m.x1 = x/uw_hs; /* pixel/horizontal_spacing */
+ m.y1 = y/uw_vs; /* pixel/vertical_spacing */
+
+ /* "null" out the other fields */
+ m.percent = m.x2 = m.y2 = -1;
+ }
+ else
+#endif /* not UNIXPC */
+
+ if (mouse == YES && leading_char == ctrl('X')) {
+
+ switch (mygetch()) {
+ case ctrl('_'): /* click */
+ if ((m.button = mygetch()) == '0') { /* if scrollbar */
+ m.percent = getpercent();
+ }
+ else {
+ m.x1 = getcoordinate();
+ m.y1 = getcoordinate();
+ m.x2 = m.y2 = -1;
+ }
+ break;
+
+ case ctrl(']'): /* sweep */
+ m.button = mygetch();
+ m.x1 = getcoordinate();
+ m.y1 = getcoordinate();
+ m.x2 = getcoordinate();
+ m.y2 = getcoordinate();
+ break;
+ default:
+ return(NULL);
+ }
+ }
+ else return(NULL);
+
+ return(&m);
+}
+
+/* get a row or column coordinate from a mouse button click or sweep */
+
+static int
+getcoordinate(void)
+{
+ int c, next;
+
+ c = mygetch();
+ next = 0;
+ if (c == ctrl('A')) {
+ next = 95;
+ c = mygetch();
+ }
+ if (c < ' ') {
+ return (0);
+ }
+ return (next + c - ' ');
+}
+
+/* get a percentage */
+
+static int
+getpercent(void)
+{
+ int c;
+
+ c = mygetch();
+ if (c < 16) {
+ return(0);
+ }
+ if (c > 120) {
+ return(100);
+ }
+ return(c - 16);
+}
diff --git a/src/mygetenv.c b/src/mygetenv.c
new file mode 100644
index 0000000..24ae35e
--- /dev/null
+++ b/src/mygetenv.c
@@ -0,0 +1,51 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+static char const rcsid[] = "$Id: mygetenv.c,v 1.3 2001/07/05 16:47:04 broeker Exp $";
+
+#include "library.h"
+
+#include <stdlib.h>
+
+/* return the non-null environment value or the default argument */
+
+char *
+mygetenv(char *variable, char *deflt)
+{
+ char *value;
+
+ value = getenv(variable);
+ if (value == NULL || *value == '\0') {
+ return(deflt);
+ }
+ return(value);
+}
diff --git a/src/mypopen.c b/src/mypopen.c
new file mode 100644
index 0000000..87db2fa
--- /dev/null
+++ b/src/mypopen.c
@@ -0,0 +1,207 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+#include <stdio.h>
+#include <signal.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include "global.h" /* pid_t, RETSIGTYPE, shell, and mybasename() */
+
+#define tst(a,b) (*mode == 'r'? (b) : (a))
+#define RDR 0
+#define WTR 1
+
+/* HBB 20010312: make this a bit safer --- don't blindly assume it's 1 */
+#ifdef FD_CLOEXEC
+# define CLOSE_ON_EXEC FD_CLOEXEC
+#else
+# define CLOSE_ON_EXEC 1
+#endif
+
+#ifdef HAVE_IO_H
+# include <io.h> /* for setmode() */
+#endif
+
+static char const rcsid[] = "$Id: mypopen.c,v 1.14 2006/04/21 10:40:29 broeker Exp $";
+
+static pid_t popen_pid[20];
+static RETSIGTYPE (*tstat)(int);
+
+int
+myopen(char *path, int flag, int mode)
+{
+ /* opens a file descriptor and then sets close-on-exec for the file */
+ int fd;
+
+ /* 20020103: if file is not explicitly in Binary mode, make
+ * sure we override silly Cygwin behaviour of automatic binary
+ * mode for files in "binary mounted" paths */
+#if O_BINARY != O_TEXT
+ if (! (flag | O_BINARY))
+ flag |= O_TEXT;
+#endif
+ if(mode)
+ fd = open(path, flag, mode);
+ else
+ fd = open(path, flag);
+
+#ifdef __DJGPP__ /* FIXME: test feature, not platform */
+ /* HBB 20010312: DOS GCC doesn't have FD_CLOEXEC (yet), so it
+ * always fails this call. Have to skip that step */
+ if(fd != -1)
+ return(fd);
+#endif
+ if(fd != -1 && (fcntl(fd, F_SETFD, CLOSE_ON_EXEC) != -1))
+ return(fd);
+
+ else
+ {
+ /* Ensure that if the fcntl fails and fd is valid, then
+ the file is closed properly. In general this should
+ not happen. */
+ if (fd != -1)
+ {
+ close (fd);
+ }
+
+ return(-1);
+ }
+}
+
+FILE *
+myfopen(char *path, char *mode)
+{
+ /* opens a file pointer and then sets close-on-exec for the file */
+ FILE *fp;
+
+ fp = fopen(path, mode);
+
+#ifdef SETMODE
+ if (fp && ! strchr(mode, 'b')) {
+ SETMODE(fileno(fp), O_TEXT);
+ }
+#endif /* SETMODE */
+
+#ifdef __DJGPP__ /* FIXME: test feature, not platform */
+ /* HBB 20010312: DOS GCC doesn't have FD_CLOEXEC (yet), so it
+ * always fails this call. Have to skip that step */
+ if(fp)
+#else
+ if(fp && (fcntl(fileno(fp), F_SETFD, CLOSE_ON_EXEC) != -1))
+#endif
+ return(fp);
+
+ else
+ return(NULL);
+}
+
+FILE *
+mypopen(char *cmd, char *mode)
+{
+#ifdef __DJGPP__
+ /* HBB 20010312: Has its own implementation of popen(), which
+ * is better suited to the platform than cscope's */
+ return (popen)(cmd, mode);
+#else
+ int p[2];
+ pid_t *poptr;
+ int myside, yourside;
+ pid_t pid;
+
+ if(pipe(p) < 0)
+ return(NULL);
+ myside = tst(p[WTR], p[RDR]);
+ yourside = tst(p[RDR], p[WTR]);
+ if((pid = fork()) == 0) {
+ /* myside and yourside reverse roles in child */
+ int stdio;
+
+ /* close all pipes from other popen's */
+ for (poptr = popen_pid; poptr < popen_pid+20; poptr++) {
+ if(*poptr)
+ (void) close(poptr - popen_pid);
+ }
+ stdio = tst(0, 1);
+ close(myside);
+ close(stdio);
+#if V9
+ dup2(yourside, stdio);
+#else
+ fcntl(yourside, F_DUPFD, stdio);
+#endif
+ close(yourside);
+ execlp(shell, mybasename(shell), "-c", cmd, (void *)0);
+ _exit(1);
+ } else if (pid > 0)
+ tstat = signal(SIGTSTP, SIG_DFL);
+ if(pid == -1)
+ return(NULL);
+ popen_pid[myside] = pid;
+ (void) close(yourside);
+ return(fdopen(myside, mode));
+#endif /* DJGPP */
+}
+
+/* HBB 20010705: renamed from 'pclose', which would collide with
+ * system-supplied function of same name */
+int
+mypclose(FILE *ptr)
+{
+ int f;
+ pid_t r;
+ int status;
+ sighandler_t hstat, istat, qstat;
+
+#ifdef __DJGPP__
+ /* HBB 20010705: This system has its own pclose(), which we
+ * don't want to replace */
+ return (pclose)(ptr);
+#else
+ f = fileno(ptr);
+ (void) fclose(ptr);
+ istat = signal(SIGINT, SIG_IGN);
+ qstat = signal(SIGQUIT, SIG_IGN);
+ hstat = signal(SIGHUP, SIG_IGN);
+ while((r = wait(&status)) != popen_pid[f] && r != -1)
+ ;
+ if(r == -1)
+ status = -1;
+ (void) signal(SIGINT, istat);
+ (void) signal(SIGQUIT, qstat);
+ (void) signal(SIGHUP, hstat);
+ (void) signal(SIGTSTP, tstat);
+ /* mark this pipe closed */
+ popen_pid[f] = 0;
+ return(status);
+#endif /* DJGPP */
+}
diff --git a/src/scanner.c b/src/scanner.c
new file mode 100644
index 0000000..c7f6bfd
--- /dev/null
+++ b/src/scanner.c
@@ -0,0 +1,2956 @@
+
+#line 3 "scanner.c"
+
+#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 35
+#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;
+#endif /* ! C99 */
+
+/* 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 /* ! 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
+
+extern int 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)
+
+/* 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_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+#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.
+ */
+ int 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 int yy_n_chars; /* number of characters read into yy_ch_buf */
+int 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,int 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 */
+
+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 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; \
+ (yytext_ptr) -= (yy_more_len); \
+ yyleng = (size_t) (yy_cp - (yytext_ptr)); \
+ (yy_hold_char) = *yy_cp; \
+ *yy_cp = '\0'; \
+ (yy_c_buf_p) = yy_cp;
+
+#define YY_NUM_RULES 37
+#define YY_END_OF_BUFFER 38
+/* 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_acclist[267] =
+ { 0,
+ 38, 36, 37, 29, 37, 31, 36, 37, 36, 37,
+ 25, 36, 37,16406,16407,16408, 36, 37, 30, 36,
+ 37, 12, 36, 37, 13, 36, 37, 16, 36, 37,
+ 36, 37, 35, 36, 37, 15, 36, 37, 17, 36,
+ 37, 14, 36, 37, 26, 36, 37, 36, 37, 27,
+ 36, 37, 25, 36, 37,16406,16407,16408, 25, 36,
+ 37,16406,16407,16408, 25, 36, 37,16406,16407,16408,
+ 25, 36, 37,16406,16407,16408, 6, 36, 37, 11,
+ 36, 37, 32, 36, 37, 36, 37, 25, 36, 37,
+ 16406,16407,16408, 25, 36, 37,16406,16407,16408, 34,
+
+ 34, 34, 34, 25,16406,16407,16408, 8215, 1, 2,
+ 35, 35, 28, 25,16406,16407,16408, 25,16406,16407,
+ 16408, 25,16406,16407,16408, 25,16406,16407,16408, 32,
+ 3, 25,16406,16407,16408, 25,16406,16407,16408, 34,
+ 34, 34, 34, 8, 34, 34, 8216, 25,16406,16407,
+ 16408, 25,16406,16407,16408, 25,16406,16407,16408, 25,
+ 16406,16407,16408, 25,16406,16407,16408, 25,16406,16407,
+ 16408, 34, 34, 34, 34, 34, 8, 34, 34, 8214,
+ 25,16406,16407,16408, 25,16404,16405,16406,16407,16408,
+ 25,16406,16407,16408, 25,16406,16407,16408, 25,16406,
+
+ 16407,16408, 25,16406,16407,16408, 34, 9, 34, 34,
+ 34, 34, 25,16406,16407,16408, 8213, 25,16406,16407,
+ 16408, 25,16406,16407,16408, 25,16406,16407,16408, 34,
+ 10, 34,16391, 8, 34, 34, 8216, 25,16406,16407,
+ 16408, 34, 34, 34, 8216, 8212, 25,16406,16407,16408,
+ 4, 4, 4, 8216, 34, 19, 25,16406,16407,16408,
+ 4, 18, 5, 18, 8199, 33
+ } ;
+
+static yyconst flex_int16_t yy_accept[153] =
+ { 0,
+ 1, 1, 1, 1, 1, 2, 4, 6, 9, 11,
+ 17, 19, 22, 25, 28, 31, 33, 36, 39, 42,
+ 45, 48, 50, 53, 59, 65, 71, 77, 80, 83,
+ 86, 88, 94, 100, 100, 101, 102, 103, 104, 104,
+ 104, 108, 109, 110, 111, 112, 113, 114, 118, 122,
+ 126, 130, 131, 132, 136, 140, 141, 142, 143, 144,
+ 146, 147, 148, 148, 148, 148, 152, 156, 160, 164,
+ 168, 172, 173, 174, 175, 176, 177, 179, 180, 180,
+ 181, 181, 185, 191, 195, 199, 203, 207, 208, 210,
+ 211, 212, 213, 213, 217, 217, 217, 218, 222, 226,
+
+ 230, 231, 234, 236, 237, 237, 237, 237, 238, 242,
+ 242, 243, 243, 243, 244, 245, 245, 245, 246, 246,
+ 246, 247, 251, 252, 253, 255, 255, 255, 255, 256,
+ 256, 256, 256, 256, 257, 261, 262, 263, 263, 263,
+ 263, 263, 263, 264, 265, 266, 267, 267, 267, 267,
+ 267, 267
+ } ;
+
+static yyconst flex_int32_t yy_ec[256] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
+ 4, 4, 4, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 1, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 1, 14, 15, 16, 1, 17, 18, 18,
+ 18, 18, 18, 18, 18, 18, 19, 20, 21, 22,
+ 23, 24, 1, 1, 25, 26, 26, 27, 28, 26,
+ 29, 29, 29, 29, 29, 26, 29, 30, 29, 29,
+ 29, 29, 31, 32, 26, 29, 29, 26, 29, 33,
+ 34, 35, 36, 1, 37, 1, 38, 26, 39, 40,
+
+ 41, 42, 29, 29, 43, 29, 29, 44, 45, 46,
+ 47, 29, 29, 48, 49, 50, 51, 29, 29, 26,
+ 29, 52, 53, 1, 54, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 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 yyconst flex_int32_t yy_meta[55] =
+ { 0,
+ 1, 2, 3, 4, 5, 6, 7, 1, 1, 1,
+ 8, 9, 10, 1, 1, 11, 12, 12, 12, 9,
+ 1, 1, 1, 5, 13, 13, 13, 13, 14, 14,
+ 14, 14, 14, 1, 1, 1, 14, 13, 13, 13,
+ 13, 13, 14, 13, 14, 14, 14, 14, 14, 14,
+ 13, 14, 15, 1
+ } ;
+
+static yyconst flex_int16_t yy_base[169] =
+ { 0,
+ 0, 53, 28, 56, 306, 813, 813, 813, 61, 64,
+ 16, 813, 813, 813, 813, 54, 0, 813, 813, 813,
+ 813, 288, 813, 77, 92, 95, 107, 813, 813, 72,
+ 70, 124, 128, 115, 0, 247, 39, 40, 146, 159,
+ 162, 140, 813, 813, 0, 0, 813, 177, 180, 192,
+ 195, 87, 813, 198, 210, 0, 242, 64, 240, 76,
+ 233, 813, 214, 165, 255, 226, 240, 243, 246, 258,
+ 263, 225, 222, 217, 212, 200, 193, 183, 275, 813,
+ 167, 279, 294, 297, 300, 312, 327, 164, 0, 165,
+ 162, 138, 146, 330, 354, 406, 813, 349, 366, 372,
+
+ 110, 459, 0, 107, 125, 512, 183, 378, 384, 530,
+ 110, 130, 315, 0, 88, 92, 548, 554, 390, 398,
+ 813, 401, 0, 424, 0, 132, 430, 220, 416, 98,
+ 47, 0, 0, 813, 437, 0, 0, 230, 51, 516,
+ 0, 77, 442, 0, 813, 0, 43, 137, 553, 183,
+ 813, 606, 619, 623, 630, 643, 656, 670, 684, 697,
+ 711, 725, 739, 748, 761, 774, 783, 797
+ } ;
+
+static yyconst flex_int16_t yy_def[169] =
+ { 0,
+ 151, 1, 1, 1, 151, 151, 151, 151, 152, 153,
+ 151, 151, 151, 151, 151, 151, 154, 151, 151, 151,
+ 151, 151, 151, 153, 153, 153, 153, 151, 151, 151,
+ 151, 153, 153, 152, 155, 155, 155, 155, 156, 156,
+ 153, 151, 151, 151, 154, 154, 151, 153, 153, 153,
+ 153, 151, 151, 153, 153, 155, 155, 155, 155, 155,
+ 155, 151, 151, 157, 151, 153, 153, 153, 153, 153,
+ 153, 155, 155, 155, 155, 155, 155, 155, 157, 151,
+ 151, 153, 153, 153, 153, 153, 153, 155, 155, 155,
+ 155, 155, 151, 153, 158, 158, 151, 153, 153, 153,
+
+ 155, 151, 155, 155, 151, 159, 160, 160, 153, 161,
+ 155, 162, 151, 102, 155, 151, 163, 163, 151, 160,
+ 151, 153, 164, 156, 164, 165, 151, 151, 155, 151,
+ 166, 118, 118, 151, 153, 164, 167, 151, 151, 151,
+ 168, 151, 156, 167, 151, 168, 151, 151, 151, 151,
+ 0, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+ 151, 151, 151, 151, 151, 151, 151, 151
+ } ;
+
+static yyconst flex_int16_t yy_nxt[868] =
+ { 0,
+ 6, 6, 7, 6, 8, 9, 10, 11, 6, 12,
+ 13, 14, 6, 15, 6, 16, 17, 17, 17, 18,
+ 19, 6, 20, 6, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 21, 22, 23, 10, 10, 24, 10,
+ 25, 10, 10, 10, 10, 10, 10, 10, 26, 10,
+ 27, 10, 28, 29, 30, 32, 30, 30, 33, 30,
+ 31, 148, 34, 31, 34, 39, 40, 39, 43, 44,
+ 45, 45, 45, 52, 42, 52, 40, 53, 39, 40,
+ 39, 60, 58, 32, 59, 61, 33, 42, 52, 40,
+ 52, 147, 145, 39, 40, 39, 39, 40, 39, 134,
+
+ 36, 37, 42, 38, 40, 42, 73, 40, 39, 40,
+ 39, 126, 74, 126, 142, 76, 34, 42, 34, 40,
+ 48, 77, 43, 44, 130, 39, 40, 39, 129, 39,
+ 40, 39, 113, 126, 42, 126, 40, 49, 42, 116,
+ 40, 63, 63, 63, 50, 149, 115, 39, 40, 39,
+ 111, 64, 51, 54, 36, 37, 42, 38, 40, 55,
+ 40, 40, 40, 39, 40, 39, 79, 79, 79, 151,
+ 105, 40, 42, 150, 40, 79, 79, 65, 39, 40,
+ 39, 39, 40, 39, 119, 119, 119, 42, 104, 40,
+ 42, 149, 40, 39, 40, 39, 39, 40, 39, 39,
+
+ 40, 39, 42, 103, 40, 42, 102, 40, 42, 101,
+ 40, 39, 40, 39, 66, 63, 63, 63, 93, 150,
+ 42, 138, 40, 138, 70, 64, 92, 39, 40, 39,
+ 67, 138, 76, 138, 71, 121, 42, 69, 40, 68,
+ 91, 39, 40, 39, 39, 40, 39, 39, 40, 39,
+ 42, 65, 40, 42, 90, 40, 42, 89, 40, 39,
+ 40, 39, 139, 89, 39, 40, 39, 88, 42, 81,
+ 40, 78, 139, 42, 82, 40, 79, 79, 79, 75,
+ 39, 40, 39, 72, 83, 79, 79, 57, 86, 42,
+ 47, 40, 85, 84, 87, 95, 96, 95, 39, 40,
+
+ 39, 39, 40, 39, 42, 151, 40, 42, 151, 40,
+ 42, 151, 40, 39, 40, 39, 127, 127, 127, 151,
+ 128, 151, 42, 151, 40, 151, 151, 94, 39, 40,
+ 39, 106, 40, 106, 151, 98, 151, 42, 151, 40,
+ 42, 151, 40, 99, 151, 83, 97, 151, 151, 151,
+ 39, 40, 39, 151, 100, 95, 96, 95, 151, 42,
+ 107, 40, 151, 151, 42, 151, 40, 39, 40, 39,
+ 62, 62, 62, 110, 40, 110, 42, 151, 40, 119,
+ 119, 119, 42, 151, 40, 39, 40, 39, 151, 151,
+ 109, 119, 119, 119, 42, 151, 40, 151, 83, 119,
+
+ 119, 119, 39, 40, 39, 151, 97, 96, 96, 96,
+ 151, 42, 107, 40, 151, 122, 151, 140, 40, 140,
+ 141, 151, 62, 62, 62, 40, 40, 40, 135, 151,
+ 121, 127, 127, 127, 151, 128, 40, 141, 143, 40,
+ 143, 151, 121, 39, 40, 39, 151, 42, 151, 40,
+ 121, 151, 42, 151, 40, 151, 151, 151, 97, 112,
+ 112, 113, 112, 112, 112, 114, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 114, 114, 114, 112, 112,
+ 112, 112, 112, 114, 114, 114, 114, 114, 114, 114,
+ 114, 114, 112, 112, 112, 114, 114, 114, 114, 114,
+
+ 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
+ 114, 112, 112, 106, 40, 106, 151, 140, 117, 140,
+ 141, 151, 42, 151, 40, 151, 151, 151, 62, 62,
+ 62, 110, 40, 110, 151, 151, 123, 141, 151, 151,
+ 42, 151, 124, 151, 151, 151, 62, 62, 62, 131,
+ 131, 131, 151, 151, 132, 131, 131, 131, 131, 131,
+ 132, 151, 151, 151, 131, 131, 63, 131, 63, 151,
+ 151, 151, 63, 131, 151, 63, 151, 151, 151, 151,
+ 151, 151, 151, 151, 151, 151, 151, 151, 63, 151,
+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+
+ 134, 151, 151, 151, 151, 151, 134, 35, 151, 35,
+ 151, 151, 35, 151, 151, 151, 151, 151, 35, 35,
+ 41, 41, 41, 151, 151, 41, 41, 151, 41, 151,
+ 41, 41, 41, 46, 46, 46, 56, 151, 151, 151,
+ 151, 56, 56, 56, 62, 62, 62, 151, 151, 151,
+ 62, 151, 62, 151, 62, 62, 62, 80, 80, 80,
+ 151, 80, 151, 80, 80, 151, 151, 151, 80, 80,
+ 80, 108, 108, 108, 151, 151, 108, 108, 151, 108,
+ 151, 108, 108, 108, 108, 118, 118, 118, 151, 151,
+ 118, 118, 151, 118, 151, 118, 118, 118, 120, 120,
+
+ 120, 151, 151, 120, 151, 151, 151, 151, 120, 120,
+ 120, 120, 125, 125, 125, 151, 151, 125, 125, 151,
+ 125, 151, 125, 125, 125, 112, 112, 112, 112, 112,
+ 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
+ 133, 133, 133, 151, 151, 133, 133, 133, 151, 151,
+ 133, 133, 133, 133, 136, 151, 151, 151, 151, 136,
+ 136, 136, 137, 151, 137, 151, 151, 137, 151, 151,
+ 151, 151, 151, 137, 137, 131, 131, 131, 151, 151,
+ 151, 131, 131, 151, 151, 131, 131, 131, 131, 144,
+ 151, 151, 151, 151, 144, 144, 144, 146, 151, 151,
+
+ 146, 151, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 5, 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, 151, 151,
+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+ 151, 151, 151, 151, 151, 151, 151
+ } ;
+
+static yyconst flex_int16_t yy_chk[868] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 2, 3, 2, 4, 3, 4,
+ 2, 147, 9, 4, 9, 10, 10, 10, 11, 11,
+ 16, 16, 16, 30, 10, 30, 10, 31, 24, 24,
+ 24, 38, 37, 4, 37, 38, 4, 24, 52, 24,
+ 52, 142, 139, 25, 25, 25, 26, 26, 26, 131,
+
+ 9, 9, 25, 9, 25, 26, 58, 26, 27, 27,
+ 27, 111, 58, 111, 130, 60, 34, 27, 34, 27,
+ 24, 60, 31, 31, 116, 32, 32, 32, 115, 33,
+ 33, 33, 112, 126, 32, 126, 32, 25, 33, 105,
+ 33, 42, 42, 42, 26, 148, 104, 39, 39, 39,
+ 101, 42, 27, 32, 34, 34, 39, 34, 39, 33,
+ 40, 40, 40, 41, 41, 41, 64, 64, 64, 40,
+ 93, 40, 41, 148, 41, 64, 64, 42, 48, 48,
+ 48, 49, 49, 49, 107, 107, 107, 48, 92, 48,
+ 49, 150, 49, 50, 50, 50, 51, 51, 51, 54,
+
+ 54, 54, 50, 91, 50, 51, 90, 51, 54, 88,
+ 54, 55, 55, 55, 48, 63, 63, 63, 81, 150,
+ 55, 128, 55, 128, 54, 63, 78, 66, 66, 66,
+ 49, 138, 77, 138, 55, 107, 66, 51, 66, 50,
+ 76, 67, 67, 67, 68, 68, 68, 69, 69, 69,
+ 67, 63, 67, 68, 75, 68, 69, 74, 69, 70,
+ 70, 70, 128, 73, 71, 71, 71, 72, 70, 65,
+ 70, 61, 138, 71, 66, 71, 79, 79, 79, 59,
+ 82, 82, 82, 57, 67, 79, 79, 36, 70, 82,
+ 22, 82, 69, 68, 71, 83, 83, 83, 84, 84,
+
+ 84, 85, 85, 85, 83, 5, 83, 84, 0, 84,
+ 85, 0, 85, 86, 86, 86, 113, 113, 113, 0,
+ 113, 0, 86, 0, 86, 0, 0, 82, 87, 87,
+ 87, 94, 94, 94, 0, 84, 0, 87, 0, 87,
+ 94, 0, 94, 86, 0, 85, 83, 0, 0, 0,
+ 98, 98, 98, 0, 87, 95, 95, 95, 0, 98,
+ 95, 98, 0, 0, 95, 0, 95, 99, 99, 99,
+ 95, 95, 95, 100, 100, 100, 99, 0, 99, 108,
+ 108, 108, 100, 0, 100, 109, 109, 109, 0, 0,
+ 99, 119, 119, 119, 109, 0, 109, 0, 98, 120,
+
+ 120, 120, 122, 122, 122, 0, 95, 96, 96, 96,
+ 0, 122, 96, 122, 0, 109, 96, 129, 96, 129,
+ 129, 0, 96, 96, 96, 124, 124, 124, 122, 0,
+ 108, 127, 127, 127, 124, 127, 124, 129, 135, 135,
+ 135, 0, 119, 143, 143, 143, 0, 135, 0, 135,
+ 120, 0, 143, 0, 143, 0, 0, 0, 96, 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, 106, 106, 106, 0, 140, 106, 140,
+ 140, 0, 106, 0, 106, 0, 0, 0, 106, 106,
+ 106, 110, 110, 110, 0, 0, 110, 140, 0, 0,
+ 110, 0, 110, 0, 0, 0, 110, 110, 110, 117,
+ 117, 117, 0, 0, 117, 118, 118, 118, 117, 117,
+ 118, 0, 0, 0, 118, 118, 149, 117, 149, 0,
+ 0, 0, 149, 118, 0, 149, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 149, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+
+ 117, 0, 0, 0, 0, 0, 118, 152, 0, 152,
+ 0, 0, 152, 0, 0, 0, 0, 0, 152, 152,
+ 153, 153, 153, 0, 0, 153, 153, 0, 153, 0,
+ 153, 153, 153, 154, 154, 154, 155, 0, 0, 0,
+ 0, 155, 155, 155, 156, 156, 156, 0, 0, 0,
+ 156, 0, 156, 0, 156, 156, 156, 157, 157, 157,
+ 0, 157, 0, 157, 157, 0, 0, 0, 157, 157,
+ 157, 158, 158, 158, 0, 0, 158, 158, 0, 158,
+ 0, 158, 158, 158, 158, 159, 159, 159, 0, 0,
+ 159, 159, 0, 159, 0, 159, 159, 159, 160, 160,
+
+ 160, 0, 0, 160, 0, 0, 0, 0, 160, 160,
+ 160, 160, 161, 161, 161, 0, 0, 161, 161, 0,
+ 161, 0, 161, 161, 161, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 163, 163, 163, 0, 0, 163, 163, 163, 0, 0,
+ 163, 163, 163, 163, 164, 0, 0, 0, 0, 164,
+ 164, 164, 165, 0, 165, 0, 0, 165, 0, 0,
+ 0, 0, 0, 165, 165, 166, 166, 166, 0, 0,
+ 0, 166, 166, 0, 0, 166, 166, 166, 166, 167,
+ 0, 0, 0, 0, 167, 167, 167, 168, 0, 0,
+
+ 168, 0, 168, 168, 168, 168, 168, 168, 168, 168,
+ 168, 168, 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, 151, 151, 151,
+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+ 151, 151, 151, 151, 151, 151, 151
+ } ;
+
+extern int yy_flex_debug;
+int yy_flex_debug = 0;
+
+static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
+static char *yy_full_match;
+static int yy_lp;
+static int yy_looking_for_trail_begin = 0;
+static int yy_full_lp;
+static int *yy_full_state;
+#define YY_TRAILING_MASK 0x2000
+#define YY_TRAILING_HEAD_MASK 0x4000
+#define REJECT \
+{ \
+*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \
+yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
+(yy_lp) = (yy_full_lp); /* restore orig. accepting pos. */ \
+(yy_state_ptr) = (yy_full_state); /* restore orig. state */ \
+yy_current_state = *(yy_state_ptr); /* restore curr. state */ \
+++(yy_lp); \
+goto find_rule; \
+}
+
+static int yy_more_flag = 0;
+static int yy_more_len = 0;
+#define yymore() ((yy_more_flag) = 1)
+#define YY_MORE_ADJ (yy_more_len)
+#define YY_RESTORE_YY_MORE_OFFSET
+char *yytext;
+#line 1 "scanner.l"
+#line 2 "scanner.l"
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * C symbol scanner
+ */
+#include "global.h"
+#include "scanner.h"
+#include "lookup.h"
+
+/* the line counting has been moved from character reading for speed */
+/* comments are discarded */
+
+#define IFLEVELINC 5 /* #if nesting level size increment */
+
+static char const rcsid[] = "$Id: scanner.l,v 1.10 2011/06/29 15:48:00 nhorman Exp $";
+
+int first; /* buffer index for first char of symbol */
+int last; /* buffer index for last char of symbol */
+int lineno; /* symbol line number */
+int myylineno = 1;
+
+static BOOL arraydimension; /* inside array dimension declaration */
+static BOOL bplisting; /* breakpoint listing */
+static int braces; /* unmatched left brace count */
+static BOOL classdef; /* c++ class definition */
+static BOOL elseelif; /* #else or #elif found */
+static BOOL esudef; /* enum/struct/union global definition */
+static BOOL external; /* external definition */
+static int externalbraces; /* external definition outer brace count */
+static BOOL fcndef; /* function definition */
+static BOOL global; /* file global scope (outside functions) */
+static int iflevel; /* #if nesting level */
+static BOOL initializer; /* data initializer */
+static int initializerbraces; /* data initializer outer brace count */
+static BOOL lex; /* lex file */
+static int miflevel = IFLEVELINC; /* maximum #if nesting level */
+static int *maxifbraces; /* maximum brace count within #if */
+static int *preifbraces; /* brace count before #if */
+static int parens; /* unmatched left parenthesis count */
+static BOOL ppdefine; /* preprocessor define statement */
+static BOOL pseudoelif; /* pseudo-#elif */
+static BOOL oldtype; /* next identifier is an old type */
+static BOOL rules; /* lex/yacc rules */
+static BOOL sdl; /* sdl file */
+static BOOL structfield; /* structure field declaration */
+static int tagdef; /* class/enum/struct/union tag definition */
+static BOOL template; /* function template */
+static int templateparens; /* function template outer parentheses count */
+static int typedefbraces = -1; /* initial typedef brace count */
+static int token; /* token found */
+
+
+void multicharconstant(char terminator);
+int skipcomment_input(void);
+int comment(void);
+
+#ifdef FLEX_SCANNER
+#define YY_INPUT(buf,result,max_size) \
+ {\
+ int c = skipcomment_input (); \
+ result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \
+ }
+#else
+/* Assume this is the AT&T/SCO style lex */
+#undef input
+#define input() ((yytchar=(yytchar=yysptr>yysbuf?*(unsigned char *)--yysptr:getc(yyin))=='/'?comment():yytchar)==EOF?LEXEOF:yytchar)
+#define noncommentinput() ((yytchar=yysptr>yysbuf?*--yysptr:getc(yyin))==EOF?LEXEOF:yytchar)
+#undef unput
+#define unput(c) (*yysptr++=(c))
+
+#endif
+
+
+#line 845 "scanner.c"
+
+#define INITIAL 0
+#define SDL 1
+
+#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 );
+
+int 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
+
+ static void yyunput (int c,char *buf_ptr );
+
+#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 fwrite( yytext, yyleng, 1, yyout )
+#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) \
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
+ { \
+ int c = '*'; \
+ int n; \
+ for ( n = 0; n < max_size && \
+ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+ buf[n] = (char) c; \
+ if ( c == '\n' ) \
+ buf[n++] = (char) c; \
+ if ( c == EOF && ferror( yyin ) ) \
+ YY_FATAL_ERROR( "input in flex scanner failed" ); \
+ result = n; \
+ } \
+ else \
+ { \
+ errno=0; \
+ while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
+ { \
+ 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;
+
+#line 115 "scanner.l"
+
+#line 1033 "scanner.c"
+
+ if ( !(yy_init) )
+ {
+ (yy_init) = 1;
+
+#ifdef YY_USER_INIT
+ YY_USER_INIT;
+#endif
+
+ /* Create the reject buffer large enough to save one state per allowed character. */
+ if ( ! (yy_state_buf) )
+ (yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE );
+ if ( ! (yy_state_buf) )
+ YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
+
+ 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( );
+ }
+
+ while ( 1 ) /* loops until end-of-file is reached */
+ {
+ (yy_more_len) = 0;
+ if ( (yy_more_flag) )
+ {
+ (yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
+ (yy_more_flag) = 0;
+ }
+ 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_state_ptr) = (yy_state_buf);
+ *(yy_state_ptr)++ = yy_current_state;
+
+yy_match:
+ do
+ {
+ register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 152 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ *(yy_state_ptr)++ = yy_current_state;
+ ++yy_cp;
+ }
+ while ( yy_base[yy_current_state] != 813 );
+
+yy_find_action:
+ yy_current_state = *--(yy_state_ptr);
+ (yy_lp) = yy_accept[yy_current_state];
+find_rule: /* we branch to this label when backing up */
+ for ( ; ; ) /* until we find what rule we matched */
+ {
+ if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
+ {
+ yy_act = yy_acclist[(yy_lp)];
+ if ( yy_act & YY_TRAILING_HEAD_MASK ||
+ (yy_looking_for_trail_begin) )
+ {
+ if ( yy_act == (yy_looking_for_trail_begin) )
+ {
+ (yy_looking_for_trail_begin) = 0;
+ yy_act &= ~YY_TRAILING_HEAD_MASK;
+ break;
+ }
+ }
+ else if ( yy_act & YY_TRAILING_MASK )
+ {
+ (yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;
+ (yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK;
+ (yy_full_match) = yy_cp;
+ (yy_full_state) = (yy_state_ptr);
+ (yy_full_lp) = (yy_lp);
+ }
+ else
+ {
+ (yy_full_match) = yy_cp;
+ (yy_full_state) = (yy_state_ptr);
+ (yy_full_lp) = (yy_lp);
+ break;
+ }
+ ++(yy_lp);
+ goto find_rule;
+ }
+ --yy_cp;
+ yy_current_state = *--(yy_state_ptr);
+ (yy_lp) = 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 1:
+YY_RULE_SETUP
+#line 116 "scanner.l"
+{ /* lex/yacc C declarations/definitions */
+ global = YES;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 2:
+YY_RULE_SETUP
+#line 121 "scanner.l"
+{
+ global = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 3:
+YY_RULE_SETUP
+#line 126 "scanner.l"
+{ /* lex/yacc rules delimiter */
+ braces = 0;
+ if (rules == NO) {
+ rules = YES;
+
+ /* simulate a yylex() or yyparse() definition */
+ (void) strcat(yytext, " /* ");
+ first = strlen(yytext);
+ if (lex == YES) {
+ (void) strcat(yytext, "yylex");
+ }
+ else { /* yacc: yyparse implicitly calls yylex */
+ char *s = " yylex()";
+ char *cp = s + strlen(s);
+ while (--cp >= s) {
+ unput(*cp);
+ }
+ (void) strcat(yytext, "yyparse");
+ }
+ last = strlen(yytext);
+ (void) strcat(yytext, " */");
+ yyleng = strlen(yytext);
+ yymore();
+ return(FCNDEF);
+ }
+ else {
+ rules = NO;
+ global = YES;
+ last = first;
+ yymore();
+ return(FCNEND);
+ /* NOTREACHED */
+ }
+ }
+ YY_BREAK
+case 4:
+YY_RULE_SETUP
+#line 160 "scanner.l"
+{ /* sdl state, treat as function def */
+ braces = 1;
+ fcndef = YES;
+ token = FCNDEF;
+ goto findident;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 167 "scanner.l"
+{ /* end of an sdl state, treat as end of a function */
+ goto endstate;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 6:
+YY_RULE_SETUP
+#line 171 "scanner.l"
+{ /* count unmatched left braces for fcn def detection */
+ ++braces;
+
+ /* mark an untagged enum/struct/union so its beginning
+ can be found */
+ if (tagdef) {
+ if (braces == 1) {
+ esudef = YES;
+ }
+ token = tagdef;
+ tagdef = '\0';
+ last = first;
+ yymore();
+ return(token);
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 7:
+/* rule 7 can match eol */
+YY_RULE_SETUP
+#line 189 "scanner.l"
+{
+ /* attempt to correct erroneous brace count caused by:
+ *
+ * #if ...
+ * ... {
+ * #endif
+ * #if ...
+ * ... {
+ * #endif
+ */
+ /* the current #if must not have an #else or #elif */
+ if (elseelif == YES) {
+ goto endif;
+ /* NOTREACHED */
+ }
+ pseudoelif = YES;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 8:
+YY_RULE_SETUP
+#line 208 "scanner.l"
+{ /* #if, #ifdef or #ifndef */
+ elseelif = NO;
+ if (pseudoelif == YES) {
+ pseudoelif = NO;
+ goto elif;
+ /* NOTREACHED */
+ }
+ /* make sure there is room for the current brace count */
+ if (iflevel == miflevel) {
+ miflevel += IFLEVELINC;
+ maxifbraces = myrealloc(maxifbraces, miflevel * sizeof(int));
+ preifbraces = myrealloc(preifbraces, miflevel * sizeof(int));
+ }
+ /* push the current brace count */
+ preifbraces[iflevel] = braces;
+ maxifbraces[iflevel++] = 0;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 9:
+YY_RULE_SETUP
+#line 227 "scanner.l"
+{ /* #elif or #else */
+ elseelif = YES;
+ elif:
+ if (iflevel > 0) {
+
+ /* save the maximum brace count for this #if */
+ if (braces > maxifbraces[iflevel - 1]) {
+ maxifbraces[iflevel - 1] = braces;
+ }
+ /* restore the brace count to before the #if */
+ braces = preifbraces[iflevel - 1];
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 10:
+YY_RULE_SETUP
+#line 242 "scanner.l"
+{ /* #endif */
+ endif:
+ if (iflevel > 0) {
+
+ /* get the maximum brace count for this #if */
+ if (braces < maxifbraces[--iflevel]) {
+ braces = maxifbraces[iflevel];
+ }
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 11:
+YY_RULE_SETUP
+#line 254 "scanner.l"
+{
+ /* could be the last enum member initializer */
+ if (braces == initializerbraces) {
+ initializerbraces = -1;
+ initializer = NO;
+ }
+ if (--braces <= 0) {
+ endstate:
+ braces = 0;
+ classdef = NO;
+ }
+ if (braces == 0 || (braces == 1 && classdef == YES)) {
+
+ /* if the end of an enum/struct/union definition */
+ if (esudef == YES) {
+ esudef = NO;
+ }
+ /* if the end of the function */
+ else if (fcndef == YES) {
+ fcndef = NO;
+ last = first;
+ yymore();
+ return(FCNEND);
+ }
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 12:
+YY_RULE_SETUP
+#line 282 "scanner.l"
+{ /* count unmatched left parentheses for function templates */
+ ++parens;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 13:
+YY_RULE_SETUP
+#line 287 "scanner.l"
+{
+ if (--parens <= 0) {
+ parens = 0;
+ }
+ /* if the end of a function template */
+ if (parens == templateparens) {
+ templateparens = -1;
+ template = NO;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 14:
+YY_RULE_SETUP
+#line 299 "scanner.l"
+{ /* if a global definition initializer */
+ if (global == YES && ppdefine == NO && yytext[0] != '#') {
+ initializerbraces = braces;
+ initializer = YES;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 15:
+YY_RULE_SETUP
+#line 307 "scanner.l"
+{ /* a if global structure field */
+ if (global == YES && ppdefine == NO && yytext[0] != '#') {
+ structfield = YES;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 16:
+YY_RULE_SETUP
+#line 314 "scanner.l"
+{
+ if (braces == initializerbraces) {
+ initializerbraces = -1;
+ initializer = NO;
+ }
+ structfield = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 17:
+YY_RULE_SETUP
+#line 323 "scanner.l"
+{ /* if the enum/struct/union was not a definition */
+ if (braces == 0) {
+ esudef = NO;
+ }
+ /* if the end of a typedef */
+ if (braces == typedefbraces) {
+ typedefbraces = -1;
+ }
+ /* if the end of a external definition */
+ if (braces == externalbraces) {
+ externalbraces = -1;
+ external = NO;
+ }
+ structfield = NO;
+ initializer = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 18:
+YY_RULE_SETUP
+#line 341 "scanner.l"
+{
+
+ /* preprocessor macro or constant definition */
+ ppdefine = YES;
+ token = DEFINE;
+ if (compress == YES) {
+ yytext[0] = '\1'; /* compress the keyword */
+ }
+ findident:
+ first = yyleng - 1;
+ while (yytext[first] != ' ' && yytext[first] != '\t') {
+ --first;
+ }
+ ++first;
+ goto fcn;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 19:
+/* rule 19 can match eol */
+YY_RULE_SETUP
+#line 358 "scanner.l"
+{ /* class definition */
+ classdef = YES;
+ tagdef = 'c';
+ REJECT;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 20:
+/* rule 20 can match eol */
+YY_RULE_SETUP
+#line 364 "scanner.l"
+{ /* enum/struct/union definition */
+ tagdef = *(yytext + first);
+ goto ident;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 21:
+/* rule 21 can match eol */
+YY_RULE_SETUP
+#line 369 "scanner.l"
+{ /* tag-less e/s/u definition */
+ tagdef = yytext[first];
+ if (braces == 0) {
+ esudef = YES;
+ }
+ last = first;
+ tagdef = '\0';
+ goto more;
+ }
+ YY_BREAK
+case 22:
+/* rule 22 can match eol */
+YY_RULE_SETUP
+#line 378 "scanner.l"
+{
+
+ /* warning: "if (...)" must not overflow yytext, so the content
+ of function argument definitions is restricted, in particular
+ parentheses are not allowed */
+
+ /* if a function definition */
+ /* note: "#define a (b) {" and "#if defined(a)\n#" are not */
+ if ((braces == 0 && ppdefine == NO && yytext[0] != '#' && rules == NO) ||
+ (braces == 1 && classdef == YES)) {
+ fcndef = YES;
+ token = FCNDEF;
+ goto fcn;
+ /* NOTREACHED */
+ }
+ goto fcncal;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 23:
+YY_RULE_SETUP
+#line 396 "scanner.l"
+{ /* if a function call */
+ fcncal: if (fcndef == YES || ppdefine == YES || rules == YES) {
+ token = FCNCALL;
+ goto fcn;
+ /* NOTREACHED */
+ }
+ if (template == NO) {
+ templateparens = parens;
+ template = YES;
+ }
+ goto ident;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 24:
+/* rule 24 can match eol */
+YY_RULE_SETUP
+#line 409 "scanner.l"
+{ /* typedef name use */
+ goto ident;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 413 "scanner.l"
+{
+ char *s;
+
+ if (global == YES && ppdefine == NO && yytext[0] != '#' &&
+ external == NO && initializer == NO &&
+ arraydimension == NO && structfield == NO &&
+ template == NO && fcndef == NO) {
+ if (esudef == YES) { /* if enum/struct/union */
+ token = MEMBERDEF;
+ }
+ else {
+ token = GLOBALDEF;
+ }
+ }
+ else {
+ ident: token = IDENT;
+ }
+ fcn:
+ /* if a long line */
+ if (yyleng > STMTMAX) {
+ int c;
+
+ /* skip to the end of the line */
+ warning("line too long");
+ while ((c = skipcomment_input()) != LEXEOF) {
+ if (c == '\n') {
+ unput(c);
+ break;
+ }
+ }
+ }
+ /* truncate a long symbol */
+ if (yyleng - first > PATLEN) {
+ warning("symbol too long");
+ yyleng = first + PATLEN;
+ yytext[yyleng] = '\0';
+ }
+ /* if a keyword */
+ yymore();
+ if ((s = lookup(yytext + first)) != NULL) {
+ first = yyleng;
+
+ /* if the start of a typedef */
+ if (s == typedeftext) {
+ typedefbraces = braces;
+ oldtype = YES;
+ }
+ /* if an enum/struct/union */
+ /* (needed for "typedef struct tag name;" so
+ tag isn't marked as the typedef name) */
+ else if (s == enumtext || s == structtext || s == uniontext) {
+ }
+ /* if an external definition */
+ else if (s == externtext) {
+ externalbraces = braces;
+ external = YES;
+ }
+ /* keyword doesn't start a function template */
+ else if (templateparens == parens && template == YES) {
+ templateparens = -1;
+ template = NO;
+ }
+ else { /* next identifier after typedef was a keyword */
+ oldtype = NO;
+ }
+ }
+ else { /* identifier */
+ last = yyleng;
+
+ /* if a class/enum/struct/union tag definition */
+ if (tagdef && strnotequal(yytext + first, "class")) {
+ token = tagdef;
+ tagdef = '\0';
+ if (braces == 0) {
+ esudef = YES;
+ }
+ }
+ /* if a typedef name */
+ else if (braces == typedefbraces && oldtype == NO &&
+ arraydimension == NO) {
+ token = TYPEDEF;
+ }
+ else {
+ oldtype = NO;
+ }
+ return(token);
+ /* NOTREACHED */
+ }
+ }
+ YY_BREAK
+case 26:
+YY_RULE_SETUP
+#line 502 "scanner.l"
+{ /* array dimension (don't worry or about subscripts) */
+ arraydimension = YES;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 27:
+YY_RULE_SETUP
+#line 507 "scanner.l"
+{
+ arraydimension = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 28:
+/* rule 28 can match eol */
+YY_RULE_SETUP
+#line 512 "scanner.l"
+{ /* preprocessor statement is continued on next line */
+ goto eol;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 29:
+/* rule 29 can match eol */
+YY_RULE_SETUP
+#line 516 "scanner.l"
+{ /* end of the line */
+ if (ppdefine == YES) { /* end of a #define */
+ ppdefine = NO;
+ yyless(yyleng - 1); /* rescan \n */
+ last = first;
+ yymore();
+ return(DEFINEEND);
+ }
+ /* skip the first 8 columns of a breakpoint listing line */
+ /* and skip the file path in the page header */
+ if (bplisting == YES) {
+ int c, i;
+
+ switch (skipcomment_input()) { /* tab and EOF just fall through */
+ case ' ': /* breakpoint number line */
+ case '[':
+ for (i = 1; i < 8 && skipcomment_input() != LEXEOF; ++i)
+ ;
+ break;
+ case '.': /* header line */
+ case '/':
+ /* skip to the end of the line */
+ while ((c = skipcomment_input()) != LEXEOF) {
+ if (c == '\n') {
+ unput(c);
+ break;
+ }
+ }
+ break;
+ case '\n': /* empty line */
+ unput('\n');
+ break;
+ }
+ }
+ eol:
+ ++myylineno;
+ first = 0;
+ last = 0;
+ if (symbols > 0) {
+ return(NEWLINE);
+ }
+ lineno = myylineno;
+ }
+ YY_BREAK
+case 30:
+YY_RULE_SETUP
+#line 559 "scanner.l"
+{ /* character constant */
+ if (sdl == NO) {
+ multicharconstant('\'');
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 31:
+YY_RULE_SETUP
+#line 566 "scanner.l"
+{ /* string constant */
+ multicharconstant('"');
+ goto more;
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 571 "scanner.l"
+{ /* don't save leading white space */
+ }
+ YY_BREAK
+case 33:
+YY_RULE_SETUP
+#line 573 "scanner.l"
+{ /* #include file */
+ char *s;
+
+ s = strpbrk(yytext, "\"<");
+ if (!s)
+ return(LEXERR);
+ incfile(s + 1, s);
+ /* HBB: avoid pointer mismatch if yytext is
+ * unsigned, or a pointer */
+ first = s - (char *)&(yytext[0]);
+ last = yyleng;
+ if (compress == YES) {
+ yytext[0] = '\2'; /* compress the keyword */
+ }
+ yymore();
+ return(INCLUDE);
+ /* NOTREACHED */
+ }
+ YY_BREAK
+case 34:
+#line 592 "scanner.l"
+case 35:
+#line 593 "scanner.l"
+case 36:
+YY_RULE_SETUP
+#line 593 "scanner.l"
+{ /* punctuation and operators */
+ more: first = yyleng;
+ yymore();
+ }
+ YY_BREAK
+case 37:
+YY_RULE_SETUP
+#line 597 "scanner.l"
+ECHO;
+ YY_BREAK
+#line 1787 "scanner.c"
+ case YY_STATE_EOF(INITIAL):
+ case YY_STATE_EOF(SDL):
+ yyterminate();
+
+ 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 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
+ {
+ int 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. */
+
+ YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+
+ }
+
+ 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), (size_t) 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();
+
+ (yy_state_ptr) = (yy_state_buf);
+ *(yy_state_ptr)++ = yy_current_state;
+
+ for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+ {
+ register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 152 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ *(yy_state_ptr)++ = yy_current_state;
+ }
+
+ 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 YY_CHAR yy_c = 1;
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 152 )
+ yy_c = yy_meta[(unsigned int) yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ yy_is_jam = (yy_current_state == 151);
+ if ( ! yy_is_jam )
+ *(yy_state_ptr)++ = yy_current_state;
+
+ return yy_is_jam ? 0 : yy_current_state;
+}
+
+ static void yyunput (int c, register char * yy_bp )
+{
+ register char *yy_cp;
+
+ yy_cp = (yy_c_buf_p);
+
+ /* undo effects of setting up yytext */
+ *yy_cp = (yy_hold_char);
+
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ { /* need to shift things up to make room */
+ /* +2 for EOB chars. */
+ register int number_to_move = (yy_n_chars) + 2;
+ register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+ register char *source =
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+
+ while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+ *--dest = *--source;
+
+ yy_cp += (int) (dest - source);
+ yy_bp += (int) (dest - source);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+ YY_FATAL_ERROR( "flex scanner push-back overflow" );
+ }
+
+ *--yy_cp = (char) c;
+
+ (yytext_ptr) = yy_bp;
+ (yy_hold_char) = *yy_cp;
+ (yy_c_buf_p) = yy_cp;
+}
+
+#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 */
+ int 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 );
+}
+
+#ifndef __cplusplus
+extern int isatty (int );
+#endif /* __cplusplus */
+
+/* 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)
+{
+ int 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 bytes the byte buffer to scan
+ * @param 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, int _yybytes_len )
+{
+ YY_BUFFER_STATE b;
+ char *buf;
+ yy_size_t n;
+ int 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.
+ *
+ */
+int 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_state_buf) = 0;
+ (yy_state_ptr) = 0;
+ (yy_full_match) = 0;
+ (yy_lp) = 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;
+
+ yyfree ( (yy_state_buf) );
+ (yy_state_buf) = 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 597 "scanner.l"
+
+
+
+void
+initscanner(char *srcfile)
+{
+ char *s;
+
+ if (maxifbraces == NULL) {
+ maxifbraces = mymalloc(miflevel * sizeof(int));
+ preifbraces = mymalloc(miflevel * sizeof(int));
+ }
+ first = 0; /* buffer index for first char of symbol */
+ last = 0; /* buffer index for last char of symbol */
+ lineno = 1; /* symbol line number */
+ myylineno = 1; /* input line number */
+ arraydimension = NO; /* inside array dimension declaration */
+ bplisting = NO; /* breakpoint listing */
+ braces = 0; /* unmatched left brace count */
+ classdef = NO; /* c++ class definition */
+ elseelif = NO; /* #else or #elif found */
+ esudef = NO; /* enum/struct/union global definition */
+ external = NO; /* external definition */
+ externalbraces = -1; /* external definition outer brace count */
+ fcndef = NO; /* function definition */
+ global = YES; /* file global scope (outside functions) */
+ iflevel = 0; /* #if nesting level */
+ initializer = NO; /* data initializer */
+ initializerbraces = -1; /* data initializer outer brace count */
+ lex = NO; /* lex file */
+ parens = 0; /* unmatched left parenthesis count */
+ ppdefine = NO; /* preprocessor define statement */
+ pseudoelif = NO; /* pseudo-#elif */
+ oldtype = NO; /* next identifier is an old type */
+ rules = NO; /* lex/yacc rules */
+ sdl = NO; /* sdl file */
+ structfield = NO; /* structure field declaration */
+ tagdef = '\0'; /* class/enum/struct/union tag definition */
+ template = NO; /* function template */
+ templateparens = -1; /* function template outer parentheses count */
+ typedefbraces = -1; /* initial typedef braces count */
+
+ BEGIN 0;
+
+ /* if this is not a C file */
+ if ((s = strrchr(srcfile, '.')) != NULL) {
+ switch (*++s) { /* this switch saves time on C files */
+ case 'b':
+ if (strcmp(s, "bp") == 0) { /* breakpoint listing */
+ bplisting = YES;
+ }
+ break;
+ case 'l':
+ if (strcmp(s, "l") == 0) { /* lex */
+ lex = YES;
+ global = NO;
+ }
+ break;
+ case 's':
+ if (strcmp(s, "sd") == 0) { /* sdl */
+ sdl = YES;
+ BEGIN SDL;
+ }
+ break;
+ case 'y':
+ if (strcmp(s, "y") == 0) { /* yacc */
+ global = NO;
+ }
+ break;
+ }
+ }
+}
+
+int
+skipcomment_input(void)
+{
+ int c;
+
+ if ((c = getc (yyin)) == '/') {
+ return comment ();
+ }
+ else {
+ return c;
+ }
+
+}
+
+int
+comment_input(void)
+{
+ int c;
+
+ c = getc (yyin);
+
+ return (c == EOF) ? LEXEOF : c;
+}
+
+int
+comment(void)
+{
+ int c, lastc;
+
+ do {
+ if ((c = getc(yyin)) == '*') { /* C comment */
+ lastc = '\0';
+ while ((c = getc(yyin)) != EOF &&
+ (c != '/' || lastc != '*')) { /* fewer '/'s */
+ if (c == '\n') {
+ ++myylineno;
+ }
+ lastc = c;
+ }
+ /* return a blank for Reiser cpp token concatenation */
+ if ((c = getc(yyin)) == '_' || isalnum(c)) {
+ (void) ungetc(c, yyin);
+ c = ' ';
+ break;
+ }
+ }
+ else if (c == '/') { /* C++ comment */
+ while ((c = getc(yyin)) != EOF && c != '\n') {
+ ;
+ }
+ break;
+ }
+ else { /* not a comment */
+ (void) ungetc(c, yyin);
+ c = '/';
+ break;
+ /* NOTREACHED */
+ }
+
+ /* there may be an immediately following comment */
+ } while (c == '/');
+ return(c);
+}
+
+void
+multicharconstant(char terminator)
+{
+ char c;
+
+ /* scan until the terminator is found */
+ while ((c = yytext[yyleng++] = comment_input()) != terminator) {
+ switch (c) {
+ case '\\': /* escape character */
+ if ((yytext[yyleng++] = comment_input()) == '\n') {
+ ++myylineno;
+ }
+ break;
+ case '\t': /* tab character */
+
+ /* if not a lex program, continue */
+ if (lex == NO) {
+ break;
+ }
+ /* fall through */
+
+ case '\n': /* illegal character */
+
+ /* assume the terminator is missing, so put
+ this character back */
+ unput(c);
+ yytext[--yyleng] = '\0';
+ /* fall through */
+
+ case LEXEOF: /* end of file */
+ return;
+
+ default:
+ /* change a control character to a blank */
+ if (!isprint((unsigned char)c)) {
+ yytext[yyleng - 1] = ' ';
+ }
+ }
+ /* if this token will overflow the line buffer */
+ /* note: '\\' may cause yyleng to be > STMTMAX */
+ if (yyleng >= STMTMAX) {
+
+ /* truncate the token */
+ while ((c = comment_input()) != LEXEOF) {
+ if (c == terminator) {
+ unput(c);
+ break;
+ }
+ else if (c == '\n') {
+ ++myylineno;
+ }
+ }
+ }
+ }
+ yytext[yyleng] = '\0';
+}
+
diff --git a/src/scanner.h b/src/scanner.h
new file mode 100644
index 0000000..8f2dd1c
--- /dev/null
+++ b/src/scanner.h
@@ -0,0 +1,97 @@
+/*===========================================================================
+ Copyright (c) 2001, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: scanner.h,v 1.5 2009/08/28 14:28:27 nhorman Exp $ */
+
+
+#ifndef CSCOPE_SCANNER_H
+#define CSCOPE_SCANNER_H
+
+#include <stdio.h>
+
+#undef YYLMAX
+#define YYLMAX STMTMAX + PATLEN + 1 /* scanner line buffer size */
+
+/* cross-reference database mark characters (when new ones are added,
+ * update the cscope.out format description in cscope.1)
+ */
+#define CLASSDEF 'c'
+#define DEFINE '#'
+#define DEFINEEND ')'
+#define ENUMDEF 'e'
+#define FCNCALL '`'
+#define FCNDEF '$'
+#define FCNEND '}'
+#define GLOBALDEF 'g'
+#define INCLUDE '~'
+#define MEMBERDEF 'm'
+#define NEWFILE '@'
+#define STRUCTDEF 's'
+#define TYPEDEF 't'
+#define UNIONDEF 'u'
+
+/* other scanner token types */
+#define LEXEOF 0
+#define LEXERR 1
+#define IDENT 2
+#define NEWLINE 3
+
+/* scanner.l global data */
+extern int first; /* buffer index for first char of symbol */
+extern int last; /* buffer index for last char of symbol */
+extern int lineno; /* symbol line number */
+extern FILE *yyin; /* input file descriptor */
+extern FILE *yyout; /* output file */
+extern int myylineno; /* input line number */
+
+#ifdef USING_LEX
+/* HBB 20010430: if lex is used instead of flex, have to simulate the
+ * private copies of yytext and yytext for the world outside scanner.l: */
+/* FIXME: there should be a feature test for this! */
+#if defined(__OSF1__) || defined(__sun) || defined(_AIX)
+extern char yytext[];
+#else
+extern unsigned char yytext[];
+#endif
+extern int yyleng;
+# define my_yytext yytext
+# define my_yyleng yyleng
+#else
+extern char *my_yytext; /* private copy of input line */
+extern size_t my_yyleng; /* ... and current length of it */
+#endif
+
+/* The master function exported by scanner.l */
+int yylex(void);
+void initscanner(char *srcfile);
+
+#endif /* CSCOPE_SCANNER_H ends */
diff --git a/src/scanner.l b/src/scanner.l
new file mode 100644
index 0000000..e96b01d
--- /dev/null
+++ b/src/scanner.l
@@ -0,0 +1,788 @@
+%{
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * C symbol scanner
+ */
+#include "global.h"
+#include "scanner.h"
+#include "lookup.h"
+
+/* the line counting has been moved from character reading for speed */
+/* comments are discarded */
+
+#define IFLEVELINC 5 /* #if nesting level size increment */
+
+static char const rcsid[] = "$Id: scanner.l,v 1.10 2011/06/29 15:48:00 nhorman Exp $";
+
+int first; /* buffer index for first char of symbol */
+int last; /* buffer index for last char of symbol */
+int lineno; /* symbol line number */
+int myylineno = 1;
+
+static BOOL arraydimension; /* inside array dimension declaration */
+static BOOL bplisting; /* breakpoint listing */
+static int braces; /* unmatched left brace count */
+static BOOL classdef; /* c++ class definition */
+static BOOL elseelif; /* #else or #elif found */
+static BOOL esudef; /* enum/struct/union global definition */
+static BOOL external; /* external definition */
+static int externalbraces; /* external definition outer brace count */
+static BOOL fcndef; /* function definition */
+static BOOL global; /* file global scope (outside functions) */
+static int iflevel; /* #if nesting level */
+static BOOL initializer; /* data initializer */
+static int initializerbraces; /* data initializer outer brace count */
+static BOOL lex; /* lex file */
+static int miflevel = IFLEVELINC; /* maximum #if nesting level */
+static int *maxifbraces; /* maximum brace count within #if */
+static int *preifbraces; /* brace count before #if */
+static int parens; /* unmatched left parenthesis count */
+static BOOL ppdefine; /* preprocessor define statement */
+static BOOL pseudoelif; /* pseudo-#elif */
+static BOOL oldtype; /* next identifier is an old type */
+static BOOL rules; /* lex/yacc rules */
+static BOOL sdl; /* sdl file */
+static BOOL structfield; /* structure field declaration */
+static int tagdef; /* class/enum/struct/union tag definition */
+static BOOL template; /* function template */
+static int templateparens; /* function template outer parentheses count */
+static int typedefbraces = -1; /* initial typedef brace count */
+static int token; /* token found */
+
+
+void multicharconstant(char terminator);
+int skipcomment_input(void);
+int comment(void);
+
+#ifdef FLEX_SCANNER
+#define YY_INPUT(buf,result,max_size) \
+ {\
+ int c = skipcomment_input (); \
+ result = (c == EOF) ? YY_NULL : (buf[0] = c, 1); \
+ }
+#else
+/* Assume this is the AT&T/SCO style lex */
+#undef input
+#define input() ((yytchar=(yytchar=yysptr>yysbuf?*(unsigned char *)--yysptr:getc(yyin))=='/'?comment():yytchar)==EOF?LEXEOF:yytchar)
+#define noncommentinput() ((yytchar=yysptr>yysbuf?*--yysptr:getc(yyin))==EOF?LEXEOF:yytchar)
+#undef unput
+#define unput(c) (*yysptr++=(c))
+
+#endif
+
+%}
+
+ws [ \t\r\v\f]
+wsnl [ \t\r\v\f\n]
+identifier [a-zA-Z_$][a-zA-Z_0-9$]*
+number \.?[0-9][.0-9a-fA-FlLuUxX]*
+
+%start SDL
+%a 12000
+%o 7000
+%%
+%\{ { /* lex/yacc C declarations/definitions */
+ global = YES;
+ goto more;
+ /* NOTREACHED */
+ }
+%\} {
+ global = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+^%% { /* lex/yacc rules delimiter */
+ braces = 0;
+ if (rules == NO) {
+ rules = YES;
+
+ /* simulate a yylex() or yyparse() definition */
+ (void) strcat(yytext, " /* ");
+ first = strlen(yytext);
+ if (lex == YES) {
+ (void) strcat(yytext, "yylex");
+ }
+ else { /* yacc: yyparse implicitly calls yylex */
+ char *s = " yylex()";
+ char *cp = s + strlen(s);
+ while (--cp >= s) {
+ unput(*cp);
+ }
+ (void) strcat(yytext, "yyparse");
+ }
+ last = strlen(yytext);
+ (void) strcat(yytext, " */");
+ yyleng = strlen(yytext);
+ yymore();
+ return(FCNDEF);
+ }
+ else {
+ rules = NO;
+ global = YES;
+ last = first;
+ yymore();
+ return(FCNEND);
+ /* NOTREACHED */
+ }
+ }
+<SDL>STATE{ws}+({identifier}|\*) { /* sdl state, treat as function def */
+ braces = 1;
+ fcndef = YES;
+ token = FCNDEF;
+ goto findident;
+ /* NOTREACHED */
+ }
+<SDL>ENDSTATE{ws} { /* end of an sdl state, treat as end of a function */
+ goto endstate;
+ /* NOTREACHED */
+ }
+\{ { /* count unmatched left braces for fcn def detection */
+ ++braces;
+
+ /* mark an untagged enum/struct/union so its beginning
+ can be found */
+ if (tagdef) {
+ if (braces == 1) {
+ esudef = YES;
+ }
+ token = tagdef;
+ tagdef = '\0';
+ last = first;
+ yymore();
+ return(token);
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+\#{ws}*endif/.*\n{wsnl}*#{ws}*if {
+ /* attempt to correct erroneous brace count caused by:
+ *
+ * #if ...
+ * ... {
+ * #endif
+ * #if ...
+ * ... {
+ * #endif
+ */
+ /* the current #if must not have an #else or #elif */
+ if (elseelif == YES) {
+ goto endif;
+ /* NOTREACHED */
+ }
+ pseudoelif = YES;
+ goto more;
+ /* NOTREACHED */
+ }
+\#{ws}*ifn?(def)? { /* #if, #ifdef or #ifndef */
+ elseelif = NO;
+ if (pseudoelif == YES) {
+ pseudoelif = NO;
+ goto elif;
+ /* NOTREACHED */
+ }
+ /* make sure there is room for the current brace count */
+ if (iflevel == miflevel) {
+ miflevel += IFLEVELINC;
+ maxifbraces = myrealloc(maxifbraces, miflevel * sizeof(int));
+ preifbraces = myrealloc(preifbraces, miflevel * sizeof(int));
+ }
+ /* push the current brace count */
+ preifbraces[iflevel] = braces;
+ maxifbraces[iflevel++] = 0;
+ goto more;
+ /* NOTREACHED */
+ }
+\#{ws}*el(se|if) { /* #elif or #else */
+ elseelif = YES;
+ elif:
+ if (iflevel > 0) {
+
+ /* save the maximum brace count for this #if */
+ if (braces > maxifbraces[iflevel - 1]) {
+ maxifbraces[iflevel - 1] = braces;
+ }
+ /* restore the brace count to before the #if */
+ braces = preifbraces[iflevel - 1];
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+\#{ws}*endif { /* #endif */
+ endif:
+ if (iflevel > 0) {
+
+ /* get the maximum brace count for this #if */
+ if (braces < maxifbraces[--iflevel]) {
+ braces = maxifbraces[iflevel];
+ }
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+\} {
+ /* could be the last enum member initializer */
+ if (braces == initializerbraces) {
+ initializerbraces = -1;
+ initializer = NO;
+ }
+ if (--braces <= 0) {
+ endstate:
+ braces = 0;
+ classdef = NO;
+ }
+ if (braces == 0 || (braces == 1 && classdef == YES)) {
+
+ /* if the end of an enum/struct/union definition */
+ if (esudef == YES) {
+ esudef = NO;
+ }
+ /* if the end of the function */
+ else if (fcndef == YES) {
+ fcndef = NO;
+ last = first;
+ yymore();
+ return(FCNEND);
+ }
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+\( { /* count unmatched left parentheses for function templates */
+ ++parens;
+ goto more;
+ /* NOTREACHED */
+ }
+\) {
+ if (--parens <= 0) {
+ parens = 0;
+ }
+ /* if the end of a function template */
+ if (parens == templateparens) {
+ templateparens = -1;
+ template = NO;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+= { /* if a global definition initializer */
+ if (global == YES && ppdefine == NO && yytext[0] != '#') {
+ initializerbraces = braces;
+ initializer = YES;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+: { /* a if global structure field */
+ if (global == YES && ppdefine == NO && yytext[0] != '#') {
+ structfield = YES;
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+\, {
+ if (braces == initializerbraces) {
+ initializerbraces = -1;
+ initializer = NO;
+ }
+ structfield = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+; { /* if the enum/struct/union was not a definition */
+ if (braces == 0) {
+ esudef = NO;
+ }
+ /* if the end of a typedef */
+ if (braces == typedefbraces) {
+ typedefbraces = -1;
+ }
+ /* if the end of a external definition */
+ if (braces == externalbraces) {
+ externalbraces = -1;
+ external = NO;
+ }
+ structfield = NO;
+ initializer = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+\#{ws}*define{ws}+{identifier} {
+
+ /* preprocessor macro or constant definition */
+ ppdefine = YES;
+ token = DEFINE;
+ if (compress == YES) {
+ yytext[0] = '\1'; /* compress the keyword */
+ }
+ findident:
+ first = yyleng - 1;
+ while (yytext[first] != ' ' && yytext[first] != '\t') {
+ --first;
+ }
+ ++first;
+ goto fcn;
+ /* NOTREACHED */
+ }
+class{ws}+{identifier}({wsnl}|[a-zA-Z0-9_():])*\{ { /* class definition */
+ classdef = YES;
+ tagdef = 'c';
+ REJECT;
+ /* NOTREACHED */
+ }
+(enum|struct|union)/({wsnl}+{identifier}){wsnl}*\{ { /* enum/struct/union definition */
+ tagdef = *(yytext + first);
+ goto ident;
+ /* NOTREACHED */
+ }
+(enum|struct|union)/{wsnl}*\{ { /* tag-less e/s/u definition */
+ tagdef = yytext[first];
+ if (braces == 0) {
+ esudef = YES;
+ }
+ last = first;
+ tagdef = '\0';
+ goto more;
+ }
+{identifier}/{ws}*\(({wsnl}|a-zA-Z0-9_*&[\]=,.:])*\)({wsnl}|[()])*[:a-zA-Z_#{] {
+
+ /* warning: "if (...)" must not overflow yytext, so the content
+ of function argument definitions is restricted, in particular
+ parentheses are not allowed */
+
+ /* if a function definition */
+ /* note: "#define a (b) {" and "#if defined(a)\n#" are not */
+ if ((braces == 0 && ppdefine == NO && yytext[0] != '#' && rules == NO) ||
+ (braces == 1 && classdef == YES)) {
+ fcndef = YES;
+ token = FCNDEF;
+ goto fcn;
+ /* NOTREACHED */
+ }
+ goto fcncal;
+ /* NOTREACHED */
+ }
+{identifier}/{ws}*\( { /* if a function call */
+ fcncal: if (fcndef == YES || ppdefine == YES || rules == YES) {
+ token = FCNCALL;
+ goto fcn;
+ /* NOTREACHED */
+ }
+ if (template == NO) {
+ templateparens = parens;
+ template = YES;
+ }
+ goto ident;
+ /* NOTREACHED */
+ }
+{identifier}/([*]|{wsnl})+[a-zA-Z0-9_] { /* typedef name use */
+ goto ident;
+ /* NOTREACHED */
+ }
+{identifier} {
+ char *s;
+
+ if (global == YES && ppdefine == NO && yytext[0] != '#' &&
+ external == NO && initializer == NO &&
+ arraydimension == NO && structfield == NO &&
+ template == NO && fcndef == NO) {
+ if (esudef == YES) { /* if enum/struct/union */
+ token = MEMBERDEF;
+ }
+ else {
+ token = GLOBALDEF;
+ }
+ }
+ else {
+ ident: token = IDENT;
+ }
+ fcn:
+ /* if a long line */
+ if (yyleng > STMTMAX) {
+ int c;
+
+ /* skip to the end of the line */
+ warning("line too long");
+ while ((c = skipcomment_input()) != LEXEOF) {
+ if (c == '\n') {
+ unput(c);
+ break;
+ }
+ }
+ }
+ /* truncate a long symbol */
+ if (yyleng - first > PATLEN) {
+ warning("symbol too long");
+ yyleng = first + PATLEN;
+ yytext[yyleng] = '\0';
+ }
+ /* if a keyword */
+ yymore();
+ if ((s = lookup(yytext + first)) != NULL) {
+ first = yyleng;
+
+ /* if the start of a typedef */
+ if (s == typedeftext) {
+ typedefbraces = braces;
+ oldtype = YES;
+ }
+ /* if an enum/struct/union */
+ /* (needed for "typedef struct tag name;" so
+ tag isn't marked as the typedef name) */
+ else if (s == enumtext || s == structtext || s == uniontext) {
+ }
+ /* if an external definition */
+ else if (s == externtext) {
+ externalbraces = braces;
+ external = YES;
+ }
+ /* keyword doesn't start a function template */
+ else if (templateparens == parens && template == YES) {
+ templateparens = -1;
+ template = NO;
+ }
+ else { /* next identifier after typedef was a keyword */
+ oldtype = NO;
+ }
+ }
+ else { /* identifier */
+ last = yyleng;
+
+ /* if a class/enum/struct/union tag definition */
+ if (tagdef && strnotequal(yytext + first, "class")) {
+ token = tagdef;
+ tagdef = '\0';
+ if (braces == 0) {
+ esudef = YES;
+ }
+ }
+ /* if a typedef name */
+ else if (braces == typedefbraces && oldtype == NO &&
+ arraydimension == NO) {
+ token = TYPEDEF;
+ }
+ else {
+ oldtype = NO;
+ }
+ return(token);
+ /* NOTREACHED */
+ }
+ }
+\[ { /* array dimension (don't worry or about subscripts) */
+ arraydimension = YES;
+ goto more;
+ /* NOTREACHED */
+ }
+\] {
+ arraydimension = NO;
+ goto more;
+ /* NOTREACHED */
+ }
+\\\n { /* preprocessor statement is continued on next line */
+ goto eol;
+ /* NOTREACHED */
+ }
+\n { /* end of the line */
+ if (ppdefine == YES) { /* end of a #define */
+ ppdefine = NO;
+ yyless(yyleng - 1); /* rescan \n */
+ last = first;
+ yymore();
+ return(DEFINEEND);
+ }
+ /* skip the first 8 columns of a breakpoint listing line */
+ /* and skip the file path in the page header */
+ if (bplisting == YES) {
+ int c, i;
+
+ switch (skipcomment_input()) { /* tab and EOF just fall through */
+ case ' ': /* breakpoint number line */
+ case '[':
+ for (i = 1; i < 8 && skipcomment_input() != LEXEOF; ++i)
+ ;
+ break;
+ case '.': /* header line */
+ case '/':
+ /* skip to the end of the line */
+ while ((c = skipcomment_input()) != LEXEOF) {
+ if (c == '\n') {
+ unput(c);
+ break;
+ }
+ }
+ break;
+ case '\n': /* empty line */
+ unput('\n');
+ break;
+ }
+ }
+ eol:
+ ++myylineno;
+ first = 0;
+ last = 0;
+ if (symbols > 0) {
+ return(NEWLINE);
+ }
+ lineno = myylineno;
+ }
+\' { /* character constant */
+ if (sdl == NO) {
+ multicharconstant('\'');
+ }
+ goto more;
+ /* NOTREACHED */
+ }
+\" { /* string constant */
+ multicharconstant('"');
+ goto more;
+ /* NOTREACHED */
+ }
+^{ws}+ { /* don't save leading white space */
+ }
+\#{ws}*include{ws}*["<][^"> \t\n]+ { /* #include file */
+ char *s;
+
+ s = strpbrk(yytext, "\"<");
+ if (!s)
+ return(LEXERR);
+ incfile(s + 1, s);
+ /* HBB: avoid pointer mismatch if yytext is
+ * unsigned, or a pointer */
+ first = s - (char *)&(yytext[0]);
+ last = yyleng;
+ if (compress == YES) {
+ yytext[0] = '\2'; /* compress the keyword */
+ }
+ yymore();
+ return(INCLUDE);
+ /* NOTREACHED */
+ }
+\#{ws}*{identifier} | /* preprocessor keyword */
+{number} | /* number */
+. { /* punctuation and operators */
+ more: first = yyleng;
+ yymore();
+ }
+%%
+
+void
+initscanner(char *srcfile)
+{
+ char *s;
+
+ if (maxifbraces == NULL) {
+ maxifbraces = mymalloc(miflevel * sizeof(int));
+ preifbraces = mymalloc(miflevel * sizeof(int));
+ }
+ first = 0; /* buffer index for first char of symbol */
+ last = 0; /* buffer index for last char of symbol */
+ lineno = 1; /* symbol line number */
+ myylineno = 1; /* input line number */
+ arraydimension = NO; /* inside array dimension declaration */
+ bplisting = NO; /* breakpoint listing */
+ braces = 0; /* unmatched left brace count */
+ classdef = NO; /* c++ class definition */
+ elseelif = NO; /* #else or #elif found */
+ esudef = NO; /* enum/struct/union global definition */
+ external = NO; /* external definition */
+ externalbraces = -1; /* external definition outer brace count */
+ fcndef = NO; /* function definition */
+ global = YES; /* file global scope (outside functions) */
+ iflevel = 0; /* #if nesting level */
+ initializer = NO; /* data initializer */
+ initializerbraces = -1; /* data initializer outer brace count */
+ lex = NO; /* lex file */
+ parens = 0; /* unmatched left parenthesis count */
+ ppdefine = NO; /* preprocessor define statement */
+ pseudoelif = NO; /* pseudo-#elif */
+ oldtype = NO; /* next identifier is an old type */
+ rules = NO; /* lex/yacc rules */
+ sdl = NO; /* sdl file */
+ structfield = NO; /* structure field declaration */
+ tagdef = '\0'; /* class/enum/struct/union tag definition */
+ template = NO; /* function template */
+ templateparens = -1; /* function template outer parentheses count */
+ typedefbraces = -1; /* initial typedef braces count */
+
+ BEGIN 0;
+
+ /* if this is not a C file */
+ if ((s = strrchr(srcfile, '.')) != NULL) {
+ switch (*++s) { /* this switch saves time on C files */
+ case 'b':
+ if (strcmp(s, "bp") == 0) { /* breakpoint listing */
+ bplisting = YES;
+ }
+ break;
+ case 'l':
+ if (strcmp(s, "l") == 0) { /* lex */
+ lex = YES;
+ global = NO;
+ }
+ break;
+ case 's':
+ if (strcmp(s, "sd") == 0) { /* sdl */
+ sdl = YES;
+ BEGIN SDL;
+ }
+ break;
+ case 'y':
+ if (strcmp(s, "y") == 0) { /* yacc */
+ global = NO;
+ }
+ break;
+ }
+ }
+}
+
+int
+skipcomment_input(void)
+{
+ int c;
+
+ if ((c = getc (yyin)) == '/') {
+ return comment ();
+ }
+ else {
+ return c;
+ }
+
+}
+
+int
+comment_input(void)
+{
+ int c;
+
+ c = getc (yyin);
+
+ return (c == EOF) ? LEXEOF : c;
+}
+
+int
+comment(void)
+{
+ int c, lastc;
+
+ do {
+ if ((c = getc(yyin)) == '*') { /* C comment */
+ lastc = '\0';
+ while ((c = getc(yyin)) != EOF &&
+ (c != '/' || lastc != '*')) { /* fewer '/'s */
+ if (c == '\n') {
+ ++myylineno;
+ }
+ lastc = c;
+ }
+ /* return a blank for Reiser cpp token concatenation */
+ if ((c = getc(yyin)) == '_' || isalnum(c)) {
+ (void) ungetc(c, yyin);
+ c = ' ';
+ break;
+ }
+ }
+ else if (c == '/') { /* C++ comment */
+ while ((c = getc(yyin)) != EOF && c != '\n') {
+ ;
+ }
+ break;
+ }
+ else { /* not a comment */
+ (void) ungetc(c, yyin);
+ c = '/';
+ break;
+ /* NOTREACHED */
+ }
+
+ /* there may be an immediately following comment */
+ } while (c == '/');
+ return(c);
+}
+
+void
+multicharconstant(char terminator)
+{
+ char c;
+
+ /* scan until the terminator is found */
+ while ((c = yytext[yyleng++] = comment_input()) != terminator) {
+ switch (c) {
+ case '\\': /* escape character */
+ if ((yytext[yyleng++] = comment_input()) == '\n') {
+ ++myylineno;
+ }
+ break;
+ case '\t': /* tab character */
+
+ /* if not a lex program, continue */
+ if (lex == NO) {
+ break;
+ }
+ /* fall through */
+
+ case '\n': /* illegal character */
+
+ /* assume the terminator is missing, so put
+ this character back */
+ unput(c);
+ yytext[--yyleng] = '\0';
+ /* fall through */
+
+ case LEXEOF: /* end of file */
+ return;
+
+ default:
+ /* change a control character to a blank */
+ if (!isprint((unsigned char)c)) {
+ yytext[yyleng - 1] = ' ';
+ }
+ }
+ /* if this token will overflow the line buffer */
+ /* note: '\\' may cause yyleng to be > STMTMAX */
+ if (yyleng >= STMTMAX) {
+
+ /* truncate the token */
+ while ((c = comment_input()) != LEXEOF) {
+ if (c == terminator) {
+ unput(c);
+ break;
+ }
+ else if (c == '\n') {
+ ++myylineno;
+ }
+ }
+ }
+ }
+ yytext[yyleng] = '\0';
+}
diff --git a/src/snprintf.c b/src/snprintf.c
new file mode 100644
index 0000000..c47bcdd
--- /dev/null
+++ b/src/snprintf.c
@@ -0,0 +1,2097 @@
+/* $Id: snprintf.c,v 1.1 2009/04/10 13:39:23 broeker Exp $ */
+
+/*
+ * Copyright (c) 1995 Patrick Powell.
+ *
+ * This code is based on code written by Patrick Powell <papowell@astart.com>.
+ * It may be used for any purpose as long as this notice remains intact on all
+ * source code distributions.
+ */
+
+/*
+ * Copyright (c) 2008 Holger Weiss.
+ *
+ * This version of the code is maintained by Holger Weiss <holger@jhweiss.de>.
+ * My changes to the code may freely be used, modified and/or redistributed for
+ * any purpose. It would be nice if additions and fixes to this file (including
+ * trivial code cleanups) would be sent back in order to let me include them in
+ * the version available at <http://www.jhweiss.de/software/snprintf.html>.
+ * However, this is not a requirement for using or redistributing (possibly
+ * modified) versions of this file, nor is leaving this notice intact mandatory.
+ */
+
+/*
+ * History
+ *
+ * 2008-01-20 Holger Weiss <holger@jhweiss.de> for C99-snprintf 1.1:
+ *
+ * Fixed the detection of infinite floating point values on IRIX (and
+ * possibly other systems) and applied another few minor cleanups.
+ *
+ * 2008-01-06 Holger Weiss <holger@jhweiss.de> for C99-snprintf 1.0:
+ *
+ * Added a lot of new features, fixed many bugs, and incorporated various
+ * improvements done by Andrew Tridgell <tridge@samba.org>, Russ Allbery
+ * <rra@stanford.edu>, Hrvoje Niksic <hniksic@xemacs.org>, Damien Miller
+ * <djm@mindrot.org>, and others for the Samba, INN, Wget, and OpenSSH
+ * projects. The additions include: support the "e", "E", "g", "G", and
+ * "F" conversion specifiers (and use conversion style "f" or "F" for the
+ * still unsupported "a" and "A" specifiers); support the "hh", "ll", "j",
+ * "t", and "z" length modifiers; support the "#" flag and the (non-C99)
+ * "'" flag; use localeconv(3) (if available) to get both the current
+ * locale's decimal point character and the separator between groups of
+ * digits; fix the handling of various corner cases of field width and
+ * precision specifications; fix various floating point conversion bugs;
+ * handle infinite and NaN floating point values; don't attempt to write to
+ * the output buffer (which may be NULL) if a size of zero was specified;
+ * check for integer overflow of the field width, precision, and return
+ * values and during the floating point conversion; use the OUTCHAR() macro
+ * instead of a function for better performance; provide asprintf(3) and
+ * vasprintf(3) functions; add new test cases. The replacement functions
+ * have been renamed to use an "rpl_" prefix, the function calls in the
+ * main project (and in this file) must be redefined accordingly for each
+ * replacement function which is needed (by using Autoconf or other means).
+ * Various other minor improvements have been applied and the coding style
+ * was cleaned up for consistency.
+ *
+ * 2007-07-23 Holger Weiss <holger@jhweiss.de> for Mutt 1.5.13:
+ *
+ * C99 compliant snprintf(3) and vsnprintf(3) functions return the number
+ * of characters that would have been written to a sufficiently sized
+ * buffer (excluding the '\0'). The original code simply returned the
+ * length of the resulting output string, so that's been fixed.
+ *
+ * 1998-03-05 Michael Elkins <me@mutt.org> for Mutt 0.90.8:
+ *
+ * The original code assumed that both snprintf(3) and vsnprintf(3) were
+ * missing. Some systems only have snprintf(3) but not vsnprintf(3), so
+ * the code is now broken down under HAVE_SNPRINTF and HAVE_VSNPRINTF.
+ *
+ * 1998-01-27 Thomas Roessler <roessler@does-not-exist.org> for Mutt 0.89i:
+ *
+ * The PGP code was using unsigned hexadecimal formats. Unfortunately,
+ * unsigned formats simply didn't work.
+ *
+ * 1997-10-22 Brandon Long <blong@fiction.net> for Mutt 0.87.1:
+ *
+ * Ok, added some minimal floating point support, which means this probably
+ * requires libm on most operating systems. Don't yet support the exponent
+ * (e,E) and sigfig (g,G). Also, fmtint() was pretty badly broken, it just
+ * wasn't being exercised in ways which showed it, so that's been fixed.
+ * Also, formatted the code to Mutt conventions, and removed dead code left
+ * over from the original. Also, there is now a builtin-test, run with:
+ * gcc -DTEST_SNPRINTF -o snprintf snprintf.c -lm && ./snprintf
+ *
+ * 2996-09-15 Brandon Long <blong@fiction.net> for Mutt 0.43:
+ *
+ * This was ugly. It is still ugly. I opted out of floating point
+ * numbers, but the formatter understands just about everything from the
+ * normal C string format, at least as far as I can tell from the Solaris
+ * 2.5 printf(3S) man page.
+ */
+
+/*
+ * ToDo
+ *
+ * - Add wide character support.
+ * - Add support for "%a" and "%A" conversions.
+ * - Create test routines which predefine the expected results. Our test cases
+ * usually expose bugs in system implementations rather than in ours :-)
+ */
+
+/*
+ * Usage
+ *
+ * 1) The following preprocessor macros should be defined to 1 if the feature or
+ * file in question is available on the target system (by using Autoconf or
+ * other means), though basic functionality should be available as long as
+ * HAVE_STDARG_H and HAVE_STDLIB_H are defined correctly:
+ *
+ * HAVE_VSNPRINTF
+ * HAVE_SNPRINTF
+ * HAVE_VASPRINTF
+ * HAVE_ASPRINTF
+ * HAVE_STDARG_H
+ * HAVE_STDDEF_H
+ * HAVE_STDINT_H
+ * HAVE_STDLIB_H
+ * HAVE_INTTYPES_H
+ * HAVE_LOCALE_H
+ * HAVE_LOCALECONV
+ * HAVE_LCONV_DECIMAL_POINT
+ * HAVE_LCONV_THOUSANDS_SEP
+ * HAVE_LONG_DOUBLE
+ * HAVE_LONG_LONG_INT
+ * HAVE_UNSIGNED_LONG_LONG_INT
+ * HAVE_INTMAX_T
+ * HAVE_UINTMAX_T
+ * HAVE_UINTPTR_T
+ * HAVE_PTRDIFF_T
+ * HAVE_VA_COPY
+ * HAVE___VA_COPY
+ *
+ * 2) The calls to the functions which should be replaced must be redefined
+ * throughout the project files (by using Autoconf or other means):
+ *
+ * #define vsnprintf rpl_vsnprintf
+ * #define snprintf rpl_snprintf
+ * #define vasprintf rpl_vasprintf
+ * #define asprintf rpl_asprintf
+ *
+ * 3) The required replacement functions should be declared in some header file
+ * included throughout the project files:
+ *
+ * #if HAVE_CONFIG_H
+ * #include <config.h>
+ * #endif
+ * #if HAVE_STDARG_H
+ * #include <stdarg.h>
+ * #if !HAVE_VSNPRINTF
+ * int rpl_vsnprintf(char *, size_t, const char *, va_list);
+ * #endif
+ * #if !HAVE_SNPRINTF
+ * int rpl_snprintf(char *, size_t, const char *, ...);
+ * #endif
+ * #if !HAVE_VASPRINTF
+ * int rpl_vasprintf(char **, const char *, va_list);
+ * #endif
+ * #if !HAVE_ASPRINTF
+ * int rpl_asprintf(char **, const char *, ...);
+ * #endif
+ * #endif
+ *
+ * Autoconf macros for handling step 1 and step 2 are available at
+ * <http://www.jhweiss.de/software/snprintf.html>.
+ */
+
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif /* HAVE_CONFIG_H */
+
+#if TEST_SNPRINTF
+#include <math.h> /* For pow(3), NAN, and INFINITY. */
+#include <string.h> /* For strcmp(3). */
+#if defined(__NetBSD__) || \
+ defined(__FreeBSD__) || \
+ defined(__OpenBSD__) || \
+ defined(__NeXT__) || \
+ defined(__bsd__)
+#define OS_BSD 1
+#elif defined(sgi) || defined(__sgi)
+#ifndef __c99
+#define __c99 /* Force C99 mode to get <stdint.h> included on IRIX 6.5.30. */
+#endif /* !defined(__c99) */
+#define OS_IRIX 1
+#define OS_SYSV 1
+#elif defined(__svr4__)
+#define OS_SYSV 1
+#elif defined(__linux__)
+#define OS_LINUX 1
+#endif /* defined(__NetBSD__) || defined(__FreeBSD__) || [...] */
+#if HAVE_CONFIG_H /* Undefine definitions possibly done in config.h. */
+#ifdef HAVE_SNPRINTF
+#undef HAVE_SNPRINTF
+#endif /* defined(HAVE_SNPRINTF) */
+#ifdef HAVE_VSNPRINTF
+#undef HAVE_VSNPRINTF
+#endif /* defined(HAVE_VSNPRINTF) */
+#ifdef HAVE_ASPRINTF
+#undef HAVE_ASPRINTF
+#endif /* defined(HAVE_ASPRINTF) */
+#ifdef HAVE_VASPRINTF
+#undef HAVE_VASPRINTF
+#endif /* defined(HAVE_VASPRINTF) */
+#ifdef snprintf
+#undef snprintf
+#endif /* defined(snprintf) */
+#ifdef vsnprintf
+#undef vsnprintf
+#endif /* defined(vsnprintf) */
+#ifdef asprintf
+#undef asprintf
+#endif /* defined(asprintf) */
+#ifdef vasprintf
+#undef vasprintf
+#endif /* defined(vasprintf) */
+#else /* By default, we assume a modern system for testing. */
+#ifndef HAVE_STDARG_H
+#define HAVE_STDARG_H 1
+#endif /* HAVE_STDARG_H */
+#ifndef HAVE_STDDEF_H
+#define HAVE_STDDEF_H 1
+#endif /* HAVE_STDDEF_H */
+#ifndef HAVE_STDINT_H
+#define HAVE_STDINT_H 1
+#endif /* HAVE_STDINT_H */
+#ifndef HAVE_STDLIB_H
+#define HAVE_STDLIB_H 1
+#endif /* HAVE_STDLIB_H */
+#ifndef HAVE_INTTYPES_H
+#define HAVE_INTTYPES_H 1
+#endif /* HAVE_INTTYPES_H */
+#ifndef HAVE_LOCALE_H
+#define HAVE_LOCALE_H 1
+#endif /* HAVE_LOCALE_H */
+#ifndef HAVE_LOCALECONV
+#define HAVE_LOCALECONV 1
+#endif /* !defined(HAVE_LOCALECONV) */
+#ifndef HAVE_LCONV_DECIMAL_POINT
+#define HAVE_LCONV_DECIMAL_POINT 1
+#endif /* HAVE_LCONV_DECIMAL_POINT */
+#ifndef HAVE_LCONV_THOUSANDS_SEP
+#define HAVE_LCONV_THOUSANDS_SEP 1
+#endif /* HAVE_LCONV_THOUSANDS_SEP */
+#ifndef HAVE_LONG_DOUBLE
+#define HAVE_LONG_DOUBLE 1
+#endif /* !defined(HAVE_LONG_DOUBLE) */
+#ifndef HAVE_LONG_LONG_INT
+#define HAVE_LONG_LONG_INT 1
+#endif /* !defined(HAVE_LONG_LONG_INT) */
+#ifndef HAVE_UNSIGNED_LONG_LONG_INT
+#define HAVE_UNSIGNED_LONG_LONG_INT 1
+#endif /* !defined(HAVE_UNSIGNED_LONG_LONG_INT) */
+#ifndef HAVE_INTMAX_T
+#define HAVE_INTMAX_T 1
+#endif /* !defined(HAVE_INTMAX_T) */
+#ifndef HAVE_UINTMAX_T
+#define HAVE_UINTMAX_T 1
+#endif /* !defined(HAVE_UINTMAX_T) */
+#ifndef HAVE_UINTPTR_T
+#define HAVE_UINTPTR_T 1
+#endif /* !defined(HAVE_UINTPTR_T) */
+#ifndef HAVE_PTRDIFF_T
+#define HAVE_PTRDIFF_T 1
+#endif /* !defined(HAVE_PTRDIFF_T) */
+#ifndef HAVE_VA_COPY
+#define HAVE_VA_COPY 1
+#endif /* !defined(HAVE_VA_COPY) */
+#ifndef HAVE___VA_COPY
+#define HAVE___VA_COPY 1
+#endif /* !defined(HAVE___VA_COPY) */
+#endif /* HAVE_CONFIG_H */
+#define snprintf rpl_snprintf
+#define vsnprintf rpl_vsnprintf
+#define asprintf rpl_asprintf
+#define vasprintf rpl_vasprintf
+#endif /* TEST_SNPRINTF */
+
+#if !HAVE_SNPRINTF || !HAVE_VSNPRINTF || !HAVE_ASPRINTF || !HAVE_VASPRINTF
+#include <stdio.h> /* For NULL, size_t, vsnprintf(3), and vasprintf(3). */
+#ifdef VA_START
+#undef VA_START
+#endif /* defined(VA_START) */
+#ifdef VA_SHIFT
+#undef VA_SHIFT
+#endif /* defined(VA_SHIFT) */
+#if HAVE_STDARG_H
+#include <stdarg.h>
+#define VA_START(ap, last) va_start(ap, last)
+#define VA_SHIFT(ap, value, type) /* No-op for ANSI C. */
+#else /* Assume <varargs.h> is available. */
+#include <varargs.h>
+#define VA_START(ap, last) va_start(ap) /* "last" is ignored. */
+#define VA_SHIFT(ap, value, type) value = va_arg(ap, type)
+#endif /* HAVE_STDARG_H */
+
+#if !HAVE_VASPRINTF
+#if HAVE_STDLIB_H
+#include <stdlib.h> /* For malloc(3). */
+#endif /* HAVE_STDLIB_H */
+#ifdef VA_COPY
+#undef VA_COPY
+#endif /* defined(VA_COPY) */
+#ifdef VA_END_COPY
+#undef VA_END_COPY
+#endif /* defined(VA_END_COPY) */
+#if HAVE_VA_COPY
+#define VA_COPY(dest, src) va_copy(dest, src)
+#define VA_END_COPY(ap) va_end(ap)
+#elif HAVE___VA_COPY
+#define VA_COPY(dest, src) __va_copy(dest, src)
+#define VA_END_COPY(ap) va_end(ap)
+#else
+#define VA_COPY(dest, src) (void)mymemcpy(&dest, &src, sizeof(va_list))
+#define VA_END_COPY(ap) /* No-op. */
+#define NEED_MYMEMCPY 1
+static void *mymemcpy(void *, void *, size_t);
+#endif /* HAVE_VA_COPY */
+#endif /* !HAVE_VASPRINTF */
+
+#if !HAVE_VSNPRINTF
+#include <errno.h> /* For ERANGE and errno. */
+#include <limits.h> /* For *_MAX. */
+#if HAVE_INTTYPES_H
+#include <inttypes.h> /* For intmax_t (if not defined in <stdint.h>). */
+#endif /* HAVE_INTTYPES_H */
+#if HAVE_LOCALE_H
+#include <locale.h> /* For localeconv(3). */
+#endif /* HAVE_LOCALE_H */
+#if HAVE_STDDEF_H
+#include <stddef.h> /* For ptrdiff_t. */
+#endif /* HAVE_STDDEF_H */
+#if HAVE_STDINT_H
+#include <stdint.h> /* For intmax_t. */
+#endif /* HAVE_STDINT_H */
+
+/* Support for unsigned long long int. We may also need ULLONG_MAX. */
+#ifndef ULONG_MAX /* We may need ULONG_MAX as a fallback. */
+#ifdef UINT_MAX
+#define ULONG_MAX UINT_MAX
+#else
+#define ULONG_MAX INT_MAX
+#endif /* defined(UINT_MAX) */
+#endif /* !defined(ULONG_MAX) */
+#ifdef ULLONG
+#undef ULLONG
+#endif /* defined(ULLONG) */
+#if HAVE_UNSIGNED_LONG_LONG_INT
+#define ULLONG unsigned long long int
+#ifndef ULLONG_MAX
+#define ULLONG_MAX ULONG_MAX
+#endif /* !defined(ULLONG_MAX) */
+#else
+#define ULLONG unsigned long int
+#ifdef ULLONG_MAX
+#undef ULLONG_MAX
+#endif /* defined(ULLONG_MAX) */
+#define ULLONG_MAX ULONG_MAX
+#endif /* HAVE_LONG_LONG_INT */
+
+/* Support for uintmax_t. We also need UINTMAX_MAX. */
+#ifdef UINTMAX_T
+#undef UINTMAX_T
+#endif /* defined(UINTMAX_T) */
+#if HAVE_UINTMAX_T || defined(uintmax_t)
+#define UINTMAX_T uintmax_t
+#ifndef UINTMAX_MAX
+#define UINTMAX_MAX ULLONG_MAX
+#endif /* !defined(UINTMAX_MAX) */
+#else
+#define UINTMAX_T ULLONG
+#ifdef UINTMAX_MAX
+#undef UINTMAX_MAX
+#endif /* defined(UINTMAX_MAX) */
+#define UINTMAX_MAX ULLONG_MAX
+#endif /* HAVE_UINTMAX_T || defined(uintmax_t) */
+
+/* Support for long double. */
+#ifndef LDOUBLE
+#if HAVE_LONG_DOUBLE
+#define LDOUBLE long double
+#else
+#define LDOUBLE double
+#endif /* HAVE_LONG_DOUBLE */
+#endif /* !defined(LDOUBLE) */
+
+/* Support for long long int. */
+#ifndef LLONG
+#if HAVE_LONG_LONG_INT
+#define LLONG long long int
+#else
+#define LLONG long int
+#endif /* HAVE_LONG_LONG_INT */
+#endif /* !defined(LLONG) */
+
+/* Support for intmax_t. */
+#ifndef INTMAX_T
+#if HAVE_INTMAX_T || defined(intmax_t)
+#define INTMAX_T intmax_t
+#else
+#define INTMAX_T LLONG
+#endif /* HAVE_INTMAX_T || defined(intmax_t) */
+#endif /* !defined(INTMAX_T) */
+
+/* Support for uintptr_t. */
+#ifndef UINTPTR_T
+#if HAVE_UINTPTR_T || defined(uintptr_t)
+#define UINTPTR_T uintptr_t
+#else
+#define UINTPTR_T unsigned long int
+#endif /* HAVE_UINTPTR_T || defined(uintptr_t) */
+#endif /* !defined(UINTPTR_T) */
+
+/* Support for ptrdiff_t. */
+#ifndef PTRDIFF_T
+#if HAVE_PTRDIFF_T || defined(ptrdiff_t)
+#define PTRDIFF_T ptrdiff_t
+#else
+#define PTRDIFF_T long int
+#endif /* HAVE_PTRDIFF_T || defined(ptrdiff_t) */
+#endif /* !defined(PTRDIFF_T) */
+
+/*
+ * We need an unsigned integer type corresponding to ptrdiff_t (cf. C99:
+ * 7.19.6.1, 7). However, we'll simply use PTRDIFF_T and convert it to an
+ * unsigned type if necessary. This should work just fine in practice.
+ */
+#ifndef UPTRDIFF_T
+#define UPTRDIFF_T PTRDIFF_T
+#endif /* !defined(UPTRDIFF_T) */
+
+/*
+ * We need a signed integer type corresponding to size_t (cf. C99: 7.19.6.1, 7).
+ * However, we'll simply use size_t and convert it to a signed type if
+ * necessary. This should work just fine in practice.
+ */
+#ifndef SSIZE_T
+#define SSIZE_T size_t
+#endif /* !defined(SSIZE_T) */
+
+/* Either ERANGE or E2BIG should be available everywhere. */
+#ifndef ERANGE
+#define ERANGE E2BIG
+#endif /* !defined(ERANGE) */
+#ifndef EOVERFLOW
+#define EOVERFLOW ERANGE
+#endif /* !defined(EOVERFLOW) */
+
+/*
+ * Buffer size to hold the octal string representation of UINT128_MAX without
+ * nul-termination ("3777777777777777777777777777777777777777777").
+ */
+#ifdef MAX_CONVERT_LENGTH
+#undef MAX_CONVERT_LENGTH
+#endif /* defined(MAX_CONVERT_LENGTH) */
+#define MAX_CONVERT_LENGTH 43
+
+/* Format read states. */
+#define PRINT_S_DEFAULT 0
+#define PRINT_S_FLAGS 1
+#define PRINT_S_WIDTH 2
+#define PRINT_S_DOT 3
+#define PRINT_S_PRECISION 4
+#define PRINT_S_MOD 5
+#define PRINT_S_CONV 6
+
+/* Format flags. */
+#define PRINT_F_MINUS (1 << 0)
+#define PRINT_F_PLUS (1 << 1)
+#define PRINT_F_SPACE (1 << 2)
+#define PRINT_F_NUM (1 << 3)
+#define PRINT_F_ZERO (1 << 4)
+#define PRINT_F_QUOTE (1 << 5)
+#define PRINT_F_UP (1 << 6)
+#define PRINT_F_UNSIGNED (1 << 7)
+#define PRINT_F_TYPE_G (1 << 8)
+#define PRINT_F_TYPE_E (1 << 9)
+
+/* Conversion flags. */
+#define PRINT_C_CHAR 1
+#define PRINT_C_SHORT 2
+#define PRINT_C_LONG 3
+#define PRINT_C_LLONG 4
+#define PRINT_C_LDOUBLE 5
+#define PRINT_C_SIZE 6
+#define PRINT_C_PTRDIFF 7
+#define PRINT_C_INTMAX 8
+
+#ifndef MAX
+#define MAX(x, y) ((x >= y) ? x : y)
+#endif /* !defined(MAX) */
+#ifndef CHARTOINT
+#define CHARTOINT(ch) (ch - '0')
+#endif /* !defined(CHARTOINT) */
+#ifndef ISDIGIT
+#define ISDIGIT(ch) ('0' <= (unsigned char)ch && (unsigned char)ch <= '9')
+#endif /* !defined(ISDIGIT) */
+#ifndef ISNAN
+#define ISNAN(x) (x != x)
+#endif /* !defined(ISNAN) */
+#ifndef ISINF
+#define ISINF(x) (x != 0.0 && x + x == x)
+#endif /* !defined(ISINF) */
+
+#ifdef OUTCHAR
+#undef OUTCHAR
+#endif /* defined(OUTCHAR) */
+#define OUTCHAR(str, len, size, ch) \
+do { \
+ if (len + 1 < size) \
+ str[len] = ch; \
+ (len)++; \
+} while (/* CONSTCOND */ 0)
+
+static void fmtstr(char *, size_t *, size_t, const char *, int, int, int);
+static void fmtint(char *, size_t *, size_t, INTMAX_T, int, int, int, int);
+static void fmtflt(char *, size_t *, size_t, LDOUBLE, int, int, int, int *);
+static void printsep(char *, size_t *, size_t);
+static int getnumsep(int);
+static int getexponent(LDOUBLE);
+static int convert(UINTMAX_T, char *, size_t, int, int);
+static UINTMAX_T cast(LDOUBLE);
+static UINTMAX_T myround(LDOUBLE);
+static LDOUBLE mypow10(int);
+
+extern int errno;
+
+int
+rpl_vsnprintf(char *str, size_t size, const char *format, va_list args)
+{
+ LDOUBLE fvalue;
+ INTMAX_T value;
+ unsigned char cvalue;
+ const char *strvalue;
+ INTMAX_T *intmaxptr;
+ PTRDIFF_T *ptrdiffptr;
+ SSIZE_T *sizeptr;
+ LLONG *llongptr;
+ long int *longptr;
+ int *intptr;
+ short int *shortptr;
+ signed char *charptr;
+ size_t len = 0;
+ int overflow = 0;
+ int base = 0;
+ int cflags = 0;
+ int flags = 0;
+ int width = 0;
+ int precision = -1;
+ int state = PRINT_S_DEFAULT;
+ char ch = *format++;
+
+ /*
+ * C99 says: "If `n' is zero, nothing is written, and `s' may be a null
+ * pointer." (7.19.6.5, 2) We're forgiving and allow a NULL pointer
+ * even if a size larger than zero was specified. At least NetBSD's
+ * snprintf(3) does the same, as well as other versions of this file.
+ * (Though some of these versions will write to a non-NULL buffer even
+ * if a size of zero was specified, which violates the standard.)
+ */
+ if (str == NULL && size != 0)
+ size = 0;
+
+ while (ch != '\0')
+ switch (state) {
+ case PRINT_S_DEFAULT:
+ if (ch == '%')
+ state = PRINT_S_FLAGS;
+ else
+ OUTCHAR(str, len, size, ch);
+ ch = *format++;
+ break;
+ case PRINT_S_FLAGS:
+ switch (ch) {
+ case '-':
+ flags |= PRINT_F_MINUS;
+ ch = *format++;
+ break;
+ case '+':
+ flags |= PRINT_F_PLUS;
+ ch = *format++;
+ break;
+ case ' ':
+ flags |= PRINT_F_SPACE;
+ ch = *format++;
+ break;
+ case '#':
+ flags |= PRINT_F_NUM;
+ ch = *format++;
+ break;
+ case '0':
+ flags |= PRINT_F_ZERO;
+ ch = *format++;
+ break;
+ case '\'': /* SUSv2 flag (not in C99). */
+ flags |= PRINT_F_QUOTE;
+ ch = *format++;
+ break;
+ default:
+ state = PRINT_S_WIDTH;
+ break;
+ }
+ break;
+ case PRINT_S_WIDTH:
+ if (ISDIGIT(ch)) {
+ ch = CHARTOINT(ch);
+ if (width > (INT_MAX - ch) / 10) {
+ overflow = 1;
+ goto out;
+ }
+ width = 10 * width + ch;
+ ch = *format++;
+ } else if (ch == '*') {
+ /*
+ * C99 says: "A negative field width argument is
+ * taken as a `-' flag followed by a positive
+ * field width." (7.19.6.1, 5)
+ */
+ if ((width = va_arg(args, int)) < 0) {
+ flags |= PRINT_F_MINUS;
+ width = -width;
+ }
+ ch = *format++;
+ state = PRINT_S_DOT;
+ } else
+ state = PRINT_S_DOT;
+ break;
+ case PRINT_S_DOT:
+ if (ch == '.') {
+ state = PRINT_S_PRECISION;
+ ch = *format++;
+ } else
+ state = PRINT_S_MOD;
+ break;
+ case PRINT_S_PRECISION:
+ if (precision == -1)
+ precision = 0;
+ if (ISDIGIT(ch)) {
+ ch = CHARTOINT(ch);
+ if (precision > (INT_MAX - ch) / 10) {
+ overflow = 1;
+ goto out;
+ }
+ precision = 10 * precision + ch;
+ ch = *format++;
+ } else if (ch == '*') {
+ /*
+ * C99 says: "A negative precision argument is
+ * taken as if the precision were omitted."
+ * (7.19.6.1, 5)
+ */
+ if ((precision = va_arg(args, int)) < 0)
+ precision = -1;
+ ch = *format++;
+ state = PRINT_S_MOD;
+ } else
+ state = PRINT_S_MOD;
+ break;
+ case PRINT_S_MOD:
+ switch (ch) {
+ case 'h':
+ ch = *format++;
+ if (ch == 'h') { /* It's a char. */
+ ch = *format++;
+ cflags = PRINT_C_CHAR;
+ } else
+ cflags = PRINT_C_SHORT;
+ break;
+ case 'l':
+ ch = *format++;
+ if (ch == 'l') { /* It's a long long. */
+ ch = *format++;
+ cflags = PRINT_C_LLONG;
+ } else
+ cflags = PRINT_C_LONG;
+ break;
+ case 'L':
+ cflags = PRINT_C_LDOUBLE;
+ ch = *format++;
+ break;
+ case 'j':
+ cflags = PRINT_C_INTMAX;
+ ch = *format++;
+ break;
+ case 't':
+ cflags = PRINT_C_PTRDIFF;
+ ch = *format++;
+ break;
+ case 'z':
+ cflags = PRINT_C_SIZE;
+ ch = *format++;
+ break;
+ }
+ state = PRINT_S_CONV;
+ break;
+ case PRINT_S_CONV:
+ switch (ch) {
+ case 'd':
+ /* FALLTHROUGH */
+ case 'i':
+ switch (cflags) {
+ case PRINT_C_CHAR:
+ value = (signed char)va_arg(args, int);
+ break;
+ case PRINT_C_SHORT:
+ value = (short int)va_arg(args, int);
+ break;
+ case PRINT_C_LONG:
+ value = va_arg(args, long int);
+ break;
+ case PRINT_C_LLONG:
+ value = va_arg(args, LLONG);
+ break;
+ case PRINT_C_SIZE:
+ value = va_arg(args, SSIZE_T);
+ break;
+ case PRINT_C_INTMAX:
+ value = va_arg(args, INTMAX_T);
+ break;
+ case PRINT_C_PTRDIFF:
+ value = va_arg(args, PTRDIFF_T);
+ break;
+ default:
+ value = va_arg(args, int);
+ break;
+ }
+ fmtint(str, &len, size, value, 10, width,
+ precision, flags);
+ break;
+ case 'X':
+ flags |= PRINT_F_UP;
+ /* FALLTHROUGH */
+ case 'x':
+ base = 16;
+ /* FALLTHROUGH */
+ case 'o':
+ if (base == 0)
+ base = 8;
+ /* FALLTHROUGH */
+ case 'u':
+ if (base == 0)
+ base = 10;
+ flags |= PRINT_F_UNSIGNED;
+ switch (cflags) {
+ case PRINT_C_CHAR:
+ value = (unsigned char)va_arg(args,
+ unsigned int);
+ break;
+ case PRINT_C_SHORT:
+ value = (unsigned short int)va_arg(args,
+ unsigned int);
+ break;
+ case PRINT_C_LONG:
+ value = va_arg(args, unsigned long int);
+ break;
+ case PRINT_C_LLONG:
+ value = va_arg(args, ULLONG);
+ break;
+ case PRINT_C_SIZE:
+ value = va_arg(args, size_t);
+ break;
+ case PRINT_C_INTMAX:
+ value = va_arg(args, UINTMAX_T);
+ break;
+ case PRINT_C_PTRDIFF:
+ value = va_arg(args, UPTRDIFF_T);
+ break;
+ default:
+ value = va_arg(args, unsigned int);
+ break;
+ }
+ fmtint(str, &len, size, value, base, width,
+ precision, flags);
+ break;
+ case 'A':
+ /* Not yet supported, we'll use "%F". */
+ /* FALLTHROUGH */
+ case 'F':
+ flags |= PRINT_F_UP;
+ case 'a':
+ /* Not yet supported, we'll use "%f". */
+ /* FALLTHROUGH */
+ case 'f':
+ if (cflags == PRINT_C_LDOUBLE)
+ fvalue = va_arg(args, LDOUBLE);
+ else
+ fvalue = va_arg(args, double);
+ fmtflt(str, &len, size, fvalue, width,
+ precision, flags, &overflow);
+ if (overflow)
+ goto out;
+ break;
+ case 'E':
+ flags |= PRINT_F_UP;
+ /* FALLTHROUGH */
+ case 'e':
+ flags |= PRINT_F_TYPE_E;
+ if (cflags == PRINT_C_LDOUBLE)
+ fvalue = va_arg(args, LDOUBLE);
+ else
+ fvalue = va_arg(args, double);
+ fmtflt(str, &len, size, fvalue, width,
+ precision, flags, &overflow);
+ if (overflow)
+ goto out;
+ break;
+ case 'G':
+ flags |= PRINT_F_UP;
+ /* FALLTHROUGH */
+ case 'g':
+ flags |= PRINT_F_TYPE_G;
+ if (cflags == PRINT_C_LDOUBLE)
+ fvalue = va_arg(args, LDOUBLE);
+ else
+ fvalue = va_arg(args, double);
+ /*
+ * If the precision is zero, it is treated as
+ * one (cf. C99: 7.19.6.1, 8).
+ */
+ if (precision == 0)
+ precision = 1;
+ fmtflt(str, &len, size, fvalue, width,
+ precision, flags, &overflow);
+ if (overflow)
+ goto out;
+ break;
+ case 'c':
+ cvalue = va_arg(args, int);
+ OUTCHAR(str, len, size, cvalue);
+ break;
+ case 's':
+ strvalue = va_arg(args, char *);
+ fmtstr(str, &len, size, strvalue, width,
+ precision, flags);
+ break;
+ case 'p':
+ /*
+ * C99 says: "The value of the pointer is
+ * converted to a sequence of printing
+ * characters, in an implementation-defined
+ * manner." (C99: 7.19.6.1, 8)
+ */
+ if ((strvalue = va_arg(args, void *)) == NULL)
+ /*
+ * We use the glibc format. BSD prints
+ * "0x0", SysV "0".
+ */
+ fmtstr(str, &len, size, "(nil)", width,
+ -1, flags);
+ else {
+ /*
+ * We use the BSD/glibc format. SysV
+ * omits the "0x" prefix (which we emit
+ * using the PRINT_F_NUM flag).
+ */
+ flags |= PRINT_F_NUM;
+ flags |= PRINT_F_UNSIGNED;
+ fmtint(str, &len, size,
+ (UINTPTR_T)strvalue, 16, width,
+ precision, flags);
+ }
+ break;
+ case 'n':
+ switch (cflags) {
+ case PRINT_C_CHAR:
+ charptr = va_arg(args, signed char *);
+ *charptr = len;
+ break;
+ case PRINT_C_SHORT:
+ shortptr = va_arg(args, short int *);
+ *shortptr = len;
+ break;
+ case PRINT_C_LONG:
+ longptr = va_arg(args, long int *);
+ *longptr = len;
+ break;
+ case PRINT_C_LLONG:
+ llongptr = va_arg(args, LLONG *);
+ *llongptr = len;
+ break;
+ case PRINT_C_SIZE:
+ /*
+ * C99 says that with the "z" length
+ * modifier, "a following `n' conversion
+ * specifier applies to a pointer to a
+ * signed integer type corresponding to
+ * size_t argument." (7.19.6.1, 7)
+ */
+ sizeptr = va_arg(args, SSIZE_T *);
+ *sizeptr = len;
+ break;
+ case PRINT_C_INTMAX:
+ intmaxptr = va_arg(args, INTMAX_T *);
+ *intmaxptr = len;
+ break;
+ case PRINT_C_PTRDIFF:
+ ptrdiffptr = va_arg(args, PTRDIFF_T *);
+ *ptrdiffptr = len;
+ break;
+ default:
+ intptr = va_arg(args, int *);
+ *intptr = len;
+ break;
+ }
+ break;
+ case '%': /* Print a "%" character verbatim. */
+ OUTCHAR(str, len, size, ch);
+ break;
+ default: /* Skip other characters. */
+ break;
+ }
+ ch = *format++;
+ state = PRINT_S_DEFAULT;
+ base = cflags = flags = width = 0;
+ precision = -1;
+ break;
+ }
+out:
+ if (len < size)
+ str[len] = '\0';
+ else if (size > 0)
+ str[size - 1] = '\0';
+
+ if (overflow || len >= INT_MAX) {
+ errno = overflow ? EOVERFLOW : ERANGE;
+ return -1;
+ }
+ return (int)len;
+}
+
+static void
+fmtstr(char *str, size_t *len, size_t size, const char *value, int width,
+ int precision, int flags)
+{
+ int padlen, strln; /* Amount to pad. */
+ int noprecision = (precision == -1);
+
+ if (value == NULL) /* We're forgiving. */
+ value = "(null)";
+
+ /* If a precision was specified, don't read the string past it. */
+ for (strln = 0; value[strln] != '\0' &&
+ (noprecision || strln < precision); strln++)
+ continue;
+
+ if ((padlen = width - strln) < 0)
+ padlen = 0;
+ if (flags & PRINT_F_MINUS) /* Left justify. */
+ padlen = -padlen;
+
+ while (padlen > 0) { /* Leading spaces. */
+ OUTCHAR(str, *len, size, ' ');
+ padlen--;
+ }
+ while (*value != '\0' && (noprecision || precision-- > 0)) {
+ OUTCHAR(str, *len, size, *value);
+ value++;
+ }
+ while (padlen < 0) { /* Trailing spaces. */
+ OUTCHAR(str, *len, size, ' ');
+ padlen++;
+ }
+}
+
+static void
+fmtint(char *str, size_t *len, size_t size, INTMAX_T value, int base, int width,
+ int precision, int flags)
+{
+ UINTMAX_T uvalue;
+ char iconvert[MAX_CONVERT_LENGTH];
+ char sign = 0;
+ char hexprefix = 0;
+ int spadlen = 0; /* Amount to space pad. */
+ int zpadlen = 0; /* Amount to zero pad. */
+ int pos;
+ int separators = (flags & PRINT_F_QUOTE);
+ int noprecision = (precision == -1);
+
+ if (flags & PRINT_F_UNSIGNED)
+ uvalue = value;
+ else {
+ uvalue = (value >= 0) ? value : -value;
+ if (value < 0)
+ sign = '-';
+ else if (flags & PRINT_F_PLUS) /* Do a sign. */
+ sign = '+';
+ else if (flags & PRINT_F_SPACE)
+ sign = ' ';
+ }
+
+ pos = convert(uvalue, iconvert, sizeof(iconvert), base,
+ flags & PRINT_F_UP);
+
+ if (flags & PRINT_F_NUM && uvalue != 0) {
+ /*
+ * C99 says: "The result is converted to an `alternative form'.
+ * For `o' conversion, it increases the precision, if and only
+ * if necessary, to force the first digit of the result to be a
+ * zero (if the value and precision are both 0, a single 0 is
+ * printed). For `x' (or `X') conversion, a nonzero result has
+ * `0x' (or `0X') prefixed to it." (7.19.6.1, 6)
+ */
+ switch (base) {
+ case 8:
+ if (precision <= pos)
+ precision = pos + 1;
+ break;
+ case 16:
+ hexprefix = (flags & PRINT_F_UP) ? 'X' : 'x';
+ break;
+ }
+ }
+
+ if (separators) /* Get the number of group separators we'll print. */
+ separators = getnumsep(pos);
+
+ zpadlen = precision - pos - separators;
+ spadlen = width /* Minimum field width. */
+ - separators /* Number of separators. */
+ - MAX(precision, pos) /* Number of integer digits. */
+ - ((sign != 0) ? 1 : 0) /* Will we print a sign? */
+ - ((hexprefix != 0) ? 2 : 0); /* Will we print a prefix? */
+
+ if (zpadlen < 0)
+ zpadlen = 0;
+ if (spadlen < 0)
+ spadlen = 0;
+
+ /*
+ * C99 says: "If the `0' and `-' flags both appear, the `0' flag is
+ * ignored. For `d', `i', `o', `u', `x', and `X' conversions, if a
+ * precision is specified, the `0' flag is ignored." (7.19.6.1, 6)
+ */
+ if (flags & PRINT_F_MINUS) /* Left justify. */
+ spadlen = -spadlen;
+ else if (flags & PRINT_F_ZERO && noprecision) {
+ zpadlen += spadlen;
+ spadlen = 0;
+ }
+ while (spadlen > 0) { /* Leading spaces. */
+ OUTCHAR(str, *len, size, ' ');
+ spadlen--;
+ }
+ if (sign != 0) /* Sign. */
+ OUTCHAR(str, *len, size, sign);
+ if (hexprefix != 0) { /* A "0x" or "0X" prefix. */
+ OUTCHAR(str, *len, size, '0');
+ OUTCHAR(str, *len, size, hexprefix);
+ }
+ while (zpadlen > 0) { /* Leading zeros. */
+ OUTCHAR(str, *len, size, '0');
+ zpadlen--;
+ }
+ while (pos > 0) { /* The actual digits. */
+ pos--;
+ OUTCHAR(str, *len, size, iconvert[pos]);
+ if (separators > 0 && pos > 0 && pos % 3 == 0)
+ printsep(str, len, size);
+ }
+ while (spadlen < 0) { /* Trailing spaces. */
+ OUTCHAR(str, *len, size, ' ');
+ spadlen++;
+ }
+}
+
+static void
+fmtflt(char *str, size_t *len, size_t size, LDOUBLE fvalue, int width,
+ int precision, int flags, int *overflow)
+{
+ LDOUBLE ufvalue;
+ UINTMAX_T intpart;
+ UINTMAX_T fracpart;
+ UINTMAX_T mask;
+ const char *infnan = NULL;
+ char iconvert[MAX_CONVERT_LENGTH];
+ char fconvert[MAX_CONVERT_LENGTH];
+ char econvert[4]; /* "e-12" (without nul-termination). */
+ char esign = 0;
+ char sign = 0;
+ int leadfraczeros = 0;
+ int exponent = 0;
+ int emitpoint = 0;
+ int omitzeros = 0;
+ int omitcount = 0;
+ int padlen = 0;
+ int epos = 0;
+ int fpos = 0;
+ int ipos = 0;
+ int separators = (flags & PRINT_F_QUOTE);
+ int estyle = (flags & PRINT_F_TYPE_E);
+#if HAVE_LOCALECONV && HAVE_LCONV_DECIMAL_POINT
+ struct lconv *lc = localeconv();
+#endif /* HAVE_LOCALECONV && HAVE_LCONV_DECIMAL_POINT */
+
+ /*
+ * AIX' man page says the default is 0, but C99 and at least Solaris'
+ * and NetBSD's man pages say the default is 6, and sprintf(3) on AIX
+ * defaults to 6.
+ */
+ if (precision == -1)
+ precision = 6;
+
+ if (fvalue < 0.0)
+ sign = '-';
+ else if (flags & PRINT_F_PLUS) /* Do a sign. */
+ sign = '+';
+ else if (flags & PRINT_F_SPACE)
+ sign = ' ';
+
+ if (ISNAN(fvalue))
+ infnan = (flags & PRINT_F_UP) ? "NAN" : "nan";
+ else if (ISINF(fvalue))
+ infnan = (flags & PRINT_F_UP) ? "INF" : "inf";
+
+ if (infnan != NULL) {
+ if (sign != 0)
+ iconvert[ipos++] = sign;
+ while (*infnan != '\0')
+ iconvert[ipos++] = *infnan++;
+ fmtstr(str, len, size, iconvert, width, ipos, flags);
+ return;
+ }
+
+ /* "%e" (or "%E") or "%g" (or "%G") conversion. */
+ if (flags & PRINT_F_TYPE_E || flags & PRINT_F_TYPE_G) {
+ if (flags & PRINT_F_TYPE_G) {
+ /*
+ * For "%g" (and "%G") conversions, the precision
+ * specifies the number of significant digits, which
+ * includes the digits in the integer part. The
+ * conversion will or will not be using "e-style" (like
+ * "%e" or "%E" conversions) depending on the precision
+ * and on the exponent. However, the exponent can be
+ * affected by rounding the converted value, so we'll
+ * leave this decision for later. Until then, we'll
+ * assume that we're going to do an "e-style" conversion
+ * (in order to get the exponent calculated). For
+ * "e-style", the precision must be decremented by one.
+ */
+ precision--;
+ /*
+ * For "%g" (and "%G") conversions, trailing zeros are
+ * removed from the fractional portion of the result
+ * unless the "#" flag was specified.
+ */
+ if (!(flags & PRINT_F_NUM))
+ omitzeros = 1;
+ }
+ exponent = getexponent(fvalue);
+ estyle = 1;
+ }
+
+again:
+ /*
+ * Sorry, we only support 9, 19, or 38 digits (that is, the number of
+ * digits of the 32-bit, the 64-bit, or the 128-bit UINTMAX_MAX value
+ * minus one) past the decimal point due to our conversion method.
+ */
+ switch (sizeof(UINTMAX_T)) {
+ case 16:
+ if (precision > 38)
+ precision = 38;
+ break;
+ case 8:
+ if (precision > 19)
+ precision = 19;
+ break;
+ default:
+ if (precision > 9)
+ precision = 9;
+ break;
+ }
+
+ ufvalue = (fvalue >= 0.0) ? fvalue : -fvalue;
+ if (estyle) /* We want exactly one integer digit. */
+ ufvalue /= mypow10(exponent);
+
+ if ((intpart = cast(ufvalue)) == UINTMAX_MAX) {
+ *overflow = 1;
+ return;
+ }
+
+ /*
+ * Factor of ten with the number of digits needed for the fractional
+ * part. For example, if the precision is 3, the mask will be 1000.
+ */
+ mask = mypow10(precision);
+ /*
+ * We "cheat" by converting the fractional part to integer by
+ * multiplying by a factor of ten.
+ */
+ if ((fracpart = myround(mask * (ufvalue - intpart))) >= mask) {
+ /*
+ * For example, ufvalue = 2.99962, intpart = 2, and mask = 1000
+ * (because precision = 3). Now, myround(1000 * 0.99962) will
+ * return 1000. So, the integer part must be incremented by one
+ * and the fractional part must be set to zero.
+ */
+ intpart++;
+ fracpart = 0;
+ if (estyle && intpart == 10) {
+ /*
+ * The value was rounded up to ten, but we only want one
+ * integer digit if using "e-style". So, the integer
+ * part must be set to one and the exponent must be
+ * incremented by one.
+ */
+ intpart = 1;
+ exponent++;
+ }
+ }
+
+ /*
+ * Now that we know the real exponent, we can check whether or not to
+ * use "e-style" for "%g" (and "%G") conversions. If we don't need
+ * "e-style", the precision must be adjusted and the integer and
+ * fractional parts must be recalculated from the original value.
+ *
+ * C99 says: "Let P equal the precision if nonzero, 6 if the precision
+ * is omitted, or 1 if the precision is zero. Then, if a conversion
+ * with style `E' would have an exponent of X:
+ *
+ * - if P > X >= -4, the conversion is with style `f' (or `F') and
+ * precision P - (X + 1).
+ *
+ * - otherwise, the conversion is with style `e' (or `E') and precision
+ * P - 1." (7.19.6.1, 8)
+ *
+ * Note that we had decremented the precision by one.
+ */
+ if (flags & PRINT_F_TYPE_G && estyle &&
+ precision + 1 > exponent && exponent >= -4) {
+ precision -= exponent;
+ estyle = 0;
+ goto again;
+ }
+
+ if (estyle) {
+ if (exponent < 0) {
+ exponent = -exponent;
+ esign = '-';
+ } else
+ esign = '+';
+
+ /*
+ * Convert the exponent. The sizeof(econvert) is 4. So, the
+ * econvert buffer can hold e.g. "e+99" and "e-99". We don't
+ * support an exponent which contains more than two digits.
+ * Therefore, the following stores are safe.
+ */
+ epos = convert(exponent, econvert, 2, 10, 0);
+ /*
+ * C99 says: "The exponent always contains at least two digits,
+ * and only as many more digits as necessary to represent the
+ * exponent." (7.19.6.1, 8)
+ */
+ if (epos == 1)
+ econvert[epos++] = '0';
+ econvert[epos++] = esign;
+ econvert[epos++] = (flags & PRINT_F_UP) ? 'E' : 'e';
+ }
+
+ /* Convert the integer part and the fractional part. */
+ ipos = convert(intpart, iconvert, sizeof(iconvert), 10, 0);
+ if (fracpart != 0) /* convert() would return 1 if fracpart == 0. */
+ fpos = convert(fracpart, fconvert, sizeof(fconvert), 10, 0);
+
+ leadfraczeros = precision - fpos;
+
+ if (omitzeros) {
+ if (fpos > 0) /* Omit trailing fractional part zeros. */
+ while (omitcount < fpos && fconvert[omitcount] == '0')
+ omitcount++;
+ else { /* The fractional part is zero, omit it completely. */
+ omitcount = precision;
+ leadfraczeros = 0;
+ }
+ precision -= omitcount;
+ }
+
+ /*
+ * Print a decimal point if either the fractional part is non-zero
+ * and/or the "#" flag was specified.
+ */
+ if (precision > 0 || flags & PRINT_F_NUM)
+ emitpoint = 1;
+ if (separators) /* Get the number of group separators we'll print. */
+ separators = getnumsep(ipos);
+
+ padlen = width /* Minimum field width. */
+ - ipos /* Number of integer digits. */
+ - epos /* Number of exponent characters. */
+ - precision /* Number of fractional digits. */
+ - separators /* Number of group separators. */
+ - (emitpoint ? 1 : 0) /* Will we print a decimal point? */
+ - ((sign != 0) ? 1 : 0); /* Will we print a sign character? */
+
+ if (padlen < 0)
+ padlen = 0;
+
+ /*
+ * C99 says: "If the `0' and `-' flags both appear, the `0' flag is
+ * ignored." (7.19.6.1, 6)
+ */
+ if (flags & PRINT_F_MINUS) /* Left justifty. */
+ padlen = -padlen;
+ else if (flags & PRINT_F_ZERO && padlen > 0) {
+ if (sign != 0) { /* Sign. */
+ OUTCHAR(str, *len, size, sign);
+ sign = 0;
+ }
+ while (padlen > 0) { /* Leading zeros. */
+ OUTCHAR(str, *len, size, '0');
+ padlen--;
+ }
+ }
+ while (padlen > 0) { /* Leading spaces. */
+ OUTCHAR(str, *len, size, ' ');
+ padlen--;
+ }
+ if (sign != 0) /* Sign. */
+ OUTCHAR(str, *len, size, sign);
+ while (ipos > 0) { /* Integer part. */
+ ipos--;
+ OUTCHAR(str, *len, size, iconvert[ipos]);
+ if (separators > 0 && ipos > 0 && ipos % 3 == 0)
+ printsep(str, len, size);
+ }
+ if (emitpoint) { /* Decimal point. */
+#if HAVE_LOCALECONV && HAVE_LCONV_DECIMAL_POINT
+ if (lc->decimal_point != NULL && *lc->decimal_point != '\0')
+ OUTCHAR(str, *len, size, *lc->decimal_point);
+ else /* We'll always print some decimal point character. */
+#endif /* HAVE_LOCALECONV && HAVE_LCONV_DECIMAL_POINT */
+ OUTCHAR(str, *len, size, '.');
+ }
+ while (leadfraczeros > 0) { /* Leading fractional part zeros. */
+ OUTCHAR(str, *len, size, '0');
+ leadfraczeros--;
+ }
+ while (fpos > omitcount) { /* The remaining fractional part. */
+ fpos--;
+ OUTCHAR(str, *len, size, fconvert[fpos]);
+ }
+ while (epos > 0) { /* Exponent. */
+ epos--;
+ OUTCHAR(str, *len, size, econvert[epos]);
+ }
+ while (padlen < 0) { /* Trailing spaces. */
+ OUTCHAR(str, *len, size, ' ');
+ padlen++;
+ }
+}
+
+static void
+printsep(char *str, size_t *len, size_t size)
+{
+#if HAVE_LOCALECONV && HAVE_LCONV_THOUSANDS_SEP
+ struct lconv *lc = localeconv();
+ int i;
+
+ if (lc->thousands_sep != NULL)
+ for (i = 0; lc->thousands_sep[i] != '\0'; i++)
+ OUTCHAR(str, *len, size, lc->thousands_sep[i]);
+ else
+#endif /* HAVE_LOCALECONV && HAVE_LCONV_THOUSANDS_SEP */
+ OUTCHAR(str, *len, size, ',');
+}
+
+static int
+getnumsep(int digits)
+{
+ int separators = (digits - ((digits % 3 == 0) ? 1 : 0)) / 3;
+#if HAVE_LOCALECONV && HAVE_LCONV_THOUSANDS_SEP
+ int strln;
+ struct lconv *lc = localeconv();
+
+ /* We support an arbitrary separator length (including zero). */
+ if (lc->thousands_sep != NULL) {
+ for (strln = 0; lc->thousands_sep[strln] != '\0'; strln++)
+ continue;
+ separators *= strln;
+ }
+#endif /* HAVE_LOCALECONV && HAVE_LCONV_THOUSANDS_SEP */
+ return separators;
+}
+
+static int
+getexponent(LDOUBLE value)
+{
+ LDOUBLE tmp = (value >= 0.0) ? value : -value;
+ int exponent = 0;
+
+ /*
+ * We check for 99 > exponent > -99 in order to work around possible
+ * endless loops which could happen (at least) in the second loop (at
+ * least) if we're called with an infinite value. However, we checked
+ * for infinity before calling this function using our ISINF() macro, so
+ * this might be somewhat paranoid.
+ */
+ while (tmp < 1.0 && tmp > 0.0 && --exponent > -99)
+ tmp *= 10;
+ while (tmp >= 10.0 && ++exponent < 99)
+ tmp /= 10;
+
+ return exponent;
+}
+
+static int
+convert(UINTMAX_T value, char *buf, size_t size, int base, int caps)
+{
+ const char *digits = caps ? "0123456789ABCDEF" : "0123456789abcdef";
+ size_t pos = 0;
+
+ /* We return an unterminated buffer with the digits in reverse order. */
+ do {
+ buf[pos++] = digits[value % base];
+ value /= base;
+ } while (value != 0 && pos < size);
+
+ return (int)pos;
+}
+
+static UINTMAX_T
+cast(LDOUBLE value)
+{
+ UINTMAX_T result;
+
+ /*
+ * We check for ">=" and not for ">" because if UINTMAX_MAX cannot be
+ * represented exactly as an LDOUBLE value (but is less than LDBL_MAX),
+ * it may be increased to the nearest higher representable value for the
+ * comparison (cf. C99: 6.3.1.4, 2). It might then equal the LDOUBLE
+ * value although converting the latter to UINTMAX_T would overflow.
+ */
+ if (value >= UINTMAX_MAX)
+ return UINTMAX_MAX;
+
+ result = value;
+ /*
+ * At least on NetBSD/sparc64 3.0.2 and 4.99.30, casting long double to
+ * an integer type converts e.g. 1.9 to 2 instead of 1 (which violates
+ * the standard). Sigh.
+ */
+ return (result <= value) ? result : result - 1;
+}
+
+static UINTMAX_T
+myround(LDOUBLE value)
+{
+ UINTMAX_T intpart = cast(value);
+
+ return ((value -= intpart) < 0.5) ? intpart : intpart + 1;
+}
+
+static LDOUBLE
+mypow10(int exponent)
+{
+ LDOUBLE result = 1;
+
+ while (exponent > 0) {
+ result *= 10;
+ exponent--;
+ }
+ while (exponent < 0) {
+ result /= 10;
+ exponent++;
+ }
+ return result;
+}
+#endif /* !HAVE_VSNPRINTF */
+
+#if !HAVE_VASPRINTF
+#if NEED_MYMEMCPY
+void *
+mymemcpy(void *dst, void *src, size_t len)
+{
+ const char *from = src;
+ char *to = dst;
+
+ /* No need for optimization, we use this only to replace va_copy(3). */
+ while (len-- > 0)
+ *to++ = *from++;
+ return dst;
+}
+#endif /* NEED_MYMEMCPY */
+
+int
+rpl_vasprintf(char **ret, const char *format, va_list ap)
+{
+ size_t size;
+ int len;
+ va_list aq;
+
+ VA_COPY(aq, ap);
+ len = vsnprintf(NULL, 0, format, aq);
+ VA_END_COPY(aq);
+ if (len < 0 || (*ret = malloc(size = len + 1)) == NULL)
+ return -1;
+ return vsnprintf(*ret, size, format, ap);
+}
+#endif /* !HAVE_VASPRINTF */
+
+#if !HAVE_SNPRINTF
+#if HAVE_STDARG_H
+int
+rpl_snprintf(char *str, size_t size, const char *format, ...)
+#else
+int
+rpl_snprintf(va_alist) va_dcl
+#endif /* HAVE_STDARG_H */
+{
+#if !HAVE_STDARG_H
+ char *str;
+ size_t size;
+ char *format;
+#endif /* HAVE_STDARG_H */
+ va_list ap;
+ int len;
+
+ VA_START(ap, format);
+ VA_SHIFT(ap, str, char *);
+ VA_SHIFT(ap, size, size_t);
+ VA_SHIFT(ap, format, const char *);
+ len = vsnprintf(str, size, format, ap);
+ va_end(ap);
+ return len;
+}
+#endif /* !HAVE_SNPRINTF */
+
+#if !HAVE_ASPRINTF
+#if HAVE_STDARG_H
+int
+rpl_asprintf(char **ret, const char *format, ...)
+#else
+int
+rpl_asprintf(va_alist) va_dcl
+#endif /* HAVE_STDARG_H */
+{
+#if !HAVE_STDARG_H
+ char **ret;
+ char *format;
+#endif /* HAVE_STDARG_H */
+ va_list ap;
+ int len;
+
+ VA_START(ap, format);
+ VA_SHIFT(ap, ret, char **);
+ VA_SHIFT(ap, format, const char *);
+ len = vasprintf(ret, format, ap);
+ va_end(ap);
+ return len;
+}
+#endif /* !HAVE_ASPRINTF */
+#else /* Dummy declaration to avoid empty translation unit warnings. */
+int main(void);
+#endif /* !HAVE_SNPRINTF || !HAVE_VSNPRINTF || !HAVE_ASPRINTF || [...] */
+
+#if TEST_SNPRINTF
+int
+main(void)
+{
+ const char *float_fmt[] = {
+ /* "%E" and "%e" formats. */
+#if HAVE_LONG_LONG_INT && !OS_BSD && !OS_IRIX
+ "%.16e",
+ "%22.16e",
+ "%022.16e",
+ "%-22.16e",
+ "%#+'022.16e",
+#endif /* HAVE_LONG_LONG_INT && !OS_BSD && !OS_IRIX */
+ "foo|%#+0123.9E|bar",
+ "%-123.9e",
+ "%123.9e",
+ "%+23.9e",
+ "%+05.8e",
+ "%-05.8e",
+ "%05.8e",
+ "%+5.8e",
+ "%-5.8e",
+ "% 5.8e",
+ "%5.8e",
+ "%+4.9e",
+#if !OS_LINUX /* glibc sometimes gets these wrong. */
+ "%+#010.0e",
+ "%#10.1e",
+ "%10.5e",
+ "% 10.5e",
+ "%5.0e",
+ "%5.e",
+ "%#5.0e",
+ "%#5.e",
+ "%3.2e",
+ "%3.1e",
+ "%-1.5e",
+ "%1.5e",
+ "%01.3e",
+ "%1.e",
+ "%.1e",
+ "%#.0e",
+ "%+.0e",
+ "% .0e",
+ "%.0e",
+ "%#.e",
+ "%+.e",
+ "% .e",
+ "%.e",
+ "%4e",
+ "%e",
+ "%E",
+#endif /* !OS_LINUX */
+ /* "%F" and "%f" formats. */
+#if !OS_BSD && !OS_IRIX
+ "% '022f",
+ "%+'022f",
+ "%-'22f",
+ "%'22f",
+#if HAVE_LONG_LONG_INT
+ "%.16f",
+ "%22.16f",
+ "%022.16f",
+ "%-22.16f",
+ "%#+'022.16f",
+#endif /* HAVE_LONG_LONG_INT */
+#endif /* !OS_BSD && !OS_IRIX */
+ "foo|%#+0123.9F|bar",
+ "%-123.9f",
+ "%123.9f",
+ "%+23.9f",
+ "%+#010.0f",
+ "%#10.1f",
+ "%10.5f",
+ "% 10.5f",
+ "%+05.8f",
+ "%-05.8f",
+ "%05.8f",
+ "%+5.8f",
+ "%-5.8f",
+ "% 5.8f",
+ "%5.8f",
+ "%5.0f",
+ "%5.f",
+ "%#5.0f",
+ "%#5.f",
+ "%+4.9f",
+ "%3.2f",
+ "%3.1f",
+ "%-1.5f",
+ "%1.5f",
+ "%01.3f",
+ "%1.f",
+ "%.1f",
+ "%#.0f",
+ "%+.0f",
+ "% .0f",
+ "%.0f",
+ "%#.f",
+ "%+.f",
+ "% .f",
+ "%.f",
+ "%4f",
+ "%f",
+ "%F",
+ /* "%G" and "%g" formats. */
+#if !OS_BSD && !OS_IRIX && !OS_LINUX
+ "% '022g",
+ "%+'022g",
+ "%-'22g",
+ "%'22g",
+#if HAVE_LONG_LONG_INT
+ "%.16g",
+ "%22.16g",
+ "%022.16g",
+ "%-22.16g",
+ "%#+'022.16g",
+#endif /* HAVE_LONG_LONG_INT */
+#endif /* !OS_BSD && !OS_IRIX && !OS_LINUX */
+ "foo|%#+0123.9G|bar",
+ "%-123.9g",
+ "%123.9g",
+ "%+23.9g",
+ "%+05.8g",
+ "%-05.8g",
+ "%05.8g",
+ "%+5.8g",
+ "%-5.8g",
+ "% 5.8g",
+ "%5.8g",
+ "%+4.9g",
+#if !OS_LINUX /* glibc sometimes gets these wrong. */
+ "%+#010.0g",
+ "%#10.1g",
+ "%10.5g",
+ "% 10.5g",
+ "%5.0g",
+ "%5.g",
+ "%#5.0g",
+ "%#5.g",
+ "%3.2g",
+ "%3.1g",
+ "%-1.5g",
+ "%1.5g",
+ "%01.3g",
+ "%1.g",
+ "%.1g",
+ "%#.0g",
+ "%+.0g",
+ "% .0g",
+ "%.0g",
+ "%#.g",
+ "%+.g",
+ "% .g",
+ "%.g",
+ "%4g",
+ "%g",
+ "%G",
+#endif /* !OS_LINUX */
+ NULL
+ };
+ double float_val[] = {
+ -4.136,
+ -134.52,
+ -5.04030201,
+ -3410.01234,
+ -999999.999999,
+ -913450.29876,
+ -913450.2,
+ -91345.2,
+ -9134.2,
+ -913.2,
+ -91.2,
+ -9.2,
+ -9.9,
+ 4.136,
+ 134.52,
+ 5.04030201,
+ 3410.01234,
+ 999999.999999,
+ 913450.29876,
+ 913450.2,
+ 91345.2,
+ 9134.2,
+ 913.2,
+ 91.2,
+ 9.2,
+ 9.9,
+ 9.96,
+ 9.996,
+ 9.9996,
+ 9.99996,
+ 9.999996,
+ 9.9999996,
+ 9.99999996,
+ 0.99999996,
+ 0.99999999,
+ 0.09999999,
+ 0.00999999,
+ 0.00099999,
+ 0.00009999,
+ 0.00000999,
+ 0.00000099,
+ 0.00000009,
+ 0.00000001,
+ 0.0000001,
+ 0.000001,
+ 0.00001,
+ 0.0001,
+ 0.001,
+ 0.01,
+ 0.1,
+ 1.0,
+ 1.5,
+ -1.5,
+ -1.0,
+ -0.1,
+#if !OS_BSD /* BSD sometimes gets these wrong. */
+#ifdef INFINITY
+ INFINITY,
+ -INFINITY,
+#endif /* defined(INFINITY) */
+#ifdef NAN
+ NAN,
+#endif /* defined(NAN) */
+#endif /* !OS_BSD */
+ 0
+ };
+ const char *long_fmt[] = {
+ "foo|%0123ld|bar",
+#if !OS_IRIX
+ "% '0123ld",
+ "%+'0123ld",
+ "%-'123ld",
+ "%'123ld",
+#endif /* !OS_IRiX */
+ "%123.9ld",
+ "% 123.9ld",
+ "%+123.9ld",
+ "%-123.9ld",
+ "%0123ld",
+ "% 0123ld",
+ "%+0123ld",
+ "%-0123ld",
+ "%10.5ld",
+ "% 10.5ld",
+ "%+10.5ld",
+ "%-10.5ld",
+ "%010ld",
+ "% 010ld",
+ "%+010ld",
+ "%-010ld",
+ "%4.2ld",
+ "% 4.2ld",
+ "%+4.2ld",
+ "%-4.2ld",
+ "%04ld",
+ "% 04ld",
+ "%+04ld",
+ "%-04ld",
+ "%5.5ld",
+ "%+22.33ld",
+ "%01.3ld",
+ "%1.5ld",
+ "%-1.5ld",
+ "%44ld",
+ "%4ld",
+ "%4.0ld",
+ "%4.ld",
+ "%.44ld",
+ "%.4ld",
+ "%.0ld",
+ "%.ld",
+ "%ld",
+ NULL
+ };
+ long int long_val[] = {
+#ifdef LONG_MAX
+ LONG_MAX,
+#endif /* LONG_MAX */
+#ifdef LONG_MIN
+ LONG_MIN,
+#endif /* LONG_MIN */
+ -91340,
+ 91340,
+ 341,
+ 134,
+ 0203,
+ -1,
+ 1,
+ 0
+ };
+ const char *ulong_fmt[] = {
+ /* "%u" formats. */
+ "foo|%0123lu|bar",
+#if !OS_IRIX
+ "% '0123lu",
+ "%+'0123lu",
+ "%-'123lu",
+ "%'123lu",
+#endif /* !OS_IRiX */
+ "%123.9lu",
+ "% 123.9lu",
+ "%+123.9lu",
+ "%-123.9lu",
+ "%0123lu",
+ "% 0123lu",
+ "%+0123lu",
+ "%-0123lu",
+ "%5.5lu",
+ "%+22.33lu",
+ "%01.3lu",
+ "%1.5lu",
+ "%-1.5lu",
+ "%44lu",
+ "%lu",
+ /* "%o" formats. */
+ "foo|%#0123lo|bar",
+ "%#123.9lo",
+ "%# 123.9lo",
+ "%#+123.9lo",
+ "%#-123.9lo",
+ "%#0123lo",
+ "%# 0123lo",
+ "%#+0123lo",
+ "%#-0123lo",
+ "%#5.5lo",
+ "%#+22.33lo",
+ "%#01.3lo",
+ "%#1.5lo",
+ "%#-1.5lo",
+ "%#44lo",
+ "%#lo",
+ "%123.9lo",
+ "% 123.9lo",
+ "%+123.9lo",
+ "%-123.9lo",
+ "%0123lo",
+ "% 0123lo",
+ "%+0123lo",
+ "%-0123lo",
+ "%5.5lo",
+ "%+22.33lo",
+ "%01.3lo",
+ "%1.5lo",
+ "%-1.5lo",
+ "%44lo",
+ "%lo",
+ /* "%X" and "%x" formats. */
+ "foo|%#0123lX|bar",
+ "%#123.9lx",
+ "%# 123.9lx",
+ "%#+123.9lx",
+ "%#-123.9lx",
+ "%#0123lx",
+ "%# 0123lx",
+ "%#+0123lx",
+ "%#-0123lx",
+ "%#5.5lx",
+ "%#+22.33lx",
+ "%#01.3lx",
+ "%#1.5lx",
+ "%#-1.5lx",
+ "%#44lx",
+ "%#lx",
+ "%#lX",
+ "%123.9lx",
+ "% 123.9lx",
+ "%+123.9lx",
+ "%-123.9lx",
+ "%0123lx",
+ "% 0123lx",
+ "%+0123lx",
+ "%-0123lx",
+ "%5.5lx",
+ "%+22.33lx",
+ "%01.3lx",
+ "%1.5lx",
+ "%-1.5lx",
+ "%44lx",
+ "%lx",
+ "%lX",
+ NULL
+ };
+ unsigned long int ulong_val[] = {
+#ifdef ULONG_MAX
+ ULONG_MAX,
+#endif /* ULONG_MAX */
+ 91340,
+ 341,
+ 134,
+ 0203,
+ 1,
+ 0
+ };
+ const char *llong_fmt[] = {
+ "foo|%0123lld|bar",
+ "%123.9lld",
+ "% 123.9lld",
+ "%+123.9lld",
+ "%-123.9lld",
+ "%0123lld",
+ "% 0123lld",
+ "%+0123lld",
+ "%-0123lld",
+ "%5.5lld",
+ "%+22.33lld",
+ "%01.3lld",
+ "%1.5lld",
+ "%-1.5lld",
+ "%44lld",
+ "%lld",
+ NULL
+ };
+ LLONG llong_val[] = {
+#ifdef LLONG_MAX
+ LLONG_MAX,
+#endif /* LLONG_MAX */
+#ifdef LLONG_MIN
+ LLONG_MIN,
+#endif /* LLONG_MIN */
+ -91340,
+ 91340,
+ 341,
+ 134,
+ 0203,
+ -1,
+ 1,
+ 0
+ };
+ const char *string_fmt[] = {
+ "foo|%10.10s|bar",
+ "%-10.10s",
+ "%10.10s",
+ "%10.5s",
+ "%5.10s",
+ "%10.1s",
+ "%1.10s",
+ "%10.0s",
+ "%0.10s",
+ "%-42.5s",
+ "%2.s",
+ "%.10s",
+ "%.1s",
+ "%.0s",
+ "%.s",
+ "%4s",
+ "%s",
+ NULL
+ };
+ const char *string_val[] = {
+ "Hello",
+ "Hello, world!",
+ "Sound check: One, two, three.",
+ "This string is a little longer than the other strings.",
+ "1",
+ "",
+ NULL
+ };
+#if !OS_SYSV /* SysV uses a different format than we do. */
+ const char *pointer_fmt[] = {
+ "foo|%p|bar",
+ "%42p",
+ "%p",
+ NULL
+ };
+ const char *pointer_val[] = {
+ *pointer_fmt,
+ *string_fmt,
+ *string_val,
+ NULL
+ };
+#endif /* !OS_SYSV */
+ char buf1[1024], buf2[1024];
+ double value, digits = 9.123456789012345678901234567890123456789;
+ int i, j, r1, r2, failed = 0, num = 0;
+
+/*
+ * Use -DTEST_NILS in order to also test the conversion of nil values. Might
+ * segfault on systems which don't support converting a NULL pointer with "%s"
+ * and lets some test cases fail against BSD and glibc due to bugs in their
+ * implementations.
+ */
+#ifndef TEST_NILS
+#define TEST_NILS 0
+#elif TEST_NILS
+#undef TEST_NILS
+#define TEST_NILS 1
+#endif /* !defined(TEST_NILS) */
+#ifdef TEST
+#undef TEST
+#endif /* defined(TEST) */
+#define TEST(fmt, val) \
+do { \
+ for (i = 0; fmt[i] != NULL; i++) \
+ for (j = 0; j == 0 || val[j - TEST_NILS] != 0; j++) { \
+ r1 = sprintf(buf1, fmt[i], val[j]); \
+ r2 = snprintf(buf2, sizeof(buf2), fmt[i], val[j]); \
+ if (strcmp(buf1, buf2) != 0 || r1 != r2) { \
+ (void)printf("Results don't match, " \
+ "format string: %s\n" \
+ "\t sprintf(3): [%s] (%d)\n" \
+ "\tsnprintf(3): [%s] (%d)\n", \
+ fmt[i], buf1, r1, buf2, r2); \
+ failed++; \
+ } \
+ num++; \
+ } \
+} while (/* CONSTCOND */ 0)
+
+#if HAVE_LOCALE_H
+ (void)setlocale(LC_ALL, "");
+#endif /* HAVE_LOCALE_H */
+
+ (void)puts("Testing our snprintf(3) against your system's sprintf(3).");
+ TEST(float_fmt, float_val);
+ TEST(long_fmt, long_val);
+ TEST(ulong_fmt, ulong_val);
+ TEST(llong_fmt, llong_val);
+ TEST(string_fmt, string_val);
+#if !OS_SYSV /* SysV uses a different format than we do. */
+ TEST(pointer_fmt, pointer_val);
+#endif /* !OS_SYSV */
+ (void)printf("Result: %d out of %d tests failed.\n", failed, num);
+
+ (void)fputs("Checking how many digits we support: ", stdout);
+ for (i = 0; i < 100; i++) {
+ value = pow(10, i) * digits;
+ (void)sprintf(buf1, "%.1f", value);
+ (void)snprintf(buf2, sizeof(buf2), "%.1f", value);
+ if (strcmp(buf1, buf2) != 0) {
+ (void)printf("apparently %d.\n", i);
+ break;
+ }
+ }
+ return (failed == 0) ? 0 : 1;
+}
+#endif /* TEST_SNPRINTF */
+
+/* vim: set joinspaces textwidth=80: */
diff --git a/src/version.h b/src/version.h
new file mode 100644
index 0000000..c543366
--- /dev/null
+++ b/src/version.h
@@ -0,0 +1,47 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: version.h,v 1.10 2012/08/02 21:47:12 broeker Exp $ */
+
+/* cscope - interactive C symbol cross-reference
+ *
+ * Changing the cross-reference file part of the program version
+ * forces rebuilding of the cross-reference.
+ */
+
+#ifndef CSCOPE_VERSION_H
+#define CSCOPE_VERSION_H
+
+#define FILEVERSION 15 /* Initial Open Source and Linux Port */
+#define FIXVERSION ".8a" /* feature and bug fix version */
+
+#endif /* CSCOPE_VERSION_H */
diff --git a/src/vp.h b/src/vp.h
new file mode 100644
index 0000000..0642191
--- /dev/null
+++ b/src/vp.h
@@ -0,0 +1,72 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: vp.h,v 1.7 2004/04/30 15:31:43 broeker Exp $ */
+
+/*
+ * VPATH assumptions:
+ * VPATH is the environment variable containing the view path
+ * where each path name is followed by ':', '\n', or '\0'.
+ * Embedded blanks are considered part of the path.
+ */
+
+#ifndef CSCOPE_VP_H
+#define CSCOPE_VP_H
+
+#define MAXPATH 200 /* max length for entire name */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#else
+# define HAVE_FCNTL_H 1 /* in case of doubt, assume it's there */
+#endif
+#ifdef HAVE_FCNTL_H
+# include <fcntl.h> /* needed for O_... open flags */
+#endif
+
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#if !NOMALLOC
+extern char **vpdirs; /* directories (including current) in view path */
+#else
+#define MAXDIR 25 /* same as libVP */
+#define DIRLEN 80 /* same as libVP */
+extern char vpdirs[MAXDIR][DIRLEN + 1];
+#endif
+extern int vpndirs; /* number of directories in view path */
+
+void vpinit(char *current_dir);
+int vpopen(char *path, int oflag);
+int vpaccess(char *path, mode_t amode);
+
+#endif /* CSCOPE_VP_H */
diff --git a/src/vpaccess.c b/src/vpaccess.c
new file mode 100644
index 0000000..607cee1
--- /dev/null
+++ b/src/vpaccess.c
@@ -0,0 +1,59 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* $Id: vpaccess.c,v 1.3 2009/04/10 13:39:23 broeker Exp $ */
+
+/* vpaccess - view path version of the access system call */
+
+#include <stdio.h>
+#include <unistd.h>
+#include "vp.h"
+#include <sys/types.h>
+
+int
+vpaccess(char *path, mode_t amode)
+{
+ char buf[MAXPATH + 1];
+ int returncode;
+ int i;
+
+ if ((returncode = access(path, amode)) == -1 && path[0] != '/') {
+ vpinit(NULL);
+ for (i = 1; i < vpndirs; i++) {
+ (void) snprintf(buf, sizeof(buf), "%s/%s", vpdirs[i], path);
+ if ((returncode = access(buf, amode)) != -1) {
+ break;
+ }
+ }
+ }
+ return(returncode);
+}
diff --git a/src/vpfopen.c b/src/vpfopen.c
new file mode 100644
index 0000000..005a9b0
--- /dev/null
+++ b/src/vpfopen.c
@@ -0,0 +1,64 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* vpfopen - view path version of the fopen library function */
+
+#include <stdio.h>
+#include <string.h>
+#include "vp.h"
+#include "global.h"
+
+static char const rcsid[] = "$Id: vpfopen.c,v 1.4 2009/04/10 13:39:23 broeker Exp $";
+
+FILE *
+vpfopen(char *filename, char *type)
+{
+ char buf[MAXPATH + 1];
+ FILE *returncode;
+ int i;
+
+ if ((returncode = myfopen(filename, type)) == NULL
+ && filename[0] != '/'
+ /* && strcmp(type, "r") == 0 */ /* HBB: this breaks if type=="rb" */
+ && type[0] == 'r'
+ ) {
+ vpinit(NULL);
+ for (i = 1; i < vpndirs; i++) {
+ (void) snprintf(buf, sizeof(buf), "%s/%s", vpdirs[i], filename);
+ if ((returncode = myfopen(buf, type)) != NULL) {
+ break;
+ }
+
+ }
+ }
+ return(returncode);
+}
diff --git a/src/vpinit.c b/src/vpinit.c
new file mode 100644
index 0000000..15f90a0
--- /dev/null
+++ b/src/vpinit.c
@@ -0,0 +1,171 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+/* vpinit - initialize vpdirs or update vpdirs based on currentdir */
+
+#include <stdio.h> /* stderr */
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include "vp.h"
+#include "alloc.h"
+#include "library.h"
+#include "global.h"
+#include "constants.h"
+
+static char const rcsid[] = "$Id: vpinit.c,v 1.8 2006/07/23 20:59:20 broeker Exp $";
+
+#if !NOMALLOC
+char **vpdirs; /* directories (including current) in view path */
+#else
+char vpdirs[MAXDIR][DIRLEN + 1];
+#define MAXVPATH (MAXDIR * (DIRLEN + 1))
+#endif
+int vpndirs; /* number of directories in view path */
+
+void
+vpinit(char *current_dir)
+{
+ char *suffix; /* path from view path node */
+ char *vpath; /* VPATH environment variable value */
+ char buf[MAXPATH + 1];
+ int i;
+ char *s;
+#if NOMALLOC
+ char *node; /* view path node */
+ char vpathbuf[MAXVPATH + 1];
+#endif
+
+ /* if an existing directory list is to be updated, free it */
+ if (current_dir != NULL && vpndirs > 0) {
+#if !NOMALLOC
+ for (i = 0; i < vpndirs; ++i) {
+ free(vpdirs[i]);
+ }
+ free(vpdirs);
+#endif
+ vpndirs = 0;
+ }
+ /* return if the directory list has been computed */
+ /* or there isn't a view path environment variable */
+ if (vpndirs > 0 || (vpath = getenv("VPATH")) == NULL ||
+ *vpath == '\0') {
+ return;
+ }
+ /* if not given, get the current directory name */
+ if (current_dir == NULL && (current_dir = getcwd(buf, MAXPATH)) == NULL) {
+ (void) fprintf(stderr, "%s: cannot get current directory name\n", argv0);
+ return;
+ }
+ /* see if this directory is in the first view path node */
+ for (i = 0; vpath[i] == current_dir[i] && vpath[i] != '\0'; ++i) {
+ ;
+ }
+ if ((vpath[i] != ':' && vpath[i] != '\0') ||
+ (current_dir[i] != '/' && current_dir[i] != '\0')) {
+ return;
+ }
+ suffix = &current_dir[i];
+#if !NOMALLOC
+
+ /* count the nodes in the view path */
+ vpndirs = 1;
+ for (i = 0; vpath[i] != '\0'; ++i) {
+ if (vpath[i] == ':' && vpath[i + 1]) {
+ ++vpndirs;
+ }
+ }
+ /* create the source directory list */
+ vpdirs = mymalloc(vpndirs * sizeof(char *));
+
+ /* don't change VPATH in the environment */
+ vpath = my_strdup(vpath);
+
+ /* split the view path into nodes */
+ for (i = 0, s = vpath; *s != '\0'; ++i) {
+ vpdirs[i] = s;
+ while (*s != '\0' && *++s != ':') {
+ if (*s == '\n') {
+ *s = '\0';
+ }
+ }
+ if (*s != '\0') {
+ *s++ = '\0';
+ }
+ }
+ /* convert the view path nodes to directories */
+ for (i = 0; i < vpndirs; ++i) {
+ s = mymalloc((strlen(vpdirs[i]) + strlen(suffix) + 1));
+ (void) strcpy(s, vpdirs[i]);
+ (void) strcat(s, suffix);
+ vpdirs[i] = s;
+ }
+ free(vpath);
+#else
+ /* don't change VPATH in the environment */
+ if (strlen(vpath) > MAXVPATH) {
+ (void) fprintf(stderr, "%s: VPATH is longer than %d characters: %s\n", argv0, MAXVPATH, vpath);
+ return;
+ }
+ (void) strcpy(vpathbuf, vpath);
+ s = vpathbuf;
+
+ /* convert the view path nodes to directories */
+ while (*s != '\0') {
+
+ /* get the next node */
+ node = s;
+ while (*s != '\0' && *++s != ':') {
+ if (*s == '\n') {
+ *s = '\0';
+ }
+ }
+ if (*s != '\0') {
+ *s++ = '\0';
+ }
+ /* ignore a directory that is too long */
+ if (strlen(node) + strlen(suffix) > DIRLEN) {
+ (void) fprintf(stderr, "%s: VPATH directory is longer than %d characters: %s%s\n", argv0, DIRLEN, node, suffix);
+ }
+ else if (vpndirs >= MAXDIR) {
+ (void) fprintf(stderr, "%s: VPATH has more than %d nodes\n", argv0, vpndirs);
+ return;
+ }
+ else {
+ /* create the view path directory */
+ (void) strcpy(vpdirs[vpndirs], node);
+ (void) strcat(vpdirs[vpndirs], suffix);
+ ++vpndirs;
+ }
+ }
+#endif
+}
diff --git a/src/vpopen.c b/src/vpopen.c
new file mode 100644
index 0000000..8812dba
--- /dev/null
+++ b/src/vpopen.c
@@ -0,0 +1,62 @@
+/*===========================================================================
+ Copyright (c) 1998-2000, The Santa Cruz Operation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+
+ *Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ *Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ *Neither name of The Santa Cruz Operation nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+ DAMAGE.
+ =========================================================================*/
+
+
+/* vpopen - view path version of the open system call */
+
+#include <stdio.h>
+#include "global.h"
+#include "vp.h"
+
+#define OPENFLAG_READ 0
+
+static char const rcsid[] = "$Id: vpopen.c,v 1.5 2009/04/10 13:39:23 broeker Exp $";
+
+int
+vpopen(char *path, int oflag)
+{
+ char buf[MAXPATH + 1];
+ int returncode;
+ int i;
+
+ if ((returncode = myopen(path, oflag, 0666)) == -1 && path[0] != '/' &&
+ oflag == OPENFLAG_READ) {
+ vpinit(NULL);
+ for (i = 1; i < vpndirs; i++) {
+ (void) snprintf(buf, sizeof(buf), "%s/%s", vpdirs[i], path);
+ if ((returncode = myopen(buf, oflag, 0666)) != -1) {
+ break;
+ }
+ }
+ }
+ return(returncode);
+}
diff --git a/ylwrap b/ylwrap
new file mode 100755
index 0000000..9253635
--- /dev/null
+++ b/ylwrap
@@ -0,0 +1,226 @@
+#! /bin/sh
+# ylwrap - wrapper for lex/yacc invocations.
+
+scriptversion=2011-08-25.18; # UTC
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005,
+# 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+#
+# Written by Tom Tromey <tromey@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@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case "$1" in
+ '')
+ echo "$0: No files given. Try \`$0 --help' for more information." 1>&2
+ exit 1
+ ;;
+ --basedir)
+ basedir=$2
+ shift 2
+ ;;
+ -h|--h*)
+ cat <<\EOF
+Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
+
+Wrapper for lex/yacc invocations, renaming files as desired.
+
+ INPUT is the input file
+ OUTPUT is one file PROG generates
+ DESIRED is the file we actually want instead of OUTPUT
+ PROGRAM is program to run
+ ARGS are passed to PROG
+
+Any number of OUTPUT,DESIRED pairs may be used.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v|--v*)
+ echo "ylwrap $scriptversion"
+ exit $?
+ ;;
+esac
+
+
+# The input.
+input="$1"
+shift
+case "$input" in
+ [\\/]* | ?:[\\/]*)
+ # Absolute path; do nothing.
+ ;;
+ *)
+ # Relative path. Make it absolute.
+ input="`pwd`/$input"
+ ;;
+esac
+
+pairlist=
+while test "$#" -ne 0; do
+ if test "$1" = "--"; then
+ shift
+ break
+ fi
+ pairlist="$pairlist $1"
+ shift
+done
+
+# The program to run.
+prog="$1"
+shift
+# Make any relative path in $prog absolute.
+case "$prog" in
+ [\\/]* | ?:[\\/]*) ;;
+ *[\\/]*) prog="`pwd`/$prog" ;;
+esac
+
+# FIXME: add hostname here for parallel makes that run commands on
+# other machines. But that might take us over the 14-char limit.
+dirname=ylwrap$$
+do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (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
+mkdir $dirname || exit 1
+
+cd $dirname
+
+case $# in
+ 0) "$prog" "$input" ;;
+ *) "$prog" "$@" "$input" ;;
+esac
+ret=$?
+
+if test $ret -eq 0; then
+ set X $pairlist
+ shift
+ first=yes
+ # Since DOS filename conventions don't allow two dots,
+ # the DOS version of Bison writes out y_tab.c instead of y.tab.c
+ # and y_tab.h instead of y.tab.h. Test to see if this is the case.
+ y_tab_nodot="no"
+ if test -f y_tab.c || test -f y_tab.h; then
+ y_tab_nodot="yes"
+ fi
+
+ # The directory holding the input.
+ input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
+ # Quote $INPUT_DIR so we can use it in a regexp.
+ # FIXME: really we should care about more than `.' and `\'.
+ input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
+
+ while test "$#" -ne 0; do
+ from="$1"
+ # Handle y_tab.c and y_tab.h output by DOS
+ if test $y_tab_nodot = "yes"; then
+ if test $from = "y.tab.c"; then
+ from="y_tab.c"
+ else
+ if test $from = "y.tab.h"; then
+ from="y_tab.h"
+ fi
+ fi
+ fi
+ if test -f "$from"; then
+ # If $2 is an absolute path name, then just use that,
+ # otherwise prepend `../'.
+ case "$2" in
+ [\\/]* | ?:[\\/]*) target="$2";;
+ *) target="../$2";;
+ esac
+
+ # We do not want to overwrite a header file if it hasn't
+ # changed. This avoid useless recompilations. However the
+ # parser itself (the first file) should always be updated,
+ # because it is the destination of the .y.c rule in the
+ # Makefile. Divert the output of all other files to a temporary
+ # file so we can compare them to existing versions.
+ if test $first = no; then
+ realtarget="$target"
+ target="tmp-`echo $target | sed s/.*[\\/]//g`"
+ fi
+ # Edit out `#line' or `#' directives.
+ #
+ # We don't want the resulting debug information to point at
+ # an absolute srcdir; it is better for it to just mention the
+ # .y file with no path.
+ #
+ # We want to use the real output file name, not yy.lex.c for
+ # instance.
+ #
+ # We want the include guards to be adjusted too.
+ FROM=`echo "$from" | sed \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
+ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
+ TARGET=`echo "$2" | sed \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
+ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
+
+ sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
+ -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
+
+ # Check whether header files must be updated.
+ if test $first = no; then
+ if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
+ echo "$2" is unchanged
+ rm -f "$target"
+ else
+ echo updating "$2"
+ mv -f "$target" "$realtarget"
+ fi
+ fi
+ else
+ # A missing file is only an error for the first file. This
+ # is a blatant hack to let us support using "yacc -d". If -d
+ # is not specified, we don't want an error when the header
+ # file is "missing".
+ if test $first = yes; then
+ ret=1
+ fi
+ fi
+ shift
+ shift
+ first=no
+ done
+else
+ ret=$?
+fi
+
+# Remove the directory.
+cd ..
+rm -rf $dirname
+
+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: