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