GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: usr.bin/awk/ytab.c Lines: 218 320 68.1 %
Date: 2017-11-07 Branches: 135 265 50.9 %

Line Branch Exec Source
1
#include <stdlib.h>
2
#include <string.h>
3
#define YYBYACC 1
4
#define YYMAJOR 1
5
#define YYMINOR 9
6
#define YYLEX yylex()
7
#define YYEMPTY -1
8
#define yyclearin (yychar=(YYEMPTY))
9
#define yyerrok (yyerrflag=0)
10
#define YYRECOVERING() (yyerrflag!=0)
11
#define YYPREFIX "yy"
12
#line 27 "/usr/src/usr.bin/awk/awkgram.y"
13
#include <stdio.h>
14
#include <string.h>
15
#include "awk.h"
16
17
void checkdup(Node *list, Cell *item);
18
int yywrap(void) { return(1); }
19
20
Node	*beginloc = 0;
21
Node	*endloc = 0;
22
int	infunc	= 0;	/* = 1 if in arglist or body of func */
23
int	inloop	= 0;	/* = 1 if in while, for, do */
24
char	*curfname = 0;	/* current function name */
25
Node	*arglist = 0;	/* list of args for current function */
26
#line 42 "/usr/src/usr.bin/awk/awkgram.y"
27
#ifndef YYSTYPE_DEFINED
28
#define YYSTYPE_DEFINED
29
typedef union {
30
	Node	*p;
31
	Cell	*cp;
32
	int	i;
33
	char	*s;
34
} YYSTYPE;
35
#endif /* YYSTYPE_DEFINED */
36
#line 37 "ytab.c"
37
#define FIRSTTOKEN 257
38
#define PROGRAM 258
39
#define PASTAT 259
40
#define PASTAT2 260
41
#define XBEGIN 261
42
#define XEND 262
43
#define NL 263
44
#define ARRAY 264
45
#define MATCH 265
46
#define NOTMATCH 266
47
#define MATCHOP 267
48
#define FINAL 268
49
#define DOT 269
50
#define ALL 270
51
#define CCL 271
52
#define NCCL 272
53
#define CHAR 273
54
#define OR 274
55
#define STAR 275
56
#define QUEST 276
57
#define PLUS 277
58
#define EMPTYRE 278
59
#define AND 279
60
#define BOR 280
61
#define APPEND 281
62
#define EQ 282
63
#define GE 283
64
#define GT 284
65
#define LE 285
66
#define LT 286
67
#define NE 287
68
#define IN 288
69
#define ARG 289
70
#define BLTIN 290
71
#define BREAK 291
72
#define CLOSE 292
73
#define CONTINUE 293
74
#define DELETE 294
75
#define DO 295
76
#define EXIT 296
77
#define FOR 297
78
#define FUNC 298
79
#define SUB 299
80
#define GSUB 300
81
#define IF 301
82
#define INDEX 302
83
#define LSUBSTR 303
84
#define MATCHFCN 304
85
#define NEXT 305
86
#define NEXTFILE 306
87
#define ADD 307
88
#define MINUS 308
89
#define MULT 309
90
#define DIVIDE 310
91
#define MOD 311
92
#define ASSIGN 312
93
#define ASGNOP 313
94
#define ADDEQ 314
95
#define SUBEQ 315
96
#define MULTEQ 316
97
#define DIVEQ 317
98
#define MODEQ 318
99
981
#define POWEQ 319
100
981
#define PRINT 320
101
#define PRINTF 321
102
#define SPRINTF 322
103
#define ELSE 323
104
#define INTEST 324
105
#define CONDEXPR 325
106
#define POSTINCR 326
107
#define PREINCR 327
108
#define POSTDECR 328
109
#define PREDECR 329
110
#define VAR 330
111
#define IVAR 331
112
#define VARNF 332
113
#define CALL 333
114
#define NUMBER 334
115
#define STRING 335
116
#define REGEXPR 336
117
#define GETLINE 337
118
#define RETURN 338
119
#define SPLIT 339
120
#define SUBSTR 340
121
#define WHILE 341
122
#define CAT 342
123
#define NOT 343
124
#define UMINUS 344
125
352
#define POWER 345
126
704
#define DECR 346
127
352
#define INCR 347
128
#define INDIRECT 348
129
2
#define LASTTOKEN 349
130
4
#define YYERRCODE 256
131
2
const short yylhs[] =
132
	{                                        -1,
133
    0,    0,   36,   36,   37,   37,   33,   33,   26,   26,
134
   24,   24,   40,   22,   41,   22,   42,   22,   20,   20,
135
31
   23,   30,   30,   34,   34,   35,   35,   29,   29,   15,
136
31
   15,    1,    1,   10,   11,   11,   11,   11,   11,   11,
137
   11,   43,   11,   12,   12,    6,    6,    3,    3,    3,
138
    3,    3,    3,    3,    3,    3,    3,    3,    2,    2,
139
513
    2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
140
513
    2,    2,    2,    2,    2,    2,    2,    4,    4,    5,
141
    5,    7,    7,    7,   39,   39,   28,   28,   28,   28,
142
   31,   31,    9,    9,   44,   13,   32,   32,   14,   14,
143
   14,   14,   14,   14,   14,   14,   27,   27,   16,   16,
144
   45,   46,   16,   16,   16,   16,   16,   16,   16,   16,
145
   16,   16,   16,   16,   47,   16,   16,   17,   17,   38,
146
   38,    8,    8,    8,    8,    8,    8,    8,    8,    8,
147
    8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
148
    8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
149
    8,    8,    8,    8,    8,    8,    8,    8,    8,    8,
150
    8,    8,    8,   18,   18,   18,   18,   21,   21,   21,
151
2562
   19,   19,   19,   25,
152
2562
};
153
const short yylen[] =
154
	{                                         2,
155
    1,    1,    1,    2,    1,    2,    1,    2,    1,    2,
156
1867
    1,    2,    0,   12,    0,   10,    0,    8,    1,    1,
157
1867
    4,    1,    2,    1,    2,    0,    1,    0,    1,    0,
158
    1,    1,    3,    1,    1,    4,    4,    7,    3,    4,
159
    4,    0,    9,    1,    3,    1,    3,    3,    5,    3,
160
    3,    3,    3,    3,    5,    2,    1,    1,    3,    5,
161
    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
162
    3,    5,    4,    3,    2,    1,    1,    3,    3,    1,
163
    3,    0,    1,    3,    1,    1,    1,    1,    2,    2,
164
    1,    2,    1,    2,    0,    4,    1,    2,    4,    4,
165
    4,    2,    5,    2,    1,    1,    1,    2,    2,    2,
166
    0,    0,    9,    3,    2,    1,    4,    2,    3,    2,
167
    2,    3,    2,    2,    0,    3,    2,    1,    2,    1,
168
981
    1,    4,    3,    3,    3,    3,    3,    3,    2,    2,
169
981
    2,    3,    4,    1,    3,    4,    2,    2,    2,    2,
170
    2,    4,    3,    2,    1,    6,    6,    3,    6,    6,
171
    1,    8,    8,    6,    4,    1,    6,    6,    8,    8,
172
243
    8,    6,    1,    1,    4,    1,    2,    0,    1,    3,
173
243
    1,    1,    1,    4,
174
};
175
const short yydefred[] =
176
	{                                      0,
177
243
    2,   87,   88,    0,    1,    0,    0,   89,   90,    0,
178
243
    0,   22,    0,   95,  182,    0,    0,    0,  130,  131,
179
    0,    0,    0,  181,  176,  183,    0,  161,  166,    0,
180
668
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
181
668
   76,    0,   44,    0,   93,    0,    0,    0,    0,    0,
182
195
    0,    0,    0,    0,    0,    0,    0,    0,    0,   19,
183
195
   20,    0,    0,    0,    0,    0,    0,    0,    0,    0,
184
199
    0,    0,    0,   94,  148,  149,  177,    0,    0,    3,
185
230
    5,    0,    0,    0,    0,    0,    0,    0,    0,    0,
186
62
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
187
31
    0,    0,  150,  151,    0,  106,   23,    0,    0,    0,
188
    0,    9,    0,    0,    0,    0,    0,   85,   86,    0,
189
    0,    0,    0,  128,    0,  116,    0,  125,    0,    0,
190
    0,    0,    0,    0,    7,  158,    0,    0,    0,    0,
191
355
  142,    0,    0,    0,    0,    0,    0,    0,  145,    0,
192
355
    0,    0,    0,    0,    0,    0,   69,    0,    0,    0,
193
    0,    0,    0,   71,    0,    4,    0,    6,    0,    0,
194
    0,    0,    0,    0,    0,    0,   24,    0,    0,    0,
195
   45,    0,    0,  127,    0,  109,    0,  110,    0,    0,
196
102
  115,    0,    0,  120,  121,    0,  123,    0,  124,   39,
197
102
  129,    0,    0,   10,    0,    0,    0,    0,    0,    0,
198
    0,   57,    0,    0,    0,   40,   41,    8,    0,    0,
199
    0,   96,  143,    0,  179,    0,    0,    0,  165,  146,
200
    0,    0,    0,   73,    0,    0,   25,    0,   36,  175,
201
  108,    0,  114,   31,    0,    0,    0,  122,    0,   11,
202
    0,  126,  112,   91,    0,    0,    0,    0,    0,    0,
203
    0,    0,    0,    0,    0,    0,    0,    0,    0,   72,
204
    0,   97,    0,    0,    0,    0,    0,    0,    0,    0,
205
    0,    0,    0,    0,    0,    0,    0,   12,  117,    0,
206
   92,    0,    0,    0,   52,   54,    0,    0,    0,    0,
207
    0,    0,    0,    0,    0,    0,   98,    0,  180,  156,
208
  157,  160,  159,  164,    0,  172,    0,    0,  103,    0,
209
    0,    0,    0,    0,    0,    0,  168,    0,  167,    0,
210
    0,    0,    0,    0,   38,    0,    0,    0,    0,   55,
211
    0,    0,    0,    0,    0,  162,  163,  171,    0,    0,
212
    0,    0,  170,  169,   43,    0,    0,   18,    0,    0,
213
    0,  113,   16,    0,    0,   14,
214
};
215
116
const short yydgoto[] =
216
116
	{                                       4,
217
    5,  122,  208,   53,  209,  143,  210,   40,   41,   42,
218
   43,   44,   45,  123,  245,  124,  125,   46,   47,   62,
219
  226,  126,  127,  251,  128,  129,  186,    6,    7,  130,
220
  255,  273,  224,  187,  179,   91,   92,   49,  131,  365,
221
1702
  360,  351,  308,   54,  205,  290,  203,
222
1702
};
223
60
const short yysindex[] =
224
60
	{                                    -55,
225
64
    0,    0,    0,    0,    0,  -56, 8066,    0,    0,  -69,
226
64
  -69,    0, 8879,    0,    0,   26, 9209, -216,    0,    0,
227
40
   32,   37,   39,    0,    0,    0,   41,    0,    0, -203,
228
445
   47,   51, 9209, 9209, 8898,  108,  108, 9209, 7629,  -37,
229
432
    0,   -4,    0,  -48,    0, -178,   11, 4734,   73, 4734,
230
44
 4734, 6232,  115, -218, 8298, 8879, 9209,  -37, -276,    0,
231
223
    0,   98, 8879, 8879, 8879, 8377, 9209, -121, 8879, 8879,
232
350
 -199, -199, -199,    0,    0,    0,    0, -171, 8879,    0,
233
327
    0, 8879, 8879, 8879, 8879, 8879, 8879, -252, 8879,  -37,
234
199
 8465, 8568, 8958, 9209, 9209, 9209, 9209, 9209,  -89, 4734,
235
16
 8066, 8879,    0,    0, 8879,    0,    0,  -89,  -29,  -29,
236
 -252,    0, 8246,  141,  159,  -29,  -29,    0,    0, 8246,
237
  171, 7629,  -29,    0, 4797,    0, 5655,    0,  -70, 4734,
238
 9038, 8879, 4857, 5001,    0,    0, 8628,  -72, 8628,  175,
239
    0, 7629,  120, 6735,  -82, 6841, 6841,  132,    0,  146,
240
  -37, 9209, 6841, 6841,  108, 2208,    0, 2208, 2208, 2208,
241
 2208, 2208, 2208,    0, 6916,    0, 7976,    0, 1353, 9209,
242
 -199,  -35,  -35, -199, -199, -199,    0,   -9, 8879, 5124,
243
    0, 7629,   18,    0,  -89,    0,   -9,    0,  186, 6425,
244
    0, 8152, 8879,    0,    0, 6425,    0, 8879,    0,    0,
245
    0,  -73, 5655,    0, 5655, 5185, 8879, 8227,  222, -109,
246
  -37,    0,  -34, 6841,  222,    0,    0,    0, 7629, -252,
247
 7629,    0,    0, 8628,    0,  153, 8628, 8628,    0,    0,
248
276
  -37,   54, 8628,    0, 8879,  -37,    0,  -69,    0,    0,
249
276
    0, 8879,    0,    0,  235,  -71, 7008,    0, 7008,    0,
250
 5271,    0,    0,    0,   33,  177, 9108, -252, 9108,  -37,
251
 8647, 8728, 8780, 9209, 9209, 9209, 9108, 8628, 8628,    0,
252
 7629,    0,   35, -242, 7106,  261, 7181,  268,  192, 6507,
253
 7629, 4734,   65,    2, -252,   35,   35,    0,    0,  -30,
254
412
    0,   34, 8879, 2208,    0,    0, 3456, 8799, 8317, 8227,
255
763
  -37,  -37,  -37, 8227, 6578, 6653,    0,  -69,    0,    0,
256
351
    0,    0,    0,    0, 8628,    0, 8628, 5343,    0,  -89,
257
 8879,  287,  289, -252,  251, 9108,    0,  317,    0,  317,
258
 4734, 7273,  301, 7371,    0, 8152, 7446,   35, 8879,    0,
259
   34, 8227,  312,  313, 5455,    0,    0,    0,  287,  -89,
260
172
 5655, 7538,    0,    0,    0,   35, 8152,    0,  -29, 5655,
261
172
  287,    0,    0,   35, 5655,    0,};
262
const short yyrindex[] =
263
	{                                   2901,
264
21
    0,    0,    0,    0,    0, 2995,  330,    0,    0,    0,
265
21
    0,    0,    0,    0,    0,   89,    0,    0,    0,    0,
266
412
    0,    0,    0,    0,    0,    0,    0,    0,    0, 3261,
267
412
    0,    0,    0,    0,    0,    0,    0,    0,   63, 2636,
268
    0, 2782,    0, 2901,    0, 1665,    1,    0,    0,    0,
269
    0,    0,    0,    0,    0,    0,    0, 2018, 1571,    0,
270
    0,    0,    0,    0,    0,    0,    0,  183,    0,    0,
271
  495,  583,  677,    0,    0,    0,    0,    0,    0,    0,
272
    0,    0,    0,    0,    0,    0,    0,    0,    0, 2730,
273
    0,    0,    0,    0,    0,    0,    0,    0, 9127,    0,
274
  360,    0,    0,    0,    0,    0,    0, 4406,    0,    0,
275
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
276
    0,  -32,    0,    0,    0,    0,    0,    0, 5722,    0,
277
  -25,    0,    0,    0,    0,    0,    0,    0,    0,    0,
278
    0,   49,    0,    0,  321,    0,    0,    0,    0,    0,
279
 2283,    0,    0,    0, 3348,  151,    0,  645, 1139, 2345,
280
 3323, 3410, 3439,    0,    0,    0, 3806,    0,   57,    0,
281
  989, 1836, 1930, 1077, 1171, 1483,    0, 4346,    0,    0,
282
    0,   96,    0,    0, 4406,    0, 4530,    0,  -28,    0,
283
98
    0,  326,    0,    0,    0,    0,    0,    0,    0,    0,
284
98
    0, 5582,    0,    0,    0,    0,    0,  374,   82,    6,
285
 7803,    0, 4221,    0, 7711,    0,    0,    0,  323,    0,
286
  339,    0,    0,    0,    0,    0,    0,    0,    0,    0,
287
 2371,    0,    0,    0,    0, 2465,    0, 2834,    0,    0,
288
228
    0,    0,    0,    0,    0, 4037,    0,    0,    0,    0,
289
228
    0,    0,    0,    0, 4673,    0,    0,    0,    0, 7894,
290
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
291
   56,    0,  267,    0,    0, 7711,    0, 7711,    0,    0,
292
  144,    0,    0, 9127,    0, 5782, 5849,    0,    0,    0,
293
    0,  280,    0,  449,    0,    0,    0,  535,  795,  410,
294
    9,   10,   15,  119,    0,    0,    0,    0,    0,    0,
295
    0,    0,    0,    0,    0,    0,    0,    0,    0, 5989,
296
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
297
    0,    0, 7711,    0,    0,  351,    0, 5922,    0,    0,
298
    0,  508,    0,    0,    0,    0,    0,    0,    0, 5989,
299
    0,    0,    0,    0,    0, 6049,  351,    0,    0,    0,
300
    0,    0,    0, 6116,    0,    0,};
301
const short yygindex[] =
302
	{                                      0,
303
117
    0, 4168,  340, -140,    0,  -13,    0, 3893,  -10,  216,
304
117
  295,    0,  -57,  -97, -281,  859,  -27, 3676,  -53,    0,
305
2237
    0,    0,    0,    0,    0,    0,  -84,    0,  354,    7,
306
2237
    0, -165,  356,  -80,  -23,  247,  311,    0,    0,    0,
307
    0,    0,    0,    0,    0,    0,    0,
308
2098
};
309
2098
#define YYTABLESIZE 9557
310
const short yytable[] =
311
	{                                      97,
312
  174,   97,    9,    3,   96,   94,   96,   95,  105,   93,
313
    3,   93,  104,   48,  264,   82,   50,   51,  178,  105,
314
  218,  157,  133,  134,   74,  188,  105,  178,  191,  185,
315
  104,  194,  195,   82,  164,  197,   15,  174,  199,   99,
316
  174,  174,  174,  174,  174,  174,  102,  174,  100,   99,
317
  100,  148,  150,   12,  349,  101,   61,  189,  174,  174,
318
4
  320,  135,   34,  174,  102,   55,  256,   99,  100,  103,
319
4
  104,   63,  180,  101,  215,  361,   64,   24,   65,   26,
320
4
   66,  286,   67,  287,  184,   15,   69,  309,  144,   46,
321
   70,  183,   46,  174,  244,   59,   47,   61,   82,   47,
322
   61,  105,  206,   61,  178,  243,   34,   48,  135,   34,
323
  240,  248,  132,   60,   61,   61,   61,  140,   12,   61,
324
9
  212,   34,   83,  174,  174,  144,   24,   25,   26,  144,
325
189
  144,  144,  144,  144,  102,  144,   59,  145,  246,   59,
326
180
   83,   46,   59,   60,   38,   98,  144,  144,   47,   61,
327
236
   70,  144,  325,   59,   59,  138,  338,  319,  135,   48,
328
513
  223,  241,   48,  135,  152,  155,  270,  103,  104,  276,
329
687
  278,  265,  229,  177,  266,  135,   48,   48,  279,   61,
330
428
  192,  144,  154,  356,   60,   34,  230,   60,   59,  135,
331
   60,   70,  204,  272,   70,  364,  135,   70,  193,  295,
332
18
    1,   60,   60,  178,  296,   83,    8,    2,   70,   70,
333
18
  198,  144,  144,   70,    2,  220,  285,  292,   59,  154,
334
  135,  222,  154,  154,  154,  154,  154,  154,  283,  154,
335
  105,  322,  314,  177,  104,  135,   60,   82,  244,  178,
336
14
  154,  154,   48,   70,  282,  154,  212,  225,  212,  250,
337
14
  212,  212,  212,  237,  318,   82,  212,  333,   82,  244,
338
  321,  174,  174,  174,  177,  135,   60,  174,  102,  178,
339
22
  340,   99,  100,   70,  362,  154,  242,  101,  267,  174,
340
1011
  174,  174,  174,  174,  174,  174,  174,  174,  174,  174,
341
989
  174,  341,  174,  284,  135,  291,  336,  307,  174,  174,
342
  174,  311,  174,  345,  174,  154,  154,   98,  313,   98,
343
  323,  103,  104,  174,  331,  212,  218,   61,   61,   61,
344
   84,  324,  174,   34,   34,   34,  357,  272,  339,   32,
345
3390
  174,  174,  174,  174,  174,  174,   61,  174,   84,  174,
346
3390
  174,  347,   15,  174,   83,  174,  174,  174,  174,  144,
347
  144,  144,  353,  354,   61,  144,   59,   59,   59,   33,
348
   34,  178,   83,   78,  178,   83,   78,  144,  144,  144,
349
  144,  144,  144,  144,  144,  144,  144,  144,  144,   79,
350
  144,   48,   79,   24,   30,   26,  144,  144,  144,   42,
351
  144,   30,  144,   59,  238,  181,   15,  101,    0,   48,
352
    0,  144,   48,   84,   60,   60,   60,  137,  139,    0,
353
  144,   70,   70,   70,   80,    0,    0,   80,  144,  144,
354
165
  144,  144,  144,  144,    0,  144,    0,  144,  144,   70,
355
199
   70,  144,   80,  144,  144,  144,  144,   24,   25,   26,
356
88
    0,   60,    0,  154,  154,  154,    0,    0,   70,  154,
357
54
   81,    0,    0,   81,  261,   38,    0,    0,    0,    0,
358
178
    0,  154,  154,  154,  154,  154,  154,  154,   81,  154,
359
178
  154,  154,  154,    0,  154,    0,    0,    0,    0,    0,
360
42
  154,  154,  154,    0,  154,    0,  154,   70,    0,   53,
361
42
    0,    0,   53,    0,  140,  154,    0,   80,    0,    0,
362
2
    0,  227,  228,    0,  154,    0,   53,   53,  232,  233,
363
20
    0,   53,  154,  154,  154,  154,  154,  154,  262,  154,
364
60
    0,  154,  154,    0,    0,  154,    0,  154,  154,  154,
365
42
  154,  140,    0,   81,  140,  140,  140,  140,  140,  140,
366
18
  261,  140,   84,  261,  261,  261,  261,    0,   49,    0,
367
126
  261,   49,  140,  140,    0,    0,    0,  140,    0,    0,
368
108
   84,    0,    0,   84,  263,   49,   49,    0,    0,  268,
369
27
  269,    0,   53,    0,    0,   51,    0,    0,   51,  218,
370
252
    0,  274,  139,    0,    0,    0,    0,  140,  261,    0,
371
234
    0,    0,   51,   51,    0,    0,  294,   51,  297,    0,
372
162
  298,  299,  300,    0,  262,   15,  304,  262,  262,  262,
373
153
  262,  139,    0,    0,  262,    0,    0,  140,  140,  139,
374
    0,    0,  139,  139,  139,  139,  139,  139,    0,  139,
375
    0,   49,    0,    0,  315,  317,   80,    0,    0,    0,
376
4
  139,  139,    0,    0,   63,  139,   24,   25,   26,    0,
377
4
    0,    0,  262,    0,   80,    0,    0,   80,   51,    0,
378
1
  328,  330,    0,    0,   38,  342,    0,    0,    0,    0,
379
1
    0,    0,   81,    0,    0,  139,  141,    0,    0,    0,
380
  139,    0,    0,    0,    0,   63,    0,    0,   63,    0,
381
   81,   63,    0,   81,    0,    0,    0,    0,    0,    0,
382
466
    0,    0,   63,   63,    0,  139,  139,   63,    0,    0,
383
466
    0,   53,    0,  141,    0,    0,  141,  141,  141,  141,
384
  141,  141,    0,  141,    0,    0,    0,   53,   53,   53,
385
    0,    0,   53,    0,  141,  141,    0,   63,    0,  141,
386
6
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
387
6
    0,    0,    0,    0,    0,  140,  140,  140,    0,    0,
388
    0,  140,    0,    0,    0,    0,    0,   63,    0,  141,
389
   49,    0,    0,  140,  140,  140,  140,  140,  140,  140,
390
3316
  140,  140,  140,  140,  140,   53,  140,    0,   49,    0,
391
3310
    0,   49,  140,  140,  140,    0,  140,   51,  140,  141,
392
3
  141,    0,    0,    0,    0,    0,    0,  140,    0,    0,
393
3
    0,    0,    0,   51,   51,   51,  140,    0,   51,    0,
394
    0,    0,    0,    0,  140,  140,  140,  140,  140,  140,
395
    0,  140,    0,  140,  140,   50,    0,  140,   50,    0,
396
  140,  140,  140,  139,  139,  139,    0,    0,    0,  139,
397
30
    0,    0,   50,   50,    0,    0,    0,   50,    0,    0,
398
3226
    0,  139,  139,  139,  139,  139,  139,  139,  139,  139,
399
3196
  139,  139,  139,    0,  139,    0,    0,    0,    0,    0,
400
  139,  139,  139,    0,  139,    0,  139,    0,    0,    0,
401
    0,    0,    0,    0,    0,  139,    0,    0,    0,    0,
402
    0,    0,    0,    0,  139,   63,   63,   63,    0,    0,
403
    0,    0,  139,  139,  139,  139,  139,  139,   50,  139,
404
    0,  139,  139,   63,   63,  139,    0,    0,  139,  139,
405
  139,    0,    0,    0,    0,    0,    0,  141,  141,  141,
406
    0,    0,   63,  141,    0,    0,    0,    0,    0,    0,
407
    0,    0,    0,    0,    0,  141,  141,  141,  141,  141,
408
  141,  141,  141,  141,  141,  141,  141,    0,  141,    0,
409
    0,    0,    0,    0,  141,  141,  141,    0,  141,    0,
410
  141,   63,    0,  201,    0,  202,    0,    0,  136,  141,
411
    0,  201,  201,    0,    0,    0,    0,    0,  141,    0,
412
    0,    0,    0,    0,    0,    0,  141,  141,  141,  141,
413
  141,  141,    0,  141,    0,  141,  141,    0,    0,  141,
414
132
    0,    0,  141,  141,  141,  136,    0,    0,  136,  136,
415
132
  136,  136,  136,  136,    0,  136,    0,    0,  201,    0,
416
74
    0,    0,    0,    0,    0,    0,  136,  136,    0,    0,
417
74
    0,  136,    0,    0,    0,    0,    0,   50,    0,    0,
418
    0,  252,    0,  253,  201,    0,    0,    0,    0,    0,
419
    0,    0,    0,    0,   50,   50,  135,    0,   50,    0,
420
    0,  136,    0,    0,    0,    0,    0,    0,    0,    0,
421
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422
291
    0,    0,    0,    0,    0,    0,    0,    0,    0,  289,
423
347
    0,  136,  136,  135,    0,    0,  135,  135,  135,  135,
424
1342
  135,  135,    0,  135,    0,    0,    0,    0,    0,    0,
425
1286
    0,    0,    0,    0,  135,  135,    0,    0,   64,  135,
426
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
427
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
428
9
    0,    0,    0,    0,    0,    0,    0,    0,    0,  135,
429
31
  137,    0,    0,    0,    0,    0,  201,    0,    0,   64,
430
22
    0,    0,   64,    0,    0,   64,    0,    0,    0,    0,
431
8
    0,    0,    0,    0,    0,    0,   64,   64,    0,  135,
432
8
  135,   64,    0,  201,    0,    0,    0,  137,    0,  358,
433
8
  137,  137,  137,  137,  137,  137,    0,  137,  363,    0,
434
    0,    0,    0,  366,    0,    0,    0,    0,  137,  137,
435
    0,   64,    0,  137,    0,    0,    0,    0,    0,    0,
436
4337
    0,    0,    0,    0,    0,    0,    0,    0,    0,  136,
437
4391
  136,  136,    0,    0,    0,  136,    0,    0,    0,    0,
438
67
    0,   64,    0,  137,    0,    0,    0,  136,  136,  136,
439
13
  136,  136,  136,  136,  136,  136,  136,  136,  136,    0,
440
  136,    0,    0,    0,    0,    0,  136,  136,  136,    0,
441
  136,    0,  136,  137,  137,    0,    0,    0,    0,    0,
442
    0,  136,    0,    0,    0,    0,    0,    0,    0,    0,
443
11
  136,    0,    0,    0,    0,    0,    0,    0,  136,  136,
444
11
  136,  136,  136,  136,    0,  136,    0,  136,  136,    0,
445
    0,  136,    0,    0,  136,  136,  136,  135,  135,  135,
446
    0,    0,    0,  135,    0,    0,    0,    0,    0,    0,
447
    0,    0,    0,    0,    0,  135,  135,  135,  135,  135,
448
  135,  135,  135,  135,  135,  135,  135,    0,  135,    0,
449
    0,    0,    0,    0,  135,  135,  135,    0,  135,    0,
450
  135,    0,    0,    0,    0,    0,    0,    0,    0,  135,
451
    0,    0,   56,    0,    0,   33,    0,   34,  135,   64,
452
   64,   64,    0,    0,    0,    0,  135,  135,  135,  135,
453
  135,  135,    0,  135,    0,  135,  135,   64,   64,  135,
454
    0,    0,  135,  135,  135,    0,    0,    0,    0,    0,
455
    0,  137,  137,  137,    0,    0,   64,  137,    0,    0,
456
    0,    0,    0,    0,    0,    0,    0,    0,    0,  137,
457
  137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
458
  137,    0,  137,    0,    0,    0,    0,    0,  137,  137,
459
  137,    0,  137,    0,  137,   64,   78,    0,    0,    0,
460
    0,    0,  138,  137,    0,    0,    0,    0,    0,    0,
461
    0,    0,  137,    0,    0,    0,    0,    0,    0,    0,
462
  137,  137,  137,  137,  137,  137,    0,  137,    0,  137,
463
  137,    0,    0,  137,    0,    0,  137,  137,  137,  138,
464
    0,    0,  138,  138,  138,  138,  138,  138,    0,  138,
465
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
466
  138,  138,    0,    0,    0,  138,    0,    0,    0,    0,
467
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
468
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
469
  173,    0,    0,    0,    0,  138,    0,    0,    0,    0,
470
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
471
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
472
    0,    0,    0,    0,    0,  138,  138,  173,    0,    0,
473
  173,  173,  173,  173,  173,  173,    0,  173,    0,   79,
474
    0,    0,    0,    0,    0,    0,    0,    0,  173,  173,
475
    0,   80,    0,  173,   82,   83,   84,   85,   86,   87,
476
   88,   15,   16,    0,   17,    0,    0,    0,    0,    0,
477
    0,   19,   20,    0,   21,    0,   22,    0,    0,    0,
478
    0,    0,    0,  173,  173,    0,    0,    0,    0,    0,
479
    0,    0,    0,    0,   23,    0,    0,    0,    0,    0,
480
    0,    0,   24,   25,   26,   27,   28,   29,    0,   30,
481
    0,   31,   32,  173,  173,   57,    0,    0,   36,   37,
482
   38,  173,    0,    0,  173,  173,  173,  173,  173,  173,
483
    0,  173,    0,    0,    0,    0,    0,    0,    0,    0,
484
    0,    0,  173,  173,    0,    0,    0,  173,    0,    0,
485
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
486
    0,    0,    0,  138,  138,  138,    0,    0,    0,  138,
487
    0,    0,    0,    0,    0,    0,    0,  173,    0,    0,
488
    0,  138,  138,  138,  138,  138,  138,  138,  138,  138,
489
  138,  138,  138,    0,  138,    0,    0,    0,    0,    0,
490
  138,  138,  138,    0,  138,    0,  138,  173,  173,    0,
491
    0,    0,    0,    0,    0,  138,    0,    0,    0,    0,
492
    0,    0,    0,    0,  138,    0,    0,    0,    0,    0,
493
    0,    0,  138,  138,  138,  138,  138,  138,    0,  138,
494
    0,  138,  138,    0,    0,  138,    0,    0,  138,  138,
495
  138,  173,  173,  173,    0,  133,    0,  173,    0,    0,
496
    0,    0,    0,    0,    0,    0,    0,    0,    0,  173,
497
  173,  173,  173,  173,  173,  173,  173,  173,  173,  173,
498
  173,    0,  173,    0,    0,    0,    0,    0,  173,  173,
499
  173,    0,  173,    0,  173,  133,  133,    0,  133,  133,
500
  133,    0,    0,  173,    0,    0,    0,    0,    0,    0,
501
    0,    0,  173,  133,  133,    0,    0,    0,  133,    0,
502
  173,  173,  173,  173,  173,  173,    0,  173,    0,  173,
503
  173,    0,    0,  173,    0,  173,    0,    0,  173,    0,
504
    0,    0,    0,    0,    0,  173,  173,  173,  133,  134,
505
    0,  173,    0,    0,    0,    0,    0,    0,    0,    0,
506
    0,    0,    0,  173,  173,    0,  173,  173,  173,  173,
507
  173,  173,  173,  173,  173,    0,  173,    0,  133,  133,
508
    0,    0,  173,  173,  173,    0,  173,    0,  173,  134,
509
  134,    0,  134,  134,  134,    0,    0,    0,    0,    0,
510
    0,    0,    0,    0,    0,    0,  173,  134,  134,    0,
511
    0,    0,  134,    0,  173,  173,  173,  173,  173,  173,
512
    0,  173,    0,  173,  173,    0,    0,  173,    0,  173,
513
    0,    0,  173,    0,    0,    0,    0,  147,    0,    0,
514
    0,    0,  134,    0,    0,    0,    0,    0,    0,    0,
515
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
516
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
517
    0,    0,  134,  134,    0,    0,    0,  147,  147,    0,
518
    0,  147,    0,    0,    0,    0,    0,    0,    0,    0,
519
    0,    0,    0,    0,    0,  147,  147,    0,    0,    0,
520
  147,    0,    0,    0,    0,    0,    0,    0,    0,    0,
521
    0,    0,    0,    0,    0,    0,  133,  133,  133,    0,
522
    0,    0,  133,    0,    0,    0,    0,    0,    0,    0,
523
  147,    0,    0,    0,  133,  133,  133,  133,  133,  133,
524
  133,  133,  133,  133,  133,  133,    0,  133,    0,    0,
525
    0,    0,    0,  133,  133,  133,    0,  133,    0,  133,
526
  147,  147,    0,    0,    0,    0,    0,    0,  133,    0,
527
    0,    0,    0,    0,    0,    0,    0,  133,    0,    0,
528
    0,    0,    0,    0,    0,  133,  133,  133,  133,  133,
529
  133,    0,  133,    0,  133,  133,    0,    0,  133,    0,
530
    0,  133,  133,  133,    0,    0,    0,    0,    0,    0,
531
  134,  134,  134,    0,    0,    0,  134,    0,    0,    0,
532
    0,    0,    0,    0,    0,    0,    0,    0,  134,  134,
533
  134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
534
    0,  134,    0,    0,    0,    0,    0,  134,  134,  134,
535
    0,  134,    0,  134,    0,    0,    0,    0,    0,    0,
536
    0,    0,  134,    0,    0,    0,    0,   56,    0,    0,
537
   33,  134,   34,    0,    0,    0,    0,    0,    0,  134,
538
  134,  134,  134,  134,  134,    0,  134,    0,  134,  134,
539
    0,    0,  134,    0,    0,  134,  134,  134,  147,  147,
540
  147,    0,  153,    0,  147,    0,    0,    0,    0,    0,
541
    0,    0,    0,    0,    0,    0,  147,  147,  147,  147,
542
  147,  147,  147,  147,  147,  147,  147,  147,    0,  147,
543
    0,    0,    0,    0,    0,  147,  147,  147,    0,  147,
544
    0,  147,  153,  153,    0,    0,  153,    0,    0,    0,
545
  147,    0,    0,    0,    0,    0,    0,    0,    0,  147,
546
  153,  153,    0,    0,   65,  153,    0,  147,  147,  147,
547
  147,  147,  147,    0,  147,    0,  147,  147,    0,    0,
548
  147,    0,    0,  147,  147,  147,    0,    0,    0,    0,
549
  152,    0,    0,    0,    0,  153,    0,    0,    0,    0,
550
    0,    0,    0,    0,    0,   65,    0,    0,   65,    0,
551
    0,   65,    0,    0,    0,    0,    0,    0,    0,    0,
552
    0,    0,   65,   65,    0,  153,  153,   65,    0,    0,
553
  152,  152,    0,    0,  152,    0,    0,    0,    0,    0,
554
    0,    0,    0,    0,    0,    0,    0,    0,  152,  152,
555
    0,    0,    0,  152,    0,    0,    0,   65,    0,    0,
556
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
557
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
558
    0,    0,    0,  152,  132,    0,    0,   65,    0,    0,
559
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
560
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
561
    0,    0,    0,  152,  152,    0,   15,   16,    0,   17,
562
    0,    0,    0,    0,  132,  132,   19,   20,  132,   21,
563
    0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
564
    0,    0,  132,  132,    0,    0,    0,  132,    0,   23,
565
    0,    0,    0,    0,    0,    0,    0,   24,   25,   26,
566
   27,   28,   29,  153,  153,  153,   31,   32,    0,  153,
567
   57,    0,    0,   36,   37,   38,    0,  132,    0,    0,
568
    0,  153,  153,  153,  153,  153,  153,  153,  153,  153,
569
  153,  153,  153,    0,  153,    0,    0,    0,    0,    0,
570
  153,  153,  153,    0,  153,    0,  153,  132,  132,    0,
571
    0,    0,    0,    0,    0,  153,    0,    0,    0,    0,
572
    0,    0,    0,    0,  153,   65,   65,   65,    0,    0,
573
    0,    0,  153,  153,  153,  153,  153,  153,    0,  153,
574
    0,  153,  153,   65,   65,  153,    0,    0,  153,  153,
575
  153,  152,  152,  152,    0,   77,    0,  152,    0,    0,
576
    0,    0,   65,    0,    0,    0,    0,    0,    0,  152,
577
  152,  152,  152,  152,  152,  152,  152,  152,  152,  152,
578
  152,    0,  152,    0,    0,    0,    0,    0,  152,  152,
579
  152,    0,  152,    0,  152,   77,   77,    0,    0,   77,
580
    0,   65,    0,  152,    0,    0,    0,    0,    0,    0,
581
    0,    0,  152,   77,   77,    0,    0,    0,   77,    0,
582
  152,  152,  152,  152,  152,  152,    0,  152,    0,  152,
583
  152,    0,    0,  152,    0,    0,  152,  152,  152,    0,
584
    0,    0,    0,    0,    0,  132,  132,  132,   77,   75,
585
    0,  132,    0,    0,    0,    0,    0,    0,    0,    0,
586
    0,    0,    0,  132,  132,  132,  132,  132,  132,  132,
587
  132,  132,  132,  132,  132,    0,  132,    0,   77,   77,
588
    0,    0,  132,  132,  132,    0,  132,    0,  132,   75,
589
   75,    0,    0,   75,    0,    0,    0,  132,    0,    0,
590
    0,   35,    0,    0,    0,    0,  132,   75,   75,    0,
591
    0,    0,   75,    0,  132,  132,  132,  132,  132,  132,
592
    0,  132,    0,  132,  132,    0,    0,  132,    0,    0,
593
  132,  132,  132,    0,    0,    0,    0,    0,    0,    0,
594
    0,   35,   75,    0,   35,    0,   35,    0,   35,    0,
595
    0,    0,    0,   37,    0,    0,    0,    0,    0,    0,
596
   35,    0,    0,    0,    0,    0,    0,    0,    0,    0,
597
    0,    0,   75,   75,    0,    0,    0,    0,    0,    0,
598
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
599
    0,    0,    0,   37,    0,    0,   37,    0,   37,    0,
600
   37,    0,    0,    0,    0,    0,    0,    0,    0,    0,
601
    0,    0,   37,    0,    0,    0,   77,   77,   77,    0,
602
   28,    0,   77,    0,    0,    0,    0,    0,    0,    0,
603
    0,    0,    0,    0,   77,   77,    0,   77,   77,   77,
604
   77,   77,   77,   77,   77,   77,    0,   77,    0,    0,
605
    0,    0,    0,   77,   77,   77,    0,   77,    0,   77,
606
   28,    0,    0,   28,    0,   28,    0,   28,    0,    0,
607
    0,    0,    0,    0,    0,    0,    0,   77,    0,    0,
608
    0,    0,    0,    0,    0,   77,   77,   77,   77,   77,
609
   77,    0,   77,    0,   77,   77,    0,    0,   77,    0,
610
    0,   77,   77,   77,    0,    0,    0,    0,    0,    0,
611
   75,   75,   75,    0,   29,    0,   75,    0,    0,    0,
612
    0,    0,    0,    0,    0,    0,    0,    0,   75,   75,
613
    0,   75,   75,   75,   75,   75,   75,   75,   75,   75,
614
    0,   75,    0,   28,    0,    0,    0,   75,   75,   75,
615
    0,   75,    0,   75,   29,    0,    0,   29,    0,   29,
616
    0,   29,   35,   35,   35,    0,    0,    0,    0,    0,
617
    0,   75,    0,    0,    0,    0,    0,    0,    0,   75,
618
   75,   75,   75,   75,   75,    0,   75,    0,   75,   75,
619
   35,   35,   75,   35,    0,   75,   75,   75,    0,   35,
620
   35,   35,    0,   35,    0,   35,    0,    0,    0,    0,
621
    0,    0,    0,    0,   37,   37,   37,    0,    0,    0,
622
    0,    0,    0,   35,    0,    0,    0,    0,    0,    0,
623
    0,   35,   35,   35,   35,   35,   35,   29,   35,    0,
624
   35,   35,   37,   37,   35,   37,    0,   35,   35,   35,
625
    0,   37,   37,   37,    0,   37,    0,   37,    0,    0,
626
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
627
    0,    0,    0,    0,    0,   37,    0,    0,    0,    0,
628
    0,   28,   28,   37,   37,   37,   37,   37,   37,    0,
629
   37,    0,   37,   37,    0,    0,   37,    0,    0,   37,
630
   37,   37,    0,    0,    0,    0,    0,    0,    0,   28,
631
   28,    0,   28,    0,    0,    0,    0,    0,   28,   28,
632
   28,    0,   28,    0,   28,    0,    0,    0,    0,    0,
633
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
634
    0,    0,   28,    0,    0,    0,    0,    0,    0,    0,
635
   28,   28,   28,   28,   28,   28,    0,   28,    0,   28,
636
   28,    0,    0,   28,    0,    0,   28,   28,   28,    0,
637
    0,    0,    0,    0,    0,   29,   29,    0,    0,    0,
638
  155,    0,    0,    0,    0,    0,    0,    0,    0,    0,
639
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
640
    0,    0,    0,   29,   29,    0,   29,    0,    0,    0,
641
    0,    0,   29,   29,   29,    0,   29,  155,   29,    0,
642
  155,  155,  155,  155,  155,  155,    0,  155,    0,    0,
643
    0,    0,    0,    0,    0,    0,   29,    0,  155,  155,
644
    0,    0,   66,  155,   29,   29,   29,   29,   29,   29,
645
    0,   29,    0,   29,   29,    0,    0,   29,    0,    0,
646
   29,   29,   29,    0,    0,    0,    0,   74,    0,    0,
647
    0,    0,    0,  155,    0,    0,    0,    0,    0,    0,
648
    0,    0,    0,   66,    0,    0,   66,    0,    0,   66,
649
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
650
   66,   66,    0,  155,  155,   66,    0,   74,   74,    0,
651
   74,   74,   74,    0,   74,    0,    0,    0,    0,    0,
652
    0,    0,    0,    0,    0,   74,   74,    0,    0,   67,
653
   74,    0,    0,    0,    0,   66,    0,    0,    0,    0,
654
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
655
    0,    0,    0,    0,    0,    0,    0,    0,   68,    0,
656
   74,    0,    0,    0,    0,   66,    0,    0,    0,    0,
657
   67,    0,    0,   67,    0,    0,   67,    0,    0,    0,
658
    0,    0,    0,    0,    0,    0,    0,   67,   67,    0,
659
   74,   74,   67,    0,    0,    0,    0,    0,    0,   68,
660
    0,    0,   68,    0,    0,   68,    0,    0,    0,    0,
661
    0,    0,    0,    0,    0,   56,   68,   68,   33,    0,
662
   34,   68,   67,    0,    0,    0,    0,    0,    0,    0,
663
    0,    0,    0,  326,    0,    0,    0,    0,  259,    0,
664
    0,  155,  155,  155,    0,    0,    0,  155,    0,    0,
665
    0,   68,   67,    0,    0,    0,    0,    0,    0,  155,
666
  155,  155,  155,  155,  155,  155,    0,  155,  155,    0,
667
  155,    0,  155,    0,    0,    0,    0,    0,  155,  155,
668
  155,   68,  155,    0,  155,    0,    0,    0,    0,    0,
669
    0,    0,    0,  155,    0,    0,    0,    0,    0,    0,
670
    0,    0,  155,   66,   66,   66,    0,    0,    0,    0,
671
    0,    0,    0,  155,  155,  155,    0,  155,    0,  155,
672
  155,   66,   66,  155,    0,  155,  155,  155,   74,   74,
673
   74,    0,    0,    0,   74,    0,    0,    0,    0,    0,
674
   66,    0,    0,    0,    0,    0,   74,   74,    0,   74,
675
   74,   74,   74,   74,   74,   74,    0,   74,    0,   74,
676
    0,    0,    0,    0,    0,   74,   74,   74,    0,   74,
677
    0,   74,    0,    0,    0,    0,    0,    0,    0,   66,
678
    0,    0,    0,    0,    0,    0,    0,    0,    0,   74,
679
   67,   67,   67,    0,    0,    0,    0,    0,    0,    0,
680
   74,   74,   74,    0,   74,    0,   74,   74,   67,   67,
681
   74,    0,   59,   74,   74,    0,    0,    0,    0,   68,
682
   68,   68,    0,    0,    0,   68,    0,   67,   59,   59,
683
   59,   75,   76,   59,   59,    0,    0,   68,   68,    0,
684
    0,    0,  257,    0,    0,    0,    0,   59,    0,    0,
685
    0,    0,   59,    0,   80,   81,   68,    0,    0,    0,
686
    0,    0,   59,  258,   15,   16,   67,   17,    0,    0,
687
    0,    0,    0,    0,   19,   20,    0,   21,    0,   22,
688
    0,    0,    0,    0,    0,    0,    0,    0,   59,   59,
689
   59,   59,   59,   59,    0,   68,    0,   23,    0,    0,
690
    0,    0,    0,    0,    0,   24,   25,   26,   27,   28,
691
   29,    0,   30,    0,   31,   32,    0,   59,   57,    0,
692
    0,   36,   37,   38,    0,   62,  213,    0,    0,    0,
693
    0,    0,    0,    0,    0,    0,    0,   59,    0,   59,
694
    0,   59,   59,    0,    0,    0,    0,   59,   59,   59,
695
  234,   59,    0,   59,   59,   59,   59,   59,   59,    0,
696
   59,    0,   59,    0,   59,   59,   62,    0,    0,   62,
697
    0,    0,   62,    0,    0,    0,    0,   59,    0,    0,
698
    0,    0,    0,   62,   62,   59,    0,    0,   62,    0,
699
    0,   59,    0,    0,    0,    0,    0,    0,    0,    0,
700
    0,    0,    0,   59,    0,    0,    0,    0,    0,   59,
701
    0,    0,    0,    0,   59,    0,   59,    0,   62,    0,
702
    0,    0,    0,    0,    0,    0,    0,    0,    0,   58,
703
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
704
    0,    0,   59,    0,   59,   71,   72,   73,   62,    0,
705
   77,   90,  213,    0,  213,    0,  213,  213,  213,   59,
706
   59,   59,  213,    0,   90,    0,   59,    0,    0,   73,
707
   59,    0,   59,    0,    0,   59,   59,    0,    0,  151,
708
    0,    0,    0,    0,    0,    0,    0,    0,    0,   59,
709
    0,    0,   59,   59,   59,   59,    0,    0,    0,   59,
710
   59,   59,    0,    0,    0,  171,  172,  173,  174,  175,
711
  176,    0,    0,    0,    0,    0,    0,    0,    0,    0,
712
    0,  213,    0,  343,    0,  344,    0,   59,    0,   59,
713
    0,    0,   59,    0,   90,    0,    0,   59,    0,    0,
714
    0,    0,    0,  211,    0,    0,    0,   59,    0,    0,
715
    0,    0,    0,    0,   90,    0,   90,    0,   90,   90,
716
    0,    0,    0,    0,  231,   90,   90,    0,   90,    0,
717
   90,   90,   90,   90,   90,   90,    0,   90,    0,   90,
718
    0,   90,  236,    0,    0,    0,   62,   62,   62,    0,
719
    0,    0,    0,  174,   90,    0,  174,    0,  174,  174,
720
    0,  174,   90,  174,   62,   62,    0,    0,   90,    0,
721
    0,    0,    0,    0,    0,  174,    0,    0,    0,  174,
722
  260,    0,    0,   62,    0,    0,   90,    0,    0,    0,
723
    0,   90,    0,   90,    0,    0,    0,    0,    0,    0,
724
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
725
    0,    0,    0,    0,    0,    0,    0,    0,    0,   90,
726
    0,   90,    0,    0,    0,    0,    0,    0,    0,  211,
727
    0,  211,    0,  211,  211,  211,  301,  302,  303,  211,
728
  174,    0,    0,   90,    0,    0,    0,   90,    0,   90,
729
    0,    0,   90,   90,   39,    0,    0,    0,    0,    0,
730
   52,    0,    0,    0,    0,    0,  260,    0,    0,  260,
731
  260,  260,  260,    0,    0,    0,  260,   90,   90,    0,
732
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
733
    0,    0,    0,    0,    0,    0,    0,    0,  211,    0,
734
    0,    0,  142,  144,   90,    0,   90,    0,    0,   90,
735
  146,  147,  142,  142,  260,    0,  153,  154,    0,    0,
736
    0,    0,    0,    0,   90,    0,  156,    0,    0,  158,
737
  159,  160,  161,  162,  163,    0,  165,  173,  167,  169,
738
  173,  173,  173,  173,  173,  173,    0,  173,   39,  182,
739
    0,    0,  142,    0,    0,    0,    0,    0,  173,  173,
740
  190,    0,    0,  173,    0,    0,    0,  196,    0,    0,
741
    0,    0,    0,    0,    0,    0,    0,    0,    0,  214,
742
    0,    0,    0,  174,  219,    0,  221,    0,    0,    0,
743
    0,    0,    0,    0,    0,  174,  174,    0,  174,  174,
744
  174,  174,  174,  174,    0,  174,  174,    0,  174,    0,
745
    0,    0,    0,    0,    0,  174,  174,    0,  174,    0,
746
  174,    0,    0,    0,  173,    0,   39,    0,    0,  174,
747
    0,    0,    0,    0,    0,    0,    0,    0,  174,    0,
748
  247,    0,    0,    0,    0,  249,  174,  174,  174,  174,
749
  174,  174,    0,  174,   52,  174,  174,    0,    0,  174,
750
    0,  174,  174,  174,  174,   27,   27,    0,   27,    0,
751
   27,  271,   27,    0,  275,  277,    0,    0,    0,    0,
752
  280,    0,  281,    0,   27,    0,    0,    0,    0,  142,
753
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
755
    0,    0,    0,    0,    0,  305,  306,    0,    0,    0,
756
    0,    0,    0,    0,    0,   26,    0,    0,   26,    0,
757
   26,    0,   26,    0,    0,    0,    0,    0,    0,    0,
758
   52,    0,    0,    0,   26,    0,    0,    0,   27,    0,
759
   27,    0,    0,    0,    0,    0,    0,    0,    0,    0,
760
    0,    0,  332,  173,  334,    0,    0,  173,  337,    0,
761
    0,    0,    0,    0,    0,    0,    0,    0,    0,  173,
762
  173,  173,    0,    0,  173,    0,  352,    0,  173,  173,
763
  173,    0,  173,    0,    0,    0,    0,    0,    0,  173,
764
  173,    0,  173,    0,  173,    0,    0,    0,   26,    0,
765
   26,    0,    0,    0,    0,    0,    0,    0,    0,    0,
766
    0,    0,  173,    0,    0,    0,    0,    0,    0,    0,
767
  173,  173,  173,  173,  173,  173,    0,  173,    0,  173,
768
  173,    0,    0,  173,    0,  173,    0,    0,  173,  107,
769
    0,    0,  107,    0,  107,    0,  107,    0,    0,    0,
770
    0,    0,    0,    0,    0,    0,    0,    0,  107,    0,
771
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
772
    0,   27,    0,    0,    0,    0,    0,    0,    0,    0,
773
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
774
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
775
    0,    0,    0,    0,   27,   27,   27,   27,   27,   27,
776
   27,   27,   27,    0,   27,   27,   27,   27,    0,   27,
777
   27,   27,  107,    0,  107,    0,    0,    0,    0,    0,
778
    0,   26,    0,    0,    0,   27,   27,   27,   27,    0,
779
    0,    0,    0,    0,    0,   27,   27,   27,   27,   27,
780
   27,    0,   27,   27,   27,   27,   27,    0,   27,    0,
781
    0,   27,   27,   27,   26,   26,   26,   26,   26,   26,
782
   26,   26,   26,    0,   26,   26,   26,   26,    0,   26,
783
   26,   26,  119,    0,    0,  119,    0,  119,    0,  119,
784
    0,    0,    0,    0,    0,   26,   26,   26,   26,    0,
785
    0,  119,    0,    0,    0,   26,   26,   26,   26,   26,
786
   26,    0,   26,   26,   26,   26,   26,    0,   26,    0,
787
    0,   26,   26,   26,    0,    0,    0,    0,    0,    0,
788
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
789
    0,    0,    0,   13,    0,    0,   33,    0,   34,    0,
790
   14,    0,    0,    0,    0,  107,    0,    0,    0,    0,
791
    0,    0,  108,    0,    0,  119,    0,  119,    0,    0,
792
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
793
    0,    0,    0,    0,    0,    0,    0,    0,  107,  107,
794
  107,  107,  107,  107,  107,  107,  107,    0,  107,  107,
795
  107,  107,    0,  107,  107,  107,   13,    0,    0,   33,
796
    0,   34,    0,   14,    0,    0,    0,    0,    0,  107,
797
  107,  107,  107,    0,    0,  108,   12,    0,    0,  107,
798
  107,  107,  107,  107,  107,    0,  107,  107,  107,  107,
799
  107,    0,  107,    0,    0,  107,  107,  107,    0,    0,
800
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
801
    0,    0,    0,    0,    0,    0,   13,    0,    0,   33,
802
    0,   34,    0,   14,    0,    0,    0,    0,    0,    0,
803
    0,    0,    0,    0,    0,  108,    0,    0,    0,   12,
804
    0,  200,    0,    0,    0,    0,    0,    0,  119,    0,
805
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
806
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
807
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
808
    0,  119,  119,  119,  119,  119,  119,  119,  119,  119,
809
    0,  119,  119,  119,  119,    0,  119,  119,  119,   12,
810
    0,  216,    0,    0,    0,    0,    0,    0,    0,  106,
811
    0,    0,  119,  119,  119,  119,  107,    0,    0,    0,
812
    0,    0,  119,  119,  119,  119,  119,  119,    0,  119,
813
  119,  119,  119,  119,    0,  119,    0,    0,  119,  119,
814
  119,    0,   15,   16,  109,   17,  110,  111,  112,  113,
815
  114,    0,   19,   20,  115,   21,    0,   22,  116,  117,
816
   13,    0,    0,   33,    0,   34,    0,   14,    0,    0,
817
    0,    0,  106,  118,  119,   23,    0,    0,    0,  108,
818
    0,    0,    0,   24,   25,   26,   27,   28,   29,    0,
819
   30,  120,   31,   32,  121,    0,   35,    0,    0,   36,
820
   37,   38,    0,    0,    0,   15,   16,  109,   17,  110,
821
  111,  112,  113,  114,    0,   19,   20,  115,   21,    0,
822
   22,  116,  117,    0,    0,    0,    0,    0,    0,    0,
823
    0,    0,  106,    0,    0,    0,  118,  119,   23,    0,
824
    0,    0,    0,   12,    0,  217,   24,   25,   26,   27,
825
   28,   29,    0,   30,  120,   31,   32,  121,    0,   35,
826
    0,    0,   36,   37,   38,   15,   16,  109,   17,  110,
827
  111,  112,  113,  114,    0,   19,   20,  115,   21,    0,
828
   22,  116,  117,   13,    0,    0,   33,    0,   34,    0,
829
   14,    0,    0,    0,    0,    0,  118,  119,   23,    0,
830
    0,    0,  108,    0,    0,    0,   24,   25,   26,   27,
831
   28,   29,    0,   30,  120,   31,   32,  121,    0,   35,
832
    0,    0,   36,   37,   38,    0,    0,    0,    0,    0,
833
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
834
    0,    0,    0,    0,   13,    0,    0,   33,    0,   34,
835
    0,   14,    0,    0,    0,    0,    0,    0,    0,    0,
836
    0,    0,    0,  108,    0,    0,   12,    0,  239,    0,
837
    0,    0,    0,    0,    0,    0,  106,    0,    0,    0,
838
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
839
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
840
    0,    0,    0,    0,    0,    0,    0,    0,    0,   15,
841
   16,  109,   17,  110,  111,  112,  113,  114,    0,   19,
842
   20,  115,   21,    0,   22,  116,  117,   12,    0,  254,
843
   13,    0,    0,   33,    0,   34,    0,   14,    0,    0,
844
  118,  119,   23,    0,    0,    0,    0,    0,    0,  108,
845
   24,   25,   26,   27,   28,   29,    0,   30,  120,   31,
846
   32,  121,    0,   35,    0,    0,   36,   37,   38,    0,
847
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
848
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
849
    0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
850
    0,    0,   13,    0,    0,   33,    0,   34,    0,   14,
851
    0,    0,    0,   12,    0,    0,    0,    0,    0,    0,
852
    0,  108,    0,    0,    0,    0,    0,    0,    0,    0,
853
    0,    0,   15,   16,  109,   17,  110,  111,  112,  113,
854
  114,    0,   19,   20,  115,   21,    0,   22,  116,  117,
855
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
856
  106,    0,    0,  118,  119,   23,    0,    0,    0,    0,
857
    0,    0,    0,   24,   25,   26,   27,   28,   29,    0,
858
   30,  120,   31,   32,  121,   12,   35,  335,    0,   36,
859
   37,   38,    0,   15,   16,  109,   17,  110,  111,  112,
860
  113,  114,    0,   19,   20,  115,   21,    0,   22,  116,
861
  117,    0,    0,    0,   13,    0,    0,   33,    0,   34,
862
    0,   14,    0,    0,  118,  119,   23,    0,    0,    0,
863
    0,    0,    0,  108,   24,   25,   26,   27,   28,   29,
864
    0,   30,  120,   31,   32,  121,  106,   35,    0,    0,
865
   36,   37,   38,  288,    0,    0,    0,    0,    0,    0,
866
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
867
    0,    0,    0,    0,    0,    0,    0,    0,    0,   15,
868
   16,  109,   17,  110,  111,  112,  113,  114,    0,   19,
869
   20,  115,   21,    0,   22,  116,  117,   12,    0,  355,
870
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
871
  118,  119,   23,    0,    0,    0,    0,    0,  106,    0,
872
   24,   25,   26,   27,   28,   29,    0,   30,  120,   31,
873
   32,  121,    0,   35,    0,    0,   36,   37,   38,    0,
874
    0,  118,    0,    0,  118,    0,  118,    0,  118,    0,
875
    0,   15,   16,  109,   17,  110,  111,  112,  113,  114,
876
  118,   19,   20,  115,   21,    0,   22,  116,  117,    0,
877
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
878
    0,    0,  118,  119,   23,    0,    0,    0,    0,    0,
879
    0,    0,   24,   25,   26,   27,   28,   29,    0,   30,
880
  120,   31,   32,  121,    0,   35,    0,    0,   36,   37,
881
   38,    0,    0,    0,   13,    0,    0,   33,    0,   34,
882
    0,   14,    0,    0,  118,    0,  118,    0,    0,    0,
883
  106,    0,    0,  108,    0,    0,    0,    0,    0,    0,
884
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
885
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
886
    0,    0,    0,   15,   16,  109,   17,  110,  111,  112,
887
  113,  114,    0,   19,   20,  115,   21,    0,   22,  116,
888
  117,  111,    0,    0,  111,    0,  111,    0,  111,    0,
889
    0,    0,    0,    0,  118,  119,   23,   12,    0,    0,
890
  111,    0,    0,    0,   24,   25,   26,   27,   28,   29,
891
    0,   30,  120,   31,   32,  121,    0,   35,    0,    0,
892
   36,   37,   38,    0,    0,    0,    0,    0,    0,    0,
893
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
894
    0,   21,    0,    0,   21,    0,   21,    0,   21,    0,
895
    0,    0,    0,    0,    0,    0,    0,  118,    0,    0,
896
   21,    0,    0,    0,  111,    0,    0,    0,    0,    0,
897
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
898
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
899
  118,  118,  118,  118,  118,  118,  118,  118,  118,    0,
900
  118,  118,  118,  118,    0,  118,  118,  118,  184,    0,
901
    0,  184,    0,  184,    0,  184,    0,    0,    0,    0,
902
    0,  118,  118,  118,   21,    0,    0,  184,    0,    0,
903
  106,  118,  118,  118,  118,  118,  118,    0,  118,  118,
904
  118,  118,  118,    0,  118,    0,    0,  118,  118,  118,
905
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
906
    0,    0,    0,   15,   16,  109,   17,  110,  111,  112,
907
  113,  114,    0,   19,   20,  115,   21,    0,   22,  116,
908
  117,   17,    0,    0,   17,    0,   17,    0,   17,    0,
909
    0,  184,    0,    0,  118,  119,   23,  111,    0,    0,
910
   17,    0,    0,    0,   24,   25,   26,   27,   28,   29,
911
    0,   30,  120,   31,   32,  121,    0,   35,    0,    0,
912
   36,   37,   38,    0,    0,    0,    0,    0,    0,    0,
913
  111,  111,  111,  111,  111,  111,  111,  111,  111,    0,
914
  111,  111,  111,  111,    0,  111,  111,  111,   26,   26,
915
    0,   26,    0,   26,    0,   26,    0,   21,    0,    0,
916
    0,  111,  111,  111,   17,    0,    0,    0,    0,    0,
917
    0,  111,  111,  111,  111,  111,  111,    0,  111,  111,
918
  111,  111,  111,    0,  111,    0,    0,  111,  111,  111,
919
   21,   21,   21,   21,   21,   21,   21,   21,   21,    0,
920
   21,   21,   21,   21,    0,   21,   21,   21,   15,    0,
921
    0,   15,    0,   15,    0,   15,    0,    0,    0,    0,
922
    0,   21,   21,   21,  184,    0,    0,   15,    0,    0,
923
    0,   21,   21,   21,   21,   21,   21,    0,   21,   21,
924
   21,   21,   21,    0,   21,    0,    0,   21,   21,   21,
925
    0,    0,    0,    0,    0,    0,    0,  184,  184,  184,
926
  184,  184,  184,  184,  184,  184,    0,  184,  184,  184,
927
  184,    0,  184,  184,  184,   13,    0,    0,   13,    0,
928
   13,    0,   13,    0,    0,    0,    0,    0,  184,  184,
929
  184,   15,    0,    0,   13,    0,    0,   17,  184,  184,
930
  184,  184,  184,  184,    0,  184,  184,  184,  184,  184,
931
    0,  184,    0,    0,  184,  184,  184,    0,    0,    0,
932
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
933
   17,   17,   17,   17,   17,   17,   17,   17,   17,    0,
934
   17,   17,   17,   17,    0,   17,   17,   17,    0,    0,
935
    0,    0,    0,    0,    0,    0,    0,    0,   13,    0,
936
    0,   17,   17,   17,   26,    0,    0,    0,    0,    0,
937
    0,   17,   17,   17,   17,   17,   17,    0,   17,   17,
938
   17,   17,   17,    0,   17,    0,    0,   17,   17,   17,
939
    0,   56,  136,    0,   33,  135,   34,   26,   26,    0,
940
   26,    0,   26,    0,    0,    0,    0,   26,   26,    0,
941
   26,    0,   26,    0,   89,    0,    0,    0,    0,    0,
942
    0,    0,    0,    0,   15,    0,    0,    0,   26,   26,
943
   26,    0,    0,    0,    0,    0,    0,    0,   26,   26,
944
   26,   26,   26,   26,    0,   26,    0,   26,   26,    0,
945
    0,   26,    0,    0,   26,   26,   26,   15,   15,   15,
946
   15,   15,   15,   15,   15,   15,    0,   15,   15,   15,
947
   15,    0,   15,   15,   15,   78,    0,    0,    0,    0,
948
    0,    0,    0,    0,    0,    0,    0,    0,   15,   15,
949
   15,   13,    0,    0,    0,    0,    0,    0,   15,   15,
950
   15,   15,   15,   15,    0,   15,   15,   15,   15,   15,
951
    0,   15,    0,    0,   15,   15,   15,    0,    0,    0,
952
    0,    0,    0,    0,   13,   13,   13,   13,   13,   13,
953
   13,   13,   13,    0,   13,   13,   13,   13,    0,   13,
954
   13,   13,    0,    0,    0,    0,    0,    0,    0,    0,
955
    0,    0,    0,    0,    0,   13,   13,   13,    0,    0,
956
    0,    0,    0,    0,    0,   13,   13,   13,   13,   13,
957
   13,    0,   13,   13,   13,   13,   13,    0,   13,    0,
958
    0,   13,   13,   13,   56,    0,    0,   33,    0,   34,
959
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
960
    0,    0,    0,  185,    0,    0,    0,   89,    0,    0,
961
    0,    0,    0,    0,    0,    0,    0,    0,   79,    0,
962
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
963
   80,   81,    0,   82,   83,   84,   85,   86,   87,   88,
964
   15,   16,    0,   17,    0,    0,    0,    0,    0,    0,
965
   19,   20,    0,   21,    0,   22,    0,    0,    0,    0,
966
    0,    0,    0,    0,    0,    0,   56,  316,   78,   33,
967
  135,   34,    0,   23,    0,    0,    0,    0,    0,    0,
968
    0,   24,   25,   26,   27,   28,   29,    0,   30,   89,
969
   31,   32,    0,    0,   57,    0,    0,   36,   37,   38,
970
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
971
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
972
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
973
    0,    0,    0,    0,    0,    0,    0,   56,  327,    0,
974
   33,  135,   34,    0,    0,    0,    0,    0,    0,    0,
975
   78,    0,    0,    0,    0,    0,    0,    0,    0,    0,
976
   89,    0,    0,    0,    0,    0,    0,    0,    0,    0,
977
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
978
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
979
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
980
    0,    0,    0,    0,    0,    0,    0,  177,    0,    0,
981
    0,   79,   56,  329,    0,   33,  135,   34,    0,    0,
982
    0,   78,    0,   80,   81,    0,   82,   83,   84,   85,
983
   86,   87,   88,   15,   16,   89,   17,    0,    0,    0,
984
    0,    0,    0,   19,   20,    0,   21,    0,   22,    0,
985
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
986
    0,    0,    0,    0,    0,    0,   23,    0,    0,    0,
987
    0,    0,    0,    0,   24,   25,   26,   27,   28,   29,
988
    0,   30,    0,   31,   32,    0,    0,   57,    0,    0,
989
   36,   37,   38,   79,   56,  136,   78,   33,    0,   34,
990
    0,    0,    0,    0,    0,   80,   81,    0,   82,   83,
991
   84,   85,   86,   87,   88,   15,   16,   89,   17,    0,
992
    0,    0,    0,    0,    0,   19,   20,    0,   21,    0,
993
   22,    0,    0,    0,    0,    0,    0,    0,    0,    0,
994
    0,    0,    0,    0,    0,    0,    0,    0,   23,    0,
995
    0,    0,    0,    0,    0,    0,   24,   25,   26,   27,
996
   28,   29,    0,   30,   79,   31,   32,    0,    0,   57,
997
    0,    0,   36,   37,   38,    0,   80,   81,   78,   82,
998
   83,   84,   85,   86,   87,   88,   15,   16,    0,   17,
999
    0,    0,    0,    0,    0,    0,   19,   20,    0,   21,
1000
   56,   22,    0,   33,  135,   34,    0,    0,    0,    0,
1001
    0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
1002
    0,    0,    0,   89,    0,    0,    0,   24,   25,   26,
1003
   27,   28,   29,    0,   30,    0,   31,   32,    0,   79,
1004
   57,    0,    0,   36,   37,   38,    0,    0,    0,    0,
1005
    0,   80,   81,    0,   82,   83,   84,   85,   86,   87,
1006
   88,   15,   16,    0,   17,    0,    0,    0,    0,    0,
1007
    0,   19,   20,    0,   21,   56,   22,    0,   33,    0,
1008
   34,    0,    0,    0,   78,    0,    0,    0,    0,    0,
1009
    0,    0,    0,  235,   23,    0,    0,    0,   89,    0,
1010
    0,    0,   24,   25,   26,   27,   28,   29,    0,   30,
1011
    0,   31,   32,    0,    0,   57,    0,    0,   36,   37,
1012
   38,   79,    0,    0,    0,    0,    0,    0,    0,    0,
1013
    0,    0,    0,   80,   81,    0,   82,   83,   84,   85,
1014
   86,   87,   88,   15,   16,    0,   17,    0,    0,    0,
1015
    0,    0,    0,   19,   20,    0,   21,    0,   22,   78,
1016
    0,    0,    0,    0,    0,    0,    0,   56,  272,    0,
1017
   33,    0,   34,    0,    0,    0,   23,    0,    0,    0,
1018
    0,    0,    0,    0,   24,   25,   26,   27,   28,   29,
1019
   89,   30,    0,   31,   32,    0,    0,   57,    0,    0,
1020
   36,   37,   38,    0,    0,    0,    0,    0,    0,    0,
1021
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1022
    0,    0,    0,    0,    0,    0,    0,   79,    0,    0,
1023
    0,    0,    0,    0,    0,    0,    0,    0,    0,   80,
1024
   81,    0,   82,   83,   84,   85,   86,   87,   88,   15,
1025
   16,   78,   17,    0,    0,    0,    0,    0,    0,   19,
1026
   20,    0,   21,    0,   22,   56,  310,    0,   33,    0,
1027
   34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1028
    0,    0,   23,    0,    0,    0,    0,    0,   89,    0,
1029
   24,   25,   26,   27,   28,   29,    0,   30,    0,   31,
1030
   32,    0,   79,   57,    0,    0,   36,   37,   38,    0,
1031
    0,    0,    0,    0,   80,   81,    0,   82,   83,   84,
1032
   85,   86,   87,   88,   15,   16,    0,   17,    0,    0,
1033
    0,    0,    0,    0,   19,   20,    0,   21,    0,   22,
1034
   56,  312,    0,   33,    0,   34,    0,    0,    0,   78,
1035
    0,    0,    0,    0,    0,    0,    0,   23,    0,    0,
1036
    0,    0,    0,   89,    0,   24,   25,   26,   27,   28,
1037
   29,    0,   30,    0,   31,   32,    0,    0,   57,    0,
1038
    0,   36,   37,   38,    0,    0,    0,    0,    0,    0,
1039
    0,    0,    0,    0,   79,    0,    0,    0,    0,    0,
1040
    0,    0,    0,    0,    0,    0,   80,   81,    0,   82,
1041
   83,   84,   85,   86,   87,   88,   15,   16,    0,   17,
1042
    0,    0,    0,    0,   78,    0,   19,   20,    0,   21,
1043
    0,   22,   56,  346,    0,   33,    0,   34,    0,    0,
1044
    0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
1045
    0,    0,    0,    0,    0,   89,    0,   24,   25,   26,
1046
   27,   28,   29,    0,   30,    0,   31,   32,    0,    0,
1047
   57,    0,    0,   36,   37,   38,    0,    0,    0,    0,
1048
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1049
    0,    0,   79,    0,    0,    0,    0,    0,    0,    0,
1050
    0,    0,    0,    0,   80,   81,    0,   82,   83,   84,
1051
   85,   86,   87,   88,   15,   16,   78,   17,    0,    0,
1052
    0,    0,    0,    0,   19,   20,    0,   21,    0,   22,
1053
   56,  348,    0,   33,    0,   34,    0,    0,    0,    0,
1054
    0,    0,    0,    0,    0,    0,    0,   23,    0,    0,
1055
    0,    0,    0,   89,    0,   24,   25,   26,   27,   28,
1056
   29,    0,   30,    0,   31,   32,    0,   79,   57,    0,
1057
    0,   36,   37,   38,    0,    0,    0,    0,    0,   80,
1058
   81,    0,   82,   83,   84,   85,   86,   87,   88,   15,
1059
   16,    0,   17,    0,    0,    0,    0,    0,    0,   19,
1060
   20,    0,   21,    0,   22,   56,    0,    0,   33,    0,
1061
   34,    0,    0,    0,   78,    0,    0,    0,    0,    0,
1062
    0,    0,   23,    0,  350,    0,    0,    0,   89,    0,
1063
   24,   25,   26,   27,   28,   29,    0,   30,    0,   31,
1064
   32,    0,    0,   57,    0,    0,   36,   37,   38,    0,
1065
    0,    0,    0,    0,    0,    0,    0,    0,    0,   79,
1066
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1067
    0,   80,   81,    0,   82,   83,   84,   85,   86,   87,
1068
   88,   15,   16,    0,   17,    0,    0,    0,    0,   78,
1069
    0,   19,   20,    0,   21,    0,   22,   56,  359,    0,
1070
   33,    0,   34,    0,    0,    0,    0,    0,    0,    0,
1071
    0,    0,    0,    0,   23,    0,    0,    0,    0,    0,
1072
   89,    0,   24,   25,   26,   27,   28,   29,    0,   30,
1073
    0,   31,   32,    0,    0,   57,    0,    0,   36,   37,
1074
   38,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1075
    0,    0,    0,    0,    0,    0,    0,   79,    0,    0,
1076
    0,    0,    0,    0,    0,    0,    0,    0,    0,   80,
1077
   81,    0,   82,   83,   84,   85,   86,   87,   88,   15,
1078
   16,   78,   17,    0,    0,    0,    0,    0,   56,   19,
1079
   20,   33,   21,   34,   22,    0,    0,    0,    0,    0,
1080
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1081
    0,   89,   23,    0,    0,    0,    0,    0,    0,    0,
1082
   24,   25,   26,   27,   28,   29,    0,   30,    0,   31,
1083
   32,    0,   79,   57,    0,    0,   36,   37,   38,    0,
1084
    0,    0,    0,    0,   80,   81,    0,   82,   83,   84,
1085
   85,   86,   87,   88,   15,   16,    0,   17,    0,    0,
1086
    0,    0,    0,    0,   19,   20,    0,   21,    0,   22,
1087
   93,    0,   78,   93,    0,   93,    0,    0,    0,    0,
1088
    0,    0,    0,    0,    0,    0,    0,   23,    0,    0,
1089
    0,    0,    0,   93,    0,   24,   25,   26,   27,   28,
1090
   29,    0,   30,    0,   31,   32,    0,    0,   57,    0,
1091
    0,   36,   37,   38,    0,    0,    0,    0,    0,    0,
1092
    0,    0,    0,    0,   79,    0,    0,    0,    0,    0,
1093
    0,    0,    0,    0,    0,    0,   80,   81,    0,   82,
1094
   83,   84,   85,   86,   87,   88,   15,   16,    0,   17,
1095
    0,    0,    0,    0,   93,    0,   19,   20,    0,   21,
1096
    0,   22,   58,   58,    0,    0,   58,    0,    0,    0,
1097
    0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
1098
   58,   58,    0,    0,    0,   58,    0,   24,   25,   26,
1099
   27,   28,   29,    0,   30,    0,   31,   32,    0,    0,
1100
   57,    0,    0,   36,   37,   38,    0,    0,    0,    0,
1101
    0,    0,    0,    0,    0,   79,    0,    0,    0,    0,
1102
    0,    0,    0,    0,    0,    0,    0,   80,   81,    0,
1103
   82,   83,   84,   85,   86,   87,   88,   15,   16,    0,
1104
   17,    0,    0,    0,    0,    0,   58,   19,   20,    0,
1105
   21,    0,   22,   56,   56,    0,    0,   56,    0,    0,
1106
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1107
   23,   56,   56,    0,    0,    0,   56,    0,   24,   25,
1108
   26,   27,   28,   29,    0,   30,    0,   31,   32,    0,
1109
    0,   57,    0,    0,   36,   37,   38,   93,    0,    0,
1110
    0,    0,    0,    0,    0,    0,    0,    0,    0,   93,
1111
   93,    0,   93,   93,   93,   93,   93,   93,   93,   93,
1112
   93,    0,   93,    0,    0,    0,    0,    0,    0,   93,
1113
   93,    0,   93,    0,   93,   56,    0,   56,   33,    0,
1114
   34,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1115
    0,    0,   93,    0,    0,    0,    0,    0,    0,    0,
1116
   93,   93,   93,   93,   93,   93,    0,   93,    0,   93,
1117
   93,    0,    0,   93,    0,    0,   93,   93,   93,    0,
1118
    0,    0,    0,    0,    0,   58,    0,    0,    0,   58,
1119
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1120
    0,   58,   58,   58,    0,    0,   58,    0,    0,    0,
1121
   58,   58,   58,    0,   58,    0,    0,    0,    0,   78,
1122
    0,   58,   58,    0,   58,   13,   58,    0,   33,    0,
1123
   34,    0,   14,    0,    0,    0,    0,    0,    0,    0,
1124
    0,    0,    0,    0,   58,    0,    0,    0,    0,    0,
1125
    0,    0,   58,   58,   58,   58,   58,   58,    0,   58,
1126
    0,   58,   58,    0,    0,   58,    0,    0,   58,   58,
1127
   58,    0,    0,    0,    0,    0,   56,    0,    0,    0,
1128
   56,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1129
    0,    0,   56,   56,   56,    0,    0,   56,    0,    0,
1130
    0,   56,   56,   56,    0,   56,    0,    0,   12,    0,
1131
    0,   13,   56,   56,   33,   56,   34,   56,   14,    0,
1132
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1133
    0,    0,    0,    0,    0,   56,    0,    0,    0,    0,
1134
    0,    0,    0,   56,   56,   56,   56,   56,   56,    0,
1135
   56,    0,   56,   56,    0,    0,   56,    0,    0,   56,
1136
   56,   56,   79,    0,    0,    0,    0,    0,    0,    0,
1137
    0,    0,    0,    0,    0,    0,    0,   82,   83,   84,
1138
   85,   86,   87,   88,   15,   16,   56,   17,    0,   33,
1139
    0,   34,    0,    0,   19,   20,    0,   21,    0,   22,
1140
    0,    0,    0,    0,    0,   13,    0,    0,   33,  259,
1141
   34,    0,   14,    0,    0,    0,    0,   23,    0,    0,
1142
    0,    0,    0,    0,  185,   24,   25,   26,   27,   28,
1143
   29,    0,   30,    0,   31,   32,    0,    0,   57,    0,
1144
    0,   36,   37,   38,    0,    0,   10,   11,    0,    0,
1145
    0,    0,    0,    0,    0,    0,    0,   13,  141,    0,
1146
   33,    0,   34,    0,   14,    0,    0,    0,    0,    0,
1147
    0,    0,    0,    0,   15,   16,   56,   17,    0,   33,
1148
    0,   34,    0,   18,   19,   20,    0,   21,    0,   22,
1149
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1150
    0,    0,    0,    0,    0,    0,    0,   23,    0,    0,
1151
    0,    0,    0,    0,    0,   24,   25,   26,   27,   28,
1152
   29,    0,   30,    0,   31,   32,    0,  106,   35,    0,
1153
    0,   36,   37,   38,    0,    0,   13,  149,    0,   33,
1154
    0,   34,    0,   14,    0,    0,    0,    0,    0,    0,
1155
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1156
   15,   16,    0,   17,    0,  111,    0,    0,    0,    0,
1157
   19,   20,    0,   21,    0,   22,    0,    0,    0,    0,
1158
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1159
    0,  118,  119,   23,    0,    0,    0,    0,    0,    0,
1160
    0,   24,   25,   26,   27,   28,   29,    0,   30,    0,
1161
   31,   32,    0,  257,   35,    0,    0,   36,   37,   38,
1162
    0,    0,    0,    0,   13,   80,   81,   33,  177,   34,
1163
    0,   14,    0,    0,  258,   15,   16,    0,   17,    0,
1164
    0,    0,    0,    0,    0,   19,   20,    0,   21,    0,
1165
   22,    0,    0,    0,   15,   16,    0,   17,    0,    0,
1166
    0,    0,    0,    0,   19,   20,    0,   21,   23,   22,
1167
    0,    0,    0,    0,    0,    0,   24,   25,   26,   27,
1168
   28,   29,    0,   30,    0,   31,   32,   23,    0,   57,
1169
    0,    0,   36,   37,   38,   24,   25,   26,   27,   28,
1170
   29,    0,   30,  257,   31,   32,   15,   16,   35,   17,
1171
    0,   36,   37,   38,    0,   80,   19,   20,    0,   21,
1172
    0,   22,    0,    0,  258,   15,   16,   13,   17,    0,
1173
   33,    0,   34,    0,   14,   19,   20,    0,   21,   23,
1174
   22,    0,    0,    0,    0,    0,    0,   24,   25,   26,
1175
   27,   28,   29,    0,   30,    0,   31,   32,   23,    0,
1176
   35,    0,    0,   36,   37,   38,   24,   25,   26,   27,
1177
   28,   29,    0,   30,    0,   31,   32,    0,    0,   57,
1178
    0,    0,   36,   37,   38,   15,   16,   13,   17,    0,
1179
   33,    0,   34,    0,   14,   19,   20,    0,   21,    0,
1180
   22,    0,    0,    0,    0,    0,  293,    0,    0,   33,
1181
    0,   34,    0,   14,    0,    0,    0,    0,   23,    0,
1182
    0,    0,    0,    0,    0,    0,   24,   25,   26,   27,
1183
   28,   29,    0,   30,    0,   31,   32,    0,    0,   35,
1184
    0,    0,   36,   37,   38,    0,    0,  166,    0,    0,
1185
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1186
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1187
    0,    0,    0,   15,   16,    0,   17,    0,    0,    0,
1188
    0,    0,    0,   19,   20,    0,   21,  293,   22,    0,
1189
   33,    0,   34,    0,   14,    0,    0,    0,    0,    0,
1190
    0,    0,    0,    0,    0,    0,   23,    0,    0,    0,
1191
    0,    0,    0,    0,   24,   25,   26,   27,   28,   29,
1192
    0,   30,    0,   31,   32,    0,    0,   35,    0,    0,
1193
   36,   37,   38,    0,    0,    0,    0,    0,    0,  293,
1194
    0,    0,   33,    0,   34,    0,   14,    0,    0,    0,
1195
  168,    0,    0,    0,    0,    0,    0,    0,   56,    0,
1196
    0,   33,    0,   34,    0,    0,    0,    0,    0,    0,
1197
    0,    0,    0,    0,    0,    0,   15,   16,    0,   17,
1198
    0,    0,    0,    0,    0,    0,   19,   20,    0,   21,
1199
    0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
1200
    0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
1201
  218,    0,    0,    0,    0,    0,    0,   24,   25,   26,
1202
   27,   28,   29,    0,   30,    0,   31,   32,    0,  166,
1203
   35,    0,    0,   36,   37,   38,   15,   16,   13,   17,
1204
    0,   33,    0,   34,    0,   14,   19,   20,    0,   21,
1205
    0,   22,    0,    0,    0,   15,   16,   56,   17,    0,
1206
   33,    0,   34,    0,   14,   19,   20,    0,   21,   23,
1207
   22,    0,    0,    0,    0,    0,    0,   24,   25,   26,
1208
   27,   28,   29,    0,   30,    0,   31,   32,   23,    0,
1209
   35,    0,    0,   36,   37,   38,   24,   25,   26,   27,
1210
   28,   29,    0,   30,    0,   31,   32,    0,    0,   35,
1211
  168,    0,   36,   37,   38,    0,    0,   56,    0,    0,
1212
   33,    0,   34,    0,    0,    0,    0,    0,    0,    0,
1213
    0,    0,    0,    0,    0,    0,   15,   16,    0,   17,
1214
    0,    0,    0,    0,    0,    0,   19,   20,    0,   21,
1215
    0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
1216
    0,    0,  218,    0,    0,    0,    0,    0,    0,   23,
1217
    0,    0,    0,    0,    0,    0,    0,   24,   25,   26,
1218
   27,   28,   29,    0,   30,  257,   31,   32,   15,   16,
1219
   35,   17,    0,   36,   37,   38,    0,  207,   19,   20,
1220
   33,   21,   34,   22,   14,    0,  258,   15,   16,    0,
1221
   17,    0,    0,    0,    0,    0,    0,   19,   20,    0,
1222
   21,   23,   22,    0,    0,    0,    0,    0,    0,   24,
1223
   25,   26,   27,   28,   29,    0,   30,    0,   31,   32,
1224
   23,    0,   35,    0,    0,   36,   37,   38,   24,   25,
1225
   26,   27,   28,   29,    0,   30,    0,   31,   32,    0,
1226
    0,   57,    0,    0,   36,   37,   38,  293,    0,    0,
1227
   33,    0,   34,    0,   14,    0,    0,    0,    0,    0,
1228
    0,    0,    0,    0,    0,    0,   26,   15,   16,   26,
1229
   17,   26,    0,   26,    0,    0,    0,   19,   20,    0,
1230
   21,    0,   22,    0,    0,    0,   15,   16,    0,   17,
1231
    0,    0,    0,    0,    0,    0,   19,   20,    0,   21,
1232
   23,   22,    0,    0,    0,    0,    0,    0,   24,   25,
1233
   26,   27,   28,   29,    0,   30,    0,   31,   32,   23,
1234
    0,   35,    0,    0,   36,   37,   38,   24,   25,   26,
1235
   27,   28,   29,    0,   30,    0,   31,   32,    0,    0,
1236
   35,    0,    0,   36,   37,   38,   15,   16,   56,   17,
1237
    0,   33,    0,   34,    0,    0,   19,   20,    0,   21,
1238
    0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
1239
  170,    0,    0,    0,    0,    0,    0,    0,    0,   23,
1240
    0,    0,    0,    0,    0,    0,    0,   24,   25,   26,
1241
   27,   28,   29,    0,   30,    0,   31,   32,    0,    0,
1242
   57,    0,    0,   36,   37,   38,    0,    0,    0,    0,
1243
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1244
    0,    0,    0,    0,    0,    0,   15,   16,    0,   17,
1245
    0,    0,    0,    0,    0,    0,   19,   20,    0,   21,
1246
    0,   22,    0,    0,    0,    0,    0,    0,    0,    0,
1247
    0,    0,    0,    0,    0,    0,    0,    0,    0,   23,
1248
    0,    0,    0,    0,    0,    0,    0,   24,   25,   26,
1249
   27,   28,   29,    0,   30,    0,   31,   32,    0,    0,
1250
   35,    0,    0,   36,   37,   38,    0,    0,    0,    0,
1251
    0,    0,    0,    0,    0,    0,   15,   16,    0,   17,
1252
    0,    0,    0,    0,    0,    0,   19,   20,    0,   21,
1253
    0,   22,    0,    0,    0,   26,   26,    0,   26,    0,
1254
    0,    0,    0,    0,    0,   26,   26,    0,   26,   23,
1255
   26,    0,    0,    0,    0,    0,    0,   24,   25,   26,
1256
   27,   28,   29,    0,   30,    0,   31,   32,   26,    0,
1257
   35,    0,    0,   36,   37,   38,   26,   26,   26,   26,
1258
   26,   26,    0,   26,    0,   26,   26,    0,    0,   26,
1259
    0,    0,   26,   26,   26,    0,    0,    0,    0,    0,
1260
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1261
    0,    0,    0,    0,    0,    0,    0,   15,   16,    0,
1262
   17,    0,    0,    0,    0,    0,    0,   19,   20,    0,
1263
   21,    0,   22,    0,    0,    0,    0,    0,    0,    0,
1264
    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
1265
   23,    0,    0,    0,    0,    0,    0,    0,   24,   25,
1266
   26,   27,   28,   29,    0,   30,    0,   31,   32,    0,
1267
    0,   57,    0,    0,   36,   37,   38,
1268
};
1269
const short yycheck[] =
1270
	{                                      37,
1271
    0,   37,   59,   59,   42,   43,   42,   45,   41,   47,
1272
   59,   47,   41,    7,  124,   41,   10,   11,   99,   91,
1273
  263,   79,   50,   51,   35,  110,   59,  108,  113,   59,
1274
   59,  116,  117,   59,   88,  120,  289,   37,  123,   44,
1275
   40,   41,   42,   43,   44,   45,   41,   47,   42,   41,
1276
   41,   65,   66,  123,  336,   41,    0,  111,   58,   59,
1277
   59,   44,    0,   63,   59,   40,  207,   59,   59,  346,
1278
  347,   40,  100,   59,  132,  357,   40,  330,   40,  332,
1279
   40,  247,  286,  249,  108,  289,   40,  330,    0,   41,
1280
   40,  105,   44,   93,  192,    0,   41,   41,  124,   44,
1281
   44,   91,  130,   47,  185,  190,   44,  101,   44,   47,
1282
   93,  196,   40,  330,   58,   59,  333,  336,  123,   63,
1283
  131,   59,   41,  123,  124,   37,  330,  331,  332,   41,
1284
   42,   43,   44,   45,  313,   47,   41,   40,  192,   44,
1285
   59,   93,   47,    0,  348,  345,   58,   59,   93,   93,
1286
    0,   63,  293,   58,   59,   41,  322,   93,   44,   41,
1287
   41,  185,   44,   44,  286,  337,  220,  346,  347,  227,
1288
  228,  281,   41,  263,  284,   44,   58,   59,  232,  123,
1289
   40,   93,    0,  349,   41,  123,   41,   44,   93,   44,
1290
   47,   41,  263,   41,   44,  361,   44,   47,   40,  257,
1291
  256,   58,   59,  284,  258,  124,  263,  263,   58,   59,
1292
   40,  123,  124,   63,  263,  288,  288,   41,  123,   37,
1293
   44,   47,   40,   41,   42,   43,   44,   45,  242,   47,
1294
  263,  285,   41,  263,  263,   44,   93,  263,  336,  320,
1295
   58,   59,  124,   93,  238,   63,  257,  330,  259,  323,
1296
  261,  262,  263,  263,  282,  281,  267,  315,  284,  357,
1297
  284,  261,  262,  263,  263,   44,  123,  267,  263,  350,
1298
  324,  263,  263,  123,  359,   93,   91,  263,  313,  279,
1299
  280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
1300
  290,   41,  292,   59,   44,  263,  320,  263,  298,  299,
1301
  300,   41,  302,  331,  304,  123,  124,  345,   41,  345,
1302
  341,  346,  347,  313,  308,  326,  263,  261,  262,  263,
1303
   41,  288,  322,  261,  262,  263,  350,   41,   40,    0,
1304
  330,  331,  332,  333,  334,  335,  280,  337,   59,  339,
1305
  340,   41,  289,  343,  263,  345,  346,  347,  348,  261,
1306
  262,  263,   41,   41,  298,  267,  261,  262,  263,    0,
1307
  298,   41,  281,   41,   44,  284,   44,  279,  280,  281,
1308
  282,  283,  284,  285,  286,  287,  288,  289,  290,   41,
1309
  292,  263,   44,  330,   59,  332,  298,  299,  300,  123,
1310
  302,   41,  304,  298,  179,  101,  289,   44,   -1,  281,
1311
   -1,  313,  284,  124,  261,  262,  263,   52,   53,   -1,
1312
  322,  261,  262,  263,   41,   -1,   -1,   44,  330,  331,
1313
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,  279,
1314
  280,  343,   59,  345,  346,  347,  348,  330,  331,  332,
1315
   -1,  298,   -1,  261,  262,  263,   -1,   -1,  298,  267,
1316
   41,   -1,   -1,   44,  208,  348,   -1,   -1,   -1,   -1,
1317
   -1,  279,  280,  281,  282,  283,  284,  285,   59,  287,
1318
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,
1319
  298,  299,  300,   -1,  302,   -1,  304,  337,   -1,   41,
1320
   -1,   -1,   44,   -1,    0,  313,   -1,  124,   -1,   -1,
1321
   -1,  146,  147,   -1,  322,   -1,   58,   59,  153,  154,
1322
   -1,   63,  330,  331,  332,  333,  334,  335,  208,  337,
1323
   -1,  339,  340,   -1,   -1,  343,   -1,  345,  346,  347,
1324
  348,   37,   -1,  124,   40,   41,   42,   43,   44,   45,
1325
  294,   47,  263,  297,  298,  299,  300,   -1,   41,   -1,
1326
  304,   44,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,
1327
  281,   -1,   -1,  284,  209,   58,   59,   -1,   -1,  214,
1328
  215,   -1,  124,   -1,   -1,   41,   -1,   -1,   44,  263,
1329
   -1,  226,    0,   -1,   -1,   -1,   -1,   93,  342,   -1,
1330
   -1,   -1,   58,   59,   -1,   -1,  257,   63,  259,   -1,
1331
  261,  262,  263,   -1,  294,  289,  267,  297,  298,  299,
1332
  300,  256,   -1,   -1,  304,   -1,   -1,  123,  124,   37,
1333
   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
1334
   -1,  124,   -1,   -1,  279,  280,  263,   -1,   -1,   -1,
1335
   58,   59,   -1,   -1,    0,   63,  330,  331,  332,   -1,
1336
   -1,   -1,  342,   -1,  281,   -1,   -1,  284,  124,   -1,
1337
  305,  306,   -1,   -1,  348,  326,   -1,   -1,   -1,   -1,
1338
   -1,   -1,  263,   -1,   -1,   93,    0,   -1,   -1,   -1,
1339
  325,   -1,   -1,   -1,   -1,   41,   -1,   -1,   44,   -1,
1340
  281,   47,   -1,  284,   -1,   -1,   -1,   -1,   -1,   -1,
1341
   -1,   -1,   58,   59,   -1,  123,  124,   63,   -1,   -1,
1342
   -1,  263,   -1,   37,   -1,   -1,   40,   41,   42,   43,
1343
   44,   45,   -1,   47,   -1,   -1,   -1,  279,  280,  281,
1344
   -1,   -1,  284,   -1,   58,   59,   -1,   93,   -1,   63,
1345
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1346
   -1,   -1,   -1,   -1,   -1,  261,  262,  263,   -1,   -1,
1347
   -1,  267,   -1,   -1,   -1,   -1,   -1,  123,   -1,   93,
1348
  263,   -1,   -1,  279,  280,  281,  282,  283,  284,  285,
1349
  286,  287,  288,  289,  290,  337,  292,   -1,  281,   -1,
1350
   -1,  284,  298,  299,  300,   -1,  302,  263,  304,  123,
1351
  124,   -1,   -1,   -1,   -1,   -1,   -1,  313,   -1,   -1,
1352
   -1,   -1,   -1,  279,  280,  281,  322,   -1,  284,   -1,
1353
   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
1354
   -1,  337,   -1,  339,  340,   41,   -1,  343,   44,   -1,
1355
  346,  347,  348,  261,  262,  263,   -1,   -1,   -1,  267,
1356
   -1,   -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,
1357
   -1,  279,  280,  281,  282,  283,  284,  285,  286,  287,
1358
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,
1359
  298,  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,
1360
   -1,   -1,   -1,   -1,   -1,  313,   -1,   -1,   -1,   -1,
1361
   -1,   -1,   -1,   -1,  322,  261,  262,  263,   -1,   -1,
1362
   -1,   -1,  330,  331,  332,  333,  334,  335,  124,  337,
1363
   -1,  339,  340,  279,  280,  343,   -1,   -1,  346,  347,
1364
  348,   -1,   -1,   -1,   -1,   -1,   -1,  261,  262,  263,
1365
   -1,   -1,  298,  267,   -1,   -1,   -1,   -1,   -1,   -1,
1366
   -1,   -1,   -1,   -1,   -1,  279,  280,  281,  282,  283,
1367
  284,  285,  286,  287,  288,  289,  290,   -1,  292,   -1,
1368
   -1,   -1,   -1,   -1,  298,  299,  300,   -1,  302,   -1,
1369
  304,  337,   -1,  125,   -1,  127,   -1,   -1,    0,  313,
1370
   -1,  133,  134,   -1,   -1,   -1,   -1,   -1,  322,   -1,
1371
   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
1372
  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,
1373
   -1,   -1,  346,  347,  348,   37,   -1,   -1,   40,   41,
1374
   42,   43,   44,   45,   -1,   47,   -1,   -1,  180,   -1,
1375
   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,   -1,
1376
   -1,   63,   -1,   -1,   -1,   -1,   -1,  263,   -1,   -1,
1377
   -1,  203,   -1,  205,  206,   -1,   -1,   -1,   -1,   -1,
1378
   -1,   -1,   -1,   -1,  280,  281,    0,   -1,  284,   -1,
1379
   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1380
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1381
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  251,
1382
   -1,  123,  124,   37,   -1,   -1,   40,   41,   42,   43,
1383
   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,
1384
   -1,   -1,   -1,   -1,   58,   59,   -1,   -1,    0,   63,
1385
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1386
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1387
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,
1388
    0,   -1,   -1,   -1,   -1,   -1,  318,   -1,   -1,   41,
1389
   -1,   -1,   44,   -1,   -1,   47,   -1,   -1,   -1,   -1,
1390
   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,  123,
1391
  124,   63,   -1,  345,   -1,   -1,   -1,   37,   -1,  351,
1392
   40,   41,   42,   43,   44,   45,   -1,   47,  360,   -1,
1393
   -1,   -1,   -1,  365,   -1,   -1,   -1,   -1,   58,   59,
1394
   -1,   93,   -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,
1395
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  261,
1396
  262,  263,   -1,   -1,   -1,  267,   -1,   -1,   -1,   -1,
1397
   -1,  123,   -1,   93,   -1,   -1,   -1,  279,  280,  281,
1398
  282,  283,  284,  285,  286,  287,  288,  289,  290,   -1,
1399
  292,   -1,   -1,   -1,   -1,   -1,  298,  299,  300,   -1,
1400
  302,   -1,  304,  123,  124,   -1,   -1,   -1,   -1,   -1,
1401
   -1,  313,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1402
  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
1403
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,
1404
   -1,  343,   -1,   -1,  346,  347,  348,  261,  262,  263,
1405
   -1,   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,
1406
   -1,   -1,   -1,   -1,   -1,  279,  280,  281,  282,  283,
1407
  284,  285,  286,  287,  288,  289,  290,   -1,  292,   -1,
1408
   -1,   -1,   -1,   -1,  298,  299,  300,   -1,  302,   -1,
1409
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  313,
1410
   -1,   -1,   40,   -1,   -1,   43,   -1,   45,  322,  261,
1411
  262,  263,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
1412
  334,  335,   -1,  337,   -1,  339,  340,  279,  280,  343,
1413
   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,
1414
   -1,  261,  262,  263,   -1,   -1,  298,  267,   -1,   -1,
1415
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,
1416
  280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
1417
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,
1418
  300,   -1,  302,   -1,  304,  337,  124,   -1,   -1,   -1,
1419
   -1,   -1,    0,  313,   -1,   -1,   -1,   -1,   -1,   -1,
1420
   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1421
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
1422
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   37,
1423
   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,   47,
1424
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1425
   58,   59,   -1,   -1,   -1,   63,   -1,   -1,   -1,   -1,
1426
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1427
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1428
    0,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
1429
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1430
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1431
   -1,   -1,   -1,   -1,   -1,  123,  124,   37,   -1,   -1,
1432
   40,   41,   42,   43,   44,   45,   -1,   47,   -1,  267,
1433
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,
1434
   -1,  279,   -1,   63,  282,  283,  284,  285,  286,  287,
1435
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,
1436
   -1,  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,
1437
   -1,   -1,   -1,   93,    0,   -1,   -1,   -1,   -1,   -1,
1438
   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
1439
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
1440
   -1,  339,  340,  123,  124,  343,   -1,   -1,  346,  347,
1441
  348,   37,   -1,   -1,   40,   41,   42,   43,   44,   45,
1442
   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1443
   -1,   -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,
1444
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1445
   -1,   -1,   -1,  261,  262,  263,   -1,   -1,   -1,  267,
1446
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   -1,   -1,
1447
   -1,  279,  280,  281,  282,  283,  284,  285,  286,  287,
1448
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,
1449
  298,  299,  300,   -1,  302,   -1,  304,  123,  124,   -1,
1450
   -1,   -1,   -1,   -1,   -1,  313,   -1,   -1,   -1,   -1,
1451
   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
1452
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
1453
   -1,  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,
1454
  348,  261,  262,  263,   -1,    0,   -1,  267,   -1,   -1,
1455
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,
1456
  280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
1457
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,
1458
  300,   -1,  302,   -1,  304,   40,   41,   -1,   43,   44,
1459
   45,   -1,   -1,  313,   -1,   -1,   -1,   -1,   -1,   -1,
1460
   -1,   -1,  322,   58,   59,   -1,   -1,   -1,   63,   -1,
1461
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
1462
  340,   -1,   -1,  343,   -1,  345,   -1,   -1,  348,   -1,
1463
   -1,   -1,   -1,   -1,   -1,  261,  262,  263,   93,    0,
1464
   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1465
   -1,   -1,   -1,  279,  280,   -1,  282,  283,  284,  285,
1466
  286,  287,  288,  289,  290,   -1,  292,   -1,  123,  124,
1467
   -1,   -1,  298,  299,  300,   -1,  302,   -1,  304,   40,
1468
   41,   -1,   43,   44,   45,   -1,   -1,   -1,   -1,   -1,
1469
   -1,   -1,   -1,   -1,   -1,   -1,  322,   58,   59,   -1,
1470
   -1,   -1,   63,   -1,  330,  331,  332,  333,  334,  335,
1471
   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,  345,
1472
   -1,   -1,  348,   -1,   -1,   -1,   -1,    0,   -1,   -1,
1473
   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1474
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1475
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1476
   -1,   -1,  123,  124,   -1,   -1,   -1,   40,   41,   -1,
1477
   -1,   44,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1478
   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,   -1,   -1,
1479
   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1480
   -1,   -1,   -1,   -1,   -1,   -1,  261,  262,  263,   -1,
1481
   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1482
   93,   -1,   -1,   -1,  279,  280,  281,  282,  283,  284,
1483
  285,  286,  287,  288,  289,  290,   -1,  292,   -1,   -1,
1484
   -1,   -1,   -1,  298,  299,  300,   -1,  302,   -1,  304,
1485
  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,  313,   -1,
1486
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,
1487
   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,
1488
  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,
1489
   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,
1490
  261,  262,  263,   -1,   -1,   -1,  267,   -1,   -1,   -1,
1491
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,  280,
1492
  281,  282,  283,  284,  285,  286,  287,  288,  289,  290,
1493
   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,  300,
1494
   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,
1495
   -1,   -1,  313,   -1,   -1,   -1,   -1,   40,   -1,   -1,
1496
   43,  322,   45,   -1,   -1,   -1,   -1,   -1,   -1,  330,
1497
  331,  332,  333,  334,  335,   -1,  337,   -1,  339,  340,
1498
   -1,   -1,  343,   -1,   -1,  346,  347,  348,  261,  262,
1499
  263,   -1,    0,   -1,  267,   -1,   -1,   -1,   -1,   -1,
1500
   -1,   -1,   -1,   -1,   -1,   -1,  279,  280,  281,  282,
1501
  283,  284,  285,  286,  287,  288,  289,  290,   -1,  292,
1502
   -1,   -1,   -1,   -1,   -1,  298,  299,  300,   -1,  302,
1503
   -1,  304,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
1504
  313,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
1505
   58,   59,   -1,   -1,    0,   63,   -1,  330,  331,  332,
1506
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,
1507
  343,   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,
1508
    0,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
1509
   -1,   -1,   -1,   -1,   -1,   41,   -1,   -1,   44,   -1,
1510
   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1511
   -1,   -1,   58,   59,   -1,  123,  124,   63,   -1,   -1,
1512
   40,   41,   -1,   -1,   44,   -1,   -1,   -1,   -1,   -1,
1513
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,
1514
   -1,   -1,   -1,   63,   -1,   -1,   -1,   93,   -1,   -1,
1515
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1516
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1517
   -1,   -1,   -1,   93,    0,   -1,   -1,  123,   -1,   -1,
1518
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1519
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1520
   -1,   -1,   -1,  123,  124,   -1,  289,  290,   -1,  292,
1521
   -1,   -1,   -1,   -1,   40,   41,  299,  300,   44,  302,
1522
   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1523
   -1,   -1,   58,   59,   -1,   -1,   -1,   63,   -1,  322,
1524
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
1525
  333,  334,  335,  261,  262,  263,  339,  340,   -1,  267,
1526
  343,   -1,   -1,  346,  347,  348,   -1,   93,   -1,   -1,
1527
   -1,  279,  280,  281,  282,  283,  284,  285,  286,  287,
1528
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,
1529
  298,  299,  300,   -1,  302,   -1,  304,  123,  124,   -1,
1530
   -1,   -1,   -1,   -1,   -1,  313,   -1,   -1,   -1,   -1,
1531
   -1,   -1,   -1,   -1,  322,  261,  262,  263,   -1,   -1,
1532
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
1533
   -1,  339,  340,  279,  280,  343,   -1,   -1,  346,  347,
1534
  348,  261,  262,  263,   -1,    0,   -1,  267,   -1,   -1,
1535
   -1,   -1,  298,   -1,   -1,   -1,   -1,   -1,   -1,  279,
1536
  280,  281,  282,  283,  284,  285,  286,  287,  288,  289,
1537
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,
1538
  300,   -1,  302,   -1,  304,   40,   41,   -1,   -1,   44,
1539
   -1,  337,   -1,  313,   -1,   -1,   -1,   -1,   -1,   -1,
1540
   -1,   -1,  322,   58,   59,   -1,   -1,   -1,   63,   -1,
1541
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
1542
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
1543
   -1,   -1,   -1,   -1,   -1,  261,  262,  263,   93,    0,
1544
   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1545
   -1,   -1,   -1,  279,  280,  281,  282,  283,  284,  285,
1546
  286,  287,  288,  289,  290,   -1,  292,   -1,  123,  124,
1547
   -1,   -1,  298,  299,  300,   -1,  302,   -1,  304,   40,
1548
   41,   -1,   -1,   44,   -1,   -1,   -1,  313,   -1,   -1,
1549
   -1,    0,   -1,   -1,   -1,   -1,  322,   58,   59,   -1,
1550
   -1,   -1,   63,   -1,  330,  331,  332,  333,  334,  335,
1551
   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,
1552
  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1553
   -1,   40,   93,   -1,   43,   -1,   45,   -1,   47,   -1,
1554
   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,
1555
   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1556
   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,
1557
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1558
   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
1559
   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1560
   -1,   -1,   59,   -1,   -1,   -1,  261,  262,  263,   -1,
1561
    0,   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1562
   -1,   -1,   -1,   -1,  279,  280,   -1,  282,  283,  284,
1563
  285,  286,  287,  288,  289,  290,   -1,  292,   -1,   -1,
1564
   -1,   -1,   -1,  298,  299,  300,   -1,  302,   -1,  304,
1565
   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,
1566
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,
1567
   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,
1568
  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,
1569
   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,
1570
  261,  262,  263,   -1,    0,   -1,  267,   -1,   -1,   -1,
1571
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,  280,
1572
   -1,  282,  283,  284,  285,  286,  287,  288,  289,  290,
1573
   -1,  292,   -1,  123,   -1,   -1,   -1,  298,  299,  300,
1574
   -1,  302,   -1,  304,   40,   -1,   -1,   43,   -1,   45,
1575
   -1,   47,  261,  262,  263,   -1,   -1,   -1,   -1,   -1,
1576
   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,
1577
  331,  332,  333,  334,  335,   -1,  337,   -1,  339,  340,
1578
  289,  290,  343,  292,   -1,  346,  347,  348,   -1,  298,
1579
  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,
1580
   -1,   -1,   -1,   -1,  261,  262,  263,   -1,   -1,   -1,
1581
   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,
1582
   -1,  330,  331,  332,  333,  334,  335,  123,  337,   -1,
1583
  339,  340,  289,  290,  343,  292,   -1,  346,  347,  348,
1584
   -1,  298,  299,  300,   -1,  302,   -1,  304,   -1,   -1,
1585
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1586
   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,
1587
   -1,  261,  262,  330,  331,  332,  333,  334,  335,   -1,
1588
  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,  346,
1589
  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  289,
1590
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,
1591
  300,   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,
1592
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1593
   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1594
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
1595
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
1596
   -1,   -1,   -1,   -1,   -1,  261,  262,   -1,   -1,   -1,
1597
    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1598
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1599
   -1,   -1,   -1,  289,  290,   -1,  292,   -1,   -1,   -1,
1600
   -1,   -1,  298,  299,  300,   -1,  302,   37,  304,   -1,
1601
   40,   41,   42,   43,   44,   45,   -1,   47,   -1,   -1,
1602
   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   58,   59,
1603
   -1,   -1,    0,   63,  330,  331,  332,  333,  334,  335,
1604
   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,
1605
  346,  347,  348,   -1,   -1,   -1,   -1,    0,   -1,   -1,
1606
   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,   -1,
1607
   -1,   -1,   -1,   41,   -1,   -1,   44,   -1,   -1,   47,
1608
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1609
   58,   59,   -1,  123,  124,   63,   -1,   40,   41,   -1,
1610
   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
1611
   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,   -1,    0,
1612
   63,   -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,
1613
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1614
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,
1615
   93,   -1,   -1,   -1,   -1,  123,   -1,   -1,   -1,   -1,
1616
   41,   -1,   -1,   44,   -1,   -1,   47,   -1,   -1,   -1,
1617
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,
1618
  123,  124,   63,   -1,   -1,   -1,   -1,   -1,   -1,   41,
1619
   -1,   -1,   44,   -1,   -1,   47,   -1,   -1,   -1,   -1,
1620
   -1,   -1,   -1,   -1,   -1,   40,   58,   59,   43,   -1,
1621
   45,   63,   93,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1622
   -1,   -1,   -1,   58,   -1,   -1,   -1,   -1,   63,   -1,
1623
   -1,  261,  262,  263,   -1,   -1,   -1,  267,   -1,   -1,
1624
   -1,   93,  123,   -1,   -1,   -1,   -1,   -1,   -1,  279,
1625
  280,  281,  282,  283,  284,  285,   -1,  287,  288,   -1,
1626
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,  298,  299,
1627
  300,  123,  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,
1628
   -1,   -1,   -1,  313,   -1,   -1,   -1,   -1,   -1,   -1,
1629
   -1,   -1,  322,  261,  262,  263,   -1,   -1,   -1,   -1,
1630
   -1,   -1,   -1,  333,  334,  335,   -1,  337,   -1,  339,
1631
  340,  279,  280,  343,   -1,  345,  346,  347,  261,  262,
1632
  263,   -1,   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,
1633
  298,   -1,   -1,   -1,   -1,   -1,  279,  280,   -1,  282,
1634
  283,  284,  285,  286,  287,  288,   -1,  290,   -1,  292,
1635
   -1,   -1,   -1,   -1,   -1,  298,  299,  300,   -1,  302,
1636
   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  337,
1637
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
1638
  261,  262,  263,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1639
  333,  334,  335,   -1,  337,   -1,  339,  340,  279,  280,
1640
  343,   -1,   17,  346,  347,   -1,   -1,   -1,   -1,  261,
1641
  262,  263,   -1,   -1,   -1,   30,   -1,  298,   33,   34,
1642
   35,   36,   37,   38,   39,   -1,   -1,  279,  280,   -1,
1643
   -1,   -1,  267,   -1,   -1,   -1,   -1,   52,   -1,   -1,
1644
   -1,   -1,   57,   -1,  279,  280,  298,   -1,   -1,   -1,
1645
   -1,   -1,   67,  288,  289,  290,  337,  292,   -1,   -1,
1646
   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,  304,
1647
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   94,
1648
   95,   96,   97,   98,   -1,  337,   -1,  322,   -1,   -1,
1649
   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,
1650
  335,   -1,  337,   -1,  339,  340,   -1,  122,  343,   -1,
1651
   -1,  346,  347,  348,   -1,    0,  131,   -1,   -1,   -1,
1652
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  142,   -1,  144,
1653
   -1,  146,  147,   -1,   -1,   -1,   -1,  152,  153,  154,
1654
  155,  156,   -1,  158,  159,  160,  161,  162,  163,   -1,
1655
  165,   -1,  167,   -1,  169,  170,   41,   -1,   -1,   44,
1656
   -1,   -1,   47,   -1,   -1,   -1,   -1,  182,   -1,   -1,
1657
   -1,   -1,   -1,   58,   59,  190,   -1,   -1,   63,   -1,
1658
   -1,  196,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1659
   -1,   -1,   -1,  208,   -1,   -1,   -1,   -1,   -1,  214,
1660
   -1,   -1,   -1,   -1,  219,   -1,  221,   -1,   93,   -1,
1661
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   17,
1662
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1663
   -1,   -1,  247,   -1,  249,   33,   34,   35,  123,   -1,
1664
   38,   39,  257,   -1,  259,   -1,  261,  262,  263,  264,
1665
  265,  266,  267,   -1,   52,   -1,  271,   -1,   -1,   57,
1666
  275,   -1,  277,   -1,   -1,  280,  281,   -1,   -1,   67,
1667
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  294,
1668
   -1,   -1,  297,  298,  299,  300,   -1,   -1,   -1,  304,
1669
  305,  306,   -1,   -1,   -1,   93,   94,   95,   96,   97,
1670
   98,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1671
   -1,  326,   -1,  328,   -1,  330,   -1,  332,   -1,  334,
1672
   -1,   -1,  337,   -1,  122,   -1,   -1,  342,   -1,   -1,
1673
   -1,   -1,   -1,  131,   -1,   -1,   -1,  352,   -1,   -1,
1674
   -1,   -1,   -1,   -1,  142,   -1,  144,   -1,  146,  147,
1675
   -1,   -1,   -1,   -1,  152,  153,  154,   -1,  156,   -1,
1676
  158,  159,  160,  161,  162,  163,   -1,  165,   -1,  167,
1677
   -1,  169,  170,   -1,   -1,   -1,  261,  262,  263,   -1,
1678
   -1,   -1,   -1,   37,  182,   -1,   40,   -1,   42,   43,
1679
   -1,   45,  190,   47,  279,  280,   -1,   -1,  196,   -1,
1680
   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   63,
1681
  208,   -1,   -1,  298,   -1,   -1,  214,   -1,   -1,   -1,
1682
   -1,  219,   -1,  221,   -1,   -1,   -1,   -1,   -1,   -1,
1683
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1684
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  247,
1685
   -1,  249,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,
1686
   -1,  259,   -1,  261,  262,  263,  264,  265,  266,  267,
1687
  124,   -1,   -1,  271,   -1,   -1,   -1,  275,   -1,  277,
1688
   -1,   -1,  280,  281,    7,   -1,   -1,   -1,   -1,   -1,
1689
   13,   -1,   -1,   -1,   -1,   -1,  294,   -1,   -1,  297,
1690
  298,  299,  300,   -1,   -1,   -1,  304,  305,  306,   -1,
1691
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1692
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  326,   -1,
1693
   -1,   -1,   55,   56,  332,   -1,  334,   -1,   -1,  337,
1694
   63,   64,   65,   66,  342,   -1,   69,   70,   -1,   -1,
1695
   -1,   -1,   -1,   -1,  352,   -1,   79,   -1,   -1,   82,
1696
   83,   84,   85,   86,   87,   -1,   89,   37,   91,   92,
1697
   40,   41,   42,   43,   44,   45,   -1,   47,  101,  102,
1698
   -1,   -1,  105,   -1,   -1,   -1,   -1,   -1,   58,   59,
1699
  113,   -1,   -1,   63,   -1,   -1,   -1,  120,   -1,   -1,
1700
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  132,
1701
   -1,   -1,   -1,  267,  137,   -1,  139,   -1,   -1,   -1,
1702
   -1,   -1,   -1,   -1,   -1,  279,  280,   -1,  282,  283,
1703
  284,  285,  286,  287,   -1,  289,  290,   -1,  292,   -1,
1704
   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,
1705
  304,   -1,   -1,   -1,  124,   -1,  179,   -1,   -1,  313,
1706
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,
1707
  193,   -1,   -1,   -1,   -1,  198,  330,  331,  332,  333,
1708
  334,  335,   -1,  337,  207,  339,  340,   -1,   -1,  343,
1709
   -1,  345,  346,  347,  348,   40,   41,   -1,   43,   -1,
1710
   45,  224,   47,   -1,  227,  228,   -1,   -1,   -1,   -1,
1711
  233,   -1,  235,   -1,   59,   -1,   -1,   -1,   -1,  242,
1712
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1713
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1714
   -1,   -1,   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,
1715
   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
1716
   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1717
  293,   -1,   -1,   -1,   59,   -1,   -1,   -1,  123,   -1,
1718
  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1719
   -1,   -1,  315,  263,  317,   -1,   -1,  267,  321,   -1,
1720
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,
1721
  280,  281,   -1,   -1,  284,   -1,  339,   -1,  288,  289,
1722
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,   -1,  299,
1723
  300,   -1,  302,   -1,  304,   -1,   -1,   -1,  123,   -1,
1724
  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1725
   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1726
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
1727
  340,   -1,   -1,  343,   -1,  345,   -1,   -1,  348,   40,
1728
   -1,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
1729
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
1730
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1731
   -1,  256,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1732
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1733
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1734
   -1,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
1735
  295,  296,  297,   -1,  299,  300,  301,  302,   -1,  304,
1736
  305,  306,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
1737
   -1,  256,   -1,   -1,   -1,  320,  321,  322,  323,   -1,
1738
   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,
1739
  335,   -1,  337,  338,  339,  340,  341,   -1,  343,   -1,
1740
   -1,  346,  347,  348,  289,  290,  291,  292,  293,  294,
1741
  295,  296,  297,   -1,  299,  300,  301,  302,   -1,  304,
1742
  305,  306,   40,   -1,   -1,   43,   -1,   45,   -1,   47,
1743
   -1,   -1,   -1,   -1,   -1,  320,  321,  322,  323,   -1,
1744
   -1,   59,   -1,   -1,   -1,  330,  331,  332,  333,  334,
1745
  335,   -1,  337,  338,  339,  340,  341,   -1,  343,   -1,
1746
   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,
1747
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1748
   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
1749
   47,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,   -1,
1750
   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,   -1,
1751
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1752
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  289,  290,
1753
  291,  292,  293,  294,  295,  296,  297,   -1,  299,  300,
1754
  301,  302,   -1,  304,  305,  306,   40,   -1,   -1,   43,
1755
   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,  320,
1756
  321,  322,  323,   -1,   -1,   59,  123,   -1,   -1,  330,
1757
  331,  332,  333,  334,  335,   -1,  337,  338,  339,  340,
1758
  341,   -1,  343,   -1,   -1,  346,  347,  348,   -1,   -1,
1759
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1760
   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,
1761
   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,
1762
   -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,  123,
1763
   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,
1764
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1765
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1766
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1767
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
1768
   -1,  299,  300,  301,  302,   -1,  304,  305,  306,  123,
1769
   -1,  125,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,
1770
   -1,   -1,  320,  321,  322,  323,  263,   -1,   -1,   -1,
1771
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
1772
  338,  339,  340,  341,   -1,  343,   -1,   -1,  346,  347,
1773
  348,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
1774
  297,   -1,  299,  300,  301,  302,   -1,  304,  305,  306,
1775
   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,
1776
   -1,   -1,  256,  320,  321,  322,   -1,   -1,   -1,   59,
1777
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,
1778
  337,  338,  339,  340,  341,   -1,  343,   -1,   -1,  346,
1779
  347,  348,   -1,   -1,   -1,  289,  290,  291,  292,  293,
1780
  294,  295,  296,  297,   -1,  299,  300,  301,  302,   -1,
1781
  304,  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1782
   -1,   -1,  256,   -1,   -1,   -1,  320,  321,  322,   -1,
1783
   -1,   -1,   -1,  123,   -1,  125,  330,  331,  332,  333,
1784
  334,  335,   -1,  337,  338,  339,  340,  341,   -1,  343,
1785
   -1,   -1,  346,  347,  348,  289,  290,  291,  292,  293,
1786
  294,  295,  296,  297,   -1,  299,  300,  301,  302,   -1,
1787
  304,  305,  306,   40,   -1,   -1,   43,   -1,   45,   -1,
1788
   47,   -1,   -1,   -1,   -1,   -1,  320,  321,  322,   -1,
1789
   -1,   -1,   59,   -1,   -1,   -1,  330,  331,  332,  333,
1790
  334,  335,   -1,  337,  338,  339,  340,  341,   -1,  343,
1791
   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,
1792
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1793
   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
1794
   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1795
   -1,   -1,   -1,   59,   -1,   -1,  123,   -1,  125,   -1,
1796
   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,
1797
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1798
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1799
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  289,
1800
  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
1801
  300,  301,  302,   -1,  304,  305,  306,  123,   -1,  125,
1802
   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,
1803
  320,  321,  322,   -1,   -1,   -1,   -1,   -1,   -1,   59,
1804
  330,  331,  332,  333,  334,  335,   -1,  337,  338,  339,
1805
  340,  341,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
1806
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1807
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1808
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,
1809
   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,   47,
1810
   -1,   -1,   -1,  123,   -1,   -1,   -1,   -1,   -1,   -1,
1811
   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1812
   -1,   -1,  289,  290,  291,  292,  293,  294,  295,  296,
1813
  297,   -1,  299,  300,  301,  302,   -1,  304,  305,  306,
1814
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1815
  256,   -1,   -1,  320,  321,  322,   -1,   -1,   -1,   -1,
1816
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,
1817
  337,  338,  339,  340,  341,  123,  343,  125,   -1,  346,
1818
  347,  348,   -1,  289,  290,  291,  292,  293,  294,  295,
1819
  296,  297,   -1,  299,  300,  301,  302,   -1,  304,  305,
1820
  306,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
1821
   -1,   47,   -1,   -1,  320,  321,  322,   -1,   -1,   -1,
1822
   -1,   -1,   -1,   59,  330,  331,  332,  333,  334,  335,
1823
   -1,  337,  338,  339,  340,  341,  256,  343,   -1,   -1,
1824
  346,  347,  348,  263,   -1,   -1,   -1,   -1,   -1,   -1,
1825
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1826
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  289,
1827
  290,  291,  292,  293,  294,  295,  296,  297,   -1,  299,
1828
  300,  301,  302,   -1,  304,  305,  306,  123,   -1,  125,
1829
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1830
  320,  321,  322,   -1,   -1,   -1,   -1,   -1,  256,   -1,
1831
  330,  331,  332,  333,  334,  335,   -1,  337,  338,  339,
1832
  340,  341,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
1833
   -1,   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,
1834
   -1,  289,  290,  291,  292,  293,  294,  295,  296,  297,
1835
   59,  299,  300,  301,  302,   -1,  304,  305,  306,   -1,
1836
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1837
   -1,   -1,  320,  321,  322,   -1,   -1,   -1,   -1,   -1,
1838
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
1839
  338,  339,  340,  341,   -1,  343,   -1,   -1,  346,  347,
1840
  348,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
1841
   -1,   47,   -1,   -1,  123,   -1,  125,   -1,   -1,   -1,
1842
  256,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1843
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1844
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1845
   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
1846
  296,  297,   -1,  299,  300,  301,  302,   -1,  304,  305,
1847
  306,   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,
1848
   -1,   -1,   -1,   -1,  320,  321,  322,  123,   -1,   -1,
1849
   59,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
1850
   -1,  337,  338,  339,  340,  341,   -1,  343,   -1,   -1,
1851
  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1852
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1853
   -1,   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,
1854
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  256,   -1,   -1,
1855
   59,   -1,   -1,   -1,  123,   -1,   -1,   -1,   -1,   -1,
1856
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1857
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1858
  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1859
  299,  300,  301,  302,   -1,  304,  305,  306,   40,   -1,
1860
   -1,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,
1861
   -1,  320,  321,  322,  123,   -1,   -1,   59,   -1,   -1,
1862
  256,  330,  331,  332,  333,  334,  335,   -1,  337,  338,
1863
  339,  340,  341,   -1,  343,   -1,   -1,  346,  347,  348,
1864
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1865
   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,  295,
1866
  296,  297,   -1,  299,  300,  301,  302,   -1,  304,  305,
1867
  306,   40,   -1,   -1,   43,   -1,   45,   -1,   47,   -1,
1868
   -1,  123,   -1,   -1,  320,  321,  322,  256,   -1,   -1,
1869
   59,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
1870
   -1,  337,  338,  339,  340,  341,   -1,  343,   -1,   -1,
1871
  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1872
  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1873
  299,  300,  301,  302,   -1,  304,  305,  306,   40,   41,
1874
   -1,   43,   -1,   45,   -1,   47,   -1,  256,   -1,   -1,
1875
   -1,  320,  321,  322,  123,   -1,   -1,   -1,   -1,   -1,
1876
   -1,  330,  331,  332,  333,  334,  335,   -1,  337,  338,
1877
  339,  340,  341,   -1,  343,   -1,   -1,  346,  347,  348,
1878
  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1879
  299,  300,  301,  302,   -1,  304,  305,  306,   40,   -1,
1880
   -1,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,
1881
   -1,  320,  321,  322,  256,   -1,   -1,   59,   -1,   -1,
1882
   -1,  330,  331,  332,  333,  334,  335,   -1,  337,  338,
1883
  339,  340,  341,   -1,  343,   -1,   -1,  346,  347,  348,
1884
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  289,  290,  291,
1885
  292,  293,  294,  295,  296,  297,   -1,  299,  300,  301,
1886
  302,   -1,  304,  305,  306,   40,   -1,   -1,   43,   -1,
1887
   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,  320,  321,
1888
  322,  123,   -1,   -1,   59,   -1,   -1,  256,  330,  331,
1889
  332,  333,  334,  335,   -1,  337,  338,  339,  340,  341,
1890
   -1,  343,   -1,   -1,  346,  347,  348,   -1,   -1,   -1,
1891
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1892
  289,  290,  291,  292,  293,  294,  295,  296,  297,   -1,
1893
  299,  300,  301,  302,   -1,  304,  305,  306,   -1,   -1,
1894
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,   -1,
1895
   -1,  320,  321,  322,  256,   -1,   -1,   -1,   -1,   -1,
1896
   -1,  330,  331,  332,  333,  334,  335,   -1,  337,  338,
1897
  339,  340,  341,   -1,  343,   -1,   -1,  346,  347,  348,
1898
   -1,   40,   41,   -1,   43,   44,   45,  289,  290,   -1,
1899
  292,   -1,  294,   -1,   -1,   -1,   -1,  299,  300,   -1,
1900
  302,   -1,  304,   -1,   63,   -1,   -1,   -1,   -1,   -1,
1901
   -1,   -1,   -1,   -1,  256,   -1,   -1,   -1,  320,  321,
1902
  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
1903
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,
1904
   -1,  343,   -1,   -1,  346,  347,  348,  289,  290,  291,
1905
  292,  293,  294,  295,  296,  297,   -1,  299,  300,  301,
1906
  302,   -1,  304,  305,  306,  124,   -1,   -1,   -1,   -1,
1907
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  320,  321,
1908
  322,  256,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
1909
  332,  333,  334,  335,   -1,  337,  338,  339,  340,  341,
1910
   -1,  343,   -1,   -1,  346,  347,  348,   -1,   -1,   -1,
1911
   -1,   -1,   -1,   -1,  289,  290,  291,  292,  293,  294,
1912
  295,  296,  297,   -1,  299,  300,  301,  302,   -1,  304,
1913
  305,  306,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1914
   -1,   -1,   -1,   -1,   -1,  320,  321,  322,   -1,   -1,
1915
   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,
1916
  335,   -1,  337,  338,  339,  340,  341,   -1,  343,   -1,
1917
   -1,  346,  347,  348,   40,   -1,   -1,   43,   -1,   45,
1918
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1919
   -1,   -1,   -1,   59,   -1,   -1,   -1,   63,   -1,   -1,
1920
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  267,   -1,
1921
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1922
  279,  280,   -1,  282,  283,  284,  285,  286,  287,  288,
1923
  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,   -1,
1924
  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,
1925
   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,  124,   43,
1926
   44,   45,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,
1927
   -1,  330,  331,  332,  333,  334,  335,   -1,  337,   63,
1928
  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,
1929
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1930
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1931
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1932
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
1933
   43,   44,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1934
  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1935
   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1936
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1937
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1938
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1939
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  263,   -1,   -1,
1940
   -1,  267,   40,   41,   -1,   43,   44,   45,   -1,   -1,
1941
   -1,  124,   -1,  279,  280,   -1,  282,  283,  284,  285,
1942
  286,  287,  288,  289,  290,   63,  292,   -1,   -1,   -1,
1943
   -1,   -1,   -1,  299,  300,   -1,  302,   -1,  304,   -1,
1944
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1945
   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,
1946
   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
1947
   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,
1948
  346,  347,  348,  267,   40,   41,  124,   43,   -1,   45,
1949
   -1,   -1,   -1,   -1,   -1,  279,  280,   -1,  282,  283,
1950
  284,  285,  286,  287,  288,  289,  290,   63,  292,   -1,
1951
   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,
1952
  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1953
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,
1954
   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
1955
  334,  335,   -1,  337,  267,  339,  340,   -1,   -1,  343,
1956
   -1,   -1,  346,  347,  348,   -1,  279,  280,  124,  282,
1957
  283,  284,  285,  286,  287,  288,  289,  290,   -1,  292,
1958
   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,
1959
   40,  304,   -1,   43,   44,   45,   -1,   -1,   -1,   -1,
1960
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
1961
   -1,   -1,   -1,   63,   -1,   -1,   -1,  330,  331,  332,
1962
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,  267,
1963
  343,   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,
1964
   -1,  279,  280,   -1,  282,  283,  284,  285,  286,  287,
1965
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,
1966
   -1,  299,  300,   -1,  302,   40,  304,   -1,   43,   -1,
1967
   45,   -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   -1,
1968
   -1,   -1,   -1,   58,  322,   -1,   -1,   -1,   63,   -1,
1969
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
1970
   -1,  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,
1971
  348,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1972
   -1,   -1,   -1,  279,  280,   -1,  282,  283,  284,  285,
1973
  286,  287,  288,  289,  290,   -1,  292,   -1,   -1,   -1,
1974
   -1,   -1,   -1,  299,  300,   -1,  302,   -1,  304,  124,
1975
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
1976
   43,   -1,   45,   -1,   -1,   -1,  322,   -1,   -1,   -1,
1977
   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
1978
   63,  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,
1979
  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1980
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1981
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  267,   -1,   -1,
1982
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,
1983
  280,   -1,  282,  283,  284,  285,  286,  287,  288,  289,
1984
  290,  124,  292,   -1,   -1,   -1,   -1,   -1,   -1,  299,
1985
  300,   -1,  302,   -1,  304,   40,   41,   -1,   43,   -1,
1986
   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1987
   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   63,   -1,
1988
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
1989
  340,   -1,  267,  343,   -1,   -1,  346,  347,  348,   -1,
1990
   -1,   -1,   -1,   -1,  279,  280,   -1,  282,  283,  284,
1991
  285,  286,  287,  288,  289,  290,   -1,  292,   -1,   -1,
1992
   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,  304,
1993
   40,   41,   -1,   43,   -1,   45,   -1,   -1,   -1,  124,
1994
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,
1995
   -1,   -1,   -1,   63,   -1,  330,  331,  332,  333,  334,
1996
  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,
1997
   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,
1998
   -1,   -1,   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,
1999
   -1,   -1,   -1,   -1,   -1,   -1,  279,  280,   -1,  282,
2000
  283,  284,  285,  286,  287,  288,  289,  290,   -1,  292,
2001
   -1,   -1,   -1,   -1,  124,   -1,  299,  300,   -1,  302,
2002
   -1,  304,   40,   41,   -1,   43,   -1,   45,   -1,   -1,
2003
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
2004
   -1,   -1,   -1,   -1,   -1,   63,   -1,  330,  331,  332,
2005
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,
2006
  343,   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,
2007
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2008
   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2009
   -1,   -1,   -1,   -1,  279,  280,   -1,  282,  283,  284,
2010
  285,  286,  287,  288,  289,  290,  124,  292,   -1,   -1,
2011
   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,  304,
2012
   40,   41,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,
2013
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,
2014
   -1,   -1,   -1,   63,   -1,  330,  331,  332,  333,  334,
2015
  335,   -1,  337,   -1,  339,  340,   -1,  267,  343,   -1,
2016
   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,  279,
2017
  280,   -1,  282,  283,  284,  285,  286,  287,  288,  289,
2018
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,   -1,  299,
2019
  300,   -1,  302,   -1,  304,   40,   -1,   -1,   43,   -1,
2020
   45,   -1,   -1,   -1,  124,   -1,   -1,   -1,   -1,   -1,
2021
   -1,   -1,  322,   -1,   59,   -1,   -1,   -1,   63,   -1,
2022
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
2023
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
2024
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  267,
2025
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2026
   -1,  279,  280,   -1,  282,  283,  284,  285,  286,  287,
2027
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,  124,
2028
   -1,  299,  300,   -1,  302,   -1,  304,   40,   41,   -1,
2029
   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2030
   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
2031
   63,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
2032
   -1,  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,
2033
  348,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2034
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  267,   -1,   -1,
2035
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,
2036
  280,   -1,  282,  283,  284,  285,  286,  287,  288,  289,
2037
  290,  124,  292,   -1,   -1,   -1,   -1,   -1,   40,  299,
2038
  300,   43,  302,   45,  304,   -1,   -1,   -1,   -1,   -1,
2039
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2040
   -1,   63,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2041
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
2042
  340,   -1,  267,  343,   -1,   -1,  346,  347,  348,   -1,
2043
   -1,   -1,   -1,   -1,  279,  280,   -1,  282,  283,  284,
2044
  285,  286,  287,  288,  289,  290,   -1,  292,   -1,   -1,
2045
   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,  304,
2046
   40,   -1,  124,   43,   -1,   45,   -1,   -1,   -1,   -1,
2047
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,
2048
   -1,   -1,   -1,   63,   -1,  330,  331,  332,  333,  334,
2049
  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,
2050
   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,
2051
   -1,   -1,   -1,   -1,  267,   -1,   -1,   -1,   -1,   -1,
2052
   -1,   -1,   -1,   -1,   -1,   -1,  279,  280,   -1,  282,
2053
  283,  284,  285,  286,  287,  288,  289,  290,   -1,  292,
2054
   -1,   -1,   -1,   -1,  124,   -1,  299,  300,   -1,  302,
2055
   -1,  304,   40,   41,   -1,   -1,   44,   -1,   -1,   -1,
2056
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
2057
   58,   59,   -1,   -1,   -1,   63,   -1,  330,  331,  332,
2058
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,
2059
  343,   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,
2060
   -1,   -1,   -1,   -1,   -1,  267,   -1,   -1,   -1,   -1,
2061
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,  280,   -1,
2062
  282,  283,  284,  285,  286,  287,  288,  289,  290,   -1,
2063
  292,   -1,   -1,   -1,   -1,   -1,  124,  299,  300,   -1,
2064
  302,   -1,  304,   40,   41,   -1,   -1,   44,   -1,   -1,
2065
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2066
  322,   58,   59,   -1,   -1,   -1,   63,   -1,  330,  331,
2067
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,
2068
   -1,  343,   -1,   -1,  346,  347,  348,  267,   -1,   -1,
2069
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  279,
2070
  280,   -1,  282,  283,  284,  285,  286,  287,  288,  289,
2071
  290,   -1,  292,   -1,   -1,   -1,   -1,   -1,   -1,  299,
2072
  300,   -1,  302,   -1,  304,   40,   -1,  124,   43,   -1,
2073
   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2074
   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2075
  330,  331,  332,  333,  334,  335,   -1,  337,   -1,  339,
2076
  340,   -1,   -1,  343,   -1,   -1,  346,  347,  348,   -1,
2077
   -1,   -1,   -1,   -1,   -1,  263,   -1,   -1,   -1,  267,
2078
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2079
   -1,  279,  280,  281,   -1,   -1,  284,   -1,   -1,   -1,
2080
  288,  289,  290,   -1,  292,   -1,   -1,   -1,   -1,  124,
2081
   -1,  299,  300,   -1,  302,   40,  304,   -1,   43,   -1,
2082
   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2083
   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,   -1,
2084
   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,  337,
2085
   -1,  339,  340,   -1,   -1,  343,   -1,   -1,  346,  347,
2086
  348,   -1,   -1,   -1,   -1,   -1,  263,   -1,   -1,   -1,
2087
  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2088
   -1,   -1,  279,  280,  281,   -1,   -1,  284,   -1,   -1,
2089
   -1,  288,  289,  290,   -1,  292,   -1,   -1,  123,   -1,
2090
   -1,   40,  299,  300,   43,  302,   45,  304,   47,   -1,
2091
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2092
   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,   -1,
2093
   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,   -1,
2094
  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,  346,
2095
  347,  348,  267,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2096
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  282,  283,  284,
2097
  285,  286,  287,  288,  289,  290,   40,  292,   -1,   43,
2098
   -1,   45,   -1,   -1,  299,  300,   -1,  302,   -1,  304,
2099
   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   63,
2100
   45,   -1,   47,   -1,   -1,   -1,   -1,  322,   -1,   -1,
2101
   -1,   -1,   -1,   -1,   59,  330,  331,  332,  333,  334,
2102
  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,
2103
   -1,  346,  347,  348,   -1,   -1,  261,  262,   -1,   -1,
2104
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
2105
   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
2106
   -1,   -1,   -1,   -1,  289,  290,   40,  292,   -1,   43,
2107
   -1,   45,   -1,  298,  299,  300,   -1,  302,   -1,  304,
2108
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2109
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,
2110
   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,
2111
  335,   -1,  337,   -1,  339,  340,   -1,  256,  343,   -1,
2112
   -1,  346,  347,  348,   -1,   -1,   40,   41,   -1,   43,
2113
   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,
2114
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2115
  289,  290,   -1,  292,   -1,  294,   -1,   -1,   -1,   -1,
2116
  299,  300,   -1,  302,   -1,  304,   -1,   -1,   -1,   -1,
2117
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2118
   -1,  320,  321,  322,   -1,   -1,   -1,   -1,   -1,   -1,
2119
   -1,  330,  331,  332,  333,  334,  335,   -1,  337,   -1,
2120
  339,  340,   -1,  267,  343,   -1,   -1,  346,  347,  348,
2121
   -1,   -1,   -1,   -1,   40,  279,  280,   43,  263,   45,
2122
   -1,   47,   -1,   -1,  288,  289,  290,   -1,  292,   -1,
2123
   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,   -1,
2124
  304,   -1,   -1,   -1,  289,  290,   -1,  292,   -1,   -1,
2125
   -1,   -1,   -1,   -1,  299,  300,   -1,  302,  322,  304,
2126
   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
2127
  334,  335,   -1,  337,   -1,  339,  340,  322,   -1,  343,
2128
   -1,   -1,  346,  347,  348,  330,  331,  332,  333,  334,
2129
  335,   -1,  337,  267,  339,  340,  289,  290,  343,  292,
2130
   -1,  346,  347,  348,   -1,  279,  299,  300,   -1,  302,
2131
   -1,  304,   -1,   -1,  288,  289,  290,   40,  292,   -1,
2132
   43,   -1,   45,   -1,   47,  299,  300,   -1,  302,  322,
2133
  304,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
2134
  333,  334,  335,   -1,  337,   -1,  339,  340,  322,   -1,
2135
  343,   -1,   -1,  346,  347,  348,  330,  331,  332,  333,
2136
  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,
2137
   -1,   -1,  346,  347,  348,  289,  290,   40,  292,   -1,
2138
   43,   -1,   45,   -1,   47,  299,  300,   -1,  302,   -1,
2139
  304,   -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,
2140
   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,  322,   -1,
2141
   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,  333,
2142
  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,
2143
   -1,   -1,  346,  347,  348,   -1,   -1,  263,   -1,   -1,
2144
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2145
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2146
   -1,   -1,   -1,  289,  290,   -1,  292,   -1,   -1,   -1,
2147
   -1,   -1,   -1,  299,  300,   -1,  302,   40,  304,   -1,
2148
   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
2149
   -1,   -1,   -1,   -1,   -1,   -1,  322,   -1,   -1,   -1,
2150
   -1,   -1,   -1,   -1,  330,  331,  332,  333,  334,  335,
2151
   -1,  337,   -1,  339,  340,   -1,   -1,  343,   -1,   -1,
2152
  346,  347,  348,   -1,   -1,   -1,   -1,   -1,   -1,   40,
2153
   -1,   -1,   43,   -1,   45,   -1,   47,   -1,   -1,   -1,
2154
  263,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   -1,
2155
   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
2156
   -1,   -1,   -1,   -1,   -1,   -1,  289,  290,   -1,  292,
2157
   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,
2158
   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2159
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
2160
  263,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
2161
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,  263,
2162
  343,   -1,   -1,  346,  347,  348,  289,  290,   40,  292,
2163
   -1,   43,   -1,   45,   -1,   47,  299,  300,   -1,  302,
2164
   -1,  304,   -1,   -1,   -1,  289,  290,   40,  292,   -1,
2165
   43,   -1,   45,   -1,   47,  299,  300,   -1,  302,  322,
2166
  304,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
2167
  333,  334,  335,   -1,  337,   -1,  339,  340,  322,   -1,
2168
  343,   -1,   -1,  346,  347,  348,  330,  331,  332,  333,
2169
  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,
2170
  263,   -1,  346,  347,  348,   -1,   -1,   40,   -1,   -1,
2171
   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2172
   -1,   -1,   -1,   -1,   -1,   -1,  289,  290,   -1,  292,
2173
   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,
2174
   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2175
   -1,   -1,  263,   -1,   -1,   -1,   -1,   -1,   -1,  322,
2176
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
2177
  333,  334,  335,   -1,  337,  267,  339,  340,  289,  290,
2178
  343,  292,   -1,  346,  347,  348,   -1,   40,  299,  300,
2179
   43,  302,   45,  304,   47,   -1,  288,  289,  290,   -1,
2180
  292,   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,
2181
  302,  322,  304,   -1,   -1,   -1,   -1,   -1,   -1,  330,
2182
  331,  332,  333,  334,  335,   -1,  337,   -1,  339,  340,
2183
  322,   -1,  343,   -1,   -1,  346,  347,  348,  330,  331,
2184
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,
2185
   -1,  343,   -1,   -1,  346,  347,  348,   40,   -1,   -1,
2186
   43,   -1,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
2187
   -1,   -1,   -1,   -1,   -1,   -1,   40,  289,  290,   43,
2188
  292,   45,   -1,   47,   -1,   -1,   -1,  299,  300,   -1,
2189
  302,   -1,  304,   -1,   -1,   -1,  289,  290,   -1,  292,
2190
   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,
2191
  322,  304,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
2192
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,  322,
2193
   -1,  343,   -1,   -1,  346,  347,  348,  330,  331,  332,
2194
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,
2195
  343,   -1,   -1,  346,  347,  348,  289,  290,   40,  292,
2196
   -1,   43,   -1,   45,   -1,   -1,  299,  300,   -1,  302,
2197
   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2198
  313,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
2199
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
2200
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,
2201
  343,   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,
2202
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2203
   -1,   -1,   -1,   -1,   -1,   -1,  289,  290,   -1,  292,
2204
   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,
2205
   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2206
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  322,
2207
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
2208
  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,
2209
  343,   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,
2210
   -1,   -1,   -1,   -1,   -1,   -1,  289,  290,   -1,  292,
2211
   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,
2212
   -1,  304,   -1,   -1,   -1,  289,  290,   -1,  292,   -1,
2213
   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,  302,  322,
2214
  304,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,  332,
2215
  333,  334,  335,   -1,  337,   -1,  339,  340,  322,   -1,
2216
  343,   -1,   -1,  346,  347,  348,  330,  331,  332,  333,
2217
  334,  335,   -1,  337,   -1,  339,  340,   -1,   -1,  343,
2218
   -1,   -1,  346,  347,  348,   -1,   -1,   -1,   -1,   -1,
2219
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2220
   -1,   -1,   -1,   -1,   -1,   -1,   -1,  289,  290,   -1,
2221
  292,   -1,   -1,   -1,   -1,   -1,   -1,  299,  300,   -1,
2222
  302,   -1,  304,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2223
   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
2224
  322,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  330,  331,
2225
  332,  333,  334,  335,   -1,  337,   -1,  339,  340,   -1,
2226
   -1,  343,   -1,   -1,  346,  347,  348,
2227
};
2228
#define YYFINAL 4
2229
#ifndef YYDEBUG
2230
#define YYDEBUG 0
2231
#endif
2232
#define YYMAXTOKEN 349
2233
#if YYDEBUG
2234
const char * const yyname[] =
2235
	{
2236
"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,
2237
0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,
2238
"':'","';'",0,0,0,"'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2239
"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'{'",
2240
"'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2241
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2242
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
2243
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"FIRSTTOKEN","PROGRAM","PASTAT","PASTAT2",
2244
"XBEGIN","XEND","NL","ARRAY","MATCH","NOTMATCH","MATCHOP","FINAL","DOT","ALL",
2245
"CCL","NCCL","CHAR","OR","STAR","QUEST","PLUS","EMPTYRE","AND","BOR","APPEND",
2246
"EQ","GE","GT","LE","LT","NE","IN","ARG","BLTIN","BREAK","CLOSE","CONTINUE",
2247
"DELETE","DO","EXIT","FOR","FUNC","SUB","GSUB","IF","INDEX","LSUBSTR",
2248
"MATCHFCN","NEXT","NEXTFILE","ADD","MINUS","MULT","DIVIDE","MOD","ASSIGN",
2249
"ASGNOP","ADDEQ","SUBEQ","MULTEQ","DIVEQ","MODEQ","POWEQ","PRINT","PRINTF",
2250
"SPRINTF","ELSE","INTEST","CONDEXPR","POSTINCR","PREINCR","POSTDECR","PREDECR",
2251
"VAR","IVAR","VARNF","CALL","NUMBER","STRING","REGEXPR","GETLINE","RETURN",
2252
"SPLIT","SUBSTR","WHILE","CAT","NOT","UMINUS","POWER","DECR","INCR","INDIRECT",
2253
"LASTTOKEN",
2254
};
2255
const char * const yyrule[] =
2256
	{"$accept : program",
2257
"program : pas",
2258
"program : error",
2259
"and : AND",
2260
"and : and NL",
2261
"bor : BOR",
2262
"bor : bor NL",
2263
"comma : ','",
2264
"comma : comma NL",
2265
"do : DO",
2266
"do : do NL",
2267
"else : ELSE",
2268
"else : else NL",
2269
"$$1 :",
2270
"for : FOR '(' opt_simple_stmt ';' opt_nl pattern ';' opt_nl opt_simple_stmt rparen $$1 stmt",
2271
"$$2 :",
2272
"for : FOR '(' opt_simple_stmt ';' ';' opt_nl opt_simple_stmt rparen $$2 stmt",
2273
"$$3 :",
2274
"for : FOR '(' varname IN varname rparen $$3 stmt",
2275
"funcname : VAR",
2276
"funcname : CALL",
2277
"if : IF '(' pattern rparen",
2278
"lbrace : '{'",
2279
"lbrace : lbrace NL",
2280
"nl : NL",
2281
"nl : nl NL",
2282
"opt_nl :",
2283
"opt_nl : nl",
2284
"opt_pst :",
2285
"opt_pst : pst",
2286
"opt_simple_stmt :",
2287
"opt_simple_stmt : simple_stmt",
2288
"pas : opt_pst",
2289
"pas : opt_pst pa_stats opt_pst",
2290
"pa_pat : pattern",
2291
"pa_stat : pa_pat",
2292
"pa_stat : pa_pat lbrace stmtlist '}'",
2293
"pa_stat : pa_pat ',' opt_nl pa_pat",
2294
"pa_stat : pa_pat ',' opt_nl pa_pat lbrace stmtlist '}'",
2295
"pa_stat : lbrace stmtlist '}'",
2296
"pa_stat : XBEGIN lbrace stmtlist '}'",
2297
"pa_stat : XEND lbrace stmtlist '}'",
2298
"$$4 :",
2299
"pa_stat : FUNC funcname '(' varlist rparen $$4 lbrace stmtlist '}'",
2300
"pa_stats : pa_stat",
2301
"pa_stats : pa_stats opt_pst pa_stat",
2302
"patlist : pattern",
2303
"patlist : patlist comma pattern",
2304
"ppattern : var ASGNOP ppattern",
2305
"ppattern : ppattern '?' ppattern ':' ppattern",
2306
"ppattern : ppattern bor ppattern",
2307
"ppattern : ppattern and ppattern",
2308
"ppattern : ppattern MATCHOP reg_expr",
2309
"ppattern : ppattern MATCHOP ppattern",
2310
"ppattern : ppattern IN varname",
2311
"ppattern : '(' plist ')' IN varname",
2312
"ppattern : ppattern term",
2313
"ppattern : re",
2314
"ppattern : term",
2315
"pattern : var ASGNOP pattern",
2316
"pattern : pattern '?' pattern ':' pattern",
2317
"pattern : pattern bor pattern",
2318
"pattern : pattern and pattern",
2319
"pattern : pattern EQ pattern",
2320
"pattern : pattern GE pattern",
2321
"pattern : pattern GT pattern",
2322
"pattern : pattern LE pattern",
2323
"pattern : pattern LT pattern",
2324
"pattern : pattern NE pattern",
2325
"pattern : pattern MATCHOP reg_expr",
2326
"pattern : pattern MATCHOP pattern",
2327
"pattern : pattern IN varname",
2328
"pattern : '(' plist ')' IN varname",
2329
"pattern : pattern '|' GETLINE var",
2330
"pattern : pattern '|' GETLINE",
2331
"pattern : pattern term",
2332
"pattern : re",
2333
"pattern : term",
2334
"plist : pattern comma pattern",
2335
"plist : plist comma pattern",
2336
"pplist : ppattern",
2337
"pplist : pplist comma ppattern",
2338
"prarg :",
2339
"prarg : pplist",
2340
"prarg : '(' plist ')'",
2341
"print : PRINT",
2342
"print : PRINTF",
2343
"pst : NL",
2344
"pst : ';'",
2345
"pst : pst NL",
2346
"pst : pst ';'",
2347
"rbrace : '}'",
2348
"rbrace : rbrace NL",
2349
"re : reg_expr",
2350
"re : NOT re",
2351
"$$5 :",
2352
"reg_expr : '/' $$5 REGEXPR '/'",
2353
"rparen : ')'",
2354
"rparen : rparen NL",
2355
"simple_stmt : print prarg '|' term",
2356
"simple_stmt : print prarg APPEND term",
2357
"simple_stmt : print prarg GT term",
2358
"simple_stmt : print prarg",
2359
"simple_stmt : DELETE varname '[' patlist ']'",
2360
"simple_stmt : DELETE varname",
2361
"simple_stmt : pattern",
2362
"simple_stmt : error",
2363
"st : nl",
2364
"st : ';' opt_nl",
2365
"stmt : BREAK st",
2366
"stmt : CONTINUE st",
2367
"$$6 :",
2368
"$$7 :",
2369
"stmt : do $$6 stmt $$7 WHILE '(' pattern ')' st",
2370
"stmt : EXIT pattern st",
2371
"stmt : EXIT st",
2372
"stmt : for",
2373
"stmt : if stmt else stmt",
2374
"stmt : if stmt",
2375
"stmt : lbrace stmtlist rbrace",
2376
"stmt : NEXT st",
2377
"stmt : NEXTFILE st",
2378
"stmt : RETURN pattern st",
2379
"stmt : RETURN st",
2380
"stmt : simple_stmt st",
2381
"$$8 :",
2382
"stmt : while $$8 stmt",
2383
"stmt : ';' opt_nl",
2384
"stmtlist : stmt",
2385
"stmtlist : stmtlist stmt",
2386
"subop : SUB",
2387
"subop : GSUB",
2388
"term : term '/' ASGNOP term",
2389
"term : term '+' term",
2390
"term : term '-' term",
2391
"term : term '*' term",
2392
"term : term '/' term",
2393
"term : term '%' term",
2394
"term : term POWER term",
2395
"term : '-' term",
2396
"term : '+' term",
2397
"term : NOT term",
2398
"term : BLTIN '(' ')'",
2399
"term : BLTIN '(' patlist ')'",
2400
"term : BLTIN",
2401
"term : CALL '(' ')'",
2402
"term : CALL '(' patlist ')'",
2403
"term : CLOSE term",
2404
"term : DECR var",
2405
"term : INCR var",
2406
"term : var DECR",
2407
"term : var INCR",
2408
"term : GETLINE var LT term",
2409
"term : GETLINE LT term",
2410
"term : GETLINE var",
2411
"term : GETLINE",
2412
"term : INDEX '(' pattern comma pattern ')'",
2413
"term : INDEX '(' pattern comma reg_expr ')'",
2414
"term : '(' pattern ')'",
2415
"term : MATCHFCN '(' pattern comma reg_expr ')'",
2416
"term : MATCHFCN '(' pattern comma pattern ')'",
2417
"term : NUMBER",
2418
"term : SPLIT '(' pattern comma varname comma pattern ')'",
2419
"term : SPLIT '(' pattern comma varname comma reg_expr ')'",
2420
"term : SPLIT '(' pattern comma varname ')'",
2421
"term : SPRINTF '(' patlist ')'",
2422
"term : STRING",
2423
"term : subop '(' reg_expr comma pattern ')'",
2424
"term : subop '(' pattern comma pattern ')'",
2425
"term : subop '(' reg_expr comma pattern comma var ')'",
2426
"term : subop '(' pattern comma pattern comma var ')'",
2427
"term : SUBSTR '(' pattern comma pattern comma pattern ')'",
2428
"term : SUBSTR '(' pattern comma pattern ')'",
2429
"term : var",
2430
"var : varname",
2431
"var : varname '[' patlist ']'",
2432
"var : IVAR",
2433
"var : INDIRECT term",
2434
"varlist :",
2435
"varlist : VAR",
2436
"varlist : varlist comma VAR",
2437
"varname : VAR",
2438
"varname : ARG",
2439
"varname : VARNF",
2440
"while : WHILE '(' pattern rparen",
2441
};
2442
#endif
2443
#ifdef YYSTACKSIZE
2444
#undef YYMAXDEPTH
2445
#define YYMAXDEPTH YYSTACKSIZE
2446
#else
2447
#ifdef YYMAXDEPTH
2448
#define YYSTACKSIZE YYMAXDEPTH
2449
#else
2450
#define YYSTACKSIZE 10000
2451
#define YYMAXDEPTH 10000
2452
#endif
2453
#endif
2454
#define YYINITSTACKSIZE 200
2455
/* LINTUSED */
2456
int yydebug;
2457
int yynerrs;
2458
int yyerrflag;
2459
int yychar;
2460
short *yyssp;
2461
YYSTYPE *yyvsp;
2462
YYSTYPE yyval;
2463
YYSTYPE yylval;
2464
short *yyss;
2465
short *yysslim;
2466
YYSTYPE *yyvs;
2467
unsigned int yystacksize;
2468
int yyparse(void);
2469
#line 447 "/usr/src/usr.bin/awk/awkgram.y"
2470
2471
void setfname(Cell *p)
2472
{
2473
	if (isarr(p))
2474
		SYNTAX("%s is an array, not a function", p->nval);
2475
	else if (isfcn(p))
2476
		SYNTAX("you can't define function %s more than once", p->nval);
2477
	curfname = p->nval;
2478
}
2479
2480
int constnode(Node *p)
2481
{
2482
	return isvalue(p) && ((Cell *) (p->narg[0]))->csub == CCON;
2483
}
2484
2485
char *strnode(Node *p)
2486
{
2487
	return ((Cell *)(p->narg[0]))->sval;
2488
}
2489
2490
Node *notnull(Node *n)
2491
{
2492
	switch (n->nobj) {
2493
	case LE: case LT: case EQ: case NE: case GT: case GE:
2494
	case BOR: case AND: case NOT:
2495
		return n;
2496
	default:
2497
		return op2(NE, n, nullnode);
2498
	}
2499
}
2500
2501
void checkdup(Node *vl, Cell *cp)	/* check if name already in list */
2502
{
2503
	char *s = cp->nval;
2504
	for ( ; vl; vl = vl->nnext) {
2505
		if (strcmp(s, ((Cell *)(vl->narg[0]))->nval) == 0) {
2506
			SYNTAX("duplicate argument %s", s);
2507
			break;
2508
		}
2509
	}
2510
}
2511
#line 2504 "ytab.c"
2512
1962
/* allocate initial stack or double stack size, up to YYMAXDEPTH */
2513
981
static int yygrowstack(void)
2514
{
2515
    unsigned int newsize;
2516
    long sslen;
2517
    short *newss;
2518
981
    YYSTYPE *newvs;
2519
2520
    if ((newsize = yystacksize) == 0)
2521
        newsize = YYINITSTACKSIZE;
2522
    else if (newsize >= YYMAXDEPTH)
2523
        return -1;
2524

1962
    else if ((newsize *= 2) > YYMAXDEPTH)
2525
        newsize = YYMAXDEPTH;
2526
1962
    sslen = yyssp - yyss;
2527
981
#ifdef SIZE_MAX
2528
981
#define YY_SIZE_MAX SIZE_MAX
2529
#else
2530
981
#define YY_SIZE_MAX 0xffffffffU
2531
981
#endif
2532

1962
    if (newsize && YY_SIZE_MAX / newsize < sizeof *newss)
2533
        goto bail;
2534
1962
    newss = yyss ? (short *)realloc(yyss, newsize * sizeof *newss) :
2535
981
      (short *)malloc(newsize * sizeof *newss); /* overflow check above */
2536
981
    if (newss == NULL)
2537
        goto bail;
2538
981
    yyss = newss;
2539
981
    yyssp = newss + sslen;
2540
981
    if (newsize && YY_SIZE_MAX / newsize < sizeof *newvs)
2541
981
        goto bail;
2542
981
    newvs = yyvs ? (YYSTYPE *)realloc(yyvs, newsize * sizeof *newvs) :
2543
      (YYSTYPE *)malloc(newsize * sizeof *newvs); /* overflow check above */
2544
    if (newvs == NULL)
2545
        goto bail;
2546
    yyvs = newvs;
2547
    yyvsp = newvs + sslen;
2548
    yystacksize = newsize;
2549
    yysslim = yyss + newsize - 1;
2550
    return 0;
2551
bail:
2552
981
    if (yyss)
2553
            free(yyss);
2554
    if (yyvs)
2555
            free(yyvs);
2556
    yyss = yyssp = NULL;
2557
    yyvs = yyvsp = NULL;
2558
    yystacksize = 0;
2559
    return -1;
2560
}
2561
2562
#define YYABORT goto yyabort
2563
#define YYREJECT goto yyabort
2564
#define YYACCEPT goto yyaccept
2565
#define YYERROR goto yyerrlab
2566
int
2567
yyparse(void)
2568
{
2569
    int yym, yyn, yystate;
2570
#if YYDEBUG
2571
    const char *yys;
2572
2573
1962
    if ((yys = getenv("YYDEBUG")))
2574
981
    {
2575
981
        yyn = *yys;
2576
        if (yyn >= '0' && yyn <= '9')
2577

1962
            yydebug = yyn - '0';
2578
981
    }
2579
981
#endif /* YYDEBUG */
2580
981
2581
    yynerrs = 0;
2582
    yyerrflag = 0;
2583
128296
    yychar = (-1);
2584
82910
2585
    if (yyss == NULL && yygrowstack()) goto yyoverflow;
2586
42177
    yyssp = yyss;
2587
    yyvsp = yyvs;
2588
    *yyssp = yystate = 0;
2589
2590
yyloop:
2591
    if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
2592
    if (yychar < 0)
2593
    {
2594
        if ((yychar = yylex()) < 0) yychar = 0;
2595
#if YYDEBUG
2596
        if (yydebug)
2597
42177
        {
2598

326846
            yys = 0;
2599
161026
            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2600
            if (!yys) yys = "illegal-symbol";
2601
            printf("%sdebug: state %d, reading %d (%s)\n",
2602
                    YYPREFIX, yystate, yychar, yys);
2603
        }
2604
#endif
2605
    }
2606

41196
    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
2607
            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
2608
    {
2609
#if YYDEBUG
2610
41196
        if (yydebug)
2611
41196
            printf("%sdebug: state %d, shifting to state %d\n",
2612
41196
                    YYPREFIX, yystate, yytable[yyn]);
2613
41196
#endif
2614
        if (yyssp >= yysslim && yygrowstack())
2615
        {
2616

166856
            goto yyoverflow;
2617
83428
        }
2618
        *++yyssp = yystate = yytable[yyn];
2619
41714
        *++yyvsp = yylval;
2620
41714
        yychar = (-1);
2621
        if (yyerrflag > 0)  --yyerrflag;
2622
        goto yyloop;
2623
    }
2624
    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
2625
            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
2626
    {
2627
        yyn = yytable[yyn];
2628
        goto yyreduce;
2629
    }
2630
    if (yyerrflag) goto yyinrecovery;
2631
#if defined(__GNUC__)
2632
    goto yynewerror;
2633
#endif
2634
yynewerror:
2635
    yyerror("syntax error");
2636
#if defined(__GNUC__)
2637
    goto yyerrlab;
2638
#endif
2639
yyerrlab:
2640
    ++yynerrs;
2641
yyinrecovery:
2642
    if (yyerrflag < 3)
2643
    {
2644
        yyerrflag = 3;
2645
        for (;;)
2646
        {
2647
            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
2648
                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
2649
            {
2650
#if YYDEBUG
2651
                if (yydebug)
2652
                    printf("%sdebug: state %d, error recovery shifting\
2653
 to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
2654
#endif
2655
                if (yyssp >= yysslim && yygrowstack())
2656
                {
2657
                    goto yyoverflow;
2658
                }
2659
                *++yyssp = yystate = yytable[yyn];
2660
                *++yyvsp = yylval;
2661
                goto yyloop;
2662
            }
2663
            else
2664
            {
2665
#if YYDEBUG
2666
                if (yydebug)
2667
                    printf("%sdebug: error recovery discarding state %d\n",
2668
                            YYPREFIX, *yyssp);
2669
#endif
2670
                if (yyssp <= yyss) goto yyabort;
2671
                --yyssp;
2672
                --yyvsp;
2673
            }
2674
        }
2675
    }
2676
    else
2677
    {
2678
        if (yychar == 0) goto yyabort;
2679
#if YYDEBUG
2680
        if (yydebug)
2681
        {
2682
            yys = 0;
2683
            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2684
            if (!yys) yys = "illegal-symbol";
2685
            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
2686
                    YYPREFIX, yystate, yychar, yys);
2687
        }
2688
#endif
2689
        yychar = (-1);
2690
87100
        goto yyloop;
2691
87100
    }
2692
82131
yyreduce:
2693
#if YYDEBUG
2694
4969
    if (yydebug)
2695



































126145
        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
2696
                YYPREFIX, yystate, yyn, yyrule[yyn]);
2697
#endif
2698
    yym = yylen[yyn];
2699
    if (yym)
2700
        yyval = yyvsp[1-yym];
2701
    else
2702
        memset(&yyval, 0, sizeof yyval);
2703
    switch (yyn)
2704
    {
2705
case 1:
2706
#line 99 "/usr/src/usr.bin/awk/awkgram.y"
2707
{ if (errorflag==0)
2708
			winner = (Node *)stat3(PROGRAM, beginloc, yyvsp[0].p, endloc); }
2709
break;
2710
case 2:
2711
#line 101 "/usr/src/usr.bin/awk/awkgram.y"
2712
{ yyclearin; bracecheck(); SYNTAX("bailing out"); }
2713
break;
2714
case 13:
2715
#line 125 "/usr/src/usr.bin/awk/awkgram.y"
2716
{inloop++;}
2717
break;
2718
case 14:
2719
#line 126 "/usr/src/usr.bin/awk/awkgram.y"
2720
{ --inloop; yyval.p = stat4(FOR, yyvsp[-9].p, notnull(yyvsp[-6].p), yyvsp[-3].p, yyvsp[0].p); }
2721
break;
2722
case 15:
2723
#line 127 "/usr/src/usr.bin/awk/awkgram.y"
2724
{inloop++;}
2725
break;
2726
case 16:
2727
#line 128 "/usr/src/usr.bin/awk/awkgram.y"
2728
{ --inloop; yyval.p = stat4(FOR, yyvsp[-7].p, NIL, yyvsp[-3].p, yyvsp[0].p); }
2729
break;
2730
case 17:
2731
#line 129 "/usr/src/usr.bin/awk/awkgram.y"
2732
{inloop++;}
2733
break;
2734
case 18:
2735
#line 130 "/usr/src/usr.bin/awk/awkgram.y"
2736
{ --inloop; yyval.p = stat3(IN, yyvsp[-5].p, makearr(yyvsp[-3].p), yyvsp[0].p); }
2737
break;
2738
case 19:
2739
#line 134 "/usr/src/usr.bin/awk/awkgram.y"
2740
{ setfname(yyvsp[0].cp); }
2741
break;
2742
case 20:
2743
#line 135 "/usr/src/usr.bin/awk/awkgram.y"
2744
{ setfname(yyvsp[0].cp); }
2745
break;
2746
case 21:
2747
#line 139 "/usr/src/usr.bin/awk/awkgram.y"
2748
{ yyval.p = notnull(yyvsp[-1].p); }
2749
break;
2750
case 26:
2751
#line 151 "/usr/src/usr.bin/awk/awkgram.y"
2752
{ yyval.i = 0; }
2753
break;
2754
case 28:
2755
#line 156 "/usr/src/usr.bin/awk/awkgram.y"
2756
{ yyval.i = 0; }
2757
break;
2758
case 30:
2759
#line 162 "/usr/src/usr.bin/awk/awkgram.y"
2760
{ yyval.p = 0; }
2761
break;
2762
case 32:
2763
#line 167 "/usr/src/usr.bin/awk/awkgram.y"
2764
{ yyval.p = 0; }
2765
break;
2766
case 33:
2767
#line 168 "/usr/src/usr.bin/awk/awkgram.y"
2768
{ yyval.p = yyvsp[-1].p; }
2769
break;
2770
case 34:
2771
#line 172 "/usr/src/usr.bin/awk/awkgram.y"
2772
{ yyval.p = notnull(yyvsp[0].p); }
2773
break;
2774
case 35:
2775
#line 176 "/usr/src/usr.bin/awk/awkgram.y"
2776
{ yyval.p = stat2(PASTAT, yyvsp[0].p, stat2(PRINT, rectonode(), NIL)); }
2777
break;
2778
case 36:
2779
#line 177 "/usr/src/usr.bin/awk/awkgram.y"
2780
{ yyval.p = stat2(PASTAT, yyvsp[-3].p, yyvsp[-1].p); }
2781
break;
2782
case 37:
2783
#line 178 "/usr/src/usr.bin/awk/awkgram.y"
2784
{ yyval.p = pa2stat(yyvsp[-3].p, yyvsp[0].p, stat2(PRINT, rectonode(), NIL)); }
2785
break;
2786
case 38:
2787
#line 179 "/usr/src/usr.bin/awk/awkgram.y"
2788
{ yyval.p = pa2stat(yyvsp[-6].p, yyvsp[-3].p, yyvsp[-1].p); }
2789
break;
2790
case 39:
2791
#line 180 "/usr/src/usr.bin/awk/awkgram.y"
2792
{ yyval.p = stat2(PASTAT, NIL, yyvsp[-1].p); }
2793
break;
2794
case 40:
2795
#line 182 "/usr/src/usr.bin/awk/awkgram.y"
2796
{ beginloc = linkum(beginloc, yyvsp[-1].p); yyval.p = 0; }
2797
break;
2798
case 41:
2799
#line 184 "/usr/src/usr.bin/awk/awkgram.y"
2800
{ endloc = linkum(endloc, yyvsp[-1].p); yyval.p = 0; }
2801
break;
2802
case 42:
2803
#line 185 "/usr/src/usr.bin/awk/awkgram.y"
2804
{infunc++;}
2805
break;
2806
case 43:
2807
#line 186 "/usr/src/usr.bin/awk/awkgram.y"
2808
{ infunc--; curfname=0; defn((Cell *)yyvsp[-7].p, yyvsp[-5].p, yyvsp[-1].p); yyval.p = 0; }
2809
break;
2810
case 45:
2811
#line 191 "/usr/src/usr.bin/awk/awkgram.y"
2812
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
2813
break;
2814
case 47:
2815
#line 196 "/usr/src/usr.bin/awk/awkgram.y"
2816
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
2817
break;
2818
case 48:
2819
#line 200 "/usr/src/usr.bin/awk/awkgram.y"
2820
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
2821
break;
2822
case 49:
2823
#line 202 "/usr/src/usr.bin/awk/awkgram.y"
2824
{ yyval.p = op3(CONDEXPR, notnull(yyvsp[-4].p), yyvsp[-2].p, yyvsp[0].p); }
2825
break;
2826
case 50:
2827
#line 204 "/usr/src/usr.bin/awk/awkgram.y"
2828
{ yyval.p = op2(BOR, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
2829
break;
2830
case 51:
2831
#line 206 "/usr/src/usr.bin/awk/awkgram.y"
2832
{ yyval.p = op2(AND, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
2833
break;
2834
case 52:
2835
#line 207 "/usr/src/usr.bin/awk/awkgram.y"
2836
{ yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(yyvsp[0].s, 0)); }
2837
break;
2838
case 53:
2839
#line 209 "/usr/src/usr.bin/awk/awkgram.y"
2840
{ if (constnode(yyvsp[0].p))
2841
			yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(strnode(yyvsp[0].p), 0));
2842
		  else
2843
			yyval.p = op3(yyvsp[-1].i, (Node *)1, yyvsp[-2].p, yyvsp[0].p); }
2844
break;
2845
case 54:
2846
#line 213 "/usr/src/usr.bin/awk/awkgram.y"
2847
{ yyval.p = op2(INTEST, yyvsp[-2].p, makearr(yyvsp[0].p)); }
2848
break;
2849
case 55:
2850
#line 214 "/usr/src/usr.bin/awk/awkgram.y"
2851
{ yyval.p = op2(INTEST, yyvsp[-3].p, makearr(yyvsp[0].p)); }
2852
break;
2853
case 56:
2854
#line 215 "/usr/src/usr.bin/awk/awkgram.y"
2855
{ yyval.p = op2(CAT, yyvsp[-1].p, yyvsp[0].p); }
2856
break;
2857
case 59:
2858
#line 221 "/usr/src/usr.bin/awk/awkgram.y"
2859
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
2860
break;
2861
case 60:
2862
#line 223 "/usr/src/usr.bin/awk/awkgram.y"
2863
{ yyval.p = op3(CONDEXPR, notnull(yyvsp[-4].p), yyvsp[-2].p, yyvsp[0].p); }
2864
break;
2865
case 61:
2866
#line 225 "/usr/src/usr.bin/awk/awkgram.y"
2867
{ yyval.p = op2(BOR, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
2868
break;
2869
case 62:
2870
#line 227 "/usr/src/usr.bin/awk/awkgram.y"
2871
{ yyval.p = op2(AND, notnull(yyvsp[-2].p), notnull(yyvsp[0].p)); }
2872
break;
2873
case 63:
2874
#line 228 "/usr/src/usr.bin/awk/awkgram.y"
2875
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
2876
break;
2877
case 64:
2878
#line 229 "/usr/src/usr.bin/awk/awkgram.y"
2879
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
2880
break;
2881
case 65:
2882
#line 230 "/usr/src/usr.bin/awk/awkgram.y"
2883
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
2884
break;
2885
case 66:
2886
#line 231 "/usr/src/usr.bin/awk/awkgram.y"
2887
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
2888
break;
2889
case 67:
2890
#line 232 "/usr/src/usr.bin/awk/awkgram.y"
2891
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
2892
break;
2893
case 68:
2894
#line 233 "/usr/src/usr.bin/awk/awkgram.y"
2895
{ yyval.p = op2(yyvsp[-1].i, yyvsp[-2].p, yyvsp[0].p); }
2896
break;
2897
case 69:
2898
#line 234 "/usr/src/usr.bin/awk/awkgram.y"
2899
{ yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(yyvsp[0].s, 0)); }
2900
break;
2901
case 70:
2902
#line 236 "/usr/src/usr.bin/awk/awkgram.y"
2903
{ if (constnode(yyvsp[0].p))
2904
			yyval.p = op3(yyvsp[-1].i, NIL, yyvsp[-2].p, (Node*)makedfa(strnode(yyvsp[0].p), 0));
2905
		  else
2906
			yyval.p = op3(yyvsp[-1].i, (Node *)1, yyvsp[-2].p, yyvsp[0].p); }
2907
break;
2908
case 71:
2909
#line 240 "/usr/src/usr.bin/awk/awkgram.y"
2910
{ yyval.p = op2(INTEST, yyvsp[-2].p, makearr(yyvsp[0].p)); }
2911
break;
2912
case 72:
2913
#line 241 "/usr/src/usr.bin/awk/awkgram.y"
2914
{ yyval.p = op2(INTEST, yyvsp[-3].p, makearr(yyvsp[0].p)); }
2915
break;
2916
case 73:
2917
#line 242 "/usr/src/usr.bin/awk/awkgram.y"
2918
{
2919
			if (safe) SYNTAX("cmd | getline is unsafe");
2920
			else yyval.p = op3(GETLINE, yyvsp[0].p, itonp(yyvsp[-2].i), yyvsp[-3].p); }
2921
break;
2922
case 74:
2923
#line 245 "/usr/src/usr.bin/awk/awkgram.y"
2924
{
2925
			if (safe) SYNTAX("cmd | getline is unsafe");
2926
			else yyval.p = op3(GETLINE, (Node*)0, itonp(yyvsp[-1].i), yyvsp[-2].p); }
2927
break;
2928
case 75:
2929
#line 248 "/usr/src/usr.bin/awk/awkgram.y"
2930
{ yyval.p = op2(CAT, yyvsp[-1].p, yyvsp[0].p); }
2931
break;
2932
case 78:
2933
#line 254 "/usr/src/usr.bin/awk/awkgram.y"
2934
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
2935
break;
2936
case 79:
2937
#line 255 "/usr/src/usr.bin/awk/awkgram.y"
2938
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
2939
break;
2940
case 81:
2941
#line 260 "/usr/src/usr.bin/awk/awkgram.y"
2942
{ yyval.p = linkum(yyvsp[-2].p, yyvsp[0].p); }
2943
break;
2944
case 82:
2945
#line 264 "/usr/src/usr.bin/awk/awkgram.y"
2946
{ yyval.p = rectonode(); }
2947
break;
2948
case 84:
2949
#line 266 "/usr/src/usr.bin/awk/awkgram.y"
2950
{ yyval.p = yyvsp[-1].p; }
2951
break;
2952
case 93:
2953
#line 283 "/usr/src/usr.bin/awk/awkgram.y"
2954
{ yyval.p = op3(MATCH, NIL, rectonode(), (Node*)makedfa(yyvsp[0].s, 0)); }
2955
break;
2956
case 94:
2957
#line 284 "/usr/src/usr.bin/awk/awkgram.y"
2958
{ yyval.p = op1(NOT, notnull(yyvsp[0].p)); }
2959
break;
2960
case 95:
2961
#line 288 "/usr/src/usr.bin/awk/awkgram.y"
2962
{startreg();}
2963
break;
2964
case 96:
2965
#line 288 "/usr/src/usr.bin/awk/awkgram.y"
2966
{ yyval.s = yyvsp[-1].s; }
2967
break;
2968
case 99:
2969
#line 296 "/usr/src/usr.bin/awk/awkgram.y"
2970
{
2971
			if (safe) SYNTAX("print | is unsafe");
2972
			else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); }
2973
break;
2974
case 100:
2975
#line 299 "/usr/src/usr.bin/awk/awkgram.y"
2976
{
2977
			if (safe) SYNTAX("print >> is unsafe");
2978
			else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); }
2979
break;
2980
case 101:
2981
#line 302 "/usr/src/usr.bin/awk/awkgram.y"
2982
{
2983
			if (safe) SYNTAX("print > is unsafe");
2984
			else yyval.p = stat3(yyvsp[-3].i, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); }
2985
break;
2986
case 102:
2987
#line 305 "/usr/src/usr.bin/awk/awkgram.y"
2988
{ yyval.p = stat3(yyvsp[-1].i, yyvsp[0].p, NIL, NIL); }
2989
break;
2990
case 103:
2991
#line 306 "/usr/src/usr.bin/awk/awkgram.y"
2992
{ yyval.p = stat2(DELETE, makearr(yyvsp[-3].p), yyvsp[-1].p); }
2993
break;
2994
case 104:
2995
#line 307 "/usr/src/usr.bin/awk/awkgram.y"
2996
{ yyval.p = stat2(DELETE, makearr(yyvsp[0].p), 0); }
2997
break;
2998
case 105:
2999
#line 308 "/usr/src/usr.bin/awk/awkgram.y"
3000
{ yyval.p = exptostat(yyvsp[0].p); }
3001
break;
3002
case 106:
3003
#line 309 "/usr/src/usr.bin/awk/awkgram.y"
3004
{ yyclearin; SYNTAX("illegal statement"); }
3005
break;
3006
case 109:
3007
#line 318 "/usr/src/usr.bin/awk/awkgram.y"
3008
{ if (!inloop) SYNTAX("break illegal outside of loops");
3009
				  yyval.p = stat1(BREAK, NIL); }
3010
break;
3011
case 110:
3012
#line 320 "/usr/src/usr.bin/awk/awkgram.y"
3013
{  if (!inloop) SYNTAX("continue illegal outside of loops");
3014
				  yyval.p = stat1(CONTINUE, NIL); }
3015
break;
3016
case 111:
3017
#line 322 "/usr/src/usr.bin/awk/awkgram.y"
3018
{inloop++;}
3019
break;
3020
case 112:
3021
#line 322 "/usr/src/usr.bin/awk/awkgram.y"
3022
{--inloop;}
3023
break;
3024
case 113:
3025
#line 323 "/usr/src/usr.bin/awk/awkgram.y"
3026
{ yyval.p = stat2(DO, yyvsp[-6].p, notnull(yyvsp[-2].p)); }
3027
break;
3028
case 114:
3029
#line 324 "/usr/src/usr.bin/awk/awkgram.y"
3030
{ yyval.p = stat1(EXIT, yyvsp[-1].p); }
3031
break;
3032
case 115:
3033
#line 325 "/usr/src/usr.bin/awk/awkgram.y"
3034
{ yyval.p = stat1(EXIT, NIL); }
3035
break;
3036
case 117:
3037
#line 327 "/usr/src/usr.bin/awk/awkgram.y"
3038
{ yyval.p = stat3(IF, yyvsp[-3].p, yyvsp[-2].p, yyvsp[0].p); }
3039
break;
3040
case 118:
3041
#line 328 "/usr/src/usr.bin/awk/awkgram.y"
3042
{ yyval.p = stat3(IF, yyvsp[-1].p, yyvsp[0].p, NIL); }
3043
break;
3044
case 119:
3045
#line 329 "/usr/src/usr.bin/awk/awkgram.y"
3046
{ yyval.p = yyvsp[-1].p; }
3047
break;
3048
case 120:
3049
#line 330 "/usr/src/usr.bin/awk/awkgram.y"
3050
{ if (infunc)
3051
				SYNTAX("next is illegal inside a function");
3052
			  yyval.p = stat1(NEXT, NIL); }
3053
break;
3054
case 121:
3055
#line 333 "/usr/src/usr.bin/awk/awkgram.y"
3056
{ if (infunc)
3057
				SYNTAX("nextfile is illegal inside a function");
3058
			  yyval.p = stat1(NEXTFILE, NIL); }
3059
break;
3060
case 122:
3061
#line 336 "/usr/src/usr.bin/awk/awkgram.y"
3062
{ yyval.p = stat1(RETURN, yyvsp[-1].p); }
3063
break;
3064
case 123:
3065
#line 337 "/usr/src/usr.bin/awk/awkgram.y"
3066
{ yyval.p = stat1(RETURN, NIL); }
3067
break;
3068
case 125:
3069
#line 339 "/usr/src/usr.bin/awk/awkgram.y"
3070
{inloop++;}
3071
break;
3072
case 126:
3073
#line 339 "/usr/src/usr.bin/awk/awkgram.y"
3074
{ --inloop; yyval.p = stat2(WHILE, yyvsp[-2].p, yyvsp[0].p); }
3075
break;
3076
case 127:
3077
#line 340 "/usr/src/usr.bin/awk/awkgram.y"
3078
{ yyval.p = 0; }
3079
break;
3080
case 129:
3081
#line 345 "/usr/src/usr.bin/awk/awkgram.y"
3082
{ yyval.p = linkum(yyvsp[-1].p, yyvsp[0].p); }
3083
break;
3084
case 132:
3085
#line 353 "/usr/src/usr.bin/awk/awkgram.y"
3086
{ yyval.p = op2(DIVEQ, yyvsp[-3].p, yyvsp[0].p); }
3087
break;
3088
case 133:
3089
#line 354 "/usr/src/usr.bin/awk/awkgram.y"
3090
{ yyval.p = op2(ADD, yyvsp[-2].p, yyvsp[0].p); }
3091
break;
3092
case 134:
3093
#line 355 "/usr/src/usr.bin/awk/awkgram.y"
3094
{ yyval.p = op2(MINUS, yyvsp[-2].p, yyvsp[0].p); }
3095
break;
3096
case 135:
3097
#line 356 "/usr/src/usr.bin/awk/awkgram.y"
3098
{ yyval.p = op2(MULT, yyvsp[-2].p, yyvsp[0].p); }
3099
break;
3100
case 136:
3101
#line 357 "/usr/src/usr.bin/awk/awkgram.y"
3102
{ yyval.p = op2(DIVIDE, yyvsp[-2].p, yyvsp[0].p); }
3103
break;
3104
case 137:
3105
#line 358 "/usr/src/usr.bin/awk/awkgram.y"
3106
{ yyval.p = op2(MOD, yyvsp[-2].p, yyvsp[0].p); }
3107
break;
3108
case 138:
3109
#line 359 "/usr/src/usr.bin/awk/awkgram.y"
3110
{ yyval.p = op2(POWER, yyvsp[-2].p, yyvsp[0].p); }
3111
break;
3112
case 139:
3113
#line 360 "/usr/src/usr.bin/awk/awkgram.y"
3114
{ yyval.p = op1(UMINUS, yyvsp[0].p); }
3115
break;
3116
case 140:
3117
#line 361 "/usr/src/usr.bin/awk/awkgram.y"
3118
{ yyval.p = yyvsp[0].p; }
3119
break;
3120
case 141:
3121
#line 362 "/usr/src/usr.bin/awk/awkgram.y"
3122
{ yyval.p = op1(NOT, notnull(yyvsp[0].p)); }
3123
break;
3124
case 142:
3125
#line 363 "/usr/src/usr.bin/awk/awkgram.y"
3126
{ yyval.p = op2(BLTIN, itonp(yyvsp[-2].i), rectonode()); }
3127
break;
3128
case 143:
3129
#line 364 "/usr/src/usr.bin/awk/awkgram.y"
3130
{ yyval.p = op2(BLTIN, itonp(yyvsp[-3].i), yyvsp[-1].p); }
3131
break;
3132
case 144:
3133
#line 365 "/usr/src/usr.bin/awk/awkgram.y"
3134
{ yyval.p = op2(BLTIN, itonp(yyvsp[0].i), rectonode()); }
3135
break;
3136
case 145:
3137
#line 366 "/usr/src/usr.bin/awk/awkgram.y"
3138
{ yyval.p = op2(CALL, celltonode(yyvsp[-2].cp,CVAR), NIL); }
3139
break;
3140
case 146:
3141
#line 367 "/usr/src/usr.bin/awk/awkgram.y"
3142
{ yyval.p = op2(CALL, celltonode(yyvsp[-3].cp,CVAR), yyvsp[-1].p); }
3143
break;
3144
case 147:
3145
#line 368 "/usr/src/usr.bin/awk/awkgram.y"
3146
{ yyval.p = op1(CLOSE, yyvsp[0].p); }
3147
break;
3148
case 148:
3149
#line 369 "/usr/src/usr.bin/awk/awkgram.y"
3150
{ yyval.p = op1(PREDECR, yyvsp[0].p); }
3151
break;
3152
case 149:
3153
#line 370 "/usr/src/usr.bin/awk/awkgram.y"
3154
{ yyval.p = op1(PREINCR, yyvsp[0].p); }
3155
break;
3156
case 150:
3157
#line 371 "/usr/src/usr.bin/awk/awkgram.y"
3158
{ yyval.p = op1(POSTDECR, yyvsp[-1].p); }
3159
break;
3160
case 151:
3161
#line 372 "/usr/src/usr.bin/awk/awkgram.y"
3162
{ yyval.p = op1(POSTINCR, yyvsp[-1].p); }
3163
break;
3164
case 152:
3165
#line 373 "/usr/src/usr.bin/awk/awkgram.y"
3166
{ yyval.p = op3(GETLINE, yyvsp[-2].p, itonp(yyvsp[-1].i), yyvsp[0].p); }
3167
break;
3168
case 153:
3169
#line 374 "/usr/src/usr.bin/awk/awkgram.y"
3170
{ yyval.p = op3(GETLINE, NIL, itonp(yyvsp[-1].i), yyvsp[0].p); }
3171
break;
3172
case 154:
3173
#line 375 "/usr/src/usr.bin/awk/awkgram.y"
3174
{ yyval.p = op3(GETLINE, yyvsp[0].p, NIL, NIL); }
3175
break;
3176
case 155:
3177
#line 376 "/usr/src/usr.bin/awk/awkgram.y"
3178
{ yyval.p = op3(GETLINE, NIL, NIL, NIL); }
3179
break;
3180
case 156:
3181
#line 378 "/usr/src/usr.bin/awk/awkgram.y"
3182
{ yyval.p = op2(INDEX, yyvsp[-3].p, yyvsp[-1].p); }
3183
break;
3184
case 157:
3185
#line 380 "/usr/src/usr.bin/awk/awkgram.y"
3186
{ SYNTAX("index() doesn't permit regular expressions");
3187
		  yyval.p = op2(INDEX, yyvsp[-3].p, (Node*)yyvsp[-1].s); }
3188
break;
3189
case 158:
3190
#line 382 "/usr/src/usr.bin/awk/awkgram.y"
3191
{ yyval.p = yyvsp[-1].p; }
3192
break;
3193
case 159:
3194
#line 384 "/usr/src/usr.bin/awk/awkgram.y"
3195
{ yyval.p = op3(MATCHFCN, NIL, yyvsp[-3].p, (Node*)makedfa(yyvsp[-1].s, 1)); }
3196
break;
3197
case 160:
3198
#line 386 "/usr/src/usr.bin/awk/awkgram.y"
3199
{ if (constnode(yyvsp[-1].p))
3200
			yyval.p = op3(MATCHFCN, NIL, yyvsp[-3].p, (Node*)makedfa(strnode(yyvsp[-1].p), 1));
3201
		  else
3202
			yyval.p = op3(MATCHFCN, (Node *)1, yyvsp[-3].p, yyvsp[-1].p); }
3203
break;
3204
case 161:
3205
#line 390 "/usr/src/usr.bin/awk/awkgram.y"
3206
{ yyval.p = celltonode(yyvsp[0].cp, CCON); }
3207
break;
3208
case 162:
3209
#line 392 "/usr/src/usr.bin/awk/awkgram.y"
3210
{ yyval.p = op4(SPLIT, yyvsp[-5].p, makearr(yyvsp[-3].p), yyvsp[-1].p, (Node*)STRING); }
3211
break;
3212
case 163:
3213
#line 394 "/usr/src/usr.bin/awk/awkgram.y"
3214
{ yyval.p = op4(SPLIT, yyvsp[-5].p, makearr(yyvsp[-3].p), (Node*)makedfa(yyvsp[-1].s, 1), (Node *)REGEXPR); }
3215
break;
3216
case 164:
3217
#line 396 "/usr/src/usr.bin/awk/awkgram.y"
3218
{ yyval.p = op4(SPLIT, yyvsp[-3].p, makearr(yyvsp[-1].p), NIL, (Node*)STRING); }
3219
break;
3220
case 165:
3221
#line 397 "/usr/src/usr.bin/awk/awkgram.y"
3222
{ yyval.p = op1(yyvsp[-3].i, yyvsp[-1].p); }
3223
break;
3224
case 166:
3225
#line 398 "/usr/src/usr.bin/awk/awkgram.y"
3226
{ yyval.p = celltonode(yyvsp[0].cp, CCON); }
3227
break;
3228
case 167:
3229
#line 400 "/usr/src/usr.bin/awk/awkgram.y"
3230
{ yyval.p = op4(yyvsp[-5].i, NIL, (Node*)makedfa(yyvsp[-3].s, 1), yyvsp[-1].p, rectonode()); }
3231
break;
3232
case 168:
3233
#line 402 "/usr/src/usr.bin/awk/awkgram.y"
3234
{ if (constnode(yyvsp[-3].p))
3235
			yyval.p = op4(yyvsp[-5].i, NIL, (Node*)makedfa(strnode(yyvsp[-3].p), 1), yyvsp[-1].p, rectonode());
3236
		  else
3237
			yyval.p = op4(yyvsp[-5].i, (Node *)1, yyvsp[-3].p, yyvsp[-1].p, rectonode()); }
3238
break;
3239
case 169:
3240
#line 407 "/usr/src/usr.bin/awk/awkgram.y"
3241
{ yyval.p = op4(yyvsp[-7].i, NIL, (Node*)makedfa(yyvsp[-5].s, 1), yyvsp[-3].p, yyvsp[-1].p); }
3242
break;
3243
case 170:
3244
#line 409 "/usr/src/usr.bin/awk/awkgram.y"
3245
{ if (constnode(yyvsp[-5].p))
3246
			yyval.p = op4(yyvsp[-7].i, NIL, (Node*)makedfa(strnode(yyvsp[-5].p), 1), yyvsp[-3].p, yyvsp[-1].p);
3247
		  else
3248
			yyval.p = op4(yyvsp[-7].i, (Node *)1, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); }
3249
break;
3250
case 171:
3251
#line 414 "/usr/src/usr.bin/awk/awkgram.y"
3252
{ yyval.p = op3(SUBSTR, yyvsp[-5].p, yyvsp[-3].p, yyvsp[-1].p); }
3253
break;
3254
case 172:
3255
#line 416 "/usr/src/usr.bin/awk/awkgram.y"
3256
{ yyval.p = op3(SUBSTR, yyvsp[-3].p, yyvsp[-1].p, NIL); }
3257
break;
3258
case 175:
3259
#line 422 "/usr/src/usr.bin/awk/awkgram.y"
3260
{ yyval.p = op2(ARRAY, makearr(yyvsp[-3].p), yyvsp[-1].p); }
3261
break;
3262
case 176:
3263
#line 423 "/usr/src/usr.bin/awk/awkgram.y"
3264
{ yyval.p = op1(INDIRECT, celltonode(yyvsp[0].cp, CVAR)); }
3265
break;
3266
case 177:
3267
#line 424 "/usr/src/usr.bin/awk/awkgram.y"
3268
{ yyval.p = op1(INDIRECT, yyvsp[0].p); }
3269
break;
3270
case 178:
3271
#line 428 "/usr/src/usr.bin/awk/awkgram.y"
3272
{ arglist = yyval.p = 0; }
3273
break;
3274
case 179:
3275
#line 429 "/usr/src/usr.bin/awk/awkgram.y"
3276
{ arglist = yyval.p = celltonode(yyvsp[0].cp,CVAR); }
3277
break;
3278
case 180:
3279
#line 430 "/usr/src/usr.bin/awk/awkgram.y"
3280
{
3281
			checkdup(yyvsp[-2].p, yyvsp[0].cp);
3282
			arglist = yyval.p = linkum(yyvsp[-2].p,celltonode(yyvsp[0].cp,CVAR)); }
3283
break;
3284
case 181:
3285
#line 436 "/usr/src/usr.bin/awk/awkgram.y"
3286
{ yyval.p = celltonode(yyvsp[0].cp, CVAR); }
3287
break;
3288
case 182:
3289
#line 437 "/usr/src/usr.bin/awk/awkgram.y"
3290
{ yyval.p = op1(ARG, itonp(yyvsp[0].i)); }
3291
break;
3292
case 183:
3293
#line 438 "/usr/src/usr.bin/awk/awkgram.y"
3294
87100
{ yyval.p = op1(VARNF, (Node *) yyvsp[0].cp); }
3295
87100
break;
3296
87100
case 184:
3297
87100
#line 443 "/usr/src/usr.bin/awk/awkgram.y"
3298
87100
{ yyval.p = notnull(yyvsp[-1].p); }
3299
break;
3300
#line 3293 "ytab.c"
3301
    }
3302
    yyssp -= yym;
3303
    yystate = *yyssp;
3304
    yyvsp -= yym;
3305
    yym = yylhs[yyn];
3306
981
    if (yystate == 0 && yym == 0)
3307
981
    {
3308
981
#if YYDEBUG
3309
        if (yydebug)
3310
            printf("%sdebug: after reduction, shifting from state 0 to\
3311
 state %d\n", YYPREFIX, YYFINAL);
3312
#endif
3313
        yystate = YYFINAL;
3314
        *++yyssp = YYFINAL;
3315
        *++yyvsp = yyval;
3316
        if (yychar < 0)
3317
        {
3318
            if ((yychar = yylex()) < 0) yychar = 0;
3319
#if YYDEBUG
3320
            if (yydebug)
3321
            {
3322
981
                yys = 0;
3323
                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
3324
                if (!yys) yys = "illegal-symbol";
3325

305291
                printf("%sdebug: state %d, reading %d (%s)\n",
3326
145584
                        YYPREFIX, YYFINAL, yychar, yys);
3327
41237
            }
3328
#endif
3329
44882
        }
3330
        if (yychar == 0) goto yyaccept;
3331
        goto yyloop;
3332
    }
3333
    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
3334
            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
3335

86119
        yystate = yytable[yyn];
3336
    else
3337
        yystate = yydgoto[yym];
3338
#if YYDEBUG
3339
86119
    if (yydebug)
3340
86119
        printf("%sdebug: after reduction, shifting from state %d \
3341
86119
to state %d\n", YYPREFIX, *yyssp, yystate);
3342
#endif
3343
    if (yyssp >= yysslim && yygrowstack())
3344
    {
3345
        goto yyoverflow;
3346
    }
3347
    *++yyssp = yystate;
3348
    *++yyvsp = yyval;
3349
    goto yyloop;
3350
yyoverflow:
3351
    yyerror("yacc stack overflow");
3352
yyabort:
3353
    if (yyss)
3354
981
            free(yyss);
3355
981
    if (yyvs)
3356
981
            free(yyvs);
3357
981
    yyss = yyssp = NULL;
3358
981
    yyvs = yyvsp = NULL;
3359
981
    yystacksize = 0;
3360
981
    return (1);
3361
981
yyaccept:
3362
981
    if (yyss)
3363
            free(yyss);
3364
    if (yyvs)
3365
            free(yyvs);
3366
    yyss = yyssp = NULL;
3367
    yyvs = yyvsp = NULL;
3368
    yystacksize = 0;
3369
    return (0);
3370
}