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