This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl 5.0 alpha 5
[perl5.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             fprintf(stderr, "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             fprintf(stderr, "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                     fprintf(stderr,
1766                      "yydebug: state %d, error recovery shifting to state %d\n",
1767                      *yyssp, yytable[yyn]);
1768 #endif
1769                 if (yyssp >= yyss + yystacksize - 1)
1770                 {
1771                     /*
1772                     ** reallocate and recover.  Note that pointers
1773                     ** have to be reset, or bad things will happen
1774                     */
1775                     int yyps_index = (yyssp - yyss);
1776                     int yypv_index = (yyvsp - yyvs);
1777                     yystacksize += YYSTACKSIZE;
1778                     yyvs = (YYSTYPE*)realloc((char*)yyvs,
1779                         yystacksize * sizeof(YYSTYPE));
1780                     yyss = (short*)realloc((char*)yyss,
1781                         yystacksize * sizeof(short));
1782                     if (!yyvs || !yyss)
1783                         goto yyoverflow;
1784                     yyssp = yyss + yyps_index;
1785                     yyvsp = yyvs + yypv_index;
1786                 }
1787                 *++yyssp = yystate = yytable[yyn];
1788                 *++yyvsp = yylval;
1789                 goto yyloop;
1790             }
1791             else
1792             {
1793 #if YYDEBUG
1794                 if (yydebug)
1795                     fprintf(stderr,
1796                         "yydebug: error recovery discarding state %d\n",
1797                         *yyssp);
1798 #endif
1799                 if (yyssp <= yyss) goto yyabort;
1800                 --yyssp;
1801                 --yyvsp;
1802             }
1803         }
1804     }
1805     else
1806     {
1807         if (yychar == 0) goto yyabort;
1808 #if YYDEBUG
1809         if (yydebug)
1810         {
1811             yys = 0;
1812             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
1813             if (!yys) yys = "illegal-symbol";
1814             fprintf(stderr,
1815                 "yydebug: state %d, error recovery discards token %d (%s)\n",
1816                 yystate, yychar, yys);
1817         }
1818 #endif
1819         yychar = (-1);
1820         goto yyloop;
1821     }
1822 yyreduce:
1823 #if YYDEBUG
1824     if (yydebug)
1825         fprintf(stderr, "yydebug: state %d, reducing by rule %d (%s)\n",
1826                 yystate, yyn, yyrule[yyn]);
1827 #endif
1828     yym = yylen[yyn];
1829     yyval = yyvsp[1-yym];
1830     switch (yyn)
1831     {
1832 case 1:
1833 #line 102 "perly.y"
1834 {
1835 #if defined(YYDEBUG) && defined(DEBUGGING)
1836                     yydebug = (debug & 1);
1837 #endif
1838                     expect = XBLOCK;
1839                 }
1840 break;
1841 case 2:
1842 #line 109 "perly.y"
1843 {   if (in_eval) {
1844                                 eval_root = newUNOP(OP_LEAVEEVAL, 0, yyvsp[0].opval);
1845                                 eval_start = linklist(eval_root);
1846                                 eval_root->op_next = 0;
1847                                 peep(eval_start);
1848                             }
1849                             else
1850                                 main_root = block_head(yyvsp[0].opval, &main_start);
1851                         }
1852 break;
1853 case 3:
1854 #line 121 "perly.y"
1855 {   int nbs = needblockscope;
1856                             yyval.opval = scalarseq(yyvsp[-1].opval);
1857                             if (copline > (line_t)yyvsp[-3].ival)
1858                                 copline = yyvsp[-3].ival;
1859                             leave_scope(yyvsp[-2].ival);
1860                             if (nbs)
1861                                 needblockscope = TRUE;  /* propagate outward */
1862                             pad_leavemy(comppadnamefill); }
1863 break;
1864 case 4:
1865 #line 132 "perly.y"
1866 { yyval.ival = savestack_ix;
1867                             SAVEINT(comppadnamefill);
1868                             SAVEINT(needblockscope);
1869                             needblockscope = FALSE; }
1870 break;
1871 case 5:
1872 #line 139 "perly.y"
1873 { yyval.opval = Nullop; }
1874 break;
1875 case 6:
1876 #line 141 "perly.y"
1877 { yyval.opval = yyvsp[-1].opval; }
1878 break;
1879 case 7:
1880 #line 143 "perly.y"
1881 {   yyval.opval = append_list(OP_LINESEQ,
1882                                 (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval); pad_reset();
1883                             if (yyvsp[-1].opval && yyvsp[0].opval) needblockscope = TRUE; }
1884 break;
1885 case 8:
1886 #line 149 "perly.y"
1887 { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
1888 break;
1889 case 10:
1890 #line 152 "perly.y"
1891 { if (yyvsp[-1].pval != Nullch) {
1892                               yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
1893                             }
1894                             else {
1895                               yyval.opval = Nullop;
1896                               copline = NOLINE;
1897                             }
1898                             expect = XBLOCK; }
1899 break;
1900 case 11:
1901 #line 161 "perly.y"
1902 { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
1903                           expect = XBLOCK; }
1904 break;
1905 case 12:
1906 #line 166 "perly.y"
1907 { yyval.opval = Nullop; }
1908 break;
1909 case 13:
1910 #line 168 "perly.y"
1911 { yyval.opval = yyvsp[0].opval; }
1912 break;
1913 case 14:
1914 #line 170 "perly.y"
1915 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1916 break;
1917 case 15:
1918 #line 172 "perly.y"
1919 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
1920 break;
1921 case 16:
1922 #line 174 "perly.y"
1923 { yyval.opval = newLOOPOP(0, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
1924 break;
1925 case 17:
1926 #line 176 "perly.y"
1927 { yyval.opval = newLOOPOP(0, 1, invert(scalar(yyvsp[0].opval)), yyvsp[-2].opval);}
1928 break;
1929 case 18:
1930 #line 180 "perly.y"
1931 { yyval.opval = Nullop; }
1932 break;
1933 case 19:
1934 #line 182 "perly.y"
1935 { yyval.opval = scope(yyvsp[0].opval); }
1936 break;
1937 case 20:
1938 #line 184 "perly.y"
1939 { copline = yyvsp[-5].ival;
1940                             yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval); }
1941 break;
1942 case 21:
1943 #line 189 "perly.y"
1944 { copline = yyvsp[-5].ival;
1945                             yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval); }
1946 break;
1947 case 22:
1948 #line 192 "perly.y"
1949 { copline = yyvsp[-5].ival;
1950                             yyval.opval = newCONDOP(0,
1951                                 invert(scalar(yyvsp[-3].opval)), scope(yyvsp[-1].opval), yyvsp[0].opval); }
1952 break;
1953 case 23:
1954 #line 196 "perly.y"
1955 { copline = yyvsp[-3].ival;
1956                             yyval.opval = newCONDOP(0, scope(yyvsp[-2].opval), scope(yyvsp[-1].opval), yyvsp[0].opval); }
1957 break;
1958 case 24:
1959 #line 199 "perly.y"
1960 { copline = yyvsp[-3].ival;
1961                             yyval.opval = newCONDOP(0, invert(scalar(scope(yyvsp[-2].opval))),
1962                                                 scope(yyvsp[-1].opval), yyvsp[0].opval); }
1963 break;
1964 case 25:
1965 #line 205 "perly.y"
1966 { yyval.opval = Nullop; }
1967 break;
1968 case 26:
1969 #line 207 "perly.y"
1970 { yyval.opval = scope(yyvsp[0].opval); }
1971 break;
1972 case 27:
1973 #line 211 "perly.y"
1974 { copline = yyvsp[-5].ival;
1975                             yyval.opval = newSTATEOP(0, yyvsp[-6].pval,
1976                                     newWHILEOP(0, 1, (LOOP*)Nullop,
1977                                         yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval) ); }
1978 break;
1979 case 28:
1980 #line 216 "perly.y"
1981 { copline = yyvsp[-5].ival;
1982                             yyval.opval = newSTATEOP(0, yyvsp[-6].pval,
1983                                     newWHILEOP(0, 1, (LOOP*)Nullop,
1984                                         invert(scalar(yyvsp[-3].opval)), yyvsp[-1].opval, yyvsp[0].opval) ); }
1985 break;
1986 case 29:
1987 #line 221 "perly.y"
1988 { copline = yyvsp[-3].ival;
1989                             yyval.opval = newSTATEOP(0, yyvsp[-4].pval,
1990                                     newWHILEOP(0, 1, (LOOP*)Nullop,
1991                                         scope(yyvsp[-2].opval), yyvsp[-1].opval, yyvsp[0].opval) ); }
1992 break;
1993 case 30:
1994 #line 226 "perly.y"
1995 { copline = yyvsp[-3].ival;
1996                             yyval.opval = newSTATEOP(0, yyvsp[-4].pval,
1997                                     newWHILEOP(0, 1, (LOOP*)Nullop,
1998                                         invert(scalar(scope(yyvsp[-2].opval))), yyvsp[-1].opval, yyvsp[0].opval)); }
1999 break;
2000 case 31:
2001 #line 231 "perly.y"
2002 { yyval.opval = newFOROP(0, yyvsp[-7].pval, yyvsp[-6].ival, mod(yyvsp[-5].opval, OP_ENTERLOOP),
2003                                 yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval); }
2004 break;
2005 case 32:
2006 #line 234 "perly.y"
2007 { yyval.opval = newFOROP(0, yyvsp[-6].pval, yyvsp[-5].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval); }
2008 break;
2009 case 33:
2010 #line 237 "perly.y"
2011 {  copline = yyvsp[-8].ival;
2012                             yyval.opval = append_elem(OP_LINESEQ,
2013                                     newSTATEOP(0, yyvsp[-9].pval, scalar(yyvsp[-6].opval)),
2014                                     newSTATEOP(0, yyvsp[-9].pval,
2015                                         newWHILEOP(0, 1, (LOOP*)Nullop,
2016                                             scalar(yyvsp[-4].opval), yyvsp[0].opval, scalar(yyvsp[-2].opval)) )); }
2017 break;
2018 case 34:
2019 #line 244 "perly.y"
2020 { yyval.opval = newSTATEOP(0,
2021                                 yyvsp[-2].pval, newWHILEOP(0, 1, (LOOP*)Nullop,
2022                                         Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
2023 break;
2024 case 35:
2025 #line 250 "perly.y"
2026 { yyval.opval = Nullop; }
2027 break;
2028 case 37:
2029 #line 255 "perly.y"
2030 { (void)scan_num("1"); yyval.opval = yylval.opval; }
2031 break;
2032 case 39:
2033 #line 260 "perly.y"
2034 { yyval.pval = Nullch; }
2035 break;
2036 case 41:
2037 #line 265 "perly.y"
2038 { yyval.ival = 0; }
2039 break;
2040 case 42:
2041 #line 267 "perly.y"
2042 { yyval.ival = 0; }
2043 break;
2044 case 43:
2045 #line 269 "perly.y"
2046 { yyval.ival = 0; }
2047 break;
2048 case 44:
2049 #line 273 "perly.y"
2050 { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
2051 break;
2052 case 45:
2053 #line 275 "perly.y"
2054 { newFORM(yyvsp[-1].ival, Nullop, yyvsp[0].opval); }
2055 break;
2056 case 46:
2057 #line 279 "perly.y"
2058 { newSUB(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
2059 break;
2060 case 47:
2061 #line 281 "perly.y"
2062 { newSUB(yyvsp[-2].ival, yyvsp[-1].opval, Nullop); expect = XBLOCK; }
2063 break;
2064 case 48:
2065 #line 285 "perly.y"
2066 { package(yyvsp[-1].opval); }
2067 break;
2068 case 49:
2069 #line 287 "perly.y"
2070 { package(Nullop); }
2071 break;
2072 case 50:
2073 #line 291 "perly.y"
2074 { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
2075 break;
2076 case 52:
2077 #line 296 "perly.y"
2078 { yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
2079                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-1].opval), yyvsp[0].opval) ); }
2080 break;
2081 case 53:
2082 #line 299 "perly.y"
2083 { yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
2084                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-2].opval), yyvsp[-1].opval) ); }
2085 break;
2086 case 54:
2087 #line 302 "perly.y"
2088 { yyval.opval = convert(yyvsp[-1].ival, OPf_STACKED,
2089                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-3].opval), yyvsp[0].opval) ); }
2090 break;
2091 case 55:
2092 #line 305 "perly.y"
2093 { yyval.opval = convert(yyvsp[-3].ival, OPf_STACKED,
2094                                 prepend_elem(OP_LIST, newGVREF(yyvsp[-5].opval), yyvsp[-1].opval) ); }
2095 break;
2096 case 56:
2097 #line 308 "perly.y"
2098 { yyval.opval = convert(OP_ENTERSUBR, OPf_STACKED|OPf_SPECIAL,
2099                                 prepend_elem(OP_LIST, newMETHOD(yyvsp[-5].opval,yyvsp[-3].opval), yyvsp[-1].opval)); }
2100 break;
2101 case 57:
2102 #line 311 "perly.y"
2103 { yyval.opval = convert(OP_ENTERSUBR, OPf_STACKED|OPf_SPECIAL,
2104                                 prepend_elem(OP_LIST, newMETHOD(yyvsp[-1].opval,yyvsp[-2].opval), yyvsp[0].opval)); }
2105 break;
2106 case 58:
2107 #line 314 "perly.y"
2108 { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2109 break;
2110 case 59:
2111 #line 316 "perly.y"
2112 { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2113 break;
2114 case 60:
2115 #line 320 "perly.y"
2116 { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[0].opval); }
2117 break;
2118 case 61:
2119 #line 322 "perly.y"
2120 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
2121                                 mod(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval)); }
2122 break;
2123 case 62:
2124 #line 325 "perly.y"
2125 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
2126                                 mod(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval)); }
2127 break;
2128 case 63:
2129 #line 328 "perly.y"
2130 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
2131                                 mod(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval));}
2132 break;
2133 case 64:
2134 #line 331 "perly.y"
2135 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
2136                                 mod(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval)); }
2137 break;
2138 case 65:
2139 #line 334 "perly.y"
2140 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
2141                                 mod(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval)); }
2142 break;
2143 case 66:
2144 #line 337 "perly.y"
2145 { yyval.opval = newBINOP(yyvsp[-2].ival, OPf_STACKED,
2146                                 mod(scalar(yyvsp[-3].opval), yyvsp[-2].ival), scalar(yyvsp[0].opval)); }
2147 break;
2148 case 67:
2149 #line 340 "perly.y"
2150 { yyval.opval = newLOGOP(OP_ANDASSIGN, 0,
2151                                 mod(scalar(yyvsp[-3].opval), OP_ANDASSIGN),
2152                                 newUNOP(OP_SASSIGN, 0, scalar(yyvsp[0].opval))); }
2153 break;
2154 case 68:
2155 #line 344 "perly.y"
2156 { yyval.opval = newLOGOP(OP_ORASSIGN, 0,
2157                                 mod(scalar(yyvsp[-3].opval), OP_ORASSIGN),
2158                                 newUNOP(OP_SASSIGN, 0, scalar(yyvsp[0].opval))); }
2159 break;
2160 case 69:
2161 #line 350 "perly.y"
2162 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2163 break;
2164 case 70:
2165 #line 352 "perly.y"
2166 {   if (yyvsp[-1].ival != OP_REPEAT)
2167                                 scalar(yyvsp[-2].opval);
2168                             yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
2169 break;
2170 case 71:
2171 #line 356 "perly.y"
2172 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2173 break;
2174 case 72:
2175 #line 358 "perly.y"
2176 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2177 break;
2178 case 73:
2179 #line 360 "perly.y"
2180 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2181 break;
2182 case 74:
2183 #line 362 "perly.y"
2184 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2185 break;
2186 case 75:
2187 #line 364 "perly.y"
2188 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2189 break;
2190 case 76:
2191 #line 366 "perly.y"
2192 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2193 break;
2194 case 77:
2195 #line 368 "perly.y"
2196 { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
2197 break;
2198 case 78:
2199 #line 370 "perly.y"
2200 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2201 break;
2202 case 79:
2203 #line 372 "perly.y"
2204 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2205 break;
2206 case 80:
2207 #line 374 "perly.y"
2208 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2209 break;
2210 case 81:
2211 #line 376 "perly.y"
2212 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2213 break;
2214 case 82:
2215 #line 378 "perly.y"
2216 { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
2217 break;
2218 case 83:
2219 #line 380 "perly.y"
2220 { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
2221 break;
2222 case 84:
2223 #line 382 "perly.y"
2224 { yyval.opval = yyvsp[0].opval; }
2225 break;
2226 case 85:
2227 #line 386 "perly.y"
2228 { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
2229 break;
2230 case 86:
2231 #line 388 "perly.y"
2232 { yyval.opval = yyvsp[0].opval; }
2233 break;
2234 case 87:
2235 #line 390 "perly.y"
2236 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2237 break;
2238 case 88:
2239 #line 392 "perly.y"
2240 { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
2241 break;
2242 case 89:
2243 #line 394 "perly.y"
2244 { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
2245 break;
2246 case 90:
2247 #line 396 "perly.y"
2248 { yyval.opval = newUNOP(OP_POSTINC, 0,
2249                                         mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
2250 break;
2251 case 91:
2252 #line 399 "perly.y"
2253 { yyval.opval = newUNOP(OP_POSTDEC, 0,
2254                                         mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
2255 break;
2256 case 92:
2257 #line 402 "perly.y"
2258 { yyval.opval = newUNOP(OP_PREINC, 0,
2259                                         mod(scalar(yyvsp[0].opval), OP_PREINC)); }
2260 break;
2261 case 93:
2262 #line 405 "perly.y"
2263 { yyval.opval = newUNOP(OP_PREDEC, 0,
2264                                         mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
2265 break;
2266 case 94:
2267 #line 408 "perly.y"
2268 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2269 break;
2270 case 95:
2271 #line 410 "perly.y"
2272 { yyval.opval = sawparens(yyvsp[-1].opval); }
2273 break;
2274 case 96:
2275 #line 412 "perly.y"
2276 { yyval.opval = newNULLLIST(); }
2277 break;
2278 case 97:
2279 #line 414 "perly.y"
2280 { yyval.opval = newANONLIST(yyvsp[-1].opval); }
2281 break;
2282 case 98:
2283 #line 416 "perly.y"
2284 { yyval.opval = newANONLIST(Nullop); }
2285 break;
2286 case 99:
2287 #line 418 "perly.y"
2288 { yyval.opval = newANONHASH(yyvsp[-1].opval); }
2289 break;
2290 case 100:
2291 #line 420 "perly.y"
2292 { yyval.opval = newANONHASH(Nullop); }
2293 break;
2294 case 101:
2295 #line 422 "perly.y"
2296 { yyval.opval = yyvsp[0].opval; }
2297 break;
2298 case 102:
2299 #line 424 "perly.y"
2300 { yyval.opval = yyvsp[0].opval; }
2301 break;
2302 case 103:
2303 #line 426 "perly.y"
2304 { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
2305 break;
2306 case 104:
2307 #line 428 "perly.y"
2308 { yyval.opval = newBINOP(OP_AELEM, 0,
2309                                         scalar(ref(newAVREF(yyvsp[-4].opval),OP_RV2AV)),
2310                                         scalar(yyvsp[-1].opval));}
2311 break;
2312 case 105:
2313 #line 432 "perly.y"
2314 { yyval.opval = newBINOP(OP_AELEM, 0,
2315                                         scalar(ref(newAVREF(yyvsp[-3].opval),OP_RV2AV)),
2316                                         scalar(yyvsp[-1].opval));}
2317 break;
2318 case 106:
2319 #line 436 "perly.y"
2320 { yyval.opval = yyvsp[0].opval; }
2321 break;
2322 case 107:
2323 #line 438 "perly.y"
2324 { yyval.opval = yyvsp[0].opval; }
2325 break;
2326 case 108:
2327 #line 440 "perly.y"
2328 { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
2329 break;
2330 case 109:
2331 #line 442 "perly.y"
2332 { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
2333                             expect = XOPERATOR; }
2334 break;
2335 case 110:
2336 #line 445 "perly.y"
2337 { yyval.opval = newBINOP(OP_HELEM, 0,
2338                                         scalar(ref(newHVREF(yyvsp[-5].opval),OP_RV2HV)),
2339                                         jmaybe(yyvsp[-2].opval));
2340                             expect = XOPERATOR; }
2341 break;
2342 case 111:
2343 #line 450 "perly.y"
2344 { yyval.opval = newBINOP(OP_HELEM, 0,
2345                                         scalar(ref(newHVREF(yyvsp[-4].opval),OP_RV2HV)),
2346                                         jmaybe(yyvsp[-2].opval));
2347                             expect = XOPERATOR; }
2348 break;
2349 case 112:
2350 #line 455 "perly.y"
2351 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
2352 break;
2353 case 113:
2354 #line 457 "perly.y"
2355 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
2356 break;
2357 case 114:
2358 #line 459 "perly.y"
2359 { yyval.opval = prepend_elem(OP_ASLICE,
2360                                 newOP(OP_PUSHMARK, 0),
2361                                 list(
2362                                     newLISTOP(OP_ASLICE, 0,
2363                                         list(yyvsp[-1].opval),
2364                                         ref(yyvsp[-3].opval, OP_ASLICE)))); }
2365 break;
2366 case 115:
2367 #line 466 "perly.y"
2368 { yyval.opval = prepend_elem(OP_HSLICE,
2369                                 newOP(OP_PUSHMARK, 0),
2370                                 list(
2371                                     newLISTOP(OP_HSLICE, 0,
2372                                         list(yyvsp[-2].opval),
2373                                         ref(oopsHV(yyvsp[-4].opval), OP_HSLICE))));
2374                             expect = XOPERATOR; }
2375 break;
2376 case 116:
2377 #line 474 "perly.y"
2378 { yyval.opval = newBINOP(OP_DELETE, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
2379                             expect = XOPERATOR; }
2380 break;
2381 case 117:
2382 #line 477 "perly.y"
2383 { yyval.opval = newBINOP(OP_DELETE, 0, oopsHV(yyvsp[-5].opval), jmaybe(yyvsp[-3].opval));
2384                             expect = XOPERATOR; }
2385 break;
2386 case 118:
2387 #line 480 "perly.y"
2388 { yyval.opval = yyvsp[0].opval; }
2389 break;
2390 case 119:
2391 #line 482 "perly.y"
2392 { yyval.opval = newUNOP(OP_ENTERSUBR, 0,
2393                                 scalar(yyvsp[0].opval)); }
2394 break;
2395 case 120:
2396 #line 485 "perly.y"
2397 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_STACKED, scalar(yyvsp[-2].opval)); }
2398 break;
2399 case 121:
2400 #line 487 "perly.y"
2401 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_STACKED,
2402                             list(prepend_elem(OP_LIST, scalar(yyvsp[-3].opval), yyvsp[-1].opval))); }
2403 break;
2404 case 122:
2405 #line 490 "perly.y"
2406 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_STACKED,
2407                             list(prepend_elem(OP_LIST,
2408                                 newCVREF(scalar(yyvsp[-1].opval)), yyvsp[0].opval))); }
2409 break;
2410 case 123:
2411 #line 494 "perly.y"
2412 { yyval.opval = convert(OP_ENTERSUBR, OPf_STACKED|OPf_SPECIAL,
2413                                 prepend_elem(OP_LIST, newMETHOD(yyvsp[-1].opval,yyvsp[-2].opval), yyvsp[0].opval)); }
2414 break;
2415 case 124:
2416 #line 497 "perly.y"
2417 { yyval.opval = newUNOP(OP_DOFILE, 0, scalar(yyvsp[0].opval)); }
2418 break;
2419 case 125:
2420 #line 499 "perly.y"
2421 { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
2422 break;
2423 case 126:
2424 #line 501 "perly.y"
2425 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
2426                             list(prepend_elem(OP_LIST,
2427                                 scalar(newCVREF(scalar(yyvsp[-2].opval))), newNULLLIST()))); }
2428 break;
2429 case 127:
2430 #line 505 "perly.y"
2431 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
2432                             list(prepend_elem(OP_LIST,
2433                                 scalar(newCVREF(scalar(yyvsp[-3].opval))),
2434                                 yyvsp[-1].opval))); }
2435 break;
2436 case 128:
2437 #line 510 "perly.y"
2438 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
2439                             list(prepend_elem(OP_LIST,
2440                                 scalar(newCVREF(scalar(yyvsp[-2].opval))), newNULLLIST())));}
2441 break;
2442 case 129:
2443 #line 514 "perly.y"
2444 { yyval.opval = newUNOP(OP_ENTERSUBR, OPf_SPECIAL|OPf_STACKED,
2445                             list(prepend_elem(OP_LIST,
2446                                 scalar(newCVREF(scalar(yyvsp[-3].opval))),
2447                                 yyvsp[-1].opval))); }
2448 break;
2449 case 130:
2450 #line 519 "perly.y"
2451 { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL); needblockscope = TRUE; }
2452 break;
2453 case 131:
2454 #line 521 "perly.y"
2455 { yyval.opval = newPVOP(yyvsp[-1].ival, 0,
2456                                 savestr(SvPVx(((SVOP*)yyvsp[0].opval)->op_sv, na)));
2457                             op_free(yyvsp[0].opval); needblockscope = TRUE; }
2458 break;
2459 case 132:
2460 #line 525 "perly.y"
2461 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2462 break;
2463 case 133:
2464 #line 527 "perly.y"
2465 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2466 break;
2467 case 134:
2468 #line 529 "perly.y"
2469 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2470 break;
2471 case 135:
2472 #line 531 "perly.y"
2473 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2474 break;
2475 case 136:
2476 #line 533 "perly.y"
2477 { yyval.opval = newOP(yyvsp[-2].ival, 0); }
2478 break;
2479 case 137:
2480 #line 535 "perly.y"
2481 { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
2482 break;
2483 case 138:
2484 #line 537 "perly.y"
2485 { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2486 break;
2487 case 139:
2488 #line 539 "perly.y"
2489 { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
2490 break;
2491 case 140:
2492 #line 541 "perly.y"
2493 { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
2494 break;
2495 case 143:
2496 #line 547 "perly.y"
2497 { yyval.opval = newNULLLIST(); }
2498 break;
2499 case 144:
2500 #line 549 "perly.y"
2501 { yyval.opval = yyvsp[0].opval; }
2502 break;
2503 case 145:
2504 #line 553 "perly.y"
2505 { yyval.opval = newCVREF(yyvsp[0].opval); }
2506 break;
2507 case 146:
2508 #line 557 "perly.y"
2509 { yyval.opval = newSVREF(yyvsp[0].opval); }
2510 break;
2511 case 147:
2512 #line 561 "perly.y"
2513 { yyval.opval = newAVREF(yyvsp[0].opval); }
2514 break;
2515 case 148:
2516 #line 565 "perly.y"
2517 { yyval.opval = newHVREF(yyvsp[0].opval); }
2518 break;
2519 case 149:
2520 #line 569 "perly.y"
2521 { yyval.opval = newAVREF(yyvsp[0].opval); }
2522 break;
2523 case 150:
2524 #line 573 "perly.y"
2525 { yyval.opval = newGVREF(yyvsp[0].opval); }
2526 break;
2527 case 151:
2528 #line 577 "perly.y"
2529 { yyval.opval = scalar(yyvsp[0].opval); }
2530 break;
2531 case 152:
2532 #line 579 "perly.y"
2533 { yyval.opval = scalar(yyvsp[0].opval);  }
2534 break;
2535 case 153:
2536 #line 581 "perly.y"
2537 { yyval.opval = scalar(scope(yyvsp[0].opval)); }
2538 break;
2539 case 154:
2540 #line 584 "perly.y"
2541 { yyval.opval = yyvsp[0].opval; }
2542 break;
2543 case 155:
2544 #line 588 "perly.y"
2545 { yyval.ival = 1; }
2546 break;
2547 case 156:
2548 #line 590 "perly.y"
2549 { yyval.ival = 0; }
2550 break;
2551 case 157:
2552 #line 594 "perly.y"
2553 { yyval.ival = 1; }
2554 break;
2555 case 158:
2556 #line 596 "perly.y"
2557 { yyval.ival = 0; }
2558 break;
2559 case 159:
2560 #line 600 "perly.y"
2561 { yyval.ival = 1; }
2562 break;
2563 case 160:
2564 #line 602 "perly.y"
2565 { yyval.ival = 0; }
2566 break;
2567 #line 2523 "y.tab.c"
2568     }
2569     yyssp -= yym;
2570     yystate = *yyssp;
2571     yyvsp -= yym;
2572     yym = yylhs[yyn];
2573     if (yystate == 0 && yym == 0)
2574     {
2575 #if YYDEBUG
2576         if (yydebug)
2577             fprintf(stderr,
2578                 "yydebug: after reduction, shifting from state 0 to state %d\n",
2579                 YYFINAL);
2580 #endif
2581         yystate = YYFINAL;
2582         *++yyssp = YYFINAL;
2583         *++yyvsp = yyval;
2584         if (yychar < 0)
2585         {
2586             if ((yychar = yylex()) < 0) yychar = 0;
2587 #if YYDEBUG
2588             if (yydebug)
2589             {
2590                 yys = 0;
2591                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2592                 if (!yys) yys = "illegal-symbol";
2593                 fprintf(stderr, "yydebug: state %d, reading %d (%s)\n",
2594                         YYFINAL, yychar, yys);
2595             }
2596 #endif
2597         }
2598         if (yychar == 0) goto yyaccept;
2599         goto yyloop;
2600     }
2601     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2602             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2603         yystate = yytable[yyn];
2604     else
2605         yystate = yydgoto[yym];
2606 #if YYDEBUG
2607     if (yydebug)
2608         fprintf(stderr,
2609             "yydebug: after reduction, shifting from state %d to state %d\n",
2610             *yyssp, yystate);
2611 #endif
2612     if (yyssp >= yyss + yystacksize - 1)
2613     {
2614         /*
2615         ** reallocate and recover.  Note that pointers
2616         ** have to be reset, or bad things will happen
2617         */
2618         int yyps_index = (yyssp - yyss);
2619         int yypv_index = (yyvsp - yyvs);
2620         yystacksize += YYSTACKSIZE;
2621         yyvs = (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
2622         yyss = (short*)realloc((char*)yyss,yystacksize * sizeof(short));
2623         if (!yyvs || !yyss)
2624             goto yyoverflow;
2625         yyssp = yyss + yyps_index;
2626         yyvsp = yyvs + yypv_index;
2627     }
2628     *++yyssp = yystate;
2629     *++yyvsp = yyval;
2630     goto yyloop;
2631 yyoverflow:
2632     yyerror("Out of memory for yacc stack");
2633 yyabort:
2634     retval = 1;
2635 yyaccept:
2636     if (yyss) free(yyss);
2637     if (yyvs) free(yyvs);
2638     yydebug     = oldyydebug;
2639     yynerrs     = oldyynerrs;
2640     yyerrflag   = oldyyerrflag;
2641     yychar      = oldyychar;
2642     yyval       = oldyyval;
2643     yylval      = oldyylval;
2644     return retval;
2645 }