[jbossnative-commits] JBoss Native SVN: r1364 - trunk/build/install/nawk.

jbossnative-commits at lists.jboss.org jbossnative-commits at lists.jboss.org
Tue Feb 5 07:41:37 EST 2008


Author: mladen.turk at jboss.com
Date: 2008-02-05 07:41:37 -0500 (Tue, 05 Feb 2008)
New Revision: 1364

Added:
   trunk/build/install/nawk/awk.exe
   trunk/build/install/nawk/awkgram.h
   trunk/build/install/nawk/maketab.exe
   trunk/build/install/nawk/ytab.c
Modified:
   trunk/build/install/nawk/main.c
Log:
Add precompiled binaries for win32 insta
ller

Added: trunk/build/install/nawk/awk.exe
===================================================================
(Binary files differ)


Property changes on: trunk/build/install/nawk/awk.exe
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: trunk/build/install/nawk/awkgram.h
===================================================================
--- trunk/build/install/nawk/awkgram.h	                        (rev 0)
+++ trunk/build/install/nawk/awkgram.h	2008-02-05 12:41:37 UTC (rev 1364)
@@ -0,0 +1,102 @@
+typedef union {
+	Node	*p;
+	Cell	*cp;
+	int	i;
+	char	*s;
+} YYSTYPE;
+#define	FIRSTTOKEN	257
+#define	PROGRAM	258
+#define	PASTAT	259
+#define	PASTAT2	260
+#define	XBEGIN	261
+#define	XEND	262
+#define	NL	263
+#define	ARRAY	264
+#define	MATCH	265
+#define	NOTMATCH	266
+#define	MATCHOP	267
+#define	FINAL	268
+#define	DOT	269
+#define	ALL	270
+#define	CCL	271
+#define	NCCL	272
+#define	CHAR	273
+#define	OR	274
+#define	STAR	275
+#define	QUEST	276
+#define	PLUS	277
+#define	AND	278
+#define	BOR	279
+#define	APPEND	280
+#define	EQ	281
+#define	GE	282
+#define	GT	283
+#define	LE	284
+#define	LT	285
+#define	NE	286
+#define	IN	287
+#define	ARG	288
+#define	BLTIN	289
+#define	BREAK	290
+#define	CLOSE	291
+#define	CONTINUE	292
+#define	DELETE	293
+#define	DO	294
+#define	EXIT	295
+#define	FOR	296
+#define	FUNC	297
+#define	SUB	298
+#define	GSUB	299
+#define	IF	300
+#define	INDEX	301
+#define	LSUBSTR	302
+#define	MATCHFCN	303
+#define	NEXT	304
+#define	NEXTFILE	305
+#define	ADD	306
+#define	MINUS	307
+#define	MULT	308
+#define	DIVIDE	309
+#define	MOD	310
+#define	ASSIGN	311
+#define	ASGNOP	312
+#define	ADDEQ	313
+#define	SUBEQ	314
+#define	MULTEQ	315
+#define	DIVEQ	316
+#define	MODEQ	317
+#define	POWEQ	318
+#define	PRINT	319
+#define	PRINTF	320
+#define	SPRINTF	321
+#define	ELSE	322
+#define	INTEST	323
+#define	CONDEXPR	324
+#define	POSTINCR	325
+#define	PREINCR	326
+#define	POSTDECR	327
+#define	PREDECR	328
+#define	VAR	329
+#define	IVAR	330
+#define	VARNF	331
+#define	CALL	332
+#define	NUMBER	333
+#define	STRING	334
+#define	REGEXPR	335
+#define	GETLINE	336
+#define	GENSUB	337
+#define	RETURN	338
+#define	SPLIT	339
+#define	SUBSTR	340
+#define	WHILE	341
+#define	CAT	342
+#define	NOT	343
+#define	UMINUS	344
+#define	POWER	345
+#define	DECR	346
+#define	INCR	347
+#define	INDIRECT	348
+#define	LASTTOKEN	349
+
+
+extern YYSTYPE yylval;


Property changes on: trunk/build/install/nawk/awkgram.h
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: trunk/build/install/nawk/main.c
===================================================================
--- trunk/build/install/nawk/main.c	2008-02-05 12:30:03 UTC (rev 1363)
+++ trunk/build/install/nawk/main.c	2008-02-05 12:41:37 UTC (rev 1364)
@@ -35,7 +35,6 @@
 #include "awk.h"
 #include "awkgram.h"
 
-extern	char	**environ;
 extern	int	nfields;
 
 int	dbg	= 0;
@@ -54,7 +53,7 @@
 
 int	safe	= 0;	/* 1 => "safe" mode */
 
-int main(int argc, char *argv[])
+int main(int argc, char *argv[], char *envp[])
 {
 	const char *fs = NULL;
 
@@ -150,8 +149,9 @@
 	argv[0] = cmdname;	/* put prog name at front of arglist */
 	   dprintf( ("argc=%d, argv[0]=%s\n", argc, argv[0]) );
 	arginit(argc, argv);
-	if (!safe)
-		envinit(environ);
+	if (!safe) {
+		envinit(envp);
+	}
 	yyparse();
 	setlocale(LC_NUMERIC, ""); /* back to whatever it is locally */
 	if (fs)

Added: trunk/build/install/nawk/maketab.exe
===================================================================
(Binary files differ)


Property changes on: trunk/build/install/nawk/maketab.exe
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:mime-type
   + application/octet-stream

Added: trunk/build/install/nawk/ytab.c
===================================================================
--- trunk/build/install/nawk/ytab.c	                        (rev 0)
+++ trunk/build/install/nawk/ytab.c	2008-02-05 12:41:37 UTC (rev 1364)
@@ -0,0 +1,2924 @@
+
+/*  A Bison parser, made from awkgram.y
+ by  GNU Bison version 1.27
+  */
+
+#define YYBISON 1  /* Identify Bison output.  */
+
+#define	FIRSTTOKEN	257
+#define	PROGRAM	258
+#define	PASTAT	259
+#define	PASTAT2	260
+#define	XBEGIN	261
+#define	XEND	262
+#define	NL	263
+#define	ARRAY	264
+#define	MATCH	265
+#define	NOTMATCH	266
+#define	MATCHOP	267
+#define	FINAL	268
+#define	DOT	269
+#define	ALL	270
+#define	CCL	271
+#define	NCCL	272
+#define	CHAR	273
+#define	OR	274
+#define	STAR	275
+#define	QUEST	276
+#define	PLUS	277
+#define	AND	278
+#define	BOR	279
+#define	APPEND	280
+#define	EQ	281
+#define	GE	282
+#define	GT	283
+#define	LE	284
+#define	LT	285
+#define	NE	286
+#define	IN	287
+#define	ARG	288
+#define	BLTIN	289
+#define	BREAK	290
+#define	CLOSE	291
+#define	CONTINUE	292
+#define	DELETE	293
+#define	DO	294
+#define	EXIT	295
+#define	FOR	296
+#define	FUNC	297
+#define	SUB	298
+#define	GSUB	299
+#define	IF	300
+#define	INDEX	301
+#define	LSUBSTR	302
+#define	MATCHFCN	303
+#define	NEXT	304
+#define	NEXTFILE	305
+#define	ADD	306
+#define	MINUS	307
+#define	MULT	308
+#define	DIVIDE	309
+#define	MOD	310
+#define	ASSIGN	311
+#define	ASGNOP	312
+#define	ADDEQ	313
+#define	SUBEQ	314
+#define	MULTEQ	315
+#define	DIVEQ	316
+#define	MODEQ	317
+#define	POWEQ	318
+#define	PRINT	319
+#define	PRINTF	320
+#define	SPRINTF	321
+#define	ELSE	322
+#define	INTEST	323
+#define	CONDEXPR	324
+#define	POSTINCR	325
+#define	PREINCR	326
+#define	POSTDECR	327
+#define	PREDECR	328
+#define	VAR	329
+#define	IVAR	330
+#define	VARNF	331
+#define	CALL	332
+#define	NUMBER	333
+#define	STRING	334
+#define	REGEXPR	335
+#define	GETLINE	336
+#define	GENSUB	337
+#define	RETURN	338
+#define	SPLIT	339
+#define	SUBSTR	340
+#define	WHILE	341
+#define	CAT	342
+#define	NOT	343
+#define	UMINUS	344
+#define	POWER	345
+#define	DECR	346
+#define	INCR	347
+#define	INDIRECT	348
+#define	LASTTOKEN	349
+
+#line 25 "awkgram.y"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "awk.h"
+
+void checkdup(Node *list, Cell *item);
+int yywrap(void) { return(1); }
+
+Node	*beginloc = 0;
+Node	*endloc = 0;
+int	infunc	= 0;	/* = 1 if in arglist or body of func */
+int	inloop	= 0;	/* = 1 if in while, for, do */
+char	*curfname = 0;	/* current function name */
+Node	*arglist = 0;	/* list of args for current function */
+
+#line 42 "awkgram.y"
+typedef union {
+	Node	*p;
+	Cell	*cp;
+	int	i;
+	char	*s;
+} YYSTYPE;
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define	YYFINAL		387
+#define	YYFLAG		-32768
+#define	YYNTBASE	112
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 349 ? yytranslate[x] : 160)
+
+static const char yytranslate[] = {     0,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,   104,     2,     2,    12,
+    16,   103,   101,    10,   102,     2,    15,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,    93,    14,     2,
+     2,     2,    92,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+    18,     2,    19,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,    11,    13,    17,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
+     7,     8,     9,    20,    21,    22,    23,    24,    25,    26,
+    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
+    57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
+    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+    77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
+    87,    88,    89,    90,    91,    94,    95,    96,    97,    98,
+    99,   100,   105,   106,   107,   108,   109,   110,   111
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = {     0,
+     0,     2,     4,     6,     9,    11,    14,    16,    19,    21,
+    24,    26,    29,    30,    43,    44,    55,    56,    65,    67,
+    69,    74,    76,    79,    81,    84,    85,    87,    88,    90,
+    91,    93,    95,    99,   101,   103,   108,   112,   119,   123,
+   128,   133,   134,   144,   146,   150,   152,   156,   160,   166,
+   170,   174,   178,   182,   186,   192,   195,   197,   199,   203,
+   209,   213,   217,   221,   225,   229,   233,   237,   241,   245,
+   249,   253,   259,   264,   268,   271,   273,   275,   279,   283,
+   285,   289,   290,   292,   296,   298,   300,   302,   304,   307,
+   310,   312,   315,   317,   320,   321,   326,   328,   331,   336,
+   341,   346,   349,   355,   358,   360,   362,   364,   367,   370,
+   373,   374,   375,   385,   389,   392,   394,   399,   402,   406,
+   409,   412,   416,   419,   422,   423,   427,   430,   432,   435,
+   437,   439,   444,   448,   452,   456,   460,   464,   468,   471,
+   474,   477,   481,   486,   488,   492,   497,   500,   503,   506,
+   509,   512,   521,   530,   541,   552,   557,   561,   564,   566,
+   573,   580,   584,   591,   598,   600,   609,   618,   625,   630,
+   632,   639,   646,   655,   664,   673,   680,   682,   684,   689,
+   691,   694,   695,   697,   701,   703,   705,   707
+};
+
+static const short yyrhs[] = {   129,
+     0,     1,     0,    34,     0,   113,     9,     0,    35,     0,
+   114,     9,     0,    10,     0,   115,     9,     0,    50,     0,
+   116,     9,     0,    78,     0,   117,     9,     0,     0,    52,
+    12,   128,    14,   126,   136,    14,   126,   128,   146,   119,
+   149,     0,     0,    52,    12,   128,    14,    14,   126,   128,
+   146,   120,   149,     0,     0,    52,    12,   158,    43,   158,
+   146,   121,   149,     0,    85,     0,    88,     0,    56,    12,
+   136,   146,     0,    11,     0,   124,     9,     0,     9,     0,
+   125,     9,     0,     0,   125,     0,     0,   141,     0,     0,
+   147,     0,   127,     0,   127,   133,   127,     0,   136,     0,
+   130,     0,   130,   124,   153,    17,     0,   130,    10,   130,
+     0,   130,    10,   130,   124,   153,    17,     0,   124,   153,
+    17,     0,     7,   124,   153,    17,     0,     8,   124,   153,
+    17,     0,     0,    53,   122,    12,   157,   146,   132,   124,
+   153,    17,     0,   131,     0,   133,   127,   131,     0,   136,
+     0,   134,   115,   136,     0,   156,    68,   135,     0,   135,
+    92,   135,    93,   135,     0,   135,   114,   135,     0,   135,
+   113,   135,     0,   135,    23,   144,     0,   135,    23,   135,
+     0,   135,    43,   158,     0,    12,   137,    16,    43,   158,
+     0,   135,   155,     0,   143,     0,   155,     0,   156,    68,
+   136,     0,   136,    92,   136,    93,   136,     0,   136,   114,
+   136,     0,   136,   113,   136,     0,   136,    37,   136,     0,
+   136,    38,   136,     0,   136,    39,   136,     0,   136,    40,
+   136,     0,   136,    41,   136,     0,   136,    42,   136,     0,
+   136,    23,   144,     0,   136,    23,   136,     0,   136,    43,
+   158,     0,    12,   137,    16,    43,   158,     0,   136,    13,
+    94,   156,     0,   136,    13,    94,     0,   136,   155,     0,
+   143,     0,   155,     0,   136,   115,   136,     0,   137,   115,
+   136,     0,   135,     0,   138,   115,   135,     0,     0,   138,
+     0,    12,   137,    16,     0,    75,     0,    76,     0,     9,
+     0,    14,     0,   141,     9,     0,   141,    14,     0,    17,
+     0,   142,     9,     0,   144,     0,   105,   143,     0,     0,
+    15,   145,    91,    15,     0,    16,     0,   146,     9,     0,
+   140,   139,    13,   155,     0,   140,   139,    36,   155,     0,
+   140,   139,    39,   155,     0,   140,   139,     0,    49,   158,
+    18,   134,    19,     0,    49,   158,     0,   136,     0,     1,
+     0,   125,     0,    14,   126,     0,    46,   148,     0,    48,
+   148,     0,     0,     0,   116,   150,   149,   151,    99,    12,
+   136,    16,   148,     0,    51,   136,   148,     0,    51,   148,
+     0,   118,     0,   123,   149,   117,   149,     0,   123,   149,
+     0,   124,   153,   142,     0,    60,   148,     0,    61,   148,
+     0,    96,   136,   148,     0,    96,   148,     0,   147,   148,
+     0,     0,   159,   152,   149,     0,    14,   126,     0,   149,
+     0,   153,   149,     0,    54,     0,    55,     0,   155,    15,
+    68,   155,     0,   155,   101,   155,     0,   155,   102,   155,
+     0,   155,   103,   155,     0,   155,    15,   155,     0,   155,
+   104,   155,     0,   155,   107,   155,     0,   102,   155,     0,
+   101,   155,     0,   105,   155,     0,    45,    12,    16,     0,
+    45,    12,   134,    16,     0,    45,     0,    88,    12,    16,
+     0,    88,    12,   134,    16,     0,    47,   155,     0,   108,
+   156,     0,   109,   156,     0,   156,   108,     0,   156,   109,
+     0,    95,    12,   144,   115,   136,   115,   136,    16,     0,
+    95,    12,   136,   115,   136,   115,   136,    16,     0,    95,
+    12,   144,   115,   136,   115,   136,   115,   136,    16,     0,
+    95,    12,   136,   115,   136,   115,   136,   115,   136,    16,
+     0,    94,   156,    41,   155,     0,    94,    41,   155,     0,
+    94,   156,     0,    94,     0,    57,    12,   136,   115,   136,
+    16,     0,    57,    12,   136,   115,   144,    16,     0,    12,
+   136,    16,     0,    59,    12,   136,   115,   144,    16,     0,
+    59,    12,   136,   115,   136,    16,     0,    89,     0,    97,
+    12,   136,   115,   158,   115,   136,    16,     0,    97,    12,
+   136,   115,   158,   115,   144,    16,     0,    97,    12,   136,
+   115,   158,    16,     0,    77,    12,   134,    16,     0,    90,
+     0,   154,    12,   144,   115,   136,    16,     0,   154,    12,
+   136,   115,   136,    16,     0,   154,    12,   144,   115,   136,
+   115,   156,    16,     0,   154,    12,   136,   115,   136,   115,
+   156,    16,     0,    98,    12,   136,   115,   136,   115,   136,
+    16,     0,    98,    12,   136,   115,   136,    16,     0,   156,
+     0,   158,     0,   158,    18,   134,    19,     0,    86,     0,
+   110,   155,     0,     0,    85,     0,   157,   115,    85,     0,
+    85,     0,    44,     0,    87,     0,    99,    12,   136,   146,
+     0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+    98,   101,   104,   105,   108,   109,   112,   113,   116,   117,
+   120,   121,   124,   126,   127,   128,   129,   130,   133,   135,
+   138,   142,   143,   146,   147,   150,   152,   155,   157,   161,
+   163,   166,   168,   171,   175,   177,   178,   179,   180,   181,
+   183,   185,   185,   189,   191,   194,   196,   199,   201,   203,
+   205,   207,   208,   213,   214,   215,   216,   217,   220,   222,
+   224,   226,   228,   229,   230,   231,   232,   233,   234,   235,
+   240,   241,   242,   245,   248,   249,   250,   253,   255,   258,
+   260,   263,   265,   266,   269,   270,   273,   274,   274,   274,
+   277,   278,   281,   284,   287,   288,   291,   292,   295,   299,
+   302,   305,   306,   307,   308,   309,   312,   314,   317,   320,
+   322,   322,   322,   324,   325,   326,   327,   328,   329,   330,
+   333,   336,   337,   338,   339,   339,   340,   343,   345,   348,
+   349,   352,   354,   355,   356,   357,   358,   359,   360,   361,
+   362,   363,   364,   365,   366,   367,   368,   369,   370,   371,
+   372,   373,   375,   381,   383,   389,   390,   391,   392,   393,
+   395,   398,   399,   401,   406,   407,   409,   411,   413,   414,
+   415,   417,   422,   424,   429,   431,   433,   436,   438,   439,
+   440,   443,   445,   446,   451,   453,   454,   458
+};
+#endif
+
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = {   "$","error","$undefined.","FIRSTTOKEN",
+"PROGRAM","PASTAT","PASTAT2","XBEGIN","XEND","NL","','","'{'","'('","'|'","';'",
+"'/'","')'","'}'","'['","']'","ARRAY","MATCH","NOTMATCH","MATCHOP","FINAL","DOT",
+"ALL","CCL","NCCL","CHAR","OR","STAR","QUEST","PLUS","AND","BOR","APPEND","EQ",
+"GE","GT","LE","LT","NE","IN","ARG","BLTIN","BREAK","CLOSE","CONTINUE","DELETE",
+"DO","EXIT","FOR","FUNC","SUB","GSUB","IF","INDEX","LSUBSTR","MATCHFCN","NEXT",
+"NEXTFILE","ADD","MINUS","MULT","DIVIDE","MOD","ASSIGN","ASGNOP","ADDEQ","SUBEQ",
+"MULTEQ","DIVEQ","MODEQ","POWEQ","PRINT","PRINTF","SPRINTF","ELSE","INTEST",
+"CONDEXPR","POSTINCR","PREINCR","POSTDECR","PREDECR","VAR","IVAR","VARNF","CALL",
+"NUMBER","STRING","REGEXPR","'?'","':'","GETLINE","GENSUB","RETURN","SPLIT",
+"SUBSTR","WHILE","CAT","'+'","'-'","'*'","'%'","NOT","UMINUS","POWER","DECR",
+"INCR","INDIRECT","LASTTOKEN","program","and","bor","comma","do","else","for",
+"@1","@2","@3","funcname","if","lbrace","nl","opt_nl","opt_pst","opt_simple_stmt",
+"pas","pa_pat","pa_stat","@4","pa_stats","patlist","ppattern","pattern","plist",
+"pplist","prarg","print","pst","rbrace","re","reg_expr","@5","rparen","simple_stmt",
+"st","stmt","@6","@7","@8","stmtlist","subop","term","var","varlist","varname",
+"while", NULL
+};
+#endif
+
+static const short yyr1[] = {     0,
+   112,   112,   113,   113,   114,   114,   115,   115,   116,   116,
+   117,   117,   119,   118,   120,   118,   121,   118,   122,   122,
+   123,   124,   124,   125,   125,   126,   126,   127,   127,   128,
+   128,   129,   129,   130,   131,   131,   131,   131,   131,   131,
+   131,   132,   131,   133,   133,   134,   134,   135,   135,   135,
+   135,   135,   135,   135,   135,   135,   135,   135,   136,   136,
+   136,   136,   136,   136,   136,   136,   136,   136,   136,   136,
+   136,   136,   136,   136,   136,   136,   136,   137,   137,   138,
+   138,   139,   139,   139,   140,   140,   141,   141,   141,   141,
+   142,   142,   143,   143,   145,   144,   146,   146,   147,   147,
+   147,   147,   147,   147,   147,   147,   148,   148,   149,   149,
+   150,   151,   149,   149,   149,   149,   149,   149,   149,   149,
+   149,   149,   149,   149,   152,   149,   149,   153,   153,   154,
+   154,   155,   155,   155,   155,   155,   155,   155,   155,   155,
+   155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
+   155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
+   155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
+   155,   155,   155,   155,   155,   155,   155,   156,   156,   156,
+   156,   157,   157,   157,   158,   158,   158,   159
+};
+
+static const short yyr2[] = {     0,
+     1,     1,     1,     2,     1,     2,     1,     2,     1,     2,
+     1,     2,     0,    12,     0,    10,     0,     8,     1,     1,
+     4,     1,     2,     1,     2,     0,     1,     0,     1,     0,
+     1,     1,     3,     1,     1,     4,     3,     6,     3,     4,
+     4,     0,     9,     1,     3,     1,     3,     3,     5,     3,
+     3,     3,     3,     3,     5,     2,     1,     1,     3,     5,
+     3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
+     3,     5,     4,     3,     2,     1,     1,     3,     3,     1,
+     3,     0,     1,     3,     1,     1,     1,     1,     2,     2,
+     1,     2,     1,     2,     0,     4,     1,     2,     4,     4,
+     4,     2,     5,     2,     1,     1,     1,     2,     2,     2,
+     0,     0,     9,     3,     2,     1,     4,     2,     3,     2,
+     2,     3,     2,     2,     0,     3,     2,     1,     2,     1,
+     1,     4,     3,     3,     3,     3,     3,     3,     2,     2,
+     2,     3,     4,     1,     3,     4,     2,     2,     2,     2,
+     2,     8,     8,    10,    10,     4,     3,     2,     1,     6,
+     6,     3,     6,     6,     1,     8,     8,     6,     4,     1,
+     6,     6,     8,     8,     8,     6,     1,     1,     4,     1,
+     2,     0,     1,     3,     1,     1,     1,     4
+};
+
+static const short yydefact[] = {     0,
+     2,    87,    88,    32,     1,    29,     0,     0,    22,     0,
+    95,   186,   144,     0,     0,   130,   131,     0,     0,     0,
+   185,   180,   187,     0,   165,   170,   159,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    35,    44,    28,
+    34,    76,    93,     0,    77,   177,   178,    89,    90,     0,
+     0,     0,     0,     0,     0,     0,     0,   147,   177,    19,
+    20,     0,     0,     0,     0,     0,     0,   158,     0,     0,
+     0,   140,   139,    94,   141,   148,   149,   181,   106,    23,
+    26,     0,     0,     0,     9,     0,     0,     0,     0,     0,
+    85,    86,     0,     0,   111,   116,     0,     0,   105,    82,
+     0,   128,     0,   125,     0,     0,    33,     0,     0,     3,
+     5,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    75,     0,     0,     0,     0,     0,     0,     0,     0,
+   150,   151,     0,     0,     0,     7,   162,     0,     0,     0,
+     0,   142,     0,    46,     0,   182,     0,     0,     0,   145,
+     0,   157,     0,     0,    93,     0,     0,    24,    27,   127,
+    26,   107,   109,   110,   104,     0,   115,     0,     0,   120,
+   121,     0,   123,     0,    10,     0,   118,     0,     0,    80,
+    83,   102,    57,    58,   177,   124,    39,   129,     0,    37,
+     0,    45,    74,    70,    69,    63,    64,    65,    66,    67,
+    68,    71,     0,     4,    62,     6,    61,     0,    93,     0,
+   136,   133,   134,   135,   137,   138,    59,     0,    40,    41,
+     8,    78,     0,    79,    96,   143,     0,   183,     0,     0,
+     0,   169,   146,   156,     0,     0,     0,     0,    25,   108,
+     0,   114,     0,    31,   178,     0,   122,     0,   112,    11,
+     0,    91,   119,     0,     0,     0,     0,     0,     0,    56,
+     0,     0,     0,     0,     0,   126,     0,    36,    73,     0,
+     0,     0,   132,   179,    72,    47,    97,     0,    42,     0,
+    93,     0,    93,     0,     0,     0,     0,     0,    26,     0,
+    21,   188,     0,    12,   117,    92,    84,     0,    53,    52,
+    54,     0,    51,    50,    81,    99,   100,   101,    48,     0,
+    60,     0,     0,   184,    98,     0,   160,   161,   164,   163,
+     0,     0,   168,     0,   176,     0,   103,    26,     0,     0,
+     0,     0,     0,     0,    38,   172,     0,   171,     0,     0,
+     0,     0,     0,    93,     0,     0,     0,    17,     0,    55,
+     0,    49,     0,     0,     0,   153,     0,   152,     0,   166,
+   167,   175,     0,    26,     0,     0,   174,   173,    43,     0,
+     0,    15,     0,    18,     0,   155,   154,     0,     0,   113,
+    16,    13,     0,    14,     0,     0,     0
+};
+
+static const short yydefgoto[] = {   385,
+   120,   121,   227,    95,   251,    96,   383,   378,   365,    62,
+    97,    98,   162,   160,     4,   243,     5,    38,    39,   316,
+    40,   143,   180,    99,    53,   181,   182,   100,     6,   253,
+    42,    43,    54,   279,   101,   163,   102,   176,   293,   189,
+   103,    44,    45,    46,   229,    47,   104
+};
+
+static const short yypact[] = {   716,
+-32768,-32768,-32768,  1632,-32768,    87,    15,    15,-32768,  4634,
+-32768,-32768,    36,  4975,    40,-32768,-32768,    38,    49,    59,
+-32768,-32768,-32768,    61,-32768,-32768,   128,   115,   132,   134,
+  4975,  4975,  4693,   -29,   -29,  4975,   834,    20,-32768,    95,
+  3947,-32768,-32768,   145,    17,   -43,    44,-32768,-32768,   834,
+   834,  2248,    82,   -16,  4448,  4634,  4975,    17,   -26,-32768,
+-32768,   149,  4634,  4634,  4634,  4507,  4975,    53,  4634,  4634,
+  4634,    30,    30,-32768,    30,-32768,-32768,-32768,-32768,-32768,
+   138,   167,   167,    10,-32768,  1793,   151,   152,   167,   167,
+-32768,-32768,  1793,   153,   158,-32768,  1439,   834,  3947,  4752,
+   167,-32768,   901,-32768,  4634,   834,  1632,    80,  4634,-32768,
+-32768,  4634,  4634,  4634,  4634,  4634,  4634,    10,  4634,  1852,
+  1911,    17,  4634,  4811,  4975,  4975,  4975,  4975,  4975,  4634,
+-32768,-32768,  4634,   968,  1035,-32768,-32768,  1970,   157,  1970,
+   162,-32768,    83,  3947,  2938,   107,  2847,  2847,    90,-32768,
+   106,    17,  4975,  2847,   191,  2847,  2847,-32768,   200,-32768,
+   138,   200,-32768,-32768,   194,  1734,-32768,  1506,  4634,-32768,
+-32768,  1734,-32768,  4634,-32768,  1439,   140,  1102,  4634,  4319,
+   191,     3,-32768,    17,   -39,-32768,-32768,-32768,  1439,    15,
+  1169,-32768,   -29,  4198,-32768,  4198,  4198,  4198,  4198,  4198,
+  4198,-32768,  3029,-32768,  4118,-32768,  4038,  2847,   191,  4975,
+    30,    52,    52,    30,    30,    30,  3947,    45,-32768,-32768,
+-32768,  3947,    10,  3947,-32768,-32768,  1970,-32768,   122,  1970,
+  1970,-32768,-32768,    17,  1970,  1970,     2,  1970,-32768,-32768,
+  4634,-32768,   205,-32768,    -8,  3120,-32768,  3120,-32768,-32768,
+  1238,-32768,   213,   125,  4870,    10,  4870,  2029,  2088,    17,
+  2147,  4975,  4975,  4975,  4870,-32768,   834,-32768,-32768,  4634,
+  1970,  1970,    17,-32768,-32768,  3947,-32768,     5,   215,  3211,
+   212,  3302,   214,  2847,  2847,   135,  2349,    69,   207,    10,
+   215,   215,   136,-32768,-32768,-32768,   196,  4634,  4938,-32768,
+-32768,  4235,  4575,  4389,  4319,    17,    17,    17,  4319,  1305,
+  3947,  2450,  2551,-32768,-32768,    15,-32768,-32768,-32768,-32768,
+  1970,  1970,-32768,  1970,-32768,  1970,-32768,   138,  4634,   221,
+   228,    10,   144,  4870,-32768,-32768,    63,-32768,    63,   834,
+  2652,  2753,  3393,   230,  3484,  1573,  3583,   215,  4634,-32768,
+   196,  4319,   237,   238,  1372,-32768,  1970,-32768,  1970,-32768,
+-32768,-32768,   221,   138,  1439,  3674,-32768,-32768,-32768,  3765,
+  3856,   215,  1573,-32768,   167,-32768,-32768,  1439,   221,-32768,
+-32768,   215,  1439,-32768,   255,   256,-32768
+};
+
+static const short yypgoto[] = {-32768,
+    62,   178,    50,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,    -2,   -53,  -153,   217,  -313,-32768,   155,   154,-32768,
+-32768,   -42,  -181,   518,  -172,-32768,-32768,-32768,-32768,-32768,
+   -32,   -60,-32768,  -201,  -156,   -49,   300,-32768,-32768,-32768,
+   -47,-32768,   251,   -14,-32768,    84,-32768
+};
+
+
+#define	YYLAST		5085
+
+
+static const short yytable[] = {    59,
+    74,    37,   134,   135,    50,    51,   254,   240,   155,   133,
+   221,   244,    68,   221,    12,   262,    59,    59,    59,    76,
+    77,    59,   149,   151,   130,     9,    59,   159,   265,   105,
+     9,   124,   363,   164,   290,   106,   167,    59,   263,   170,
+   171,   264,    59,   173,   291,    12,   292,    55,   195,    63,
+   178,   186,    59,    12,   136,    21,    22,    23,   191,   379,
+    64,   133,   209,   274,   131,   132,   124,   183,   131,   132,
+    65,   221,    66,   299,   141,   302,   303,   304,   136,   305,
+    36,   131,   132,   309,    59,   185,    21,   327,    23,   314,
+   218,   136,   136,   153,    21,    48,    23,   139,   226,   136,
+    49,   138,   140,     2,    37,   232,    12,   159,     3,    59,
+    59,    59,    59,    59,    59,   136,   242,   125,   126,   127,
+   128,   233,   247,   129,    60,   333,    69,    61,   348,    59,
+    59,   136,    59,    59,   136,   329,   129,   277,    59,    59,
+   297,    59,    59,    70,   136,    71,   158,    21,    22,    23,
+   323,    59,   352,   136,   127,   128,   123,    59,   129,   351,
+   146,   372,   168,   169,   174,    59,   175,   165,    67,   281,
+   283,    12,    36,   193,   346,   158,   225,   382,   269,    59,
+   161,    59,    59,    59,    59,    59,    59,   267,    59,   244,
+    59,   228,    59,    59,   300,    59,   230,   231,   288,   223,
+   136,   202,    59,   235,   236,   237,   238,    59,   239,    59,
+   373,   241,    21,    22,    23,   158,   244,   250,   289,   310,
+   328,   296,   183,   315,   183,   183,   183,   318,   183,   320,
+   261,    59,   183,    59,   331,   159,   277,    36,   332,   349,
+   185,   258,   185,   185,   185,   361,   185,    59,    59,    59,
+   185,   245,   367,   368,   386,   387,   107,   271,   272,   190,
+   192,    59,     0,   344,    58,    59,     0,    59,     0,    59,
+    59,     0,    59,     0,   159,     0,     0,     0,   278,     0,
+     0,    72,    73,    75,    59,     0,    78,    59,    59,    59,
+    59,   122,   355,     0,    59,     0,    59,    59,    59,     0,
+     0,   183,   122,   140,     0,     0,   275,    75,     0,     0,
+   159,     0,     0,   340,     0,     0,     0,   152,     0,   185,
+   286,     0,   353,     0,   354,   380,    59,    59,    59,     0,
+    59,     0,    59,   321,   322,   324,   326,    59,     0,   301,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   122,
+   184,    59,     0,     0,     0,    59,    59,   259,     0,     0,
+   258,   337,   339,   258,   258,   258,   258,     0,     0,     0,
+   258,     0,     0,   330,   211,   212,   213,   214,   215,   216,
+     0,     0,   140,     0,     0,     0,     0,     0,     0,     0,
+   357,   359,     0,     0,   122,   122,   177,   122,   122,     0,
+     0,     0,   188,   234,   122,     0,   122,   122,     0,     0,
+     0,     0,     0,   258,     0,   350,   122,     0,     0,     0,
+     0,     0,   122,     0,     0,     0,     0,     0,     0,     0,
+   260,     0,     0,   188,   188,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   122,     0,   122,   122,   122,   122,
+   122,   122,     0,   122,     0,   122,     0,   122,   122,     0,
+   273,     0,     0,     0,     0,     0,     0,   122,     0,     0,
+     0,     0,   122,     0,   122,   249,   259,   188,     0,   259,
+   259,   259,   259,     0,     0,     0,   259,     0,   266,     0,
+   188,     0,     0,     0,     0,     0,   122,     0,   122,     0,
+     0,     0,     0,     0,     0,   184,     0,   184,   184,   184,
+     0,   184,   306,   307,   308,   184,     0,     0,     0,     0,
+     0,    41,     0,     0,     0,     0,   122,    52,     0,   259,
+   122,     0,   122,     0,   122,   122,     0,   122,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   260,
+   295,     0,   260,   260,   260,   260,     0,     0,     0,   260,
+     0,   122,   122,   122,     0,     0,     0,     0,     0,     0,
+     0,     0,   144,   145,     0,     0,     0,     0,     0,     0,
+   147,   148,   144,   144,   184,     0,   154,   156,   157,     0,
+     0,   122,   122,   122,     0,   122,     0,   122,     0,     0,
+     0,     0,   260,   166,     0,     0,     0,     0,     0,   188,
+   172,     0,     0,     0,     0,     0,   122,     0,     0,     0,
+   122,   122,    41,     0,    41,     0,   194,     0,     0,   196,
+   197,   198,   199,   200,   201,     0,   203,   205,   207,     0,
+   208,     0,     0,     0,     0,     0,     0,   217,     0,     0,
+   144,     0,     0,     0,   188,   222,     0,   224,     0,     0,
+     0,     0,     0,     0,   374,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   381,     0,     0,
+     0,     0,   384,     0,     0,     0,   246,     0,     0,     0,
+     0,   248,     0,     0,     0,     0,    52,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   -28,     1,     0,     0,     0,
+     0,     0,   -28,   -28,     2,     0,   -28,   -28,     0,     3,
+   -28,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   276,     0,     0,   280,   282,     0,
+     0,     0,   284,   285,     0,   287,     0,     0,   144,   -28,
+   -28,     0,   -28,     0,     0,     0,     0,     0,   -28,   -28,
+   -28,     0,   -28,     0,   -28,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   311,   312,   313,
+     0,     0,   -28,     0,     0,     0,     0,     0,     0,     0,
+   -28,   -28,   -28,   -28,   -28,   -28,     0,     0,     0,   -28,
+   -28,     0,   -28,   -28,     0,    52,   -28,   -28,     0,     0,
+   -28,     0,     0,   -28,   -28,   -28,     0,     0,     0,     0,
+     0,     0,     0,     0,    79,     0,     0,     0,   341,   342,
+     0,   343,    80,   345,     9,    10,   347,    81,    11,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   366,     0,     0,     0,
+     0,     0,     0,     0,   370,     0,   371,    12,    13,    82,
+    14,    83,    84,    85,    86,    87,     0,    16,    17,    88,
+    18,     0,    19,    89,    90,     0,     0,     0,     0,     0,
+     0,    79,     0,     0,     0,     0,     0,     0,    91,    92,
+    20,     9,    10,     0,    81,    11,     0,   187,    21,    22,
+    23,    24,    25,    26,     0,     0,     0,    27,    28,    93,
+    29,    30,    94,     0,    31,    32,     0,     0,    33,     0,
+     0,    34,    35,    36,    12,    13,    82,    14,    83,    84,
+    85,    86,    87,     0,    16,    17,    88,    18,     0,    19,
+    89,    90,     0,     0,     0,     0,     0,     0,    79,     0,
+     0,     0,     0,     0,     0,    91,    92,    20,     9,    10,
+     0,    81,    11,     0,   219,    21,    22,    23,    24,    25,
+    26,     0,     0,     0,    27,    28,    93,    29,    30,    94,
+     0,    31,    32,     0,     0,    33,     0,     0,    34,    35,
+    36,    12,    13,    82,    14,    83,    84,    85,    86,    87,
+     0,    16,    17,    88,    18,     0,    19,    89,    90,     0,
+     0,     0,     0,     0,     0,    79,     0,     0,     0,     0,
+     0,     0,    91,    92,    20,     9,    10,     0,    81,    11,
+     0,   220,    21,    22,    23,    24,    25,    26,     0,     0,
+     0,    27,    28,    93,    29,    30,    94,     0,    31,    32,
+     0,     0,    33,     0,     0,    34,    35,    36,    12,    13,
+    82,    14,    83,    84,    85,    86,    87,     0,    16,    17,
+    88,    18,     0,    19,    89,    90,     0,     0,     0,     0,
+     0,     0,    79,     0,     0,     0,     0,     0,     0,    91,
+    92,    20,     9,    10,     0,    81,    11,     0,   252,    21,
+    22,    23,    24,    25,    26,     0,     0,     0,    27,    28,
+    93,    29,    30,    94,     0,    31,    32,     0,     0,    33,
+     0,     0,    34,    35,    36,    12,    13,    82,    14,    83,
+    84,    85,    86,    87,     0,    16,    17,    88,    18,     0,
+    19,    89,    90,     0,     0,     0,     0,     0,     0,    79,
+     0,     0,     0,     0,     0,     0,    91,    92,    20,     9,
+    10,     0,    81,    11,     0,   268,    21,    22,    23,    24,
+    25,    26,     0,     0,     0,    27,    28,    93,    29,    30,
+    94,     0,    31,    32,     0,     0,    33,     0,     0,    34,
+    35,    36,    12,    13,    82,    14,    83,    84,    85,    86,
+    87,     0,    16,    17,    88,    18,     0,    19,    89,    90,
+     0,     0,     0,     0,     0,     0,     0,     0,    79,     0,
+     0,     0,     0,    91,    92,    20,   294,     0,     9,    10,
+     0,    81,    11,    21,    22,    23,    24,    25,    26,     0,
+     0,     0,    27,    28,    93,    29,    30,    94,     0,    31,
+    32,     0,     0,    33,     0,     0,    34,    35,    36,     0,
+     0,    12,    13,    82,    14,    83,    84,    85,    86,    87,
+     0,    16,    17,    88,    18,     0,    19,    89,    90,     0,
+     0,     0,     0,     0,     0,    79,     0,     0,     0,     0,
+     0,     0,    91,    92,    20,     9,    10,     0,    81,    11,
+     0,   335,    21,    22,    23,    24,    25,    26,     0,     0,
+     0,    27,    28,    93,    29,    30,    94,     0,    31,    32,
+     0,     0,    33,     0,     0,    34,    35,    36,    12,    13,
+    82,    14,    83,    84,    85,    86,    87,     0,    16,    17,
+    88,    18,     0,    19,    89,    90,     0,     0,     0,     0,
+     0,     0,    79,     0,     0,     0,     0,     0,     0,    91,
+    92,    20,     9,    10,     0,    81,    11,     0,   369,    21,
+    22,    23,    24,    25,    26,     0,     0,     0,    27,    28,
+    93,    29,    30,    94,     0,    31,    32,     0,     0,    33,
+     0,     0,    34,    35,    36,    12,    13,    82,    14,    83,
+    84,    85,    86,    87,     0,    16,    17,    88,    18,     0,
+    19,    89,    90,     0,     0,     0,     0,     0,     0,    79,
+     0,     0,     0,     0,     0,     0,    91,    92,    20,     9,
+    10,     0,    81,    11,     0,     0,    21,    22,    23,    24,
+    25,    26,     0,     0,     0,    27,    28,    93,    29,    30,
+    94,     0,    31,    32,     0,     0,    33,     0,     0,    34,
+    35,    36,    12,    13,    82,    14,    83,    84,    85,    86,
+    87,     0,    16,    17,    88,    18,     0,    19,    89,    90,
+     0,     0,     0,     0,     0,     0,    79,     0,     0,     0,
+     0,     0,     0,    91,    92,    20,     0,    10,     0,   -30,
+    11,     0,     0,    21,    22,    23,    24,    25,    26,     0,
+     0,     0,    27,    28,    93,    29,    30,    94,     0,    31,
+    32,     0,     0,    33,     0,     0,    34,    35,    36,    12,
+    13,     0,    14,     0,    84,     0,     0,     0,     0,    16,
+    17,     0,    18,     0,    19,     0,     0,     0,     0,     0,
+     0,     0,     0,    79,     0,     0,     0,     0,     0,     0,
+    91,    92,    20,     0,    10,     0,     0,    11,   -30,     0,
+    21,    22,    23,    24,    25,    26,     0,     0,     0,    27,
+    28,     0,    29,    30,     0,     0,    31,    32,     0,     0,
+    33,     0,     0,    34,    35,    36,    12,    13,     0,    14,
+     0,    84,     0,     0,     0,     0,    16,    17,     0,    18,
+     0,    19,     0,     0,     0,     0,     0,     0,     7,     8,
+     0,     0,     9,    10,     0,     0,    11,    91,    92,    20,
+     0,     0,     0,     0,     0,     0,     0,    21,    22,    23,
+    24,    25,    26,     0,     0,     0,    27,    28,     0,    29,
+    30,     0,     0,    31,    32,    12,    13,    33,    14,     0,
+    34,    35,    36,     0,    15,    16,    17,     0,    18,     0,
+    19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    20,     0,
+     0,     0,     0,     0,     0,     0,    21,    22,    23,    24,
+    25,    26,     0,     0,     0,    27,    28,     0,    29,    30,
+     0,     0,    31,    32,     0,     0,    33,     0,     0,    34,
+    35,    36,   158,     0,     0,    56,   108,   161,     0,     0,
+     0,     0,     0,     0,     0,     0,   109,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   110,   111,     0,
+   112,   113,   114,   115,   116,   117,   118,    12,    13,     0,
+    14,     0,     0,     0,     0,     0,     0,    16,    17,     0,
+    18,     0,    19,     0,     0,     0,     0,     0,     0,     0,
+     0,   158,     0,     0,    10,     0,   161,    11,     0,     0,
+    20,     0,     0,     0,     0,     0,     0,     0,    21,    22,
+    23,    24,    25,    26,     0,   119,     0,    27,    28,     0,
+    29,    30,     0,     0,    31,    32,    12,    13,    57,    14,
+     0,    34,    35,    36,     0,     0,    16,    17,     0,    18,
+     0,    19,     0,     0,     0,     0,     0,     0,     0,     0,
+   204,     0,     0,    10,     0,     0,    11,     0,     0,    20,
+     0,     0,     0,     0,     0,     0,     0,    21,    22,    23,
+    24,    25,    26,     0,     0,     0,    27,    28,     0,    29,
+    30,     0,     0,    31,    32,    12,    13,    33,    14,     0,
+    34,    35,    36,     0,     0,    16,    17,     0,    18,     0,
+    19,     0,     0,     0,     0,     0,     0,     0,     0,   206,
+     0,     0,    10,     0,     0,    11,     0,     0,    20,     0,
+     0,     0,     0,     0,     0,     0,    21,    22,    23,    24,
+    25,    26,     0,     0,     0,    27,    28,     0,    29,    30,
+     0,     0,    31,    32,    12,    13,    33,    14,     0,    34,
+    35,    36,     0,     0,    16,    17,     0,    18,     0,    19,
+     0,     0,     0,     0,     0,     0,     0,     0,   221,     0,
+     0,    10,     0,     0,    11,     0,     0,    20,     0,     0,
+     0,     0,     0,     0,     0,    21,    22,    23,    24,    25,
+    26,     0,     0,     0,    27,    28,     0,    29,    30,     0,
+     0,    31,    32,    12,    13,    33,    14,     0,    34,    35,
+    36,     0,     0,    16,    17,     0,    18,     0,    19,     0,
+     0,     0,     0,     0,     0,     0,     0,   204,     0,     0,
+   298,     0,     0,    11,     0,     0,    20,     0,     0,     0,
+     0,     0,     0,     0,    21,    22,    23,    24,    25,    26,
+     0,     0,     0,    27,    28,     0,    29,    30,     0,     0,
+    31,    32,    12,    13,    33,    14,     0,    34,    35,    36,
+     0,     0,    16,    17,     0,    18,     0,    19,     0,     0,
+     0,     0,     0,     0,     0,     0,   206,     0,     0,   298,
+     0,     0,    11,     0,     0,    20,     0,     0,     0,     0,
+     0,     0,     0,    21,    22,    23,    24,    25,    26,     0,
+     0,     0,    27,    28,     0,    29,    30,     0,     0,    31,
+    32,    12,    13,    33,    14,     0,    34,    35,    36,     0,
+     0,    16,    17,     0,    18,     0,    19,     0,     0,     0,
+     0,     0,     0,     0,     0,   221,     0,     0,   298,     0,
+     0,    11,     0,     0,    20,     0,     0,     0,     0,     0,
+     0,     0,    21,    22,    23,    24,    25,    26,     0,     0,
+     0,    27,    28,     0,    29,    30,     0,     0,    31,    32,
+    12,    13,    33,    14,     0,    34,    35,    36,     0,     0,
+    16,    17,     0,    18,     0,    19,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    20,     0,     0,     0,     0,     0,     0,
+     0,    21,    22,    23,    24,    25,    26,     0,     0,     0,
+    27,    28,     0,    29,    30,     0,     0,    31,    32,     0,
+     0,    33,     0,     0,    34,    35,    36,   136,     0,    56,
+   108,     0,     0,   137,     0,     0,     0,     0,     0,     0,
+   109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   110,   111,     0,   112,   113,   114,   115,   116,   117,
+   118,    12,    13,     0,    14,     0,     0,     0,     0,     0,
+     0,    16,    17,     0,    18,     0,    19,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    20,     0,     0,     0,     0,     0,
+     0,     0,    21,    22,    23,    24,    25,    26,     0,   119,
+     0,    27,    28,     0,    29,    30,     0,     0,    31,    32,
+     0,     0,    57,     0,     0,    34,    35,    36,   136,     0,
+    56,   108,     0,     0,   325,     0,     0,     0,     0,     0,
+     0,   109,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   110,   111,     0,   112,   113,   114,   115,   116,
+   117,   118,    12,    13,     0,    14,     0,     0,     0,     0,
+     0,     0,    16,    17,     0,    18,     0,    19,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    20,     0,     0,     0,     0,
+     0,     0,     0,    21,    22,    23,    24,    25,    26,     0,
+   119,     0,    27,    28,     0,    29,    30,     0,     0,    31,
+    32,     0,     0,    57,     0,     0,    34,    35,    36,   136,
+     0,    56,   108,     0,     0,   336,     0,     0,     0,     0,
+     0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   110,   111,     0,   112,   113,   114,   115,
+   116,   117,   118,    12,    13,     0,    14,     0,     0,     0,
+     0,     0,     0,    16,    17,     0,    18,     0,    19,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    20,     0,     0,     0,
+     0,     0,     0,     0,    21,    22,    23,    24,    25,    26,
+     0,   119,     0,    27,    28,     0,    29,    30,     0,     0,
+    31,    32,     0,     0,    57,     0,     0,    34,    35,    36,
+   136,     0,    56,   108,     0,     0,   338,     0,     0,     0,
+     0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   110,   111,     0,   112,   113,   114,
+   115,   116,   117,   118,    12,    13,     0,    14,     0,     0,
+     0,     0,     0,     0,    16,    17,     0,    18,     0,    19,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    20,     0,     0,
+     0,     0,     0,     0,     0,    21,    22,    23,    24,    25,
+    26,     0,   119,     0,    27,    28,     0,    29,    30,     0,
+     0,    31,    32,     0,     0,    57,     0,     0,    34,    35,
+    36,   136,     0,    56,   108,     0,     0,   356,     0,     0,
+     0,     0,     0,     0,   109,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   110,   111,     0,   112,   113,
+   114,   115,   116,   117,   118,    12,    13,     0,    14,     0,
+     0,     0,     0,     0,     0,    16,    17,     0,    18,     0,
+    19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    20,     0,
+     0,     0,     0,     0,     0,     0,    21,    22,    23,    24,
+    25,    26,     0,   119,     0,    27,    28,     0,    29,    30,
+     0,     0,    31,    32,     0,     0,    57,     0,     0,    34,
+    35,    36,   136,     0,    56,   108,     0,     0,   358,     0,
+     0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   110,   111,     0,   112,
+   113,   114,   115,   116,   117,   118,    12,    13,     0,    14,
+     0,     0,     0,     0,     0,     0,    16,    17,     0,    18,
+     0,    19,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    20,
+     0,     0,     0,     0,     0,     0,     0,    21,    22,    23,
+    24,    25,    26,     0,   119,     0,    27,    28,     0,    29,
+    30,     0,     0,    31,    32,     0,   136,    57,    56,   108,
+    34,    35,    36,     0,     0,     0,     0,     0,     0,   109,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   110,   111,     0,   112,   113,   114,   115,   116,   117,   118,
+    12,    13,     0,    14,     0,     0,     0,     0,     0,     0,
+    16,    17,     0,    18,     0,    19,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    20,     0,     0,     0,     0,     0,     0,
+     0,    21,    22,    23,    24,    25,    26,     0,   119,     0,
+    27,    28,     0,    29,    30,     0,     0,    31,    32,    56,
+   108,    57,     0,   137,    34,    35,    36,     0,     0,     0,
+   109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   110,   111,     0,   112,   113,   114,   115,   116,   117,
+   118,    12,    13,     0,    14,     0,     0,     0,     0,     0,
+     0,    16,    17,     0,    18,     0,    19,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    20,     0,     0,     0,     0,     0,
+     0,     0,    21,    22,    23,    24,    25,    26,     0,   119,
+     0,    27,    28,     0,    29,    30,     0,     0,    31,    32,
+    56,   108,    57,     0,     0,    34,    35,    36,     0,     0,
+     0,   109,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,   110,   111,     0,   112,   113,   114,   115,   116,
+   117,   118,    12,    13,     0,    14,     0,     0,     0,     0,
+     0,     0,    16,    17,     0,    18,     0,    19,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    20,     0,     0,     0,     0,
+     0,     0,     0,    21,    22,    23,    24,    25,    26,     0,
+   119,   270,    27,    28,     0,    29,    30,     0,     0,    31,
+    32,    56,   108,    57,     0,   277,    34,    35,    36,     0,
+     0,     0,   109,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   110,   111,     0,   112,   113,   114,   115,
+   116,   117,   118,    12,    13,     0,    14,     0,     0,     0,
+     0,     0,     0,    16,    17,     0,    18,     0,    19,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    20,     0,     0,     0,
+     0,     0,     0,     0,    21,    22,    23,    24,    25,    26,
+     0,   119,     0,    27,    28,     0,    29,    30,     0,     0,
+    31,    32,    56,   108,    57,     0,   317,    34,    35,    36,
+     0,     0,     0,   109,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,   110,   111,     0,   112,   113,   114,
+   115,   116,   117,   118,    12,    13,     0,    14,     0,     0,
+     0,     0,     0,     0,    16,    17,     0,    18,     0,    19,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,    20,     0,     0,
+     0,     0,     0,     0,     0,    21,    22,    23,    24,    25,
+    26,     0,   119,     0,    27,    28,     0,    29,    30,     0,
+     0,    31,    32,    56,   108,    57,     0,   319,    34,    35,
+    36,     0,     0,     0,   109,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,   110,   111,     0,   112,   113,
+   114,   115,   116,   117,   118,    12,    13,     0,    14,     0,
+     0,     0,     0,     0,     0,    16,    17,     0,    18,     0,
+    19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    20,     0,
+     0,     0,     0,     0,     0,     0,    21,    22,    23,    24,
+    25,    26,     0,   119,     0,    27,    28,     0,    29,    30,
+     0,     0,    31,    32,    56,   108,    57,     0,   360,    34,
+    35,    36,     0,     0,     0,   109,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   110,   111,     0,   112,
+   113,   114,   115,   116,   117,   118,    12,    13,     0,    14,
+     0,     0,     0,     0,     0,     0,    16,    17,     0,    18,
+     0,    19,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    20,
+     0,     0,     0,     0,     0,     0,     0,    21,    22,    23,
+    24,    25,    26,     0,   119,     0,    27,    28,     0,    29,
+    30,     0,     0,    31,    32,    56,   108,    57,     0,   362,
+    34,    35,    36,     0,     0,     0,   109,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   110,   111,     0,
+   112,   113,   114,   115,   116,   117,   118,    12,    13,     0,
+    14,     0,     0,     0,     0,     0,     0,    16,    17,     0,
+    18,     0,    19,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    20,     0,     0,     0,     0,     0,     0,     0,    21,    22,
+    23,    24,    25,    26,     0,   119,     0,    27,    28,     0,
+    29,    30,     0,     0,    31,    32,     0,     0,    57,     0,
+     0,    34,    35,    36,    56,   108,   364,     0,     0,     0,
+     0,     0,     0,     0,     0,   109,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,   110,   111,     0,   112,
+   113,   114,   115,   116,   117,   118,    12,    13,     0,    14,
+     0,     0,     0,     0,     0,     0,    16,    17,     0,    18,
+     0,    19,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    20,
+     0,     0,     0,     0,     0,     0,     0,    21,    22,    23,
+    24,    25,    26,     0,   119,     0,    27,    28,     0,    29,
+    30,     0,     0,    31,    32,    56,   108,    57,     0,   375,
+    34,    35,    36,     0,     0,     0,   109,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,   110,   111,     0,
+   112,   113,   114,   115,   116,   117,   118,    12,    13,     0,
+    14,     0,     0,     0,     0,     0,     0,    16,    17,     0,
+    18,     0,    19,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    20,     0,     0,     0,     0,     0,     0,     0,    21,    22,
+    23,    24,    25,    26,     0,   119,     0,    27,    28,     0,
+    29,    30,     0,     0,    31,    32,    56,   108,    57,     0,
+   376,    34,    35,    36,     0,     0,     0,   109,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   110,   111,
+     0,   112,   113,   114,   115,   116,   117,   118,    12,    13,
+     0,    14,     0,     0,     0,     0,     0,     0,    16,    17,
+     0,    18,     0,    19,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,    20,     0,     0,     0,     0,     0,     0,     0,    21,
+    22,    23,    24,    25,    26,     0,   119,     0,    27,    28,
+     0,    29,    30,     0,     0,    31,    32,    56,   108,    57,
+     0,   377,    34,    35,    36,     0,     0,     0,   109,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,   110,
+   111,     0,   112,   113,   114,   115,   116,   117,   118,    12,
+    13,     0,    14,     0,     0,     0,     0,     0,     0,    16,
+    17,     0,    18,     0,    19,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    20,     0,     0,     0,     0,     0,     0,     0,
+    21,    22,    23,    24,    25,    26,     0,   119,     0,    27,
+    28,     0,    29,    30,     0,     0,    31,    32,    56,   108,
+    57,     0,     0,    34,    35,    36,     0,     0,     0,   109,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+   110,   111,     0,   112,   113,   114,   115,   116,   117,   118,
+    12,    13,     0,    14,     0,     0,     0,     0,     0,     0,
+    16,    17,     0,    18,     0,    19,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    20,     0,     0,     0,     0,     0,     0,
+     0,    21,    22,    23,    24,    25,    26,     0,   119,     0,
+    27,    28,     0,    29,    30,     0,     0,    31,    32,    56,
+   108,    57,     0,     0,    34,    35,    36,     0,     0,     0,
+   109,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,   110,     0,     0,   112,   113,   114,   115,   116,   117,
+   118,    12,    13,     0,    14,     0,     0,     0,     0,     0,
+     0,    16,    17,     0,    18,     0,    19,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    20,     0,     0,     0,     0,     0,
+     0,     0,    21,    22,    23,    24,    25,    26,     0,    56,
+   108,    27,    28,     0,    29,    30,     0,     0,    31,    32,
+   109,     0,    57,     0,     0,    34,    35,    36,     0,     0,
+     0,     0,     0,     0,   112,   113,   114,   115,   116,   117,
+   118,    12,    13,     0,    14,     0,     0,     0,     0,     0,
+     0,    16,    17,     0,    18,     0,    19,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    20,     0,     0,     0,     0,     0,
+     0,     0,    21,    22,    23,    24,    25,    26,     0,    56,
+-32768,    27,    28,     0,    29,    30,     0,     0,    31,    32,
+-32768,     0,    57,     0,     0,    34,    35,    36,     0,     0,
+     0,     0,     0,     0,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,    12,    13,     0,    14,     0,    56,     0,     0,     0,
+     0,    16,    17,     0,    18,     0,    19,   255,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,   110,   111,
+     0,     0,     0,     0,    20,     0,     0,   256,    12,    13,
+     0,    14,    21,    22,    23,    24,    25,    26,    16,    17,
+     0,    18,    28,    19,    29,    30,     0,     0,    31,    32,
+     0,     0,    57,     0,     0,    34,    35,    36,     0,     0,
+     0,    20,     0,     0,     0,     0,     0,     0,     0,    21,
+    22,    23,    24,    25,    26,     0,   257,   334,    27,    28,
+    56,    29,    30,     0,     0,    31,    32,     0,     0,    57,
+     0,   255,    34,    35,    36,     0,     0,     0,     0,     0,
+     0,     0,   110,   111,     0,     0,     0,     0,     0,     0,
+     0,   256,    12,    13,     0,    14,     0,     0,     0,     0,
+     0,     0,    16,    17,     0,    18,     0,    19,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    20,     0,     0,     0,     0,
+    56,     0,     0,    21,    22,    23,    24,    25,    26,     0,
+   257,   255,    27,    28,     0,    29,    30,     0,     0,    31,
+    32,     0,   110,    57,     0,     0,    34,    35,    36,     0,
+     0,   256,    12,    13,     0,    14,     0,     0,     0,     0,
+     0,     0,    16,    17,     0,    18,     0,    19,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,    10,
+     0,     0,    11,   142,     0,    20,     0,     0,     0,     0,
+     0,     0,     0,    21,    22,    23,    24,    25,    26,     0,
+     0,     0,    27,    28,     0,    29,    30,     0,     0,    31,
+    32,    12,    13,    57,    14,     0,    34,    35,    36,     0,
+     0,    16,    17,     0,    18,     0,    19,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,    10,     0,
+     0,    11,   150,     0,    20,     0,     0,     0,     0,     0,
+     0,     0,    21,    22,    23,    24,    25,    26,     0,     0,
+     0,    27,    28,     0,    29,    30,     0,     0,    31,    32,
+    12,    13,    33,    14,     0,    34,    35,    36,     0,     0,
+    16,    17,     0,    18,     0,    19,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,    20,     0,     0,    56,     0,     0,     0,
+     0,    21,    22,    23,    24,    25,    26,   255,     0,     0,
+    27,    28,     0,    29,    30,     0,     0,    31,    32,     0,
+     0,    33,     0,     0,    34,    35,    36,   256,    12,    13,
+     0,    14,     0,     0,     0,     0,     0,     0,    16,    17,
+     0,    18,     0,    19,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,    10,     0,     0,    11,     0,
+     0,    20,     0,     0,     0,     0,     0,     0,     0,    21,
+    22,    23,    24,    25,    26,     0,     0,     0,    27,    28,
+     0,    29,    30,     0,     0,    31,    32,    12,    13,    57,
+    14,     0,    34,    35,    36,     0,     0,    16,    17,     0,
+    18,     0,    19,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    56,     0,     0,    11,     0,     0,
+    20,     0,     0,     0,     0,     0,     0,     0,    21,    22,
+    23,    24,    25,    26,     0,     0,     0,    27,    28,     0,
+    29,    30,     0,     0,    31,    32,    12,    13,    33,    14,
+     0,    34,    35,    36,     0,     0,    16,    17,     0,    18,
+     0,    19,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,   179,     0,     0,    11,     0,     0,    20,
+     0,     0,     0,     0,     0,     0,     0,    21,    22,    23,
+    24,    25,    26,     0,     0,     0,    27,    28,     0,    29,
+    30,     0,     0,    31,    32,    12,    13,    33,    14,     0,
+    34,    35,    36,     0,     0,    16,    17,     0,    18,     0,
+    19,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,    56,     0,     0,     0,     0,     0,    20,     0,
+     0,     0,     0,     0,     0,     0,    21,    22,    23,    24,
+    25,    26,     0,     0,     0,    27,    28,     0,    29,    30,
+     0,     0,    31,    32,    12,    13,    33,    14,     0,    34,
+    35,    36,     0,     0,    16,    17,     0,    18,     0,    19,
+     0,     0,     0,     0,     0,     0,     0,     0,   210,     0,
+     0,   298,     0,     0,    11,     0,     0,    20,     0,     0,
+     0,     0,     0,     0,     0,    21,    22,    23,    24,    25,
+    26,     0,     0,     0,    27,    28,     0,    29,    30,     0,
+     0,    31,    32,    12,    13,    57,    14,     0,    34,    35,
+    36,     0,     0,    16,    17,     0,    18,     0,    19,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,    20,     0,     0,    56,
+     0,     0,     0,     0,    21,    22,    23,    24,    25,    26,
+-32768,     0,     0,    27,    28,     0,    29,    30,     0,     0,
+    31,    32,     0,     0,    33,     0,     0,    34,    35,    36,
+-32768,    12,    13,     0,    14,     0,    56,     0,     0,     0,
+     0,    16,    17,     0,    18,     0,    19,     0,     0,     0,
+     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     0,     0,     0,     0,    20,     0,     0,     0,    12,    13,
+     0,    14,    21,    22,    23,    24,    25,    26,    16,    17,
+     0,    18,    28,    19,    29,    30,     0,     0,    31,    32,
+     0,     0,    57,     0,     0,    34,    35,    36,     0,     0,
+     0,    20,     0,     0,     0,     0,     0,     0,     0,    21,
+    22,    23,    24,    25,    26,     0,     0,     0,    27,    28,
+     0,    29,    30,     0,     0,    31,    32,     0,     0,    57,
+     0,     0,    34,    35,    36
+};
+
+static const short yycheck[] = {    14,
+    33,     4,    50,    51,     7,     8,   179,   161,    69,    18,
+     9,   168,    27,     9,    44,    13,    31,    32,    33,    34,
+    35,    36,    65,    66,    68,    11,    41,    81,    68,    10,
+    11,    15,   346,    83,    43,    38,    86,    52,    36,    89,
+    90,    39,    57,    93,   246,    44,   248,    12,   109,    12,
+    98,   101,    67,    44,    10,    85,    86,    87,   106,   373,
+    12,    18,   123,    19,   108,   109,    15,   100,   108,   109,
+    12,     9,    12,   255,    91,   257,   258,   259,    10,   261,
+   110,   108,   109,   265,    99,   100,    85,    19,    87,    85,
+   133,    10,    10,    41,    85,     9,    87,    16,    16,    10,
+    14,    52,    53,     9,   107,    16,    44,   161,    14,   124,
+   125,   126,   127,   128,   129,    10,   166,   101,   102,   103,
+   104,    16,   172,   107,    85,   298,    12,    88,   330,   144,
+   145,    10,   147,   148,    10,   289,   107,    16,   153,   154,
+    16,   156,   157,    12,    10,    12,     9,    85,    86,    87,
+    16,   166,   334,    10,   103,   104,    12,   172,   107,    16,
+    12,   363,    12,    12,    12,   180,     9,    84,    41,   230,
+   231,    44,   110,    94,   328,     9,    15,   379,   193,   194,
+    14,   196,   197,   198,   199,   200,   201,   190,   203,   346,
+   205,    85,   207,   208,   255,   210,   147,   148,   241,    43,
+    10,   118,   217,   154,   155,   156,   157,   222,     9,   224,
+   364,    18,    85,    86,    87,     9,   373,    78,    14,   267,
+    14,     9,   255,     9,   257,   258,   259,    16,   261,    16,
+   181,   246,   265,   248,    99,   289,    16,   110,    43,    12,
+   255,   180,   257,   258,   259,    16,   261,   262,   263,   264,
+   265,   168,    16,    16,     0,     0,    40,   208,   209,   105,
+   107,   276,    -1,   324,    14,   280,    -1,   282,    -1,   284,
+   285,    -1,   287,    -1,   328,    -1,    -1,    -1,   229,    -1,
+    -1,    31,    32,    33,   299,    -1,    36,   302,   303,   304,
+   305,    41,   340,    -1,   309,    -1,   311,   312,   313,    -1,
+    -1,   334,    52,   254,    -1,    -1,   223,    57,    -1,    -1,
+   364,    -1,    -1,   316,    -1,    -1,    -1,    67,    -1,   334,
+   237,    -1,   337,    -1,   339,   375,   341,   342,   343,    -1,
+   345,    -1,   347,   284,   285,   286,   287,   352,    -1,   256,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    99,
+   100,   366,    -1,    -1,    -1,   370,   371,   180,    -1,    -1,
+   299,   312,   313,   302,   303,   304,   305,    -1,    -1,    -1,
+   309,    -1,    -1,   290,   124,   125,   126,   127,   128,   129,
+    -1,    -1,   333,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   341,   342,    -1,    -1,   144,   145,    97,   147,   148,    -1,
+    -1,    -1,   103,   153,   154,    -1,   156,   157,    -1,    -1,
+    -1,    -1,    -1,   352,    -1,   332,   166,    -1,    -1,    -1,
+    -1,    -1,   172,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+   180,    -1,    -1,   134,   135,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   194,    -1,   196,   197,   198,   199,
+   200,   201,    -1,   203,    -1,   205,    -1,   207,   208,    -1,
+   210,    -1,    -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,
+    -1,    -1,   222,    -1,   224,   176,   299,   178,    -1,   302,
+   303,   304,   305,    -1,    -1,    -1,   309,    -1,   189,    -1,
+   191,    -1,    -1,    -1,    -1,    -1,   246,    -1,   248,    -1,
+    -1,    -1,    -1,    -1,    -1,   255,    -1,   257,   258,   259,
+    -1,   261,   262,   263,   264,   265,    -1,    -1,    -1,    -1,
+    -1,     4,    -1,    -1,    -1,    -1,   276,    10,    -1,   352,
+   280,    -1,   282,    -1,   284,   285,    -1,   287,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   299,
+   251,    -1,   302,   303,   304,   305,    -1,    -1,    -1,   309,
+    -1,   311,   312,   313,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    55,    56,    -1,    -1,    -1,    -1,    -1,    -1,
+    63,    64,    65,    66,   334,    -1,    69,    70,    71,    -1,
+    -1,   341,   342,   343,    -1,   345,    -1,   347,    -1,    -1,
+    -1,    -1,   352,    86,    -1,    -1,    -1,    -1,    -1,   310,
+    93,    -1,    -1,    -1,    -1,    -1,   366,    -1,    -1,    -1,
+   370,   371,   105,    -1,   107,    -1,   109,    -1,    -1,   112,
+   113,   114,   115,   116,   117,    -1,   119,   120,   121,    -1,
+   123,    -1,    -1,    -1,    -1,    -1,    -1,   130,    -1,    -1,
+   133,    -1,    -1,    -1,   355,   138,    -1,   140,    -1,    -1,
+    -1,    -1,    -1,    -1,   365,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,    -1,    -1,
+    -1,    -1,   383,    -1,    -1,    -1,   169,    -1,    -1,    -1,
+    -1,   174,    -1,    -1,    -1,    -1,   179,    -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,     7,     8,     9,    -1,    11,    12,    -1,    14,
+    15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   227,    -1,    -1,   230,   231,    -1,
+    -1,    -1,   235,   236,    -1,   238,    -1,    -1,   241,    44,
+    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,    53,    54,
+    55,    -1,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,   270,   271,   272,
+    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    85,    86,    87,    88,    89,    90,    -1,    -1,    -1,    94,
+    95,    -1,    97,    98,    -1,   298,   101,   102,    -1,    -1,
+   105,    -1,    -1,   108,   109,   110,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,   321,   322,
+    -1,   324,     9,   326,    11,    12,   329,    14,    15,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,   349,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,   357,    -1,   359,    44,    45,    46,
+    47,    48,    49,    50,    51,    52,    -1,    54,    55,    56,
+    57,    -1,    59,    60,    61,    -1,    -1,    -1,    -1,    -1,
+    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,
+    77,    11,    12,    -1,    14,    15,    -1,    17,    85,    86,
+    87,    88,    89,    90,    -1,    -1,    -1,    94,    95,    96,
+    97,    98,    99,    -1,   101,   102,    -1,    -1,   105,    -1,
+    -1,   108,   109,   110,    44,    45,    46,    47,    48,    49,
+    50,    51,    52,    -1,    54,    55,    56,    57,    -1,    59,
+    60,    61,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
+    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    11,    12,
+    -1,    14,    15,    -1,    17,    85,    86,    87,    88,    89,
+    90,    -1,    -1,    -1,    94,    95,    96,    97,    98,    99,
+    -1,   101,   102,    -1,    -1,   105,    -1,    -1,   108,   109,
+   110,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    -1,    54,    55,    56,    57,    -1,    59,    60,    61,    -1,
+    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,
+    -1,    -1,    75,    76,    77,    11,    12,    -1,    14,    15,
+    -1,    17,    85,    86,    87,    88,    89,    90,    -1,    -1,
+    -1,    94,    95,    96,    97,    98,    99,    -1,   101,   102,
+    -1,    -1,   105,    -1,    -1,   108,   109,   110,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    -1,    54,    55,
+    56,    57,    -1,    59,    60,    61,    -1,    -1,    -1,    -1,
+    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,    75,
+    76,    77,    11,    12,    -1,    14,    15,    -1,    17,    85,
+    86,    87,    88,    89,    90,    -1,    -1,    -1,    94,    95,
+    96,    97,    98,    99,    -1,   101,   102,    -1,    -1,   105,
+    -1,    -1,   108,   109,   110,    44,    45,    46,    47,    48,
+    49,    50,    51,    52,    -1,    54,    55,    56,    57,    -1,
+    59,    60,    61,    -1,    -1,    -1,    -1,    -1,    -1,     1,
+    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    11,
+    12,    -1,    14,    15,    -1,    17,    85,    86,    87,    88,
+    89,    90,    -1,    -1,    -1,    94,    95,    96,    97,    98,
+    99,    -1,   101,   102,    -1,    -1,   105,    -1,    -1,   108,
+   109,   110,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    -1,    54,    55,    56,    57,    -1,    59,    60,    61,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
+    -1,    -1,    -1,    75,    76,    77,     9,    -1,    11,    12,
+    -1,    14,    15,    85,    86,    87,    88,    89,    90,    -1,
+    -1,    -1,    94,    95,    96,    97,    98,    99,    -1,   101,
+   102,    -1,    -1,   105,    -1,    -1,   108,   109,   110,    -1,
+    -1,    44,    45,    46,    47,    48,    49,    50,    51,    52,
+    -1,    54,    55,    56,    57,    -1,    59,    60,    61,    -1,
+    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,
+    -1,    -1,    75,    76,    77,    11,    12,    -1,    14,    15,
+    -1,    17,    85,    86,    87,    88,    89,    90,    -1,    -1,
+    -1,    94,    95,    96,    97,    98,    99,    -1,   101,   102,
+    -1,    -1,   105,    -1,    -1,   108,   109,   110,    44,    45,
+    46,    47,    48,    49,    50,    51,    52,    -1,    54,    55,
+    56,    57,    -1,    59,    60,    61,    -1,    -1,    -1,    -1,
+    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,    75,
+    76,    77,    11,    12,    -1,    14,    15,    -1,    17,    85,
+    86,    87,    88,    89,    90,    -1,    -1,    -1,    94,    95,
+    96,    97,    98,    99,    -1,   101,   102,    -1,    -1,   105,
+    -1,    -1,   108,   109,   110,    44,    45,    46,    47,    48,
+    49,    50,    51,    52,    -1,    54,    55,    56,    57,    -1,
+    59,    60,    61,    -1,    -1,    -1,    -1,    -1,    -1,     1,
+    -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    77,    11,
+    12,    -1,    14,    15,    -1,    -1,    85,    86,    87,    88,
+    89,    90,    -1,    -1,    -1,    94,    95,    96,    97,    98,
+    99,    -1,   101,   102,    -1,    -1,   105,    -1,    -1,   108,
+   109,   110,    44,    45,    46,    47,    48,    49,    50,    51,
+    52,    -1,    54,    55,    56,    57,    -1,    59,    60,    61,
+    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,
+    -1,    -1,    -1,    75,    76,    77,    -1,    12,    -1,    14,
+    15,    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,
+    -1,    -1,    94,    95,    96,    97,    98,    99,    -1,   101,
+   102,    -1,    -1,   105,    -1,    -1,   108,   109,   110,    44,
+    45,    -1,    47,    -1,    49,    -1,    -1,    -1,    -1,    54,
+    55,    -1,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,
+    75,    76,    77,    -1,    12,    -1,    -1,    15,    16,    -1,
+    85,    86,    87,    88,    89,    90,    -1,    -1,    -1,    94,
+    95,    -1,    97,    98,    -1,    -1,   101,   102,    -1,    -1,
+   105,    -1,    -1,   108,   109,   110,    44,    45,    -1,    47,
+    -1,    49,    -1,    -1,    -1,    -1,    54,    55,    -1,    57,
+    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,     7,     8,
+    -1,    -1,    11,    12,    -1,    -1,    15,    75,    76,    77,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,
+    88,    89,    90,    -1,    -1,    -1,    94,    95,    -1,    97,
+    98,    -1,    -1,   101,   102,    44,    45,   105,    47,    -1,
+   108,   109,   110,    -1,    53,    54,    55,    -1,    57,    -1,
+    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,    88,
+    89,    90,    -1,    -1,    -1,    94,    95,    -1,    97,    98,
+    -1,    -1,   101,   102,    -1,    -1,   105,    -1,    -1,   108,
+   109,   110,     9,    -1,    -1,    12,    13,    14,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    23,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    -1,
+    37,    38,    39,    40,    41,    42,    43,    44,    45,    -1,
+    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
+    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,     9,    -1,    -1,    12,    -1,    14,    15,    -1,    -1,
+    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,
+    87,    88,    89,    90,    -1,    92,    -1,    94,    95,    -1,
+    97,    98,    -1,    -1,   101,   102,    44,    45,   105,    47,
+    -1,   108,   109,   110,    -1,    -1,    54,    55,    -1,    57,
+    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     9,    -1,    -1,    12,    -1,    -1,    15,    -1,    -1,    77,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,
+    88,    89,    90,    -1,    -1,    -1,    94,    95,    -1,    97,
+    98,    -1,    -1,   101,   102,    44,    45,   105,    47,    -1,
+   108,   109,   110,    -1,    -1,    54,    55,    -1,    57,    -1,
+    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     9,
+    -1,    -1,    12,    -1,    -1,    15,    -1,    -1,    77,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,    88,
+    89,    90,    -1,    -1,    -1,    94,    95,    -1,    97,    98,
+    -1,    -1,   101,   102,    44,    45,   105,    47,    -1,   108,
+   109,   110,    -1,    -1,    54,    55,    -1,    57,    -1,    59,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     9,    -1,
+    -1,    12,    -1,    -1,    15,    -1,    -1,    77,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    85,    86,    87,    88,    89,
+    90,    -1,    -1,    -1,    94,    95,    -1,    97,    98,    -1,
+    -1,   101,   102,    44,    45,   105,    47,    -1,   108,   109,
+   110,    -1,    -1,    54,    55,    -1,    57,    -1,    59,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,     9,    -1,    -1,
+    12,    -1,    -1,    15,    -1,    -1,    77,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    85,    86,    87,    88,    89,    90,
+    -1,    -1,    -1,    94,    95,    -1,    97,    98,    -1,    -1,
+   101,   102,    44,    45,   105,    47,    -1,   108,   109,   110,
+    -1,    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,     9,    -1,    -1,    12,
+    -1,    -1,    15,    -1,    -1,    77,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,
+    -1,    -1,    94,    95,    -1,    97,    98,    -1,    -1,   101,
+   102,    44,    45,   105,    47,    -1,   108,   109,   110,    -1,
+    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,     9,    -1,    -1,    12,    -1,
+    -1,    15,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,    -1,
+    -1,    94,    95,    -1,    97,    98,    -1,    -1,   101,   102,
+    44,    45,   105,    47,    -1,   108,   109,   110,    -1,    -1,
+    54,    55,    -1,    57,    -1,    59,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    85,    86,    87,    88,    89,    90,    -1,    -1,    -1,
+    94,    95,    -1,    97,    98,    -1,    -1,   101,   102,    -1,
+    -1,   105,    -1,    -1,   108,   109,   110,    10,    -1,    12,
+    13,    -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,    -1,
+    23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    34,    35,    -1,    37,    38,    39,    40,    41,    42,
+    43,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,
+    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,    92,
+    -1,    94,    95,    -1,    97,    98,    -1,    -1,   101,   102,
+    -1,    -1,   105,    -1,    -1,   108,   109,   110,    10,    -1,
+    12,    13,    -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,
+    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    34,    35,    -1,    37,    38,    39,    40,    41,
+    42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,
+    -1,    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,
+    92,    -1,    94,    95,    -1,    97,    98,    -1,    -1,   101,
+   102,    -1,    -1,   105,    -1,    -1,   108,   109,   110,    10,
+    -1,    12,    13,    -1,    -1,    16,    -1,    -1,    -1,    -1,
+    -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    34,    35,    -1,    37,    38,    39,    40,
+    41,    42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,
+    -1,    -1,    -1,    54,    55,    -1,    57,    -1,    59,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    85,    86,    87,    88,    89,    90,
+    -1,    92,    -1,    94,    95,    -1,    97,    98,    -1,    -1,
+   101,   102,    -1,    -1,   105,    -1,    -1,   108,   109,   110,
+    10,    -1,    12,    13,    -1,    -1,    16,    -1,    -1,    -1,
+    -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    34,    35,    -1,    37,    38,    39,
+    40,    41,    42,    43,    44,    45,    -1,    47,    -1,    -1,
+    -1,    -1,    -1,    -1,    54,    55,    -1,    57,    -1,    59,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    85,    86,    87,    88,    89,
+    90,    -1,    92,    -1,    94,    95,    -1,    97,    98,    -1,
+    -1,   101,   102,    -1,    -1,   105,    -1,    -1,   108,   109,
+   110,    10,    -1,    12,    13,    -1,    -1,    16,    -1,    -1,
+    -1,    -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    34,    35,    -1,    37,    38,
+    39,    40,    41,    42,    43,    44,    45,    -1,    47,    -1,
+    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    57,    -1,
+    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,    88,
+    89,    90,    -1,    92,    -1,    94,    95,    -1,    97,    98,
+    -1,    -1,   101,   102,    -1,    -1,   105,    -1,    -1,   108,
+   109,   110,    10,    -1,    12,    13,    -1,    -1,    16,    -1,
+    -1,    -1,    -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    -1,    37,
+    38,    39,    40,    41,    42,    43,    44,    45,    -1,    47,
+    -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    57,
+    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,
+    88,    89,    90,    -1,    92,    -1,    94,    95,    -1,    97,
+    98,    -1,    -1,   101,   102,    -1,    10,   105,    12,    13,
+   108,   109,   110,    -1,    -1,    -1,    -1,    -1,    -1,    23,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    34,    35,    -1,    37,    38,    39,    40,    41,    42,    43,
+    44,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
+    54,    55,    -1,    57,    -1,    59,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    85,    86,    87,    88,    89,    90,    -1,    92,    -1,
+    94,    95,    -1,    97,    98,    -1,    -1,   101,   102,    12,
+    13,   105,    -1,    16,   108,   109,   110,    -1,    -1,    -1,
+    23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    34,    35,    -1,    37,    38,    39,    40,    41,    42,
+    43,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,
+    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,    92,
+    -1,    94,    95,    -1,    97,    98,    -1,    -1,   101,   102,
+    12,    13,   105,    -1,    -1,   108,   109,   110,    -1,    -1,
+    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    34,    35,    -1,    37,    38,    39,    40,    41,
+    42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,
+    -1,    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,
+    92,    93,    94,    95,    -1,    97,    98,    -1,    -1,   101,
+   102,    12,    13,   105,    -1,    16,   108,   109,   110,    -1,
+    -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    34,    35,    -1,    37,    38,    39,    40,
+    41,    42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,
+    -1,    -1,    -1,    54,    55,    -1,    57,    -1,    59,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    85,    86,    87,    88,    89,    90,
+    -1,    92,    -1,    94,    95,    -1,    97,    98,    -1,    -1,
+   101,   102,    12,    13,   105,    -1,    16,   108,   109,   110,
+    -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    34,    35,    -1,    37,    38,    39,
+    40,    41,    42,    43,    44,    45,    -1,    47,    -1,    -1,
+    -1,    -1,    -1,    -1,    54,    55,    -1,    57,    -1,    59,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    85,    86,    87,    88,    89,
+    90,    -1,    92,    -1,    94,    95,    -1,    97,    98,    -1,
+    -1,   101,   102,    12,    13,   105,    -1,    16,   108,   109,
+   110,    -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    34,    35,    -1,    37,    38,
+    39,    40,    41,    42,    43,    44,    45,    -1,    47,    -1,
+    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    57,    -1,
+    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,    88,
+    89,    90,    -1,    92,    -1,    94,    95,    -1,    97,    98,
+    -1,    -1,   101,   102,    12,    13,   105,    -1,    16,   108,
+   109,   110,    -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    -1,    37,
+    38,    39,    40,    41,    42,    43,    44,    45,    -1,    47,
+    -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    57,
+    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,
+    88,    89,    90,    -1,    92,    -1,    94,    95,    -1,    97,
+    98,    -1,    -1,   101,   102,    12,    13,   105,    -1,    16,
+   108,   109,   110,    -1,    -1,    -1,    23,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    -1,
+    37,    38,    39,    40,    41,    42,    43,    44,    45,    -1,
+    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
+    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,
+    87,    88,    89,    90,    -1,    92,    -1,    94,    95,    -1,
+    97,    98,    -1,    -1,   101,   102,    -1,    -1,   105,    -1,
+    -1,   108,   109,   110,    12,    13,    14,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    -1,    37,
+    38,    39,    40,    41,    42,    43,    44,    45,    -1,    47,
+    -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,    57,
+    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,
+    88,    89,    90,    -1,    92,    -1,    94,    95,    -1,    97,
+    98,    -1,    -1,   101,   102,    12,    13,   105,    -1,    16,
+   108,   109,   110,    -1,    -1,    -1,    23,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    -1,
+    37,    38,    39,    40,    41,    42,    43,    44,    45,    -1,
+    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    55,    -1,
+    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,
+    87,    88,    89,    90,    -1,    92,    -1,    94,    95,    -1,
+    97,    98,    -1,    -1,   101,   102,    12,    13,   105,    -1,
+    16,   108,   109,   110,    -1,    -1,    -1,    23,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,
+    -1,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    55,
+    -1,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,
+    86,    87,    88,    89,    90,    -1,    92,    -1,    94,    95,
+    -1,    97,    98,    -1,    -1,   101,   102,    12,    13,   105,
+    -1,    16,   108,   109,   110,    -1,    -1,    -1,    23,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,
+    35,    -1,    37,    38,    39,    40,    41,    42,    43,    44,
+    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,
+    55,    -1,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    85,    86,    87,    88,    89,    90,    -1,    92,    -1,    94,
+    95,    -1,    97,    98,    -1,    -1,   101,   102,    12,    13,
+   105,    -1,    -1,   108,   109,   110,    -1,    -1,    -1,    23,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    34,    35,    -1,    37,    38,    39,    40,    41,    42,    43,
+    44,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,
+    54,    55,    -1,    57,    -1,    59,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    85,    86,    87,    88,    89,    90,    -1,    92,    -1,
+    94,    95,    -1,    97,    98,    -1,    -1,   101,   102,    12,
+    13,   105,    -1,    -1,   108,   109,   110,    -1,    -1,    -1,
+    23,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    34,    -1,    -1,    37,    38,    39,    40,    41,    42,
+    43,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,
+    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,    12,
+    13,    94,    95,    -1,    97,    98,    -1,    -1,   101,   102,
+    23,    -1,   105,    -1,    -1,   108,   109,   110,    -1,    -1,
+    -1,    -1,    -1,    -1,    37,    38,    39,    40,    41,    42,
+    43,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,    -1,
+    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,    12,
+    13,    94,    95,    -1,    97,    98,    -1,    -1,   101,   102,
+    23,    -1,   105,    -1,    -1,   108,   109,   110,    -1,    -1,
+    -1,    -1,    -1,    -1,    37,    38,    39,    40,    41,    42,
+    43,    44,    45,    -1,    47,    -1,    12,    -1,    -1,    -1,
+    -1,    54,    55,    -1,    57,    -1,    59,    23,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,
+    -1,    -1,    -1,    -1,    77,    -1,    -1,    43,    44,    45,
+    -1,    47,    85,    86,    87,    88,    89,    90,    54,    55,
+    -1,    57,    95,    59,    97,    98,    -1,    -1,   101,   102,
+    -1,    -1,   105,    -1,    -1,   108,   109,   110,    -1,    -1,
+    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,
+    86,    87,    88,    89,    90,    -1,    92,    93,    94,    95,
+    12,    97,    98,    -1,    -1,   101,   102,    -1,    -1,   105,
+    -1,    23,   108,   109,   110,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    34,    35,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    43,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,
+    -1,    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,    -1,
+    12,    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,
+    92,    23,    94,    95,    -1,    97,    98,    -1,    -1,   101,
+   102,    -1,    34,   105,    -1,    -1,   108,   109,   110,    -1,
+    -1,    43,    44,    45,    -1,    47,    -1,    -1,    -1,    -1,
+    -1,    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    12,
+    -1,    -1,    15,    16,    -1,    77,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,
+    -1,    -1,    94,    95,    -1,    97,    98,    -1,    -1,   101,
+   102,    44,    45,   105,    47,    -1,   108,   109,   110,    -1,
+    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    12,    -1,
+    -1,    15,    16,    -1,    77,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    85,    86,    87,    88,    89,    90,    -1,    -1,
+    -1,    94,    95,    -1,    97,    98,    -1,    -1,   101,   102,
+    44,    45,   105,    47,    -1,   108,   109,   110,    -1,    -1,
+    54,    55,    -1,    57,    -1,    59,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    77,    -1,    -1,    12,    -1,    -1,    -1,
+    -1,    85,    86,    87,    88,    89,    90,    23,    -1,    -1,
+    94,    95,    -1,    97,    98,    -1,    -1,   101,   102,    -1,
+    -1,   105,    -1,    -1,   108,   109,   110,    43,    44,    45,
+    -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    55,
+    -1,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    12,    -1,    -1,    15,    -1,
+    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,
+    86,    87,    88,    89,    90,    -1,    -1,    -1,    94,    95,
+    -1,    97,    98,    -1,    -1,   101,   102,    44,    45,   105,
+    47,    -1,   108,   109,   110,    -1,    -1,    54,    55,    -1,
+    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    12,    -1,    -1,    15,    -1,    -1,
+    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,
+    87,    88,    89,    90,    -1,    -1,    -1,    94,    95,    -1,
+    97,    98,    -1,    -1,   101,   102,    44,    45,   105,    47,
+    -1,   108,   109,   110,    -1,    -1,    54,    55,    -1,    57,
+    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    12,    -1,    -1,    15,    -1,    -1,    77,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,
+    88,    89,    90,    -1,    -1,    -1,    94,    95,    -1,    97,
+    98,    -1,    -1,   101,   102,    44,    45,   105,    47,    -1,
+   108,   109,   110,    -1,    -1,    54,    55,    -1,    57,    -1,
+    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    12,    -1,    -1,    -1,    -1,    -1,    77,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    85,    86,    87,    88,
+    89,    90,    -1,    -1,    -1,    94,    95,    -1,    97,    98,
+    -1,    -1,   101,   102,    44,    45,   105,    47,    -1,   108,
+   109,   110,    -1,    -1,    54,    55,    -1,    57,    -1,    59,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,    -1,
+    -1,    12,    -1,    -1,    15,    -1,    -1,    77,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    85,    86,    87,    88,    89,
+    90,    -1,    -1,    -1,    94,    95,    -1,    97,    98,    -1,
+    -1,   101,   102,    44,    45,   105,    47,    -1,   108,   109,
+   110,    -1,    -1,    54,    55,    -1,    57,    -1,    59,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,    12,
+    -1,    -1,    -1,    -1,    85,    86,    87,    88,    89,    90,
+    23,    -1,    -1,    94,    95,    -1,    97,    98,    -1,    -1,
+   101,   102,    -1,    -1,   105,    -1,    -1,   108,   109,   110,
+    43,    44,    45,    -1,    47,    -1,    12,    -1,    -1,    -1,
+    -1,    54,    55,    -1,    57,    -1,    59,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    77,    -1,    -1,    -1,    44,    45,
+    -1,    47,    85,    86,    87,    88,    89,    90,    54,    55,
+    -1,    57,    95,    59,    97,    98,    -1,    -1,   101,   102,
+    -1,    -1,   105,    -1,    -1,   108,   109,   110,    -1,    -1,
+    -1,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    85,
+    86,    87,    88,    89,    90,    -1,    -1,    -1,    94,    95,
+    -1,    97,    98,    -1,    -1,   101,   102,    -1,    -1,   105,
+    -1,    -1,   108,   109,   110
+};
+/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+#line 3 "bison.simple"
+/* This file comes from bison-1.27.  */
+
+/* Skeleton output parser for bison,
+   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
+#ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#else /* not GNU C.  */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
+#include <alloca.h>
+#else /* not sparc */
+/* We think this test detects Watcom and Microsoft C.  */
+/* This used to test MSDOS, but that is a bad idea
+   since that symbol is in the user namespace.  */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+	 instead, just don't use alloca.  */
+#include <malloc.h>
+#endif
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+/* I don't know what this was needed for, but it pollutes the namespace.
+   So I turned it off.   rms, 2 May 1997.  */
+/* #include <malloc.h>  */
+ #pragma alloca
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible at ilog.fr says this works for HPUX 9.05 and up,
+		 and on HPUX 10.  Eventually we can turn this on.  */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#endif /* __hpux */
+#endif
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
+
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
+
+/* Note: there must be only one dollar sign in this file.
+   It is replaced by the list of actions, each action
+   as one case of the switch.  */
+
+#define yyerrok		(yyerrstatus = 0)
+#define yyclearin	(yychar = YYEMPTY)
+#define YYEMPTY		-2
+#define YYEOF		0
+#define YYACCEPT	goto yyacceptlab
+#define YYABORT 	goto yyabortlab
+#define YYERROR		goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+   This remains here temporarily to ease the
+   transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+#define YYFAIL		goto yyerrlab
+#define YYRECOVERING()  (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do								\
+  if (yychar == YYEMPTY && yylen == 1)				\
+    { yychar = (token), yylval = (value);			\
+      yychar1 = YYTRANSLATE (yychar);				\
+      YYPOPSTACK;						\
+      goto yybackup;						\
+    }								\
+  else								\
+    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
+while (0)
+
+#define YYTERROR	1
+#define YYERRCODE	256
+
+#ifndef YYPURE
+#define YYLEX		yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX		yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX		yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int	yychar;			/*  the lookahead symbol		*/
+YYSTYPE	yylval;			/*  the semantic value of the		*/
+				/*  lookahead symbol			*/
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc;			/*  location data for the lookahead	*/
+				/*  symbol				*/
+#endif
+
+int yynerrs;			/*  number of parse errors so far       */
+#endif  /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug;			/*  nonzero means print parse trace	*/
+/* Since this is uninitialized, it does not stop multiple parsers
+   from coexisting.  */
+#endif
+
+/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/
+
+#ifndef	YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/*  YYMAXDEPTH is the maximum size the stacks can grow to
+    (effective only if the built-in stack extension method is used).  */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+
+/* Define __yy_memcpy.  Note that the size argument
+   should be passed with type unsigned int, because that is what the non-GCC
+   definitions require.  With GCC, __builtin_memcpy takes an arg
+   of type size_t, but it can handle unsigned int.  */
+
+#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
+#define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
+#else				/* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (to, from, count)
+     char *to;
+     char *from;
+     unsigned int count;
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (char *to, char *from, unsigned int count)
+{
+  register char *t = to;
+  register char *f = from;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#endif
+#endif
+
+#line 216 "bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+   into yyparse.  The argument should have type void *.
+   It should actually point to an object.
+   Grammar actions can access the variable by casting it
+   to the proper pointer type.  */
+
+#ifdef YYPARSE_PARAM
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
+int
+yyparse(YYPARSE_PARAM_ARG)
+     YYPARSE_PARAM_DECL
+{
+  register int yystate;
+  register int yyn;
+  register short *yyssp;
+  register YYSTYPE *yyvsp;
+  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
+  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */
+
+  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
+  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/
+
+  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
+  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
+  YYLTYPE *yyls = yylsa;
+  YYLTYPE *yylsp;
+
+#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK   (yyvsp--, yyssp--)
+#endif
+
+  int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
+
+#ifdef YYPURE
+  int yychar;
+  YYSTYPE yylval;
+  int yynerrs;
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylloc;
+#endif
+#endif
+
+  YYSTYPE yyval;		/*  the variable used to return		*/
+				/*  semantic values from the action	*/
+				/*  routines				*/
+
+  int yylen;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Starting parse\n");
+#endif
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;		/* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss - 1;
+  yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+  yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in  yystate  .  */
+/* In all cases, when you get here, the value and location stacks
+   have just been pushed. so pushing a state here evens the stacks.  */
+yynewstate:
+
+  *++yyssp = yystate;
+
+  if (yyssp >= yyss + yystacksize - 1)
+    {
+      /* Give user a chance to reallocate the stack */
+      /* Use copies of these so that the &'s don't force the real ones into memory. */
+      YYSTYPE *yyvs1 = yyvs;
+      short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+      YYLTYPE *yyls1 = yyls;
+#endif
+
+      /* Get the current used size of the three stacks, in elements.  */
+      int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      /* Each stack pointer address is followed by the size of
+	 the data in use in that stack, in bytes.  */
+#ifdef YYLSP_NEEDED
+      /* This used to be a conditional around just the two extra args,
+	 but that might be undefined if yyoverflow is a macro.  */
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yyls1, size * sizeof (*yylsp),
+		 &yystacksize);
+#else
+      yyoverflow("parser stack overflow",
+		 &yyss1, size * sizeof (*yyssp),
+		 &yyvs1, size * sizeof (*yyvsp),
+		 &yystacksize);
+#endif
+
+      yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+      yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+      /* Extend the stack our own way.  */
+      if (yystacksize >= YYMAXDEPTH)
+	{
+	  yyerror("parser stack overflow");
+	  if (yyfree_stacks)
+	    {
+	      free (yyss);
+	      free (yyvs);
+#ifdef YYLSP_NEEDED
+	      free (yyls);
+#endif
+	    }
+	  return 2;
+	}
+      yystacksize *= 2;
+      if (yystacksize > YYMAXDEPTH)
+	yystacksize = YYMAXDEPTH;
+#ifndef YYSTACK_USE_ALLOCA
+      yyfree_stacks = 1;
+#endif
+      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss, (char *)yyss1,
+		   size * (unsigned int) sizeof (*yyssp));
+      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+		   size * (unsigned int) sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls, (char *)yyls1,
+		   size * (unsigned int) sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + size - 1;
+      yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+      yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+      if (yyssp >= yyss + yystacksize - 1)
+	YYABORT;
+    }
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+  goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state.  */
+/* Read a lookahead token if we need one and don't already have one.  */
+/* yyresume: */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* yychar is either YYEMPTY or YYEOF
+     or a valid token in external form.  */
+
+  if (yychar == YYEMPTY)
+    {
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Reading a token: ");
+#endif
+      yychar = YYLEX;
+    }
+
+  /* Convert token to internal form (in yychar1) for indexing tables with */
+
+  if (yychar <= 0)		/* This means end of input. */
+    {
+      yychar1 = 0;
+      yychar = YYEOF;		/* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Now at end of input.\n");
+#endif
+    }
+  else
+    {
+      yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+      if (yydebug)
+	{
+	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+	  /* Give the individual parser a way to print the precise meaning
+	     of a token, for further debugging info.  */
+#ifdef YYPRINT
+	  YYPRINT (stderr, yychar, yylval);
+#endif
+	  fprintf (stderr, ")\n");
+	}
+#endif
+    }
+
+  yyn += yychar1;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+    goto yydefault;
+
+  yyn = yytable[yyn];
+
+  /* yyn is what to do for this token type in this state.
+     Negative => reduce, -yyn is rule number.
+     Positive => shift, yyn is new state.
+       New state is final state => don't bother to shift,
+       just return success.
+     0, or most negative number => error.  */
+
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrlab;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Shift the lookahead token.  */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+  /* Discard the token being shifted unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  /* count tokens shifted since error; after three, turn off error status.  */
+  if (yyerrstatus) yyerrstatus--;
+
+  yystate = yyn;
+  goto yynewstate;
+
+/* Do the default action for the current state.  */
+yydefault:
+
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+
+/* Do a reduction.  yyn is the number of a rule to reduce with.  */
+yyreduce:
+  yylen = yyr2[yyn];
+  if (yylen > 0)
+    yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      int i;
+
+      fprintf (stderr, "Reducing via rule %d (line %d), ",
+	       yyn, yyrline[yyn]);
+
+      /* Print the symbols being reduced, and their result.  */
+      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+    }
+#endif
+
+
+  switch (yyn) {
+
+case 1:
+#line 99 "awkgram.y"
+{ if (errorflag==0)
+			winner = (Node *)stat3(PROGRAM, beginloc, yyvsp[0].p, endloc); ;
+    break;}
+case 2:
+#line 101 "awkgram.y"
+{ yyclearin; bracecheck(); SYNTAX("bailing out"); ;
+    break;}
+case 13:
+#line 125 "awkgram.y"
+{inloop++;;
+    break;}
+case 14:
+#line 126 "awkgram.y"
+{ --inloop; yyval.p = stat4(FOR, yyvsp[-9].p, notnull(yyvsp[-6].p), yyvsp[-3].p, yyvsp[0].p); ;
+    break;}
+case 15:
+#line 127 "awkgram.y"
+{inloop++;;
+    break;}
+case 16:
+#line 128 "awkgram.y"
+{ --inloop; yyval.p = stat4(FOR, yyvsp[-7].p, NIL, yyvsp[-3].p, yyvsp[0].p); ;
+    break;}
+case 17:
+#line 129 "awkgram.y"
+{inloop++;;
+    break;}
+case 18:
+#line 130 "awkgram.y"
+{ --inloop; yyval.p = stat3(IN, yyvsp[-5].p, makearr(yyvsp[-3].p), yyvsp[0].p); ;
+    break;}
+case 19:
+#line 134 "awkgram.y"
+{ setfname(yyvsp[0].cp); ;
+    break;}
+case 20:
+#line 135 "awkgram.y"
+{ setfname(yyvsp[0].cp); ;
+    break;}
+case 21:
+#line 139 "awkgram.y"
+{ yyval.p = notnull(yyvsp[-1].p); ;
+    break;}
+case 26:
+#line 151 "awkgram.y"
+{ yyval.i = 0; ;
+    break;}
+case 28:
+#line 156 "awkgram.y"
+{ yyval.i = 0; ;
+    break;}
+case 30:
+#line 162 "awkgram.y"
+{ yyval.p = 0; ;
+    break;}
+case 32:
+#line 167 "awkgram.y"
+{ yyval.p = 0; ;
+    break;}
+case 33:
+#line 168 "awkgram.y"
+{ yyval.p = yyvsp[-1].p; ;
+    break;}
+case 34:
+#line 172 "awkgram.y"
+{ yyval.p = notnull(yyvsp[0].p); ;
+    break;}
+case 35:
+#line 176 "awkgram.y"
+{ yyval.p = stat2(PASTAT, yyvsp[0].p, stat2(PRINT, rectonode(), NIL)); ;
+    break;}
+case 36:
+#line 177 "awkgram.y"
+{ yyval.p = stat2(PASTAT, yyvsp[-3].p, yyvsp[-1].p); ;
+    break;}
+case 37:
+#line 178 "awkgram.y"
+{ yyval.p = pa2stat(yyvsp[-2].p, yyvsp[0].p, stat2(PRINT, rectonode(), NIL)); ;
+    break;}
+case 38:
+#line 179 "awkgram.y"
+{ yyval.p = pa2stat(yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); ;
+    break;}
+case 39:
+#line 180 "awkgram.y"
+{ yyval.p = stat2(PASTAT, NIL, yyvsp[-1].p); ;
+    break;}
+case 40:
+#line 182 "awkgram.y"
+{ beginloc = linkum(beginloc, yyvsp[-1].p); yyval.p = 0; ;
+    break;}
+case 41:
+#line 184 "awkgram.y"
+{ endloc = linkum(endloc, yyvsp[-1].p); yyval.p = 0; ;
+    break;}
+case 42:
+#line 185 "awkgram.y"
+{infunc++;;
+    break;}
+case 43:
+#line 186 "awkgram.y"
+{ infunc--; curfname=0; defn((Cell *)yyvsp[-7].p, yyvsp[-5].p, yyvsp[-1].p); yyval.p = 0; ;
+    break;}
+case 45:
+#line 191 "awkgram.y"
+{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 47:
+#line 196 "awkgram.y"
+{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 48:
+#line 200 "awkgram.y"
+{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 49:
+#line 202 "awkgram.y"
+{ yyval.p = op3(CONDEXPR, notnull(yyvsp[-4].p), yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 50:
+#line 204 "awkgram.y"
+{ yyval.p = op2(BOR, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); ;
+    break;}
+case 51:
+#line 206 "awkgram.y"
+{ yyval.p = op2(AND, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); ;
+    break;}
+case 52:
+#line 207 "awkgram.y"
+{ yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(yyvsp[0].s, 0)); ;
+    break;}
+case 53:
+#line 209 "awkgram.y"
+{ if (constnode(yyvsp[0].p))
+			yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(strnode(yyvsp[0].p), 0));
+		  else
+			yyval.p = op3(yyvsp[-1].i, (Node *)1, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 54:
+#line 213 "awkgram.y"
+{ yyval.p = op2(INTEST, yyvsp[-2].p, makearr(yyvsp[0].p)); ;
+    break;}
+case 55:
+#line 214 "awkgram.y"
+{ yyval.p = op2(INTEST, yyvsp[-3].p, makearr(yyvsp[0].p)); ;
+    break;}
+case 56:
+#line 215 "awkgram.y"
+{ yyval.p = op2(CAT, yyvsp[-1].p, yyvsp[0].p); ;
+    break;}
+case 59:
+#line 221 "awkgram.y"
+{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 60:
+#line 223 "awkgram.y"
+{ yyval.p = op3(CONDEXPR, notnull(yyvsp[-4].p), yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 61:
+#line 225 "awkgram.y"
+{ yyval.p = op2(BOR, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); ;
+    break;}
+case 62:
+#line 227 "awkgram.y"
+{ yyval.p = op2(AND, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); ;
+    break;}
+case 63:
+#line 228 "awkgram.y"
+{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 64:
+#line 229 "awkgram.y"
+{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 65:
+#line 230 "awkgram.y"
+{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 66:
+#line 231 "awkgram.y"
+{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 67:
+#line 232 "awkgram.y"
+{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 68:
+#line 233 "awkgram.y"
+{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 69:
+#line 234 "awkgram.y"
+{ yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(yyvsp[0].s, 0)); ;
+    break;}
+case 70:
+#line 236 "awkgram.y"
+{ if (constnode(yyvsp[0].p))
+			yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(strnode(yyvsp[0].p), 0));
+		  else
+			yyval.p = op3(yyvsp[-1].i, (Node *)1, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 71:
+#line 240 "awkgram.y"
+{ yyval.p = op2(INTEST, yyvsp[-2].p, makearr(yyvsp[0].p)); ;
+    break;}
+case 72:
+#line 241 "awkgram.y"
+{ yyval.p = op2(INTEST, yyvsp[-3].p, makearr(yyvsp[0].p)); ;
+    break;}
+case 73:
+#line 242 "awkgram.y"
+{ 
+			if (safe) SYNTAX("cmd | getline is unsafe");
+			else yyval.p = op3(GETLINE, yyvsp[0].p, itonp(yyvsp[-2].i), yyvsp[-3].p); ;
+    break;}
+case 74:
+#line 245 "awkgram.y"
+{ 
+			if (safe) SYNTAX("cmd | getline is unsafe");
+			else yyval.p = op3(GETLINE, (Node*)0, itonp(yyvsp[-1].i), yyvsp[-2].p); ;
+    break;}
+case 75:
+#line 248 "awkgram.y"
+{ yyval.p = op2(CAT, yyvsp[-1].p, yyvsp[0].p); ;
+    break;}
+case 78:
+#line 254 "awkgram.y"
+{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 79:
+#line 255 "awkgram.y"
+{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 81:
+#line 260 "awkgram.y"
+{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 82:
+#line 264 "awkgram.y"
+{ yyval.p = rectonode(); ;
+    break;}
+case 84:
+#line 266 "awkgram.y"
+{ yyval.p = yyvsp[-1].p; ;
+    break;}
+case 93:
+#line 283 "awkgram.y"
+{ yyval.p = op3(MATCH, NIL, rectonode(), (Node*)makedfa(yyvsp[0].s, 0)); ;
+    break;}
+case 94:
+#line 284 "awkgram.y"
+{ yyval.p = op1(NOT, notnull(yyvsp[0].p)); ;
+    break;}
+case 95:
+#line 288 "awkgram.y"
+{startreg();;
+    break;}
+case 96:
+#line 288 "awkgram.y"
+{ yyval.s = yyvsp[-1].s; ;
+    break;}
+case 99:
+#line 296 "awkgram.y"
+{ 
+			if (safe) SYNTAX("print | is unsafe");
+			else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); ;
+    break;}
+case 100:
+#line 299 "awkgram.y"
+{
+			if (safe) SYNTAX("print >> is unsafe");
+			else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); ;
+    break;}
+case 101:
+#line 302 "awkgram.y"
+{
+			if (safe) SYNTAX("print > is unsafe");
+			else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); ;
+    break;}
+case 102:
+#line 305 "awkgram.y"
+{ yyval.p = stat3(yyvsp[-1].i, yyvsp[0].p, NIL, NIL); ;
+    break;}
+case 103:
+#line 306 "awkgram.y"
+{ yyval.p = stat2(DELETE, makearr(yyvsp[-3].p), yyvsp[-1].p); ;
+    break;}
+case 104:
+#line 307 "awkgram.y"
+{ yyval.p = stat2(DELETE, makearr(yyvsp[0].p), 0); ;
+    break;}
+case 105:
+#line 308 "awkgram.y"
+{ yyval.p = exptostat(yyvsp[0].p); ;
+    break;}
+case 106:
+#line 309 "awkgram.y"
+{ yyclearin; SYNTAX("illegal statement"); ;
+    break;}
+case 109:
+#line 318 "awkgram.y"
+{ if (!inloop) SYNTAX("break illegal outside of loops");
+				  yyval.p = stat1(BREAK, NIL); ;
+    break;}
+case 110:
+#line 320 "awkgram.y"
+{  if (!inloop) SYNTAX("continue illegal outside of loops");
+				  yyval.p = stat1(CONTINUE, NIL); ;
+    break;}
+case 111:
+#line 322 "awkgram.y"
+{inloop++;;
+    break;}
+case 112:
+#line 322 "awkgram.y"
+{--inloop;;
+    break;}
+case 113:
+#line 323 "awkgram.y"
+{ yyval.p = stat2(DO, yyvsp[-6].p, notnull(yyvsp[-2].p)); ;
+    break;}
+case 114:
+#line 324 "awkgram.y"
+{ yyval.p = stat1(EXIT, yyvsp[-1].p); ;
+    break;}
+case 115:
+#line 325 "awkgram.y"
+{ yyval.p = stat1(EXIT, NIL); ;
+    break;}
+case 117:
+#line 327 "awkgram.y"
+{ yyval.p = stat3(IF, yyvsp[-3].p, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 118:
+#line 328 "awkgram.y"
+{ yyval.p = stat3(IF, yyvsp[-1].p, yyvsp[0].p, NIL); ;
+    break;}
+case 119:
+#line 329 "awkgram.y"
+{ yyval.p = yyvsp[-1].p; ;
+    break;}
+case 120:
+#line 330 "awkgram.y"
+{ if (infunc)
+				SYNTAX("next is illegal inside a function");
+			  yyval.p = stat1(NEXT, NIL); ;
+    break;}
+case 121:
+#line 333 "awkgram.y"
+{ if (infunc)
+				SYNTAX("nextfile is illegal inside a function");
+			  yyval.p = stat1(NEXTFILE, NIL); ;
+    break;}
+case 122:
+#line 336 "awkgram.y"
+{ yyval.p = stat1(RETURN, yyvsp[-1].p); ;
+    break;}
+case 123:
+#line 337 "awkgram.y"
+{ yyval.p = stat1(RETURN, NIL); ;
+    break;}
+case 125:
+#line 339 "awkgram.y"
+{inloop++;;
+    break;}
+case 126:
+#line 339 "awkgram.y"
+{ --inloop; yyval.p = stat2(WHILE, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 127:
+#line 340 "awkgram.y"
+{ yyval.p = 0; ;
+    break;}
+case 129:
+#line 345 "awkgram.y"
+{ yyval.p = linkum(yyvsp[-1].p, yyvsp[0].p); ;
+    break;}
+case 132:
+#line 353 "awkgram.y"
+{ yyval.p = op2(DIVEQ, yyvsp[-3].p, yyvsp[0].p); ;
+    break;}
+case 133:
+#line 354 "awkgram.y"
+{ yyval.p = op2(ADD, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 134:
+#line 355 "awkgram.y"
+{ yyval.p = op2(MINUS, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 135:
+#line 356 "awkgram.y"
+{ yyval.p = op2(MULT, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 136:
+#line 357 "awkgram.y"
+{ yyval.p = op2(DIVIDE, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 137:
+#line 358 "awkgram.y"
+{ yyval.p = op2(MOD, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 138:
+#line 359 "awkgram.y"
+{ yyval.p = op2(POWER, yyvsp[-2].p, yyvsp[0].p); ;
+    break;}
+case 139:
+#line 360 "awkgram.y"
+{ yyval.p = op1(UMINUS, yyvsp[0].p); ;
+    break;}
+case 140:
+#line 361 "awkgram.y"
+{ yyval.p = yyvsp[0].p; ;
+    break;}
+case 141:
+#line 362 "awkgram.y"
+{ yyval.p = op1(NOT, notnull(yyvsp[0].p)); ;
+    break;}
+case 142:
+#line 363 "awkgram.y"
+{ yyval.p = op2(BLTIN, itonp(yyvsp[-2].i), rectonode()); ;
+    break;}
+case 143:
+#line 364 "awkgram.y"
+{ yyval.p = op2(BLTIN, itonp(yyvsp[-3].i), yyvsp[-1].p); ;
+    break;}
+case 144:
+#line 365 "awkgram.y"
+{ yyval.p = op2(BLTIN, itonp(yyvsp[0].i), rectonode()); ;
+    break;}
+case 145:
+#line 366 "awkgram.y"
+{ yyval.p = op2(CALL, celltonode(yyvsp[-2].cp,CVAR), NIL); ;
+    break;}
+case 146:
+#line 367 "awkgram.y"
+{ yyval.p = op2(CALL, celltonode(yyvsp[-3].cp,CVAR), yyvsp[-1].p); ;
+    break;}
+case 147:
+#line 368 "awkgram.y"
+{ yyval.p = op1(CLOSE, yyvsp[0].p); ;
+    break;}
+case 148:
+#line 369 "awkgram.y"
+{ yyval.p = op1(PREDECR, yyvsp[0].p); ;
+    break;}
+case 149:
+#line 370 "awkgram.y"
+{ yyval.p = op1(PREINCR, yyvsp[0].p); ;
+    break;}
+case 150:
+#line 371 "awkgram.y"
+{ yyval.p = op1(POSTDECR, yyvsp[-1].p); ;
+    break;}
+case 151:
+#line 372 "awkgram.y"
+{ yyval.p = op1(POSTINCR, yyvsp[-1].p); ;
+    break;}
+case 152:
+#line 374 "awkgram.y"
+{ yyval.p = op5(GENSUB, NIL, (Node*)makedfa(yyvsp[-5].s, 1), yyvsp[-3].p, yyvsp[-1].p, rectonode()); ;
+    break;}
+case 153:
+#line 376 "awkgram.y"
+{ if (constnode(yyvsp[-5].p))
+			yyval.p = op5(GENSUB, NIL, (Node *)makedfa(strnode(yyvsp[-5].p), 1), yyvsp[-3].p, yyvsp[-1].p, rectonode());
+		  else
+			yyval.p = op5(GENSUB, (Node *)1, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p, rectonode());
+		;
+    break;}
+case 154:
+#line 382 "awkgram.y"
+{ yyval.p = op5(GENSUB, NIL, (Node*)makedfa(yyvsp[-7].s, 1), yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); ;
+    break;}
+case 155:
+#line 384 "awkgram.y"
+{ if (constnode(yyvsp[-7].p))
+			yyval.p = op5(GENSUB, NIL, (Node *)makedfa(strnode(yyvsp[-7].p),1), yyvsp[-5].p,yyvsp[-3].p,yyvsp[-1].p);
+		  else
+			yyval.p = op5(GENSUB, (Node *)1, yyvsp[-7].p, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p);
+		;
+    break;}
+case 156:
+#line 389 "awkgram.y"
+{ yyval.p = op3(GETLINE, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); ;
+    break;}
+case 157:
+#line 390 "awkgram.y"
+{ yyval.p = op3(GETLINE, NIL, itonp(yyvsp[-1].i), yyvsp[0].p); ;
+    break;}
+case 158:
+#line 391 "awkgram.y"
+{ yyval.p = op3(GETLINE, yyvsp[0].p, NIL, NIL); ;
+    break;}
+case 159:
+#line 392 "awkgram.y"
+{ yyval.p = op3(GETLINE, NIL, NIL, NIL); ;
+    break;}
+case 160:
+#line 394 "awkgram.y"
+{ yyval.p = op2(INDEX, yyvsp[-3].p, yyvsp[-1].p); ;
+    break;}
+case 161:
+#line 396 "awkgram.y"
+{ SYNTAX("index() doesn't permit regular expressions");
+		  yyval.p = op2(INDEX, yyvsp[-3].p, (Node*)yyvsp[-1].s); ;
+    break;}
+case 162:
+#line 398 "awkgram.y"
+{ yyval.p = yyvsp[-1].p; ;
+    break;}
+case 163:
+#line 400 "awkgram.y"
+{ yyval.p = op3(MATCHFCN, NIL, yyvsp[-3].p, (Node*)makedfa(yyvsp[-1].s, 1)); ;
+    break;}
+case 164:
+#line 402 "awkgram.y"
+{ if (constnode(yyvsp[-1].p))
+			yyval.p = op3(MATCHFCN, NIL, yyvsp[-3].p, (Node*)makedfa(strnode(yyvsp[-1].p), 1));
+		  else
+			yyval.p = op3(MATCHFCN, (Node *)1, yyvsp[-3].p, yyvsp[-1].p); ;
+    break;}
+case 165:
+#line 406 "awkgram.y"
+{ yyval.p = celltonode(yyvsp[0].cp, CCON); ;
+    break;}
+case 166:
+#line 408 "awkgram.y"
+{ yyval.p = op4(SPLIT, yyvsp[-5].p, makearr(yyvsp[-3].p), yyvsp[-1].p, (Node*)STRING); ;
+    break;}
+case 167:
+#line 410 "awkgram.y"
+{ yyval.p = op4(SPLIT, yyvsp[-5].p, makearr(yyvsp[-3].p), (Node*)makedfa(yyvsp[-1].s, 1), (Node *)REGEXPR); ;
+    break;}
+case 168:
+#line 412 "awkgram.y"
+{ yyval.p = op4(SPLIT, yyvsp[-3].p, makearr(yyvsp[-1].p), NIL, (Node*)STRING); ;
+    break;}
+case 169:
+#line 413 "awkgram.y"
+{ yyval.p = op1(yyvsp[-3].i, yyvsp[-1].p); ;
+    break;}
+case 170:
+#line 414 "awkgram.y"
+{ yyval.p = celltonode(yyvsp[0].cp, CCON); ;
+    break;}
+case 171:
+#line 416 "awkgram.y"
+{ yyval.p = op4(yyvsp[-5].i, NIL, (Node*)makedfa(yyvsp[-3].s, 1), yyvsp[-1].p, rectonode()); ;
+    break;}
+case 172:
+#line 418 "awkgram.y"
+{ if (constnode(yyvsp[-3].p))
+			yyval.p = op4(yyvsp[-5].i, NIL, (Node*)makedfa(strnode(yyvsp[-3].p), 1), yyvsp[-1].p, rectonode());
+		  else
+			yyval.p = op4(yyvsp[-5].i, (Node *)1, yyvsp[-3].p, yyvsp[-1].p, rectonode()); ;
+    break;}
+case 173:
+#line 423 "awkgram.y"
+{ yyval.p = op4(yyvsp[-7].i, NIL, (Node*)makedfa(yyvsp[-5].s, 1), yyvsp[-3].p, yyvsp[-1].p); ;
+    break;}
+case 174:
+#line 425 "awkgram.y"
+{ if (constnode(yyvsp[-5].p))
+			yyval.p = op4(yyvsp[-7].i, NIL, (Node*)makedfa(strnode(yyvsp[-5].p), 1), yyvsp[-3].p, yyvsp[-1].p);
+		  else
+			yyval.p = op4(yyvsp[-7].i, (Node *)1, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); ;
+    break;}
+case 175:
+#line 430 "awkgram.y"
+{ yyval.p = op3(SUBSTR, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); ;
+    break;}
+case 176:
+#line 432 "awkgram.y"
+{ yyval.p = op3(SUBSTR, yyvsp[-3].p, yyvsp[-1].p, NIL); ;
+    break;}
+case 179:
+#line 438 "awkgram.y"
+{ yyval.p = op2(ARRAY, makearr(yyvsp[-3].p), yyvsp[-1].p); ;
+    break;}
+case 180:
+#line 439 "awkgram.y"
+{ yyval.p = op1(INDIRECT, celltonode(yyvsp[0].cp, CVAR)); ;
+    break;}
+case 181:
+#line 440 "awkgram.y"
+{ yyval.p = op1(INDIRECT, yyvsp[0].p); ;
+    break;}
+case 182:
+#line 444 "awkgram.y"
+{ arglist = yyval.p = 0; ;
+    break;}
+case 183:
+#line 445 "awkgram.y"
+{ arglist = yyval.p = celltonode(yyvsp[0].cp,CVAR); ;
+    break;}
+case 184:
+#line 446 "awkgram.y"
+{
+			checkdup(yyvsp[-2].p, yyvsp[0].cp);
+			arglist = yyval.p = linkum(yyvsp[-2].p,celltonode(yyvsp[0].cp,CVAR)); ;
+    break;}
+case 185:
+#line 452 "awkgram.y"
+{ yyval.p = celltonode(yyvsp[0].cp, CVAR); ;
+    break;}
+case 186:
+#line 453 "awkgram.y"
+{ yyval.p = op1(ARG, itonp(yyvsp[0].i)); ;
+    break;}
+case 187:
+#line 454 "awkgram.y"
+{ yyval.p = op1(VARNF, (Node *) yyvsp[0].cp); ;
+    break;}
+case 188:
+#line 459 "awkgram.y"
+{ yyval.p = notnull(yyvsp[-1].p); ;
+    break;}
+}
+   /* the action file gets copied in in place of this dollarsign */
+#line 542 "bison.simple"
+
+  yyvsp -= yylen;
+  yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+  yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+  *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+  yylsp++;
+  if (yylen == 0)
+    {
+      yylsp->first_line = yylloc.first_line;
+      yylsp->first_column = yylloc.first_column;
+      yylsp->last_line = (yylsp-1)->last_line;
+      yylsp->last_column = (yylsp-1)->last_column;
+      yylsp->text = 0;
+    }
+  else
+    {
+      yylsp->last_line = (yylsp+yylen-1)->last_line;
+      yylsp->last_column = (yylsp+yylen-1)->last_column;
+    }
+#endif
+
+  /* Now "shift" the result of the reduction.
+     Determine what state that goes to,
+     based on the state we popped back to
+     and the rule number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTBASE];
+
+  goto yynewstate;
+
+yyerrlab:   /* here on detecting error */
+
+  if (! yyerrstatus)
+    /* If not already recovering from an error, report this error.  */
+    {
+      ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+      yyn = yypact[yystate];
+
+      if (yyn > YYFLAG && yyn < YYLAST)
+	{
+	  int size = 0;
+	  char *msg;
+	  int x, count;
+
+	  count = 0;
+	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+	  for (x = (yyn < 0 ? -yyn : 0);
+	       x < (sizeof(yytname) / sizeof(char *)); x++)
+	    if (yycheck[x + yyn] == x)
+	      size += strlen(yytname[x]) + 15, count++;
+	  msg = (char *) malloc(size + 15);
+	  if (msg != 0)
+	    {
+	      strcpy(msg, "parse error");
+
+	      if (count < 5)
+		{
+		  count = 0;
+		  for (x = (yyn < 0 ? -yyn : 0);
+		       x < (sizeof(yytname) / sizeof(char *)); x++)
+		    if (yycheck[x + yyn] == x)
+		      {
+			strcat(msg, count == 0 ? ", expecting `" : " or `");
+			strcat(msg, yytname[x]);
+			strcat(msg, "'");
+			count++;
+		      }
+		}
+	      yyerror(msg);
+	      free(msg);
+	    }
+	  else
+	    yyerror ("parse error; also virtual memory exceeded");
+	}
+      else
+#endif /* YYERROR_VERBOSE */
+	yyerror("parse error");
+    }
+
+  goto yyerrlab1;
+yyerrlab1:   /* here on error raised explicitly by an action */
+
+  if (yyerrstatus == 3)
+    {
+      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
+
+      /* return failure if at end of input */
+      if (yychar == YYEOF)
+	YYABORT;
+
+#if YYDEBUG != 0
+      if (yydebug)
+	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+      yychar = YYEMPTY;
+    }
+
+  /* Else will try to reuse lookahead token
+     after shifting the error token.  */
+
+  yyerrstatus = 3;		/* Each real token shifted decrements this */
+
+  goto yyerrhandle;
+
+yyerrdefault:  /* current state does not do anything special for the error token. */
+
+#if 0
+  /* This is wrong; only states that explicitly want error tokens
+     should shift them.  */
+  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+  if (yyn) goto yydefault;
+#endif
+
+yyerrpop:   /* pop the current state because it cannot handle the error token */
+
+  if (yyssp == yyss) YYABORT;
+  yyvsp--;
+  yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+  yylsp--;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "Error: state stack now");
+      while (ssp1 != yyssp)
+	fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+yyerrhandle:
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yyerrdefault;
+
+  yyn += YYTERROR;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+    goto yyerrdefault;
+
+  yyn = yytable[yyn];
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrpop;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrpop;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting error token, ");
+#endif
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  yystate = yyn;
+  goto yynewstate;
+
+ yyacceptlab:
+  /* YYACCEPT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 0;
+
+ yyabortlab:
+  /* YYABORT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 1;
+}
+#line 462 "awkgram.y"
+
+
+void setfname(Cell *p)
+{
+	if (isarr(p))
+		SYNTAX("%s is an array, not a function", p->nval);
+	else if (isfcn(p))
+		SYNTAX("you can't define function %s more than once", p->nval);
+	curfname = p->nval;
+}
+
+int constnode(Node *p)
+{
+	return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON;
+}
+
+char *strnode(Node *p)
+{
+	return ((Cell *)(p->narg[0]))->sval;
+}
+
+Node *notnull(Node *n)
+{
+	switch (n->nobj) {
+	case LE: case LT: case EQ: case NE: case GT: case GE:
+	case BOR: case AND: case NOT:
+		return n;
+	default:
+		return op2(NE, n, nullnode);
+	}
+}
+
+void checkdup(Node *vl, Cell *cp)	/* check if name already in list */
+{
+	char *s = cp->nval;
+	for ( ; vl; vl = vl->nnext) {
+		if (strcmp(s, ((Cell *)(vl->narg[0]))->nval) == 0) {
+			SYNTAX("duplicate argument %s", s);
+			break;
+		}
+	}
+}


Property changes on: trunk/build/install/nawk/ytab.c
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the jbossnative-commits mailing list