perl 5.003_03: x2p/str.c
[p5sagit/p5-mst-13.2.git] / x2p / a2p.c
1 #ifndef lint
2 static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91";
3 #endif
4 #define YYBYACC 1
5 #line 2 "a2p.y"
6 /* $RCSfile: a2p.y,v $$Revision: 4.1 $$Date: 92/08/07 18:29:12 $
7  *
8  *    Copyright (c) 1991, Larry Wall
9  *
10  *    You may distribute under the terms of either the GNU General Public
11  *    License or the Artistic License, as specified in the README file.
12  *
13  * $Log:        a2p.y,v $
14  */
15
16 #include "INTERN.h"
17 #include "a2p.h"
18
19 int root;
20 int begins = Nullop;
21 int ends = Nullop;
22
23 #line 24 "y.tab.c"
24 #define BEGIN 257
25 #define END 258
26 #define REGEX 259
27 #define SEMINEW 260
28 #define NEWLINE 261
29 #define COMMENT 262
30 #define FUN1 263
31 #define FUNN 264
32 #define GRGR 265
33 #define PRINT 266
34 #define PRINTF 267
35 #define SPRINTF 268
36 #define SPLIT 269
37 #define IF 270
38 #define ELSE 271
39 #define WHILE 272
40 #define FOR 273
41 #define IN 274
42 #define EXIT 275
43 #define NEXT 276
44 #define BREAK 277
45 #define CONTINUE 278
46 #define RET 279
47 #define GETLINE 280
48 #define DO 281
49 #define SUB 282
50 #define GSUB 283
51 #define MATCH 284
52 #define FUNCTION 285
53 #define USERFUN 286
54 #define DELETE 287
55 #define ASGNOP 288
56 #define OROR 289
57 #define ANDAND 290
58 #define NUMBER 291
59 #define VAR 292
60 #define SUBSTR 293
61 #define INDEX 294
62 #define MATCHOP 295
63 #define RELOP 296
64 #define OR 297
65 #define STRING 298
66 #define UMINUS 299
67 #define NOT 300
68 #define INCR 301
69 #define DECR 302
70 #define FIELD 303
71 #define VFIELD 304
72 #define YYERRCODE 256
73 short yylhs[] = {                                        -1,
74     0,    3,    6,    6,    2,    2,    7,    7,    7,    7,
75     7,    7,    9,    8,    8,   11,   11,   11,   11,   11,
76    15,   15,   15,   15,   14,   14,   14,   14,   13,   13,
77    13,   13,   12,   12,   12,   16,   16,   16,   16,   16,
78    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
79    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
80    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
81    16,   16,   16,   16,   16,   16,   16,   16,   16,   16,
82    16,   17,   17,   17,   17,   10,   10,   10,   18,   18,
83    18,    1,    1,   19,   19,   19,   19,    4,    4,   20,
84    20,   21,   21,   21,   21,    5,    5,   22,   22,   22,
85    22,   25,   25,   23,   23,   23,   23,   23,   23,   23,
86    23,   23,   23,   23,   23,   23,   26,   26,   26,   24,
87    24,   24,   24,   24,   24,   24,   24,
88 };
89 short yylen[] = {                                         2,
90     2,    6,    5,    2,    3,    0,    1,    5,   10,    4,
91     1,    1,    1,    1,    3,    1,    1,    1,    1,    5,
92     3,    4,    4,    2,    3,    3,    3,    3,    3,    3,
93     1,    3,    1,    2,    3,    1,    1,    1,    3,    3,
94     3,    3,    3,    3,    3,    5,    2,    2,    2,    2,
95     2,    2,    3,    1,    2,    3,    4,    3,    4,    1,
96     3,    4,    4,    4,    2,    8,    6,    8,    8,    6,
97     6,    6,    6,    6,    6,    6,    6,    8,    8,    8,
98     8,    1,    4,    1,    2,    1,    1,    0,    4,    4,
99     3,    2,    0,    1,    1,    1,    1,    2,    0,    1,
100     1,    2,    2,    2,    2,    2,    0,    3,    2,    2,
101     1,    1,    0,    1,    4,    2,    4,    2,    1,    1,
102     1,    2,    1,    1,    2,    5,    1,    1,    1,    6,
103     9,    6,    7,   10,    9,    6,    5,
104 };
105 short yydefred[] = {                                     93,
106     0,    0,   95,   96,   97,   94,    0,   92,    0,    0,
107    31,    0,    0,    0,    0,    0,    0,    0,    0,    0,
108     0,   37,    0,    0,    0,   38,    0,    0,    0,    0,
109     0,   84,    0,   99,    0,   11,    0,   93,    0,    0,
110     0,   17,   18,   19,    0,    0,   99,   99,    0,    0,
111     0,   65,    0,    0,    0,    0,    0,    0,    0,    0,
112     0,    0,    0,    0,    0,    0,    0,    0,   24,   49,
113    50,    0,    0,    0,    0,    0,    0,    4,    0,   99,
114     0,   99,   99,    0,    0,    0,    0,    0,    0,    0,
115     0,    0,    0,    0,    0,    0,    0,    0,   47,   48,
116     0,    0,   61,    0,    0,    0,    0,   99,   99,    0,
117     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
118     0,    0,  100,  101,    0,   98,   53,   32,   28,   21,
119     0,    0,    0,    0,    0,   30,    0,    0,    0,    0,
120    45,    0,    0,    0,    0,    0,    0,    0,    0,    0,
121     0,   62,   63,   91,    0,    0,    0,    0,    0,    0,
122     0,    0,    0,    0,   13,   64,   83,    0,    0,   99,
123     0,    0,    0,    0,    0,    0,  120,  119,  123,    0,
124    99,    0,   99,   10,   99,    0,  106,    0,  111,    0,
125     0,    0,   22,   59,   93,    3,    0,    0,    0,    0,
126     0,    0,    0,    0,    0,   99,    0,    0,    0,    0,
127     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
128    99,   99,   99,   99,   99,    8,    0,    0,   70,    0,
129    75,    0,   74,    0,   77,    0,   76,    0,   72,   73,
130     0,   67,    0,   71,  128,  127,  129,    0,    0,    0,
131     0,    0,  112,    0,    0,    0,    0,    0,    0,    0,
132     0,    0,    0,    0,    0,    0,    0,    0,   99,    0,
133     0,    0,   99,   99,   99,    0,    0,    0,   99,   69,
134    68,   79,   78,   81,   80,    0,   66,    0,    0,    0,
135     0,    0,    0,  126,    0,    0,    0,  132,  136,    0,
136     0,    0,    9,   99,   99,    0,  133,    0,    0,   99,
137   131,  135,    0,  134,
138 };
139 short yydgoto[] = {                                       1,
140     2,    7,   36,   73,  125,   37,   38,   39,  164,   52,
141    53,   41,   42,   43,   44,   45,   46,   55,    8,  126,
142   225,  187,  188,  189,  254,  248,
143 };
144 short yysindex[] = {                                      0,
145     0,  -48,    0,    0,    0,    0, 6619,    0, -121, -110,
146     0,   -4,   32, 4183,   38,   30,   51,   64,   68, -260,
147    70,    0,  -61,   82,   83,    0, 4448, 4448, 4448, -183,
148  -183,    0, 4448,    0, 4448,    0, -188,    0,    3,   22,
149  6884,    0,    0,    0,   34, -213,    0,    0, 2061, 4183,
150  4183,    0,  -49, 5612,   85, 4448, 4448,   14, 4713, 6753,
151  4448,   87, 4183, 4183, 4448, 4448,  -77,  -77,    0,    0,
152     0,   18, -192,  -36,   91,   92,   95,    0,  -48,    0,
153  4448,    0,    0, 4448, 6980, 4448, 4448, 4448,   34, -154,
154  4448, 4448, 4448, 4448, 4448, 4448, -135, 4448,    0,    0,
155  -192, -192,    0, 5658,  106, 5612,   11,    0,    0, 5704,
156   186, 4448,  113, 5751,  115, 5805, 5885, 4183,  114,   67,
157  5931, 5978,    0,    0, 4572,    0,    0,    0,    0,    0,
158  -192, 6032, 1964, 1964,  -49,    0, 3230,  186,  186,  186,
159     0,   97,   97,  -77,  -77,  -77,  -77, -183,  -49, 4665,
160  4765,    0,    0,    0, 1964, 1964, -131,  186, 4448, 4448,
161  4448, 4448, 7026,  121,    0,    0,    0, 4448, 4448,    0,
162  4183, 4183,  124,  125,  132, 4448,    0,    0,    0, 4448,
163     0, -117,    0,    0,    0, 6884,    0,  -44,    0, 4837,
164  4448, -114,    0,    0,    0,    0, 6884, 6884,   13, 3635,
165  5295, 5367, 5506,  137, 6078,    0, 5560, 6243, -192,  -59,
166   -59, 4448, 4448, 5241, 6884, 6884, 3701,   93, -192, -192,
167     0,    0,    0,    0,    0,    0, 6884,  -48,    0, 7084,
168     0, 4448,    0, 4448,    0, 4448,    0, 4448,    0,    0,
169  -119,    0, 4448,    0,    0,    0,    0, 4448, 4448,  -34,
170   -16, 6343,    0,  123,  -89, 4183, 4930, -192, -192, -192,
171  -192, -192,  144, 6389, 6435, 6508, 6554, 6700,    0, 6819,
172  6884, 6884,    0,    0,    0, 6930,  146,   94,    0,    0,
173     0,    0,    0,    0,    0, -192,    0, 3701, 3701, 3701,
174  5241,  -53, 4448,    0, -192, 5030,  -83,    0,    0,  148,
175  5241,  -13,    0,    0,    0,  149,    0, 3701, 3701,    0,
176     0,    0, 3701,    0,
177 };
178 short yyrindex[] = {                                      0,
179     0, 2015,    0,    0,    0,    0,  192,    0,    0,    0,
180     0,   56,    0, 3424,    0, 2619,    0,    0,    0,    0,
181     0,    0,    1,    0,    0,    0,    0,    0,    0,    0,
182     0,    0,    0,    0,    0,    0, 2147,    0, 2195, 1676,
183  3509,    0,    0,    0, 1782, 1340,    0,    0,    0,  152,
184     0,    0,    0, 3829,  111,    0,    0,  381,    0,    0,
185     0,    0,  152,  101,    0,    0,  564,  834,    0,    0,
186     0,  436, 5102,    0,  -47,   39,   42,    0, 2245,    0,
187     0,    0,    0,    0,    0,    0,    0,    0, 1830,    0,
188     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
189  5102, 5102,    0,   72,    0,   17,    0,    0,    0,   72,
190  2718,    0,   74,   72,   74,   72,   72,  152,    0,    0,
191    72,   72,    0,    0,    0,    0,    0,    0,    0,    0,
192  5102,   72,    0,    0, 1882,    0, 3464, 3057, 3097, 3145,
193     0, 1468, 1734,  888,  942, 1016, 1286, 2564, 1395,    0,
194     0,    0,    0,    0,    0,    0,    0, 3185,    0,    0,
195     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
196   538,  538,    0,    0,    0,  122,    0,    0,    0,  241,
197     0,    0,    0,    0,    0,  -41,    0,    0,    0,    0,
198     0,  491,    0,    0,    0,    0, 3549, 3594,    0,   72,
199    72,   72,   72,   74,   72,    0,   72,   72, 3866,  296,
200   357,    0,    0,  136,  -10,  169,    0,    0, 5102, 3970,
201     0,    0,    0,    0,    0,    0, 3784, 2294,    0,    0,
202     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
203     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
204     0,  -51,    0,    0,    0,  101,    0, 4038, 4135, 4235,
205  4307, 4400,   74,   72,   72,   72,   72,   72,    0,   72,
206   507,  553,    0,    0,    0,    0,    0,    0,    0,    0,
207     0,    0,    0,    0,    0, 5102,    0,    0,    0,    0,
208   155,    0,    0,    0, 4500,    0, 5195,    0,    0,    0,
209   155,    0,    0,    0,    0,    0,    0,    0,    0,    0,
210     0,    0,    0,    0,
211 };
212 short yygindex[] = {                                      0,
213   -18,    0,    0, 7251,  -19,    0,    0,    0,    0,  -31,
214    33, 2875,  -14,  -12,   16, 7373,   76,  147,    0,    0,
215     0,  231, -205,    0, -267,   -9,
216 };
217 #define YYTABLESIZE 7645
218 short yytable[] = {                                     114,
219    82,   47,  246,  269,  127,  301,  273,  114,  253,   81,
220     6,   16,   48,   81,  224,   17,   96,  114,  105,   79,
221    75,   16,   76,  300,  274,   62,   81,  307,   81,   64,
222   122,  119,  120,  306,   97,   49,   75,   82,   76,   40,
223    82,   82,   82,   82,   82,   82,   81,   82,  122,   81,
224    77,  154,   16,  229,  109,   60,  230,   16,   82,   82,
225    82,   69,   82,   82,  247,   84,   77,   74,  123,  124,
226    95,   50,   78,  112,   98,   93,   91,   56,   92,   16,
227    94,  150,  151,   74,   81,  253,  165,   99,  100,   57,
228    59,   58,   60,   82,   82,  253,   60,   60,   60,   60,
229    60,   18,   60,   60,   19,   70,   71,   61,   23,   63,
230    87,  190,   82,   60,   60,   60,  135,   60,   60,   32,
231    33,   65,   66,   82,   82,   80,  118,   96,  109,   97,
232   149,  128,  129,   95,   16,  130,   31,  141,   93,  210,
233   211,  123,  124,   94,  148,   97,  153,   87,   60,   60,
234    87,   87,   87,   87,  166,   87,  159,   87,  161,  167,
235   199,  206,  121,  212,  213,  192,  193,   60,   87,   87,
236    87,  214,   87,   87,  218,   83,  228,  239,   60,   60,
237   121,  276,  277,  256,  280,  293,  294,  304,  305,  310,
238    96,    1,   88,   88,  113,  113,    0,  107,    0,  257,
239     0,  249,    0,   87,   87,  245,    0,    0,   97,  125,
240     0,    3,    4,    5,    0,  221,  222,  223,  114,  114,
241   114,    0,   87,  194,  278,   35,    0,  125,   27,    0,
242    28,   16,    0,   87,   87,   82,   83,   16,   16,   82,
243    83,   17,   17,    0,  250,  251,    0,   16,   16,  122,
244   122,  122,   82,   83,   82,   83,    0,   82,   82,   82,
245    82,   82,   82,   82,   82,   82,  296,    0,   82,   82,
246     0,    0,   82,   83,   82,   82,   83,    0,   16,   16,
247    82,  124,   82,   82,   82,   82,   82,    0,   82,   82,
248    82,   82,   82,   82,   82,   82,   82,    0,   82,  124,
249    82,   82,   82,   82,   82,   16,   16,   90,  292,    0,
250    82,   83,   60,   60,   60,   60,   60,   60,   60,   60,
251    60,   23,    0,   60,   60,  302,    0,   18,   18,   60,
252    19,   19,   32,   33,    0,   60,  116,   60,   60,   60,
253    60,   60,    0,   60,   60,   60,   60,   60,   60,   60,
254    60,   60,    0,   60,  116,   60,   60,   60,   60,   60,
255    16,   16,   31,   31,    0,    0,    0,   87,   87,   87,
256    87,   87,   87,   87,   87,   87,    0,    0,   87,   87,
257    55,  121,  121,  121,   87,    0,    0,    0,    0,    0,
258    87,    0,   87,   87,   87,   87,   87,  118,   87,   87,
259    87,   87,   87,   87,   87,   87,   87,    0,   87,    0,
260    87,   87,   87,   87,   87,  118,    0,   55,    0,    0,
261    55,   55,   55,   55,   55,   55,    0,   55,  125,  125,
262   125,    0,    0,    0,    0,   85,    0,    0,   55,   55,
263     0,    0,   55,   55,   11,    0,    0,  255,   12,   13,
264     0,    0,    0,   14,   15,    0,    0,   16,   16,    0,
265     0,    0,    0,    0,    0,   16,    0,   17,   18,   19,
266     0,   21,   85,   55,   55,   33,   85,   85,   85,   85,
267    85,    0,   85,   26,    0,   29,   30,   31,   32,   33,
268    23,    0,   55,   85,   85,   33,    0,   33,   33,    0,
269   124,  124,  124,   55,   55,    0,    0,    0,    0,    0,
270     0,    0,    0,    0,    0,    0,    0,    0,  297,  298,
271   299,    0,    0,    0,    0,    0,    0,   23,   85,   85,
272    23,   23,   23,   23,   23,   23,    0,   23,  311,  312,
273     0,    0,    0,  314,    0,    0,    0,  115,   23,   23,
274    23,    0,   23,   23,    0,  116,  116,  116,   85,   85,
275     0,    0,    0,   52,    0,  115,    0,    0,    0,   16,
276     0,    0,    0,    0,    0,    0,    0,    0,   88,    0,
277     0,    0,    0,   23,   23,    0,    0,    0,    0,    0,
278     0,    0,    0,  117,    0,    0,   88,    0,    0,   88,
279    52,    0,   23,   33,   52,   52,   52,   52,   52,    0,
280    52,  117,    0,   23,   23,   16,  118,  118,  118,    0,
281     0,   52,   52,   33,    0,   33,   33,    0,    0,    0,
282     0,    0,    0,    0,    0,    0,    0,   55,   55,   55,
283    55,   55,   55,   55,   55,   55,    0,    0,   55,   55,
284     0,    0,    0,    0,   55,    0,   52,    0,    0,    0,
285    55,   88,   55,   55,   55,   55,   55,    0,   55,   55,
286    55,   55,   55,   55,   55,   55,   55,    0,   55,    0,
287    55,   55,   55,   55,   55,    0,   52,   52,    0,    0,
288     0,    0,   85,   85,   33,   85,   85,   85,   33,   33,
289    85,    0,    0,   33,   33,    0,    0,    0,    0,   85,
290     0,    0,    0,    0,    0,   33,    0,   33,   33,   33,
291    85,   33,    0,   85,   33,   33,   33,   33,   33,   33,
292    33,   33,    0,   33,    0,   33,   33,   33,   33,   33,
293     0,    0,    0,    0,    0,    0,    0,   23,   23,   23,
294    23,   23,   23,   23,   23,   23,    0,    0,   23,   23,
295     0,    0,    0,    0,   23,    0,  115,  115,  115,    0,
296    23,    0,   23,   23,   23,   23,   23,    0,   23,   23,
297     0,   23,   23,   23,   23,   23,   23,    0,   23,    0,
298    23,   23,   23,   23,   23,   16,   16,   88,   88,   88,
299     0,    0,   88,    0,    0,    0,    0,    0,    0,    0,
300     0,    0,  117,  117,  117,    0,    0,    0,    0,    0,
301    52,   52,   33,   52,   52,   52,   33,   33,   52,    0,
302     0,   33,   33,   51,    0,    0,    0,   52,    0,    0,
303     0,   16,   16,   33,    0,   33,   33,   33,   52,   33,
304     0,   52,   33,   33,   33,   33,   33,   33,   33,   33,
305     0,   33,    0,   33,   33,   33,   33,   33,    0,    0,
306    51,    0,    0,   33,   51,   51,   51,   51,   51,    0,
307    51,    0,    0,    0,    0,    0,    0,   41,    0,    0,
308     0,   51,   51,   33,    0,   33,   33,    0,    0,    0,
309     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
310     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
311     0,    0,    0,    0,   41,    0,   51,   33,   41,   41,
312    41,   41,   41,    0,   41,    0,    0,    0,    0,    0,
313     0,   42,    0,    0,    0,   41,   41,   33,    0,   33,
314    33,    0,    0,    0,    0,    0,   51,   51,    0,    0,
315     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
316     0,    0,    0,    0,    0,    0,    0,    0,   42,    0,
317    41,   33,   42,   42,   42,   42,   42,    0,   42,    0,
318     0,    0,    0,    0,    0,    0,    0,    0,    0,   42,
319    42,   33,    0,   33,   33,    0,    0,    0,    0,    0,
320    41,   41,    0,    0,    0,   43,    0,    0,    0,    0,
321     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
322     0,    0,    0,    0,   42,    0,    0,    0,    0,    0,
323     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
324     0,    0,   43,    0,    0,   33,   43,   43,   43,   43,
325    43,    0,   43,    0,   42,   42,    0,    0,    0,    0,
326     0,    0,    0,   43,   43,   33,    0,   33,   33,    0,
327     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
328    51,   51,   33,   51,   51,   51,   33,   33,   51,    0,
329     0,   33,   33,    0,    0,    0,    0,   51,   43,    0,
330     0,    0,    0,   33,    0,   33,   33,   33,   51,   33,
331     0,   51,   33,   33,   33,   33,   33,   33,   33,   33,
332     0,   33,    0,   33,   33,   33,   33,   33,   43,   43,
333     0,    0,    0,    0,   41,   41,   33,   41,   41,   41,
334    33,   33,   41,    0,    0,   33,   33,    0,    0,    0,
335     0,   41,    0,    0,    0,    0,    0,   33,    0,   33,
336    33,   33,   41,   33,    0,   41,   33,   33,   33,   33,
337    33,   33,   33,   33,    0,   33,    0,   33,   33,   33,
338    33,   33,    0,    0,    0,    0,    0,    0,   42,   42,
339    33,   42,   42,   42,   33,   33,   42,    0,    0,   33,
340    33,    0,    0,    0,    0,   42,    0,    0,    0,    0,
341     0,   33,    0,   33,   33,   33,   42,   33,    0,   42,
342    33,   33,   33,   33,   33,   33,   33,   33,    0,   33,
343     0,   33,   33,   33,   33,   33,    0,    0,    0,    0,
344     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
345     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
346     0,    0,   43,   43,   33,   43,   43,   43,   33,   33,
347    43,    0,    0,   33,   33,   44,    0,    0,    0,   43,
348     0,    0,    0,    0,    0,   33,    0,   33,   33,   33,
349    43,   33,    0,   43,   33,   33,   33,   33,   33,   33,
350    33,   33,    0,   33,    0,   33,   33,   33,   33,   33,
351     0,    0,   44,    0,    0,   33,   44,   44,   44,   44,
352    44,    0,   44,    0,    0,    0,    0,    0,    0,   36,
353     0,    0,    0,   44,   44,   33,    0,   33,   33,    0,
354     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
355     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
356     0,    0,    0,    0,    0,    0,   36,    0,   44,   36,
357    36,   36,   36,   36,   36,    0,   36,    0,    0,    0,
358     0,    0,    0,    0,   35,    0,    0,   36,   36,   36,
359     0,   36,   36,    0,    0,    0,    0,    0,   44,   44,
360     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
361     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
362     0,   35,   36,   36,   35,   35,   35,   35,   35,   35,
363     0,   35,    0,    0,    0,    0,    0,    0,    0,    0,
364     0,   36,   35,   35,   35,    0,   35,    0,    0,    0,
365     0,    0,   36,   36,    0,    0,    0,   39,    0,    0,
366     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
367     0,    0,    0,    0,    0,    0,    0,   35,   35,    0,
368     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
369     0,    0,    0,    0,    0,    0,   35,   33,   39,    0,
370    39,   39,   39,    0,    0,    0,    0,   35,   35,    0,
371     0,    0,    0,    0,    0,   39,   39,   33,    0,   33,
372    33,    0,    0,    0,    0,    0,    0,    0,    0,    0,
373     0,    0,   44,   44,   33,   44,   44,   44,   33,   33,
374    44,    0,    0,   33,   33,    0,    0,    0,    0,   44,
375    39,    0,    0,    0,    0,   33,    0,   33,   33,   33,
376    44,   33,    0,   44,   33,   33,   33,   33,   33,   33,
377    33,   33,    0,   33,    0,   33,   33,   33,   33,   33,
378    39,   39,    0,    0,    0,    0,   36,   36,   36,   36,
379    36,   36,   36,   36,   36,    0,    0,   36,   36,    0,
380     0,    0,    0,   36,    0,    0,    0,    0,    0,   36,
381     0,   36,   36,   36,   36,   36,    0,    0,   36,   36,
382    36,   36,   36,   36,   36,   36,    0,   36,    0,   36,
383     0,    0,   36,   36,    0,    0,    0,    0,    0,    0,
384     0,   35,   35,   35,   35,   35,   35,   35,   35,   35,
385     0,    0,   35,   35,    0,    0,    0,    0,   35,    0,
386     0,    0,    0,    0,   35,   14,   35,   35,   35,   35,
387    35,    0,   35,    0,    0,   35,   35,   35,   35,   35,
388    35,    0,   35,    0,   35,   35,   35,   35,   35,    0,
389     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
390     0,    0,    0,    0,    0,   14,    0,    0,   14,    0,
391    14,    0,    0,    0,   39,   39,   33,   39,   39,   39,
392    33,   33,   39,   40,   14,   33,   33,    0,    0,    0,
393     0,   39,    0,    0,    0,    0,    0,   33,    0,   33,
394    33,   33,   39,   33,    0,   39,   33,   33,   33,   33,
395    33,   33,   33,   33,    0,   33,    0,   33,   33,   33,
396    33,   33,    0,   33,   40,    0,   40,   40,   40,    0,
397     0,   33,    0,    0,    0,    0,    0,    0,    0,    0,
398     0,   40,   40,   33,    0,   33,   33,    0,   14,    0,
399     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
400     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
401     0,   33,   33,    0,    0,   33,   40,    0,    0,   34,
402     0,    0,    0,    0,    0,    0,    0,    0,    0,   33,
403    33,   33,    0,   33,   33,    0,    0,    0,    0,    0,
404     0,    0,    0,    0,    0,    0,   40,   40,    0,    0,
405     0,    0,    0,    0,    0,    0,    0,    0,    0,   33,
406    34,    0,    0,   34,   33,    0,    0,    0,    0,    0,
407     0,   15,    0,    0,    0,    0,    0,   34,   34,   33,
408     0,   33,   33,    0,    0,    0,    0,    0,    0,    0,
409     0,    0,    0,    0,   33,   33,    0,    0,    0,    0,
410     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
411     0,   15,   34,    0,   15,    0,   15,    0,    0,    0,
412     0,    0,   14,   14,   14,   14,   14,   14,   14,   14,
413    15,    0,    0,   14,   14,    0,    0,    0,    0,    0,
414     0,    0,   34,   34,    0,   14,    0,   14,   14,   14,
415    14,   14,    0,    0,    0,    0,   14,   14,   14,   14,
416     0,    0,    0,   14,    0,   14,   14,   14,   14,   14,
417     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418    40,   40,   33,   40,   40,   40,   33,   33,   40,    0,
419     0,   33,   33,   35,   15,    0,   27,   40,   28,    0,
420     0,    0,    0,   33,    6,   33,   33,   33,   40,   33,
421     0,   40,   33,   33,   33,   33,   33,   33,   33,   33,
422     0,   33,    0,   33,   33,   33,   33,   33,   33,   33,
423    33,   33,   33,   33,   33,   33,   33,    0,    0,   33,
424    33,    0,    0,    0,    6,    0,    0,    6,    0,    6,
425     0,   33,    0,   33,   33,   33,   33,   33,    0,   33,
426    33,   33,   33,   33,   33,   33,   33,   33,    0,   33,
427     0,   33,   33,   33,   33,   33,   34,   34,   33,   34,
428    34,   34,   33,   33,   34,    0,    0,   33,   33,    0,
429    35,  103,    0,   27,    0,   28,    0,    0,    0,   33,
430     0,   33,   33,   33,   34,   33,    0,   34,   33,   33,
431    33,   33,   33,   33,   33,   33,    0,   33,    0,   33,
432    33,   33,   33,   33,    0,    0,    0,    6,   15,   15,
433    15,   15,   15,   15,   15,   15,   12,    0,    0,   15,
434    15,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435     0,   15,    0,   15,   15,   15,   15,   15,    0,    0,
436     0,    0,   15,   15,   15,   15,    0,    0,    0,   15,
437     0,   15,   15,   15,   15,   15,   12,    0,    0,   12,
438     0,   12,    0,    0,    7,    0,    0,    0,    0,    0,
439     0,    0,    0,    0,    0,   12,    0,    0,    0,    0,
440     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
441     0,    0,   11,    0,  123,  124,   12,   13,    0,    0,
442     0,   14,   15,    0,    7,    0,    0,    7,    0,    7,
443     0,    0,    0,   16,    5,   17,   18,   19,    0,   21,
444     0,    0,    0,    7,   22,   23,   24,   25,    0,    0,
445     0,   26,    0,   29,   30,   31,   32,   33,    0,   12,
446     0,    6,    6,    6,    0,    0,    0,    6,    6,    0,
447     0,    0,    6,    6,    5,    0,    0,    5,    0,    5,
448     0,    0,    0,    2,    6,    0,    6,    6,    6,    6,
449     6,    0,    0,    0,    0,    6,    6,    6,    6,    0,
450     0,    0,    6,    0,    6,    6,    6,    6,    6,   11,
451     0,    0,    0,   12,   13,    0,    0,    0,   14,   15,
452     0,    0,    0,    2,    0,    0,    2,    0,    2,    0,
453    16,    0,   17,   18,   19,    0,   21,    0,    0,    0,
454     0,   22,   23,   24,   25,    0,    0,    0,   26,    0,
455    29,   30,   31,   32,   33,    0,    0,    5,    0,    0,
456     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
457     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
458     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
459     0,    0,    0,   12,   12,   12,   12,    0,   12,   12,
460    12,    0,    0,    0,   12,   12,    2,    0,    0,    0,
461     0,    0,    0,    0,    0,    0,   12,    0,   12,   12,
462    12,   12,   12,    0,    0,    0,    0,   12,   12,   12,
463    12,    0,    0,    0,   12,    0,   12,   12,   12,   12,
464    12,    7,    7,    7,    7,    7,    7,    7,    7,    0,
465     0,    0,    7,    7,    0,    0,    0,    0,    0,    0,
466     0,    0,    0,    0,    7,    0,    7,    7,    7,    7,
467     7,    0,    0,    0,    0,    7,    7,    7,    7,    0,
468     0,    0,    7,    0,    7,    7,    7,    7,    7,    0,
469     0,    5,    5,    5,    0,    0,    0,    5,    5,    0,
470     0,    0,    5,    5,    0,    0,    0,    0,    0,    0,
471     0,    0,    0,    0,    5,    0,    5,    5,    5,    5,
472     5,    0,    0,    0,    0,    5,    5,    5,    5,    0,
473     0,    0,    5,    0,    5,    5,    5,    5,    5,    0,
474     2,    2,    2,    0,    0,    0,    2,    2,    0,    0,
475     0,    2,    2,   58,    0,    0,    0,    0,    0,    0,
476     0,    0,    0,    2,    0,    2,    2,    2,    2,    2,
477     0,    0,    0,    0,    2,    2,    2,    2,    0,    0,
478     0,    2,    0,    2,    2,    2,    2,    2,    0,    0,
479    58,    0,    0,   58,   58,   58,   58,   58,   58,    0,
480    58,    0,    0,    0,    0,    0,    0,    0,   54,    0,
481     0,   58,   58,   58,    0,   58,   58,    0,    0,    0,
482     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
483     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
484     0,    0,    0,    0,    0,   54,   58,   58,   54,   54,
485    54,   54,   54,   54,    0,   54,    0,    0,    0,    0,
486     0,    0,    0,    0,    0,   58,   54,   54,    0,    0,
487    54,   54,    0,    0,    0,    0,   58,   58,    0,    0,
488     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
489     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
490     0,   54,   54,    0,    0,    0,    0,   56,    0,    0,
491     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492    54,    0,    0,    0,    0,    0,    0,    0,    0,    0,
493     0,   54,   54,    0,    0,    0,    0,    0,    0,    0,
494     0,    0,    0,    0,   56,    0,    0,    0,   56,   56,
495     0,   56,    0,    0,   56,    0,    0,    0,    0,    0,
496     0,    0,    0,    0,    0,   56,   56,   56,    0,   56,
497    16,    0,    0,    0,    0,    0,    0,    0,    0,    0,
498     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
499     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
500    56,   56,    0,    0,    0,    0,    0,    0,    0,    0,
501    58,   58,   58,   58,   58,   58,   58,   58,   58,   56,
502     0,   58,   58,    0,    0,    0,    0,   58,    0,    0,
503    56,   56,    0,   58,    0,   58,   58,   58,   58,   58,
504     0,   58,   58,   58,   58,    0,   58,   58,   58,   58,
505     0,   58,    0,   58,   58,   58,    0,    0,    0,    0,
506     0,    0,    0,    0,    0,   54,   54,   54,   54,   54,
507    54,   54,   54,   54,    0,    0,   54,   54,   54,    0,
508     0,    0,   54,    0,    0,    0,    0,    0,   54,    0,
509    54,   54,   54,   54,   54,    0,   54,   54,   54,   54,
510     0,   54,   54,   54,   54,    0,   54,    0,   54,   54,
511    54,    0,    0,  104,   54,  106,    0,    0,    0,    0,
512   110,  111,    0,  114,  116,  117,    0,   54,   54,  121,
513   122,    0,    0,    0,    0,    0,    0,    0,    0,    0,
514     0,    0,    0,    0,    0,  132,    0,    0,    0,  137,
515   138,  139,  140,    0,    0,    0,    0,    0,    0,    0,
516     0,    0,    0,    0,   56,   56,    0,   56,   56,   56,
517     0,    0,   56,    0,    0,    0,  158,    0,    0,    0,
518     0,   56,   54,    0,    0,    0,    0,    0,    0,  186,
519     0,    0,   56,    0,    0,   56,   16,   16,   56,   56,
520    56,   56,   56,   56,    0,    0,    0,    0,    0,    0,
521     0,    0,    0,    0,  186,  186,    0,    0,    0,  197,
522   198,    0,    0,  200,  201,  202,  203,  205,    0,    0,
523     0,    0,  207,  208,    0,   54,   54,    0,    0,    0,
524   215,    0,    0,    0,  216,    0,   25,    0,    0,    0,
525     0,    0,    0,    0,  186,  227,    0,    0,    0,    0,
526     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
527     0,    0,    0,    0,    0,    0,    0,    0,  252,    0,
528     0,  186,    0,   25,    0,    0,   27,   25,   25,    0,
529    25,    0,    0,   25,  264,    0,  265,    0,  266,    0,
530   267,    0,  268,    0,   25,   25,   25,  270,   25,   16,
531     0,    0,  271,  272,    0,    0,    0,    0,    0,    0,
532    54,  186,    0,   27,    0,    0,    0,   27,   27,    0,
533    27,    0,    0,   27,   26,    0,    0,    0,    0,   25,
534    25,    0,    0,    0,   27,   27,   27,    0,   27,   16,
535     0,    0,  186,  186,  186,  186,    0,    0,   25,    0,
536   186,    0,    0,    0,    0,  186,    0,    0,    0,   25,
537    25,   26,  186,  186,   57,   26,   26,  186,   26,   27,
538    27,   26,    0,    0,    0,    0,    0,    0,    0,    0,
539     0,    0,   26,   26,   26,    0,   26,   16,   27,    0,
540     0,    0,    0,    0,    0,    0,    0,    0,    0,   27,
541    27,   57,    0,    0,    0,   57,   57,    0,   57,    0,
542     0,   57,    0,    0,    0,    0,    0,   26,   26,    0,
543     0,    0,   57,   57,   57,    0,   57,   16,    0,    0,
544     0,    0,    0,    0,    0,    0,   26,    0,    0,    0,
545     0,    0,    0,    0,    0,    0,    0,   26,   26,   35,
546     0,    0,   27,    0,   28,    0,    0,   57,   57,    0,
547     0,    0,    0,    0,    0,    0,    0,    0,    0,   87,
548     0,   88,    0,    0,    0,    0,   57,    0,    0,    0,
549     0,    0,    0,    0,    0,    0,    0,   57,   57,    0,
550     0,    0,    0,   25,   25,    0,   25,   25,   25,    0,
551     0,   25,    0,    0,    0,    0,    0,    0,    0,    0,
552    25,    0,    0,    0,    0,    0,    0,    0,    0,    0,
553     0,   25,    0,    0,   25,   16,   16,   25,   25,   25,
554    25,   25,   25,   27,   27,    0,   27,   27,   27,    0,
555     0,   27,    0,    0,    0,    0,    0,    0,    0,    0,
556    27,    0,    0,    0,    0,    0,    0,    0,    0,    0,
557     0,   27,    0,    0,   27,   16,   16,   27,   27,   27,
558    27,   27,   27,    0,    0,    0,    0,    0,    0,    0,
559     0,   26,   26,    0,   26,   26,   26,    0,    0,   26,
560     0,    0,    0,    0,    0,    0,    0,    0,   26,    0,
561     0,    0,    0,   88,    0,    0,    0,    0,    0,   26,
562     0,    0,   26,   16,   16,   26,   26,   26,   26,   26,
563    26,   57,   57,    0,   57,   57,   57,    0,    0,   57,
564     0,    0,    0,    0,    0,    0,    0,    0,   57,    0,
565    88,    0,    0,   29,   88,   88,    0,   88,    0,   57,
566    88,    0,   57,   16,   16,   57,   57,   57,   57,   57,
567    57,   88,   88,   88,    0,   88,   88,    0,   11,    0,
568     0,    0,   12,   13,    0,    0,    0,   14,   15,    0,
569    29,    0,    0,    0,   29,   29,    0,   29,   16,   16,
570    29,   17,   18,   19,    0,   21,   88,   88,    0,    0,
571     0,   29,   29,    0,    0,   86,   16,   26,    0,   29,
572    30,   31,   32,   33,    0,   88,    0,    0,    0,    0,
573     0,    0,    0,    0,    0,   16,   88,   88,   89,   16,
574    16,    0,   16,    0,    0,   16,   29,   29,    0,    0,
575     0,    0,    0,    0,    0,    0,   16,   16,    0,    0,
576     0,   16,    0,    0,    0,   29,    0,    0,    0,    0,
577     0,    0,    0,    0,    0,   89,   29,   29,    0,   89,
578    89,    0,   89,   90,    0,   89,    0,    0,    0,    0,
579     0,   16,   16,    0,    0,    0,   89,   89,    0,    0,
580     0,   16,    0,    0,    0,    0,    0,    0,    0,    0,
581    16,    0,    0,    0,    0,    0,    0,    0,    0,    0,
582    90,   16,   16,    0,   90,   90,    0,   90,    0,    0,
583    90,   89,   89,    0,    0,    0,    0,    0,    0,    0,
584     0,   90,   90,    0,    0,    0,   16,    0,    0,    0,
585    89,    0,    0,    0,    0,    0,    0,    0,    0,    0,
586     0,   89,   89,    0,   35,  231,    0,   27,  232,   28,
587    88,   88,    0,   88,   88,   88,   90,   90,   88,    0,
588     0,    0,    0,    0,   87,    0,   88,   88,    0,    0,
589     0,    0,    0,    0,    0,   90,    0,    0,   88,    0,
590     0,   88,   88,   88,    0,    0,   90,   90,   88,   88,
591    29,   29,    0,   29,   29,   29,    0,    0,   29,    0,
592     0,    0,    0,    0,    0,    0,    0,   29,    0,    0,
593    35,    0,    0,   27,    0,   28,    0,    0,   29,    0,
594     0,   29,   16,   16,   29,   29,   29,   29,   29,  185,
595     0,    0,    0,    0,    0,   16,   16,    0,   16,   16,
596    16,    0,    0,   16,    0,    0,    0,    0,    0,    0,
597     0,    0,   16,   20,    0,    0,    0,    0,    0,    0,
598     0,    0,    0,   16,    0,    0,   16,   16,   16,    0,
599     0,    0,    0,    0,    0,   89,   89,    0,   89,   89,
600    89,    0,    0,   89,    0,    0,    0,    0,    0,    0,
601    20,    0,   89,  183,   20,   20,    0,   20,   86,    0,
602    20,    0,    0,   89,    0,    0,   89,   16,   16,    0,
603     0,   20,   20,    0,    0,    0,   16,    0,    0,    0,
604    90,   90,    0,   90,   90,   90,    0,    0,   90,    0,
605     0,    0,    0,    0,    0,   86,    0,   90,    0,   86,
606    86,    0,    0,    0,    0,   86,   20,   20,   90,    0,
607     0,   90,   16,   16,    0,    0,   86,   86,    0,    0,
608     0,   16,    0,   11,    0,   20,    0,   12,   13,    0,
609     0,    0,   14,   15,    0,  110,   20,   20,  110,    0,
610   110,    0,    0,    0,   16,    0,   17,   18,   19,    0,
611    21,   86,   86,    0,  110,   22,   23,   24,   25,   85,
612    86,    0,   26,    0,   29,   30,   31,   32,   33,    0,
613    86,    0,    0,    0,    0,    0,    0,    0,    0,    0,
614     0,   86,   86,    0,    0,    0,    0,    0,    0,   11,
615   170,  123,  124,   12,   13,    0,  171,  172,   14,   15,
616   173,    0,  174,  175,    0,  176,  177,  178,  179,  180,
617    16,  181,   17,   18,   19,    0,   21,  182,  110,    0,
618   110,   22,   23,   24,   25,    0,    0,    0,   26,    0,
619    29,   30,   31,   32,   33,    0,    0,    0,    0,  109,
620     0,    0,  109,    0,  109,    0,    0,    0,    0,    0,
621     0,    0,    0,    0,    0,    0,    0,    0,  109,    0,
622     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
623    20,   20,    0,   20,   20,   20,    0,    0,   20,    0,
624     0,    0,    0,    0,    0,    0,    0,   20,    0,    0,
625     0,    0,    0,    0,    0,    0,    0,    0,   20,    0,
626     0,   20,   16,   16,    0,    0,    0,  103,    0,    0,
627   103,    0,  103,    0,    0,   86,   86,    0,   86,   86,
628    86,    0,  109,   86,  109,    0,  103,    0,    0,    0,
629     0,    0,   86,    0,    0,    0,    0,    0,    0,    0,
630     0,    0,    0,   86,    0,    0,   86,   16,   16,    0,
631     0,    0,    0,    0,  110,  110,    0,    0,  110,  110,
632     0,  110,  110,  110,  110,  110,  110,  110,  110,    0,
633   110,  110,  110,  110,  110,  110,  110,  110,  110,  110,
634     0,  110,  110,    0,    0,    0,  110,  110,  110,  110,
635   103,    0,  103,  110,    0,  110,  110,  110,  110,  110,
636     0,    0,    0,    0,  104,    0,    0,  104,    0,  104,
637     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
638     0,    0,    0,  104,    0,    0,    0,    0,    0,    0,
639     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
640     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
641     0,    0,   51,    0,    0,   27,    0,   28,  109,  109,
642     0,    0,  109,  109,    0,  109,  109,  109,  109,  109,
643   109,  109,  109,    0,  109,  109,  109,  109,  109,  109,
644   109,  109,  109,  109,    0,  109,  109,  104,    0,  104,
645   109,  109,  109,  109,    0,    0,    0,  109,    0,  109,
646   109,  109,  109,  109,  105,    0,    0,  105,    0,  105,
647     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
648     0,    0,    0,  105,    0,    0,  103,  103,    0,    0,
649   103,  103,    0,  103,  103,  103,  103,  103,  103,  103,
650   103,    0,  103,  103,  103,  103,  103,  103,  103,  103,
651   103,  103,    0,  103,  103,    0,    0,    0,  103,  103,
652   103,  103,    0,    0,    0,  103,    0,  103,  103,  103,
653   103,  103,    0,    0,    0,    0,  102,    0,    0,  102,
654     0,  102,    0,    0,    0,    0,    0,  105,    0,  105,
655     0,    0,    0,    0,    0,  102,    0,    0,    0,    0,
656     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
657     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
658     0,    0,    0,  104,  104,    0,    0,  104,  104,    0,
659   104,  104,  104,  104,  104,  104,  104,  104,    0,  104,
660   104,  104,  104,  104,  104,  104,  104,  104,  104,    0,
661   104,  104,    0,    0,    0,  104,  104,  104,  104,  102,
662     0,  102,  104,    0,  104,  104,  104,  104,  104,  108,
663     0,   11,  108,    0,  108,   12,   13,    0,    0,    0,
664    14,   15,    0,    0,    0,    0,    0,    0,  108,    0,
665     0,    0,   16,    0,   17,   18,   19,    0,   21,    0,
666     0,    0,    0,   22,   23,   24,   25,    0,    0,    0,
667    26,    0,   29,   30,   31,   32,   33,   35,    0,    0,
668    27,    0,   28,  105,  105,    0,    0,  105,  105,    0,
669   105,  105,  105,  105,  105,  105,  105,  105,    0,  105,
670   105,  105,  105,  105,  105,  105,  105,  105,  105,    0,
671   105,  105,  108,    0,  108,  105,  105,  105,  105,    0,
672     0,    0,  105,    0,  105,  105,  105,  105,  105,  137,
673     0,    0,  137,    0,  137,    0,    0,    0,    0,    0,
674     0,    0,    0,    0,    0,    0,    0,    0,  137,    0,
675     0,    0,    0,    0,    0,  102,  102,    0,    0,  102,
676   102,    0,  102,  102,  102,  102,  102,  102,  102,  102,
677     0,  102,  102,  102,  102,  102,  102,  102,  102,  102,
678   102,    0,  102,  102,    0,    0,    0,  102,  102,  102,
679   102,    0,    0,    0,  102,    0,  102,  102,  102,  102,
680   102,   35,    0,    0,   27,    0,   28,    0,    0,    0,
681     0,    0,  137,    0,  137,    0,    0,    0,    0,    0,
682   185,    0,    0,    0,    0,    0,    0,    0,    0,    0,
683     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
684     0,    0,    0,    0,    0,    0,    0,    0,  108,  108,
685     0,    0,  108,  108,    0,  108,  108,  108,  108,  108,
686   108,  108,  108,    0,  108,  108,  108,  108,  108,  108,
687   108,  108,  108,  108,    0,  108,  108,    0,    0,    0,
688   108,  108,  108,  108,  183,    0,  184,  108,    0,  108,
689   108,  108,  108,  108,   35,    0,   11,   27,    0,   28,
690    12,   13,    0,    0,    0,   14,   15,    0,    0,    0,
691     0,    0,    0,  185,    0,    0,    0,   16,    0,   17,
692    18,   19,    0,   21,    0,    0,    0,    0,   22,   23,
693    24,   25,    0,    0,    0,   26,    0,   29,   30,   31,
694    32,   33,   35,    0,    0,   27,    0,   28,  137,  137,
695     0,    0,  137,  137,    0,  137,  137,  137,  137,  137,
696   137,  137,  137,    0,  137,  137,  137,  137,  137,  137,
697   137,  137,  137,  137,    0,  137,  137,  183,    0,  195,
698   137,  137,  137,  137,    0,    0,    0,  137,    0,  137,
699   137,  137,  137,  137,   35,    0,    0,   27,    0,   28,
700     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
701     0,    0,    0,  185,    0,    0,    0,    0,    0,    0,
702    11,  170,    0,    0,   12,   13,    0,  171,  172,   14,
703    15,  173,    0,  174,  175,    0,  176,  177,  178,  179,
704   180,   16,  181,   17,   18,   19,    0,   21,  182,    0,
705     0,    0,   22,   23,   24,   25,    0,    0,    0,   26,
706     0,   29,   30,   31,   32,   33,   35,    0,    0,   27,
707     0,   28,    0,    0,    0,    0,    0,  183,    0,  196,
708     0,    0,    0,    0,    0,  185,    0,    0,    0,    0,
709     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
710     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
711     0,    0,    0,   11,  170,    0,    0,   12,   13,    0,
712   171,  172,   14,   15,  173,    0,  174,  175,    0,  176,
713   177,  178,  179,  180,   16,  181,   17,   18,   19,    0,
714    21,  182,    0,    0,    0,   22,   23,   24,   25,  183,
715     0,  226,   26,    0,   29,   30,   31,   32,   33,   35,
716     0,  113,   27,    0,   28,   12,   13,    0,    0,    0,
717    14,   15,    0,    0,    0,    0,    0,    0,  185,    0,
718     0,    0,   16,    0,   17,   18,   19,    0,   21,    0,
719     0,    0,    0,   22,   23,   24,   25,    0,    0,    0,
720    26,    0,   29,   30,   31,   32,   33,    0,    0,    0,
721     0,    0,    0,   11,  170,    0,    0,   12,   13,    0,
722   171,  172,   14,   15,  173,    0,  174,  175,    0,  176,
723   177,  178,  179,  180,   16,  181,   17,   18,   19,    0,
724    21,  182,  183,    0,  279,   22,   23,   24,   25,    0,
725     0,    0,   26,    0,   29,   30,   31,   32,   33,   35,
726     0,    0,   27,    0,   28,    0,    0,    0,    0,    0,
727     0,    0,    0,    0,    0,    0,    0,    0,  185,    0,
728     0,    0,    0,    0,    0,   11,  170,    0,    0,   12,
729    13,    0,  171,  172,   14,   15,  173,    0,  174,  175,
730     0,  176,  177,  178,  179,  180,   16,  181,   17,   18,
731    19,    0,   21,  182,    0,    0,    0,   22,   23,   24,
732    25,    0,    0,    0,   26,    0,   29,   30,   31,   32,
733    33,  107,    0,    0,  107,    0,  107,    0,    0,    0,
734     0,    0,  183,    0,  303,    0,    0,    0,    0,    0,
735   107,    0,    0,    0,    0,    0,    0,    0,    0,    0,
736     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
737     0,    0,    0,    0,    0,    0,    0,    0,   11,  170,
738     0,    0,   12,   13,    0,  171,  172,   14,   15,  173,
739     0,  174,  175,    0,  176,  177,  178,  179,  180,   16,
740   181,   17,   18,   19,    0,   21,  182,    0,    0,    0,
741    22,   23,   24,   25,  107,    0,  107,   26,    0,   29,
742    30,   31,   32,   33,  130,    0,    0,  130,    0,  130,
743     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
744     0,    0,    0,  130,    0,    0,    0,    0,    0,    0,
745     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
746     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
747    35,    0,    0,   27,    0,   28,    0,    0,   11,  170,
748     0,    0,   12,   13,    0,  171,  172,   14,   15,  173,
749     0,  174,  175,    0,  176,  177,  178,  179,  180,   16,
750   181,   17,   18,   19,    0,   21,  182,  130,    0,  130,
751    22,   23,   24,   25,    0,    0,    0,   26,    0,   29,
752    30,   31,   32,   33,   35,  233,    0,   27,  234,   28,
753     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
754     0,    0,    0,    0,   87,    0,   88,    0,    0,    0,
755   107,  107,    0,    0,  107,  107,    0,  107,  107,  107,
756   107,  107,    0,  107,  107,    0,  107,  107,  107,  107,
757   107,  107,  107,  107,  107,  107,    0,  107,  107,    0,
758     0,    0,  107,  107,  107,  107,    0,    0,    0,  107,
759     0,  107,  107,  107,  107,  107,   35,  235,    0,   27,
760   236,   28,    0,    0,    0,    0,    0,    0,    0,    0,
761     0,    0,    0,    0,    0,    0,   87,    0,   88,    0,
762     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
763     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
764     0,    0,    0,  130,  130,    0,    0,  130,  130,    0,
765   130,  130,  130,  130,  130,    0,  130,  130,    0,  130,
766   130,  130,  130,  130,  130,  130,  130,  130,  130,    0,
767   130,  130,    0,    0,    0,  130,  130,  130,  130,    0,
768     0,    0,  130,    0,  130,  130,  130,  130,  130,   11,
769     0,    0,    0,   12,   13,    0,  171,  172,   14,   15,
770     0,    0,    0,    0,    0,  176,  177,  178,  179,  180,
771    16,    0,   17,   18,   19,    0,   21,  182,    0,    0,
772     0,   22,   23,   24,   25,    0,    0,    0,   26,    0,
773    29,   30,   31,   32,   33,   35,  237,    0,   27,  238,
774    28,    0,    0,   11,    0,    0,    0,   12,   13,    0,
775     0,    0,   14,   15,    0,   87,    0,   88,    0,    0,
776     0,    0,    0,    0,   16,    0,   17,   18,   19,    0,
777    21,    0,    0,    0,    0,   22,   23,   24,   25,   85,
778    86,    0,   26,    0,   29,   30,   31,   32,   33,   35,
779   242,    0,   27,  243,   28,    0,    0,    0,    0,    0,
780     0,    0,    0,    0,    0,    0,    0,    0,    0,   87,
781     0,   88,    0,    0,    0,   11,    0,    0,    0,   12,
782    13,    0,    0,    0,   14,   15,    0,    0,    0,    0,
783     0,    0,    0,    0,    0,    0,   16,    0,   17,   18,
784    19,   35,   21,    0,   27,  108,   28,   22,   23,   24,
785    25,   85,   86,    0,   26,    0,   29,   30,   31,   32,
786    33,   87,    0,   88,    0,    0,    0,    0,    0,    0,
787     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
788     0,    0,    0,    0,    0,    0,    0,   35,  152,    0,
789    27,    0,   28,    0,    0,    0,    0,    0,    0,    0,
790     0,    0,    0,    0,    0,    0,    0,   87,    0,   88,
791     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
792     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
793     0,    0,    0,   35,    0,    0,   27,  157,   28,    0,
794     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
795     0,    0,    0,   87,   11,   88,    0,    0,   12,   13,
796     0,    0,    0,   14,   15,    0,    0,    0,    0,    0,
797     0,    0,    0,    0,    0,   16,    0,   17,   18,   19,
798    35,   21,    0,   27,  160,   28,   22,   23,   24,   25,
799    85,   86,    0,   26,    0,   29,   30,   31,   32,   33,
800    87,    0,   88,    0,    0,    0,    0,    0,   11,    0,
801     0,    0,   12,   13,    0,    0,    0,   14,   15,    0,
802     0,    0,    0,    0,    0,    0,    0,    0,    0,   16,
803     0,   17,   18,   19,   35,   21,    0,   27,  162,   28,
804    22,   23,   24,   25,   85,   86,    0,   26,    0,   29,
805    30,   31,   32,   33,   87,    0,   88,    0,    0,    0,
806    11,    0,    0,    0,   12,   13,    0,    0,    0,   14,
807    15,    0,    0,    0,    0,    0,    0,    0,    0,    0,
808     0,   16,    0,   17,   18,   19,    0,   21,    0,    0,
809     0,    0,   22,   23,   24,   25,   85,   86,    0,   26,
810     0,   29,   30,   31,   32,   33,   11,    0,    0,    0,
811    12,   13,    0,    0,   35,   14,   15,   27,  163,   28,
812     0,    0,    0,    0,    0,    0,    0,   16,    0,   17,
813    18,   19,    0,   21,   87,    0,   88,    0,   22,   23,
814    24,   25,   85,   86,    0,   26,    0,   29,   30,   31,
815    32,   33,   11,    0,    0,    0,   12,   13,    0,    0,
816    35,   14,   15,   27,  168,   28,    0,    0,    0,    0,
817     0,    0,    0,   16,    0,   17,   18,   19,    0,   21,
818    87,    0,   88,    0,   22,   23,   24,   25,   85,   86,
819     0,   26,    0,   29,   30,   31,   32,   33,    0,   11,
820     0,    0,    0,   12,   13,    0,    0,   35,   14,   15,
821    27,  169,   28,    0,    0,    0,    0,    0,    0,    0,
822    16,    0,   17,   18,   19,    0,   21,   87,    0,   88,
823     0,   22,   23,   24,   25,   85,   86,    0,   26,    0,
824    29,   30,   31,   32,   33,    0,    0,    0,    0,    0,
825     0,    0,    0,   11,    0,    0,    0,   12,   13,    0,
826     0,   35,   14,   15,   27,    0,   28,    0,    0,    0,
827     0,    0,    0,    0,   16,    0,   17,   18,   19,  191,
828    21,   87,    0,   88,    0,   22,   23,   24,   25,   85,
829    86,    0,   26,    0,   29,   30,   31,   32,   33,    0,
830     0,    0,    0,    0,    0,    0,    0,   35,  240,    0,
831    27,    0,   28,    0,    0,    0,    0,    0,    0,    0,
832     0,    0,    0,    0,    0,    0,    0,   87,    0,   88,
833     0,    0,    0,   11,    0,    0,    0,   12,   13,    0,
834     0,    0,   14,   15,    0,    0,    0,    0,    0,    0,
835     0,    0,    0,    0,   16,    0,   17,   18,   19,    0,
836    21,    0,    0,    0,    0,   22,   23,   24,   25,   85,
837    86,    0,   26,    0,   29,   30,   31,   32,   33,   11,
838     0,    0,    0,   12,   13,    0,    0,    0,   14,   15,
839     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
840    16,    0,   17,   18,   19,    0,   21,    0,    0,    0,
841     0,   22,   23,   24,   25,   85,   86,    0,   26,    0,
842    29,   30,   31,   32,   33,    0,   11,    0,    0,    0,
843    12,   13,    0,    0,    0,   14,   15,    0,    0,    0,
844     0,    0,    0,    0,    0,    0,    0,   16,    0,   17,
845    18,   19,    0,   21,    0,    0,    0,    0,   22,   23,
846    24,   25,   85,   86,    0,   26,    0,   29,   30,   31,
847    32,   33,   35,  244,    0,   27,    0,   28,    0,    0,
848    11,    0,    0,    0,   12,   13,    0,    0,    0,   14,
849    15,    0,   87,    0,   88,    0,    0,    0,    0,    0,
850     0,   16,    0,   17,   18,   19,    0,   21,    0,    0,
851     0,    0,   22,   23,   24,   25,   85,   86,    0,   26,
852     0,   29,   30,   31,   32,   33,   11,    0,    0,    0,
853    12,   13,    0,    0,    0,   14,   15,    0,    0,    0,
854     0,    0,    0,    0,    0,    0,    0,   16,    0,   17,
855    18,   19,    0,   21,    0,    0,    0,    0,   22,   23,
856    24,   25,   85,   86,    0,   26,    0,   29,   30,   31,
857    32,   33,   35,  275,    0,   27,    0,   28,    0,    0,
858     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
859     0,    0,   87,    0,   88,    0,    0,    0,    0,    0,
860     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
861     0,    0,    0,    0,    0,    0,    0,    0,   35,  281,
862     0,   27,    0,   28,    0,    0,    0,    0,    0,    0,
863     0,    0,    0,    0,    0,    0,    0,    0,   87,    0,
864    88,    0,    0,    0,    0,    0,    0,    0,    0,    0,
865     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
866     0,    0,    0,    0,   35,  282,    0,   27,    0,   28,
867     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
868     0,    0,    0,    0,   87,    0,   88,    0,    0,    0,
869     0,   11,    0,    0,    0,   12,   13,    0,    0,    0,
870    14,   15,    0,    0,    0,    0,    0,    0,    0,    0,
871     0,    0,   16,    0,   17,   18,   19,    0,   21,    0,
872     0,    0,    0,   22,   23,   24,   25,   85,   86,    0,
873    26,    0,   29,   30,   31,   32,   33,   35,  283,    0,
874    27,    0,   28,    0,    0,    0,    0,    0,    0,    0,
875     0,    0,    0,    0,    0,    0,    0,   87,    0,   88,
876     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
877     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
878     0,    0,    0,   35,  284,    0,   27,    0,   28,    0,
879     0,   11,    0,    0,    0,   12,   13,    0,    0,    0,
880    14,   15,    0,   87,    0,   88,    0,    0,    0,    0,
881     0,    0,   16,    0,   17,   18,   19,    0,   21,    0,
882     0,    0,    0,   22,   23,   24,   25,   85,   86,    0,
883    26,    0,   29,   30,   31,   32,   33,   11,    0,    0,
884     0,   12,   13,    0,    0,    0,   14,   15,   35,    0,
885     0,   27,    0,   28,    0,    0,    0,    0,   16,    0,
886    17,   18,   19,    0,   21,    0,    0,    0,    0,   22,
887    23,   24,   25,   85,   86,    0,   26,    0,   29,   30,
888    31,   32,   33,   11,    0,    0,    0,   12,   13,    0,
889     0,    0,   14,   15,    0,    0,    0,    0,    0,    0,
890     0,    0,    0,    0,   16,    0,   17,   18,   19,    0,
891    21,    0,    0,    0,    0,   22,   23,   24,   25,   85,
892    86,    0,   26,    0,   29,   30,   31,   32,   33,   35,
893   285,   34,   27,    0,   28,    0,    0,    0,    0,    0,
894     0,    0,    0,    0,    0,    0,    0,    0,    0,   87,
895     0,   88,    0,    0,    0,    0,   11,    0,    0,    0,
896    12,   13,    0,    0,    0,   14,   15,    0,    0,    0,
897     0,    0,    0,    0,    0,    0,    0,   16,    0,   17,
898    18,   19,   35,   21,    0,   27,    0,   28,   22,   23,
899    24,   25,   85,   86,    0,   26,    0,   29,   30,   31,
900    32,   33,   11,    0,    0,    0,   12,   13,    0,    0,
901     0,   14,   15,    0,    0,    0,    0,    0,    0,    0,
902     0,    0,    0,   16,    0,   17,   18,   19,    0,   21,
903     0,    0,    0,    0,   22,   23,   24,   25,   85,   86,
904     0,   26,    0,   29,   30,   31,   32,   33,   35,  287,
905     0,   27,    0,   28,    0,    0,    0,    0,    0,    0,
906     0,    0,    0,    0,    0,    9,   10,   11,   87,    0,
907    88,   12,   13,    0,    0,    0,   14,   15,    0,    0,
908     0,    0,    0,    0,    0,    0,    0,    0,   16,    0,
909    17,   18,   19,   20,   21,    0,    0,    0,    0,   22,
910    23,   24,   25,    0,    0,    0,   26,    0,   29,   30,
911    31,   32,   33,   35,    0,    0,   27,    0,   28,    0,
912     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
913     0,    0,    0,   87,    0,   88,    0,    0,    0,    0,
914     0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
915     0,    0,   12,   13,    0,    0,    0,   14,   15,   35,
916     0,    0,   27,    0,   28,    0,    0,    0,    0,   16,
917     0,   17,   18,   19,    0,   21,    0,    0,  291,    0,
918    22,   23,   24,   25,   85,   86,    0,   26,    0,   29,
919    30,   31,   32,   33,    0,    0,    0,    0,    0,    0,
920     0,  115,    0,    0,    0,   12,   13,    0,    0,   35,
921    14,   15,   27,    0,   28,    0,    0,    0,    0,    0,
922     0,    0,   16,    0,   17,   18,   19,    0,   21,    0,
923     0,    0,    0,   22,   23,   24,   25,    0,    0,    0,
924    26,    0,   29,   30,   31,   32,   33,    0,    0,    0,
925     0,    0,    0,    0,    0,   35,    0,    0,   27,    0,
926    28,    0,    0,    0,    0,    0,    0,   11,    0,    0,
927     0,   12,   13,    0,    0,    0,   14,   15,    0,    0,
928     0,    0,    0,    0,    0,    0,    0,    0,   16,    0,
929    17,   18,   19,    0,   21,    0,    0,    0,    0,   22,
930    23,   24,   25,   85,   86,    0,   26,    0,   29,   30,
931    31,   32,   33,   35,    0,    0,   27,    0,   28,    0,
932     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
933     0,    0,   11,    0,    0,    0,   12,   13,    0,    0,
934     0,   14,   15,    0,    0,    0,    0,    0,    0,    0,
935     0,    0,    0,   16,    0,   17,   18,   19,    0,   21,
936     0,    0,    0,    0,   22,   23,   24,   25,   85,   86,
937     0,   26,    0,   29,   30,   31,   32,   33,   11,    0,
938     0,    0,   12,   13,    0,    0,    0,   14,   15,    0,
939     0,    0,    0,    0,    0,    0,    0,    0,    0,   16,
940     0,   17,   18,   19,    0,   21,    0,    0,    0,    0,
941    22,   23,   24,   25,    0,    0,    0,   26,    0,   29,
942    30,   31,   32,   33,    0,    0,    0,    0,  136,    0,
943     0,    0,   12,   13,    0,    0,    0,   14,   15,    0,
944     0,    0,    0,    0,    0,    0,    0,    0,    0,   16,
945     0,   17,   18,   19,    0,   21,    0,    0,    0,    0,
946    22,   23,   24,   25,    0,    0,    0,   26,    0,   29,
947    30,   31,   32,   33,  204,    0,    0,    0,   12,   13,
948     0,    0,    0,   14,   15,    0,    0,  101,  102,    0,
949     0,    0,    0,    0,    0,   16,    0,   17,   18,   19,
950     0,   21,    0,    0,    0,    0,   22,   23,   24,   25,
951     0,    0,    0,   26,    0,   29,   30,   31,   32,   33,
952   131,    0,  133,  134,    0,    0,    0,    0,    0,    0,
953     0,    0,  263,    0,    0,    0,   12,   13,    0,    0,
954     0,   14,   15,    0,    0,    0,    0,    0,  155,  156,
955     0,    0,    0,   16,    0,   17,   18,   19,    0,   21,
956     0,    0,    0,    0,   22,   23,   24,   25,    0,    0,
957     0,   26,    0,   29,   30,   31,   32,   33,    0,    0,
958     0,    0,    0,    0,    0,    0,    0,    0,    0,   67,
959    68,    0,    0,    0,    0,   72,    0,    0,    0,    0,
960     0,    0,    0,   89,    0,    0,    0,    0,    0,    0,
961   209,    0,    0,    0,    0,    0,   89,    0,    0,    0,
962     0,  217,    0,  219,    0,  220,    0,    0,    0,    0,
963     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
964     0,    0,    0,    0,    0,    0,  241,    0,    0,    0,
965     0,    0,    0,  142,  143,  144,  145,  146,  147,    0,
966     0,  258,  259,  260,  261,  262,   89,    0,   89,    0,
967     0,    0,   89,   89,    0,    0,   89,    0,   89,   89,
968     0,    0,    0,   89,   89,    0,    0,    0,    0,    0,
969     0,    0,    0,    0,   89,    0,    0,    0,    0,   89,
970    89,   89,   89,    0,    0,    0,    0,    0,    0,  286,
971     0,    0,    0,  288,  289,  290,    0,    0,    0,  295,
972    89,    0,    0,    0,    0,    0,    0,    0,    0,    0,
973     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
974     0,    0,    0,    0,  308,  309,    0,    0,   89,    0,
975   313,    0,    0,    0,    0,    0,    0,    0,    0,   89,
976    89,    0,   89,   89,   89,   89,    0,   89,    0,   89,
977    89,    0,    0,    0,    0,    0,    0,   89,   89,    0,
978     0,    0,    0,    0,    0,    0,    0,    0,    0,   89,
979     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
980     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
981     0,    0,    0,    0,   89,    0,    0,    0,    0,    0,
982     0,    0,    0,    0,    0,    0,   89,   89,   89,   89,
983    89,    0,   89,   89,   89,
984 };
985 short yycheck[] = {                                      41,
986     0,  123,   62,  123,   41,   59,   41,   59,  214,   63,
987    59,   63,  123,   63,   59,   63,   94,   59,   50,   38,
988    35,   63,   35,  291,   41,  286,   63,   41,   63,   91,
989    41,   63,   64,  301,  112,   40,   51,   37,   51,    7,
990    40,   41,   42,   43,   44,   45,   63,   47,   59,   63,
991    35,   41,   63,   41,   44,    0,   44,   41,   58,   59,
992    60,   29,   62,   63,  124,   44,   51,   35,  261,  262,
993    37,   40,  261,   60,  288,   42,   43,   40,   45,   63,
994    47,  101,  102,   51,   63,  291,  118,  301,  302,   60,
995    40,   16,   37,   93,   94,  301,   41,   42,   43,   44,
996    45,   63,   47,   40,   63,   30,   31,   40,  292,   40,
997     0,  131,  112,   58,   59,   60,   84,   62,   63,  303,
998   304,   40,   40,  123,  124,  123,   40,   94,   44,  112,
999    98,   41,   41,   37,   63,   41,   63,  292,   42,  171,
1000   172,  261,  262,   47,  280,  112,   41,   37,   93,   94,
1001    40,   41,   42,   43,   41,   45,   44,   47,   44,   93,
1002   292,   41,   41,   40,   40,  133,  134,  112,   58,   59,
1003    60,   40,   62,   63,  292,  290,  195,   41,  123,  124,
1004    59,   59,  272,   91,   41,   40,   93,  271,   41,   41,
1005    94,    0,   41,   93,   59,   41,   -1,   51,   -1,  219,
1006    -1,  211,   -1,   93,   94,  265,   -1,   -1,  112,   41,
1007    -1,  260,  261,  262,   -1,  260,  261,  262,  260,  261,
1008   262,   -1,  112,  148,  256,   40,   -1,   59,   43,   -1,
1009    45,   63,   -1,  123,  124,  289,  290,  289,  290,  289,
1010   290,  289,  290,   -1,  212,  213,   -1,  289,  290,  260,
1011   261,  262,  289,  290,  289,  290,   -1,  257,  258,  259,
1012   260,  261,  262,  263,  264,  265,  286,   -1,  268,  269,
1013    -1,   -1,  289,  290,  274,  289,  290,   -1,  289,  290,
1014   280,   41,  282,  283,  284,  285,  286,   -1,  288,  289,
1015   290,  291,  292,  293,  294,  295,  296,   -1,  298,   59,
1016   300,  301,  302,  303,  304,  289,  290,  274,  276,   -1,
1017   289,  290,  257,  258,  259,  260,  261,  262,  263,  264,
1018   265,  292,   -1,  268,  269,  293,   -1,  289,  290,  274,
1019   289,  290,  303,  304,   -1,  280,   41,  282,  283,  284,
1020   285,  286,   -1,  288,  289,  290,  291,  292,  293,  294,
1021   295,  296,   -1,  298,   59,  300,  301,  302,  303,  304,
1022   289,  290,  289,  290,   -1,   -1,   -1,  257,  258,  259,
1023   260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
1024     0,  260,  261,  262,  274,   -1,   -1,   -1,   -1,   -1,
1025   280,   -1,  282,  283,  284,  285,  286,   41,  288,  289,
1026   290,  291,  292,  293,  294,  295,  296,   -1,  298,   -1,
1027   300,  301,  302,  303,  304,   59,   -1,   37,   -1,   -1,
1028    40,   41,   42,   43,   44,   45,   -1,   47,  260,  261,
1029   262,   -1,   -1,   -1,   -1,    0,   -1,   -1,   58,   59,
1030    -1,   -1,   62,   63,  259,   -1,   -1,  217,  263,  264,
1031    -1,   -1,   -1,  268,  269,   -1,   -1,  289,  290,   -1,
1032    -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
1033    -1,  286,   37,   93,   94,   40,   41,   42,   43,   44,
1034    45,   -1,   47,  298,   -1,  300,  301,  302,  303,  304,
1035     0,   -1,  112,   58,   59,   60,   -1,   62,   63,   -1,
1036   260,  261,  262,  123,  124,   -1,   -1,   -1,   -1,   -1,
1037    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  288,  289,
1038   290,   -1,   -1,   -1,   -1,   -1,   -1,   37,   93,   94,
1039    40,   41,   42,   43,   44,   45,   -1,   47,  308,  309,
1040    -1,   -1,   -1,  313,   -1,   -1,   -1,   41,   58,   59,
1041    60,   -1,   62,   63,   -1,  260,  261,  262,  123,  124,
1042    -1,   -1,   -1,    0,   -1,   59,   -1,   -1,   -1,   63,
1043    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   41,   -1,
1044    -1,   -1,   -1,   93,   94,   -1,   -1,   -1,   -1,   -1,
1045    -1,   -1,   -1,   41,   -1,   -1,   59,   -1,   -1,   62,
1046    37,   -1,  112,   40,   41,   42,   43,   44,   45,   -1,
1047    47,   59,   -1,  123,  124,   63,  260,  261,  262,   -1,
1048    -1,   58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,
1049    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
1050   260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
1051    -1,   -1,   -1,   -1,  274,   -1,   93,   -1,   -1,   -1,
1052   280,  124,  282,  283,  284,  285,  286,   -1,  288,  289,
1053   290,  291,  292,  293,  294,  295,  296,   -1,  298,   -1,
1054   300,  301,  302,  303,  304,   -1,  123,  124,   -1,   -1,
1055    -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
1056   265,   -1,   -1,  268,  269,   -1,   -1,   -1,   -1,  274,
1057    -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
1058   285,  286,   -1,  288,  289,  290,  291,  292,  293,  294,
1059   295,  296,   -1,  298,   -1,  300,  301,  302,  303,  304,
1060    -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  259,
1061   260,  261,  262,  263,  264,  265,   -1,   -1,  268,  269,
1062    -1,   -1,   -1,   -1,  274,   -1,  260,  261,  262,   -1,
1063   280,   -1,  282,  283,  284,  285,  286,   -1,  288,  289,
1064    -1,  291,  292,  293,  294,  295,  296,   -1,  298,   -1,
1065   300,  301,  302,  303,  304,  289,  290,  260,  261,  262,
1066    -1,   -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1067    -1,   -1,  260,  261,  262,   -1,   -1,   -1,   -1,   -1,
1068   257,  258,  259,  260,  261,  262,  263,  264,  265,   -1,
1069    -1,  268,  269,    0,   -1,   -1,   -1,  274,   -1,   -1,
1070    -1,  289,  290,  280,   -1,  282,  283,  284,  285,  286,
1071    -1,  288,  289,  290,  291,  292,  293,  294,  295,  296,
1072    -1,  298,   -1,  300,  301,  302,  303,  304,   -1,   -1,
1073    37,   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,
1074    47,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,   -1,
1075    -1,   58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,
1076    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1077    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1078    -1,   -1,   -1,   -1,   37,   -1,   93,   40,   41,   42,
1079    43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,   -1,
1080    -1,    0,   -1,   -1,   -1,   58,   59,   60,   -1,   62,
1081    63,   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,
1082    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1083    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,
1084    93,   40,   41,   42,   43,   44,   45,   -1,   47,   -1,
1085    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
1086    59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,
1087   123,  124,   -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,
1088    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1089    -1,   -1,   -1,   -1,   93,   -1,   -1,   -1,   -1,   -1,
1090    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1091    -1,   -1,   37,   -1,   -1,   40,   41,   42,   43,   44,
1092    45,   -1,   47,   -1,  123,  124,   -1,   -1,   -1,   -1,
1093    -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,   -1,
1094    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1095   257,  258,  259,  260,  261,  262,  263,  264,  265,   -1,
1096    -1,  268,  269,   -1,   -1,   -1,   -1,  274,   93,   -1,
1097    -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,  286,
1098    -1,  288,  289,  290,  291,  292,  293,  294,  295,  296,
1099    -1,  298,   -1,  300,  301,  302,  303,  304,  123,  124,
1100    -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,
1101   263,  264,  265,   -1,   -1,  268,  269,   -1,   -1,   -1,
1102    -1,  274,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
1103   283,  284,  285,  286,   -1,  288,  289,  290,  291,  292,
1104   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
1105   303,  304,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,
1106   259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
1107   269,   -1,   -1,   -1,   -1,  274,   -1,   -1,   -1,   -1,
1108    -1,  280,   -1,  282,  283,  284,  285,  286,   -1,  288,
1109   289,  290,  291,  292,  293,  294,  295,  296,   -1,  298,
1110    -1,  300,  301,  302,  303,  304,   -1,   -1,   -1,   -1,
1111    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1112    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1113    -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
1114   265,   -1,   -1,  268,  269,    0,   -1,   -1,   -1,  274,
1115    -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
1116   285,  286,   -1,  288,  289,  290,  291,  292,  293,  294,
1117   295,  296,   -1,  298,   -1,  300,  301,  302,  303,  304,
1118    -1,   -1,   37,   -1,   -1,   40,   41,   42,   43,   44,
1119    45,   -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,    0,
1120    -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,   -1,
1121    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1122    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1123    -1,   -1,   -1,   -1,   -1,   -1,   37,   -1,   93,   40,
1124    41,   42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,
1125    -1,   -1,   -1,   -1,    0,   -1,   -1,   58,   59,   60,
1126    -1,   62,   63,   -1,   -1,   -1,   -1,   -1,  123,  124,
1127    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1128    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1129    -1,   37,   93,   94,   40,   41,   42,   43,   44,   45,
1130    -1,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1131    -1,  112,   58,   59,   60,   -1,   62,   -1,   -1,   -1,
1132    -1,   -1,  123,  124,   -1,   -1,   -1,    0,   -1,   -1,
1133    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1134    -1,   -1,   -1,   -1,   -1,   -1,   -1,   93,   94,   -1,
1135    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1136    -1,   -1,   -1,   -1,   -1,   -1,  112,   40,   41,   -1,
1137    43,   44,   45,   -1,   -1,   -1,   -1,  123,  124,   -1,
1138    -1,   -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,
1139    63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1140    -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
1141   265,   -1,   -1,  268,  269,   -1,   -1,   -1,   -1,  274,
1142    93,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
1143   285,  286,   -1,  288,  289,  290,  291,  292,  293,  294,
1144   295,  296,   -1,  298,   -1,  300,  301,  302,  303,  304,
1145   123,  124,   -1,   -1,   -1,   -1,  257,  258,  259,  260,
1146   261,  262,  263,  264,  265,   -1,   -1,  268,  269,   -1,
1147    -1,   -1,   -1,  274,   -1,   -1,   -1,   -1,   -1,  280,
1148    -1,  282,  283,  284,  285,  286,   -1,   -1,  289,  290,
1149   291,  292,  293,  294,  295,  296,   -1,  298,   -1,  300,
1150    -1,   -1,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,
1151    -1,  257,  258,  259,  260,  261,  262,  263,  264,  265,
1152    -1,   -1,  268,  269,   -1,   -1,   -1,   -1,  274,   -1,
1153    -1,   -1,   -1,   -1,  280,    0,  282,  283,  284,  285,
1154   286,   -1,  288,   -1,   -1,  291,  292,  293,  294,  295,
1155   296,   -1,  298,   -1,  300,  301,  302,  303,  304,   -1,
1156    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1157    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
1158    45,   -1,   -1,   -1,  257,  258,  259,  260,  261,  262,
1159   263,  264,  265,    0,   59,  268,  269,   -1,   -1,   -1,
1160    -1,  274,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
1161   283,  284,  285,  286,   -1,  288,  289,  290,  291,  292,
1162   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
1163   303,  304,   -1,   40,   41,   -1,   43,   44,   45,   -1,
1164    -1,    0,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1165    -1,   58,   59,   60,   -1,   62,   63,   -1,  123,   -1,
1166    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1167    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1168    -1,   40,   41,   -1,   -1,   44,   93,   -1,   -1,    0,
1169    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   58,
1170    59,   60,   -1,   62,   63,   -1,   -1,   -1,   -1,   -1,
1171    -1,   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,
1172    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,
1173    41,   -1,   -1,   44,   93,   -1,   -1,   -1,   -1,   -1,
1174    -1,    0,   -1,   -1,   -1,   -1,   -1,   58,   59,   60,
1175    -1,   62,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1176    -1,   -1,   -1,   -1,  123,  124,   -1,   -1,   -1,   -1,
1177    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1178    -1,   40,   93,   -1,   43,   -1,   45,   -1,   -1,   -1,
1179    -1,   -1,  257,  258,  259,  260,  261,  262,  263,  264,
1180    59,   -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,
1181    -1,   -1,  123,  124,   -1,  280,   -1,  282,  283,  284,
1182   285,  286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,
1183    -1,   -1,   -1,  298,   -1,  300,  301,  302,  303,  304,
1184    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1185   257,  258,  259,  260,  261,  262,  263,  264,  265,   -1,
1186    -1,  268,  269,   40,  123,   -1,   43,  274,   45,   -1,
1187    -1,   -1,   -1,  280,    0,  282,  283,  284,  285,  286,
1188    -1,  288,  289,  290,  291,  292,  293,  294,  295,  296,
1189    -1,  298,   -1,  300,  301,  302,  303,  304,  257,  258,
1190   259,  260,  261,  262,  263,  264,  265,   -1,   -1,  268,
1191   269,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
1192    -1,  280,   -1,  282,  283,  284,  285,  286,   -1,  288,
1193   289,  290,  291,  292,  293,  294,  295,  296,   -1,  298,
1194    -1,  300,  301,  302,  303,  304,  257,  258,  259,  260,
1195   261,  262,  263,  264,  265,   -1,   -1,  268,  269,   -1,
1196    40,   41,   -1,   43,   -1,   45,   -1,   -1,   -1,  280,
1197    -1,  282,  283,  284,  285,  286,   -1,  288,  289,  290,
1198   291,  292,  293,  294,  295,  296,   -1,  298,   -1,  300,
1199   301,  302,  303,  304,   -1,   -1,   -1,  123,  257,  258,
1200   259,  260,  261,  262,  263,  264,    0,   -1,   -1,  268,
1201   269,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1202    -1,  280,   -1,  282,  283,  284,  285,  286,   -1,   -1,
1203    -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,  298,
1204    -1,  300,  301,  302,  303,  304,   40,   -1,   -1,   43,
1205    -1,   45,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,
1206    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
1207    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1208    -1,   -1,  259,   -1,  261,  262,  263,  264,   -1,   -1,
1209    -1,  268,  269,   -1,   40,   -1,   -1,   43,   -1,   45,
1210    -1,   -1,   -1,  280,    0,  282,  283,  284,   -1,  286,
1211    -1,   -1,   -1,   59,  291,  292,  293,  294,   -1,   -1,
1212    -1,  298,   -1,  300,  301,  302,  303,  304,   -1,  123,
1213    -1,  257,  258,  259,   -1,   -1,   -1,  263,  264,   -1,
1214    -1,   -1,  268,  269,   40,   -1,   -1,   43,   -1,   45,
1215    -1,   -1,   -1,    0,  280,   -1,  282,  283,  284,  285,
1216   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,   -1,
1217    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,  259,
1218    -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
1219    -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,   -1,
1220   280,   -1,  282,  283,  284,   -1,  286,   -1,   -1,   -1,
1221    -1,  291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,
1222   300,  301,  302,  303,  304,   -1,   -1,  123,   -1,   -1,
1223    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1224    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1225    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1226    -1,   -1,   -1,  257,  258,  259,  260,   -1,  262,  263,
1227   264,   -1,   -1,   -1,  268,  269,  123,   -1,   -1,   -1,
1228    -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,
1229   284,  285,  286,   -1,   -1,   -1,   -1,  291,  292,  293,
1230   294,   -1,   -1,   -1,  298,   -1,  300,  301,  302,  303,
1231   304,  257,  258,  259,  260,  261,  262,  263,  264,   -1,
1232    -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,
1233    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,
1234   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,   -1,
1235    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,   -1,
1236    -1,  257,  258,  259,   -1,   -1,   -1,  263,  264,   -1,
1237    -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,
1238    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,
1239   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,   -1,
1240    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,   -1,
1241   257,  258,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,
1242    -1,  268,  269,    0,   -1,   -1,   -1,   -1,   -1,   -1,
1243    -1,   -1,   -1,  280,   -1,  282,  283,  284,  285,  286,
1244    -1,   -1,   -1,   -1,  291,  292,  293,  294,   -1,   -1,
1245    -1,  298,   -1,  300,  301,  302,  303,  304,   -1,   -1,
1246    37,   -1,   -1,   40,   41,   42,   43,   44,   45,   -1,
1247    47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,    0,   -1,
1248    -1,   58,   59,   60,   -1,   62,   63,   -1,   -1,   -1,
1249    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1250    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1251    -1,   -1,   -1,   -1,   -1,   37,   93,   94,   40,   41,
1252    42,   43,   44,   45,   -1,   47,   -1,   -1,   -1,   -1,
1253    -1,   -1,   -1,   -1,   -1,  112,   58,   59,   -1,   -1,
1254    62,   63,   -1,   -1,   -1,   -1,  123,  124,   -1,   -1,
1255    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1256    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1257    -1,   93,   94,   -1,   -1,   -1,   -1,    0,   -1,   -1,
1258    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1259   112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1260    -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1261    -1,   -1,   -1,   -1,   37,   -1,   -1,   -1,   41,   42,
1262    -1,   44,   -1,   -1,   47,   -1,   -1,   -1,   -1,   -1,
1263    -1,   -1,   -1,   -1,   -1,   58,   59,   60,   -1,   62,
1264    63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1265    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1266    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1267    93,   94,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1268   257,  258,  259,  260,  261,  262,  263,  264,  265,  112,
1269    -1,  268,  269,   -1,   -1,   -1,   -1,  274,   -1,   -1,
1270   123,  124,   -1,  280,   -1,  282,  283,  284,  285,  286,
1271    -1,  288,  289,  290,  291,   -1,  293,  294,  295,  296,
1272    -1,  298,   -1,  300,  301,  302,   -1,   -1,   -1,   -1,
1273    -1,   -1,   -1,   -1,   -1,  257,  258,  259,  260,  261,
1274   262,  263,  264,  265,   -1,   -1,  268,  269,   14,   -1,
1275    -1,   -1,  274,   -1,   -1,   -1,   -1,   -1,  280,   -1,
1276   282,  283,  284,  285,  286,   -1,  288,  289,  290,  291,
1277    -1,  293,  294,  295,  296,   -1,  298,   -1,  300,  301,
1278   302,   -1,   -1,   49,   50,   51,   -1,   -1,   -1,   -1,
1279    56,   57,   -1,   59,   60,   61,   -1,   63,   64,   65,
1280    66,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1281    -1,   -1,   -1,   -1,   -1,   81,   -1,   -1,   -1,   85,
1282    86,   87,   88,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1283    -1,   -1,   -1,   -1,  257,  258,   -1,  260,  261,  262,
1284    -1,   -1,  265,   -1,   -1,   -1,  112,   -1,   -1,   -1,
1285    -1,  274,  118,   -1,   -1,   -1,   -1,   -1,   -1,  125,
1286    -1,   -1,  285,   -1,   -1,  288,  289,  290,  291,  292,
1287   293,  294,  295,  296,   -1,   -1,   -1,   -1,   -1,   -1,
1288    -1,   -1,   -1,   -1,  150,  151,   -1,   -1,   -1,  155,
1289   156,   -1,   -1,  159,  160,  161,  162,  163,   -1,   -1,
1290    -1,   -1,  168,  169,   -1,  171,  172,   -1,   -1,   -1,
1291   176,   -1,   -1,   -1,  180,   -1,    0,   -1,   -1,   -1,
1292    -1,   -1,   -1,   -1,  190,  191,   -1,   -1,   -1,   -1,
1293    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1294    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  214,   -1,
1295    -1,  217,   -1,   37,   -1,   -1,    0,   41,   42,   -1,
1296    44,   -1,   -1,   47,  230,   -1,  232,   -1,  234,   -1,
1297   236,   -1,  238,   -1,   58,   59,   60,  243,   62,   63,
1298    -1,   -1,  248,  249,   -1,   -1,   -1,   -1,   -1,   -1,
1299   256,  257,   -1,   37,   -1,   -1,   -1,   41,   42,   -1,
1300    44,   -1,   -1,   47,    0,   -1,   -1,   -1,   -1,   93,
1301    94,   -1,   -1,   -1,   58,   59,   60,   -1,   62,   63,
1302    -1,   -1,  288,  289,  290,  291,   -1,   -1,  112,   -1,
1303   296,   -1,   -1,   -1,   -1,  301,   -1,   -1,   -1,  123,
1304   124,   37,  308,  309,    0,   41,   42,  313,   44,   93,
1305    94,   47,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1306    -1,   -1,   58,   59,   60,   -1,   62,   63,  112,   -1,
1307    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,
1308   124,   37,   -1,   -1,   -1,   41,   42,   -1,   44,   -1,
1309    -1,   47,   -1,   -1,   -1,   -1,   -1,   93,   94,   -1,
1310    -1,   -1,   58,   59,   60,   -1,   62,   63,   -1,   -1,
1311    -1,   -1,   -1,   -1,   -1,   -1,  112,   -1,   -1,   -1,
1312    -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,  124,   40,
1313    -1,   -1,   43,   -1,   45,   -1,   -1,   93,   94,   -1,
1314    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,
1315    -1,   62,   -1,   -1,   -1,   -1,  112,   -1,   -1,   -1,
1316    -1,   -1,   -1,   -1,   -1,   -1,   -1,  123,  124,   -1,
1317    -1,   -1,   -1,  257,  258,   -1,  260,  261,  262,   -1,
1318    -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1319   274,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1320    -1,  285,   -1,   -1,  288,  289,  290,  291,  292,  293,
1321   294,  295,  296,  257,  258,   -1,  260,  261,  262,   -1,
1322    -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1323   274,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1324    -1,  285,   -1,   -1,  288,  289,  290,  291,  292,  293,
1325   294,  295,  296,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1326    -1,  257,  258,   -1,  260,  261,  262,   -1,   -1,  265,
1327    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  274,   -1,
1328    -1,   -1,   -1,    0,   -1,   -1,   -1,   -1,   -1,  285,
1329    -1,   -1,  288,  289,  290,  291,  292,  293,  294,  295,
1330   296,  257,  258,   -1,  260,  261,  262,   -1,   -1,  265,
1331    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  274,   -1,
1332    37,   -1,   -1,    0,   41,   42,   -1,   44,   -1,  285,
1333    47,   -1,  288,  289,  290,  291,  292,  293,  294,  295,
1334   296,   58,   59,   60,   -1,   62,   63,   -1,  259,   -1,
1335    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,   -1,
1336    37,   -1,   -1,   -1,   41,   42,   -1,   44,    0,  280,
1337    47,  282,  283,  284,   -1,  286,   93,   94,   -1,   -1,
1338    -1,   58,   59,   -1,   -1,  296,   63,  298,   -1,  300,
1339   301,  302,  303,  304,   -1,  112,   -1,   -1,   -1,   -1,
1340    -1,   -1,   -1,   -1,   -1,   37,  123,  124,    0,   41,
1341    42,   -1,   44,   -1,   -1,   47,   93,   94,   -1,   -1,
1342    -1,   -1,   -1,   -1,   -1,   -1,   58,   59,   -1,   -1,
1343    -1,   63,   -1,   -1,   -1,  112,   -1,   -1,   -1,   -1,
1344    -1,   -1,   -1,   -1,   -1,   37,  123,  124,   -1,   41,
1345    42,   -1,   44,    0,   -1,   47,   -1,   -1,   -1,   -1,
1346    -1,   93,   94,   -1,   -1,   -1,   58,   59,   -1,   -1,
1347    -1,   63,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1348   112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1349    37,  123,  124,   -1,   41,   42,   -1,   44,   -1,   -1,
1350    47,   93,   94,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1351    -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,   -1,
1352   112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1353    -1,  123,  124,   -1,   40,   41,   -1,   43,   44,   45,
1354   257,  258,   -1,  260,  261,  262,   93,   94,  265,   -1,
1355    -1,   -1,   -1,   -1,   60,   -1,   62,  274,   -1,   -1,
1356    -1,   -1,   -1,   -1,   -1,  112,   -1,   -1,  285,   -1,
1357    -1,  288,  289,  290,   -1,   -1,  123,  124,  295,  296,
1358   257,  258,   -1,  260,  261,  262,   -1,   -1,  265,   -1,
1359    -1,   -1,   -1,   -1,   -1,   -1,   -1,  274,   -1,   -1,
1360    40,   -1,   -1,   43,   -1,   45,   -1,   -1,  285,   -1,
1361    -1,  288,  289,  290,  291,  292,  293,  294,  295,   59,
1362    -1,   -1,   -1,   -1,   -1,  257,  258,   -1,  260,  261,
1363   262,   -1,   -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,
1364    -1,   -1,  274,    0,   -1,   -1,   -1,   -1,   -1,   -1,
1365    -1,   -1,   -1,  285,   -1,   -1,  288,  289,  290,   -1,
1366    -1,   -1,   -1,   -1,   -1,  257,  258,   -1,  260,  261,
1367   262,   -1,   -1,  265,   -1,   -1,   -1,   -1,   -1,   -1,
1368    37,   -1,  274,  123,   41,   42,   -1,   44,    0,   -1,
1369    47,   -1,   -1,  285,   -1,   -1,  288,  289,  290,   -1,
1370    -1,   58,   59,   -1,   -1,   -1,   63,   -1,   -1,   -1,
1371   257,  258,   -1,  260,  261,  262,   -1,   -1,  265,   -1,
1372    -1,   -1,   -1,   -1,   -1,   37,   -1,  274,   -1,   41,
1373    42,   -1,   -1,   -1,   -1,   47,   93,   94,  285,   -1,
1374    -1,  288,  289,  290,   -1,   -1,   58,   59,   -1,   -1,
1375    -1,   63,   -1,  259,   -1,  112,   -1,  263,  264,   -1,
1376    -1,   -1,  268,  269,   -1,   40,  123,  124,   43,   -1,
1377    45,   -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,
1378   286,   93,   94,   -1,   59,  291,  292,  293,  294,  295,
1379   296,   -1,  298,   -1,  300,  301,  302,  303,  304,   -1,
1380   112,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1381    -1,  123,  124,   -1,   -1,   -1,   -1,   -1,   -1,  259,
1382   260,  261,  262,  263,  264,   -1,  266,  267,  268,  269,
1383   270,   -1,  272,  273,   -1,  275,  276,  277,  278,  279,
1384   280,  281,  282,  283,  284,   -1,  286,  287,  123,   -1,
1385   125,  291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,
1386   300,  301,  302,  303,  304,   -1,   -1,   -1,   -1,   40,
1387    -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
1388    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
1389    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1390   257,  258,   -1,  260,  261,  262,   -1,   -1,  265,   -1,
1391    -1,   -1,   -1,   -1,   -1,   -1,   -1,  274,   -1,   -1,
1392    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  285,   -1,
1393    -1,  288,  289,  290,   -1,   -1,   -1,   40,   -1,   -1,
1394    43,   -1,   45,   -1,   -1,  257,  258,   -1,  260,  261,
1395   262,   -1,  123,  265,  125,   -1,   59,   -1,   -1,   -1,
1396    -1,   -1,  274,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1397    -1,   -1,   -1,  285,   -1,   -1,  288,  289,  290,   -1,
1398    -1,   -1,   -1,   -1,  259,  260,   -1,   -1,  263,  264,
1399    -1,  266,  267,  268,  269,  270,  271,  272,  273,   -1,
1400   275,  276,  277,  278,  279,  280,  281,  282,  283,  284,
1401    -1,  286,  287,   -1,   -1,   -1,  291,  292,  293,  294,
1402   123,   -1,  125,  298,   -1,  300,  301,  302,  303,  304,
1403    -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,   45,
1404    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1405    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1406    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1407    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1408    -1,   -1,   40,   -1,   -1,   43,   -1,   45,  259,  260,
1409    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
1410   271,  272,  273,   -1,  275,  276,  277,  278,  279,  280,
1411   281,  282,  283,  284,   -1,  286,  287,  123,   -1,  125,
1412   291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,
1413   301,  302,  303,  304,   40,   -1,   -1,   43,   -1,   45,
1414    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1415    -1,   -1,   -1,   59,   -1,   -1,  259,  260,   -1,   -1,
1416   263,  264,   -1,  266,  267,  268,  269,  270,  271,  272,
1417   273,   -1,  275,  276,  277,  278,  279,  280,  281,  282,
1418   283,  284,   -1,  286,  287,   -1,   -1,   -1,  291,  292,
1419   293,  294,   -1,   -1,   -1,  298,   -1,  300,  301,  302,
1420   303,  304,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,
1421    -1,   45,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,
1422    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
1423    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1424    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1425    -1,   -1,   -1,  259,  260,   -1,   -1,  263,  264,   -1,
1426   266,  267,  268,  269,  270,  271,  272,  273,   -1,  275,
1427   276,  277,  278,  279,  280,  281,  282,  283,  284,   -1,
1428   286,  287,   -1,   -1,   -1,  291,  292,  293,  294,  123,
1429    -1,  125,  298,   -1,  300,  301,  302,  303,  304,   40,
1430    -1,  259,   43,   -1,   45,  263,  264,   -1,   -1,   -1,
1431   268,  269,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
1432    -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,
1433    -1,   -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,
1434   298,   -1,  300,  301,  302,  303,  304,   40,   -1,   -1,
1435    43,   -1,   45,  259,  260,   -1,   -1,  263,  264,   -1,
1436   266,  267,  268,  269,  270,  271,  272,  273,   -1,  275,
1437   276,  277,  278,  279,  280,  281,  282,  283,  284,   -1,
1438   286,  287,  123,   -1,  125,  291,  292,  293,  294,   -1,
1439    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,   40,
1440    -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
1441    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
1442    -1,   -1,   -1,   -1,   -1,  259,  260,   -1,   -1,  263,
1443   264,   -1,  266,  267,  268,  269,  270,  271,  272,  273,
1444    -1,  275,  276,  277,  278,  279,  280,  281,  282,  283,
1445   284,   -1,  286,  287,   -1,   -1,   -1,  291,  292,  293,
1446   294,   -1,   -1,   -1,  298,   -1,  300,  301,  302,  303,
1447   304,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
1448    -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
1449    59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1450    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1451    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  259,  260,
1452    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
1453   271,  272,  273,   -1,  275,  276,  277,  278,  279,  280,
1454   281,  282,  283,  284,   -1,  286,  287,   -1,   -1,   -1,
1455   291,  292,  293,  294,  123,   -1,  125,  298,   -1,  300,
1456   301,  302,  303,  304,   40,   -1,  259,   43,   -1,   45,
1457   263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,
1458    -1,   -1,   -1,   59,   -1,   -1,   -1,  280,   -1,  282,
1459   283,  284,   -1,  286,   -1,   -1,   -1,   -1,  291,  292,
1460   293,  294,   -1,   -1,   -1,  298,   -1,  300,  301,  302,
1461   303,  304,   40,   -1,   -1,   43,   -1,   45,  259,  260,
1462    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
1463   271,  272,  273,   -1,  275,  276,  277,  278,  279,  280,
1464   281,  282,  283,  284,   -1,  286,  287,  123,   -1,  125,
1465   291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,
1466   301,  302,  303,  304,   40,   -1,   -1,   43,   -1,   45,
1467    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1468    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1469   259,  260,   -1,   -1,  263,  264,   -1,  266,  267,  268,
1470   269,  270,   -1,  272,  273,   -1,  275,  276,  277,  278,
1471   279,  280,  281,  282,  283,  284,   -1,  286,  287,   -1,
1472    -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,  298,
1473    -1,  300,  301,  302,  303,  304,   40,   -1,   -1,   43,
1474    -1,   45,   -1,   -1,   -1,   -1,   -1,  123,   -1,  125,
1475    -1,   -1,   -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,
1476    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1477    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1478    -1,   -1,   -1,  259,  260,   -1,   -1,  263,  264,   -1,
1479   266,  267,  268,  269,  270,   -1,  272,  273,   -1,  275,
1480   276,  277,  278,  279,  280,  281,  282,  283,  284,   -1,
1481   286,  287,   -1,   -1,   -1,  291,  292,  293,  294,  123,
1482    -1,  125,  298,   -1,  300,  301,  302,  303,  304,   40,
1483    -1,  259,   43,   -1,   45,  263,  264,   -1,   -1,   -1,
1484   268,  269,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
1485    -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,
1486    -1,   -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,
1487   298,   -1,  300,  301,  302,  303,  304,   -1,   -1,   -1,
1488    -1,   -1,   -1,  259,  260,   -1,   -1,  263,  264,   -1,
1489   266,  267,  268,  269,  270,   -1,  272,  273,   -1,  275,
1490   276,  277,  278,  279,  280,  281,  282,  283,  284,   -1,
1491   286,  287,  123,   -1,  125,  291,  292,  293,  294,   -1,
1492    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,   40,
1493    -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
1494    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   59,   -1,
1495    -1,   -1,   -1,   -1,   -1,  259,  260,   -1,   -1,  263,
1496   264,   -1,  266,  267,  268,  269,  270,   -1,  272,  273,
1497    -1,  275,  276,  277,  278,  279,  280,  281,  282,  283,
1498   284,   -1,  286,  287,   -1,   -1,   -1,  291,  292,  293,
1499   294,   -1,   -1,   -1,  298,   -1,  300,  301,  302,  303,
1500   304,   40,   -1,   -1,   43,   -1,   45,   -1,   -1,   -1,
1501    -1,   -1,  123,   -1,  125,   -1,   -1,   -1,   -1,   -1,
1502    59,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1503    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1504    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  259,  260,
1505    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
1506    -1,  272,  273,   -1,  275,  276,  277,  278,  279,  280,
1507   281,  282,  283,  284,   -1,  286,  287,   -1,   -1,   -1,
1508   291,  292,  293,  294,  123,   -1,  125,  298,   -1,  300,
1509   301,  302,  303,  304,   40,   -1,   -1,   43,   -1,   45,
1510    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1511    -1,   -1,   -1,   59,   -1,   -1,   -1,   -1,   -1,   -1,
1512    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1513    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1514    40,   -1,   -1,   43,   -1,   45,   -1,   -1,  259,  260,
1515    -1,   -1,  263,  264,   -1,  266,  267,  268,  269,  270,
1516    -1,  272,  273,   -1,  275,  276,  277,  278,  279,  280,
1517   281,  282,  283,  284,   -1,  286,  287,  123,   -1,  125,
1518   291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,
1519   301,  302,  303,  304,   40,   41,   -1,   43,   44,   45,
1520    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1521    -1,   -1,   -1,   -1,   60,   -1,   62,   -1,   -1,   -1,
1522   259,  260,   -1,   -1,  263,  264,   -1,  266,  267,  268,
1523   269,  270,   -1,  272,  273,   -1,  275,  276,  277,  278,
1524   279,  280,  281,  282,  283,  284,   -1,  286,  287,   -1,
1525    -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,  298,
1526    -1,  300,  301,  302,  303,  304,   40,   41,   -1,   43,
1527    44,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1528    -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,   -1,
1529    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1530    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1531    -1,   -1,   -1,  259,  260,   -1,   -1,  263,  264,   -1,
1532   266,  267,  268,  269,  270,   -1,  272,  273,   -1,  275,
1533   276,  277,  278,  279,  280,  281,  282,  283,  284,   -1,
1534   286,  287,   -1,   -1,   -1,  291,  292,  293,  294,   -1,
1535    -1,   -1,  298,   -1,  300,  301,  302,  303,  304,  259,
1536    -1,   -1,   -1,  263,  264,   -1,  266,  267,  268,  269,
1537    -1,   -1,   -1,   -1,   -1,  275,  276,  277,  278,  279,
1538   280,   -1,  282,  283,  284,   -1,  286,  287,   -1,   -1,
1539    -1,  291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,
1540   300,  301,  302,  303,  304,   40,   41,   -1,   43,   44,
1541    45,   -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,
1542    -1,   -1,  268,  269,   -1,   60,   -1,   62,   -1,   -1,
1543    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,
1544   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,
1545   296,   -1,  298,   -1,  300,  301,  302,  303,  304,   40,
1546    41,   -1,   43,   44,   45,   -1,   -1,   -1,   -1,   -1,
1547    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,
1548    -1,   62,   -1,   -1,   -1,  259,   -1,   -1,   -1,  263,
1549   264,   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,   -1,
1550    -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,
1551   284,   40,  286,   -1,   43,   44,   45,  291,  292,  293,
1552   294,  295,  296,   -1,  298,   -1,  300,  301,  302,  303,
1553   304,   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,   -1,
1554    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1555    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
1556    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1557    -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,
1558    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1559    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1560    -1,   -1,   -1,   40,   -1,   -1,   43,   44,   45,   -1,
1561    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1562    -1,   -1,   -1,   60,  259,   62,   -1,   -1,  263,  264,
1563    -1,   -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,
1564    -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
1565    40,  286,   -1,   43,   44,   45,  291,  292,  293,  294,
1566   295,  296,   -1,  298,   -1,  300,  301,  302,  303,  304,
1567    60,   -1,   62,   -1,   -1,   -1,   -1,   -1,  259,   -1,
1568    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,   -1,
1569    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,
1570    -1,  282,  283,  284,   40,  286,   -1,   43,   44,   45,
1571   291,  292,  293,  294,  295,  296,   -1,  298,   -1,  300,
1572   301,  302,  303,  304,   60,   -1,   62,   -1,   -1,   -1,
1573   259,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,
1574   269,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1575    -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,   -1,
1576    -1,   -1,  291,  292,  293,  294,  295,  296,   -1,  298,
1577    -1,  300,  301,  302,  303,  304,  259,   -1,   -1,   -1,
1578   263,  264,   -1,   -1,   40,  268,  269,   43,   44,   45,
1579    -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
1580   283,  284,   -1,  286,   60,   -1,   62,   -1,  291,  292,
1581   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
1582   303,  304,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,
1583    40,  268,  269,   43,   44,   45,   -1,   -1,   -1,   -1,
1584    -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,
1585    60,   -1,   62,   -1,  291,  292,  293,  294,  295,  296,
1586    -1,  298,   -1,  300,  301,  302,  303,  304,   -1,  259,
1587    -1,   -1,   -1,  263,  264,   -1,   -1,   40,  268,  269,
1588    43,   44,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1589   280,   -1,  282,  283,  284,   -1,  286,   60,   -1,   62,
1590    -1,  291,  292,  293,  294,  295,  296,   -1,  298,   -1,
1591   300,  301,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,
1592    -1,   -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,
1593    -1,   40,  268,  269,   43,   -1,   45,   -1,   -1,   -1,
1594    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,   58,
1595   286,   60,   -1,   62,   -1,  291,  292,  293,  294,  295,
1596   296,   -1,  298,   -1,  300,  301,  302,  303,  304,   -1,
1597    -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,   -1,
1598    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1599    -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,
1600    -1,   -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,
1601    -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,
1602    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,
1603   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,
1604   296,   -1,  298,   -1,  300,  301,  302,  303,  304,  259,
1605    -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,
1606    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1607   280,   -1,  282,  283,  284,   -1,  286,   -1,   -1,   -1,
1608    -1,  291,  292,  293,  294,  295,  296,   -1,  298,   -1,
1609   300,  301,  302,  303,  304,   -1,  259,   -1,   -1,   -1,
1610   263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,
1611    -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
1612   283,  284,   -1,  286,   -1,   -1,   -1,   -1,  291,  292,
1613   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
1614   303,  304,   40,   41,   -1,   43,   -1,   45,   -1,   -1,
1615   259,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,  268,
1616   269,   -1,   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,
1617    -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,   -1,
1618    -1,   -1,  291,  292,  293,  294,  295,  296,   -1,  298,
1619    -1,  300,  301,  302,  303,  304,  259,   -1,   -1,   -1,
1620   263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,
1621    -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
1622   283,  284,   -1,  286,   -1,   -1,   -1,   -1,  291,  292,
1623   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
1624   303,  304,   40,   41,   -1,   43,   -1,   45,   -1,   -1,
1625    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1626    -1,   -1,   60,   -1,   62,   -1,   -1,   -1,   -1,   -1,
1627    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1628    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   40,   41,
1629    -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
1630    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,
1631    62,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1632    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1633    -1,   -1,   -1,   -1,   40,   41,   -1,   43,   -1,   45,
1634    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1635    -1,   -1,   -1,   -1,   60,   -1,   62,   -1,   -1,   -1,
1636    -1,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
1637   268,  269,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1638    -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,
1639    -1,   -1,   -1,  291,  292,  293,  294,  295,  296,   -1,
1640   298,   -1,  300,  301,  302,  303,  304,   40,   41,   -1,
1641    43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1642    -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,   -1,   62,
1643    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1644    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1645    -1,   -1,   -1,   40,   41,   -1,   43,   -1,   45,   -1,
1646    -1,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,   -1,
1647   268,  269,   -1,   60,   -1,   62,   -1,   -1,   -1,   -1,
1648    -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,
1649    -1,   -1,   -1,  291,  292,  293,  294,  295,  296,   -1,
1650   298,   -1,  300,  301,  302,  303,  304,  259,   -1,   -1,
1651    -1,  263,  264,   -1,   -1,   -1,  268,  269,   40,   -1,
1652    -1,   43,   -1,   45,   -1,   -1,   -1,   -1,  280,   -1,
1653   282,  283,  284,   -1,  286,   -1,   -1,   -1,   -1,  291,
1654   292,  293,  294,  295,  296,   -1,  298,   -1,  300,  301,
1655   302,  303,  304,  259,   -1,   -1,   -1,  263,  264,   -1,
1656    -1,   -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,
1657    -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,
1658   286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,
1659   296,   -1,  298,   -1,  300,  301,  302,  303,  304,   40,
1660    41,  123,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
1661    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   60,
1662    -1,   62,   -1,   -1,   -1,   -1,  259,   -1,   -1,   -1,
1663   263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,   -1,
1664    -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,  282,
1665   283,  284,   40,  286,   -1,   43,   -1,   45,  291,  292,
1666   293,  294,  295,  296,   -1,  298,   -1,  300,  301,  302,
1667   303,  304,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,
1668    -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1669    -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,
1670    -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,  296,
1671    -1,  298,   -1,  300,  301,  302,  303,  304,   40,   41,
1672    -1,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,   -1,
1673    -1,   -1,   -1,   -1,   -1,  257,  258,  259,   60,   -1,
1674    62,  263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,
1675    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,
1676   282,  283,  284,  285,  286,   -1,   -1,   -1,   -1,  291,
1677   292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,  301,
1678   302,  303,  304,   40,   -1,   -1,   43,   -1,   45,   -1,
1679    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1680    -1,   -1,   -1,   60,   -1,   62,   -1,   -1,   -1,   -1,
1681    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  259,   -1,
1682    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,   40,
1683    -1,   -1,   43,   -1,   45,   -1,   -1,   -1,   -1,  280,
1684    -1,  282,  283,  284,   -1,  286,   -1,   -1,   59,   -1,
1685   291,  292,  293,  294,  295,  296,   -1,  298,   -1,  300,
1686   301,  302,  303,  304,   -1,   -1,   -1,   -1,   -1,   -1,
1687    -1,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,   40,
1688   268,  269,   43,   -1,   45,   -1,   -1,   -1,   -1,   -1,
1689    -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,   -1,
1690    -1,   -1,   -1,  291,  292,  293,  294,   -1,   -1,   -1,
1691   298,   -1,  300,  301,  302,  303,  304,   -1,   -1,   -1,
1692    -1,   -1,   -1,   -1,   -1,   40,   -1,   -1,   43,   -1,
1693    45,   -1,   -1,   -1,   -1,   -1,   -1,  259,   -1,   -1,
1694    -1,  263,  264,   -1,   -1,   -1,  268,  269,   -1,   -1,
1695    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,   -1,
1696   282,  283,  284,   -1,  286,   -1,   -1,   -1,   -1,  291,
1697   292,  293,  294,  295,  296,   -1,  298,   -1,  300,  301,
1698   302,  303,  304,   40,   -1,   -1,   43,   -1,   45,   -1,
1699    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1700    -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,
1701    -1,  268,  269,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1702    -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,
1703    -1,   -1,   -1,   -1,  291,  292,  293,  294,  295,  296,
1704    -1,  298,   -1,  300,  301,  302,  303,  304,  259,   -1,
1705    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,   -1,
1706    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,
1707    -1,  282,  283,  284,   -1,  286,   -1,   -1,   -1,   -1,
1708   291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,
1709   301,  302,  303,  304,   -1,   -1,   -1,   -1,  259,   -1,
1710    -1,   -1,  263,  264,   -1,   -1,   -1,  268,  269,   -1,
1711    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  280,
1712    -1,  282,  283,  284,   -1,  286,   -1,   -1,   -1,   -1,
1713   291,  292,  293,  294,   -1,   -1,   -1,  298,   -1,  300,
1714   301,  302,  303,  304,  259,   -1,   -1,   -1,  263,  264,
1715    -1,   -1,   -1,  268,  269,   -1,   -1,   47,   48,   -1,
1716    -1,   -1,   -1,   -1,   -1,  280,   -1,  282,  283,  284,
1717    -1,  286,   -1,   -1,   -1,   -1,  291,  292,  293,  294,
1718    -1,   -1,   -1,  298,   -1,  300,  301,  302,  303,  304,
1719    80,   -1,   82,   83,   -1,   -1,   -1,   -1,   -1,   -1,
1720    -1,   -1,  259,   -1,   -1,   -1,  263,  264,   -1,   -1,
1721    -1,  268,  269,   -1,   -1,   -1,   -1,   -1,  108,  109,
1722    -1,   -1,   -1,  280,   -1,  282,  283,  284,   -1,  286,
1723    -1,   -1,   -1,   -1,  291,  292,  293,  294,   -1,   -1,
1724    -1,  298,   -1,  300,  301,  302,  303,  304,   -1,   -1,
1725    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   27,
1726    28,   -1,   -1,   -1,   -1,   33,   -1,   -1,   -1,   -1,
1727    -1,   -1,   -1,   41,   -1,   -1,   -1,   -1,   -1,   -1,
1728   170,   -1,   -1,   -1,   -1,   -1,   54,   -1,   -1,   -1,
1729    -1,  181,   -1,  183,   -1,  185,   -1,   -1,   -1,   -1,
1730    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1731    -1,   -1,   -1,   -1,   -1,   -1,  206,   -1,   -1,   -1,
1732    -1,   -1,   -1,   91,   92,   93,   94,   95,   96,   -1,
1733    -1,  221,  222,  223,  224,  225,  104,   -1,  106,   -1,
1734    -1,   -1,  110,  111,   -1,   -1,  114,   -1,  116,  117,
1735    -1,   -1,   -1,  121,  122,   -1,   -1,   -1,   -1,   -1,
1736    -1,   -1,   -1,   -1,  132,   -1,   -1,   -1,   -1,  137,
1737   138,  139,  140,   -1,   -1,   -1,   -1,   -1,   -1,  269,
1738    -1,   -1,   -1,  273,  274,  275,   -1,   -1,   -1,  279,
1739   158,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1740    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1741    -1,   -1,   -1,   -1,  304,  305,   -1,   -1,  186,   -1,
1742   310,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  197,
1743   198,   -1,  200,  201,  202,  203,   -1,  205,   -1,  207,
1744   208,   -1,   -1,   -1,   -1,   -1,   -1,  215,  216,   -1,
1745    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,  227,
1746    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1747    -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
1748    -1,   -1,   -1,   -1,  252,   -1,   -1,   -1,   -1,   -1,
1749    -1,   -1,   -1,   -1,   -1,   -1,  264,  265,  266,  267,
1750   268,   -1,  270,  271,  272,
1751 };
1752 #define YYFINAL 1
1753 #ifndef YYDEBUG
1754 #define YYDEBUG 0
1755 #endif
1756 #define YYMAXTOKEN 304
1757 #if YYDEBUG
1758 char *yyname[] = {
1759 "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,
1760 0,0,0,"'%'",0,0,"'('","')'","'*'","'+'","','","'-'",0,"'/'",0,0,0,0,0,0,0,0,0,0,
1761 "':'","';'","'<'",0,"'>'","'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1762 0,0,0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'p'",0,0,0,0,0,0,0,
1763 0,0,0,"'{'","'|'","'}'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1764 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1765 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
1766 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"BEGIN","END","REGEX","SEMINEW",
1767 "NEWLINE","COMMENT","FUN1","FUNN","GRGR","PRINT","PRINTF","SPRINTF","SPLIT",
1768 "IF","ELSE","WHILE","FOR","IN","EXIT","NEXT","BREAK","CONTINUE","RET","GETLINE",
1769 "DO","SUB","GSUB","MATCH","FUNCTION","USERFUN","DELETE","ASGNOP","OROR",
1770 "ANDAND","NUMBER","VAR","SUBSTR","INDEX","MATCHOP","RELOP","OR","STRING",
1771 "UMINUS","NOT","INCR","DECR","FIELD","VFIELD",
1772 };
1773 char *yyrule[] = {
1774 "$accept : program",
1775 "program : junk hunks",
1776 "begin : BEGIN '{' maybe states '}' junk",
1777 "end : END '{' maybe states '}'",
1778 "end : end NEWLINE",
1779 "hunks : hunks hunk junk",
1780 "hunks :",
1781 "hunk : patpat",
1782 "hunk : patpat '{' maybe states '}'",
1783 "hunk : FUNCTION USERFUN '(' arg_list ')' maybe '{' maybe states '}'",
1784 "hunk : '{' maybe states '}'",
1785 "hunk : begin",
1786 "hunk : end",
1787 "arg_list : expr_list",
1788 "patpat : cond",
1789 "patpat : cond ',' cond",
1790 "cond : expr",
1791 "cond : match",
1792 "cond : rel",
1793 "cond : compound_cond",
1794 "cond : cond '?' expr ':' expr",
1795 "compound_cond : '(' compound_cond ')'",
1796 "compound_cond : cond ANDAND maybe cond",
1797 "compound_cond : cond OROR maybe cond",
1798 "compound_cond : NOT cond",
1799 "rel : expr RELOP expr",
1800 "rel : expr '>' expr",
1801 "rel : expr '<' expr",
1802 "rel : '(' rel ')'",
1803 "match : expr MATCHOP expr",
1804 "match : expr MATCHOP REGEX",
1805 "match : REGEX",
1806 "match : '(' match ')'",
1807 "expr : term",
1808 "expr : expr term",
1809 "expr : variable ASGNOP cond",
1810 "term : variable",
1811 "term : NUMBER",
1812 "term : STRING",
1813 "term : term '+' term",
1814 "term : term '-' term",
1815 "term : term '*' term",
1816 "term : term '/' term",
1817 "term : term '%' term",
1818 "term : term '^' term",
1819 "term : term IN VAR",
1820 "term : cond '?' expr ':' expr",
1821 "term : variable INCR",
1822 "term : variable DECR",
1823 "term : INCR variable",
1824 "term : DECR variable",
1825 "term : '-' term",
1826 "term : '+' term",
1827 "term : '(' cond ')'",
1828 "term : GETLINE",
1829 "term : GETLINE variable",
1830 "term : GETLINE '<' expr",
1831 "term : GETLINE variable '<' expr",
1832 "term : term 'p' GETLINE",
1833 "term : term 'p' GETLINE variable",
1834 "term : FUN1",
1835 "term : FUN1 '(' ')'",
1836 "term : FUN1 '(' expr ')'",
1837 "term : FUNN '(' expr_list ')'",
1838 "term : USERFUN '(' expr_list ')'",
1839 "term : SPRINTF expr_list",
1840 "term : SUBSTR '(' expr ',' expr ',' expr ')'",
1841 "term : SUBSTR '(' expr ',' expr ')'",
1842 "term : SPLIT '(' expr ',' VAR ',' expr ')'",
1843 "term : SPLIT '(' expr ',' VAR ',' REGEX ')'",
1844 "term : SPLIT '(' expr ',' VAR ')'",
1845 "term : INDEX '(' expr ',' expr ')'",
1846 "term : MATCH '(' expr ',' REGEX ')'",
1847 "term : MATCH '(' expr ',' expr ')'",
1848 "term : SUB '(' expr ',' expr ')'",
1849 "term : SUB '(' REGEX ',' expr ')'",
1850 "term : GSUB '(' expr ',' expr ')'",
1851 "term : GSUB '(' REGEX ',' expr ')'",
1852 "term : SUB '(' expr ',' expr ',' expr ')'",
1853 "term : SUB '(' REGEX ',' expr ',' expr ')'",
1854 "term : GSUB '(' expr ',' expr ',' expr ')'",
1855 "term : GSUB '(' REGEX ',' expr ',' expr ')'",
1856 "variable : VAR",
1857 "variable : VAR '[' expr_list ']'",
1858 "variable : FIELD",
1859 "variable : VFIELD term",
1860 "expr_list : expr",
1861 "expr_list : clist",
1862 "expr_list :",
1863 "clist : expr ',' maybe expr",
1864 "clist : clist ',' maybe expr",
1865 "clist : '(' clist ')'",
1866 "junk : junk hunksep",
1867 "junk :",
1868 "hunksep : ';'",
1869 "hunksep : SEMINEW",
1870 "hunksep : NEWLINE",
1871 "hunksep : COMMENT",
1872 "maybe : maybe nlstuff",
1873 "maybe :",
1874 "nlstuff : NEWLINE",
1875 "nlstuff : COMMENT",
1876 "separator : ';' maybe",
1877 "separator : SEMINEW maybe",
1878 "separator : NEWLINE maybe",
1879 "separator : COMMENT maybe",
1880 "states : states statement",
1881 "states :",
1882 "statement : simple separator maybe",
1883 "statement : ';' maybe",
1884 "statement : SEMINEW maybe",
1885 "statement : compound",
1886 "simpnull : simple",
1887 "simpnull :",
1888 "simple : expr",
1889 "simple : PRINT expr_list redir expr",
1890 "simple : PRINT expr_list",
1891 "simple : PRINTF expr_list redir expr",
1892 "simple : PRINTF expr_list",
1893 "simple : BREAK",
1894 "simple : NEXT",
1895 "simple : EXIT",
1896 "simple : EXIT expr",
1897 "simple : CONTINUE",
1898 "simple : RET",
1899 "simple : RET expr",
1900 "simple : DELETE VAR '[' expr_list ']'",
1901 "redir : '>'",
1902 "redir : GRGR",
1903 "redir : '|'",
1904 "compound : IF '(' cond ')' maybe statement",
1905 "compound : IF '(' cond ')' maybe statement ELSE maybe statement",
1906 "compound : WHILE '(' cond ')' maybe statement",
1907 "compound : DO maybe statement WHILE '(' cond ')'",
1908 "compound : FOR '(' simpnull ';' cond ';' simpnull ')' maybe statement",
1909 "compound : FOR '(' simpnull ';' ';' simpnull ')' maybe statement",
1910 "compound : FOR '(' expr ')' maybe statement",
1911 "compound : '{' maybe states '}' maybe",
1912 };
1913 #endif
1914 #ifndef YYSTYPE
1915 typedef int YYSTYPE;
1916 #endif
1917 #define yyclearin (yychar=(-1))
1918 #define yyerrok (yyerrflag=0)
1919 #ifdef YYSTACKSIZE
1920 #ifndef YYMAXDEPTH
1921 #define YYMAXDEPTH YYSTACKSIZE
1922 #endif
1923 #else
1924 #ifdef YYMAXDEPTH
1925 #define YYSTACKSIZE YYMAXDEPTH
1926 #else
1927 #define YYSTACKSIZE 500
1928 #define YYMAXDEPTH 500
1929 #endif
1930 #endif
1931 int yydebug;
1932 int yynerrs;
1933 int yyerrflag;
1934 int yychar;
1935 short *yyssp;
1936 YYSTYPE *yyvsp;
1937 YYSTYPE yyval;
1938 YYSTYPE yylval;
1939 short yyss[YYSTACKSIZE];
1940 YYSTYPE yyvs[YYSTACKSIZE];
1941 #define yystacksize YYSTACKSIZE
1942 #line 396 "a2p.y"
1943 #include "a2py.c"
1944 #line 1945 "y.tab.c"
1945 #define YYABORT goto yyabort
1946 #define YYACCEPT goto yyaccept
1947 #define YYERROR goto yyerrlab
1948 int
1949 yyparse()
1950 {
1951     register int yym, yyn, yystate;
1952 #if YYDEBUG
1953     register char *yys;
1954     extern char *getenv();
1955
1956     if (yys = getenv("YYDEBUG"))
1957     {
1958         yyn = *yys;
1959         if (yyn >= '0' && yyn <= '9')
1960             yydebug = yyn - '0';
1961     }
1962 #endif
1963
1964     yynerrs = 0;
1965     yyerrflag = 0;
1966     yychar = (-1);
1967
1968     yyssp = yyss;
1969     yyvsp = yyvs;
1970     *yyssp = yystate = 0;
1971
1972 yyloop:
1973     if (yyn = yydefred[yystate]) goto yyreduce;
1974     if (yychar < 0)
1975     {
1976         if ((yychar = yylex()) < 0) yychar = 0;
1977 #if YYDEBUG
1978         if (yydebug)
1979         {
1980             yys = 0;
1981             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1982             if (!yys) yys = "illegal-symbol";
1983             printf("yydebug: state %d, reading %d (%s)\n", yystate,
1984                     yychar, yys);
1985         }
1986 #endif
1987     }
1988     if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
1989             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
1990     {
1991 #if YYDEBUG
1992         if (yydebug)
1993             printf("yydebug: state %d, shifting to state %d\n",
1994                     yystate, yytable[yyn]);
1995 #endif
1996         if (yyssp >= yyss + yystacksize - 1)
1997         {
1998             goto yyoverflow;
1999         }
2000         *++yyssp = yystate = yytable[yyn];
2001         *++yyvsp = yylval;
2002         yychar = (-1);
2003         if (yyerrflag > 0)  --yyerrflag;
2004         goto yyloop;
2005     }
2006     if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
2007             yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
2008     {
2009         yyn = yytable[yyn];
2010         goto yyreduce;
2011     }
2012     if (yyerrflag) goto yyinrecovery;
2013 #ifdef lint
2014     goto yynewerror;
2015 #endif
2016 yynewerror:
2017     yyerror("syntax error");
2018 #ifdef lint
2019     goto yyerrlab;
2020 #endif
2021 yyerrlab:
2022     ++yynerrs;
2023 yyinrecovery:
2024     if (yyerrflag < 3)
2025     {
2026         yyerrflag = 3;
2027         for (;;)
2028         {
2029             if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
2030                     yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
2031             {
2032 #if YYDEBUG
2033                 if (yydebug)
2034                     printf("yydebug: state %d, error recovery shifting\
2035  to state %d\n", *yyssp, yytable[yyn]);
2036 #endif
2037                 if (yyssp >= yyss + yystacksize - 1)
2038                 {
2039                     goto yyoverflow;
2040                 }
2041                 *++yyssp = yystate = yytable[yyn];
2042                 *++yyvsp = yylval;
2043                 goto yyloop;
2044             }
2045             else
2046             {
2047 #if YYDEBUG
2048                 if (yydebug)
2049                     printf("yydebug: error recovery discarding state %d\n",
2050                             *yyssp);
2051 #endif
2052                 if (yyssp <= yyss) goto yyabort;
2053                 --yyssp;
2054                 --yyvsp;
2055             }
2056         }
2057     }
2058     else
2059     {
2060         if (yychar == 0) goto yyabort;
2061 #if YYDEBUG
2062         if (yydebug)
2063         {
2064             yys = 0;
2065             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2066             if (!yys) yys = "illegal-symbol";
2067             printf("yydebug: state %d, error recovery discards token %d (%s)\n",
2068                     yystate, yychar, yys);
2069         }
2070 #endif
2071         yychar = (-1);
2072         goto yyloop;
2073     }
2074 yyreduce:
2075 #if YYDEBUG
2076     if (yydebug)
2077         printf("yydebug: state %d, reducing by rule %d (%s)\n",
2078                 yystate, yyn, yyrule[yyn]);
2079 #endif
2080     yym = yylen[yyn];
2081     yyval = yyvsp[1-yym];
2082     switch (yyn)
2083     {
2084 case 1:
2085 #line 51 "a2p.y"
2086 { root = oper4(OPROG,yyvsp[-1],begins,yyvsp[0],ends); }
2087 break;
2088 case 2:
2089 #line 55 "a2p.y"
2090 { begins = oper4(OJUNK,begins,yyvsp[-3],yyvsp[-2],yyvsp[0]); in_begin = FALSE;
2091                     yyval = Nullop; }
2092 break;
2093 case 3:
2094 #line 60 "a2p.y"
2095 { ends = oper3(OJUNK,ends,yyvsp[-2],yyvsp[-1]); yyval = Nullop; }
2096 break;
2097 case 4:
2098 #line 62 "a2p.y"
2099 { yyval = yyvsp[-1]; }
2100 break;
2101 case 5:
2102 #line 66 "a2p.y"
2103 { yyval = oper3(OHUNKS,yyvsp[-2],yyvsp[-1],yyvsp[0]); }
2104 break;
2105 case 6:
2106 #line 68 "a2p.y"
2107 { yyval = Nullop; }
2108 break;
2109 case 7:
2110 #line 72 "a2p.y"
2111 { yyval = oper1(OHUNK,yyvsp[0]); need_entire = TRUE; }
2112 break;
2113 case 8:
2114 #line 74 "a2p.y"
2115 { yyval = oper2(OHUNK,yyvsp[-4],oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
2116 break;
2117 case 9:
2118 #line 76 "a2p.y"
2119 { fixfargs(yyvsp[-8],yyvsp[-6],0); yyval = oper5(OUSERDEF,yyvsp[-8],yyvsp[-6],yyvsp[-4],yyvsp[-2],yyvsp[-1]); }
2120 break;
2121 case 10:
2122 #line 78 "a2p.y"
2123 { yyval = oper2(OHUNK,Nullop,oper2(OJUNK,yyvsp[-2],yyvsp[-1])); }
2124 break;
2125 case 13:
2126 #line 84 "a2p.y"
2127 { yyval = rememberargs(yyval); }
2128 break;
2129 case 14:
2130 #line 88 "a2p.y"
2131 { yyval = oper1(OPAT,yyvsp[0]); }
2132 break;
2133 case 15:
2134 #line 90 "a2p.y"
2135 { yyval = oper2(ORANGE,yyvsp[-2],yyvsp[0]); }
2136 break;
2137 case 20:
2138 #line 98 "a2p.y"
2139 { yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
2140 break;
2141 case 21:
2142 #line 103 "a2p.y"
2143 { yyval = oper1(OCPAREN,yyvsp[-1]); }
2144 break;
2145 case 22:
2146 #line 105 "a2p.y"
2147 { yyval = oper3(OCANDAND,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2148 break;
2149 case 23:
2150 #line 107 "a2p.y"
2151 { yyval = oper3(OCOROR,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2152 break;
2153 case 24:
2154 #line 109 "a2p.y"
2155 { yyval = oper1(OCNOT,yyvsp[0]); }
2156 break;
2157 case 25:
2158 #line 113 "a2p.y"
2159 { yyval = oper3(ORELOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
2160 break;
2161 case 26:
2162 #line 115 "a2p.y"
2163 { yyval = oper3(ORELOP,string(">",1),yyvsp[-2],yyvsp[0]); }
2164 break;
2165 case 27:
2166 #line 117 "a2p.y"
2167 { yyval = oper3(ORELOP,string("<",1),yyvsp[-2],yyvsp[0]); }
2168 break;
2169 case 28:
2170 #line 119 "a2p.y"
2171 { yyval = oper1(ORPAREN,yyvsp[-1]); }
2172 break;
2173 case 29:
2174 #line 123 "a2p.y"
2175 { yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],yyvsp[0]); }
2176 break;
2177 case 30:
2178 #line 125 "a2p.y"
2179 { yyval = oper3(OMATCHOP,yyvsp[-1],yyvsp[-2],oper1(OREGEX,yyvsp[0])); }
2180 break;
2181 case 31:
2182 #line 127 "a2p.y"
2183 { yyval = oper1(OREGEX,yyvsp[0]); }
2184 break;
2185 case 32:
2186 #line 129 "a2p.y"
2187 { yyval = oper1(OMPAREN,yyvsp[-1]); }
2188 break;
2189 case 33:
2190 #line 133 "a2p.y"
2191 { yyval = yyvsp[0]; }
2192 break;
2193 case 34:
2194 #line 135 "a2p.y"
2195 { yyval = oper2(OCONCAT,yyvsp[-1],yyvsp[0]); }
2196 break;
2197 case 35:
2198 #line 137 "a2p.y"
2199 { yyval = oper3(OASSIGN,yyvsp[-1],yyvsp[-2],yyvsp[0]);
2200                         if ((ops[yyvsp[-2]].ival & 255) == OFLD)
2201                             lval_field = TRUE;
2202                         if ((ops[yyvsp[-2]].ival & 255) == OVFLD)
2203                             lval_field = TRUE;
2204                 }
2205 break;
2206 case 36:
2207 #line 146 "a2p.y"
2208 { yyval = yyvsp[0]; }
2209 break;
2210 case 37:
2211 #line 148 "a2p.y"
2212 { yyval = oper1(ONUM,yyvsp[0]); }
2213 break;
2214 case 38:
2215 #line 150 "a2p.y"
2216 { yyval = oper1(OSTR,yyvsp[0]); }
2217 break;
2218 case 39:
2219 #line 152 "a2p.y"
2220 { yyval = oper2(OADD,yyvsp[-2],yyvsp[0]); }
2221 break;
2222 case 40:
2223 #line 154 "a2p.y"
2224 { yyval = oper2(OSUBTRACT,yyvsp[-2],yyvsp[0]); }
2225 break;
2226 case 41:
2227 #line 156 "a2p.y"
2228 { yyval = oper2(OMULT,yyvsp[-2],yyvsp[0]); }
2229 break;
2230 case 42:
2231 #line 158 "a2p.y"
2232 { yyval = oper2(ODIV,yyvsp[-2],yyvsp[0]); }
2233 break;
2234 case 43:
2235 #line 160 "a2p.y"
2236 { yyval = oper2(OMOD,yyvsp[-2],yyvsp[0]); }
2237 break;
2238 case 44:
2239 #line 162 "a2p.y"
2240 { yyval = oper2(OPOW,yyvsp[-2],yyvsp[0]); }
2241 break;
2242 case 45:
2243 #line 164 "a2p.y"
2244 { yyval = oper2(ODEFINED,aryrefarg(yyvsp[0]),yyvsp[-2]); }
2245 break;
2246 case 46:
2247 #line 166 "a2p.y"
2248 { yyval = oper3(OCOND,yyvsp[-4],yyvsp[-2],yyvsp[0]); }
2249 break;
2250 case 47:
2251 #line 168 "a2p.y"
2252 { yyval = oper1(OPOSTINCR,yyvsp[-1]); }
2253 break;
2254 case 48:
2255 #line 170 "a2p.y"
2256 { yyval = oper1(OPOSTDECR,yyvsp[-1]); }
2257 break;
2258 case 49:
2259 #line 172 "a2p.y"
2260 { yyval = oper1(OPREINCR,yyvsp[0]); }
2261 break;
2262 case 50:
2263 #line 174 "a2p.y"
2264 { yyval = oper1(OPREDECR,yyvsp[0]); }
2265 break;
2266 case 51:
2267 #line 176 "a2p.y"
2268 { yyval = oper1(OUMINUS,yyvsp[0]); }
2269 break;
2270 case 52:
2271 #line 178 "a2p.y"
2272 { yyval = oper1(OUPLUS,yyvsp[0]); }
2273 break;
2274 case 53:
2275 #line 180 "a2p.y"
2276 { yyval = oper1(OPAREN,yyvsp[-1]); }
2277 break;
2278 case 54:
2279 #line 182 "a2p.y"
2280 { yyval = oper0(OGETLINE); }
2281 break;
2282 case 55:
2283 #line 184 "a2p.y"
2284 { yyval = oper1(OGETLINE,yyvsp[0]); }
2285 break;
2286 case 56:
2287 #line 186 "a2p.y"
2288 { yyval = oper3(OGETLINE,Nullop,string("<",1),yyvsp[0]);
2289                     if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2290 break;
2291 case 57:
2292 #line 189 "a2p.y"
2293 { yyval = oper3(OGETLINE,yyvsp[-2],string("<",1),yyvsp[0]);
2294                     if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2295 break;
2296 case 58:
2297 #line 192 "a2p.y"
2298 { yyval = oper3(OGETLINE,Nullop,string("|",1),yyvsp[-2]);
2299                     if (ops[yyvsp[-2]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2300 break;
2301 case 59:
2302 #line 195 "a2p.y"
2303 { yyval = oper3(OGETLINE,yyvsp[0],string("|",1),yyvsp[-3]);
2304                     if (ops[yyvsp[-3]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2305 break;
2306 case 60:
2307 #line 198 "a2p.y"
2308 { yyval = oper0(yyvsp[0]); need_entire = do_chop = TRUE; }
2309 break;
2310 case 61:
2311 #line 200 "a2p.y"
2312 { yyval = oper1(yyvsp[-2],Nullop); need_entire = do_chop = TRUE; }
2313 break;
2314 case 62:
2315 #line 202 "a2p.y"
2316 { yyval = oper1(yyvsp[-3],yyvsp[-1]); }
2317 break;
2318 case 63:
2319 #line 204 "a2p.y"
2320 { yyval = oper1(yyvsp[-3],yyvsp[-1]); }
2321 break;
2322 case 64:
2323 #line 206 "a2p.y"
2324 { yyval = oper2(OUSERFUN,yyvsp[-3],yyvsp[-1]); }
2325 break;
2326 case 65:
2327 #line 208 "a2p.y"
2328 { yyval = oper1(OSPRINTF,yyvsp[0]); }
2329 break;
2330 case 66:
2331 #line 210 "a2p.y"
2332 { yyval = oper3(OSUBSTR,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2333 break;
2334 case 67:
2335 #line 212 "a2p.y"
2336 { yyval = oper2(OSUBSTR,yyvsp[-3],yyvsp[-1]); }
2337 break;
2338 case 68:
2339 #line 214 "a2p.y"
2340 { yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),yyvsp[-1]); }
2341 break;
2342 case 69:
2343 #line 216 "a2p.y"
2344 { yyval = oper3(OSPLIT,yyvsp[-5],aryrefarg(numary(yyvsp[-3])),oper1(OREGEX,yyvsp[-1]));}
2345 break;
2346 case 70:
2347 #line 218 "a2p.y"
2348 { yyval = oper2(OSPLIT,yyvsp[-3],aryrefarg(numary(yyvsp[-1]))); }
2349 break;
2350 case 71:
2351 #line 220 "a2p.y"
2352 { yyval = oper2(OINDEX,yyvsp[-3],yyvsp[-1]); }
2353 break;
2354 case 72:
2355 #line 222 "a2p.y"
2356 { yyval = oper2(OMATCH,yyvsp[-3],oper1(OREGEX,yyvsp[-1])); }
2357 break;
2358 case 73:
2359 #line 224 "a2p.y"
2360 { yyval = oper2(OMATCH,yyvsp[-3],yyvsp[-1]); }
2361 break;
2362 case 74:
2363 #line 226 "a2p.y"
2364 { yyval = oper2(OSUB,yyvsp[-3],yyvsp[-1]); }
2365 break;
2366 case 75:
2367 #line 228 "a2p.y"
2368 { yyval = oper2(OSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
2369 break;
2370 case 76:
2371 #line 230 "a2p.y"
2372 { yyval = oper2(OGSUB,yyvsp[-3],yyvsp[-1]); }
2373 break;
2374 case 77:
2375 #line 232 "a2p.y"
2376 { yyval = oper2(OGSUB,oper1(OREGEX,yyvsp[-3]),yyvsp[-1]); }
2377 break;
2378 case 78:
2379 #line 234 "a2p.y"
2380 { yyval = oper3(OSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2381 break;
2382 case 79:
2383 #line 236 "a2p.y"
2384 { yyval = oper3(OSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
2385 break;
2386 case 80:
2387 #line 238 "a2p.y"
2388 { yyval = oper3(OGSUB,yyvsp[-5],yyvsp[-3],yyvsp[-1]); }
2389 break;
2390 case 81:
2391 #line 240 "a2p.y"
2392 { yyval = oper3(OGSUB,oper1(OREGEX,yyvsp[-5]),yyvsp[-3],yyvsp[-1]); }
2393 break;
2394 case 82:
2395 #line 244 "a2p.y"
2396 { yyval = oper1(OVAR,yyvsp[0]); }
2397 break;
2398 case 83:
2399 #line 246 "a2p.y"
2400 { yyval = oper2(OVAR,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
2401 break;
2402 case 84:
2403 #line 248 "a2p.y"
2404 { yyval = oper1(OFLD,yyvsp[0]); }
2405 break;
2406 case 85:
2407 #line 250 "a2p.y"
2408 { yyval = oper1(OVFLD,yyvsp[0]); }
2409 break;
2410 case 88:
2411 #line 257 "a2p.y"
2412 { yyval = Nullop; }
2413 break;
2414 case 89:
2415 #line 261 "a2p.y"
2416 { yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2417 break;
2418 case 90:
2419 #line 263 "a2p.y"
2420 { yyval = oper3(OCOMMA,yyvsp[-3],yyvsp[-1],yyvsp[0]); }
2421 break;
2422 case 91:
2423 #line 265 "a2p.y"
2424 { yyval = yyvsp[-1]; }
2425 break;
2426 case 92:
2427 #line 269 "a2p.y"
2428 { yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
2429 break;
2430 case 93:
2431 #line 271 "a2p.y"
2432 { yyval = Nullop; }
2433 break;
2434 case 94:
2435 #line 275 "a2p.y"
2436 { yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
2437 break;
2438 case 95:
2439 #line 277 "a2p.y"
2440 { yyval = oper2(OJUNK,oper0(OSEMICOLON),oper0(ONEWLINE)); }
2441 break;
2442 case 96:
2443 #line 279 "a2p.y"
2444 { yyval = oper0(ONEWLINE); }
2445 break;
2446 case 97:
2447 #line 281 "a2p.y"
2448 { yyval = oper1(OCOMMENT,yyvsp[0]); }
2449 break;
2450 case 98:
2451 #line 285 "a2p.y"
2452 { yyval = oper2(OJUNK,yyvsp[-1],yyvsp[0]); }
2453 break;
2454 case 99:
2455 #line 287 "a2p.y"
2456 { yyval = Nullop; }
2457 break;
2458 case 100:
2459 #line 291 "a2p.y"
2460 { yyval = oper0(ONEWLINE); }
2461 break;
2462 case 101:
2463 #line 293 "a2p.y"
2464 { yyval = oper1(OCOMMENT,yyvsp[0]); }
2465 break;
2466 case 102:
2467 #line 298 "a2p.y"
2468 { yyval = oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0]); }
2469 break;
2470 case 103:
2471 #line 300 "a2p.y"
2472 { yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
2473 break;
2474 case 104:
2475 #line 302 "a2p.y"
2476 { yyval = oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0]); }
2477 break;
2478 case 105:
2479 #line 304 "a2p.y"
2480 { yyval = oper2(OJUNK,oper1(OSCOMMENT,yyvsp[-1]),yyvsp[0]); }
2481 break;
2482 case 106:
2483 #line 308 "a2p.y"
2484 { yyval = oper2(OSTATES,yyvsp[-1],yyvsp[0]); }
2485 break;
2486 case 107:
2487 #line 310 "a2p.y"
2488 { yyval = Nullop; }
2489 break;
2490 case 108:
2491 #line 315 "a2p.y"
2492 { yyval = oper2(OJUNK,oper2(OSTATE,yyvsp[-2],yyvsp[-1]),yyvsp[0]); }
2493 break;
2494 case 109:
2495 #line 317 "a2p.y"
2496 { yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSEMICOLON),yyvsp[0])); }
2497 break;
2498 case 110:
2499 #line 319 "a2p.y"
2500 { yyval = oper2(OSTATE,Nullop,oper2(OJUNK,oper0(OSNEWLINE),yyvsp[0])); }
2501 break;
2502 case 113:
2503 #line 325 "a2p.y"
2504 { yyval = Nullop; }
2505 break;
2506 case 115:
2507 #line 331 "a2p.y"
2508 { yyval = oper3(OPRINT,yyvsp[-2],yyvsp[-1],yyvsp[0]);
2509                     do_opens = TRUE;
2510                     saw_ORS = saw_OFS = TRUE;
2511                     if (!yyvsp[-2]) need_entire = TRUE;
2512                     if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2513 break;
2514 case 116:
2515 #line 337 "a2p.y"
2516 { yyval = oper1(OPRINT,yyvsp[0]);
2517                     if (!yyvsp[0]) need_entire = TRUE;
2518                     saw_ORS = saw_OFS = TRUE;
2519                 }
2520 break;
2521 case 117:
2522 #line 342 "a2p.y"
2523 { yyval = oper3(OPRINTF,yyvsp[-2],yyvsp[-1],yyvsp[0]);
2524                     do_opens = TRUE;
2525                     if (!yyvsp[-2]) need_entire = TRUE;
2526                     if (ops[yyvsp[0]].ival != OSTR + (1<<8)) do_fancy_opens = TRUE; }
2527 break;
2528 case 118:
2529 #line 347 "a2p.y"
2530 { yyval = oper1(OPRINTF,yyvsp[0]);
2531                     if (!yyvsp[0]) need_entire = TRUE;
2532                 }
2533 break;
2534 case 119:
2535 #line 351 "a2p.y"
2536 { yyval = oper0(OBREAK); }
2537 break;
2538 case 120:
2539 #line 353 "a2p.y"
2540 { yyval = oper0(ONEXT); }
2541 break;
2542 case 121:
2543 #line 355 "a2p.y"
2544 { yyval = oper0(OEXIT); }
2545 break;
2546 case 122:
2547 #line 357 "a2p.y"
2548 { yyval = oper1(OEXIT,yyvsp[0]); }
2549 break;
2550 case 123:
2551 #line 359 "a2p.y"
2552 { yyval = oper0(OCONTINUE); }
2553 break;
2554 case 124:
2555 #line 361 "a2p.y"
2556 { yyval = oper0(ORETURN); }
2557 break;
2558 case 125:
2559 #line 363 "a2p.y"
2560 { yyval = oper1(ORETURN,yyvsp[0]); }
2561 break;
2562 case 126:
2563 #line 365 "a2p.y"
2564 { yyval = oper2(ODELETE,aryrefarg(yyvsp[-3]),yyvsp[-1]); }
2565 break;
2566 case 127:
2567 #line 369 "a2p.y"
2568 { yyval = oper1(OREDIR,string(">",1)); }
2569 break;
2570 case 128:
2571 #line 371 "a2p.y"
2572 { yyval = oper1(OREDIR,string(">>",2)); }
2573 break;
2574 case 129:
2575 #line 373 "a2p.y"
2576 { yyval = oper1(OREDIR,string("|",1)); }
2577 break;
2578 case 130:
2579 #line 378 "a2p.y"
2580 { yyval = oper2(OIF,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2581 break;
2582 case 131:
2583 #line 380 "a2p.y"
2584 { yyval = oper3(OIF,yyvsp[-6],bl(yyvsp[-3],yyvsp[-4]),bl(yyvsp[0],yyvsp[-1])); }
2585 break;
2586 case 132:
2587 #line 382 "a2p.y"
2588 { yyval = oper2(OWHILE,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2589 break;
2590 case 133:
2591 #line 384 "a2p.y"
2592 { yyval = oper2(ODO,bl(yyvsp[-4],yyvsp[-5]),yyvsp[-1]); }
2593 break;
2594 case 134:
2595 #line 386 "a2p.y"
2596 { yyval = oper4(OFOR,yyvsp[-7],yyvsp[-5],yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2597 break;
2598 case 135:
2599 #line 388 "a2p.y"
2600 { yyval = oper4(OFOR,yyvsp[-6],string("",0),yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2601 break;
2602 case 136:
2603 #line 390 "a2p.y"
2604 { yyval = oper2(OFORIN,yyvsp[-3],bl(yyvsp[0],yyvsp[-1])); }
2605 break;
2606 case 137:
2607 #line 392 "a2p.y"
2608 { yyval = oper3(OBLOCK,oper2(OJUNK,yyvsp[-3],yyvsp[-2]),Nullop,yyvsp[0]); }
2609 break;
2610 #line 2611 "y.tab.c"
2611     }
2612     yyssp -= yym;
2613     yystate = *yyssp;
2614     yyvsp -= yym;
2615     yym = yylhs[yyn];
2616     if (yystate == 0 && yym == 0)
2617     {
2618 #if YYDEBUG
2619         if (yydebug)
2620             printf("yydebug: after reduction, shifting from state 0 to\
2621  state %d\n", YYFINAL);
2622 #endif
2623         yystate = YYFINAL;
2624         *++yyssp = YYFINAL;
2625         *++yyvsp = yyval;
2626         if (yychar < 0)
2627         {
2628             if ((yychar = yylex()) < 0) yychar = 0;
2629 #if YYDEBUG
2630             if (yydebug)
2631             {
2632                 yys = 0;
2633                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2634                 if (!yys) yys = "illegal-symbol";
2635                 printf("yydebug: state %d, reading %d (%s)\n",
2636                         YYFINAL, yychar, yys);
2637             }
2638 #endif
2639         }
2640         if (yychar == 0) goto yyaccept;
2641         goto yyloop;
2642     }
2643     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2644             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2645         yystate = yytable[yyn];
2646     else
2647         yystate = yydgoto[yym];
2648 #if YYDEBUG
2649     if (yydebug)
2650         printf("yydebug: after reduction, shifting from state %d \
2651 to state %d\n", *yyssp, yystate);
2652 #endif
2653     if (yyssp >= yyss + yystacksize - 1)
2654     {
2655         goto yyoverflow;
2656     }
2657     *++yyssp = yystate;
2658     *++yyvsp = yyval;
2659     goto yyloop;
2660 yyoverflow:
2661     yyerror("yacc stack overflow");
2662 yyabort:
2663     return (1);
2664 yyaccept:
2665     return (0);
2666 }