This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
use sv_setpvn rather than sv_setpv and save a strlen()
[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 796 "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                             PL_expect = XOPERATOR; }
2102 break;
2103 case 92:
2104 #line 483 "perly.y"
2105 { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
2106 break;
2107 case 93:
2108 #line 485 "perly.y"
2109 { yyval.opval = newBINOP(OP_AELEM, 0,
2110                                         ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
2111                                         scalar(yyvsp[-1].opval));}
2112 break;
2113 case 94:
2114 #line 489 "perly.y"
2115 { yyval.opval = newBINOP(OP_AELEM, 0,
2116                                         ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
2117                                         scalar(yyvsp[-1].opval));}
2118 break;
2119 case 95:
2120 #line 493 "perly.y"
2121 { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
2122                             PL_expect = XOPERATOR; }
2123 break;
2124 case 96:
2125 #line 496 "perly.y"
2126 { yyval.opval = newBINOP(OP_HELEM, 0,
2127                                         ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
2128                                         jmaybe(yyvsp[-2].opval));
2129                             PL_expect = XOPERATOR; }
2130 break;
2131 case 97:
2132 #line 501 "perly.y"
2133 { yyval.opval = newBINOP(OP_HELEM, 0,
2134                                         ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
2135                                         jmaybe(yyvsp[-2].opval));
2136                             PL_expect = XOPERATOR; }
2137 break;
2138 case 98:
2139 #line 506 "perly.y"
2140 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2141                                    newCVREF(0, scalar(yyvsp[-3].opval))); }
2142 break;
2143 case 99:
2144 #line 509 "perly.y"
2145 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2146                                    append_elem(OP_LIST, yyvsp[-1].opval,
2147                                        newCVREF(0, scalar(yyvsp[-4].opval)))); }
2148 break;
2149 case 100:
2150 #line 514 "perly.y"
2151 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2152                                    append_elem(OP_LIST, yyvsp[-1].opval,
2153                                                newCVREF(0, scalar(yyvsp[-3].opval)))); }
2154 break;
2155 case 101:
2156 #line 518 "perly.y"
2157 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2158                                    newCVREF(0, scalar(yyvsp[-2].opval))); }
2159 break;
2160 case 102:
2161 #line 524 "perly.y"
2162 { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
2163 break;
2164 case 103:
2165 #line 526 "perly.y"
2166 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2167 break;
2168 case 104:
2169 #line 528 "perly.y"
2170 {   if (yyvsp[-1].ival != OP_REPEAT)
2171                                 scalar(yyvsp[-2].opval);
2172                             yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); }
2173 break;
2174 case 105:
2175 #line 532 "perly.y"
2176 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2177 break;
2178 case 106:
2179 #line 534 "perly.y"
2180 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2181 break;
2182 case 107:
2183 #line 536 "perly.y"
2184 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2185 break;
2186 case 108:
2187 #line 538 "perly.y"
2188 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2189 break;
2190 case 109:
2191 #line 540 "perly.y"
2192 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2193 break;
2194 case 110:
2195 #line 542 "perly.y"
2196 { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
2197 break;
2198 case 111:
2199 #line 544 "perly.y"
2200 { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
2201 break;
2202 case 112:
2203 #line 546 "perly.y"
2204 { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2205 break;
2206 case 113:
2207 #line 548 "perly.y"
2208 { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2209 break;
2210 case 114:
2211 #line 550 "perly.y"
2212 { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
2213 break;
2214 case 115:
2215 #line 552 "perly.y"
2216 { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
2217 break;
2218 case 116:
2219 #line 557 "perly.y"
2220 { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
2221 break;
2222 case 117:
2223 #line 559 "perly.y"
2224 { yyval.opval = yyvsp[0].opval; }
2225 break;
2226 case 118:
2227 #line 561 "perly.y"
2228 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2229 break;
2230 case 119:
2231 #line 563 "perly.y"
2232 { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
2233 break;
2234 case 120:
2235 #line 565 "perly.y"
2236 { yyval.opval = newUNOP(OP_POSTINC, 0,
2237                                         mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
2238 break;
2239 case 121:
2240 #line 568 "perly.y"
2241 { yyval.opval = newUNOP(OP_POSTDEC, 0,
2242                                         mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
2243 break;
2244 case 122:
2245 #line 571 "perly.y"
2246 { yyval.opval = newUNOP(OP_PREINC, 0,
2247                                         mod(scalar(yyvsp[0].opval), OP_PREINC)); }
2248 break;
2249 case 123:
2250 #line 574 "perly.y"
2251 { yyval.opval = newUNOP(OP_PREDEC, 0,
2252                                         mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
2253 break;
2254 case 124:
2255 #line 581 "perly.y"
2256 { yyval.opval = newANONLIST(yyvsp[-1].opval); }
2257 break;
2258 case 125:
2259 #line 583 "perly.y"
2260 { yyval.opval = newANONLIST(Nullop); }
2261 break;
2262 case 126:
2263 #line 585 "perly.y"
2264 { yyval.opval = newANONHASH(yyvsp[-2].opval); }
2265 break;
2266 case 127:
2267 #line 587 "perly.y"
2268 { yyval.opval = newANONHASH(Nullop); }
2269 break;
2270 case 128:
2271 #line 589 "perly.y"
2272 { yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
2273 break;
2274 case 129:
2275 #line 595 "perly.y"
2276 { yyval.opval = dofile(yyvsp[0].opval); }
2277 break;
2278 case 130:
2279 #line 597 "perly.y"
2280 { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
2281 break;
2282 case 131:
2283 #line 599 "perly.y"
2284 { yyval.opval = newUNOP(OP_ENTERSUB,
2285                             OPf_SPECIAL|OPf_STACKED,
2286                             prepend_elem(OP_LIST,
2287                                 scalar(newCVREF(
2288                                     (OPpENTERSUB_AMPER<<8),
2289                                     scalar(yyvsp[-2].opval)
2290                                 )),Nullop)); dep();}
2291 break;
2292 case 132:
2293 #line 607 "perly.y"
2294 { yyval.opval = newUNOP(OP_ENTERSUB,
2295                             OPf_SPECIAL|OPf_STACKED,
2296                             append_elem(OP_LIST,
2297                                 yyvsp[-1].opval,
2298                                 scalar(newCVREF(
2299                                     (OPpENTERSUB_AMPER<<8),
2300                                     scalar(yyvsp[-3].opval)
2301                                 )))); dep();}
2302 break;
2303 case 133:
2304 #line 616 "perly.y"
2305 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2306                             prepend_elem(OP_LIST,
2307                                 scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();}
2308 break;
2309 case 134:
2310 #line 620 "perly.y"
2311 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
2312                             prepend_elem(OP_LIST,
2313                                 yyvsp[-1].opval,
2314                                 scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();}
2315 break;
2316 case 139:
2317 #line 632 "perly.y"
2318 { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
2319 break;
2320 case 140:
2321 #line 634 "perly.y"
2322 { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
2323 break;
2324 case 141:
2325 #line 636 "perly.y"
2326 { yyval.opval = yyvsp[0].opval; }
2327 break;
2328 case 142:
2329 #line 638 "perly.y"
2330 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2331 break;
2332 case 143:
2333 #line 640 "perly.y"
2334 { yyval.opval = sawparens(yyvsp[-1].opval); }
2335 break;
2336 case 144:
2337 #line 642 "perly.y"
2338 { yyval.opval = sawparens(newNULLLIST()); }
2339 break;
2340 case 145:
2341 #line 644 "perly.y"
2342 { yyval.opval = yyvsp[0].opval; }
2343 break;
2344 case 146:
2345 #line 646 "perly.y"
2346 { yyval.opval = yyvsp[0].opval; }
2347 break;
2348 case 147:
2349 #line 648 "perly.y"
2350 { yyval.opval = yyvsp[0].opval; }
2351 break;
2352 case 148:
2353 #line 650 "perly.y"
2354 { yyval.opval = yyvsp[0].opval; }
2355 break;
2356 case 149:
2357 #line 652 "perly.y"
2358 { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
2359 break;
2360 case 150:
2361 #line 654 "perly.y"
2362 { yyval.opval = yyvsp[0].opval; }
2363 break;
2364 case 151:
2365 #line 656 "perly.y"
2366 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
2367 break;
2368 case 152:
2369 #line 658 "perly.y"
2370 { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
2371 break;
2372 case 153:
2373 #line 660 "perly.y"
2374 { yyval.opval = prepend_elem(OP_ASLICE,
2375                                 newOP(OP_PUSHMARK, 0),
2376                                     newLISTOP(OP_ASLICE, 0,
2377                                         list(yyvsp[-1].opval),
2378                                         ref(yyvsp[-3].opval, OP_ASLICE))); }
2379 break;
2380 case 154:
2381 #line 666 "perly.y"
2382 { yyval.opval = prepend_elem(OP_HSLICE,
2383                                 newOP(OP_PUSHMARK, 0),
2384                                     newLISTOP(OP_HSLICE, 0,
2385                                         list(yyvsp[-2].opval),
2386                                         ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
2387                             PL_expect = XOPERATOR; }
2388 break;
2389 case 155:
2390 #line 673 "perly.y"
2391 { yyval.opval = yyvsp[0].opval; }
2392 break;
2393 case 156:
2394 #line 675 "perly.y"
2395 { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
2396 break;
2397 case 157:
2398 #line 677 "perly.y"
2399 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
2400 break;
2401 case 158:
2402 #line 679 "perly.y"
2403 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2404                             append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
2405 break;
2406 case 159:
2407 #line 682 "perly.y"
2408 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2409                             append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2410 break;
2411 case 160:
2412 #line 685 "perly.y"
2413 { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
2414                             PL_hints |= HINT_BLOCK_SCOPE; }
2415 break;
2416 case 161:
2417 #line 688 "perly.y"
2418 { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
2419 break;
2420 case 162:
2421 #line 690 "perly.y"
2422 { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
2423 break;
2424 case 163:
2425 #line 692 "perly.y"
2426 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2427 break;
2428 case 164:
2429 #line 694 "perly.y"
2430 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2431 break;
2432 case 165:
2433 #line 696 "perly.y"
2434 { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
2435 break;
2436 case 166:
2437 #line 698 "perly.y"
2438 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2439                             append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
2440 break;
2441 case 167:
2442 #line 701 "perly.y"
2443 { yyval.opval = newOP(yyvsp[0].ival, 0); }
2444 break;
2445 case 168:
2446 #line 703 "perly.y"
2447 { yyval.opval = newOP(yyvsp[-2].ival, 0); }
2448 break;
2449 case 169:
2450 #line 705 "perly.y"
2451 { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
2452                                 scalar(yyvsp[0].opval)); }
2453 break;
2454 case 170:
2455 #line 708 "perly.y"
2456 { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
2457 break;
2458 case 171:
2459 #line 710 "perly.y"
2460 { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
2461 break;
2462 case 172:
2463 #line 712 "perly.y"
2464 { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
2465 break;
2466 case 173:
2467 #line 714 "perly.y"
2468 { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
2469 break;
2470 case 176:
2471 #line 721 "perly.y"
2472 { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
2473 break;
2474 case 177:
2475 #line 723 "perly.y"
2476 { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
2477 break;
2478 case 178:
2479 #line 728 "perly.y"
2480 { yyval.opval = sawparens(yyvsp[-1].opval); }
2481 break;
2482 case 179:
2483 #line 730 "perly.y"
2484 { yyval.opval = sawparens(newNULLLIST()); }
2485 break;
2486 case 180:
2487 #line 732 "perly.y"
2488 { yyval.opval = yyvsp[0].opval; }
2489 break;
2490 case 181:
2491 #line 734 "perly.y"
2492 { yyval.opval = yyvsp[0].opval; }
2493 break;
2494 case 182:
2495 #line 736 "perly.y"
2496 { yyval.opval = yyvsp[0].opval; }
2497 break;
2498 case 183:
2499 #line 741 "perly.y"
2500 { yyval.opval = Nullop; }
2501 break;
2502 case 184:
2503 #line 743 "perly.y"
2504 { yyval.opval = yyvsp[0].opval; }
2505 break;
2506 case 185:
2507 #line 747 "perly.y"
2508 { yyval.opval = Nullop; }
2509 break;
2510 case 186:
2511 #line 749 "perly.y"
2512 { yyval.opval = yyvsp[0].opval; }
2513 break;
2514 case 187:
2515 #line 751 "perly.y"
2516 { yyval.opval = yyvsp[-1].opval; }
2517 break;
2518 case 188:
2519 #line 757 "perly.y"
2520 { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
2521 break;
2522 case 189:
2523 #line 761 "perly.y"
2524 { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
2525 break;
2526 case 190:
2527 #line 765 "perly.y"
2528 { yyval.opval = newSVREF(yyvsp[0].opval); }
2529 break;
2530 case 191:
2531 #line 769 "perly.y"
2532 { yyval.opval = newAVREF(yyvsp[0].opval); }
2533 break;
2534 case 192:
2535 #line 773 "perly.y"
2536 { yyval.opval = newHVREF(yyvsp[0].opval); }
2537 break;
2538 case 193:
2539 #line 777 "perly.y"
2540 { yyval.opval = newAVREF(yyvsp[0].opval); }
2541 break;
2542 case 194:
2543 #line 781 "perly.y"
2544 { yyval.opval = newGVREF(0,yyvsp[0].opval); }
2545 break;
2546 case 195:
2547 #line 786 "perly.y"
2548 { yyval.opval = scalar(yyvsp[0].opval); }
2549 break;
2550 case 196:
2551 #line 788 "perly.y"
2552 { yyval.opval = scalar(yyvsp[0].opval);  }
2553 break;
2554 case 197:
2555 #line 790 "perly.y"
2556 { yyval.opval = scope(yyvsp[0].opval); }
2557 break;
2558 case 198:
2559 #line 793 "perly.y"
2560 { yyval.opval = yyvsp[0].opval; }
2561 break;
2562 #line 2563 "perly.c"
2563     }
2564     yyssp -= yym;
2565     yystate = *yyssp;
2566     yyvsp -= yym;
2567     yym = yylhs[yyn];
2568     if (yystate == 0 && yym == 0)
2569     {
2570 #if YYDEBUG
2571         if (yydebug)
2572             PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
2573  state %d\n", YYFINAL);
2574 #endif
2575         yystate = YYFINAL;
2576         *++yyssp = YYFINAL;
2577         *++yyvsp = yyval;
2578         if (yychar < 0)
2579         {
2580             if ((yychar = yylex()) < 0) yychar = 0;
2581 #if YYDEBUG
2582             if (yydebug)
2583             {
2584                 yys = 0;
2585                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
2586                 if (!yys) yys = "illegal-symbol";
2587                 PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
2588                         YYFINAL, yychar, yys);
2589             }
2590 #endif
2591         }
2592         if (yychar == 0) goto yyaccept;
2593         goto yyloop;
2594     }
2595     if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
2596             yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
2597         yystate = yytable[yyn];
2598     else
2599         yystate = yydgoto[yym];
2600 #if YYDEBUG
2601     if (yydebug)
2602         PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
2603 to state %d\n", *yyssp, yystate);
2604 #endif
2605     if (yyssp >= yyss + yystacksize - 1)
2606     {
2607         /*
2608         ** reallocate and recover.  Note that pointers
2609         ** have to be reset, or bad things will happen
2610         */
2611         int yyps_index = (yyssp - yyss);
2612         int yypv_index = (yyvsp - yyvs);
2613         yystacksize += YYSTACKSIZE;
2614         ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
2615         ysave->yyss = Renew(yyss, yystacksize, short);
2616         if (!yyvs || !yyss)
2617         goto yyoverflow;
2618         yyssp = yyss + yyps_index;
2619         yyvsp = yyvs + yypv_index;
2620     }
2621     *++yyssp = yystate;
2622     *++yyvsp = yyval;
2623     goto yyloop;
2624 yyoverflow:
2625     yyerror("Out of memory for yacc stack");
2626 yyabort:
2627     retval = 1;
2628 yyaccept:
2629 #ifdef USE_ITHREADS
2630     LEAVE;                      /* force yydestruct() before we return */
2631 #endif
2632     return retval;
2633 }
2634
2635 static void
2636 yydestruct(pTHX_ void *ptr)
2637 {
2638     struct ysv* ysave = (struct ysv*)ptr;
2639     if (ysave->yyss) Safefree(ysave->yyss);
2640     if (ysave->yyvs) Safefree(ysave->yyvs);
2641     yydebug     = ysave->oldyydebug;
2642     yynerrs     = ysave->oldyynerrs;
2643     yyerrflag   = ysave->oldyyerrflag;
2644     yychar      = ysave->oldyychar;
2645     yyval       = ysave->oldyyval;
2646     yylval      = ysave->oldyylval;
2647     Safefree(ysave);
2648 }