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