#include <sys/cdefs.h>
#ifndef lint
#if 0
static char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
#else
__IDSTRING(yyrcsid, "$NetBSD: skeleton.c,v 1.14 1997/10/20 03:41:16 lukem Exp $");
#endif
#endif
#include <stdlib.h>
#define YYBYACC 1
#define YYMAJOR 1
#define YYMINOR 9
#define YYLEX yylex()
#define YYEMPTY -1
#define yyclearin (yychar=(YYEMPTY))
#define yyerrok (yyerrflag=0)
#define YYRECOVERING (yyerrflag!=0)
#define YYPREFIX "yy"
#line 30 "awk.g.2001.y"
#include "awk.h"
#include <unistd.h>
#include <inttypes.h>
#include <pfmt.h>
int yywrap(void) { return(1); }
#ifndef DEBUG
# define PUTS(x)
#endif
Node *beginloc = 0, *endloc = 0;
int infunc = 0; /* = 1 if in arglist or body of func */
unsigned char *curfname = 0;
Node *arglist = 0; /* list of args for current function */
static void setfname(Cell *);
static int constnode(Node *);
static unsigned char *strnode(Node *);
static Node *notnull(Node *);
extern const char illstat[];
extern int yylex(void);
#line 51 "awk.g.2001.y"
typedef union {
Node *p;
Cell *cp;
intptr_t i;
unsigned char *s;
} YYSTYPE;
#line 47 "y.tab.c"
#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 MCHAR 274
#define OR 275
#define STAR 276
#define QUEST 277
#define PLUS 278
#define AND 279
#define BOR 280
#define APPEND 281
#define EQ 282
#define GE 283
#define GT 284
#define LE 285
#define LT 286
#define NE 287
#define IN 288
#define ARG 289
#define BLTIN 290
#define BREAK 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 ADD 305
#define MINUS 306
#define MULT 307
#define DIVIDE 308
#define MOD 309
#define ASSIGN 310
#define ASGNOP 311
#define ADDEQ 312
#define SUBEQ 313
#define MULTEQ 314
#define DIVEQ 315
#define MODEQ 316
#define POWEQ 317
#define PRINT 318
#define PRINTF 319
#define SPRINTF 320
#define ELSE 321
#define INTEST 322
#define CONDEXPR 323
#define POSTINCR 324
#define PREINCR 325
#define POSTDECR 326
#define PREDECR 327
#define VAR 328
#define IVAR 329
#define VARNF 330
#define CALL 331
#define NUMBER 332
#define STRING 333
#define FIELD 334
#define REGEXPR 335
#define GETLINE 336
#define RETURN 337
#define SPLIT 338
#define SUBSTR 339
#define WHILE 340
#define CAT 341
#define NOT 342
#define UMINUS 343
#define POWER 344
#define DECR 345
#define INCR 346
#define INDIRECT 347
#define LASTTOKEN 348
#define YYERRCODE 256
short yylhs[] = { -1,
0, 0, 32, 32, 33, 33, 29, 29, 36, 36,
37, 37, 22, 22, 22, 20, 20, 23, 27, 27,
30, 30, 31, 31, 26, 26, 15, 15, 1, 1,
10, 11, 11, 11, 11, 11, 11, 11, 38, 11,
12, 12, 6, 6, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 4, 4, 5, 5, 7, 7, 7,
35, 35, 25, 25, 25, 25, 39, 39, 9, 9,
40, 13, 28, 28, 14, 14, 14, 14, 14, 14,
14, 14, 41, 41, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 16, 16, 17,
17, 34, 34, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 18, 18, 18, 18, 18, 21,
21, 21, 19, 19, 19, 24,
};
short yylen[] = { 2,
1, 1, 1, 2, 1, 2, 1, 2, 1, 2,
1, 2, 9, 8, 7, 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, 3, 5, 3, 3, 2, 3,
3, 3, 3, 3, 3, 3, 3, 3, 5, 4,
3, 2, 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, 7, 3, 2, 1,
4, 2, 3, 2, 3, 2, 2, 2, 2, 1,
2, 1, 1, 3, 3, 3, 3, 3, 3, 2,
2, 2, 3, 4, 1, 3, 4, 2, 2, 2,
2, 4, 3, 2, 1, 6, 6, 3, 6, 6,
1, 8, 8, 6, 4, 1, 6, 6, 8, 8,
8, 6, 1, 1, 1, 4, 1, 1, 2, 0,
1, 3, 1, 1, 1, 4,
};
short yydefred[] = { 0,
2, 83, 84, 0, 1, 0, 0, 85, 86, 0,
0, 19, 0, 91, 174, 0, 0, 122, 123, 0,
0, 0, 173, 168, 175, 0, 151, 156, 167, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
164, 0, 41, 0, 89, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 16, 17, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 90, 138, 139, 169, 0, 0, 3,
5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 140, 141, 0, 102, 20, 0, 0, 0,
0, 9, 0, 0, 0, 0, 81, 82, 0, 0,
0, 0, 120, 0, 110, 0, 0, 0, 0, 0,
0, 0, 0, 7, 148, 0, 0, 0, 0, 133,
0, 0, 0, 0, 0, 0, 136, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 68, 0, 4, 0, 6, 0, 0,
0, 0, 0, 0, 0, 0, 0, 42, 0, 0,
21, 0, 119, 0, 0, 105, 106, 0, 0, 109,
0, 0, 114, 0, 116, 0, 117, 36, 121, 0,
118, 0, 0, 0, 0, 0, 0, 0, 10, 0,
0, 0, 37, 38, 8, 0, 0, 0, 92, 134,
0, 171, 0, 0, 0, 155, 137, 0, 0, 0,
70, 0, 0, 33, 166, 22, 104, 0, 108, 28,
0, 0, 0, 115, 0, 11, 0, 87, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 69, 0, 93, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 12, 111, 88, 0, 0, 0, 0, 51,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 94, 0, 172, 146, 147, 150, 149, 154, 0,
162, 0, 35, 99, 0, 0, 0, 0, 0, 0,
0, 158, 0, 157, 0, 0, 0, 0, 0, 0,
0, 0, 52, 0, 0, 0, 0, 0, 0, 152,
153, 161, 0, 0, 15, 107, 160, 159, 40, 14,
0, 13,
};
short yydgoto[] = { 4,
5, 121, 204, 53, 205, 142, 206, 40, 41, 42,
43, 44, 45, 122, 241, 123, 124, 46, 47, 58,
223, 125, 126, 127, 6, 7, 128, 268, 221, 185,
183, 91, 92, 49, 129, 130, 247, 303, 249, 54,
186,
};
short yysindex[] = { -46,
0, 0, 0, 0, 0, -54, 7593, 0, 0, -84,
-84, 0, 8477, 0, 0, 44, -270, 0, 0, 55,
59, 64, 0, 0, 0, 68, 0, 0, 0, 571,
76, 78, 8554, 8554, 8477, 113, 113, 8554, 7192, -33,
0, -20, 0, -32, 0, -224, 53, 4328, 110, 4328,
4328, 5866, 37, -155, 7861, 0, 0, 159, 8477, 8477,
8477, 7938, 8554, -86, 8477, 8477, 8477, 8554, -139, -283,
-139, -218, -139, 0, 0, 0, 0, -129, 8477, 0,
0, 8477, 8477, 8477, 8477, 8477, 8477, -177, 8477, -33,
7989, 8067, 8554, 8554, 8554, 8554, 8554, 8554, 8477, 4328,
7593, 8477, 0, 0, 8477, 0, 0, -52, -30, -30,
-177, 0, 7759, 174, 175, -30, 0, 0, 7759, 176,
7192, -30, 0, 4387, 0, 5553, 5553, 4328, 8605, 4479,
8477, 4704, 4791, 0, 0, 8169, -70, 8169, 172, 0,
7192, 41, -106, 6310, 6310, 97, 0, 118, -33, 8554,
6310, 6310, 6402, -139, 113, 8785, 0, 8785, 8785, 8785,
8785, 8785, 8785, 0, 6488, 0, 4111, 0, 2246, -139,
-31, -31, -139, -139, -139, -84, 4850, 0, 7192, -14,
0, -28, 0, -52, -28, 0, 0, 141, 5960, 0,
4593, 8477, 0, 5960, 0, 8477, 0, 0, 0, -83,
0, 4929, 8477, 7364, 199, -107, -33, -200, 0, -96,
6310, 199, 0, 0, 0, 7192, -177, 7192, 0, 0,
8169, 0, 119, 8169, 8169, 0, 0, -33, -193, 8169,
0, 8477, 4328, 0, 0, 0, 0, 8477, 0, 0,
186, -91, 6574, 0, 6574, 0, 5029, 0, -16, 127,
8703, -177, 8703, -33, 8246, 8297, 8375, 8554, 8554, 8554,
8703, 208, 8169, 8169, 0, 7192, 0, -13, -235, 6666,
211, 6752, 214, 128, 6046, 7192, 5116, -10, 8395, -177,
-13, -13, 0, 0, 0, -39, 8477, 8785, 0, 0,
7533, 7841, 7674, 7364, -33, -33, -33, 7364, 8477, 6138,
6224, 0, -84, 0, 0, 0, 0, 0, 0, 8169,
0, 8169, 0, 0, 4593, 6838, 219, -177, 132, 8703,
6930, 0, 261, 0, 261, 4328, 7016, 224, 7102, 219,
4593, 5241, 0, -39, 7364, -30, 226, 229, 5341, 0,
0, 0, 5241, 219, 0, 0, 0, 0, 0, 0,
5241, 0,
};
short yyrindex[] = { 1342,
0, 0, 0, 0, 0, 1836, 272, 0, 0, 0,
0, 0, 0, 0, 0, 89, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 2988,
0, 0, 0, 0, 0, 0, 0, 0, 31, 2806,
0, 354, 0, 1342, 0, 2064, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 183, 0, 0, 0, 0, 495, 1571,
583, 3339, 1976, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 2894,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
274, 0, 0, 0, 0, 0, 0, 3870, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-34, 0, 0, 0, 0, 0, 0, 0, 442, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
24, 0, 134, 0, 0, 0, 0, 0, 2479, 0,
0, 0, 0, 677, 3253, 47, 1665, 541, 1035, 1529,
2022, 2941, 3351, 0, 0, 0, 3436, 0, 56, 989,
2158, 2391, 1077, 1171, 1483, 848, 0, 0, 98, 0,
0, 3929, 0, 3870, 4016, 0, 0, -26, 0, 0,
216, 0, 0, 0, 0, 0, 0, 0, 0, 5428,
0, 0, 0, 410, 551, -9, 7269, 3748, 0, 0,
0, 3613, 0, 0, 0, 152, 0, 154, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2573, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 3424, 0, 0, 0, 0, 0, 0, 4241, 0,
0, 0, 0, 7445, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 30, 0, 156, 0, 0,
3613, 0, 3613, 0, 0, 143, 0, 0, 0, 0,
5649, 5736, 0, 0, 0, 555, 0, 689, 3520, 0,
0, -23, 447, 448, -4, 8, 10, 145, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 236, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 3613, 0, 0,
236, 0, 0, 0, 505, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,
};
short yygindex[] = { 0,
0, 9328, 488, -195, 0, 15, 0, 9443, 18, 196,
195, 0, -59, -125, -258, 7286, -48, 9057, 327, 0,
0, 0, 0, 0, 0, 253, 12, -136, 1905, -82,
117, 374, 561, 0, 0, 0, 0, 0, 0, 0,
45,
};
#define YYTABLESIZE 9778
short yytable[] = { 105,
165, 132, 133, 97, 9, 97, 101, 250, 96, 94,
96, 95, 3, 93, 100, 93, 258, 48, 48, 157,
48, 50, 51, 99, 101, 182, 3, 215, 184, 134,
31, 98, 100, 134, 48, 48, 95, 165, 12, 48,
165, 165, 165, 165, 165, 165, 67, 165, 96, 98,
97, 177, 74, 100, 95, 57, 330, 56, 165, 165,
57, 103, 104, 165, 43, 240, 96, 43, 97, 215,
44, 212, 344, 44, 31, 146, 148, 137, 235, 202,
134, 220, 314, 55, 134, 74, 102, 67, 135, 31,
67, 319, 304, 165, 59, 15, 57, 55, 60, 57,
48, 182, 12, 61, 67, 67, 281, 62, 282, 67,
261, 15, 48, 57, 57, 65, 43, 66, 57, 180,
103, 104, 44, 165, 165, 135, 36, 37, 38, 135,
135, 135, 135, 135, 23, 135, 25, 226, 55, 67,
134, 55, 56, 105, 103, 104, 135, 135, 57, 131,
23, 135, 25, 31, 187, 55, 55, 190, 227, 267,
193, 134, 134, 195, 271, 273, 197, 286, 309, 67,
134, 134, 334, 259, 170, 134, 260, 170, 57, 139,
332, 135, 144, 56, 277, 45, 56, 233, 45, 240,
55, 289, 74, 343, 75, 74, 280, 75, 143, 150,
56, 56, 45, 45, 98, 240, 155, 351, 8, 1,
181, 135, 135, 191, 192, 196, 2, 217, 219, 144,
55, 222, 144, 144, 144, 144, 144, 144, 101, 144,
2, 238, 181, 239, 236, 56, 100, 246, 244, 48,
144, 144, 134, 262, 279, 144, 285, 299, 318, 302,
328, 306, 278, 98, 308, 48, 48, 48, 95, 267,
48, 165, 165, 165, 341, 56, 347, 165, 45, 348,
96, 29, 97, 30, 27, 144, 27, 339, 39, 165,
165, 165, 165, 165, 165, 165, 165, 165, 165, 165,
165, 31, 31, 31, 176, 178, 101, 165, 165, 165,
237, 165, 0, 165, 0, 144, 144, 67, 67, 67,
98, 165, 98, 0, 326, 0, 57, 57, 57, 0,
165, 0, 0, 0, 0, 67, 67, 31, 165, 165,
165, 165, 165, 165, 165, 57, 165, 0, 165, 165,
0, 0, 165, 67, 165, 165, 165, 165, 0, 135,
135, 135, 57, 32, 0, 135, 0, 0, 55, 55,
55, 0, 0, 0, 0, 0, 0, 135, 135, 135,
135, 135, 135, 135, 135, 135, 135, 135, 135, 0,
346, 0, 67, 0, 0, 135, 135, 135, 0, 135,
0, 135, 0, 32, 55, 0, 32, 0, 32, 135,
32, 15, 0, 56, 56, 56, 0, 45, 135, 0,
0, 0, 32, 0, 164, 0, 135, 135, 135, 135,
135, 135, 135, 0, 135, 45, 135, 135, 45, 0,
135, 0, 135, 135, 135, 135, 0, 188, 0, 56,
23, 24, 25, 144, 144, 144, 29, 0, 0, 144,
76, 0, 0, 76, 0, 0, 0, 0, 0, 38,
0, 144, 144, 144, 144, 144, 144, 144, 76, 144,
144, 144, 144, 0, 0, 0, 0, 0, 0, 144,
144, 144, 78, 144, 0, 144, 0, 47, 77, 0,
47, 77, 0, 144, 131, 0, 0, 0, 0, 0,
78, 0, 144, 0, 47, 47, 77, 0, 0, 47,
144, 144, 144, 144, 144, 144, 144, 242, 144, 0,
144, 144, 0, 215, 144, 0, 144, 144, 144, 144,
0, 131, 0, 76, 131, 131, 131, 131, 131, 131,
60, 131, 0, 265, 0, 46, 0, 0, 46, 15,
0, 0, 131, 131, 0, 274, 0, 131, 0, 0,
0, 0, 46, 46, 0, 78, 0, 0, 0, 0,
47, 77, 0, 0, 0, 0, 0, 255, 290, 0,
0, 60, 130, 0, 60, 0, 0, 131, 23, 24,
25, 79, 0, 0, 29, 80, 0, 0, 60, 60,
0, 0, 0, 60, 0, 0, 317, 38, 0, 79,
0, 0, 0, 80, 32, 32, 32, 131, 131, 130,
0, 0, 130, 130, 130, 130, 130, 130, 46, 130,
0, 0, 0, 60, 0, 0, 0, 0, 0, 0,
130, 130, 32, 32, 333, 130, 0, 0, 0, 0,
32, 32, 32, 0, 32, 0, 32, 0, 0, 0,
0, 255, 0, 60, 255, 255, 255, 255, 0, 0,
0, 255, 76, 32, 79, 130, 132, 0, 80, 0,
0, 32, 32, 32, 32, 32, 32, 32, 0, 32,
76, 32, 32, 76, 0, 32, 0, 0, 32, 32,
32, 0, 0, 0, 78, 130, 130, 0, 255, 47,
77, 0, 0, 132, 0, 0, 132, 132, 132, 132,
132, 132, 78, 132, 0, 78, 47, 47, 77, 50,
47, 77, 50, 0, 132, 132, 0, 0, 288, 132,
291, 0, 292, 293, 294, 0, 50, 50, 298, 0,
0, 50, 0, 0, 0, 131, 131, 131, 0, 0,
0, 131, 0, 0, 256, 0, 0, 46, 0, 132,
0, 0, 0, 131, 131, 131, 131, 131, 131, 131,
131, 131, 131, 131, 131, 46, 0, 0, 46, 0,
0, 131, 131, 131, 0, 131, 0, 131, 0, 132,
132, 60, 60, 60, 0, 131, 0, 335, 0, 0,
0, 0, 50, 79, 131, 0, 0, 80, 0, 60,
60, 0, 131, 131, 131, 131, 131, 131, 131, 0,
131, 79, 131, 131, 79, 80, 131, 60, 80, 131,
131, 131, 0, 130, 130, 130, 0, 34, 256, 130,
0, 256, 256, 256, 256, 0, 63, 0, 256, 15,
0, 130, 130, 130, 130, 130, 130, 130, 130, 130,
130, 130, 130, 0, 0, 0, 60, 0, 0, 130,
130, 130, 0, 130, 0, 130, 0, 34, 0, 0,
34, 0, 34, 130, 34, 256, 0, 0, 23, 24,
25, 0, 130, 0, 29, 0, 34, 0, 0, 0,
130, 130, 130, 130, 130, 130, 130, 38, 130, 0,
130, 130, 0, 0, 130, 0, 0, 130, 130, 130,
0, 0, 0, 0, 0, 0, 0, 132, 132, 132,
0, 0, 0, 132, 0, 0, 0, 0, 0, 0,
0, 50, 0, 0, 0, 132, 132, 132, 132, 132,
132, 132, 132, 132, 132, 132, 132, 50, 50, 50,
0, 0, 50, 132, 132, 132, 0, 132, 0, 132,
0, 0, 0, 0, 0, 0, 0, 132, 127, 0,
0, 0, 0, 0, 0, 0, 132, 0, 0, 0,
0, 0, 0, 0, 132, 132, 132, 132, 132, 132,
132, 0, 132, 0, 132, 132, 0, 0, 132, 0,
0, 132, 132, 132, 50, 127, 0, 0, 127, 127,
127, 127, 127, 127, 61, 127, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 127, 127, 0, 0,
0, 127, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 61, 126, 0, 61, 0,
0, 127, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 61, 61, 0, 0, 0, 61, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 34, 34,
34, 127, 127, 126, 0, 0, 126, 126, 126, 126,
126, 126, 0, 126, 0, 0, 0, 61, 0, 0,
0, 0, 0, 0, 126, 126, 34, 34, 0, 126,
0, 0, 0, 0, 34, 34, 34, 0, 34, 0,
34, 0, 0, 0, 0, 0, 0, 61, 0, 0,
0, 0, 0, 0, 0, 0, 0, 34, 0, 126,
128, 0, 0, 0, 0, 34, 34, 34, 34, 34,
34, 34, 0, 34, 0, 34, 34, 0, 0, 34,
0, 0, 34, 34, 34, 0, 0, 0, 0, 126,
126, 0, 0, 0, 0, 0, 0, 128, 0, 0,
128, 128, 128, 128, 128, 128, 0, 128, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 128, 128,
0, 0, 0, 128, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 127,
127, 127, 0, 0, 0, 127, 0, 0, 0, 0,
0, 0, 0, 128, 0, 0, 0, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 0,
0, 0, 0, 0, 0, 127, 127, 127, 0, 127,
0, 127, 0, 128, 128, 61, 61, 61, 0, 127,
0, 0, 0, 0, 0, 0, 0, 0, 127, 0,
0, 0, 0, 61, 61, 0, 127, 127, 127, 127,
127, 127, 127, 0, 127, 0, 127, 127, 0, 0,
127, 61, 0, 127, 127, 127, 0, 126, 126, 126,
0, 25, 0, 126, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 0, 0, 0,
61, 0, 0, 126, 126, 126, 0, 126, 0, 126,
0, 25, 0, 0, 25, 0, 25, 126, 25, 0,
0, 0, 0, 0, 0, 0, 126, 0, 0, 0,
0, 0, 0, 0, 126, 126, 126, 126, 126, 126,
126, 0, 126, 0, 126, 126, 0, 0, 126, 0,
0, 126, 126, 126, 0, 0, 0, 0, 0, 0,
0, 128, 128, 128, 0, 0, 0, 128, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 0, 0, 0, 25, 0, 0, 128, 128, 128,
0, 128, 0, 128, 0, 0, 0, 0, 0, 0,
0, 128, 129, 0, 0, 0, 0, 0, 0, 0,
128, 0, 0, 0, 0, 0, 0, 0, 128, 128,
128, 128, 128, 128, 128, 0, 128, 0, 128, 128,
0, 0, 128, 0, 0, 128, 128, 128, 0, 129,
0, 0, 129, 129, 129, 129, 129, 129, 62, 129,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
129, 129, 0, 0, 0, 129, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 62,
163, 0, 62, 0, 0, 129, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 62, 62, 0, 0,
0, 62, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 25, 25, 0, 129, 129, 163, 0, 0,
163, 163, 163, 163, 163, 163, 0, 163, 0, 0,
0, 62, 0, 0, 0, 0, 0, 0, 163, 163,
25, 25, 0, 163, 0, 0, 0, 0, 25, 25,
25, 0, 25, 0, 25, 0, 0, 0, 0, 0,
0, 62, 0, 0, 0, 0, 0, 0, 0, 0,
0, 25, 0, 163, 66, 0, 0, 0, 0, 25,
25, 25, 25, 25, 25, 25, 0, 25, 0, 25,
25, 0, 0, 25, 0, 0, 25, 25, 25, 0,
0, 0, 0, 163, 163, 0, 0, 0, 0, 0,
0, 89, 0, 0, 66, 66, 89, 66, 66, 66,
0, 66, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 66, 66, 0, 0, 0, 66, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 129, 129, 129, 0, 0, 0, 129,
0, 0, 0, 0, 0, 0, 0, 66, 0, 0,
0, 129, 129, 129, 129, 129, 129, 129, 129, 129,
129, 129, 129, 0, 0, 0, 0, 0, 0, 129,
129, 129, 0, 129, 0, 129, 0, 66, 66, 62,
62, 62, 0, 129, 0, 0, 0, 0, 0, 0,
0, 0, 129, 0, 0, 0, 0, 62, 62, 0,
129, 129, 129, 129, 129, 129, 129, 0, 129, 0,
129, 129, 0, 0, 129, 62, 0, 129, 129, 129,
0, 163, 163, 163, 0, 26, 0, 163, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 163,
163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
163, 0, 0, 0, 62, 0, 0, 163, 163, 163,
0, 163, 0, 163, 0, 26, 0, 0, 26, 0,
26, 163, 26, 0, 0, 0, 0, 0, 0, 0,
163, 0, 0, 0, 0, 0, 0, 0, 163, 163,
163, 163, 163, 163, 163, 0, 163, 0, 163, 163,
0, 0, 163, 0, 163, 0, 0, 163, 0, 0,
0, 0, 0, 0, 0, 66, 66, 66, 0, 0,
0, 66, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 66, 66, 0, 66, 66, 66, 66,
66, 66, 66, 66, 66, 0, 136, 138, 26, 0,
0, 66, 66, 66, 0, 66, 0, 66, 0, 0,
0, 0, 0, 0, 0, 73, 0, 0, 0, 0,
0, 0, 0, 0, 66, 0, 0, 0, 0, 0,
0, 0, 66, 66, 66, 66, 66, 66, 66, 0,
66, 0, 66, 66, 0, 0, 66, 0, 89, 66,
66, 66, 132, 0, 0, 73, 73, 132, 132, 73,
132, 63, 132, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 73, 73, 0, 0, 0, 73, 0,
0, 0, 0, 0, 0, 0, 0, 0, 224, 225,
0, 0, 0, 0, 0, 229, 230, 0, 0, 0,
0, 0, 63, 163, 0, 63, 0, 0, 73, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
63, 0, 0, 0, 63, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 26, 26, 73, 73,
163, 0, 0, 163, 163, 163, 163, 163, 163, 257,
163, 0, 0, 0, 63, 263, 264, 0, 0, 0,
0, 163, 163, 0, 26, 26, 163, 269, 0, 0,
0, 0, 26, 26, 26, 0, 26, 0, 26, 0,
0, 0, 0, 0, 63, 0, 0, 0, 0, 0,
0, 0, 0, 0, 138, 26, 163, 124, 0, 0,
0, 0, 0, 26, 26, 26, 26, 26, 26, 26,
0, 26, 0, 26, 26, 0, 0, 26, 310, 312,
26, 26, 26, 0, 0, 0, 163, 163, 0, 0,
0, 0, 0, 0, 0, 0, 0, 124, 124, 0,
124, 124, 124, 0, 323, 325, 0, 0, 0, 0,
0, 0, 0, 0, 0, 124, 124, 0, 0, 0,
124, 0, 0, 138, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 73, 73, 73, 0,
0, 0, 73, 0, 0, 0, 0, 0, 0, 0,
124, 0, 0, 0, 73, 73, 0, 73, 73, 73,
73, 73, 73, 73, 73, 73, 0, 0, 0, 0,
0, 0, 73, 73, 73, 0, 73, 0, 73, 0,
124, 124, 63, 63, 63, 67, 0, 0, 33, 0,
34, 0, 14, 0, 0, 73, 0, 0, 0, 0,
63, 63, 0, 73, 73, 73, 73, 73, 73, 73,
0, 73, 0, 73, 73, 0, 0, 73, 63, 0,
73, 73, 73, 0, 163, 163, 163, 0, 0, 0,
163, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 163, 163, 0, 163, 163, 163, 163, 163,
163, 163, 163, 163, 0, 0, 0, 63, 0, 0,
163, 163, 163, 0, 163, 0, 163, 0, 0, 78,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 163, 0, 0, 0, 0, 0, 0,
125, 163, 163, 163, 163, 163, 163, 163, 0, 163,
0, 163, 163, 0, 0, 163, 0, 163, 0, 0,
163, 0, 0, 0, 0, 0, 0, 0, 124, 124,
124, 0, 0, 0, 124, 0, 0, 0, 0, 0,
125, 125, 0, 125, 125, 125, 124, 124, 124, 124,
124, 124, 124, 124, 124, 124, 124, 124, 125, 125,
0, 0, 0, 125, 124, 124, 124, 0, 124, 0,
124, 0, 0, 0, 0, 0, 0, 0, 124, 0,
0, 0, 0, 0, 0, 0, 0, 124, 143, 0,
0, 0, 0, 125, 0, 124, 124, 124, 124, 124,
124, 124, 0, 124, 0, 124, 124, 0, 0, 124,
0, 0, 124, 124, 124, 0, 0, 0, 0, 0,
0, 0, 79, 125, 125, 0, 0, 0, 143, 143,
0, 0, 143, 0, 80, 0, 0, 82, 83, 84,
85, 86, 87, 88, 15, 16, 143, 143, 0, 0,
0, 143, 0, 18, 19, 0, 20, 0, 21, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 22, 0, 0, 0, 0,
0, 143, 142, 23, 24, 25, 26, 27, 28, 29,
0, 30, 0, 31, 32, 0, 0, 68, 0, 0,
36, 37, 38, 0, 0, 0, 0, 0, 0, 0,
0, 143, 143, 0, 0, 0, 0, 0, 0, 0,
0, 0, 142, 142, 0, 0, 142, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
142, 142, 0, 0, 0, 142, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 125, 125, 125, 0, 0, 0, 125, 0, 0,
0, 0, 0, 0, 0, 142, 0, 0, 0, 125,
125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
125, 0, 0, 0, 0, 0, 0, 125, 125, 125,
0, 125, 0, 125, 0, 142, 142, 0, 0, 0,
0, 125, 0, 0, 0, 0, 0, 0, 0, 0,
125, 0, 0, 0, 0, 0, 0, 0, 125, 125,
125, 125, 125, 125, 125, 0, 125, 0, 125, 125,
0, 0, 125, 0, 0, 125, 125, 125, 0, 143,
143, 143, 0, 0, 0, 143, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 143, 143, 143,
143, 143, 143, 143, 143, 143, 143, 143, 143, 0,
0, 0, 0, 0, 0, 143, 143, 143, 0, 143,
0, 143, 0, 0, 0, 0, 0, 0, 0, 143,
0, 0, 0, 0, 0, 0, 0, 0, 143, 0,
0, 0, 0, 0, 0, 73, 143, 143, 143, 143,
143, 143, 143, 0, 143, 0, 143, 143, 0, 0,
143, 0, 0, 143, 143, 143, 0, 0, 0, 0,
0, 0, 0, 142, 142, 142, 0, 0, 0, 142,
0, 0, 0, 0, 0, 73, 73, 0, 0, 73,
0, 142, 142, 142, 142, 142, 142, 142, 142, 142,
142, 142, 142, 73, 73, 0, 0, 0, 73, 142,
142, 142, 0, 142, 0, 142, 0, 0, 0, 0,
0, 0, 0, 142, 0, 0, 0, 0, 0, 0,
0, 0, 142, 72, 0, 0, 0, 0, 73, 0,
142, 142, 142, 142, 142, 142, 142, 0, 142, 0,
142, 142, 0, 0, 142, 0, 0, 142, 142, 142,
0, 0, 0, 0, 0, 0, 0, 0, 73, 73,
0, 0, 0, 72, 72, 0, 0, 72, 0, 0,
64, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 72, 72, 0, 0, 0, 72, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 64, 0, 0, 64, 0, 72, 145, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 64, 64,
0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 72, 72, 0, 0,
0, 0, 0, 0, 145, 0, 0, 145, 145, 145,
145, 145, 145, 64, 145, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 145, 145, 0, 0, 0,
145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 64, 0, 0, 73, 73, 73, 0,
0, 0, 73, 0, 0, 0, 0, 0, 0, 0,
145, 0, 0, 0, 73, 73, 0, 73, 73, 73,
73, 73, 73, 73, 73, 73, 0, 0, 0, 0,
0, 0, 73, 73, 73, 0, 73, 0, 73, 0,
145, 145, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 73, 0, 0, 0, 0,
0, 0, 0, 73, 73, 73, 73, 73, 73, 73,
0, 73, 0, 73, 73, 0, 0, 73, 0, 0,
73, 73, 73, 0, 72, 72, 72, 0, 0, 0,
72, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 72, 72, 0, 72, 72, 72, 72, 72,
72, 72, 72, 72, 0, 0, 0, 0, 0, 0,
72, 72, 72, 0, 72, 0, 72, 0, 0, 0,
0, 64, 64, 64, 0, 0, 0, 0, 0, 0,
0, 0, 0, 72, 0, 0, 0, 0, 0, 64,
64, 72, 72, 72, 72, 72, 72, 72, 0, 72,
0, 72, 72, 0, 0, 72, 0, 64, 72, 72,
72, 0, 0, 0, 0, 0, 0, 0, 145, 145,
145, 0, 71, 0, 145, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 145, 145, 145, 145,
145, 145, 145, 0, 145, 145, 64, 145, 0, 0,
0, 0, 0, 0, 145, 145, 145, 0, 145, 0,
145, 0, 71, 71, 0, 71, 71, 71, 145, 71,
0, 0, 0, 0, 0, 0, 0, 145, 0, 0,
71, 71, 0, 0, 0, 71, 0, 0, 145, 145,
145, 0, 0, 145, 0, 145, 145, 0, 0, 145,
0, 145, 145, 145, 0, 0, 0, 0, 59, 0,
0, 0, 0, 0, 0, 71, 0, 0, 0, 0,
65, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 71, 71, 0, 59, 59,
0, 59, 59, 59, 0, 59, 0, 0, 0, 0,
0, 65, 0, 0, 65, 0, 59, 59, 0, 0,
0, 59, 0, 0, 0, 0, 0, 0, 65, 65,
0, 0, 0, 65, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 59, 0, 0, 0, 58, 0, 0, 0, 0,
0, 0, 0, 65, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
165, 59, 59, 165, 0, 165, 165, 0, 165, 0,
165, 0, 0, 65, 0, 0, 58, 0, 0, 58,
0, 0, 165, 0, 0, 0, 165, 0, 0, 0,
0, 0, 0, 58, 58, 0, 0, 0, 58, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 71, 71, 71, 0, 0, 0, 71,
0, 0, 0, 0, 0, 0, 0, 0, 58, 0,
0, 71, 71, 0, 71, 71, 71, 71, 71, 71,
71, 0, 71, 0, 0, 0, 0, 165, 0, 71,
71, 71, 0, 71, 0, 71, 89, 0, 58, 49,
49, 89, 49, 49, 49, 0, 49, 0, 0, 0,
0, 0, 71, 0, 0, 0, 0, 49, 49, 0,
0, 0, 49, 71, 71, 71, 0, 0, 71, 0,
71, 71, 0, 0, 71, 0, 0, 71, 71, 59,
59, 59, 0, 0, 0, 59, 0, 0, 0, 0,
0, 65, 65, 65, 0, 0, 0, 59, 59, 0,
59, 59, 59, 59, 59, 59, 59, 59, 59, 65,
65, 0, 0, 0, 0, 59, 59, 59, 0, 59,
0, 59, 0, 49, 0, 0, 0, 65, 0, 89,
0, 0, 89, 0, 89, 89, 0, 89, 59, 89,
0, 0, 0, 0, 0, 0, 59, 59, 59, 59,
59, 59, 59, 0, 59, 89, 59, 59, 0, 0,
59, 0, 0, 0, 0, 0, 65, 0, 0, 0,
165, 0, 0, 0, 0, 0, 58, 58, 58, 0,
0, 0, 165, 165, 0, 165, 165, 165, 165, 165,
165, 0, 165, 165, 58, 58, 0, 0, 0, 0,
0, 165, 165, 0, 165, 0, 165, 0, 0, 0,
0, 0, 58, 0, 165, 0, 89, 0, 0, 0,
0, 0, 0, 165, 0, 0, 0, 0, 0, 0,
0, 165, 165, 165, 165, 165, 165, 165, 0, 165,
0, 165, 165, 0, 0, 165, 0, 165, 165, 165,
165, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 49, 0, 163, 0, 49, 163, 163, 163,
163, 163, 163, 0, 163, 0, 0, 0, 49, 49,
49, 0, 0, 49, 0, 163, 163, 49, 49, 49,
163, 0, 0, 0, 0, 0, 0, 49, 49, 0,
49, 0, 49, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 49,
0, 0, 0, 0, 0, 0, 0, 49, 49, 49,
49, 49, 49, 49, 0, 49, 0, 49, 49, 0,
0, 49, 0, 89, 49, 49, 49, 0, 0, 0,
0, 163, 0, 0, 0, 0, 0, 0, 0, 89,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 89, 89, 0, 89, 89, 89, 89, 89, 89,
89, 89, 89, 0, 0, 0, 0, 0, 0, 23,
89, 89, 23, 89, 23, 89, 23, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
0, 0, 89, 0, 0, 0, 0, 0, 0, 0,
89, 89, 89, 89, 89, 89, 89, 0, 89, 0,
89, 89, 0, 0, 89, 0, 89, 89, 89, 89,
0, 0, 0, 0, 0, 0, 0, 0, 24, 0,
0, 24, 0, 24, 0, 24, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 24, 0, 0,
0, 0, 23, 0, 23, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
163, 0, 0, 0, 163, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 163, 163, 163, 0,
0, 163, 0, 0, 0, 163, 163, 163, 0, 0,
0, 0, 0, 0, 0, 163, 163, 0, 163, 0,
163, 24, 0, 24, 0, 103, 0, 0, 103, 0,
103, 0, 103, 0, 0, 0, 0, 163, 0, 0,
0, 0, 0, 0, 103, 163, 163, 163, 163, 163,
163, 163, 0, 163, 0, 163, 163, 0, 0, 163,
0, 163, 0, 0, 163, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 23, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 103, 0,
103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
67, 0, 0, 33, 0, 34, 0, 14, 23, 23,
23, 23, 23, 23, 23, 23, 0, 23, 23, 23,
23, 0, 23, 23, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 24, 0, 0, 23, 23, 23,
23, 0, 0, 0, 0, 0, 0, 23, 23, 23,
23, 23, 23, 23, 0, 23, 23, 23, 23, 23,
0, 23, 0, 0, 23, 23, 23, 24, 24, 24,
24, 24, 24, 24, 24, 0, 24, 24, 24, 24,
0, 24, 24, 0, 78, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 24, 24, 24, 24,
0, 0, 0, 0, 0, 0, 24, 24, 24, 24,
24, 24, 24, 0, 24, 24, 24, 24, 24, 0,
24, 103, 0, 24, 24, 24, 0, 0, 0, 0,
113, 0, 0, 113, 0, 113, 0, 113, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 113,
0, 0, 0, 0, 103, 103, 103, 103, 103, 103,
103, 103, 0, 103, 103, 103, 103, 0, 103, 103,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 103, 103, 103, 103, 0, 0, 0,
0, 0, 0, 103, 103, 103, 103, 103, 103, 103,
0, 103, 103, 103, 103, 103, 0, 103, 0, 0,
103, 103, 103, 113, 0, 113, 0, 13, 0, 0,
33, 0, 34, 0, 14, 0, 0, 79, 0, 0,
0, 0, 0, 0, 0, 0, 108, 0, 0, 0,
0, 0, 82, 83, 84, 85, 86, 87, 88, 15,
16, 0, 0, 0, 0, 0, 0, 0, 18, 19,
0, 20, 0, 21, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 13, 0, 0, 33,
22, 34, 0, 14, 0, 0, 0, 0, 23, 24,
25, 26, 27, 28, 29, 108, 30, 0, 31, 32,
12, 0, 68, 0, 0, 36, 37, 38, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 113, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 12,
0, 198, 0, 0, 0, 0, 0, 0, 13, 0,
0, 33, 0, 34, 0, 14, 0, 0, 0, 113,
113, 113, 113, 113, 113, 113, 113, 108, 113, 113,
113, 113, 0, 113, 113, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 113, 113,
113, 113, 0, 0, 0, 0, 0, 0, 113, 113,
113, 113, 113, 113, 113, 0, 113, 113, 113, 113,
113, 0, 113, 106, 0, 113, 113, 113, 0, 0,
107, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 12, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 15, 16, 109, 110,
111, 112, 113, 114, 0, 18, 19, 115, 20, 0,
21, 116, 13, 0, 0, 33, 0, 34, 0, 14,
0, 0, 106, 0, 0, 117, 118, 22, 0, 0,
0, 0, 0, 0, 0, 23, 24, 25, 26, 27,
28, 29, 0, 30, 119, 31, 32, 120, 0, 35,
0, 0, 36, 37, 38, 15, 16, 109, 110, 111,
112, 113, 114, 0, 18, 19, 115, 20, 0, 21,
116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 117, 118, 22, 0, 0, 0,
0, 0, 0, 0, 23, 24, 25, 26, 27, 28,
29, 0, 30, 119, 31, 32, 120, 0, 35, 0,
0, 36, 37, 38, 106, 0, 0, 0, 0, 0,
0, 209, 0, 13, 0, 0, 33, 0, 34, 0,
14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 108, 0, 0, 0, 0, 15, 16, 109,
110, 111, 112, 113, 114, 0, 18, 19, 115, 20,
0, 21, 116, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 117, 118, 22, 0,
0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
27, 28, 29, 0, 30, 119, 31, 32, 120, 0,
35, 0, 0, 36, 37, 38, 12, 0, 213, 0,
13, 0, 0, 33, 0, 34, 0, 14, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 106, 108,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 15, 16, 0, 0, 111, 0, 0, 0, 13,
18, 19, 33, 20, 34, 21, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 108, 0,
117, 118, 22, 12, 0, 214, 0, 0, 0, 0,
23, 24, 25, 26, 27, 28, 29, 0, 30, 0,
31, 32, 0, 0, 35, 0, 0, 36, 37, 38,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 106,
0, 0, 0, 0, 0, 0, 0, 0, 13, 0,
0, 33, 12, 34, 234, 14, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 108, 0, 0,
0, 0, 15, 16, 109, 110, 111, 112, 113, 114,
0, 18, 19, 115, 20, 0, 21, 116, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 117, 118, 22, 0, 0, 0, 0, 0, 0,
0, 23, 24, 25, 26, 27, 28, 29, 0, 30,
119, 31, 32, 120, 0, 35, 106, 0, 36, 37,
38, 12, 0, 248, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 13, 0,
0, 33, 0, 34, 0, 14, 0, 0, 0, 15,
16, 109, 110, 111, 112, 113, 114, 108, 18, 19,
115, 20, 0, 21, 116, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 106, 0, 0, 117, 118,
22, 0, 0, 0, 0, 0, 0, 0, 23, 24,
25, 26, 27, 28, 29, 0, 30, 119, 31, 32,
120, 0, 35, 0, 0, 36, 37, 38, 15, 16,
109, 110, 111, 112, 113, 114, 0, 18, 19, 115,
20, 12, 21, 116, 0, 13, 0, 0, 33, 0,
34, 0, 14, 0, 0, 0, 0, 117, 118, 22,
0, 0, 0, 0, 108, 0, 0, 23, 24, 25,
26, 27, 28, 29, 106, 30, 119, 31, 32, 120,
0, 35, 0, 0, 36, 37, 38, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 15, 16, 109,
110, 111, 112, 113, 114, 0, 18, 19, 115, 20,
0, 21, 116, 0, 0, 0, 0, 0, 12, 0,
313, 0, 0, 0, 0, 0, 117, 118, 22, 0,
0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
27, 28, 29, 0, 30, 119, 31, 32, 120, 0,
35, 0, 0, 36, 37, 38, 0, 0, 0, 0,
13, 0, 0, 33, 106, 34, 0, 14, 0, 0,
0, 283, 0, 0, 0, 0, 0, 0, 0, 108,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 15, 16, 109,
110, 111, 112, 113, 114, 0, 18, 19, 115, 20,
0, 21, 116, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 117, 118, 22, 0,
0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
27, 28, 29, 12, 30, 119, 31, 32, 120, 0,
35, 106, 0, 36, 37, 38, 0, 0, 0, 0,
13, 0, 0, 33, 0, 34, 0, 14, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
0, 0, 0, 0, 15, 16, 109, 110, 111, 112,
113, 114, 0, 18, 19, 115, 20, 0, 21, 116,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 117, 118, 22, 0, 0, 0, 0,
0, 0, 0, 23, 24, 25, 26, 27, 28, 29,
0, 30, 119, 31, 32, 120, 0, 35, 0, 0,
36, 37, 38, 12, 0, 349, 0, 112, 0, 0,
112, 0, 112, 0, 112, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 112, 0, 0, 0,
0, 0, 0, 0, 0, 0, 106, 0, 0, 0,
0, 0, 0, 302, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
16, 109, 110, 111, 112, 113, 114, 0, 18, 19,
115, 20, 0, 21, 116, 0, 0, 0, 0, 0,
112, 0, 112, 0, 0, 0, 0, 0, 117, 118,
22, 0, 0, 0, 0, 0, 0, 0, 23, 24,
25, 26, 27, 28, 29, 0, 30, 119, 31, 32,
120, 0, 35, 0, 0, 36, 37, 38, 0, 0,
0, 0, 13, 0, 0, 33, 106, 34, 0, 14,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 108, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
16, 109, 110, 111, 112, 113, 114, 0, 18, 19,
115, 20, 0, 21, 116, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 117, 118,
22, 0, 0, 0, 0, 0, 0, 0, 23, 24,
25, 26, 27, 28, 29, 12, 30, 119, 31, 32,
120, 0, 35, 112, 0, 36, 37, 38, 18, 0,
0, 18, 0, 18, 0, 18, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
0, 0, 0, 0, 0, 0, 112, 112, 112, 112,
112, 112, 112, 112, 0, 112, 112, 112, 112, 0,
112, 112, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 112, 112, 112, 0, 0,
0, 0, 0, 0, 0, 112, 112, 112, 112, 112,
112, 112, 0, 112, 112, 112, 112, 112, 0, 112,
0, 18, 112, 112, 112, 176, 0, 0, 176, 0,
176, 0, 176, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 176, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 106, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 15, 16, 109, 110, 111, 112, 113, 114, 0,
18, 19, 115, 20, 0, 21, 116, 0, 176, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
117, 118, 22, 0, 0, 0, 0, 0, 0, 0,
23, 24, 25, 26, 27, 28, 29, 0, 30, 119,
31, 32, 120, 0, 35, 0, 0, 36, 37, 38,
0, 0, 0, 0, 18, 67, 135, 0, 33, 134,
34, 0, 14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 89, 0,
0, 0, 0, 0, 0, 0, 0, 18, 18, 18,
18, 18, 18, 18, 18, 0, 18, 18, 18, 18,
0, 18, 18, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 18, 18, 18, 0,
0, 0, 0, 0, 0, 0, 18, 18, 18, 18,
18, 18, 18, 0, 18, 18, 18, 18, 18, 78,
18, 176, 0, 18, 18, 18, 0, 0, 0, 67,
0, 0, 33, 0, 34, 0, 14, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 184, 0,
0, 0, 89, 0, 176, 176, 176, 176, 176, 176,
176, 176, 0, 176, 176, 176, 176, 0, 176, 176,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 176, 176, 176, 0, 0, 0, 0,
0, 0, 0, 176, 176, 176, 176, 176, 176, 176,
0, 176, 176, 176, 176, 176, 0, 176, 0, 0,
176, 176, 176, 78, 0, 67, 311, 0, 33, 134,
34, 0, 14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 89, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 79, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 80, 81, 0, 82, 83, 84,
85, 86, 87, 88, 15, 16, 0, 0, 0, 0,
0, 0, 0, 18, 19, 0, 20, 0, 21, 78,
0, 0, 0, 0, 0, 0, 0, 67, 322, 0,
33, 134, 34, 0, 14, 22, 0, 0, 0, 0,
0, 0, 0, 23, 24, 25, 26, 27, 28, 29,
89, 30, 0, 31, 32, 0, 0, 68, 0, 0,
36, 37, 38, 0, 0, 0, 0, 0, 0, 0,
0, 0, 181, 0, 0, 0, 79, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 80, 81,
0, 82, 83, 84, 85, 86, 87, 88, 15, 16,
0, 0, 0, 0, 0, 0, 0, 18, 19, 0,
20, 78, 21, 67, 324, 0, 33, 134, 34, 0,
14, 0, 0, 0, 0, 0, 0, 0, 0, 22,
0, 0, 0, 0, 0, 0, 89, 23, 24, 25,
26, 27, 28, 29, 0, 30, 0, 31, 32, 0,
0, 68, 0, 0, 36, 37, 38, 0, 0, 0,
0, 0, 79, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 80, 81, 0, 82, 83, 84,
85, 86, 87, 88, 15, 16, 0, 0, 0, 0,
0, 0, 0, 18, 19, 0, 20, 78, 21, 67,
0, 0, 33, 134, 34, 0, 14, 0, 0, 0,
0, 0, 0, 0, 0, 22, 0, 0, 0, 0,
0, 0, 89, 23, 24, 25, 26, 27, 28, 29,
0, 30, 0, 31, 32, 0, 0, 68, 0, 0,
36, 37, 38, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 79, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 80, 81, 0, 82,
83, 84, 85, 86, 87, 88, 15, 16, 0, 0,
0, 0, 0, 78, 0, 18, 19, 0, 20, 0,
21, 67, 135, 0, 33, 0, 34, 0, 14, 0,
0, 0, 0, 0, 0, 0, 0, 22, 0, 0,
0, 0, 0, 0, 89, 23, 24, 25, 26, 27,
28, 29, 0, 30, 0, 31, 32, 0, 0, 68,
0, 0, 36, 37, 38, 0, 0, 0, 0, 0,
79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 80, 81, 0, 82, 83, 84, 85, 86,
87, 88, 15, 16, 0, 0, 0, 0, 0, 0,
0, 18, 19, 0, 20, 78, 21, 67, 0, 0,
33, 0, 34, 0, 14, 0, 0, 0, 0, 0,
0, 0, 0, 22, 0, 232, 0, 0, 0, 0,
89, 23, 24, 25, 26, 27, 28, 29, 0, 30,
0, 31, 32, 0, 0, 68, 0, 0, 36, 37,
38, 0, 0, 0, 0, 0, 79, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 80, 81,
0, 82, 83, 84, 85, 86, 87, 88, 15, 16,
0, 0, 0, 0, 0, 0, 0, 18, 19, 0,
20, 78, 21, 67, 267, 0, 33, 0, 34, 0,
14, 0, 0, 0, 0, 0, 0, 0, 0, 22,
0, 0, 0, 0, 0, 0, 89, 23, 24, 25,
26, 27, 28, 29, 0, 30, 0, 31, 32, 0,
0, 68, 0, 0, 36, 37, 38, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 79, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
80, 81, 0, 82, 83, 84, 85, 86, 87, 88,
15, 16, 0, 0, 0, 0, 0, 78, 0, 18,
19, 0, 20, 0, 21, 67, 305, 0, 33, 0,
34, 0, 14, 0, 0, 0, 0, 0, 0, 0,
0, 22, 0, 0, 0, 0, 0, 0, 89, 23,
24, 25, 26, 27, 28, 29, 0, 30, 0, 31,
32, 0, 0, 68, 0, 0, 36, 37, 38, 0,
0, 0, 0, 0, 79, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 80, 81, 0, 82,
83, 84, 85, 86, 87, 88, 15, 16, 0, 0,
0, 0, 0, 0, 0, 18, 19, 0, 20, 78,
21, 67, 307, 0, 33, 0, 34, 0, 14, 0,
0, 0, 0, 0, 0, 0, 0, 22, 0, 0,
0, 0, 0, 0, 89, 23, 24, 25, 26, 27,
28, 29, 0, 30, 0, 31, 32, 0, 0, 68,
0, 0, 36, 37, 38, 0, 0, 0, 0, 0,
79, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 80, 81, 0, 82, 83, 84, 85, 86,
87, 88, 15, 16, 0, 0, 0, 0, 0, 0,
0, 18, 19, 0, 20, 78, 21, 67, 0, 0,
33, 0, 34, 0, 14, 0, 0, 0, 0, 0,
0, 0, 0, 22, 0, 0, 331, 0, 0, 0,
89, 23, 24, 25, 26, 27, 28, 29, 0, 30,
0, 31, 32, 0, 0, 68, 0, 0, 36, 37,
38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 79, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 80, 81, 0, 82, 83, 84,
85, 86, 87, 88, 15, 16, 0, 0, 0, 0,
0, 78, 0, 18, 19, 0, 20, 0, 21, 67,
336, 0, 33, 0, 34, 0, 14, 0, 0, 0,
0, 0, 0, 0, 0, 22, 0, 0, 0, 0,
0, 0, 89, 23, 24, 25, 26, 27, 28, 29,
0, 30, 0, 31, 32, 0, 0, 68, 0, 0,
36, 37, 38, 0, 0, 0, 0, 0, 79, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
80, 81, 0, 82, 83, 84, 85, 86, 87, 88,
15, 16, 0, 0, 0, 0, 0, 0, 0, 18,
19, 0, 20, 78, 21, 67, 340, 0, 33, 0,
34, 0, 14, 0, 0, 0, 0, 0, 0, 0,
0, 22, 0, 0, 0, 0, 0, 0, 89, 23,
24, 25, 26, 27, 28, 29, 0, 30, 0, 31,
32, 0, 0, 68, 0, 0, 36, 37, 38, 0,
0, 0, 0, 0, 79, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 80, 81, 0, 82,
83, 84, 85, 86, 87, 88, 15, 16, 0, 0,
0, 0, 0, 0, 0, 18, 19, 0, 20, 78,
21, 67, 342, 0, 33, 0, 34, 0, 14, 0,
0, 0, 0, 0, 0, 0, 0, 22, 0, 0,
0, 0, 0, 0, 89, 23, 24, 25, 26, 27,
28, 29, 0, 30, 0, 31, 32, 0, 0, 68,
0, 0, 36, 37, 38, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 79, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 80, 81,
0, 82, 83, 84, 85, 86, 87, 88, 15, 16,
0, 0, 0, 0, 0, 78, 0, 18, 19, 0,
20, 67, 21, 0, 33, 0, 34, 0, 14, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
0, 0, 0, 0, 89, 0, 0, 23, 24, 25,
26, 27, 28, 29, 0, 30, 0, 31, 32, 0,
0, 68, 0, 0, 36, 37, 38, 0, 0, 0,
0, 0, 79, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 80, 81, 0, 82, 83, 84,
85, 86, 87, 88, 15, 16, 0, 0, 54, 54,
0, 0, 54, 18, 19, 78, 20, 0, 21, 0,
0, 0, 0, 0, 0, 0, 54, 54, 0, 0,
0, 54, 0, 0, 0, 22, 0, 0, 0, 0,
0, 0, 0, 23, 24, 25, 26, 27, 28, 29,
0, 30, 0, 31, 32, 0, 0, 68, 0, 0,
36, 37, 38, 0, 0, 0, 0, 0, 79, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
80, 81, 0, 82, 83, 84, 85, 86, 87, 88,
15, 16, 54, 0, 0, 0, 0, 0, 0, 18,
19, 0, 20, 67, 21, 0, 33, 0, 34, 199,
14, 200, 201, 0, 0, 210, 0, 199, 199, 0,
0, 22, 0, 0, 0, 0, 253, 0, 0, 23,
24, 25, 26, 27, 28, 29, 0, 30, 0, 31,
32, 0, 0, 68, 0, 0, 36, 37, 38, 0,
0, 0, 0, 0, 0, 0, 0, 0, 79, 0,
0, 0, 199, 0, 0, 0, 0, 0, 0, 0,
80, 81, 0, 82, 83, 84, 85, 86, 87, 88,
15, 16, 0, 0, 53, 53, 0, 199, 53, 18,
19, 0, 20, 0, 21, 0, 0, 0, 0, 0,
0, 0, 53, 53, 0, 0, 0, 53, 0, 0,
0, 22, 0, 0, 0, 0, 0, 0, 0, 23,
24, 25, 26, 27, 28, 29, 0, 30, 0, 31,
32, 54, 284, 68, 0, 54, 36, 37, 38, 0,
0, 0, 0, 0, 0, 0, 0, 54, 54, 54,
0, 0, 54, 0, 0, 0, 54, 54, 54, 0,
0, 0, 199, 0, 0, 0, 54, 54, 53, 54,
0, 54, 67, 0, 0, 33, 0, 34, 0, 14,
0, 0, 0, 0, 0, 0, 0, 0, 54, 0,
320, 0, 0, 0, 0, 253, 54, 54, 54, 54,
54, 54, 54, 0, 54, 0, 54, 54, 0, 0,
54, 0, 0, 54, 54, 54, 0, 345, 0, 0,
0, 0, 0, 0, 199, 0, 0, 0, 350, 0,
251, 0, 13, 0, 0, 33, 352, 34, 0, 14,
0, 0, 80, 81, 0, 0, 0, 0, 0, 0,
0, 252, 15, 16, 0, 0, 0, 0, 0, 0,
0, 18, 19, 0, 20, 0, 21, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
0, 23, 24, 25, 26, 27, 28, 29, 0, 30,
0, 31, 32, 0, 0, 68, 0, 53, 36, 37,
38, 53, 0, 67, 0, 12, 33, 0, 34, 0,
14, 0, 0, 53, 53, 53, 0, 0, 53, 0,
0, 0, 53, 53, 53, 0, 0, 0, 0, 0,
0, 0, 53, 53, 0, 53, 0, 53, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 53, 0, 0, 0, 0, 0,
0, 0, 53, 53, 53, 53, 53, 53, 53, 0,
53, 0, 53, 53, 0, 0, 53, 0, 0, 53,
53, 53, 0, 0, 0, 0, 0, 0, 13, 251,
0, 33, 0, 34, 0, 14, 0, 0, 0, 0,
0, 80, 81, 0, 0, 0, 0, 184, 0, 0,
252, 15, 16, 0, 0, 0, 0, 0, 0, 0,
18, 19, 0, 20, 0, 21, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 22, 10, 11, 0, 0, 0, 0, 0,
23, 24, 25, 26, 27, 28, 29, 0, 30, 0,
31, 32, 0, 0, 68, 0, 0, 36, 37, 38,
67, 15, 16, 33, 0, 34, 0, 14, 0, 17,
18, 19, 0, 20, 0, 21, 0, 0, 0, 0,
13, 140, 0, 33, 0, 34, 0, 14, 0, 0,
0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
23, 24, 25, 26, 27, 28, 29, 0, 30, 0,
31, 32, 0, 0, 35, 0, 0, 36, 37, 38,
251, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 80, 0, 0, 0, 0, 0, 0, 0,
0, 252, 15, 16, 0, 0, 0, 0, 0, 0,
0, 18, 19, 0, 20, 0, 21, 13, 147, 0,
33, 0, 34, 0, 14, 0, 0, 0, 0, 0,
0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
0, 23, 24, 25, 26, 27, 28, 29, 0, 30,
0, 31, 32, 0, 0, 68, 0, 0, 36, 37,
38, 181, 0, 0, 0, 0, 0, 0, 13, 0,
0, 33, 0, 34, 0, 14, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 15, 16, 0,
0, 0, 0, 0, 0, 0, 18, 19, 0, 20,
0, 21, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 22, 0,
0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
27, 28, 29, 0, 30, 0, 31, 32, 0, 0,
35, 0, 0, 36, 37, 38, 13, 251, 0, 33,
0, 34, 0, 14, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 252, 15,
16, 0, 0, 0, 0, 0, 0, 0, 18, 19,
0, 20, 0, 21, 0, 0, 0, 0, 0, 15,
16, 0, 0, 0, 0, 0, 0, 0, 18, 19,
22, 20, 0, 21, 0, 0, 0, 0, 23, 24,
25, 26, 27, 28, 29, 0, 30, 0, 31, 32,
22, 0, 68, 0, 0, 36, 37, 38, 23, 24,
25, 26, 27, 28, 29, 0, 30, 0, 31, 32,
0, 0, 35, 0, 0, 36, 37, 38, 13, 0,
0, 33, 0, 34, 0, 14, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 15, 16, 0, 0,
0, 0, 0, 0, 0, 18, 19, 0, 20, 0,
21, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 166, 0, 0, 0, 0, 0, 22, 0, 0,
0, 0, 0, 0, 0, 23, 24, 25, 26, 27,
28, 29, 0, 30, 0, 31, 32, 15, 16, 35,
0, 0, 36, 37, 38, 287, 18, 19, 33, 20,
34, 21, 14, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 22, 0,
0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
27, 28, 29, 0, 30, 0, 31, 32, 0, 168,
35, 0, 0, 36, 37, 38, 287, 0, 0, 33,
0, 34, 0, 14, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 15, 16, 0, 0, 0,
0, 0, 0, 0, 18, 19, 0, 20, 0, 21,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
0, 0, 0, 0, 23, 24, 25, 26, 27, 28,
29, 0, 30, 0, 31, 32, 0, 0, 35, 0,
0, 36, 37, 38, 287, 0, 0, 33, 0, 34,
0, 14, 0, 0, 0, 0, 0, 0, 0, 0,
0, 215, 0, 0, 13, 0, 0, 33, 0, 34,
0, 14, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 315, 0, 0, 0, 15, 16, 0,
0, 0, 0, 0, 0, 0, 18, 19, 0, 20,
0, 21, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 22, 0,
0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
27, 28, 29, 0, 30, 0, 31, 32, 166, 0,
35, 0, 0, 36, 37, 38, 13, 0, 0, 33,
0, 34, 0, 14, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 15, 16, 0, 0, 0, 0,
0, 0, 0, 18, 19, 0, 20, 0, 21, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 168,
0, 0, 0, 0, 0, 22, 0, 0, 0, 0,
0, 0, 0, 23, 24, 25, 26, 27, 28, 29,
0, 30, 0, 31, 32, 15, 16, 68, 0, 0,
36, 37, 38, 67, 18, 19, 33, 20, 34, 21,
14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
0, 0, 0, 0, 23, 24, 25, 26, 27, 28,
29, 0, 30, 0, 31, 32, 0, 215, 68, 0,
0, 36, 37, 38, 203, 0, 0, 33, 0, 34,
0, 14, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 15, 16, 0, 0, 0, 0, 0,
0, 0, 18, 19, 0, 20, 0, 21, 0, 0,
0, 0, 0, 15, 16, 0, 0, 0, 0, 0,
0, 0, 18, 19, 22, 20, 0, 21, 0, 0,
0, 0, 23, 24, 25, 26, 27, 28, 29, 0,
30, 0, 31, 32, 22, 0, 68, 0, 0, 36,
37, 38, 23, 24, 25, 26, 27, 28, 29, 0,
30, 0, 31, 32, 0, 0, 35, 0, 0, 36,
37, 38, 287, 0, 0, 33, 0, 34, 0, 14,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 15, 16, 0, 0, 0,
0, 0, 0, 0, 18, 19, 0, 20, 0, 21,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 22, 0, 0, 0,
0, 0, 0, 0, 23, 24, 25, 26, 27, 28,
29, 0, 30, 0, 31, 32, 0, 0, 35, 0,
0, 36, 37, 38, 67, 0, 0, 33, 0, 34,
0, 14, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 15, 16, 0, 0, 0, 0, 0, 0,
0, 18, 19, 0, 20, 0, 21, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
0, 23, 24, 25, 26, 27, 28, 29, 0, 30,
0, 31, 32, 15, 16, 68, 0, 0, 36, 37,
38, 0, 18, 19, 0, 20, 0, 21, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 22, 0, 0, 0, 0, 0,
0, 0, 23, 24, 25, 26, 27, 28, 29, 0,
30, 0, 31, 32, 0, 0, 68, 0, 0, 36,
37, 38, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 15, 16, 0, 0, 0, 0, 0, 0, 0,
18, 19, 0, 20, 0, 21, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 22, 0, 0, 0, 0, 0, 0, 0,
23, 24, 25, 26, 27, 28, 29, 0, 30, 0,
31, 32, 0, 0, 68, 0, 0, 36, 37, 38,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 15, 16, 0, 0, 0, 0, 0,
0, 0, 18, 19, 0, 20, 64, 21, 0, 70,
70, 0, 75, 76, 70, 70, 0, 0, 0, 0,
0, 0, 0, 0, 22, 0, 0, 0, 70, 0,
0, 0, 23, 24, 25, 26, 27, 28, 29, 70,
0, 0, 31, 32, 70, 0, 68, 0, 70, 36,
37, 38, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
70, 70, 70, 70, 70, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 70, 0, 0,
0, 0, 0, 0, 0, 208, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 70, 0, 0,
70, 70, 0, 0, 0, 0, 70, 70, 70, 70,
0, 231, 70, 0, 70, 70, 70, 70, 70, 70,
0, 70, 0, 70, 0, 70, 0, 0, 0, 0,
0, 0, 0, 0, 0, 70, 0, 0, 0, 0,
0, 0, 0, 0, 0, 70, 0, 0, 0, 0,
70, 0, 0, 0, 0, 0, 0, 0, 0, 0,
70, 0, 0, 0, 0, 0, 0, 70, 0, 0,
0, 0, 70, 0, 70, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
0, 70, 0, 0, 0, 0, 0, 208, 0, 208,
0, 208, 208, 208, 70, 70, 70, 208, 0, 0,
0, 0, 70, 0, 0, 0, 70, 0, 70, 0,
0, 70, 70, 0, 39, 0, 0, 0, 0, 0,
52, 0, 0, 0, 70, 0, 0, 70, 70, 70,
70, 0, 0, 0, 70, 0, 70, 70, 0, 0,
0, 0, 72, 0, 0, 0, 0, 0, 0, 0,
0, 0, 70, 0, 0, 0, 208, 70, 0, 337,
0, 338, 141, 70, 0, 70, 144, 145, 141, 141,
0, 70, 151, 152, 153, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 156, 0, 0, 158,
159, 160, 161, 162, 163, 0, 165, 0, 167, 169,
0, 0, 0, 0, 0, 0, 39, 0, 39, 179,
0, 0, 141, 0, 0, 0, 0, 0, 0, 0,
189, 0, 0, 0, 0, 0, 194, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 211, 0,
0, 0, 0, 216, 0, 218, 0, 0, 0, 0,
0, 0, 0, 0, 0, 69, 71, 73, 0, 0,
77, 90, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 90, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 149, 0, 0, 0, 0,
154, 0, 0, 0, 90, 0, 0, 0, 0, 243,
0, 0, 0, 245, 0, 0, 0, 0, 0, 0,
52, 0, 0, 0, 0, 170, 171, 172, 173, 174,
175, 0, 0, 0, 0, 0, 0, 0, 266, 0,
0, 270, 272, 0, 0, 0, 0, 275, 0, 276,
0, 0, 0, 90, 0, 141, 0, 0, 0, 0,
0, 207, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 90, 0, 0, 90, 90, 0, 0,
300, 301, 228, 90, 90, 90, 0, 0, 90, 0,
90, 90, 90, 90, 90, 90, 316, 90, 0, 90,
0, 90, 0, 0, 52, 0, 0, 0, 0, 0,
0, 90, 0, 0, 0, 0, 321, 0, 0, 0,
0, 90, 0, 0, 0, 0, 90, 327, 0, 329,
0, 0, 0, 0, 0, 0, 254, 0, 0, 0,
0, 0, 0, 90, 0, 0, 0, 0, 90, 0,
90, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 90, 0, 90, 0, 0,
0, 0, 0, 207, 0, 207, 0, 207, 207, 207,
295, 296, 297, 207, 0, 0, 0, 0, 90, 0,
0, 0, 90, 0, 90, 0, 0, 90, 90, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
254, 0, 0, 254, 254, 254, 254, 0, 0, 0,
254, 0, 90, 90, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 90, 0,
0, 0, 207, 90, 0, 0, 0, 0, 0, 90,
0, 90, 0, 0, 0, 0, 0, 254,
};
short yycheck[] = { 91,
0, 50, 51, 37, 59, 37, 41, 203, 42, 43,
42, 45, 59, 47, 41, 47, 124, 41, 7, 79,
44, 10, 11, 44, 59, 108, 59, 263, 59, 44,
0, 41, 59, 44, 58, 59, 41, 37, 123, 63,
40, 41, 42, 43, 44, 45, 0, 47, 41, 59,
41, 100, 35, 42, 59, 0, 315, 328, 58, 59,
331, 345, 346, 63, 41, 191, 59, 44, 59, 263,
41, 131, 331, 44, 44, 61, 62, 41, 93, 128,
44, 41, 93, 40, 44, 68, 311, 41, 0, 59,
44, 287, 328, 93, 40, 289, 41, 0, 40, 44,
124, 184, 123, 40, 58, 59, 243, 40, 245, 63,
311, 289, 101, 58, 59, 40, 93, 40, 63, 105,
345, 346, 93, 123, 124, 37, 345, 346, 347, 41,
42, 43, 44, 45, 328, 47, 330, 41, 41, 93,
44, 44, 0, 91, 345, 346, 58, 59, 93, 40,
328, 63, 330, 123, 110, 58, 59, 113, 41, 41,
116, 44, 44, 119, 224, 225, 122, 41, 41, 123,
44, 44, 41, 281, 41, 44, 284, 44, 123, 335,
317, 93, 0, 41, 233, 41, 44, 176, 44, 315,
93, 251, 41, 330, 41, 44, 288, 44, 40, 286,
58, 59, 58, 59, 344, 331, 336, 344, 263, 256,
263, 123, 124, 40, 40, 40, 263, 288, 47, 37,
123, 328, 40, 41, 42, 43, 44, 45, 263, 47,
263, 91, 263, 189, 263, 93, 263, 321, 194, 263,
58, 59, 44, 340, 59, 63, 263, 40, 288, 263,
310, 41, 238, 263, 41, 279, 280, 281, 263, 41,
284, 261, 262, 263, 41, 123, 41, 267, 124, 41,
263, 0, 263, 0, 59, 93, 41, 326, 123, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, 261, 262, 263, 99, 101, 44, 297, 298, 299,
184, 301, -1, 303, -1, 123, 124, 261, 262, 263,
344, 311, 344, -1, 303, -1, 261, 262, 263, -1,
320, -1, -1, -1, -1, 279, 280, 297, 328, 329,
330, 331, 332, 333, 334, 280, 336, -1, 338, 339,
-1, -1, 342, 297, 344, 345, 346, 347, -1, 261,
262, 263, 297, 0, -1, 267, -1, -1, 261, 262,
263, -1, -1, -1, -1, -1, -1, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, -1,
336, -1, 336, -1, -1, 297, 298, 299, -1, 301,
-1, 303, -1, 40, 297, -1, 43, -1, 45, 311,
47, 289, -1, 261, 262, 263, -1, 263, 320, -1,
-1, -1, 59, -1, 88, -1, 328, 329, 330, 331,
332, 333, 334, -1, 336, 281, 338, 339, 284, -1,
342, -1, 344, 345, 346, 347, -1, 111, -1, 297,
328, 329, 330, 261, 262, 263, 334, -1, -1, 267,
41, -1, -1, 44, -1, -1, -1, -1, -1, 347,
-1, 279, 280, 281, 282, 283, 284, 285, 59, 287,
288, 289, 290, -1, -1, -1, -1, -1, -1, 297,
298, 299, 41, 301, -1, 303, -1, 41, 41, -1,
44, 44, -1, 311, 0, -1, -1, -1, -1, -1,
59, -1, 320, -1, 58, 59, 59, -1, -1, 63,
328, 329, 330, 331, 332, 333, 334, 191, 336, -1,
338, 339, -1, 263, 342, -1, 344, 345, 346, 347,
-1, 37, -1, 124, 40, 41, 42, 43, 44, 45,
0, 47, -1, 217, -1, 41, -1, -1, 44, 289,
-1, -1, 58, 59, -1, 229, -1, 63, -1, -1,
-1, -1, 58, 59, -1, 124, -1, -1, -1, -1,
124, 124, -1, -1, -1, -1, -1, 204, 252, -1,
-1, 41, 0, -1, 44, -1, -1, 93, 328, 329,
330, 41, -1, -1, 334, 41, -1, -1, 58, 59,
-1, -1, -1, 63, -1, -1, 280, 347, -1, 59,
-1, -1, -1, 59, 261, 262, 263, 123, 124, 37,
-1, -1, 40, 41, 42, 43, 44, 45, 124, 47,
-1, -1, -1, 93, -1, -1, -1, -1, -1, -1,
58, 59, 289, 290, 318, 63, -1, -1, -1, -1,
297, 298, 299, -1, 301, -1, 303, -1, -1, -1,
-1, 288, -1, 123, 291, 292, 293, 294, -1, -1,
-1, 298, 263, 320, 124, 93, 0, -1, 124, -1,
-1, 328, 329, 330, 331, 332, 333, 334, -1, 336,
281, 338, 339, 284, -1, 342, -1, -1, 345, 346,
347, -1, -1, -1, 263, 123, 124, -1, 335, 263,
263, -1, -1, 37, -1, -1, 40, 41, 42, 43,
44, 45, 281, 47, -1, 284, 280, 281, 281, 41,
284, 284, 44, -1, 58, 59, -1, -1, 251, 63,
253, -1, 255, 256, 257, -1, 58, 59, 261, -1,
-1, 63, -1, -1, -1, 261, 262, 263, -1, -1,
-1, 267, -1, -1, 204, -1, -1, 263, -1, 93,
-1, -1, -1, 279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 281, -1, -1, 284, -1,
-1, 297, 298, 299, -1, 301, -1, 303, -1, 123,
124, 261, 262, 263, -1, 311, -1, 320, -1, -1,
-1, -1, 124, 263, 320, -1, -1, 263, -1, 279,
280, -1, 328, 329, 330, 331, 332, 333, 334, -1,
336, 281, 338, 339, 284, 281, 342, 297, 284, 345,
346, 347, -1, 261, 262, 263, -1, 0, 288, 267,
-1, 291, 292, 293, 294, -1, 286, -1, 298, 289,
-1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
288, 289, 290, -1, -1, -1, 336, -1, -1, 297,
298, 299, -1, 301, -1, 303, -1, 40, -1, -1,
43, -1, 45, 311, 47, 335, -1, -1, 328, 329,
330, -1, 320, -1, 334, -1, 59, -1, -1, -1,
328, 329, 330, 331, 332, 333, 334, 347, 336, -1,
338, 339, -1, -1, 342, -1, -1, 345, 346, 347,
-1, -1, -1, -1, -1, -1, -1, 261, 262, 263,
-1, -1, -1, 267, -1, -1, -1, -1, -1, -1,
-1, 263, -1, -1, -1, 279, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, 279, 280, 281,
-1, -1, 284, 297, 298, 299, -1, 301, -1, 303,
-1, -1, -1, -1, -1, -1, -1, 311, 0, -1,
-1, -1, -1, -1, -1, -1, 320, -1, -1, -1,
-1, -1, -1, -1, 328, 329, 330, 331, 332, 333,
334, -1, 336, -1, 338, 339, -1, -1, 342, -1,
-1, 345, 346, 347, 336, 37, -1, -1, 40, 41,
42, 43, 44, 45, 0, 47, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
-1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 41, 0, -1, 44, -1,
-1, 93, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 58, 59, -1, -1, -1, 63, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 261, 262,
263, 123, 124, 37, -1, -1, 40, 41, 42, 43,
44, 45, -1, 47, -1, -1, -1, 93, -1, -1,
-1, -1, -1, -1, 58, 59, 289, 290, -1, 63,
-1, -1, -1, -1, 297, 298, 299, -1, 301, -1,
303, -1, -1, -1, -1, -1, -1, 123, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 320, -1, 93,
0, -1, -1, -1, -1, 328, 329, 330, 331, 332,
333, 334, -1, 336, -1, 338, 339, -1, -1, 342,
-1, -1, 345, 346, 347, -1, -1, -1, -1, 123,
124, -1, -1, -1, -1, -1, -1, 37, -1, -1,
40, 41, 42, 43, 44, 45, -1, 47, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 58, 59,
-1, -1, -1, 63, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 261,
262, 263, -1, -1, -1, 267, -1, -1, -1, -1,
-1, -1, -1, 93, -1, -1, -1, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, -1,
-1, -1, -1, -1, -1, 297, 298, 299, -1, 301,
-1, 303, -1, 123, 124, 261, 262, 263, -1, 311,
-1, -1, -1, -1, -1, -1, -1, -1, 320, -1,
-1, -1, -1, 279, 280, -1, 328, 329, 330, 331,
332, 333, 334, -1, 336, -1, 338, 339, -1, -1,
342, 297, -1, 345, 346, 347, -1, 261, 262, 263,
-1, 0, -1, 267, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 279, 280, 281, 282, 283,
284, 285, 286, 287, 288, 289, 290, -1, -1, -1,
336, -1, -1, 297, 298, 299, -1, 301, -1, 303,
-1, 40, -1, -1, 43, -1, 45, 311, 47, -1,
-1, -1, -1, -1, -1, -1, 320, -1, -1, -1,
-1, -1, -1, -1, 328, 329, 330, 331, 332, 333,
334, -1, 336, -1, 338, 339, -1, -1, 342, -1,
-1, 345, 346, 347, -1, -1, -1, -1, -1, -1,
-1, 261, 262, 263, -1, -1, -1, 267, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, -1, -1, -1, 123, -1, -1, 297, 298, 299,
-1, 301, -1, 303, -1, -1, -1, -1, -1, -1,
-1, 311, 0, -1, -1, -1, -1, -1, -1, -1,
320, -1, -1, -1, -1, -1, -1, -1, 328, 329,
330, 331, 332, 333, 334, -1, 336, -1, 338, 339,
-1, -1, 342, -1, -1, 345, 346, 347, -1, 37,
-1, -1, 40, 41, 42, 43, 44, 45, 0, 47,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 41,
0, -1, 44, -1, -1, 93, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
-1, 63, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 261, 262, -1, 123, 124, 37, -1, -1,
40, 41, 42, 43, 44, 45, -1, 47, -1, -1,
-1, 93, -1, -1, -1, -1, -1, -1, 58, 59,
289, 290, -1, 63, -1, -1, -1, -1, 297, 298,
299, -1, 301, -1, 303, -1, -1, -1, -1, -1,
-1, 123, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 320, -1, 93, 0, -1, -1, -1, -1, 328,
329, 330, 331, 332, 333, 334, -1, 336, -1, 338,
339, -1, -1, 342, -1, -1, 345, 346, 347, -1,
-1, -1, -1, 123, 124, -1, -1, -1, -1, -1,
-1, 37, -1, -1, 40, 41, 42, 43, 44, 45,
-1, 47, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 58, 59, -1, -1, -1, 63, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 261, 262, 263, -1, -1, -1, 267,
-1, -1, -1, -1, -1, -1, -1, 93, -1, -1,
-1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
288, 289, 290, -1, -1, -1, -1, -1, -1, 297,
298, 299, -1, 301, -1, 303, -1, 123, 124, 261,
262, 263, -1, 311, -1, -1, -1, -1, -1, -1,
-1, -1, 320, -1, -1, -1, -1, 279, 280, -1,
328, 329, 330, 331, 332, 333, 334, -1, 336, -1,
338, 339, -1, -1, 342, 297, -1, 345, 346, 347,
-1, 261, 262, 263, -1, 0, -1, 267, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, -1, -1, -1, 336, -1, -1, 297, 298, 299,
-1, 301, -1, 303, -1, 40, -1, -1, 43, -1,
45, 311, 47, -1, -1, -1, -1, -1, -1, -1,
320, -1, -1, -1, -1, -1, -1, -1, 328, 329,
330, 331, 332, 333, 334, -1, 336, -1, 338, 339,
-1, -1, 342, -1, 344, -1, -1, 347, -1, -1,
-1, -1, -1, -1, -1, 261, 262, 263, -1, -1,
-1, 267, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 279, 280, -1, 282, 283, 284, 285,
286, 287, 288, 289, 290, -1, 52, 53, 123, -1,
-1, 297, 298, 299, -1, 301, -1, 303, -1, -1,
-1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
-1, -1, -1, -1, 320, -1, -1, -1, -1, -1,
-1, -1, 328, 329, 330, 331, 332, 333, 334, -1,
336, -1, 338, 339, -1, -1, 342, -1, 344, 345,
346, 347, 37, -1, -1, 40, 41, 42, 43, 44,
45, 0, 47, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 58, 59, -1, -1, -1, 63, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 144, 145,
-1, -1, -1, -1, -1, 151, 152, -1, -1, -1,
-1, -1, 41, 0, -1, 44, -1, -1, 93, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 58,
59, -1, -1, -1, 63, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 261, 262, 123, 124,
37, -1, -1, 40, 41, 42, 43, 44, 45, 205,
47, -1, -1, -1, 93, 211, 212, -1, -1, -1,
-1, 58, 59, -1, 289, 290, 63, 223, -1, -1,
-1, -1, 297, 298, 299, -1, 301, -1, 303, -1,
-1, -1, -1, -1, 123, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 250, 320, 93, 0, -1, -1,
-1, -1, -1, 328, 329, 330, 331, 332, 333, 334,
-1, 336, -1, 338, 339, -1, -1, 342, 274, 275,
345, 346, 347, -1, -1, -1, 123, 124, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 40, 41, -1,
43, 44, 45, -1, 300, 301, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 58, 59, -1, -1, -1,
63, -1, -1, 319, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 261, 262, 263, -1,
-1, -1, 267, -1, -1, -1, -1, -1, -1, -1,
93, -1, -1, -1, 279, 280, -1, 282, 283, 284,
285, 286, 287, 288, 289, 290, -1, -1, -1, -1,
-1, -1, 297, 298, 299, -1, 301, -1, 303, -1,
123, 124, 261, 262, 263, 40, -1, -1, 43, -1,
45, -1, 47, -1, -1, 320, -1, -1, -1, -1,
279, 280, -1, 328, 329, 330, 331, 332, 333, 334,
-1, 336, -1, 338, 339, -1, -1, 342, 297, -1,
345, 346, 347, -1, 261, 262, 263, -1, -1, -1,
267, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 279, 280, -1, 282, 283, 284, 285, 286,
287, 288, 289, 290, -1, -1, -1, 336, -1, -1,
297, 298, 299, -1, 301, -1, 303, -1, -1, 124,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 320, -1, -1, -1, -1, -1, -1,
0, 328, 329, 330, 331, 332, 333, 334, -1, 336,
-1, 338, 339, -1, -1, 342, -1, 344, -1, -1,
347, -1, -1, -1, -1, -1, -1, -1, 261, 262,
263, -1, -1, -1, 267, -1, -1, -1, -1, -1,
40, 41, -1, 43, 44, 45, 279, 280, 281, 282,
283, 284, 285, 286, 287, 288, 289, 290, 58, 59,
-1, -1, -1, 63, 297, 298, 299, -1, 301, -1,
303, -1, -1, -1, -1, -1, -1, -1, 311, -1,
-1, -1, -1, -1, -1, -1, -1, 320, 0, -1,
-1, -1, -1, 93, -1, 328, 329, 330, 331, 332,
333, 334, -1, 336, -1, 338, 339, -1, -1, 342,
-1, -1, 345, 346, 347, -1, -1, -1, -1, -1,
-1, -1, 267, 123, 124, -1, -1, -1, 40, 41,
-1, -1, 44, -1, 279, -1, -1, 282, 283, 284,
285, 286, 287, 288, 289, 290, 58, 59, -1, -1,
-1, 63, -1, 298, 299, -1, 301, -1, 303, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 320, -1, -1, -1, -1,
-1, 93, 0, 328, 329, 330, 331, 332, 333, 334,
-1, 336, -1, 338, 339, -1, -1, 342, -1, -1,
345, 346, 347, -1, -1, -1, -1, -1, -1, -1,
-1, 123, 124, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 40, 41, -1, -1, 44, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
58, 59, -1, -1, -1, 63, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 261, 262, 263, -1, -1, -1, 267, -1, -1,
-1, -1, -1, -1, -1, 93, -1, -1, -1, 279,
280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
290, -1, -1, -1, -1, -1, -1, 297, 298, 299,
-1, 301, -1, 303, -1, 123, 124, -1, -1, -1,
-1, 311, -1, -1, -1, -1, -1, -1, -1, -1,
320, -1, -1, -1, -1, -1, -1, -1, 328, 329,
330, 331, 332, 333, 334, -1, 336, -1, 338, 339,
-1, -1, 342, -1, -1, 345, 346, 347, -1, 261,
262, 263, -1, -1, -1, 267, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 279, 280, 281,
282, 283, 284, 285, 286, 287, 288, 289, 290, -1,
-1, -1, -1, -1, -1, 297, 298, 299, -1, 301,
-1, 303, -1, -1, -1, -1, -1, -1, -1, 311,
-1, -1, -1, -1, -1, -1, -1, -1, 320, -1,
-1, -1, -1, -1, -1, 0, 328, 329, 330, 331,
332, 333, 334, -1, 336, -1, 338, 339, -1, -1,
342, -1, -1, 345, 346, 347, -1, -1, -1, -1,
-1, -1, -1, 261, 262, 263, -1, -1, -1, 267,
-1, -1, -1, -1, -1, 40, 41, -1, -1, 44,
-1, 279, 280, 281, 282, 283, 284, 285, 286, 287,
288, 289, 290, 58, 59, -1, -1, -1, 63, 297,
298, 299, -1, 301, -1, 303, -1, -1, -1, -1,
-1, -1, -1, 311, -1, -1, -1, -1, -1, -1,
-1, -1, 320, 0, -1, -1, -1, -1, 93, -1,
328, 329, 330, 331, 332, 333, 334, -1, 336, -1,
338, 339, -1, -1, 342, -1, -1, 345, 346, 347,
-1, -1, -1, -1, -1, -1, -1, -1, 123, 124,
-1, -1, -1, 40, 41, -1, -1, 44, -1, -1,
0, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 58, 59, -1, -1, -1, 63, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 41, -1, -1, 44, -1, 93, 0, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 58, 59,
-1, -1, -1, 63, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 123, 124, -1, -1,
-1, -1, -1, -1, 37, -1, -1, 40, 41, 42,
43, 44, 45, 93, 47, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 58, 59, -1, -1, -1,
63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 123, -1, -1, 261, 262, 263, -1,
-1, -1, 267, -1, -1, -1, -1, -1, -1, -1,
93, -1, -1, -1, 279, 280, -1, 282, 283, 284,
285, 286, 287, 288, 289, 290, -1, -1, -1, -1,
-1, -1, 297, 298, 299, -1, 301, -1, 303, -1,
123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 320, -1, -1, -1, -1,
-1, -1, -1, 328, 329, 330, 331, 332, 333, 334,
-1, 336, -1, 338, 339, -1, -1, 342, -1, -1,
345, 346, 347, -1, 261, 262, 263, -1, -1, -1,
267, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 279, 280, -1, 282, 283, 284, 285, 286,
287, 288, 289, 290, -1, -1, -1, -1, -1, -1,
297, 298, 299, -1, 301, -1, 303, -1, -1, -1,
-1, 261, 262, 263, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 320, -1, -1, -1, -1, -1, 279,
280, 328, 329, 330, 331, 332, 333, 334, -1, 336,
-1, 338, 339, -1, -1, 342, -1, 297, 345, 346,
347, -1, -1, -1, -1, -1, -1, -1, 261, 262,
263, -1, 0, -1, 267, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 279, 280, 281, 282,
283, 284, 285, -1, 287, 288, 336, 290, -1, -1,
-1, -1, -1, -1, 297, 298, 299, -1, 301, -1,
303, -1, 40, 41, -1, 43, 44, 45, 311, 47,
-1, -1, -1, -1, -1, -1, -1, 320, -1, -1,
58, 59, -1, -1, -1, 63, -1, -1, 331, 332,
333, -1, -1, 336, -1, 338, 339, -1, -1, 342,
-1, 344, 345, 346, -1, -1, -1, -1, 0, -1,
-1, -1, -1, -1, -1, 93, -1, -1, -1, -1,
0, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 123, 124, -1, 40, 41,
-1, 43, 44, 45, -1, 47, -1, -1, -1, -1,
-1, 41, -1, -1, 44, -1, 58, 59, -1, -1,
-1, 63, -1, -1, -1, -1, -1, -1, 58, 59,
-1, -1, -1, 63, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 93, -1, -1, -1, 0, -1, -1, -1, -1,
-1, -1, -1, 93, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
37, 123, 124, 40, -1, 42, 43, -1, 45, -1,
47, -1, -1, 123, -1, -1, 41, -1, -1, 44,
-1, -1, 59, -1, -1, -1, 63, -1, -1, -1,
-1, -1, -1, 58, 59, -1, -1, -1, 63, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 261, 262, 263, -1, -1, -1, 267,
-1, -1, -1, -1, -1, -1, -1, -1, 93, -1,
-1, 279, 280, -1, 282, 283, 284, 285, 286, 287,
288, -1, 290, -1, -1, -1, -1, 124, -1, 297,
298, 299, -1, 301, -1, 303, 37, -1, 123, 40,
41, 42, 43, 44, 45, -1, 47, -1, -1, -1,
-1, -1, 320, -1, -1, -1, -1, 58, 59, -1,
-1, -1, 63, 331, 332, 333, -1, -1, 336, -1,
338, 339, -1, -1, 342, -1, -1, 345, 346, 261,
262, 263, -1, -1, -1, 267, -1, -1, -1, -1,
-1, 261, 262, 263, -1, -1, -1, 279, 280, -1,
282, 283, 284, 285, 286, 287, 288, 289, 290, 279,
280, -1, -1, -1, -1, 297, 298, 299, -1, 301,
-1, 303, -1, 124, -1, -1, -1, 297, -1, 37,
-1, -1, 40, -1, 42, 43, -1, 45, 320, 47,
-1, -1, -1, -1, -1, -1, 328, 329, 330, 331,
332, 333, 334, -1, 336, 63, 338, 339, -1, -1,
342, -1, -1, -1, -1, -1, 336, -1, -1, -1,
267, -1, -1, -1, -1, -1, 261, 262, 263, -1,
-1, -1, 279, 280, -1, 282, 283, 284, 285, 286,
287, -1, 289, 290, 279, 280, -1, -1, -1, -1,
-1, 298, 299, -1, 301, -1, 303, -1, -1, -1,
-1, -1, 297, -1, 311, -1, 124, -1, -1, -1,
-1, -1, -1, 320, -1, -1, -1, -1, -1, -1,
-1, 328, 329, 330, 331, 332, 333, 334, -1, 336,
-1, 338, 339, -1, -1, 342, -1, 344, 345, 346,
347, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 263, -1, 37, -1, 267, 40, 41, 42,
43, 44, 45, -1, 47, -1, -1, -1, 279, 280,
281, -1, -1, 284, -1, 58, 59, 288, 289, 290,
63, -1, -1, -1, -1, -1, -1, 298, 299, -1,
301, -1, 303, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 320,
-1, -1, -1, -1, -1, -1, -1, 328, 329, 330,
331, 332, 333, 334, -1, 336, -1, 338, 339, -1,
-1, 342, -1, 344, 345, 346, 347, -1, -1, -1,
-1, 124, -1, -1, -1, -1, -1, -1, -1, 267,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 279, 280, -1, 282, 283, 284, 285, 286, 287,
288, 289, 290, -1, -1, -1, -1, -1, -1, 40,
298, 299, 43, 301, 45, 303, 47, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 59, -1,
-1, -1, 320, -1, -1, -1, -1, -1, -1, -1,
328, 329, 330, 331, 332, 333, 334, -1, 336, -1,
338, 339, -1, -1, 342, -1, 344, 345, 346, 347,
-1, -1, -1, -1, -1, -1, -1, -1, 40, -1,
-1, 43, -1, 45, -1, 47, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 59, -1, -1,
-1, -1, 123, -1, 125, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
263, -1, -1, -1, 267, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 279, 280, 281, -1,
-1, 284, -1, -1, -1, 288, 289, 290, -1, -1,
-1, -1, -1, -1, -1, 298, 299, -1, 301, -1,
303, 123, -1, 125, -1, 40, -1, -1, 43, -1,
45, -1, 47, -1, -1, -1, -1, 320, -1, -1,
-1, -1, -1, -1, 59, 328, 329, 330, 331, 332,
333, 334, -1, 336, -1, 338, 339, -1, -1, 342,
-1, 344, -1, -1, 347, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 256, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 123, -1,
125, -1, -1, -1, -1, -1, -1, -1, -1, -1,
40, -1, -1, 43, -1, 45, -1, 47, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, 300,
301, -1, 303, 304, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 256, -1, -1, 318, 319, 320,
321, -1, -1, -1, -1, -1, -1, 328, 329, 330,
331, 332, 333, 334, -1, 336, 337, 338, 339, 340,
-1, 342, -1, -1, 345, 346, 347, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, 300, 301,
-1, 303, 304, -1, 124, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 318, 319, 320, 321,
-1, -1, -1, -1, -1, -1, 328, 329, 330, 331,
332, 333, 334, -1, 336, 337, 338, 339, 340, -1,
342, 256, -1, 345, 346, 347, -1, -1, -1, -1,
40, -1, -1, 43, -1, 45, -1, 47, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 59,
-1, -1, -1, -1, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, 300, 301, -1, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 318, 319, 320, 321, -1, -1, -1,
-1, -1, -1, 328, 329, 330, 331, 332, 333, 334,
-1, 336, 337, 338, 339, 340, -1, 342, -1, -1,
345, 346, 347, 123, -1, 125, -1, 40, -1, -1,
43, -1, 45, -1, 47, -1, -1, 267, -1, -1,
-1, -1, -1, -1, -1, -1, 59, -1, -1, -1,
-1, -1, 282, 283, 284, 285, 286, 287, 288, 289,
290, -1, -1, -1, -1, -1, -1, -1, 298, 299,
-1, 301, -1, 303, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 40, -1, -1, 43,
320, 45, -1, 47, -1, -1, -1, -1, 328, 329,
330, 331, 332, 333, 334, 59, 336, -1, 338, 339,
123, -1, 342, -1, -1, 345, 346, 347, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 256, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 123,
-1, 125, -1, -1, -1, -1, -1, -1, 40, -1,
-1, 43, -1, 45, -1, 47, -1, -1, -1, 289,
290, 291, 292, 293, 294, 295, 296, 59, 298, 299,
300, 301, -1, 303, 304, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 318, 319,
320, 321, -1, -1, -1, -1, -1, -1, 328, 329,
330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
340, -1, 342, 256, -1, 345, 346, 347, -1, -1,
263, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 123, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, -1,
303, 304, 40, -1, -1, 43, -1, 45, -1, 47,
-1, -1, 256, -1, -1, 318, 319, 320, -1, -1,
-1, -1, -1, -1, -1, 328, 329, 330, 331, 332,
333, 334, -1, 336, 337, 338, 339, 340, -1, 342,
-1, -1, 345, 346, 347, 289, 290, 291, 292, 293,
294, 295, 296, -1, 298, 299, 300, 301, -1, 303,
304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 318, 319, 320, -1, -1, -1,
-1, -1, -1, -1, 328, 329, 330, 331, 332, 333,
334, -1, 336, 337, 338, 339, 340, -1, 342, -1,
-1, 345, 346, 347, 256, -1, -1, -1, -1, -1,
-1, 263, -1, 40, -1, -1, 43, -1, 45, -1,
47, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 59, -1, -1, -1, -1, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, 300, 301,
-1, 303, 304, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 318, 319, 320, -1,
-1, -1, -1, -1, -1, -1, 328, 329, 330, 331,
332, 333, 334, -1, 336, 337, 338, 339, 340, -1,
342, -1, -1, 345, 346, 347, 123, -1, 125, -1,
40, -1, -1, 43, -1, 45, -1, 47, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 256, 59,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 289, 290, -1, -1, 293, -1, -1, -1, 40,
298, 299, 43, 301, 45, 303, 47, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 59, -1,
318, 319, 320, 123, -1, 125, -1, -1, -1, -1,
328, 329, 330, 331, 332, 333, 334, -1, 336, -1,
338, 339, -1, -1, 342, -1, -1, 345, 346, 347,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 256,
-1, -1, -1, -1, -1, -1, -1, -1, 40, -1,
-1, 43, 123, 45, 125, 47, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 59, -1, -1,
-1, -1, 289, 290, 291, 292, 293, 294, 295, 296,
-1, 298, 299, 300, 301, -1, 303, 304, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 318, 319, 320, -1, -1, -1, -1, -1, -1,
-1, 328, 329, 330, 331, 332, 333, 334, -1, 336,
337, 338, 339, 340, -1, 342, 256, -1, 345, 346,
347, 123, -1, 125, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 40, -1,
-1, 43, -1, 45, -1, 47, -1, -1, -1, 289,
290, 291, 292, 293, 294, 295, 296, 59, 298, 299,
300, 301, -1, 303, 304, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 256, -1, -1, 318, 319,
320, -1, -1, -1, -1, -1, -1, -1, 328, 329,
330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
340, -1, 342, -1, -1, 345, 346, 347, 289, 290,
291, 292, 293, 294, 295, 296, -1, 298, 299, 300,
301, 123, 303, 304, -1, 40, -1, -1, 43, -1,
45, -1, 47, -1, -1, -1, -1, 318, 319, 320,
-1, -1, -1, -1, 59, -1, -1, 328, 329, 330,
331, 332, 333, 334, 256, 336, 337, 338, 339, 340,
-1, 342, -1, -1, 345, 346, 347, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, 300, 301,
-1, 303, 304, -1, -1, -1, -1, -1, 123, -1,
125, -1, -1, -1, -1, -1, 318, 319, 320, -1,
-1, -1, -1, -1, -1, -1, 328, 329, 330, 331,
332, 333, 334, -1, 336, 337, 338, 339, 340, -1,
342, -1, -1, 345, 346, 347, -1, -1, -1, -1,
40, -1, -1, 43, 256, 45, -1, 47, -1, -1,
-1, 263, -1, -1, -1, -1, -1, -1, -1, 59,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, 300, 301,
-1, 303, 304, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 318, 319, 320, -1,
-1, -1, -1, -1, -1, -1, 328, 329, 330, 331,
332, 333, 334, 123, 336, 337, 338, 339, 340, -1,
342, 256, -1, 345, 346, 347, -1, -1, -1, -1,
40, -1, -1, 43, -1, 45, -1, 47, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 59,
-1, -1, -1, -1, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, 300, 301, -1, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 318, 319, 320, -1, -1, -1, -1,
-1, -1, -1, 328, 329, 330, 331, 332, 333, 334,
-1, 336, 337, 338, 339, 340, -1, 342, -1, -1,
345, 346, 347, 123, -1, 125, -1, 40, -1, -1,
43, -1, 45, -1, 47, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 59, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 256, -1, -1, -1,
-1, -1, -1, 263, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
300, 301, -1, 303, 304, -1, -1, -1, -1, -1,
123, -1, 125, -1, -1, -1, -1, -1, 318, 319,
320, -1, -1, -1, -1, -1, -1, -1, 328, 329,
330, 331, 332, 333, 334, -1, 336, 337, 338, 339,
340, -1, 342, -1, -1, 345, 346, 347, -1, -1,
-1, -1, 40, -1, -1, 43, 256, 45, -1, 47,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 59, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 289,
290, 291, 292, 293, 294, 295, 296, -1, 298, 299,
300, 301, -1, 303, 304, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 318, 319,
320, -1, -1, -1, -1, -1, -1, -1, 328, 329,
330, 331, 332, 333, 334, 123, 336, 337, 338, 339,
340, -1, 342, 256, -1, 345, 346, 347, 40, -1,
-1, 43, -1, 45, -1, 47, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 59, -1, -1,
-1, -1, -1, -1, -1, -1, 289, 290, 291, 292,
293, 294, 295, 296, -1, 298, 299, 300, 301, -1,
303, 304, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 318, 319, 320, -1, -1,
-1, -1, -1, -1, -1, 328, 329, 330, 331, 332,
333, 334, -1, 336, 337, 338, 339, 340, -1, 342,
-1, 123, 345, 346, 347, 40, -1, -1, 43, -1,
45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 59, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 256, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 289, 290, 291, 292, 293, 294, 295, 296, -1,
298, 299, 300, 301, -1, 303, 304, -1, 123, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
318, 319, 320, -1, -1, -1, -1, -1, -1, -1,
328, 329, 330, 331, 332, 333, 334, -1, 336, 337,
338, 339, 340, -1, 342, -1, -1, 345, 346, 347,
-1, -1, -1, -1, 256, 40, 41, -1, 43, 44,
45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 63, -1,
-1, -1, -1, -1, -1, -1, -1, 289, 290, 291,
292, 293, 294, 295, 296, -1, 298, 299, 300, 301,
-1, 303, 304, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 318, 319, 320, -1,
-1, -1, -1, -1, -1, -1, 328, 329, 330, 331,
332, 333, 334, -1, 336, 337, 338, 339, 340, 124,
342, 256, -1, 345, 346, 347, -1, -1, -1, 40,
-1, -1, 43, -1, 45, -1, 47, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 59, -1,
-1, -1, 63, -1, 289, 290, 291, 292, 293, 294,
295, 296, -1, 298, 299, 300, 301, -1, 303, 304,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 318, 319, 320, -1, -1, -1, -1,
-1, -1, -1, 328, 329, 330, 331, 332, 333, 334,
-1, 336, 337, 338, 339, 340, -1, 342, -1, -1,
345, 346, 347, 124, -1, 40, 41, -1, 43, 44,
45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 63, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 267, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 279, 280, -1, 282, 283, 284,
285, 286, 287, 288, 289, 290, -1, -1, -1, -1,
-1, -1, -1, 298, 299, -1, 301, -1, 303, 124,
-1, -1, -1, -1, -1, -1, -1, 40, 41, -1,
43, 44, 45, -1, 47, 320, -1, -1, -1, -1,
-1, -1, -1, 328, 329, 330, 331, 332, 333, 334,
63, 336, -1, 338, 339, -1, -1, 342, -1, -1,
345, 346, 347, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 263, -1, -1, -1, 267, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 279, 280,
-1, 282, 283, 284, 285, 286, 287, 288, 289, 290,
-1, -1, -1, -1, -1, -1, -1, 298, 299, -1,
301, 124, 303, 40, 41, -1, 43, 44, 45, -1,
47, -1, -1, -1, -1, -1, -1, -1, -1, 320,
-1, -1, -1, -1, -1, -1, 63, 328, 329, 330,
331, 332, 333, 334, -1, 336, -1, 338, 339, -1,
-1, 342, -1, -1, 345, 346, 347, -1, -1, -1,
-1, -1, 267, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 279, 280, -1, 282, 283, 284,
285, 286, 287, 288, 289, 290, -1, -1, -1, -1,
-1, -1, -1, 298, 299, -1, 301, 124, 303, 40,
-1, -1, 43, 44, 45, -1, 47, -1, -1, -1,
-1, -1, -1, -1, -1, 320, -1, -1, -1, -1,
-1, -1, 63, 328, 329, 330, 331, 332, 333, 334,
-1, 336, -1, 338, 339, -1, -1, 342, -1, -1,
345, 346, 347, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 267, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 279, 280, -1, 282,
283, 284, 285, 286, 287, 288, 289, 290, -1, -1,
-1, -1, -1, 124, -1, 298, 299, -1, 301, -1,
303, 40, 41, -1, 43, -1, 45, -1, 47, -1,
-1, -1, -1, -1, -1, -1, -1, 320, -1, -1,
-1, -1, -1, -1, 63, 328, 329, 330, 331, 332,
333, 334, -1, 336, -1, 338, 339, -1, -1, 342,
-1, -1, 345, 346, 347, -1, -1, -1, -1, -1,
267, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 279, 280, -1, 282, 283, 284, 285, 286,
287, 288, 289, 290, -1, -1, -1, -1, -1, -1,
-1, 298, 299, -1, 301, 124, 303, 40, -1, -1,
43, -1, 45, -1, 47, -1, -1, -1, -1, -1,
-1, -1, -1, 320, -1, 58, -1, -1, -1, -1,
63, 328, 329, 330, 331, 332, 333, 334, -1, 336,
-1, 338, 339, -1, -1, 342, -1, -1, 345, 346,
347, -1, -1, -1, -1, -1, 267, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 279, 280,
-1, 282, 283, 284, 285, 286, 287, 288, 289, 290,
-1, -1, -1, -1, -1, -1, -1, 298, 299, -1,
301, 124, 303, 40, 41, -1, 43, -1, 45, -1,
47, -1, -1, -1, -1, -1, -1, -1, -1, 320,
-1, -1, -1, -1, -1, -1, 63, 328, 329, 330,
331, 332, 333, 334, -1, 336, -1, 338, 339, -1,
-1, 342, -1, -1, 345, 346, 347, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 267, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
279, 280, -1, 282, 283, 284, 285, 286, 287, 288,
289, 290, -1, -1, -1, -1, -1, 124, -1, 298,
299, -1, 301, -1, 303, 40, 41, -1, 43, -1,
45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
-1, 320, -1, -1, -1, -1, -1, -1, 63, 328,
329, 330, 331, 332, 333, 334, -1, 336, -1, 338,
339, -1, -1, 342, -1, -1, 345, 346, 347, -1,
-1, -1, -1, -1, 267, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 279, 280, -1, 282,
283, 284, 285, 286, 287, 288, 289, 290, -1, -1,
-1, -1, -1, -1, -1, 298, 299, -1, 301, 124,
303, 40, 41, -1, 43, -1, 45, -1, 47, -1,
-1, -1, -1, -1, -1, -1, -1, 320, -1, -1,
-1, -1, -1, -1, 63, 328, 329, 330, 331, 332,
333, 334, -1, 336, -1, 338, 339, -1, -1, 342,
-1, -1, 345, 346, 347, -1, -1, -1, -1, -1,
267, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 279, 280, -1, 282, 283, 284, 285, 286,
287, 288, 289, 290, -1, -1, -1, -1, -1, -1,
-1, 298, 299, -1, 301, 124, 303, 40, -1, -1,
43, -1, 45, -1, 47, -1, -1, -1, -1, -1,
-1, -1, -1, 320, -1, -1, 59, -1, -1, -1,
63, 328, 329, 330, 331, 332, 333, 334, -1, 336,
-1, 338, 339, -1, -1, 342, -1, -1, 345, 346,
347, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 267, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 279, 280, -1, 282, 283, 284,
285, 286, 287, 288, 289, 290, -1, -1, -1, -1,
-1, 124, -1, 298, 299, -1, 301, -1, 303, 40,
41, -1, 43, -1, 45, -1, 47, -1, -1, -1,
-1, -1, -1, -1, -1, 320, -1, -1, -1, -1,
-1, -1, 63, 328, 329, 330, 331, 332, 333, 334,
-1, 336, -1, 338, 339, -1, -1, 342, -1, -1,
345, 346, 347, -1, -1, -1, -1, -1, 267, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
279, 280, -1, 282, 283, 284, 285, 286, 287, 288,
289, 290, -1, -1, -1, -1, -1, -1, -1, 298,
299, -1, 301, 124, 303, 40, 41, -1, 43, -1,
45, -1, 47, -1, -1, -1, -1, -1, -1, -1,
-1, 320, -1, -1, -1, -1, -1, -1, 63, 328,
329, 330, 331, 332, 333, 334, -1, 336, -1, 338,
339, -1, -1, 342, -1, -1, 345, 346, 347, -1,
-1, -1, -1, -1, 267, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 279, 280, -1, 282,
283, 284, 285, 286, 287, 288, 289, 290, -1, -1,
-1, -1, -1, -1, -1, 298, 299, -1, 301, 124,
303, 40, 41, -1, 43, -1, 45, -1, 47, -1,
-1, -1, -1, -1, -1, -1, -1, 320, -1, -1,
-1, -1, -1, -1, 63, 328, 329, 330, 331, 332,
333, 334, -1, 336, -1, 338, 339, -1, -1, 342,
-1, -1, 345, 346, 347, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 267, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 279, 280,
-1, 282, 283, 284, 285, 286, 287, 288, 289, 290,
-1, -1, -1, -1, -1, 124, -1, 298, 299, -1,
301, 40, 303, -1, 43, -1, 45, -1, 47, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 320,
-1, -1, -1, -1, 63, -1, -1, 328, 329, 330,
331, 332, 333, 334, -1, 336, -1, 338, 339, -1,
-1, 342, -1, -1, 345, 346, 347, -1, -1, -1,
-1, -1, 267, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 279, 280, -1, 282, 283, 284,
285, 286, 287, 288, 289, 290, -1, -1, 40, 41,
-1, -1, 44, 298, 299, 124, 301, -1, 303, -1,
-1, -1, -1, -1, -1, -1, 58, 59, -1, -1,
-1, 63, -1, -1, -1, 320, -1, -1, -1, -1,
-1, -1, -1, 328, 329, 330, 331, 332, 333, 334,
-1, 336, -1, 338, 339, -1, -1, 342, -1, -1,
345, 346, 347, -1, -1, -1, -1, -1, 267, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
279, 280, -1, 282, 283, 284, 285, 286, 287, 288,
289, 290, 124, -1, -1, -1, -1, -1, -1, 298,
299, -1, 301, 40, 303, -1, 43, -1, 45, 124,
47, 126, 127, -1, -1, 130, -1, 132, 133, -1,
-1, 320, -1, -1, -1, -1, 63, -1, -1, 328,
329, 330, 331, 332, 333, 334, -1, 336, -1, 338,
339, -1, -1, 342, -1, -1, 345, 346, 347, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 267, -1,
-1, -1, 177, -1, -1, -1, -1, -1, -1, -1,
279, 280, -1, 282, 283, 284, 285, 286, 287, 288,
289, 290, -1, -1, 40, 41, -1, 202, 44, 298,
299, -1, 301, -1, 303, -1, -1, -1, -1, -1,
-1, -1, 58, 59, -1, -1, -1, 63, -1, -1,
-1, 320, -1, -1, -1, -1, -1, -1, -1, 328,
329, 330, 331, 332, 333, 334, -1, 336, -1, 338,
339, 263, 247, 342, -1, 267, 345, 346, 347, -1,
-1, -1, -1, -1, -1, -1, -1, 279, 280, 281,
-1, -1, 284, -1, -1, -1, 288, 289, 290, -1,
-1, -1, 277, -1, -1, -1, 298, 299, 124, 301,
-1, 303, 40, -1, -1, 43, -1, 45, -1, 47,
-1, -1, -1, -1, -1, -1, -1, -1, 320, -1,
58, -1, -1, -1, -1, 63, 328, 329, 330, 331,
332, 333, 334, -1, 336, -1, 338, 339, -1, -1,
342, -1, -1, 345, 346, 347, -1, 332, -1, -1,
-1, -1, -1, -1, 339, -1, -1, -1, 343, -1,
267, -1, 40, -1, -1, 43, 351, 45, -1, 47,
-1, -1, 279, 280, -1, -1, -1, -1, -1, -1,
-1, 288, 289, 290, -1, -1, -1, -1, -1, -1,
-1, 298, 299, -1, 301, -1, 303, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 320, -1, -1, -1, -1, -1, -1,
-1, 328, 329, 330, 331, 332, 333, 334, -1, 336,
-1, 338, 339, -1, -1, 342, -1, 263, 345, 346,
347, 267, -1, 40, -1, 123, 43, -1, 45, -1,
47, -1, -1, 279, 280, 281, -1, -1, 284, -1,
-1, -1, 288, 289, 290, -1, -1, -1, -1, -1,
-1, -1, 298, 299, -1, 301, -1, 303, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 320, -1, -1, -1, -1, -1,
-1, -1, 328, 329, 330, 331, 332, 333, 334, -1,
336, -1, 338, 339, -1, -1, 342, -1, -1, 345,
346, 347, -1, -1, -1, -1, -1, -1, 40, 267,
-1, 43, -1, 45, -1, 47, -1, -1, -1, -1,
-1, 279, 280, -1, -1, -1, -1, 59, -1, -1,
288, 289, 290, -1, -1, -1, -1, -1, -1, -1,
298, 299, -1, 301, -1, 303, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 320, 261, 262, -1, -1, -1, -1, -1,
328, 329, 330, 331, 332, 333, 334, -1, 336, -1,
338, 339, -1, -1, 342, -1, -1, 345, 346, 347,
40, 289, 290, 43, -1, 45, -1, 47, -1, 297,
298, 299, -1, 301, -1, 303, -1, -1, -1, -1,
40, 41, -1, 43, -1, 45, -1, 47, -1, -1,
-1, -1, 320, -1, -1, -1, -1, -1, -1, -1,
328, 329, 330, 331, 332, 333, 334, -1, 336, -1,
338, 339, -1, -1, 342, -1, -1, 345, 346, 347,
267, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 279, -1, -1, -1, -1, -1, -1, -1,
-1, 288, 289, 290, -1, -1, -1, -1, -1, -1,
-1, 298, 299, -1, 301, -1, 303, 40, 41, -1,
43, -1, 45, -1, 47, -1, -1, -1, -1, -1,
-1, -1, -1, 320, -1, -1, -1, -1, -1, -1,
-1, 328, 329, 330, 331, 332, 333, 334, -1, 336,
-1, 338, 339, -1, -1, 342, -1, -1, 345, 346,
347, 263, -1, -1, -1, -1, -1, -1, 40, -1,
-1, 43, -1, 45, -1, 47, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 289, 290, -1,
-1, -1, -1, -1, -1, -1, 298, 299, -1, 301,
-1, 303, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 320, -1,
-1, -1, -1, -1, -1, -1, 328, 329, 330, 331,
332, 333, 334, -1, 336, -1, 338, 339, -1, -1,
342, -1, -1, 345, 346, 347, 40, 267, -1, 43,
-1, 45, -1, 47, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 288, 289,
290, -1, -1, -1, -1, -1, -1, -1, 298, 299,
-1, 301, -1, 303, -1, -1, -1, -1, -1, 289,
290, -1, -1, -1, -1, -1, -1, -1, 298, 299,
320, 301, -1, 303, -1, -1, -1, -1, 328, 329,
330, 331, 332, 333, 334, -1, 336, -1, 338, 339,
320, -1, 342, -1, -1, 345, 346, 347, 328, 329,
330, 331, 332, 333, 334, -1, 336, -1, 338, 339,
-1, -1, 342, -1, -1, 345, 346, 347, 40, -1,
-1, 43, -1, 45, -1, 47, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 289, 290, -1, -1,
-1, -1, -1, -1, -1, 298, 299, -1, 301, -1,
303, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 263, -1, -1, -1, -1, -1, 320, -1, -1,
-1, -1, -1, -1, -1, 328, 329, 330, 331, 332,
333, 334, -1, 336, -1, 338, 339, 289, 290, 342,
-1, -1, 345, 346, 347, 40, 298, 299, 43, 301,
45, 303, 47, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 320, -1,
-1, -1, -1, -1, -1, -1, 328, 329, 330, 331,
332, 333, 334, -1, 336, -1, 338, 339, -1, 263,
342, -1, -1, 345, 346, 347, 40, -1, -1, 43,
-1, 45, -1, 47, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 289, 290, -1, -1, -1,
-1, -1, -1, -1, 298, 299, -1, 301, -1, 303,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 320, -1, -1, -1,
-1, -1, -1, -1, 328, 329, 330, 331, 332, 333,
334, -1, 336, -1, 338, 339, -1, -1, 342, -1,
-1, 345, 346, 347, 40, -1, -1, 43, -1, 45,
-1, 47, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 263, -1, -1, 40, -1, -1, 43, -1, 45,
-1, 47, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 59, -1, -1, -1, 289, 290, -1,
-1, -1, -1, -1, -1, -1, 298, 299, -1, 301,
-1, 303, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 320, -1,
-1, -1, -1, -1, -1, -1, 328, 329, 330, 331,
332, 333, 334, -1, 336, -1, 338, 339, 263, -1,
342, -1, -1, 345, 346, 347, 40, -1, -1, 43,
-1, 45, -1, 47, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 289, 290, -1, -1, -1, -1,
-1, -1, -1, 298, 299, -1, 301, -1, 303, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 263,
-1, -1, -1, -1, -1, 320, -1, -1, -1, -1,
-1, -1, -1, 328, 329, 330, 331, 332, 333, 334,
-1, 336, -1, 338, 339, 289, 290, 342, -1, -1,
345, 346, 347, 40, 298, 299, 43, 301, 45, 303,
47, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 320, -1, -1, -1,
-1, -1, -1, -1, 328, 329, 330, 331, 332, 333,
334, -1, 336, -1, 338, 339, -1, 263, 342, -1,
-1, 345, 346, 347, 40, -1, -1, 43, -1, 45,
-1, 47, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 289, 290, -1, -1, -1, -1, -1,
-1, -1, 298, 299, -1, 301, -1, 303, -1, -1,
-1, -1, -1, 289, 290, -1, -1, -1, -1, -1,
-1, -1, 298, 299, 320, 301, -1, 303, -1, -1,
-1, -1, 328, 329, 330, 331, 332, 333, 334, -1,
336, -1, 338, 339, 320, -1, 342, -1, -1, 345,
346, 347, 328, 329, 330, 331, 332, 333, 334, -1,
336, -1, 338, 339, -1, -1, 342, -1, -1, 345,
346, 347, 40, -1, -1, 43, -1, 45, -1, 47,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 289, 290, -1, -1, -1,
-1, -1, -1, -1, 298, 299, -1, 301, -1, 303,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 320, -1, -1, -1,
-1, -1, -1, -1, 328, 329, 330, 331, 332, 333,
334, -1, 336, -1, 338, 339, -1, -1, 342, -1,
-1, 345, 346, 347, 40, -1, -1, 43, -1, 45,
-1, 47, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 289, 290, -1, -1, -1, -1, -1, -1,
-1, 298, 299, -1, 301, -1, 303, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 320, -1, -1, -1, -1, -1, -1,
-1, 328, 329, 330, 331, 332, 333, 334, -1, 336,
-1, 338, 339, 289, 290, 342, -1, -1, 345, 346,
347, -1, 298, 299, -1, 301, -1, 303, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 320, -1, -1, -1, -1, -1,
-1, -1, 328, 329, 330, 331, 332, 333, 334, -1,
336, -1, 338, 339, -1, -1, 342, -1, -1, 345,
346, 347, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 289, 290, -1, -1, -1, -1, -1, -1, -1,
298, 299, -1, 301, -1, 303, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 320, -1, -1, -1, -1, -1, -1, -1,
328, 329, 330, 331, 332, 333, 334, -1, 336, -1,
338, 339, -1, -1, 342, -1, -1, 345, 346, 347,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 289, 290, -1, -1, -1, -1, -1,
-1, -1, 298, 299, -1, 301, 30, 303, -1, 33,
34, -1, 36, 37, 38, 39, -1, -1, -1, -1,
-1, -1, -1, -1, 320, -1, -1, -1, 52, -1,
-1, -1, 328, 329, 330, 331, 332, 333, 334, 63,
-1, -1, 338, 339, 68, -1, 342, -1, 72, 345,
346, 347, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 93,
94, 95, 96, 97, 98, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 121, -1, -1,
-1, -1, -1, -1, -1, 129, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 141, -1, -1,
144, 145, -1, -1, -1, -1, 150, 151, 152, 153,
-1, 155, 156, -1, 158, 159, 160, 161, 162, 163,
-1, 165, -1, 167, -1, 169, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 179, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 189, -1, -1, -1, -1,
194, -1, -1, -1, -1, -1, -1, -1, -1, -1,
204, -1, -1, -1, -1, -1, -1, 211, -1, -1,
-1, -1, 216, -1, 218, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, 243,
-1, 245, -1, -1, -1, -1, -1, 251, -1, 253,
-1, 255, 256, 257, 258, 259, 260, 261, -1, -1,
-1, -1, 266, -1, -1, -1, 270, -1, 272, -1,
-1, 275, 276, -1, 7, -1, -1, -1, -1, -1,
13, -1, -1, -1, 288, -1, -1, 291, 292, 293,
294, -1, -1, -1, 298, -1, 300, 301, -1, -1,
-1, -1, 35, -1, -1, -1, -1, -1, -1, -1,
-1, -1, 316, -1, -1, -1, 320, 321, -1, 323,
-1, 325, 55, 327, -1, 329, 59, 60, 61, 62,
-1, 335, 65, 66, 67, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 79, -1, -1, 82,
83, 84, 85, 86, 87, -1, 89, -1, 91, 92,
-1, -1, -1, -1, -1, -1, 99, -1, 101, 102,
-1, -1, 105, -1, -1, -1, -1, -1, -1, -1,
113, -1, -1, -1, -1, -1, 119, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 131, -1,
-1, -1, -1, 136, -1, 138, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 33, 34, 35, -1, -1,
38, 39, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 52, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 63, -1, -1, -1, -1,
68, -1, -1, -1, 72, -1, -1, -1, -1, 192,
-1, -1, -1, 196, -1, -1, -1, -1, -1, -1,
203, -1, -1, -1, -1, 93, 94, 95, 96, 97,
98, -1, -1, -1, -1, -1, -1, -1, 221, -1,
-1, 224, 225, -1, -1, -1, -1, 230, -1, 232,
-1, -1, -1, 121, -1, 238, -1, -1, -1, -1,
-1, 129, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 141, -1, -1, 144, 145, -1, -1,
263, 264, 150, 151, 152, 153, -1, -1, 156, -1,
158, 159, 160, 161, 162, 163, 279, 165, -1, 167,
-1, 169, -1, -1, 287, -1, -1, -1, -1, -1,
-1, 179, -1, -1, -1, -1, 299, -1, -1, -1,
-1, 189, -1, -1, -1, -1, 194, 310, -1, 312,
-1, -1, -1, -1, -1, -1, 204, -1, -1, -1,
-1, -1, -1, 211, -1, -1, -1, -1, 216, -1,
218, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 243, -1, 245, -1, -1,
-1, -1, -1, 251, -1, 253, -1, 255, 256, 257,
258, 259, 260, 261, -1, -1, -1, -1, 266, -1,
-1, -1, 270, -1, 272, -1, -1, 275, 276, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
288, -1, -1, 291, 292, 293, 294, -1, -1, -1,
298, -1, 300, 301, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 316, -1,
-1, -1, 320, 321, -1, -1, -1, -1, -1, 327,
-1, 329, -1, -1, -1, -1, -1, 335,
};
#define YYFINAL 4
#ifndef YYDEBUG
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 348
#if YYDEBUG
char *yyname[] = {
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,
"':'","';'",0,0,0,"'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'{'",
"'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"FIRSTTOKEN","PROGRAM","PASTAT","PASTAT2",
"XBEGIN","XEND","NL","ARRAY","MATCH","NOTMATCH","MATCHOP","FINAL","DOT","ALL",
"CCL","NCCL","CHAR","MCHAR","OR","STAR","QUEST","PLUS","AND","BOR","APPEND",
"EQ","GE","GT","LE","LT","NE","IN","ARG","BLTIN","BREAK","CONTINUE","DELETE",
"DO","EXIT","FOR","FUNC","SUB","GSUB","IF","INDEX","LSUBSTR","MATCHFCN","NEXT",
"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","FIELD","REGEXPR","GETLINE","RETURN","SPLIT","SUBSTR","WHILE","CAT",
"NOT","UMINUS","POWER","DECR","INCR","INDIRECT","LASTTOKEN",
};
char *yyrule[] = {
"$accept : program",
"program : pas",
"program : error",
"and : AND",
"and : and NL",
"bor : BOR",
"bor : bor NL",
"comma : ','",
"comma : comma NL",
"do : DO",
"do : do NL",
"else : ELSE",
"else : else NL",
"for : FOR '(' opt_simple_stmt ';' pattern ';' opt_simple_stmt rparen stmt",
"for : FOR '(' opt_simple_stmt ';' ';' opt_simple_stmt rparen stmt",
"for : FOR '(' varname IN varname rparen stmt",
"funcname : VAR",
"funcname : CALL",
"if : IF '(' pattern rparen",
"lbrace : '{'",
"lbrace : lbrace NL",
"nl : NL",
"nl : nl NL",
"opt_nl :",
"opt_nl : nl",
"opt_pst :",
"opt_pst : pst",
"opt_simple_stmt :",
"opt_simple_stmt : simple_stmt",
"pas : opt_pst",
"pas : opt_pst pa_stats opt_pst",
"pa_pat : pattern",
"pa_stat : pa_pat",
"pa_stat : pa_pat lbrace stmtlist '}'",
"pa_stat : pa_pat ',' pa_pat",
"pa_stat : pa_pat ',' pa_pat lbrace stmtlist '}'",
"pa_stat : lbrace stmtlist '}'",
"pa_stat : XBEGIN lbrace stmtlist '}'",
"pa_stat : XEND lbrace stmtlist '}'",
"$$1 :",
"pa_stat : FUNC funcname '(' varlist rparen $$1 lbrace stmtlist '}'",
"pa_stats : pa_stat",
"pa_stats : pa_stats opt_pst pa_stat",
"patlist : pattern",
"patlist : patlist comma pattern",
"ppattern : var ASGNOP ppattern",
"ppattern : ppattern '?' ppattern ':' ppattern",
"ppattern : ppattern bor ppattern",
"ppattern : ppattern and ppattern",
"ppattern : ppattern MATCHOP reg_expr",
"ppattern : ppattern MATCHOP ppattern",
"ppattern : ppattern IN varname",
"ppattern : '(' plist ')' IN varname",
"ppattern : ppattern term",
"ppattern : term",
"pattern : var ASGNOP pattern",
"pattern : pattern '?' pattern ':' pattern",
"pattern : pattern bor pattern",
"pattern : pattern and pattern",
"pattern : NOT pattern",
"pattern : pattern EQ pattern",
"pattern : pattern GE pattern",
"pattern : pattern GT pattern",
"pattern : pattern LE pattern",
"pattern : pattern LT pattern",
"pattern : pattern NE pattern",
"pattern : pattern MATCHOP reg_expr",
"pattern : pattern MATCHOP pattern",
"pattern : pattern IN varname",
"pattern : '(' plist ')' IN varname",
"pattern : pattern '|' GETLINE var",
"pattern : pattern '|' GETLINE",
"pattern : pattern term",
"pattern : term",
"plist : pattern comma pattern",
"plist : plist comma pattern",
"pplist : ppattern",
"pplist : pplist comma ppattern",
"prarg :",
"prarg : pplist",
"prarg : '(' plist ')'",
"print : PRINT",
"print : PRINTF",
"pst : NL",
"pst : ';'",
"pst : pst NL",
"pst : pst ';'",
"rbrace : '}'",
"rbrace : rbrace NL",
"re : reg_expr",
"re : NOT re",
"$$2 :",
"reg_expr : '/' $$2 REGEXPR '/'",
"rparen : ')'",
"rparen : rparen NL",
"simple_stmt : print prarg '|' term",
"simple_stmt : print prarg APPEND term",
"simple_stmt : print prarg GT term",
"simple_stmt : print prarg",
"simple_stmt : DELETE varname '[' patlist ']'",
"simple_stmt : DELETE varname",
"simple_stmt : pattern",
"simple_stmt : error",
"st : nl",
"st : ';' opt_nl",
"stmt : BREAK st",
"stmt : CONTINUE st",
"stmt : do stmt WHILE '(' pattern ')' st",
"stmt : EXIT pattern st",
"stmt : EXIT st",
"stmt : for",
"stmt : if stmt else stmt",
"stmt : if stmt",
"stmt : lbrace stmtlist rbrace",
"stmt : NEXT st",
"stmt : RETURN pattern st",
"stmt : RETURN st",
"stmt : simple_stmt st",
"stmt : while stmt",
"stmt : ';' opt_nl",
"stmtlist : stmt",
"stmtlist : stmtlist stmt",
"subop : SUB",
"subop : GSUB",
"term : term '+' term",
"term : term '-' term",
"term : term '*' term",
"term : term '/' term",
"term : term '%' term",
"term : term POWER term",
"term : '-' term",
"term : '+' term",
"term : NOT term",
"term : BLTIN '(' ')'",
"term : BLTIN '(' patlist ')'",
"term : BLTIN",
"term : CALL '(' ')'",
"term : CALL '(' patlist ')'",
"term : DECR var",
"term : INCR var",
"term : var DECR",
"term : var INCR",
"term : GETLINE var LT term",
"term : GETLINE LT term",
"term : GETLINE var",
"term : GETLINE",
"term : INDEX '(' pattern comma pattern ')'",
"term : INDEX '(' pattern comma reg_expr ')'",
"term : '(' pattern ')'",
"term : MATCHFCN '(' pattern comma reg_expr ')'",
"term : MATCHFCN '(' pattern comma pattern ')'",
"term : NUMBER",
"term : SPLIT '(' pattern comma varname comma pattern ')'",
"term : SPLIT '(' pattern comma varname comma reg_expr ')'",
"term : SPLIT '(' pattern comma varname ')'",
"term : SPRINTF '(' patlist ')'",
"term : STRING",
"term : subop '(' reg_expr comma pattern ')'",
"term : subop '(' pattern comma pattern ')'",
"term : subop '(' reg_expr comma pattern comma var ')'",
"term : subop '(' pattern comma pattern comma var ')'",
"term : SUBSTR '(' pattern comma pattern comma pattern ')'",
"term : SUBSTR '(' pattern comma pattern ')'",
"term : var",
"term : re",
"var : varname",
"var : varname '[' patlist ']'",
"var : FIELD",
"var : IVAR",
"var : INDIRECT term",
"varlist :",
"varlist : VAR",
"varlist : varlist comma VAR",
"varname : VAR",
"varname : ARG",
"varname : VARNF",
"while : WHILE '(' pattern rparen",
};
#endif
#ifdef YYSTACKSIZE
#undef YYMAXDEPTH
#define YYMAXDEPTH YYSTACKSIZE
#else
#ifdef YYMAXDEPTH
#define YYSTACKSIZE YYMAXDEPTH
#else
#define YYSTACKSIZE 10000
#define YYMAXDEPTH 10000
#endif
#endif
#define YYINITSTACKSIZE 200
int yydebug;
int yynerrs;
int yyerrflag;
int yychar;
short *yyssp;
YYSTYPE *yyvsp;
YYSTYPE yyval;
YYSTYPE yylval;
short *yyss;
short *yysslim;
YYSTYPE *yyvs;
int yystacksize;
#line 437 "awk.g.2001.y"
static void
setfname(Cell *p)
{
if (isarr(p))
vyyerror(":99:%s is an array, not a function", p->nval);
else if (isfunc(p))
vyyerror(":100:You cannot define function %s more than once", p->nval);
curfname = p->nval;
}
static int
constnode(Node *p)
{
return p->ntype == NVALUE && ((Cell *) (p->narg[0]))->csub == CCON;
}
static unsigned char *strnode(Node *p)
{
return ((Cell *)(p->narg[0]))->sval;
}
static 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);
}
}
#line 2532 "y.tab.c"
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
int yyparse __P((void));
static int yygrowstack __P((void));
static int yygrowstack()
{
int newsize, i;
short *newss;
YYSTYPE *newvs;
if ((newsize = yystacksize) == 0)
newsize = YYINITSTACKSIZE;
else if (newsize >= YYMAXDEPTH)
return -1;
else if ((newsize *= 2) > YYMAXDEPTH)
newsize = YYMAXDEPTH;
i = yyssp - yyss;
if ((newss = (short *)realloc(yyss, newsize * sizeof *newss)) == NULL)
return -1;
yyss = newss;
yyssp = newss + i;
if ((newvs = (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs)) == NULL)
return -1;
yyvs = newvs;
yyvsp = newvs + i;
yystacksize = newsize;
yysslim = yyss + newsize - 1;
return 0;
}
#define YYABORT goto yyabort
#define YYREJECT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
int
yyparse()
{
int yym, yyn, yystate;
#if YYDEBUG
char *yys;
if ((yys = getenv("YYDEBUG")) != NULL)
{
yyn = *yys;
if (yyn >= '0' && yyn <= '9')
yydebug = yyn - '0';
}
#endif
yynerrs = 0;
yyerrflag = 0;
yychar = (-1);
if (yyss == NULL && yygrowstack()) goto yyoverflow;
yyssp = yyss;
yyvsp = yyvs;
*yyssp = yystate = 0;
yyloop:
if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
if (yychar < 0)
{
if ((yychar = yylex()) < 0) yychar = 0;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
#endif
}
if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, shifting to state %d\n",
YYPREFIX, yystate, yytable[yyn]);
#endif
if (yyssp >= yysslim && yygrowstack())
{
goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
*++yyvsp = yylval;
yychar = (-1);
if (yyerrflag > 0) --yyerrflag;
goto yyloop;
}
if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
{
yyn = yytable[yyn];
goto yyreduce;
}
if (yyerrflag) goto yyinrecovery;
goto yynewerror;
yynewerror:
yyerror("syntax error");
goto yyerrlab;
yyerrlab:
++yynerrs;
yyinrecovery:
if (yyerrflag < 3)
{
yyerrflag = 3;
for (;;)
{
if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, error recovery shifting\
to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
#endif
if (yyssp >= yysslim && yygrowstack())
{
goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
*++yyvsp = yylval;
goto yyloop;
}
else
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: error recovery discarding state %d\n",
YYPREFIX, *yyssp);
#endif
if (yyssp <= yyss) goto yyabort;
--yyssp;
--yyvsp;
}
}
}
else
{
if (yychar == 0) goto yyabort;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
#endif
yychar = (-1);
goto yyloop;
}
yyreduce:
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, reducing by rule %d (%s)\n",
YYPREFIX, yystate, yyn, yyrule[yyn]);
#endif
yym = yylen[yyn];
yyval = yyvsp[1-yym];
switch (yyn)
{
case 1:
#line 107 "awk.g.2001.y"
{ if (errorflag==0)
winner = (Node *)stat3(PROGRAM, beginloc, yyvsp[0].p, endloc); }
break;
case 2:
#line 109 "awk.g.2001.y"
{ yyclearin; bracecheck(); vyyerror(":95:Bailing out"); }
break;
case 9:
#line 125 "awk.g.2001.y"
{ }
break;
case 11:
#line 129 "awk.g.2001.y"
{ }
break;
case 13:
#line 134 "awk.g.2001.y"
{ yyval.p = stat4(FOR, yyvsp[-6].p, notnull(yyvsp[-4].p), yyvsp[-2].p, yyvsp[0].p); }
break;
case 14:
#line 136 "awk.g.2001.y"
{ yyval.p = stat4(FOR, yyvsp[-5].p, NIL, yyvsp[-2].p, yyvsp[0].p); }
break;
case 15:
#line 138 "awk.g.2001.y"
{ yyval.p = stat3(IN, yyvsp[-4].p, makearr(yyvsp[-2].p), yyvsp[0].p); }
break;
case 16:
#line 142 "awk.g.2001.y"
{ setfname(yyvsp[0].cp); }
break;
case 17:
#line 143 "awk.g.2001.y"
{ setfname(yyvsp[0].cp); }
break;
case 18:
#line 147 "awk.g.2001.y"
{ yyval.p = notnull(yyvsp[-1].p); }
break;
case 23:
#line 159 "awk.g.2001.y"
{ yyval.i = 0; }
break;
case 25:
#line 164 "awk.g.2001.y"
{ yyval.i = 0; }
break;
case 27:
#line 170 "awk.g.2001.y"
{ yyval.p = 0; }
break;
case 29:
#line 175 "awk.g.2001.y"
{ yyval.p = 0; }
break;
case 30:
#line 176 "awk.g.2001.y"
{ yyval.p = yyvsp[-1].p; }
break;
case 31:
#line 180 "awk.g.2001.y"
{ yyval.p = notnull(yyvsp[0].p); }
break;
case 32:
#line 184 "awk.g.2001.y"
{ yyval.p = stat2(PASTAT, yyvsp[0].p, stat2(PRINT, rectonode(), NIL)); }
break;
case 33:
#line 185 "awk.g.2001.y"
{ yyval.p = stat2(PASTAT, yyvsp[-3].p, yyvsp[-1].p); }
break;
case 34:
#line 186 "awk.g.2001.y"
{ yyval.p = pa2stat(yyvsp[-2].p, yyvsp[0].p, stat2(PRINT, rectonode(), NIL)); }
break;
case 35:
#line 187 "awk.g.2001.y"
{ yyval.p = pa2stat(yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); }
break;
case 36:
#line 188 "awk.g.2001.y"
{ yyval.p = stat2(PASTAT, NIL, yyvsp[-1].p); }
break;
case 37:
#line 190 "awk.g.2001.y"
{ beginloc = linkum(beginloc, yyvsp[-1].p); yyval.p = 0; }
break;
case 38:
#line 192 "awk.g.2001.y"
{ endloc = linkum(endloc, yyvsp[-1].p); yyval.p = 0; }
break;
case 39:
#line 193 "awk.g.2001.y"
{infunc++;}
break;
case 40:
#line 194 "awk.g.2001.y"
{ infunc--; curfname=0; defn((Cell *)yyvsp[-7].p, yyvsp[-5].p, yyvsp[-1].p); yyval.p = 0; }
break;
case 42:
#line 199 "awk.g.2001.y"
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
break;
case 44:
#line 204 "awk.g.2001.y"
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
break;
case 45:
#line 208 "awk.g.2001.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 46:
#line 210 "awk.g.2001.y"
{ yyval.p = op3(CONDEXPR, notnull(yyvsp[-4].p), yyvsp[-2].p, yyvsp[0].p); }
break;
case 47:
#line 212 "awk.g.2001.y"
{ yyval.p = op2(BOR, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
break;
case 48:
#line 214 "awk.g.2001.y"
{ yyval.p = op2(AND, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
break;
case 49:
#line 215 "awk.g.2001.y"
{ yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(yyvsp[0].s, 0)); }
break;
case 50:
#line 217 "awk.g.2001.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 51:
#line 221 "awk.g.2001.y"
{ yyval.p = op2(INTEST, yyvsp[-2].p, makearr(yyvsp[0].p)); }
break;
case 52:
#line 222 "awk.g.2001.y"
{ yyval.p = op2(INTEST, yyvsp[-3].p, makearr(yyvsp[0].p)); }
break;
case 53:
#line 223 "awk.g.2001.y"
{ yyval.p = op2(CAT, yyvsp[-1].p, yyvsp[0].p); }
break;
case 55:
#line 228 "awk.g.2001.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 56:
#line 230 "awk.g.2001.y"
{ yyval.p = op3(CONDEXPR, notnull(yyvsp[-4].p), yyvsp[-2].p, yyvsp[0].p); }
break;
case 57:
#line 232 "awk.g.2001.y"
{ yyval.p = op2(BOR, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
break;
case 58:
#line 234 "awk.g.2001.y"
{ yyval.p = op2(AND, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
break;
case 59:
#line 236 "awk.g.2001.y"
{ yyval.p = op1(NOT, op2(NE,yyvsp[0].p,valtonode(lookup("$zero&null",symtab),CCON))); }
break;
case 60:
#line 237 "awk.g.2001.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 61:
#line 238 "awk.g.2001.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 62:
#line 239 "awk.g.2001.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 63:
#line 240 "awk.g.2001.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 64:
#line 241 "awk.g.2001.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 65:
#line 242 "awk.g.2001.y"
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
break;
case 66:
#line 243 "awk.g.2001.y"
{ yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(yyvsp[0].s, 0)); }
break;
case 67:
#line 245 "awk.g.2001.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 68:
#line 249 "awk.g.2001.y"
{ yyval.p = op2(INTEST, yyvsp[-2].p, makearr(yyvsp[0].p)); }
break;
case 69:
#line 250 "awk.g.2001.y"
{ yyval.p = op2(INTEST, yyvsp[-3].p, makearr(yyvsp[0].p)); }
break;
case 70:
#line 251 "awk.g.2001.y"
{ yyval.p = op3(GETLINE, yyvsp[0].p, (Node*)yyvsp[-2].i, yyvsp[-3].p); }
break;
case 71:
#line 252 "awk.g.2001.y"
{ yyval.p = op3(GETLINE, (Node*)0, (Node*)yyvsp[-1].i, yyvsp[-2].p); }
break;
case 72:
#line 253 "awk.g.2001.y"
{ yyval.p = op2(CAT, yyvsp[-1].p, yyvsp[0].p); }
break;
case 74:
#line 258 "awk.g.2001.y"
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
break;
case 75:
#line 259 "awk.g.2001.y"
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
break;
case 77:
#line 264 "awk.g.2001.y"
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
break;
case 78:
#line 268 "awk.g.2001.y"
{ yyval.p = rectonode(); }
break;
case 80:
#line 270 "awk.g.2001.y"
{ yyval.p = yyvsp[-1].p; }
break;
case 87:
#line 282 "awk.g.2001.y"
{ }
break;
case 89:
#line 287 "awk.g.2001.y"
{ yyval.p = op3(MATCH, NIL, rectonode(), (Node*)makedfa(yyvsp[0].s,0)); }
break;
case 90:
#line 288 "awk.g.2001.y"
{yyval.p = op1(NOT, notnull(yyvsp[0].p)); }
break;
case 91:
#line 292 "awk.g.2001.y"
{startreg();}
break;
case 92:
#line 292 "awk.g.2001.y"
{ yyval.s = yyvsp[-1].s; }
break;
case 95:
#line 300 "awk.g.2001.y"
{ yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, (Node *) yyvsp[-1].i, yyvsp[0].p); }
break;
case 96:
#line 301 "awk.g.2001.y"
{ yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, (Node *) yyvsp[-1].i, yyvsp[0].p); }
break;
case 97:
#line 302 "awk.g.2001.y"
{ yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, (Node *) yyvsp[-1].i, yyvsp[0].p); }
break;
case 98:
#line 303 "awk.g.2001.y"
{ yyval.p = stat3(yyvsp[-1].i, yyvsp[0].p, NIL, NIL); }
break;
case 99:
#line 304 "awk.g.2001.y"
{ yyval.p = stat2(DELETE, makearr(yyvsp[-3].p), yyvsp[-1].p); }
break;
case 100:
#line 305 "awk.g.2001.y"
{ yyclearin; vyyerror(":96:You can only delete array[element]"); yyval.p = stat1(DELETE, yyvsp[0].p); }
break;
case 101:
#line 306 "awk.g.2001.y"
{ yyval.p = exptostat(yyvsp[0].p); }
break;
case 102:
#line 307 "awk.g.2001.y"
{ yyclearin; vyyerror(illstat); }
break;
case 103:
#line 311 "awk.g.2001.y"
{ }
break;
case 104:
#line 311 "awk.g.2001.y"
{ }
break;
case 105:
#line 315 "awk.g.2001.y"
{ yyval.p = stat1(BREAK, NIL); }
break;
case 106:
#line 316 "awk.g.2001.y"
{ yyval.p = stat1(CONTINUE, NIL); }
break;
case 107:
#line 318 "awk.g.2001.y"
{ yyval.p = stat2(DO, yyvsp[-5].p, notnull(yyvsp[-2].p)); }
break;
case 108:
#line 319 "awk.g.2001.y"
{ yyval.p = stat1(EXIT, yyvsp[-1].p); }
break;
case 109:
#line 320 "awk.g.2001.y"
{ yyval.p = stat1(EXIT, NIL); }
break;
case 111:
#line 322 "awk.g.2001.y"
{ yyval.p = stat3(IF, yyvsp[-3].p, yyvsp[-2].p, yyvsp[0].p); }
break;
case 112:
#line 323 "awk.g.2001.y"
{ yyval.p = stat3(IF, yyvsp[-1].p, yyvsp[0].p, NIL); }
break;
case 113:
#line 324 "awk.g.2001.y"
{ yyval.p = yyvsp[-1].p; }
break;
case 114:
#line 325 "awk.g.2001.y"
{ if (infunc)
vyyerror(":97:Next is illegal inside a function");
yyval.p = stat1(NEXT, NIL); }
break;
case 115:
#line 328 "awk.g.2001.y"
{ yyval.p = stat1(RETURN, yyvsp[-1].p); }
break;
case 116:
#line 329 "awk.g.2001.y"
{ yyval.p = stat1(RETURN, NIL); }
break;
case 118:
#line 331 "awk.g.2001.y"
{ yyval.p = stat2(WHILE, yyvsp[-1].p, yyvsp[0].p); }
break;
case 119:
#line 332 "awk.g.2001.y"
{ yyval.p = 0; }
break;
case 121:
#line 337 "awk.g.2001.y"
{ yyval.p = linkum(yyvsp[-1].p, yyvsp[0].p); }
break;
case 124:
#line 345 "awk.g.2001.y"
{ yyval.p = op2(ADD, yyvsp[-2].p, yyvsp[0].p); }
break;
case 125:
#line 346 "awk.g.2001.y"
{ yyval.p = op2(MINUS, yyvsp[-2].p, yyvsp[0].p); }
break;
case 126:
#line 347 "awk.g.2001.y"
{ yyval.p = op2(MULT, yyvsp[-2].p, yyvsp[0].p); }
break;
case 127:
#line 348 "awk.g.2001.y"
{ yyval.p = op2(DIVIDE, yyvsp[-2].p, yyvsp[0].p); }
break;
case 128:
#line 349 "awk.g.2001.y"
{ yyval.p = op2(MOD, yyvsp[-2].p, yyvsp[0].p); }
break;
case 129:
#line 350 "awk.g.2001.y"
{ yyval.p = op2(POWER, yyvsp[-2].p, yyvsp[0].p); }
break;
case 130:
#line 351 "awk.g.2001.y"
{ yyval.p = op1(UMINUS, yyvsp[0].p); }
break;
case 131:
#line 352 "awk.g.2001.y"
{ yyval.p = yyvsp[0].p; }
break;
case 132:
#line 353 "awk.g.2001.y"
{ yyval.p = op1(NOT, notnull(yyvsp[0].p)); }
break;
case 133:
#line 354 "awk.g.2001.y"
{ yyval.p = op2(BLTIN, (Node *) yyvsp[-2].i, rectonode()); }
break;
case 134:
#line 355 "awk.g.2001.y"
{ yyval.p = op2(BLTIN, (Node *) yyvsp[-3].i, yyvsp[-1].p); }
break;
case 135:
#line 356 "awk.g.2001.y"
{ yyval.p = op2(BLTIN, (Node *) yyvsp[0].i, rectonode()); }
break;
case 136:
#line 357 "awk.g.2001.y"
{ yyval.p = op2(CALL, valtonode(yyvsp[-2].cp,CVAR), NIL); }
break;
case 137:
#line 358 "awk.g.2001.y"
{ yyval.p = op2(CALL, valtonode(yyvsp[-3].cp,CVAR), yyvsp[-1].p); }
break;
case 138:
#line 359 "awk.g.2001.y"
{ yyval.p = op1(PREDECR, yyvsp[0].p); }
break;
case 139:
#line 360 "awk.g.2001.y"
{ yyval.p = op1(PREINCR, yyvsp[0].p); }
break;
case 140:
#line 361 "awk.g.2001.y"
{ yyval.p = op1(POSTDECR, yyvsp[-1].p); }
break;
case 141:
#line 362 "awk.g.2001.y"
{ yyval.p = op1(POSTINCR, yyvsp[-1].p); }
break;
case 142:
#line 363 "awk.g.2001.y"
{ yyval.p = op3(GETLINE, yyvsp[-2].p, (Node *)yyvsp[-1].i, yyvsp[0].p); }
break;
case 143:
#line 364 "awk.g.2001.y"
{ yyval.p = op3(GETLINE, NIL, (Node *)yyvsp[-1].i, yyvsp[0].p); }
break;
case 144:
#line 365 "awk.g.2001.y"
{ yyval.p = op3(GETLINE, yyvsp[0].p, NIL, NIL); }
break;
case 145:
#line 366 "awk.g.2001.y"
{ yyval.p = op3(GETLINE, NIL, NIL, NIL); }
break;
case 146:
#line 368 "awk.g.2001.y"
{ yyval.p = op2(INDEX, yyvsp[-3].p, yyvsp[-1].p); }
break;
case 147:
#line 370 "awk.g.2001.y"
{ vyyerror(":98:Index() doesn't permit regular expressions");
yyval.p = op2(INDEX, yyvsp[-3].p, (Node*)yyvsp[-1].s); }
break;
case 148:
#line 372 "awk.g.2001.y"
{ yyval.p = yyvsp[-1].p; }
break;
case 149:
#line 374 "awk.g.2001.y"
{ yyval.p = op3(MATCHFCN, NIL, yyvsp[-3].p, (Node*)makedfa(yyvsp[-1].s, 1)); }
break;
case 150:
#line 376 "awk.g.2001.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 151:
#line 380 "awk.g.2001.y"
{ yyval.p = valtonode(yyvsp[0].cp, CCON); }
break;
case 152:
#line 382 "awk.g.2001.y"
{ yyval.p = op4(SPLIT, yyvsp[-5].p, makearr(yyvsp[-3].p), yyvsp[-1].p, (Node*)STRING); }
break;
case 153:
#line 384 "awk.g.2001.y"
{ yyval.p = op4(SPLIT, yyvsp[-5].p, makearr(yyvsp[-3].p), (Node*)makedfa(yyvsp[-1].s, 1), (Node *)REGEXPR); }
break;
case 154:
#line 386 "awk.g.2001.y"
{ yyval.p = op4(SPLIT, yyvsp[-3].p, makearr(yyvsp[-1].p), NIL, (Node*)STRING); }
break;
case 155:
#line 387 "awk.g.2001.y"
{ yyval.p = op1(yyvsp[-3].i, yyvsp[-1].p); }
break;
case 156:
#line 388 "awk.g.2001.y"
{ yyval.p = valtonode(yyvsp[0].cp, CCON); }
break;
case 157:
#line 390 "awk.g.2001.y"
{ yyval.p = op4(yyvsp[-5].i, NIL, (Node*)makedfa(yyvsp[-3].s, 1), yyvsp[-1].p, rectonode()); }
break;
case 158:
#line 392 "awk.g.2001.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 159:
#line 397 "awk.g.2001.y"
{ yyval.p = op4(yyvsp[-7].i, NIL, (Node*)makedfa(yyvsp[-5].s, 1), yyvsp[-3].p, yyvsp[-1].p); }
break;
case 160:
#line 399 "awk.g.2001.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 161:
#line 404 "awk.g.2001.y"
{ yyval.p = op3(SUBSTR, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); }
break;
case 162:
#line 406 "awk.g.2001.y"
{ yyval.p = op3(SUBSTR, yyvsp[-3].p, yyvsp[-1].p, NIL); }
break;
case 166:
#line 413 "awk.g.2001.y"
{ yyval.p = op2(ARRAY, makearr(yyvsp[-3].p), yyvsp[-1].p); }
break;
case 167:
#line 414 "awk.g.2001.y"
{ yyval.p = valtonode(yyvsp[0].cp, CFLD); }
break;
case 168:
#line 415 "awk.g.2001.y"
{ yyval.p = op1(INDIRECT, valtonode(yyvsp[0].cp, CVAR)); }
break;
case 169:
#line 416 "awk.g.2001.y"
{ yyval.p = op1(INDIRECT, yyvsp[0].p); }
break;
case 170:
#line 420 "awk.g.2001.y"
{ arglist = yyval.p = 0; }
break;
case 171:
#line 421 "awk.g.2001.y"
{ arglist = yyval.p = valtonode(yyvsp[0].cp,CVAR); }
break;
case 172:
#line 422 "awk.g.2001.y"
{ arglist = yyval.p = linkum(yyvsp[-2].p,valtonode(yyvsp[0].cp,CVAR)); }
break;
case 173:
#line 426 "awk.g.2001.y"
{ yyval.p = valtonode(yyvsp[0].cp, CVAR); }
break;
case 174:
#line 427 "awk.g.2001.y"
{ yyval.p = op1(ARG, (Node *) yyvsp[0].i); }
break;
case 175:
#line 428 "awk.g.2001.y"
{ yyval.p = op1(VARNF, (Node *) yyvsp[0].cp); }
break;
case 176:
#line 433 "awk.g.2001.y"
{ yyval.p = notnull(yyvsp[-1].p); }
break;
#line 3269 "y.tab.c"
}
yyssp -= yym;
yystate = *yyssp;
yyvsp -= yym;
yym = yylhs[yyn];
if (yystate == 0 && yym == 0)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: after reduction, shifting from state 0 to\
state %d\n", YYPREFIX, YYFINAL);
#endif
yystate = YYFINAL;
*++yyssp = YYFINAL;
*++yyvsp = yyval;
if (yychar < 0)
{
if ((yychar = yylex()) < 0) yychar = 0;
#if YYDEBUG
if (yydebug)
{
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}
#endif
}
if (yychar == 0) goto yyaccept;
goto yyloop;
}
if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
yystate = yytable[yyn];
else
yystate = yydgoto[yym];
#if YYDEBUG
if (yydebug)
printf("%sdebug: after reduction, shifting from state %d \
to state %d\n", YYPREFIX, *yyssp, yystate);
#endif
if (yyssp >= yysslim && yygrowstack())
{
goto yyoverflow;
}
*++yyssp = yystate;
*++yyvsp = yyval;
goto yyloop;
yyoverflow:
yyerror("yacc stack overflow");
yyabort:
return (1);
yyaccept:
return (0);
}
syntax highlighted by Code2HTML, v. 0.9.1