/* A Bison parser, made from parse.y by GNU Bison version 1.25 */ #define YYBISON 1 /* Identify Bison output. */ #define IDENTIFIER 258 #define TYPENAME 259 #define SELFNAME 260 #define PFUNCNAME 261 #define SCSPEC 262 #define TYPESPEC 263 #define CV_QUALIFIER 264 #define CONSTANT 265 #define STRING 266 #define ELLIPSIS 267 #define SIZEOF 268 #define ENUM 269 #define IF 270 #define ELSE 271 #define WHILE 272 #define DO 273 #define FOR 274 #define SWITCH 275 #define CASE 276 #define DEFAULT 277 #define BREAK 278 #define CONTINUE 279 #define RETURN 280 #define GOTO 281 #define ASM_KEYWORD 282 #define TYPEOF 283 #define ALIGNOF 284 #define SIGOF 285 #define ATTRIBUTE 286 #define EXTENSION 287 #define LABEL 288 #define REALPART 289 #define IMAGPART 290 #define AGGR 291 #define VISSPEC 292 #define DELETE 293 #define NEW 294 #define THIS 295 #define OPERATOR 296 #define CXX_TRUE 297 #define CXX_FALSE 298 #define NAMESPACE 299 #define TYPENAME_KEYWORD 300 #define USING 301 #define LEFT_RIGHT 302 #define TEMPLATE 303 #define TYPEID 304 #define DYNAMIC_CAST 305 #define STATIC_CAST 306 #define REINTERPRET_CAST 307 #define CONST_CAST 308 #define SCOPE 309 #define EMPTY 310 #define PTYPENAME 311 #define NSNAME 312 #define THROW 313 #define ASSIGN 314 #define OROR 315 #define ANDAND 316 #define MIN_MAX 317 #define EQCOMPARE 318 #define ARITHCOMPARE 319 #define LSHIFT 320 #define RSHIFT 321 #define POINTSAT_STAR 322 #define DOT_STAR 323 #define UNARY 324 #define PLUSPLUS 325 #define MINUSMINUS 326 #define HYPERUNARY 327 #define PAREN_STAR_PAREN 328 #define POINTSAT 329 #define TRY 330 #define CATCH 331 #define PRE_PARSED_FUNCTION_DECL 332 #define EXTERN_LANG_STRING 333 #define ALL 334 #define PRE_PARSED_CLASS_DECL 335 #define DEFARG 336 #define DEFARG_MARKER 337 #define TYPENAME_DEFN 338 #define IDENTIFIER_DEFN 339 #define PTYPENAME_DEFN 340 #define END_OF_LINE 341 #define END_OF_SAVED_INPUT 342 #line 29 "parse.y" /* Cause the `yydebug' variable to be defined. */ #define YYDEBUG 1 #include "config.h" #include "system.h" #include "tree.h" #include "input.h" #include "flags.h" #include "lex.h" #include "cp-tree.h" #include "output.h" #include "except.h" /* Since parsers are distinct for each language, put the language string definition here. (fnf) */ char *language_string = "GNU C++"; extern tree void_list_node; extern struct obstack permanent_obstack; extern int end_of_file; /* Like YYERROR but do call yyerror. */ #define YYERROR1 { yyerror ("syntax error"); YYERROR; } #define OP0(NODE) (TREE_OPERAND (NODE, 0)) #define OP1(NODE) (TREE_OPERAND (NODE, 1)) /* Contains the statement keyword (if/while/do) to include in an error message if the user supplies an empty conditional expression. */ static char *cond_stmt_keyword; static tree empty_parms PROTO((void)); /* Nonzero if we have an `extern "C"' acting as an extern specifier. */ int have_extern_spec; int used_extern_spec; /* Cons up an empty parameter list. */ #ifdef __GNUC__ __inline #endif static tree empty_parms () { tree parms; if (strict_prototype || current_class_type != NULL) parms = void_list_node; else parms = NULL_TREE; return parms; } #line 91 "parse.y" typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE; #line 280 "parse.y" /* List of types and structure classes of the current declaration. */ static tree current_declspecs = NULL_TREE; /* List of prefix attributes in effect. Prefix attributes are parsed by the reserved_declspecs and declmods rules. They create a list that contains *both* declspecs and attrs. */ /* ??? It is not clear yet that all cases where an attribute can now appear in a declspec list have been updated. */ static tree prefix_attributes = NULL_TREE; /* When defining an aggregate, this is the most recent one being defined. */ static tree current_aggr; /* Tell yyparse how to print a token's value, if yydebug is set. */ #define YYPRINT(FILE,YYCHAR,YYLVAL) yyprint(FILE,YYCHAR,YYLVAL) extern void yyprint PROTO((FILE *, int, YYSTYPE)); extern tree combine_strings PROTO((tree)); static int parse_decl(declarator, specs_attrs, attributes, initialized, decl) tree declarator; tree specs_attrs; tree attributes; int initialized; tree* decl; { int sm; split_specs_attrs (specs_attrs, ¤t_declspecs, &prefix_attributes); if (current_declspecs && TREE_CODE (current_declspecs) != TREE_LIST) current_declspecs = get_decl_list (current_declspecs); if (have_extern_spec && !used_extern_spec) { current_declspecs = decl_tree_cons (NULL_TREE, get_identifier ("extern"), current_declspecs); used_extern_spec = 1; } sm = suspend_momentary (); *decl = start_decl (declarator, current_declspecs, initialized, attributes, prefix_attributes); return sm; } #include #ifndef __cplusplus #ifndef __STDC__ #define const #endif #endif #define YYFINAL 1550 #define YYFLAG -32768 #define YYNTBASE 112 #define YYTRANSLATE(x) ((unsigned)(x) <= 342 ? yytranslate[x] : 386) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 110, 2, 2, 2, 82, 70, 2, 93, 108, 80, 78, 59, 79, 92, 81, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62, 60, 74, 64, 75, 65, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 94, 2, 111, 69, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 58, 68, 109, 88, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 61, 63, 66, 67, 71, 72, 73, 76, 77, 83, 84, 85, 86, 87, 89, 90, 91, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 1, 3, 4, 7, 10, 12, 13, 14, 15, 17, 19, 20, 23, 26, 28, 30, 36, 41, 47, 52, 53, 60, 61, 67, 73, 76, 81, 84, 87, 91, 95, 97, 99, 102, 105, 107, 110, 111, 117, 121, 123, 127, 129, 130, 133, 136, 140, 142, 146, 148, 152, 154, 158, 161, 164, 167, 171, 175, 178, 181, 184, 187, 190, 192, 194, 196, 197, 199, 202, 203, 205, 210, 214, 218, 219, 228, 234, 235, 245, 252, 253, 262, 268, 269, 279, 286, 289, 292, 294, 297, 299, 306, 311, 318, 323, 326, 328, 331, 334, 336, 339, 341, 344, 347, 352, 355, 359, 360, 361, 363, 367, 370, 374, 376, 381, 384, 389, 392, 397, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 423, 430, 431, 438, 439, 445, 446, 452, 453, 461, 462, 470, 471, 478, 479, 486, 487, 488, 493, 498, 500, 505, 507, 509, 510, 512, 514, 518, 520, 522, 524, 526, 528, 530, 532, 534, 536, 538, 542, 544, 548, 549, 551, 553, 554, 562, 564, 566, 570, 575, 579, 580, 584, 586, 590, 594, 598, 602, 604, 606, 608, 611, 614, 617, 620, 623, 626, 629, 634, 637, 642, 645, 649, 653, 658, 664, 671, 678, 686, 689, 694, 700, 703, 706, 708, 709, 714, 719, 723, 725, 729, 732, 736, 741, 743, 746, 752, 754, 758, 762, 766, 770, 774, 778, 782, 786, 790, 794, 798, 802, 806, 810, 814, 818, 822, 826, 830, 836, 840, 844, 846, 849, 853, 855, 857, 859, 861, 863, 864, 870, 876, 882, 888, 894, 896, 898, 900, 902, 905, 908, 912, 917, 922, 924, 926, 928, 932, 934, 936, 938, 940, 944, 948, 952, 953, 958, 963, 966, 971, 974, 977, 979, 984, 986, 994, 1002, 1010, 1018, 1023, 1028, 1031, 1034, 1037, 1039, 1044, 1047, 1050, 1056, 1060, 1063, 1066, 1072, 1076, 1082, 1086, 1091, 1098, 1101, 1103, 1106, 1108, 1111, 1113, 1115, 1117, 1120, 1121, 1124, 1127, 1131, 1135, 1139, 1142, 1145, 1148, 1150, 1152, 1154, 1157, 1160, 1163, 1166, 1168, 1170, 1172, 1174, 1177, 1180, 1184, 1188, 1192, 1197, 1199, 1202, 1205, 1208, 1210, 1212, 1214, 1217, 1220, 1223, 1225, 1227, 1230, 1233, 1237, 1239, 1242, 1244, 1246, 1248, 1253, 1258, 1263, 1268, 1270, 1272, 1274, 1276, 1280, 1282, 1286, 1288, 1292, 1293, 1298, 1299, 1306, 1310, 1311, 1316, 1318, 1322, 1326, 1327, 1332, 1336, 1337, 1339, 1341, 1344, 1351, 1353, 1357, 1358, 1360, 1365, 1372, 1377, 1379, 1381, 1383, 1385, 1387, 1391, 1392, 1395, 1397, 1400, 1404, 1409, 1411, 1413, 1417, 1422, 1426, 1432, 1434, 1439, 1443, 1447, 1448, 1452, 1456, 1460, 1461, 1464, 1467, 1468, 1476, 1481, 1482, 1489, 1493, 1496, 1499, 1502, 1503, 1504, 1514, 1516, 1517, 1519, 1520, 1522, 1524, 1527, 1530, 1533, 1536, 1539, 1542, 1546, 1551, 1555, 1558, 1562, 1563, 1565, 1569, 1572, 1575, 1577, 1579, 1580, 1583, 1587, 1589, 1594, 1596, 1600, 1602, 1604, 1609, 1614, 1617, 1620, 1624, 1628, 1630, 1631, 1633, 1636, 1641, 1645, 1647, 1650, 1653, 1656, 1659, 1662, 1665, 1668, 1670, 1673, 1676, 1680, 1683, 1686, 1691, 1696, 1699, 1701, 1707, 1712, 1714, 1715, 1717, 1721, 1722, 1724, 1728, 1730, 1732, 1734, 1736, 1741, 1746, 1751, 1756, 1761, 1765, 1770, 1775, 1780, 1785, 1789, 1791, 1795, 1797, 1801, 1804, 1806, 1814, 1815, 1818, 1820, 1823, 1824, 1827, 1832, 1837, 1840, 1845, 1849, 1853, 1856, 1859, 1863, 1865, 1867, 1870, 1872, 1874, 1877, 1880, 1885, 1890, 1894, 1898, 1901, 1903, 1907, 1911, 1914, 1917, 1921, 1923, 1927, 1931, 1934, 1937, 1941, 1943, 1948, 1952, 1957, 1961, 1963, 1966, 1969, 1972, 1975, 1978, 1980, 1983, 1988, 1993, 1996, 1998, 2000, 2002, 2004, 2007, 2012, 2015, 2018, 2021, 2024, 2026, 2029, 2032, 2035, 2038, 2042, 2044, 2047, 2051, 2056, 2059, 2062, 2065, 2068, 2071, 2074, 2079, 2082, 2084, 2087, 2090, 2094, 2096, 2100, 2103, 2107, 2110, 2113, 2117, 2119, 2123, 2128, 2132, 2135, 2138, 2140, 2144, 2147, 2150, 2152, 2155, 2159, 2161, 2165, 2167, 2174, 2179, 2184, 2188, 2194, 2198, 2202, 2206, 2209, 2211, 2213, 2216, 2219, 2222, 2223, 2225, 2227, 2230, 2234, 2236, 2239, 2240, 2244, 2245, 2246, 2252, 2254, 2255, 2258, 2260, 2262, 2264, 2267, 2268, 2273, 2275, 2276, 2277, 2283, 2284, 2285, 2293, 2294, 2295, 2296, 2297, 2310, 2311, 2312, 2320, 2321, 2327, 2328, 2336, 2337, 2342, 2345, 2348, 2351, 2355, 2362, 2371, 2382, 2395, 2400, 2404, 2407, 2410, 2412, 2414, 2415, 2416, 2423, 2424, 2425, 2431, 2433, 2436, 2437, 2438, 2444, 2446, 2448, 2452, 2456, 2459, 2462, 2465, 2468, 2471, 2473, 2476, 2477, 2479, 2480, 2482, 2484, 2485, 2487, 2489, 2493, 2498, 2500, 2504, 2505, 2507, 2509, 2511, 2514, 2517, 2520, 2522, 2525, 2528, 2529, 2533, 2535, 2537, 2539, 2542, 2545, 2548, 2553, 2556, 2559, 2562, 2565, 2568, 2571, 2573, 2576, 2578, 2581, 2583, 2585, 2586, 2587, 2589, 2590, 2595, 2598, 2600, 2602, 2606, 2607, 2611, 2615, 2619, 2621, 2624, 2627, 2630, 2633, 2636, 2639, 2642, 2645, 2648, 2651, 2654, 2657, 2660, 2663, 2666, 2669, 2672, 2675, 2678, 2681, 2684, 2687, 2690, 2694, 2697, 2700, 2703, 2706, 2710, 2713, 2716, 2721, 2726, 2730 }; static const short yyrhs[] = { -1, 113, 0, 0, 114, 120, 0, 113, 120, 0, 113, 0, 0, 0, 0, 32, 0, 27, 0, 0, 121, 122, 0, 140, 139, 0, 136, 0, 135, 0, 119, 93, 208, 108, 60, 0, 127, 58, 115, 109, 0, 127, 116, 140, 117, 139, 0, 127, 116, 136, 117, 0, 0, 44, 155, 58, 123, 115, 109, 0, 0, 44, 58, 124, 115, 109, 0, 44, 155, 64, 126, 60, 0, 125, 60, 0, 46, 44, 126, 60, 0, 118, 122, 0, 46, 300, 0, 46, 314, 300, 0, 46, 314, 199, 0, 199, 0, 300, 0, 314, 300, 0, 314, 199, 0, 98, 0, 127, 98, 0, 0, 48, 74, 129, 130, 75, 0, 48, 74, 75, 0, 134, 0, 130, 59, 134, 0, 155, 0, 0, 257, 131, 0, 45, 131, 0, 128, 257, 131, 0, 132, 0, 132, 64, 214, 0, 377, 0, 377, 64, 194, 0, 133, 0, 133, 64, 174, 0, 128, 122, 0, 128, 1, 0, 225, 60, 0, 218, 224, 60, 0, 215, 223, 60, 0, 218, 60, 0, 158, 60, 0, 215, 60, 0, 1, 60, 0, 1, 109, 0, 60, 0, 209, 0, 151, 0, 0, 150, 0, 150, 60, 0, 0, 107, 0, 146, 138, 137, 324, 0, 146, 138, 348, 0, 146, 138, 1, 0, 0, 305, 5, 93, 142, 368, 108, 287, 380, 0, 305, 5, 47, 287, 380, 0, 0, 314, 305, 5, 93, 143, 368, 108, 287, 380, 0, 314, 305, 5, 47, 287, 380, 0, 0, 305, 170, 93, 144, 368, 108, 287, 380, 0, 305, 170, 47, 287, 380, 0, 0, 314, 305, 170, 93, 145, 368, 108, 287, 380, 0, 314, 305, 170, 47, 287, 380, 0, 215, 212, 0, 218, 297, 0, 297, 0, 218, 141, 0, 141, 0, 5, 93, 368, 108, 287, 380, 0, 5, 47, 287, 380, 0, 170, 93, 368, 108, 287, 380, 0, 170, 47, 287, 380, 0, 218, 147, 0, 147, 0, 215, 212, 0, 218, 297, 0, 297, 0, 218, 141, 0, 141, 0, 25, 3, 0, 149, 242, 0, 149, 93, 186, 108, 0, 149, 47, 0, 62, 152, 153, 0, 0, 0, 154, 0, 153, 59, 154, 0, 153, 1, 0, 93, 186, 108, 0, 47, 0, 156, 93, 186, 108, 0, 156, 47, 0, 293, 93, 186, 108, 0, 293, 47, 0, 307, 93, 186, 108, 0, 307, 47, 0, 3, 0, 4, 0, 5, 0, 56, 0, 57, 0, 3, 0, 56, 0, 57, 0, 104, 0, 103, 0, 105, 0, 0, 48, 167, 221, 60, 159, 168, 0, 0, 48, 167, 215, 212, 160, 168, 0, 0, 48, 167, 297, 161, 168, 0, 0, 48, 167, 141, 162, 168, 0, 0, 7, 48, 167, 221, 60, 163, 168, 0, 0, 7, 48, 167, 215, 212, 164, 168, 0, 0, 7, 48, 167, 297, 165, 168, 0, 0, 7, 48, 167, 141, 166, 168, 0, 0, 0, 56, 74, 172, 171, 0, 4, 74, 172, 171, 0, 170, 0, 5, 74, 172, 171, 0, 75, 0, 77, 0, 0, 173, 0, 174, 0, 173, 59, 174, 0, 214, 0, 194, 0, 79, 0, 78, 0, 86, 0, 87, 0, 110, 0, 185, 0, 194, 0, 47, 0, 93, 176, 108, 0, 47, 0, 93, 180, 108, 0, 0, 180, 0, 1, 0, 0, 358, 212, 226, 235, 64, 181, 243, 0, 176, 0, 109, 0, 321, 319, 109, 0, 321, 319, 1, 109, 0, 321, 1, 109, 0, 0, 58, 184, 182, 0, 333, 0, 194, 59, 194, 0, 194, 59, 1, 0, 185, 59, 194, 0, 185, 59, 1, 0, 194, 0, 185, 0, 203, 0, 118, 193, 0, 80, 193, 0, 70, 193, 0, 88, 193, 0, 175, 193, 0, 67, 155, 0, 13, 187, 0, 13, 93, 214, 108, 0, 29, 187, 0, 29, 93, 214, 108, 0, 205, 286, 0, 205, 286, 191, 0, 205, 190, 286, 0, 205, 190, 286, 191, 0, 205, 93, 189, 214, 188, 0, 205, 93, 189, 214, 188, 191, 0, 205, 190, 93, 189, 214, 188, 0, 205, 190, 93, 189, 214, 188, 191, 0, 206, 193, 0, 206, 94, 111, 193, 0, 206, 94, 176, 111, 193, 0, 34, 193, 0, 35, 193, 0, 108, 0, 0, 93, 189, 186, 108, 0, 58, 189, 186, 109, 0, 93, 186, 108, 0, 47, 0, 93, 221, 108, 0, 64, 243, 0, 93, 214, 108, 0, 192, 93, 214, 108, 0, 187, 0, 192, 187, 0, 192, 58, 244, 255, 109, 0, 193, 0, 194, 83, 194, 0, 194, 84, 194, 0, 194, 78, 194, 0, 194, 79, 194, 0, 194, 80, 194, 0, 194, 81, 194, 0, 194, 82, 194, 0, 194, 76, 194, 0, 194, 77, 194, 0, 194, 73, 194, 0, 194, 74, 194, 0, 194, 75, 194, 0, 194, 72, 194, 0, 194, 71, 194, 0, 194, 70, 194, 0, 194, 68, 194, 0, 194, 69, 194, 0, 194, 67, 194, 0, 194, 66, 194, 0, 194, 65, 363, 62, 194, 0, 194, 64, 194, 0, 194, 63, 194, 0, 61, 0, 61, 194, 0, 88, 378, 155, 0, 197, 0, 385, 0, 3, 0, 56, 0, 57, 0, 0, 6, 74, 196, 172, 171, 0, 385, 74, 196, 172, 171, 0, 48, 155, 74, 172, 171, 0, 48, 6, 74, 172, 171, 0, 48, 385, 74, 172, 171, 0, 195, 0, 4, 0, 5, 0, 195, 0, 80, 200, 0, 70, 200, 0, 93, 200, 108, 0, 3, 74, 172, 171, 0, 57, 74, 173, 171, 0, 299, 0, 195, 0, 201, 0, 93, 200, 108, 0, 195, 0, 10, 0, 207, 0, 208, 0, 93, 176, 108, 0, 93, 200, 108, 0, 93, 1, 108, 0, 0, 93, 204, 325, 108, 0, 203, 93, 186, 108, 0, 203, 47, 0, 203, 94, 176, 111, 0, 203, 86, 0, 203, 87, 0, 40, 0, 9, 93, 186, 108, 0, 303, 0, 50, 74, 214, 75, 93, 176, 108, 0, 51, 74, 214, 75, 93, 176, 108, 0, 52, 74, 214, 75, 93, 176, 108, 0, 53, 74, 214, 75, 93, 176, 108, 0, 49, 93, 176, 108, 0, 49, 93, 214, 108, 0, 314, 3, 0, 314, 197, 0, 314, 385, 0, 302, 0, 302, 93, 186, 108, 0, 302, 47, 0, 210, 198, 0, 210, 198, 93, 186, 108, 0, 210, 198, 47, 0, 210, 199, 0, 210, 302, 0, 210, 199, 93, 186, 108, 0, 210, 199, 47, 0, 210, 302, 93, 186, 108, 0, 210, 302, 47, 0, 210, 88, 8, 47, 0, 210, 8, 54, 88, 8, 47, 0, 210, 1, 0, 39, 0, 314, 39, 0, 38, 0, 314, 206, 0, 42, 0, 43, 0, 11, 0, 208, 11, 0, 0, 203, 92, 0, 203, 91, 0, 221, 223, 60, 0, 215, 223, 60, 0, 218, 224, 60, 0, 215, 60, 0, 218, 60, 0, 118, 211, 0, 292, 0, 297, 0, 47, 0, 213, 47, 0, 219, 317, 0, 288, 317, 0, 221, 317, 0, 219, 0, 288, 0, 219, 0, 216, 0, 218, 221, 0, 221, 217, 0, 221, 220, 217, 0, 218, 221, 217, 0, 218, 221, 220, 0, 218, 221, 220, 217, 0, 7, 0, 217, 222, 0, 217, 7, 0, 217, 236, 0, 236, 0, 288, 0, 7, 0, 218, 9, 0, 218, 7, 0, 218, 236, 0, 236, 0, 221, 0, 288, 221, 0, 221, 220, 0, 288, 221, 220, 0, 222, 0, 220, 222, 0, 250, 0, 8, 0, 294, 0, 28, 93, 176, 108, 0, 28, 93, 214, 108, 0, 30, 93, 176, 108, 0, 30, 93, 214, 108, 0, 8, 0, 9, 0, 250, 0, 231, 0, 223, 59, 227, 0, 232, 0, 224, 59, 227, 0, 233, 0, 225, 59, 227, 0, 0, 119, 93, 208, 108, 0, 0, 212, 226, 235, 64, 228, 243, 0, 212, 226, 235, 0, 0, 235, 64, 230, 243, 0, 235, 0, 212, 226, 229, 0, 297, 226, 229, 0, 0, 297, 226, 234, 229, 0, 141, 226, 235, 0, 0, 236, 0, 237, 0, 236, 237, 0, 31, 93, 93, 238, 108, 108, 0, 239, 0, 238, 59, 239, 0, 0, 240, 0, 240, 93, 3, 108, 0, 240, 93, 3, 59, 186, 108, 0, 240, 93, 186, 108, 0, 155, 0, 7, 0, 8, 0, 9, 0, 155, 0, 241, 59, 155, 0, 0, 64, 243, 0, 194, 0, 58, 109, 0, 58, 244, 109, 0, 58, 244, 59, 109, 0, 1, 0, 243, 0, 244, 59, 243, 0, 94, 194, 111, 243, 0, 155, 62, 243, 0, 244, 59, 155, 62, 243, 0, 97, 0, 245, 138, 137, 324, 0, 245, 138, 348, 0, 245, 138, 1, 0, 0, 247, 246, 139, 0, 102, 194, 107, 0, 102, 1, 107, 0, 0, 249, 248, 0, 249, 1, 0, 0, 14, 155, 58, 251, 284, 256, 109, 0, 14, 155, 58, 109, 0, 0, 14, 58, 252, 284, 256, 109, 0, 14, 58, 109, 0, 14, 155, 0, 14, 312, 0, 45, 307, 0, 0, 0, 264, 270, 272, 109, 235, 253, 249, 254, 247, 0, 264, 0, 0, 59, 0, 0, 59, 0, 36, 0, 257, 7, 0, 257, 8, 0, 257, 9, 0, 257, 36, 0, 257, 155, 0, 257, 157, 0, 257, 305, 155, 0, 257, 314, 305, 155, 0, 257, 314, 155, 0, 257, 169, 0, 257, 305, 169, 0, 0, 258, 0, 259, 261, 265, 0, 260, 265, 0, 257, 58, 0, 263, 0, 262, 0, 0, 62, 378, 0, 62, 378, 266, 0, 267, 0, 266, 59, 378, 267, 0, 268, 0, 269, 378, 268, 0, 307, 0, 293, 0, 30, 93, 176, 108, 0, 30, 93, 214, 108, 0, 37, 378, 0, 7, 378, 0, 269, 37, 378, 0, 269, 7, 378, 0, 58, 0, 0, 271, 0, 271, 273, 0, 272, 37, 62, 273, 0, 272, 37, 62, 0, 274, 0, 273, 274, 0, 275, 60, 0, 275, 109, 0, 148, 62, 0, 148, 95, 0, 148, 25, 0, 148, 58, 0, 60, 0, 118, 274, 0, 128, 274, 0, 128, 215, 60, 0, 215, 276, 0, 218, 277, 0, 297, 226, 235, 242, 0, 141, 226, 235, 242, 0, 62, 194, 0, 1, 0, 218, 147, 226, 235, 242, 0, 147, 226, 235, 242, 0, 125, 0, 0, 278, 0, 276, 59, 279, 0, 0, 281, 0, 277, 59, 283, 0, 280, 0, 281, 0, 282, 0, 283, 0, 292, 226, 235, 242, 0, 4, 62, 194, 235, 0, 297, 226, 235, 242, 0, 141, 226, 235, 242, 0, 3, 62, 194, 235, 0, 62, 194, 235, 0, 292, 226, 235, 242, 0, 4, 62, 194, 235, 0, 297, 226, 235, 242, 0, 3, 62, 194, 235, 0, 62, 194, 235, 0, 285, 0, 284, 59, 285, 0, 155, 0, 155, 64, 194, 0, 358, 315, 0, 358, 0, 93, 189, 214, 188, 94, 176, 111, 0, 0, 287, 9, 0, 9, 0, 288, 9, 0, 0, 289, 176, 0, 289, 93, 186, 108, 0, 289, 93, 368, 108, 0, 289, 47, 0, 289, 93, 1, 108, 0, 80, 288, 292, 0, 70, 288, 292, 0, 80, 292, 0, 70, 292, 0, 313, 287, 292, 0, 296, 0, 304, 0, 314, 304, 0, 293, 0, 295, 0, 314, 295, 0, 305, 304, 0, 296, 291, 287, 380, 0, 296, 94, 290, 111, 0, 296, 94, 111, 0, 93, 292, 108, 0, 305, 304, 0, 304, 0, 80, 288, 297, 0, 70, 288, 297, 0, 80, 297, 0, 70, 297, 0, 313, 287, 297, 0, 202, 0, 80, 288, 297, 0, 70, 288, 297, 0, 80, 298, 0, 70, 298, 0, 313, 287, 297, 0, 299, 0, 202, 291, 287, 380, 0, 93, 298, 108, 0, 202, 94, 290, 111, 0, 202, 94, 111, 0, 301, 0, 305, 201, 0, 305, 199, 0, 305, 198, 0, 305, 195, 0, 305, 198, 0, 301, 0, 314, 301, 0, 221, 93, 186, 108, 0, 221, 93, 200, 108, 0, 221, 213, 0, 4, 0, 5, 0, 169, 0, 306, 0, 305, 306, 0, 305, 48, 311, 54, 0, 4, 54, 0, 5, 54, 0, 57, 54, 0, 169, 54, 0, 308, 0, 314, 308, 0, 309, 155, 0, 309, 169, 0, 309, 311, 0, 309, 48, 311, 0, 310, 0, 309, 310, 0, 309, 311, 54, 0, 309, 48, 311, 54, 0, 4, 54, 0, 5, 54, 0, 169, 54, 0, 56, 54, 0, 3, 54, 0, 57, 54, 0, 155, 74, 172, 171, 0, 314, 304, 0, 295, 0, 314, 295, 0, 305, 80, 0, 314, 305, 80, 0, 54, 0, 80, 287, 315, 0, 80, 287, 0, 70, 287, 315, 0, 70, 287, 0, 313, 287, 0, 313, 287, 315, 0, 316, 0, 94, 176, 111, 0, 316, 94, 290, 111, 0, 80, 288, 317, 0, 80, 317, 0, 80, 288, 0, 80, 0, 70, 288, 317, 0, 70, 317, 0, 70, 288, 0, 70, 0, 313, 287, 0, 313, 287, 317, 0, 318, 0, 93, 317, 108, 0, 90, 0, 318, 93, 368, 108, 287, 380, 0, 318, 47, 287, 380, 0, 318, 94, 290, 111, 0, 318, 94, 111, 0, 93, 369, 108, 287, 380, 0, 192, 287, 380, 0, 213, 287, 380, 0, 94, 290, 111, 0, 94, 111, 0, 332, 0, 320, 0, 319, 332, 0, 319, 320, 0, 1, 60, 0, 0, 322, 0, 323, 0, 322, 323, 0, 33, 241, 60, 0, 325, 0, 1, 325, 0, 0, 58, 326, 182, 0, 0, 0, 15, 328, 178, 329, 330, 0, 325, 0, 0, 331, 333, 0, 325, 0, 333, 0, 211, 0, 176, 60, 0, 0, 327, 16, 334, 330, 0, 327, 0, 0, 0, 17, 335, 178, 336, 183, 0, 0, 0, 18, 337, 330, 17, 338, 177, 60, 0, 0, 0, 0, 0, 19, 339, 93, 361, 340, 179, 60, 341, 363, 108, 342, 183, 0, 0, 0, 20, 343, 93, 180, 108, 344, 330, 0, 0, 21, 194, 62, 345, 332, 0, 0, 21, 194, 12, 194, 62, 346, 332, 0, 0, 22, 62, 347, 332, 0, 23, 60, 0, 24, 60, 0, 25, 60, 0, 25, 176, 60, 0, 119, 362, 93, 208, 108, 60, 0, 119, 362, 93, 208, 62, 364, 108, 60, 0, 119, 362, 93, 208, 62, 364, 62, 364, 108, 60, 0, 119, 362, 93, 208, 62, 364, 62, 364, 62, 367, 108, 60, 0, 26, 80, 176, 60, 0, 26, 155, 60, 0, 360, 332, 0, 360, 109, 0, 60, 0, 351, 0, 0, 0, 95, 349, 137, 325, 350, 354, 0, 0, 0, 95, 352, 325, 353, 354, 0, 355, 0, 354, 355, 0, 0, 0, 96, 356, 359, 357, 325, 0, 219, 0, 288, 0, 93, 12, 108, 0, 93, 377, 108, 0, 3, 62, 0, 56, 62, 0, 4, 62, 0, 5, 62, 0, 363, 60, 0, 211, 0, 58, 182, 0, 0, 9, 0, 0, 176, 0, 1, 0, 0, 365, 0, 366, 0, 365, 59, 366, 0, 11, 93, 176, 108, 0, 11, 0, 367, 59, 11, 0, 0, 369, 0, 214, 0, 373, 0, 374, 12, 0, 373, 12, 0, 214, 12, 0, 12, 0, 373, 62, 0, 214, 62, 0, 0, 64, 371, 372, 0, 101, 0, 243, 0, 375, 0, 377, 370, 0, 374, 376, 0, 374, 379, 0, 374, 379, 64, 243, 0, 373, 59, 0, 214, 59, 0, 216, 212, 0, 219, 212, 0, 221, 212, 0, 216, 317, 0, 216, 0, 218, 297, 0, 377, 0, 377, 370, 0, 375, 0, 214, 0, 0, 0, 297, 0, 0, 61, 93, 382, 108, 0, 61, 47, 0, 214, 0, 381, 0, 382, 59, 381, 0, 0, 80, 287, 383, 0, 70, 287, 383, 0, 313, 287, 383, 0, 41, 0, 384, 80, 0, 384, 81, 0, 384, 82, 0, 384, 78, 0, 384, 79, 0, 384, 70, 0, 384, 68, 0, 384, 69, 0, 384, 88, 0, 384, 59, 0, 384, 73, 0, 384, 74, 0, 384, 75, 0, 384, 72, 0, 384, 63, 0, 384, 64, 0, 384, 76, 0, 384, 77, 0, 384, 86, 0, 384, 87, 0, 384, 67, 0, 384, 66, 0, 384, 110, 0, 384, 65, 62, 0, 384, 71, 0, 384, 91, 0, 384, 83, 0, 384, 47, 0, 384, 94, 111, 0, 384, 39, 0, 384, 38, 0, 384, 39, 94, 111, 0, 384, 38, 94, 111, 0, 384, 358, 383, 0, 384, 1, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, 328, 330, 338, 341, 342, 346, 348, 351, 356, 360, 366, 370, 373, 377, 380, 382, 384, 387, 389, 392, 395, 397, 399, 401, 403, 405, 407, 416, 420, 423, 425, 429, 431, 432, 434, 438, 441, 447, 450, 452, 457, 460, 464, 467, 470, 473, 477, 482, 492, 494, 496, 498, 500, 513, 522, 532, 534, 536, 540, 542, 543, 550, 551, 552, 555, 558, 562, 564, 565, 568, 570, 573, 576, 578, 582, 585, 587, 591, 593, 595, 599, 601, 603, 607, 609, 611, 617, 621, 624, 627, 630, 635, 638, 640, 642, 648, 658, 660, 663, 666, 668, 671, 675, 684, 687, 689, 693, 706, 726, 729, 731, 732, 735, 742, 748, 750, 752, 754, 756, 759, 764, 766, 767, 768, 769, 772, 774, 775, 778, 780, 781, 784, 789, 789, 793, 793, 796, 796, 799, 799, 803, 803, 808, 808, 811, 811, 814, 816, 819, 826, 833, 839, 842, 851, 853, 861, 864, 867, 870, 874, 877, 880, 883, 885, 887, 889, 893, 896, 899, 904, 908, 913, 917, 920, 922, 926, 945, 952, 955, 957, 958, 959, 962, 966, 967, 971, 975, 978, 980, 984, 987, 990, 994, 997, 999, 1001, 1003, 1006, 1010, 1012, 1014, 1016, 1022, 1025, 1028, 1031, 1043, 1048, 1052, 1056, 1061, 1063, 1067, 1071, 1073, 1082, 1086, 1089, 1092, 1097, 1100, 1102, 1110, 1123, 1128, 1134, 1136, 1138, 1151, 1154, 1156, 1158, 1160, 1162, 1164, 1166, 1168, 1170, 1172, 1174, 1176, 1178, 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1198, 1200, 1202, 1219, 1222, 1223, 1224, 1225, 1226, 1229, 1232, 1235, 1239, 1242, 1244, 1249, 1251, 1252, 1255, 1257, 1259, 1261, 1265, 1268, 1272, 1274, 1275, 1276, 1280, 1288, 1289, 1290, 1298, 1300, 1303, 1305, 1315, 1317, 1319, 1321, 1323, 1325, 1328, 1330, 1374, 1375, 1379, 1383, 1387, 1391, 1393, 1397, 1399, 1401, 1409, 1411, 1413, 1415, 1419, 1421, 1423, 1425, 1430, 1432, 1434, 1436, 1439, 1441, 1443, 1487, 1490, 1494, 1497, 1501, 1504, 1509, 1511, 1515, 1528, 1531, 1538, 1545, 1550, 1552, 1557, 1559, 1566, 1568, 1572, 1576, 1582, 1586, 1589, 1592, 1595, 1605, 1607, 1610, 1614, 1617, 1620, 1623, 1626, 1632, 1638, 1640, 1645, 1647, 1656, 1659, 1661, 1664, 1670, 1672, 1682, 1686, 1689, 1692, 1697, 1700, 1708, 1710, 1712, 1714, 1717, 1720, 1735, 1754, 1757, 1759, 1762, 1764, 1767, 1769, 1772, 1774, 1777, 1780, 1784, 1790, 1791, 1803, 1810, 1813, 1819, 1823, 1828, 1834, 1835, 1843, 1846, 1850, 1853, 1857, 1862, 1865, 1869, 1872, 1874, 1876, 1878, 1885, 1887, 1888, 1889, 1893, 1896, 1900, 1903, 1909, 1911, 1914, 1917, 1920, 1926, 1929, 1932, 1934, 1936, 1940, 1946, 1954, 1956, 1960, 1962, 1967, 1970, 1973, 1975, 1977, 1981, 1985, 1990, 1994, 1997, 2002, 2006, 2009, 2012, 2016, 2028, 2030, 2033, 2053, 2055, 2058, 2060, 2065, 2067, 2069, 2071, 2073, 2077, 2082, 2087, 2093, 2098, 2103, 2105, 2109, 2114, 2117, 2124, 2152, 2158, 2160, 2163, 2166, 2168, 2172, 2174, 2178, 2204, 2233, 2236, 2237, 2258, 2281, 2283, 2287, 2298, 2312, 2317, 2324, 2327, 2335, 2346, 2355, 2359, 2374, 2377, 2382, 2384, 2386, 2388, 2390, 2392, 2395, 2397, 2409, 2415, 2417, 2420, 2423, 2425, 2436, 2441, 2444, 2449, 2452, 2453, 2464, 2467, 2468, 2479, 2481, 2484, 2486, 2489, 2496, 2504, 2511, 2517, 2523, 2531, 2535, 2540, 2544, 2547, 2556, 2558, 2562, 2565, 2570, 2574, 2580, 2591, 2594, 2598, 2602, 2610, 2615, 2621, 2624, 2626, 2628, 2634, 2637, 2639, 2641, 2643, 2647, 2650, 2668, 2678, 2680, 2681, 2685, 2690, 2693, 2695, 2697, 2699, 2703, 2709, 2712, 2714, 2716, 2718, 2722, 2725, 2728, 2730, 2732, 2734, 2738, 2741, 2744, 2746, 2748, 2750, 2757, 2768, 2772, 2777, 2781, 2786, 2788, 2792, 2795, 2797, 2801, 2803, 2804, 2807, 2809, 2811, 2817, 2832, 2838, 2844, 2858, 2860, 2864, 2878, 2880, 2882, 2886, 2892, 2905, 2907, 2911, 2924, 2930, 2932, 2933, 2934, 2942, 2947, 2956, 2957, 2961, 2964, 2970, 2976, 2979, 2981, 2983, 2985, 2989, 2993, 2997, 3000, 3005, 3008, 3010, 3012, 3014, 3016, 3018, 3020, 3022, 3026, 3030, 3034, 3038, 3039, 3041, 3043, 3045, 3047, 3049, 3051, 3053, 3055, 3063, 3065, 3066, 3067, 3070, 3076, 3078, 3083, 3085, 3088, 3102, 3105, 3108, 3112, 3115, 3122, 3124, 3127, 3129, 3131, 3134, 3137, 3140, 3143, 3145, 3148, 3152, 3154, 3160, 3162, 3163, 3165, 3170, 3172, 3174, 3176, 3178, 3181, 3182, 3184, 3187, 3188, 3191, 3191, 3194, 3194, 3197, 3197, 3199, 3201, 3203, 3205, 3211, 3217, 3220, 3223, 3229, 3231, 3233, 3237, 3239, 3242, 3249, 3255, 3264, 3268, 3270, 3273, 3275, 3278, 3282, 3284, 3287, 3289, 3292, 3309, 3315, 3323, 3325, 3327, 3331, 3334, 3335, 3343, 3347, 3351, 3354, 3355, 3361, 3364, 3367, 3369, 3373, 3378, 3381, 3391, 3396, 3397, 3404, 3407, 3410, 3412, 3415, 3417, 3427, 3441, 3445, 3448, 3450, 3454, 3458, 3461, 3464, 3466, 3470, 3472, 3479, 3486, 3489, 3492, 3496, 3500, 3506, 3510, 3515, 3517, 3520, 3525, 3531, 3542, 3545, 3547, 3551, 3556, 3558, 3565, 3568, 3570, 3572, 3578, 3583, 3586, 3588, 3590, 3592, 3594, 3596, 3598, 3600, 3602, 3604, 3606, 3608, 3610, 3612, 3614, 3616, 3618, 3620, 3622, 3624, 3626, 3628, 3630, 3632, 3634, 3636, 3638, 3640, 3642, 3644, 3646, 3648, 3651, 3653 }; #endif #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","IDENTIFIER", "TYPENAME","SELFNAME","PFUNCNAME","SCSPEC","TYPESPEC","CV_QUALIFIER","CONSTANT", "STRING","ELLIPSIS","SIZEOF","ENUM","IF","ELSE","WHILE","DO","FOR","SWITCH", "CASE","DEFAULT","BREAK","CONTINUE","RETURN","GOTO","ASM_KEYWORD","TYPEOF","ALIGNOF", "SIGOF","ATTRIBUTE","EXTENSION","LABEL","REALPART","IMAGPART","AGGR","VISSPEC", "DELETE","NEW","THIS","OPERATOR","CXX_TRUE","CXX_FALSE","NAMESPACE","TYPENAME_KEYWORD", "USING","LEFT_RIGHT","TEMPLATE","TYPEID","DYNAMIC_CAST","STATIC_CAST","REINTERPRET_CAST", "CONST_CAST","SCOPE","EMPTY","PTYPENAME","NSNAME","'{'","','","';'","THROW", "':'","ASSIGN","'='","'?'","OROR","ANDAND","'|'","'^'","'&'","MIN_MAX","EQCOMPARE", "ARITHCOMPARE","'<'","'>'","LSHIFT","RSHIFT","'+'","'-'","'*'","'/'","'%'","POINTSAT_STAR", "DOT_STAR","UNARY","PLUSPLUS","MINUSMINUS","'~'","HYPERUNARY","PAREN_STAR_PAREN", "POINTSAT","'.'","'('","'['","TRY","CATCH","PRE_PARSED_FUNCTION_DECL","EXTERN_LANG_STRING", "ALL","PRE_PARSED_CLASS_DECL","DEFARG","DEFARG_MARKER","TYPENAME_DEFN","IDENTIFIER_DEFN", "PTYPENAME_DEFN","END_OF_LINE","END_OF_SAVED_INPUT","')'","'}'","'!'","']'", "program","extdefs","@1","extdefs_opt",".hush_warning",".warning_ok","extension", "asm_keyword","lang_extdef","@2","extdef","@3","@4","using_decl","any_id","extern_lang_string", "template_header","@5","template_parm_list","maybe_identifier","template_type_parm", "template_template_parm","template_parm","template_def","datadef","ctor_initializer_opt", "maybe_return_init","eat_saved_input","fndef","constructor_declarator","@6", "@7","@8","@9","fn.def1","component_constructor_declarator","fn.def2","return_id", "return_init","base_init",".set_base_init","member_init_list","member_init", "identifier","notype_identifier","identifier_defn","explicit_instantiation", "@10","@11","@12","@13","@14","@15","@16","@17","begin_explicit_instantiation", "end_explicit_instantiation","template_type","self_template_type","template_close_bracket", "template_arg_list_opt","template_arg_list","template_arg","unop","expr","paren_expr_or_null", "paren_cond_or_null","xcond","condition","@18","compstmtend","already_scoped_stmt", "@19","nontrivial_exprlist","nonnull_exprlist","unary_expr",".finish_new_placement", ".begin_new_placement","new_placement","new_initializer","regcast_or_absdcl", "cast_expr","expr_no_commas","notype_unqualified_id","do_id","template_id","object_template_id", "unqualified_id","expr_or_declarator","notype_template_declarator","direct_notype_declarator", "primary","@20","new","delete","boolean.literal","string","nodecls","object", "decl","declarator","fcast_or_absdcl","type_id","typed_declspecs","typed_declspecs1", "reserved_declspecs","declmods","typed_typespecs","reserved_typespecquals","typespec", "typespecqual_reserved","initdecls","notype_initdecls","nomods_initdecls","maybeasm", "initdcl","@21","initdcl0_innards","@22","initdcl0","notype_initdcl0","nomods_initdcl0", "@23","maybe_attribute","attributes","attribute","attribute_list","attrib","any_word", "identifiers_or_typenames","maybe_init","init","initlist","fn.defpen","pending_inline", "pending_inlines","defarg_again","pending_defargs","structsp","@24","@25","@26", "@27","maybecomma","maybecomma_warn","aggr","named_class_head_sans_basetype", "named_class_head_sans_basetype_defn","named_complex_class_head_sans_basetype", "do_xref_defn","named_class_head","unnamed_class_head","class_head","maybe_base_class_list", "base_class_list","base_class","base_class.1","base_class_access_list","left_curly", "self_reference","opt.component_decl_list","component_decl_list","component_decl", "component_decl_1","components","notype_components","component_declarator0", "component_declarator","after_type_component_declarator0","notype_component_declarator0", "after_type_component_declarator","notype_component_declarator","enumlist","enumerator", "new_type_id","cv_qualifiers","nonempty_cv_qualifiers","suspend_mom","nonmomentary_expr", "maybe_parmlist","after_type_declarator","nonnested_type","complete_type_name", "nested_type","direct_after_type_declarator","notype_declarator","complex_notype_declarator", "complex_direct_notype_declarator","qualified_id","notype_qualified_id","overqualified_id", "functional_cast","type_name","nested_name_specifier","nested_name_specifier_1", "typename_sub","typename_sub0","typename_sub1","typename_sub2","explicit_template_type", "complex_type_name","ptr_to_mem","global_scope","new_declarator","direct_new_declarator", "absdcl","direct_abstract_declarator","stmts","errstmt","maybe_label_decls", "label_decls","label_decl","compstmt_or_error","compstmt","@28","simple_if", "@29","@30","implicitly_scoped_stmt","@31","stmt","simple_stmt","@32","@33", "@34","@35","@36","@37","@38","@39","@40","@41","@42","@43","@44","@45","function_try_block", "@46","@47","try_block","@48","@49","handler_seq","handler","@50","@51","type_specifier_seq", "handler_args","label_colon","for.init.statement","maybe_cv_qualifier","xexpr", "asm_operands","nonnull_asm_operands","asm_operand","asm_clobbers","parmlist", "complex_parmlist","defarg","@52","defarg1","parms","parms_comma","named_parm", "full_parm","parm","see_typename","bad_parm","exception_specification_opt","ansi_raise_identifier", "ansi_raise_identifiers","conversion_declarator","operator","operator_name", NULL }; #endif static const short yyr1[] = { 0, 112, 112, 114, 113, 113, 115, 115, 116, 117, 118, 119, 121, 120, 122, 122, 122, 122, 122, 122, 122, 123, 122, 124, 122, 122, 122, 122, 122, 125, 125, 125, 126, 126, 126, 126, 127, 127, 129, 128, 128, 130, 130, 131, 131, 132, 132, 133, 134, 134, 134, 134, 134, 134, 135, 135, 136, 136, 136, 136, 136, 136, 136, 136, 136, 137, 137, 138, 138, 138, 139, 139, 140, 140, 140, 142, 141, 141, 143, 141, 141, 144, 141, 141, 145, 141, 141, 146, 146, 146, 146, 146, 147, 147, 147, 147, 148, 148, 148, 148, 148, 148, 148, 149, 150, 150, 150, 151, 152, 153, 153, 153, 153, 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, 155, 155, 155, 156, 156, 156, 157, 157, 157, 159, 158, 160, 158, 161, 158, 162, 158, 163, 158, 164, 158, 165, 158, 166, 158, 167, 168, 169, 169, 169, 170, 171, 171, 172, 172, 173, 173, 174, 174, 175, 175, 175, 175, 175, 176, 176, 177, 177, 178, 178, 179, 179, 179, 181, 180, 180, 182, 182, 182, 182, 184, 183, 183, 185, 185, 185, 185, 186, 186, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 188, 189, 190, 190, 191, 191, 191, 191, 192, 192, 193, 193, 193, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, 195, 195, 195, 196, 197, 197, 198, 198, 198, 199, 199, 199, 200, 200, 200, 200, 201, 201, 202, 202, 202, 202, 203, 203, 203, 203, 203, 203, 203, 204, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 205, 205, 206, 206, 207, 207, 208, 208, 209, 210, 210, 211, 211, 211, 211, 211, 211, 212, 212, 213, 213, 214, 214, 214, 214, 214, 215, 215, 216, 216, 216, 216, 216, 216, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 219, 219, 219, 219, 220, 220, 221, 221, 221, 221, 221, 221, 221, 222, 222, 222, 223, 223, 224, 224, 225, 225, 226, 226, 228, 227, 227, 230, 229, 229, 231, 232, 234, 233, 233, 235, 235, 236, 236, 237, 238, 238, 239, 239, 239, 239, 239, 240, 240, 240, 240, 241, 241, 242, 242, 243, 243, 243, 243, 243, 244, 244, 244, 244, 244, 245, 246, 246, 246, 247, 247, 248, 248, 249, 249, 249, 251, 250, 250, 252, 250, 250, 250, 250, 250, 253, 254, 250, 250, 255, 255, 256, 256, 257, 257, 257, 257, 257, 258, 259, 260, 260, 260, 260, 260, 261, 262, 262, 262, 263, 264, 264, 265, 265, 265, 266, 266, 267, 267, 268, 268, 268, 268, 269, 269, 269, 269, 270, 271, 272, 272, 272, 272, 273, 273, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 275, 275, 275, 275, 275, 275, 275, 275, 275, 276, 276, 276, 277, 277, 277, 278, 278, 279, 279, 280, 280, 281, 281, 281, 281, 282, 282, 283, 283, 283, 284, 284, 285, 285, 286, 286, 286, 287, 287, 288, 288, 289, 290, 291, 291, 291, 291, 292, 292, 292, 292, 292, 292, 293, 293, 294, 294, 294, 295, 296, 296, 296, 296, 296, 296, 297, 297, 297, 297, 297, 297, 298, 298, 298, 298, 298, 298, 299, 299, 299, 299, 299, 299, 300, 300, 301, 301, 302, 302, 303, 303, 303, 304, 304, 304, 305, 305, 305, 306, 306, 306, 306, 307, 307, 308, 308, 308, 308, 309, 309, 309, 309, 310, 310, 310, 310, 310, 310, 311, 312, 312, 312, 313, 313, 314, 315, 315, 315, 315, 315, 315, 315, 316, 316, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 317, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, 319, 319, 319, 319, 320, 321, 321, 322, 322, 323, 324, 324, 326, 325, 328, 329, 327, 330, 331, 330, 332, 332, 333, 333, 334, 333, 333, 335, 336, 333, 337, 338, 333, 339, 340, 341, 342, 333, 343, 344, 333, 345, 333, 346, 333, 347, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 349, 350, 348, 352, 353, 351, 354, 354, 356, 357, 355, 358, 358, 359, 359, 360, 360, 360, 360, 361, 361, 361, 362, 362, 363, 363, 363, 364, 364, 365, 365, 366, 367, 367, 368, 368, 368, 369, 369, 369, 369, 369, 369, 369, 371, 370, 372, 372, 373, 373, 373, 373, 373, 374, 374, 375, 375, 375, 375, 375, 375, 376, 376, 377, 377, 378, 379, 379, 380, 380, 380, 381, 382, 382, 383, 383, 383, 383, 384, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385 }; static const short yyr2[] = { 0, 0, 1, 0, 2, 2, 1, 0, 0, 0, 1, 1, 0, 2, 2, 1, 1, 5, 4, 5, 4, 0, 6, 0, 5, 5, 2, 4, 2, 2, 3, 3, 1, 1, 2, 2, 1, 2, 0, 5, 3, 1, 3, 1, 0, 2, 2, 3, 1, 3, 1, 3, 1, 3, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 0, 1, 2, 0, 1, 4, 3, 3, 0, 8, 5, 0, 9, 6, 0, 8, 5, 0, 9, 6, 2, 2, 1, 2, 1, 6, 4, 6, 4, 2, 1, 2, 2, 1, 2, 1, 2, 2, 4, 2, 3, 0, 0, 1, 3, 2, 3, 1, 4, 2, 4, 2, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 6, 0, 6, 0, 5, 0, 5, 0, 7, 0, 7, 0, 6, 0, 6, 0, 0, 4, 4, 1, 4, 1, 1, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 0, 1, 1, 0, 7, 1, 1, 3, 4, 3, 0, 3, 1, 3, 3, 3, 3, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 4, 2, 3, 3, 4, 5, 6, 6, 7, 2, 4, 5, 2, 2, 1, 0, 4, 4, 3, 1, 3, 2, 3, 4, 1, 2, 5, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, 1, 2, 3, 1, 1, 1, 1, 1, 0, 5, 5, 5, 5, 5, 1, 1, 1, 1, 2, 2, 3, 4, 4, 1, 1, 1, 3, 1, 1, 1, 1, 3, 3, 3, 0, 4, 4, 2, 4, 2, 2, 1, 4, 1, 7, 7, 7, 7, 4, 4, 2, 2, 2, 1, 4, 2, 2, 5, 3, 2, 2, 5, 3, 5, 3, 4, 6, 2, 1, 2, 1, 2, 1, 1, 1, 2, 0, 2, 2, 3, 3, 3, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 3, 3, 3, 4, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 1, 1, 2, 2, 3, 1, 2, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, 1, 3, 1, 3, 1, 3, 0, 4, 0, 6, 3, 0, 4, 1, 3, 3, 0, 4, 3, 0, 1, 1, 2, 6, 1, 3, 0, 1, 4, 6, 4, 1, 1, 1, 1, 1, 3, 0, 2, 1, 2, 3, 4, 1, 1, 3, 4, 3, 5, 1, 4, 3, 3, 0, 3, 3, 3, 0, 2, 2, 0, 7, 4, 0, 6, 3, 2, 2, 2, 0, 0, 9, 1, 0, 1, 0, 1, 1, 2, 2, 2, 2, 2, 2, 3, 4, 3, 2, 3, 0, 1, 3, 2, 2, 1, 1, 0, 2, 3, 1, 4, 1, 3, 1, 1, 4, 4, 2, 2, 3, 3, 1, 0, 1, 2, 4, 3, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 3, 2, 2, 4, 4, 2, 1, 5, 4, 1, 0, 1, 3, 0, 1, 3, 1, 1, 1, 1, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 3, 1, 3, 1, 3, 2, 1, 7, 0, 2, 1, 2, 0, 2, 4, 4, 2, 4, 3, 3, 2, 2, 3, 1, 1, 2, 1, 1, 2, 2, 4, 4, 3, 3, 2, 1, 3, 3, 2, 2, 3, 1, 3, 3, 2, 2, 3, 1, 4, 3, 4, 3, 1, 2, 2, 2, 2, 2, 1, 2, 4, 4, 2, 1, 1, 1, 1, 2, 4, 2, 2, 2, 2, 1, 2, 2, 2, 2, 3, 1, 2, 3, 4, 2, 2, 2, 2, 2, 2, 4, 2, 1, 2, 2, 3, 1, 3, 2, 3, 2, 2, 3, 1, 3, 4, 3, 2, 2, 1, 3, 2, 2, 1, 2, 3, 1, 3, 1, 6, 4, 4, 3, 5, 3, 3, 3, 2, 1, 1, 2, 2, 2, 0, 1, 1, 2, 3, 1, 2, 0, 3, 0, 0, 5, 1, 0, 2, 1, 1, 1, 2, 0, 4, 1, 0, 0, 5, 0, 0, 7, 0, 0, 0, 0, 12, 0, 0, 7, 0, 5, 0, 7, 0, 4, 2, 2, 2, 3, 6, 8, 10, 12, 4, 3, 2, 2, 1, 1, 0, 0, 6, 0, 0, 5, 1, 2, 0, 0, 5, 1, 1, 3, 3, 2, 2, 2, 2, 2, 1, 2, 0, 1, 0, 1, 1, 0, 1, 1, 3, 4, 1, 3, 0, 1, 1, 1, 2, 2, 2, 1, 2, 2, 0, 3, 1, 1, 1, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 1, 2, 1, 2, 1, 1, 0, 0, 1, 0, 4, 2, 1, 1, 3, 0, 3, 3, 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 3, 2, 2, 4, 4, 3, 2 }; static const short yydefact[] = { 3, 12, 12, 5, 0, 4, 0, 257, 602, 603, 0, 360, 372, 549, 0, 11, 0, 0, 0, 10, 458, 805, 0, 0, 0, 148, 634, 258, 259, 64, 0, 0, 792, 0, 36, 0, 0, 13, 0, 8, 0, 16, 15, 70, 91, 67, 0, 604, 152, 276, 255, 277, 580, 0, 347, 0, 346, 365, 0, 385, 364, 402, 371, 0, 471, 470, 477, 476, 475, 453, 359, 565, 373, 566, 89, 275, 591, 563, 0, 605, 547, 0, 0, 256, 62, 63, 156, 608, 156, 609, 156, 260, 148, 121, 122, 123, 124, 125, 444, 447, 0, 630, 0, 448, 0, 0, 0, 0, 122, 123, 124, 125, 23, 0, 0, 0, 0, 0, 0, 0, 449, 612, 0, 618, 0, 0, 0, 0, 0, 0, 29, 0, 0, 38, 0, 156, 610, 0, 0, 578, 0, 0, 0, 577, 0, 0, 0, 0, 276, 0, 551, 0, 275, 547, 28, 0, 26, 3, 37, 0, 55, 54, 71, 14, 0, 400, 0, 0, 418, 68, 60, 611, 551, 0, 547, 61, 0, 0, 0, 87, 0, 381, 337, 562, 338, 574, 0, 547, 362, 361, 59, 90, 348, 0, 383, 363, 88, 354, 378, 379, 349, 367, 369, 358, 380, 0, 56, 403, 459, 460, 461, 462, 474, 130, 129, 131, 463, 464, 468, 0, 0, 477, 792, 473, 492, 493, 550, 366, 0, 397, 603, 0, 632, 152, 595, 596, 592, 568, 606, 0, 567, 564, 0, 840, 836, 835, 833, 815, 820, 821, 0, 827, 826, 812, 813, 811, 830, 819, 816, 817, 818, 822, 823, 809, 810, 806, 807, 808, 832, 824, 825, 814, 831, 0, 828, 738, 365, 739, 801, 260, 257, 549, 280, 326, 0, 0, 0, 0, 322, 320, 293, 324, 325, 0, 0, 0, 0, 0, 259, 252, 0, 0, 163, 162, 0, 164, 165, 0, 0, 166, 0, 0, 157, 158, 0, 226, 0, 229, 161, 279, 192, 0, 0, 281, 282, 0, 160, 344, 365, 345, 597, 305, 295, 0, 0, 0, 0, 156, 0, 446, 0, 441, 0, 631, 629, 0, 167, 168, 0, 0, 0, 407, 3, 21, 0, 626, 622, 623, 625, 627, 624, 121, 122, 123, 0, 124, 125, 614, 615, 619, 616, 613, 267, 268, 0, 266, 32, 33, 0, 594, 593, 31, 30, 40, 0, 360, 138, 0, 0, 365, 136, 0, 0, 576, 0, 575, 254, 271, 0, 584, 270, 0, 583, 0, 278, 588, 0, 0, 12, 0, 148, 9, 9, 0, 399, 401, 103, 74, 108, 727, 0, 66, 65, 73, 106, 0, 0, 104, 69, 590, 0, 0, 555, 0, 795, 0, 560, 0, 559, 0, 0, 0, 0, 547, 400, 0, 58, 551, 547, 573, 0, 351, 352, 0, 57, 400, 356, 355, 357, 350, 370, 387, 386, 465, 469, 467, 0, 472, 478, 0, 0, 368, 400, 547, 75, 0, 0, 0, 0, 547, 81, 548, 579, 603, 633, 152, 0, 0, 829, 834, 367, 547, 547, 0, 547, 839, 156, 0, 0, 0, 199, 0, 0, 201, 214, 215, 0, 0, 0, 0, 0, 253, 198, 195, 194, 196, 0, 0, 0, 0, 0, 279, 0, 0, 0, 193, 154, 155, 273, 0, 197, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 291, 292, 330, 329, 0, 0, 217, 217, 0, 203, 545, 0, 211, 327, 319, 0, 0, 792, 308, 311, 312, 0, 0, 339, 651, 647, 656, 0, 551, 547, 547, 547, 341, 654, 0, 601, 343, 0, 0, 342, 307, 0, 302, 321, 303, 323, 598, 0, 304, 151, 153, 0, 146, 0, 365, 144, 542, 456, 540, 443, 0, 0, 374, 0, 0, 375, 376, 377, 413, 414, 415, 412, 0, 405, 408, 0, 3, 0, 617, 156, 620, 27, 35, 34, 44, 0, 0, 0, 48, 52, 41, 791, 786, 0, 344, 365, 44, 345, 790, 50, 149, 134, 132, 149, 150, 274, 582, 581, 278, 585, 0, 18, 20, 70, 0, 109, 328, 0, 678, 72, 676, 424, 0, 420, 419, 191, 0, 190, 552, 589, 0, 768, 0, 763, 365, 0, 762, 764, 793, 775, 0, 0, 587, 558, 557, 0, 0, 572, 0, 395, 394, 382, 571, 0, 795, 561, 353, 384, 396, 400, 466, 602, 603, 792, 0, 792, 604, 479, 480, 482, 792, 485, 484, 0, 515, 603, 0, 506, 0, 0, 518, 0, 102, 97, 0, 152, 519, 522, 0, 498, 0, 100, 0, 400, 398, 795, 761, 156, 156, 607, 156, 795, 761, 547, 78, 547, 84, 838, 837, 801, 801, 801, 0, 0, 0, 0, 601, 0, 0, 0, 0, 365, 0, 0, 0, 285, 0, 283, 284, 0, 224, 159, 257, 602, 603, 258, 259, 0, 0, 425, 454, 0, 251, 250, 753, 752, 0, 248, 247, 245, 246, 244, 243, 242, 239, 240, 241, 237, 238, 232, 233, 234, 235, 236, 230, 231, 0, 0, 0, 0, 217, 205, 221, 0, 0, 204, 547, 547, 0, 547, 544, 641, 0, 0, 0, 0, 0, 310, 0, 314, 0, 316, 0, 650, 649, 646, 645, 791, 0, 0, 665, 0, 0, 795, 340, 795, 652, 547, 761, 551, 651, 647, 0, 0, 547, 0, 0, 0, 0, 0, 261, 149, 142, 140, 149, 0, 457, 0, 456, 189, 188, 187, 186, 407, 0, 0, 24, 0, 25, 621, 0, 46, 43, 44, 0, 39, 0, 0, 651, 647, 0, 782, 547, 785, 787, 0, 783, 784, 45, 463, 0, 139, 149, 149, 137, 17, 19, 388, 126, 114, 127, 128, 0, 107, 110, 0, 0, 0, 0, 677, 671, 421, 0, 105, 556, 553, 767, 781, 770, 0, 554, 766, 780, 769, 765, 794, 777, 788, 778, 771, 776, 797, 0, 392, 570, 569, 391, 489, 0, 488, 792, 792, 792, 0, 547, 761, 514, 507, 519, 508, 400, 400, 504, 505, 502, 503, 547, 761, 257, 602, 0, 387, 98, 510, 520, 525, 526, 387, 387, 0, 0, 387, 96, 511, 523, 387, 499, 500, 501, 400, 0, 450, 77, 0, 0, 0, 0, 83, 0, 795, 761, 795, 761, 803, 802, 804, 262, 294, 200, 202, 300, 301, 0, 0, 0, 0, 284, 287, 0, 0, 0, 0, 225, 0, 288, 290, 0, 0, 0, 0, 206, 223, 0, 0, 638, 636, 0, 639, 551, 212, 0, 0, 156, 317, 0, 0, 0, 648, 644, 655, 547, 664, 662, 663, 653, 795, 0, 660, 0, 599, 600, 0, 306, 147, 149, 149, 145, 543, 541, 445, 0, 406, 404, 257, 0, 22, 628, 47, 42, 49, 53, 650, 646, 651, 647, 0, 563, 0, 547, 652, 51, 135, 133, 0, 112, 0, 116, 0, 118, 0, 120, 0, 728, 0, 179, 679, 0, 672, 673, 0, 422, 651, 647, 0, 279, 0, 597, 789, 0, 0, 798, 799, 0, 0, 389, 0, 0, 0, 491, 490, 483, 795, 0, 509, 418, 418, 795, 0, 0, 0, 400, 400, 0, 400, 400, 0, 400, 0, 418, 0, 438, 547, 264, 263, 265, 547, 80, 0, 86, 0, 0, 0, 0, 0, 0, 428, 0, 426, 228, 249, 219, 218, 216, 207, 0, 220, 222, 637, 635, 642, 640, 0, 213, 0, 0, 309, 313, 315, 795, 658, 547, 659, 143, 141, 442, 0, 409, 411, 650, 646, 568, 652, 113, 111, 0, 0, 0, 0, 416, 0, 0, 257, 602, 603, 680, 693, 696, 699, 704, 0, 0, 0, 0, 0, 0, 258, 725, 730, 0, 749, 0, 688, 0, 0, 365, 0, 667, 686, 692, 666, 687, 726, 0, 674, 423, 0, 600, 779, 773, 774, 772, 0, 796, 393, 0, 486, 487, 481, 93, 547, 513, 517, 95, 547, 400, 400, 534, 418, 257, 602, 0, 521, 527, 528, 387, 387, 418, 418, 0, 418, 524, 512, 0, 795, 795, 547, 547, 0, 0, 0, 0, 427, 0, 0, 208, 209, 643, 318, 263, 661, 795, 0, 115, 117, 119, 735, 729, 733, 0, 675, 670, 182, 742, 744, 745, 0, 0, 684, 0, 0, 0, 711, 713, 714, 715, 0, 0, 0, 743, 0, 336, 750, 0, 689, 334, 387, 0, 335, 0, 387, 0, 0, 0, 180, 669, 668, 690, 724, 723, 284, 800, 390, 795, 795, 533, 530, 532, 0, 0, 400, 400, 400, 529, 531, 516, 440, 0, 439, 434, 76, 82, 795, 795, 296, 297, 298, 299, 429, 0, 210, 657, 410, 0, 734, 417, 171, 0, 681, 694, 683, 0, 0, 0, 0, 0, 707, 0, 716, 0, 722, 731, 0, 332, 333, 0, 0, 0, 331, 181, 684, 92, 94, 400, 400, 539, 418, 418, 0, 0, 452, 79, 85, 546, 0, 736, 178, 0, 365, 0, 684, 0, 697, 685, 671, 747, 700, 0, 0, 0, 0, 712, 721, 0, 0, 691, 538, 536, 535, 537, 437, 436, 430, 67, 70, 0, 0, 0, 172, 387, 682, 183, 695, 185, 0, 748, 0, 746, 705, 709, 708, 732, 754, 0, 0, 435, 740, 741, 737, 400, 671, 169, 0, 0, 175, 0, 174, 684, 0, 0, 0, 755, 756, 717, 433, 0, 432, 0, 184, 0, 698, 701, 706, 710, 0, 754, 0, 0, 431, 176, 170, 0, 0, 0, 718, 757, 0, 0, 758, 0, 0, 177, 702, 759, 0, 719, 0, 0, 0, 703, 760, 720, 0, 0, 0 }; static const short yydefgoto[] = { 1548, 408, 2, 409, 159, 669, 310, 164, 3, 4, 37, 633, 352, 737, 374, 39, 738, 384, 644, 898, 645, 646, 647, 41, 42, 420, 167, 163, 43, 739, 753, 1017, 759, 1019, 45, 740, 741, 168, 169, 421, 672, 930, 931, 613, 932, 217, 46, 920, 919, 660, 657, 1082, 1081, 881, 878, 134, 918, 47, 48, 528, 311, 312, 313, 314, 1247, 1499, 1404, 1501, 1443, 1532, 1122, 1478, 1496, 346, 870, 315, 1190, 825, 565, 832, 316, 317, 347, 319, 337, 50, 235, 376, 397, 51, 52, 320, 523, 321, 322, 323, 324, 422, 325, 1248, 461, 587, 326, 1249, 54, 200, 650, 327, 201, 501, 202, 180, 193, 58, 444, 462, 1271, 706, 1140, 181, 194, 59, 472, 707, 60, 61, 629, 630, 631, 1226, 427, 796, 797, 1469, 1470, 1436, 1384, 1299, 62, 617, 340, 1167, 1385, 1038, 884, 63, 64, 65, 66, 221, 67, 68, 69, 223, 724, 725, 726, 727, 225, 469, 470, 745, 746, 747, 990, 1000, 991, 1288, 992, 993, 1289, 1290, 614, 615, 566, 860, 329, 430, 431, 174, 182, 71, 72, 73, 183, 184, 151, 75, 130, 330, 331, 332, 77, 333, 79, 729, 121, 122, 123, 477, 103, 80, 334, 837, 838, 855, 590, 1252, 1253, 1123, 1124, 1125, 676, 1254, 937, 1255, 1332, 1446, 1407, 1408, 1256, 1257, 1426, 1333, 1447, 1334, 1480, 1335, 1482, 1527, 1542, 1336, 1503, 1456, 1504, 1413, 423, 673, 1224, 1258, 1346, 1459, 1323, 1324, 1399, 1473, 1445, 1441, 1259, 1452, 1349, 803, 1506, 1507, 1508, 1540, 692, 693, 957, 1136, 1267, 694, 695, 696, 953, 697, 144, 955, 699, 1138, 1139, 495, 82, 83 }; static const short yypact[] = { 96, 195,-32768,-32768, 5576,-32768, 23, 47, 205, 282, 116, 166,-32768,-32768, 1516,-32768, 189, 215, 233,-32768,-32768, -32768, 624, 1171, 994, 174,-32768, 184, 329,-32768, 1291, 1291,-32768, 4184,-32768, 5576, 248,-32768, 328, 81, 5836, -32768,-32768, 272, 1031, 371, 352, 368,-32768,-32768,-32768, -32768, 300, 1751,-32768, 4327,-32768, 1925, 606,-32768, 417, -32768,-32768, 779,-32768,-32768, 392,-32768,-32768, 409, 4293, -32768,-32768,-32768, 923,-32768,-32768,-32768, 1163,-32768,-32768, 319, 7614, 387,-32768,-32768, 9017,-32768, 9017,-32768, 9017, -32768,-32768,-32768, 205, 282, 184, 421, 405, 428, 368, -32768, 795,-32768, 319, 9017, 9017, 424,-32768,-32768,-32768, -32768,-32768, 197, 492, 381, 403, 539, 500, 516,-32768, -32768, 1124,-32768, 476, 205, 282, 1429, 184, 421,-32768, 357, 1634, 474, 10242, 9017,-32768, 9017, 3516,-32768, 1310, 360, 3516,-32768, 845, 3693, 3693, 4184, 468, 471, 491, 532, 549,-32768,-32768, 651,-32768, 560,-32768, 3960, 23, -32768,-32768,-32768, 603, 417, 680, 111, 404, 659,-32768, -32768, 611, 175,-32768,-32768, 4084, 4084, 4711, 923, 644, -32768,-32768, 359,-32768,-32768, 2254,-32768,-32768,-32768,-32768, -32768, 1925, 710,-32768, 417, 923,-32768,-32768,-32768, 2089, 1925,-32768, 417,-32768, 4739,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768, 368, 1227, 1082, 392,-32768,-32768,-32768,-32768,-32768, 1351, 319,-32768, 563, 1527,-32768, 251,-32768,-32768,-32768,-32768,-32768, 4212,-32768, -32768, 416,-32768, 643, 648,-32768,-32768,-32768,-32768, 684, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 646,-32768,-32768, 1351, 4293, 890,-32768,-32768, 674,-32768,-32768, 9625, 9711, 9797, 9797,-32768,-32768,-32768, -32768,-32768, 687, 703, 723, 735, 747, 421, 9103, 845, 9797,-32768,-32768, 9797,-32768,-32768, 9797, 7092,-32768, 9797, 79, 765,-32768, 9797,-32768, 9189,-32768, 10651,-32768, 1587, 1298, 9275,-32768, 820, 2141,-32768, 1861, 2029, 10335,-32768, 259,-32768, 1768, 2209, 79, 79, 9017, 10242,-32768, 845, 697, 845,-32768,-32768, 720, 775, 10584, 730, 751, 769, 1873, 560,-32768, 1429,-32768,-32768,-32768,-32768,-32768,-32768, 492, 381, 403, 845, 539, 500, 799, 516,-32768, 827, -32768, 205, 282, 830,-32768,-32768,-32768, 1634,-32768,-32768, -32768,-32768,-32768, 5089,-32768,-32768, 4739, 10544, 2149,-32768, 79, 650,-32768, 495,-32768,-32768,-32768, 3516,-32768,-32768, 3516,-32768, 788,-32768,-32768, 4212, 54, 802, 814,-32768, -32768,-32768, 651,-32768, 417,-32768,-32768,-32768,-32768, 136, -32768,-32768,-32768,-32768, 7183, 9103,-32768,-32768,-32768, 9103, 793,-32768, 6540, 100, 4453,-32768, 4453,-32768, 4546, 4546, 4711, 813,-32768, 417, 4739,-32768, 823,-32768,-32768, 4648, 2089, 1925, 4739,-32768, 417,-32768,-32768, 417, 2089,-32768, 909,-32768,-32768, 368,-32768, 1227,-32768, 2351, 1705, 56, 1351, 417,-32768,-32768, 869, 871, 902, 891,-32768,-32768, -32768,-32768, 989,-32768, 264, 853, 856,-32768,-32768, 1351, -32768,-32768, 682,-32768,-32768, 9017, 9103, 674, 7092,-32768, 444, 7092,-32768,-32768,-32768, 9017, 4911, 4911, 4911, 4911, 10629,-32768,-32768,-32768,-32768, 861, 9883, 9883, 7092, 863, 468, 864, 915, 867,-32768,-32768,-32768,-32768, 9017,-32768, 6722, 7092,-32768, 9103, 9103, 7274, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103, 9103,-32768,-32768,-32768,-32768,-32768, 9103, 9103,-32768,-32768, 3090, 489, 551, 7974,-32768,-32768, -32768, 927, 1527, 970, 469, 475, 493, 1785, 360,-32768, 454, 454,-32768, 5298, 878, 901, 962,-32768,-32768, 427, 8472, 858,-32768, 812, 319,-32768,-32768, 9103,-32768,-32768, -32768,-32768,-32768, 89, 387,-32768,-32768, 79,-32768, 4739, 2405,-32768, 948, 961,-32768,-32768, 845, 799,-32768, 7706, 7797,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 113,-32768, 929, 921, 560, 973, 983, 9017,-32768,-32768,-32768,-32768, 1188, 174, 1009, 152, 988, 990,-32768,-32768, 2783, 10297, 2783, 2555, 779, 5228,-32768, 995,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768, 952,-32768, 1001,-32768,-32768, 272, 80, 200, 1003, 915,-32768,-32768,-32768,-32768, 5722, 10629, -32768, 775, 969, 10584,-32768,-32768, 971,-32768, 972, 369, 3338, 975,-32768, 190, 10060, 1017, 1020, 503,-32768,-32768, -32768, 4453, 4453,-32768, 4648,-32768, 1033,-32768,-32768, 992, 100,-32768, 2089,-32768,-32768, 417,-32768, 381, 403,-32768, 1006,-32768, 516, 1041,-32768,-32768, 121,-32768,-32768, 1284, -32768, 999, 485,-32768, 9103, 3453,-32768, 3453, 278, 278, 135, 511, 3359, 10115, 4809,-32768, 126, 278, 1043, 417, -32768, 100, 10487, 9017, 9017,-32768, 9017, 100, 10487,-32768, -32768,-32768,-32768,-32768,-32768, 920, 920, 920, 79, 1002, 1004, 9367, 962, 1008, 1010, 1012, 1042, 3242, 1046, 1047, 1049,-32768, 1024,-32768,-32768, 1026,-32768,-32768, 1078, 356, 749, 170, 63, 9103, 1080,-32768, 1084, 1037, 10629, 10629, -32768,-32768, 1086, 3084, 5372, 4500, 4604, 1948, 3842, 4235, 2445, 2445, 2445, 1239, 1239, 1443, 1443, 707, 707, 707, -32768,-32768, 1048, 1038, 9103, 9017,-32768, 489,-32768, 7183, 9103,-32768,-32768,-32768, 9103,-32768,-32768, 1063, 9797, 1053, 1071, 1103, 1132,-32768, 9103,-32768, 9103,-32768, 9103, 2727, -32768, 2727,-32768, 88, 1074, 1077,-32768, 1075, 4911, 100, -32768, 100, 4056,-32768, 10487, 1076, 8656, 8656, 6032, 1087, 9189, 1089, 2282, 2209, 859, 1093,-32768,-32768,-32768,-32768, -32768, 9103, 845, 1085, 961,-32768, 10629,-32768, 10629, 1873, 1095, 9453,-32768, 1096,-32768,-32768, 79,-32768,-32768, 1641, 5089,-32768, 4911, 9017, 2001, 2001, 6141,-32768,-32768,-32768, -32768, 2254,-32768,-32768,-32768, 255, 9103,-32768,-32768,-32768, -32768,-32768,-32768,-32768, 492,-32768, 539, 500, 9103, 1139, -32768, 531, 537, 595, 915,-32768, 48,-32768, 35,-32768, -32768,-32768,-32768,-32768,-32768, 8564,-32768,-32768,-32768,-32768, -32768,-32768,-32768, 1020, 1144,-32768,-32768,-32768, 4911,-32768, -32768,-32768, 1145,-32768, 9017,-32768,-32768,-32768,-32768, 1014, -32768, 10487, 10629,-32768, 1090,-32768, 417, 417,-32768,-32768, -32768,-32768,-32768, 10487, 507, 792, 9103, 909,-32768, 1151, -32768,-32768,-32768, 398, 652, 1163, 360, 706, 278, 1154, -32768, 767,-32768,-32768,-32768, 417, 4992,-32768,-32768, 1107, 79, 79, 79,-32768, 1108, 100, 10487, 100, 10487,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1128, 1141, 1146, 1147, 952,-32768, 5946, 7183, 6816, 1138,-32768, 9103, -32768,-32768, 1140, 1142, 1148, 4911,-32768,-32768, 1149, 199, 614, 614, 1143, 614,-32768,-32768, 9797, 1253, 9017,-32768, 1157, 1160, 1164,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768, 100, 1165,-32768, 1169,-32768,-32768, 2491,-32768,-32768, -32768,-32768,-32768, 10629,-32768,-32768, 1162,-32768,-32768, 128, 1166,-32768,-32768,-32768,-32768,-32768,-32768, 2390, 2390, 2463, 2463, 6141,-32768, 2254,-32768, 3175, 10651,-32768,-32768, 1168, -32768, 200,-32768, 9103,-32768, 9103,-32768, 9103,-32768, 845, -32768,-32768, 6353, 1257,-32768, 6907,-32768, 8748, 8748, 6446, 77, 1178, 238,-32768, 7183, 6998,-32768,-32768, 142, 7183, -32768, 1193, 1196, 2351,-32768,-32768,-32768, 100, 1197,-32768, 1247, 1247, 100, 1219, 9103, 9103, 10406, 417, 3714, 417, 417, 936, 417, 3813, 1247, 5460,-32768,-32768,-32768, 1275, -32768,-32768,-32768, 1223,-32768, 1225, 9103, 9103, 9103, 9103, 7183,-32768, 1273,-32768,-32768, 10629,-32768,-32768,-32768, 419, 1148,-32768,-32768,-32768,-32768,-32768,-32768, 1233,-32768, 1302, 79,-32768,-32768,-32768, 100,-32768,-32768,-32768,-32768,-32768, -32768, 9103,-32768,-32768, 2390, 2390,-32768, 3175,-32768,-32768, 1242, 1249, 1254, 1267,-32768, 759, 155, 1312, 817, 844, -32768,-32768,-32768,-32768,-32768, 9103, 1314, 1317, 1318, 8840, 214, 509,-32768,-32768, 8931, 1371, 1321,-32768, 4420, 10183, 10352, 6243,-32768,-32768, 1366,-32768,-32768,-32768, 8083,-32768, -32768, 1277, 377,-32768,-32768,-32768,-32768, 4911,-32768,-32768, 7183,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 10406, 10406,-32768, 1247, 593, 934, 9103,-32768,-32768,-32768, 909, 909, 1247, 1247, 989, 1247,-32768,-32768, 5896, 100, 100,-32768,-32768, 1278, 1280, 1285, 1286,-32768, 7183, 9103, -32768, 419,-32768,-32768,-32768,-32768, 100, 1287,-32768,-32768, -32768,-32768, 1267,-32768, 845,-32768,-32768,-32768,-32768,-32768, -32768, 597, 597, 915, 1290, 1304, 10384,-32768,-32768,-32768, -32768, 1340, 9103, 1343,-32768, 915,-32768,-32768, 1319,-32768, -32768, 909, 781,-32768, 785, 909, 9539, 829, 165,-32768, -32768,-32768,-32768,-32768,-32768, 274,-32768,-32768, 100, 100, -32768,-32768,-32768, 9103, 9103, 10406, 417, 417,-32768,-32768, -32768,-32768, 7888,-32768,-32768,-32768,-32768, 100, 100,-32768, -32768,-32768,-32768,-32768, 1296,-32768,-32768,-32768, 1320,-32768, -32768,-32768, 9017,-32768,-32768,-32768, 1394, 8379, 6631, 9017, 9103,-32768, 8191,-32768, 1354,-32768,-32768, 651,-32768,-32768, 9969, 9969, 7365,-32768,-32768, 915,-32768,-32768, 10406, 10406, -32768, 1247, 1247, 1315, 10539, 1324,-32768,-32768,-32768, 10500, -32768,-32768, 1316, 627, 4739, 915, 8285,-32768,-32768, 48, -32768,-32768, 1365, 1322, 10607, 8191,-32768,-32768, 1267, 74, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 371, 272, 1329, 1332, 915,-32768, 909,-32768,-32768,-32768,-32768, 604, -32768, 7456,-32768,-32768,-32768,-32768, 1267, 1430, 1382, 150, -32768,-32768,-32768,-32768, 417, 48,-32768, 9103, 1384,-32768, 1385,-32768, 915, 8191, 1353, 590, 1391,-32768,-32768,-32768, 136,-32768, 1387,-32768, 1347,-32768,-32768,-32768,-32768, 9103, 1430, 1396, 1430,-32768,-32768,-32768, 7547, 1350, 591,-32768, -32768, 7183, 1352,-32768, 1448, 1402,-32768,-32768,-32768, 178, -32768, 8285, 1453, 1409,-32768,-32768,-32768, 1472, 1475,-32768 }; static const short yypgoto[] = {-32768, 1476,-32768, -313,-32768, 1067, 18, 10, 1478,-32768, 350, -32768,-32768, 562, 1130,-32768, 8,-32768,-32768, -601,-32768, -32768, 581,-32768, 1333, -664, 19, -660, 1336, 64,-32768, -32768,-32768,-32768,-32768, 755,-32768,-32768,-32768,-32768,-32768, -32768, 389, 1718,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768, 1413, -639, 5081, 60, -126, -62, 1369, -495,-32768, 58,-32768, 176,-32768, -1305,-32768, -761, -32,-32768, 1361, 732, -213, 322, -509,-32768, -793, 3493, 414, 1065, 3507, 1236, -307, -74, -9, 570, -70, 208, -32768,-32768,-32768, -309,-32768, -151,-32768,-32768, -1171, -37, -321, 1870, 57, 1134, -152, 40, 94, -186, -4, -168, -900, 279,-32768, 33, -110,-32768, -229,-32768,-32768,-32768, -32768,-32768, 212, 2459, -14,-32768, 638,-32768,-32768, -1006, -361, 857,-32768,-32768,-32768,-32768,-32768, -52,-32768,-32768, -32768,-32768,-32768, 654, -371,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 1325,-32768, 391, 567,-32768,-32768,-32768,-32768, 538, -682,-32768,-32768,-32768,-32768,-32768,-32768, 803,-32768, 384, 937, 668, 1015, 3222, 7, 17, -417, 1370, 1885, -439,-32768, 6,-32768, 4950, -143, 566, -65, 3794, 1230, -32768, 4464, 1839, 129, -8, -105,-32768, 1437, -63,-32768, 4081, 2623, -293,-32768, 2343,-32768,-32768, 312,-32768,-32768, 442, 75, -397,-32768,-32768,-32768,-32768, -1311,-32768, -1146, -1329,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768, 85,-32768,-32768,-32768,-32768, -32768, 110, -1247,-32768,-32768, -58,-32768,-32768,-32768,-32768, -1349, 50,-32768, 68,-32768, -645, -496, 633,-32768,-32768, -32768,-32768, -383,-32768, -366, -111,-32768, 924, 324,-32768, 46,-32768, -214 }; #define YYLAST 10735 static const short yytable[] = { 57, 655, 399, 402, 407, 204, 452, 592, 236, 935, 923, 70, 40, 653, 36, 120, 179, 478, 656, 371, 101, 921, 35, 677, 278, 602, 335, 601, 336, 728, 710, 57, 457, 460, 788, 1047, 57, 138, 142, 632, 451, 471, 70, 40, 55, 36, 207, 70, 40, 459, 36, 192, 915, 35, 974, 826, 976, 379, 35, 370, 1453, 53, 377, 1003, 681, 570, 227, 382, 44, 173, 236, 500, 503, 391, 1347, 55, 1400, 165, 276, 1449, 55, 1120, 328, 84, 328, 570, 328, 240, 856, 277, 490, 570, 53, 749, 1126, 856, -1, 53, 56, 44, 943, 328, 328, 533, 44, 1454, 1362, 229, 1010, 481, 343, 468, 417, 1365, 1015, 1461, 236, 136, 1479, 191, 605, 86, 380, 381, -276, -125, 786, 288, 968, 56, 389, 328, 85, 328, 56, 1476, 1488, 674, 233, 157, 204, 70, 490, 26, 1127, 1277, 1278, 944, 204, 204, 945, 1510, 398, 401, 526, 57, 527, 1121, 969, 1298, 979, 698, 667, 345, 349, 750, 70, 173, 858, -328, -276, -276, 890, 418, 388, 204, 275, 1502, 1533, 158, 773, 207, 1489, 435, 437, -269, 1004, 1212, 924, 207, 91, 387, 1518, 980, 675, -2, 787, 981, 386, 55, 173, 1268, 948, 925, 718, 719, 419, 238, -328, 606, 607, 901, 418, 1479, 92, 1327, 53, 93, 108, 109, 1073, 891, 432, 44, 204, 1327, 715, 902, 56, 455, 982, 238, -124, 933, 240, 1005, 1213, 1543, 1451, 1080, 1400, 150, 1083, 751, 135, 419, 580, 926, 133, 949, 1269, 575, 950, 56, 26, 353, 927, 928, 135, 87, 238, 354, 671, 567, 1328, 661, 662, 1457, 433, 238, 110, 111, 900, 227, 1425, 608, 204, 936, 1373, 88, 1108, 1109, 105, 457, 460, -591, 1544, 1379, 1380, 377, 1381, 457, 772, 929, 1343, 602, 399, 402, 479, 1094, 713, 635, 485, 460, 328, 15, 597, 1193, 106, -387, 1486, 762, 655, 640, -43, 238, 576, 276, 1046, -43, 894, -278, 460, 8, 9, 227, 107, 1149, 277, 954, -43, -591, -591, 328, 611, 708, 89, 204, -387, 1154, 240, 155, -387, 714, 480, 70, -591, -551, 238, 1353, 658, 1358, 598, 150, 150, 150, 90, 763, 1519, 478, 280, 372, 373, 10, 125, 126, 520, -278, -278, 639, 592, 238, 1174, 856, 1176, 128, 129, 414, 388, 162, 652, 943, -272, 136, 192, 154, 150, -387, 156, -278, 161, 654, 643, -551, 172, 610, 166, 1311, 21, 204, 204, 207, 609, 137, -278, 231, -551, 204, -278, 1097, 87, 856, 170, 27, 298, 275, 128, 129, -122, 204, 8, 483, 171, -337, -278, 15, 1464, 1465, 944, 691, 88, 945, 56, -791, 769, 356, -278, -278, 204, -278, 654, -278, 1209, 1210, 207, 32, 702, 703, 18, 1075, 856, 424, -551, 447, 222, 88, -337, 357, 125, 126, -337, 279, 238, 13, 342, 57, 829, 224, 425, 1048, -278, -278, 128, 129, 864, 136, 70, 90, 651, 114, 115, 116, 877, 830, 1003, -278, 341, 736, 685, 125, 126, 580, 328, -337, 716, 328, 484, 426, 328, 125, 126, 580, 328, 778, 778, 778, 778, 567, 26, 744, 128, 129, 831, 1310, 339, 328, 844, 351, 655, 1396, 865, 866, 846, 238, 581, 328, 743, 651, 328, 742, 653, 728, 117, 118, 582, 656, 829, 772, 1119, 26, 848, 128, 129, 342, 583, 457, 355, 584, 585, 383, 958, 128, 129, 830, 359, 125, 126, 520, 983, 204, 520, 276, 845, 56, 775, 602, 38, 601, 847, 1155, 360, 1345, 277, 879, 897, 484, -269, 520, 1113, 404, 652, 86, 831, 135, 1115, 172, 849, 691, 850, 852, 520, 654, 490, 358, 802, 238, 959, 38, 654, 152, 204, 240, 38, 149, 984, 26, 856, 128, 129, 964, 473, 966, 908, 135, 913, 914, 970, 89, 125, 126, 824, 833, 238, 481, 1114, 371, 840, 93, 108, 109, 1116, 834, 328, 120, 856, 198, 199, 90, 1198, 204, 405, 14, 1117, 1023, 1402, 835, 192, 150, 150, 150, 227, 1497, 1521, 1535, 914, 1374, 474, -586, 533, 275, 605, 204, 283, 20, 934, 205, 206, 86, 26, -7, 128, 129, 23, 933, 580, 1182, 1184, -338, 651, 15, 110, 111, 112, 416, 833, 651, 125, 126, 1118, 1481, 1403, 652, 1011, 1012, 834, 1013, 413, 1498, 1522, 1536, 504, 505, 654, 445, 446, 728, 989, 238, 835, 529, -338, 152, 152, 152, -338, 513, 400, 403, 514, 428, 772, 515, 429, 238, 525, 526, 204, 527, 530, 773, 342, -101, 57, 15, 57, 1514, 569, 486, 128, 129, 192, 57, 487, 70, 152, 70, 488, -338, 149, 652, 328, 328, 70, 328, 736, 652, 736, 489, 1194, 1195, 654, 1197, 232, 736, -101, 1184, 654, 497, -101, 453, 454, 1093, 977, 978, 1264, 1266, 744, 507, 744, 1270, 506, 1006, 93, 94, 95, 744, 208, 209, 210, 651, 554, 555, -99, 743, 15, 975, 742, 508, 742, 8, 9, -101, 743, 89, 742, 742, 616, 988, 998, 509, 1491, -123, 1020, 1021, 1022, 211, 8, 9, 1325, 1326, 1308, 510, 328, 90, 529, -99, 1511, 1050, 619, -99, 56, 570, 56, 26, 620, 96, 97, 212, 622, 56, 445, 1419, 236, 342, 453, 1420, 87, 651, 93, 108, 109, 128, 129, 651, 1156, 778, 1144, 1145, 1146, 623, 342, 652, -99, 8, 9, 691, 88, -547, 128, 129, -547, 87, 654, 636, 850, 852, 654, 624, 522, 1330, 240, 637, 213, 214, 215, 1169, 1170, 1171, 445, 1424, 638, 88, 232, 1053, 125, 126, 665, 652, 89, 778, 328, 110, 111, 652, 686, 861, 1331, 342, 654, 643, 1368, -6, 1098, 1099, 654, 128, 129, -547, 90, -547, -547, 704, -547, 668, 125, 126, 236, 520, 963, 481, 773, 513, 514, -547, 709, -547, 15, 1406, 989, 484, 125, 1295, 691, 754, 26, 755, 128, 129, 1394, 1417, 15, -547, -547, 654, -387, 778, 756, 399, 402, 651, 491, 328, 1008, 651, 764, 757, -547, 765, 652, 782, 492, 784, 785, 675, 26, 787, 128, 129, 843, 654, 652, 841, -387, -387, 342, 399, 402, -387, 87, 857, 491, 654, 128, 129, 859, 651, 1375, 1201, 125, 126, 492, 651, 238, 57, 238, 152, 152, 152, 88, 861, 400, 403, 882, 652, 70, 652, 484, 114, 718, 719, 883, 1158, 892, 1142, 654, 736, 654, 1160, 1161, 1406, 893, 1158, 1163, 895, 236, 1161, 760, 896, 127, 988, 651, 238, 778, 89, 721, 20, 971, 744, 26, 1406, 128, 129, 903, 89, 904, 328, 233, 655, 15, 917, -272, 922, -387, 90, 743, 418, 651, 742, 26, 522, 117, 118, 522, 90, 1472, 1315, 1494, 940, 651, 941, 942, -790, 761, 947, 956, 93, 94, 95, 400, 783, -387, -387, 972, 985, 986, 9, 10, 960, 652, 965, 967, 56, 522, 961, 934, 1007, 1406, 1215, 1216, 654, 1024, 651, 1025, 651, 677, 150, 1026, 1029, 1027, 1251, 1028, 1030, 1031, 773, 1032, 238, 691, 361, 362, 363, 70, 21, 1033, 1246, 1034, 1215, 1216, 654, 96, 97, -121, 1245, 1036, 1037, 26, 1039, 27, 28, 1040, 1042, 1150, 318, 987, 318, 150, 318, 1041, 1055, 683, 1058, 176, 872, 57, 1250, 1057, 689, 7, 8, 230, 10, 177, 1537, 364, 70, 114, 115, 116, 1059, 32, 1060, 365, 366, 1066, 178, 736, 1067, 1068, 1074, 520, 1151, 1152, 361, 362, 363, 1086, 1076, 651, 1077, 1112, 204, 318, 1079, 318, 1089, 21, 1092, 744, 238, 1135, 1141, 1159, 231, 1352, 1164, 1352, 1168, 1172, 56, 1165, 27, 28, 1177, 485, 743, 651, 26, 742, 117, 118, 770, 93, 94, 95, 238, 1178, 1304, 1305, 1306, 1307, 1179, 1180, 1251, 26, 232, 365, 366, 192, 1185, 1251, 1187, 1188, 32, 70, 1056, 1196, 1251, 1189, 1192, 490, 70, 56, 1200, 1246, 1245, 778, 1202, 70, 1460, 1203, 1246, 1245, 1211, 1204, 1207, 1214, 342, 1219, 1245, 399, 402, 1208, 513, 514, 96, 97, 1250, 1263, 114, 718, 719, 1120, 238, 1250, 823, 7, 125, 126, 10, 1342, 1250, 13, 1272, 8, 9, 1273, 1276, 12, 13, 150, 150, 150, 425, 14, 7, 125, 126, 10, 549, 550, 551, 552, 553, 554, 555, 1377, 1378, 16, 1280, 17, -628, 876, 1302, 21, 1303, 20, 1309, 150, 150, 150, 56, 117, 118, 872, 23, 1313, 26, 56, 27, 28, 1314, 1319, 21, 26, 56, 128, 129, 563, 1320, 231, 198, 199, 30, 1321, 1322, 511, 14, 27, 28, 1395, 1283, 1284, 31, 1293, 1294, 1329, 1296, 1338, 1339, 1340, 32, 1348, 1350, 1363, 1409, 33, 1366, 1390, 20, 1391, 455, 232, 564, 204, 1392, 1393, 1398, 23, 1410, 32, 1444, 1414, 1415, 318, 1416, 1251, 1251, 1444, 1439, 1475, 1251, 277, 1448, 1418, 1440, 1458, 70, 70, 277, 1246, 328, 70, 1468, 1466, 1246, 1474, 1483, 1245, 1245, 702, 703, 1484, 1245, 280, 372, 373, 10, 652, 1492, 400, 783, 1493, 1505, 1509, 1251, 1516, 1517, 1520, 654, 1250, 1250, 1523, 1525, 1251, 1250, 70, 1526, 1530, 1246, 1534, 1539, 1538, 1442, 1541, 70, 1546, 1245, 1246, 802, 1442, 1547, 21, 1199, 1549, 152, 1245, 1550, 1, 149, 1444, 670, 5, 520, 1095, 26, 634, 27, 298, 1250, 1490, 277, 680, 684, 411, 1371, 1372, 412, 1250, 275, 684, 999, 1251, 1220, 56, 56, 275, 338, 392, 56, 1495, 1405, 1545, 70, 152, 1312, 1246, 496, 1132, 32, 649, 93, 94, 95, 1245, 551, 552, 553, 554, 555, 1088, 1355, 93, 108, 109, 475, 651, 1274, 939, 1147, 1251, 1087, 1442, 56, 513, 514, 1250, 1166, 467, 1001, 1297, 70, 56, 1085, 1246, 448, 885, 577, 1515, 1043, 1044, 369, 1245, 318, 684, 1049, 1361, 150, 1260, 649, 21, 1487, 26, 1529, 96, 97, 98, 1512, 275, 1061, 1528, 1062, 828, 1063, 1250, 110, 111, 802, 1524, 1134, 1431, 1432, 1433, 1531, 1367, 0, 318, 0, 680, 0, 56, 799, 800, 0, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 0, 0, 0, 1091, 0, 684, 0, 0, 150, 150, 150, 0, 0, 556, 962, 56, 280, 372, 373, 10, 1462, 1463, 0, 93, 108, 109, 0, 208, 209, 210, 0, 0, 0, 0, 0, 684, 0, 0, 525, 0, 1110, 0, 684, 0, 0, 152, 152, 152, 0, 0, 400, 403, 557, 558, 21, 1009, 211, 559, 560, 561, 562, 1014, 0, 0, 887, 889, 0, 0, 0, 27, 298, 0, 0, 152, 152, 152, 110, 111, 400, 1262, 318, 0, 0, 0, 0, 731, 1513, 7, 8, 732, 10, 385, 12, 13, 0, 0, 0, 649, 14, 0, 0, 32, 0, 0, 649, 0, 0, 0, 0, 0, 0, 99, 16, 0, 17, 18, 19, 0, 0, 113, 20, -494, 0, 680, 0, 21, 0, 0, 0, 23, 733, 0, 642, 7, 8, 9, 10, 0, 26, 0, 27, 28, 0, 0, 734, 0, 735, 0, 0, 0, 280, 8, 9, 10, 30, 0, 0, 0, 0, 0, 216, 0, 0, 1069, 31, 1070, 682, 280, 125, 126, 10, 21, 32, 682, 0, 0, 0, 33, 0, 973, 0, 0, 0, 0, 26, 0, 27, 28, 21, 0, 175, 0, 0, -494, 0, 231, 0, 0, 318, 318, 176, 318, 0, 27, 298, 21, 0, 0, 649, 0, 177, 0, 231, 0, 513, 514, 684, 0, 32, 367, 27, 298, 78, 178, 0, 1221, 0, 1222, 0, 1223, 0, 0, 102, 0, 0, 32, 0, 682, 1035, 0, 0, 396, 131, 0, 125, 126, 0, 0, 140, 140, 0, 140, 32, 78, 0, 93, 108, 109, 78, 625, 626, 627, 0, 0, 0, 0, 649, 0, 0, 684, 684, 186, 649, 78, 680, 684, 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, 0, 580, 102, 684, 0, 684, 0, 684, 26, 0, 128, 129, 0, 242, 102, 682, 152, 0, 0, 0, 1132, 0, 110, 111, 581, 197, 198, 199, 0, 0, 463, 465, 14, 1173, 582, 1175, 102, 1318, 0, 0, 1084, 0, 476, 0, 583, 682, 0, 584, 585, 18, 684, 0, 682, 0, 20, 0, 0, 0, 0, 131, 0, 0, 318, 23, 131, 0, 78, 0, 348, 350, 140, 0, 0, 394, 140, 1107, 0, 140, 140, 140, 152, 152, 152, 0, 0, 400, 1262, 684, 0, 1206, 0, 78, 649, 0, 0, 0, 649, 7, 8, 9, 10, 0, 0, 13, 684, 0, 0, 0, 186, 186, 186, 512, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 125, 126, 649, 0, 198, 199, 0, 0, 649, 21, 14, 186, 0, 0, 0, 580, 0, 0, 0, 1157, 0, 0, 26, 0, 27, 28, 466, 618, 436, 438, 442, 0, 20, 0, 102, 0, 628, 0, 905, 1275, 0, 23, 0, 580, 1279, 140, 0, 649, 906, 618, 26, 0, 128, 129, 0, 0, 32, 0, 583, 0, 0, 907, 585, 456, 198, 199, 581, 0, 680, 680, 14, 0, 1186, 649, 0, 0, 582, 0, 0, 0, 0, 0, 0, 102, 493, 649, 583, 18, 0, 591, 585, 318, 20, 0, 0, 0, 1316, 0, 0, 0, 682, 23, 0, 0, 0, 0, 0, 0, 0, 571, 0, 280, 372, 373, 10, 0, 572, 0, 649, 0, 649, 0, 0, 197, 198, 199, 0, 102, 0, 0, 14, 578, 0, 493, 493, 594, 0, 0, 0, 0, 0, 0, 0, 0, 78, 524, 684, 18, 684, 21, 684, 717, 20, 682, 682, 0, 573, 0, 680, 682, 131, 23, 26, 0, 27, 298, 0, 680, 680, 0, 0, 0, 680, 682, 0, 682, 659, 682, 0, 599, 8, 9, 10, 0, 131, 0, 0, 1281, 1282, 0, 102, 1386, 1387, 186, 102, 0, 574, 0, 0, 0, 0, 0, 0, 649, 140, 0, 0, 140, 1397, 0, 0, 0, 140, 680, 288, 600, 795, 21, 0, 0, 682, 648, 0, 0, 7, 8, 9, 10, 0, 0, 26, 649, 128, 129, 0, 0, 0, 0, 0, 0, 0, 186, 0, 186, 684, 186, 186, 186, 0, 0, 0, 186, 280, 8, 9, 10, 186, 682, 842, 186, 1427, 1428, 21, 0, 0, 0, 0, 0, 1337, 231, 690, 0, 0, 0, 682, 78, 0, 27, 28, 1437, 1438, 0, 0, 0, 0, 0, 0, 700, 0, 701, 21, 436, 438, 442, 0, 0, 0, 231, 0, 0, 0, 232, 712, 680, 0, 27, 298, 0, 0, 32, 0, 0, 0, 102, 102, 102, 102, 0, 0, 1376, 0, 114, 718, 719, 0, 720, 899, 0, 0, 232, 0, 0, 0, 0, 0, 0, 771, 32, 916, 774, 0, 680, 0, 776, 777, 779, 780, 781, 721, 0, 0, 0, 0, 0, 0, 722, 524, 0, 0, 0, 7, 8, 9, 10, 795, 0, 226, 0, 0, 798, 0, 102, 26, 493, 117, 118, 0, 0, 0, 197, 198, 199, 0, 0, 0, 578, 14, 493, 493, 684, 594, 0, 0, 0, 0, 0, 0, 873, 21, 0, 0, 875, 0, 18, 580, 0, 1429, 1430, 20, 0, 0, 26, 0, 27, 28, 1435, 186, 23, 0, 0, 0, 854, 0, 0, 0, 0, 0, 905, 854, 0, 0, 0, 880, 7, 8, 9, 10, 906, 0, 13, 0, 0, 682, 1455, 682, 32, 682, 583, 0, 0, 907, 585, 0, 0, 0, 186, 912, 186, 186, 219, 594, 280, 8, 9, 10, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 580, 0, 0, 0, 195, 0, 203, 26, 0, 27, 28, 547, 548, 549, 550, 551, 552, 553, 554, 555, 186, 0, 21, 1100, 912, 0, 0, 0, 0, 231, 0, 186, 186, 1101, 186, 0, 0, 27, 298, 0, 0, 32, 0, 583, 0, 0, 1102, 585, 7, 8, 9, 10, 197, 198, 199, 648, 0, 0, 0, 14, 0, 484, 131, 682, 649, 78, 0, 78, 0, 32, 0, 0, 996, 78, 78, 0, 18, 700, 701, 0, 712, 20, 102, 0, 0, 0, 21, 680, 102, 0, 23, 0, 580, 0, 0, 493, 493, 493, 628, 26, 0, 27, 28, 0, 0, 0, 0, 493, 899, 0, 0, 0, 0, 690, 415, 905, 0, 81, 994, 690, 0, 0, 0, 0, 0, 906, 0, 104, 0, 0, 0, 0, 0, 32, 0, 583, 124, 132, 907, 585, 0, 203, 0, 141, 141, 0, 141, 0, 81, 458, 203, 0, 0, 81, 0, 0, 0, 0, 0, 0, 589, 593, 596, 0, 0, 0, 141, 0, 81, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 493, 0, 493, 0, 228, 0, 0, 1045, 0, 102, 0, 0, 0, 493, 0, 102, 228, 873, 873, 873, 0, 0, 0, 0, 1078, 0, 0, 0, 0, 682, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 798, 0, 125, 126, 0, 0, 690, 226, 0, 0, 854, 102, 0, 102, 0, 186, 186, 1104, 0, 0, 0, 378, 0, 0, 0, 0, 1183, 0, 81, 0, 0, 0, 141, 0, 0, 0, 141, 0, 0, 141, 141, 141, 648, 0, 1096, 580, 0, 0, 854, 0, 0, 0, 26, 81, 128, 129, 1104, 7, 8, 9, 10, 436, 438, 442, 0, 0, 0, 0, 581, 102, 141, 141, 141, 0, 0, 0, 0, 0, 582, 0, 0, 0, 102, 0, 0, 996, 0, 854, 583, 0, 0, 584, 585, 0, 102, 21, 0, 0, 0, 141, 1137, 580, 442, 0, 0, 0, 1143, 1162, 26, 1225, 27, 28, 0, 690, 0, 1183, 0, 78, 195, 203, 0, 0, 0, 0, 905, 690, 0, 102, 0, 102, 0, 994, 0, 141, 906, 0, 0, 0, 0, 0, 0, 0, 32, 0, 583, 0, 0, 907, 585, 0, 0, 0, 0, 0, 0, 0, 102, 0, 690, 0, 690, 493, 493, 0, 493, 0, 0, 0, 0, 0, 0, 228, 141, 0, 415, 0, 0, 0, 0, 0, 0, 458, 203, 0, 0, 415, 0, 1191, 0, 458, 0, 0, 0, 0, 0, 851, 853, 0, 0, 0, 0, 0, 415, 0, 0, 0, 0, 0, 186, 186, 186, 186, 1104, 0, 0, 228, 186, 0, 0, 579, 0, 141, 141, 595, 0, 0, 0, 0, 604, 0, 1344, 0, 81, 0, 0, 0, 0, 0, 1104, 1104, 1104, 0, 0, 854, 0, 0, 0, 0, 378, 0, 0, 0, 0, 0, 700, 701, 436, 438, 442, 0, 0, 0, 712, 910, 0, 589, 593, 0, 596, 186, 0, 854, 0, 0, 140, 0, 78, 0, 228, 0, 0, 141, 228, 0, 436, 438, 442, 0, 0, 0, 0, 0, 141, 0, 0, 141, 0, 0, 0, 0, 141, 0, 0, 0, 0, 593, 0, 0, 0, 0, 0, 0, 0, 0, 1401, 1291, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, 186, 0, 186, 141, 0, 141, 0, 141, 141, 141, 0, 0, 0, 141, 0, 203, 0, 0, 141, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 186, 912, 186, 730, 81, 0, 8, 9, 0, 0, 12, 13, 700, 701, 0, 712, 14, 0, 0, 102, 0, 195, 0, 203, 0, 0, 0, 0, 0, 0, 16, 0, 17, 593, 0, 0, 0, 0, 20, 0, 0, 0, 228, 228, 228, 228, 0, 23, 0, 0, 1137, 0, 0, 0, 0, 0, 26, 0, 128, 129, 0, 0, 203, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 0, 0, 0, 458, 0, 0, 415, 0, 0, 7, 8, 9, 10, 0, 827, 481, 0, 0, 0, 228, 0, 141, 0, 0, 1064, 0, 1065, 1104, 0, 0, 0, 0, 0, 0, 195, 141, 141, 1071, 595, 0, 415, 851, 853, 0, 0, 874, 0, 21, 0, 0, 0, 0, 0, 580, 0, 0, 0, 0, 604, 0, 26, 0, 27, 28, 141, 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, 0, 905, 125, 126, 851, 853, 198, 199, 0, 0, 0, 906, 14, 0, 0, 0, 1104, 1104, 1104, 32, 124, 583, 0, 0, 907, 585, 0, 0, 141, 595, 141, 141, 220, 595, 20, 102, 0, 0, 0, 0, 186, 0, 0, 23, 0, 580, 0, 0, 0, 524, 0, 730, 26, 0, 128, 129, 0, 0, 239, 0, 0, 0, 436, 438, 442, 0, 648, 0, 581, 0, 141, 0, 0, 0, 595, 0, 0, 0, 582, 0, 0, 141, 141, 0, 141, 0, 0, 0, 583, 0, 0, 584, 585, 0, 0, 0, 0, 7, 8, 9, 10, 197, 198, 199, 0, 0, 0, 0, 14, 0, 0, 0, 132, 0, 0, 81, 0, 81, 985, 986, 9, 10, 997, 81, 81, 18, 0, 0, 0, 0, 20, 406, 228, 0, 0, 21, 0, 0, 228, 23, 0, 580, 0, 0, 0, 141, 141, 141, 26, 0, 27, 28, 434, 0, 0, 0, 21, 141, 0, 0, 0, 0, 0, 0, 905, 450, 0, 0, 0, 26, 0, 27, 28, 0, 906, 0, 0, 987, 0, 0, 0, 0, 32, 0, 583, 176, 0, 946, 585, 0, 0, 0, 415, 415, 0, 177, 0, 1064, 1065, 851, 853, 0, 0, 32, 0, 1071, 0, 0, 178, 0, 731, 0, 7, 8, 732, 10, 385, 12, 13, 0, 0, 415, 0, 14, 0, 0, 0, 851, 853, 141, 0, 141, 0, 0, 0, 0, 0, 16, 228, 17, 18, 19, 141, 0, 228, 20, 874, 874, 874, 0, 21, 0, 0, 604, 23, 733, 0, 642, 0, 0, 0, 0, 0, 26, 0, 27, 28, 49, 0, 734, 0, 735, 0, 0, 0, 7, 125, 126, 10, 30, 228, 226, 228, 0, 141, 141, 595, 0, 0, 31, 0, 0, 0, 49, 49, 0, 148, 32, 49, 0, 0, 0, 33, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 1064, 1065, 49, 1071, 49, 0, 0, 0, 0, 0, 0, 874, 26, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 234, 30, 0, 0, 0, 0, 0, 0, 730, 0, 228, 31, 0, 997, 0, 0, 0, 0, 0, 32, 0, 0, 228, 0, 33, 0, 0, 0, 0, 0, 0, 415, 415, 0, 415, 415, 0, 415, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 375, 0, 0, 0, 375, 375, 228, 49, 228, 0, 0, 49, 0, 234, 0, 49, 0, 0, 148, 148, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 705, 49, 0, 0, 228, 711, 0, 0, 0, 141, 141, 0, 141, 0, 0, 0, 0, 0, 49, 49, 148, 0, 0, 0, 0, 0, 0, 0, 234, 0, 752, 7, 125, 126, 10, 0, 758, 13, 0, 0, 0, 0, 0, 0, 195, 203, 0, 49, 766, 767, 0, 768, 1285, 1286, 9, 10, 141, 141, 141, 141, 595, 0, 0, 0, 141, 0, 0, 0, 0, 21, 730, 0, 0, 0, 0, 415, 415, 0, 0, 0, 0, 49, 26, 0, 27, 28, 874, 874, 874, 0, 21, 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 730, 26, 0, 27, 28, 0, 146, 0, 0, 1287, 0, 0, 0, 0, 32, 141, 0, 176, 0, 147, 141, 0, 81, 0, 0, 0, 0, 177, 0, 0, 0, 76, 0, 0, 0, 32, 0, 0, 0, 0, 178, 0, 862, 863, 0, 0, 0, 862, 521, 1285, 125, 126, 10, 586, 586, 586, 0, 76, 76, 0, 76, 0, 76, 0, 0, 375, 0, 76, 415, 415, 415, 141, 141, 234, 141, 0, 0, 0, 49, 0, 76, 0, 76, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 375, 0, 0, 0, 0, 0, 26, 0, 27, 28, 0, 141, 595, 141, 1287, 0, 0, 0, 0, 0, 0, 0, 30, 0, 375, 0, 0, 415, 415, 0, 228, 0, 31, 49, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 49, 33, 0, 49, 0, 0, 0, 0, 49, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 0, 76, 0, 0, 0, 76, 0, 0, 0, 76, 0, 0, 76, 76, 76, 49, 0, 49, 0, 148, 148, 148, 0, 0, 0, 49, 76, 415, 0, 0, 49, 0, 0, 49, 6, 0, 7, 8, 9, 10, 11, 12, 13, 76, 76, 76, 0, 14, 0, 49, 0, 0, 0, 874, 0, 1016, 0, 1018, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, 0, 20, 0, 0, 76, 0, 21, 0, 0, 0, 23, 521, 0, 410, 521, 0, 0, 0, 0, 26, 0, 27, 28, 0, 0, 29, 0, 0, 0, 521, 521, 521, 0, 0, 0, 30, 0, 0, 76, 0, 0, 0, 0, 0, 521, 31, 0, 0, 0, 874, 874, 874, 0, 32, 0, 0, 0, 0, 33, 0, 1051, 1052, 0, 1054, 0, 125, 126, 0, 228, 0, 481, 0, 0, 141, 0, 0, 0, 0, 0, 586, 586, 0, 586, 0, 0, 0, 0, 0, 0, 871, 234, 1072, 7, 8, 9, 10, 0, 0, 13, 0, 0, 0, 0, 521, 0, 0, 0, 0, 580, 0, 0, 0, 0, 0, 0, 26, 0, 128, 129, 153, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 21, 581, 0, 603, 0, 0, 1106, 76, 0, 187, 0, 582, 0, 26, 0, 27, 28, 586, 0, 586, 586, 583, 586, 0, 584, 585, 0, 0, 0, 176, 0, 49, 49, 49, 49, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 178, 0, 0, 0, 76, 0, 0, 586, 0, 0, 7, 125, 126, 10, 0, 76, 1148, 0, 76, 0, 0, 49, 0, 76, 0, 49, 0, 0, 1153, 0, 0, 0, 49, 49, 0, 49, 0, 0, 7, 125, 126, 10, 0, 0, 481, 0, 0, 0, 21, 153, 153, 153, 76, 0, 76, 0, 76, 76, 76, 0, 0, 26, 76, 27, 28, 0, 49, 76, 49, 0, 76, 0, 0, 49, 49, 49, 21, 145, 0, 0, 187, 187, 443, 0, 0, 0, 76, 146, 0, 26, 0, 27, 28, 0, 586, 32, 0, 0, 0, 0, 147, 0, 521, 0, 0, 30, 0, 0, 0, 187, 0, 0, 1205, 0, 0, 31, 0, 0, 0, 0, 8, 9, 0, 32, 12, 226, 0, 0, 33, 0, 14, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 0, 16, 0, 17, 0, 0, 0, 1218, 0, 20, 7, 8, 9, 10, 188, 12, 189, 0, 23, 0, 0, 14, 0, 586, 0, 586, 0, 26, 0, 128, 129, 0, 0, 0, 0, 16, 586, 17, 18, 494, 871, 871, 871, 20, 0, 0, 0, 0, 21, 0, 0, 0, 23, 603, 521, 521, 521, 0, 0, 0, 234, 26, 0, 27, 28, 0, 0, 190, 0, 0, 1300, 0, 0, 0, 1301, 0, 0, 30, 586, 586, 586, 0, 0, 0, 76, 0, 0, 31, 588, 588, 588, 0, 49, 49, 148, 32, 0, 0, 0, 234, 33, 0, 0, 7, 8, 9, 10, 0, 0, 1317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 871, 0, 0, 0, 76, 76, 76, 76, 0, 0, 0, 0, 0, 0, 1131, 0, 0, 7, 8, 9, 10, 0, 21, 226, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 26, 0, 27, 28, 0, 0, 1351, 0, 49, 0, 0, 76, 0, 0, 0, 76, 176, 0, 0, 0, 21, 0, 76, 76, 1369, 76, 177, 0, 1370, 234, 0, 0, 0, 26, 32, 27, 28, 0, 0, 178, 49, 0, 187, 185, 187, 0, 443, 443, 443, 176, 1388, 1389, 187, 0, 0, 0, 76, 187, 76, 177, 187, 0, 0, 76, 76, 76, 0, 32, 237, 0, 0, 241, 178, 0, 0, 7, 8, 9, 10, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 237, 0, 344, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 234, 0, 21, 0, 0, 0, 586, 586, 586, 586, 586, 0, 0, 0, 586, 26, 0, 27, 28, 0, 49, 49, 148, 148, 148, 0, 234, 0, 49, 0, 0, 439, 0, 0, 0, 0, 871, 871, 871, 0, 0, 440, 0, 0, 0, 0, 0, 0, 0, 32, 1131, 1131, 1131, 0, 441, 185, 185, 185, 0, 0, 0, 0, 0, 836, 0, 449, 7, 8, 9, 10, 0, 0, 481, 0, 0, 0, 0, 588, 588, 0, 588, 49, 0, 603, 185, 0, 49, 588, 49, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 21, 0, 187, 241, 0, 0, 0, 0, 0, 0, 76, 76, 76, 26, 0, 27, 28, 237, 0, 586, 586, 0, 586, 0, 0, 7, 8, 9, 10, 176, 0, 0, 0, 49, 49, 0, 49, 0, 0, 177, 0, 909, 0, 909, 909, 0, 588, 32, 0, 0, 0, 1133, 178, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 49, 49, 49, 0, 0, 0, 0, 0, 0, 26, 0, 27, 28, 76, 0, 0, 909, 0, 0, 0, 0, 0, 0, 0, 21, 439, 0, 187, 187, 0, 187, 0, 0, 0, 0, 440, 0, 26, 0, 27, 28, 237, 241, 32, 0, 76, 0, 0, 441, 0, 0, 0, 0, 176, 731, 0, 7, 8, 732, 10, 385, 12, 13, 177, 0, 0, 0, 14, 187, 0, 0, 32, 0, 0, 0, 0, 178, 0, 0, 0, 0, 16, 0, 17, 18, 19, 0, 0, 0, 20, -495, 494, 494, 494, 21, 185, 0, 0, 23, 733, 0, 642, 0, 588, 0, 0, 0, 26, 1131, 27, 28, 0, 0, 734, 0, 735, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 76, 76, 76, 76, 76, 32, 0, 185, 76, 185, 33, 185, 185, 185, 0, 0, 0, 185, 0, 0, 0, 0, 185, 8, 9, 185, -495, 12, 13, 0, 1133, 1133, 1133, 14, 0, 0, 1131, 1131, 1131, 588, 0, 588, 0, 0, 0, 0, 0, 16, 0, 17, 0, 0, 588, 0, 0, 20, 588, 588, 588, 0, 49, 76, 74, 0, 23, 0, 76, 0, 76, 0, 0, 0, 0, 26, 0, 128, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 143, 0, 0, 0, 74, 909, 909, 1105, 0, 74, 0, 0, 731, 0, 7, 8, 732, 10, 385, 12, 13, 0, 0, 0, 196, 14, 0, 0, 76, 76, 0, 76, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, 19, 0, 0, 1105, 20, -497, 0, 0, 0, 21, 0, 0, 0, 23, 733, 0, 642, 0, 0, 76, 76, 76, 26, 0, 27, 28, 0, 0, 734, 0, 735, 0, 187, 0, 237, 241, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 185, 0, 0, 0, 0, 0, 32, 0, 0, 0, 390, 33, 0, 0, 393, 0, 0, 0, 395, 8, 9, 100, 385, 12, 13, 0, 0, -497, 0, 14, 119, 100, 0, 0, 0, 74, 0, 100, 100, 185, 100, 185, 185, 16, 0, 17, 18, 0, 0, 0, 0, 20, 139, 143, 0, 0, 0, 0, 836, 836, 641, 836, 0, 642, 0, 0, 0, 0, 0, 26, 218, 128, 129, 0, 0, 0, 0, 1133, 0, 0, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 185, 0, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 909, 909, 1105, 1105, 1105, 0, 0, 0, 909, 0, 482, 0, 0, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 119, 0, 185, 100, 1105, 1105, 1105, 100, 100, 0, 1133, 1133, 1133, 0, 100, 0, 100, 100, 100, 0, 0, 100, 100, 100, 0, 0, -359, 8, 9, -359, -359, 12, 226, 0, 76, 187, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, -359, 0, 0, 0, 0, 20, 0, 0, 0, 0, -359, 0, 0, 0, 23, 0, 580, 0, 0, 0, 0, 0, 0, 26, 0, 128, 129, 0, 0, 612, 0, 0, 0, 0, 0, 0, 0, 909, 909, 581, 909, 464, 100, 8, 9, 0, 385, 12, 13, 582, 0, 688, 0, 14, 0, 0, 0, -359, 0, 583, 0, 100, 584, 585, 0, 0, 0, 16, 0, 17, 18, 187, 0, 187, 0, 20, 0, 0, 237, 241, 237, 0, 0, 0, 23, 0, 580, 0, 0, 663, 0, 0, 664, 26, 0, 128, 129, 666, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 581, 185, 185, 1103, 0, 0, 0, 0, 237, 0, 582, 0, 0, 0, 0, 0, 0, 393, 0, 395, 583, 0, 0, 584, 585, 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, 0, 0, 0, 100, 0, 100, 100, 1103, 0, 0, 0, 0, 0, 0, 0, 0, 748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 443, 185, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 0, 0, 100, 449, 731, 0, 7, 8, 732, 10, 385, 12, 13, 0, 0, 0, 0, 14, 100, 0, 0, 0, 100, 0, 0, 100, 0, 0, 0, 0, 100, 16, 0, 17, 18, 19, 0, 0, 0, 20, -496, 0, 0, 0, 21, 443, 443, 443, 23, 733, 0, 642, 0, 0, 0, 0, 0, 26, 0, 27, 28, 0, 0, 734, 0, 735, 0, 0, 0, 187, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 237, 0, 0, 0, 0, 100, 32, 723, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 185, 185, 185, 185, 1103, 0, 1217, -496, 185, 0, 0, 0, 100, 0, 0, 6, 0, 7, 8, 9, 10, 11, 12, 13, 0, 0, 0, 0, 14, 0, 1103, 1103, 1103, 0, 0, 0, 0, 0, 911, 0, 0, 15, 16, 0, 17, 18, 19, 0, 0, 0, 20, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 185, 25, 0, 0, 0, 0, 0, 26, 0, 27, 28, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 952, 30, 0, 100, 0, 0, 0, 663, 664, 0, 666, 31, 0, 0, 100, 100, 0, 100, 100, 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, 34, 0, 0, 0, 0, 185, 185, 0, 185, 0, 0, 0, 748, 0, 748, 0, 0, 0, 0, 995, 1002, 748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, 0, 185, 0, 0, 0, 0, 0, 0, 119, 678, 0, 789, 790, 791, 10, 0, 12, 498, 282, 283, 218, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 723, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 792, 793, 679, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 723, 0, 0, 100, 308, 794, 0, 0, 0, 0, 1103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 938, 309, 0, 0, 0, 0, 160, 0, 7, 8, 9, 10, 11, 12, 13, 0, 100, 100, 100, 14, 0, 0, 0, 0, 139, 143, 0, 0, 100, 0, 0, 0, 15, 16, 0, 17, 18, 19, 0, 0, 0, 20, 0, 0, 0, 0, 21, 0, 0, 22, 23, 24, 0, 25, 1103, 1103, 1103, 0, 0, 26, 0, 27, 28, 0, 0, 29, 1382, 0, -451, -451, -451, -451, -451, -451, -451, 30, 0, -451, 185, -451, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, -451, 0, -451, 32, 995, 0, -451, 0, 33, 0, 100, -451, 100, 34, 0, 0, -451, 0, 0, 0, -451, 0, -451, 100, 0, 0, 0, 0, 0, -451, 0, -451, -451, -451, -451, -451, 748, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, -451, 0, -451, -451, -451, 0, -451, -451, -451, -451, -451, -451, 0, -451, 0, 0, 0, 0, 1383, 0, 0, 0, 0, -451, -451, -451, 0, -451, 0, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 0, 0, 516, 0, 280, 8, 9, 10, 385, 12, 281, 282, 283, 688, 284, 14, 0, 393, 395, 0, 723, 0, 0, 0, 0, 482, 1181, 0, 0, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 100, 580, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, -286, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 867, 0, 0, 0, 0, 0, 0, 1292, 302, 303, 868, 0, 1292, 0, 748, 0, 305, 306, 307, 0, 583, 0, 0, 869, 585, 0, 0, 0, 0, 0, 100, 100, 0, 100, 0, 0, 0, 0, 0, 0, 309, 0, 7, 8, 9, 10, 385, 12, 13, 0, 0, 688, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 663, 664, 0, 666, 16, 0, 17, 18, 0, 0, 0, 0, 20, 0, 0, 0, 0, 21, 0, 0, 0, 23, 0, 580, 0, 0, 0, 0, 723, 0, 26, 0, 27, 28, 0, 1356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1101, 0, 0, 0, 723, 0, 0, 0, 32, 0, 583, 0, 0, 1102, 585, 0, 0, 0, 0, 0, 0, 0, 100, 1359, 100, 1228, 1229, 1230, 10, 385, 12, 281, 282, 283, 0, 284, 14, 1231, 0, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 15, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 1242, 298, 675, 0, 1243, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 0, 1244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1360, 309, 1227, 0, 1228, 1229, 1230, 10, 385, 12, 281, 282, 283, 0, 284, 14, 1231, 0, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 15, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 1242, 298, 675, 0, 1243, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 516, 1244, 7, 8, 9, 10, 385, 12, 281, 282, 283, 688, 284, 14, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 580, 0, 293, 294, 295, 296, 297, 26, 0, 27, 28, -286, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 1128, 0, 0, 0, 0, 0, 0, 0, 302, 303, 1129, 0, 0, 0, 0, 0, 305, 306, 307, 0, 583, 0, 0, 1130, 585, 687, 0, 280, 8, 9, 10, 385, 12, 281, 282, 283, 688, 284, 14, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 801, 308, 280, 8, 9, 10, 385, 12, 281, 282, 283, 0, 284, 14, 0, 0, -761, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 1450, 0, -751, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 678, 308, 789, 790, 791, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 792, 793, 679, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 794, 678, 0, 789, 790, 791, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 792, 793, 679, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 678, 308, 789, 790, 791, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, -455, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 792, 793, 679, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 678, 308, 280, 8, 9, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 1261, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 679, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 0, 516, 0, 280, 8, 9, 10, 1265, 12, 281, 282, 283, 0, 284, 14, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, -286, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, 302, 303, 518, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 678, 519, 280, 8, 9, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 679, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 801, 308, 280, 8, 9, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, -751, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 516, 308, 7, 8, 9, 10, 0, 12, 281, 282, 283, 0, 284, 14, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 28, -286, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 1421, 0, 0, 0, 0, 0, 0, 0, 302, 303, 1422, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 1500, 1423, 280, 8, 9, 10, 0, 12, 281, 282, 283, 0, 284, 14, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, -173, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 801, 308, 280, 8, 9, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 243, 0, 301, 8, 9, 0, 0, 12, 13, 0, 302, 303, 304, 14, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 0, 16, 0, 17, 0, 0, 0, 0, 0, 20, 0, 244, 245, 0, -751, 0, 309, 0, 23, 0, 246, 0, 0, 0, 0, 0, 0, 26, 0, 128, 129, 0, 247, 0, 0, 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 0, 0, 269, 270, 271, 0, 0, 272, 0, 886, 273, 280, 8, 9, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 888, 308, 280, 8, 9, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 1434, 308, 280, 8, 9, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 280, 8, 9, 10, 308, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 839, 1228, 1229, 1230, 10, 385, 12, 281, 282, 283, 0, 284, 14, 1231, 0, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 15, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 1242, 298, 675, 0, 1243, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 0, 1244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1364, 309, 1228, 1229, 1230, 10, 385, 12, 281, 282, 283, 0, 284, 14, 1231, 0, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 15, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 1242, 298, 675, 0, 1243, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 0, 1244, 0, 1228, 1229, 1230, 10, 385, 12, 281, 282, 283, 0, 284, 14, 1231, 309, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 15, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 1242, 298, 1477, 0, 1243, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 0, 1244, 0, 1228, 1229, 1230, 10, 385, 12, 281, 282, 283, 0, 284, 14, 1231, 309, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 15, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 1242, 298, 0, 0, 1243, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 0, 1244, 280, 8, 9, 10, 385, 12, 281, 282, 283, 688, 284, 14, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 580, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 867, 0, 0, 0, 0, 0, 0, 0, 302, 303, 868, 0, 0, 0, 0, 0, 305, 306, 307, 0, 583, 0, 0, 869, 585, 7, 8, 9, 10, 385, 12, 281, 282, 283, 688, 284, 14, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 580, 0, 293, 294, 295, 296, 297, 26, 0, 27, 28, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 1128, 0, 0, 0, 0, 0, 0, 0, 302, 303, 1129, 0, 0, 0, 0, 0, 305, 306, 307, 0, 583, 0, 0, 1130, 585, 280, 8, 9, 10, 0, 12, 281, 282, 283, 0, 284, 14, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 580, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 867, 0, 0, 0, 0, 0, 0, 0, 302, 303, 868, 0, 0, 0, 0, 0, 305, 306, 307, 0, 583, 0, 0, 869, 585, 7, 8, 9, 10, 0, 12, 281, 282, 283, 0, 284, 14, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 580, 0, 293, 294, 295, 296, 297, 26, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 1128, 0, 0, 0, 0, 0, 0, 0, 302, 303, 1129, 0, 0, 0, 0, 0, 305, 306, 307, 0, 583, 0, 0, 1130, 585, 280, 8, 9, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 1341, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 280, 8, 9, 10, 385, 12, 281, 282, 283, 0, 284, 14, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 18, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 280, 8, 9, 10, 308, 12, 281, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 280, 8, 9, 10, 308, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 280, 8, 9, 10, 308, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 531, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 280, 8, 9, 10, 532, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 308, 568, 280, 8, 9, 10, 0, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, 302, 303, 518, 0, 0, 0, 0, 0, 305, 306, 307, 1090, 8, 9, 10, 519, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 7, 8, 9, 10, 308, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 28, 0, 0, 0, 299, 0, 0, 0, 0, 0, 300, 0, 0, 1421, 0, 0, 0, 0, 0, 0, 0, 302, 303, 1422, 0, 0, 0, 0, 0, 305, 306, 307, 280, 8, 9, 10, 1423, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 280, 8, 9, 10, 499, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 280, 8, 9, 10, 502, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 301, 0, 0, 0, 0, 0, 0, 0, 302, 303, 304, 0, 0, 0, 0, 0, 305, 306, 307, 280, 8, 9, 10, 308, 12, 498, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, 302, 303, 518, 0, 0, 0, 0, 0, 305, 306, 307, 7, 8, 9, 10, 519, 12, 281, 282, 283, 0, 284, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 0, 0, 0, 16, 285, 17, 0, 19, 0, 286, 287, 20, 0, 288, 289, 290, 21, 291, 292, 0, 23, 0, 0, 0, 293, 294, 295, 296, 297, 26, 0, 27, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, 1421, 0, 0, 0, 0, 0, 0, 0, 302, 303, 1422, 0, 0, 0, 0, 0, 305, 306, 307, 0, 0, 0, 0, 1423, 7, 8, 9, 10, 385, 12, 13, 0, 0, 951, 0, 14, 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, 0, 20, 0, 0, 0, 0, 21, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 27, 28, 985, 8, 732, 10, 188, 12, 189, 0, 0, 0, 0, 14, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 16, 0, 17, 18, 0, 32, 0, 0, 20, 0, 33, 0, 0, 21, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 27, 28, 0, 0, 0, 0, 987, 0, 0, 0, 0, 0, 0, 0, 30, 7, 8, 9, 10, 188, 12, 189, 0, 0, 31, 0, 14, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 33, 0, 0, 16, 0, 17, 18, 0, 0, 0, 0, 20, 0, 0, 0, 0, 21, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 27, 28, 0, 0, 1354, 0, 7, 8, 9, 10, 385, 12, 13, 0, 30, 0, 0, 14, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 16, 32, 17, 18, 0, 0, 33, 0, 20, 0, 0, 0, 0, 21, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 27, 28, 7, 8, 9, 10, 188, 12, 189, 0, 0, 0, 0, 14, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 16, 0, 17, 18, 0, 32, 0, 0, 20, 0, 33, 0, 0, 21, 8, 9, 0, 23, 12, 226, 0, 0, 0, 0, 14, 0, 26, 0, 27, 28, 7, 8, 9, 10, 197, 198, 199, 0, 16, 0, 17, 14, 30, 0, 0, 0, 20, 0, 0, 0, 0, 0, 31, 0, 0, 23, 0, 580, 18, 0, 32, 0, 0, 20, 26, 33, 128, 129, 21, 0, 0, 1411, 23, 0, 580, 0, 0, 0, 0, 0, 581, 26, 0, 27, 28, 0, 0, 0, 0, 0, 582, 0, 0, 0, 0, 0, 0, 176, 0, 0, 583, 0, 0, 584, 585, 0, 0, 177, 0, 0, 0, 0, 18, 0, 0, 32, 0, 0, 0, 0, 1357, 1412, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 8, 9, 0, 385, 12, 13, 0, 0, 688, 0, 14, 0, 0, 8, 9, 0, 385, 12, 13, 0, 0, 1471, 0, 14, 16, 0, 17, 18, 0, 0, 0, 0, 20, 0, 0, 0, 0, 16, 0, 17, 18, 23, 0, 0, 0, 20, 0, 0, 0, 0, 26, 0, 128, 129, 23, 0, 0, 8, 9, 0, 188, 12, 189, 26, 0, 128, 129, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 128, 129, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, 0, 0, 1467, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 1485, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 0, 547, 548, 549, 550, 551, 552, 553, 554, 555 }; static const short yycheck[] = { 4, 384, 145, 146, 155, 57, 192, 328, 78, 673, 670, 4, 4, 384, 4, 23, 53, 231, 384, 124, 14, 660, 4, 420, 82, 334, 88, 334, 90, 468, 447, 35, 200, 201, 529, 828, 40, 30, 31, 352, 192, 227, 35, 35, 4, 35, 60, 40, 40, 201, 40, 55, 653, 35, 736, 564, 738, 131, 40, 122, 1409, 4, 127, 745, 425, 11, 70, 132, 4, 52, 140, 284, 285, 135, 1245, 35, 1323, 44, 82, 1408, 40, 33, 86, 60, 88, 11, 90, 81, 584, 82, 276, 11, 35, 37, 59, 591, 0, 40, 4, 35, 12, 105, 106, 316, 40, 1410, 1252, 74, 753, 9, 104, 222, 1, 1259, 759, 1426, 186, 54, 1447, 55, 334, 74, 131, 132, 47, 62, 523, 38, 7, 35, 134, 135, 109, 137, 40, 1446, 62, 1, 78, 58, 192, 134, 328, 54, 109, 1151, 1152, 59, 200, 201, 62, 1, 145, 146, 75, 159, 77, 109, 37, 1165, 25, 61, 108, 105, 106, 109, 159, 150, 585, 58, 93, 94, 59, 62, 134, 227, 82, 1482, 1527, 98, 501, 195, 108, 176, 177, 108, 60, 59, 108, 203, 74, 134, 1503, 58, 58, 0, 108, 62, 134, 159, 183, 59, 12, 3, 4, 5, 95, 78, 58, 335, 336, 59, 62, 1542, 48, 60, 159, 3, 4, 5, 865, 108, 47, 159, 276, 60, 455, 75, 134, 196, 95, 102, 62, 672, 228, 109, 108, 59, 1409, 878, 1487, 33, 881, 472, 74, 95, 47, 47, 74, 59, 108, 325, 62, 159, 54, 58, 56, 57, 74, 54, 131, 64, 413, 321, 109, 391, 392, 1413, 93, 140, 56, 57, 643, 277, 109, 337, 328, 674, 1284, 74, 919, 920, 93, 451, 452, 47, 108, 1293, 1294, 354, 1296, 459, 93, 93, 80, 604, 439, 440, 47, 900, 452, 364, 242, 471, 308, 27, 47, 108, 93, 31, 1456, 47, 695, 378, 59, 186, 325, 321, 827, 64, 633, 47, 490, 4, 5, 329, 93, 972, 321, 695, 75, 93, 94, 337, 338, 445, 54, 389, 60, 984, 334, 93, 64, 453, 93, 338, 108, 47, 219, 1249, 387, 1251, 93, 145, 146, 147, 74, 93, 1504, 573, 3, 4, 5, 6, 4, 5, 308, 93, 94, 378, 691, 242, 1017, 869, 1019, 56, 57, 165, 338, 107, 384, 12, 108, 54, 388, 35, 178, 109, 60, 12, 40, 384, 384, 93, 94, 338, 25, 1190, 41, 451, 452, 415, 338, 74, 27, 48, 47, 459, 31, 904, 54, 907, 60, 56, 57, 321, 56, 57, 62, 471, 4, 5, 54, 25, 47, 27, 1432, 1433, 59, 433, 74, 62, 338, 64, 496, 54, 59, 60, 490, 62, 433, 64, 1081, 1082, 458, 88, 439, 440, 31, 866, 946, 47, 93, 94, 62, 74, 58, 54, 4, 5, 62, 74, 333, 9, 48, 469, 47, 58, 64, 830, 93, 94, 56, 57, 47, 54, 469, 74, 384, 3, 4, 5, 608, 64, 1166, 108, 58, 469, 430, 4, 5, 47, 496, 95, 461, 499, 80, 93, 502, 4, 5, 47, 506, 507, 508, 509, 510, 565, 54, 469, 56, 57, 93, 94, 109, 519, 47, 93, 901, 1312, 93, 94, 47, 394, 70, 529, 469, 433, 532, 469, 901, 970, 56, 57, 80, 901, 47, 93, 935, 54, 47, 56, 57, 48, 90, 713, 54, 93, 94, 75, 47, 56, 57, 64, 54, 4, 5, 499, 47, 611, 502, 565, 93, 469, 506, 874, 4, 874, 93, 62, 54, 62, 565, 610, 636, 80, 108, 519, 47, 108, 584, 74, 93, 74, 47, 94, 93, 591, 581, 582, 532, 584, 778, 54, 536, 466, 93, 35, 591, 33, 652, 595, 40, 33, 93, 54, 1102, 56, 57, 720, 47, 722, 649, 74, 651, 652, 727, 54, 4, 5, 562, 70, 493, 9, 93, 730, 568, 3, 4, 5, 93, 80, 636, 641, 1130, 8, 9, 74, 1055, 691, 108, 14, 47, 769, 47, 94, 650, 439, 440, 441, 654, 47, 62, 62, 691, 62, 93, 108, 871, 565, 874, 713, 11, 36, 672, 59, 60, 74, 54, 109, 56, 57, 45, 1112, 47, 1036, 1037, 25, 584, 27, 56, 57, 58, 3, 70, 591, 4, 5, 93, 1450, 93, 695, 754, 755, 80, 757, 93, 93, 108, 108, 286, 287, 695, 59, 60, 1144, 743, 578, 94, 59, 58, 145, 146, 147, 62, 301, 146, 147, 304, 60, 93, 307, 111, 594, 310, 75, 778, 77, 314, 1050, 48, 25, 736, 27, 738, 1496, 322, 94, 56, 57, 744, 745, 94, 736, 178, 738, 62, 95, 178, 753, 754, 755, 745, 757, 736, 759, 738, 111, 1051, 1052, 753, 1054, 80, 745, 58, 1126, 759, 93, 62, 59, 60, 897, 739, 740, 1135, 1136, 736, 74, 738, 1140, 93, 748, 3, 4, 5, 745, 7, 8, 9, 695, 83, 84, 25, 736, 27, 738, 736, 74, 738, 4, 5, 95, 745, 54, 744, 745, 109, 743, 744, 74, 1470, 62, 766, 767, 768, 36, 4, 5, 59, 60, 1181, 74, 826, 74, 59, 58, 1490, 831, 108, 62, 736, 11, 738, 54, 59, 56, 57, 58, 108, 745, 59, 60, 912, 48, 59, 60, 54, 753, 3, 4, 5, 56, 57, 759, 62, 859, 967, 968, 969, 108, 48, 865, 95, 4, 5, 869, 74, 9, 56, 57, 12, 54, 865, 74, 867, 868, 869, 108, 308, 62, 874, 54, 103, 104, 105, 1011, 1012, 1013, 59, 60, 60, 74, 80, 835, 4, 5, 108, 901, 54, 903, 904, 56, 57, 907, 111, 47, 62, 48, 901, 901, 1271, 109, 905, 906, 907, 56, 57, 59, 74, 61, 62, 108, 64, 109, 4, 5, 996, 869, 716, 9, 1251, 517, 518, 75, 111, 77, 27, 1334, 975, 80, 4, 5, 946, 74, 54, 74, 56, 57, 1309, 1346, 27, 93, 94, 946, 31, 959, 54, 1100, 1101, 865, 70, 965, 750, 869, 111, 74, 108, 111, 972, 108, 80, 108, 108, 58, 54, 108, 56, 57, 8, 972, 984, 54, 59, 60, 48, 1128, 1129, 64, 54, 111, 70, 984, 56, 57, 93, 901, 62, 1059, 4, 5, 80, 907, 873, 1007, 875, 439, 440, 441, 74, 47, 440, 441, 64, 1017, 1007, 1019, 80, 3, 4, 5, 59, 988, 93, 965, 1017, 1007, 1019, 994, 995, 1426, 109, 998, 999, 60, 1104, 1002, 47, 54, 44, 975, 946, 912, 1046, 54, 30, 36, 47, 1007, 54, 1446, 56, 57, 64, 54, 64, 1059, 996, 1440, 27, 64, 108, 60, 31, 74, 1007, 62, 972, 1007, 54, 499, 56, 57, 502, 74, 1440, 1201, 1473, 108, 984, 108, 108, 64, 93, 108, 64, 3, 4, 5, 518, 519, 59, 60, 93, 3, 4, 5, 6, 64, 1102, 93, 59, 1007, 532, 111, 1112, 62, 1503, 1100, 1101, 1102, 108, 1017, 108, 1019, 1511, 907, 108, 75, 108, 1123, 108, 75, 75, 1444, 75, 996, 1130, 3, 4, 5, 1123, 41, 108, 1123, 108, 1128, 1129, 1130, 56, 57, 62, 1123, 62, 59, 54, 108, 56, 57, 62, 111, 60, 86, 62, 88, 946, 90, 108, 94, 426, 88, 70, 591, 1166, 1123, 111, 433, 3, 4, 5, 6, 80, 1532, 48, 1166, 3, 4, 5, 74, 88, 47, 56, 57, 108, 93, 1166, 108, 111, 111, 1130, 977, 978, 3, 4, 5, 109, 108, 1102, 108, 59, 1251, 135, 108, 137, 108, 41, 109, 1166, 1078, 64, 64, 59, 48, 1249, 59, 1251, 108, 108, 1123, 1006, 56, 57, 93, 1162, 1166, 1130, 54, 1166, 56, 57, 497, 3, 4, 5, 1104, 93, 1177, 1178, 1179, 1180, 93, 93, 1245, 54, 80, 56, 57, 1250, 109, 1252, 109, 108, 88, 1245, 839, 111, 1259, 108, 108, 1444, 1252, 1166, 8, 1252, 1245, 1268, 108, 1259, 1418, 108, 1259, 1252, 109, 108, 108, 108, 48, 108, 1259, 1421, 1422, 111, 867, 868, 56, 57, 1245, 108, 3, 4, 5, 33, 1162, 1252, 561, 3, 4, 5, 6, 1240, 1259, 9, 108, 4, 5, 108, 108, 8, 9, 1100, 1101, 1102, 64, 14, 3, 4, 5, 6, 78, 79, 80, 81, 82, 83, 84, 1291, 1292, 28, 108, 30, 54, 598, 108, 41, 108, 36, 62, 1128, 1129, 1130, 1245, 56, 57, 772, 45, 111, 54, 1252, 56, 57, 47, 108, 41, 54, 1259, 56, 57, 58, 108, 48, 8, 9, 70, 108, 96, 299, 14, 56, 57, 1310, 1157, 1158, 80, 1160, 1161, 62, 1163, 62, 60, 60, 88, 9, 60, 16, 93, 93, 108, 108, 36, 108, 1356, 80, 93, 1444, 108, 108, 108, 45, 93, 88, 1403, 60, 1343, 337, 60, 1408, 1409, 1410, 111, 1445, 1413, 1403, 17, 93, 93, 60, 1408, 1409, 1410, 1408, 1423, 1413, 97, 107, 1413, 108, 60, 1408, 1409, 1421, 1422, 108, 1413, 3, 4, 5, 6, 1440, 108, 868, 869, 108, 11, 60, 1447, 60, 60, 93, 1440, 1408, 1409, 59, 64, 1456, 1413, 1447, 108, 60, 1447, 108, 11, 108, 1403, 60, 1456, 11, 1447, 1456, 1409, 1410, 60, 41, 1057, 0, 907, 1456, 0, 0, 907, 1482, 412, 2, 1423, 901, 54, 354, 56, 57, 1447, 1469, 1482, 425, 426, 159, 1281, 1282, 159, 1456, 1403, 433, 744, 1504, 1112, 1408, 1409, 1410, 92, 137, 1413, 1475, 1333, 1542, 1504, 946, 1191, 1504, 279, 946, 88, 384, 3, 4, 5, 1504, 80, 81, 82, 83, 84, 890, 1250, 3, 4, 5, 6, 1440, 1144, 679, 970, 1542, 885, 1482, 1447, 1128, 1129, 1504, 1007, 221, 744, 1164, 1542, 1456, 883, 1542, 183, 617, 325, 1498, 825, 826, 122, 1542, 496, 497, 831, 1252, 1357, 1124, 433, 41, 1459, 54, 1521, 56, 57, 58, 1490, 1482, 845, 1520, 847, 565, 849, 1542, 56, 57, 1527, 1511, 954, 1376, 1377, 1378, 1523, 1268, -1, 529, -1, 531, -1, 1504, 534, 535, -1, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, -1, -1, -1, 892, -1, 561, -1, -1, 1421, 1422, 1423, -1, -1, 47, 711, 1542, 3, 4, 5, 6, 1429, 1430, -1, 3, 4, 5, -1, 7, 8, 9, -1, -1, -1, -1, -1, 591, -1, -1, 1245, -1, 929, -1, 598, -1, -1, 1100, 1101, 1102, -1, -1, 1101, 1102, 86, 87, 41, 752, 36, 91, 92, 93, 94, 758, -1, -1, 620, 621, -1, -1, -1, 56, 57, -1, -1, 1128, 1129, 1130, 56, 57, 1129, 1130, 636, -1, -1, -1, -1, 1, 1495, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, 584, 14, -1, -1, 88, -1, -1, 591, -1, -1, -1, -1, -1, -1, 14, 28, -1, 30, 31, 32, -1, -1, 22, 36, 37, -1, 679, -1, 41, -1, -1, -1, 45, 46, -1, 48, 3, 4, 5, 6, -1, 54, -1, 56, 57, -1, -1, 60, -1, 62, -1, -1, -1, 3, 4, 5, 6, 70, -1, -1, -1, -1, -1, 63, -1, -1, 860, 80, 862, 426, 3, 4, 5, 6, 41, 88, 433, -1, -1, -1, 93, -1, 735, -1, -1, -1, -1, 54, -1, 56, 57, 41, -1, 60, -1, -1, 109, -1, 48, -1, -1, 754, 755, 70, 757, -1, 56, 57, 41, -1, -1, 695, -1, 80, -1, 48, -1, 1421, 1422, 772, -1, 88, 122, 56, 57, 4, 93, -1, 1114, -1, 1116, -1, 1118, -1, -1, 14, -1, -1, 88, -1, 497, 794, -1, -1, 144, 24, -1, 4, 5, -1, -1, 30, 31, -1, 33, 88, 35, -1, 3, 4, 5, 40, 7, 8, 9, -1, -1, -1, -1, 753, -1, -1, 825, 826, 53, 759, 55, 830, 831, -1, -1, -1, -1, -1, 63, -1, -1, -1, -1, -1, 47, 70, 845, -1, 847, -1, 849, 54, -1, 56, 57, -1, 81, 82, 561, 1357, -1, -1, -1, 1357, -1, 56, 57, 70, 7, 8, 9, -1, -1, 219, 220, 14, 1016, 80, 1018, 104, 1212, -1, -1, 882, -1, 231, -1, 90, 591, -1, 93, 94, 31, 892, -1, 598, -1, 36, -1, -1, -1, -1, 127, -1, -1, 904, 45, 132, -1, 134, -1, 105, 106, 138, -1, -1, 141, 142, 917, -1, 145, 146, 147, 1421, 1422, 1423, -1, -1, 1422, 1423, 929, -1, 1072, -1, 159, 865, -1, -1, -1, 869, 3, 4, 5, 6, -1, -1, 9, 946, -1, -1, -1, 176, 177, 178, 300, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 4, 5, 901, -1, 8, 9, -1, -1, 907, 41, 14, 205, -1, -1, -1, 47, -1, -1, -1, 987, -1, -1, 54, -1, 56, 57, 220, 342, 176, 177, 178, -1, 36, -1, 228, -1, 351, -1, 70, 1148, -1, 45, -1, 47, 1153, 239, -1, 946, 80, 364, 54, -1, 56, 57, -1, -1, 88, -1, 90, -1, -1, 93, 94, 7, 8, 9, 70, -1, 1036, 1037, 14, -1, 1040, 972, -1, -1, 80, -1, -1, -1, -1, -1, -1, 277, 278, 984, 90, 31, -1, 93, 94, 1059, 36, -1, -1, -1, 1205, -1, -1, -1, 772, 45, -1, -1, -1, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, -1, 8, -1, 1017, -1, 1019, -1, -1, 7, 8, 9, -1, 321, -1, -1, 14, 325, -1, 327, 328, 329, -1, -1, -1, -1, -1, -1, -1, -1, 338, 308, 1114, 31, 1116, 41, 1118, 466, 36, 825, 826, -1, 48, -1, 1126, 831, 354, 45, 54, -1, 56, 57, -1, 1135, 1136, -1, -1, -1, 1140, 845, -1, 847, 60, 849, -1, 3, 4, 5, 6, -1, 378, -1, -1, 1155, 1156, -1, 384, 1300, 1301, 387, 388, -1, 88, -1, -1, -1, -1, -1, -1, 1102, 398, -1, -1, 401, 1317, -1, -1, -1, 406, 1181, 38, 39, 531, 41, -1, -1, 892, 384, -1, -1, 3, 4, 5, 6, -1, -1, 54, 1130, 56, 57, -1, -1, -1, -1, -1, -1, -1, 435, -1, 437, 1212, 439, 440, 441, -1, -1, -1, 445, 3, 4, 5, 6, 450, 929, 573, 453, 1369, 1370, 41, -1, -1, -1, -1, -1, 1236, 48, 433, -1, -1, -1, 946, 469, -1, 56, 57, 1388, 1389, -1, -1, -1, -1, -1, -1, 435, -1, 437, 41, 439, 440, 441, -1, -1, -1, 48, -1, -1, -1, 80, 450, 1271, -1, 56, 57, -1, -1, 88, -1, -1, -1, 507, 508, 509, 510, -1, -1, 1287, -1, 3, 4, 5, -1, 7, 641, -1, -1, 80, -1, -1, -1, -1, -1, -1, 499, 88, 653, 502, -1, 1309, -1, 506, 507, 508, 509, 510, 30, -1, -1, -1, -1, -1, -1, 37, 519, -1, -1, -1, 3, 4, 5, 6, 679, -1, 9, -1, -1, 532, -1, 565, 54, 567, 56, 57, -1, -1, -1, 7, 8, 9, -1, -1, -1, 579, 14, 581, 582, 1357, 584, -1, -1, -1, -1, -1, -1, 591, 41, -1, -1, 595, -1, 31, 47, -1, 1374, 1375, 36, -1, -1, 54, -1, 56, 57, 1383, 610, 45, -1, -1, -1, 584, -1, -1, -1, -1, -1, 70, 591, -1, -1, -1, 60, 3, 4, 5, 6, 80, -1, 9, -1, -1, 1114, 1411, 1116, 88, 1118, 90, -1, -1, 93, 94, -1, -1, -1, 649, 650, 651, 652, 653, 654, 3, 4, 5, 6, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, 47, -1, -1, -1, 55, -1, 57, 54, -1, 56, 57, 76, 77, 78, 79, 80, 81, 82, 83, 84, 691, -1, 41, 70, 695, -1, -1, -1, -1, 48, -1, 702, 703, 80, 705, -1, -1, 56, 57, -1, -1, 88, -1, 90, -1, -1, 93, 94, 3, 4, 5, 6, 7, 8, 9, 695, -1, -1, -1, 14, -1, 80, 733, 1212, 1440, 736, -1, 738, -1, 88, -1, -1, 743, 744, 745, -1, 31, 702, 703, -1, 705, 36, 753, -1, -1, -1, 41, 1532, 759, -1, 45, -1, 47, -1, -1, 766, 767, 768, 890, 54, -1, 56, 57, -1, -1, -1, -1, 778, 900, -1, -1, -1, -1, 753, 165, 70, -1, 4, 743, 759, -1, -1, -1, -1, -1, 80, -1, 14, -1, -1, -1, -1, -1, 88, -1, 90, 23, 24, 93, 94, -1, 192, -1, 30, 31, -1, 33, -1, 35, 200, 201, -1, -1, 40, -1, -1, -1, -1, -1, -1, 327, 328, 329, -1, -1, -1, 53, -1, 55, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, 850, -1, 852, -1, 70, -1, -1, 826, -1, 859, -1, -1, -1, 863, -1, 865, 82, 867, 868, 869, -1, -1, -1, -1, 874, -1, -1, -1, -1, 1357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 859, -1, 4, 5, -1, -1, 865, 9, -1, -1, 869, 901, -1, 903, -1, 905, 906, 907, -1, -1, -1, 127, -1, -1, -1, -1, 1037, -1, 134, -1, -1, -1, 138, -1, -1, -1, 142, -1, -1, 145, 146, 147, 901, -1, 903, 47, -1, -1, 907, -1, -1, -1, 54, 159, 56, 57, 946, 3, 4, 5, 6, 905, 906, 907, -1, -1, -1, -1, 70, 959, 176, 177, 178, -1, -1, -1, -1, -1, 80, -1, -1, -1, 972, -1, -1, 975, -1, 946, 90, -1, -1, 93, 94, -1, 984, 41, -1, -1, -1, 205, 959, 47, 946, -1, -1, -1, 965, 997, 54, 1120, 56, 57, -1, 972, -1, 1126, -1, 1007, 388, 389, -1, -1, -1, -1, 70, 984, -1, 1017, -1, 1019, -1, 975, -1, 239, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, 90, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, 1046, -1, 1017, -1, 1019, 1051, 1052, -1, 1054, -1, -1, -1, -1, -1, -1, 277, 278, -1, 444, -1, -1, -1, -1, -1, -1, 451, 452, -1, -1, 455, -1, 1046, -1, 459, -1, -1, -1, -1, -1, 581, 582, -1, -1, -1, -1, -1, 472, -1, -1, -1, -1, -1, 1098, 1099, 1100, 1101, 1102, -1, -1, 321, 1106, -1, -1, 325, -1, 327, 328, 329, -1, -1, -1, -1, 334, -1, 1241, -1, 338, -1, -1, -1, -1, -1, 1128, 1129, 1130, -1, -1, 1102, -1, -1, -1, -1, 354, -1, -1, -1, -1, -1, 1098, 1099, 1100, 1101, 1102, -1, -1, -1, 1106, 649, -1, 651, 652, -1, 654, 1159, -1, 1130, -1, -1, 1164, -1, 1166, -1, 384, -1, -1, 387, 388, -1, 1128, 1129, 1130, -1, -1, -1, -1, -1, 398, -1, -1, 401, -1, -1, -1, -1, 406, -1, -1, -1, -1, 691, -1, -1, -1, -1, -1, -1, -1, -1, 1325, 1159, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1215, 1216, -1, 1218, 435, -1, 437, -1, 439, 440, 441, -1, -1, -1, 445, -1, 611, -1, -1, 450, -1, -1, 453, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1249, 1250, 1251, 468, 469, -1, 4, 5, -1, -1, 8, 9, 1215, 1216, -1, 1218, 14, -1, -1, 1268, -1, 650, -1, 652, -1, -1, -1, -1, -1, -1, 28, -1, 30, 778, -1, -1, -1, -1, 36, -1, -1, -1, 507, 508, 509, 510, -1, 45, -1, -1, 1268, -1, -1, -1, -1, -1, 54, -1, 56, 57, -1, -1, 691, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, -1, 713, -1, -1, 716, -1, -1, 3, 4, 5, 6, -1, 93, 9, -1, -1, -1, 565, -1, 567, -1, -1, 850, -1, 852, 1357, -1, -1, -1, -1, -1, -1, 744, 581, 582, 863, 584, -1, 750, 867, 868, -1, -1, 591, -1, 41, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, 604, -1, 54, -1, 56, 57, 610, -1, -1, -1, -1, -1, -1, -1, -1, 1357, -1, -1, 70, 4, 5, 905, 906, 8, 9, -1, -1, -1, 80, 14, -1, -1, -1, 1421, 1422, 1423, 88, 641, 90, -1, -1, 93, 94, -1, -1, 649, 650, 651, 652, 653, 654, 36, 1440, -1, -1, -1, -1, 1445, -1, -1, 45, -1, 47, -1, -1, -1, 1423, -1, 672, 54, -1, 56, 57, -1, -1, 80, -1, -1, -1, 1421, 1422, 1423, -1, 1440, -1, 70, -1, 691, -1, -1, -1, 695, -1, -1, -1, 80, -1, -1, 702, 703, -1, 705, -1, -1, -1, 90, -1, -1, 93, 94, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, 14, -1, -1, -1, 733, -1, -1, 736, -1, 738, 3, 4, 5, 6, 743, 744, 745, 31, -1, -1, -1, -1, 36, 153, 753, -1, -1, 41, -1, -1, 759, 45, -1, 47, -1, -1, -1, 766, 767, 768, 54, -1, 56, 57, 174, -1, -1, -1, 41, 778, -1, -1, -1, -1, -1, -1, 70, 187, -1, -1, -1, 54, -1, 56, 57, -1, 80, -1, -1, 62, -1, -1, -1, -1, 88, -1, 90, 70, -1, 93, 94, -1, -1, -1, 977, 978, -1, 80, -1, 1098, 1099, 1100, 1101, -1, -1, 88, -1, 1106, -1, -1, 93, -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, 1006, -1, 14, -1, -1, -1, 1128, 1129, 850, -1, 852, -1, -1, -1, -1, -1, 28, 859, 30, 31, 32, 863, -1, 865, 36, 867, 868, 869, -1, 41, -1, -1, 874, 45, 46, -1, 48, -1, -1, -1, -1, -1, 54, -1, 56, 57, 4, -1, 60, -1, 62, -1, -1, -1, 3, 4, 5, 6, 70, 901, 9, 903, -1, 905, 906, 907, -1, -1, 80, -1, -1, -1, 30, 31, -1, 33, 88, 35, -1, -1, -1, 93, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, 1215, 1216, 53, 1218, 55, -1, -1, -1, -1, -1, -1, 946, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, 959, -1, -1, 78, 70, -1, -1, -1, -1, -1, -1, 970, -1, 972, 80, -1, 975, -1, -1, -1, -1, -1, 88, -1, -1, 984, -1, 93, -1, -1, -1, -1, -1, -1, 1157, 1158, -1, 1160, 1161, -1, 1163, -1, -1, -1, -1, -1, -1, -1, 1007, -1, -1, -1, 127, -1, -1, -1, 131, 132, 1017, 134, 1019, -1, -1, 138, -1, 140, -1, 142, -1, -1, 145, 146, 147, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 443, 159, -1, -1, 1046, 448, -1, -1, -1, 1051, 1052, -1, 1054, -1, -1, -1, -1, -1, 176, 177, 178, -1, -1, -1, -1, -1, -1, -1, 186, -1, 473, 3, 4, 5, 6, -1, 479, 9, -1, -1, -1, -1, -1, -1, 1250, 1251, -1, 205, 491, 492, -1, 494, 3, 4, 5, 6, 1098, 1099, 1100, 1101, 1102, -1, -1, -1, 1106, -1, -1, -1, -1, 41, 1112, -1, -1, -1, -1, 1281, 1282, -1, -1, -1, -1, 239, 54, -1, 56, 57, 1128, 1129, 1130, -1, 41, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, 1144, 54, -1, 56, 57, -1, 80, -1, -1, 62, -1, -1, -1, -1, 88, 1159, -1, 70, -1, 93, 1164, -1, 1166, -1, -1, -1, -1, 80, -1, -1, -1, 4, -1, -1, -1, 88, -1, -1, -1, -1, 93, -1, 587, 588, -1, -1, -1, 592, 308, 3, 4, 5, 6, 327, 328, 329, -1, 30, 31, -1, 33, -1, 35, -1, -1, 325, -1, 40, 1376, 1377, 1378, 1215, 1216, 333, 1218, -1, -1, -1, 338, -1, 53, -1, 55, -1, -1, -1, -1, 41, -1, -1, -1, -1, -1, -1, 354, -1, -1, -1, -1, -1, 54, -1, 56, 57, -1, 1249, 1250, 1251, 62, -1, -1, -1, -1, -1, -1, -1, 70, -1, 378, -1, -1, 1429, 1430, -1, 1268, -1, 80, 387, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, 398, 93, -1, 401, -1, -1, -1, -1, 406, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, 134, -1, -1, -1, 138, -1, -1, -1, 142, -1, -1, 145, 146, 147, 435, -1, 437, -1, 439, 440, 441, -1, -1, -1, 445, 159, 1495, -1, -1, 450, -1, -1, 453, 1, -1, 3, 4, 5, 6, 7, 8, 9, 176, 177, 178, -1, 14, -1, 469, -1, -1, -1, 1357, -1, 760, -1, 762, -1, -1, -1, 28, -1, 30, 31, -1, -1, -1, -1, 36, -1, -1, 205, -1, 41, -1, -1, -1, 45, 499, -1, 48, 502, -1, -1, -1, -1, 54, -1, 56, 57, -1, -1, 60, -1, -1, -1, 517, 518, 519, -1, -1, -1, 70, -1, -1, 239, -1, -1, -1, -1, -1, 532, 80, -1, -1, -1, 1421, 1422, 1423, -1, 88, -1, -1, -1, -1, 93, -1, 833, 834, -1, 836, -1, 4, 5, -1, 1440, -1, 9, -1, -1, 1445, -1, -1, -1, -1, -1, 581, 582, -1, 584, -1, -1, -1, -1, -1, -1, 591, 578, 864, 3, 4, 5, 6, -1, -1, 9, -1, -1, -1, -1, 591, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, 56, 57, 33, -1, -1, 610, -1, -1, -1, -1, -1, -1, -1, 41, 70, -1, 334, -1, -1, 909, 338, -1, 53, -1, 80, -1, 54, -1, 56, 57, 649, -1, 651, 652, 90, 654, -1, 93, 94, -1, -1, -1, 70, -1, 649, 650, 651, 652, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, 93, -1, -1, -1, 387, -1, -1, 691, -1, -1, 3, 4, 5, 6, -1, 398, 971, -1, 401, -1, -1, 691, -1, 406, -1, 695, -1, -1, 983, -1, -1, -1, 702, 703, -1, 705, -1, -1, 3, 4, 5, 6, -1, -1, 9, -1, -1, -1, 41, 145, 146, 147, 435, -1, 437, -1, 439, 440, 441, -1, -1, 54, 445, 56, 57, -1, 736, 450, 738, -1, 453, -1, -1, 743, 744, 745, 41, 70, -1, -1, 176, 177, 178, -1, -1, -1, 469, 80, -1, 54, -1, 56, 57, -1, 778, 88, -1, -1, -1, -1, 93, -1, 772, -1, -1, 70, -1, -1, -1, 205, -1, -1, 1067, -1, -1, 80, -1, -1, -1, -1, 4, 5, -1, 88, 8, 9, -1, -1, 93, -1, 14, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, 28, -1, 30, -1, -1, -1, 1105, -1, 36, 3, 4, 5, 6, 7, 8, 9, -1, 45, -1, -1, 14, -1, 850, -1, 852, -1, 54, -1, 56, 57, -1, -1, -1, -1, 28, 863, 30, 31, 278, 867, 868, 869, 36, -1, -1, -1, -1, 41, -1, -1, -1, 45, 579, 867, 868, 869, -1, -1, -1, 873, 54, -1, 56, 57, -1, -1, 60, -1, -1, 1168, -1, -1, -1, 1172, -1, -1, 70, 905, 906, 907, -1, -1, -1, 610, -1, -1, 80, 327, 328, 329, -1, 905, 906, 907, 88, -1, -1, -1, 912, 93, -1, -1, 3, 4, 5, 6, -1, -1, 1207, -1, -1, -1, -1, -1, -1, -1, -1, -1, 946, -1, -1, -1, 649, 650, 651, 652, -1, -1, -1, -1, -1, -1, 946, -1, -1, 3, 4, 5, 6, -1, 41, 9, -1, -1, -1, -1, -1, 387, -1, -1, -1, -1, -1, 54, -1, 56, 57, -1, -1, 60, -1, 975, -1, -1, 691, -1, -1, -1, 695, 70, -1, -1, -1, 41, -1, 702, 703, 1276, 705, 80, -1, 1280, 996, -1, -1, -1, 54, 88, 56, 57, -1, -1, 93, 1007, -1, 435, 53, 437, -1, 439, 440, 441, 70, 1302, 1303, 445, -1, -1, -1, 736, 450, 738, 80, 453, -1, -1, 743, 744, 745, -1, 88, 78, -1, -1, 81, 93, -1, -1, 3, 4, 5, 6, -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, -1, 104, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 1078, -1, 41, -1, -1, -1, 1098, 1099, 1100, 1101, 1102, -1, -1, -1, 1106, 54, -1, 56, 57, -1, 1098, 1099, 1100, 1101, 1102, -1, 1104, -1, 1106, -1, -1, 70, -1, -1, -1, -1, 1128, 1129, 1130, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, 88, 1128, 1129, 1130, -1, 93, 176, 177, 178, -1, -1, -1, -1, -1, 567, -1, 186, 3, 4, 5, 6, -1, -1, 9, -1, -1, -1, -1, 581, 582, -1, 584, 1159, -1, 874, 205, -1, 1164, 591, 1166, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 41, -1, 610, 228, -1, -1, -1, -1, -1, -1, 905, 906, 907, 54, -1, 56, 57, 242, -1, 1215, 1216, -1, 1218, -1, -1, 3, 4, 5, 6, 70, -1, -1, -1, 1215, 1216, -1, 1218, -1, -1, 80, -1, 649, -1, 651, 652, -1, 654, 88, -1, -1, -1, 946, 93, 3, 4, 5, 6, -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, 1249, 1250, 1251, -1, -1, -1, -1, -1, -1, 54, -1, 56, 57, 975, -1, -1, 691, -1, -1, -1, -1, -1, -1, -1, 41, 70, -1, 702, 703, -1, 705, -1, -1, -1, -1, 80, -1, 54, -1, 56, 57, 333, 334, 88, -1, 1007, -1, -1, 93, -1, -1, -1, -1, 70, 1, -1, 3, 4, 5, 6, 7, 8, 9, 80, -1, -1, -1, 14, 743, -1, -1, 88, -1, -1, -1, -1, 93, -1, -1, -1, -1, 28, -1, 30, 31, 32, -1, -1, -1, 36, 37, 766, 767, 768, 41, 387, -1, -1, 45, 46, -1, 48, -1, 778, -1, -1, -1, 54, 1357, 56, 57, -1, -1, 60, -1, 62, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, 1098, 1099, 1100, 1101, 1102, 88, -1, 435, 1106, 437, 93, 439, 440, 441, -1, -1, -1, 445, -1, -1, -1, -1, 450, 4, 5, 453, 109, 8, 9, -1, 1128, 1129, 1130, 14, -1, -1, 1421, 1422, 1423, 850, -1, 852, -1, -1, -1, -1, -1, 28, -1, 30, -1, -1, 863, -1, -1, 36, 867, 868, 869, -1, 1445, 1159, 4, -1, 45, -1, 1164, -1, 1166, -1, -1, -1, -1, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, 31, -1, -1, -1, 35, 905, 906, 907, -1, 40, -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, 55, 14, -1, -1, 1215, 1216, -1, 1218, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, 31, 32, -1, -1, 946, 36, 37, -1, -1, -1, 41, -1, -1, -1, 45, 46, -1, 48, -1, -1, 1249, 1250, 1251, 54, -1, 56, 57, -1, -1, 60, -1, 62, -1, 975, -1, 594, 595, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, 610, -1, -1, -1, -1, -1, 88, -1, -1, -1, 134, 93, -1, -1, 138, -1, -1, -1, 142, 4, 5, 14, 7, 8, 9, -1, -1, 109, -1, 14, 23, 24, -1, -1, -1, 159, -1, 30, 31, 649, 33, 651, 652, 28, -1, 30, 31, -1, -1, -1, -1, 36, 176, 177, -1, -1, -1, -1, 1051, 1052, 45, 1054, -1, 48, -1, -1, -1, -1, -1, 54, 63, 56, 57, -1, -1, -1, -1, 1357, -1, -1, -1, 691, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 702, 703, -1, 705, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1098, 1099, 1100, 1101, 1102, -1, -1, -1, 1106, -1, 239, -1, -1, -1, -1, 730, -1, -1, -1, -1, -1, -1, -1, -1, 122, -1, 124, -1, 743, 127, 1128, 1129, 1130, 131, 132, -1, 1421, 1422, 1423, -1, 138, -1, 140, 141, 142, -1, -1, 145, 146, 147, -1, -1, 3, 4, 5, 6, 7, 8, 9, -1, 1445, 1159, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, 41, -1, -1, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, 56, 57, -1, -1, 338, -1, -1, -1, -1, -1, -1, -1, 1215, 1216, 70, 1218, 219, 220, 4, 5, -1, 7, 8, 9, 80, -1, 12, -1, 14, -1, -1, -1, 88, -1, 90, -1, 239, 93, 94, -1, -1, -1, 28, -1, 30, 31, 1249, -1, 1251, -1, 36, -1, -1, 873, 874, 875, -1, -1, -1, 45, -1, 47, -1, -1, 398, -1, -1, 401, 54, -1, 56, 57, 406, -1, -1, 278, -1, -1, -1, -1, -1, -1, -1, -1, 70, 905, 906, 907, -1, -1, -1, -1, 912, -1, 80, -1, -1, -1, -1, -1, -1, 435, -1, 437, 90, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, 450, -1, -1, -1, -1, -1, 325, -1, 327, 328, 946, -1, -1, -1, -1, -1, -1, -1, -1, 469, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 354, -1, -1, 1357, 975, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 378, 996, 1, -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, 14, 394, -1, -1, -1, 398, -1, -1, 401, -1, -1, -1, -1, 406, 28, -1, 30, 31, 32, -1, -1, -1, 36, 37, -1, -1, -1, 41, 1421, 1422, 1423, 45, 46, -1, 48, -1, -1, -1, -1, -1, 54, -1, 56, 57, -1, -1, 60, -1, 62, -1, -1, -1, 1445, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, 1078, -1, -1, -1, -1, 466, 88, 468, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, 1098, 1099, 1100, 1101, 1102, -1, 1104, 109, 1106, -1, -1, -1, 493, -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, 14, -1, 1128, 1129, 1130, -1, -1, -1, -1, -1, 650, -1, -1, 27, 28, -1, 30, 31, 32, -1, -1, -1, 36, -1, -1, -1, -1, 41, -1, -1, 44, 45, 46, 1159, 48, -1, -1, -1, -1, -1, 54, -1, 56, 57, -1, -1, 60, -1, -1, -1, -1, -1, -1, -1, -1, 695, 70, -1, 567, -1, -1, -1, 702, 703, -1, 705, 80, -1, -1, 578, 579, -1, 581, 582, 88, -1, -1, -1, -1, 93, -1, -1, -1, -1, 98, -1, -1, -1, -1, 1215, 1216, -1, 1218, -1, -1, -1, 736, -1, 738, -1, -1, -1, -1, 743, 744, 745, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1249, -1, 1251, -1, -1, -1, -1, -1, -1, 641, 1, -1, 3, 4, 5, 6, -1, 8, 9, 10, 11, 653, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 672, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 730, -1, -1, 733, 93, 94, -1, -1, -1, -1, 1357, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, -1, -1, -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, -1, 766, 767, 768, 14, -1, -1, -1, -1, 905, 906, -1, -1, 778, -1, -1, -1, 27, 28, -1, 30, 31, 32, -1, -1, -1, 36, -1, -1, -1, -1, 41, -1, -1, 44, 45, 46, -1, 48, 1421, 1422, 1423, -1, -1, 54, -1, 56, 57, -1, -1, 60, 1, -1, 3, 4, 5, 6, 7, 8, 9, 70, -1, 12, 1445, 14, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, 25, -1, 27, 88, 975, -1, 31, -1, 93, -1, 850, 36, 852, 98, -1, -1, 41, -1, -1, -1, 45, -1, 47, 863, -1, -1, -1, -1, -1, 54, -1, 56, 57, 58, 59, 60, 1007, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, 86, 87, 88, -1, 90, 91, 92, 93, 94, 95, -1, 97, -1, -1, -1, -1, 102, -1, -1, -1, -1, 107, 108, 109, -1, 111, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, 1098, 1099, -1, 970, -1, -1, -1, -1, 1106, 111, -1, -1, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, 997, 47, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, 1159, 78, 79, 80, -1, 1164, -1, 1166, -1, 86, 87, 88, -1, 90, -1, -1, 93, 94, -1, -1, -1, -1, -1, 1051, 1052, -1, 1054, -1, -1, -1, -1, -1, -1, 110, -1, 3, 4, 5, 6, 7, 8, 9, -1, -1, 12, -1, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1215, 1216, -1, 1218, 28, -1, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, 41, -1, -1, -1, 45, -1, 47, -1, -1, -1, -1, 1112, -1, 54, -1, 56, 57, -1, 1250, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, 1144, -1, -1, -1, 88, -1, 90, -1, -1, 93, 94, -1, -1, -1, -1, -1, -1, -1, 1162, 1, 1164, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, 60, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, 60, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, 1, 95, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, 47, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, 90, -1, -1, 93, 94, 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, 1, 93, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, -1, -1, 108, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, 60, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, 94, 1, -1, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, -1, 1, -1, 3, 4, 5, 6, 101, 8, 9, 10, 11, -1, 13, 14, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, 62, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, 60, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, 1, -1, 70, 4, 5, -1, -1, 8, 9, -1, 78, 79, 80, 14, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, -1, 28, -1, 30, -1, -1, -1, -1, -1, 36, -1, 38, 39, -1, 108, -1, 110, -1, 45, -1, 47, -1, -1, -1, -1, -1, -1, 54, -1, 56, 57, -1, 59, -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, 86, 87, 88, -1, -1, 91, -1, 1, 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, 1, 93, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, 111, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, 60, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, -1, 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, 110, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, 60, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, -1, 95, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, 110, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, 60, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, -1, 95, -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, 110, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, 60, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, -1, 95, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, 47, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, 90, -1, -1, 93, 94, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, 47, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, 90, -1, -1, 93, 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, 47, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, 90, -1, -1, 93, 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, 47, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, 90, -1, -1, 93, 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, 60, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, 3, 4, 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, 31, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, 58, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, 94, 3, 4, 5, 6, -1, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, 3, 4, 5, 6, 93, 8, 9, 10, 11, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, 110, -1, -1, -1, 28, 29, 30, -1, 32, -1, 34, 35, 36, -1, 38, 39, 40, 41, 42, 43, -1, 45, -1, -1, -1, 49, 50, 51, 52, 53, 54, -1, 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67, -1, -1, 70, -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, -1, -1, -1, 86, 87, 88, -1, -1, -1, -1, 93, 3, 4, 5, 6, 7, 8, 9, -1, -1, 12, -1, 14, -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, 41, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, 56, 57, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, 14, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, 28, -1, 30, 31, -1, 88, -1, -1, 36, -1, 93, -1, -1, 41, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, 56, 57, -1, -1, -1, -1, 62, -1, -1, -1, -1, -1, -1, -1, 70, 3, 4, 5, 6, 7, 8, 9, -1, -1, 80, -1, 14, -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, 93, -1, -1, 28, -1, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, 41, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, 56, 57, -1, -1, 60, -1, 3, 4, 5, 6, 7, 8, 9, -1, 70, -1, -1, 14, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 28, 88, 30, 31, -1, -1, 93, -1, 36, -1, -1, -1, -1, 41, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, 56, 57, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, 14, 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, 28, -1, 30, 31, -1, 88, -1, -1, 36, -1, 93, -1, -1, 41, 4, 5, -1, 45, 8, 9, -1, -1, -1, -1, 14, -1, 54, -1, 56, 57, 3, 4, 5, 6, 7, 8, 9, -1, 28, -1, 30, 14, 70, -1, -1, -1, 36, -1, -1, -1, -1, -1, 80, -1, -1, 45, -1, 47, 31, -1, 88, -1, -1, 36, 54, 93, 56, 57, 41, -1, -1, 12, 45, -1, 47, -1, -1, -1, -1, -1, 70, 54, -1, 56, 57, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, 70, -1, -1, 90, -1, -1, 93, 94, -1, -1, 80, -1, -1, -1, -1, 31, -1, -1, 88, -1, -1, -1, -1, 93, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 4, 5, -1, 7, 8, 9, -1, -1, 12, -1, 14, -1, -1, 4, 5, -1, 7, 8, 9, -1, -1, 12, -1, 14, 28, -1, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, 28, -1, 30, 31, 45, -1, -1, -1, 36, -1, -1, -1, -1, 54, -1, 56, 57, 45, -1, -1, 4, 5, -1, 7, 8, 9, 54, -1, 56, 57, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, 56, 57, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, 107, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, 76, 77, 78, 79, 80, 81, 82, 83, 84 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/lib/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ #ifndef alloca #ifdef __GNUC__ #define alloca __builtin_alloca #else /* not GNU C. */ #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) #include #else /* not sparc */ #if defined (MSDOS) && !defined (__TURBOC__) #include #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) #include #pragma alloca #else /* not MSDOS, __TURBOC__, or _AIX */ #ifdef __hpux #ifdef __cplusplus extern "C" { void *alloca (unsigned int); }; #else /* not __cplusplus */ void *alloca (); #endif /* not __cplusplus */ #endif /* __hpux */ #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ #endif /* not sparc. */ #endif /* not GNU C. */ #endif /* alloca not defined. */ /* This is the parser code that is written into each bison parser when the %semantic_parser declaration is not specified in the grammar. It was written by Richard Stallman by simplifying the hairy parser used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action as one case of the switch. */ #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 #define YYACCEPT return(0) #define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(token, value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { yychar = (token), yylval = (value); \ yychar1 = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ { yyerror ("syntax error: cannot back up"); YYERROR; } \ while (0) #define YYTERROR 1 #define YYERRCODE 256 #ifndef YYPURE #define YYLEX yylex() #endif #ifdef YYPURE #ifdef YYLSP_NEEDED #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) #else #define YYLEX yylex(&yylval, &yylloc) #endif #else /* not YYLSP_NEEDED */ #ifdef YYLEX_PARAM #define YYLEX yylex(&yylval, YYLEX_PARAM) #else #define YYLEX yylex(&yylval) #endif #endif /* not YYLSP_NEEDED */ #endif /* If nonreentrant, generate the variables here */ #ifndef YYPURE int yychar; /* the lookahead symbol */ YYSTYPE yylval; /* the semantic value of the */ /* lookahead symbol */ #ifdef YYLSP_NEEDED YYLTYPE yylloc; /* location data for the lookahead */ /* symbol */ #endif int yynerrs; /* number of parse errors so far */ #endif /* not YYPURE */ #if YYDEBUG != 0 int yydebug; /* nonzero means print parse trace */ /* Since this is uninitialized, it does not stop multiple parsers from coexisting. */ #endif /* YYINITDEPTH indicates the initial size of the parser's stacks */ #ifndef YYINITDEPTH #define YYINITDEPTH 200 #endif /* YYMAXDEPTH is the maximum size the stacks can grow to (effective only if the built-in stack extension method is used). */ #if YYMAXDEPTH == 0 #undef YYMAXDEPTH #endif #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif /* Prevent warning if -Wstrict-prototypes. */ #ifdef __GNUC__ int yyparse (void); #endif #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ #ifndef __cplusplus /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (to, from, count) char *to; char *from; int count; { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #else /* __cplusplus */ /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void __yy_memcpy (char *to, char *from, int count) { register char *f = from; register char *t = to; register int i = count; while (i-- > 0) *t++ = *f++; } #endif #endif #line 196 "/usr/lib/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. It should actually point to an object. Grammar actions can access the variable by casting it to the proper pointer type. */ #ifdef YYPARSE_PARAM #ifdef __cplusplus #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM #define YYPARSE_PARAM_DECL #else /* not __cplusplus */ #define YYPARSE_PARAM_ARG YYPARSE_PARAM #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; #endif /* not __cplusplus */ #else /* not YYPARSE_PARAM */ #define YYPARSE_PARAM_ARG #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ int yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL { register int yystate; register int yyn; register short *yyssp; register YYSTYPE *yyvsp; int yyerrstatus; /* number of tokens to shift before error messages enabled */ int yychar1 = 0; /* lookahead token as an internal (translated) token number */ short yyssa[YYINITDEPTH]; /* the state stack */ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ short *yyss = yyssa; /* refer to the stacks thru separate pointers */ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ #ifdef YYLSP_NEEDED YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) #else #define YYPOPSTACK (yyvsp--, yyssp--) #endif int yystacksize = YYINITDEPTH; #ifdef YYPURE int yychar; YYSTYPE yylval; int yynerrs; #ifdef YYLSP_NEEDED YYLTYPE yylloc; #endif #endif YYSTYPE yyval; /* the variable used to return */ /* semantic values from the action */ /* routines */ int yylen; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Starting parse\n"); #endif yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss - 1; yyvsp = yyvs; #ifdef YYLSP_NEEDED yylsp = yyls; #endif /* Push a new state, which is found in yystate . */ /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ yynewstate: *++yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) { /* Give user a chance to reallocate the stack */ /* Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; short *yyss1 = yyss; #ifdef YYLSP_NEEDED YYLTYPE *yyls1 = yyls; #endif /* Get the current used size of the three stacks, in elements. */ int size = yyssp - yyss + 1; #ifdef yyoverflow /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. */ #ifdef YYLSP_NEEDED /* This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yyls1, size * sizeof (*yylsp), &yystacksize); #else yyoverflow("parser stack overflow", &yyss1, size * sizeof (*yyssp), &yyvs1, size * sizeof (*yyvsp), &yystacksize); #endif yyss = yyss1; yyvs = yyvs1; #ifdef YYLSP_NEEDED yyls = yyls1; #endif #else /* no yyoverflow */ /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; #ifdef YYLSP_NEEDED yylsp = yyls + size - 1; #endif #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Stack size increased to %d\n", yystacksize); #endif if (yyssp >= yyss + yystacksize - 1) YYABORT; } #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Entering state %d\n", yystate); #endif goto yybackup; yybackup: /* Do appropriate processing given the current state. */ /* Read a lookahead token if we need one and don't already have one. */ /* yyresume: */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yyn == YYFLAG) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* yychar is either YYEMPTY or YYEOF or a valid token in external form. */ if (yychar == YYEMPTY) { #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Reading a token: "); #endif yychar = YYLEX; } /* Convert token to internal form (in yychar1) for indexing tables with */ if (yychar <= 0) /* This means end of input. */ { yychar1 = 0; yychar = YYEOF; /* Don't call YYLEX any more */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Now at end of input.\n"); #endif } else { yychar1 = YYTRANSLATE(yychar); #if YYDEBUG != 0 if (yydebug) { fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); /* Give the individual parser a way to print the precise meaning of a token, for further debugging info. */ #ifdef YYPRINT YYPRINT (stderr, yychar, yylval); #endif fprintf (stderr, ")\n"); } #endif } yyn += yychar1; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) goto yydefault; yyn = yytable[yyn]; /* yyn is what to do for this token type in this state. Negative => reduce, -yyn is rule number. Positive => shift, yyn is new state. New state is final state => don't bother to shift, just return success. 0, or most negative number => error. */ if (yyn < 0) { if (yyn == YYFLAG) goto yyerrlab; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; /* Shift the lookahead token. */ #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); #endif /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif /* count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; goto yynewstate; /* Do the default action for the current state. */ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; /* Do a reduction. yyn is the number of a rule to reduce with. */ yyreduce: yylen = yyr2[yyn]; if (yylen > 0) yyval = yyvsp[1-yylen]; /* implement default value of the action */ #if YYDEBUG != 0 if (yydebug) { int i; fprintf (stderr, "Reducing via rule %d (line %d), ", yyn, yyrline[yyn]); /* Print the symbols being reduced, and their result. */ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) fprintf (stderr, "%s ", yytname[yyrhs[i]]); fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); } #endif switch (yyn) { case 2: #line 331 "parse.y" { finish_translation_unit (); ; break;} case 3: #line 339 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 4: #line 341 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 5: #line 343 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 8: #line 352 "parse.y" { have_extern_spec = 1; used_extern_spec = 0; yyval.ttype = NULL_TREE; ; break;} case 9: #line 357 "parse.y" { have_extern_spec = 0; ; break;} case 10: #line 362 "parse.y" { yyval.itype = pedantic; pedantic = 0; ; break;} case 12: #line 371 "parse.y" { if (pending_lang_change) do_pending_lang_change(); ; break;} case 13: #line 373 "parse.y" { if (! toplevel_bindings_p () && ! pseudo_global_level_p()) pop_everything (); ; break;} case 14: #line 379 "parse.y" { if (pending_inlines) do_pending_inlines (); ; break;} case 15: #line 381 "parse.y" { if (pending_inlines) do_pending_inlines (); ; break;} case 16: #line 383 "parse.y" { if (pending_inlines) do_pending_inlines (); ; break;} case 17: #line 385 "parse.y" { if (TREE_CHAIN (yyvsp[-2].ttype)) yyvsp[-2].ttype = combine_strings (yyvsp[-2].ttype); assemble_asm (yyvsp[-2].ttype); ; break;} case 18: #line 388 "parse.y" { pop_lang_context (); ; break;} case 19: #line 390 "parse.y" { if (pending_inlines) do_pending_inlines (); pop_lang_context (); ; break;} case 20: #line 393 "parse.y" { if (pending_inlines) do_pending_inlines (); pop_lang_context (); ; break;} case 21: #line 396 "parse.y" { push_namespace (yyvsp[-1].ttype); ; break;} case 22: #line 398 "parse.y" { pop_namespace (); ; break;} case 23: #line 400 "parse.y" { push_namespace (NULL_TREE); ; break;} case 24: #line 402 "parse.y" { pop_namespace (); ; break;} case 25: #line 404 "parse.y" { do_namespace_alias (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 26: #line 406 "parse.y" { do_toplevel_using_decl (yyvsp[-1].ttype); ; break;} case 27: #line 408 "parse.y" { /* If no declaration was found, the using-directive is invalid. Since that was not reported, we need the identifier for the error message. */ if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE && lastiddecl) yyvsp[-1].ttype = lastiddecl; do_using_directive (yyvsp[-1].ttype); ; break;} case 28: #line 417 "parse.y" { pedantic = yyvsp[-1].itype; ; break;} case 29: #line 422 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 30: #line 424 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 31: #line 426 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 34: #line 433 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 35: #line 435 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 36: #line 440 "parse.y" { push_lang_context (yyvsp[0].ttype); ; break;} case 37: #line 442 "parse.y" { if (current_lang_name != yyvsp[0].ttype) cp_error ("use of linkage spec `%D' is different from previous spec `%D'", yyvsp[0].ttype, current_lang_name); pop_lang_context (); push_lang_context (yyvsp[0].ttype); ; break;} case 38: #line 449 "parse.y" { begin_template_parm_list (); ; break;} case 39: #line 451 "parse.y" { yyval.ttype = end_template_parm_list (yyvsp[-1].ttype); ; break;} case 40: #line 453 "parse.y" { begin_specialization(); yyval.ttype = NULL_TREE; ; break;} case 41: #line 459 "parse.y" { yyval.ttype = process_template_parm (NULL_TREE, yyvsp[0].ttype); ; break;} case 42: #line 461 "parse.y" { yyval.ttype = process_template_parm (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 43: #line 466 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 44: #line 468 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 45: #line 472 "parse.y" { yyval.ttype = finish_template_type_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 46: #line 474 "parse.y" { yyval.ttype = finish_template_type_parm (class_type_node, yyvsp[0].ttype); ; break;} case 47: #line 479 "parse.y" { yyval.ttype = finish_template_template_parm (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 48: #line 491 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 49: #line 493 "parse.y" { yyval.ttype = build_tree_list (groktypename (yyvsp[0].ftype.t), yyvsp[-2].ttype); ; break;} case 50: #line 495 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} case 51: #line 497 "parse.y" { yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ftype.t); ; break;} case 52: #line 499 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 53: #line 501 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) != TEMPLATE_DECL && TREE_CODE (yyvsp[0].ttype) != TEMPLATE_TEMPLATE_PARM && TREE_CODE (yyvsp[0].ttype) != TYPE_DECL) { error ("invalid default template argument"); yyvsp[0].ttype = error_mark_node; } yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype); ; break;} case 54: #line 516 "parse.y" { if (yyvsp[-1].ttype) end_template_decl (); else end_specialization (); ; break;} case 55: #line 524 "parse.y" { if (yyvsp[-1].ttype) end_template_decl (); else end_specialization (); ; break;} case 57: #line 535 "parse.y" {; break;} case 58: #line 537 "parse.y" { note_list_got_semicolon (yyvsp[-2].ftype.t); ; break;} case 59: #line 541 "parse.y" { pedwarn ("empty declaration"); ; break;} case 61: #line 544 "parse.y" { tree t, attrs; split_specs_attrs (yyvsp[-1].ftype.t, &t, &attrs); shadow_tag (t); note_list_got_semicolon (yyvsp[-1].ftype.t); ; break;} case 65: #line 557 "parse.y" { yyval.itype = 0; ; break;} case 66: #line 559 "parse.y" { yyval.itype = 1; ; break;} case 72: #line 575 "parse.y" { finish_function (lineno, (int)yyvsp[-1].itype, 0); ; break;} case 73: #line 577 "parse.y" { ; break;} case 74: #line 579 "parse.y" { ; break;} case 75: #line 584 "parse.y" { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 76: #line 586 "parse.y" { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 77: #line 588 "parse.y" { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 78: #line 592 "parse.y" { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 79: #line 594 "parse.y" { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 80: #line 596 "parse.y" { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 81: #line 600 "parse.y" { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 82: #line 602 "parse.y" { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 83: #line 604 "parse.y" { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 84: #line 608 "parse.y" { yyval.ttype = begin_constructor_declarator (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 85: #line 610 "parse.y" { yyval.ttype = make_call_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 86: #line 612 "parse.y" { yyval.ttype = begin_constructor_declarator (yyvsp[-4].ttype, yyvsp[-3].ttype); yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 87: #line 619 "parse.y" { if (!begin_function_definition (yyvsp[-1].ftype.t, yyvsp[0].ttype)) YYERROR1; ; break;} case 88: #line 622 "parse.y" { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype)) YYERROR1; ; break;} case 89: #line 625 "parse.y" { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype)) YYERROR1; ; break;} case 90: #line 628 "parse.y" { if (!begin_function_definition (yyvsp[-1].ttype, yyvsp[0].ttype)) YYERROR1; ; break;} case 91: #line 631 "parse.y" { if (!begin_function_definition (NULL_TREE, yyvsp[0].ttype)) YYERROR1; ; break;} case 92: #line 637 "parse.y" { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 93: #line 639 "parse.y" { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 94: #line 641 "parse.y" { yyval.ttype = make_call_declarator (yyvsp[-5].ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 95: #line 643 "parse.y" { yyval.ttype = make_call_declarator (yyvsp[-3].ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 96: #line 650 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ttype); yyval.ttype = start_method (specs, yyvsp[0].ttype); rest_of_mdef: if (! yyval.ttype) YYERROR1; if (yychar == YYEMPTY) yychar = YYLEX; reinit_parse_for_method (yychar, yyval.ttype); ; break;} case 97: #line 659 "parse.y" { yyval.ttype = start_method (NULL_TREE, yyvsp[0].ttype); goto rest_of_mdef; ; break;} case 98: #line 661 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ; break;} case 99: #line 664 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ttype); yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ; break;} case 100: #line 667 "parse.y" { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ; break;} case 101: #line 669 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ttype); yyval.ttype = start_method (specs, yyvsp[0].ttype); goto rest_of_mdef; ; break;} case 102: #line 672 "parse.y" { yyval.ttype = start_method (NULL_TREE, yyval.ttype); goto rest_of_mdef; ; break;} case 103: #line 677 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); yyval.ttype = yyvsp[0].ttype; ; break;} case 104: #line 686 "parse.y" { store_return_init (yyval.ttype, yyvsp[0].ttype); ; break;} case 105: #line 688 "parse.y" { store_return_init (yyval.ttype, yyvsp[-1].ttype); ; break;} case 106: #line 690 "parse.y" { store_return_init (yyval.ttype, NULL_TREE); ; break;} case 107: #line 695 "parse.y" { if (yyvsp[0].itype == 0) error ("no base initializers given following ':'"); setup_vtbl_ptr (); /* Always keep the BLOCK node associated with the outermost pair of curley braces of a function. These are needed for correct operation of dwarfout.c. */ keep_next_level (); ; break;} case 108: #line 708 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); if (DECL_CONSTRUCTOR_P (current_function_decl)) { /* Make a contour for the initializer list. */ pushlevel (0); clear_last_expr (); expand_start_bindings (0); } else if (current_class_type == NULL_TREE) error ("base initializers not allowed for non-member functions"); else if (! DECL_CONSTRUCTOR_P (current_function_decl)) error ("only constructors take base initializers"); ; break;} case 109: #line 728 "parse.y" { yyval.itype = 0; ; break;} case 110: #line 730 "parse.y" { yyval.itype = 1; ; break;} case 113: #line 737 "parse.y" { if (current_class_name) pedwarn ("anachronistic old style base class initializer"); expand_member_init (current_class_ref, NULL_TREE, yyvsp[-1].ttype); ; break;} case 114: #line 743 "parse.y" { if (current_class_name) pedwarn ("anachronistic old style base class initializer"); expand_member_init (current_class_ref, NULL_TREE, void_type_node); ; break;} case 115: #line 749 "parse.y" { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 116: #line 751 "parse.y" { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ; break;} case 117: #line 753 "parse.y" { expand_member_init (current_class_ref, yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 118: #line 755 "parse.y" { expand_member_init (current_class_ref, yyvsp[-1].ttype, void_type_node); ; break;} case 119: #line 757 "parse.y" { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-3].ttype), yyvsp[-1].ttype); ; break;} case 120: #line 760 "parse.y" { expand_member_init (current_class_ref, TYPE_MAIN_DECL (yyvsp[-1].ttype), void_type_node); ; break;} case 132: #line 786 "parse.y" { do_type_instantiation (yyvsp[-1].ftype.t, NULL_TREE); yyungetc (';', 1); ; break;} case 134: #line 790 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); do_decl_instantiation (specs, yyvsp[0].ttype, NULL_TREE); ; break;} case 136: #line 794 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} case 138: #line 797 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, NULL_TREE); ; break;} case 140: #line 800 "parse.y" { do_type_instantiation (yyvsp[-1].ftype.t, yyvsp[-4].ttype); yyungetc (';', 1); ; break;} case 142: #line 805 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); do_decl_instantiation (specs, yyvsp[0].ttype, yyvsp[-4].ttype); ; break;} case 144: #line 809 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ; break;} case 146: #line 812 "parse.y" { do_decl_instantiation (NULL_TREE, yyvsp[0].ttype, yyvsp[-3].ttype); ; break;} case 148: #line 817 "parse.y" { begin_explicit_instantiation(); ; break;} case 149: #line 820 "parse.y" { end_explicit_instantiation(); ; break;} case 150: #line 828 "parse.y" { yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_STUB_DECL (yyval.ttype); ; break;} case 151: #line 834 "parse.y" { yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_STUB_DECL (yyval.ttype); ; break;} case 153: #line 844 "parse.y" { yyval.ttype = lookup_template_class (yyvsp[-3].ttype, yyvsp[-1].ttype, NULL_TREE, NULL_TREE); if (yyval.ttype != error_mark_node) yyval.ttype = TYPE_STUB_DECL (yyval.ttype); ; break;} case 155: #line 854 "parse.y" { /* Handle `Class>' without space in the `>>' */ pedwarn ("`>>' should be `> >' in template class name"); yyungetc ('>', 1); ; break;} case 156: #line 863 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 158: #line 869 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} case 159: #line 871 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 160: #line 876 "parse.y" { yyval.ttype = groktypename (yyvsp[0].ftype.t); ; break;} case 162: #line 882 "parse.y" { yyval.code = NEGATE_EXPR; ; break;} case 163: #line 884 "parse.y" { yyval.code = CONVERT_EXPR; ; break;} case 164: #line 886 "parse.y" { yyval.code = PREINCREMENT_EXPR; ; break;} case 165: #line 888 "parse.y" { yyval.code = PREDECREMENT_EXPR; ; break;} case 166: #line 890 "parse.y" { yyval.code = TRUTH_NOT_EXPR; ; break;} case 167: #line 895 "parse.y" { yyval.ttype = build_x_compound_expr (yyval.ttype); ; break;} case 169: #line 901 "parse.y" { error ("ANSI C++ forbids an empty condition for `%s'", cond_stmt_keyword); yyval.ttype = integer_zero_node; ; break;} case 170: #line 905 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 171: #line 910 "parse.y" { error ("ANSI C++ forbids an empty condition for `%s'", cond_stmt_keyword); yyval.ttype = integer_zero_node; ; break;} case 172: #line 914 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 173: #line 919 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 174: #line 921 "parse.y" { yyval.ttype = condition_conversion (yyval.ttype); ; break;} case 175: #line 923 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 176: #line 928 "parse.y" { { tree d; for (d = getdecls (); d; d = TREE_CHAIN (d)) if (TREE_CODE (d) == TYPE_DECL) { tree s = TREE_TYPE (d); if (TREE_CODE (s) == RECORD_TYPE) cp_error ("definition of class `%T' in condition", s); else if (TREE_CODE (s) == ENUMERAL_TYPE) cp_error ("definition of enum `%T' in condition", s); } } current_declspecs = yyvsp[-4].ftype.t; yyvsp[0].itype = suspend_momentary (); yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, yyvsp[-1].ttype, /*prefix_attributes*/ NULL_TREE); ; break;} case 177: #line 945 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-3].ttype, 1, LOOKUP_ONLYCONVERTING); resume_momentary (yyvsp[-2].itype); yyval.ttype = yyvsp[-1].ttype; if (TREE_CODE (TREE_TYPE (yyval.ttype)) == ARRAY_TYPE) cp_error ("definition of array `%#D' in condition", yyval.ttype); ; break;} case 183: #line 964 "parse.y" { yyval.ttype = begin_compound_stmt (1); ; break;} case 184: #line 966 "parse.y" { finish_compound_stmt (1, yyvsp[-1].ttype); ; break;} case 186: #line 973 "parse.y" { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 187: #line 976 "parse.y" { yyval.ttype = expr_tree_cons (NULL_TREE, yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ; break;} case 188: #line 979 "parse.y" { chainon (yyval.ttype, build_expr_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 189: #line 981 "parse.y" { chainon (yyval.ttype, build_expr_list (NULL_TREE, error_mark_node)); ; break;} case 190: #line 986 "parse.y" { yyval.ttype = build_expr_list (NULL_TREE, yyval.ttype); ; break;} case 192: #line 992 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 193: #line 995 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} case 194: #line 998 "parse.y" { yyval.ttype = build_x_indirect_ref (yyvsp[0].ttype, "unary *"); ; break;} case 195: #line 1000 "parse.y" { yyval.ttype = build_x_unary_op (ADDR_EXPR, yyvsp[0].ttype); ; break;} case 196: #line 1002 "parse.y" { yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 197: #line 1004 "parse.y" { yyval.ttype = finish_unary_op_expr (yyvsp[-1].code, yyvsp[0].ttype); ; break;} case 198: #line 1007 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids `&&'"); yyval.ttype = finish_label_address_expr (yyvsp[0].ttype); ; break;} case 199: #line 1011 "parse.y" { yyval.ttype = expr_sizeof (yyvsp[0].ttype); ; break;} case 200: #line 1013 "parse.y" { yyval.ttype = c_sizeof (groktypename (yyvsp[-1].ftype.t)); ; break;} case 201: #line 1015 "parse.y" { yyval.ttype = grok_alignof (yyvsp[0].ttype); ; break;} case 202: #line 1017 "parse.y" { yyval.ttype = c_alignof (groktypename (yyvsp[-1].ftype.t)); check_for_new_type ("alignof", yyvsp[-1].ftype); ; break;} case 203: #line 1023 "parse.y" { yyval.ttype = build_new (NULL_TREE, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-1].itype); check_for_new_type ("new", yyvsp[0].ftype); ; break;} case 204: #line 1026 "parse.y" { yyval.ttype = build_new (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-2].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 205: #line 1029 "parse.y" { yyval.ttype = build_new (yyvsp[-1].ttype, yyvsp[0].ftype.t, NULL_TREE, yyvsp[-2].itype); check_for_new_type ("new", yyvsp[0].ftype); ; break;} case 206: #line 1032 "parse.y" { yyval.ttype = build_new (yyvsp[-2].ttype, yyvsp[-1].ftype.t, yyvsp[0].ttype, yyvsp[-3].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 207: #line 1045 "parse.y" { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-4].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 208: #line 1050 "parse.y" { yyval.ttype = build_new (NULL_TREE, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-5].itype); check_for_new_type ("new", yyvsp[-2].ftype); ; break;} case 209: #line 1054 "parse.y" { yyval.ttype = build_new (yyvsp[-4].ttype, groktypename(yyvsp[-1].ftype.t), NULL_TREE, yyvsp[-5].itype); check_for_new_type ("new", yyvsp[-1].ftype); ; break;} case 210: #line 1058 "parse.y" { yyval.ttype = build_new (yyvsp[-5].ttype, groktypename(yyvsp[-2].ftype.t), yyvsp[0].ttype, yyvsp[-6].itype); check_for_new_type ("new", yyvsp[-2].ftype); ; break;} case 211: #line 1062 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 0, yyvsp[-1].itype); ; break;} case 212: #line 1064 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, NULL_TREE, 1, yyvsp[-3].itype); if (yychar == YYEMPTY) yychar = YYLEX; ; break;} case 213: #line 1068 "parse.y" { yyval.ttype = delete_sanity (yyvsp[0].ttype, yyvsp[-2].ttype, 2, yyvsp[-4].itype); if (yychar == YYEMPTY) yychar = YYLEX; ; break;} case 214: #line 1072 "parse.y" { yyval.ttype = build_x_unary_op (REALPART_EXPR, yyvsp[0].ttype); ; break;} case 215: #line 1074 "parse.y" { yyval.ttype = build_x_unary_op (IMAGPART_EXPR, yyvsp[0].ttype); ; break;} case 216: #line 1084 "parse.y" { finish_new_placement (NULL_TREE, yyvsp[-2].itype); ; break;} case 217: #line 1087 "parse.y" { yyval.itype = begin_new_placement (); ; break;} case 218: #line 1091 "parse.y" { yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ; break;} case 219: #line 1093 "parse.y" { cp_pedwarn ("old style placement syntax, use () instead"); yyval.ttype = finish_new_placement (yyvsp[-1].ttype, yyvsp[-2].itype); ; break;} case 220: #line 1099 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 221: #line 1101 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 222: #line 1103 "parse.y" { cp_error ("`%T' is not a valid expression", yyvsp[-1].ftype.t); yyval.ttype = error_mark_node; ; break;} case 223: #line 1111 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids initialization of new expression with `='"); if (TREE_CODE (yyvsp[0].ttype) != TREE_LIST && TREE_CODE (yyvsp[0].ttype) != CONSTRUCTOR) yyval.ttype = build_expr_list (NULL_TREE, yyvsp[0].ttype); else yyval.ttype = yyvsp[0].ttype; ; break;} case 224: #line 1125 "parse.y" { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); check_for_new_type ("cast", yyvsp[-1].ftype); ; break;} case 225: #line 1129 "parse.y" { yyvsp[-1].ftype.t = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-1].ftype.t, NULL_TREE, NULL_TREE); check_for_new_type ("cast", yyvsp[-1].ftype); ; break;} case 227: #line 1137 "parse.y" { yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, yyvsp[0].ttype); ; break;} case 228: #line 1139 "parse.y" { tree init = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); if (pedantic) pedwarn ("ANSI C++ forbids constructor-expressions"); /* Indicate that this was a GNU C constructor expression. */ TREE_HAS_CONSTRUCTOR (init) = 1; yyval.ttype = reparse_absdcl_as_casts (yyval.ttype, init); ; break;} case 230: #line 1155 "parse.y" { yyval.ttype = build_x_binary_op (MEMBER_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 231: #line 1157 "parse.y" { yyval.ttype = build_m_component_ref (yyval.ttype, yyvsp[0].ttype); ; break;} case 232: #line 1159 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 233: #line 1161 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 234: #line 1163 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 235: #line 1165 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 236: #line 1167 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 237: #line 1169 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 238: #line 1171 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 239: #line 1173 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 240: #line 1175 "parse.y" { yyval.ttype = build_x_binary_op (LT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 241: #line 1177 "parse.y" { yyval.ttype = build_x_binary_op (GT_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 242: #line 1179 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 243: #line 1181 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 244: #line 1183 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 245: #line 1185 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 246: #line 1187 "parse.y" { yyval.ttype = build_x_binary_op (yyvsp[-1].code, yyval.ttype, yyvsp[0].ttype); ; break;} case 247: #line 1189 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ANDIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 248: #line 1191 "parse.y" { yyval.ttype = build_x_binary_op (TRUTH_ORIF_EXPR, yyval.ttype, yyvsp[0].ttype); ; break;} case 249: #line 1193 "parse.y" { yyval.ttype = build_x_conditional_expr (yyval.ttype, yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 250: #line 1195 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, NOP_EXPR, yyvsp[0].ttype); if (yyval.ttype != error_mark_node) C_SET_EXP_ORIGINAL_CODE (yyval.ttype, MODIFY_EXPR); ; break;} case 251: #line 1199 "parse.y" { yyval.ttype = build_x_modify_expr (yyval.ttype, yyvsp[-1].code, yyvsp[0].ttype); ; break;} case 252: #line 1201 "parse.y" { yyval.ttype = build_throw (NULL_TREE); ; break;} case 253: #line 1203 "parse.y" { yyval.ttype = build_throw (yyvsp[0].ttype); ; break;} case 254: #line 1221 "parse.y" { yyval.ttype = build_parse_node (BIT_NOT_EXPR, yyvsp[0].ttype); ; break;} case 260: #line 1230 "parse.y" { yyval.ttype = do_identifier (yyvsp[-1].ttype, 1); ; break;} case 261: #line 1234 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 262: #line 1236 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 263: #line 1241 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 264: #line 1243 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 265: #line 1246 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 270: #line 1258 "parse.y" { yyval.ttype = build_parse_node (INDIRECT_REF, yyvsp[0].ttype); ; break;} case 271: #line 1260 "parse.y" { yyval.ttype = build_parse_node (ADDR_EXPR, yyvsp[0].ttype); ; break;} case 272: #line 1262 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 273: #line 1267 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 274: #line 1269 "parse.y" { yyval.ttype = lookup_template_function (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 278: #line 1277 "parse.y" { yyval.ttype = finish_decl_parsing (yyvsp[-1].ttype); ; break;} case 279: #line 1282 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == BIT_NOT_EXPR) yyval.ttype = build_x_unary_op (BIT_NOT_EXPR, TREE_OPERAND (yyvsp[0].ttype, 0)); else yyval.ttype = finish_id_expr (yyvsp[0].ttype); ; break;} case 282: #line 1291 "parse.y" { if (processing_template_decl) push_obstacks (&permanent_obstack, &permanent_obstack); yyval.ttype = combine_strings (yyval.ttype); if (processing_template_decl) pop_obstacks (); ; break;} case 283: #line 1299 "parse.y" { yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ; break;} case 284: #line 1301 "parse.y" { yyvsp[-1].ttype = reparse_decl_as_expr (NULL_TREE, yyvsp[-1].ttype); yyval.ttype = finish_parenthesized_expr (yyvsp[-1].ttype); ; break;} case 285: #line 1304 "parse.y" { yyval.ttype = error_mark_node; ; break;} case 286: #line 1306 "parse.y" { if (current_function_decl == 0) { error ("braced-group within expression allowed only inside a function"); YYERROR; } if (pedantic) pedwarn ("ANSI C++ forbids braced-groups within expressions"); yyval.ttype = begin_stmt_expr (); ; break;} case 287: #line 1316 "parse.y" { yyval.ttype = finish_stmt_expr (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 288: #line 1318 "parse.y" { yyval.ttype = finish_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 289: #line 1320 "parse.y" { yyval.ttype = finish_call_expr (yyvsp[-1].ttype, NULL_TREE); ; break;} case 290: #line 1322 "parse.y" { yyval.ttype = grok_array_decl (yyval.ttype, yyvsp[-1].ttype); ; break;} case 291: #line 1324 "parse.y" { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTINCREMENT_EXPR); ; break;} case 292: #line 1326 "parse.y" { yyval.ttype = finish_increment_expr (yyvsp[-1].ttype, POSTDECREMENT_EXPR); ; break;} case 293: #line 1329 "parse.y" { yyval.ttype = finish_this_expr (); ; break;} case 294: #line 1331 "parse.y" { tree type = NULL_TREE; tree id = yyval.ttype; /* This is a C cast in C++'s `functional' notation. */ if (yyvsp[-1].ttype == error_mark_node) { yyval.ttype = error_mark_node; break; } #if 0 if (yyvsp[-1].ttype == NULL_TREE) { error ("cannot cast null list to type `%s'", IDENTIFIER_POINTER (TYPE_NAME (id))); yyval.ttype = error_mark_node; break; } #endif #if 0 /* type is not set! (mrs) */ if (type == error_mark_node) yyval.ttype = error_mark_node; else #endif { if (id == ridpointers[(int) RID_CONST]) type = build_type_variant (integer_type_node, 1, 0); else if (id == ridpointers[(int) RID_VOLATILE]) type = build_type_variant (integer_type_node, 0, 1); #if 0 /* should not be able to get here (mrs) */ else if (id == ridpointers[(int) RID_FRIEND]) { error ("cannot cast expression to `friend' type"); yyval.ttype = error_mark_node; break; } #endif else my_friendly_abort (79); yyval.ttype = build_c_cast (type, build_compound_expr (yyvsp[-1].ttype)); } ; break;} case 296: #line 1376 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("dynamic_cast", yyvsp[-4].ftype); yyval.ttype = build_dynamic_cast (type, yyvsp[-1].ttype); ; break;} case 297: #line 1380 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("static_cast", yyvsp[-4].ftype); yyval.ttype = build_static_cast (type, yyvsp[-1].ttype); ; break;} case 298: #line 1384 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("reinterpret_cast", yyvsp[-4].ftype); yyval.ttype = build_reinterpret_cast (type, yyvsp[-1].ttype); ; break;} case 299: #line 1388 "parse.y" { tree type = groktypename (yyvsp[-4].ftype.t); check_for_new_type ("const_cast", yyvsp[-4].ftype); yyval.ttype = build_const_cast (type, yyvsp[-1].ttype); ; break;} case 300: #line 1392 "parse.y" { yyval.ttype = build_x_typeid (yyvsp[-1].ttype); ; break;} case 301: #line 1394 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); check_for_new_type ("typeid", yyvsp[-1].ftype); yyval.ttype = get_typeid (TYPE_MAIN_VARIANT (type)); ; break;} case 302: #line 1398 "parse.y" { yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); ; break;} case 303: #line 1400 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 304: #line 1402 "parse.y" { got_scope = NULL_TREE; if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = do_scoped_id (yyvsp[0].ttype, 1); else yyval.ttype = yyvsp[0].ttype; ; break;} case 305: #line 1410 "parse.y" { yyval.ttype = build_offset_ref (OP0 (yyval.ttype), OP1 (yyval.ttype)); ; break;} case 306: #line 1412 "parse.y" { yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 307: #line 1414 "parse.y" { yyval.ttype = finish_globally_qualified_member_call_expr (yyvsp[-1].ttype, NULL_TREE); ; break;} case 308: #line 1416 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 309: #line 1420 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 310: #line 1422 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 311: #line 1424 "parse.y" { yyval.ttype = build_x_component_ref (yyval.ttype, yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 312: #line 1426 "parse.y" { if (processing_template_decl) yyval.ttype = build_min_nt (COMPONENT_REF, yyvsp[-1].ttype, copy_to_permanent (yyvsp[0].ttype)); else yyval.ttype = build_object_ref (yyval.ttype, OP0 (yyvsp[0].ttype), OP1 (yyvsp[0].ttype)); ; break;} case 313: #line 1431 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 314: #line 1433 "parse.y" { yyval.ttype = finish_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 315: #line 1435 "parse.y" { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 316: #line 1437 "parse.y" { yyval.ttype = finish_qualified_object_call_expr (yyvsp[-1].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 317: #line 1440 "parse.y" { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-3].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} case 318: #line 1442 "parse.y" { yyval.ttype = finish_pseudo_destructor_call_expr (yyvsp[-5].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype); ; break;} case 319: #line 1444 "parse.y" { yyval.ttype = error_mark_node; ; break;} case 320: #line 1489 "parse.y" { yyval.itype = 0; ; break;} case 321: #line 1491 "parse.y" { got_scope = NULL_TREE; yyval.itype = 1; ; break;} case 322: #line 1496 "parse.y" { yyval.itype = 0; ; break;} case 323: #line 1498 "parse.y" { got_scope = NULL_TREE; yyval.itype = 1; ; break;} case 324: #line 1503 "parse.y" { yyval.ttype = boolean_true_node; ; break;} case 325: #line 1505 "parse.y" { yyval.ttype = boolean_false_node; ; break;} case 327: #line 1512 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 328: #line 1517 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); setup_vtbl_ptr (); /* Always keep the BLOCK node associated with the outermost pair of curley braces of a function. These are needed for correct operation of dwarfout.c. */ keep_next_level (); ; break;} case 329: #line 1530 "parse.y" { got_object = TREE_TYPE (yyval.ttype); ; break;} case 330: #line 1532 "parse.y" { yyval.ttype = build_x_arrow (yyval.ttype); got_object = TREE_TYPE (yyval.ttype); ; break;} case 331: #line 1540 "parse.y" { resume_momentary (yyvsp[-1].itype); if (yyvsp[-2].ftype.t && IS_AGGR_TYPE_CODE (TREE_CODE (yyvsp[-2].ftype.t))) note_got_semicolon (yyvsp[-2].ftype.t); ; break;} case 332: #line 1546 "parse.y" { resume_momentary (yyvsp[-1].itype); note_list_got_semicolon (yyvsp[-2].ftype.t); ; break;} case 333: #line 1551 "parse.y" { resume_momentary (yyvsp[-1].itype); ; break;} case 334: #line 1553 "parse.y" { shadow_tag (yyvsp[-1].ftype.t); note_list_got_semicolon (yyvsp[-1].ftype.t); ; break;} case 335: #line 1558 "parse.y" { warning ("empty declaration"); ; break;} case 336: #line 1560 "parse.y" { pedantic = yyvsp[-1].itype; ; break;} case 339: #line 1574 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, empty_parms (), NULL_TREE, NULL_TREE); ; break;} case 340: #line 1577 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), NULL_TREE, NULL_TREE); ; break;} case 341: #line 1584 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 342: #line 1587 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 343: #line 1590 "parse.y" { yyval.ftype.t = build_decl_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 344: #line 1593 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 345: #line 1596 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 348: #line 1612 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 349: #line 1615 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 350: #line 1618 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, yyvsp[0].ttype)); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} case 351: #line 1621 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 352: #line 1624 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ttype)); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 353: #line 1627 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-2].ftype.t, chainon (yyvsp[-1].ttype, chainon (yyvsp[0].ttype, yyvsp[-3].ttype))); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} case 354: #line 1634 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyval.ttype)); yyval.ttype = build_decl_list (NULL_TREE, yyval.ttype); ; break;} case 355: #line 1639 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyval.ttype); ; break;} case 356: #line 1641 "parse.y" { if (extra_warnings) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 357: #line 1646 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} case 358: #line 1648 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; break;} case 359: #line 1658 "parse.y" { yyval.ttype = yyvsp[0].ftype.t; TREE_STATIC (yyval.ttype) = 1; ; break;} case 360: #line 1660 "parse.y" { yyval.ttype = IDENTIFIER_AS_LIST (yyval.ttype); ; break;} case 361: #line 1662 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); TREE_STATIC (yyval.ttype) = 1; ; break;} case 362: #line 1665 "parse.y" { if (extra_warnings && TREE_STATIC (yyval.ttype)) warning ("`%s' is not at beginning of declaration", IDENTIFIER_POINTER (yyvsp[0].ttype)); yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); TREE_STATIC (yyval.ttype) = TREE_STATIC (yyvsp[-1].ttype); ; break;} case 363: #line 1671 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, yyvsp[-1].ttype); ; break;} case 364: #line 1673 "parse.y" { yyval.ttype = decl_tree_cons (yyvsp[0].ttype, NULL_TREE, NULL_TREE); ; break;} case 365: #line 1684 "parse.y" { yyval.ftype.t = get_decl_list (yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 366: #line 1687 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 367: #line 1690 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 368: #line 1693 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[-1].ftype.t, chainon (yyvsp[0].ttype, yyvsp[-2].ftype.t)); yyval.ftype.new_type_flag = yyvsp[-2].ftype.new_type_flag; ; break;} case 369: #line 1699 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} case 370: #line 1701 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ftype.t, yyvsp[-1].ttype); ; break;} case 372: #line 1711 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 373: #line 1713 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 374: #line 1715 "parse.y" { yyval.ftype.t = TREE_TYPE (yyvsp[-1].ttype); yyval.ftype.new_type_flag = 0; ; break;} case 375: #line 1718 "parse.y" { yyval.ftype.t = groktypename (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = 0; ; break;} case 376: #line 1721 "parse.y" { tree type = TREE_TYPE (yyvsp[-1].ttype); yyval.ftype.new_type_flag = 0; if (IS_AGGR_TYPE (type)) { sorry ("sigof type specifier"); yyval.ftype.t = type; } else { error ("`sigof' applied to non-aggregate expression"); yyval.ftype.t = error_mark_node; } ; break;} case 377: #line 1736 "parse.y" { tree type = groktypename (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = 0; if (IS_AGGR_TYPE (type)) { sorry ("sigof type specifier"); yyval.ftype.t = type; } else { error("`sigof' applied to non-aggregate type"); yyval.ftype.t = error_mark_node; } ; break;} case 378: #line 1756 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 379: #line 1758 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 387: #line 1779 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 388: #line 1781 "parse.y" { if (TREE_CHAIN (yyvsp[-1].ttype)) yyvsp[-1].ttype = combine_strings (yyvsp[-1].ttype); yyval.ttype = yyvsp[-1].ttype; ; break;} case 389: #line 1786 "parse.y" { yyval.ttype = start_decl (yyvsp[-3].ttype, current_declspecs, 1, yyvsp[-1].ttype, prefix_attributes); ; break;} case 390: #line 1790 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); ; break;} case 391: #line 1792 "parse.y" { yyval.ttype = start_decl (yyvsp[-2].ttype, current_declspecs, 0, yyvsp[0].ttype, prefix_attributes); cp_finish_decl (yyval.ttype, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} case 392: #line 1805 "parse.y" { yyvsp[0].itype = parse_decl (yyvsp[-3].ttype, yyvsp[-4].ttype, yyvsp[-1].ttype, 1, &yyval.ttype); ; break;} case 393: #line 1810 "parse.y" { cp_finish_decl (yyvsp[-1].ttype, yyvsp[0].ttype, yyvsp[-4].ttype, 1, LOOKUP_ONLYCONVERTING); yyval.itype = yyvsp[-2].itype; ; break;} case 394: #line 1814 "parse.y" { tree d; yyval.itype = parse_decl (yyvsp[-2].ttype, yyvsp[-3].ttype, yyvsp[0].ttype, 0, &d); cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} case 395: #line 1821 "parse.y" { yyval.itype = yyvsp[0].itype; ; break;} case 396: #line 1825 "parse.y" { yyval.itype = yyvsp[0].itype; ; break;} case 397: #line 1830 "parse.y" { /* Set things up as initdcl0_innards expects. */ yyval.ttype = yyvsp[-1].ttype; yyvsp[-1].ttype = NULL_TREE; ; break;} case 398: #line 1834 "parse.y" {; break;} case 399: #line 1836 "parse.y" { tree d; parse_decl(yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype, 0, &d); cp_finish_decl (d, NULL_TREE, yyvsp[-1].ttype, 1, 0); ; break;} case 400: #line 1845 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 401: #line 1847 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 402: #line 1852 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 403: #line 1854 "parse.y" { yyval.ttype = chainon (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 404: #line 1859 "parse.y" { yyval.ttype = yyvsp[-2].ttype; ; break;} case 405: #line 1864 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 406: #line 1866 "parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 407: #line 1871 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 408: #line 1873 "parse.y" { yyval.ttype = build_tree_list (yyvsp[0].ttype, NULL_TREE); ; break;} case 409: #line 1875 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, build_tree_list (NULL_TREE, yyvsp[-1].ttype)); ; break;} case 410: #line 1877 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-5].ttype, tree_cons (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype)); ; break;} case 411: #line 1879 "parse.y" { yyval.ttype = build_tree_list (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 416: #line 1895 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ttype); ; break;} case 417: #line 1897 "parse.y" { yyval.ttype = chainon (yyvsp[-2].ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 418: #line 1902 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 419: #line 1904 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 421: #line 1912 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, NULL_TREE); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} case 422: #line 1915 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-1].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} case 423: #line 1918 "parse.y" { yyval.ttype = build_nt (CONSTRUCTOR, NULL_TREE, nreverse (yyvsp[-2].ttype)); TREE_HAS_CONSTRUCTOR (yyval.ttype) = 1; ; break;} case 424: #line 1921 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 425: #line 1928 "parse.y" { yyval.ttype = build_tree_list (NULL_TREE, yyval.ttype); ; break;} case 426: #line 1930 "parse.y" { yyval.ttype = expr_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 427: #line 1933 "parse.y" { yyval.ttype = build_expr_list (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 428: #line 1935 "parse.y" { yyval.ttype = build_expr_list (yyval.ttype, yyvsp[0].ttype); ; break;} case 429: #line 1937 "parse.y" { yyval.ttype = expr_tree_cons (yyvsp[-2].ttype, yyvsp[0].ttype, yyval.ttype); ; break;} case 430: #line 1942 "parse.y" { start_function (NULL_TREE, TREE_VALUE (yyvsp[0].ttype), NULL_TREE, 1); reinit_parse_for_function (); ; break;} case 431: #line 1948 "parse.y" { int nested = (hack_decl_function_context (current_function_decl) != NULL_TREE); finish_function (lineno, (int)yyvsp[-1].itype, nested); process_next_inline (yyvsp[-3].ttype); ; break;} case 432: #line 1955 "parse.y" { process_next_inline (yyvsp[-2].ttype); ; break;} case 433: #line 1957 "parse.y" { process_next_inline (yyvsp[-2].ttype); ; break;} case 436: #line 1969 "parse.y" { replace_defarg (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 437: #line 1971 "parse.y" { replace_defarg (yyvsp[-2].ttype, error_mark_node); ; break;} case 439: #line 1976 "parse.y" { do_pending_defargs (); ; break;} case 440: #line 1978 "parse.y" { do_pending_defargs (); ; break;} case 441: #line 1983 "parse.y" { yyvsp[0].itype = suspend_momentary (); yyval.ttype = start_enum (yyvsp[-1].ttype); ; break;} case 442: #line 1986 "parse.y" { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype); yyval.ftype.new_type_flag = 1; resume_momentary ((int) yyvsp[-4].itype); check_for_missing_semicolon (yyvsp[-3].ttype); ; break;} case 443: #line 1991 "parse.y" { yyval.ftype.t = finish_enum (start_enum (yyvsp[-2].ttype), NULL_TREE); yyval.ftype.new_type_flag = 1; check_for_missing_semicolon (yyval.ftype.t); ; break;} case 444: #line 1995 "parse.y" { yyvsp[0].itype = suspend_momentary (); yyval.ttype = start_enum (make_anon_name ()); ; break;} case 445: #line 1998 "parse.y" { yyval.ftype.t = finish_enum (yyvsp[-3].ttype, yyvsp[-2].ttype); resume_momentary ((int) yyvsp[-5].itype); check_for_missing_semicolon (yyvsp[-3].ttype); yyval.ftype.new_type_flag = 1; ; break;} case 446: #line 2003 "parse.y" { yyval.ftype.t = finish_enum (start_enum (make_anon_name()), NULL_TREE); yyval.ftype.new_type_flag = 1; check_for_missing_semicolon (yyval.ftype.t); ; break;} case 447: #line 2007 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); yyval.ftype.new_type_flag = 0; ; break;} case 448: #line 2010 "parse.y" { yyval.ftype.t = xref_tag (enum_type_node, yyvsp[0].ttype, NULL_TREE, 1); yyval.ftype.new_type_flag = 0; ; break;} case 449: #line 2013 "parse.y" { yyval.ftype.t = yyvsp[0].ttype; yyval.ftype.new_type_flag = 0; ; break;} case 450: #line 2018 "parse.y" { int semi; if (yychar == YYEMPTY) yychar = YYLEX; semi = yychar == ';'; yyval.ttype = finish_class_definition (yyvsp[-4].ttype, yyvsp[-2].ttype, yyvsp[0].ttype, semi); ; break;} case 451: #line 2028 "parse.y" { finish_default_args (); ; break;} case 452: #line 2030 "parse.y" { yyval.ftype.t = yyvsp[-3].ttype; yyval.ftype.new_type_flag = 1; begin_inline_definitions (); ; break;} case 453: #line 2034 "parse.y" { yyval.ftype.new_type_flag = 0; if (TYPE_BINFO (yyvsp[0].ttype) == NULL_TREE) { cp_error ("%T is not a class type", yyvsp[0].ttype); yyval.ftype.t = error_mark_node; } else { yyval.ftype.t = yyvsp[0].ttype; /* struct B: public A; is not accepted by the WP grammar. */ if (TYPE_BINFO_BASETYPES (yyval.ftype.t) && !TYPE_SIZE (yyval.ftype.t) && ! TYPE_BEING_DEFINED (yyval.ftype.t)) cp_error ("base clause without member specification for `%#T'", yyval.ftype.t); } ; break;} case 457: #line 2061 "parse.y" { if (pedantic && !in_system_header) pedwarn ("comma at end of enumerator list"); ; break;} case 459: #line 2068 "parse.y" { error ("storage class specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} case 460: #line 2070 "parse.y" { error ("type specifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} case 461: #line 2072 "parse.y" { error ("type qualifier `%s' not allowed after struct or class", IDENTIFIER_POINTER (yyvsp[0].ttype)); ; break;} case 462: #line 2074 "parse.y" { error ("no body nor ';' separates two class, struct or union declarations"); ; break;} case 463: #line 2079 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 464: #line 2084 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 465: #line 2089 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = handle_class_head (yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 466: #line 2094 "parse.y" { current_aggr = yyvsp[-3].ttype; yyval.ttype = handle_class_head (yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 467: #line 2099 "parse.y" { current_aggr = yyvsp[-2].ttype; yyval.ttype = handle_class_head (yyvsp[-2].ttype, NULL_TREE, yyvsp[0].ttype); ; break;} case 468: #line 2104 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 469: #line 2106 "parse.y" { current_aggr = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 470: #line 2111 "parse.y" { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 0); ; break;} case 471: #line 2116 "parse.y" { yyval.ttype = xref_tag (current_aggr, yyvsp[0].ttype, NULL_TREE, 1); ; break;} case 472: #line 2119 "parse.y" { yyval.ttype = yyvsp[-1].ttype; if (yyvsp[0].ttype) xref_basetypes (current_aggr, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 473: #line 2125 "parse.y" { yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); if (TREE_INT_CST_LOW (current_aggr) == union_type && TREE_CODE (yyval.ttype) != UNION_TYPE) cp_pedwarn ("`union' tag used in declaring `%#T'", yyval.ttype); else if (TREE_CODE (yyval.ttype) == UNION_TYPE && TREE_INT_CST_LOW (current_aggr) != union_type) cp_pedwarn ("non-`union' tag used in declaring `%#T'", yyval.ttype); if (yyvsp[0].ttype) { if (IS_AGGR_TYPE (yyval.ttype) && CLASSTYPE_USE_TEMPLATE (yyval.ttype)) { if (CLASSTYPE_IMPLICIT_INSTANTIATION (yyval.ttype) && TYPE_SIZE (yyval.ttype) == NULL_TREE) { SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (yyval.ttype); if (processing_template_decl) push_template_decl (TYPE_MAIN_DECL (yyval.ttype)); } else if (CLASSTYPE_TEMPLATE_INSTANTIATION (yyval.ttype)) cp_error ("specialization after instantiation of `%T'", yyval.ttype); } xref_basetypes (current_aggr, yyvsp[-1].ttype, yyval.ttype, yyvsp[0].ttype); } ; break;} case 474: #line 2154 "parse.y" { yyval.ttype = xref_tag (yyval.ttype, make_anon_name (), NULL_TREE, 0); yyungetc ('{', 1); ; break;} case 477: #line 2165 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 478: #line 2167 "parse.y" { yyungetc(':', 1); yyval.ttype = NULL_TREE; ; break;} case 479: #line 2169 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 481: #line 2175 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 482: #line 2180 "parse.y" { tree type = TREE_TYPE (yyvsp[0].ttype); if (! is_aggr_type (type, 1)) yyval.ttype = NULL_TREE; else if (current_aggr == signature_type_node && (! type) && (! IS_SIGNATURE (type))) { error ("class name not allowed as base signature"); yyval.ttype = NULL_TREE; } else if (current_aggr == signature_type_node) { sorry ("signature inheritance, base type `%s' ignored", IDENTIFIER_POINTER (yyval.ttype)); yyval.ttype = build_tree_list (access_public_node, type); } else if (type && IS_SIGNATURE (type)) { error ("signature name not allowed as base class"); yyval.ttype = NULL_TREE; } else yyval.ttype = build_tree_list (access_default_node, type); ; break;} case 483: #line 2205 "parse.y" { tree type = TREE_TYPE (yyvsp[0].ttype); if (current_aggr == signature_type_node) error ("access and source specifiers not allowed in signature"); if (! IS_AGGR_TYPE (type)) yyval.ttype = NULL_TREE; else if (current_aggr == signature_type_node && (! type) && (! IS_SIGNATURE (type))) { error ("class name not allowed as base signature"); yyval.ttype = NULL_TREE; } else if (current_aggr == signature_type_node) { sorry ("signature inheritance, base type `%s' ignored", IDENTIFIER_POINTER (yyval.ttype)); yyval.ttype = build_tree_list (access_public_node, type); } else if (type && IS_SIGNATURE (type)) { error ("signature name not allowed as base class"); yyval.ttype = NULL_TREE; } else yyval.ttype = build_tree_list (yyval.ttype, type); ; break;} case 484: #line 2235 "parse.y" { yyval.ttype = TYPE_MAIN_DECL (yyvsp[0].ttype); ; break;} case 486: #line 2238 "parse.y" { if (current_aggr == signature_type_node) { if (IS_AGGR_TYPE (TREE_TYPE (yyvsp[-1].ttype))) { sorry ("`sigof' as base signature specifier"); yyval.ttype = TREE_TYPE (yyvsp[-1].ttype); } else { error ("`sigof' applied to non-aggregate expression"); yyval.ttype = error_mark_node; } } else { error ("`sigof' in struct or class declaration"); yyval.ttype = error_mark_node; } ; break;} case 487: #line 2259 "parse.y" { if (current_aggr == signature_type_node) { if (IS_AGGR_TYPE (groktypename (yyvsp[-1].ftype.t))) { sorry ("`sigof' as base signature specifier"); yyval.ttype = groktypename (yyvsp[-1].ftype.t); } else { error ("`sigof' applied to non-aggregate expression"); yyval.ttype = error_mark_node; } } else { error ("`sigof' in struct or class declaration"); yyval.ttype = error_mark_node; } ; break;} case 489: #line 2284 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) cp_error ("`%D' access", yyvsp[-1].ttype); yyval.ttype = access_default_virtual_node; ; break;} case 490: #line 2288 "parse.y" { if (yyvsp[-2].ttype != access_default_virtual_node) error ("multiple access specifiers"); else if (yyvsp[-1].ttype == access_public_node) yyval.ttype = access_public_virtual_node; else if (yyvsp[-1].ttype == access_protected_node) yyval.ttype = access_protected_virtual_node; else /* $2 == access_private_node */ yyval.ttype = access_private_virtual_node; ; break;} case 491: #line 2299 "parse.y" { if (yyvsp[-1].ttype != ridpointers[(int)RID_VIRTUAL]) cp_error ("`%D' access", yyvsp[-1].ttype); else if (yyval.ttype == access_public_node) yyval.ttype = access_public_virtual_node; else if (yyval.ttype == access_protected_node) yyval.ttype = access_protected_virtual_node; else if (yyval.ttype == access_private_node) yyval.ttype = access_private_virtual_node; else error ("multiple `virtual' specifiers"); ; break;} case 492: #line 2314 "parse.y" { yyvsp[-1].ttype = begin_class_definition (yyvsp[-1].ttype); ; break;} case 493: #line 2319 "parse.y" { yyval.ttype = build_self_reference (); ; break;} case 494: #line 2326 "parse.y" { if (yyval.ttype) yyval.ttype = build_tree_list (access_public_node, yyval.ttype); ; break;} case 495: #line 2328 "parse.y" { if (current_aggr == signature_type_node) yyval.ttype = build_tree_list (access_public_node, yyvsp[0].ttype); else yyval.ttype = build_tree_list (access_default_node, yyvsp[0].ttype); if (yyvsp[-1].ttype) yyval.ttype = tree_cons (access_public_node, yyvsp[-1].ttype, yyval.ttype); ; break;} case 496: #line 2336 "parse.y" { tree visspec = yyvsp[-2].ttype; if (current_aggr == signature_type_node) { error ("access specifier not allowed in signature"); visspec = access_public_node; } yyval.ttype = chainon (yyval.ttype, build_tree_list (visspec, yyvsp[0].ttype)); ; break;} case 497: #line 2347 "parse.y" { if (current_aggr == signature_type_node) error ("access specifier not allowed in signature"); ; break;} case 498: #line 2357 "parse.y" { if (yyval.ttype == void_type_node) yyval.ttype = NULL_TREE; ; break;} case 499: #line 2360 "parse.y" { /* In pushdecl, we created a reverse list of names in this binding level. Make sure that the chain of what we're trying to add isn't the item itself (which can happen with what pushdecl's doing). */ if (yyvsp[0].ttype != NULL_TREE && yyvsp[0].ttype != void_type_node) { if (TREE_CHAIN (yyvsp[0].ttype) != yyval.ttype) yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); else yyval.ttype = yyvsp[0].ttype; } ; break;} case 500: #line 2376 "parse.y" { ; break;} case 501: #line 2378 "parse.y" { error ("missing ';' before right brace"); yyungetc ('}', 0); ; break;} case 502: #line 2383 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 503: #line 2385 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 504: #line 2387 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 505: #line 2389 "parse.y" { yyval.ttype = finish_method (yyval.ttype); ; break;} case 506: #line 2391 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 507: #line 2393 "parse.y" { yyval.ttype = yyvsp[0].ttype; pedantic = yyvsp[-1].itype; ; break;} case 508: #line 2396 "parse.y" { yyval.ttype = finish_member_template_decl (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 509: #line 2398 "parse.y" { note_list_got_semicolon (yyvsp[-1].ftype.t); grok_x_components (yyvsp[-1].ftype.t, NULL_TREE); if (TYPE_CONTEXT (TREE_VALUE (yyvsp[-1].ftype.t)) != current_class_type) /* The component was in fact a friend declaration. */ yyvsp[-1].ftype.t = NULL_TREE; yyval.ttype = finish_member_template_decl (yyvsp[-2].ttype, yyvsp[-1].ftype.t); ; break;} case 510: #line 2414 "parse.y" { yyval.ttype = grok_x_components (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 511: #line 2416 "parse.y" { yyval.ttype = grok_x_components (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 512: #line 2418 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} case 513: #line 2421 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} case 514: #line 2424 "parse.y" { yyval.ttype = grokbitfield (NULL_TREE, NULL_TREE, yyvsp[0].ttype); ; break;} case 515: #line 2426 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 516: #line 2437 "parse.y" { tree specs, attrs; split_specs_attrs (yyvsp[-4].ttype, &specs, &attrs); yyval.ttype = grokfield (yyvsp[-3].ttype, specs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, attrs)); ; break;} case 517: #line 2442 "parse.y" { yyval.ttype = grokfield (yyval.ttype, NULL_TREE, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, NULL_TREE)); ; break;} case 518: #line 2445 "parse.y" { yyval.ttype = do_class_using_decl (yyvsp[0].ttype); ; break;} case 519: #line 2451 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 521: #line 2454 "parse.y" { /* In this context, void_type_node encodes friends. They have been recorded elsewhere. */ if (yyval.ttype == void_type_node) yyval.ttype = yyvsp[0].ttype; else yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 522: #line 2466 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 524: #line 2469 "parse.y" { /* In this context, void_type_node encodes friends. They have been recorded elsewhere. */ if (yyval.ttype == void_type_node) yyval.ttype = yyvsp[0].ttype; else yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 529: #line 2491 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 530: #line 2497 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 531: #line 2506 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 532: #line 2512 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 533: #line 2518 "parse.y" { split_specs_attrs (yyvsp[-4].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-4].ttype = current_declspecs; yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 534: #line 2524 "parse.y" { split_specs_attrs (yyvsp[-3].ttype, ¤t_declspecs, &prefix_attributes); yyvsp[-3].ttype = current_declspecs; yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 535: #line 2533 "parse.y" { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 536: #line 2536 "parse.y" { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 537: #line 2542 "parse.y" { yyval.ttype = grokfield (yyval.ttype, current_declspecs, yyvsp[0].ttype, yyvsp[-2].ttype, build_tree_list (yyvsp[-1].ttype, prefix_attributes)); ; break;} case 538: #line 2545 "parse.y" { yyval.ttype = grokbitfield (yyval.ttype, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 539: #line 2548 "parse.y" { yyval.ttype = grokbitfield (NULL_TREE, current_declspecs, yyvsp[-1].ttype); cplus_decl_attributes (yyval.ttype, yyvsp[0].ttype, prefix_attributes); ; break;} case 541: #line 2559 "parse.y" { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 542: #line 2564 "parse.y" { yyval.ttype = build_enumerator (yyval.ttype, NULL_TREE); ; break;} case 543: #line 2566 "parse.y" { yyval.ttype = build_enumerator (yyval.ttype, yyvsp[0].ttype); ; break;} case 544: #line 2572 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 545: #line 2575 "parse.y" { yyval.ftype.t = build_decl_list (yyvsp[0].ftype.t, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 546: #line 2582 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids array dimensions with parenthesized type in new"); yyval.ftype.t = build_parse_node (ARRAY_REF, TREE_VALUE (yyvsp[-4].ftype.t), yyvsp[-1].ttype); yyval.ftype.t = build_decl_list (TREE_PURPOSE (yyvsp[-4].ftype.t), yyval.ftype.t); yyval.ftype.new_type_flag = yyvsp[-4].ftype.new_type_flag; ; break;} case 547: #line 2593 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 548: #line 2595 "parse.y" { yyval.ttype = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 549: #line 2600 "parse.y" { yyval.ftype.t = IDENTIFIER_AS_LIST (yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} case 550: #line 2603 "parse.y" { yyval.ftype.t = decl_tree_cons (NULL_TREE, yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 551: #line 2612 "parse.y" { yyval.itype = suspend_momentary (); ; break;} case 552: #line 2617 "parse.y" { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = yyvsp[0].ttype; ; break;} case 553: #line 2623 "parse.y" { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ; break;} case 554: #line 2625 "parse.y" { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = yyvsp[-1].ttype; ; break;} case 555: #line 2627 "parse.y" { resume_momentary ((int) yyvsp[-1].itype); yyval.ttype = empty_parms (); ; break;} case 556: #line 2629 "parse.y" { resume_momentary ((int) yyvsp[-3].itype); yyval.ttype = NULL_TREE; ; break;} case 557: #line 2636 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 558: #line 2638 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 559: #line 2640 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 560: #line 2642 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 561: #line 2644 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 563: #line 2652 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) { yyval.ttype = lookup_name (yyvsp[0].ttype, 1); if (current_class_type && TYPE_BEING_DEFINED (current_class_type) && ! IDENTIFIER_CLASS_VALUE (yyvsp[0].ttype)) { /* Remember that this name has been used in the class definition, as per [class.scope0] */ pushdecl_class_level (yyval.ttype); } } else yyval.ttype = yyvsp[0].ttype; ; break;} case 564: #line 2669 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); else yyval.ttype = yyvsp[0].ttype; got_scope = NULL_TREE; ; break;} case 567: #line 2682 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 568: #line 2687 "parse.y" { yyval.ttype = get_type_decl (yyvsp[0].ttype); ; break;} case 569: #line 2692 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 570: #line 2694 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 571: #line 2696 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 572: #line 2698 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 573: #line 2700 "parse.y" { push_nested_class (yyvsp[-1].ttype, 3); yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); TREE_COMPLEXITY (yyval.ttype) = current_class_depth; ; break;} case 575: #line 2711 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 576: #line 2713 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 577: #line 2715 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 578: #line 2717 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 579: #line 2719 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 581: #line 2727 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 582: #line 2729 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 583: #line 2731 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 584: #line 2733 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 585: #line 2735 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 587: #line 2743 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-2].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 588: #line 2745 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 589: #line 2747 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 590: #line 2749 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 591: #line 2751 "parse.y" { if (OP0 (yyval.ttype) != current_class_type) { push_nested_class (OP0 (yyval.ttype), 3); TREE_COMPLEXITY (yyval.ttype) = current_class_depth; } ; break;} case 592: #line 2758 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); if (yyvsp[-1].ttype != current_class_type) { push_nested_class (yyvsp[-1].ttype, 3); TREE_COMPLEXITY (yyval.ttype) = current_class_depth; } ; break;} case 593: #line 2770 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 594: #line 2773 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 595: #line 2779 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyval.ttype, yyvsp[0].ttype); ; break;} case 596: #line 2782 "parse.y" { got_scope = NULL_TREE; yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 598: #line 2789 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 599: #line 2794 "parse.y" { yyval.ttype = build_functional_cast (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} case 600: #line 2796 "parse.y" { yyval.ttype = reparse_decl_as_expr (yyvsp[-3].ftype.t, yyvsp[-1].ttype); ; break;} case 601: #line 2798 "parse.y" { yyval.ttype = reparse_absdcl_as_expr (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 606: #line 2810 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 607: #line 2812 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 608: #line 2819 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) { yyval.ttype = lastiddecl; /* Remember that this name has been used in the class definition, as per [class.scope0] */ if (current_class_type && TYPE_BEING_DEFINED (current_class_type) && ! IDENTIFIER_CLASS_VALUE (yyvsp[-1].ttype)) pushdecl_class_level (yyval.ttype); } got_scope = yyval.ttype = TREE_TYPE (yyval.ttype); ; break;} case 609: #line 2833 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype = TREE_TYPE (yyval.ttype); ; break;} case 610: #line 2839 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype; ; break;} case 611: #line 2845 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyvsp[-1].ttype)); ; break;} case 613: #line 2861 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 614: #line 2866 "parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't') yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); else { yyval.ttype = yyvsp[0].ttype; if (TREE_CODE (yyval.ttype) == TYPE_DECL) yyval.ttype = TREE_TYPE (yyval.ttype); } ; break;} case 615: #line 2879 "parse.y" { yyval.ttype = TREE_TYPE (yyvsp[0].ttype); ; break;} case 616: #line 2881 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 617: #line 2883 "parse.y" { yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[0].ttype); ; break;} case 618: #line 2888 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); ; break;} case 619: #line 2893 "parse.y" { if (TREE_CODE_CLASS (TREE_CODE (yyvsp[-1].ttype)) == 't') yyval.ttype = make_typename_type (yyvsp[-1].ttype, yyvsp[0].ttype); else if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) cp_error ("`%T' is not a class or namespace", yyvsp[0].ttype); else { yyval.ttype = yyvsp[0].ttype; if (TREE_CODE (yyval.ttype) == TYPE_DECL) yyval.ttype = TREE_TYPE (yyval.ttype); } ; break;} case 620: #line 2906 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-2].ttype, yyvsp[-1].ttype); ; break;} case 621: #line 2908 "parse.y" { got_scope = yyval.ttype = make_typename_type (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 622: #line 2913 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) yyvsp[-1].ttype = lastiddecl; /* Retrieve the type for the identifier, which might involve some computation. */ got_scope = yyval.ttype = complete_type (IDENTIFIER_TYPE_VALUE (yyvsp[-1].ttype)); if (yyval.ttype == error_mark_node) cp_error ("`%T' is not a class or namespace", yyvsp[-1].ttype); ; break;} case 623: #line 2925 "parse.y" { if (TREE_CODE (yyvsp[-1].ttype) != IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; break;} case 624: #line 2931 "parse.y" { got_scope = yyval.ttype = complete_type (TREE_TYPE (yyval.ttype)); ; break;} case 627: #line 2935 "parse.y" { if (TREE_CODE (yyval.ttype) == IDENTIFIER_NODE) yyval.ttype = lastiddecl; got_scope = yyval.ttype; ; break;} case 628: #line 2944 "parse.y" { yyval.ttype = build_min_nt (TEMPLATE_ID_EXPR, yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 629: #line 2949 "parse.y" { if (TREE_CODE (yyvsp[0].ttype) == IDENTIFIER_NODE) yyval.ttype = IDENTIFIER_GLOBAL_VALUE (yyvsp[0].ttype); else yyval.ttype = yyvsp[0].ttype; got_scope = NULL_TREE; ; break;} case 631: #line 2958 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 632: #line 2963 "parse.y" { got_scope = NULL_TREE; ; break;} case 633: #line 2965 "parse.y" { yyval.ttype = yyvsp[-1].ttype; got_scope = NULL_TREE; ; break;} case 634: #line 2972 "parse.y" { got_scope = void_type_node; ; break;} case 635: #line 2978 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 636: #line 2980 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 637: #line 2982 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 638: #line 2984 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ttype, NULL_TREE); ; break;} case 639: #line 2986 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} case 640: #line 2990 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 642: #line 2999 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 643: #line 3001 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 644: #line 3007 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 645: #line 3009 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 646: #line 3011 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} case 647: #line 3013 "parse.y" { yyval.ttype = make_pointer_declarator (NULL_TREE, NULL_TREE); ; break;} case 648: #line 3015 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 649: #line 3017 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, yyvsp[0].ttype); ; break;} case 650: #line 3019 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[0].ftype.t, NULL_TREE); ; break;} case 651: #line 3021 "parse.y" { yyval.ttype = make_reference_declarator (NULL_TREE, NULL_TREE); ; break;} case 652: #line 3023 "parse.y" { tree arg = make_pointer_declarator (yyvsp[0].ttype, NULL_TREE); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-1].ttype, arg); ; break;} case 653: #line 3027 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 655: #line 3036 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 657: #line 3040 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 658: #line 3042 "parse.y" { yyval.ttype = make_call_declarator (yyval.ttype, empty_parms (), yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 659: #line 3044 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, yyvsp[-1].ttype); ; break;} case 660: #line 3046 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, yyval.ttype, NULL_TREE); ; break;} case 661: #line 3048 "parse.y" { yyval.ttype = make_call_declarator (NULL_TREE, yyvsp[-3].ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 662: #line 3050 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 663: #line 3052 "parse.y" { set_quals_and_spec (yyval.ttype, yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 664: #line 3054 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, yyvsp[-1].ttype); ; break;} case 665: #line 3056 "parse.y" { yyval.ttype = build_parse_node (ARRAY_REF, NULL_TREE, NULL_TREE); ; break;} case 672: #line 3079 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids label declarations"); ; break;} case 675: #line 3090 "parse.y" { tree link; for (link = yyvsp[-1].ttype; link; link = TREE_CHAIN (link)) { tree label = shadow_label (TREE_VALUE (link)); C_DECLARED_LABEL_FLAG (label) = 1; declare_nonlocal_label (label); } ; break;} case 676: #line 3104 "parse.y" {; break;} case 678: #line 3110 "parse.y" { yyval.ttype = begin_compound_stmt (0); ; break;} case 679: #line 3112 "parse.y" { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ; break;} case 680: #line 3117 "parse.y" { yyval.ttype = begin_if_stmt (); cond_stmt_keyword = "if"; ; break;} case 681: #line 3122 "parse.y" { finish_if_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 682: #line 3124 "parse.y" { yyval.ttype = finish_then_clause (yyvsp[-3].ttype); ; break;} case 684: #line 3129 "parse.y" { yyval.ttype = begin_compound_stmt (0); ; break;} case 685: #line 3131 "parse.y" { yyval.ttype = finish_compound_stmt (0, yyvsp[-1].ttype); ; break;} case 686: #line 3136 "parse.y" {; break;} case 688: #line 3142 "parse.y" { finish_stmt (); ; break;} case 689: #line 3144 "parse.y" { finish_expr_stmt (yyvsp[-1].ttype); ; break;} case 690: #line 3146 "parse.y" { begin_else_clause (); ; break;} case 691: #line 3148 "parse.y" { finish_else_clause (yyvsp[-3].ttype); finish_if_stmt (); ; break;} case 692: #line 3153 "parse.y" { finish_if_stmt (); ; break;} case 693: #line 3155 "parse.y" { yyval.ttype = begin_while_stmt (); cond_stmt_keyword = "while"; ; break;} case 694: #line 3160 "parse.y" { finish_while_stmt_cond (yyvsp[0].ttype, yyvsp[-1].ttype); ; break;} case 695: #line 3162 "parse.y" { finish_while_stmt (yyvsp[-3].ttype); ; break;} case 696: #line 3164 "parse.y" { yyval.ttype = begin_do_stmt (); ; break;} case 697: #line 3166 "parse.y" { finish_do_body (yyvsp[-2].ttype); cond_stmt_keyword = "do"; ; break;} case 698: #line 3171 "parse.y" { finish_do_stmt (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} case 699: #line 3173 "parse.y" { yyval.ttype = begin_for_stmt (); ; break;} case 700: #line 3175 "parse.y" { finish_for_init_stmt (yyvsp[-2].ttype); ; break;} case 701: #line 3177 "parse.y" { finish_for_cond (yyvsp[-1].ttype, yyvsp[-5].ttype); ; break;} case 702: #line 3179 "parse.y" { finish_for_expr (yyvsp[-1].ttype, yyvsp[-8].ttype); ; break;} case 703: #line 3181 "parse.y" { finish_for_stmt (yyvsp[-3].ttype, yyvsp[-10].ttype); ; break;} case 704: #line 3183 "parse.y" { begin_switch_stmt (); ; break;} case 705: #line 3185 "parse.y" { yyval.ttype = finish_switch_cond (yyvsp[-1].ttype); ; break;} case 706: #line 3187 "parse.y" { finish_switch_stmt (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 707: #line 3189 "parse.y" { finish_case_label (yyvsp[-1].ttype, NULL_TREE); ; break;} case 709: #line 3192 "parse.y" { finish_case_label (yyvsp[-3].ttype, yyvsp[-1].ttype); ; break;} case 711: #line 3195 "parse.y" { finish_case_label (NULL_TREE, NULL_TREE); ; break;} case 713: #line 3198 "parse.y" { finish_break_stmt (); ; break;} case 714: #line 3200 "parse.y" { finish_continue_stmt (); ; break;} case 715: #line 3202 "parse.y" { finish_return_stmt (NULL_TREE); ; break;} case 716: #line 3204 "parse.y" { finish_return_stmt (yyvsp[-1].ttype); ; break;} case 717: #line 3206 "parse.y" { finish_asm_stmt (yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE, NULL_TREE); ; break;} case 718: #line 3212 "parse.y" { finish_asm_stmt (yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE, NULL_TREE); ; break;} case 719: #line 3218 "parse.y" { finish_asm_stmt (yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype, NULL_TREE); ; break;} case 720: #line 3222 "parse.y" { finish_asm_stmt (yyvsp[-10].ttype, yyvsp[-8].ttype, yyvsp[-6].ttype, yyvsp[-4].ttype, yyvsp[-2].ttype); ; break;} case 721: #line 3224 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids computed gotos"); finish_goto_stmt (yyvsp[-1].ttype); ; break;} case 722: #line 3230 "parse.y" { finish_goto_stmt (yyvsp[-1].ttype); ; break;} case 723: #line 3232 "parse.y" { finish_stmt (); ; break;} case 724: #line 3234 "parse.y" { error ("label must be followed by statement"); yyungetc ('}', 0); finish_stmt (); ; break;} case 725: #line 3238 "parse.y" { finish_stmt (); ; break;} case 727: #line 3244 "parse.y" { if (! current_function_parms_stored) store_parm_decls (); expand_start_early_try_stmts (); ; break;} case 728: #line 3250 "parse.y" { expand_start_all_catch (); expand_start_catch (NULL); ; break;} case 729: #line 3255 "parse.y" { int nested = (hack_decl_function_context (current_function_decl) != NULL_TREE); expand_end_all_catch (); expand_end_catch (); finish_function (lineno, (int)yyvsp[-3].itype, nested); ; break;} case 730: #line 3266 "parse.y" { yyval.ttype = begin_try_block (); ; break;} case 731: #line 3268 "parse.y" { finish_try_block (yyvsp[-1].ttype); ; break;} case 732: #line 3270 "parse.y" { finish_handler_sequence (yyvsp[-3].ttype); ; break;} case 735: #line 3280 "parse.y" { yyval.ttype = begin_handler(); ; break;} case 736: #line 3282 "parse.y" { finish_handler_parms (yyvsp[-1].ttype); ; break;} case 737: #line 3284 "parse.y" { finish_handler (yyvsp[-3].ttype); ; break;} case 740: #line 3294 "parse.y" { expand_start_catch_block (NULL_TREE, NULL_TREE); ; break;} case 741: #line 3310 "parse.y" { check_for_new_type ("inside exception declarations", yyvsp[-1].ftype); expand_start_catch_block (TREE_PURPOSE (yyvsp[-1].ftype.t), TREE_VALUE (yyvsp[-1].ftype.t)); ; break;} case 742: #line 3317 "parse.y" { tree label; do_label: label = define_label (input_filename, lineno, yyvsp[-1].ttype); if (label && ! minimal_parse_mode) expand_label (label); ; break;} case 743: #line 3324 "parse.y" { goto do_label; ; break;} case 744: #line 3326 "parse.y" { goto do_label; ; break;} case 745: #line 3328 "parse.y" { goto do_label; ; break;} case 746: #line 3333 "parse.y" { if (yyvsp[-1].ttype) cplus_expand_expr_stmt (yyvsp[-1].ttype); ; break;} case 748: #line 3336 "parse.y" { if (pedantic) pedwarn ("ANSI C++ forbids compound statements inside for initializations"); ; break;} case 749: #line 3345 "parse.y" { emit_line_note (input_filename, lineno); yyval.ttype = NULL_TREE; ; break;} case 750: #line 3348 "parse.y" { emit_line_note (input_filename, lineno); ; break;} case 751: #line 3353 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 753: #line 3356 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 754: #line 3363 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 757: #line 3370 "parse.y" { yyval.ttype = chainon (yyval.ttype, yyvsp[0].ttype); ; break;} case 758: #line 3375 "parse.y" { yyval.ttype = build_tree_list (yyval.ttype, yyvsp[-1].ttype); ; break;} case 759: #line 3380 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyval.ttype, NULL_TREE); ; break;} case 760: #line 3382 "parse.y" { yyval.ttype = tree_cons (NULL_TREE, yyvsp[0].ttype, yyval.ttype); ; break;} case 761: #line 3393 "parse.y" { yyval.ttype = empty_parms(); ; break;} case 763: #line 3398 "parse.y" { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[0].ftype.t), 0); check_for_new_type ("inside parameter list", yyvsp[0].ftype); ; break;} case 764: #line 3406 "parse.y" { yyval.ttype = finish_parmlist (yyval.ttype, 0); ; break;} case 765: #line 3408 "parse.y" { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; break;} case 766: #line 3411 "parse.y" { yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 1); ; break;} case 767: #line 3413 "parse.y" { yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 1); ; break;} case 768: #line 3416 "parse.y" { yyval.ttype = finish_parmlist (NULL_TREE, 1); ; break;} case 769: #line 3418 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right parenthesis. */ yyerror ("possibly missing ')'"); yyval.ttype = finish_parmlist (yyvsp[-1].ttype, 0); yyungetc (':', 0); yychar = ')'; ; break;} case 770: #line 3428 "parse.y" { /* This helps us recover from really nasty parse errors, for example, a missing right parenthesis. */ yyerror ("possibly missing ')'"); yyval.ttype = finish_parmlist (build_tree_list (NULL_TREE, yyvsp[-1].ftype.t), 0); yyungetc (':', 0); yychar = ')'; ; break;} case 771: #line 3443 "parse.y" { maybe_snarf_defarg (); ; break;} case 772: #line 3445 "parse.y" { yyval.ttype = yyvsp[0].ttype; ; break;} case 775: #line 3456 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); ; break;} case 776: #line 3459 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); ; break;} case 777: #line 3462 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[0].ftype); yyval.ttype = chainon (yyval.ttype, yyvsp[0].ftype.t); ; break;} case 778: #line 3465 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (NULL_TREE, yyvsp[0].ttype)); ; break;} case 779: #line 3467 "parse.y" { yyval.ttype = chainon (yyval.ttype, build_tree_list (yyvsp[0].ttype, yyvsp[-2].ttype)); ; break;} case 781: #line 3473 "parse.y" { check_for_new_type ("in a parameter list", yyvsp[-1].ftype); yyval.ttype = build_tree_list (NULL_TREE, yyvsp[-1].ftype.t); ; break;} case 782: #line 3483 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); ; break;} case 783: #line 3487 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[-1].ftype.t, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 784: #line 3490 "parse.y" { yyval.ftype.t = build_tree_list (get_decl_list (yyvsp[-1].ftype.t), yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 785: #line 3493 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ftype.t); yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 786: #line 3497 "parse.y" { tree specs = strip_attrs (yyvsp[0].ftype.t); yyval.ftype.t = build_tree_list (specs, NULL_TREE); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 787: #line 3501 "parse.y" { tree specs = strip_attrs (yyvsp[-1].ttype); yyval.ftype.t = build_tree_list (specs, yyvsp[0].ttype); yyval.ftype.new_type_flag = 0; ; break;} case 788: #line 3508 "parse.y" { yyval.ftype.t = build_tree_list (NULL_TREE, yyvsp[0].ftype.t); yyval.ftype.new_type_flag = yyvsp[0].ftype.new_type_flag; ; break;} case 789: #line 3511 "parse.y" { yyval.ftype.t = build_tree_list (yyvsp[0].ttype, yyvsp[-1].ftype.t); yyval.ftype.new_type_flag = yyvsp[-1].ftype.new_type_flag; ; break;} case 792: #line 3522 "parse.y" { see_typename (); ; break;} case 793: #line 3527 "parse.y" { error ("type specifier omitted for parameter"); yyval.ttype = build_tree_list (integer_type_node, NULL_TREE); ; break;} case 794: #line 3532 "parse.y" { error ("type specifier omitted for parameter"); if (TREE_CODE (yyval.ttype) == SCOPE_REF && (TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TYPE_PARM || TREE_CODE (TREE_OPERAND (yyval.ttype, 0)) == TEMPLATE_TEMPLATE_PARM)) cp_error (" perhaps you want `typename %E' to make it a type", yyval.ttype); yyval.ttype = build_tree_list (integer_type_node, yyval.ttype); ; break;} case 795: #line 3544 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 796: #line 3546 "parse.y" { yyval.ttype = yyvsp[-1].ttype; ; break;} case 797: #line 3548 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, NULL_TREE); ; break;} case 798: #line 3553 "parse.y" { yyval.ttype = build_decl_list (NULL_TREE, groktypename(yyvsp[0].ftype.t)); ; break;} case 800: #line 3559 "parse.y" { TREE_CHAIN (yyvsp[0].ttype) = yyval.ttype; yyval.ttype = yyvsp[0].ttype; ; break;} case 801: #line 3567 "parse.y" { yyval.ttype = NULL_TREE; ; break;} case 802: #line 3569 "parse.y" { yyval.ttype = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 803: #line 3571 "parse.y" { yyval.ttype = make_reference_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); ; break;} case 804: #line 3573 "parse.y" { tree arg = make_pointer_declarator (yyvsp[-1].ttype, yyvsp[0].ttype); yyval.ttype = build_parse_node (SCOPE_REF, yyvsp[-2].ttype, arg); ; break;} case 805: #line 3580 "parse.y" { got_scope = NULL_TREE; ; break;} case 806: #line 3585 "parse.y" { yyval.ttype = ansi_opname[MULT_EXPR]; ; break;} case 807: #line 3587 "parse.y" { yyval.ttype = ansi_opname[TRUNC_DIV_EXPR]; ; break;} case 808: #line 3589 "parse.y" { yyval.ttype = ansi_opname[TRUNC_MOD_EXPR]; ; break;} case 809: #line 3591 "parse.y" { yyval.ttype = ansi_opname[PLUS_EXPR]; ; break;} case 810: #line 3593 "parse.y" { yyval.ttype = ansi_opname[MINUS_EXPR]; ; break;} case 811: #line 3595 "parse.y" { yyval.ttype = ansi_opname[BIT_AND_EXPR]; ; break;} case 812: #line 3597 "parse.y" { yyval.ttype = ansi_opname[BIT_IOR_EXPR]; ; break;} case 813: #line 3599 "parse.y" { yyval.ttype = ansi_opname[BIT_XOR_EXPR]; ; break;} case 814: #line 3601 "parse.y" { yyval.ttype = ansi_opname[BIT_NOT_EXPR]; ; break;} case 815: #line 3603 "parse.y" { yyval.ttype = ansi_opname[COMPOUND_EXPR]; ; break;} case 816: #line 3605 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 817: #line 3607 "parse.y" { yyval.ttype = ansi_opname[LT_EXPR]; ; break;} case 818: #line 3609 "parse.y" { yyval.ttype = ansi_opname[GT_EXPR]; ; break;} case 819: #line 3611 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 820: #line 3613 "parse.y" { yyval.ttype = ansi_assopname[yyvsp[0].code]; ; break;} case 821: #line 3615 "parse.y" { yyval.ttype = ansi_opname [MODIFY_EXPR]; ; break;} case 822: #line 3617 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 823: #line 3619 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 824: #line 3621 "parse.y" { yyval.ttype = ansi_opname[POSTINCREMENT_EXPR]; ; break;} case 825: #line 3623 "parse.y" { yyval.ttype = ansi_opname[PREDECREMENT_EXPR]; ; break;} case 826: #line 3625 "parse.y" { yyval.ttype = ansi_opname[TRUTH_ANDIF_EXPR]; ; break;} case 827: #line 3627 "parse.y" { yyval.ttype = ansi_opname[TRUTH_ORIF_EXPR]; ; break;} case 828: #line 3629 "parse.y" { yyval.ttype = ansi_opname[TRUTH_NOT_EXPR]; ; break;} case 829: #line 3631 "parse.y" { yyval.ttype = ansi_opname[COND_EXPR]; ; break;} case 830: #line 3633 "parse.y" { yyval.ttype = ansi_opname[yyvsp[0].code]; ; break;} case 831: #line 3635 "parse.y" { yyval.ttype = ansi_opname[COMPONENT_REF]; ; break;} case 832: #line 3637 "parse.y" { yyval.ttype = ansi_opname[MEMBER_REF]; ; break;} case 833: #line 3639 "parse.y" { yyval.ttype = ansi_opname[CALL_EXPR]; ; break;} case 834: #line 3641 "parse.y" { yyval.ttype = ansi_opname[ARRAY_REF]; ; break;} case 835: #line 3643 "parse.y" { yyval.ttype = ansi_opname[NEW_EXPR]; ; break;} case 836: #line 3645 "parse.y" { yyval.ttype = ansi_opname[DELETE_EXPR]; ; break;} case 837: #line 3647 "parse.y" { yyval.ttype = ansi_opname[VEC_NEW_EXPR]; ; break;} case 838: #line 3649 "parse.y" { yyval.ttype = ansi_opname[VEC_DELETE_EXPR]; ; break;} case 839: #line 3652 "parse.y" { yyval.ttype = grokoptypename (yyvsp[-1].ftype.t, yyvsp[0].ttype); ; break;} case 840: #line 3654 "parse.y" { yyval.ttype = ansi_opname[ERROR_MARK]; ; break;} } /* the action file gets copied in in place of this dollarsign */ #line 498 "/usr/lib/bison.simple" yyvsp -= yylen; yyssp -= yylen; #ifdef YYLSP_NEEDED yylsp -= yylen; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif *++yyvsp = yyval; #ifdef YYLSP_NEEDED yylsp++; if (yylen == 0) { yylsp->first_line = yylloc.first_line; yylsp->first_column = yylloc.first_column; yylsp->last_line = (yylsp-1)->last_line; yylsp->last_column = (yylsp-1)->last_column; yylsp->text = 0; } else { yylsp->last_line = (yylsp+yylen-1)->last_line; yylsp->last_column = (yylsp+yylen-1)->last_column; } #endif /* Now "shift" the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTBASE]; goto yynewstate; yyerrlab: /* here on detecting error */ if (! yyerrstatus) /* If not already recovering from an error, report this error. */ { ++yynerrs; #ifdef YYERROR_VERBOSE yyn = yypact[yystate]; if (yyn > YYFLAG && yyn < YYLAST) { int size = 0; char *msg; int x, count; count = 0; /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) size += strlen(yytname[x]) + 15, count++; msg = (char *) malloc(size + 15); if (msg != 0) { strcpy(msg, "parse error"); if (count < 5) { count = 0; for (x = (yyn < 0 ? -yyn : 0); x < (sizeof(yytname) / sizeof(char *)); x++) if (yycheck[x + yyn] == x) { strcat(msg, count == 0 ? ", expecting `" : " or `"); strcat(msg, yytname[x]); strcat(msg, "'"); count++; } } yyerror(msg); free(msg); } else yyerror ("parse error; also virtual memory exceeded"); } else #endif /* YYERROR_VERBOSE */ yyerror("parse error"); } goto yyerrlab1; yyerrlab1: /* here on error raised explicitly by an action */ if (yyerrstatus == 3) { /* if just tried and failed to reuse lookahead token after an error, discard it. */ /* return failure if at end of input */ if (yychar == YYEOF) YYABORT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); #endif yychar = YYEMPTY; } /* Else will try to reuse lookahead token after shifting the error token. */ yyerrstatus = 3; /* Each real token shifted decrements this */ goto yyerrhandle; yyerrdefault: /* current state does not do anything special for the error token. */ #if 0 /* This is wrong; only states that explicitly want error tokens should shift them. */ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ if (yyn) goto yydefault; #endif yyerrpop: /* pop the current state because it cannot handle the error token */ if (yyssp == yyss) YYABORT; yyvsp--; yystate = *--yyssp; #ifdef YYLSP_NEEDED yylsp--; #endif #if YYDEBUG != 0 if (yydebug) { short *ssp1 = yyss - 1; fprintf (stderr, "Error: state stack now"); while (ssp1 != yyssp) fprintf (stderr, " %d", *++ssp1); fprintf (stderr, "\n"); } #endif yyerrhandle: yyn = yypact[yystate]; if (yyn == YYFLAG) goto yyerrdefault; yyn += YYTERROR; if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) goto yyerrdefault; yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) goto yyerrpop; yyn = -yyn; goto yyreduce; } else if (yyn == 0) goto yyerrpop; if (yyn == YYFINAL) YYACCEPT; #if YYDEBUG != 0 if (yydebug) fprintf(stderr, "Shifting error token, "); #endif *++yyvsp = yylval; #ifdef YYLSP_NEEDED *++yylsp = yylloc; #endif yystate = yyn; goto yynewstate; } #line 3657 "parse.y" #ifdef SPEW_DEBUG const char * debug_yytranslate (value) int value; { return yytname[YYTRANSLATE (value)]; } #endif