summaryrefslogtreecommitdiffstats
path: root/contrib/groff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/groff')
-rw-r--r--contrib/groff/FREEBSD-Xlist1
-rw-r--r--contrib/groff/FREEBSD-upgrade31
-rw-r--r--contrib/groff/man/groff_out.man3
-rwxr-xr-xcontrib/groff/mdate.sh2
-rw-r--r--contrib/groff/src/devices/grotty/grotty.man15
-rw-r--r--contrib/groff/src/libs/libgroff/cmap.cc8
-rw-r--r--contrib/groff/src/libs/libgroff/cset.cc8
-rw-r--r--contrib/groff/src/libs/libgroff/illegal.cc6
-rw-r--r--contrib/groff/src/preproc/eqn/eqn.cc1277
-rw-r--r--contrib/groff/src/preproc/eqn/eqn_tab.h67
-rw-r--r--contrib/groff/src/preproc/eqn/neqn.sh19
-rw-r--r--contrib/groff/src/preproc/pic/pic.cc5219
-rw-r--r--contrib/groff/src/preproc/pic/pic_tab.h131
-rw-r--r--contrib/groff/src/preproc/refer/label.cc1602
-rw-r--r--contrib/groff/src/roff/groff/groff.man6
-rw-r--r--contrib/groff/src/roff/nroff/nroff.man4
-rwxr-xr-xcontrib/groff/src/roff/nroff/nroff.sh9
-rw-r--r--contrib/groff/tmac/doc-common2
-rw-r--r--contrib/groff/tmac/doc-ditroff1
-rw-r--r--contrib/groff/tmac/doc-nroff1
-rw-r--r--contrib/groff/tmac/doc-syms1
-rw-r--r--contrib/groff/tmac/eqnrc2
-rw-r--r--contrib/groff/tmac/mdoc.local2
-rw-r--r--contrib/groff/tmac/strip.sed1
-rw-r--r--contrib/groff/tmac/troffrc10
25 files changed, 119 insertions, 8309 deletions
diff --git a/contrib/groff/FREEBSD-Xlist b/contrib/groff/FREEBSD-Xlist
new file mode 100644
index 0000000..9ff94d3
--- /dev/null
+++ b/contrib/groff/FREEBSD-Xlist
@@ -0,0 +1 @@
+*/arch
diff --git a/contrib/groff/FREEBSD-upgrade b/contrib/groff/FREEBSD-upgrade
new file mode 100644
index 0000000..4df0740
--- /dev/null
+++ b/contrib/groff/FREEBSD-upgrade
@@ -0,0 +1,31 @@
+$FreeBSD$
+
+This directory contains virgin copies of the original distribution files
+on a "vendor" branch. Do not, under any circumstances, attempt to upgrade
+the files in this directory via patches and a cvs commit.
+
+To upgrade to a newer version of groff, when it is available:
+ 1. Unpack the new version into an empty directory.
+ [Do not make ANY changes to the files.]
+
+ 2. Use the command:
+ cvs import -m 'Virgin import of FSF groff v<version>' \
+ src/contrib/groff FSF v<version>
+
+ For example, to do the import of version 1.17, I typed:
+ cvs import -m 'Virgin import of FSF groff v1.17' \
+ src/contrib/groff FSF v1_17
+
+ 3. Follow the instructions printed out in step 2 to resolve any
+ conflicts between local FreeBSD changes and the newer version.
+
+Do not, under any circumstances, deviate from this procedure.
+
+To make local changes to groff, simply patch and commit to the main
+branch (aka HEAD). Never make local changes on the FSF branch.
+
+All local changes should be submitted to Werner Lemberg <wl@gnu.org> or
+Ted Harding <ted.harding@nessie.mcc.ac.uk> for inclusion in the next
+vendor release.
+
+ru@FreeBSD.org - 17 Apr 2001
diff --git a/contrib/groff/man/groff_out.man b/contrib/groff/man/groff_out.man
index ae30f8d..e743ddf 100644
--- a/contrib/groff/man/groff_out.man
+++ b/contrib/groff/man/groff_out.man
@@ -17,6 +17,9 @@ manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.
+
+ $FreeBSD$
+
..
.\" This man page must be preprocessed with eqn.
.ie \n(.g .ds ic \/
diff --git a/contrib/groff/mdate.sh b/contrib/groff/mdate.sh
index 4a26e6e..4d50168 100755
--- a/contrib/groff/mdate.sh
+++ b/contrib/groff/mdate.sh
@@ -1,4 +1,6 @@
#! /bin/sh
+#
+# $FreeBSD$
# Print the modification date of $1 `nicely'.
diff --git a/contrib/groff/src/devices/grotty/grotty.man b/contrib/groff/src/devices/grotty/grotty.man
index 4f23ca0..7f38846 100644
--- a/contrib/groff/src/devices/grotty/grotty.man
+++ b/contrib/groff/src/devices/grotty/grotty.man
@@ -1,4 +1,5 @@
.ig
+$FreeBSD$
Copyright (C) 1989-2000, 2001 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of
@@ -44,6 +45,7 @@ should be invoked by using the
command
with a
.BR \-Tascii ,
+.BR \-Tkoi8-r ,
.B \-Tlatin1
or
.B \-Tutf8
@@ -126,6 +128,7 @@ to the search path for font and device description files;
.I name
is the name of the device, usually
.BR ascii ,
+.BR koi8-r ,
.BR latin1 ,
.BR utf8 ,
or
@@ -188,6 +191,18 @@ of
.B ascii
device.
.TP
+.B @FONTDIR@/devkoi8-r/DESC
+Device description file for
+.B koi8-r
+device.
+.TP
+.BI @FONTDIR@/devkoi8-r/ F
+Font description file for font
+.I F
+of
+.B koi8-r
+device.
+.TP
.B @FONTDIR@/devlatin1/DESC
Device description file for
.B latin1
diff --git a/contrib/groff/src/libs/libgroff/cmap.cc b/contrib/groff/src/libs/libgroff/cmap.cc
index 4b75d06..d08f04d 100644
--- a/contrib/groff/src/libs/libgroff/cmap.cc
+++ b/contrib/groff/src/libs/libgroff/cmap.cc
@@ -19,12 +19,15 @@ with groff; see the file COPYING. If not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include <ctype.h>
+#ifdef __FreeBSD__
+#include <locale.h>
+#endif
#include "cmap.h"
cmap cmlower(CMAP_BUILTIN);
cmap cmupper(CMAP_BUILTIN);
-#ifdef isascii
+#if defined(isascii) && !defined(__FreeBSD__)
#define ISASCII(c) isascii(c)
#else
#define ISASCII(c) (1)
@@ -49,6 +52,9 @@ cmap_init::cmap_init()
if (initialised)
return;
initialised = 1;
+#ifdef __FreeBSD__
+ (void) setlocale(LC_CTYPE, "");
+#endif
for (int i = 0; i <= UCHAR_MAX; i++) {
cmupper.v[i] = ISASCII(i) && islower(i) ? toupper(i) : i;
cmlower.v[i] = ISASCII(i) && isupper(i) ? tolower(i) : i;
diff --git a/contrib/groff/src/libs/libgroff/cset.cc b/contrib/groff/src/libs/libgroff/cset.cc
index e4845c1..a9da1f1 100644
--- a/contrib/groff/src/libs/libgroff/cset.cc
+++ b/contrib/groff/src/libs/libgroff/cset.cc
@@ -19,6 +19,9 @@ with groff; see the file COPYING. If not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include <ctype.h>
+#ifdef __FreeBSD__
+#include <locale.h>
+#endif
#include "cset.h"
cset csalpha(CSET_BUILTIN);
@@ -33,7 +36,7 @@ cset csprint(CSET_BUILTIN);
cset csgraph(CSET_BUILTIN);
cset cscntrl(CSET_BUILTIN);
-#ifdef isascii
+#if defined(isascii) && !defined(__FreeBSD__)
#define ISASCII(c) isascii(c)
#else
#define ISASCII(c) (1)
@@ -86,6 +89,9 @@ cset_init::cset_init()
if (initialised)
return;
initialised = 1;
+#ifdef __FreeBSD__
+ (void) setlocale(LC_CTYPE, "");
+#endif
for (int i = 0; i <= UCHAR_MAX; i++) {
csalpha.v[i] = ISASCII(i) && isalpha(i);
csupper.v[i] = ISASCII(i) && isupper(i);
diff --git a/contrib/groff/src/libs/libgroff/illegal.cc b/contrib/groff/src/libs/libgroff/illegal.cc
index bacd891..07a9a8a 100644
--- a/contrib/groff/src/libs/libgroff/illegal.cc
+++ b/contrib/groff/src/libs/libgroff/illegal.cc
@@ -17,6 +17,8 @@ You should have received a copy of the GNU General Public License along
with groff; see the file COPYING. If not, write to the Free Software
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+/* $FreeBSD$ */
+
#include "lib.h"
// Table of illegal input characters.
@@ -31,8 +33,8 @@ char illegal_char_table[256]= {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
diff --git a/contrib/groff/src/preproc/eqn/eqn.cc b/contrib/groff/src/preproc/eqn/eqn.cc
deleted file mode 100644
index 1fdda61..0000000
--- a/contrib/groff/src/preproc/eqn/eqn.cc
+++ /dev/null
@@ -1,1277 +0,0 @@
-#if defined(__STDC__) || defined(__cplusplus)
-#define YYCONST const
-#define YYPARAMS(x) x
-#define YYDEFUN(name, arglist, args) name(args)
-#define YYAND ,
-#define YYPTR void *
-#else
-#define YYCONST
-#define YYPARAMS(x) ()
-#define YYDEFUN(name, arglist, args) name arglist args;
-#define YYAND ;
-#define YYPTR char *
-#endif
-#ifndef lint
-YYCONST static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley +Cygnus.28) 01/20/91";
-#endif
-#define YYBYACC 1
-#ifndef YYDONT_INCLUDE_STDIO
-#include <stdio.h>
-#endif
-#ifdef __cplusplus
-#include <stdlib.h> /* for malloc/realloc/free */
-#endif
-#line 20 "eqn.y"
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "lib.h"
-#include "box.h"
-extern int non_empty_flag;
-char *strsave(const char *);
-int yylex();
-void yyerror(const char *);
-#line 32 "eqn.y"
-typedef union {
- char *str;
- box *b;
- pile_box *pb;
- matrix_box *mb;
- int n;
- column *col;
-} YYSTYPE;
-#line 45 "y.tab.c"
-#define OVER 257
-#define SMALLOVER 258
-#define SQRT 259
-#define SUB 260
-#define SUP 261
-#define LPILE 262
-#define RPILE 263
-#define CPILE 264
-#define PILE 265
-#define LEFT 266
-#define RIGHT 267
-#define TO 268
-#define FROM 269
-#define SIZE 270
-#define FONT 271
-#define ROMAN 272
-#define BOLD 273
-#define ITALIC 274
-#define FAT 275
-#define ACCENT 276
-#define BAR 277
-#define UNDER 278
-#define ABOVE 279
-#define TEXT 280
-#define QUOTED_TEXT 281
-#define FWD 282
-#define BACK 283
-#define DOWN 284
-#define UP 285
-#define MATRIX 286
-#define COL 287
-#define LCOL 288
-#define RCOL 289
-#define CCOL 290
-#define MARK 291
-#define LINEUP 292
-#define TYPE 293
-#define VCENTER 294
-#define PRIME 295
-#define SPLIT 296
-#define NOSPLIT 297
-#define UACCENT 298
-#define SPECIAL 299
-#define SPACE 300
-#define GFONT 301
-#define GSIZE 302
-#define DEFINE 303
-#define NDEFINE 304
-#define TDEFINE 305
-#define SDEFINE 306
-#define UNDEF 307
-#define IFDEF 308
-#define INCLUDE 309
-#define DELIM 310
-#define CHARTYPE 311
-#define SET 312
-#define GRFONT 313
-#define GBFONT 314
-#define YYERRCODE 256
-static YYCONST short yylhs[] = { -1,
- 0, 0, 6, 6, 1, 1, 1, 2, 2, 2,
- 2, 2, 3, 3, 3, 3, 4, 4, 7, 7,
- 7, 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, 8, 11, 11, 12, 12, 13,
- 13, 16, 16, 15, 15, 14, 14, 14, 14, 9,
- 9, 10, 10, 10,
-};
-static YYCONST short yylen[] = { 2,
- 0, 1, 1, 2, 1, 2, 2, 1, 3, 3,
- 5, 5, 1, 2, 3, 3, 1, 3, 1, 3,
- 5, 1, 1, 2, 2, 1, 1, 1, 3, 2,
- 2, 2, 2, 4, 5, 3, 2, 2, 2, 3,
- 3, 2, 2, 2, 2, 3, 3, 3, 3, 3,
- 3, 3, 2, 3, 1, 1, 3, 3, 4, 1,
- 2, 1, 3, 3, 4, 2, 2, 2, 2, 1,
- 1, 1, 1, 1,
-};
-static YYCONST short yydefred[] = { 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 22, 23, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 26, 27, 28, 0,
- 0, 3, 5, 0, 13, 0, 0, 17, 14, 70,
- 71, 0, 0, 55, 31, 32, 33, 30, 73, 74,
- 72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 6, 7, 0, 0, 24, 25, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 37, 38,
- 39, 0, 4, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 60, 0,
- 0, 29, 15, 16, 9, 0, 0, 20, 18, 40,
- 41, 0, 58, 0, 0, 0, 0, 66, 67, 68,
- 69, 34, 61, 0, 0, 0, 0, 59, 35, 0,
- 0, 0, 11, 12, 21, 0, 64, 0, 0, 65,
-};
-static YYCONST short yydgoto[] = { 31,
- 32, 33, 34, 35, 36, 84, 38, 43, 44, 52,
- 85, 45, 98, 99, 118, 131,
-};
-static YYCONST short yysindex[] = { 1488,
- 1527, -120, -120, -120, -120, -123, -249, -249, 1566, 1566,
- 1566, 1566, 0, 0, -249, -249, -249, -249, -115, 1488,
- 1488, -249, 1566, -256, -251, -249, 0, 0, 0, 1488,
- 0, 0, 0, -221, 0, -233, 1488, 0, 0, 0,
- 0, 1488, -85, 0, 0, 0, 0, 0, 0, 0,
- 0, 1488, 1566, 1566, -195, -195, -195, -195, 1566, 1566,
- 1566, 1566, -272, 0, 0, 1566, -195, 0, 0, 1566,
- 1402, 1527, 1527, 1527, 1527, 1566, 1566, 1566, 0, 0,
- 0, 1566, 0, 1488, -113, 1488, 1444, -195, -195, -195,
- -195, -195, -195, -117, -117, -117, -117, -118, 0, -195,
- -195, 0, 0, 0, 0, -167, -189, 0, 0, 0,
- 0, 1488, 0, -106, -123, 1488, -83, 0, 0, 0,
- 0, 0, 0, 1527, 1527, 1566, 1488, 0, 0, 1488,
- -105, 1488, 0, 0, 0, 1488, 0, -104, 1488, 0,
-};
-static YYCONST short yyrindex[] = { 41,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 1220, 46, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 85, 128, 363, 406, 0, 0,
- 0, 0, 0, 0, 0, 0, 449, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -103, 0, 0, 185, 492, 727, 770,
- 813, 856, 1091, 0, 0, 0, 0, 0, 0, 1134,
- 1177, 0, 0, 0, 0, 42, 1220, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, -102, 0, 0, -101,
- 0, 0, 0, 0, 0, 0, 0, 0, -99, 0,
-};
-static YYCONST short yygindex[] = { 0,
- -7, -69, 3, -66, 458, 9, -26, 52, 27, -63,
- -32, 54, 0, -35, 2, -59,
-};
-#define YYTABLESIZE 1865
-static YYCONST short yytable[] = { 49,
- 8, 50, 42, 39, 105, 116, 122, 63, 37, 8,
- 109, 113, 64, 65, 94, 95, 96, 97, 128, 137,
- 140, 56, 57, 62, 68, 63, 76, 77, 69, 83,
- 40, 41, 51, 53, 54, 72, 73, 86, 71, 132,
- 1, 10, 78, 79, 80, 2, 74, 75, 66, 108,
- 10, 129, 70, 114, 133, 134, 46, 47, 48, 135,
- 87, 81, 123, 83, 82, 0, 59, 60, 61, 62,
- 76, 126, 138, 0, 103, 104, 83, 106, 0, 83,
- 78, 79, 80, 0, 42, 0, 78, 79, 80, 72,
- 73, 0, 0, 42, 8, 0, 119, 120, 121, 81,
- 124, 125, 82, 0, 0, 81, 0, 0, 82, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,
- 127, 0, 83, 8, 130, 8, 8, 43, 0, 0,
- 0, 83, 0, 0, 0, 10, 43, 0, 0, 0,
- 130, 51, 0, 0, 139, 117, 117, 117, 117, 0,
- 0, 0, 0, 0, 0, 0, 40, 41, 0, 40,
- 41, 0, 40, 41, 10, 112, 10, 10, 94, 95,
- 96, 97, 112, 136, 136, 56, 57, 62, 42, 63,
- 0, 0, 0, 0, 36, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 42, 0, 42,
- 42, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 43, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 43, 0, 43, 43, 0, 0, 0, 0, 0, 8,
- 8, 8, 8, 8, 8, 8, 8, 8, 0, 0,
- 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 8, 8, 8, 8, 8, 8, 8, 0, 0, 0,
- 0, 8, 8, 8, 8, 8, 8, 8, 8, 8,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 36,
- 0, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 0, 0,
- 0, 0, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 0, 0, 44, 42, 42, 42, 42, 42, 42, 42,
- 42, 44, 0, 0, 0, 42, 42, 42, 42, 0,
- 42, 42, 0, 42, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
- 43, 43, 43, 0, 0, 45, 43, 43, 43, 43,
- 43, 43, 43, 43, 45, 0, 0, 0, 43, 43,
- 43, 43, 0, 43, 43, 0, 43, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 36, 36, 0, 36, 36, 0, 0, 53, 0,
- 0, 0, 36, 36, 0, 0, 44, 53, 0, 0,
- 36, 36, 36, 36, 0, 0, 55, 56, 57, 58,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
- 67, 0, 36, 0, 0, 44, 0, 44, 44, 0,
- 0, 47, 0, 0, 0, 0, 0, 0, 0, 45,
- 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 88, 89, 0, 0, 0, 0, 90, 91, 92, 93,
- 0, 0, 0, 100, 0, 0, 0, 101, 45, 0,
- 45, 45, 0, 107, 0, 110, 0, 0, 0, 111,
- 0, 0, 53, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 53, 0, 53, 53, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 47, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 47, 0, 47, 47, 0, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
- 44, 44, 44, 44, 44, 44, 44, 44, 0, 0,
- 0, 44, 44, 44, 44, 44, 44, 44, 44, 0,
- 0, 0, 0, 44, 44, 44, 44, 0, 44, 44,
- 0, 44, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 0, 0, 0, 45, 45, 45, 45, 45, 45,
- 45, 45, 0, 0, 0, 0, 45, 45, 45, 45,
- 0, 45, 45, 0, 45, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 0, 0, 46, 53, 53, 53,
- 53, 53, 53, 53, 53, 46, 0, 0, 0, 53,
- 53, 53, 53, 0, 53, 53, 0, 53, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 47, 47, 47, 0, 0, 48,
- 47, 47, 47, 47, 47, 47, 47, 47, 48, 0,
- 0, 0, 47, 47, 47, 47, 0, 47, 47, 0,
- 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 49, 0, 0, 0, 0, 0, 0, 0,
- 46, 49, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 46,
- 0, 46, 46, 0, 0, 51, 0, 0, 0, 0,
- 0, 0, 0, 48, 51, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 48, 0, 48, 48, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 49, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 49, 0, 49, 49, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 51,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 51, 0,
- 51, 51, 0, 46, 46, 46, 46, 46, 46, 46,
- 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
- 46, 46, 0, 0, 0, 46, 46, 46, 46, 46,
- 46, 46, 46, 0, 0, 0, 0, 46, 46, 46,
- 46, 0, 46, 46, 0, 46, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
- 48, 48, 48, 48, 48, 0, 0, 0, 48, 48,
- 48, 48, 48, 48, 48, 48, 0, 0, 0, 0,
- 48, 48, 48, 48, 0, 48, 48, 0, 48, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 49, 49, 49, 49, 0, 0,
- 50, 49, 49, 49, 49, 49, 49, 49, 49, 50,
- 0, 0, 0, 49, 49, 49, 49, 0, 49, 49,
- 0, 49, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
- 51, 0, 0, 52, 51, 51, 51, 51, 51, 51,
- 51, 51, 52, 0, 0, 0, 51, 51, 51, 51,
- 0, 51, 51, 0, 51, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 54, 0, 0, 0,
- 0, 0, 0, 0, 50, 54, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 50, 0, 50, 50, 0, 0, 19,
- 0, 0, 0, 0, 0, 0, 0, 52, 19, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 52, 0, 52, 52,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 54, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,
- 0, 54, 54, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 19, 0, 19, 19, 0, 50, 50, 50,
- 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
- 50, 50, 50, 50, 50, 50, 0, 0, 0, 50,
- 50, 50, 50, 50, 50, 50, 50, 0, 0, 0,
- 0, 50, 50, 50, 50, 0, 50, 50, 0, 50,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 0,
- 29, 0, 52, 52, 52, 52, 52, 52, 52, 52,
- 0, 0, 0, 0, 52, 52, 52, 52, 0, 52,
- 52, 0, 52, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 29, 0, 0, 54, 54, 54, 54, 54,
- 54, 54, 54, 0, 0, 0, 0, 54, 54, 54,
- 54, 0, 54, 54, 0, 54, 19, 19, 19, 0,
- 0, 19, 19, 19, 19, 19, 19, 19, 19, 19,
- 19, 19, 19, 19, 19, 27, 29, 0, 19, 19,
- 19, 19, 19, 19, 19, 19, 0, 0, 0, 0,
- 19, 19, 19, 19, 0, 19, 19, 0, 19, 0,
- 0, 0, 0, 0, 30, 0, 102, 28, 0, 0,
- 0, 0, 0, 0, 0, 29, 0, 27, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 30, 0, 0, 28,
- 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
- 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 30, 0, 0, 28, 0, 0, 0, 0, 0, 0,
- 27, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,
- 0, 0, 28, 0, 0, 0, 0, 0, 0, 27,
- 1, 0, 0, 2, 3, 4, 5, 6, 0, 0,
- 0, 7, 8, 9, 10, 11, 12, 0, 0, 0,
- 0, 13, 14, 15, 16, 17, 18, 19, 30, 0,
- 0, 28, 20, 21, 22, 23, 0, 24, 25, 0,
- 26, 0, 1, 0, 0, 2, 3, 4, 5, 6,
- 115, 0, 0, 7, 8, 9, 10, 11, 12, 0,
- 0, 0, 0, 13, 14, 15, 16, 17, 18, 19,
- 0, 0, 0, 0, 20, 21, 22, 23, 0, 24,
- 25, 0, 26, 0, 0, 0, 1, 0, 0, 2,
- 3, 4, 5, 6, 0, 0, 0, 7, 8, 9,
- 10, 11, 12, 0, 0, 0, 0, 13, 14, 15,
- 16, 17, 18, 19, 0, 0, 0, 0, 20, 21,
- 22, 23, 0, 24, 25, 1, 26, 0, 2, 3,
- 4, 5, 6, 0, 0, 0, 7, 8, 9, 10,
- 11, 12, 0, 0, 0, 0, 13, 14, 15, 16,
- 17, 18, 19, 0, 0, 0, 0, 0, 0, 22,
- 23, 0, 24, 25, 0, 26, 0, 2, 3, 4,
- 5, 6, 0, 0, 0, 7, 8, 9, 10, 11,
- 12, 0, 0, 0, 0, 13, 14, 15, 16, 17,
- 18, 19, 0, 0, 0, 0, 0, 0, 22, 23,
- 0, 24, 25, 0, 26,
-};
-static YYCONST short yycheck[] = { 123,
- 0, 125, 123, 1, 74, 123, 125, 123, 0, 9,
- 77, 125, 20, 21, 287, 288, 289, 290, 125, 125,
- 125, 125, 125, 125, 281, 125, 260, 261, 280, 37,
- 280, 281, 6, 7, 8, 257, 258, 123, 30, 123,
- 0, 0, 276, 277, 278, 0, 268, 269, 22, 76,
- 9, 115, 26, 86, 124, 125, 3, 4, 5, 126,
- 52, 295, 98, 71, 298, -1, 15, 16, 17, 18,
- 260, 261, 132, -1, 72, 73, 84, 75, -1, 87,
- 276, 277, 278, -1, 0, -1, 276, 277, 278, 257,
- 258, -1, -1, 9, 94, -1, 95, 96, 97, 295,
- 268, 269, 298, -1, -1, 295, -1, -1, 298, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 127,
- 112, -1, 130, 123, 116, 125, 126, 0, -1, -1,
- -1, 139, -1, -1, -1, 94, 9, -1, -1, -1,
- 132, 115, -1, -1, 136, 94, 95, 96, 97, -1,
- -1, -1, -1, -1, -1, -1, 280, 281, -1, 280,
- 281, -1, 280, 281, 123, 279, 125, 126, 287, 288,
- 289, 290, 279, 279, 279, 279, 279, 279, 94, 279,
- -1, -1, -1, -1, 0, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 123, -1, 125,
- 126, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 123, -1, 125, 126, -1, -1, -1, -1, -1, 259,
- 260, 261, 262, 263, 264, 265, 266, 267, -1, -1,
- 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
- 280, 281, 282, 283, 284, 285, 286, -1, -1, -1,
- -1, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 259, 260, 261, 262, 263, 264, 265, 266, 267, 125,
- -1, 270, 271, 272, 273, 274, 275, 276, 277, 278,
- 279, 280, 281, 282, 283, 284, 285, 286, -1, -1,
- -1, -1, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 257, 258, 259, 260, 261, 262, 263, 264, 265,
- 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- -1, -1, 0, 279, 280, 281, 282, 283, 284, 285,
- 286, 9, -1, -1, -1, 291, 292, 293, 294, -1,
- 296, 297, -1, 299, 257, 258, 259, 260, 261, 262,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- 273, 274, 275, -1, -1, 0, 279, 280, 281, 282,
- 283, 284, 285, 286, 9, -1, -1, -1, 291, 292,
- 293, 294, -1, 296, 297, -1, 299, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 257, 258, -1, 260, 261, -1, -1, 0, -1,
- -1, -1, 268, 269, -1, -1, 94, 9, -1, -1,
- 276, 277, 278, 279, -1, -1, 9, 10, 11, 12,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 295,
- 23, -1, 298, -1, -1, 123, -1, 125, 126, -1,
- -1, 0, -1, -1, -1, -1, -1, -1, -1, 94,
- 9, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 53, 54, -1, -1, -1, -1, 59, 60, 61, 62,
- -1, -1, -1, 66, -1, -1, -1, 70, 123, -1,
- 125, 126, -1, 76, -1, 78, -1, -1, -1, 82,
- -1, -1, 94, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 123, -1, 125, 126, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 94, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 123, -1, 125, 126, -1, 257,
- 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 274, 275, -1, -1,
- -1, 279, 280, 281, 282, 283, 284, 285, 286, -1,
- -1, -1, -1, 291, 292, 293, 294, -1, 296, 297,
- -1, 299, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, -1, -1, -1, 279, 280, 281, 282, 283, 284,
- 285, 286, -1, -1, -1, -1, 291, 292, 293, 294,
- -1, 296, 297, -1, 299, 257, 258, 259, 260, 261,
- 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, 273, 274, 275, -1, -1, 0, 279, 280, 281,
- 282, 283, 284, 285, 286, 9, -1, -1, -1, 291,
- 292, 293, 294, -1, 296, 297, -1, 299, 257, 258,
- 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 275, -1, -1, 0,
- 279, 280, 281, 282, 283, 284, 285, 286, 9, -1,
- -1, -1, 291, 292, 293, 294, -1, 296, 297, -1,
- 299, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 0, -1, -1, -1, -1, -1, -1, -1,
- 94, 9, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 123,
- -1, 125, 126, -1, -1, 0, -1, -1, -1, -1,
- -1, -1, -1, 94, 9, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 123, -1, 125, 126, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 94, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 123, -1, 125, 126, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 94,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 123, -1,
- 125, 126, -1, 257, 258, 259, 260, 261, 262, 263,
- 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
- 274, 275, -1, -1, -1, 279, 280, 281, 282, 283,
- 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
- 294, -1, 296, 297, -1, 299, 257, 258, 259, 260,
- 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, -1, -1, -1, 279, 280,
- 281, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, -1, 296, 297, -1, 299, 257,
- 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 274, 275, -1, -1,
- 0, 279, 280, 281, 282, 283, 284, 285, 286, 9,
- -1, -1, -1, 291, 292, 293, 294, -1, 296, 297,
- -1, 299, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, -1, -1, 0, 279, 280, 281, 282, 283, 284,
- 285, 286, 9, -1, -1, -1, 291, 292, 293, 294,
- -1, 296, 297, -1, 299, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 0, -1, -1, -1,
- -1, -1, -1, -1, 94, 9, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 123, -1, 125, 126, -1, -1, 0,
- -1, -1, -1, -1, -1, -1, -1, 94, 9, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 123, -1, 125, 126,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 123,
- -1, 125, 126, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 94, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 123, -1, 125, 126, -1, 257, 258, 259,
- 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
- 270, 271, 272, 273, 274, 275, -1, -1, -1, 279,
- 280, 281, 282, 283, 284, 285, 286, -1, -1, -1,
- -1, 291, 292, 293, 294, -1, 296, 297, -1, 299,
- 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, -1,
- 9, -1, 279, 280, 281, 282, 283, 284, 285, 286,
- -1, -1, -1, -1, 291, 292, 293, 294, -1, 296,
- 297, -1, 299, 257, 258, 259, 260, 261, 262, 263,
- 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
- 274, 275, 9, -1, -1, 279, 280, 281, 282, 283,
- 284, 285, 286, -1, -1, -1, -1, 291, 292, 293,
- 294, -1, 296, 297, -1, 299, 257, 258, 259, -1,
- -1, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 275, 94, 9, -1, 279, 280,
- 281, 282, 283, 284, 285, 286, -1, -1, -1, -1,
- 291, 292, 293, 294, -1, 296, 297, -1, 299, -1,
- -1, -1, -1, -1, 123, -1, 125, 126, -1, -1,
- -1, -1, -1, -1, -1, 9, -1, 94, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 123, -1, -1, 126,
- -1, -1, -1, -1, 9, -1, -1, -1, -1, -1,
- -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 123, -1, -1, 126, -1, -1, -1, -1, -1, -1,
- 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 123,
- -1, -1, 126, -1, -1, -1, -1, -1, -1, 94,
- 259, -1, -1, 262, 263, 264, 265, 266, -1, -1,
- -1, 270, 271, 272, 273, 274, 275, -1, -1, -1,
- -1, 280, 281, 282, 283, 284, 285, 286, 123, -1,
- -1, 126, 291, 292, 293, 294, -1, 296, 297, -1,
- 299, -1, 259, -1, -1, 262, 263, 264, 265, 266,
- 267, -1, -1, 270, 271, 272, 273, 274, 275, -1,
- -1, -1, -1, 280, 281, 282, 283, 284, 285, 286,
- -1, -1, -1, -1, 291, 292, 293, 294, -1, 296,
- 297, -1, 299, -1, -1, -1, 259, -1, -1, 262,
- 263, 264, 265, 266, -1, -1, -1, 270, 271, 272,
- 273, 274, 275, -1, -1, -1, -1, 280, 281, 282,
- 283, 284, 285, 286, -1, -1, -1, -1, 291, 292,
- 293, 294, -1, 296, 297, 259, 299, -1, 262, 263,
- 264, 265, 266, -1, -1, -1, 270, 271, 272, 273,
- 274, 275, -1, -1, -1, -1, 280, 281, 282, 283,
- 284, 285, 286, -1, -1, -1, -1, -1, -1, 293,
- 294, -1, 296, 297, -1, 299, -1, 262, 263, 264,
- 265, 266, -1, -1, -1, 270, 271, 272, 273, 274,
- 275, -1, -1, -1, -1, 280, 281, 282, 283, 284,
- 285, 286, -1, -1, -1, -1, -1, -1, 293, 294,
- -1, 296, 297, -1, 299,
-};
-#define YYFINAL 31
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 314
-#if YYDEBUG
-static YYCONST char *YYCONST yyname[] = {
-"end-of-file",0,0,0,0,0,0,0,0,"'\\t'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'{'",0,"'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"OVER",
-"SMALLOVER","SQRT","SUB","SUP","LPILE","RPILE","CPILE","PILE","LEFT","RIGHT",
-"TO","FROM","SIZE","FONT","ROMAN","BOLD","ITALIC","FAT","ACCENT","BAR","UNDER",
-"ABOVE","TEXT","QUOTED_TEXT","FWD","BACK","DOWN","UP","MATRIX","COL","LCOL",
-"RCOL","CCOL","MARK","LINEUP","TYPE","VCENTER","PRIME","SPLIT","NOSPLIT",
-"UACCENT","SPECIAL","SPACE","GFONT","GSIZE","DEFINE","NDEFINE","TDEFINE",
-"SDEFINE","UNDEF","IFDEF","INCLUDE","DELIM","CHARTYPE","SET","GRFONT","GBFONT",
-};
-static YYCONST char *YYCONST yyrule[] = {
-"$accept : top",
-"top :",
-"top : equation",
-"equation : mark",
-"equation : equation mark",
-"mark : from_to",
-"mark : MARK mark",
-"mark : LINEUP mark",
-"from_to : sqrt_over",
-"from_to : sqrt_over TO from_to",
-"from_to : sqrt_over FROM sqrt_over",
-"from_to : sqrt_over FROM sqrt_over TO from_to",
-"from_to : sqrt_over FROM sqrt_over FROM from_to",
-"sqrt_over : script",
-"sqrt_over : SQRT sqrt_over",
-"sqrt_over : sqrt_over OVER sqrt_over",
-"sqrt_over : sqrt_over SMALLOVER sqrt_over",
-"script : nonsup",
-"script : simple SUP script",
-"nonsup : simple",
-"nonsup : simple SUB nonsup",
-"nonsup : simple SUB simple SUP script",
-"simple : TEXT",
-"simple : QUOTED_TEXT",
-"simple : SPLIT QUOTED_TEXT",
-"simple : NOSPLIT TEXT",
-"simple : '^'",
-"simple : '~'",
-"simple : '\\t'",
-"simple : '{' equation '}'",
-"simple : PILE pile_arg",
-"simple : LPILE pile_arg",
-"simple : RPILE pile_arg",
-"simple : CPILE pile_arg",
-"simple : MATRIX '{' column_list '}'",
-"simple : LEFT delim equation RIGHT delim",
-"simple : LEFT delim equation",
-"simple : simple BAR",
-"simple : simple UNDER",
-"simple : simple PRIME",
-"simple : simple ACCENT simple",
-"simple : simple UACCENT simple",
-"simple : ROMAN simple",
-"simple : BOLD simple",
-"simple : ITALIC simple",
-"simple : FAT simple",
-"simple : FONT text simple",
-"simple : SIZE text simple",
-"simple : FWD number simple",
-"simple : BACK number simple",
-"simple : UP number simple",
-"simple : DOWN number simple",
-"simple : TYPE text simple",
-"simple : VCENTER simple",
-"simple : SPECIAL text simple",
-"number : text",
-"pile_element_list : equation",
-"pile_element_list : pile_element_list ABOVE equation",
-"pile_arg : '{' pile_element_list '}'",
-"pile_arg : number '{' pile_element_list '}'",
-"column_list : column",
-"column_list : column_list column",
-"column_element_list : equation",
-"column_element_list : column_element_list ABOVE equation",
-"column_arg : '{' column_element_list '}'",
-"column_arg : number '{' column_element_list '}'",
-"column : COL column_arg",
-"column : LCOL column_arg",
-"column : RCOL column_arg",
-"column : CCOL column_arg",
-"text : TEXT",
-"text : QUOTED_TEXT",
-"delim : text",
-"delim : '{'",
-"delim : '}'",
-};
-#endif
-#define YYLEX yylex()
-#define YYEMPTY -1
-#define yyclearin (yychar=(YYEMPTY))
-#define yyerrok (yyerrflag=0)
-#ifndef YYINITDEPTH
-#define YYINITDEPTH 200
-#endif
-#ifdef YYSTACKSIZE
-#undef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
-#else
-#define YYSTACKSIZE 10000
-#define YYMAXDEPTH 10000
-#endif
-#endif
-int yydebug;
-int yynerrs;
-int yyerrflag;
-int yychar;
-YYSTYPE yyval;
-YYSTYPE yylval;
-static short *yyss;
-static YYSTYPE *yyvs;
-static int yystacksize;
-static int yygrow ();
-static YYPTR yymalloc YYPARAMS((unsigned));
-static YYPTR yyrealloc YYPARAMS((YYPTR, unsigned));
-#define yyfree(x) free(x)
-#define YYABORT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-
-#if YYDEBUG
-#ifdef __cplusplus
-extern "C" char *getenv();
-#else
-extern char *getenv();
-#endif
-#endif
-
-int
-yyparse()
-{
- register int yym, yyn, yystate;
- register YYSTYPE *yyvsp;
- register short *yyssp;
- short *yysse;
-#if YYDEBUG
- register YYCONST char *yys;
-
- if (yys = getenv("YYDEBUG"))
- {
- yyn = *yys;
- if (yyn >= '0' && yyn <= '9')
- yydebug = yyn - '0';
- }
-#endif
-
- yynerrs = 0;
- yyerrflag = 0;
- yychar = (-1);
-
- if (yyss == 0)
- {
- yyss = (short *) yymalloc (YYINITDEPTH * sizeof (short));
- if (yyss == 0)
- goto yyabort;
- yyvs = (YYSTYPE *) yymalloc (YYINITDEPTH * sizeof (YYSTYPE));
- if (yyvs == 0)
- {
- yyfree (yyss);
- goto yyabort;
- }
- yystacksize = YYINITDEPTH;
- }
- yysse = yyss + yystacksize - 1;
- yyssp = yyss;
- yyvsp = yyvs;
- *yyssp = yystate = 0;
-
-yyloop:
- if (yyn = yydefred[yystate]) goto yyreduce;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("yydebug: state %d, reading %d (%s)\n", yystate,
- yychar, yys);
- }
-#endif
- }
- if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
-#if YYDEBUG
- if (yydebug)
- printf("yydebug: state %d, shifting to state %d\n",
- yystate, yytable[yyn]);
-#endif
- if (yyssp >= yysse)
- {
- /* FIXME: Rework so there's only one of these. */
- int depth = yyssp - yyss;
- if (yygrow () != 0)
- goto yyoverflow;
- yysse = yyss + yystacksize - 1;
- yyssp = yyss + depth;
- yyvsp = yyvs + depth;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- yychar = (-1);
- if (yyerrflag > 0) --yyerrflag;
- goto yyloop;
- }
- if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
- yyn = yytable[yyn];
- goto yyreduce;
- }
- if (yyerrflag) goto yyinrecovery;
-#ifdef lint
- goto yynewerror;
-#endif
-yynewerror:
- yyerror("syntax error");
-#ifdef lint
- goto yyerrlab;
-#endif
-yyerrlab:
- ++yynerrs;
-yyinrecovery:
- if (yyerrflag < 3)
- {
- yyerrflag = 3;
- for (;;)
- {
- if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
- {
-#if YYDEBUG
- if (yydebug)
- printf("yydebug: state %d, error recovery shifting\
- to state %d\n", *yyssp, yytable[yyn]);
-#endif
- if (yyssp >= yysse)
- {
- int depth = yyssp - yyss;
- if (yygrow () != 0)
- goto yyoverflow;
- yysse = yyss + yystacksize - 1;
- yyssp = yyss + depth;
- yyvsp = yyvs + depth;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- goto yyloop;
- }
- else
- {
-#if YYDEBUG
- if (yydebug)
- printf("yydebug: error recovery discarding state %d\n",
- *yyssp);
-#endif
- if (yyssp <= yyss) goto yyabort;
- --yyssp;
- --yyvsp;
- }
- }
- }
- else
- {
- if (yychar == 0) goto yyabort;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("yydebug: state %d, error recovery discards token %d (%s)\n",
- yystate, yychar, yys);
- }
-#endif
- yychar = (-1);
- goto yyloop;
- }
-yyreduce:
-#if YYDEBUG
- if (yydebug)
- printf("yydebug: state %d, reducing by rule %d (%s)\n",
- yystate, yyn, yyrule[yyn]);
-#endif
- yym = yylen[yyn];
- yyval = yyvsp[1-yym];
- switch (yyn)
- {
-case 2:
-#line 126 "eqn.y"
-{ yyvsp[0].b->top_level(); non_empty_flag = 1; }
-break;
-case 3:
-#line 131 "eqn.y"
-{ yyval.b = yyvsp[0].b; }
-break;
-case 4:
-#line 133 "eqn.y"
-{
- list_box *lb = yyvsp[-1].b->to_list_box();
- if (!lb)
- lb = new list_box(yyvsp[-1].b);
- lb->append(yyvsp[0].b);
- yyval.b = lb;
- }
-break;
-case 5:
-#line 144 "eqn.y"
-{ yyval.b = yyvsp[0].b; }
-break;
-case 6:
-#line 146 "eqn.y"
-{ yyval.b = make_mark_box(yyvsp[0].b); }
-break;
-case 7:
-#line 148 "eqn.y"
-{ yyval.b = make_lineup_box(yyvsp[0].b); }
-break;
-case 8:
-#line 153 "eqn.y"
-{ yyval.b = yyvsp[0].b; }
-break;
-case 9:
-#line 155 "eqn.y"
-{ yyval.b = make_limit_box(yyvsp[-2].b, 0, yyvsp[0].b); }
-break;
-case 10:
-#line 157 "eqn.y"
-{ yyval.b = make_limit_box(yyvsp[-2].b, yyvsp[0].b, 0); }
-break;
-case 11:
-#line 159 "eqn.y"
-{ yyval.b = make_limit_box(yyvsp[-4].b, yyvsp[-2].b, yyvsp[0].b); }
-break;
-case 12:
-#line 161 "eqn.y"
-{ yyval.b = make_limit_box(yyvsp[-4].b, make_limit_box(yyvsp[-2].b, yyvsp[0].b, 0), 0); }
-break;
-case 13:
-#line 166 "eqn.y"
-{ yyval.b = yyvsp[0].b; }
-break;
-case 14:
-#line 168 "eqn.y"
-{ yyval.b = make_sqrt_box(yyvsp[0].b); }
-break;
-case 15:
-#line 170 "eqn.y"
-{ yyval.b = make_over_box(yyvsp[-2].b, yyvsp[0].b); }
-break;
-case 16:
-#line 172 "eqn.y"
-{ yyval.b = make_small_over_box(yyvsp[-2].b, yyvsp[0].b); }
-break;
-case 17:
-#line 177 "eqn.y"
-{ yyval.b = yyvsp[0].b; }
-break;
-case 18:
-#line 179 "eqn.y"
-{ yyval.b = make_script_box(yyvsp[-2].b, 0, yyvsp[0].b); }
-break;
-case 19:
-#line 184 "eqn.y"
-{ yyval.b = yyvsp[0].b; }
-break;
-case 20:
-#line 186 "eqn.y"
-{ yyval.b = make_script_box(yyvsp[-2].b, yyvsp[0].b, 0); }
-break;
-case 21:
-#line 188 "eqn.y"
-{ yyval.b = make_script_box(yyvsp[-4].b, yyvsp[-2].b, yyvsp[0].b); }
-break;
-case 22:
-#line 193 "eqn.y"
-{ yyval.b = split_text(yyvsp[0].str); }
-break;
-case 23:
-#line 195 "eqn.y"
-{ yyval.b = new quoted_text_box(yyvsp[0].str); }
-break;
-case 24:
-#line 197 "eqn.y"
-{ yyval.b = split_text(yyvsp[0].str); }
-break;
-case 25:
-#line 199 "eqn.y"
-{ yyval.b = new quoted_text_box(yyvsp[0].str); }
-break;
-case 26:
-#line 201 "eqn.y"
-{ yyval.b = new half_space_box; }
-break;
-case 27:
-#line 203 "eqn.y"
-{ yyval.b = new space_box; }
-break;
-case 28:
-#line 205 "eqn.y"
-{ yyval.b = new tab_box; }
-break;
-case 29:
-#line 207 "eqn.y"
-{ yyval.b = yyvsp[-1].b; }
-break;
-case 30:
-#line 209 "eqn.y"
-{ yyvsp[0].pb->set_alignment(CENTER_ALIGN); yyval.b = yyvsp[0].pb; }
-break;
-case 31:
-#line 211 "eqn.y"
-{ yyvsp[0].pb->set_alignment(LEFT_ALIGN); yyval.b = yyvsp[0].pb; }
-break;
-case 32:
-#line 213 "eqn.y"
-{ yyvsp[0].pb->set_alignment(RIGHT_ALIGN); yyval.b = yyvsp[0].pb; }
-break;
-case 33:
-#line 215 "eqn.y"
-{ yyvsp[0].pb->set_alignment(CENTER_ALIGN); yyval.b = yyvsp[0].pb; }
-break;
-case 34:
-#line 217 "eqn.y"
-{ yyval.b = yyvsp[-1].mb; }
-break;
-case 35:
-#line 219 "eqn.y"
-{ yyval.b = make_delim_box(yyvsp[-3].str, yyvsp[-2].b, yyvsp[0].str); }
-break;
-case 36:
-#line 221 "eqn.y"
-{ yyval.b = make_delim_box(yyvsp[-1].str, yyvsp[0].b, 0); }
-break;
-case 37:
-#line 223 "eqn.y"
-{ yyval.b = make_overline_box(yyvsp[-1].b); }
-break;
-case 38:
-#line 225 "eqn.y"
-{ yyval.b = make_underline_box(yyvsp[-1].b); }
-break;
-case 39:
-#line 227 "eqn.y"
-{ yyval.b = make_prime_box(yyvsp[-1].b); }
-break;
-case 40:
-#line 229 "eqn.y"
-{ yyval.b = make_accent_box(yyvsp[-2].b, yyvsp[0].b); }
-break;
-case 41:
-#line 231 "eqn.y"
-{ yyval.b = make_uaccent_box(yyvsp[-2].b, yyvsp[0].b); }
-break;
-case 42:
-#line 233 "eqn.y"
-{ yyval.b = new font_box(strsave(get_grfont()), yyvsp[0].b); }
-break;
-case 43:
-#line 235 "eqn.y"
-{ yyval.b = new font_box(strsave(get_gbfont()), yyvsp[0].b); }
-break;
-case 44:
-#line 237 "eqn.y"
-{ yyval.b = new font_box(strsave(get_gfont()), yyvsp[0].b); }
-break;
-case 45:
-#line 239 "eqn.y"
-{ yyval.b = new fat_box(yyvsp[0].b); }
-break;
-case 46:
-#line 241 "eqn.y"
-{ yyval.b = new font_box(yyvsp[-1].str, yyvsp[0].b); }
-break;
-case 47:
-#line 243 "eqn.y"
-{ yyval.b = new size_box(yyvsp[-1].str, yyvsp[0].b); }
-break;
-case 48:
-#line 245 "eqn.y"
-{ yyval.b = new hmotion_box(yyvsp[-1].n, yyvsp[0].b); }
-break;
-case 49:
-#line 247 "eqn.y"
-{ yyval.b = new hmotion_box(-yyvsp[-1].n, yyvsp[0].b); }
-break;
-case 50:
-#line 249 "eqn.y"
-{ yyval.b = new vmotion_box(yyvsp[-1].n, yyvsp[0].b); }
-break;
-case 51:
-#line 251 "eqn.y"
-{ yyval.b = new vmotion_box(-yyvsp[-1].n, yyvsp[0].b); }
-break;
-case 52:
-#line 253 "eqn.y"
-{ yyvsp[0].b->set_spacing_type(yyvsp[-1].str); yyval.b = yyvsp[0].b; }
-break;
-case 53:
-#line 255 "eqn.y"
-{ yyval.b = new vcenter_box(yyvsp[0].b); }
-break;
-case 54:
-#line 257 "eqn.y"
-{ yyval.b = make_special_box(yyvsp[-1].str, yyvsp[0].b); }
-break;
-case 55:
-#line 262 "eqn.y"
-{
- int n;
- if (sscanf(yyvsp[0].str, "%d", &n) == 1)
- yyval.n = n;
- a_delete yyvsp[0].str;
- }
-break;
-case 56:
-#line 272 "eqn.y"
-{ yyval.pb = new pile_box(yyvsp[0].b); }
-break;
-case 57:
-#line 274 "eqn.y"
-{ yyvsp[-2].pb->append(yyvsp[0].b); yyval.pb = yyvsp[-2].pb; }
-break;
-case 58:
-#line 279 "eqn.y"
-{ yyval.pb = yyvsp[-1].pb; }
-break;
-case 59:
-#line 281 "eqn.y"
-{ yyvsp[-1].pb->set_space(yyvsp[-3].n); yyval.pb = yyvsp[-1].pb; }
-break;
-case 60:
-#line 286 "eqn.y"
-{ yyval.mb = new matrix_box(yyvsp[0].col); }
-break;
-case 61:
-#line 288 "eqn.y"
-{ yyvsp[-1].mb->append(yyvsp[0].col); yyval.mb = yyvsp[-1].mb; }
-break;
-case 62:
-#line 293 "eqn.y"
-{ yyval.col = new column(yyvsp[0].b); }
-break;
-case 63:
-#line 295 "eqn.y"
-{ yyvsp[-2].col->append(yyvsp[0].b); yyval.col = yyvsp[-2].col; }
-break;
-case 64:
-#line 300 "eqn.y"
-{ yyval.col = yyvsp[-1].col; }
-break;
-case 65:
-#line 302 "eqn.y"
-{ yyvsp[-1].col->set_space(yyvsp[-3].n); yyval.col = yyvsp[-1].col; }
-break;
-case 66:
-#line 307 "eqn.y"
-{ yyvsp[0].col->set_alignment(CENTER_ALIGN); yyval.col = yyvsp[0].col; }
-break;
-case 67:
-#line 309 "eqn.y"
-{ yyvsp[0].col->set_alignment(LEFT_ALIGN); yyval.col = yyvsp[0].col; }
-break;
-case 68:
-#line 311 "eqn.y"
-{ yyvsp[0].col->set_alignment(RIGHT_ALIGN); yyval.col = yyvsp[0].col; }
-break;
-case 69:
-#line 313 "eqn.y"
-{ yyvsp[0].col->set_alignment(CENTER_ALIGN); yyval.col = yyvsp[0].col; }
-break;
-case 70:
-#line 317 "eqn.y"
-{ yyval.str = yyvsp[0].str; }
-break;
-case 71:
-#line 319 "eqn.y"
-{ yyval.str = yyvsp[0].str; }
-break;
-case 72:
-#line 324 "eqn.y"
-{ yyval.str = yyvsp[0].str; }
-break;
-case 73:
-#line 326 "eqn.y"
-{ yyval.str = strsave("{"); }
-break;
-case 74:
-#line 328 "eqn.y"
-{ yyval.str = strsave("}"); }
-break;
-#line 1168 "y.tab.c"
- }
- yyssp -= yym;
- yystate = *yyssp;
- yyvsp -= yym;
- yym = yylhs[yyn];
- if (yystate == 0 && yym == 0)
- {
-#if YYDEBUG
- if (yydebug)
- printf("yydebug: after reduction, shifting from state 0 to\
- state %d\n", YYFINAL);
-#endif
- yystate = YYFINAL;
- *++yyssp = YYFINAL;
- *++yyvsp = yyval;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("yydebug: state %d, reading %d (%s)\n",
- YYFINAL, yychar, yys);
- }
-#endif
- }
- if (yychar == 0) goto yyaccept;
- goto yyloop;
- }
- if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
- yystate = yytable[yyn];
- else
- yystate = yydgoto[yym];
-#if YYDEBUG
- if (yydebug)
- printf("yydebug: after reduction, shifting from state %d \
-to state %d\n", *yyssp, yystate);
-#endif
- if (yyssp >= yysse)
- {
- int depth = yyssp - yyss;
- if (yygrow () != 0)
- goto yyoverflow;
- yysse = yyss + yystacksize - 1;
- yyssp = yyss + depth;
- yyvsp = yyvs + depth;
- }
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
-yyoverflow:
- yyerror("yacc stack overflow");
-yyabort:
- return (1);
-yyaccept:
- return (0);
-}
-
-static int
-yygrow ()
-{
- int old_stacksize = yystacksize;
- short *new_yyss;
- YYSTYPE *new_yyvs;
-
- if (yystacksize >= YYMAXDEPTH)
- return (1);
- yystacksize *= 2;
- if (yystacksize > YYMAXDEPTH)
- yystacksize = YYMAXDEPTH;
-#if YYDEBUG
- if (yydebug)
- printf("yydebug: growing stack size from %d to %d\n",
- old_stacksize, yystacksize);
-#endif
- new_yyss = (short *) yyrealloc (yyss, yystacksize * sizeof (short));
- if (new_yyss == 0)
- return (1);
- new_yyvs = (YYSTYPE *) yyrealloc (yyvs, yystacksize * sizeof (YYSTYPE));
- if (new_yyvs == 0)
- {
- yyfree (new_yyss);
- return (1);
- }
- yyss = new_yyss;
- yyvs = new_yyvs;
- return (0);
-}
-
-static YYPTR
-YYDEFUN (yymalloc, (bytes), unsigned bytes)
-{
- YYPTR ptr = (YYPTR) malloc (bytes);
- if (ptr != 0) return (ptr);
- yyerror ("yyparse: memory exhausted");
- return (0);
-}
-
-static YYPTR
-YYDEFUN (yyrealloc, (old, bytes), YYPTR old YYAND unsigned bytes)
-{
- YYPTR ptr = (YYPTR) realloc (old, bytes);
- if (ptr != 0) return (ptr);
- yyerror ("yyparse: memory exhausted");
- return (0);
-}
diff --git a/contrib/groff/src/preproc/eqn/eqn_tab.h b/contrib/groff/src/preproc/eqn/eqn_tab.h
deleted file mode 100644
index 9a8b3cb..0000000
--- a/contrib/groff/src/preproc/eqn/eqn_tab.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#define OVER 257
-#define SMALLOVER 258
-#define SQRT 259
-#define SUB 260
-#define SUP 261
-#define LPILE 262
-#define RPILE 263
-#define CPILE 264
-#define PILE 265
-#define LEFT 266
-#define RIGHT 267
-#define TO 268
-#define FROM 269
-#define SIZE 270
-#define FONT 271
-#define ROMAN 272
-#define BOLD 273
-#define ITALIC 274
-#define FAT 275
-#define ACCENT 276
-#define BAR 277
-#define UNDER 278
-#define ABOVE 279
-#define TEXT 280
-#define QUOTED_TEXT 281
-#define FWD 282
-#define BACK 283
-#define DOWN 284
-#define UP 285
-#define MATRIX 286
-#define COL 287
-#define LCOL 288
-#define RCOL 289
-#define CCOL 290
-#define MARK 291
-#define LINEUP 292
-#define TYPE 293
-#define VCENTER 294
-#define PRIME 295
-#define SPLIT 296
-#define NOSPLIT 297
-#define UACCENT 298
-#define SPECIAL 299
-#define SPACE 300
-#define GFONT 301
-#define GSIZE 302
-#define DEFINE 303
-#define NDEFINE 304
-#define TDEFINE 305
-#define SDEFINE 306
-#define UNDEF 307
-#define IFDEF 308
-#define INCLUDE 309
-#define DELIM 310
-#define CHARTYPE 311
-#define SET 312
-#define GRFONT 313
-#define GBFONT 314
-typedef union {
- char *str;
- box *b;
- pile_box *pb;
- matrix_box *mb;
- int n;
- column *col;
-} YYSTYPE;
-extern YYSTYPE yylval;
diff --git a/contrib/groff/src/preproc/eqn/neqn.sh b/contrib/groff/src/preproc/eqn/neqn.sh
index 08346b0..c05121b 100644
--- a/contrib/groff/src/preproc/eqn/neqn.sh
+++ b/contrib/groff/src/preproc/eqn/neqn.sh
@@ -1,10 +1,25 @@
#!/bin/sh
# Provision of this shell script should not be taken to imply that use of
-# GNU eqn with groff -Tascii|-Tlatin1|-Tutf8|-Tcp1047 is supported.
+# GNU eqn with groff -Tascii|-Tlatin1|-Tkoi8-r|-Tutf8|-Tcp1047 is supported.
+# $FreeBSD$
+
+# Default device.
+case "${LC_ALL-${LC_CTYPE-${LANG}}}" in
+ *.UTF-8)
+ T=utf8 ;;
+ iso_8859_1 | *.ISO*8859-1 | *.ISO*8859-15)
+ T=latin1 ;;
+ *.IBM-1047)
+ T=cp1047 ;;
+ *.KOI8-R)
+ T=koi8-r ;;
+ *)
+ T=ascii ;;
+esac
: ${GROFF_BIN_PATH=@BINDIR@}
PATH=$GROFF_BIN_PATH:$PATH
export PATH
-exec @g@eqn -Tascii ${1+"$@"}
+exec @g@eqn -T${T} ${1+"$@"}
# eof
diff --git a/contrib/groff/src/preproc/pic/pic.cc b/contrib/groff/src/preproc/pic/pic.cc
deleted file mode 100644
index 6e6c527..0000000
--- a/contrib/groff/src/preproc/pic/pic.cc
+++ /dev/null
@@ -1,5219 +0,0 @@
-#ifndef lint
-/*static char yysccsid[] = "from: @(#)yaccpar 1.9 (Berkeley) 02/21/93";*/
-static char yyrcsid[] = "$Id: pic.cc,v 1.4 2001/04/19 14:01:55 wlemb Exp $";
-#endif
-#define YYBYACC 1
-#define YYMAJOR 1
-#define YYMINOR 9
-#define yyclearin (yychar=(-1))
-#define yyerrok (yyerrflag=0)
-#define YYRECOVERING (yyerrflag!=0)
-#define YYPREFIX "yy"
-#line 20 "/home/cjk/groff/src/preproc/pic/pic.y"
-#include "pic.h"
-#include "ptable.h"
-#include "object.h"
-
-extern int delim_flag;
-extern void do_copy(const char *);
-extern void copy_rest_thru(const char *, const char *);
-extern void copy_file_thru(const char *, const char *, const char *);
-extern void push_body(const char *);
-extern void do_for(char *var, double from, double to,
- int by_is_multiplicative, double by, char *body);
-extern void do_lookahead();
-
-#ifndef HAVE_FMOD
-extern "C" {
- double fmod(double, double);
-}
-#endif
-
-#undef rand
-#undef srand
-extern "C" {
- int rand();
-#ifdef RET_TYPE_SRAND_IS_VOID
- void srand(unsigned int);
-#else
- int srand(unsigned int);
-#endif
-}
-
-/* Maximum number of characters produced by printf("%g") */
-#define GDIGITS 14
-
-int yylex();
-void yyerror(const char *);
-
-void reset(const char *nm);
-void reset_all();
-
-place *lookup_label(const char *);
-void define_label(const char *label, const place *pl);
-
-direction current_direction;
-position current_position;
-
-implement_ptable(place)
-
-PTABLE(place) top_table;
-
-PTABLE(place) *current_table = &top_table;
-saved_state *current_saved_state = 0;
-
-object_list olist;
-
-const char *ordinal_postfix(int n);
-const char *object_type_name(object_type type);
-char *format_number(const char *form, double n);
-char *do_sprintf(const char *form, const double *v, int nv);
-
-#line 82 "/home/cjk/groff/src/preproc/pic/pic.y"
-typedef union {
- char *str;
- int n;
- double x;
- struct { double x, y; } pair;
- struct { double x; char *body; } if_data;
- struct { char *str; const char *filename; int lineno; } lstr;
- struct { double *v; int nv; int maxv; } dv;
- struct { double val; int is_multiplicative; } by;
- place pl;
- object *obj;
- corner crn;
- path *pth;
- object_spec *spec;
- saved_state *pstate;
- graphics_state state;
- object_type obtype;
-} YYSTYPE;
-#line 92 "y.tab.c"
-#define LABEL 257
-#define VARIABLE 258
-#define NUMBER 259
-#define TEXT 260
-#define COMMAND_LINE 261
-#define DELIMITED 262
-#define ORDINAL 263
-#define TH 264
-#define LEFT_ARROW_HEAD 265
-#define RIGHT_ARROW_HEAD 266
-#define DOUBLE_ARROW_HEAD 267
-#define LAST 268
-#define UP 269
-#define DOWN 270
-#define LEFT 271
-#define RIGHT 272
-#define BOX 273
-#define CIRCLE 274
-#define ELLIPSE 275
-#define ARC 276
-#define LINE 277
-#define ARROW 278
-#define MOVE 279
-#define SPLINE 280
-#define HEIGHT 281
-#define RADIUS 282
-#define WIDTH 283
-#define DIAMETER 284
-#define FROM 285
-#define TO 286
-#define AT 287
-#define WITH 288
-#define BY 289
-#define THEN 290
-#define SOLID 291
-#define DOTTED 292
-#define DASHED 293
-#define CHOP 294
-#define SAME 295
-#define INVISIBLE 296
-#define LJUST 297
-#define RJUST 298
-#define ABOVE 299
-#define BELOW 300
-#define OF 301
-#define THE 302
-#define WAY 303
-#define BETWEEN 304
-#define AND 305
-#define HERE 306
-#define DOT_N 307
-#define DOT_E 308
-#define DOT_W 309
-#define DOT_S 310
-#define DOT_NE 311
-#define DOT_SE 312
-#define DOT_NW 313
-#define DOT_SW 314
-#define DOT_C 315
-#define DOT_START 316
-#define DOT_END 317
-#define DOT_X 318
-#define DOT_Y 319
-#define DOT_HT 320
-#define DOT_WID 321
-#define DOT_RAD 322
-#define SIN 323
-#define COS 324
-#define ATAN2 325
-#define LOG 326
-#define EXP 327
-#define SQRT 328
-#define K_MAX 329
-#define K_MIN 330
-#define INT 331
-#define RAND 332
-#define SRAND 333
-#define COPY 334
-#define THRU 335
-#define TOP 336
-#define BOTTOM 337
-#define UPPER 338
-#define LOWER 339
-#define SH 340
-#define PRINT 341
-#define CW 342
-#define CCW 343
-#define FOR 344
-#define DO 345
-#define IF 346
-#define ELSE 347
-#define ANDAND 348
-#define OROR 349
-#define NOTEQUAL 350
-#define EQUALEQUAL 351
-#define LESSEQUAL 352
-#define GREATEREQUAL 353
-#define LEFT_CORNER 354
-#define RIGHT_CORNER 355
-#define CENTER 356
-#define END 357
-#define START 358
-#define RESET 359
-#define UNTIL 360
-#define PLOT 361
-#define THICKNESS 362
-#define FILL 363
-#define ALIGNED 364
-#define SPRINTF 365
-#define COMMAND 366
-#define DEFINE 367
-#define UNDEF 368
-#define YYERRCODE 256
-short yylhs[] = { -1,
- 0, 0, 16, 17, 17, 28, 28, 29, 29, 30,
- 30, 30, 30, 30, 30, 30, 30, 30, 31, 30,
- 30, 32, 33, 30, 34, 35, 30, 36, 30, 30,
- 37, 30, 30, 30, 38, 38, 38, 26, 26, 27,
- 27, 27, 39, 7, 23, 23, 2, 2, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,
- 15, 15, 15, 15, 40, 42, 15, 15, 41, 41,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 43, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 25, 25, 24, 24, 19,
- 19, 6, 6, 6, 6, 6, 6, 44, 44, 5,
- 5, 13, 13, 13, 13, 13, 14, 14, 14, 22,
- 22, 21, 21, 8, 8, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 11, 11, 12, 12, 12, 10,
- 10, 10, 10, 10, 10, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1,
-};
-short yylen[] = { 2,
- 1, 1, 3, 1, 3, 0, 1, 1, 2, 3,
- 4, 1, 1, 1, 1, 1, 2, 2, 0, 3,
- 2, 0, 0, 7, 0, 0, 6, 0, 10, 1,
- 0, 4, 1, 1, 2, 2, 3, 1, 2, 1,
- 1, 1, 0, 5, 0, 2, 1, 1, 3, 3,
- 3, 3, 3, 3, 3, 3, 2, 0, 2, 3,
- 1, 4, 4, 4, 0, 0, 6, 1, 0, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 3, 0, 4, 3, 3, 3, 3, 2, 2, 3,
- 2, 3, 2, 3, 2, 3, 3, 3, 3, 3,
- 3, 2, 2, 2, 3, 2, 3, 2, 3, 2,
- 3, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 3, 2, 1, 5, 0, 3, 1,
- 1, 1, 3, 3, 5, 5, 6, 1, 4, 3,
- 3, 1, 2, 2, 3, 1, 1, 1, 3, 1,
- 3, 1, 2, 2, 2, 1, 1, 1, 1, 1,
- 1, 1, 2, 1, 2, 3, 1, 1, 2, 1,
- 5, 4, 3, 3, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 2, 2, 2, 1, 1, 2, 2, 2, 2,
- 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
- 3, 3, 3, 3, 3, 3, 2, 3, 4, 4,
- 6, 4, 4, 4, 6, 6, 4, 4, 3, 4,
- 3, 3, 3, 3, 3, 3, 3, 3, 2,
-};
-short yydefred[] = { 0,
- 8, 0, 2, 0, 0, 0, 0, 126, 16, 12,
- 13, 14, 15, 71, 72, 73, 74, 75, 76, 77,
- 78, 0, 19, 0, 0, 0, 0, 0, 0, 0,
- 65, 82, 0, 4, 0, 0, 79, 68, 0, 9,
- 0, 0, 0, 0, 25, 0, 147, 204, 205, 150,
- 152, 189, 190, 146, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 187, 188, 0, 0,
- 195, 196, 201, 203, 202, 0, 0, 0, 0, 0,
- 132, 130, 148, 0, 0, 0, 0, 0, 0, 41,
- 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,
- 35, 0, 0, 0, 0, 0, 31, 3, 0, 114,
- 115, 116, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 102, 103, 0, 0, 0,
- 112, 113, 120, 121, 122, 123, 117, 118, 0, 0,
- 125, 0, 119, 36, 0, 0, 10, 0, 22, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 191, 193, 197, 199, 192, 194, 198, 200,
- 0, 0, 0, 0, 0, 0, 0, 0, 138, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 206, 207, 208,
- 209, 210, 0, 143, 0, 0, 164, 156, 157, 158,
- 159, 160, 161, 162, 0, 155, 153, 154, 39, 0,
- 0, 57, 0, 0, 0, 43, 0, 0, 0, 0,
- 81, 128, 0, 0, 0, 0, 5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 167, 100, 0, 170, 0, 0,
- 101, 0, 0, 0, 0, 0, 37, 0, 0, 0,
- 0, 0, 0, 62, 0, 11, 0, 26, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 229, 0, 0,
- 218, 141, 0, 151, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 149, 133, 134, 163, 0, 0, 53,
- 0, 0, 0, 0, 0, 51, 0, 0, 50, 49,
- 0, 66, 83, 32, 175, 0, 0, 0, 0, 165,
- 0, 169, 0, 0, 23, 0, 219, 220, 0, 222,
- 223, 224, 0, 0, 227, 228, 230, 0, 0, 0,
- 0, 0, 44, 0, 127, 0, 0, 174, 173, 0,
- 166, 0, 0, 27, 0, 0, 0, 135, 139, 0,
- 0, 0, 0, 70, 67, 172, 0, 24, 46, 221,
- 225, 226, 137, 0, 0, 171, 0, 0, 28, 0,
- 0, 29,
-};
-short yydgoto[] = { 2,
- 106, 182, 108, 405, 91, 92, 33, 93, 94, 266,
- 267, 268, 109, 96, 34, 3, 35, 36, 97, 226,
- 98, 99, 384, 341, 110, 101, 102, 244, 5, 38,
- 46, 287, 382, 160, 356, 411, 246, 39, 334, 115,
- 395, 376, 116, 205,
-};
-short yysindex[] = { 25,
- 0, 0, 0,11784, 59, -47, -5, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -250, 0,10817, -218,10934, -197,11387, 90,10817,
- 0, 0, -214, 0, 25,10516, 0, 0, -36, 0,
- 25,10934, 75, -192, 0, -124, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 106, 107, 110, 111, 113,
- 120, 122, 124, 143, 146, 153, 0, 0, -213, -41,
- 0, 0, 0, 0, 0,11061,10934,11387,11387, 635,
- 0, 0, 0, -61, -64, 2542, 44, 834, 356, 0,
-10817, 0, 133,10934,10934, 1378, -91, -294, -64, -279,
- 0, -28, -52,10817, 25, 25, 0, 0,11406, 0,
- 0, 0,11694,11694,11694,11694,11387,11387,11387,11387,
-11505,11505,11505, 3348,11609, 0, 0,11694,11694,11694,
- 0, 0, 0, 0, 0, 0, 0, 0,11387,11694,
- 0, 1491, 0, 0, -33,10189, 0,10934, 0, -46,
- 0,10934,10934,10934,10934,10934,10934,10934,10934,10934,
-10633,10934, 0, 0, 0, 0, 0, 0, 0, 0,
- 1524, 194, 195, -23, -26, 150, 150, -56, 0,11387,
-11387,11387,11387,11387,11387,11387,11505,11387,11387,11387,
-11387,11387,11387,11387,11505, -29, 213, 0, 0, 0,
- 0, 0, -7, 0,11609,11609, 0, 0, 0, 0,
- 0, 0, 0, 0, 167, 0, 0, 0, 0,11387,
- 150, 0,10934,10934,11387, 0,10934,10934, -230, -230,
- 0, 0, 139,11784, 177, 11, 0, 1491, 1491, 1491,
- 1491, 1491, 1491, 1491, 1491, 635, 44, 44, 44, 2101,
- 432, 834, 2101, 17, 0, 0, 2435, 0,11178, 623,
- 0, 1491, 1491, 1491, 1491, 1491, 0, -47, -5, 0,
- 0, 0, -64, 0, 44, 0, 18, 0, 240, 246,
- 244, 248, 249, 250, 252, 253, 257, 0, 260, 262,
- 0, 0,11505, 0, 1, 1953, 1821, 158, 158, 4,
- 4, 1491, -19, 48, 4, 200, 200, 150, 150, 150,
- 150, -42, 213, 0, 0, 0, 0, 1044, 1953, 0,
- 1924, -43, 4, 46, 1953, 0, 1924, -43, 0, 0,
- 19, 0, 0, 0, 0, 834, 2101, 2101, 266, 0,
- 49, 0, 1079, 195, 0, -49, 0, 0,10934, 0,
- 0, 0,10934,10934, 0, 0, 0, 33, 8,11505,
-11505,11387, 0,11387, 0,11784, 2101, 0, 0, 2101,
- 0, -49, 55, 0, 275, 277, 290, 0, 0, 7,
- 44, 1484, 1491, 0, 0, 0, 293, 0, 0, 0,
- 0, 0, 0,11283, -10, 0,11387, 1491, 0, 1491,
- 74, 0,
-};
-short yyrindex[] = { 204,
- 0, 0, 0, 338, 94, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 36, 0, 0, 0,
- 0, 0, 399, 0, 27, 412, 0, 0, 443, 0,
-10384, 0, 0, 454, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 8824,
- 0, 0, 0, 0, 4444, 8610, 9125, 0, 0, 0,
- 467, 0, 0, 0, 0, 954, 0, 970, 0, 0,
- 0,10077, 0, 487,11820,11820, 0, 0, 31, 0,
- 0, 0, 9459, 9500, 9245, 9351, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9612, 9720, 9761,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 9868,
- 0, 4996, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 299, 0, 114, 0, 0, 456, 566, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 3115, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 224, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 5297, 5406, 5707,
- 5816, 6117, 6226, 6527, 6636, 0, 6937, 7046, 7347, 0,
- 0, 0, 0, 0, 0, 0, 8697, 0, 0, 0,
- 0, 7456, 7757, 7866, 8167, 8276, 0, 9870, 1967, 3642,
- 4085, 184, 233, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 4001, 4110, 3224, 3558, 2229,
- 2338, 4887, 9004, 0, 2672, 1786, 1895, 900, 1009, 1343,
- 1452, 0, 3667, 0, 0, 0, 0, 0, 29, 0,
- 38, 182, 2781, 0, 96, 0, 468, 578, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 299, 0, 0, 495, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 530, 0, 0, 0, 0,
- 0, 495, 0, 0, 0, 0, 0, 0, 0, 0,
- 4553, -4, 39, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -2, 0, -1,
- 0, 0,
-};
-short yygindex[] = { 0,
- -24, 480, -89, 0, -18, 189, 0, 0, -48, 0,
- 0, 354, 3172, -87, -114, -3, 0, 0, 1313, -74,
- 0, 0, -21, 0, 9, 326, -57, 2, 324, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,
-};
-#define YYTABLESIZE 12186
-short yytable[] = { 90,
- 215, 4, 216, 112, 247, 90, 207, 155, 203, 44,
- 41, 152, 37, 201, 199, 232, 200, 203, 202, 215,
- 303, 216, 201, 199, 228, 200, 6, 202, 237, 8,
- 7, 235, 100, 198, 87, 34, 118, 238, 100, 103,
- 203, 284, 156, 229, 153, 201, 199, 214, 200, 215,
- 202, 216, 43, 237, 238, 42, 229, 173, 174, 375,
- 111, 181, 374, 186, 187, 204, 87, 183, 403, 237,
- 239, 240, 237, 388, 204, 215, 90, 216, 238, 129,
- 231, 238, 129, 1, 45, 265, 215, 237, 216, 90,
- 215, 370, 216, 7, 34, 52, 238, 204, 248, 249,
- 250, 251, 252, 253, 254, 255, 256, 256, 256, 100,
- 270, 243, 245, 272, 273, 274, 271, 40, 323, 6,
- 241, 237, 100, 7, 275, 276, 7, 37, 34, 113,
- 238, 256, 117, 7, 29, 158, 52, 161, 7, 52,
- 175, 176, 159, 330, 332, 162, 163, 336, 338, 164,
- 165, 6, 166, 237, 52, 7, 132, 132, 132, 167,
- 34, 168, 238, 169, 37, 306, 307, 308, 309, 310,
- 311, 312, 313, 315, 316, 317, 318, 319, 320, 321,
- 256, 56, 170, 63, 7, 171, 347, 348, 52, 7,
- 270, 270, 172, 230, 203, 47, 325, 326, 236, 201,
- 199, 50, 200, 6, 202, 328, 51, 242, 329, 331,
- 333, 265, 335, 337, 265, 288, 7, 235, 352, 198,
- 52, 154, 56, 239, 277, 56, 130, 47, 130, 177,
- 178, 8, 64, 50, 301, 302, 203, 304, 51, 206,
- 56, 201, 63, 204, 353, 305, 202, 339, 340, 324,
- 354, 204, 37, 208, 209, 210, 211, 212, 213, 327,
- 239, 394, 371, 342, 239, 239, 239, 239, 239, 343,
- 239, 377, 344, 350, 56, 131, 63, 131, 256, 355,
- 357, 188, 239, 239, 189, 239, 358, 359, 360, 361,
- 362, 64, 237, 204, 6, 363, 364, 365, 265, 265,
- 366, 238, 367, 369, 237, 381, 56, 373, 63, 380,
- 383, 389, 179, 180, 399, 400, 239, 401, 237, 190,
- 191, 192, 193, 194, 195, 64, 6, 238, 265, 237,
- 402, 265, 237, 406, 409, 412, 29, 1, 238, 47,
- 58, 238, 59, 60, 282, 256, 256, 392, 239, 393,
- 7, 7, 7, 7, 7, 114, 7, 64, 119, 52,
- 398, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 0, 0, 237, 237, 0, 408,
- 0, 0, 410, 0, 37, 52, 238, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 30, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 61, 0, 0, 0, 0, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 0, 7,
- 7, 7, 7, 7, 7, 0, 0, 7, 0, 7,
- 0, 0, 33, 52, 52, 56, 225, 7, 7, 7,
- 7, 7, 7, 21, 7, 217, 0, 30, 7, 7,
- 6, 6, 0, 6, 6, 0, 18, 55, 0, 0,
- 61, 56, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 0, 0, 17, 239, 217, 0,
- 0, 30, 217, 0, 45, 217, 217, 217, 217, 217,
- 217, 33, 217, 0, 61, 107, 0, 0, 55, 194,
- 195, 55, 21, 239, 217, 217, 0, 217, 0, 0,
- 0, 157, 225, 30, 239, 18, 55, 239, 0, 69,
- 56, 0, 0, 0, 0, 33, 61, 6, 0, 0,
- 0, 0, 0, 6, 6, 17, 21, 6, 217, 6,
- 0, 217, 0, 45, 0, 0, 0, 0, 0, 18,
- 55, 0, 6, 0, 6, 239, 185, 33, 6, 6,
- 0, 239, 239, 239, 239, 239, 239, 54, 21, 17,
- 217, 0, 0, 0, 0, 0, 0, 45, 69, 0,
- 0, 18, 55, 0, 0, 0, 0, 0, 239, 0,
- 0, 0, 239, 0, 0, 239, 239, 239, 239, 239,
- 239, 17, 239, 345, 0, 217, 349, 0, 54, 45,
- 0, 54, 69, 227, 239, 239, 0, 239, 218, 219,
- 220, 221, 222, 223, 0, 224, 54, 286, 0, 0,
- 0, 289, 290, 291, 292, 293, 294, 295, 296, 297,
- 299, 300, 0, 0, 69, 0, 0, 0, 239, 203,
- 0, 239, 0, 0, 201, 199, 196, 200, 0, 202,
- 54, 203, 0, 0, 0, 0, 201, 199, 196, 200,
- 0, 202, 235, 0, 198, 0, 0, 0, 0, 0,
- 239, 217, 0, 0, 197, 0, 198, 0, 0, 346,
- 378, 379, 54, 0, 218, 219, 220, 221, 222, 223,
- 0, 224, 217, 217, 217, 217, 204, 0, 217, 217,
- 217, 217, 217, 217, 217, 217, 217, 217, 204, 0,
- 396, 55, 0, 397, 0, 0, 217, 217, 217, 217,
- 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
- 217, 217, 217, 217, 217, 217, 217, 55, 0, 217,
- 217, 217, 217, 217, 217, 217, 217, 217, 217, 217,
- 217, 217, 217, 0, 0, 0, 0, 0, 217, 217,
- 217, 217, 217, 217, 217, 217, 217, 217, 217, 0,
- 0, 217, 217, 217, 217, 0, 0, 217, 217, 0,
- 217, 0, 0, 217, 217, 217, 217, 217, 217, 217,
- 217, 217, 217, 217, 0, 0, 55, 217, 217, 217,
- 217, 0, 239, 239, 239, 239, 0, 0, 239, 239,
- 239, 239, 239, 239, 239, 239, 239, 239, 385, 0,
- 0, 54, 386, 387, 0, 0, 239, 239, 239, 239,
- 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
- 239, 239, 239, 239, 239, 239, 239, 54, 0, 239,
- 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
- 239, 239, 239, 0, 0, 0, 0, 0, 239, 239,
- 239, 239, 239, 239, 239, 239, 239, 239, 239, 213,
- 0, 239, 239, 239, 239, 0, 0, 239, 239, 0,
- 239, 0, 0, 239, 239, 239, 239, 239, 239, 239,
- 239, 239, 239, 239, 225, 0, 54, 239, 239, 239,
- 239, 0, 213, 0, 0, 188, 213, 0, 189, 213,
- 213, 213, 213, 213, 213, 0, 213, 0, 0, 0,
- 0, 0, 0, 47, 0, 0, 0, 0, 213, 213,
- 0, 213, 0, 0, 0, 0, 0, 0, 0, 48,
- 190, 191, 192, 193, 194, 195, 0, 0, 0, 0,
- 0, 0, 190, 191, 192, 193, 194, 195, 0, 0,
- 0, 0, 213, 0, 47, 213, 0, 47, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 214, 0,
- 48, 0, 47, 48, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 213, 0, 0, 0, 48, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 214, 0, 0, 0, 214, 47, 0, 214, 214,
- 214, 214, 214, 214, 0, 214, 0, 0, 0, 0,
- 0, 0, 48, 0, 0, 0, 0, 214, 214, 0,
- 214, 0, 0, 0, 0, 0, 0, 0, 47, 0,
- 203, 0, 0, 0, 0, 201, 199, 0, 200, 0,
- 202, 0, 0, 217, 48, 0, 0, 0, 0, 0,
- 0, 214, 0, 235, 214, 198, 218, 219, 220, 221,
- 222, 223, 0, 224, 0, 203, 0, 0, 0, 0,
- 201, 199, 196, 200, 0, 202, 0, 0, 0, 0,
- 0, 0, 0, 214, 0, 0, 0, 204, 235, 0,
- 198, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 213, 213, 213, 213,
- 0, 0, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 204, 0, 0, 0, 0, 0, 0, 0,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 0, 0, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 47, 0, 0,
- 0, 0, 213, 213, 213, 213, 213, 213, 213, 213,
- 213, 213, 213, 48, 0, 213, 213, 213, 213, 0,
- 0, 213, 213, 47, 213, 0, 0, 213, 213, 213,
- 213, 213, 213, 213, 213, 213, 213, 213, 0, 48,
- 0, 213, 213, 213, 213, 214, 214, 214, 214, 0,
- 0, 214, 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 0, 0, 0, 0, 0, 0, 0, 0, 214,
- 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 214, 214, 214,
- 0, 0, 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 0, 0, 0, 372,
- 0, 214, 214, 214, 214, 214, 214, 214, 214, 214,
- 214, 214, 215, 0, 214, 214, 214, 214, 0, 0,
- 214, 214, 0, 214, 0, 0, 214, 214, 214, 214,
- 214, 214, 214, 214, 214, 214, 214, 0, 0, 0,
- 214, 214, 214, 214, 0, 215, 0, 0, 0, 215,
- 0, 0, 215, 215, 215, 215, 215, 215, 0, 215,
- 0, 190, 191, 192, 193, 194, 195, 0, 184, 0,
- 0, 215, 215, 0, 215, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 203, 0, 0, 0, 0, 201,
- 199, 0, 200, 0, 202, 0, 233, 234, 192, 193,
- 194, 195, 0, 0, 0, 215, 0, 235, 215, 198,
- 0, 0, 0, 257, 258, 259, 0, 0, 0, 0,
- 0, 216, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 215, 285, 0,
- 0, 204, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 216, 0, 0, 0, 216, 0,
- 0, 216, 216, 216, 216, 216, 216, 0, 216, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 314,
- 216, 216, 0, 216, 0, 0, 0, 322, 0, 0,
- 203, 0, 0, 0, 0, 201, 199, 203, 200, 0,
- 202, 0, 201, 199, 0, 200, 0, 202, 0, 0,
- 0, 0, 0, 235, 216, 198, 0, 216, 0, 0,
- 235, 0, 198, 0, 0, 0, 0, 0, 0, 0,
- 203, 0, 0, 0, 0, 201, 199, 196, 200, 0,
- 202, 0, 0, 0, 0, 0, 216, 204, 0, 0,
- 0, 0, 0, 197, 204, 198, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 215,
- 215, 215, 215, 0, 0, 215, 215, 215, 215, 215,
- 215, 215, 215, 215, 215, 368, 0, 204, 0, 0,
- 0, 0, 0, 215, 215, 215, 215, 215, 215, 215,
- 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
- 215, 215, 215, 215, 0, 0, 215, 215, 215, 215,
- 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
- 0, 0, 0, 0, 0, 215, 215, 215, 215, 215,
- 215, 215, 215, 215, 215, 215, 0, 0, 215, 215,
- 215, 215, 390, 391, 215, 215, 0, 215, 0, 0,
- 215, 215, 215, 215, 215, 215, 215, 215, 215, 215,
- 215, 0, 0, 0, 215, 215, 215, 215, 216, 216,
- 216, 216, 0, 0, 216, 216, 216, 216, 216, 216,
- 216, 216, 216, 216, 0, 233, 234, 192, 193, 194,
- 195, 0, 216, 216, 216, 216, 216, 216, 216, 216,
- 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
- 216, 216, 216, 0, 0, 216, 216, 216, 216, 216,
- 216, 216, 216, 216, 216, 216, 216, 216, 216, 0,
- 0, 0, 404, 0, 216, 216, 216, 216, 216, 216,
- 216, 216, 216, 216, 216, 211, 0, 216, 216, 216,
- 216, 0, 0, 216, 216, 0, 216, 0, 0, 216,
- 216, 216, 216, 216, 216, 216, 216, 216, 216, 216,
- 0, 0, 0, 216, 216, 216, 216, 0, 211, 0,
- 0, 0, 0, 0, 188, 211, 211, 189, 211, 211,
- 211, 190, 191, 192, 193, 194, 195, 0, 190, 191,
- 192, 193, 194, 195, 211, 211, 0, 211, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 203, 0, 0,
- 0, 0, 201, 199, 0, 200, 0, 202, 0, 0,
- 0, 233, 234, 192, 193, 194, 195, 0, 211, 0,
- 235, 211, 198, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 212, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 211, 0, 0, 0, 204, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 212, 0, 0,
- 0, 0, 0, 0, 212, 212, 0, 212, 212, 212,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 212, 212, 0, 212, 0, 0, 0,
- 203, 0, 0, 0, 0, 201, 199, 0, 200, 0,
- 202, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 235, 0, 198, 0, 212, 0, 203,
- 212, 0, 0, 0, 201, 199, 0, 200, 0, 202,
- 0, 0, 0, 204, 0, 0, 0, 0, 204, 204,
- 204, 204, 235, 204, 198, 0, 0, 204, 0, 212,
- 0, 0, 0, 0, 0, 0, 204, 0, 204, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 211, 211, 211, 211, 204, 0, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 0, 0,
- 204, 0, 0, 0, 0, 0, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 0, 0, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 0, 0, 0, 0, 0, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 0,
- 0, 211, 211, 211, 211, 0, 0, 211, 211, 0,
- 211, 0, 0, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 0, 0, 264, 211, 211, 211,
- 211, 212, 212, 212, 212, 0, 0, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 0, 190, 0,
- 192, 193, 194, 195, 0, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 0, 0, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 0, 0, 0, 0, 0, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 232, 0,
- 212, 212, 212, 212, 0, 0, 212, 212, 0, 212,
- 0, 0, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 0, 0, 0, 212, 212, 212, 212,
- 0, 232, 0, 0, 0, 0, 0, 204, 232, 232,
- 204, 233, 232, 192, 193, 194, 195, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 232, 232, 0,
- 232, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 192, 193, 194, 195, 0, 0, 0, 0,
- 0, 0, 0, 0, 204, 204, 204, 204, 204, 204,
- 0, 232, 0, 0, 232, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 234, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 232, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 234, 52, 53, 0, 0, 0, 0, 234, 234, 0,
- 0, 234, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 234, 234, 0, 234,
- 0, 0, 0, 0, 0, 0, 0, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 234, 0, 0, 234, 0, 0, 77, 78, 79, 80,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 81, 82, 83, 84, 85, 0,
- 0, 0, 234, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 351, 0, 0, 0, 0, 232, 232, 232, 232, 0,
- 0, 232, 232, 232, 232, 232, 232, 232, 232, 232,
- 232, 0, 0, 0, 0, 0, 0, 0, 0, 232,
- 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
- 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
- 0, 0, 232, 232, 232, 232, 232, 232, 232, 232,
- 232, 232, 232, 232, 232, 232, 0, 0, 0, 0,
- 0, 232, 232, 232, 232, 232, 232, 232, 232, 232,
- 232, 232, 0, 0, 232, 232, 232, 232, 0, 0,
- 232, 232, 0, 232, 0, 0, 232, 232, 232, 232,
- 232, 232, 232, 232, 232, 232, 232, 213, 0, 0,
- 232, 232, 232, 232, 234, 234, 234, 234, 0, 0,
- 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
- 0, 0, 0, 0, 0, 0, 0, 0, 234, 234,
- 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
- 234, 234, 234, 234, 234, 234, 234, 234, 234, 0,
- 0, 234, 234, 234, 234, 234, 234, 234, 234, 234,
- 234, 234, 234, 234, 234, 0, 0, 0, 0, 0,
- 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
- 234, 233, 0, 234, 234, 234, 234, 0, 0, 234,
- 234, 0, 234, 0, 0, 234, 234, 234, 234, 234,
- 234, 234, 234, 234, 234, 234, 0, 0, 0, 234,
- 234, 234, 234, 0, 233, 52, 53, 0, 0, 0,
- 0, 233, 233, 0, 0, 233, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 233, 233, 0, 233, 0, 0, 0, 0, 0, 0,
- 0, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 233, 0, 0, 233, 0, 0,
- 77, 78, 79, 80, 0, 0, 0, 0, 0, 0,
- 231, 0, 0, 0, 0, 0, 0, 0, 81, 82,
- 83, 84, 85, 0, 0, 0, 233, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 231, 0, 0, 0, 0, 0, 0,
- 231, 231, 0, 0, 231, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 231,
- 231, 0, 231, 0, 0, 0, 0, 0, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 231, 0, 0, 231, 77, 78, 79,
- 80, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 81, 82, 83, 84, 85,
- 0, 0, 0, 0, 0, 231, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 233, 233,
- 233, 233, 0, 0, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 0, 0, 0, 0, 0, 0,
- 0, 0, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 0, 0, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 0,
- 0, 0, 0, 0, 233, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 0, 0, 233, 233, 233,
- 233, 0, 0, 233, 233, 0, 233, 0, 0, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 0, 0, 0, 233, 233, 233, 233, 231, 231, 231,
- 231, 0, 0, 231, 231, 231, 231, 231, 231, 231,
- 231, 231, 231, 0, 0, 0, 0, 0, 0, 0,
- 0, 231, 231, 231, 231, 231, 231, 231, 231, 231,
- 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
- 231, 231, 0, 0, 231, 231, 231, 231, 231, 231,
- 231, 231, 231, 231, 231, 231, 231, 231, 0, 0,
- 0, 0, 0, 231, 231, 231, 231, 231, 231, 231,
- 231, 231, 231, 231, 144, 0, 231, 231, 231, 231,
- 0, 0, 231, 231, 0, 231, 0, 0, 231, 231,
- 231, 231, 231, 231, 231, 231, 231, 231, 231, 0,
- 0, 0, 231, 231, 231, 231, 0, 144, 0, 0,
- 0, 0, 0, 0, 144, 144, 0, 144, 144, 144,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 144, 0, 0, 144, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 95, 0, 0, 0, 0,
- 0, 95, 0, 0, 0, 0, 0, 144, 0, 0,
- 144, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 236, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 144,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 236, 95, 0, 0,
- 0, 0, 0, 236, 236, 0, 0, 236, 0, 0,
- 0, 0, 95, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 236, 0, 0, 95, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 95, 95, 95, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 236, 0, 0, 236,
- 0, 0, 0, 0, 0, 0, 0, 283, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 236, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 95, 0,
- 0, 144, 144, 144, 144, 0, 95, 144, 0, 144,
- 144, 144, 144, 144, 144, 144, 144, 263, 0, 0,
- 0, 0, 0, 264, 0, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 0, 0, 0, 0, 144,
- 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
- 144, 144, 144, 144, 144, 144, 144, 144, 0, 0,
- 144, 144, 144, 144, 0, 0, 144, 144, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 144, 144,
- 144, 144, 144, 0, 95, 0, 144, 144, 144, 144,
- 236, 236, 236, 236, 0, 0, 236, 236, 236, 236,
- 236, 236, 236, 236, 236, 236, 0, 0, 0, 0,
- 0, 0, 0, 0, 236, 236, 236, 236, 236, 236,
- 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
- 236, 236, 236, 236, 236, 0, 0, 236, 236, 236,
- 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
- 236, 95, 95, 0, 0, 0, 236, 236, 236, 236,
- 236, 236, 236, 236, 236, 236, 236, 235, 0, 236,
- 236, 236, 236, 0, 0, 236, 236, 0, 236, 0,
- 0, 236, 236, 236, 236, 0, 0, 236, 236, 236,
- 236, 236, 0, 0, 0, 236, 236, 236, 236, 0,
- 235, 0, 0, 0, 0, 0, 0, 235, 235, 0,
- 0, 235, 0, 0, 260, 0, 0, 0, 0, 0,
- 261, 0, 0, 0, 0, 262, 235, 0, 52, 53,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 14, 0, 0, 0, 0, 0, 0, 0, 0,
- 235, 0, 0, 235, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 0, 145, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 235, 77, 78, 79, 80, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
- 14, 81, 82, 83, 84, 85, 145, 145, 0, 145,
- 145, 145, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 145, 0, 0, 145, 0,
- 0, 0, 0, 0, 14, 0, 0, 189, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
- 0, 0, 145, 0, 0, 0, 14, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 145, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 235, 235, 235, 235, 0, 0,
- 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
- 0, 0, 0, 0, 0, 0, 0, 0, 235, 235,
- 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
- 235, 235, 235, 235, 235, 235, 235, 235, 235, 0,
- 0, 235, 235, 235, 235, 235, 235, 235, 235, 235,
- 235, 235, 235, 235, 235, 0, 0, 0, 0, 0,
- 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
- 235, 0, 0, 235, 235, 235, 235, 0, 189, 235,
- 235, 0, 235, 0, 189, 235, 235, 235, 235, 189,
- 0, 235, 235, 235, 235, 235, 0, 0, 0, 235,
- 235, 235, 235, 145, 145, 145, 145, 0, 0, 145,
- 0, 145, 145, 145, 145, 145, 145, 145, 145, 0,
- 0, 0, 189, 0, 0, 0, 0, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 0, 0, 0,
- 0, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
- 237, 0, 145, 145, 145, 145, 0, 0, 145, 145,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 145, 145, 145, 145, 145, 0, 0, 0, 145, 145,
- 145, 145, 0, 237, 0, 0, 0, 0, 0, 0,
- 237, 237, 0, 0, 237, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 237,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 15, 0, 0, 0, 0, 0,
- 0, 0, 0, 237, 0, 0, 237, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 238,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 237, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 238, 15, 0, 0, 0, 0, 0, 238,
- 238, 0, 0, 238, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 238, 0,
- 0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
- 190, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 238, 0, 0, 238, 0, 0, 0, 15,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 238, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 237, 237, 237,
- 237, 0, 0, 237, 237, 237, 237, 237, 237, 237,
- 237, 237, 237, 0, 0, 0, 0, 0, 0, 0,
- 0, 237, 237, 237, 237, 237, 237, 237, 237, 237,
- 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
- 237, 237, 0, 0, 237, 237, 237, 237, 237, 237,
- 237, 237, 237, 237, 237, 237, 237, 237, 0, 0,
- 0, 0, 0, 237, 237, 237, 237, 237, 237, 237,
- 237, 237, 237, 237, 0, 0, 237, 237, 237, 237,
- 0, 190, 237, 237, 0, 237, 0, 190, 237, 237,
- 0, 0, 190, 0, 237, 237, 237, 237, 237, 0,
- 0, 0, 237, 237, 237, 237, 238, 238, 238, 238,
- 0, 0, 238, 238, 238, 238, 238, 238, 238, 238,
- 238, 238, 0, 0, 0, 190, 0, 0, 0, 0,
- 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
- 238, 238, 238, 238, 238, 238, 238, 238, 238, 238,
- 238, 0, 0, 238, 238, 238, 238, 238, 238, 238,
- 238, 238, 238, 238, 238, 238, 238, 0, 0, 0,
- 0, 0, 238, 238, 238, 238, 238, 238, 238, 238,
- 238, 238, 238, 131, 0, 238, 238, 238, 238, 0,
- 0, 238, 238, 0, 238, 0, 0, 0, 238, 0,
- 0, 0, 0, 238, 238, 238, 238, 238, 0, 0,
- 0, 238, 238, 238, 238, 0, 131, 0, 0, 0,
- 0, 0, 0, 131, 131, 0, 131, 131, 131, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 131, 0, 0, 131, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 131, 0, 0, 131,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 136, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 131, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 136, 0, 0, 0, 0,
- 0, 0, 136, 136, 0, 0, 136, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 136, 0, 0, 136, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 136, 0, 0, 136, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 136, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 131, 131, 131, 131, 0, 0, 131, 0, 131, 131,
- 131, 131, 131, 131, 131, 131, 0, 0, 0, 0,
- 0, 0, 0, 0, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 131, 131, 131, 0, 0, 0, 0, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
- 131, 0, 0, 0, 0, 0, 131, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 0, 0, 131,
- 131, 131, 131, 0, 0, 131, 131, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 131, 131, 131,
- 131, 131, 0, 0, 0, 131, 131, 131, 131, 136,
- 136, 136, 136, 0, 0, 136, 0, 136, 136, 136,
- 136, 136, 136, 136, 136, 0, 0, 0, 0, 0,
- 0, 0, 0, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 136, 136, 136, 0, 0, 0, 0, 136, 136, 136,
- 136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
- 0, 0, 0, 0, 0, 136, 136, 136, 136, 136,
- 136, 136, 136, 136, 136, 136, 140, 0, 136, 136,
- 136, 136, 0, 0, 136, 136, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 136, 136, 136, 136,
- 136, 0, 0, 0, 136, 136, 136, 136, 0, 140,
- 0, 0, 0, 0, 0, 0, 140, 140, 0, 0,
- 140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 140, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 140,
- 0, 0, 140, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 88, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 140, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,
- 0, 0, 0, 0, 0, 88, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 88, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,
- 0, 88, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 140, 140, 140, 140, 0, 0, 140,
- 0, 140, 140, 140, 140, 140, 140, 140, 140, 0,
- 0, 0, 0, 0, 0, 0, 0, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 0, 0, 0,
- 0, 140, 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 0, 0, 0, 0, 0, 140,
- 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
- 0, 0, 140, 140, 140, 140, 0, 0, 140, 140,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 140, 140, 140, 140, 140, 0, 0, 0, 140, 140,
- 140, 140, 88, 88, 88, 88, 0, 0, 88, 0,
- 88, 88, 88, 88, 88, 88, 88, 88, 0, 0,
- 0, 0, 0, 0, 0, 0, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 90, 0, 0, 0,
- 0, 88, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 0, 0, 0, 0, 0, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 90,
- 0, 88, 88, 88, 88, 0, 90, 88, 88, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,
- 88, 88, 88, 88, 0, 90, 0, 88, 88, 88,
- 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
- 0, 0, 90, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 92, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 90, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 92, 0,
- 0, 0, 0, 0, 0, 92, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 92, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 92, 0,
- 0, 92, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 92, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 90, 90, 90, 90, 0, 0, 90,
- 0, 90, 90, 90, 90, 90, 90, 90, 90, 0,
- 0, 0, 0, 0, 0, 0, 0, 90, 90, 90,
- 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 90, 90, 90, 90, 90, 0, 0, 0,
- 0, 0, 90, 90, 90, 90, 90, 90, 90, 90,
- 90, 90, 90, 90, 0, 0, 0, 0, 0, 90,
- 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
- 0, 0, 90, 90, 90, 90, 0, 0, 90, 90,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 90, 90, 90, 90, 90, 0, 0, 0, 90, 90,
- 90, 90, 92, 92, 92, 92, 0, 0, 92, 0,
- 92, 92, 92, 92, 92, 92, 92, 92, 0, 0,
- 0, 0, 0, 0, 0, 0, 92, 92, 92, 92,
- 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
- 92, 92, 92, 92, 92, 92, 96, 0, 0, 0,
- 0, 92, 92, 92, 92, 92, 92, 92, 92, 92,
- 92, 92, 92, 0, 0, 0, 0, 0, 92, 92,
- 92, 92, 92, 92, 92, 92, 92, 92, 92, 96,
- 0, 92, 92, 92, 92, 0, 96, 92, 92, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 92,
- 92, 92, 92, 92, 0, 96, 0, 92, 92, 92,
- 92, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 96,
- 0, 0, 96, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 94, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 96, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 94, 0,
- 0, 0, 0, 0, 0, 94, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 94, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 94, 0,
- 0, 94, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 94, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 96, 96, 96, 96, 0, 0, 96,
- 0, 96, 96, 96, 96, 96, 96, 96, 96, 0,
- 0, 0, 0, 0, 0, 0, 0, 96, 96, 96,
- 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
- 96, 96, 96, 96, 96, 96, 96, 0, 0, 0,
- 0, 0, 96, 96, 96, 96, 96, 96, 96, 96,
- 96, 96, 96, 96, 0, 0, 0, 0, 0, 96,
- 96, 96, 96, 96, 96, 96, 96, 96, 96, 96,
- 0, 0, 96, 96, 96, 96, 0, 0, 96, 96,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 96, 96, 96, 96, 96, 0, 0, 0, 96, 96,
- 96, 96, 94, 94, 94, 94, 0, 0, 94, 0,
- 94, 94, 94, 94, 94, 94, 94, 94, 0, 0,
- 0, 0, 0, 0, 0, 0, 94, 94, 94, 94,
- 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
- 94, 94, 94, 94, 94, 94, 84, 0, 0, 0,
- 0, 94, 94, 94, 94, 94, 94, 94, 94, 94,
- 94, 94, 94, 0, 0, 0, 0, 0, 94, 94,
- 94, 94, 94, 94, 94, 94, 94, 94, 94, 84,
- 0, 94, 94, 94, 94, 0, 84, 94, 94, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 94,
- 94, 94, 94, 94, 0, 84, 0, 94, 94, 94,
- 94, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,
- 0, 0, 84, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 85, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 84, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 85, 0,
- 0, 0, 0, 0, 0, 85, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 85, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 85, 0,
- 0, 85, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 84, 84, 84, 84, 0, 0, 84,
- 0, 84, 84, 84, 84, 84, 84, 84, 84, 0,
- 0, 0, 0, 0, 0, 0, 0, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 84, 84, 84, 0, 0, 0,
- 0, 0, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 0, 0, 0, 0, 0, 84,
- 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
- 0, 0, 84, 84, 84, 84, 0, 0, 84, 84,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 84, 84, 84, 84, 84, 0, 0, 0, 84, 84,
- 84, 84, 85, 85, 85, 85, 0, 0, 85, 0,
- 85, 85, 85, 85, 85, 85, 85, 85, 0, 0,
- 0, 0, 0, 0, 0, 0, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 86, 0, 0, 0,
- 0, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 85, 0, 0, 0, 0, 0, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 86,
- 0, 85, 85, 85, 85, 0, 86, 85, 85, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 85,
- 85, 85, 85, 85, 0, 86, 0, 85, 85, 85,
- 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 86,
- 0, 0, 86, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 87, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 86, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 87, 0,
- 0, 0, 0, 0, 0, 87, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 87, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 87, 0,
- 0, 87, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 87, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 86, 86, 86, 86, 0, 0, 86,
- 0, 86, 86, 86, 86, 86, 86, 86, 86, 0,
- 0, 0, 0, 0, 0, 0, 0, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 86, 86, 86, 0, 0, 0,
- 0, 0, 86, 86, 86, 86, 86, 86, 86, 86,
- 86, 86, 86, 86, 0, 0, 0, 0, 0, 86,
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
- 0, 0, 86, 86, 86, 86, 0, 0, 86, 86,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 86, 86, 86, 86, 86, 0, 0, 0, 86, 86,
- 86, 86, 87, 87, 87, 87, 0, 0, 87, 0,
- 87, 87, 87, 87, 87, 87, 87, 87, 0, 0,
- 0, 0, 0, 0, 0, 0, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 97, 0, 0, 0,
- 0, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 0, 0, 0, 0, 0, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 97,
- 0, 87, 87, 87, 87, 0, 97, 87, 87, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
- 87, 87, 87, 87, 0, 97, 0, 87, 87, 87,
- 87, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 97,
- 0, 0, 97, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 97, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 98, 0,
- 0, 0, 0, 0, 0, 98, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 98, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 98, 0,
- 0, 98, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 98, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 97, 97, 97, 97, 0, 0, 97,
- 0, 97, 97, 97, 97, 97, 97, 97, 97, 0,
- 0, 0, 0, 0, 0, 0, 0, 97, 97, 97,
- 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97, 97, 0, 0, 0,
- 0, 0, 97, 97, 97, 97, 97, 97, 97, 97,
- 97, 97, 97, 97, 0, 0, 0, 0, 0, 97,
- 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
- 0, 0, 97, 97, 97, 97, 0, 0, 97, 97,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 97, 97, 97, 97, 97, 0, 0, 0, 97, 97,
- 97, 97, 98, 98, 98, 98, 0, 0, 98, 0,
- 98, 98, 98, 98, 98, 98, 98, 98, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 98, 98, 98,
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
- 98, 98, 98, 98, 98, 98, 99, 0, 0, 0,
- 0, 98, 98, 98, 98, 98, 98, 98, 98, 98,
- 98, 98, 98, 0, 0, 0, 0, 0, 98, 98,
- 98, 98, 98, 98, 98, 98, 98, 98, 98, 99,
- 0, 98, 98, 98, 98, 0, 99, 98, 98, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 98,
- 98, 98, 98, 98, 0, 99, 0, 98, 98, 98,
- 98, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,
- 0, 0, 99, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 105, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 99, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 105, 0,
- 0, 0, 0, 0, 0, 105, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 105, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 105, 0,
- 0, 105, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 99, 99, 99, 99, 0, 0, 99,
- 0, 99, 99, 99, 99, 99, 99, 99, 99, 0,
- 0, 0, 0, 0, 0, 0, 0, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 0, 0, 0,
- 0, 0, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 0, 0, 0, 0, 0, 99,
- 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 0, 0, 99, 99, 99, 99, 0, 0, 99, 99,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 99, 99, 99, 99, 99, 0, 0, 0, 99, 99,
- 99, 99, 105, 105, 105, 105, 0, 0, 105, 0,
- 105, 105, 105, 105, 105, 105, 105, 105, 0, 0,
- 0, 0, 0, 0, 0, 0, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 107, 0, 0, 0,
- 0, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 0, 0, 0, 0, 0, 105, 105,
- 105, 105, 105, 105, 105, 105, 105, 105, 105, 107,
- 0, 105, 105, 105, 105, 0, 107, 105, 105, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 105,
- 105, 105, 105, 105, 0, 107, 0, 105, 105, 105,
- 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 107,
- 0, 0, 107, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 107, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 111, 0,
- 0, 0, 0, 0, 0, 111, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 111, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 111, 0,
- 0, 111, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 111, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 107, 107, 107, 107, 0, 0, 107,
- 0, 107, 107, 107, 107, 107, 107, 107, 107, 0,
- 0, 0, 0, 0, 0, 0, 0, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 107, 107, 107, 0, 0, 0,
- 0, 0, 107, 107, 107, 107, 107, 107, 107, 107,
- 107, 107, 107, 107, 0, 0, 0, 0, 0, 107,
- 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
- 0, 0, 107, 107, 107, 107, 0, 0, 107, 107,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 107, 107, 107, 107, 107, 0, 0, 0, 107, 107,
- 107, 107, 111, 111, 111, 111, 0, 0, 111, 0,
- 111, 111, 111, 111, 111, 111, 111, 111, 0, 0,
- 0, 0, 0, 0, 0, 0, 111, 111, 111, 111,
- 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 111, 111, 111, 124, 0, 0, 0,
- 0, 111, 111, 111, 111, 111, 111, 111, 111, 111,
- 111, 111, 111, 0, 0, 0, 0, 0, 111, 111,
- 111, 111, 111, 111, 111, 111, 111, 111, 111, 124,
- 0, 111, 111, 111, 111, 0, 124, 111, 111, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 111,
- 111, 111, 111, 111, 0, 124, 0, 111, 111, 111,
- 111, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 124,
- 0, 0, 124, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 109, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 124, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 109, 0,
- 0, 0, 0, 0, 0, 109, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 109, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 109, 0,
- 0, 109, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 124, 124, 124, 124, 0, 0, 124,
- 0, 124, 124, 124, 124, 124, 124, 124, 124, 0,
- 0, 0, 0, 0, 0, 0, 0, 124, 124, 124,
- 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
- 124, 124, 124, 124, 124, 124, 124, 0, 0, 0,
- 0, 0, 124, 124, 124, 124, 124, 124, 124, 124,
- 124, 124, 124, 124, 0, 0, 0, 0, 0, 124,
- 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
- 0, 0, 124, 124, 124, 124, 0, 0, 124, 124,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 124, 124, 124, 124, 124, 0, 0, 0, 124, 124,
- 124, 124, 109, 109, 109, 109, 0, 0, 109, 0,
- 109, 109, 109, 109, 109, 109, 109, 109, 0, 0,
- 0, 0, 0, 0, 0, 0, 109, 109, 109, 109,
- 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
- 109, 109, 109, 109, 109, 109, 0, 0, 0, 0,
- 0, 109, 109, 109, 109, 109, 109, 109, 109, 109,
- 109, 109, 109, 0, 0, 0, 0, 0, 109, 109,
- 109, 109, 109, 109, 109, 109, 109, 109, 109, 142,
- 0, 109, 109, 109, 109, 0, 0, 109, 109, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 109,
- 109, 109, 109, 109, 0, 0, 0, 109, 109, 109,
- 109, 0, 142, 0, 0, 0, 0, 0, 0, 142,
- 142, 0, 142, 142, 142, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 142, 0,
- 0, 142, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 168, 0, 0, 0,
- 0, 0, 142, 0, 0, 142, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
- 0, 0, 0, 0, 142, 0, 168, 168, 0, 0,
- 168, 168, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 168, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
- 0, 0, 168, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 168, 0, 40, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,
- 0, 0, 0, 40, 0, 0, 142, 142, 142, 142,
- 0, 0, 142, 0, 142, 142, 142, 142, 142, 142,
- 142, 142, 40, 0, 0, 0, 0, 0, 0, 0,
- 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
- 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
- 0, 0, 0, 0, 142, 142, 40, 0, 0, 40,
- 0, 0, 0, 0, 0, 0, 0, 142, 142, 142,
- 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
- 142, 142, 142, 0, 0, 0, 0, 0, 40, 0,
- 0, 142, 142, 168, 168, 168, 168, 0, 0, 168,
- 0, 168, 168, 168, 168, 168, 168, 0, 0, 0,
- 0, 142, 142, 142, 142, 0, 0, 168, 168, 168,
- 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
- 168, 168, 168, 168, 168, 168, 168, 0, 0, 0,
- 0, 0, 168, 231, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
- 168, 168, 168, 168, 168, 168, 168, 168, 168, 168,
- 0, 0, 0, 0, 0, 0, 231, 0, 168, 168,
- 0, 0, 0, 231, 231, 0, 0, 231, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 168, 168,
- 168, 168, 231, 231, 0, 231, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 40, 40, 40, 40, 0, 0, 40, 0, 0, 0,
- 0, 40, 0, 0, 40, 40, 231, 0, 0, 231,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 42, 0, 0, 0, 231, 40,
- 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 0, 0, 0, 0, 0, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 40, 40, 42, 0, 40,
- 40, 40, 40, 0, 42, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 40, 40, 40,
- 40, 40, 0, 42, 0, 0, 0, 0, 40, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 42, 0, 0,
- 42, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 95, 0, 0, 0, 0, 42,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 231, 231, 231, 231, 0, 0, 231, 0, 0, 0,
- 0, 231, 0, 0, 231, 231, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 95, 0, 0, 0, 0, 0, 231,
- 231, 231, 231, 231, 231, 231, 231, 231, 231, 231,
- 231, 0, 0, 0, 0, 0, 231, 231, 231, 231,
- 231, 231, 231, 231, 231, 231, 231, 95, 0, 231,
- 231, 231, 231, 0, 0, 0, 0, 0, 0, 0,
- 93, 231, 231, 231, 231, 231, 231, 231, 231, 231,
- 231, 231, 0, 0, 0, 0, 0, 0, 231, 95,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 42, 42, 42, 42, 0, 0, 42, 0, 0,
- 0, 0, 42, 0, 0, 42, 42, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 0, 93, 0, 0, 0, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 89, 0,
- 42, 42, 42, 42, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 93, 0, 0, 42, 42,
- 42, 42, 42, 0, 0, 0, 0, 0, 0, 42,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 91,
- 0, 0, 0, 0, 95, 0, 0, 0, 0, 95,
- 95, 95, 0, 95, 95, 95, 95, 89, 0, 0,
- 0, 0, 0, 0, 0, 95, 95, 95, 95, 95,
- 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
- 95, 95, 95, 95, 95, 189, 0, 0, 0, 0,
- 0, 89, 0, 0, 0, 0, 0, 0, 91, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 89, 0, 0, 95, 95, 0, 0,
- 0, 0, 91, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 95, 95, 95, 95,
- 93, 104, 0, 0, 0, 93, 93, 93, 0, 93,
- 93, 93, 93, 0, 91, 0, 0, 0, 0, 0,
- 0, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 190, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 104, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 93, 93, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 104, 0, 0, 0, 0, 0,
- 0, 0, 93, 93, 93, 93, 0, 0, 89, 106,
- 0, 0, 0, 89, 89, 89, 0, 89, 89, 89,
- 89, 0, 0, 0, 0, 0, 104, 0, 0, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 91,
- 110, 0, 0, 0, 91, 91, 91, 0, 91, 91,
- 91, 91, 0, 0, 0, 0, 0, 0, 106, 0,
- 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
- 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
- 89, 89, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 106, 0, 0, 0, 0, 0, 0, 110,
- 89, 89, 89, 89, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 91, 91, 0, 106, 0, 0, 0, 0, 0,
- 0, 0, 0, 110, 0, 0, 0, 0, 0, 0,
- 0, 91, 91, 91, 91, 0, 0, 108, 0, 147,
- 0, 104, 0, 0, 0, 0, 104, 104, 104, 0,
- 104, 104, 104, 104, 0, 110, 0, 0, 0, 0,
- 0, 0, 104, 104, 104, 104, 104, 104, 104, 104,
- 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
- 104, 104, 147, 0, 147, 147, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 108, 0, 147, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 104, 104, 0, 0, 0, 0, 0,
- 108, 0, 147, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 104, 104, 104, 104, 0, 0, 106,
- 0, 0, 0, 0, 106, 106, 106, 0, 106, 106,
- 106, 106, 108, 0, 147, 0, 0, 0, 0, 0,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
- 110, 0, 0, 0, 0, 110, 110, 110, 0, 110,
- 110, 110, 110, 0, 0, 0, 0, 0, 0, 0,
- 0, 110, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 106, 106, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 80, 0, 0, 0,
- 0, 106, 106, 106, 106, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 110, 110, 0, 0, 0, 0, 0, 80,
- 0, 0, 0, 0, 0, 0, 80, 0, 0, 0,
- 0, 0, 110, 110, 110, 110, 0, 108, 0, 0,
- 0, 0, 108, 108, 108, 80, 108, 108, 108, 108,
- 147, 147, 0, 0, 0, 0, 0, 0, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 0, 80,
- 0, 0, 80, 0, 0, 0, 147, 147, 147, 147,
- 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
- 147, 147, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 80, 0, 0, 0, 147, 147, 147, 147, 108,
- 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 89, 0, 147, 147, 147, 147, 147, 86, 108,
- 108, 108, 108, 88, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,
- 0, 0, 0, 0, 87, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 31, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 80, 80, 80, 0, 0, 0, 80,
- 0, 80, 80, 80, 80, 80, 80, 80, 80, 0,
- 0, 0, 0, 0, 0, 0, 0, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 0, 0, 0,
- 0, 0, 80, 80, 80, 80, 80, 80, 80, 80,
- 80, 80, 80, 80, 0, 0, 0, 0, 0, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
- 0, 0, 80, 80, 80, 80, 6, 0, 80, 80,
- 0, 0, 0, 6, 0, 0, 0, 0, 6, 0,
- 80, 80, 80, 80, 80, 0, 0, 0, 80, 80,
- 80, 0, 0, 0, 0, 278, 279, 49, 8, 9,
- 0, 50, 0, 0, 0, 0, 51, 10, 11, 280,
- 281, 14, 15, 16, 17, 18, 19, 20, 21, 0,
- 0, 0, 0, 0, 6, 0, 0, 0, 0, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 6, 0, 0, 0,
- 0, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 22, 0, 77, 78, 79, 80, 23, 24,
- 0, 0, 25, 0, 26, 0, 0, 0, 0, 0,
- 0, 0, 81, 82, 83, 84, 85, 27, 89, 28,
- 0, 0, 0, 29, 30, 104, 0, 0, 0, 0,
- 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 87, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 6, 6, 6, 6, 6, 0, 6, 0, 0, 0,
- 0, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 6, 6, 6, 0, 105, 0, 0, 0, 0,
- 0, 0, 104, 298, 0, 0, 0, 88, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 6, 0, 0, 0, 0, 0, 6, 6, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 0, 6,
- 6, 6, 6, 6, 6, 0, 0, 6, 87, 6,
- 0, 0, 0, 0, 0, 0, 0, 6, 6, 6,
- 6, 6, 6, 0, 6, 0, 0, 0, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 47, 48, 49, 8, 0, 0, 50, 0,
- 120, 121, 122, 51, 123, 124, 125, 126, 0, 0,
- 0, 0, 0, 0, 0, 0, 127, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 0, 0, 0, 0,
- 0, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 0, 0, 0, 0, 0, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 89,
- 0, 77, 78, 79, 80, 0, 86, 147, 148, 0,
- 0, 88, 0, 0, 0, 0, 0, 0, 0, 81,
- 82, 83, 84, 85, 0, 0, 0, 149, 150, 151,
- 29, 0, 0, 0, 0, 0, 0, 0, 0, 47,
- 48, 49, 8, 0, 0, 50, 0, 0, 0, 0,
- 51, 0, 0, 52, 53, 0, 0, 0, 0, 0,
- 0, 0, 87, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 0, 0, 0, 0, 0, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 105, 0, 77, 78,
- 79, 80, 0, 104, 0, 0, 0, 0, 88, 0,
- 0, 0, 0, 0, 0, 0, 81, 82, 83, 84,
- 85, 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, 87,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 47, 48, 49, 8, 0, 0, 50,
- 0, 0, 0, 0, 51, 0, 0, 52, 53, 0,
- 0, 0, 0, 105, 0, 0, 0, 0, 0, 0,
- 86, 0, 0, 0, 0, 88, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 0, 0, 0, 0, 0, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 0, 0, 77, 78, 79, 80, 87, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 81, 82, 83, 84, 85, 0, 0, 0, 0, 0,
- 0, 29, 0, 0, 0, 0, 0, 0, 0, 0,
- 47, 48, 49, 8, 0, 0, 50, 0, 0, 0,
- 0, 51, 0, 0, 52, 53, 0, 0, 0, 0,
- 105, 0, 0, 0, 0, 0, 0, 269, 0, 0,
- 0, 0, 88, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 0, 0, 0, 0, 0, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 0, 0, 77,
- 78, 79, 80, 87, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 81, 82, 83,
- 84, 85, 0, 0, 0, 0, 0, 0, 29, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 89, 0, 47, 48, 49,
- 8, 0, 104, 50, 407, 0, 0, 88, 51, 0,
- 0, 52, 53, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 87, 0,
- 0, 0, 0, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 0, 0, 77, 78, 79, 80,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 81, 82, 83, 84, 85, 89,
- 0, 0, 0, 0, 0, 29, 104, 0, 0, 0,
- 0, 88, 0, 0, 47, 48, 49, 8, 0, 0,
- 50, 0, 0, 0, 0, 51, 0, 0, 52, 53,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 40, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 87, 54, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 0, 32, 0, 0, 0,
- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
- 76, 0, 0, 77, 78, 79, 80, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 31, 0,
- 0, 81, 82, 83, 84, 85, 0, 89, 0, 47,
- 48, 49, 29, 0, 86, 50, 0, 0, 0, 88,
- 51, 0, 0, 52, 53, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 54, 55,
- 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 87, 0, 0, 0, 0, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 0, 0, 77, 78,
- 79, 80, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 81, 82, 83, 84,
- 85, 89, 0, 47, 48, 49, 0, 0, 269, 50,
- 0, 0, 0, 88, 51, 0, 0, 52, 53, 0,
- 0, 0, 6, 7, 0, 8, 9, 0, 0, 0,
- 0, 0, 0, 0, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 0, 0, 0, 0,
- 0, 0, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 64, 65, 87, 0, 0, 0, 0, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 0, 0, 77, 78, 79, 80, 89, 0, 0, 0,
- 0, 0, 0, 104, 0, 0, 0, 0, 88, 22,
- 81, 82, 83, 84, 85, 23, 24, 0, 0, 25,
- 0, 26, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 47, 48, 49, 27, 0, 28, 50, 0, 0,
- 29, 30, 51, 0, 0, 52, 53, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 87,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 0, 0, 0, 0, 0, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 0, 0,
- 77, 78, 79, 80, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 81, 82,
- 83, 84, 85, 0, 0, 47, 48, 49, 0, 0,
- 0, 50, 0, 0, 32, 0, 51, 0, 0, 52,
- 53, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
- 6, 0, 0, 0, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 0, 0, 0, 0,
- 0, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 6, 0, 77, 78, 79, 80, 0, 0,
- 47, 48, 49, 0, 0, 0, 50, 0, 0, 0,
- 0, 51, 81, 82, 83, 84, 85, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 0, 0, 0, 0, 0, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 0, 0, 77,
- 78, 79, 80, 0, 0, 0, 0, 0, 0, 0,
- 6, 7, 0, 8, 9, 0, 0, 81, 82, 83,
- 84, 85, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 6, 6, 0, 6,
- 6, 0, 0, 0, 0, 0, 0, 0, 6, 6,
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 22, 0, 0,
- 0, 0, 0, 23, 24, 0, 0, 25, 0, 26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 27, 0, 28, 0, 0, 0, 29, 30,
- 0, 0, 0, 6, 0, 0, 0, 0, 0, 6,
- 6, 0, 0, 6, 0, 6, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 6, 0,
- 6, 0, 0, 0, 6, 6,
-};
-short yycheck[] = { 24,
- 43, 0, 45, 28, 119, 30, 94, 44, 37, 260,
- 58, 36, 4, 42, 43, 105, 45, 37, 47, 43,
- 44, 45, 42, 43, 99, 45, 0, 47, 0, 260,
- 0, 60, 24, 62, 96, 0, 35, 0, 30, 258,
- 37, 156, 41, 101, 36, 42, 43, 96, 45, 43,
- 47, 45, 58, 348, 349, 61, 114, 271, 272, 41,
- 258, 86, 44, 88, 89, 94, 96, 86, 62, 41,
- 350, 351, 44, 41, 94, 43, 101, 45, 41, 41,
- 105, 44, 44, 59, 335, 134, 43, 59, 45, 114,
- 43, 44, 45, 0, 59, 0, 59, 94, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 101,
- 135, 115, 116, 138, 139, 140, 135, 59, 206, 93,
- 112, 93, 114, 93, 149, 150, 33, 119, 93, 40,
- 93, 156, 347, 40, 365, 61, 41, 262, 45, 44,
- 354, 355, 335, 233, 234, 40, 40, 237, 238, 40,
- 40, 125, 40, 125, 59, 125, 43, 44, 45, 40,
- 125, 40, 125, 40, 156, 190, 191, 192, 193, 194,
- 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
- 205, 0, 40, 0, 91, 40, 261, 262, 93, 96,
- 215, 216, 40, 61, 37, 257, 215, 216, 290, 42,
- 43, 263, 45, 0, 47, 230, 268, 260, 233, 234,
- 235, 260, 237, 238, 263, 262, 123, 60, 267, 62,
- 125, 258, 41, 0, 258, 44, 43, 257, 45, 271,
- 272, 260, 0, 263, 41, 41, 37, 264, 268, 301,
- 59, 42, 59, 94, 269, 302, 47, 239, 240, 257,
- 269, 94, 244, 318, 319, 320, 321, 322, 46, 93,
- 37, 376, 305, 125, 41, 42, 43, 44, 45, 93,
- 47, 346, 262, 257, 93, 43, 93, 45, 303, 262,
- 41, 301, 59, 60, 304, 62, 41, 44, 41, 41,
- 41, 59, 264, 94, 91, 44, 44, 41, 347, 348,
- 41, 264, 41, 303, 348, 257, 125, 262, 125, 44,
- 360, 304, 354, 355, 260, 41, 93, 41, 290, 348,
- 349, 350, 351, 352, 353, 93, 123, 290, 377, 301,
- 41, 380, 304, 41, 345, 262, 365, 0, 301, 41,
- 345, 304, 345, 345, 156, 370, 371, 372, 125, 374,
- 257, 258, 259, 260, 261, 30, 263, 125, 35, 264,
- 382, 268, 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, -1, -1, 348, 349, -1, 404,
- -1, -1, 407, -1, 376, 290, 349, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 0, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, 0, -1, -1, -1, -1, 323, 324, 325, 326,
- 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
- 337, 338, 339, 340, 341, -1, -1, 344, -1, 346,
- -1, -1, 0, 348, 349, 264, 91, 354, 355, 356,
- 357, 358, 359, 0, 361, 0, -1, 59, 365, 366,
- 257, 258, -1, 260, 261, -1, 0, 0, -1, -1,
- 59, 290, 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, -1, -1, 0, 264, 33, -1,
- -1, 93, 37, -1, 0, 40, 41, 42, 43, 44,
- 45, 59, 47, -1, 93, 26, -1, -1, 41, 352,
- 353, 44, 59, 290, 59, 60, -1, 62, -1, -1,
- -1, 42, 91, 125, 301, 59, 59, 304, -1, 0,
- 349, -1, -1, -1, -1, 93, 125, 334, -1, -1,
- -1, -1, -1, 340, 341, 59, 93, 344, 93, 346,
- -1, 96, -1, 59, -1, -1, -1, -1, -1, 93,
- 93, -1, 359, -1, 361, 0, 87, 125, 365, 366,
- -1, 348, 349, 350, 351, 352, 353, 0, 125, 93,
- 125, -1, -1, -1, -1, -1, -1, 93, 59, -1,
- -1, 125, 125, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, 37, -1, -1, 40, 41, 42, 43, 44,
- 45, 125, 47, 260, -1, 260, 263, -1, 41, 125,
- -1, 44, 93, 268, 59, 60, -1, 62, 273, 274,
- 275, 276, 277, 278, -1, 280, 59, 158, -1, -1,
- -1, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 171, 172, -1, -1, 125, -1, -1, -1, 93, 37,
- -1, 96, -1, -1, 42, 43, 44, 45, -1, 47,
- 93, 37, -1, -1, -1, -1, 42, 43, 44, 45,
- -1, 47, 60, -1, 62, -1, -1, -1, -1, -1,
- 125, 260, -1, -1, 60, -1, 62, -1, -1, 268,
- 347, 348, 125, -1, 273, 274, 275, 276, 277, 278,
- -1, 280, 257, 258, 259, 260, 94, -1, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 94, -1,
- 377, 264, -1, 380, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 290, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, -1,
- -1, 336, 337, 338, 339, -1, -1, 342, 343, -1,
- 345, -1, -1, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, -1, -1, 349, 362, 363, 364,
- 365, -1, 257, 258, 259, 260, -1, -1, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 359, -1,
- -1, 264, 363, 364, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 290, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 0,
- -1, 336, 337, 338, 339, -1, -1, 342, 343, -1,
- 345, -1, -1, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, 91, -1, 349, 362, 363, 364,
- 365, -1, 33, -1, -1, 301, 37, -1, 304, 40,
- 41, 42, 43, 44, 45, -1, 47, -1, -1, -1,
- -1, -1, -1, 0, -1, -1, -1, -1, 59, 60,
- -1, 62, -1, -1, -1, -1, -1, -1, -1, 0,
- 348, 349, 350, 351, 352, 353, -1, -1, -1, -1,
- -1, -1, 348, 349, 350, 351, 352, 353, -1, -1,
- -1, -1, 93, -1, 41, 96, -1, 44, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 0, -1,
- 41, -1, 59, 44, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 125, -1, -1, -1, 59, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 33, -1, -1, -1, 37, 93, -1, 40, 41,
- 42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, 93, -1, -1, -1, -1, 59, 60, -1,
- 62, -1, -1, -1, -1, -1, -1, -1, 125, -1,
- 37, -1, -1, -1, -1, 42, 43, -1, 45, -1,
- 47, -1, -1, 260, 125, -1, -1, -1, -1, -1,
- -1, 93, -1, 60, 96, 62, 273, 274, 275, 276,
- 277, 278, -1, 280, -1, 37, -1, -1, -1, -1,
- 42, 43, 44, 45, -1, 47, -1, -1, -1, -1,
- -1, -1, -1, 125, -1, -1, -1, 94, 60, -1,
- 62, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 257, 258, 259, 260,
- -1, -1, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 94, -1, -1, -1, -1, -1, -1, -1,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, -1, -1, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, 317, 264, -1, -1,
- -1, -1, 323, 324, 325, 326, 327, 328, 329, 330,
- 331, 332, 333, 264, -1, 336, 337, 338, 339, -1,
- -1, 342, 343, 290, 345, -1, -1, 348, 349, 350,
- 351, 352, 353, 354, 355, 356, 357, 358, -1, 290,
- -1, 362, 363, 364, 365, 257, 258, 259, 260, -1,
- -1, 263, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, -1, -1, -1, -1, -1, -1, -1, -1, 281,
- 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
- 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
- -1, -1, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 317, -1, -1, -1, 286,
- -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
- 332, 333, 0, -1, 336, 337, 338, 339, -1, -1,
- 342, 343, -1, 345, -1, -1, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, -1, -1, -1,
- 362, 363, 364, 365, -1, 33, -1, -1, -1, 37,
- -1, -1, 40, 41, 42, 43, 44, 45, -1, 47,
- -1, 348, 349, 350, 351, 352, 353, -1, 86, -1,
- -1, 59, 60, -1, 62, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 37, -1, -1, -1, -1, 42,
- 43, -1, 45, -1, 47, -1, 348, 349, 350, 351,
- 352, 353, -1, -1, -1, 93, -1, 60, 96, 62,
- -1, -1, -1, 131, 132, 133, -1, -1, -1, -1,
- -1, 0, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 125, 156, -1,
- -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 33, -1, -1, -1, 37, -1,
- -1, 40, 41, 42, 43, 44, 45, -1, 47, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 197,
- 59, 60, -1, 62, -1, -1, -1, 205, -1, -1,
- 37, -1, -1, -1, -1, 42, 43, 37, 45, -1,
- 47, -1, 42, 43, -1, 45, -1, 47, -1, -1,
- -1, -1, -1, 60, 93, 62, -1, 96, -1, -1,
- 60, -1, 62, -1, -1, -1, -1, -1, -1, -1,
- 37, -1, -1, -1, -1, 42, 43, 44, 45, -1,
- 47, -1, -1, -1, -1, -1, 125, 94, -1, -1,
- -1, -1, -1, 60, 94, 62, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
- 258, 259, 260, -1, -1, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 303, -1, 94, -1, -1,
- -1, -1, -1, 281, 282, 283, 284, 285, 286, 287,
- 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
- 298, 299, 300, 301, -1, -1, 304, 305, 306, 307,
- 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
- -1, -1, -1, -1, -1, 323, 324, 325, 326, 327,
- 328, 329, 330, 331, 332, 333, -1, -1, 336, 337,
- 338, 339, 370, 371, 342, 343, -1, 345, -1, -1,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
- 358, -1, -1, -1, 362, 363, 364, 365, 257, 258,
- 259, 260, -1, -1, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, -1, 348, 349, 350, 351, 352,
- 353, -1, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 301, -1, -1, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 316, 317, -1,
- -1, -1, 289, -1, 323, 324, 325, 326, 327, 328,
- 329, 330, 331, 332, 333, 0, -1, 336, 337, 338,
- 339, -1, -1, 342, 343, -1, 345, -1, -1, 348,
- 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
- -1, -1, -1, 362, 363, 364, 365, -1, 33, -1,
- -1, -1, -1, -1, 301, 40, 41, 304, 43, 44,
- 45, 348, 349, 350, 351, 352, 353, -1, 348, 349,
- 350, 351, 352, 353, 59, 60, -1, 62, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 37, -1, -1,
- -1, -1, 42, 43, -1, 45, -1, 47, -1, -1,
- -1, 348, 349, 350, 351, 352, 353, -1, 93, -1,
- 60, 96, 62, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 0, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, -1, -1, -1, 94, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 33, -1, -1,
- -1, -1, -1, -1, 40, 41, -1, 43, 44, 45,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 59, 60, -1, 62, -1, -1, -1,
- 37, -1, -1, -1, -1, 42, 43, -1, 45, -1,
- 47, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 60, -1, 62, -1, 93, -1, 37,
- 96, -1, -1, -1, 42, 43, -1, 45, -1, 47,
- -1, -1, -1, 37, -1, -1, -1, -1, 42, 43,
- 44, 45, 60, 47, 62, -1, -1, 94, -1, 125,
- -1, -1, -1, -1, -1, -1, 60, -1, 62, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 257, 258, 259, 260, 94, -1, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, -1, -1,
- 94, -1, -1, -1, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, -1, -1, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, -1,
- -1, 336, 337, 338, 339, -1, -1, 342, 343, -1,
- 345, -1, -1, 348, 349, 350, 351, 352, 353, 354,
- 355, 356, 357, 358, -1, -1, 46, 362, 363, 364,
- 365, 257, 258, 259, 260, -1, -1, 263, 264, 265,
- 266, 267, 268, 269, 270, 271, 272, -1, 348, -1,
- 350, 351, 352, 353, -1, 281, 282, 283, 284, 285,
- 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
- 296, 297, 298, 299, 300, 301, -1, -1, 304, 305,
- 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- 316, 317, -1, -1, -1, -1, -1, 323, 324, 325,
- 326, 327, 328, 329, 330, 331, 332, 333, 0, -1,
- 336, 337, 338, 339, -1, -1, 342, 343, -1, 345,
- -1, -1, 348, 349, 350, 351, 352, 353, 354, 355,
- 356, 357, 358, -1, -1, -1, 362, 363, 364, 365,
- -1, 33, -1, -1, -1, -1, -1, 301, 40, 41,
- 304, 348, 44, 350, 351, 352, 353, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 59, 60, -1,
- 62, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 350, 351, 352, 353, -1, -1, -1, -1,
- -1, -1, -1, -1, 348, 349, 350, 351, 352, 353,
- -1, 93, -1, -1, 96, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 0, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 125, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 33, 271, 272, -1, -1, -1, -1, 40, 41, -1,
- -1, 44, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 59, 60, -1, 62,
- -1, -1, -1, -1, -1, -1, -1, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, 316, 317, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 93, -1, -1, 96, -1, -1, 336, 337, 338, 339,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 354, 355, 356, 357, 358, -1,
- -1, -1, 125, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 46, -1, -1, -1, -1, 257, 258, 259, 260, -1,
- -1, 263, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, -1, -1, -1, -1, -1, -1, -1, -1, 281,
- 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
- 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
- -1, -1, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 317, -1, -1, -1, -1,
- -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
- 332, 333, -1, -1, 336, 337, 338, 339, -1, -1,
- 342, 343, -1, 345, -1, -1, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 46, -1, -1,
- 362, 363, 364, 365, 257, 258, 259, 260, -1, -1,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- -1, -1, -1, -1, -1, -1, -1, -1, 281, 282,
- 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 299, 300, 301, -1,
- -1, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, 317, -1, -1, -1, -1, -1,
- 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
- 333, 0, -1, 336, 337, 338, 339, -1, -1, 342,
- 343, -1, 345, -1, -1, 348, 349, 350, 351, 352,
- 353, 354, 355, 356, 357, 358, -1, -1, -1, 362,
- 363, 364, 365, -1, 33, 271, 272, -1, -1, -1,
- -1, 40, 41, -1, -1, 44, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 59, 60, -1, 62, -1, -1, -1, -1, -1, -1,
- -1, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- 316, 317, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 93, -1, -1, 96, -1, -1,
- 336, 337, 338, 339, -1, -1, -1, -1, -1, -1,
- 0, -1, -1, -1, -1, -1, -1, -1, 354, 355,
- 356, 357, 358, -1, -1, -1, 125, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 33, -1, -1, -1, -1, -1, -1,
- 40, 41, -1, -1, 44, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 59,
- 60, -1, 62, -1, -1, -1, -1, -1, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 316, 317, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 93, -1, -1, 96, 336, 337, 338,
- 339, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 354, 355, 356, 357, 358,
- -1, -1, -1, -1, -1, 125, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 257, 258,
- 259, 260, -1, -1, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, -1, -1, -1, -1, -1, -1,
- -1, -1, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 301, -1, -1, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 316, 317, -1,
- -1, -1, -1, -1, 323, 324, 325, 326, 327, 328,
- 329, 330, 331, 332, 333, -1, -1, 336, 337, 338,
- 339, -1, -1, 342, 343, -1, 345, -1, -1, 348,
- 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
- -1, -1, -1, 362, 363, 364, 365, 257, 258, 259,
- 260, -1, -1, 263, 264, 265, 266, 267, 268, 269,
- 270, 271, 272, -1, -1, -1, -1, -1, -1, -1,
- -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, -1, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, 316, 317, -1, -1,
- -1, -1, -1, 323, 324, 325, 326, 327, 328, 329,
- 330, 331, 332, 333, 0, -1, 336, 337, 338, 339,
- -1, -1, 342, 343, -1, 345, -1, -1, 348, 349,
- 350, 351, 352, 353, 354, 355, 356, 357, 358, -1,
- -1, -1, 362, 363, 364, 365, -1, 33, -1, -1,
- -1, -1, -1, -1, 40, 41, -1, 43, 44, 45,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 59, -1, -1, 62, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 24, -1, -1, -1, -1,
- -1, 30, -1, -1, -1, -1, -1, 93, -1, -1,
- 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 0, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 125,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 33, 86, -1, -1,
- -1, -1, -1, 40, 41, -1, -1, 44, -1, -1,
- -1, -1, 101, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 59, -1, -1, 114, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 131, 132, 133, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 93, -1, -1, 96,
- -1, -1, -1, -1, -1, -1, -1, 156, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 125, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 197, -1,
- -1, 257, 258, 259, 260, -1, 205, 263, -1, 265,
- 266, 267, 268, 269, 270, 271, 272, 40, -1, -1,
- -1, -1, -1, 46, -1, 281, 282, 283, 284, 285,
- 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
- 296, 297, 298, 299, 300, -1, -1, -1, -1, 305,
- 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
- 326, 327, 328, 329, 330, 331, 332, 333, -1, -1,
- 336, 337, 338, 339, -1, -1, 342, 343, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 354, 355,
- 356, 357, 358, -1, 303, -1, 362, 363, 364, 365,
- 257, 258, 259, 260, -1, -1, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, -1, -1, -1, -1,
- -1, -1, -1, -1, 281, 282, 283, 284, 285, 286,
- 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, -1, -1, 304, 305, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, 370, 371, -1, -1, -1, 323, 324, 325, 326,
- 327, 328, 329, 330, 331, 332, 333, 0, -1, 336,
- 337, 338, 339, -1, -1, 342, 343, -1, 345, -1,
- -1, 348, 349, 350, 351, -1, -1, 354, 355, 356,
- 357, 358, -1, -1, -1, 362, 363, 364, 365, -1,
- 33, -1, -1, -1, -1, -1, -1, 40, 41, -1,
- -1, 44, -1, -1, 257, -1, -1, -1, -1, -1,
- 263, -1, -1, -1, -1, 268, 59, -1, 271, 272,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 0, -1, -1, -1, -1, -1, -1, -1, -1,
- 93, -1, -1, 96, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, 317, -1, 0, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 125, 336, 337, 338, 339, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 33,
- 59, 354, 355, 356, 357, 358, 40, 41, -1, 43,
- 44, 45, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 59, -1, -1, 62, -1,
- -1, -1, -1, -1, 93, -1, -1, 96, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- -1, -1, 96, -1, -1, -1, 125, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 257, 258, 259, 260, -1, -1,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- -1, -1, -1, -1, -1, -1, -1, -1, 281, 282,
- 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 299, 300, 301, -1,
- -1, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, 317, -1, -1, -1, -1, -1,
- 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
- 333, -1, -1, 336, 337, 338, 339, -1, 257, 342,
- 343, -1, 345, -1, 263, 348, 349, 350, 351, 268,
- -1, 354, 355, 356, 357, 358, -1, -1, -1, 362,
- 363, 364, 365, 257, 258, 259, 260, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, -1, 301, -1, -1, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, 305, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- 0, -1, 336, 337, 338, 339, -1, -1, 342, 343,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, 362, 363,
- 364, 365, -1, 33, -1, -1, -1, -1, -1, -1,
- 40, 41, -1, -1, 44, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 59,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 0, -1, -1, -1, -1, -1,
- -1, -1, -1, 93, -1, -1, 96, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 125, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 33, 59, -1, -1, -1, -1, -1, 40,
- 41, -1, -1, 44, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 59, -1,
- -1, -1, -1, -1, -1, -1, -1, 93, -1, -1,
- 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 93, -1, -1, 96, -1, -1, -1, 125,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 125, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 257, 258, 259,
- 260, -1, -1, 263, 264, 265, 266, 267, 268, 269,
- 270, 271, 272, -1, -1, -1, -1, -1, -1, -1,
- -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, -1, -1, 304, 305, 306, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, 316, 317, -1, -1,
- -1, -1, -1, 323, 324, 325, 326, 327, 328, 329,
- 330, 331, 332, 333, -1, -1, 336, 337, 338, 339,
- -1, 257, 342, 343, -1, 345, -1, 263, 348, 349,
- -1, -1, 268, -1, 354, 355, 356, 357, 358, -1,
- -1, -1, 362, 363, 364, 365, 257, 258, 259, 260,
- -1, -1, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, -1, -1, -1, 301, -1, -1, -1, -1,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, -1, -1, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, 317, -1, -1, -1,
- -1, -1, 323, 324, 325, 326, 327, 328, 329, 330,
- 331, 332, 333, 0, -1, 336, 337, 338, 339, -1,
- -1, 342, 343, -1, 345, -1, -1, -1, 349, -1,
- -1, -1, -1, 354, 355, 356, 357, 358, -1, -1,
- -1, 362, 363, 364, 365, -1, 33, -1, -1, -1,
- -1, -1, -1, 40, 41, -1, 43, 44, 45, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 59, -1, -1, 62, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 93, -1, -1, 96,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 0, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 125, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 33, -1, -1, -1, -1,
- -1, -1, 40, 41, -1, -1, 44, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 59, -1, -1, 62, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 93, -1, -1, 96, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 125, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 257, 258, 259, 260, -1, -1, 263, -1, 265, 266,
- 267, 268, 269, 270, 271, 272, -1, -1, -1, -1,
- -1, -1, -1, -1, 281, 282, 283, 284, 285, 286,
- 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, -1, -1, -1, -1, 305, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, -1, -1, -1, -1, -1, 323, 324, 325, 326,
- 327, 328, 329, 330, 331, 332, 333, -1, -1, 336,
- 337, 338, 339, -1, -1, 342, 343, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 354, 355, 356,
- 357, 358, -1, -1, -1, 362, 363, 364, 365, 257,
- 258, 259, 260, -1, -1, 263, -1, 265, 266, 267,
- 268, 269, 270, 271, 272, -1, -1, -1, -1, -1,
- -1, -1, -1, 281, 282, 283, 284, 285, 286, 287,
- 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
- 298, 299, 300, -1, -1, -1, -1, 305, 306, 307,
- 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
- -1, -1, -1, -1, -1, 323, 324, 325, 326, 327,
- 328, 329, 330, 331, 332, 333, 0, -1, 336, 337,
- 338, 339, -1, -1, 342, 343, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 354, 355, 356, 357,
- 358, -1, -1, -1, 362, 363, 364, 365, -1, 33,
- -1, -1, -1, -1, -1, -1, 40, 41, -1, -1,
- 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 59, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, -1, -1, -1, 40, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
- -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 257, 258, 259, 260, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, -1, -1, -1, -1, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, 305, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, -1, -1, 342, 343,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, 362, 363,
- 364, 365, 257, 258, 259, 260, -1, -1, 263, -1,
- 265, 266, 267, 268, 269, 270, 271, 272, -1, -1,
- -1, -1, -1, -1, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 0, -1, -1, -1,
- -1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 33,
- -1, 336, 337, 338, 339, -1, 40, 342, 343, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 354,
- 355, 356, 357, 358, -1, 59, -1, 362, 363, 364,
- 365, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, -1, -1, -1, 40, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
- -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 257, 258, 259, 260, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, -1, -1, -1, -1, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, -1, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, -1, -1, 342, 343,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, 362, 363,
- 364, 365, 257, 258, 259, 260, -1, -1, 263, -1,
- 265, 266, 267, 268, 269, 270, 271, 272, -1, -1,
- -1, -1, -1, -1, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 0, -1, -1, -1,
- -1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 33,
- -1, 336, 337, 338, 339, -1, 40, 342, 343, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 354,
- 355, 356, 357, 358, -1, 59, -1, 362, 363, 364,
- 365, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, -1, -1, -1, 40, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
- -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 257, 258, 259, 260, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, -1, -1, -1, -1, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, -1, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, -1, -1, 342, 343,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, 362, 363,
- 364, 365, 257, 258, 259, 260, -1, -1, 263, -1,
- 265, 266, 267, 268, 269, 270, 271, 272, -1, -1,
- -1, -1, -1, -1, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 0, -1, -1, -1,
- -1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 33,
- -1, 336, 337, 338, 339, -1, 40, 342, 343, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 354,
- 355, 356, 357, 358, -1, 59, -1, 362, 363, 364,
- 365, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, -1, -1, -1, 40, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
- -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 257, 258, 259, 260, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, -1, -1, -1, -1, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, -1, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, -1, -1, 342, 343,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, 362, 363,
- 364, 365, 257, 258, 259, 260, -1, -1, 263, -1,
- 265, 266, 267, 268, 269, 270, 271, 272, -1, -1,
- -1, -1, -1, -1, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 0, -1, -1, -1,
- -1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 33,
- -1, 336, 337, 338, 339, -1, 40, 342, 343, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 354,
- 355, 356, 357, 358, -1, 59, -1, 362, 363, 364,
- 365, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, -1, -1, -1, 40, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
- -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 257, 258, 259, 260, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, -1, -1, -1, -1, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, -1, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, -1, -1, 342, 343,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, 362, 363,
- 364, 365, 257, 258, 259, 260, -1, -1, 263, -1,
- 265, 266, 267, 268, 269, 270, 271, 272, -1, -1,
- -1, -1, -1, -1, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 0, -1, -1, -1,
- -1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 33,
- -1, 336, 337, 338, 339, -1, 40, 342, 343, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 354,
- 355, 356, 357, 358, -1, 59, -1, 362, 363, 364,
- 365, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, -1, -1, -1, 40, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
- -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 257, 258, 259, 260, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, -1, -1, -1, -1, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, -1, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, -1, -1, 342, 343,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, 362, 363,
- 364, 365, 257, 258, 259, 260, -1, -1, 263, -1,
- 265, 266, 267, 268, 269, 270, 271, 272, -1, -1,
- -1, -1, -1, -1, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 0, -1, -1, -1,
- -1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 33,
- -1, 336, 337, 338, 339, -1, 40, 342, 343, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 354,
- 355, 356, 357, 358, -1, 59, -1, 362, 363, 364,
- 365, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, -1, -1, -1, 40, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
- -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 257, 258, 259, 260, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, -1, -1, -1, -1, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, -1, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, -1, -1, 342, 343,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, 362, 363,
- 364, 365, 257, 258, 259, 260, -1, -1, 263, -1,
- 265, 266, 267, 268, 269, 270, 271, 272, -1, -1,
- -1, -1, -1, -1, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 0, -1, -1, -1,
- -1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 33,
- -1, 336, 337, 338, 339, -1, 40, 342, 343, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 354,
- 355, 356, 357, 358, -1, 59, -1, 362, 363, 364,
- 365, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, -1, -1, -1, 40, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
- -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 257, 258, 259, 260, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, -1, -1, -1, -1, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, -1, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, -1, -1, 342, 343,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, 362, 363,
- 364, 365, 257, 258, 259, 260, -1, -1, 263, -1,
- 265, 266, 267, 268, 269, 270, 271, 272, -1, -1,
- -1, -1, -1, -1, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 0, -1, -1, -1,
- -1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 33,
- -1, 336, 337, 338, 339, -1, 40, 342, 343, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 354,
- 355, 356, 357, 358, -1, 59, -1, 362, 363, 364,
- 365, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 33, -1,
- -1, -1, -1, -1, -1, 40, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
- -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 257, 258, 259, 260, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, -1, -1, -1, -1, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, -1, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, -1, -1, 342, 343,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, 362, 363,
- 364, 365, 257, 258, 259, 260, -1, -1, 263, -1,
- 265, 266, 267, 268, 269, 270, 271, 272, -1, -1,
- -1, -1, -1, -1, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, -1, -1, -1, -1,
- -1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 0,
- -1, 336, 337, 338, 339, -1, -1, 342, 343, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 354,
- 355, 356, 357, 358, -1, -1, -1, 362, 363, 364,
- 365, -1, 33, -1, -1, -1, -1, -1, -1, 40,
- 41, -1, 43, 44, 45, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 59, -1,
- -1, 62, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 0, -1, -1, -1,
- -1, -1, 93, -1, -1, 96, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 33,
- -1, -1, -1, -1, 125, -1, 40, 41, -1, -1,
- 44, 45, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 59, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
- -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, 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, 33, -1, -1, -1,
- -1, -1, -1, 40, -1, -1, 257, 258, 259, 260,
- -1, -1, 263, -1, 265, 266, 267, 268, 269, 270,
- 271, 272, 59, -1, -1, -1, -1, -1, -1, -1,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- -1, -1, -1, -1, 305, 306, 93, -1, -1, 96,
- -1, -1, -1, -1, -1, -1, -1, 318, 319, 320,
- 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
- 331, 332, 333, -1, -1, -1, -1, -1, 125, -1,
- -1, 342, 343, 257, 258, 259, 260, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, -1, -1, -1,
- -1, 362, 363, 364, 365, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, -1, 306, 0, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, -1, -1, -1, -1, 33, -1, 342, 343,
- -1, -1, -1, 40, 41, -1, -1, 44, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 362, 363,
- 364, 365, 59, 60, -1, 62, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 257, 258, 259, 260, -1, -1, 263, -1, -1, -1,
- -1, 268, -1, -1, 271, 272, 93, -1, -1, 96,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 0, -1, -1, -1, 125, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, -1, -1, -1, -1, -1, 323, 324, 325, 326,
- 327, 328, 329, 330, 331, 332, 333, 33, -1, 336,
- 337, 338, 339, -1, 40, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 354, 355, 356,
- 357, 358, -1, 59, -1, -1, -1, -1, 365, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 93, -1, -1,
- 96, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 0, -1, -1, -1, -1, 125,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 257, 258, 259, 260, -1, -1, 263, -1, -1, -1,
- -1, 268, -1, -1, 271, 272, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 59, -1, -1, -1, -1, -1, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, -1, -1, -1, -1, -1, 323, 324, 325, 326,
- 327, 328, 329, 330, 331, 332, 333, 93, -1, 336,
- 337, 338, 339, -1, -1, -1, -1, -1, -1, -1,
- 0, 348, 349, 350, 351, 352, 353, 354, 355, 356,
- 357, 358, -1, -1, -1, -1, -1, -1, 365, 125,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 257, 258, 259, 260, -1, -1, 263, -1, -1,
- -1, -1, 268, -1, -1, 271, 272, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 59,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- 316, 317, -1, 93, -1, -1, -1, 323, 324, 325,
- 326, 327, 328, 329, 330, 331, 332, 333, 0, -1,
- 336, 337, 338, 339, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 125, -1, -1, 354, 355,
- 356, 357, 358, -1, -1, -1, -1, -1, -1, 365,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
- -1, -1, -1, -1, 260, -1, -1, -1, -1, 265,
- 266, 267, -1, 269, 270, 271, 272, 59, -1, -1,
- -1, -1, -1, -1, -1, 281, 282, 283, 284, 285,
- 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
- 296, 297, 298, 299, 300, 301, -1, -1, -1, -1,
- -1, 93, -1, -1, -1, -1, -1, -1, 59, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 125, -1, -1, 342, 343, -1, -1,
- -1, -1, 93, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 362, 363, 364, 365,
- 260, 0, -1, -1, -1, 265, 266, 267, -1, 269,
- 270, 271, 272, -1, 125, -1, -1, -1, -1, -1,
- -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 59, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 342, 343, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 93, -1, -1, -1, -1, -1,
- -1, -1, 362, 363, 364, 365, -1, -1, 260, 0,
- -1, -1, -1, 265, 266, 267, -1, 269, 270, 271,
- 272, -1, -1, -1, -1, -1, 125, -1, -1, 281,
- 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
- 292, 293, 294, 295, 296, 297, 298, 299, 300, 260,
- 0, -1, -1, -1, 265, 266, 267, -1, 269, 270,
- 271, 272, -1, -1, -1, -1, -1, -1, 59, -1,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 342, 343, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 93, -1, -1, -1, -1, -1, -1, 59,
- 362, 363, 364, 365, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 342, 343, -1, 125, -1, -1, -1, -1, -1,
- -1, -1, -1, 93, -1, -1, -1, -1, -1, -1,
- -1, 362, 363, 364, 365, -1, -1, 0, -1, 0,
- -1, 260, -1, -1, -1, -1, 265, 266, 267, -1,
- 269, 270, 271, 272, -1, 125, -1, -1, -1, -1,
- -1, -1, 281, 282, 283, 284, 285, 286, 287, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 43, -1, 45, 46, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 59, -1, 59, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 342, 343, -1, -1, -1, -1, -1,
- 93, -1, 93, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 362, 363, 364, 365, -1, -1, 260,
- -1, -1, -1, -1, 265, 266, 267, -1, 269, 270,
- 271, 272, 125, -1, 125, -1, -1, -1, -1, -1,
- 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 260, -1, -1, -1, -1, 265, 266, 267, -1, 269,
- 270, 271, 272, -1, -1, -1, -1, -1, -1, -1,
- -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 342, 343, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 0, -1, -1, -1,
- -1, 362, 363, 364, 365, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 342, 343, -1, -1, -1, -1, -1, 33,
- -1, -1, -1, -1, -1, -1, 40, -1, -1, -1,
- -1, -1, 362, 363, 364, 365, -1, 260, -1, -1,
- -1, -1, 265, 266, 267, 59, 269, 270, 271, 272,
- 271, 272, -1, -1, -1, -1, -1, -1, 281, 282,
- 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 299, 300, -1, 93,
- -1, -1, 96, -1, -1, -1, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
- 321, 322, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 125, -1, -1, -1, 336, 337, 338, 339, 342,
- 343, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 33, -1, 354, 355, 356, 357, 358, 40, 362,
- 363, 364, 365, 45, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 91,
- -1, -1, -1, -1, 96, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 123, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 257, 258, 259, -1, -1, -1, 263,
- -1, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, -1, -1, -1, -1, -1, -1, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, -1, -1, -1,
- -1, -1, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, 33, -1, 342, 343,
- -1, -1, -1, 40, -1, -1, -1, -1, 45, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, 362, 363,
- 364, -1, -1, -1, -1, 257, 258, 259, 260, 261,
- -1, 263, -1, -1, -1, -1, 268, 269, 270, 271,
- 272, 273, 274, 275, 276, 277, 278, 279, 280, -1,
- -1, -1, -1, -1, 91, -1, -1, -1, -1, 96,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 317, 123, -1, -1, -1,
- -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
- 332, 333, 334, -1, 336, 337, 338, 339, 340, 341,
- -1, -1, 344, -1, 346, -1, -1, -1, -1, -1,
- -1, -1, 354, 355, 356, 357, 358, 359, 33, 361,
- -1, -1, -1, 365, 366, 40, -1, -1, -1, -1,
- 45, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 96, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 257, 258, 259, 260, 261, -1, 263, -1, -1, -1,
- -1, 268, 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, -1, 33, -1, -1, -1, -1,
- -1, -1, 40, 41, -1, -1, -1, 45, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, -1, -1, -1, -1, -1, 323, 324, 325, 326,
- 327, 328, 329, 330, 331, 332, 333, 334, -1, 336,
- 337, 338, 339, 340, 341, -1, -1, 344, 96, 346,
- -1, -1, -1, -1, -1, -1, -1, 354, 355, 356,
- 357, 358, 359, -1, 361, -1, -1, -1, 365, 366,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 257, 258, 259, 260, -1, -1, 263, -1,
- 265, 266, 267, 268, 269, 270, 271, 272, -1, -1,
- -1, -1, -1, -1, -1, -1, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, -1, -1, -1, -1,
- -1, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, -1, -1, -1, -1, -1, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 33,
- -1, 336, 337, 338, 339, -1, 40, 342, 343, -1,
- -1, 45, -1, -1, -1, -1, -1, -1, -1, 354,
- 355, 356, 357, 358, -1, -1, -1, 362, 363, 364,
- 365, -1, -1, -1, -1, -1, -1, -1, -1, 257,
- 258, 259, 260, -1, -1, 263, -1, -1, -1, -1,
- 268, -1, -1, 271, 272, -1, -1, -1, -1, -1,
- -1, -1, 96, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 306, 307,
- 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
- -1, -1, -1, -1, -1, 323, 324, 325, 326, 327,
- 328, 329, 330, 331, 332, 333, 33, -1, 336, 337,
- 338, 339, -1, 40, -1, -1, -1, -1, 45, -1,
- -1, -1, -1, -1, -1, -1, 354, 355, 356, 357,
- 358, -1, -1, -1, -1, -1, -1, 365, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 96,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 257, 258, 259, 260, -1, -1, 263,
- -1, -1, -1, -1, 268, -1, -1, 271, 272, -1,
- -1, -1, -1, 33, -1, -1, -1, -1, -1, -1,
- 40, -1, -1, -1, -1, 45, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, -1, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, 96, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 354, 355, 356, 357, 358, -1, -1, -1, -1, -1,
- -1, 365, -1, -1, -1, -1, -1, -1, -1, -1,
- 257, 258, 259, 260, -1, -1, 263, -1, -1, -1,
- -1, 268, -1, -1, 271, 272, -1, -1, -1, -1,
- 33, -1, -1, -1, -1, -1, -1, 40, -1, -1,
- -1, -1, 45, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, -1, -1, -1, -1, -1, 323, 324, 325, 326,
- 327, 328, 329, 330, 331, 332, 333, -1, -1, 336,
- 337, 338, 339, 96, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 354, 355, 356,
- 357, 358, -1, -1, -1, -1, -1, -1, 365, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 33, -1, 257, 258, 259,
- 260, -1, 40, 263, 42, -1, -1, 45, 268, -1,
- -1, 271, 272, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 306, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, 316, 317, 96, -1,
- -1, -1, -1, 323, 324, 325, 326, 327, 328, 329,
- 330, 331, 332, 333, -1, -1, 336, 337, 338, 339,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 354, 355, 356, 357, 358, 33,
- -1, -1, -1, -1, -1, 365, 40, -1, -1, -1,
- -1, 45, -1, -1, 257, 258, 259, 260, -1, -1,
- 263, -1, -1, -1, -1, 268, -1, -1, 271, 272,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 96, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 316, 317, -1, 91, -1, -1, -1,
- 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
- 333, -1, -1, 336, 337, 338, 339, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 123, -1,
- -1, 354, 355, 356, 357, 358, -1, 33, -1, 257,
- 258, 259, 365, -1, 40, 263, -1, -1, -1, 45,
- 268, -1, -1, 271, 272, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 306, 307,
- 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
- 96, -1, -1, -1, -1, 323, 324, 325, 326, 327,
- 328, 329, 330, 331, 332, 333, -1, -1, 336, 337,
- 338, 339, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 354, 355, 356, 357,
- 358, 33, -1, 257, 258, 259, -1, -1, 40, 263,
- -1, -1, -1, 45, 268, -1, -1, 271, 272, -1,
- -1, -1, 257, 258, -1, 260, 261, -1, -1, -1,
- -1, -1, -1, -1, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, -1, -1, -1, -1,
- -1, -1, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 316, 317, 96, -1, -1, -1, -1, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
- -1, -1, 336, 337, 338, 339, 33, -1, -1, -1,
- -1, -1, -1, 40, -1, -1, -1, -1, 45, 334,
- 354, 355, 356, 357, 358, 340, 341, -1, -1, 344,
- -1, 346, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 257, 258, 259, 359, -1, 361, 263, -1, -1,
- 365, 366, 268, -1, -1, 271, 272, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 96,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- 316, 317, -1, -1, -1, -1, -1, 323, 324, 325,
- 326, 327, 328, 329, 330, 331, 332, 333, -1, -1,
- 336, 337, 338, 339, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 354, 355,
- 356, 357, 358, -1, -1, 257, 258, 259, -1, -1,
- -1, 263, -1, -1, 91, -1, 268, -1, -1, 271,
- 272, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 123, -1, -1, -1,
- 91, -1, -1, -1, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 317, -1, -1, -1, -1,
- -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
- 332, 333, 123, -1, 336, 337, 338, 339, -1, -1,
- 257, 258, 259, -1, -1, -1, 263, -1, -1, -1,
- -1, 268, 354, 355, 356, 357, 358, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, -1, -1, -1, -1, -1, 323, 324, 325, 326,
- 327, 328, 329, 330, 331, 332, 333, -1, -1, 336,
- 337, 338, 339, -1, -1, -1, -1, -1, -1, -1,
- 257, 258, -1, 260, 261, -1, -1, 354, 355, 356,
- 357, 358, 269, 270, 271, 272, 273, 274, 275, 276,
- 277, 278, 279, 280, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 257, 258, -1, 260,
- 261, -1, -1, -1, -1, -1, -1, -1, 269, 270,
- 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 334, -1, -1,
- -1, -1, -1, 340, 341, -1, -1, 344, -1, 346,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 359, -1, 361, -1, -1, -1, 365, 366,
- -1, -1, -1, 334, -1, -1, -1, -1, -1, 340,
- 341, -1, -1, 344, -1, 346, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 359, -1,
- 361, -1, -1, -1, 365, 366,
-};
-#define YYFINAL 2
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 368
-#if YYDEBUG
-char *yyname[] = {
-"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-"'!'",0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,0,0,0,
-0,0,0,0,0,"':'","';'","'<'","'='","'>'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,"'['",0,"']'","'^'",0,"'`'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,"'{'",0,"'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"LABEL","VARIABLE","NUMBER",
-"TEXT","COMMAND_LINE","DELIMITED","ORDINAL","TH","LEFT_ARROW_HEAD",
-"RIGHT_ARROW_HEAD","DOUBLE_ARROW_HEAD","LAST","UP","DOWN","LEFT","RIGHT","BOX",
-"CIRCLE","ELLIPSE","ARC","LINE","ARROW","MOVE","SPLINE","HEIGHT","RADIUS",
-"WIDTH","DIAMETER","FROM","TO","AT","WITH","BY","THEN","SOLID","DOTTED",
-"DASHED","CHOP","SAME","INVISIBLE","LJUST","RJUST","ABOVE","BELOW","OF","THE",
-"WAY","BETWEEN","AND","HERE","DOT_N","DOT_E","DOT_W","DOT_S","DOT_NE","DOT_SE",
-"DOT_NW","DOT_SW","DOT_C","DOT_START","DOT_END","DOT_X","DOT_Y","DOT_HT",
-"DOT_WID","DOT_RAD","SIN","COS","ATAN2","LOG","EXP","SQRT","K_MAX","K_MIN",
-"INT","RAND","SRAND","COPY","THRU","TOP","BOTTOM","UPPER","LOWER","SH","PRINT",
-"CW","CCW","FOR","DO","IF","ELSE","ANDAND","OROR","NOTEQUAL","EQUALEQUAL",
-"LESSEQUAL","GREATEREQUAL","LEFT_CORNER","RIGHT_CORNER","CENTER","END","START",
-"RESET","UNTIL","PLOT","THICKNESS","FILL","ALIGNED","SPRINTF","COMMAND",
-"DEFINE","UNDEF",
-};
-char *yyrule[] = {
-"$accept : top",
-"top : optional_separator",
-"top : element_list",
-"element_list : optional_separator middle_element_list optional_separator",
-"middle_element_list : element",
-"middle_element_list : middle_element_list separator element",
-"optional_separator :",
-"optional_separator : separator",
-"separator : ';'",
-"separator : separator ';'",
-"placeless_element : VARIABLE '=' any_expr",
-"placeless_element : VARIABLE ':' '=' any_expr",
-"placeless_element : UP",
-"placeless_element : DOWN",
-"placeless_element : LEFT",
-"placeless_element : RIGHT",
-"placeless_element : COMMAND_LINE",
-"placeless_element : COMMAND print_args",
-"placeless_element : PRINT print_args",
-"$$1 :",
-"placeless_element : SH $$1 DELIMITED",
-"placeless_element : COPY TEXT",
-"$$2 :",
-"$$3 :",
-"placeless_element : COPY TEXT THRU $$2 DELIMITED $$3 until",
-"$$4 :",
-"$$5 :",
-"placeless_element : COPY THRU $$4 DELIMITED $$5 until",
-"$$6 :",
-"placeless_element : FOR VARIABLE '=' expr TO expr optional_by DO $$6 DELIMITED",
-"placeless_element : simple_if",
-"$$7 :",
-"placeless_element : simple_if ELSE $$7 DELIMITED",
-"placeless_element : reset_variables",
-"placeless_element : RESET",
-"reset_variables : RESET VARIABLE",
-"reset_variables : reset_variables VARIABLE",
-"reset_variables : reset_variables ',' VARIABLE",
-"print_args : print_arg",
-"print_args : print_args print_arg",
-"print_arg : expr",
-"print_arg : text",
-"print_arg : position",
-"$$8 :",
-"simple_if : IF any_expr THEN $$8 DELIMITED",
-"until :",
-"until : UNTIL TEXT",
-"any_expr : expr",
-"any_expr : text_expr",
-"text_expr : text EQUALEQUAL text",
-"text_expr : text NOTEQUAL text",
-"text_expr : text_expr ANDAND text_expr",
-"text_expr : text_expr ANDAND expr",
-"text_expr : expr ANDAND text_expr",
-"text_expr : text_expr OROR text_expr",
-"text_expr : text_expr OROR expr",
-"text_expr : expr OROR text_expr",
-"text_expr : '!' text_expr",
-"optional_by :",
-"optional_by : BY expr",
-"optional_by : BY '*' expr",
-"element : object_spec",
-"element : LABEL ':' optional_separator element",
-"element : LABEL ':' optional_separator position_not_place",
-"element : LABEL ':' optional_separator place",
-"$$9 :",
-"$$10 :",
-"element : '{' $$9 element_list '}' $$10 optional_element",
-"element : placeless_element",
-"optional_element :",
-"optional_element : element",
-"object_spec : BOX",
-"object_spec : CIRCLE",
-"object_spec : ELLIPSE",
-"object_spec : ARC",
-"object_spec : LINE",
-"object_spec : ARROW",
-"object_spec : MOVE",
-"object_spec : SPLINE",
-"object_spec : text",
-"object_spec : PLOT expr",
-"object_spec : PLOT expr text",
-"$$11 :",
-"object_spec : '[' $$11 element_list ']'",
-"object_spec : object_spec HEIGHT expr",
-"object_spec : object_spec RADIUS expr",
-"object_spec : object_spec WIDTH expr",
-"object_spec : object_spec DIAMETER expr",
-"object_spec : object_spec expr",
-"object_spec : object_spec UP",
-"object_spec : object_spec UP expr",
-"object_spec : object_spec DOWN",
-"object_spec : object_spec DOWN expr",
-"object_spec : object_spec RIGHT",
-"object_spec : object_spec RIGHT expr",
-"object_spec : object_spec LEFT",
-"object_spec : object_spec LEFT expr",
-"object_spec : object_spec FROM position",
-"object_spec : object_spec TO position",
-"object_spec : object_spec AT position",
-"object_spec : object_spec WITH path",
-"object_spec : object_spec BY expr_pair",
-"object_spec : object_spec THEN",
-"object_spec : object_spec SOLID",
-"object_spec : object_spec DOTTED",
-"object_spec : object_spec DOTTED expr",
-"object_spec : object_spec DASHED",
-"object_spec : object_spec DASHED expr",
-"object_spec : object_spec FILL",
-"object_spec : object_spec FILL expr",
-"object_spec : object_spec CHOP",
-"object_spec : object_spec CHOP expr",
-"object_spec : object_spec SAME",
-"object_spec : object_spec INVISIBLE",
-"object_spec : object_spec LEFT_ARROW_HEAD",
-"object_spec : object_spec RIGHT_ARROW_HEAD",
-"object_spec : object_spec DOUBLE_ARROW_HEAD",
-"object_spec : object_spec CW",
-"object_spec : object_spec CCW",
-"object_spec : object_spec text",
-"object_spec : object_spec LJUST",
-"object_spec : object_spec RJUST",
-"object_spec : object_spec ABOVE",
-"object_spec : object_spec BELOW",
-"object_spec : object_spec THICKNESS expr",
-"object_spec : object_spec ALIGNED",
-"text : TEXT",
-"text : SPRINTF '(' TEXT sprintf_args ')'",
-"sprintf_args :",
-"sprintf_args : sprintf_args ',' expr",
-"position : position_not_place",
-"position : place",
-"position_not_place : expr_pair",
-"position_not_place : position '+' expr_pair",
-"position_not_place : position '-' expr_pair",
-"position_not_place : '(' position ',' position ')'",
-"position_not_place : expr between position AND position",
-"position_not_place : expr '<' position ',' position '>'",
-"between : BETWEEN",
-"between : OF THE WAY BETWEEN",
-"expr_pair : expr ',' expr",
-"expr_pair : '(' expr_pair ')'",
-"place : label",
-"place : label corner",
-"place : corner label",
-"place : corner OF label",
-"place : HERE",
-"label : LABEL",
-"label : nth_primitive",
-"label : label '.' LABEL",
-"ordinal : ORDINAL",
-"ordinal : '`' any_expr TH",
-"optional_ordinal_last : LAST",
-"optional_ordinal_last : ordinal LAST",
-"nth_primitive : ordinal object_type",
-"nth_primitive : optional_ordinal_last object_type",
-"object_type : BOX",
-"object_type : CIRCLE",
-"object_type : ELLIPSE",
-"object_type : ARC",
-"object_type : LINE",
-"object_type : ARROW",
-"object_type : SPLINE",
-"object_type : '[' ']'",
-"object_type : TEXT",
-"label_path : '.' LABEL",
-"label_path : label_path '.' LABEL",
-"relative_path : corner",
-"relative_path : label_path",
-"relative_path : label_path corner",
-"path : relative_path",
-"path : '(' relative_path ',' relative_path ')'",
-"path : ORDINAL LAST object_type relative_path",
-"path : LAST object_type relative_path",
-"path : ORDINAL object_type relative_path",
-"path : LABEL relative_path",
-"corner : DOT_N",
-"corner : DOT_E",
-"corner : DOT_W",
-"corner : DOT_S",
-"corner : DOT_NE",
-"corner : DOT_SE",
-"corner : DOT_NW",
-"corner : DOT_SW",
-"corner : DOT_C",
-"corner : DOT_START",
-"corner : DOT_END",
-"corner : TOP",
-"corner : BOTTOM",
-"corner : LEFT",
-"corner : RIGHT",
-"corner : UPPER LEFT",
-"corner : LOWER LEFT",
-"corner : UPPER RIGHT",
-"corner : LOWER RIGHT",
-"corner : LEFT_CORNER",
-"corner : RIGHT_CORNER",
-"corner : UPPER LEFT_CORNER",
-"corner : LOWER LEFT_CORNER",
-"corner : UPPER RIGHT_CORNER",
-"corner : LOWER RIGHT_CORNER",
-"corner : CENTER",
-"corner : START",
-"corner : END",
-"expr : VARIABLE",
-"expr : NUMBER",
-"expr : place DOT_X",
-"expr : place DOT_Y",
-"expr : place DOT_HT",
-"expr : place DOT_WID",
-"expr : place DOT_RAD",
-"expr : expr '+' expr",
-"expr : expr '-' expr",
-"expr : expr '*' expr",
-"expr : expr '/' expr",
-"expr : expr '%' expr",
-"expr : expr '^' expr",
-"expr : '-' expr",
-"expr : '(' any_expr ')'",
-"expr : SIN '(' any_expr ')'",
-"expr : COS '(' any_expr ')'",
-"expr : ATAN2 '(' any_expr ',' any_expr ')'",
-"expr : LOG '(' any_expr ')'",
-"expr : EXP '(' any_expr ')'",
-"expr : SQRT '(' any_expr ')'",
-"expr : K_MAX '(' any_expr ',' any_expr ')'",
-"expr : K_MIN '(' any_expr ',' any_expr ')'",
-"expr : INT '(' any_expr ')'",
-"expr : RAND '(' any_expr ')'",
-"expr : RAND '(' ')'",
-"expr : SRAND '(' any_expr ')'",
-"expr : expr '<' expr",
-"expr : expr LESSEQUAL expr",
-"expr : expr '>' expr",
-"expr : expr GREATEREQUAL expr",
-"expr : expr EQUALEQUAL expr",
-"expr : expr NOTEQUAL expr",
-"expr : expr ANDAND expr",
-"expr : expr OROR expr",
-"expr : '!' expr",
-};
-#endif
-#ifdef YYSTACKSIZE
-#undef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
-#else
-#define YYSTACKSIZE 500
-#define YYMAXDEPTH 500
-#endif
-#endif
-int yydebug;
-int yynerrs;
-int yyerrflag;
-int yychar;
-short *yyssp;
-YYSTYPE *yyvsp;
-YYSTYPE yyval;
-YYSTYPE yylval;
-short yyss[YYSTACKSIZE];
-YYSTYPE yyvs[YYSTACKSIZE];
-#define yystacksize YYSTACKSIZE
-#line 1546 "/home/cjk/groff/src/preproc/pic/pic.y"
-
-/* bison defines const to be empty unless __STDC__ is defined, which it
-isn't under cfront */
-
-#ifdef const
-#undef const
-#endif
-
-static struct {
- const char *name;
- double val;
- int scaled; // non-zero if val should be multiplied by scale
-} defaults_table[] = {
- { "arcrad", .25, 1 },
- { "arrowht", .1, 1 },
- { "arrowwid", .05, 1 },
- { "circlerad", .25, 1 },
- { "boxht", .5, 1 },
- { "boxwid", .75, 1 },
- { "boxrad", 0.0, 1 },
- { "dashwid", .05, 1 },
- { "ellipseht", .5, 1 },
- { "ellipsewid", .75, 1 },
- { "moveht", .5, 1 },
- { "movewid", .5, 1 },
- { "lineht", .5, 1 },
- { "linewid", .5, 1 },
- { "textht", 0.0, 1 },
- { "textwid", 0.0, 1 },
- { "scale", 1.0, 0 },
- { "linethick", -1.0, 0 }, // in points
- { "fillval", .5, 0 },
- { "arrowhead", 1.0, 0 },
- { "maxpswid", 8.5, 0 },
- { "maxpsht", 11.0, 0 },
-};
-
-place *lookup_label(const char *label)
-{
- saved_state *state = current_saved_state;
- PTABLE(place) *tbl = current_table;
- for (;;) {
- place *pl = tbl->lookup(label);
- if (pl)
- return pl;
- if (!state)
- return 0;
- tbl = state->tbl;
- state = state->prev;
- }
-}
-
-void define_label(const char *label, const place *pl)
-{
- place *p = new place;
- *p = *pl;
- current_table->define(label, p);
-}
-
-int lookup_variable(const char *name, double *val)
-{
- place *pl = lookup_label(name);
- if (pl) {
- *val = pl->x;
- return 1;
- }
- return 0;
-}
-
-void define_variable(const char *name, double val)
-{
- place *p = new place;
- p->obj = 0;
- p->x = val;
- p->y = 0.0;
- current_table->define(name, p);
- if (strcmp(name, "scale") == 0) {
- // When the scale changes, reset all scaled pre-defined variables to
- // their default values.
- for (unsigned int i = 0;
- i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++)
- if (defaults_table[i].scaled)
- define_variable(defaults_table[i].name, val*defaults_table[i].val);
- }
-}
-
-// called once only (not once per parse)
-
-void parse_init()
-{
- current_direction = RIGHT_DIRECTION;
- current_position.x = 0.0;
- current_position.y = 0.0;
- // This resets everything to its default value.
- reset_all();
-}
-
-void reset(const char *nm)
-{
- for (unsigned int i = 0;
- i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++)
- if (strcmp(nm, defaults_table[i].name) == 0) {
- double val = defaults_table[i].val;
- if (defaults_table[i].scaled) {
- double scale;
- lookup_variable("scale", &scale);
- val *= scale;
- }
- define_variable(defaults_table[i].name, val);
- return;
- }
- lex_error("`%1' is not a predefined variable", nm);
-}
-
-void reset_all()
-{
- // We only have to explicitly reset the pre-defined variables that
- // aren't scaled because `scale' is not scaled, and changing the
- // value of `scale' will reset all the pre-defined variables that
- // are scaled.
- for (unsigned int i = 0;
- i < sizeof(defaults_table)/sizeof(defaults_table[0]); i++)
- if (!defaults_table[i].scaled)
- define_variable(defaults_table[i].name, defaults_table[i].val);
-}
-
-// called after each parse
-
-void parse_cleanup()
-{
- while (current_saved_state != 0) {
- delete current_table;
- current_table = current_saved_state->tbl;
- saved_state *tem = current_saved_state;
- current_saved_state = current_saved_state->prev;
- delete tem;
- }
- assert(current_table == &top_table);
- PTABLE_ITERATOR(place) iter(current_table);
- const char *key;
- place *pl;
- while (iter.next(&key, &pl))
- if (pl->obj != 0) {
- position pos = pl->obj->origin();
- pl->obj = 0;
- pl->x = pos.x;
- pl->y = pos.y;
- }
- while (olist.head != 0) {
- object *tem = olist.head;
- olist.head = olist.head->next;
- delete tem;
- }
- olist.tail = 0;
- current_direction = RIGHT_DIRECTION;
- current_position.x = 0.0;
- current_position.y = 0.0;
-}
-
-const char *ordinal_postfix(int n)
-{
- if (n < 10 || n > 20)
- switch (n % 10) {
- case 1:
- return "st";
- case 2:
- return "nd";
- case 3:
- return "rd";
- }
- return "th";
-}
-
-const char *object_type_name(object_type type)
-{
- switch (type) {
- case BOX_OBJECT:
- return "box";
- case CIRCLE_OBJECT:
- return "circle";
- case ELLIPSE_OBJECT:
- return "ellipse";
- case ARC_OBJECT:
- return "arc";
- case SPLINE_OBJECT:
- return "spline";
- case LINE_OBJECT:
- return "line";
- case ARROW_OBJECT:
- return "arrow";
- case MOVE_OBJECT:
- return "move";
- case TEXT_OBJECT:
- return "\"\"";
- case BLOCK_OBJECT:
- return "[]";
- case OTHER_OBJECT:
- case MARK_OBJECT:
- default:
- break;
- }
- return "object";
-}
-
-static char sprintf_buf[1024];
-
-char *format_number(const char *form, double n)
-{
- if (form == 0)
- form = "%g";
- else {
- // this is a fairly feeble attempt at validation of the format
- int nspecs = 0;
- for (const char *p = form; *p != '\0'; p++)
- if (*p == '%') {
- if (p[1] == '%')
- p++;
- else
- nspecs++;
- }
- if (nspecs > 1) {
- lex_error("bad format `%1'", form);
- return strsave(form);
- }
- }
- sprintf(sprintf_buf, form, n);
- return strsave(sprintf_buf);
-}
-
-char *do_sprintf(const char *form, const double *v, int nv)
-{
- string result;
- int i = 0;
- string one_format;
- while (*form) {
- if (*form == '%') {
- one_format += *form++;
- for (; *form != '\0' && strchr("#-+ 0123456789.", *form) != 0; form++)
- one_format += *form;
- if (*form == '\0' || strchr("eEfgG%", *form) == 0) {
- lex_error("bad sprintf format");
- result += one_format;
- result += form;
- break;
- }
- if (*form == '%') {
- one_format += *form++;
- one_format += '\0';
- sprintf(sprintf_buf, one_format.contents());
- }
- else {
- if (i >= nv) {
- lex_error("too few arguments to sprintf");
- result += one_format;
- result += form;
- break;
- }
- one_format += *form++;
- one_format += '\0';
- sprintf(sprintf_buf, one_format.contents(), v[i++]);
- }
- one_format.clear();
- result += sprintf_buf;
- }
- else
- result += *form++;
- }
- result += '\0';
- return strsave(result.contents());
-}
-#line 3409 "y.tab.c"
-#define YYABORT goto yyabort
-#define YYREJECT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-int
-#if defined(__STDC__)
-yyparse(void)
-#else
-yyparse()
-#endif
-{
- register int yym, yyn, yystate;
-#if YYDEBUG
- register char *yys;
- extern char *getenv();
-
- if (yys = getenv("YYDEBUG"))
- {
- yyn = *yys;
- if (yyn >= '0' && yyn <= '9')
- yydebug = yyn - '0';
- }
-#endif
-
- yynerrs = 0;
- yyerrflag = 0;
- yychar = (-1);
-
- yyssp = yyss;
- yyvsp = yyvs;
- *yyssp = yystate = 0;
-
-yyloop:
- if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, reading %d (%s)\n",
- YYPREFIX, yystate, yychar, yys);
- }
-#endif
- }
- if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, shifting to state %d\n",
- YYPREFIX, yystate, yytable[yyn]);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- yychar = (-1);
- if (yyerrflag > 0) --yyerrflag;
- goto yyloop;
- }
- if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
- yyn = yytable[yyn];
- goto yyreduce;
- }
- if (yyerrflag) goto yyinrecovery;
- yyerror("syntax error");
-#ifdef lint
- goto yyerrlab;
-#endif
-yyerrlab:
- ++yynerrs;
-yyinrecovery:
- if (yyerrflag < 3)
- {
- yyerrflag = 3;
- for (;;)
- {
- if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, error recovery shifting\
- to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- goto yyloop;
- }
- else
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: error recovery discarding state %d\n",
- YYPREFIX, *yyssp);
-#endif
- if (yyssp <= yyss) goto yyabort;
- --yyssp;
- --yyvsp;
- }
- }
- }
- else
- {
- if (yychar == 0) goto yyabort;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
- YYPREFIX, yystate, yychar, yys);
- }
-#endif
- yychar = (-1);
- goto yyloop;
- }
-yyreduce:
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, reducing by rule %d (%s)\n",
- YYPREFIX, yystate, yyn, yyrule[yyn]);
-#endif
- yym = yylen[yyn];
- yyval = yyvsp[1-yym];
- switch (yyn)
- {
-case 2:
-#line 283 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (olist.head)
- print_picture(olist.head);
- }
-break;
-case 3:
-#line 292 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.pl = yyvsp[-1].pl; }
-break;
-case 4:
-#line 297 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.pl = yyvsp[0].pl; }
-break;
-case 5:
-#line 299 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.pl = yyvsp[-2].pl; }
-break;
-case 10:
-#line 314 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- define_variable(yyvsp[-2].str, yyvsp[0].x);
- a_delete yyvsp[-2].str;
- }
-break;
-case 11:
-#line 319 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- place *p = lookup_label(yyvsp[-3].str);
- if (!p) {
- lex_error("variable `%1' not defined", yyvsp[-3].str);
- YYABORT;
- }
- p->obj = 0;
- p->x = yyvsp[0].x;
- p->y = 0.0;
- a_delete yyvsp[-3].str;
- }
-break;
-case 12:
-#line 331 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ current_direction = UP_DIRECTION; }
-break;
-case 13:
-#line 333 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ current_direction = DOWN_DIRECTION; }
-break;
-case 14:
-#line 335 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ current_direction = LEFT_DIRECTION; }
-break;
-case 15:
-#line 337 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ current_direction = RIGHT_DIRECTION; }
-break;
-case 16:
-#line 339 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- olist.append(make_command_object(yyvsp[0].lstr.str, yyvsp[0].lstr.filename,
- yyvsp[0].lstr.lineno));
- }
-break;
-case 17:
-#line 344 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- olist.append(make_command_object(yyvsp[0].lstr.str, yyvsp[0].lstr.filename,
- yyvsp[0].lstr.lineno));
- }
-break;
-case 18:
-#line 349 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- fprintf(stderr, "%s\n", yyvsp[0].lstr.str);
- a_delete yyvsp[0].lstr.str;
- fflush(stderr);
- }
-break;
-case 19:
-#line 355 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ delim_flag = 1; }
-break;
-case 20:
-#line 357 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- delim_flag = 0;
- if (safer_flag)
- lex_error("unsafe to run command `%1'", yyvsp[0].str);
- else
- system(yyvsp[0].str);
- a_delete yyvsp[0].str;
- }
-break;
-case 21:
-#line 366 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (yychar < 0)
- do_lookahead();
- do_copy(yyvsp[0].lstr.str);
- /* do not delete the filename*/
- }
-break;
-case 22:
-#line 373 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ delim_flag = 2; }
-break;
-case 23:
-#line 375 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ delim_flag = 0; }
-break;
-case 24:
-#line 377 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (yychar < 0)
- do_lookahead();
- copy_file_thru(yyvsp[-5].lstr.str, yyvsp[-2].str, yyvsp[0].str);
- /* do not delete the filename*/
- a_delete yyvsp[-2].str;
- a_delete yyvsp[0].str;
- }
-break;
-case 25:
-#line 386 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ delim_flag = 2; }
-break;
-case 26:
-#line 388 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ delim_flag = 0; }
-break;
-case 27:
-#line 390 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (yychar < 0)
- do_lookahead();
- copy_rest_thru(yyvsp[-2].str, yyvsp[0].str);
- a_delete yyvsp[-2].str;
- a_delete yyvsp[0].str;
- }
-break;
-case 28:
-#line 398 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ delim_flag = 1; }
-break;
-case 29:
-#line 400 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- delim_flag = 0;
- if (yychar < 0)
- do_lookahead();
- do_for(yyvsp[-8].str, yyvsp[-6].x, yyvsp[-4].x, yyvsp[-3].by.is_multiplicative, yyvsp[-3].by.val, yyvsp[0].str);
- }
-break;
-case 30:
-#line 407 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (yychar < 0)
- do_lookahead();
- if (yyvsp[0].if_data.x != 0.0)
- push_body(yyvsp[0].if_data.body);
- a_delete yyvsp[0].if_data.body;
- }
-break;
-case 31:
-#line 415 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ delim_flag = 1; }
-break;
-case 32:
-#line 417 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- delim_flag = 0;
- if (yychar < 0)
- do_lookahead();
- if (yyvsp[-3].if_data.x != 0.0)
- push_body(yyvsp[-3].if_data.body);
- else
- push_body(yyvsp[0].str);
- a_delete yyvsp[-3].if_data.body;
- a_delete yyvsp[0].str;
- }
-break;
-case 34:
-#line 430 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ define_variable("scale", 1.0); }
-break;
-case 35:
-#line 435 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ reset(yyvsp[0].str); a_delete yyvsp[0].str; }
-break;
-case 36:
-#line 437 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ reset(yyvsp[0].str); a_delete yyvsp[0].str; }
-break;
-case 37:
-#line 439 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ reset(yyvsp[0].str); a_delete yyvsp[0].str; }
-break;
-case 38:
-#line 444 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.lstr = yyvsp[0].lstr; }
-break;
-case 39:
-#line 446 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.lstr.str = new char[strlen(yyvsp[-1].lstr.str) + strlen(yyvsp[0].lstr.str) + 1];
- strcpy(yyval.lstr.str, yyvsp[-1].lstr.str);
- strcat(yyval.lstr.str, yyvsp[0].lstr.str);
- a_delete yyvsp[-1].lstr.str;
- a_delete yyvsp[0].lstr.str;
- if (yyvsp[-1].lstr.filename) {
- yyval.lstr.filename = yyvsp[-1].lstr.filename;
- yyval.lstr.lineno = yyvsp[-1].lstr.lineno;
- }
- else if (yyvsp[0].lstr.filename) {
- yyval.lstr.filename = yyvsp[0].lstr.filename;
- yyval.lstr.lineno = yyvsp[0].lstr.lineno;
- }
- }
-break;
-case 40:
-#line 465 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.lstr.str = new char[GDIGITS + 1];
- sprintf(yyval.lstr.str, "%g", yyvsp[0].x);
- yyval.lstr.filename = 0;
- yyval.lstr.lineno = 0;
- }
-break;
-case 41:
-#line 472 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.lstr = yyvsp[0].lstr; }
-break;
-case 42:
-#line 474 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.lstr.str = new char[GDIGITS + 2 + GDIGITS + 1];
- sprintf(yyval.lstr.str, "%g, %g", yyvsp[0].pair.x, yyvsp[0].pair.y);
- yyval.lstr.filename = 0;
- yyval.lstr.lineno = 0;
- }
-break;
-case 43:
-#line 483 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ delim_flag = 1; }
-break;
-case 44:
-#line 485 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ delim_flag = 0; yyval.if_data.x = yyvsp[-3].x; yyval.if_data.body = yyvsp[0].str; }
-break;
-case 45:
-#line 490 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.str = 0; }
-break;
-case 46:
-#line 492 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.str = yyvsp[0].lstr.str; }
-break;
-case 47:
-#line 497 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = yyvsp[0].x; }
-break;
-case 48:
-#line 499 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = yyvsp[0].x; }
-break;
-case 49:
-#line 504 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.x = strcmp(yyvsp[-2].lstr.str, yyvsp[0].lstr.str) == 0;
- a_delete yyvsp[-2].lstr.str;
- a_delete yyvsp[0].lstr.str;
- }
-break;
-case 50:
-#line 510 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.x = strcmp(yyvsp[-2].lstr.str, yyvsp[0].lstr.str) != 0;
- a_delete yyvsp[-2].lstr.str;
- a_delete yyvsp[0].lstr.str;
- }
-break;
-case 51:
-#line 516 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
-break;
-case 52:
-#line 518 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
-break;
-case 53:
-#line 520 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
-break;
-case 54:
-#line 522 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
-break;
-case 55:
-#line 524 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
-break;
-case 56:
-#line 526 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
-break;
-case 57:
-#line 528 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[0].x == 0.0); }
-break;
-case 58:
-#line 534 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.by.val = 1.0; yyval.by.is_multiplicative = 0; }
-break;
-case 59:
-#line 536 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.by.val = yyvsp[0].x; yyval.by.is_multiplicative = 0; }
-break;
-case 60:
-#line 538 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.by.val = yyvsp[0].x; yyval.by.is_multiplicative = 1; }
-break;
-case 61:
-#line 543 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pl.obj = yyvsp[0].spec->make_object(&current_position,
- &current_direction);
- if (yyval.pl.obj == 0)
- YYABORT;
- delete yyvsp[0].spec;
- if (yyval.pl.obj)
- olist.append(yyval.pl.obj);
- else {
- yyval.pl.x = current_position.x;
- yyval.pl.y = current_position.y;
- }
- }
-break;
-case 62:
-#line 557 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.pl = yyvsp[0].pl; define_label(yyvsp[-3].str, & yyval.pl); a_delete yyvsp[-3].str; }
-break;
-case 63:
-#line 559 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pl.obj = 0;
- yyval.pl.x = yyvsp[0].pair.x;
- yyval.pl.y = yyvsp[0].pair.y;
- define_label(yyvsp[-3].str, & yyval.pl);
- a_delete yyvsp[-3].str;
- }
-break;
-case 64:
-#line 567 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pl = yyvsp[0].pl;
- define_label(yyvsp[-3].str, & yyval.pl);
- a_delete yyvsp[-3].str;
- }
-break;
-case 65:
-#line 573 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.state.x = current_position.x;
- yyval.state.y = current_position.y;
- yyval.state.dir = current_direction;
- }
-break;
-case 66:
-#line 579 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- current_position.x = yyvsp[-2].state.x;
- current_position.y = yyvsp[-2].state.y;
- current_direction = yyvsp[-2].state.dir;
- }
-break;
-case 67:
-#line 585 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pl = yyvsp[-3].pl;
- }
-break;
-case 68:
-#line 589 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pl.obj = 0;
- yyval.pl.x = current_position.x;
- yyval.pl.y = current_position.y;
- }
-break;
-case 69:
-#line 598 "/home/cjk/groff/src/preproc/pic/pic.y"
-{}
-break;
-case 70:
-#line 600 "/home/cjk/groff/src/preproc/pic/pic.y"
-{}
-break;
-case 71:
-#line 605 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = new object_spec(BOX_OBJECT);
- }
-break;
-case 72:
-#line 609 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = new object_spec(CIRCLE_OBJECT);
- }
-break;
-case 73:
-#line 613 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = new object_spec(ELLIPSE_OBJECT);
- }
-break;
-case 74:
-#line 617 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = new object_spec(ARC_OBJECT);
- yyval.spec->dir = current_direction;
- }
-break;
-case 75:
-#line 622 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = new object_spec(LINE_OBJECT);
- lookup_variable("lineht", & yyval.spec->segment_height);
- lookup_variable("linewid", & yyval.spec->segment_width);
- yyval.spec->dir = current_direction;
- }
-break;
-case 76:
-#line 629 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = new object_spec(ARROW_OBJECT);
- lookup_variable("lineht", & yyval.spec->segment_height);
- lookup_variable("linewid", & yyval.spec->segment_width);
- yyval.spec->dir = current_direction;
- }
-break;
-case 77:
-#line 636 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = new object_spec(MOVE_OBJECT);
- lookup_variable("moveht", & yyval.spec->segment_height);
- lookup_variable("movewid", & yyval.spec->segment_width);
- yyval.spec->dir = current_direction;
- }
-break;
-case 78:
-#line 643 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = new object_spec(SPLINE_OBJECT);
- lookup_variable("lineht", & yyval.spec->segment_height);
- lookup_variable("linewid", & yyval.spec->segment_width);
- yyval.spec->dir = current_direction;
- }
-break;
-case 79:
-#line 650 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = new object_spec(TEXT_OBJECT);
- yyval.spec->text = new text_item(yyvsp[0].lstr.str, yyvsp[0].lstr.filename, yyvsp[0].lstr.lineno);
- }
-break;
-case 80:
-#line 655 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = new object_spec(TEXT_OBJECT);
- yyval.spec->text = new text_item(format_number(0, yyvsp[0].x), 0, -1);
- }
-break;
-case 81:
-#line 660 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = new object_spec(TEXT_OBJECT);
- yyval.spec->text = new text_item(format_number(yyvsp[0].lstr.str, yyvsp[-1].x),
- yyvsp[0].lstr.filename, yyvsp[0].lstr.lineno);
- a_delete yyvsp[0].lstr.str;
- }
-break;
-case 82:
-#line 667 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- saved_state *p = new saved_state;
- yyval.pstate = p;
- p->x = current_position.x;
- p->y = current_position.y;
- p->dir = current_direction;
- p->tbl = current_table;
- p->prev = current_saved_state;
- current_position.x = 0.0;
- current_position.y = 0.0;
- current_table = new PTABLE(place);
- current_saved_state = p;
- olist.append(make_mark_object());
- }
-break;
-case 83:
-#line 682 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- current_position.x = yyvsp[-2].pstate->x;
- current_position.y = yyvsp[-2].pstate->y;
- current_direction = yyvsp[-2].pstate->dir;
- yyval.spec = new object_spec(BLOCK_OBJECT);
- olist.wrap_up_block(& yyval.spec->oblist);
- yyval.spec->tbl = current_table;
- current_table = yyvsp[-2].pstate->tbl;
- current_saved_state = yyvsp[-2].pstate->prev;
- delete yyvsp[-2].pstate;
- }
-break;
-case 84:
-#line 694 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->height = yyvsp[0].x;
- yyval.spec->flags |= HAS_HEIGHT;
- }
-break;
-case 85:
-#line 700 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->radius = yyvsp[0].x;
- yyval.spec->flags |= HAS_RADIUS;
- }
-break;
-case 86:
-#line 706 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->width = yyvsp[0].x;
- yyval.spec->flags |= HAS_WIDTH;
- }
-break;
-case 87:
-#line 712 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->radius = yyvsp[0].x/2.0;
- yyval.spec->flags |= HAS_RADIUS;
- }
-break;
-case 88:
-#line 718 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags |= HAS_SEGMENT;
- switch (yyval.spec->dir) {
- case UP_DIRECTION:
- yyval.spec->segment_pos.y += yyvsp[0].x;
- break;
- case DOWN_DIRECTION:
- yyval.spec->segment_pos.y -= yyvsp[0].x;
- break;
- case RIGHT_DIRECTION:
- yyval.spec->segment_pos.x += yyvsp[0].x;
- break;
- case LEFT_DIRECTION:
- yyval.spec->segment_pos.x -= yyvsp[0].x;
- break;
- }
- }
-break;
-case 89:
-#line 737 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->dir = UP_DIRECTION;
- yyval.spec->flags |= HAS_SEGMENT;
- yyval.spec->segment_pos.y += yyval.spec->segment_height;
- }
-break;
-case 90:
-#line 744 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->dir = UP_DIRECTION;
- yyval.spec->flags |= HAS_SEGMENT;
- yyval.spec->segment_pos.y += yyvsp[0].x;
- }
-break;
-case 91:
-#line 751 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->dir = DOWN_DIRECTION;
- yyval.spec->flags |= HAS_SEGMENT;
- yyval.spec->segment_pos.y -= yyval.spec->segment_height;
- }
-break;
-case 92:
-#line 758 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->dir = DOWN_DIRECTION;
- yyval.spec->flags |= HAS_SEGMENT;
- yyval.spec->segment_pos.y -= yyvsp[0].x;
- }
-break;
-case 93:
-#line 765 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->dir = RIGHT_DIRECTION;
- yyval.spec->flags |= HAS_SEGMENT;
- yyval.spec->segment_pos.x += yyval.spec->segment_width;
- }
-break;
-case 94:
-#line 772 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->dir = RIGHT_DIRECTION;
- yyval.spec->flags |= HAS_SEGMENT;
- yyval.spec->segment_pos.x += yyvsp[0].x;
- }
-break;
-case 95:
-#line 779 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->dir = LEFT_DIRECTION;
- yyval.spec->flags |= HAS_SEGMENT;
- yyval.spec->segment_pos.x -= yyval.spec->segment_width;
- }
-break;
-case 96:
-#line 786 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->dir = LEFT_DIRECTION;
- yyval.spec->flags |= HAS_SEGMENT;
- yyval.spec->segment_pos.x -= yyvsp[0].x;
- }
-break;
-case 97:
-#line 793 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->flags |= HAS_FROM;
- yyval.spec->from.x = yyvsp[0].pair.x;
- yyval.spec->from.y = yyvsp[0].pair.y;
- }
-break;
-case 98:
-#line 800 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- if (yyval.spec->flags & HAS_SEGMENT)
- yyval.spec->segment_list = new segment(yyval.spec->segment_pos,
- yyval.spec->segment_is_absolute,
- yyval.spec->segment_list);
- yyval.spec->flags |= HAS_SEGMENT;
- yyval.spec->segment_pos.x = yyvsp[0].pair.x;
- yyval.spec->segment_pos.y = yyvsp[0].pair.y;
- yyval.spec->segment_is_absolute = 1;
- yyval.spec->flags |= HAS_TO;
- yyval.spec->to.x = yyvsp[0].pair.x;
- yyval.spec->to.y = yyvsp[0].pair.y;
- }
-break;
-case 99:
-#line 815 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->flags |= HAS_AT;
- yyval.spec->at.x = yyvsp[0].pair.x;
- yyval.spec->at.y = yyvsp[0].pair.y;
- if (yyval.spec->type != ARC_OBJECT) {
- yyval.spec->flags |= HAS_FROM;
- yyval.spec->from.x = yyvsp[0].pair.x;
- yyval.spec->from.y = yyvsp[0].pair.y;
- }
- }
-break;
-case 100:
-#line 827 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->flags |= HAS_WITH;
- yyval.spec->with = yyvsp[0].pth;
- }
-break;
-case 101:
-#line 833 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->flags |= HAS_SEGMENT;
- yyval.spec->segment_pos.x += yyvsp[0].pair.x;
- yyval.spec->segment_pos.y += yyvsp[0].pair.y;
- }
-break;
-case 102:
-#line 840 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- if (yyval.spec->flags & HAS_SEGMENT) {
- yyval.spec->segment_list = new segment(yyval.spec->segment_pos,
- yyval.spec->segment_is_absolute,
- yyval.spec->segment_list);
- yyval.spec->flags &= ~HAS_SEGMENT;
- yyval.spec->segment_pos.x = yyval.spec->segment_pos.y = 0.0;
- yyval.spec->segment_is_absolute = 0;
- }
- }
-break;
-case 103:
-#line 852 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec; /* nothing*/
- }
-break;
-case 104:
-#line 856 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags |= IS_DOTTED;
- lookup_variable("dashwid", & yyval.spec->dash_width);
- }
-break;
-case 105:
-#line 862 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->flags |= IS_DOTTED;
- yyval.spec->dash_width = yyvsp[0].x;
- }
-break;
-case 106:
-#line 868 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags |= IS_DASHED;
- lookup_variable("dashwid", & yyval.spec->dash_width);
- }
-break;
-case 107:
-#line 874 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->flags |= IS_DASHED;
- yyval.spec->dash_width = yyvsp[0].x;
- }
-break;
-case 108:
-#line 880 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags |= IS_DEFAULT_FILLED;
- }
-break;
-case 109:
-#line 885 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->flags |= IS_FILLED;
- yyval.spec->fill = yyvsp[0].x;
- }
-break;
-case 110:
-#line 891 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- /* line chop chop means line chop 0 chop 0*/
- if (yyval.spec->flags & IS_DEFAULT_CHOPPED) {
- yyval.spec->flags |= IS_CHOPPED;
- yyval.spec->flags &= ~IS_DEFAULT_CHOPPED;
- yyval.spec->start_chop = yyval.spec->end_chop = 0.0;
- }
- else if (yyval.spec->flags & IS_CHOPPED) {
- yyval.spec->end_chop = 0.0;
- }
- else {
- yyval.spec->flags |= IS_DEFAULT_CHOPPED;
- }
- }
-break;
-case 111:
-#line 907 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- if (yyval.spec->flags & IS_DEFAULT_CHOPPED) {
- yyval.spec->flags |= IS_CHOPPED;
- yyval.spec->flags &= ~IS_DEFAULT_CHOPPED;
- yyval.spec->start_chop = 0.0;
- yyval.spec->end_chop = yyvsp[0].x;
- }
- else if (yyval.spec->flags & IS_CHOPPED) {
- yyval.spec->end_chop = yyvsp[0].x;
- }
- else {
- yyval.spec->start_chop = yyval.spec->end_chop = yyvsp[0].x;
- yyval.spec->flags |= IS_CHOPPED;
- }
- }
-break;
-case 112:
-#line 924 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags |= IS_SAME;
- }
-break;
-case 113:
-#line 929 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags |= IS_INVISIBLE;
- }
-break;
-case 114:
-#line 934 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags |= HAS_LEFT_ARROW_HEAD;
- }
-break;
-case 115:
-#line 939 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags |= HAS_RIGHT_ARROW_HEAD;
- }
-break;
-case 116:
-#line 944 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags |= (HAS_LEFT_ARROW_HEAD|HAS_RIGHT_ARROW_HEAD);
- }
-break;
-case 117:
-#line 949 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags |= IS_CLOCKWISE;
- }
-break;
-case 118:
-#line 954 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags &= ~IS_CLOCKWISE;
- }
-break;
-case 119:
-#line 959 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- text_item **p;
- for (p = & yyval.spec->text; *p; p = &(*p)->next)
- ;
- *p = new text_item(yyvsp[0].lstr.str, yyvsp[0].lstr.filename, yyvsp[0].lstr.lineno);
- }
-break;
-case 120:
-#line 967 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- if (yyval.spec->text) {
- text_item *p;
- for (p = yyval.spec->text; p->next; p = p->next)
- ;
- p->adj.h = LEFT_ADJUST;
- }
- }
-break;
-case 121:
-#line 977 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- if (yyval.spec->text) {
- text_item *p;
- for (p = yyval.spec->text; p->next; p = p->next)
- ;
- p->adj.h = RIGHT_ADJUST;
- }
- }
-break;
-case 122:
-#line 987 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- if (yyval.spec->text) {
- text_item *p;
- for (p = yyval.spec->text; p->next; p = p->next)
- ;
- p->adj.v = ABOVE_ADJUST;
- }
- }
-break;
-case 123:
-#line 997 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- if (yyval.spec->text) {
- text_item *p;
- for (p = yyval.spec->text; p->next; p = p->next)
- ;
- p->adj.v = BELOW_ADJUST;
- }
- }
-break;
-case 124:
-#line 1007 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-2].spec;
- yyval.spec->flags |= HAS_THICKNESS;
- yyval.spec->thickness = yyvsp[0].x;
- }
-break;
-case 125:
-#line 1013 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.spec = yyvsp[-1].spec;
- yyval.spec->flags |= IS_ALIGNED;
- }
-break;
-case 126:
-#line 1021 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.lstr = yyvsp[0].lstr;
- }
-break;
-case 127:
-#line 1025 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.lstr.filename = yyvsp[-2].lstr.filename;
- yyval.lstr.lineno = yyvsp[-2].lstr.lineno;
- yyval.lstr.str = do_sprintf(yyvsp[-2].lstr.str, yyvsp[-1].dv.v, yyvsp[-1].dv.nv);
- a_delete yyvsp[-1].dv.v;
- a_delete yyvsp[-2].lstr.str;
- }
-break;
-case 128:
-#line 1036 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.dv.v = 0;
- yyval.dv.nv = 0;
- yyval.dv.maxv = 0;
- }
-break;
-case 129:
-#line 1042 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.dv = yyvsp[-2].dv;
- if (yyval.dv.nv >= yyval.dv.maxv) {
- if (yyval.dv.nv == 0) {
- yyval.dv.v = new double[4];
- yyval.dv.maxv = 4;
- }
- else {
- double *oldv = yyval.dv.v;
- yyval.dv.maxv *= 2;
- yyval.dv.v = new double[yyval.dv.maxv];
- memcpy(yyval.dv.v, oldv, yyval.dv.nv*sizeof(double));
- a_delete oldv;
- }
- }
- yyval.dv.v[yyval.dv.nv] = yyvsp[0].x;
- yyval.dv.nv += 1;
- }
-break;
-case 130:
-#line 1064 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.pair = yyvsp[0].pair; }
-break;
-case 131:
-#line 1066 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- position pos = yyvsp[0].pl;
- yyval.pair.x = pos.x;
- yyval.pair.y = pos.y;
- }
-break;
-case 132:
-#line 1075 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.pair = yyvsp[0].pair; }
-break;
-case 133:
-#line 1077 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pair.x = yyvsp[-2].pair.x + yyvsp[0].pair.x;
- yyval.pair.y = yyvsp[-2].pair.y + yyvsp[0].pair.y;
- }
-break;
-case 134:
-#line 1082 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pair.x = yyvsp[-2].pair.x - yyvsp[0].pair.x;
- yyval.pair.y = yyvsp[-2].pair.y - yyvsp[0].pair.y;
- }
-break;
-case 135:
-#line 1087 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pair.x = yyvsp[-3].pair.x;
- yyval.pair.y = yyvsp[-1].pair.y;
- }
-break;
-case 136:
-#line 1092 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pair.x = (1.0 - yyvsp[-4].x)*yyvsp[-2].pair.x + yyvsp[-4].x*yyvsp[0].pair.x;
- yyval.pair.y = (1.0 - yyvsp[-4].x)*yyvsp[-2].pair.y + yyvsp[-4].x*yyvsp[0].pair.y;
- }
-break;
-case 137:
-#line 1097 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pair.x = (1.0 - yyvsp[-5].x)*yyvsp[-3].pair.x + yyvsp[-5].x*yyvsp[-1].pair.x;
- yyval.pair.y = (1.0 - yyvsp[-5].x)*yyvsp[-3].pair.y + yyvsp[-5].x*yyvsp[-1].pair.y;
- }
-break;
-case 140:
-#line 1110 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.pair.x = yyvsp[-2].x; yyval.pair.y = yyvsp[0].x; }
-break;
-case 141:
-#line 1112 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.pair = yyvsp[-1].pair; }
-break;
-case 142:
-#line 1117 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.pl = yyvsp[0].pl; }
-break;
-case 143:
-#line 1119 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- path pth(yyvsp[0].crn);
- if (!pth.follow(yyvsp[-1].pl, & yyval.pl))
- YYABORT;
- }
-break;
-case 144:
-#line 1125 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- path pth(yyvsp[-1].crn);
- if (!pth.follow(yyvsp[0].pl, & yyval.pl))
- YYABORT;
- }
-break;
-case 145:
-#line 1131 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- path pth(yyvsp[-2].crn);
- if (!pth.follow(yyvsp[0].pl, & yyval.pl))
- YYABORT;
- }
-break;
-case 146:
-#line 1137 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pl.x = current_position.x;
- yyval.pl.y = current_position.y;
- yyval.pl.obj = 0;
- }
-break;
-case 147:
-#line 1146 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- place *p = lookup_label(yyvsp[0].str);
- if (!p) {
- lex_error("there is no place `%1'", yyvsp[0].str);
- YYABORT;
- }
- yyval.pl = *p;
- a_delete yyvsp[0].str;
- }
-break;
-case 148:
-#line 1156 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pl.obj = yyvsp[0].obj;
- }
-break;
-case 149:
-#line 1160 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- path pth(yyvsp[0].str);
- if (!pth.follow(yyvsp[-2].pl, & yyval.pl))
- YYABORT;
- }
-break;
-case 150:
-#line 1169 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.n = yyvsp[0].n; }
-break;
-case 151:
-#line 1171 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- /* XXX Check for overflow (and non-integers?).*/
- yyval.n = (int)yyvsp[-1].x;
- }
-break;
-case 152:
-#line 1179 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.n = 1; }
-break;
-case 153:
-#line 1181 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.n = yyvsp[-1].n; }
-break;
-case 154:
-#line 1186 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- int count = 0;
- object *p;
- for (p = olist.head; p != 0; p = p->next)
- if (p->type() == yyvsp[0].obtype && ++count == yyvsp[-1].n) {
- yyval.obj = p;
- break;
- }
- if (p == 0) {
- lex_error("there is no %1%2 %3", yyvsp[-1].n, ordinal_postfix(yyvsp[-1].n),
- object_type_name(yyvsp[0].obtype));
- YYABORT;
- }
- }
-break;
-case 155:
-#line 1201 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- int count = 0;
- object *p;
- for (p = olist.tail; p != 0; p = p->prev)
- if (p->type() == yyvsp[0].obtype && ++count == yyvsp[-1].n) {
- yyval.obj = p;
- break;
- }
- if (p == 0) {
- lex_error("there is no %1%2 last %3", yyvsp[-1].n,
- ordinal_postfix(yyvsp[-1].n), object_type_name(yyvsp[0].obtype));
- YYABORT;
- }
- }
-break;
-case 156:
-#line 1219 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.obtype = BOX_OBJECT; }
-break;
-case 157:
-#line 1221 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.obtype = CIRCLE_OBJECT; }
-break;
-case 158:
-#line 1223 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.obtype = ELLIPSE_OBJECT; }
-break;
-case 159:
-#line 1225 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.obtype = ARC_OBJECT; }
-break;
-case 160:
-#line 1227 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.obtype = LINE_OBJECT; }
-break;
-case 161:
-#line 1229 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.obtype = ARROW_OBJECT; }
-break;
-case 162:
-#line 1231 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.obtype = SPLINE_OBJECT; }
-break;
-case 163:
-#line 1233 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.obtype = BLOCK_OBJECT; }
-break;
-case 164:
-#line 1235 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.obtype = TEXT_OBJECT; }
-break;
-case 165:
-#line 1240 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pth = new path(yyvsp[0].str);
- }
-break;
-case 166:
-#line 1244 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pth = yyvsp[-2].pth;
- yyval.pth->append(yyvsp[0].str);
- }
-break;
-case 167:
-#line 1252 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pth = new path(yyvsp[0].crn);
- }
-break;
-case 168:
-#line 1259 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pth = yyvsp[0].pth;
- }
-break;
-case 169:
-#line 1263 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pth = yyvsp[-1].pth;
- yyval.pth->append(yyvsp[0].crn);
- }
-break;
-case 170:
-#line 1271 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pth = yyvsp[0].pth;
- }
-break;
-case 171:
-#line 1275 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- yyval.pth = yyvsp[-3].pth;
- yyval.pth->set_ypath(yyvsp[-1].pth);
- }
-break;
-case 172:
-#line 1281 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- lex_warning("`%1%2 last %3' in `with' argument ignored",
- yyvsp[-3].n, ordinal_postfix(yyvsp[-3].n), object_type_name(yyvsp[-1].obtype));
- yyval.pth = yyvsp[0].pth;
- }
-break;
-case 173:
-#line 1287 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- lex_warning("`last %1' in `with' argument ignored",
- object_type_name(yyvsp[-1].obtype));
- yyval.pth = yyvsp[0].pth;
- }
-break;
-case 174:
-#line 1293 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- lex_warning("`%1%2 %3' in `with' argument ignored",
- yyvsp[-2].n, ordinal_postfix(yyvsp[-2].n), object_type_name(yyvsp[-1].obtype));
- yyval.pth = yyvsp[0].pth;
- }
-break;
-case 175:
-#line 1299 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- lex_warning("initial `%1' in `with' argument ignored", yyvsp[-1].str);
- a_delete yyvsp[-1].str;
- yyval.pth = yyvsp[0].pth;
- }
-break;
-case 176:
-#line 1308 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::north; }
-break;
-case 177:
-#line 1310 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::east; }
-break;
-case 178:
-#line 1312 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::west; }
-break;
-case 179:
-#line 1314 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::south; }
-break;
-case 180:
-#line 1316 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::north_east; }
-break;
-case 181:
-#line 1318 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object:: south_east; }
-break;
-case 182:
-#line 1320 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::north_west; }
-break;
-case 183:
-#line 1322 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::south_west; }
-break;
-case 184:
-#line 1324 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::center; }
-break;
-case 185:
-#line 1326 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::start; }
-break;
-case 186:
-#line 1328 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::end; }
-break;
-case 187:
-#line 1330 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::north; }
-break;
-case 188:
-#line 1332 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::south; }
-break;
-case 189:
-#line 1334 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::west; }
-break;
-case 190:
-#line 1336 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::east; }
-break;
-case 191:
-#line 1338 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::north_west; }
-break;
-case 192:
-#line 1340 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::south_west; }
-break;
-case 193:
-#line 1342 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::north_east; }
-break;
-case 194:
-#line 1344 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::south_east; }
-break;
-case 195:
-#line 1346 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::west; }
-break;
-case 196:
-#line 1348 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::east; }
-break;
-case 197:
-#line 1350 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::north_west; }
-break;
-case 198:
-#line 1352 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::south_west; }
-break;
-case 199:
-#line 1354 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::north_east; }
-break;
-case 200:
-#line 1356 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::south_east; }
-break;
-case 201:
-#line 1358 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::center; }
-break;
-case 202:
-#line 1360 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::start; }
-break;
-case 203:
-#line 1362 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.crn = &object::end; }
-break;
-case 204:
-#line 1367 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (!lookup_variable(yyvsp[0].str, & yyval.x)) {
- lex_error("there is no variable `%1'", yyvsp[0].str);
- YYABORT;
- }
- a_delete yyvsp[0].str;
- }
-break;
-case 205:
-#line 1375 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = yyvsp[0].x; }
-break;
-case 206:
-#line 1377 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (yyvsp[-1].pl.obj != 0)
- yyval.x = yyvsp[-1].pl.obj->origin().x;
- else
- yyval.x = yyvsp[-1].pl.x;
- }
-break;
-case 207:
-#line 1384 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (yyvsp[-1].pl.obj != 0)
- yyval.x = yyvsp[-1].pl.obj->origin().y;
- else
- yyval.x = yyvsp[-1].pl.y;
- }
-break;
-case 208:
-#line 1391 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (yyvsp[-1].pl.obj != 0)
- yyval.x = yyvsp[-1].pl.obj->height();
- else
- yyval.x = 0.0;
- }
-break;
-case 209:
-#line 1398 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (yyvsp[-1].pl.obj != 0)
- yyval.x = yyvsp[-1].pl.obj->width();
- else
- yyval.x = 0.0;
- }
-break;
-case 210:
-#line 1405 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (yyvsp[-1].pl.obj != 0)
- yyval.x = yyvsp[-1].pl.obj->radius();
- else
- yyval.x = 0.0;
- }
-break;
-case 211:
-#line 1412 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = yyvsp[-2].x + yyvsp[0].x; }
-break;
-case 212:
-#line 1414 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = yyvsp[-2].x - yyvsp[0].x; }
-break;
-case 213:
-#line 1416 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = yyvsp[-2].x * yyvsp[0].x; }
-break;
-case 214:
-#line 1418 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (yyvsp[0].x == 0.0) {
- lex_error("division by zero");
- YYABORT;
- }
- yyval.x = yyvsp[-2].x/yyvsp[0].x;
- }
-break;
-case 215:
-#line 1426 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- if (yyvsp[0].x == 0.0) {
- lex_error("modulus by zero");
- YYABORT;
- }
- yyval.x = fmod(yyvsp[-2].x, yyvsp[0].x);
- }
-break;
-case 216:
-#line 1434 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- errno = 0;
- yyval.x = pow(yyvsp[-2].x, yyvsp[0].x);
- if (errno == EDOM) {
- lex_error("arguments to `^' operator out of domain");
- YYABORT;
- }
- if (errno == ERANGE) {
- lex_error("result of `^' operator out of range");
- YYABORT;
- }
- }
-break;
-case 217:
-#line 1447 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = -yyvsp[0].x; }
-break;
-case 218:
-#line 1449 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = yyvsp[-1].x; }
-break;
-case 219:
-#line 1451 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- errno = 0;
- yyval.x = sin(yyvsp[-1].x);
- if (errno == ERANGE) {
- lex_error("sin result out of range");
- YYABORT;
- }
- }
-break;
-case 220:
-#line 1460 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- errno = 0;
- yyval.x = cos(yyvsp[-1].x);
- if (errno == ERANGE) {
- lex_error("cos result out of range");
- YYABORT;
- }
- }
-break;
-case 221:
-#line 1469 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- errno = 0;
- yyval.x = atan2(yyvsp[-3].x, yyvsp[-1].x);
- if (errno == EDOM) {
- lex_error("atan2 argument out of domain");
- YYABORT;
- }
- if (errno == ERANGE) {
- lex_error("atan2 result out of range");
- YYABORT;
- }
- }
-break;
-case 222:
-#line 1482 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- errno = 0;
- yyval.x = log10(yyvsp[-1].x);
- if (errno == ERANGE) {
- lex_error("log result out of range");
- YYABORT;
- }
- }
-break;
-case 223:
-#line 1491 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- errno = 0;
- yyval.x = pow(10.0, yyvsp[-1].x);
- if (errno == ERANGE) {
- lex_error("exp result out of range");
- YYABORT;
- }
- }
-break;
-case 224:
-#line 1500 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- errno = 0;
- yyval.x = sqrt(yyvsp[-1].x);
- if (errno == EDOM) {
- lex_error("sqrt argument out of domain");
- YYABORT;
- }
- }
-break;
-case 225:
-#line 1509 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = yyvsp[-3].x > yyvsp[-1].x ? yyvsp[-3].x : yyvsp[-1].x; }
-break;
-case 226:
-#line 1511 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = yyvsp[-3].x < yyvsp[-1].x ? yyvsp[-3].x : yyvsp[-1].x; }
-break;
-case 227:
-#line 1513 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = floor(yyvsp[-1].x); }
-break;
-case 228:
-#line 1515 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = 1.0 + floor(((rand()&0x7fff)/double(0x7fff))*yyvsp[-1].x); }
-break;
-case 229:
-#line 1517 "/home/cjk/groff/src/preproc/pic/pic.y"
-{
- /* return a random number in the range [0,1) */
- /* portable, but not very random */
- yyval.x = (rand() & 0x7fff) / double(0x8000);
- }
-break;
-case 230:
-#line 1523 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = 0; srand((unsigned int)yyvsp[-1].x); }
-break;
-case 231:
-#line 1525 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x < yyvsp[0].x); }
-break;
-case 232:
-#line 1527 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x <= yyvsp[0].x); }
-break;
-case 233:
-#line 1529 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x > yyvsp[0].x); }
-break;
-case 234:
-#line 1531 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x >= yyvsp[0].x); }
-break;
-case 235:
-#line 1533 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x == yyvsp[0].x); }
-break;
-case 236:
-#line 1535 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x != yyvsp[0].x); }
-break;
-case 237:
-#line 1537 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x != 0.0 && yyvsp[0].x != 0.0); }
-break;
-case 238:
-#line 1539 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[-2].x != 0.0 || yyvsp[0].x != 0.0); }
-break;
-case 239:
-#line 1541 "/home/cjk/groff/src/preproc/pic/pic.y"
-{ yyval.x = (yyvsp[0].x == 0.0); }
-break;
-#line 5161 "y.tab.c"
- }
- yyssp -= yym;
- yystate = *yyssp;
- yyvsp -= yym;
- yym = yylhs[yyn];
- if (yystate == 0 && yym == 0)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: after reduction, shifting from state 0 to\
- state %d\n", YYPREFIX, YYFINAL);
-#endif
- yystate = YYFINAL;
- *++yyssp = YYFINAL;
- *++yyvsp = yyval;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, reading %d (%s)\n",
- YYPREFIX, YYFINAL, yychar, yys);
- }
-#endif
- }
- if (yychar == 0) goto yyaccept;
- goto yyloop;
- }
- if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
- yystate = yytable[yyn];
- else
- yystate = yydgoto[yym];
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: after reduction, shifting from state %d \
-to state %d\n", YYPREFIX, *yyssp, yystate);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
-yyoverflow:
- yyerror("yacc stack overflow");
-yyabort:
- return (1);
-yyaccept:
- return (0);
-}
diff --git a/contrib/groff/src/preproc/pic/pic_tab.h b/contrib/groff/src/preproc/pic/pic_tab.h
deleted file mode 100644
index 1765882..0000000
--- a/contrib/groff/src/preproc/pic/pic_tab.h
+++ /dev/null
@@ -1,131 +0,0 @@
-#define LABEL 257
-#define VARIABLE 258
-#define NUMBER 259
-#define TEXT 260
-#define COMMAND_LINE 261
-#define DELIMITED 262
-#define ORDINAL 263
-#define TH 264
-#define LEFT_ARROW_HEAD 265
-#define RIGHT_ARROW_HEAD 266
-#define DOUBLE_ARROW_HEAD 267
-#define LAST 268
-#define UP 269
-#define DOWN 270
-#define LEFT 271
-#define RIGHT 272
-#define BOX 273
-#define CIRCLE 274
-#define ELLIPSE 275
-#define ARC 276
-#define LINE 277
-#define ARROW 278
-#define MOVE 279
-#define SPLINE 280
-#define HEIGHT 281
-#define RADIUS 282
-#define WIDTH 283
-#define DIAMETER 284
-#define FROM 285
-#define TO 286
-#define AT 287
-#define WITH 288
-#define BY 289
-#define THEN 290
-#define SOLID 291
-#define DOTTED 292
-#define DASHED 293
-#define CHOP 294
-#define SAME 295
-#define INVISIBLE 296
-#define LJUST 297
-#define RJUST 298
-#define ABOVE 299
-#define BELOW 300
-#define OF 301
-#define THE 302
-#define WAY 303
-#define BETWEEN 304
-#define AND 305
-#define HERE 306
-#define DOT_N 307
-#define DOT_E 308
-#define DOT_W 309
-#define DOT_S 310
-#define DOT_NE 311
-#define DOT_SE 312
-#define DOT_NW 313
-#define DOT_SW 314
-#define DOT_C 315
-#define DOT_START 316
-#define DOT_END 317
-#define DOT_X 318
-#define DOT_Y 319
-#define DOT_HT 320
-#define DOT_WID 321
-#define DOT_RAD 322
-#define SIN 323
-#define COS 324
-#define ATAN2 325
-#define LOG 326
-#define EXP 327
-#define SQRT 328
-#define K_MAX 329
-#define K_MIN 330
-#define INT 331
-#define RAND 332
-#define SRAND 333
-#define COPY 334
-#define THRU 335
-#define TOP 336
-#define BOTTOM 337
-#define UPPER 338
-#define LOWER 339
-#define SH 340
-#define PRINT 341
-#define CW 342
-#define CCW 343
-#define FOR 344
-#define DO 345
-#define IF 346
-#define ELSE 347
-#define ANDAND 348
-#define OROR 349
-#define NOTEQUAL 350
-#define EQUALEQUAL 351
-#define LESSEQUAL 352
-#define GREATEREQUAL 353
-#define LEFT_CORNER 354
-#define RIGHT_CORNER 355
-#define CENTER 356
-#define END 357
-#define START 358
-#define RESET 359
-#define UNTIL 360
-#define PLOT 361
-#define THICKNESS 362
-#define FILL 363
-#define ALIGNED 364
-#define SPRINTF 365
-#define COMMAND 366
-#define DEFINE 367
-#define UNDEF 368
-typedef union {
- char *str;
- int n;
- double x;
- struct { double x, y; } pair;
- struct { double x; char *body; } if_data;
- struct { char *str; const char *filename; int lineno; } lstr;
- struct { double *v; int nv; int maxv; } dv;
- struct { double val; int is_multiplicative; } by;
- place pl;
- object *obj;
- corner crn;
- path *pth;
- object_spec *spec;
- saved_state *pstate;
- graphics_state state;
- object_type obtype;
-} YYSTYPE;
-extern YYSTYPE yylval;
diff --git a/contrib/groff/src/preproc/refer/label.cc b/contrib/groff/src/preproc/refer/label.cc
deleted file mode 100644
index c6dc07c..0000000
--- a/contrib/groff/src/preproc/refer/label.cc
+++ /dev/null
@@ -1,1602 +0,0 @@
-#ifndef lint
-/*static char yysccsid[] = "from: @(#)yaccpar 1.9 (Berkeley) 02/21/93";*/
-static char yyrcsid[] = "$Id: label.cc,v 1.2 2000/02/28 11:02:12 wlemb Exp $";
-#endif
-#define YYBYACC 1
-#define YYMAJOR 1
-#define YYMINOR 9
-#define yyclearin (yychar=(-1))
-#define yyerrok (yyerrflag=0)
-#define YYRECOVERING (yyerrflag!=0)
-#define YYPREFIX "yy"
-#line 22 "label.y"
-
-#include "refer.h"
-#include "refid.h"
-#include "ref.h"
-#include "token.h"
-
-int yylex();
-void yyerror(const char *);
-int yyparse();
-
-static const char *format_serial(char c, int n);
-
-struct label_info {
- int start;
- int length;
- int count;
- int total;
- label_info(const string &);
-};
-
-label_info *lookup_label(const string &label);
-
-struct expression {
- enum {
- /* Does the tentative label depend on the reference?*/
- CONTAINS_VARIABLE = 01,
- CONTAINS_STAR = 02,
- CONTAINS_FORMAT = 04,
- CONTAINS_AT = 010
- };
- virtual ~expression() { }
- virtual void evaluate(int, const reference &, string &,
- substring_position &) = 0;
- virtual unsigned analyze() { return 0; }
-};
-
-class at_expr : public expression {
-public:
- at_expr() { }
- void evaluate(int, const reference &, string &, substring_position &);
- unsigned analyze() { return CONTAINS_VARIABLE|CONTAINS_AT; }
-};
-
-class format_expr : public expression {
- char type;
- int width;
- int first_number;
-public:
- format_expr(char c, int w = 0, int f = 1)
- : type(c), width(w), first_number(f) { }
- void evaluate(int, const reference &, string &, substring_position &);
- unsigned analyze() { return CONTAINS_FORMAT; }
-};
-
-class field_expr : public expression {
- int number;
- char name;
-public:
- field_expr(char nm, int num) : number(num), name(nm) { }
- void evaluate(int, const reference &, string &, substring_position &);
- unsigned analyze() { return CONTAINS_VARIABLE; }
-};
-
-class literal_expr : public expression {
- string s;
-public:
- literal_expr(const char *ptr, int len) : s(ptr, len) { }
- void evaluate(int, const reference &, string &, substring_position &);
-};
-
-class unary_expr : public expression {
-protected:
- expression *expr;
-public:
- unary_expr(expression *e) : expr(e) { }
- ~unary_expr() { delete expr; }
- void evaluate(int, const reference &, string &, substring_position &) = 0;
- unsigned analyze() { return expr ? expr->analyze() : 0; }
-};
-
-/* This caches the analysis of an expression.*/
-
-class analyzed_expr : public unary_expr {
- unsigned flags;
-public:
- analyzed_expr(expression *);
- void evaluate(int, const reference &, string &, substring_position &);
- unsigned analyze() { return flags; }
-};
-
-class star_expr : public unary_expr {
-public:
- star_expr(expression *e) : unary_expr(e) { }
- void evaluate(int, const reference &, string &, substring_position &);
- unsigned analyze() {
- return ((expr ? (expr->analyze() & ~CONTAINS_VARIABLE) : 0)
- | CONTAINS_STAR);
- }
-};
-
-typedef void map_func(const char *, const char *, string &);
-
-class map_expr : public unary_expr {
- map_func *func;
-public:
- map_expr(expression *e, map_func *f) : unary_expr(e), func(f) { }
- void evaluate(int, const reference &, string &, substring_position &);
-};
-
-typedef const char *extractor_func(const char *, const char *, const char **);
-
-class extractor_expr : public unary_expr {
- int part;
- extractor_func *func;
-public:
- enum { BEFORE = +1, MATCH = 0, AFTER = -1 };
- extractor_expr(expression *e, extractor_func *f, int pt)
- : unary_expr(e), part(pt), func(f) { }
- void evaluate(int, const reference &, string &, substring_position &);
-};
-
-class truncate_expr : public unary_expr {
- int n;
-public:
- truncate_expr(expression *e, int i) : unary_expr(e), n(i) { }
- void evaluate(int, const reference &, string &, substring_position &);
-};
-
-class separator_expr : public unary_expr {
-public:
- separator_expr(expression *e) : unary_expr(e) { }
- void evaluate(int, const reference &, string &, substring_position &);
-};
-
-class binary_expr : public expression {
-protected:
- expression *expr1;
- expression *expr2;
-public:
- binary_expr(expression *e1, expression *e2) : expr1(e1), expr2(e2) { }
- ~binary_expr() { delete expr1; delete expr2; }
- void evaluate(int, const reference &, string &, substring_position &) = 0;
- unsigned analyze() {
- return (expr1 ? expr1->analyze() : 0) | (expr2 ? expr2->analyze() : 0);
- }
-};
-
-class alternative_expr : public binary_expr {
-public:
- alternative_expr(expression *e1, expression *e2) : binary_expr(e1, e2) { }
- void evaluate(int, const reference &, string &, substring_position &);
-};
-
-class list_expr : public binary_expr {
-public:
- list_expr(expression *e1, expression *e2) : binary_expr(e1, e2) { }
- void evaluate(int, const reference &, string &, substring_position &);
-};
-
-class substitute_expr : public binary_expr {
-public:
- substitute_expr(expression *e1, expression *e2) : binary_expr(e1, e2) { }
- void evaluate(int, const reference &, string &, substring_position &);
-};
-
-class ternary_expr : public expression {
-protected:
- expression *expr1;
- expression *expr2;
- expression *expr3;
-public:
- ternary_expr(expression *e1, expression *e2, expression *e3)
- : expr1(e1), expr2(e2), expr3(e3) { }
- ~ternary_expr() { delete expr1; delete expr2; delete expr3; }
- void evaluate(int, const reference &, string &, substring_position &) = 0;
- unsigned analyze() {
- return ((expr1 ? expr1->analyze() : 0)
- | (expr2 ? expr2->analyze() : 0)
- | (expr3 ? expr3->analyze() : 0));
- }
-};
-
-class conditional_expr : public ternary_expr {
-public:
- conditional_expr(expression *e1, expression *e2, expression *e3)
- : ternary_expr(e1, e2, e3) { }
- void evaluate(int, const reference &, string &, substring_position &);
-};
-
-static expression *parsed_label = 0;
-static expression *parsed_date_label = 0;
-static expression *parsed_short_label = 0;
-
-static expression *parse_result;
-
-string literals;
-
-#line 221 "label.y"
-typedef union {
- int num;
- expression *expr;
- struct { int ndigits; int val; } dig;
- struct { int start; int len; } str;
-} YYSTYPE;
-#line 218 "y.tab.c"
-#define TOKEN_LETTER 257
-#define TOKEN_LITERAL 258
-#define TOKEN_DIGIT 259
-#define YYERRCODE 256
-short yylhs[] = { -1,
- 0, 1, 1, 6, 6, 2, 2, 2, 3, 3,
- 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 9, 9, 7, 7, 8, 8,
- 10, 10, 10,
-};
-short yylen[] = { 2,
- 1, 1, 5, 0, 1, 1, 3, 3, 1, 2,
- 1, 3, 1, 1, 1, 2, 2, 2, 5, 3,
- 3, 2, 3, 3, 0, 1, 1, 2, 1, 2,
- 0, 1, 1,
-};
-short yydefred[] = { 0,
- 0, 14, 13, 0, 0, 0, 0, 5, 0, 0,
- 0, 0, 1, 27, 0, 17, 29, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 22, 0, 28,
- 30, 23, 24, 0, 0, 0, 32, 33, 0, 0,
- 0, 0, 0, 0, 3, 0, 19,
-};
-short yydgoto[] = { 7,
- 8, 9, 10, 11, 12, 13, 15, 18, 47, 39,
-};
-short yysindex[] = { -32,
- -257, 0, 0, -240, -32, -32, 0, 0, -18, -32,
- -36, -114, 0, 0, -246, 0, 0, -241, -14, -39,
- -32, -32, -32, -114, -21, -257, -257, 0, -32, 0,
- 0, 0, 0, -25, -32, -32, 0, 0, -223, -246,
- -246, -36, -32, -257, 0, -246, 0,
-};
-short yyrindex[] = { 35,
- 1, 0, 0, 0, -5, -4, 0, 0, 14, 208,
- 159, 224, 0, 0, 11, 0, 0, 40, 0, 0,
- 2, 0, 0, 253, -220, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 263, 281, 0, 0, 0, 50,
- 105, 214, 0, 115, 0, 149, 0,
-};
-short yygindex[] = { 0,
- 19, 0, 7, 37, -10, 10, -23, 0, 0, 0,
-};
-#define YYTABLESIZE 511
-short yytable[] = { 24,
- 15, 14, 40, 41, 4, 28, 26, 5, 27, 25,
- 16, 29, 30, 2, 19, 20, 16, 31, 17, 23,
- 46, 37, 33, 38, 24, 24, 32, 6, 35, 36,
- 34, 3, 43, 44, 4, 4, 31, 15, 15, 18,
- 15, 15, 15, 15, 21, 15, 15, 16, 16, 20,
- 16, 16, 16, 16, 2, 16, 16, 4, 15, 4,
- 15, 45, 15, 15, 15, 42, 0, 0, 16, 0,
- 16, 2, 16, 16, 16, 2, 18, 18, 0, 18,
- 18, 18, 18, 0, 18, 18, 20, 20, 0, 20,
- 20, 20, 20, 0, 20, 20, 0, 18, 0, 18,
- 0, 18, 18, 18, 21, 22, 0, 20, 0, 20,
- 0, 20, 20, 20, 25, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 15, 0, 15, 0, 0, 0,
- 0, 0, 0, 0, 16, 0, 16, 0, 0, 0,
- 0, 21, 21, 0, 21, 21, 21, 21, 26, 21,
- 21, 25, 25, 0, 25, 25, 25, 25, 11, 25,
- 25, 0, 21, 18, 21, 18, 21, 21, 21, 0,
- 0, 0, 25, 20, 25, 20, 25, 25, 25, 0,
- 0, 0, 0, 0, 0, 26, 26, 0, 26, 26,
- 26, 26, 0, 26, 26, 11, 11, 0, 11, 11,
- 0, 0, 0, 0, 0, 0, 26, 6, 26, 0,
- 26, 26, 26, 12, 0, 0, 11, 0, 11, 0,
- 11, 11, 11, 9, 1, 2, 0, 0, 21, 0,
- 21, 0, 0, 0, 0, 0, 0, 0, 25, 0,
- 25, 0, 0, 0, 0, 6, 0, 0, 6, 0,
- 12, 12, 10, 12, 12, 0, 0, 15, 15, 0,
- 9, 9, 7, 9, 9, 6, 0, 16, 16, 6,
- 6, 12, 26, 12, 26, 12, 12, 12, 0, 0,
- 8, 9, 11, 9, 11, 9, 9, 9, 0, 10,
- 10, 0, 10, 10, 0, 0, 18, 18, 0, 0,
- 7, 0, 0, 7, 0, 0, 20, 20, 0, 0,
- 10, 0, 10, 0, 10, 10, 10, 0, 8, 0,
- 7, 8, 0, 0, 7, 7, 0, 0, 0, 0,
- 0, 6, 0, 0, 0, 0, 0, 12, 8, 12,
- 0, 0, 8, 8, 0, 0, 0, 9, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 21, 21, 0, 0, 0, 0, 0, 0, 0,
- 0, 25, 25, 0, 0, 0, 10, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 8, 26, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 11, 11, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 12, 12, 0, 0, 0, 0, 0, 0, 0, 0,
- 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 10,
- 10,
-};
-short yycheck[] = { 10,
- 0, 259, 26, 27, 37, 42, 43, 40, 45, 46,
- 0, 126, 259, 0, 5, 6, 257, 259, 259, 38,
- 44, 43, 62, 45, 35, 36, 41, 60, 22, 23,
- 21, 64, 58, 257, 0, 41, 257, 37, 38, 0,
- 40, 41, 42, 43, 63, 45, 46, 37, 38, 0,
- 40, 41, 42, 43, 41, 45, 46, 62, 58, 58,
- 60, 43, 62, 63, 64, 29, -1, -1, 58, -1,
- 60, 58, 62, 63, 64, 62, 37, 38, -1, 40,
- 41, 42, 43, -1, 45, 46, 37, 38, -1, 40,
- 41, 42, 43, -1, 45, 46, -1, 58, -1, 60,
- -1, 62, 63, 64, 0, 124, -1, 58, -1, 60,
- -1, 62, 63, 64, 0, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 124, -1, 126, -1, -1, -1,
- -1, -1, -1, -1, 124, -1, 126, -1, -1, -1,
- -1, 37, 38, -1, 40, 41, 42, 43, 0, 45,
- 46, 37, 38, -1, 40, 41, 42, 43, 0, 45,
- 46, -1, 58, 124, 60, 126, 62, 63, 64, -1,
- -1, -1, 58, 124, 60, 126, 62, 63, 64, -1,
- -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
- 42, 43, -1, 45, 46, 37, 38, -1, 40, 41,
- -1, -1, -1, -1, -1, -1, 58, 0, 60, -1,
- 62, 63, 64, 0, -1, -1, 58, -1, 60, -1,
- 62, 63, 64, 0, 257, 258, -1, -1, 124, -1,
- 126, -1, -1, -1, -1, -1, -1, -1, 124, -1,
- 126, -1, -1, -1, -1, 38, -1, -1, 41, -1,
- 37, 38, 0, 40, 41, -1, -1, 257, 258, -1,
- 37, 38, 0, 40, 41, 58, -1, 257, 258, 62,
- 63, 58, 124, 60, 126, 62, 63, 64, -1, -1,
- 0, 58, 124, 60, 126, 62, 63, 64, -1, 37,
- 38, -1, 40, 41, -1, -1, 257, 258, -1, -1,
- 38, -1, -1, 41, -1, -1, 257, 258, -1, -1,
- 58, -1, 60, -1, 62, 63, 64, -1, 38, -1,
- 58, 41, -1, -1, 62, 63, -1, -1, -1, -1,
- -1, 124, -1, -1, -1, -1, -1, 124, 58, 126,
- -1, -1, 62, 63, -1, -1, -1, 124, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 257, 258, -1, -1, -1, -1, -1, -1, -1,
- -1, 257, 258, -1, -1, -1, 124, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 124, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 124, 257, 258, -1, -1, -1,
- -1, -1, -1, -1, -1, 257, 258, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 257, 258, -1, -1, -1, -1, -1, -1, -1, -1,
- 257, 258, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 257,
- 258,
-};
-#define YYFINAL 7
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 259
-#if YYDEBUG
-char *yyname[] = {
-"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,"'%'","'&'",0,"'('","')'","'*'","'+'",0,"'-'","'.'",0,0,0,0,0,0,0,0,0,0,0,
-"':'",0,"'<'",0,"'>'","'?'","'@'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'|'",0,
-"'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,"TOKEN_LETTER","TOKEN_LITERAL","TOKEN_DIGIT",
-};
-char *yyrule[] = {
-"$accept : expr",
-"expr : optional_conditional",
-"conditional : alternative",
-"conditional : alternative '?' optional_conditional ':' conditional",
-"optional_conditional :",
-"optional_conditional : conditional",
-"alternative : list",
-"alternative : alternative '|' list",
-"alternative : alternative '&' list",
-"list : substitute",
-"list : list substitute",
-"substitute : string",
-"substitute : substitute '~' string",
-"string : '@'",
-"string : TOKEN_LITERAL",
-"string : TOKEN_LETTER",
-"string : TOKEN_LETTER number",
-"string : '%' TOKEN_LETTER",
-"string : '%' digits",
-"string : string '.' flag TOKEN_LETTER optional_number",
-"string : string '+' number",
-"string : string '-' number",
-"string : string '*'",
-"string : '(' optional_conditional ')'",
-"string : '<' optional_conditional '>'",
-"optional_number :",
-"optional_number : number",
-"number : TOKEN_DIGIT",
-"number : number TOKEN_DIGIT",
-"digits : TOKEN_DIGIT",
-"digits : digits TOKEN_DIGIT",
-"flag :",
-"flag : '+'",
-"flag : '-'",
-};
-#endif
-#ifdef YYSTACKSIZE
-#undef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
-#else
-#define YYSTACKSIZE 500
-#define YYMAXDEPTH 500
-#endif
-#endif
-int yydebug;
-int yynerrs;
-int yyerrflag;
-int yychar;
-short *yyssp;
-YYSTYPE *yyvsp;
-YYSTYPE yyval;
-YYSTYPE yylval;
-short yyss[YYSTACKSIZE];
-YYSTYPE yyvs[YYSTACKSIZE];
-#define yystacksize YYSTACKSIZE
-#line 397 "label.y"
-
-/* bison defines const to be empty unless __STDC__ is defined, which it
-isn't under cfront */
-
-#ifdef const
-#undef const
-#endif
-
-const char *spec_ptr;
-const char *spec_end;
-const char *spec_cur;
-
-int yylex()
-{
- while (spec_ptr < spec_end && csspace(*spec_ptr))
- spec_ptr++;
- spec_cur = spec_ptr;
- if (spec_ptr >= spec_end)
- return 0;
- unsigned char c = *spec_ptr++;
- if (csalpha(c)) {
- yylval.num = c;
- return TOKEN_LETTER;
- }
- if (csdigit(c)) {
- yylval.num = c - '0';
- return TOKEN_DIGIT;
- }
- if (c == '\'') {
- yylval.str.start = literals.length();
- for (; spec_ptr < spec_end; spec_ptr++) {
- if (*spec_ptr == '\'') {
- if (++spec_ptr < spec_end && *spec_ptr == '\'')
- literals += '\'';
- else {
- yylval.str.len = literals.length() - yylval.str.start;
- return TOKEN_LITERAL;
- }
- }
- else
- literals += *spec_ptr;
- }
- yylval.str.len = literals.length() - yylval.str.start;
- return TOKEN_LITERAL;
- }
- return c;
-}
-
-int set_label_spec(const char *label_spec)
-{
- spec_cur = spec_ptr = label_spec;
- spec_end = strchr(label_spec, '\0');
- literals.clear();
- if (yyparse())
- return 0;
- delete parsed_label;
- parsed_label = parse_result;
- return 1;
-}
-
-int set_date_label_spec(const char *label_spec)
-{
- spec_cur = spec_ptr = label_spec;
- spec_end = strchr(label_spec, '\0');
- literals.clear();
- if (yyparse())
- return 0;
- delete parsed_date_label;
- parsed_date_label = parse_result;
- return 1;
-}
-
-int set_short_label_spec(const char *label_spec)
-{
- spec_cur = spec_ptr = label_spec;
- spec_end = strchr(label_spec, '\0');
- literals.clear();
- if (yyparse())
- return 0;
- delete parsed_short_label;
- parsed_short_label = parse_result;
- return 1;
-}
-
-void yyerror(const char *message)
-{
- if (spec_cur < spec_end)
- command_error("label specification %1 before `%2'", message, spec_cur);
- else
- command_error("label specification %1 at end of string",
- message, spec_cur);
-}
-
-void at_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &)
-{
- if (tentative)
- ref.canonicalize_authors(result);
- else {
- const char *end, *start = ref.get_authors(&end);
- if (start)
- result.append(start, end - start);
- }
-}
-
-void format_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &)
-{
- if (tentative)
- return;
- const label_info *lp = ref.get_label_ptr();
- int num = lp == 0 ? ref.get_number() : lp->count;
- if (type != '0')
- result += format_serial(type, num + 1);
- else {
- const char *ptr = i_to_a(num + first_number);
- int pad = width - strlen(ptr);
- while (--pad >= 0)
- result += '0';
- result += ptr;
- }
-}
-
-static const char *format_serial(char c, int n)
-{
- assert(n > 0);
- static char buf[128]; // more than enough.
- switch (c) {
- case 'i':
- case 'I':
- {
- char *p = buf;
- // troff uses z and w to represent 10000 and 5000 in Roman
- // numerals; I can find no historical basis for this usage
- const char *s = c == 'i' ? "zwmdclxvi" : "ZWMDCLXVI";
- if (n >= 40000)
- return i_to_a(n);
- while (n >= 10000) {
- *p++ = s[0];
- n -= 10000;
- }
- for (int i = 1000; i > 0; i /= 10, s += 2) {
- int m = n/i;
- n -= m*i;
- switch (m) {
- case 3:
- *p++ = s[2];
- /* falls through */
- case 2:
- *p++ = s[2];
- /* falls through */
- case 1:
- *p++ = s[2];
- break;
- case 4:
- *p++ = s[2];
- *p++ = s[1];
- break;
- case 8:
- *p++ = s[1];
- *p++ = s[2];
- *p++ = s[2];
- *p++ = s[2];
- break;
- case 7:
- *p++ = s[1];
- *p++ = s[2];
- *p++ = s[2];
- break;
- case 6:
- *p++ = s[1];
- *p++ = s[2];
- break;
- case 5:
- *p++ = s[1];
- break;
- case 9:
- *p++ = s[2];
- *p++ = s[0];
- }
- }
- *p = 0;
- break;
- }
- case 'a':
- case 'A':
- {
- char *p = buf;
- // this is derived from troff/reg.c
- while (n > 0) {
- int d = n % 26;
- if (d == 0)
- d = 26;
- n -= d;
- n /= 26;
- *p++ = c + d - 1; // ASCII dependent
- }
- *p-- = 0;
- // Reverse it.
- char *q = buf;
- while (q < p) {
- char temp = *q;
- *q = *p;
- *p = temp;
- --p;
- ++q;
- }
- break;
- }
- default:
- assert(0);
- }
- return buf;
-}
-
-void field_expr::evaluate(int, const reference &ref,
- string &result, substring_position &)
-{
- const char *end;
- const char *start = ref.get_field(name, &end);
- if (start) {
- start = nth_field(number, start, &end);
- if (start)
- result.append(start, end - start);
- }
-}
-
-void literal_expr::evaluate(int, const reference &,
- string &result, substring_position &)
-{
- result += s;
-}
-
-analyzed_expr::analyzed_expr(expression *e)
-: unary_expr(e), flags(e ? e->analyze() : 0)
-{
-}
-
-void analyzed_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &pos)
-{
- if (expr)
- expr->evaluate(tentative, ref, result, pos);
-}
-
-void star_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &pos)
-{
- const label_info *lp = ref.get_label_ptr();
- if (!tentative
- && (lp == 0 || lp->total > 1)
- && expr)
- expr->evaluate(tentative, ref, result, pos);
-}
-
-void separator_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &pos)
-{
- int start_length = result.length();
- int is_first = pos.start < 0;
- if (expr)
- expr->evaluate(tentative, ref, result, pos);
- if (is_first) {
- pos.start = start_length;
- pos.length = result.length() - start_length;
- }
-}
-
-void map_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &)
-{
- if (expr) {
- string temp;
- substring_position temp_pos;
- expr->evaluate(tentative, ref, temp, temp_pos);
- (*func)(temp.contents(), temp.contents() + temp.length(), result);
- }
-}
-
-void extractor_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &)
-{
- if (expr) {
- string temp;
- substring_position temp_pos;
- expr->evaluate(tentative, ref, temp, temp_pos);
- const char *end, *start = (*func)(temp.contents(),
- temp.contents() + temp.length(),
- &end);
- switch (part) {
- case BEFORE:
- if (start)
- result.append(temp.contents(), start - temp.contents());
- else
- result += temp;
- break;
- case MATCH:
- if (start)
- result.append(start, end - start);
- break;
- case AFTER:
- if (start)
- result.append(end, temp.contents() + temp.length() - end);
- break;
- default:
- assert(0);
- }
- }
-}
-
-static void first_part(int len, const char *ptr, const char *end,
- string &result)
-{
- for (;;) {
- const char *token_start = ptr;
- if (!get_token(&ptr, end))
- break;
- const token_info *ti = lookup_token(token_start, ptr);
- int counts = ti->sortify_non_empty(token_start, ptr);
- if (counts && --len < 0)
- break;
- if (counts || ti->is_accent())
- result.append(token_start, ptr - token_start);
- }
-}
-
-static void last_part(int len, const char *ptr, const char *end,
- string &result)
-{
- const char *start = ptr;
- int count = 0;
- for (;;) {
- const char *token_start = ptr;
- if (!get_token(&ptr, end))
- break;
- const token_info *ti = lookup_token(token_start, ptr);
- if (ti->sortify_non_empty(token_start, ptr))
- count++;
- }
- ptr = start;
- int skip = count - len;
- if (skip > 0) {
- for (;;) {
- const char *token_start = ptr;
- if (!get_token(&ptr, end))
- assert(0);
- const token_info *ti = lookup_token(token_start, ptr);
- if (ti->sortify_non_empty(token_start, ptr) && --skip < 0) {
- ptr = token_start;
- break;
- }
- }
- }
- first_part(len, ptr, end, result);
-}
-
-void truncate_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &)
-{
- if (expr) {
- string temp;
- substring_position temp_pos;
- expr->evaluate(tentative, ref, temp, temp_pos);
- const char *start = temp.contents();
- const char *end = start + temp.length();
- if (n > 0)
- first_part(n, start, end, result);
- else if (n < 0)
- last_part(-n, start, end, result);
- }
-}
-
-void alternative_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &pos)
-{
- int start_length = result.length();
- if (expr1)
- expr1->evaluate(tentative, ref, result, pos);
- if (result.length() == start_length && expr2)
- expr2->evaluate(tentative, ref, result, pos);
-}
-
-void list_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &pos)
-{
- if (expr1)
- expr1->evaluate(tentative, ref, result, pos);
- if (expr2)
- expr2->evaluate(tentative, ref, result, pos);
-}
-
-void substitute_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &pos)
-{
- int start_length = result.length();
- if (expr1)
- expr1->evaluate(tentative, ref, result, pos);
- if (result.length() > start_length && result[result.length() - 1] == '-') {
- // ought to see if pos covers the -
- result.set_length(result.length() - 1);
- if (expr2)
- expr2->evaluate(tentative, ref, result, pos);
- }
-}
-
-void conditional_expr::evaluate(int tentative, const reference &ref,
- string &result, substring_position &pos)
-{
- string temp;
- substring_position temp_pos;
- if (expr1)
- expr1->evaluate(tentative, ref, temp, temp_pos);
- if (temp.length() > 0) {
- if (expr2)
- expr2->evaluate(tentative, ref, result, pos);
- }
- else {
- if (expr3)
- expr3->evaluate(tentative, ref, result, pos);
- }
-}
-
-void reference::pre_compute_label()
-{
- if (parsed_label != 0
- && (parsed_label->analyze() & expression::CONTAINS_VARIABLE)) {
- label.clear();
- substring_position temp_pos;
- parsed_label->evaluate(1, *this, label, temp_pos);
- label_ptr = lookup_label(label);
- }
-}
-
-void reference::compute_label()
-{
- label.clear();
- if (parsed_label)
- parsed_label->evaluate(0, *this, label, separator_pos);
- if (short_label_flag && parsed_short_label)
- parsed_short_label->evaluate(0, *this, short_label, short_separator_pos);
- if (date_as_label) {
- string new_date;
- if (parsed_date_label) {
- substring_position temp_pos;
- parsed_date_label->evaluate(0, *this, new_date, temp_pos);
- }
- set_date(new_date);
- }
- if (label_ptr)
- label_ptr->count += 1;
-}
-
-void reference::immediate_compute_label()
-{
- if (label_ptr)
- label_ptr->total = 2; // force use of disambiguator
- compute_label();
-}
-
-int reference::merge_labels(reference **v, int n, label_type type,
- string &result)
-{
- if (abbreviate_label_ranges)
- return merge_labels_by_number(v, n, type, result);
- else
- return merge_labels_by_parts(v, n, type, result);
-}
-
-int reference::merge_labels_by_number(reference **v, int n, label_type type,
- string &result)
-{
- if (n <= 1)
- return 0;
- int num = get_number();
- // Only merge three or more labels.
- if (v[0]->get_number() != num + 1
- || v[1]->get_number() != num + 2)
- return 0;
- int i;
- for (i = 2; i < n; i++)
- if (v[i]->get_number() != num + i + 1)
- break;
- result = get_label(type);
- result += label_range_indicator;
- result += v[i - 1]->get_label(type);
- return i;
-}
-
-const substring_position &reference::get_separator_pos(label_type type) const
-{
- if (type == SHORT_LABEL && short_label_flag)
- return short_separator_pos;
- else
- return separator_pos;
-}
-
-const string &reference::get_label(label_type type) const
-{
- if (type == SHORT_LABEL && short_label_flag)
- return short_label;
- else
- return label;
-}
-
-int reference::merge_labels_by_parts(reference **v, int n, label_type type,
- string &result)
-{
- if (n <= 0)
- return 0;
- const string &lb = get_label(type);
- const substring_position &sp = get_separator_pos(type);
- if (sp.start < 0
- || sp.start != v[0]->get_separator_pos(type).start
- || memcmp(lb.contents(), v[0]->get_label(type).contents(),
- sp.start) != 0)
- return 0;
- result = lb;
- int i = 0;
- do {
- result += separate_label_second_parts;
- const substring_position &s = v[i]->get_separator_pos(type);
- int sep_end_pos = s.start + s.length;
- result.append(v[i]->get_label(type).contents() + sep_end_pos,
- v[i]->get_label(type).length() - sep_end_pos);
- } while (++i < n
- && sp.start == v[i]->get_separator_pos(type).start
- && memcmp(lb.contents(), v[i]->get_label(type).contents(),
- sp.start) == 0);
- return i;
-}
-
-string label_pool;
-
-label_info::label_info(const string &s)
-: start(label_pool.length()), length(s.length()), count(0), total(1)
-{
- label_pool += s;
-}
-
-static label_info **label_table = 0;
-static int label_table_size = 0;
-static int label_table_used = 0;
-
-label_info *lookup_label(const string &label)
-{
- if (label_table == 0) {
- label_table = new label_info *[17];
- label_table_size = 17;
- for (int i = 0; i < 17; i++)
- label_table[i] = 0;
- }
- unsigned h = hash_string(label.contents(), label.length()) % label_table_size;
- label_info **ptr;
- for (ptr = label_table + h;
- *ptr != 0;
- (ptr == label_table)
- ? (ptr = label_table + label_table_size - 1)
- : ptr--)
- if ((*ptr)->length == label.length()
- && memcmp(label_pool.contents() + (*ptr)->start, label.contents(),
- label.length()) == 0) {
- (*ptr)->total += 1;
- return *ptr;
- }
- label_info *result = *ptr = new label_info(label);
- if (++label_table_used * 2 > label_table_size) {
- // Rehash the table.
- label_info **old_table = label_table;
- int old_size = label_table_size;
- label_table_size = next_size(label_table_size);
- label_table = new label_info *[label_table_size];
- int i;
- for (i = 0; i < label_table_size; i++)
- label_table[i] = 0;
- for (i = 0; i < old_size; i++)
- if (old_table[i]) {
- unsigned h = hash_string(label_pool.contents() + old_table[i]->start,
- old_table[i]->length);
- label_info **p;
- for (p = label_table + (h % label_table_size);
- *p != 0;
- (p == label_table)
- ? (p = label_table + label_table_size - 1)
- : --p)
- ;
- *p = old_table[i];
- }
- a_delete old_table;
- }
- return result;
-}
-
-void clear_labels()
-{
- for (int i = 0; i < label_table_size; i++) {
- delete label_table[i];
- label_table[i] = 0;
- }
- label_table_used = 0;
- label_pool.clear();
-}
-
-static void consider_authors(reference **start, reference **end, int i);
-
-void compute_labels(reference **v, int n)
-{
- if (parsed_label
- && (parsed_label->analyze() & expression::CONTAINS_AT)
- && sort_fields.length() >= 2
- && sort_fields[0] == 'A'
- && sort_fields[1] == '+')
- consider_authors(v, v + n, 0);
- for (int i = 0; i < n; i++)
- v[i]->compute_label();
-}
-
-
-/* A reference with a list of authors <A0,A1,...,AN> _needs_ author i
-where 0 <= i <= N if there exists a reference with a list of authors
-<B0,B1,...,BM> such that <A0,A1,...,AN> != <B0,B1,...,BM> and M >= i
-and Aj = Bj for 0 <= j < i. In this case if we can't say ``A0,
-A1,...,A(i-1) et al'' because this would match both <A0,A1,...,AN> and
-<B0,B1,...,BM>. If a reference needs author i we only have to call
-need_author(j) for some j >= i such that the reference also needs
-author j. */
-
-/* This function handles 2 tasks:
-determine which authors are needed (cannot be elided with et al.);
-determine which authors can have only last names in the labels.
-
-References >= start and < end have the same first i author names.
-Also they're sorted by A+. */
-
-static void consider_authors(reference **start, reference **end, int i)
-{
- if (start >= end)
- return;
- reference **p = start;
- if (i >= (*p)->get_nauthors()) {
- for (++p; p < end && i >= (*p)->get_nauthors(); p++)
- ;
- if (p < end && i > 0) {
- // If we have an author list <A B C> and an author list <A B C D>,
- // then both lists need C.
- for (reference **q = start; q < end; q++)
- (*q)->need_author(i - 1);
- }
- start = p;
- }
- while (p < end) {
- reference **last_name_start = p;
- reference **name_start = p;
- for (++p;
- p < end && i < (*p)->get_nauthors()
- && same_author_last_name(**last_name_start, **p, i);
- p++) {
- if (!same_author_name(**name_start, **p, i)) {
- consider_authors(name_start, p, i + 1);
- name_start = p;
- }
- }
- consider_authors(name_start, p, i + 1);
- if (last_name_start == name_start) {
- for (reference **q = last_name_start; q < p; q++)
- (*q)->set_last_name_unambiguous(i);
- }
- // If we have an author list <A B C D> and <A B C E>, then the lists
- // need author D and E respectively.
- if (name_start > start || p < end) {
- for (reference **q = last_name_start; q < p; q++)
- (*q)->need_author(i);
- }
- }
-}
-
-int same_author_last_name(const reference &r1, const reference &r2, int n)
-{
- const char *ae1;
- const char *as1 = r1.get_sort_field(0, n, 0, &ae1);
- assert(as1 != 0);
- const char *ae2;
- const char *as2 = r2.get_sort_field(0, n, 0, &ae2);
- assert(as2 != 0);
- return ae1 - as1 == ae2 - as2 && memcmp(as1, as2, ae1 - as1) == 0;
-}
-
-int same_author_name(const reference &r1, const reference &r2, int n)
-{
- const char *ae1;
- const char *as1 = r1.get_sort_field(0, n, -1, &ae1);
- assert(as1 != 0);
- const char *ae2;
- const char *as2 = r2.get_sort_field(0, n, -1, &ae2);
- assert(as2 != 0);
- return ae1 - as1 == ae2 - as2 && memcmp(as1, as2, ae1 - as1) == 0;
-}
-
-
-void int_set::set(int i)
-{
- assert(i >= 0);
- int bytei = i >> 3;
- if (bytei >= v.length()) {
- int old_length = v.length();
- v.set_length(bytei + 1);
- for (int j = old_length; j <= bytei; j++)
- v[j] = 0;
- }
- v[bytei] |= 1 << (i & 7);
-}
-
-int int_set::get(int i) const
-{
- assert(i >= 0);
- int bytei = i >> 3;
- return bytei >= v.length() ? 0 : (v[bytei] & (1 << (i & 7))) != 0;
-}
-
-void reference::set_last_name_unambiguous(int i)
-{
- last_name_unambiguous.set(i);
-}
-
-void reference::need_author(int n)
-{
- if (n > last_needed_author)
- last_needed_author = n;
-}
-
-const char *reference::get_authors(const char **end) const
-{
- if (!computed_authors) {
- ((reference *)this)->computed_authors = 1;
- string &result = ((reference *)this)->authors;
- int na = get_nauthors();
- result.clear();
- for (int i = 0; i < na; i++) {
- if (last_name_unambiguous.get(i)) {
- const char *e, *start = get_author_last_name(i, &e);
- assert(start != 0);
- result.append(start, e - start);
- }
- else {
- const char *e, *start = get_author(i, &e);
- assert(start != 0);
- result.append(start, e - start);
- }
- if (i == last_needed_author
- && et_al.length() > 0
- && et_al_min_elide > 0
- && last_needed_author + et_al_min_elide < na
- && na >= et_al_min_total) {
- result += et_al;
- break;
- }
- if (i < na - 1) {
- if (na == 2)
- result += join_authors_exactly_two;
- else if (i < na - 2)
- result += join_authors_default;
- else
- result += join_authors_last_two;
- }
- }
- }
- const char *start = authors.contents();
- *end = start + authors.length();
- return start;
-}
-
-int reference::get_nauthors() const
-{
- if (nauthors < 0) {
- const char *dummy;
- int na;
- for (na = 0; get_author(na, &dummy) != 0; na++)
- ;
- ((reference *)this)->nauthors = na;
- }
- return nauthors;
-}
-#line 1228 "y.tab.c"
-#define YYABORT goto yyabort
-#define YYREJECT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-int
-#if defined(__STDC__)
-yyparse(void)
-#else
-yyparse()
-#endif
-{
- register int yym, yyn, yystate;
-#if YYDEBUG
- register char *yys;
- extern char *getenv();
-
- if (yys = getenv("YYDEBUG"))
- {
- yyn = *yys;
- if (yyn >= '0' && yyn <= '9')
- yydebug = yyn - '0';
- }
-#endif
-
- yynerrs = 0;
- yyerrflag = 0;
- yychar = (-1);
-
- yyssp = yyss;
- yyvsp = yyvs;
- *yyssp = yystate = 0;
-
-yyloop:
- if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, reading %d (%s)\n",
- YYPREFIX, yystate, yychar, yys);
- }
-#endif
- }
- if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, shifting to state %d\n",
- YYPREFIX, yystate, yytable[yyn]);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- yychar = (-1);
- if (yyerrflag > 0) --yyerrflag;
- goto yyloop;
- }
- if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
- {
- yyn = yytable[yyn];
- goto yyreduce;
- }
- if (yyerrflag) goto yyinrecovery;
- yyerror("syntax error");
-#ifdef lint
- goto yyerrlab;
-#endif
-yyerrlab:
- ++yynerrs;
-yyinrecovery:
- if (yyerrflag < 3)
- {
- yyerrflag = 3;
- for (;;)
- {
- if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, error recovery shifting\
- to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
- goto yyloop;
- }
- else
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: error recovery discarding state %d\n",
- YYPREFIX, *yyssp);
-#endif
- if (yyssp <= yyss) goto yyabort;
- --yyssp;
- --yyvsp;
- }
- }
- }
- else
- {
- if (yychar == 0) goto yyabort;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
- YYPREFIX, yystate, yychar, yys);
- }
-#endif
- yychar = (-1);
- goto yyloop;
- }
-yyreduce:
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: state %d, reducing by rule %d (%s)\n",
- YYPREFIX, yystate, yyn, yyrule[yyn]);
-#endif
- yym = yylen[yyn];
- yyval = yyvsp[1-yym];
- switch (yyn)
- {
-case 1:
-#line 250 "label.y"
-{ parse_result = (yyvsp[0].expr ? new analyzed_expr(yyvsp[0].expr) : 0); }
-break;
-case 2:
-#line 255 "label.y"
-{ yyval.expr = yyvsp[0].expr; }
-break;
-case 3:
-#line 257 "label.y"
-{ yyval.expr = new conditional_expr(yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].expr); }
-break;
-case 4:
-#line 262 "label.y"
-{ yyval.expr = 0; }
-break;
-case 5:
-#line 264 "label.y"
-{ yyval.expr = yyvsp[0].expr; }
-break;
-case 6:
-#line 269 "label.y"
-{ yyval.expr = yyvsp[0].expr; }
-break;
-case 7:
-#line 271 "label.y"
-{ yyval.expr = new alternative_expr(yyvsp[-2].expr, yyvsp[0].expr); }
-break;
-case 8:
-#line 273 "label.y"
-{ yyval.expr = new conditional_expr(yyvsp[-2].expr, yyvsp[0].expr, 0); }
-break;
-case 9:
-#line 278 "label.y"
-{ yyval.expr = yyvsp[0].expr; }
-break;
-case 10:
-#line 280 "label.y"
-{ yyval.expr = new list_expr(yyvsp[-1].expr, yyvsp[0].expr); }
-break;
-case 11:
-#line 285 "label.y"
-{ yyval.expr = yyvsp[0].expr; }
-break;
-case 12:
-#line 287 "label.y"
-{ yyval.expr = new substitute_expr(yyvsp[-2].expr, yyvsp[0].expr); }
-break;
-case 13:
-#line 292 "label.y"
-{ yyval.expr = new at_expr; }
-break;
-case 14:
-#line 294 "label.y"
-{
- yyval.expr = new literal_expr(literals.contents() + yyvsp[0].str.start,
- yyvsp[0].str.len);
- }
-break;
-case 15:
-#line 299 "label.y"
-{ yyval.expr = new field_expr(yyvsp[0].num, 0); }
-break;
-case 16:
-#line 301 "label.y"
-{ yyval.expr = new field_expr(yyvsp[-1].num, yyvsp[0].num - 1); }
-break;
-case 17:
-#line 303 "label.y"
-{
- switch (yyvsp[0].num) {
- case 'I':
- case 'i':
- case 'A':
- case 'a':
- yyval.expr = new format_expr(yyvsp[0].num);
- break;
- default:
- command_error("unrecognized format `%1'", char(yyvsp[0].num));
- yyval.expr = new format_expr('a');
- break;
- }
- }
-break;
-case 18:
-#line 319 "label.y"
-{
- yyval.expr = new format_expr('0', yyvsp[0].dig.ndigits, yyvsp[0].dig.val);
- }
-break;
-case 19:
-#line 323 "label.y"
-{
- switch (yyvsp[-1].num) {
- case 'l':
- yyval.expr = new map_expr(yyvsp[-4].expr, lowercase);
- break;
- case 'u':
- yyval.expr = new map_expr(yyvsp[-4].expr, uppercase);
- break;
- case 'c':
- yyval.expr = new map_expr(yyvsp[-4].expr, capitalize);
- break;
- case 'r':
- yyval.expr = new map_expr(yyvsp[-4].expr, reverse_name);
- break;
- case 'a':
- yyval.expr = new map_expr(yyvsp[-4].expr, abbreviate_name);
- break;
- case 'y':
- yyval.expr = new extractor_expr(yyvsp[-4].expr, find_year, yyvsp[-2].num);
- break;
- case 'n':
- yyval.expr = new extractor_expr(yyvsp[-4].expr, find_last_name, yyvsp[-2].num);
- break;
- default:
- yyval.expr = yyvsp[-4].expr;
- command_error("unknown function `%1'", char(yyvsp[-1].num));
- break;
- }
- }
-break;
-case 20:
-#line 354 "label.y"
-{ yyval.expr = new truncate_expr(yyvsp[-2].expr, yyvsp[0].num); }
-break;
-case 21:
-#line 356 "label.y"
-{ yyval.expr = new truncate_expr(yyvsp[-2].expr, -yyvsp[0].num); }
-break;
-case 22:
-#line 358 "label.y"
-{ yyval.expr = new star_expr(yyvsp[-1].expr); }
-break;
-case 23:
-#line 360 "label.y"
-{ yyval.expr = yyvsp[-1].expr; }
-break;
-case 24:
-#line 362 "label.y"
-{ yyval.expr = new separator_expr(yyvsp[-1].expr); }
-break;
-case 25:
-#line 367 "label.y"
-{ yyval.num = -1; }
-break;
-case 26:
-#line 369 "label.y"
-{ yyval.num = yyvsp[0].num; }
-break;
-case 27:
-#line 374 "label.y"
-{ yyval.num = yyvsp[0].num; }
-break;
-case 28:
-#line 376 "label.y"
-{ yyval.num = yyvsp[-1].num*10 + yyvsp[0].num; }
-break;
-case 29:
-#line 381 "label.y"
-{ yyval.dig.ndigits = 1; yyval.dig.val = yyvsp[0].num; }
-break;
-case 30:
-#line 383 "label.y"
-{ yyval.dig.ndigits = yyvsp[-1].dig.ndigits + 1; yyval.dig.val = yyvsp[-1].dig.val*10 + yyvsp[0].num; }
-break;
-case 31:
-#line 389 "label.y"
-{ yyval.num = 0; }
-break;
-case 32:
-#line 391 "label.y"
-{ yyval.num = 1; }
-break;
-case 33:
-#line 393 "label.y"
-{ yyval.num = -1; }
-break;
-#line 1547 "y.tab.c"
- }
- yyssp -= yym;
- yystate = *yyssp;
- yyvsp -= yym;
- yym = yylhs[yyn];
- if (yystate == 0 && yym == 0)
- {
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: after reduction, shifting from state 0 to\
- state %d\n", YYPREFIX, YYFINAL);
-#endif
- yystate = YYFINAL;
- *++yyssp = YYFINAL;
- *++yyvsp = yyval;
- if (yychar < 0)
- {
- if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
- if (yydebug)
- {
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
- printf("%sdebug: state %d, reading %d (%s)\n",
- YYPREFIX, YYFINAL, yychar, yys);
- }
-#endif
- }
- if (yychar == 0) goto yyaccept;
- goto yyloop;
- }
- if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
- yystate = yytable[yyn];
- else
- yystate = yydgoto[yym];
-#if YYDEBUG
- if (yydebug)
- printf("%sdebug: after reduction, shifting from state %d \
-to state %d\n", YYPREFIX, *yyssp, yystate);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
- {
- goto yyoverflow;
- }
- *++yyssp = yystate;
- *++yyvsp = yyval;
- goto yyloop;
-yyoverflow:
- yyerror("yacc stack overflow");
-yyabort:
- return (1);
-yyaccept:
- return (0);
-}
diff --git a/contrib/groff/src/roff/groff/groff.man b/contrib/groff/src/roff/groff/groff.man
index 00c9343..f64044e 100644
--- a/contrib/groff/src/roff/groff/groff.man
+++ b/contrib/groff/src/roff/groff/groff.man
@@ -15,6 +15,9 @@ manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.
+
+ $FreeBSD$
+
..
.de TQ
.br
@@ -89,6 +92,9 @@ For typewriter-like devices.
.B latin1
For typewriter-like devices using the ISO Latin-1 (ISO 8859-1) character set.
.TP
+.B koi8-r
+For typewriter-like devices using the Russian KOI8-R character set.
+.TP
.B utf8
For typewriter-like devices using the Unicode (ISO 10646) character set with
UTF-8 encoding.
diff --git a/contrib/groff/src/roff/nroff/nroff.man b/contrib/groff/src/roff/nroff/nroff.man
index fade08e..d6e1b6d 100644
--- a/contrib/groff/src/roff/nroff/nroff.man
+++ b/contrib/groff/src/roff/nroff/nroff.man
@@ -15,6 +15,9 @@ manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.
+
+ $FreeBSD$
+
..
.TH @G@NROFF @MAN1EXT@ "@MDATE@" "Groff Version @VERSION@"
.SH NAME
@@ -54,6 +57,7 @@ command using groff.
Only
.BR ascii ,
.BR latin1 ,
+.BR koi8-r ,
.BR utf8 ,
and
.B cp1047
diff --git a/contrib/groff/src/roff/nroff/nroff.sh b/contrib/groff/src/roff/nroff/nroff.sh
index cdc221f..82f9031 100755
--- a/contrib/groff/src/roff/nroff/nroff.sh
+++ b/contrib/groff/src/roff/nroff/nroff.sh
@@ -1,11 +1,12 @@
#!/bin/sh
# Emulate nroff with groff.
+# $FreeBSD$
prog="$0"
# Default device.
# First try the "locale charmap" command, because it's most reliable.
# On systems where it doesn't exist, look at the environment variables.
-case "`locale charmap 2>/dev/null`" in
+case "`#locale charmap 2>/dev/null`" in
UTF-8)
T=-Tutf8 ;;
ISO-8859-1)
@@ -16,10 +17,12 @@ case "`locale charmap 2>/dev/null`" in
case "${LC_ALL-${LC_CTYPE-${LANG}}}" in
*.UTF-8)
T=-Tutf8 ;;
- iso_8859_1 | *.ISO-8859-1)
+ iso_8859_1 | *.ISO*8859-1 | *.ISO*8859-15)
T=-Tlatin1 ;;
*.IBM-1047)
T=-Tcp1047 ;;
+ *.KOI8-R)
+ T=-Tkoi8-r ;;
*)
case "$LESSCHARSET" in
utf-8)
@@ -51,7 +54,7 @@ for i
exit 1 ;;
-[ipt] | -[mrno]*)
opts="$opts $1" ;;
- -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047)
+ -Tascii | -Tlatin1 | -Tkoi8-r | -Tutf8 | -Tcp1047)
T=$1 ;;
-T*)
# ignore other devices
diff --git a/contrib/groff/tmac/doc-common b/contrib/groff/tmac/doc-common
index 3c58840..08dbb7d 100644
--- a/contrib/groff/tmac/doc-common
+++ b/contrib/groff/tmac/doc-common
@@ -30,6 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)doc-common 8.1 (Berkeley) 06/08/93
+.\" $FreeBSD$
.\"
.\" %beginstrip%
.
@@ -40,7 +41,6 @@
.nr %A 1
.nr %B 1
.nr %D 1
-.nr %I 1
.nr %J 1
.nr %N 1
.nr %O 1
diff --git a/contrib/groff/tmac/doc-ditroff b/contrib/groff/tmac/doc-ditroff
index dff5537..c4a9220 100644
--- a/contrib/groff/tmac/doc-ditroff
+++ b/contrib/groff/tmac/doc-ditroff
@@ -30,6 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)doc-ditroff 8.1 (Berkeley) 06/08/93
+.\" $FreeBSD$
.\"
.\" %beginstrip%
.
diff --git a/contrib/groff/tmac/doc-nroff b/contrib/groff/tmac/doc-nroff
index ce4e987..8416ad6 100644
--- a/contrib/groff/tmac/doc-nroff
+++ b/contrib/groff/tmac/doc-nroff
@@ -30,6 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)doc-nroff 8.1 (Berkeley) 06/08/93
+.\" $FreeBSD$
.\"
.\" %beginstrip%
.
diff --git a/contrib/groff/tmac/doc-syms b/contrib/groff/tmac/doc-syms
index f4d3d6e..c2741e6 100644
--- a/contrib/groff/tmac/doc-syms
+++ b/contrib/groff/tmac/doc-syms
@@ -30,6 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)doc-syms 8.1 (Berkeley) 06/08/93
+.\" $FreeBSD$
.\"
.\" %beginstrip%
.
diff --git a/contrib/groff/tmac/eqnrc b/contrib/groff/tmac/eqnrc
index cfdbf3f..63bd037 100644
--- a/contrib/groff/tmac/eqnrc
+++ b/contrib/groff/tmac/eqnrc
@@ -1,4 +1,5 @@
.\" Startup file for eqn.
+.\" $FreeBSD$
.EQ
sdefine << %{ < back 20 < }%
sdefine >> %{ > back 20 > }%
@@ -53,6 +54,7 @@ ifdef ascii ! define n %1% !
ifdef latin1 ! define n %1% !
ifdef utf8 ! define n %1% !
ifdef cp1047 ! define n %1% !
+ifdef koi8-r ! define n %1% !
ifdef n !
set nroff 1
!
diff --git a/contrib/groff/tmac/mdoc.local b/contrib/groff/tmac/mdoc.local
deleted file mode 100644
index 2de6621..0000000
--- a/contrib/groff/tmac/mdoc.local
+++ /dev/null
@@ -1,2 +0,0 @@
-.\" This file is loaded after doc.tmac.
-.\" Put any local modifications to doc.tmac here.
diff --git a/contrib/groff/tmac/strip.sed b/contrib/groff/tmac/strip.sed
index 069c3db..5823967 100644
--- a/contrib/groff/tmac/strip.sed
+++ b/contrib/groff/tmac/strip.sed
@@ -1,3 +1,4 @@
+# $FreeBSD$
# strip comments, spaces, etc. after a line containing `%beginstrip%'
/%beginstrip%/,$ {
s/^\.[ ]*/./
diff --git a/contrib/groff/tmac/troffrc b/contrib/groff/tmac/troffrc
index c4cfa20..ea4ce48 100644
--- a/contrib/groff/tmac/troffrc
+++ b/contrib/groff/tmac/troffrc
@@ -1,4 +1,5 @@
.\" Startup file for troff.
+.\" $FreeBSD$
.\" This is tested by pic.
.nr 0p 0
.\" Use .do here, so that it works with -C.
@@ -12,6 +13,7 @@
.do ds troffrc!X100-12 X.tmac
.do ds troffrc!ascii tty.tmac
.do ds troffrc!latin1 tty.tmac
+.do ds troffrc!koi8-r tty.tmac
.do ds troffrc!utf8 tty.tmac
.do ds troffrc!cp1047 tty.tmac
.do ds troffrc!lj4 lj4.tmac
@@ -22,9 +24,15 @@
.do rm troffrc!ps troffrc!Xps troffrc!dvi troffrc!X75 troffrc!X75-12 \
troffrc!X100 troffrc!X100-12 troffrc!lj4 troff!lbp troffrc!html
.ie '\*(.T'cp1047' .do tr \[char65]
-.el .do tr \[char160]
+.el .if !"\*[.T]"koi8-r" .do tr \[char160]
+.ie "\*[.T]"koi8-r" \{\
+.do hla us-ru
+.do hpf hyphen.us-ru
+.\}
+.el \{\
.\" Set the hyphenation language to `us'.
.do hla us
.\" Load hyphenation patterns from `hyphen.us' (in the tmac directory).
.do hpf hyphen.us
+.\}
.\" Don't let blank lines creep in here.
OpenPOWER on IntegriCloud