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