#ifndef lint static char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93"; #endif #define YYBYACC 1 #define YYMAJOR 1 #define YYMINOR 9 #define yyclearin (yychar=(-1)) #define yyerrok (yyerrflag=0) #define YYRECOVERING (yyerrflag!=0) #define YYPREFIX "yy" #line 43 "perly.y" #include "INTERN.h" #include "perl.h" /*SUPPRESS 530*/ /*SUPPRESS 593*/ /*SUPPRESS 595*/ STAB *scrstab; ARG *arg4; /* rarely used arguments to make_op() */ ARG *arg5; #line 58 "perly.y" typedef union { int ival; char *cval; ARG *arg; CMD *cmdval; struct compcmd compval; STAB *stabval; FCMD *formval; } YYSTYPE; #line 34 "y.tab.c" #define WORD 257 #define LABEL 258 #define APPEND 259 #define OPEN 260 #define SSELECT 261 #define LOOPEX 262 #define DOTDOT 263 #define USING 264 #define FORMAT 265 #define DO 266 #define SHIFT 267 #define PUSH 268 #define POP 269 #define LVALFUN 270 #define WHILE 271 #define UNTIL 272 #define IF 273 #define UNLESS 274 #define ELSE 275 #define ELSIF 276 #define CONTINUE 277 #define SPLIT 278 #define FLIST 279 #define FOR 280 #define FILOP 281 #define FILOP2 282 #define FILOP3 283 #define FILOP4 284 #define FILOP22 285 #define FILOP25 286 #define FUNC0 287 #define FUNC1 288 #define FUNC2 289 #define FUNC2x 290 #define FUNC3 291 #define FUNC4 292 #define FUNC5 293 #define HSHFUN 294 #define HSHFUN3 295 #define FLIST2 296 #define SUB 297 #define FILETEST 298 #define LOCAL 299 #define DELETE 300 #define RELOP 301 #define EQOP 302 #define MULOP 303 #define ADDOP 304 #define PACKAGE 305 #define AMPER 306 #define FORMLIST 307 #define REG 308 #define ARYLEN 309 #define ARY 310 #define HSH 311 #define STAR 312 #define SUBST 313 #define PATTERN 314 #define RSTRING 315 #define TRANS 316 #define LISTOP 317 #define OROR 318 #define ANDAND 319 #define UNIOP 320 #define LS 321 #define RS 322 #define MATCH 323 #define NMATCH 324 #define UMINUS 325 #define POW 326 #define INC 327 #define DEC 328 #define YYERRCODE 256 short yylhs[] = { -1, 26, 0, 25, 25, 12, 12, 12, 5, 3, 6, 6, 7, 7, 7, 7, 7, 10, 10, 10, 10, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 11, 11, 21, 21, 24, 24, 1, 1, 1, 2, 2, 27, 28, 15, 13, 13, 16, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 22, 22, 22, 22, 22, 22, 18, 18, 19, 19, 20, 20, 4, 4, 23, }; short yylen[] = { 2, 0, 2, 3, 2, 0, 2, 5, 4, 0, 0, 2, 1, 2, 1, 2, 3, 1, 1, 3, 3, 3, 3, 5, 5, 3, 3, 6, 6, 4, 4, 7, 6, 10, 2, 0, 1, 0, 1, 0, 1, 1, 1, 1, 4, 3, 3, 3, 2, 3, 1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 4, 3, 2, 2, 2, 1, 1, 4, 1, 1, 5, 6, 5, 4, 5, 6, 8, 1, 1, 1, 1, 1, 5, 5, 4, 4, 2, 5, 5, 4, 4, 2, 1, 2, 1, 2, 2, 1, 2, 4, 7, 2, 4, 5, 4, 2, 2, 3, 1, 5, 6, 6, 7, 9, 6, 2, 4, 2, 4, 1, 1, 6, 5, 4, 5, 4, 2, 1, 1, 3, 3, 4, 5, 5, 6, 6, 7, 8, 4, 2, 6, 1, 1, 1, 2, 2, 3, 3, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, }; short yydefred[] = { 1, 0, 10, 0, 40, 0, 0, 0, 12, 41, 11, 14, 0, 42, 43, 0, 0, 0, 0, 17, 9, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 97, 95, 109, 108, 107, 110, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 13, 0, 0, 0, 0, 171, 170, 34, 0, 45, 46, 47, 10, 130, 0, 127, 0, 122, 0, 0, 93, 0, 180, 181, 0, 146, 0, 0, 144, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 134, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, 0, 168, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 0, 0, 0, 84, 85, 0, 0, 0, 0, 0, 0, 0, 4, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 83, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 30, 0, 25, 0, 26, 0, 0, 0, 36, 0, 0, 136, 0, 0, 0, 0, 0, 0, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, 6, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 131, 0, 0, 0, 0, 128, 113, 0, 118, 0, 147, 0, 145, 0, 0, 0, 0, 152, 0, 154, 0, 0, 0, 133, 0, 0, 0, 0, 0, 160, 0, 0, 0, 0, 0, 167, 0, 0, 89, 0, 0, 114, 0, 119, 0, 0, 96, 0, 102, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 111, 116, 0, 27, 28, 23, 24, 151, 0, 0, 0, 32, 138, 0, 0, 0, 0, 161, 162, 0, 0, 0, 0, 0, 153, 0, 0, 112, 117, 99, 103, 101, 0, 0, 0, 0, 143, 150, 31, 0, 139, 0, 140, 0, 163, 164, 0, 0, 169, 104, 0, 100, 7, 129, 0, 141, 0, 165, 0, 0, 0, 0, 166, 105, 33, 142, }; short yydgoto[] = { 1, 8, 9, 89, 255, 76, 3, 10, 11, 77, 219, 220, 168, 79, 80, 292, 294, 81, 198, 102, 137, 208, 82, 83, 12, 84, 2, 13, 14, }; short yysindex[] = { 0, 0, 0, -193, 0, -54, -229, -212, 0, 0, 0, 0, 383, 0, 0, 22, -232, -31, 40, 0, 0, 0, -37, -36, -132, 562, -7, 107, -2, 2819, -29, -23, -22, -21, 109, 111, -3, -4, 113, 123, 143, 170, 172, 173, 174, 175, 186, 187, 188, 189, -34, 191, 200, 2896, 202, 11, -228, -60, 0, -32, 0, 0, 0, 0, 0, 0, 741, 848, 2819, 2819, 2819, 2819, 912, 0, 2819, 2819, -98, 0, 98, -35, 1707, -197, 0, 0, 0, -64, 0, 0, 0, 0, 0, 3011, 0, 3105, 0, 204, -30, 0, -122, 0, 0, -231, 0, -231, -231, 0, 0, 2819, -31, 2819, -31, 2819, -31, 2819, -31, 2819, 2819, 205, 1027, 0, 0, 1144, 3105, 3105, 3105, 3105, 3105, 206, 1208, 2819, 2819, 2819, 2819, 2819, 0, 0, -237, 0, -237, 2819, 0, -122, 2819, 131, -62, 216, 220, 2819, 2819, 2819, 2819, 2819, 5754, 2819, 221, 0, -122, -197, -197, 0, 0, 229, 32, -197, -197, -31, 224, -31, 0, 0, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 2819, 1319, 1494, 2819, 2819, 2819, 2819, 1605, 1669, 1780, 1955, 2066, 2819, 2819, 2130, 0, 0, 0, -113, 281, 1707, 279, 0, 5647, 283, 2244, 2362, 284, 289, 293, 221, 294, 0, 65, 0, 67, 0, 126, 0, 5528, 32, 2819, 0, 286, -39, 0, 305, 279, 303, 303, 328, 329, 0, 0, 130, 5658, 5647, 5647, 5647, 5647, 333, 303, 5658, 32, 2819, 252, 2436, 2533, 74, -12, 84, -9, 221, 221, 221, 2819, 0, 2725, 297, 0, 2819, 0, 221, 221, 221, 221, 1707, 474, -122, -187, 2819, -257, 2819, -138, 1707, 954, 117, 512, 2819, 238, 2819, 238, 2819, 486, 2819, -162, 2819, -162, 51, 51, 2819, 51, 0, 0, 2819, 348, 2819, 303, 0, 0, 32, 0, 32, 0, 2819, 0, -31, -31, -31, -31, 0, 146, 0, 32, 2819, -31, 0, 352, 279, 303, 3105, 3105, 0, 353, 153, 279, 303, 303, 0, 279, 355, 0, 100, 2819, 0, 32, 0, 32, 276, 0, 277, 0, 3, 0, 2819, 154, 1707, 1707, 2819, 1707, 1707, 1707, 1707, 1707, 1707, 221, 0, 1707, 303, 0, 0, 32, 0, 0, 0, 0, 0, 362, -31, 345, 0, 0, 364, 279, 365, 303, 0, 0, 367, 369, 279, 303, 370, 0, 287, 114, 0, 0, 0, 0, 0, 14, -31, 1989, 372, 0, 0, 0, 1027, 0, 373, 0, 303, 0, 0, 374, 279, 0, 0, 292, 0, 0, 0, 381, 0, 279, 0, 384, 386, -31, 393, 0, 0, 0, 0, }; short yyrindex[] = { 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3189, 3385, 0, 3460, 0, 0, 5031, 0, 0, 0, 0, 3497, 0, 0, 3539, 0, 0, 0, 0, 0, 3576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5098, 0, 0, 0, 3661, 0, 3793, 0, 0, 0, 0, 0, 0, 5195, 5207, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -11, 2796, 5280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3867, 3661, 0, 4782, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4825, 0, 0, 0, 3909, 3952, 0, 0, 0, 0, 5347, 3661, 0, 4158, 0, 4849, 5444, 5501, 0, 0, 3994, 0, 5570, 5596, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 2647, 164, 0, 128, 404, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4200, 4243, 4285, 0, 0, 0, 4084, 0, 0, 0, 30, 64, 79, 81, 3733, 1030, 4916, 3409, 0, 4534, 0, 4576, 3830, 0, 1883, 1422, 0, 5843, 0, 5894, 0, 4957, 0, 4666, 0, 4740, 4375, 4449, 0, 4491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 394, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3878, 4698, 0, 4858, 4989, 5104, 5370, 5668, 5820, 417, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1582, 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; short yygindex[] = { 0, 0, 0, 0, -178, -17, 335, 0, 0, 0, 448, 66, 0, 6067, 342, 168, -148, 430, -69, -6, -96, 151, 0, 0, 0, -87, 0, 0, 0, }; #define YYTABLESIZE 6408 short yytable[] = { 87, 5, 253, 91, 93, 254, 136, 16, 97, 174, 203, 107, 289, 108, 110, 112, 114, 109, 111, 113, 134, 209, 105, 211, 201, 213, 99, 215, 17, 145, 18, 148, 174, 101, 5, 174, 121, 118, 104, 309, 237, 5, 238, 312, 5, 18, 5, 174, 18, 153, 155, 144, 223, 224, 225, 226, 227, 228, 174, 150, 5, 148, 328, 147, 38, 4, 189, 190, 308, 191, 2, 21, 5, 253, 135, 86, 254, 315, 316, 100, 146, 336, 38, 85, 338, 321, 322, 323, 324, 21, 326, 149, 20, 147, 20, 204, 387, 205, 206, 88, 20, 20, 20, 39, 6, 22, 304, 407, 305, 174, 39, 174, 7, 39, 176, 39, 178, 179, 174, 356, 19, 357, 20, 22, 5, 94, 5, 5, 174, 39, 192, 193, 365, 335, 187, 188, 189, 190, 19, 191, 20, 178, 179, 337, 174, 4, 355, 103, 256, 115, 258, 116, 5, 122, 383, 186, 384, 169, 174, 381, 364, 189, 190, 123, 191, 178, 186, 306, 370, 178, 174, 319, 178, 406, 174, 377, 378, 165, 166, 167, 392, 178, 179, 124, 6, 189, 190, 363, 191, 186, 293, 186, 7, 39, 374, 389, 39, 291, 174, 187, 188, 189, 190, 15, 191, 179, 51, 391, 179, 51, 125, 185, 126, 127, 128, 129, 359, 360, 361, 362, 90, 92, 186, 134, 399, 367, 130, 131, 132, 133, 403, 138, 170, 171, 172, 173, 170, 171, 172, 173, 139, 184, 142, 194, 202, 218, 242, 229, 371, 372, 99, 412, 186, 119, 241, 99, 243, 5, 5, 5, 244, 5, 5, 5, 257, 174, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 186, 135, 394, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 408, 100, 120, 117, 5, 5, 100, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 143, 252, 5, 290, 291, 295, 300, 39, 39, 5, 5, 39, 39, 39, 301, 302, 303, 39, 39, 39, 39, 39, 39, 39, 39, 39, 311, 313, 293, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 98, 39, 39, 39, 106, 317, 318, 325, 330, 39, 191, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 341, 353, 39, 186, 314, 368, 373, 141, 380, 39, 39, 420, 320, 385, 386, 393, 395, 396, 398, 327, 400, 156, 401, 404, 405, 409, 411, 413, 68, 415, 176, 177, 178, 179, 416, 72, 195, 418, 75, 419, 74, 186, 186, 186, 186, 197, 421, 200, 183, 37, 187, 188, 189, 190, 73, 191, 35, 179, 186, 186, 18, 186, 186, 186, 186, 37, 186, 186, 186, 216, 48, 35, 78, 410, 366, 197, 197, 197, 197, 197, 197, 0, 0, 232, 233, 234, 235, 236, 0, 0, 0, 0, 0, 239, 0, 369, 0, 39, 0, 0, 0, 375, 376, 0, 39, 0, 379, 39, 0, 39, 157, 158, 159, 160, 0, 0, 163, 164, 20, 0, 0, 69, 0, 39, 186, 0, 0, 0, 263, 264, 265, 266, 268, 270, 271, 272, 273, 274, 276, 278, 280, 282, 284, 285, 286, 288, 0, 0, 0, 0, 397, 176, 177, 178, 179, 0, 0, 402, 0, 0, 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 187, 188, 189, 190, 0, 191, 0, 0, 0, 185, 0, 0, 414, 0, 0, 0, 39, 0, 0, 39, 0, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 263, 0, 184, 0, 0, 0, 72, 0, 0, 75, 185, 74, 0, 343, 0, 344, 0, 0, 0, 0, 0, 346, 0, 347, 0, 348, 0, 349, 0, 350, 0, 0, 0, 351, 0, 0, 0, 0, 0, 354, 184, 0, 0, 19, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 197, 197, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 20, 0, 390, 69, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, 0, 0, 0, 39, 39, 70, 71, 39, 39, 39, 0, 0, 0, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 0, 0, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 39, 39, 39, 0, 0, 0, 0, 0, 39, 0, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 0, 39, 0, 68, 176, 177, 178, 179, 39, 39, 72, 0, 0, 75, 0, 74, 176, 177, 178, 179, 0, 182, 183, 0, 187, 188, 189, 190, 0, 191, 0, 0, 0, 0, 0, 0, 187, 188, 189, 190, 0, 191, 176, 177, 178, 179, 0, 0, 95, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 187, 188, 189, 190, 0, 191, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 20, 0, 0, 69, 56, 0, 96, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 67, 0, 0, 0, 0, 0, 72, 70, 71, 75, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 72, 161, 0, 75, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, 0, 0, 0, 0, 0, 151, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 345, 0, 0, 180, 0, 181, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 69, 53, 54, 55, 0, 0, 0, 0, 0, 56, 185, 152, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 67, 0, 0, 0, 0, 0, 72, 70, 71, 75, 71, 74, 0, 71, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 71, 0, 71, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 71, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 0, 69, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 21, 0, 0, 22, 23, 24, 70, 71, 68, 25, 26, 27, 28, 29, 0, 72, 222, 0, 75, 0, 74, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 0, 175, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, 0, 0, 0, 0, 0, 70, 71, 68, 0, 0, 0, 0, 0, 0, 72, 230, 0, 75, 0, 74, 0, 176, 177, 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 182, 183, 0, 187, 188, 189, 190, 0, 191, 0, 0, 19, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 71, 71, 71, 71, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 0, 0, 56, 69, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, 0, 0, 0, 68, 0, 70, 71, 0, 71, 71, 72, 0, 0, 75, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 267, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 69, 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 72, 67, 21, 72, 0, 22, 23, 24, 70, 71, 0, 25, 26, 27, 28, 29, 0, 72, 72, 0, 72, 0, 72, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 0, 0, 56, 72, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 67, 0, 0, 0, 0, 0, 72, 70, 71, 75, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 69, 0, 0, 74, 0, 56, 74, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 67, 74, 74, 0, 74, 0, 72, 70, 71, 75, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 72, 72, 72, 72, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 72, 0, 0, 75, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 69, 0, 0, 0, 0, 0, 0, 0, 0, 72, 72, 0, 0, 0, 186, 0, 0, 0, 72, 72, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 180, 0, 181, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 69, 0, 0, 0, 0, 56, 185, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 67, 0, 0, 0, 0, 0, 72, 70, 71, 75, 0, 74, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 279, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 74, 74, 74, 0, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 69, 0, 0, 74, 74, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 73, 67, 21, 73, 0, 22, 23, 24, 70, 71, 0, 25, 26, 27, 28, 29, 0, 73, 73, 0, 73, 0, 73, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 175, 0, 0, 0, 0, 56, 73, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 67, 0, 0, 0, 0, 0, 72, 70, 71, 75, 0, 74, 0, 0, 0, 0, 0, 0, 0, 176, 177, 178, 179, 0, 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, 186, 187, 188, 189, 190, 0, 191, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 181, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 69, 0, 185, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 67, 0, 0, 0, 0, 0, 72, 70, 71, 75, 0, 74, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73, 73, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 72, 0, 0, 75, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 69, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 175, 53, 54, 55, 69, 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, 68, 0, 0, 0, 0, 70, 71, 72, 296, 0, 75, 0, 74, 176, 177, 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 183, 0, 187, 188, 189, 190, 0, 191, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 69, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 21, 0, 0, 22, 23, 24, 70, 71, 68, 25, 26, 27, 28, 29, 0, 72, 298, 0, 75, 0, 74, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, 0, 0, 0, 0, 0, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 72, 331, 0, 75, 0, 74, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 69, 0, 67, 0, 68, 0, 0, 0, 0, 70, 71, 72, 333, 0, 75, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 69, 53, 54, 55, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, 0, 186, 0, 0, 0, 70, 71, 178, 0, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 186, 0, 186, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 0, 186, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, 68, 0, 0, 0, 0, 70, 71, 72, 340, 0, 75, 0, 74, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 50, 0, 56, 50, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 69, 68, 67, 50, 50, 0, 0, 0, 72, 70, 71, 75, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 72, 0, 0, 75, 0, 74, 0, 0, 0, 69, 0, 0, 186, 186, 186, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, 186, 0, 186, 186, 186, 186, 0, 186, 186, 186, 0, 0, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 69, 53, 54, 55, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 68, 67, 0, 0, 0, 0, 0, 72, 70, 71, 75, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 50, 50, 50, 0, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 50, 50, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 69, 68, 67, 0, 0, 0, 0, 0, 72, 70, 71, 75, 0, 74, 0, 0, 140, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, 0, 0, 0, 0, 0, 70, 71, 0, 0, 126, 0, 0, 126, 69, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 126, 0, 126, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 196, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 126, 126, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 126, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, 0, 0, 0, 0, 0, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 22, 23, 24, 0, 0, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 121, 0, 67, 121, 0, 0, 121, 0, 0, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 121, 0, 121, 67, 121, 0, 67, 0, 126, 67, 0, 0, 0, 0, 0, 0, 126, 126, 126, 126, 0, 0, 0, 67, 67, 0, 67, 0, 67, 0, 0, 0, 0, 0, 121, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 126, 126, 126, 0, 0, 0, 0, 148, 0, 0, 148, 67, 67, 148, 0, 0, 126, 126, 121, 126, 126, 126, 126, 0, 126, 126, 126, 148, 148, 0, 148, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 149, 0, 0, 149, 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, 148, 149, 149, 0, 149, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, 0, 0, 137, 0, 0, 137, 148, 0, 0, 0, 0, 0, 149, 149, 0, 0, 0, 0, 0, 137, 137, 0, 137, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, 0, 157, 0, 0, 157, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, 137, 157, 157, 0, 157, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 121, 121, 121, 121, 0, 0, 0, 137, 0, 0, 0, 0, 0, 157, 157, 0, 67, 0, 0, 0, 0, 0, 0, 0, 67, 67, 67, 67, 0, 0, 121, 121, 121, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 157, 0, 94, 121, 121, 94, 121, 121, 121, 121, 0, 121, 121, 121, 0, 0, 0, 0, 0, 94, 94, 0, 94, 148, 94, 0, 0, 67, 67, 0, 0, 148, 148, 148, 148, 0, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 94, 0, 0, 0, 0, 149, 148, 148, 148, 148, 0, 0, 0, 149, 149, 149, 149, 0, 0, 49, 0, 0, 49, 148, 148, 0, 148, 148, 148, 148, 94, 148, 148, 148, 0, 0, 49, 49, 0, 0, 0, 0, 0, 149, 149, 149, 149, 137, 0, 0, 0, 0, 0, 0, 0, 137, 137, 137, 137, 0, 149, 149, 0, 149, 149, 149, 149, 0, 149, 149, 149, 49, 0, 0, 0, 0, 98, 0, 0, 98, 0, 0, 98, 0, 157, 137, 137, 137, 137, 0, 0, 0, 157, 157, 157, 157, 98, 98, 0, 98, 0, 98, 137, 137, 0, 137, 137, 137, 137, 0, 137, 137, 137, 0, 0, 0, 52, 0, 0, 52, 0, 0, 157, 157, 157, 157, 0, 0, 0, 0, 0, 98, 98, 52, 52, 0, 0, 0, 0, 157, 157, 0, 157, 157, 157, 157, 0, 157, 157, 157, 186, 0, 0, 186, 0, 0, 186, 0, 0, 0, 0, 0, 98, 0, 54, 0, 0, 54, 52, 94, 186, 186, 0, 186, 0, 186, 0, 94, 94, 94, 94, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 115, 0, 0, 115, 0, 0, 0, 0, 0, 0, 186, 186, 94, 94, 94, 94, 0, 115, 115, 0, 115, 54, 115, 0, 0, 0, 0, 0, 0, 94, 94, 0, 94, 94, 94, 94, 0, 94, 94, 94, 120, 186, 0, 120, 0, 0, 120, 0, 0, 0, 0, 0, 115, 115, 49, 49, 49, 49, 0, 0, 120, 120, 0, 120, 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 115, 0, 91, 0, 0, 91, 0, 0, 0, 0, 0, 0, 120, 120, 0, 0, 0, 0, 0, 91, 91, 0, 91, 98, 91, 0, 0, 49, 49, 0, 0, 98, 98, 98, 98, 0, 0, 0, 0, 0, 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 0, 0, 0, 0, 0, 98, 98, 98, 98, 0, 0, 0, 52, 52, 52, 52, 0, 0, 0, 0, 0, 0, 98, 98, 0, 98, 98, 98, 98, 91, 98, 98, 98, 90, 0, 0, 90, 0, 0, 90, 0, 186, 0, 0, 0, 0, 0, 0, 0, 186, 186, 186, 186, 90, 90, 0, 90, 0, 90, 0, 54, 54, 54, 54, 0, 0, 0, 0, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, 186, 186, 186, 115, 0, 0, 0, 0, 90, 90, 0, 115, 115, 115, 115, 0, 186, 186, 0, 186, 186, 186, 186, 0, 186, 186, 186, 173, 0, 0, 173, 0, 0, 0, 0, 0, 54, 54, 0, 90, 0, 115, 115, 115, 115, 0, 120, 173, 173, 0, 173, 0, 173, 0, 120, 120, 120, 120, 115, 115, 0, 115, 115, 115, 115, 0, 115, 115, 115, 175, 0, 0, 175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 120, 120, 120, 120, 91, 175, 175, 0, 175, 0, 175, 0, 91, 91, 91, 91, 0, 120, 120, 0, 120, 120, 120, 120, 0, 120, 120, 120, 176, 173, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 175, 175, 91, 91, 91, 91, 0, 0, 176, 176, 0, 176, 0, 176, 0, 0, 0, 0, 0, 91, 91, 0, 91, 91, 91, 91, 0, 91, 91, 91, 177, 175, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 176, 0, 0, 0, 0, 0, 177, 177, 0, 177, 90, 177, 0, 0, 0, 0, 0, 0, 90, 90, 90, 90, 0, 0, 0, 0, 0, 0, 0, 0, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 177, 0, 0, 0, 0, 0, 90, 90, 90, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 90, 0, 90, 90, 90, 90, 177, 90, 90, 90, 75, 0, 0, 75, 0, 0, 75, 0, 173, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 173, 75, 75, 0, 75, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 173, 173, 173, 175, 0, 0, 0, 0, 75, 75, 0, 175, 175, 175, 175, 0, 173, 173, 0, 173, 173, 173, 173, 0, 173, 173, 173, 76, 0, 0, 76, 0, 0, 76, 0, 0, 0, 0, 0, 75, 0, 175, 175, 175, 175, 0, 176, 76, 76, 0, 76, 0, 76, 0, 176, 176, 176, 176, 175, 175, 0, 175, 175, 175, 175, 0, 175, 175, 175, 61, 0, 0, 61, 0, 0, 61, 0, 0, 0, 0, 0, 0, 76, 76, 176, 176, 176, 176, 177, 61, 61, 0, 61, 0, 61, 0, 177, 177, 177, 177, 0, 176, 176, 0, 176, 176, 176, 176, 0, 176, 176, 176, 62, 76, 0, 62, 0, 0, 62, 0, 0, 0, 0, 0, 61, 61, 177, 177, 177, 177, 0, 0, 62, 62, 0, 62, 0, 62, 0, 0, 0, 0, 0, 177, 177, 0, 177, 177, 177, 177, 0, 177, 177, 177, 63, 61, 0, 63, 0, 0, 63, 0, 0, 0, 0, 0, 0, 62, 62, 0, 0, 0, 0, 0, 63, 63, 0, 63, 75, 63, 0, 0, 0, 0, 0, 0, 75, 75, 75, 75, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 63, 0, 0, 0, 0, 0, 75, 75, 75, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 75, 0, 75, 75, 75, 75, 63, 0, 75, 75, 64, 0, 0, 64, 0, 0, 64, 0, 76, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76, 76, 64, 64, 0, 64, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 76, 76, 76, 76, 61, 0, 55, 55, 0, 64, 64, 0, 61, 61, 61, 61, 0, 76, 76, 0, 76, 76, 76, 76, 0, 0, 76, 76, 65, 0, 0, 65, 0, 0, 65, 0, 0, 0, 0, 0, 64, 55, 61, 61, 61, 61, 0, 62, 65, 65, 0, 65, 0, 65, 0, 62, 62, 62, 62, 61, 61, 0, 61, 61, 61, 61, 0, 0, 61, 61, 92, 0, 0, 92, 0, 0, 92, 0, 0, 0, 0, 0, 0, 65, 65, 62, 62, 62, 62, 63, 92, 92, 0, 92, 0, 92, 0, 63, 63, 63, 63, 0, 62, 62, 0, 62, 62, 0, 0, 0, 0, 62, 62, 87, 65, 0, 87, 0, 0, 87, 0, 0, 0, 0, 0, 92, 92, 63, 63, 0, 63, 0, 0, 87, 87, 0, 87, 125, 87, 0, 125, 0, 0, 125, 63, 63, 0, 63, 63, 60, 0, 0, 60, 63, 63, 0, 92, 125, 125, 0, 125, 0, 125, 0, 0, 0, 60, 60, 87, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 64, 0, 125, 125, 0, 0, 0, 0, 0, 87, 0, 60, 0, 0, 66, 0, 0, 66, 0, 0, 66, 0, 0, 0, 0, 0, 0, 64, 64, 55, 55, 55, 55, 125, 66, 66, 0, 66, 0, 66, 0, 0, 0, 0, 64, 64, 0, 64, 64, 0, 0, 0, 0, 64, 64, 68, 0, 0, 68, 0, 0, 68, 0, 65, 0, 0, 0, 0, 0, 66, 66, 65, 65, 65, 65, 68, 68, 0, 68, 0, 68, 0, 0, 0, 0, 55, 55, 0, 0, 0, 59, 0, 0, 59, 0, 0, 0, 0, 0, 0, 66, 65, 65, 0, 0, 92, 0, 59, 59, 0, 68, 68, 0, 92, 92, 92, 92, 0, 65, 65, 0, 65, 65, 0, 0, 0, 0, 65, 65, 156, 0, 0, 156, 0, 0, 156, 0, 0, 0, 0, 0, 68, 59, 92, 92, 0, 0, 0, 87, 156, 156, 0, 156, 0, 156, 0, 87, 87, 87, 87, 92, 92, 0, 0, 0, 0, 0, 0, 0, 92, 92, 0, 125, 0, 0, 0, 0, 0, 0, 0, 125, 125, 125, 125, 156, 156, 87, 87, 0, 60, 60, 60, 60, 0, 0, 0, 88, 0, 0, 88, 0, 0, 88, 87, 87, 58, 0, 0, 58, 0, 125, 125, 87, 87, 0, 156, 88, 88, 0, 88, 0, 88, 58, 58, 0, 0, 0, 125, 125, 0, 0, 0, 0, 0, 0, 0, 125, 125, 0, 66, 0, 0, 0, 0, 0, 60, 60, 66, 66, 66, 66, 88, 88, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 68, 0, 88, 0, 0, 0, 0, 0, 68, 68, 68, 68, 0, 172, 66, 66, 172, 0, 0, 172, 0, 0, 0, 66, 66, 123, 0, 0, 123, 0, 0, 123, 0, 172, 172, 0, 172, 0, 172, 0, 59, 59, 59, 59, 0, 123, 123, 0, 123, 0, 123, 0, 0, 0, 0, 68, 68, 0, 0, 0, 0, 0, 0, 0, 68, 68, 0, 0, 172, 172, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 123, 123, 156, 156, 156, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 59, 77, 172, 0, 77, 0, 0, 77, 0, 0, 0, 0, 0, 0, 123, 156, 156, 156, 156, 0, 0, 77, 77, 0, 77, 0, 77, 0, 0, 0, 0, 0, 156, 156, 0, 156, 156, 156, 156, 0, 156, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 88, 88, 88, 88, 77, 77, 58, 58, 58, 58, 0, 0, 0, 0, 0, 0, 174, 0, 0, 174, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 88, 88, 88, 88, 0, 77, 174, 174, 0, 174, 0, 174, 56, 0, 0, 56, 0, 88, 88, 0, 88, 88, 88, 88, 0, 88, 0, 0, 0, 56, 56, 0, 58, 58, 0, 0, 0, 0, 0, 0, 0, 174, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, 0, 0, 0, 56, 0, 0, 172, 172, 172, 172, 123, 174, 0, 0, 0, 0, 0, 0, 123, 123, 123, 123, 80, 0, 0, 80, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 172, 0, 0, 80, 80, 0, 80, 0, 80, 123, 123, 123, 123, 0, 172, 172, 0, 172, 172, 172, 172, 0, 172, 0, 0, 0, 123, 123, 0, 123, 123, 123, 123, 0, 123, 0, 0, 0, 80, 80, 81, 0, 0, 81, 77, 0, 81, 0, 0, 0, 0, 0, 77, 77, 77, 77, 0, 0, 0, 0, 81, 81, 0, 81, 0, 81, 0, 186, 0, 80, 307, 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 77, 77, 77, 77, 0, 0, 0, 0, 180, 0, 181, 0, 0, 81, 81, 0, 0, 77, 77, 0, 77, 77, 77, 77, 0, 77, 0, 78, 0, 174, 78, 0, 0, 78, 0, 0, 0, 174, 174, 174, 174, 185, 0, 0, 81, 0, 0, 78, 78, 0, 78, 0, 78, 79, 0, 0, 79, 0, 0, 79, 56, 56, 56, 56, 0, 0, 0, 174, 174, 174, 174, 184, 0, 79, 79, 0, 79, 0, 79, 0, 0, 0, 78, 78, 174, 174, 0, 174, 174, 174, 174, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, 0, 0, 0, 79, 79, 293, 0, 0, 78, 0, 186, 56, 56, 0, 0, 0, 291, 0, 0, 0, 0, 80, 180, 57, 181, 0, 57, 0, 0, 80, 80, 80, 80, 180, 79, 181, 0, 0, 0, 0, 57, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, 80, 80, 80, 80, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 57, 80, 80, 81, 80, 80, 80, 80, 0, 80, 184, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, 0, 68, 0, 0, 0, 175, 0, 0, 72, 0, 0, 75, 0, 74, 0, 0, 81, 81, 81, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 81, 0, 81, 81, 81, 81, 0, 81, 0, 176, 177, 178, 179, 78, 0, 0, 0, 0, 0, 0, 0, 78, 78, 78, 78, 148, 182, 183, 0, 187, 188, 189, 190, 0, 191, 0, 0, 0, 0, 79, 0, 53, 0, 0, 53, 0, 0, 79, 79, 79, 79, 78, 78, 78, 78, 0, 0, 147, 53, 53, 69, 0, 0, 0, 70, 0, 0, 70, 78, 78, 0, 78, 78, 78, 78, 0, 78, 79, 79, 79, 79, 70, 70, 0, 70, 0, 70, 0, 0, 0, 175, 0, 0, 53, 79, 79, 0, 79, 79, 79, 79, 175, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 70, 69, 57, 57, 57, 57, 0, 0, 0, 0, 0, 176, 177, 178, 179, 69, 69, 0, 69, 0, 69, 0, 176, 177, 178, 179, 0, 0, 182, 183, 70, 187, 188, 189, 190, 0, 191, 0, 0, 182, 183, 0, 187, 188, 189, 190, 0, 191, 0, 0, 69, 69, 0, 0, 0, 0, 0, 0, 57, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 69, 0, 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, 34, 35, 0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 0, 53, 54, 55, 0, 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 70, 70, 70, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 70, 70, 0, 0, 69, 69, 69, 69, 0, 70, 70, 0, 0, 207, 0, 210, 0, 212, 0, 214, 0, 0, 217, 0, 221, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 69, 69, 245, 246, 247, 248, 249, 250, 251, 69, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, 0, 332, 334, 0, 0, 0, 0, 0, 0, 0, 339, 0, 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 388, }; short yycheck[] = { 17, 0, 41, 40, 40, 44, 40, 61, 25, 44, 40, 40, 125, 30, 31, 32, 33, 40, 40, 40, 257, 108, 28, 110, 93, 112, 257, 114, 257, 257, 41, 91, 44, 40, 33, 44, 40, 40, 40, 217, 136, 40, 138, 221, 43, 257, 45, 44, 59, 66, 67, 40, 121, 122, 123, 124, 125, 126, 44, 91, 59, 91, 240, 123, 41, 258, 323, 324, 216, 326, 0, 41, 265, 41, 311, 307, 44, 225, 226, 310, 308, 93, 59, 61, 93, 233, 234, 235, 236, 59, 238, 123, 123, 123, 123, 101, 93, 103, 104, 59, 123, 123, 123, 33, 297, 41, 41, 93, 41, 44, 40, 44, 305, 43, 301, 45, 303, 304, 44, 297, 41, 299, 41, 59, 123, 257, 125, 126, 44, 59, 327, 328, 310, 59, 321, 322, 323, 324, 59, 326, 59, 303, 304, 59, 44, 258, 294, 40, 165, 40, 167, 40, 265, 40, 332, 38, 334, 59, 44, 59, 308, 323, 324, 40, 326, 303, 38, 41, 316, 41, 44, 41, 44, 59, 44, 323, 324, 275, 276, 277, 358, 303, 304, 40, 297, 323, 324, 41, 326, 61, 44, 63, 305, 123, 41, 41, 126, 44, 44, 321, 322, 323, 324, 257, 326, 41, 41, 355, 44, 44, 40, 94, 40, 40, 40, 40, 303, 304, 305, 306, 257, 257, 94, 257, 372, 312, 40, 40, 40, 40, 378, 40, 271, 272, 273, 274, 271, 272, 273, 274, 40, 124, 40, 307, 40, 40, 308, 41, 317, 318, 257, 399, 124, 257, 123, 257, 40, 256, 257, 258, 40, 260, 261, 262, 40, 44, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 38, 311, 365, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 389, 310, 308, 308, 305, 306, 310, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 308, 91, 320, 41, 44, 41, 41, 256, 257, 327, 328, 260, 261, 262, 44, 41, 41, 266, 267, 268, 269, 270, 271, 272, 273, 274, 59, 41, 44, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 25, 298, 299, 300, 29, 44, 44, 41, 123, 306, 326, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 91, 41, 320, 263, 224, 41, 41, 53, 41, 327, 328, 416, 232, 125, 125, 41, 59, 41, 41, 239, 41, 67, 41, 41, 125, 41, 41, 41, 33, 125, 301, 302, 303, 304, 41, 40, 89, 41, 43, 41, 45, 301, 302, 303, 304, 91, 41, 93, 319, 41, 321, 322, 323, 324, 59, 326, 59, 41, 318, 319, 59, 321, 322, 323, 324, 59, 326, 327, 328, 115, 41, 41, 12, 395, 311, 121, 122, 123, 124, 125, 126, -1, -1, 129, 130, 131, 132, 133, -1, -1, -1, -1, -1, 139, -1, 315, -1, 33, -1, -1, -1, 321, 322, -1, 40, -1, 326, 43, -1, 45, 68, 69, 70, 71, -1, -1, 74, 75, 123, -1, -1, 126, -1, 59, 38, -1, -1, -1, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, -1, -1, -1, -1, 370, 301, 302, 303, 304, -1, -1, 377, -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, -1, -1, -1, 321, 322, 323, 324, -1, 326, -1, -1, -1, 94, -1, -1, 403, -1, -1, -1, 123, -1, -1, 126, -1, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 254, -1, 124, -1, -1, -1, 40, -1, -1, 43, 94, 45, -1, 267, -1, 269, -1, -1, -1, -1, -1, 275, -1, 277, -1, 279, -1, 281, -1, 283, -1, -1, -1, 287, -1, -1, -1, -1, -1, 293, 124, -1, -1, 256, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, 317, 318, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, 123, -1, 345, 126, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, -1, -1, -1, -1, 256, 257, 327, 328, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, -1, -1, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, -1, 33, 301, 302, 303, 304, 327, 328, 40, -1, -1, 43, -1, 45, 301, 302, 303, 304, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, -1, -1, -1, -1, -1, 321, 322, 323, 324, -1, 326, 301, 302, 303, 304, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, 321, 322, 323, 324, -1, 326, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, 123, -1, -1, 126, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 33, 320, -1, -1, -1, -1, -1, 40, 327, 328, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 123, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, 58, -1, -1, 61, -1, 63, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 126, 298, 299, 300, -1, -1, -1, -1, -1, 306, 94, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 33, 320, -1, -1, -1, -1, -1, 40, 327, 328, 43, 41, 45, -1, 44, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, 93, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, -1, 126, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, 257, -1, -1, 260, 261, 262, 327, 328, 33, 266, 267, 268, 269, 270, -1, 40, 41, -1, 43, -1, 45, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, -1, 263, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, -1, -1, -1, -1, -1, -1, 327, 328, 33, -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, -1, 45, -1, 301, 302, 303, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, -1, 256, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, 271, 272, 273, 274, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, -1, -1, 306, 126, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, -1, -1, -1, -1, 33, -1, 327, 328, -1, 327, 328, 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 126, -1, -1, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 41, 320, 257, 44, -1, 260, 261, 262, 327, 328, -1, 266, 267, 268, 269, 270, -1, 58, 59, -1, 61, -1, 63, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, -1, -1, 306, 93, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 33, 320, -1, -1, -1, -1, -1, 40, 327, 328, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 126, -1, -1, 41, -1, 306, 44, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 33, 320, 58, 59, -1, 61, -1, 40, 327, 328, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, 126, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, -1, -1, -1, 38, -1, -1, -1, 327, 328, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, 61, -1, 63, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 126, -1, -1, -1, -1, 306, 94, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 33, 320, -1, -1, -1, -1, -1, 40, 327, 328, 43, -1, 45, -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 126, -1, -1, 327, 328, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 41, 320, 257, 44, -1, 260, 261, 262, 327, 328, -1, 266, 267, 268, 269, 270, -1, 58, 59, -1, 61, -1, 63, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 263, -1, -1, -1, -1, 306, 93, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 33, 320, -1, -1, -1, -1, -1, 40, 327, 328, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, 301, 302, 303, 304, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, 38, 321, 322, 323, 324, -1, 326, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, 63, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, 126, -1, 94, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 33, 320, -1, -1, -1, -1, -1, 40, 327, 328, 43, -1, 45, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, 126, -1, -1, -1, -1, -1, -1, -1, -1, 318, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 263, 298, 299, 300, 126, -1, -1, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, -1, 33, -1, -1, -1, -1, 327, 328, 40, 41, -1, 43, -1, 45, 301, 302, 303, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, 126, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, 257, -1, -1, 260, 261, 262, 327, 328, 33, 266, 267, 268, 269, 270, -1, 40, 41, -1, 43, -1, 45, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, -1, -1, -1, -1, -1, -1, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, 41, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 126, -1, 320, -1, 33, -1, -1, -1, -1, 327, 328, 40, 41, -1, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 126, 298, 299, 300, -1, -1, -1, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, -1, -1, 38, -1, -1, -1, 327, 328, 44, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, 61, -1, 63, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, -1, 94, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, -1, 33, -1, -1, -1, -1, 327, 328, 40, 41, -1, 43, -1, 45, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, 41, -1, 306, 44, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 126, 33, 320, 58, 59, -1, -1, -1, 40, 327, 328, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, -1, -1, -1, -1, -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, -1, 126, -1, -1, 301, 302, 303, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, -1, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 126, 298, 299, 300, -1, -1, -1, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 33, 320, -1, -1, -1, -1, -1, 40, 327, 328, 43, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, 327, 328, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 126, 33, 320, -1, -1, -1, -1, -1, 40, 327, 328, 43, -1, 45, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, -1, -1, -1, -1, -1, -1, 327, 328, -1, -1, 38, -1, -1, 41, 126, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, 93, 94, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, 124, -1, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, -1, -1, -1, -1, -1, -1, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, -1, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 38, -1, 320, 41, -1, -1, 44, -1, -1, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, 59, -1, 61, 38, 63, -1, 41, -1, 263, 44, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, 302, 303, 304, -1, -1, -1, -1, 38, -1, -1, 41, 93, 94, 44, -1, -1, 318, 319, 124, 321, 322, 323, 324, -1, 326, 327, 328, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, 41, -1, -1, 44, 124, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, 41, -1, -1, 44, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, 124, -1, -1, -1, -1, -1, 93, 94, -1, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, 301, 302, 303, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, 124, -1, 41, 318, 319, 44, 321, 322, 323, 324, -1, 326, 327, 328, -1, -1, -1, -1, -1, 58, 59, -1, 61, 263, 63, -1, -1, 318, 319, -1, -1, 271, 272, 273, 274, -1, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, 263, 301, 302, 303, 304, -1, -1, -1, 271, 272, 273, 274, -1, -1, 41, -1, -1, 44, 318, 319, -1, 321, 322, 323, 324, 124, 326, 327, 328, -1, -1, 58, 59, -1, -1, -1, -1, -1, 301, 302, 303, 304, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, 93, -1, -1, -1, -1, 38, -1, -1, 41, -1, -1, 44, -1, 263, 301, 302, 303, 304, -1, -1, -1, 271, 272, 273, 274, 58, 59, -1, 61, -1, 63, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, -1, -1, -1, 41, -1, -1, 44, -1, -1, 301, 302, 303, 304, -1, -1, -1, -1, -1, 93, 94, 58, 59, -1, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, 124, -1, 41, -1, -1, 44, 93, 263, 58, 59, -1, 61, -1, 63, -1, 271, 272, 273, 274, 58, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, 93, 94, 301, 302, 303, 304, -1, 58, 59, -1, 61, 93, 63, -1, -1, -1, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, 38, 124, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, 93, 94, 271, 272, 273, 274, -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, 124, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, 58, 59, -1, 61, 263, 63, -1, -1, 327, 328, -1, -1, 271, 272, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, 301, 302, 303, 304, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, 124, 326, 327, 328, 38, -1, -1, 41, -1, -1, 44, -1, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, 58, 59, -1, 61, -1, 63, -1, 271, 272, 273, 274, -1, -1, -1, -1, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, 302, 303, 304, 263, -1, -1, -1, -1, 93, 94, -1, 271, 272, 273, 274, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, 38, -1, -1, 41, -1, -1, -1, -1, -1, 327, 328, -1, 124, -1, 301, 302, 303, 304, -1, 263, 58, 59, -1, 61, -1, 63, -1, 271, 272, 273, 274, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, 38, -1, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 301, 302, 303, 304, 263, 58, 59, -1, 61, -1, 63, -1, 271, 272, 273, 274, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, 38, 124, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, 301, 302, 303, 304, -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, 38, 124, -1, 41, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, 58, 59, -1, 61, 263, 63, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, 301, 302, 303, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, 124, 326, 327, 328, 38, -1, -1, 41, -1, -1, 44, -1, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, 302, 303, 304, 263, -1, -1, -1, -1, 93, 94, -1, 271, 272, 273, 274, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, 124, -1, 301, 302, 303, 304, -1, 263, 58, 59, -1, 61, -1, 63, -1, 271, 272, 273, 274, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, 93, 94, 301, 302, 303, 304, 263, 58, 59, -1, 61, -1, 63, -1, 271, 272, 273, 274, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, 38, 124, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, 93, 94, 301, 302, 303, 304, -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, 327, 328, 38, 124, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, 58, 59, -1, 61, 263, 63, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, 301, 302, 303, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, 124, -1, 327, 328, 38, -1, -1, 41, -1, -1, 44, -1, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, 301, 302, 303, 304, 263, -1, 58, 59, -1, 93, 94, -1, 271, 272, 273, 274, -1, 318, 319, -1, 321, 322, 323, 324, -1, -1, 327, 328, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, 124, 93, 301, 302, 303, 304, -1, 263, 58, 59, -1, 61, -1, 63, -1, 271, 272, 273, 274, 318, 319, -1, 321, 322, 323, 324, -1, -1, 327, 328, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, 93, 94, 301, 302, 303, 304, 263, 58, 59, -1, 61, -1, 63, -1, 271, 272, 273, 274, -1, 318, 319, -1, 321, 322, -1, -1, -1, -1, 327, 328, 38, 124, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, 93, 94, 301, 302, -1, 304, -1, -1, 58, 59, -1, 61, 38, 63, -1, 41, -1, -1, 44, 318, 319, -1, 321, 322, 41, -1, -1, 44, 327, 328, -1, 124, 58, 59, -1, 61, -1, 63, -1, -1, -1, 58, 59, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, 93, 94, -1, -1, -1, -1, -1, 124, -1, 93, -1, -1, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, 301, 302, 271, 272, 273, 274, 124, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, 318, 319, -1, 321, 322, -1, -1, -1, -1, 327, 328, 38, -1, -1, 41, -1, -1, 44, -1, 263, -1, -1, -1, -1, -1, 93, 94, 271, 272, 273, 274, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, 327, 328, -1, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, 124, 301, 302, -1, -1, 263, -1, 58, 59, -1, 93, 94, -1, 271, 272, 273, 274, -1, 318, 319, -1, 321, 322, -1, -1, -1, -1, 327, 328, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, 124, 93, 301, 302, -1, -1, -1, 263, 58, 59, -1, 61, -1, 63, -1, 271, 272, 273, 274, 318, 319, -1, -1, -1, -1, -1, -1, -1, 327, 328, -1, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, 93, 94, 301, 302, -1, 271, 272, 273, 274, -1, -1, -1, 38, -1, -1, 41, -1, -1, 44, 318, 319, 41, -1, -1, 44, -1, 301, 302, 327, 328, -1, 124, 58, 59, -1, 61, -1, 63, 58, 59, -1, -1, -1, 318, 319, -1, -1, -1, -1, -1, -1, -1, 327, 328, -1, 263, -1, -1, -1, -1, -1, 327, 328, 271, 272, 273, 274, 93, 94, -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 302, -1, 263, -1, 124, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, 38, 318, 319, 41, -1, -1, 44, -1, -1, -1, 327, 328, 38, -1, -1, 41, -1, -1, 44, -1, 58, 59, -1, 61, -1, 63, -1, 271, 272, 273, 274, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, 318, 319, -1, -1, -1, -1, -1, -1, -1, 327, 328, -1, -1, 93, 94, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, 93, 94, 271, 272, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 327, 328, 38, 124, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, 124, 301, 302, 303, 304, -1, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, 93, 94, 271, 272, 273, 274, -1, -1, -1, -1, -1, -1, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, 301, 302, 303, 304, -1, 124, 58, 59, -1, 61, -1, 63, 41, -1, -1, 44, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, -1, -1, 58, 59, -1, 327, 328, -1, -1, -1, -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, 93, -1, -1, 271, 272, 273, 274, 263, 124, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, 38, -1, -1, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, 301, 302, 303, 304, -1, -1, 58, 59, -1, 61, -1, 63, 301, 302, 303, 304, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, -1, -1, 93, 94, 38, -1, -1, 41, 263, -1, 44, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, -1, 58, 59, -1, 61, -1, 63, -1, 38, -1, 124, 41, -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, 301, 302, 303, 304, -1, -1, -1, -1, 61, -1, 63, -1, -1, 93, 94, -1, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, 38, -1, 263, 41, -1, -1, 44, -1, -1, -1, 271, 272, 273, 274, 94, -1, -1, 124, -1, -1, 58, 59, -1, 61, -1, 63, 38, -1, -1, 41, -1, -1, 44, 271, 272, 273, 274, -1, -1, -1, 301, 302, 303, 304, 124, -1, 58, 59, -1, 61, -1, 63, -1, -1, -1, 93, 94, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 38, -1, -1, -1, 93, 94, 44, -1, -1, 124, -1, 38, 327, 328, -1, -1, -1, 44, -1, -1, -1, -1, 263, 61, 41, 63, -1, 44, -1, -1, 271, 272, 273, 274, 61, 124, 63, -1, -1, -1, -1, 58, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, -1, -1, -1, 301, 302, 303, 304, -1, -1, -1, 94, -1, -1, -1, -1, -1, -1, -1, -1, 93, 318, 319, 263, 321, 322, 323, 324, -1, 326, 124, 271, 272, 273, 274, -1, -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, 33, -1, -1, -1, 263, -1, -1, 40, -1, -1, 43, -1, 45, -1, -1, 301, 302, 303, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, 301, 302, 303, 304, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, 91, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, -1, -1, -1, 263, -1, 41, -1, -1, 44, -1, -1, 271, 272, 273, 274, 301, 302, 303, 304, -1, -1, 123, 58, 59, 126, -1, -1, -1, 41, -1, -1, 44, 318, 319, -1, 321, 322, 323, 324, -1, 326, 301, 302, 303, 304, 58, 59, -1, 61, -1, 63, -1, -1, -1, 263, -1, -1, 93, 318, 319, -1, 321, 322, 323, 324, 263, 326, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, 93, 94, 44, 271, 272, 273, 274, -1, -1, -1, -1, -1, 301, 302, 303, 304, 58, 59, -1, 61, -1, 63, -1, 301, 302, 303, 304, -1, -1, 318, 319, 124, 321, 322, 323, 324, -1, 326, -1, -1, 318, 319, -1, 321, 322, 323, 324, -1, 326, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, -1, -1, 260, 261, 262, -1, 124, -1, 266, 267, 268, 269, 270, -1, -1, -1, -1, -1, -1, -1, 278, 279, -1, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, -1, 298, 299, 300, -1, -1, -1, -1, -1, 306, -1, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, -1, 320, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, -1, -1, -1, -1, 271, 272, 273, 274, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, -1, -1, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, 263, -1, -1, -1, 318, 319, -1, -1, 271, 272, 273, 274, -1, 327, 328, -1, -1, 107, -1, 109, -1, 111, -1, 113, -1, -1, 116, -1, 118, -1, -1, -1, -1, -1, -1, -1, -1, -1, 128, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 142, -1, -1, 318, 319, 147, 148, 149, 150, 151, 152, 153, 327, 328, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 170, 171, 172, 173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 202, 203, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 241, -1, 243, 244, -1, -1, -1, -1, -1, -1, -1, 252, -1, -1, -1, -1, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 291, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 330, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 341, }; #define YYFINAL 1 #ifndef YYDEBUG #define YYDEBUG 0 #endif #define YYMAXTOKEN 328 #if YYDEBUG char *yyname[] = { "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, "'!'",0,0,0,0,"'&'",0,"'('","')'",0,"'+'","','","'-'",0,0,0,0,0,0,0,0,0,0,0,0, "':'","';'",0,"'='",0,"'?'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,"'['",0,"']'","'^'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, "'{'","'|'","'}'","'~'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"WORD","LABEL","APPEND","OPEN", "SSELECT","LOOPEX","DOTDOT","USING","FORMAT","DO","SHIFT","PUSH","POP", "LVALFUN","WHILE","UNTIL","IF","UNLESS","ELSE","ELSIF","CONTINUE","SPLIT", "FLIST","FOR","FILOP","FILOP2","FILOP3","FILOP4","FILOP22","FILOP25","FUNC0", "FUNC1","FUNC2","FUNC2x","FUNC3","FUNC4","FUNC5","HSHFUN","HSHFUN3","FLIST2", "SUB","FILETEST","LOCAL","DELETE","RELOP","EQOP","MULOP","ADDOP","PACKAGE", "AMPER","FORMLIST","REG","ARYLEN","ARY","HSH","STAR","SUBST","PATTERN", "RSTRING","TRANS","LISTOP","OROR","ANDAND","UNIOP","LS","RS","MATCH","NMATCH", "UMINUS","POW","INC","DEC", }; char *yyrule[] = { "$accept : prog", "$$1 :", "prog : $$1 lineseq", "compblock : block CONTINUE block", "compblock : block else", "else :", "else : ELSE block", "else : ELSIF '(' expr ')' compblock", "block : '{' remember lineseq '}'", "remember :", "lineseq :", "lineseq : lineseq line", "line : decl", "line : label cond", "line : loop", "line : label ';'", "line : label sideff ';'", "sideff : error", "sideff : expr", "sideff : expr IF expr", "sideff : expr UNLESS expr", "sideff : expr WHILE expr", "sideff : expr UNTIL expr", "cond : IF '(' expr ')' compblock", "cond : UNLESS '(' expr ')' compblock", "cond : IF block compblock", "cond : UNLESS block compblock", "loop : label WHILE '(' texpr ')' compblock", "loop : label UNTIL '(' expr ')' compblock", "loop : label WHILE block compblock", "loop : label UNTIL block compblock", "loop : label FOR REG '(' expr crp compblock", "loop : label FOR '(' expr crp compblock", "loop : label FOR '(' nexpr ';' texpr ';' nexpr ')' block", "loop : label compblock", "nexpr :", "nexpr : sideff", "texpr :", "texpr : expr", "label :", "label : LABEL", "decl : format", "decl : subrout", "decl : package", "format : FORMAT WORD '=' FORMLIST", "format : FORMAT '=' FORMLIST", "subrout : SUB WORD block", "package : PACKAGE WORD ';'", "cexpr : ',' expr", "expr : expr ',' sexpr", "expr : sexpr", "csexpr : ',' sexpr", "sexpr : sexpr '=' sexpr", "sexpr : sexpr POW '=' sexpr", "sexpr : sexpr MULOP '=' sexpr", "sexpr : sexpr ADDOP '=' sexpr", "sexpr : sexpr LS '=' sexpr", "sexpr : sexpr RS '=' sexpr", "sexpr : sexpr '&' '=' sexpr", "sexpr : sexpr '^' '=' sexpr", "sexpr : sexpr '|' '=' sexpr", "sexpr : sexpr POW sexpr", "sexpr : sexpr MULOP sexpr", "sexpr : sexpr ADDOP sexpr", "sexpr : sexpr LS sexpr", "sexpr : sexpr RS sexpr", "sexpr : sexpr RELOP sexpr", "sexpr : sexpr EQOP sexpr", "sexpr : sexpr '&' sexpr", "sexpr : sexpr '^' sexpr", "sexpr : sexpr '|' sexpr", "sexpr : sexpr DOTDOT sexpr", "sexpr : sexpr ANDAND sexpr", "sexpr : sexpr OROR sexpr", "sexpr : sexpr '?' sexpr ':' sexpr", "sexpr : sexpr MATCH sexpr", "sexpr : sexpr NMATCH sexpr", "sexpr : term", "term : '-' term", "term : '+' term", "term : '!' term", "term : '~' term", "term : term INC", "term : term DEC", "term : INC term", "term : DEC term", "term : FILETEST WORD", "term : FILETEST sexpr", "term : FILETEST", "term : LOCAL '(' expr crp", "term : '(' expr crp", "term : '(' ')'", "term : DO sexpr", "term : DO block", "term : REG", "term : STAR", "term : REG '[' expr ']'", "term : HSH", "term : ARY", "term : REG '{' expr ';' '}'", "term : '(' expr crp '[' expr ']'", "term : '(' ')' '[' expr ']'", "term : ARY '[' expr ']'", "term : ARY '{' expr ';' '}'", "term : DELETE REG '{' expr ';' '}'", "term : DELETE '(' REG '{' expr ';' '}' ')'", "term : ARYLEN", "term : RSTRING", "term : PATTERN", "term : SUBST", "term : TRANS", "term : DO WORD '(' expr crp", "term : AMPER WORD '(' expr crp", "term : DO WORD '(' ')'", "term : AMPER WORD '(' ')'", "term : AMPER WORD", "term : DO REG '(' expr crp", "term : AMPER REG '(' expr crp", "term : DO REG '(' ')'", "term : AMPER REG '(' ')'", "term : AMPER REG", "term : LOOPEX", "term : LOOPEX WORD", "term : UNIOP", "term : UNIOP block", "term : UNIOP sexpr", "term : SSELECT", "term : SSELECT WORD", "term : SSELECT '(' handle ')'", "term : SSELECT '(' sexpr csexpr csexpr csexpr ')'", "term : OPEN WORD", "term : OPEN '(' WORD ')'", "term : OPEN '(' handle cexpr ')'", "term : FILOP '(' handle ')'", "term : FILOP WORD", "term : FILOP REG", "term : FILOP '(' ')'", "term : FILOP", "term : FILOP2 '(' handle cexpr ')'", "term : FILOP3 '(' handle csexpr cexpr ')'", "term : FILOP22 '(' handle ',' handle ')'", "term : FILOP4 '(' handle csexpr csexpr cexpr ')'", "term : FILOP25 '(' handle ',' handle csexpr csexpr cexpr ')'", "term : PUSH '(' aryword ',' expr crp", "term : POP aryword", "term : POP '(' aryword ')'", "term : SHIFT aryword", "term : SHIFT '(' aryword ')'", "term : SHIFT", "term : SPLIT", "term : SPLIT '(' sexpr csexpr csexpr ')'", "term : SPLIT '(' sexpr csexpr ')'", "term : SPLIT '(' sexpr ')'", "term : FLIST2 '(' sexpr cexpr ')'", "term : FLIST '(' expr crp", "term : LVALFUN sexpr", "term : LVALFUN", "term : FUNC0", "term : FUNC0 '(' ')'", "term : FUNC1 '(' ')'", "term : FUNC1 '(' expr ')'", "term : FUNC2 '(' sexpr cexpr ')'", "term : FUNC2x '(' sexpr csexpr ')'", "term : FUNC2x '(' sexpr csexpr cexpr ')'", "term : FUNC3 '(' sexpr csexpr cexpr ')'", "term : FUNC4 '(' sexpr csexpr csexpr cexpr ')'", "term : FUNC5 '(' sexpr csexpr csexpr csexpr cexpr ')'", "term : HSHFUN '(' hshword ')'", "term : HSHFUN hshword", "term : HSHFUN3 '(' hshword csexpr cexpr ')'", "term : bareword", "term : listop", "listop : LISTOP", "listop : LISTOP expr", "listop : LISTOP WORD", "listop : LISTOP WORD expr", "listop : LISTOP REG expr", "listop : LISTOP block expr", "handle : WORD", "handle : sexpr", "aryword : WORD", "aryword : ARY", "hshword : WORD", "hshword : HSH", "crp : ',' ')'", "crp : ')'", "bareword : WORD", }; #endif #ifdef YYSTACKSIZE #undef YYMAXDEPTH #define YYMAXDEPTH YYSTACKSIZE #else #ifdef YYMAXDEPTH #define YYSTACKSIZE YYMAXDEPTH #else #define YYSTACKSIZE 500 #define YYMAXDEPTH 500 #endif #endif int yydebug; int yynerrs; int yyerrflag; int yychar; short *yyssp; YYSTYPE *yyvsp; YYSTYPE yyval; YYSTYPE yylval; short yyss[YYSTACKSIZE]; YYSTYPE yyvs[YYSTACKSIZE]; #define yystacksize YYSTACKSIZE #line 876 "perly.y" /* PROGRAM */ #line 1820 "y.tab.c" #define YYABORT goto yyabort #define YYREJECT goto yyabort #define YYACCEPT goto yyaccept #define YYERROR goto yyerrlab int yyparse() { register int yym, yyn, yystate; #if YYDEBUG register char *yys; extern char *getenv(); if (yys = getenv("YYDEBUG")) { yyn = *yys; if (yyn >= '0' && yyn <= '9') yydebug = yyn - '0'; } #endif yynerrs = 0; yyerrflag = 0; yychar = (-1); yyssp = yyss; yyvsp = yyvs; *yyssp = yystate = 0; yyloop: if (yyn = yydefred[yystate]) goto yyreduce; if (yychar < 0) { if ((yychar = yylex()) < 0) yychar = 0; #if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("%sdebug: state %d, reading %d (%s)\n", YYPREFIX, yystate, yychar, yys); } #endif } if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar) { #if YYDEBUG if (yydebug) printf("%sdebug: state %d, shifting to state %d\n", YYPREFIX, yystate, yytable[yyn]); #endif if (yyssp >= yyss + yystacksize - 1) { goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; *++yyvsp = yylval; yychar = (-1); if (yyerrflag > 0) --yyerrflag; goto yyloop; } if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar) { yyn = yytable[yyn]; goto yyreduce; } if (yyerrflag) goto yyinrecovery; #ifdef lint goto yynewerror; #endif yynewerror: yyerror("syntax error"); #ifdef lint goto yyerrlab; #endif yyerrlab: ++yynerrs; yyinrecovery: if (yyerrflag < 3) { yyerrflag = 3; for (;;) { if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) { #if YYDEBUG if (yydebug) printf("%sdebug: state %d, error recovery shifting\ to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); #endif if (yyssp >= yyss + yystacksize - 1) { goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; *++yyvsp = yylval; goto yyloop; } else { #if YYDEBUG if (yydebug) printf("%sdebug: error recovery discarding state %d\n", YYPREFIX, *yyssp); #endif if (yyssp <= yyss) goto yyabort; --yyssp; --yyvsp; } } } else { if (yychar == 0) goto yyabort; #if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("%sdebug: state %d, error recovery discards token %d (%s)\n", YYPREFIX, yystate, yychar, yys); } #endif yychar = (-1); goto yyloop; } yyreduce: #if YYDEBUG if (yydebug) printf("%sdebug: state %d, reducing by rule %d (%s)\n", YYPREFIX, yystate, yyn, yyrule[yyn]); #endif yym = yylen[yyn]; yyval = yyvsp[1-yym]; switch (yyn) { case 1: #line 115 "perly.y" { #if defined(YYDEBUG) && defined(DEBUGGING) yydebug = (debug & 1); #endif expectterm = 2; } break; case 2: #line 122 "perly.y" { if (in_eval) eval_root = block_head(yyvsp[0].cmdval); else main_root = block_head(yyvsp[0].cmdval); } break; case 3: #line 129 "perly.y" { yyval.compval.comp_true = yyvsp[-2].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; } break; case 4: #line 131 "perly.y" { yyval.compval.comp_true = yyvsp[-1].cmdval; yyval.compval.comp_alt = yyvsp[0].cmdval; } break; case 5: #line 135 "perly.y" { yyval.cmdval = Nullcmd; } break; case 6: #line 137 "perly.y" { yyval.cmdval = yyvsp[0].cmdval; } break; case 7: #line 139 "perly.y" { cmdline = yyvsp[-4].ival; yyval.cmdval = make_ccmd(C_ELSIF,1,yyvsp[-2].arg,yyvsp[0].compval); } break; case 8: #line 144 "perly.y" { yyval.cmdval = block_head(yyvsp[-1].cmdval); if (cmdline > (line_t)yyvsp[-3].ival) cmdline = yyvsp[-3].ival; if (savestack->ary_fill > yyvsp[-2].ival) restorelist(yyvsp[-2].ival); expectterm = 2; } break; case 9: #line 153 "perly.y" { yyval.ival = savestack->ary_fill; } break; case 10: #line 157 "perly.y" { yyval.cmdval = Nullcmd; } break; case 11: #line 159 "perly.y" { yyval.cmdval = append_line(yyvsp[-1].cmdval,yyvsp[0].cmdval); } break; case 12: #line 163 "perly.y" { yyval.cmdval = Nullcmd; } break; case 13: #line 165 "perly.y" { yyval.cmdval = add_label(yyvsp[-1].cval,yyvsp[0].cmdval); } break; case 15: #line 168 "perly.y" { if (yyvsp[-1].cval != Nullch) { yyval.cmdval = add_label(yyvsp[-1].cval, make_acmd(C_EXPR, Nullstab, Nullarg, Nullarg) ); } else { yyval.cmdval = Nullcmd; cmdline = NOLINE; } expectterm = 2; } break; case 16: #line 178 "perly.y" { yyval.cmdval = add_label(yyvsp[-2].cval,yyvsp[-1].cmdval); expectterm = 2; } break; case 17: #line 183 "perly.y" { yyval.cmdval = Nullcmd; } break; case 18: #line 185 "perly.y" { yyval.cmdval = make_acmd(C_EXPR, Nullstab, yyvsp[0].arg, Nullarg); } break; case 19: #line 187 "perly.y" { yyval.cmdval = addcond( make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); } break; case 20: #line 190 "perly.y" { yyval.cmdval = addcond(invert( make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); } break; case 21: #line 193 "perly.y" { yyval.cmdval = addloop( make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg), yyvsp[0].arg); } break; case 22: #line 196 "perly.y" { yyval.cmdval = addloop(invert( make_acmd(C_EXPR, Nullstab, Nullarg, yyvsp[-2].arg)), yyvsp[0].arg); } break; case 23: #line 201 "perly.y" { cmdline = yyvsp[-4].ival; yyval.cmdval = make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval); } break; case 24: #line 204 "perly.y" { cmdline = yyvsp[-4].ival; yyval.cmdval = invert(make_icmd(C_IF,yyvsp[-2].arg,yyvsp[0].compval)); } break; case 25: #line 207 "perly.y" { cmdline = yyvsp[-2].ival; yyval.cmdval = make_icmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval); } break; case 26: #line 210 "perly.y" { cmdline = yyvsp[-2].ival; yyval.cmdval = invert(make_icmd(C_IF,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)); } break; case 27: #line 215 "perly.y" { cmdline = yyvsp[-4].ival; yyval.cmdval = wopt(add_label(yyvsp[-5].cval, make_ccmd(C_WHILE,1,yyvsp[-2].arg,yyvsp[0].compval) )); } break; case 28: #line 219 "perly.y" { cmdline = yyvsp[-4].ival; yyval.cmdval = wopt(add_label(yyvsp[-5].cval, invert(make_ccmd(C_WHILE,1,yyvsp[-2].arg,yyvsp[0].compval)) )); } break; case 29: #line 223 "perly.y" { cmdline = yyvsp[-2].ival; yyval.cmdval = wopt(add_label(yyvsp[-3].cval, make_ccmd(C_WHILE, 1, cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval) )); } break; case 30: #line 227 "perly.y" { cmdline = yyvsp[-2].ival; yyval.cmdval = wopt(add_label(yyvsp[-3].cval, invert(make_ccmd(C_WHILE,1,cmd_to_arg(yyvsp[-1].cmdval),yyvsp[0].compval)) )); } break; case 31: #line 231 "perly.y" { cmdline = yyvsp[-5].ival; /* * The following gobbledygook catches EXPRs that * aren't explicit array refs and translates * foreach VAR (EXPR) { * into * @ary = EXPR; * foreach VAR (@ary) { * where @ary is a hidden array made by genstab(). * (Note that @ary may become a local array if * it is determined that it might be called * recursively. See cmd_tosave().) */ if (yyvsp[-2].arg->arg_type != O_ARRAY) { scrstab = aadd(genstab()); yyval.cmdval = append_line( make_acmd(C_EXPR, Nullstab, l(make_op(O_ASSIGN,2, listish(make_op(O_ARRAY, 1, stab2arg(A_STAB,scrstab), Nullarg,Nullarg )), listish(make_list(yyvsp[-2].arg)), Nullarg)), Nullarg), wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval, make_ccmd(C_WHILE, 0, make_op(O_ARRAY, 1, stab2arg(A_STAB,scrstab), Nullarg,Nullarg ), yyvsp[0].compval))))); yyval.cmdval->c_line = yyvsp[-5].ival; yyval.cmdval->c_head->c_line = yyvsp[-5].ival; } else { yyval.cmdval = wopt(over(yyvsp[-4].stabval,add_label(yyvsp[-6].cval, make_ccmd(C_WHILE,1,yyvsp[-2].arg,yyvsp[0].compval) ))); } } break; case 32: #line 270 "perly.y" { cmdline = yyvsp[-4].ival; if (yyvsp[-2].arg->arg_type != O_ARRAY) { scrstab = aadd(genstab()); yyval.cmdval = append_line( make_acmd(C_EXPR, Nullstab, l(make_op(O_ASSIGN,2, listish(make_op(O_ARRAY, 1, stab2arg(A_STAB,scrstab), Nullarg,Nullarg )), listish(make_list(yyvsp[-2].arg)), Nullarg)), Nullarg), wopt(over(defstab,add_label(yyvsp[-5].cval, make_ccmd(C_WHILE, 0, make_op(O_ARRAY, 1, stab2arg(A_STAB,scrstab), Nullarg,Nullarg ), yyvsp[0].compval))))); yyval.cmdval->c_line = yyvsp[-4].ival; yyval.cmdval->c_head->c_line = yyvsp[-4].ival; } else { /* lisp, anyone? */ yyval.cmdval = wopt(over(defstab,add_label(yyvsp[-5].cval, make_ccmd(C_WHILE,1,yyvsp[-2].arg,yyvsp[0].compval) ))); } } break; case 33: #line 298 "perly.y" { yyval.compval.comp_true = yyvsp[0].cmdval; yyval.compval.comp_alt = yyvsp[-2].cmdval; cmdline = yyvsp[-8].ival; yyval.cmdval = append_line(yyvsp[-6].cmdval,wopt(add_label(yyvsp[-9].cval, make_ccmd(C_WHILE,1,yyvsp[-4].arg,yyval.compval) ))); } break; case 34: #line 304 "perly.y" { yyval.cmdval = add_label(yyvsp[-1].cval,make_ccmd(C_BLOCK,1,Nullarg,yyvsp[0].compval)); } break; case 35: #line 308 "perly.y" { yyval.cmdval = Nullcmd; } break; case 37: #line 313 "perly.y" { (void)scanstr("1",SCAN_DEF); yyval.arg = yylval.arg; } break; case 39: #line 318 "perly.y" { yyval.cval = Nullch; } break; case 41: #line 323 "perly.y" { yyval.ival = 0; } break; case 42: #line 325 "perly.y" { yyval.ival = 0; } break; case 43: #line 327 "perly.y" { yyval.ival = 0; } break; case 44: #line 331 "perly.y" { if (strEQ(yyvsp[-2].cval,"stdout")) make_form(stabent("STDOUT",TRUE),yyvsp[0].formval); else if (strEQ(yyvsp[-2].cval,"stderr")) make_form(stabent("STDERR",TRUE),yyvsp[0].formval); else make_form(stabent(yyvsp[-2].cval,TRUE),yyvsp[0].formval); Safefree(yyvsp[-2].cval); yyvsp[-2].cval = Nullch; } break; case 45: #line 339 "perly.y" { make_form(stabent("STDOUT",TRUE),yyvsp[0].formval); } break; case 46: #line 343 "perly.y" { make_sub(yyvsp[-1].cval,yyvsp[0].cmdval); cmdline = NOLINE; if (savestack->ary_fill > yyvsp[-2].ival) restorelist(yyvsp[-2].ival); } break; case 47: #line 350 "perly.y" { char tmpbuf[256]; STAB *tmpstab; savehptr(&curstash); saveitem(curstname); str_set(curstname,yyvsp[-1].cval); sprintf(tmpbuf,"'_%s",yyvsp[-1].cval); tmpstab = stabent(tmpbuf,TRUE); if (!stab_xhash(tmpstab)) stab_xhash(tmpstab) = hnew(0); curstash = stab_xhash(tmpstab); if (!curstash->tbl_name) curstash->tbl_name = savestr(yyvsp[-1].cval); curstash->tbl_coeffsize = 0; Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch; cmdline = NOLINE; expectterm = 2; } break; case 48: #line 371 "perly.y" { yyval.arg = yyvsp[0].arg; } break; case 49: #line 375 "perly.y" { yyval.arg = make_op(O_COMMA, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 51: #line 380 "perly.y" { yyval.arg = yyvsp[0].arg; } break; case 52: #line 384 "perly.y" { yyvsp[-2].arg = listish(yyvsp[-2].arg); if (yyvsp[-2].arg->arg_type == O_ASSIGN && yyvsp[-2].arg->arg_len == 1) yyvsp[-2].arg->arg_type = O_ITEM; /* a local() */ if (yyvsp[-2].arg->arg_type == O_LIST) yyvsp[0].arg = listish(yyvsp[0].arg); yyval.arg = l(make_op(O_ASSIGN, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg)); } break; case 53: #line 391 "perly.y" { yyval.arg = l(make_op(O_POW, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); } break; case 54: #line 393 "perly.y" { yyval.arg = l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); } break; case 55: #line 395 "perly.y" { yyval.arg = rcatmaybe(l(make_op(yyvsp[-2].ival, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)));} break; case 56: #line 397 "perly.y" { yyval.arg = l(make_op(O_LEFT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); } break; case 57: #line 399 "perly.y" { yyval.arg = l(make_op(O_RIGHT_SHIFT, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); } break; case 58: #line 401 "perly.y" { yyval.arg = l(make_op(O_BIT_AND, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); } break; case 59: #line 403 "perly.y" { yyval.arg = l(make_op(O_XOR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); } break; case 60: #line 405 "perly.y" { yyval.arg = l(make_op(O_BIT_OR, 2, yyvsp[-3].arg, yyvsp[0].arg, Nullarg)); } break; case 61: #line 409 "perly.y" { yyval.arg = make_op(O_POW, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 62: #line 411 "perly.y" { if (yyvsp[-1].ival == O_REPEAT) yyvsp[-2].arg = listish(yyvsp[-2].arg); yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); if (yyvsp[-1].ival == O_REPEAT) { if (yyval.arg[1].arg_type != A_EXPR || yyval.arg[1].arg_ptr.arg_arg->arg_type != O_LIST) yyval.arg[1].arg_flags &= ~AF_ARYOK; } } break; case 63: #line 420 "perly.y" { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 64: #line 422 "perly.y" { yyval.arg = make_op(O_LEFT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 65: #line 424 "perly.y" { yyval.arg = make_op(O_RIGHT_SHIFT, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 66: #line 426 "perly.y" { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 67: #line 428 "perly.y" { yyval.arg = make_op(yyvsp[-1].ival, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 68: #line 430 "perly.y" { yyval.arg = make_op(O_BIT_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 69: #line 432 "perly.y" { yyval.arg = make_op(O_XOR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 70: #line 434 "perly.y" { yyval.arg = make_op(O_BIT_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 71: #line 436 "perly.y" { arg4 = Nullarg; yyval.arg = make_op(O_F_OR_R, 4, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); yyval.arg[0].arg_flags |= yyvsp[-1].ival; } break; case 72: #line 440 "perly.y" { yyval.arg = make_op(O_AND, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 73: #line 442 "perly.y" { yyval.arg = make_op(O_OR, 2, yyvsp[-2].arg, yyvsp[0].arg, Nullarg); } break; case 74: #line 444 "perly.y" { yyval.arg = make_op(O_COND_EXPR, 3, yyvsp[-4].arg, yyvsp[-2].arg, yyvsp[0].arg); } break; case 75: #line 446 "perly.y" { yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg, yyvsp[0].arg); } break; case 76: #line 448 "perly.y" { yyval.arg = mod_match(O_NMATCH, yyvsp[-2].arg, yyvsp[0].arg); } break; case 77: #line 450 "perly.y" { yyval.arg = yyvsp[0].arg; } break; case 78: #line 454 "perly.y" { yyval.arg = make_op(O_NEGATE, 1, yyvsp[0].arg, Nullarg, Nullarg); } break; case 79: #line 456 "perly.y" { yyval.arg = yyvsp[0].arg; } break; case 80: #line 458 "perly.y" { yyval.arg = make_op(O_NOT, 1, yyvsp[0].arg, Nullarg, Nullarg); } break; case 81: #line 460 "perly.y" { yyval.arg = make_op(O_COMPLEMENT, 1, yyvsp[0].arg, Nullarg, Nullarg);} break; case 82: #line 462 "perly.y" { yyval.arg = addflags(1, AF_POST|AF_UP, l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); } break; case 83: #line 465 "perly.y" { yyval.arg = addflags(1, AF_POST, l(make_op(O_ITEM,1,yyvsp[-1].arg,Nullarg,Nullarg))); } break; case 84: #line 468 "perly.y" { yyval.arg = addflags(1, AF_PRE|AF_UP, l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); } break; case 85: #line 471 "perly.y" { yyval.arg = addflags(1, AF_PRE, l(make_op(O_ITEM,1,yyvsp[0].arg,Nullarg,Nullarg))); } break; case 86: #line 474 "perly.y" { opargs[yyvsp[-1].ival] = 0; /* force it special */ yyval.arg = make_op(yyvsp[-1].ival, 1, stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)), Nullarg, Nullarg); Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; } break; case 87: #line 481 "perly.y" { opargs[yyvsp[-1].ival] = 1; yyval.arg = make_op(yyvsp[-1].ival, 1, yyvsp[0].arg, Nullarg, Nullarg); } break; case 88: #line 484 "perly.y" { opargs[yyvsp[0].ival] = (yyvsp[0].ival != O_FTTTY); yyval.arg = make_op(yyvsp[0].ival, 1, stab2arg(A_STAB, yyvsp[0].ival == O_FTTTY?stabent("STDIN",TRUE):defstab), Nullarg, Nullarg); } break; case 89: #line 490 "perly.y" { yyval.arg = l(localize(make_op(O_ASSIGN, 1, localize(listish(make_list(yyvsp[-1].arg))), Nullarg,Nullarg))); } break; case 90: #line 494 "perly.y" { yyval.arg = make_list(yyvsp[-1].arg); } break; case 91: #line 496 "perly.y" { yyval.arg = make_list(Nullarg); } break; case 92: #line 498 "perly.y" { yyval.arg = make_op(O_DOFILE,2,yyvsp[0].arg,Nullarg,Nullarg); allstabs = TRUE;} break; case 93: #line 501 "perly.y" { yyval.arg = cmd_to_arg(yyvsp[0].cmdval); } break; case 94: #line 503 "perly.y" { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); } break; case 95: #line 505 "perly.y" { yyval.arg = stab2arg(A_STAR,yyvsp[0].stabval); } break; case 96: #line 507 "perly.y" { yyval.arg = make_op(O_AELEM, 2, stab2arg(A_STAB,aadd(yyvsp[-3].stabval)), yyvsp[-1].arg, Nullarg); } break; case 97: #line 510 "perly.y" { yyval.arg = make_op(O_HASH, 1, stab2arg(A_STAB,yyvsp[0].stabval), Nullarg, Nullarg); } break; case 98: #line 514 "perly.y" { yyval.arg = make_op(O_ARRAY, 1, stab2arg(A_STAB,yyvsp[0].stabval), Nullarg, Nullarg); } break; case 99: #line 518 "perly.y" { yyval.arg = make_op(O_HELEM, 2, stab2arg(A_STAB,hadd(yyvsp[-4].stabval)), jmaybe(yyvsp[-2].arg), Nullarg); expectterm = FALSE; } break; case 100: #line 524 "perly.y" { yyval.arg = make_op(O_LSLICE, 3, Nullarg, listish(make_list(yyvsp[-1].arg)), listish(make_list(yyvsp[-4].arg))); } break; case 101: #line 529 "perly.y" { yyval.arg = make_op(O_LSLICE, 3, Nullarg, listish(make_list(yyvsp[-1].arg)), Nullarg); } break; case 102: #line 534 "perly.y" { yyval.arg = make_op(O_ASLICE, 2, stab2arg(A_STAB,aadd(yyvsp[-3].stabval)), listish(make_list(yyvsp[-1].arg)), Nullarg); } break; case 103: #line 539 "perly.y" { yyval.arg = make_op(O_HSLICE, 2, stab2arg(A_STAB,hadd(yyvsp[-4].stabval)), listish(make_list(yyvsp[-2].arg)), Nullarg); expectterm = FALSE; } break; case 104: #line 545 "perly.y" { yyval.arg = make_op(O_DELETE, 2, stab2arg(A_STAB,hadd(yyvsp[-4].stabval)), jmaybe(yyvsp[-2].arg), Nullarg); expectterm = FALSE; } break; case 105: #line 551 "perly.y" { yyval.arg = make_op(O_DELETE, 2, stab2arg(A_STAB,hadd(yyvsp[-5].stabval)), jmaybe(yyvsp[-3].arg), Nullarg); expectterm = FALSE; } break; case 106: #line 557 "perly.y" { yyval.arg = stab2arg(A_ARYLEN,yyvsp[0].stabval); } break; case 107: #line 559 "perly.y" { yyval.arg = yyvsp[0].arg; } break; case 108: #line 561 "perly.y" { yyval.arg = yyvsp[0].arg; } break; case 109: #line 563 "perly.y" { yyval.arg = yyvsp[0].arg; } break; case 110: #line 565 "perly.y" { yyval.arg = yyvsp[0].arg; } break; case 111: #line 567 "perly.y" { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2, stab2arg(A_WORD,stabent(yyvsp[-3].cval,MULTI)), make_list(yyvsp[-1].arg), Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch; yyval.arg->arg_flags |= AF_DEPR; } break; case 112: #line 573 "perly.y" { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2, stab2arg(A_WORD,stabent(yyvsp[-3].cval,MULTI)), make_list(yyvsp[-1].arg), Nullarg); Safefree(yyvsp[-3].cval); yyvsp[-3].cval = Nullch; } break; case 113: #line 578 "perly.y" { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2, stab2arg(A_WORD,stabent(yyvsp[-2].cval,MULTI)), make_list(Nullarg), Nullarg); Safefree(yyvsp[-2].cval); yyvsp[-2].cval = Nullch; yyval.arg->arg_flags |= AF_DEPR; } break; case 114: #line 585 "perly.y" { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2, stab2arg(A_WORD,stabent(yyvsp[-2].cval,MULTI)), make_list(Nullarg), Nullarg); Safefree(yyvsp[-2].cval); yyvsp[-2].cval = Nullch; } break; case 115: #line 592 "perly.y" { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2, stab2arg(A_WORD,stabent(yyvsp[0].cval,MULTI)), Nullarg, Nullarg); Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; } break; case 116: #line 599 "perly.y" { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2, stab2arg(A_STAB,yyvsp[-3].stabval), make_list(yyvsp[-1].arg), Nullarg); yyval.arg->arg_flags |= AF_DEPR; } break; case 117: #line 605 "perly.y" { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2, stab2arg(A_STAB,yyvsp[-3].stabval), make_list(yyvsp[-1].arg), Nullarg); } break; case 118: #line 610 "perly.y" { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2, stab2arg(A_STAB,yyvsp[-2].stabval), make_list(Nullarg), Nullarg); yyval.arg->arg_flags |= AF_DEPR; } break; case 119: #line 616 "perly.y" { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2, stab2arg(A_STAB,yyvsp[-2].stabval), make_list(Nullarg), Nullarg); } break; case 120: #line 621 "perly.y" { yyval.arg = make_op((perldb ? O_DBSUBR : O_SUBR), 2, stab2arg(A_STAB,yyvsp[0].stabval), Nullarg, Nullarg); } break; case 121: #line 626 "perly.y" { yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); } break; case 122: #line 628 "perly.y" { yyval.arg = make_op(yyvsp[-1].ival,1,cval_to_arg(yyvsp[0].cval), Nullarg,Nullarg); } break; case 123: #line 631 "perly.y" { yyval.arg = make_op(yyvsp[0].ival,0,Nullarg,Nullarg,Nullarg); } break; case 124: #line 633 "perly.y" { yyval.arg = make_op(yyvsp[-1].ival,1,cmd_to_arg(yyvsp[0].cmdval),Nullarg,Nullarg); } break; case 125: #line 635 "perly.y" { yyval.arg = make_op(yyvsp[-1].ival,1,yyvsp[0].arg,Nullarg,Nullarg); } break; case 126: #line 637 "perly.y" { yyval.arg = make_op(O_SELECT, 0, Nullarg, Nullarg, Nullarg);} break; case 127: #line 639 "perly.y" { yyval.arg = make_op(O_SELECT, 1, stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)), Nullarg, Nullarg); Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; } break; case 128: #line 645 "perly.y" { yyval.arg = make_op(O_SELECT, 1, yyvsp[-1].arg, Nullarg, Nullarg); } break; case 129: #line 647 "perly.y" { arg4 = yyvsp[-1].arg; yyval.arg = make_op(O_SSELECT, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); } break; case 130: #line 650 "perly.y" { yyval.arg = make_op(O_OPEN, 2, stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)), stab2arg(A_STAB,stabent(yyvsp[0].cval,TRUE)), Nullarg); Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; } break; case 131: #line 657 "perly.y" { yyval.arg = make_op(O_OPEN, 2, stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)), stab2arg(A_STAB,stabent(yyvsp[-1].cval,TRUE)), Nullarg); Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch; } break; case 132: #line 664 "perly.y" { yyval.arg = make_op(O_OPEN, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg); } break; case 133: #line 668 "perly.y" { yyval.arg = make_op(yyvsp[-3].ival, 1, yyvsp[-1].arg, Nullarg, Nullarg); } break; case 134: #line 672 "perly.y" { yyval.arg = make_op(yyvsp[-1].ival, 1, stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)), Nullarg, Nullarg); Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; } break; case 135: #line 677 "perly.y" { yyval.arg = make_op(yyvsp[-1].ival, 1, stab2arg(A_STAB,yyvsp[0].stabval), Nullarg, Nullarg); } break; case 136: #line 681 "perly.y" { yyval.arg = make_op(yyvsp[-2].ival, 1, stab2arg(A_WORD,Nullstab), Nullarg, Nullarg); } break; case 137: #line 685 "perly.y" { yyval.arg = make_op(yyvsp[0].ival, 0, Nullarg, Nullarg, Nullarg); } break; case 138: #line 688 "perly.y" { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg); } break; case 139: #line 690 "perly.y" { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, make_list(yyvsp[-1].arg)); } break; case 140: #line 692 "perly.y" { yyval.arg = make_op(yyvsp[-5].ival, 2, yyvsp[-3].arg, yyvsp[-1].arg, Nullarg); } break; case 141: #line 694 "perly.y" { arg4 = yyvsp[-1].arg; yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); } break; case 142: #line 696 "perly.y" { arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg; yyval.arg = make_op(yyvsp[-8].ival, 5, yyvsp[-6].arg, yyvsp[-4].arg, yyvsp[-3].arg); } break; case 143: #line 699 "perly.y" { yyval.arg = make_op(yyvsp[-5].ival, 2, yyvsp[-3].arg, make_list(yyvsp[-1].arg), Nullarg); } break; case 144: #line 704 "perly.y" { yyval.arg = make_op(O_POP, 1, yyvsp[0].arg, Nullarg, Nullarg); } break; case 145: #line 706 "perly.y" { yyval.arg = make_op(O_POP, 1, yyvsp[-1].arg, Nullarg, Nullarg); } break; case 146: #line 708 "perly.y" { yyval.arg = make_op(O_SHIFT, 1, yyvsp[0].arg, Nullarg, Nullarg); } break; case 147: #line 710 "perly.y" { yyval.arg = make_op(O_SHIFT, 1, yyvsp[-1].arg, Nullarg, Nullarg); } break; case 148: #line 712 "perly.y" { yyval.arg = make_op(O_SHIFT, 1, stab2arg(A_STAB, aadd(stabent(subline ? "_" : "ARGV", TRUE))), Nullarg, Nullarg); } break; case 149: #line 717 "perly.y" { static char p[]="/\\s+/"; char *oldend = bufend; ARG *oldarg = yylval.arg; bufend=p+5; (void)scanpat(p); bufend=oldend; yyval.arg = make_split(defstab,yylval.arg,Nullarg); yylval.arg = oldarg; } break; case 150: #line 727 "perly.y" { yyval.arg = mod_match(O_MATCH, yyvsp[-2].arg, make_split(defstab,yyvsp[-3].arg,yyvsp[-1].arg));} break; case 151: #line 730 "perly.y" { yyval.arg = mod_match(O_MATCH, yyvsp[-1].arg, make_split(defstab,yyvsp[-2].arg,Nullarg) ); } break; case 152: #line 733 "perly.y" { yyval.arg = mod_match(O_MATCH, stab2arg(A_STAB,defstab), make_split(defstab,yyvsp[-1].arg,Nullarg) ); } break; case 153: #line 737 "perly.y" { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, listish(make_list(yyvsp[-1].arg)), Nullarg); } break; case 154: #line 742 "perly.y" { yyval.arg = make_op(yyvsp[-3].ival, 1, make_list(yyvsp[-1].arg), Nullarg, Nullarg); } break; case 155: #line 747 "perly.y" { yyval.arg = l(make_op(yyvsp[-1].ival, 1, fixl(yyvsp[-1].ival,yyvsp[0].arg), Nullarg, Nullarg)); } break; case 156: #line 750 "perly.y" { yyval.arg = l(make_op(yyvsp[0].ival, 1, stab2arg(A_STAB,defstab), Nullarg, Nullarg)); } break; case 157: #line 754 "perly.y" { yyval.arg = make_op(yyvsp[0].ival, 0, Nullarg, Nullarg, Nullarg); } break; case 158: #line 756 "perly.y" { yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); } break; case 159: #line 758 "perly.y" { yyval.arg = make_op(yyvsp[-2].ival, 0, Nullarg, Nullarg, Nullarg); } break; case 160: #line 760 "perly.y" { yyval.arg = make_op(yyvsp[-3].ival, 1, yyvsp[-1].arg, Nullarg, Nullarg); } break; case 161: #line 762 "perly.y" { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg); if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE) fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); } break; case 162: #line 766 "perly.y" { yyval.arg = make_op(yyvsp[-4].ival, 2, yyvsp[-2].arg, yyvsp[-1].arg, Nullarg); if (yyvsp[-4].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE) fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); } break; case 163: #line 770 "perly.y" { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); if (yyvsp[-5].ival == O_INDEX && yyval.arg[2].arg_type == A_SINGLE) fbmcompile(yyval.arg[2].arg_ptr.arg_str,0); } break; case 164: #line 774 "perly.y" { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); } break; case 165: #line 776 "perly.y" { arg4 = yyvsp[-1].arg; yyval.arg = make_op(yyvsp[-6].ival, 4, yyvsp[-4].arg, yyvsp[-3].arg, yyvsp[-2].arg); } break; case 166: #line 779 "perly.y" { arg4 = yyvsp[-2].arg; arg5 = yyvsp[-1].arg; yyval.arg = make_op(yyvsp[-7].ival, 5, yyvsp[-5].arg, yyvsp[-4].arg, yyvsp[-3].arg); } break; case 167: #line 782 "perly.y" { yyval.arg = make_op(yyvsp[-3].ival, 1, yyvsp[-1].arg, Nullarg, Nullarg); } break; case 168: #line 787 "perly.y" { yyval.arg = make_op(yyvsp[-1].ival, 1, yyvsp[0].arg, Nullarg, Nullarg); } break; case 169: #line 792 "perly.y" { yyval.arg = make_op(yyvsp[-5].ival, 3, yyvsp[-3].arg, yyvsp[-2].arg, yyvsp[-1].arg); } break; case 172: #line 798 "perly.y" { yyval.arg = make_op(yyvsp[0].ival,2, stab2arg(A_WORD,Nullstab), stab2arg(A_STAB,defstab), Nullarg); } break; case 173: #line 803 "perly.y" { yyval.arg = make_op(yyvsp[-1].ival,2, stab2arg(A_WORD,Nullstab), maybelistish(yyvsp[-1].ival,make_list(yyvsp[0].arg)), Nullarg); } break; case 174: #line 808 "perly.y" { yyval.arg = make_op(yyvsp[-1].ival,2, stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)), stab2arg(A_STAB,defstab), Nullarg); Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; } break; case 175: #line 815 "perly.y" { yyval.arg = make_op(yyvsp[-2].ival,2, stab2arg(A_WORD,stabent(yyvsp[-1].cval,TRUE)), maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)), Nullarg); Safefree(yyvsp[-1].cval); yyvsp[-1].cval = Nullch; } break; case 176: #line 820 "perly.y" { yyval.arg = make_op(yyvsp[-2].ival,2, stab2arg(A_STAB,yyvsp[-1].stabval), maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)), Nullarg); } break; case 177: #line 825 "perly.y" { yyval.arg = make_op(yyvsp[-2].ival,2, cmd_to_arg(yyvsp[-1].cmdval), maybelistish(yyvsp[-2].ival,make_list(yyvsp[0].arg)), Nullarg); } break; case 178: #line 832 "perly.y" { yyval.arg = stab2arg(A_WORD,stabent(yyvsp[0].cval,TRUE)); Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch;} break; case 180: #line 838 "perly.y" { yyval.arg = stab2arg(A_WORD,aadd(stabent(yyvsp[0].cval,TRUE))); Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; } break; case 181: #line 841 "perly.y" { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); } break; case 182: #line 845 "perly.y" { yyval.arg = stab2arg(A_WORD,hadd(stabent(yyvsp[0].cval,TRUE))); Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; } break; case 183: #line 848 "perly.y" { yyval.arg = stab2arg(A_STAB,yyvsp[0].stabval); } break; case 184: #line 852 "perly.y" { yyval.ival = 1; } break; case 185: #line 854 "perly.y" { yyval.ival = 0; } break; case 186: #line 863 "perly.y" { char *s; yyval.arg = op_new(1); yyval.arg->arg_type = O_ITEM; yyval.arg[1].arg_type = A_SINGLE; yyval.arg[1].arg_ptr.arg_str = str_make(yyvsp[0].cval,0); for (s = yyvsp[0].cval; *s && isLOWER(*s); s++) ; if (dowarn && !*s) warn( "\"%s\" may clash with future reserved word", yyvsp[0].cval ); Safefree(yyvsp[0].cval); yyvsp[0].cval = Nullch; } break; #line 3008 "y.tab.c" } yyssp -= yym; yystate = *yyssp; yyvsp -= yym; yym = yylhs[yyn]; if (yystate == 0 && yym == 0) { #if YYDEBUG if (yydebug) printf("%sdebug: after reduction, shifting from state 0 to\ state %d\n", YYPREFIX, YYFINAL); #endif yystate = YYFINAL; *++yyssp = YYFINAL; *++yyvsp = yyval; if (yychar < 0) { if ((yychar = yylex()) < 0) yychar = 0; #if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("%sdebug: state %d, reading %d (%s)\n", YYPREFIX, YYFINAL, yychar, yys); } #endif } if (yychar == 0) goto yyaccept; goto yyloop; } if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yystate) yystate = yytable[yyn]; else yystate = yydgoto[yym]; #if YYDEBUG if (yydebug) printf("%sdebug: after reduction, shifting from state %d \ to state %d\n", YYPREFIX, *yyssp, yystate); #endif if (yyssp >= yyss + yystacksize - 1) { goto yyoverflow; } *++yyssp = yystate; *++yyvsp = yyval; goto yyloop; yyoverflow: yyerror("yacc stack overflow"); yyabort: return (1); yyaccept: return (0); }