X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=toke.c;h=e8b92436458b0c0c20f8284fb85f8fb1888e2897;hb=d2bea82818b233f7b68ae4263c3c0c5f8abd7ac9;hp=96eaf51cecc43e7bbc10c6caa281af9b9cf7394c;hpb=abffa756f90bac83386a0677f18518136710b22a;p=debian%2Fsudo diff --git a/toke.c b/toke.c index 96eaf51..e8b9243 100644 --- a/toke.c +++ b/toke.c @@ -3,7 +3,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /home/cvs/courtesan/sudo/toke.c,v 1.37 2009/07/18 13:55:37 millert Exp $ + * $Header: /home/cvs/openbsd/src/usr.bin/lex/flex.skl,v 1.10 2007/01/26 14:38:19 tsi Exp $ */ #define FLEX_SCANNER @@ -290,7 +290,7 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); #define YY_NUM_RULES 50 #define YY_END_OF_BUFFER 51 -static yyconst short int yy_accept[554] = +static yyconst short int yy_accept[555] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 38, 46, 45, 44, 38, 49, 38, @@ -343,16 +343,16 @@ static yyconst short int yy_accept[554] = 30, 30, 0, 0, 0, 0, 0, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 0, 0, 0, - 20, 19, 0, 19, 0, 38, 38, 38, 30, 30, - 0, 0, 0, 31, 31, 31, 31, 31, 31, 31, + 20, 19, 0, 0, 19, 0, 38, 38, 38, 30, + 30, 0, 0, 0, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 20, 0, 17, 0, 38, 38, 38, 38, 38, - 0, 0, 0, 0, 0, 31, 31, 31, 31, 31, - 31, 31, 31, 0, 38, 38, 38, 31, 31, 31, - 31, 31, 31, 0, 38, 38, 38, 38, 38, 31, - 31, 31, 31, 31, 0, 18, 29, 29, 29, 29, - 29, 29, 0 + 31, 31, 20, 0, 17, 0, 38, 38, 38, 38, + 38, 0, 0, 0, 0, 0, 31, 31, 31, 31, + 31, 31, 31, 31, 0, 38, 38, 38, 31, 31, + 31, 31, 31, 31, 0, 38, 38, 38, 38, 38, + 31, 31, 31, 31, 31, 0, 18, 29, 29, 29, + 29, 29, 29, 0 } ; static yyconst int yy_ec[256] = @@ -389,160 +389,160 @@ static yyconst int yy_ec[256] = static yyconst int yy_meta[63] = { 0, - 1, 2, 3, 4, 5, 6, 1, 4, 4, 1, + 1, 2, 3, 4, 5, 2, 1, 6, 6, 1, 1, 2, 1, 7, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 10, 6, 4, 1, 9, 9, 9, + 9, 9, 9, 10, 11, 6, 1, 9, 9, 9, 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 11, 12, 13, 13, 13, 13, - 13, 13, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12 + 1, 1, 1, 1, 12, 13, 14, 14, 14, 14, + 14, 14, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13 } ; -static yyconst short int yy_base[620] = +static yyconst short int yy_base[621] = { 0, 0, 61, 62, 63, 69, 84, 128, 189, 250, 294, - 80, 101, 2349, 2303, 2345, 3488, 2316, 338, 381, 52, - 3488, 3488, 2272, 3488, 107, 391, 119, 137, 2292, 3488, - 3488, 443, 2271, 490, 2270, 2260, 2253, 541, 145, 55, - 167, 565, 2228, 2232, 2224, 2219, 2206, 2254, 193, 256, - 56, 0, 3488, 2249, 0, 3488, 264, 617, 77, 0, - 2199, 3488, 82, 3488, 99, 3488, 110, 2189, 126, 106, - 3488, 145, 2179, 306, 2185, 2182, 639, 2145, 2144, 2135, - 3488, 201, 209, 74, 2082, 347, 2079, 550, 276, 2078, - 587, 410, 669, 2098, 2104, 306, 358, 317, 2092, 179, - - 706, 0, 2083, 240, 2075, 2071, 389, 3488, 76, 355, - 2039, 2041, 2033, 2021, 2000, 63, 115, 219, 29, 212, - 98, 2056, 507, 361, 1986, 598, 154, 0, 2024, 256, - 3488, 3488, 636, 284, 0, 1982, 567, 3488, 3488, 1981, - 532, 1979, 1994, 271, 300, 288, 1975, 1905, 3488, 1944, - 1916, 1873, 669, 603, 745, 777, 809, 841, 1902, 1876, - 878, 268, 916, 953, 1869, 1854, 1854, 1849, 1841, 1831, - 236, 1805, 1788, 1746, 1748, 1719, 317, 157, 1722, 307, - 266, 258, 777, 296, 1766, 1764, 686, 402, 992, 1024, - 725, 337, 1727, 1726, 787, 499, 1708, 1707, 343, 755, - - 1056, 796, 694, 1094, 819, 1705, 393, 1681, 1673, 1671, - 1639, 1646, 373, 1629, 1616, 1601, 1614, 1586, 543, 400, - 556, 233, 506, 1133, 1165, 1197, 1620, 1619, 827, 1619, - 1602, 1601, 1590, 540, 858, 546, 895, 602, 1229, 0, - 935, 1240, 970, 731, 1278, 1002, 601, 3488, 1581, 1571, - 1577, 1577, 1537, 486, 1532, 1515, 1470, 387, 343, 380, - 616, 1010, 423, 1317, 1349, 1044, 1470, 1469, 1451, 1450, + 80, 101, 2394, 2348, 2390, 3541, 2387, 338, 381, 52, + 3541, 3541, 2345, 3541, 107, 391, 119, 137, 2351, 3541, + 3541, 443, 2330, 490, 2337, 2335, 2320, 541, 145, 55, + 167, 565, 2293, 2297, 2289, 2258, 2257, 2314, 193, 256, + 56, 0, 3541, 2311, 3541, 0, 264, 617, 77, 0, + 2261, 3541, 82, 3541, 99, 3541, 110, 2243, 126, 106, + 3541, 145, 2240, 306, 2282, 2279, 639, 2277, 2276, 2263, + 3541, 201, 209, 74, 2211, 347, 2208, 550, 276, 2199, + 587, 410, 669, 2210, 2210, 306, 358, 317, 2163, 179, + + 706, 0, 2154, 240, 2111, 2109, 389, 3541, 76, 355, + 2082, 2076, 2066, 2061, 2062, 63, 115, 219, 29, 212, + 98, 2116, 507, 361, 2071, 598, 154, 0, 2111, 256, + 3541, 3541, 636, 284, 0, 2069, 567, 3541, 3541, 2066, + 532, 2050, 2087, 271, 300, 288, 2089, 2038, 3541, 2057, + 2055, 1986, 669, 603, 745, 777, 809, 841, 2014, 2003, + 878, 268, 916, 953, 1996, 1980, 1971, 1945, 1911, 1915, + 236, 1862, 1866, 1856, 1843, 1848, 317, 157, 1851, 307, + 266, 258, 777, 296, 1880, 1877, 686, 402, 992, 1024, + 725, 337, 1839, 1838, 787, 499, 1782, 1781, 343, 755, + + 1056, 796, 694, 1094, 819, 1745, 393, 1736, 1728, 1711, + 1707, 1697, 373, 1681, 1666, 1651, 1664, 1623, 543, 400, + 556, 233, 506, 1133, 1165, 1197, 1657, 1655, 827, 1640, + 1638, 1637, 1621, 540, 858, 546, 895, 602, 1229, 0, + 935, 1240, 970, 731, 1278, 1002, 601, 3541, 1614, 1604, + 1610, 1595, 1583, 486, 1565, 1548, 1548, 387, 343, 380, + 616, 1010, 423, 1317, 1349, 1044, 1555, 1554, 1553, 1506, 1379, 645, 1076, 1113, 1143, 652, 983, 1035, 1151, 1042, - 1418, 0, 1175, 1429, 1184, 866, 1467, 1207, 644, 1430, - 1436, 648, 672, 625, 1428, 1400, 680, 576, 487, 715, + 1418, 0, 1175, 1429, 1184, 866, 1467, 1207, 644, 1451, + 1458, 648, 672, 625, 1447, 1419, 680, 576, 487, 715, - 1505, 1536, 1567, 1430, 1382, 1381, 1215, 1599, 1257, 903, - 1636, 1297, 1325, 1347, 1335, 1359, 1369, 841, 1024, 1067, + 1505, 1536, 1567, 1449, 1447, 1432, 1215, 1599, 1257, 903, + 1636, 1297, 1325, 1441, 1335, 1359, 1369, 841, 1024, 1067, 1124, 1396, 1308, 1675, 0, 1448, 1686, 1484, 1265, 1724, - 1515, 955, 3488, 1329, 1282, 956, 3488, 975, 3488, 807, - 1266, 1244, 591, 1074, 569, 917, 1523, 155, 1762, 1793, - 1546, 1280, 1243, 1553, 768, 1576, 810, 1825, 0, 429, + 1515, 955, 3541, 1423, 1364, 956, 3541, 975, 3541, 807, + 1350, 1300, 591, 1074, 569, 917, 1523, 155, 1762, 1793, + 1546, 1336, 1300, 1553, 768, 1576, 810, 1825, 0, 429, 1836, 1584, 1404, 1873, 1618, 1655, 1705, 1743, 1288, 1335, 1734, 1772, 1772, 1803, 1912, 0, 1805, 1923, 1781, 1492, - 1814, 993, 1156, 1221, 1211, 1181, 730, 635, 1952, 1194, - 1984, 2016, 2048, 2080, 1153, 1855, 1892, 1943, 1152, 1184, + 1814, 993, 1156, 1276, 1251, 1244, 730, 635, 1952, 1222, + 1984, 2016, 2048, 2080, 1242, 1855, 1892, 1943, 1241, 1184, 1198, 1964, 1350, 2112, 0, 762, 2123, 1972, 1992, 2160, - 2000, 2024, 1126, 2034, 2058, 2068, 1369, 1609, 1934, 772, - 806, 2199, 0, 844, 1173, 3488, 1468, 3488, 1090, 2086, - 1389, 142, 991, 1076, 1075, 2140, 1038, 2209, 2241, 2273, - 2305, 2103, 2177, 1088, 2219, 2229, 2251, 1077, 1076, 1656, + 2000, 2024, 1227, 2034, 2058, 2068, 1369, 1609, 1934, 772, + 806, 2199, 0, 844, 1173, 3541, 1468, 3541, 1192, 2086, + 1389, 142, 991, 604, 736, 2140, 1038, 2209, 2241, 2273, + 2305, 2103, 2177, 1163, 2219, 2229, 2251, 1152, 1116, 1656, 1706, 2257, 1837, 2337, 0, 881, 2348, 2281, 2088, 2385, - 2291, 2314, 2323, 2366, 1855, 981, 927, 934, 957, 902, - 898, 808, 2416, 743, 2441, 2454, 2486, 2518, 2438, 1951, - 2468, 2496, 2506, 757, 716, 1893, 2001, 2526, 2035, 2550, - 0, 1012, 2561, 2534, 2148, 2580, 647, 2599, 2608, 2477, - - 634, 3488, 629, 3488, 1051, 2616, 1195, 2648, 2680, 2627, - 2633, 594, 2659, 2669, 2690, 573, 566, 2049, 557, 549, - 2698, 0, 1045, 1545, 2712, 2744, 2776, 2720, 2728, 2752, - 509, 0, 455, 357, 2760, 1535, 2808, 2840, 2790, 3488, - 2796, 2820, 2185, 3488, 345, 3488, 2828, 2848, 2858, 25, - 2878, 2870, 3488, 2923, 2936, 2949, 2962, 2975, 2988, 3001, - 3014, 3027, 3040, 3045, 3058, 3071, 3073, 3086, 3099, 3112, - 3125, 3138, 3151, 3164, 3177, 3182, 3188, 3201, 3214, 3219, - 3225, 3230, 3235, 3240, 3246, 3251, 3256, 3261, 3267, 3274, - 3279, 3284, 3289, 3295, 3302, 3307, 3312, 3318, 3325, 3330, - - 3337, 3343, 3350, 3355, 3362, 3368, 3375, 3388, 3401, 3406, - 3413, 3419, 3432, 3437, 3444, 3449, 3456, 3461, 3474 + 2291, 2314, 2323, 2366, 1855, 1122, 927, 1042, 1031, 902, + 951, 990, 1725, 2416, 1836, 2437, 2450, 2482, 2514, 2434, + 1951, 2464, 2492, 2502, 936, 919, 1893, 2001, 2522, 2035, + 2546, 0, 1031, 2557, 2530, 2148, 2576, 838, 2595, 2604, + + 2473, 773, 3541, 659, 3541, 1065, 2612, 1195, 2644, 2676, + 2623, 2629, 618, 2655, 2665, 2686, 573, 566, 2049, 557, + 549, 2694, 0, 1078, 1545, 2708, 2740, 2772, 2716, 2724, + 2748, 509, 0, 455, 357, 2756, 1535, 2804, 2836, 2786, + 3541, 2792, 2816, 2185, 3541, 345, 3541, 2824, 2844, 2854, + 25, 2874, 2866, 3541, 2919, 2933, 2947, 2961, 2975, 2989, + 3003, 3017, 3031, 3045, 3051, 3065, 3079, 1107, 3093, 3107, + 3121, 3135, 3149, 3163, 3177, 3191, 3197, 3204, 3218, 3232, + 3238, 3245, 3251, 3257, 3263, 3270, 3276, 3282, 3288, 3295, + 3303, 3309, 3315, 3321, 3328, 3336, 3342, 3348, 3355, 3363, + + 3369, 3377, 3384, 3392, 3398, 3406, 3413, 3421, 3435, 3449, + 3455, 3463, 3470, 3484, 3490, 3498, 3504, 3512, 1600, 3526 } ; -static yyconst short int yy_def[620] = +static yyconst short int yy_def[621] = { 0, - 553, 1, 1, 1, 554, 554, 555, 555, 556, 556, - 557, 557, 553, 558, 553, 553, 553, 559, 560, 561, - 553, 553, 562, 553, 563, 558, 26, 26, 564, 553, - 553, 553, 32, 32, 34, 34, 34, 558, 26, 558, - 553, 560, 32, 32, 34, 34, 34, 553, 553, 565, - 558, 566, 553, 566, 566, 553, 553, 560, 553, 567, - 568, 553, 568, 553, 568, 553, 569, 570, 570, 570, - 553, 553, 558, 558, 553, 553, 559, 571, 559, 572, - 553, 573, 553, 561, 574, 561, 562, 562, 563, 575, - 558, 558, 26, 564, 93, 93, 93, 93, 576, 577, - - 32, 34, 34, 34, 34, 34, 558, 553, 558, 553, - 553, 553, 553, 553, 553, 572, 558, 93, 558, 558, - 558, 553, 553, 565, 578, 558, 558, 566, 566, 553, - 553, 553, 573, 553, 567, 568, 568, 553, 553, 568, - 568, 570, 553, 570, 570, 553, 553, 558, 553, 572, - 579, 574, 574, 553, 558, 558, 558, 93, 158, 580, - 553, 581, 553, 32, 34, 34, 34, 34, 34, 34, - 558, 553, 553, 553, 553, 553, 572, 558, 158, 558, - 558, 558, 553, 558, 553, 579, 558, 558, 558, 558, - 558, 558, 582, 583, 583, 195, 584, 583, 585, 163, - - 553, 201, 201, 553, 201, 34, 34, 34, 34, 34, - 34, 34, 558, 553, 553, 553, 553, 553, 572, 558, - 558, 558, 558, 558, 558, 558, 553, 586, 586, 229, - 586, 587, 588, 589, 553, 590, 204, 590, 590, 239, - 590, 553, 242, 242, 553, 242, 553, 553, 34, 34, - 34, 34, 34, 558, 553, 553, 553, 572, 558, 558, - 558, 558, 558, 558, 558, 558, 591, 591, 592, 593, - 553, 553, 553, 553, 553, 594, 594, 595, 245, 595, - 595, 281, 595, 553, 284, 284, 553, 284, 34, 34, - 34, 34, 34, 558, 553, 553, 572, 558, 558, 558, - - 558, 558, 558, 553, 596, 597, 271, 553, 308, 308, - 553, 308, 553, 553, 553, 553, 553, 553, 598, 598, - 599, 287, 599, 599, 324, 599, 553, 327, 327, 553, - 327, 553, 553, 34, 34, 553, 553, 553, 553, 558, - 553, 553, 572, 558, 558, 558, 558, 558, 558, 558, - 558, 553, 600, 553, 601, 311, 601, 601, 358, 358, - 553, 361, 361, 553, 361, 553, 553, 553, 553, 602, - 602, 603, 330, 603, 603, 375, 603, 553, 378, 378, - 378, 34, 34, 558, 553, 553, 572, 558, 558, 558, - 558, 558, 558, 558, 553, 553, 553, 553, 604, 604, - - 605, 364, 605, 605, 404, 404, 553, 407, 407, 553, - 407, 553, 553, 553, 553, 553, 553, 606, 606, 607, - 607, 607, 422, 422, 553, 553, 553, 553, 553, 553, - 572, 572, 558, 608, 609, 558, 558, 558, 558, 558, - 558, 558, 553, 553, 553, 553, 553, 553, 610, 610, - 611, 410, 611, 611, 454, 454, 553, 457, 457, 553, - 457, 553, 553, 553, 553, 612, 612, 553, 613, 572, - 558, 608, 608, 609, 609, 558, 558, 558, 558, 558, - 553, 553, 553, 553, 614, 614, 615, 460, 615, 615, - 490, 490, 553, 493, 493, 493, 553, 553, 553, 553, - - 553, 553, 613, 553, 572, 558, 558, 558, 558, 558, - 553, 553, 553, 553, 553, 553, 616, 616, 617, 617, - 617, 521, 521, 572, 558, 558, 558, 553, 553, 553, - 553, 618, 618, 619, 558, 558, 558, 558, 558, 553, - 553, 553, 553, 553, 619, 553, 558, 558, 558, 558, - 558, 558, 0, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553 + 554, 1, 1, 1, 555, 555, 556, 556, 557, 557, + 558, 558, 554, 559, 554, 554, 554, 560, 561, 562, + 554, 554, 563, 554, 564, 559, 26, 26, 565, 554, + 554, 554, 32, 32, 34, 34, 34, 559, 26, 559, + 554, 561, 32, 32, 34, 34, 34, 554, 554, 566, + 559, 567, 554, 567, 554, 567, 554, 561, 554, 568, + 569, 554, 569, 554, 569, 554, 570, 571, 571, 571, + 554, 554, 559, 559, 554, 554, 560, 572, 560, 573, + 554, 574, 554, 562, 575, 562, 563, 563, 564, 576, + 559, 559, 26, 565, 93, 93, 93, 93, 577, 578, + + 32, 34, 34, 34, 34, 34, 559, 554, 559, 554, + 554, 554, 554, 554, 554, 573, 559, 93, 559, 559, + 559, 554, 554, 566, 579, 559, 559, 567, 567, 554, + 554, 554, 574, 554, 568, 569, 569, 554, 554, 569, + 569, 571, 554, 571, 571, 554, 554, 559, 554, 573, + 580, 575, 575, 554, 559, 559, 559, 93, 158, 581, + 554, 582, 554, 32, 34, 34, 34, 34, 34, 34, + 559, 554, 554, 554, 554, 554, 573, 559, 158, 559, + 559, 559, 554, 559, 554, 580, 559, 559, 559, 559, + 559, 559, 583, 584, 584, 195, 585, 584, 586, 163, + + 554, 201, 201, 554, 201, 34, 34, 34, 34, 34, + 34, 34, 559, 554, 554, 554, 554, 554, 573, 559, + 559, 559, 559, 559, 559, 559, 554, 587, 587, 229, + 587, 588, 589, 590, 554, 591, 204, 591, 591, 239, + 591, 554, 242, 242, 554, 242, 554, 554, 34, 34, + 34, 34, 34, 559, 554, 554, 554, 573, 559, 559, + 559, 559, 559, 559, 559, 559, 592, 592, 593, 594, + 554, 554, 554, 554, 554, 595, 595, 596, 245, 596, + 596, 281, 596, 554, 284, 284, 554, 284, 34, 34, + 34, 34, 34, 559, 554, 554, 573, 559, 559, 559, + + 559, 559, 559, 554, 597, 598, 271, 554, 308, 308, + 554, 308, 554, 554, 554, 554, 554, 554, 599, 599, + 600, 287, 600, 600, 324, 600, 554, 327, 327, 554, + 327, 554, 554, 34, 34, 554, 554, 554, 554, 559, + 554, 554, 573, 559, 559, 559, 559, 559, 559, 559, + 559, 554, 601, 554, 602, 311, 602, 602, 358, 358, + 554, 361, 361, 554, 361, 554, 554, 554, 554, 603, + 603, 604, 330, 604, 604, 375, 604, 554, 378, 378, + 378, 34, 34, 559, 554, 554, 573, 559, 559, 559, + 559, 559, 559, 559, 554, 554, 554, 554, 605, 605, + + 606, 364, 606, 606, 404, 404, 554, 407, 407, 554, + 407, 554, 554, 554, 554, 554, 554, 607, 607, 608, + 608, 608, 422, 422, 554, 554, 554, 554, 554, 554, + 573, 573, 559, 609, 610, 559, 559, 559, 559, 559, + 559, 559, 554, 554, 554, 554, 554, 554, 611, 611, + 612, 410, 612, 612, 454, 454, 554, 457, 457, 554, + 457, 554, 554, 554, 554, 613, 613, 554, 614, 573, + 559, 609, 609, 609, 610, 610, 559, 559, 559, 559, + 559, 554, 554, 554, 554, 615, 615, 616, 460, 616, + 616, 491, 491, 554, 494, 494, 494, 554, 554, 554, + + 554, 554, 554, 614, 554, 573, 559, 559, 559, 559, + 559, 554, 554, 554, 554, 554, 554, 617, 617, 618, + 618, 618, 522, 522, 573, 559, 559, 559, 554, 554, + 554, 554, 619, 619, 620, 559, 559, 559, 559, 559, + 554, 554, 554, 554, 554, 620, 554, 559, 559, 559, + 559, 559, 559, 0, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554 } ; -static yyconst short int yy_nxt[3551] = +static yyconst short int yy_nxt[3604] = { 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 14, 23, 24, 14, 14, 25, 26, 27, 28, 26, 26, @@ -552,10 +552,10 @@ static yyconst short int yy_nxt[3551] = 39, 39, 14, 14, 14, 14, 14, 14, 14, 40, 14, 14, 41, 48, 48, 81, 42, 49, 49, 74, 15, 53, 54, 74, 55, 85, 50, 50, 134, 108, - 56, 69, 16, 70, 71, 15, 53, 54, 180, 55, - 43, 44, 56, 55, 45, 56, 86, 553, 46, 74, + 55, 69, 16, 70, 71, 15, 53, 54, 180, 55, + 43, 44, 55, 56, 45, 55, 86, 554, 46, 74, - 74, 47, 69, 16, 70, 71, 138, 56, 55, 145, + 74, 47, 69, 16, 70, 71, 138, 55, 56, 145, 90, 141, 108, 57, 90, 90, 109, 127, 86, 177, 74, 51, 51, 139, 72, 171, 137, 144, 57, 15, 16, 17, 90, 58, 96, 96, 96, 96, 96, 96, @@ -581,8 +581,8 @@ static yyconst short int yy_nxt[3551] = 74, 73, 222, 73, 73, 143, 220, 73, 66, 81, 91, 159, 159, 159, 159, 159, 159, 159, 159, 73, 73, 73, 159, 159, 159, 159, 159, 159, 67, 78, - 74, 78, 73, 78, 143, 78, 78, 546, 84, 78, - 84, 74, 84, 223, 84, 84, 110, 161, 84, 546, + 74, 78, 73, 78, 143, 78, 78, 547, 84, 78, + 84, 74, 84, 223, 84, 84, 110, 161, 84, 547, 94, 78, 78, 78, 125, 219, 200, 220, 125, 125, 298, 84, 84, 159, 159, 159, 159, 159, 159, 159, 159, 74, 79, 81, 111, 112, 125, 74, 113, 81, @@ -600,23 +600,23 @@ static yyconst short int yy_nxt[3551] = 95, 95, 95, 95, 95, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 102, 102, 102, 102, 102, - 102, 102, 102, 553, 231, 231, 231, 102, 102, 102, + 102, 102, 102, 554, 231, 231, 231, 102, 102, 102, 102, 102, 83, 83, 83, 83, 83, 83, 83, 83, - 74, 74, 488, 134, 108, 294, 73, 73, 73, 73, + 74, 74, 489, 134, 108, 294, 73, 73, 73, 73, 73, 73, 107, 108, 73, 81, 73, 345, 73, 73, 74, 87, 73, 87, 161, 87, 261, 87, 87, 235, - 161, 87, 553, 200, 73, 73, 73, 81, 136, 237, + 161, 87, 554, 200, 73, 73, 73, 81, 136, 237, 354, 136, 136, 87, 87, 87, 137, 82, 136, 94, - 83, 83, 83, 83, 83, 83, 83, 83, 89, 488, + 83, 83, 83, 83, 83, 83, 83, 83, 89, 489, 73, 136, 89, 81, 73, 73, 452, 258, 89, 124, - 74, 73, 247, 124, 90, 73, 73, 511, 90, 124, - 89, 89, 73, 74, 90, 553, 161, 260, 116, 81, + 74, 73, 247, 124, 90, 73, 73, 473, 90, 124, + 89, 89, 73, 74, 90, 554, 161, 260, 116, 81, 74, 124, 124, 73, 248, 237, 90, 90, 389, 133, - 344, 504, 553, 553, 553, 553, 553, 553, 553, 553, - 78, 387, 78, 148, 78, 332, 78, 78, 161, 336, - 78, 553, 553, 553, 553, 553, 553, 553, 553, 161, - 74, 161, 78, 78, 78, 300, 161, 333, 200, 74, + 344, 512, 554, 554, 554, 554, 554, 554, 554, 554, + 78, 387, 78, 148, 78, 332, 78, 78, 474, 336, + 78, 554, 554, 554, 554, 554, 554, 554, 554, 161, + 74, 505, 78, 78, 78, 300, 161, 333, 200, 74, 152, 337, 152, 338, 152, 237, 152, 152, 340, 74, 152, 433, 81, 79, 158, 158, 158, 158, 158, 158, 158, 158, 152, 152, 152, 339, 158, 158, 158, 158, @@ -624,319 +624,326 @@ static yyconst short int yy_nxt[3551] = 158, 224, 225, 226, 224, 224, 224, 224, 224, 240, 240, 240, 240, 240, 241, 158, 158, 158, 158, 158, 158, 164, 164, 164, 164, 164, 164, 164, 164, 343, - 74, 431, 81, 164, 164, 164, 164, 164, 187, 452, + 74, 431, 81, 164, 164, 164, 164, 164, 187, 473, 188, 188, 188, 188, 188, 188, 282, 282, 282, 282, 282, 283, 158, 158, 158, 158, 158, 158, 187, 74, 188, 188, 188, 188, 188, 188, 188, 188, 346, 74, 205, 205, 205, 205, 205, 205, 205, 205, 125, 432, - 402, 354, 125, 449, 449, 235, 161, 475, 125, 74, + 476, 354, 125, 449, 449, 235, 161, 161, 125, 74, 187, 356, 189, 189, 189, 189, 189, 189, 189, 189, 125, 125, 229, 229, 230, 231, 231, 231, 231, 231, - 197, 239, 239, 239, 239, 239, 239, 239, 239, 553, - 161, 74, 187, 553, 190, 190, 190, 190, 190, 191, - 188, 188, 553, 356, 238, 238, 238, 238, 238, 238, + 197, 239, 239, 239, 239, 239, 239, 239, 239, 554, + 161, 74, 187, 554, 190, 190, 190, 190, 190, 191, + 188, 188, 554, 356, 238, 238, 238, 238, 238, 238, 238, 238, 268, 268, 268, 268, 268, 268, 268, 268, - 197, 74, 473, 74, 73, 161, 192, 192, 192, 192, + 197, 74, 161, 74, 73, 161, 192, 192, 192, 192, 192, 192, 192, 192, 237, 466, 466, 384, 192, 192, 192, 192, 192, 273, 274, 275, 273, 273, 273, 273, 273, 325, 325, 325, 325, 325, 326, 192, 192, 192, 192, 192, 192, 194, 195, 196, 196, 196, 196, 196, - 196, 197, 485, 485, 81, 198, 198, 198, 198, 198, + 196, 197, 486, 486, 81, 198, 198, 198, 198, 198, 246, 246, 246, 246, 246, 246, 246, 246, 359, 359, 359, 359, 359, 360, 198, 198, 198, 198, 198, 198, 161, 201, 202, 203, 201, 201, 201, 201, 201, 204, - 235, 161, 74, 205, 205, 205, 205, 205, 235, 161, - 277, 277, 277, 277, 277, 277, 332, 336, 237, 504, - 505, 74, 205, 205, 205, 205, 205, 205, 206, 206, + 235, 161, 452, 205, 205, 205, 205, 205, 235, 161, + 277, 277, 277, 277, 277, 277, 332, 336, 237, 402, + 506, 74, 205, 205, 205, 205, 205, 205, 206, 206, 206, 206, 206, 206, 206, 206, 338, 390, 333, 337, 206, 206, 206, 206, 206, 281, 281, 281, 281, 281, - 281, 281, 281, 502, 425, 161, 235, 161, 339, 192, + 281, 281, 281, 554, 425, 74, 235, 161, 339, 192, 192, 192, 192, 192, 192, 187, 237, 188, 188, 188, - 188, 188, 188, 188, 188, 553, 426, 280, 280, 280, + 188, 188, 188, 188, 188, 554, 426, 280, 280, 280, 280, 280, 280, 280, 280, 301, 302, 303, 301, 301, - 301, 301, 301, 517, 517, 74, 74, 187, 161, 188, + 301, 301, 301, 505, 474, 74, 74, 187, 161, 188, 188, 188, 188, 188, 188, 188, 188, 279, 235, 161, - 471, 436, 524, 81, 74, 553, 161, 262, 279, 263, - 263, 263, 263, 263, 263, 279, 532, 532, 74, 235, + 471, 436, 518, 518, 74, 554, 161, 262, 279, 263, + 263, 263, 263, 263, 263, 279, 525, 81, 74, 235, 161, 236, 236, 236, 236, 236, 236, 236, 236, 237, 235, 161, 74, 238, 238, 238, 238, 238, 74, 313, - 279, 314, 314, 314, 314, 314, 314, 314, 314, 402, + 279, 314, 314, 314, 314, 314, 314, 314, 314, 533, - 356, 443, 238, 238, 238, 238, 238, 238, 161, 242, - 243, 244, 242, 242, 242, 242, 242, 245, 74, 475, - 473, 246, 246, 246, 246, 246, 313, 388, 315, 315, - 315, 315, 315, 315, 315, 315, 468, 235, 161, 412, + 533, 503, 238, 238, 238, 238, 238, 238, 161, 242, + 243, 244, 242, 242, 242, 242, 242, 245, 74, 135, + 135, 246, 246, 246, 246, 246, 313, 388, 315, 315, + 315, 315, 315, 315, 315, 315, 161, 235, 161, 402, 246, 246, 246, 246, 246, 246, 262, 322, 263, 263, 263, 263, 263, 263, 263, 263, 313, 427, 316, 316, 316, 316, 316, 317, 314, 314, 288, 288, 288, 288, - 288, 288, 288, 288, 425, 356, 307, 74, 262, 428, + 288, 288, 288, 288, 425, 356, 443, 74, 262, 428, 264, 264, 264, 264, 264, 264, 264, 264, 235, 161, 320, 320, 320, 320, 320, 320, 426, 354, 279, 324, - 324, 324, 324, 324, 324, 324, 324, 356, 506, 74, + 324, 324, 324, 324, 324, 324, 324, 356, 507, 74, 262, 354, 265, 265, 265, 265, 265, 266, 263, 263, - 553, 402, 323, 323, 323, 323, 323, 323, 323, 323, - 312, 312, 312, 312, 312, 312, 312, 312, 74, 74, - 430, 74, 235, 161, 277, 277, 277, 277, 277, 277, + 554, 402, 323, 323, 323, 323, 323, 323, 323, 323, + 312, 312, 312, 312, 312, 312, 312, 312, 468, 74, + 412, 74, 235, 161, 277, 277, 277, 277, 277, 277, 277, 277, 237, 235, 161, 278, 278, 278, 278, 278, - 278, 278, 278, 279, 429, 74, 307, 280, 280, 280, + 278, 278, 278, 279, 356, 307, 74, 280, 280, 280, 280, 280, 358, 358, 358, 358, 358, 358, 358, 358, 376, 376, 376, 376, 376, 377, 280, 280, 280, 280, 280, 280, 161, 284, 285, 286, 284, 284, 284, 284, - 284, 287, 161, 233, 386, 288, 288, 288, 288, 288, - 553, 279, 357, 357, 357, 357, 357, 357, 357, 357, - 385, 553, 161, 383, 288, 288, 288, 288, 288, 288, + 284, 287, 161, 430, 429, 288, 288, 288, 288, 288, + 554, 279, 357, 357, 357, 357, 357, 357, 357, 357, + 74, 554, 161, 307, 288, 288, 288, 288, 288, 288, 262, 322, 263, 263, 263, 263, 263, 263, 263, 263, 366, 367, 368, 366, 366, 366, 366, 366, 313, 161, - 314, 314, 314, 314, 314, 314, 314, 314, 322, 382, - 313, 74, 262, 553, 263, 263, 263, 263, 263, 263, + 314, 314, 314, 314, 314, 314, 314, 314, 322, 233, + 386, 74, 262, 554, 263, 263, 263, 263, 263, 263, 263, 263, 313, 402, 314, 314, 314, 314, 314, 314, 314, 314, 313, 161, 314, 314, 314, 314, 314, 314, 431, 81, 322, 74, 308, 309, 310, 308, 308, 308, - 308, 308, 311, 469, 307, 233, 312, 312, 312, 312, + 308, 308, 311, 469, 385, 383, 312, 312, 312, 312, 312, 331, 331, 331, 331, 331, 331, 331, 331, 405, 405, 405, 405, 405, 406, 312, 312, 312, 312, 312, 312, 235, 161, 320, 320, 320, 320, 320, 320, 320, 320, 279, 235, 161, 321, 321, 321, 321, 321, 321, - 321, 321, 322, 197, 342, 341, 323, 323, 323, 323, + 321, 321, 322, 382, 313, 307, 323, 323, 323, 323, 323, 235, 161, 371, 371, 371, 371, 371, 371, 427, - 335, 322, 334, 307, 233, 323, 323, 323, 323, 323, + 233, 322, 197, 342, 341, 323, 323, 323, 323, 323, 323, 161, 327, 328, 329, 327, 327, 327, 327, 327, - 330, 428, 197, 197, 331, 331, 331, 331, 331, 375, + 330, 428, 335, 334, 331, 331, 331, 331, 331, 375, 375, 375, 375, 375, 375, 375, 375, 423, 423, 423, 423, 423, 424, 331, 331, 331, 331, 331, 331, 347, - 348, 348, 348, 348, 348, 348, 348, 348, 553, 255, + 348, 348, 348, 348, 348, 348, 348, 348, 554, 307, 374, 374, 374, 374, 374, 374, 374, 374, 391, 392, - 393, 394, 391, 391, 391, 391, 524, 81, 535, 74, - 347, 349, 349, 349, 349, 349, 349, 349, 349, 534, + 393, 394, 391, 391, 391, 391, 525, 81, 536, 74, + 347, 349, 349, 349, 349, 349, 349, 349, 349, 535, 347, 348, 348, 348, 348, 348, 348, 74, 396, 397, - 398, 396, 396, 396, 396, 396, 296, 295, 293, 74, + 398, 396, 396, 396, 396, 396, 233, 197, 197, 74, 74, 347, 350, 350, 350, 350, 350, 351, 348, 348, 74, 365, 365, 365, 365, 365, 365, 365, 365, 404, - 404, 404, 404, 404, 404, 404, 404, 292, 291, 290, - 289, 74, 354, 271, 355, 355, 355, 355, 355, 355, - 355, 355, 356, 161, 233, 197, 357, 357, 357, 357, - 357, 553, 373, 403, 403, 403, 403, 403, 403, 403, - 403, 267, 197, 100, 255, 357, 357, 357, 357, 357, + 404, 404, 404, 404, 404, 404, 404, 255, 545, 296, + 295, 74, 354, 545, 355, 355, 355, 355, 355, 355, + 355, 355, 356, 161, 293, 292, 357, 357, 357, 357, + 357, 554, 373, 403, 403, 403, 403, 403, 403, 403, + 403, 291, 290, 289, 271, 357, 357, 357, 357, 357, 357, 361, 362, 363, 361, 361, 361, 361, 361, 364, - 257, 255, 256, 365, 365, 365, 365, 365, 412, 354, - 413, 413, 413, 413, 413, 413, 413, 413, 255, 402, - 253, 252, 365, 365, 365, 365, 365, 365, 235, 161, + 233, 197, 267, 365, 365, 365, 365, 365, 412, 354, + 413, 413, 413, 413, 413, 413, 413, 413, 197, 402, + 100, 255, 365, 365, 365, 365, 365, 365, 235, 161, 371, 371, 371, 371, 371, 371, 371, 371, 322, 235, 161, 372, 372, 372, 372, 372, 372, 372, 372, 373, - 251, 250, 249, 374, 374, 374, 374, 374, 412, 354, - 414, 414, 414, 414, 414, 414, 414, 414, 94, 452, - 197, 233, 374, 374, 374, 374, 374, 374, 161, 378, - 379, 380, 378, 378, 378, 378, 378, 235, 161, 197, - 100, 381, 381, 381, 381, 381, 412, 322, 415, 415, - 415, 415, 415, 416, 413, 413, 81, 185, 221, 218, + 257, 255, 256, 374, 374, 374, 374, 374, 412, 354, + 414, 414, 414, 414, 414, 414, 414, 414, 554, 452, + 255, 253, 374, 374, 374, 374, 374, 374, 161, 378, + 379, 380, 378, 378, 378, 378, 378, 235, 161, 252, + 251, 381, 381, 381, 381, 381, 412, 322, 415, 415, + 415, 415, 415, 416, 413, 413, 250, 249, 94, 474, 381, 381, 381, 381, 381, 381, 347, 348, 348, 348, 348, 348, 348, 348, 348, 235, 161, 381, 381, 381, 381, 381, 381, 381, 381, 373, 422, 422, 422, 422, - 422, 422, 422, 422, 217, 216, 74, 347, 348, 348, - 348, 348, 348, 348, 348, 348, 553, 161, 235, 161, - 419, 419, 419, 419, 419, 419, 373, 553, 373, 421, - 421, 421, 421, 421, 421, 421, 421, 74, 354, 215, + 422, 422, 422, 422, 197, 233, 74, 347, 348, 348, + 348, 348, 348, 348, 348, 348, 554, 161, 235, 161, + 419, 419, 419, 419, 419, 419, 373, 554, 373, 421, + 421, 421, 421, 421, 421, 421, 421, 74, 354, 554, 400, 400, 400, 400, 400, 400, 400, 400, 356, 354, - 553, 401, 401, 401, 401, 401, 401, 401, 401, 402, - 452, 214, 212, 403, 403, 403, 403, 403, 443, 161, - 444, 444, 444, 444, 444, 444, 444, 444, 373, 211, - 210, 209, 403, 403, 403, 403, 403, 403, 407, 408, - 409, 407, 407, 407, 407, 407, 410, 208, 207, 100, + 554, 401, 401, 401, 401, 401, 401, 401, 401, 402, + 452, 197, 100, 403, 403, 403, 403, 403, 443, 161, + 444, 444, 444, 444, 444, 444, 444, 444, 373, 81, + 476, 185, 403, 403, 403, 403, 403, 403, 407, 408, + 409, 407, 407, 407, 407, 407, 410, 221, 218, 217, 411, 411, 411, 411, 411, 443, 354, 445, 445, 445, - 445, 445, 445, 445, 445, 92, 452, 153, 81, 411, + 445, 445, 445, 445, 445, 216, 452, 215, 214, 411, 411, 411, 411, 411, 411, 235, 161, 419, 419, 419, 419, 419, 419, 419, 419, 373, 235, 161, 420, 420, - 420, 420, 420, 420, 420, 420, 81, 235, 161, 74, + 420, 420, 420, 420, 420, 420, 212, 235, 161, 211, 421, 421, 421, 421, 421, 434, 443, 373, 446, 446, - 446, 446, 446, 447, 444, 444, 480, 480, 480, 421, - 421, 421, 421, 421, 421, 434, 185, 434, 435, 411, + 446, 446, 446, 447, 444, 444, 481, 481, 481, 421, + 421, 421, 421, 421, 421, 434, 210, 434, 435, 411, 411, 411, 411, 411, 411, 411, 411, 454, 454, 454, - 454, 454, 454, 454, 454, 74, 74, 436, 142, 437, + 454, 454, 454, 454, 454, 74, 74, 436, 209, 437, 437, 437, 437, 437, 437, 437, 437, 455, 455, 455, - 455, 455, 456, 553, 354, 453, 453, 453, 453, 453, - 453, 453, 453, 143, 488, 137, 137, 129, 74, 436, - 183, 438, 438, 438, 438, 438, 438, 438, 438, 462, - 463, 464, 462, 462, 462, 462, 462, 412, 553, 413, - 413, 413, 413, 413, 413, 413, 413, 122, 488, 176, + 455, 455, 456, 554, 354, 453, 453, 453, 453, 453, + 453, 453, 453, 208, 489, 207, 100, 92, 74, 436, + 153, 438, 438, 438, 438, 438, 438, 438, 438, 462, + 463, 464, 462, 462, 462, 462, 462, 412, 554, 413, + 413, 413, 413, 413, 413, 413, 413, 81, 489, 81, 74, 436, 354, 439, 439, 439, 439, 439, 440, 441, - 441, 412, 488, 413, 413, 413, 413, 413, 413, 413, - 413, 412, 175, 413, 413, 413, 413, 413, 413, 434, - 174, 173, 74, 436, 172, 442, 442, 442, 437, 437, - - 437, 437, 437, 491, 491, 491, 491, 491, 492, 434, - 170, 434, 434, 169, 165, 100, 436, 73, 480, 480, - 480, 100, 154, 88, 74, 354, 153, 450, 450, 450, - 450, 450, 450, 450, 450, 402, 354, 81, 451, 451, - 451, 451, 451, 451, 451, 451, 452, 74, 148, 149, - 453, 453, 453, 453, 453, 476, 477, 478, 476, 476, - 476, 476, 476, 522, 522, 522, 522, 522, 523, 453, + 441, 412, 489, 413, 413, 413, 413, 413, 413, 413, + 413, 412, 74, 413, 413, 413, 413, 413, 413, 434, + 185, 142, 74, 436, 143, 442, 442, 442, 437, 437, + + 437, 437, 437, 492, 492, 492, 492, 492, 493, 434, + 137, 434, 434, 137, 129, 183, 436, 122, 481, 481, + 481, 176, 175, 174, 74, 354, 173, 450, 450, 450, + 450, 450, 450, 450, 450, 402, 354, 172, 451, 451, + 451, 451, 451, 451, 451, 451, 452, 74, 170, 169, + 453, 453, 453, 453, 453, 477, 478, 479, 477, 477, + 477, 477, 477, 523, 523, 523, 523, 523, 524, 453, 453, 453, 453, 453, 453, 457, 458, 459, 457, 457, - 457, 457, 457, 460, 74, 76, 75, 461, 461, 461, - 461, 461, 481, 482, 483, 481, 481, 481, 481, 481, + 457, 457, 457, 460, 74, 165, 100, 461, 461, 461, + 461, 461, 482, 483, 484, 482, 482, 482, 482, 482, - 540, 540, 540, 540, 540, 540, 461, 461, 461, 461, + 541, 541, 541, 541, 541, 541, 461, 461, 461, 461, 461, 461, 235, 161, 467, 467, 467, 467, 467, 467, - 467, 467, 436, 74, 441, 441, 441, 441, 441, 441, - 441, 441, 443, 143, 444, 444, 444, 444, 444, 444, - 444, 444, 443, 137, 444, 444, 444, 444, 444, 444, - 444, 444, 129, 74, 436, 122, 441, 441, 441, 441, - 441, 441, 441, 441, 443, 121, 444, 444, 444, 444, + 467, 467, 436, 73, 441, 441, 441, 441, 441, 441, + 441, 441, 443, 100, 444, 444, 444, 444, 444, 444, + 444, 444, 443, 154, 444, 444, 444, 444, 444, 444, + 444, 444, 88, 74, 436, 153, 441, 441, 441, 441, + 441, 441, 441, 441, 443, 81, 444, 444, 444, 444, 444, 444, 461, 461, 461, 461, 461, 461, 461, 461, - 120, 119, 118, 117, 106, 74, 436, 105, 441, 441, - 441, 441, 441, 441, 479, 479, 490, 490, 490, 490, - - 490, 490, 490, 490, 553, 104, 489, 489, 489, 489, - 489, 489, 489, 489, 103, 100, 88, 74, 436, 76, - 479, 479, 479, 479, 479, 479, 479, 479, 161, 497, - 497, 497, 497, 497, 497, 497, 497, 161, 498, 498, - 498, 498, 498, 498, 498, 498, 75, 74, 553, 74, - 354, 553, 486, 486, 486, 486, 486, 486, 486, 486, - 452, 354, 553, 487, 487, 487, 487, 487, 487, 487, - 487, 488, 553, 553, 553, 489, 489, 489, 489, 489, - 161, 499, 499, 499, 499, 499, 500, 497, 497, 553, - 553, 553, 553, 553, 489, 489, 489, 489, 489, 489, - - 493, 494, 495, 493, 493, 493, 493, 493, 553, 553, - 553, 553, 496, 496, 496, 496, 496, 472, 553, 472, - 553, 472, 553, 472, 472, 553, 553, 472, 553, 553, - 553, 496, 496, 496, 496, 496, 496, 553, 553, 472, - 472, 472, 474, 553, 474, 553, 474, 553, 474, 474, - 553, 553, 474, 479, 479, 479, 479, 479, 479, 479, - 479, 553, 553, 553, 474, 474, 474, 506, 553, 507, - 507, 507, 507, 507, 507, 507, 507, 553, 553, 553, - 553, 511, 74, 512, 512, 512, 512, 512, 512, 512, - 512, 161, 497, 497, 497, 497, 497, 497, 74, 506, - - 553, 508, 508, 508, 508, 508, 508, 508, 508, 511, - 553, 513, 513, 513, 513, 513, 513, 513, 513, 511, - 553, 514, 514, 514, 514, 514, 515, 512, 512, 553, - 74, 506, 553, 509, 509, 509, 509, 509, 510, 507, - 507, 496, 496, 496, 496, 496, 496, 496, 496, 521, - 521, 521, 521, 521, 521, 521, 521, 553, 553, 553, - 553, 553, 74, 354, 553, 518, 518, 518, 518, 518, - 518, 518, 518, 488, 354, 553, 519, 519, 519, 519, - 519, 519, 519, 519, 553, 553, 553, 553, 520, 520, - 520, 520, 520, 553, 553, 520, 520, 520, 520, 520, - - 520, 520, 520, 553, 553, 553, 553, 520, 520, 520, - 520, 520, 520, 161, 497, 497, 497, 497, 497, 497, - 497, 497, 161, 497, 497, 497, 497, 497, 497, 497, - 497, 525, 526, 527, 525, 525, 525, 525, 525, 553, - 506, 553, 507, 507, 507, 507, 507, 507, 528, 529, - 530, 528, 528, 528, 528, 528, 553, 553, 553, 553, - 74, 506, 553, 507, 507, 507, 507, 507, 507, 507, - 507, 74, 511, 553, 512, 512, 512, 512, 512, 512, - 512, 512, 511, 553, 512, 512, 512, 512, 512, 512, - 512, 512, 74, 506, 553, 507, 507, 507, 507, 507, - - 507, 507, 507, 511, 553, 512, 512, 512, 512, 512, - 512, 354, 553, 533, 533, 533, 533, 533, 533, 533, - 533, 553, 553, 553, 74, 535, 553, 536, 536, 536, - 536, 536, 536, 536, 536, 540, 540, 540, 540, 540, - 540, 540, 540, 541, 541, 541, 541, 541, 541, 541, - 541, 553, 553, 553, 553, 553, 74, 535, 553, 537, - 537, 537, 537, 537, 537, 537, 537, 542, 542, 542, - 542, 542, 543, 540, 540, 547, 548, 549, 547, 547, - 547, 547, 547, 553, 553, 553, 553, 553, 74, 535, - 553, 538, 538, 538, 538, 538, 539, 536, 536, 553, - - 553, 553, 553, 535, 74, 536, 536, 536, 536, 536, - 536, 540, 540, 540, 540, 540, 540, 540, 540, 553, - 74, 535, 553, 536, 536, 536, 536, 536, 536, 536, - 536, 553, 553, 553, 74, 540, 540, 540, 540, 540, - 540, 540, 540, 550, 550, 550, 550, 550, 550, 550, - 550, 553, 74, 535, 553, 536, 536, 536, 536, 536, - 536, 536, 536, 547, 547, 547, 547, 547, 547, 547, - 547, 553, 74, 551, 551, 551, 551, 551, 552, 550, - 550, 553, 553, 553, 74, 550, 550, 550, 550, 550, - 550, 553, 74, 550, 550, 550, 550, 550, 550, 550, - - 550, 553, 74, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 74, 553, 553, 553, 553, 553, - 553, 553, 74, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 61, + 148, 149, 76, 75, 74, 74, 436, 143, 441, 441, + 441, 441, 441, 441, 480, 480, 491, 491, 491, 491, + + 491, 491, 491, 491, 554, 137, 490, 490, 490, 490, + 490, 490, 490, 490, 129, 122, 121, 74, 436, 120, + 480, 480, 480, 480, 480, 480, 480, 480, 161, 498, + 498, 498, 498, 498, 498, 498, 498, 161, 499, 499, + 499, 499, 499, 499, 499, 499, 119, 118, 117, 74, + 354, 106, 487, 487, 487, 487, 487, 487, 487, 487, + 452, 354, 105, 488, 488, 488, 488, 488, 488, 488, + 488, 489, 104, 103, 100, 490, 490, 490, 490, 490, + 161, 500, 500, 500, 500, 500, 501, 498, 498, 88, + 76, 75, 74, 554, 490, 490, 490, 490, 490, 490, + + 494, 495, 496, 494, 494, 494, 494, 494, 554, 554, + 554, 554, 497, 497, 497, 497, 497, 472, 554, 554, + 554, 472, 554, 472, 472, 554, 554, 472, 554, 554, + 554, 497, 497, 497, 497, 497, 497, 554, 475, 472, + 472, 472, 475, 554, 475, 475, 554, 554, 475, 480, + 480, 480, 480, 480, 480, 480, 480, 554, 554, 554, + 475, 475, 475, 507, 554, 508, 508, 508, 508, 508, + 508, 508, 508, 554, 554, 554, 554, 512, 74, 513, + 513, 513, 513, 513, 513, 513, 513, 161, 498, 498, + 498, 498, 498, 498, 74, 507, 554, 509, 509, 509, + + 509, 509, 509, 509, 509, 512, 554, 514, 514, 514, + 514, 514, 514, 514, 514, 512, 554, 515, 515, 515, + 515, 515, 516, 513, 513, 554, 74, 507, 554, 510, + 510, 510, 510, 510, 511, 508, 508, 497, 497, 497, + 497, 497, 497, 497, 497, 522, 522, 522, 522, 522, + 522, 522, 522, 554, 554, 554, 554, 554, 74, 354, + 554, 519, 519, 519, 519, 519, 519, 519, 519, 489, + 354, 554, 520, 520, 520, 520, 520, 520, 520, 520, + 554, 554, 554, 554, 521, 521, 521, 521, 521, 554, + 554, 521, 521, 521, 521, 521, 521, 521, 521, 554, + + 554, 554, 554, 521, 521, 521, 521, 521, 521, 161, + 498, 498, 498, 498, 498, 498, 498, 498, 161, 498, + 498, 498, 498, 498, 498, 498, 498, 526, 527, 528, + 526, 526, 526, 526, 526, 554, 507, 554, 508, 508, + 508, 508, 508, 508, 529, 530, 531, 529, 529, 529, + 529, 529, 554, 554, 554, 554, 74, 507, 554, 508, + 508, 508, 508, 508, 508, 508, 508, 74, 512, 554, + 513, 513, 513, 513, 513, 513, 513, 513, 512, 554, + 513, 513, 513, 513, 513, 513, 513, 513, 74, 507, + 554, 508, 508, 508, 508, 508, 508, 508, 508, 512, + + 554, 513, 513, 513, 513, 513, 513, 354, 554, 534, + 534, 534, 534, 534, 534, 534, 534, 554, 554, 554, + 74, 536, 554, 537, 537, 537, 537, 537, 537, 537, + 537, 541, 541, 541, 541, 541, 541, 541, 541, 542, + 542, 542, 542, 542, 542, 542, 542, 554, 554, 554, + 554, 554, 74, 536, 554, 538, 538, 538, 538, 538, + 538, 538, 538, 543, 543, 543, 543, 543, 544, 541, + 541, 548, 549, 550, 548, 548, 548, 548, 548, 554, + 554, 554, 554, 554, 74, 536, 554, 539, 539, 539, + 539, 539, 540, 537, 537, 554, 554, 554, 554, 536, + + 74, 537, 537, 537, 537, 537, 537, 541, 541, 541, + 541, 541, 541, 541, 541, 554, 74, 536, 554, 537, + 537, 537, 537, 537, 537, 537, 537, 554, 554, 554, + 74, 541, 541, 541, 541, 541, 541, 541, 541, 551, + 551, 551, 551, 551, 551, 551, 551, 554, 74, 536, + 554, 537, 537, 537, 537, 537, 537, 537, 537, 548, + 548, 548, 548, 548, 548, 548, 548, 554, 74, 552, + 552, 552, 552, 552, 553, 551, 551, 554, 554, 554, + 74, 551, 551, 551, 551, 551, 551, 554, 74, 551, + 551, 551, 551, 551, 551, 551, 551, 554, 74, 554, + + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 74, 554, 554, 554, 554, 554, 554, 554, 74, 52, + 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, + 52, 52, 52, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 73, 553, 553, 553, 73, - 553, 73, 73, 73, 553, 73, 73, 73, 77, 77, - 553, 77, 77, 77, 77, 77, 77, 77, 77, 77, - - 77, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 84, 553, 553, 553, 84, 553, - 84, 84, 84, 84, 84, 84, 84, 87, 553, 553, - 553, 87, 553, 87, 87, 87, 553, 87, 87, 87, - 89, 553, 553, 89, 89, 553, 89, 89, 89, 553, - 89, 89, 89, 99, 99, 553, 553, 99, 124, 553, - 553, 124, 124, 553, 124, 124, 124, 553, 124, 124, - 124, 128, 553, 553, 128, 128, 128, 128, 128, 128, - 553, 553, 128, 128, 135, 135, 136, 553, 553, 136, - 553, 553, 136, 136, 136, 136, 136, 136, 136, 140, - + 61, 68, 68, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 68, 68, 68, 73, 554, 554, 554, 73, + 554, 73, 73, 73, 554, 554, 73, 73, 73, 77, + 77, 554, 77, 77, 77, 77, 77, 77, 77, 77, + + 77, 77, 77, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 84, 554, 554, + 554, 84, 554, 84, 84, 84, 84, 554, 84, 84, + 84, 87, 554, 554, 554, 87, 554, 87, 87, 87, + 554, 554, 87, 87, 87, 89, 554, 554, 89, 89, + 89, 89, 89, 89, 554, 554, 89, 89, 89, 99, + 99, 554, 554, 554, 99, 124, 554, 554, 124, 124, + 124, 124, 124, 124, 554, 554, 124, 124, 124, 128, + 554, 554, 128, 128, 128, 128, 128, 128, 554, 128, + 554, 128, 128, 136, 554, 554, 136, 554, 136, 136, + + 136, 136, 136, 554, 136, 136, 136, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 142, 142, 553, 142, 553, 142, 142, 142, - 142, 142, 142, 142, 142, 78, 78, 553, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 150, 150, + 140, 142, 142, 554, 142, 554, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 78, 78, 554, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 150, 151, 151, 553, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 152, 553, 553, 553, 152, 553, - 152, 152, 152, 553, 152, 152, 152, 90, 553, 553, - 90, 90, 553, 90, 90, 90, 553, 90, 90, 90, - 160, 160, 553, 553, 160, 162, 162, 162, 553, 553, - - 162, 125, 553, 553, 125, 125, 553, 125, 125, 125, - 553, 125, 125, 125, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 186, 186, 186, 186, 193, 193, 553, - 553, 193, 199, 199, 199, 553, 553, 199, 227, 227, - 553, 553, 227, 228, 228, 553, 553, 228, 232, 232, - 553, 553, 232, 234, 234, 234, 553, 553, 234, 267, - 267, 553, 553, 267, 269, 269, 553, 553, 269, 270, - 270, 553, 553, 270, 272, 272, 272, 553, 553, 272, - 276, 276, 276, 276, 553, 553, 276, 304, 304, 553, - 553, 304, 305, 305, 553, 553, 305, 306, 306, 553, - - 553, 306, 318, 318, 318, 553, 553, 318, 319, 319, - 319, 319, 553, 553, 319, 352, 352, 553, 553, 352, - 353, 353, 553, 553, 353, 369, 369, 369, 553, 553, - 369, 370, 370, 370, 370, 553, 553, 370, 395, 395, - 553, 553, 395, 399, 553, 399, 399, 553, 553, 399, - 417, 417, 417, 553, 553, 417, 418, 418, 418, 418, - 553, 553, 418, 448, 448, 553, 553, 448, 449, 553, - 449, 449, 553, 553, 449, 465, 465, 465, 553, 553, - 465, 466, 466, 466, 553, 553, 553, 466, 472, 553, - 553, 553, 472, 553, 472, 472, 472, 553, 472, 472, - - 472, 474, 553, 553, 553, 474, 553, 474, 474, 474, - 553, 474, 474, 474, 484, 484, 553, 553, 484, 485, - 553, 485, 485, 553, 553, 485, 501, 501, 553, 553, - 553, 501, 503, 503, 503, 503, 503, 503, 503, 503, - 503, 503, 503, 503, 503, 516, 516, 553, 553, 516, - 517, 553, 517, 517, 553, 553, 517, 531, 531, 553, - 553, 531, 532, 553, 532, 553, 553, 553, 532, 544, - 553, 553, 553, 544, 545, 545, 545, 545, 545, 545, - 545, 545, 545, 545, 545, 545, 545, 13, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553 + 150, 150, 150, 151, 151, 554, 151, 151, 151, 151, + 151, 151, 151, 151, 151, 151, 151, 152, 554, 554, + 554, 152, 554, 152, 152, 152, 554, 554, 152, 152, + 152, 90, 554, 554, 90, 90, 90, 90, 90, 90, + + 554, 554, 90, 90, 90, 160, 160, 554, 554, 554, + 160, 162, 162, 162, 554, 554, 554, 162, 125, 554, + 554, 125, 125, 125, 125, 125, 125, 554, 554, 125, + 125, 125, 186, 186, 186, 186, 186, 186, 186, 186, + 186, 186, 186, 186, 186, 186, 193, 193, 554, 554, + 554, 193, 199, 199, 199, 554, 554, 554, 199, 227, + 227, 554, 554, 554, 227, 228, 228, 554, 554, 554, + 228, 232, 232, 554, 554, 554, 232, 234, 234, 234, + 554, 554, 554, 234, 267, 267, 554, 554, 554, 267, + 269, 269, 554, 554, 554, 269, 270, 270, 554, 554, + + 554, 270, 272, 272, 272, 554, 554, 554, 272, 276, + 276, 276, 276, 554, 554, 554, 276, 304, 304, 554, + 554, 554, 304, 305, 305, 554, 554, 554, 305, 306, + 306, 554, 554, 554, 306, 318, 318, 318, 554, 554, + 554, 318, 319, 319, 319, 319, 554, 554, 554, 319, + 352, 352, 554, 554, 554, 352, 353, 353, 554, 554, + 554, 353, 369, 369, 369, 554, 554, 554, 369, 370, + 370, 370, 370, 554, 554, 554, 370, 395, 395, 554, + 554, 554, 395, 399, 554, 399, 399, 554, 554, 554, + 399, 417, 417, 417, 554, 554, 554, 417, 418, 418, + + 418, 418, 554, 554, 554, 418, 448, 448, 554, 554, + 554, 448, 449, 554, 449, 449, 554, 554, 554, 449, + 465, 465, 465, 554, 554, 554, 465, 466, 466, 466, + 554, 554, 554, 554, 466, 472, 554, 554, 472, 472, + 554, 472, 472, 472, 554, 554, 472, 472, 472, 475, + 554, 554, 475, 475, 554, 475, 475, 475, 554, 554, + 475, 475, 475, 485, 485, 554, 554, 554, 485, 486, + 554, 486, 486, 554, 554, 554, 486, 502, 502, 554, + 554, 554, 554, 502, 504, 504, 504, 504, 504, 504, + 504, 504, 504, 504, 504, 504, 504, 504, 517, 517, + + 554, 554, 554, 517, 518, 554, 518, 518, 554, 554, + 554, 518, 532, 532, 554, 554, 554, 532, 533, 554, + 533, 554, 554, 554, 554, 533, 546, 546, 546, 546, + 546, 546, 546, 546, 546, 546, 546, 546, 546, 546, + 13, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + + 554, 554, 554 } ; -static yyconst short int yy_chk[3551] = +static yyconst short int yy_chk[3604] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -944,7 +951,7 @@ static yyconst short int yy_chk[3551] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 3, 4, 116, 2, 3, 4, 550, + 1, 1, 2, 3, 4, 116, 2, 3, 4, 551, 5, 5, 5, 119, 5, 20, 3, 4, 59, 59, 5, 11, 11, 11, 11, 6, 6, 6, 119, 6, 2, 2, 5, 5, 2, 6, 20, 84, 2, 40, @@ -975,8 +982,8 @@ static yyconst short int yy_chk[3551] = 181, 74, 181, 74, 74, 144, 182, 74, 10, 177, 89, 96, 96, 96, 96, 96, 96, 96, 96, 74, 74, 74, 98, 98, 98, 98, 98, 98, 10, 18, - 184, 18, 18, 18, 145, 18, 18, 545, 86, 18, - 86, 180, 86, 184, 86, 86, 110, 199, 86, 534, + 184, 18, 18, 18, 145, 18, 18, 546, 86, 18, + 86, 180, 86, 184, 86, 86, 110, 199, 86, 535, 192, 18, 18, 18, 124, 177, 199, 180, 124, 124, 259, 86, 86, 97, 97, 97, 97, 97, 97, 97, 97, 192, 18, 19, 110, 110, 124, 259, 110, 258, @@ -988,7 +995,7 @@ static yyconst short int yy_chk[3551] = 92, 92, 92, 107, 260, 26, 263, 26, 26, 26, 26, 26, 26, 32, 220, 220, 188, 32, 258, 32, 360, 360, 32, 32, 92, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 263, 533, 32, + 32, 32, 32, 32, 32, 32, 32, 263, 534, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, @@ -996,21 +1003,21 @@ static yyconst short int yy_chk[3551] = 32, 32, 32, 32, 32, 34, 34, 34, 34, 34, 34, 34, 34, 34, 196, 196, 196, 34, 34, 34, 34, 34, 123, 123, 123, 123, 123, 123, 123, 123, - 254, 299, 531, 141, 141, 254, 34, 34, 34, 34, + 254, 299, 532, 141, 141, 254, 34, 34, 34, 34, 34, 34, 38, 38, 38, 219, 38, 299, 38, 38, 223, 88, 38, 88, 234, 88, 223, 88, 88, 236, - 236, 88, 520, 234, 38, 38, 38, 42, 137, 236, - 519, 137, 137, 88, 88, 88, 141, 42, 137, 221, - 42, 42, 42, 42, 42, 42, 42, 42, 91, 517, - 91, 137, 91, 343, 91, 91, 516, 219, 91, 126, + 236, 88, 521, 234, 38, 38, 38, 42, 137, 236, + 520, 137, 137, 88, 88, 88, 141, 42, 137, 221, + 42, 42, 42, 42, 42, 42, 42, 42, 91, 518, + 91, 137, 91, 343, 91, 91, 517, 219, 91, 126, - 221, 126, 247, 126, 154, 126, 126, 512, 154, 126, + 221, 126, 247, 126, 154, 126, 126, 434, 154, 126, 91, 91, 91, 345, 154, 238, 238, 221, 42, 58, 298, 126, 126, 126, 247, 238, 154, 154, 345, 58, - 298, 503, 58, 58, 58, 58, 58, 58, 58, 58, - 77, 343, 77, 77, 77, 289, 77, 77, 501, 292, + 298, 513, 58, 58, 58, 58, 58, 58, 58, 58, + 77, 343, 77, 77, 77, 289, 77, 77, 434, 292, 77, 133, 133, 133, 133, 133, 133, 133, 133, 272, - 261, 497, 77, 77, 77, 261, 276, 289, 272, 294, + 261, 504, 77, 77, 77, 261, 276, 289, 272, 294, 153, 292, 153, 293, 153, 276, 153, 153, 294, 388, 153, 388, 297, 77, 93, 93, 93, 93, 93, 93, 93, 93, 153, 153, 153, 293, 93, 93, 93, 93, @@ -1018,12 +1025,12 @@ static yyconst short int yy_chk[3551] = 93, 187, 187, 187, 187, 187, 187, 187, 187, 203, 203, 203, 203, 203, 203, 93, 93, 93, 93, 93, 93, 101, 101, 101, 101, 101, 101, 101, 101, 297, - 187, 387, 387, 101, 101, 101, 101, 101, 191, 485, + 187, 387, 387, 101, 101, 101, 101, 101, 191, 435, 191, 191, 191, 191, 191, 191, 244, 244, 244, 244, 244, 244, 101, 101, 101, 101, 101, 101, 155, 300, 155, 155, 155, 155, 155, 155, 155, 155, 300, 191, 200, 200, 200, 200, 200, 200, 200, 200, 183, 387, - 484, 355, 183, 406, 406, 420, 420, 474, 183, 155, + 435, 355, 183, 406, 406, 420, 420, 502, 183, 155, 156, 355, 156, 156, 156, 156, 156, 156, 156, 156, 183, 183, 195, 195, 195, 195, 195, 195, 195, 195, @@ -1031,7 +1038,7 @@ static yyconst short int yy_chk[3551] = 421, 156, 157, 357, 157, 157, 157, 157, 157, 157, 157, 157, 205, 357, 205, 205, 205, 205, 205, 205, 205, 205, 229, 229, 229, 229, 229, 229, 229, 229, - 229, 340, 472, 157, 158, 318, 158, 158, 158, 158, + 229, 340, 498, 157, 158, 318, 158, 158, 158, 158, 158, 158, 158, 158, 318, 424, 424, 340, 158, 158, 158, 158, 158, 235, 235, 235, 235, 235, 235, 235, 235, 286, 286, 286, 286, 286, 286, 158, 158, 158, @@ -1041,293 +1048,300 @@ static yyconst short int yy_chk[3551] = 237, 237, 237, 237, 237, 237, 237, 237, 310, 310, 310, 310, 310, 310, 161, 161, 161, 161, 161, 161, 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 467, 467, 471, 163, 163, 163, 163, 163, 241, 241, - 241, 241, 241, 241, 241, 241, 332, 336, 241, 469, + 467, 467, 486, 163, 163, 163, 163, 163, 241, 241, + 241, 241, 241, 241, 241, 241, 332, 336, 241, 485, 470, 346, 163, 163, 163, 163, 163, 163, 164, 164, 164, 164, 164, 164, 164, 164, 338, 346, 332, 336, 164, 164, 164, 164, 164, 243, 243, 243, 243, 243, - 243, 243, 243, 468, 382, 466, 277, 277, 338, 164, + 243, 243, 243, 472, 382, 471, 277, 277, 338, 164, 164, 164, 164, 164, 164, 189, 277, 189, 189, 189, 189, 189, 189, 189, 189, 246, 382, 246, 246, 246, 246, 246, 246, 246, 246, 262, 262, 262, 262, 262, - 262, 262, 262, 492, 492, 433, 189, 190, 319, 190, + 262, 262, 262, 469, 472, 433, 189, 190, 319, 190, 190, 190, 190, 190, 190, 190, 190, 319, 278, 278, - 433, 437, 505, 505, 262, 280, 280, 266, 278, 266, - 266, 266, 266, 266, 266, 280, 523, 523, 190, 201, + 433, 437, 493, 493, 262, 280, 280, 266, 278, 266, + 266, 266, 266, 266, 266, 280, 506, 506, 190, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 320, 320, 437, 201, 201, 201, 201, 201, 266, 273, - 320, 273, 273, 273, 273, 273, 273, 273, 273, 449, + 320, 273, 273, 273, 273, 273, 273, 273, 273, 524, - 448, 444, 201, 201, 201, 201, 201, 201, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 344, 435, - 434, 204, 204, 204, 204, 204, 274, 344, 274, 274, - 274, 274, 274, 274, 274, 274, 429, 321, 321, 413, + 524, 468, 201, 201, 201, 201, 201, 201, 204, 204, + 204, 204, 204, 204, 204, 204, 204, 204, 344, 568, + 568, 204, 204, 204, 204, 204, 274, 344, 274, 274, + 274, 274, 274, 274, 274, 274, 466, 321, 321, 449, 204, 204, 204, 204, 204, 204, 224, 321, 224, 224, 224, 224, 224, 224, 224, 224, 275, 383, 275, 275, 275, 275, 275, 275, 275, 275, 279, 279, 279, 279, - 279, 279, 279, 279, 425, 399, 395, 224, 225, 383, + 279, 279, 279, 279, 425, 448, 444, 224, 225, 383, 225, 225, 225, 225, 225, 225, 225, 225, 283, 283, 283, 283, 283, 283, 283, 283, 425, 400, 283, 285, - 285, 285, 285, 285, 285, 285, 285, 400, 507, 225, + 285, 285, 285, 285, 285, 285, 285, 400, 508, 225, 226, 401, 226, 226, 226, 226, 226, 226, 226, 226, 288, 401, 288, 288, 288, 288, 288, 288, 288, 288, - 307, 307, 307, 307, 307, 307, 307, 307, 390, 507, - 386, 226, 239, 239, 239, 239, 239, 239, 239, 239, + 307, 307, 307, 307, 307, 307, 307, 307, 429, 508, + 413, 226, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 385, 384, 353, 242, 242, 242, + 242, 242, 242, 242, 399, 395, 390, 242, 242, 242, 242, 242, 309, 309, 309, 309, 309, 309, 309, 309, 329, 329, 329, 329, 329, 329, 242, 242, 242, 242, 242, 242, 245, 245, 245, 245, 245, 245, 245, 245, - 245, 245, 369, 352, 342, 245, 245, 245, 245, 245, + 245, 245, 369, 386, 385, 245, 245, 245, 245, 245, 312, 369, 312, 312, 312, 312, 312, 312, 312, 312, - 341, 323, 323, 335, 245, 245, 245, 245, 245, 245, + 384, 323, 323, 353, 245, 245, 245, 245, 245, 245, 264, 323, 264, 264, 264, 264, 264, 264, 264, 264, 313, 313, 313, 313, 313, 313, 313, 313, 315, 370, - 315, 315, 315, 315, 315, 315, 315, 315, 370, 334, - 314, 264, 265, 403, 265, 265, 265, 265, 265, 265, + 315, 315, 315, 315, 315, 315, 315, 315, 370, 352, + 342, 264, 265, 403, 265, 265, 265, 265, 265, 265, 265, 265, 316, 403, 316, 316, 316, 316, 316, 316, 316, 316, 317, 417, 317, 317, 317, 317, 317, 317, 431, 431, 417, 265, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 431, 306, 305, 271, 271, 271, 271, + 271, 271, 271, 431, 341, 335, 271, 271, 271, 271, 271, 322, 322, 322, 322, 322, 322, 322, 322, 363, 363, 363, 363, 363, 363, 271, 271, 271, 271, 271, 271, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 304, 296, 295, 284, 284, 284, 284, + 284, 284, 284, 334, 314, 306, 284, 284, 284, 284, 284, 326, 326, 326, 326, 326, 326, 326, 326, 427, - 291, 326, 290, 270, 269, 284, 284, 284, 284, 284, + 305, 326, 304, 296, 295, 284, 284, 284, 284, 284, 284, 287, 287, 287, 287, 287, 287, 287, 287, 287, - 287, 427, 268, 267, 287, 287, 287, 287, 287, 328, + 287, 427, 291, 290, 287, 287, 287, 287, 287, 328, 328, 328, 328, 328, 328, 328, 328, 380, 380, 380, 380, 380, 380, 287, 287, 287, 287, 287, 287, 301, - 301, 301, 301, 301, 301, 301, 301, 301, 331, 257, + 301, 301, 301, 301, 301, 301, 301, 301, 331, 270, 331, 331, 331, 331, 331, 331, 331, 331, 347, 347, - 347, 347, 347, 347, 347, 347, 524, 524, 536, 301, - 302, 302, 302, 302, 302, 302, 302, 302, 302, 524, + 347, 347, 347, 347, 347, 347, 525, 525, 537, 301, + 302, 302, 302, 302, 302, 302, 302, 302, 302, 525, 351, 351, 351, 351, 351, 351, 351, 347, 354, 354, - 354, 354, 354, 354, 354, 354, 256, 255, 253, 536, + 354, 354, 354, 354, 354, 354, 269, 268, 267, 537, 302, 303, 303, 303, 303, 303, 303, 303, 303, 303, 351, 356, 356, 356, 356, 356, 356, 356, 356, 362, - 362, 362, 362, 362, 362, 362, 362, 252, 251, 250, - 249, 303, 308, 233, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 418, 232, 231, 308, 308, 308, 308, + 362, 362, 362, 362, 362, 362, 362, 257, 619, 256, + 255, 303, 308, 619, 308, 308, 308, 308, 308, 308, + 308, 308, 308, 418, 253, 252, 308, 308, 308, 308, 308, 365, 418, 365, 365, 365, 365, 365, 365, 365, - 365, 230, 228, 227, 218, 308, 308, 308, 308, 308, + 365, 251, 250, 249, 233, 308, 308, 308, 308, 308, 308, 311, 311, 311, 311, 311, 311, 311, 311, 311, - 217, 216, 215, 311, 311, 311, 311, 311, 366, 450, - 366, 366, 366, 366, 366, 366, 366, 366, 214, 450, - 212, 211, 311, 311, 311, 311, 311, 311, 324, 324, + 232, 231, 230, 311, 311, 311, 311, 311, 366, 450, + 366, 366, 366, 366, 366, 366, 366, 366, 228, 450, + 227, 218, 311, 311, 311, 311, 311, 311, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 210, 209, 208, 327, 327, 327, 327, 327, 367, 451, - 367, 367, 367, 367, 367, 367, 367, 367, 206, 451, - 198, 197, 327, 327, 327, 327, 327, 327, 330, 330, - 330, 330, 330, 330, 330, 330, 330, 371, 371, 194, - 193, 330, 330, 330, 330, 330, 368, 371, 368, 368, - 368, 368, 368, 368, 368, 368, 186, 185, 179, 176, + 217, 216, 215, 327, 327, 327, 327, 327, 367, 451, + 367, 367, 367, 367, 367, 367, 367, 367, 473, 451, + 214, 212, 327, 327, 327, 327, 327, 327, 330, 330, + 330, 330, 330, 330, 330, 330, 330, 371, 371, 211, + 210, 330, 330, 330, 330, 330, 368, 371, 368, 368, + 368, 368, 368, 368, 368, 368, 209, 208, 206, 473, 330, 330, 330, 330, 330, 330, 349, 349, 349, 349, 349, 349, 349, 349, 349, 372, 372, 373, 373, 373, 373, 373, 373, 373, 373, 372, 379, 379, 379, 379, - 379, 379, 379, 379, 175, 174, 349, 350, 350, 350, + 379, 379, 379, 379, 198, 197, 349, 350, 350, 350, 350, 350, 350, 350, 350, 350, 374, 374, 377, 377, 377, 377, 377, 377, 377, 377, 374, 381, 377, 381, - 381, 381, 381, 381, 381, 381, 381, 350, 358, 173, + 381, 381, 381, 381, 381, 381, 381, 350, 358, 475, 358, 358, 358, 358, 358, 358, 358, 358, 358, 361, 453, 361, 361, 361, 361, 361, 361, 361, 361, 361, - 453, 172, 170, 361, 361, 361, 361, 361, 396, 465, - 396, 396, 396, 396, 396, 396, 396, 396, 465, 169, - 168, 167, 361, 361, 361, 361, 361, 361, 364, 364, - 364, 364, 364, 364, 364, 364, 364, 166, 165, 160, + 453, 194, 193, 361, 361, 361, 361, 361, 396, 465, + 396, 396, 396, 396, 396, 396, 396, 396, 465, 186, + 475, 185, 361, 361, 361, 361, 361, 361, 364, 364, + 364, 364, 364, 364, 364, 364, 364, 179, 176, 175, - 364, 364, 364, 364, 364, 397, 486, 397, 397, 397, - 397, 397, 397, 397, 397, 159, 486, 152, 151, 364, + 364, 364, 364, 364, 364, 397, 487, 397, 397, 397, + 397, 397, 397, 397, 397, 174, 487, 173, 172, 364, 364, 364, 364, 364, 364, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 378, 378, 378, 378, - 378, 378, 378, 378, 378, 378, 150, 419, 419, 148, + 378, 378, 378, 378, 378, 378, 170, 419, 419, 169, 378, 378, 378, 378, 378, 389, 398, 419, 398, 398, - 398, 398, 398, 398, 398, 398, 480, 480, 480, 378, - 378, 378, 378, 378, 378, 389, 147, 389, 389, 402, + 398, 398, 398, 398, 398, 398, 481, 481, 481, 378, + 378, 378, 378, 378, 378, 389, 168, 389, 389, 402, 402, 402, 402, 402, 402, 402, 402, 408, 408, 408, - 408, 408, 408, 408, 408, 480, 389, 391, 143, 391, + 408, 408, 408, 408, 408, 481, 389, 391, 167, 391, 391, 391, 391, 391, 391, 391, 391, 409, 409, 409, - 409, 409, 409, 411, 487, 411, 411, 411, 411, 411, - 411, 411, 411, 142, 487, 140, 136, 129, 391, 392, - 125, 392, 392, 392, 392, 392, 392, 392, 392, 412, - 412, 412, 412, 412, 412, 412, 412, 414, 489, 414, - 414, 414, 414, 414, 414, 414, 414, 122, 489, 115, - 392, 393, 518, 393, 393, 393, 393, 393, 393, 393, - 393, 415, 518, 415, 415, 415, 415, 415, 415, 415, - 415, 416, 114, 416, 416, 416, 416, 416, 416, 430, - 113, 112, 393, 394, 111, 394, 394, 394, 394, 394, + 409, 409, 409, 411, 488, 411, 411, 411, 411, 411, + 411, 411, 411, 166, 488, 165, 160, 159, 391, 392, + 152, 392, 392, 392, 392, 392, 392, 392, 392, 412, + 412, 412, 412, 412, 412, 412, 412, 414, 490, 414, + 414, 414, 414, 414, 414, 414, 414, 151, 490, 150, + 392, 393, 519, 393, 393, 393, 393, 393, 393, 393, + 393, 415, 519, 415, 415, 415, 415, 415, 415, 415, + 415, 416, 148, 416, 416, 416, 416, 416, 416, 430, + 147, 143, 393, 394, 142, 394, 394, 394, 394, 394, 394, 394, 394, 459, 459, 459, 459, 459, 459, 430, - 106, 430, 430, 105, 103, 99, 442, 95, 442, 442, - 442, 94, 90, 87, 394, 404, 85, 404, 404, 404, - 404, 404, 404, 404, 404, 404, 407, 80, 407, 407, - 407, 407, 407, 407, 407, 407, 407, 442, 79, 78, + 140, 430, 430, 136, 129, 125, 442, 122, 442, 442, + 442, 115, 114, 113, 394, 404, 112, 404, 404, 404, + 404, 404, 404, 404, 404, 404, 407, 111, 407, 407, + 407, 407, 407, 407, 407, 407, 407, 442, 106, 105, 407, 407, 407, 407, 407, 436, 436, 436, 436, 436, - 436, 436, 436, 495, 495, 495, 495, 495, 495, 407, + 436, 436, 436, 496, 496, 496, 496, 496, 496, 407, 407, 407, 407, 407, 407, 410, 410, 410, 410, 410, - 410, 410, 410, 410, 436, 76, 75, 410, 410, 410, + 410, 410, 410, 410, 436, 103, 99, 410, 410, 410, 410, 410, 443, 443, 443, 443, 443, 443, 443, 443, - 543, 543, 543, 543, 543, 543, 410, 410, 410, 410, + 544, 544, 544, 544, 544, 544, 410, 410, 410, 410, 410, 410, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 438, 73, 438, 438, 438, 438, 438, 438, - 438, 438, 445, 68, 445, 445, 445, 445, 445, 445, - 445, 445, 446, 61, 446, 446, 446, 446, 446, 446, - 446, 446, 54, 438, 439, 48, 439, 439, 439, 439, - 439, 439, 439, 439, 447, 47, 447, 447, 447, 447, + 422, 422, 438, 95, 438, 438, 438, 438, 438, 438, + 438, 438, 445, 94, 445, 445, 445, 445, 445, 445, + 445, 445, 446, 90, 446, 446, 446, 446, 446, 446, + 446, 446, 87, 438, 439, 85, 439, 439, 439, 439, + 439, 439, 439, 439, 447, 80, 447, 447, 447, 447, 447, 447, 452, 452, 452, 452, 452, 452, 452, 452, - 46, 45, 44, 43, 37, 439, 440, 36, 440, 440, + 79, 78, 76, 75, 73, 439, 440, 68, 440, 440, 440, 440, 440, 440, 440, 440, 458, 458, 458, 458, - 458, 458, 458, 458, 461, 35, 461, 461, 461, 461, - 461, 461, 461, 461, 33, 29, 23, 440, 441, 17, + 458, 458, 458, 458, 461, 61, 461, 461, 461, 461, + 461, 461, 461, 461, 54, 48, 47, 440, 441, 46, 441, 441, 441, 441, 441, 441, 441, 441, 462, 462, 462, 462, 462, 462, 462, 462, 462, 463, 463, 463, - 463, 463, 463, 463, 463, 463, 15, 14, 13, 441, - 454, 0, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 457, 0, 457, 457, 457, 457, 457, 457, 457, - 457, 457, 0, 0, 0, 457, 457, 457, 457, 457, - 464, 464, 464, 464, 464, 464, 464, 464, 464, 0, - 0, 0, 0, 0, 457, 457, 457, 457, 457, 457, + 463, 463, 463, 463, 463, 463, 45, 44, 43, 441, + 454, 37, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 457, 36, 457, 457, 457, 457, 457, 457, 457, + 457, 457, 35, 33, 29, 457, 457, 457, 457, 457, + 464, 464, 464, 464, 464, 464, 464, 464, 464, 23, + 17, 15, 14, 13, 457, 457, 457, 457, 457, 457, 460, 460, 460, 460, 460, 460, 460, 460, 0, 0, - 0, 0, 460, 460, 460, 460, 460, 473, 0, 473, - 0, 473, 0, 473, 473, 0, 0, 473, 0, 0, - 0, 460, 460, 460, 460, 460, 460, 0, 0, 473, - 473, 473, 475, 0, 475, 0, 475, 0, 475, 475, - 0, 0, 475, 479, 479, 479, 479, 479, 479, 479, - 479, 0, 0, 0, 475, 475, 475, 476, 0, 476, - 476, 476, 476, 476, 476, 476, 476, 0, 0, 0, - 0, 481, 479, 481, 481, 481, 481, 481, 481, 481, - 481, 500, 500, 500, 500, 500, 500, 500, 476, 477, - - 0, 477, 477, 477, 477, 477, 477, 477, 477, 482, - 0, 482, 482, 482, 482, 482, 482, 482, 482, 483, - 0, 483, 483, 483, 483, 483, 483, 483, 483, 0, - 477, 478, 0, 478, 478, 478, 478, 478, 478, 478, - 478, 488, 488, 488, 488, 488, 488, 488, 488, 494, - 494, 494, 494, 494, 494, 494, 494, 0, 0, 0, - 0, 0, 478, 490, 0, 490, 490, 490, 490, 490, - 490, 490, 490, 490, 493, 0, 493, 493, 493, 493, - 493, 493, 493, 493, 0, 0, 0, 0, 493, 493, - 493, 493, 493, 496, 0, 496, 496, 496, 496, 496, - - 496, 496, 496, 0, 0, 0, 0, 493, 493, 493, - 493, 493, 493, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 499, 499, 499, 499, 499, 499, 499, 499, - 499, 506, 506, 506, 506, 506, 506, 506, 506, 0, - 510, 0, 510, 510, 510, 510, 510, 510, 511, 511, - 511, 511, 511, 511, 511, 511, 0, 0, 0, 0, - 506, 508, 0, 508, 508, 508, 508, 508, 508, 508, - 508, 510, 513, 0, 513, 513, 513, 513, 513, 513, - 513, 513, 514, 0, 514, 514, 514, 514, 514, 514, - 514, 514, 508, 509, 0, 509, 509, 509, 509, 509, - - 509, 509, 509, 515, 0, 515, 515, 515, 515, 515, - 515, 521, 0, 521, 521, 521, 521, 521, 521, 521, - 521, 0, 0, 0, 509, 525, 0, 525, 525, 525, - 525, 525, 525, 525, 525, 528, 528, 528, 528, 528, - 528, 528, 528, 529, 529, 529, 529, 529, 529, 529, - 529, 0, 0, 0, 0, 0, 525, 526, 0, 526, - 526, 526, 526, 526, 526, 526, 526, 530, 530, 530, - 530, 530, 530, 530, 530, 535, 535, 535, 535, 535, - 535, 535, 535, 0, 0, 0, 0, 0, 526, 527, - 0, 527, 527, 527, 527, 527, 527, 527, 527, 0, - - 0, 0, 0, 539, 535, 539, 539, 539, 539, 539, - 539, 541, 541, 541, 541, 541, 541, 541, 541, 0, - 527, 537, 0, 537, 537, 537, 537, 537, 537, 537, - 537, 0, 0, 0, 539, 542, 542, 542, 542, 542, - 542, 542, 542, 547, 547, 547, 547, 547, 547, 547, - 547, 0, 537, 538, 0, 538, 538, 538, 538, 538, - 538, 538, 538, 548, 548, 548, 548, 548, 548, 548, - 548, 0, 547, 549, 549, 549, 549, 549, 549, 549, - 549, 0, 0, 0, 538, 552, 552, 552, 552, 552, - 552, 0, 548, 551, 551, 551, 551, 551, 551, 551, - - 551, 0, 549, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 552, 0, 0, 0, 0, 0, - 0, 0, 551, 554, 554, 554, 554, 554, 554, 554, - 554, 554, 554, 554, 554, 554, 555, 555, 555, 555, - 555, 555, 555, 555, 555, 555, 555, 555, 555, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 558, 0, 0, 0, 558, - 0, 558, 558, 558, 0, 558, 558, 558, 559, 559, - 0, 559, 559, 559, 559, 559, 559, 559, 559, 559, - - 559, 560, 560, 560, 560, 560, 560, 560, 560, 560, - 560, 560, 560, 560, 561, 0, 0, 0, 561, 0, + 0, 0, 460, 460, 460, 460, 460, 474, 0, 0, + 0, 474, 0, 474, 474, 0, 0, 474, 0, 0, + 0, 460, 460, 460, 460, 460, 460, 0, 476, 474, + 474, 474, 476, 0, 476, 476, 0, 0, 476, 480, + 480, 480, 480, 480, 480, 480, 480, 0, 0, 0, + 476, 476, 476, 477, 0, 477, 477, 477, 477, 477, + 477, 477, 477, 0, 0, 0, 0, 482, 480, 482, + 482, 482, 482, 482, 482, 482, 482, 501, 501, 501, + 501, 501, 501, 501, 477, 478, 0, 478, 478, 478, + + 478, 478, 478, 478, 478, 483, 0, 483, 483, 483, + 483, 483, 483, 483, 483, 484, 0, 484, 484, 484, + 484, 484, 484, 484, 484, 0, 478, 479, 0, 479, + 479, 479, 479, 479, 479, 479, 479, 489, 489, 489, + 489, 489, 489, 489, 489, 495, 495, 495, 495, 495, + 495, 495, 495, 0, 0, 0, 0, 0, 479, 491, + 0, 491, 491, 491, 491, 491, 491, 491, 491, 491, + 494, 0, 494, 494, 494, 494, 494, 494, 494, 494, + 0, 0, 0, 0, 494, 494, 494, 494, 494, 497, + 0, 497, 497, 497, 497, 497, 497, 497, 497, 0, + + 0, 0, 0, 494, 494, 494, 494, 494, 494, 499, + 499, 499, 499, 499, 499, 499, 499, 499, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 507, 507, 507, + 507, 507, 507, 507, 507, 0, 511, 0, 511, 511, + 511, 511, 511, 511, 512, 512, 512, 512, 512, 512, + 512, 512, 0, 0, 0, 0, 507, 509, 0, 509, + 509, 509, 509, 509, 509, 509, 509, 511, 514, 0, + 514, 514, 514, 514, 514, 514, 514, 514, 515, 0, + 515, 515, 515, 515, 515, 515, 515, 515, 509, 510, + 0, 510, 510, 510, 510, 510, 510, 510, 510, 516, + + 0, 516, 516, 516, 516, 516, 516, 522, 0, 522, + 522, 522, 522, 522, 522, 522, 522, 0, 0, 0, + 510, 526, 0, 526, 526, 526, 526, 526, 526, 526, + 526, 529, 529, 529, 529, 529, 529, 529, 529, 530, + 530, 530, 530, 530, 530, 530, 530, 0, 0, 0, + 0, 0, 526, 527, 0, 527, 527, 527, 527, 527, + 527, 527, 527, 531, 531, 531, 531, 531, 531, 531, + 531, 536, 536, 536, 536, 536, 536, 536, 536, 0, + 0, 0, 0, 0, 527, 528, 0, 528, 528, 528, + 528, 528, 528, 528, 528, 0, 0, 0, 0, 540, + + 536, 540, 540, 540, 540, 540, 540, 542, 542, 542, + 542, 542, 542, 542, 542, 0, 528, 538, 0, 538, + 538, 538, 538, 538, 538, 538, 538, 0, 0, 0, + 540, 543, 543, 543, 543, 543, 543, 543, 543, 548, + 548, 548, 548, 548, 548, 548, 548, 0, 538, 539, + 0, 539, 539, 539, 539, 539, 539, 539, 539, 549, + 549, 549, 549, 549, 549, 549, 549, 0, 548, 550, + 550, 550, 550, 550, 550, 550, 550, 0, 0, 0, + 539, 553, 553, 553, 553, 553, 553, 0, 549, 552, + 552, 552, 552, 552, 552, 552, 552, 0, 550, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 553, 0, 0, 0, 0, 0, 0, 0, 552, 555, + 555, 555, 555, 555, 555, 555, 555, 555, 555, 555, + 555, 555, 555, 556, 556, 556, 556, 556, 556, 556, + 556, 556, 556, 556, 556, 556, 556, 557, 557, 557, + 557, 557, 557, 557, 557, 557, 557, 557, 557, 557, + 557, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 559, 0, 0, 0, 559, + 0, 559, 559, 559, 0, 0, 559, 559, 559, 560, + 560, 0, 560, 560, 560, 560, 560, 560, 560, 560, + + 560, 560, 560, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, 562, 0, 0, - 0, 562, 0, 562, 562, 562, 0, 562, 562, 562, - 563, 0, 0, 563, 563, 0, 563, 563, 563, 0, - 563, 563, 563, 564, 564, 0, 0, 564, 565, 0, - 0, 565, 565, 0, 565, 565, 565, 0, 565, 565, - 565, 566, 0, 0, 566, 566, 566, 566, 566, 566, - 0, 0, 566, 566, 567, 567, 568, 0, 0, 568, - 0, 0, 568, 568, 568, 568, 568, 568, 568, 569, - - 569, 569, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 570, 570, 0, 570, 0, 570, 570, 570, - 570, 570, 570, 570, 570, 571, 571, 0, 571, 571, - 571, 571, 571, 571, 571, 571, 571, 571, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 573, 573, 0, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 574, 0, 0, 0, 574, 0, - 574, 574, 574, 0, 574, 574, 574, 575, 0, 0, - 575, 575, 0, 575, 575, 575, 0, 575, 575, 575, - 576, 576, 0, 0, 576, 577, 577, 577, 0, 0, - - 577, 578, 0, 0, 578, 578, 0, 578, 578, 578, - 0, 578, 578, 578, 579, 579, 579, 579, 579, 579, - 579, 579, 579, 579, 579, 579, 579, 580, 580, 0, - 0, 580, 581, 581, 581, 0, 0, 581, 582, 582, - 0, 0, 582, 583, 583, 0, 0, 583, 584, 584, - 0, 0, 584, 585, 585, 585, 0, 0, 585, 586, - 586, 0, 0, 586, 587, 587, 0, 0, 587, 588, - 588, 0, 0, 588, 589, 589, 589, 0, 0, 589, - 590, 590, 590, 590, 0, 0, 590, 591, 591, 0, - 0, 591, 592, 592, 0, 0, 592, 593, 593, 0, - - 0, 593, 594, 594, 594, 0, 0, 594, 595, 595, - 595, 595, 0, 0, 595, 596, 596, 0, 0, 596, - 597, 597, 0, 0, 597, 598, 598, 598, 0, 0, - 598, 599, 599, 599, 599, 0, 0, 599, 600, 600, - 0, 0, 600, 601, 0, 601, 601, 0, 0, 601, - 602, 602, 602, 0, 0, 602, 603, 603, 603, 603, - 0, 0, 603, 604, 604, 0, 0, 604, 605, 0, - 605, 605, 0, 0, 605, 606, 606, 606, 0, 0, - 606, 607, 607, 607, 0, 0, 0, 607, 608, 0, - 0, 0, 608, 0, 608, 608, 608, 0, 608, 608, - - 608, 609, 0, 0, 0, 609, 0, 609, 609, 609, - 0, 609, 609, 609, 610, 610, 0, 0, 610, 611, - 0, 611, 611, 0, 0, 611, 612, 612, 0, 0, - 0, 612, 613, 613, 613, 613, 613, 613, 613, 613, - 613, 613, 613, 613, 613, 614, 614, 0, 0, 614, - 615, 0, 615, 615, 0, 0, 615, 616, 616, 0, - 0, 616, 617, 0, 617, 0, 0, 0, 617, 618, - 0, 0, 0, 618, 619, 619, 619, 619, 619, 619, - 619, 619, 619, 619, 619, 619, 619, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553 + 0, 562, 0, 562, 562, 562, 562, 0, 562, 562, + 562, 563, 0, 0, 0, 563, 0, 563, 563, 563, + 0, 0, 563, 563, 563, 564, 0, 0, 564, 564, + 564, 564, 564, 564, 0, 0, 564, 564, 564, 565, + 565, 0, 0, 0, 565, 566, 0, 0, 566, 566, + 566, 566, 566, 566, 0, 0, 566, 566, 566, 567, + 0, 0, 567, 567, 567, 567, 567, 567, 0, 567, + 0, 567, 567, 569, 0, 0, 569, 0, 569, 569, + + 569, 569, 569, 0, 569, 569, 569, 570, 570, 570, + 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, + 570, 571, 571, 0, 571, 0, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 572, 572, 0, 572, 572, + 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, + 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, + 573, 573, 573, 574, 574, 0, 574, 574, 574, 574, + 574, 574, 574, 574, 574, 574, 574, 575, 0, 0, + 0, 575, 0, 575, 575, 575, 0, 0, 575, 575, + 575, 576, 0, 0, 576, 576, 576, 576, 576, 576, + + 0, 0, 576, 576, 576, 577, 577, 0, 0, 0, + 577, 578, 578, 578, 0, 0, 0, 578, 579, 0, + 0, 579, 579, 579, 579, 579, 579, 0, 0, 579, + 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, + 580, 580, 580, 580, 580, 580, 581, 581, 0, 0, + 0, 581, 582, 582, 582, 0, 0, 0, 582, 583, + 583, 0, 0, 0, 583, 584, 584, 0, 0, 0, + 584, 585, 585, 0, 0, 0, 585, 586, 586, 586, + 0, 0, 0, 586, 587, 587, 0, 0, 0, 587, + 588, 588, 0, 0, 0, 588, 589, 589, 0, 0, + + 0, 589, 590, 590, 590, 0, 0, 0, 590, 591, + 591, 591, 591, 0, 0, 0, 591, 592, 592, 0, + 0, 0, 592, 593, 593, 0, 0, 0, 593, 594, + 594, 0, 0, 0, 594, 595, 595, 595, 0, 0, + 0, 595, 596, 596, 596, 596, 0, 0, 0, 596, + 597, 597, 0, 0, 0, 597, 598, 598, 0, 0, + 0, 598, 599, 599, 599, 0, 0, 0, 599, 600, + 600, 600, 600, 0, 0, 0, 600, 601, 601, 0, + 0, 0, 601, 602, 0, 602, 602, 0, 0, 0, + 602, 603, 603, 603, 0, 0, 0, 603, 604, 604, + + 604, 604, 0, 0, 0, 604, 605, 605, 0, 0, + 0, 605, 606, 0, 606, 606, 0, 0, 0, 606, + 607, 607, 607, 0, 0, 0, 607, 608, 608, 608, + 0, 0, 0, 0, 608, 609, 0, 0, 609, 609, + 0, 609, 609, 609, 0, 0, 609, 609, 609, 610, + 0, 0, 610, 610, 0, 610, 610, 610, 0, 0, + 610, 610, 610, 611, 611, 0, 0, 0, 611, 612, + 0, 612, 612, 0, 0, 0, 612, 613, 613, 0, + 0, 0, 0, 613, 614, 614, 614, 614, 614, 614, + 614, 614, 614, 614, 614, 614, 614, 614, 615, 615, + + 0, 0, 0, 615, 616, 0, 616, 616, 0, 0, + 0, 616, 617, 617, 0, 0, 0, 617, 618, 0, + 618, 0, 0, 0, 0, 618, 620, 620, 620, 620, + 620, 620, 620, 620, 620, 620, 620, 620, 620, 620, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, + + 554, 554, 554 } ; static yy_state_type yy_last_accepting_state; @@ -1345,7 +1359,7 @@ char *yytext; #define INITIAL 0 #line 2 "toke.l" /* - * Copyright (c) 1996, 1998-2005, 2007-2009 + * Copyright (c) 1996, 1998-2005, 2007-2010 * Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any @@ -1384,11 +1398,10 @@ char *yytext; #endif /* STDC_HEADERS */ #ifdef HAVE_STRING_H # include -#else -# ifdef HAVE_STRINGS_H -# include -# endif #endif /* HAVE_STRING_H */ +#ifdef HAVE_STRINGS_H +# include +#endif /* HAVE_STRINGS_H */ #ifdef HAVE_UNISTD_H # include #endif /* HAVE_UNISTD_H */ @@ -1416,11 +1429,8 @@ char *yytext; #include "parse.h" #include -#ifndef lint -__unused static const char rcsid[] = "$Sudo: toke.c,v 1.37 2009/07/18 13:55:37 millert Exp $"; -#endif /* lint */ - extern YYSTYPE yylval; +extern int parse_error; int sudolineno = 1; char *sudoers; static int sawspace = 0; @@ -1461,7 +1471,7 @@ extern void yyerror __P((const char *)); #define INSTR 5 -#line 1465 "lex.yy.c" +#line 1475 "lex.yy.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -1615,9 +1625,9 @@ YY_DECL register char *yy_cp, *yy_bp; register int yy_act; -#line 131 "toke.l" +#line 127 "toke.l" -#line 1621 "lex.yy.c" +#line 1631 "lex.yy.c" if ( yy_init ) { @@ -1669,13 +1679,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 554 ) + if ( yy_current_state >= 555 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 3488 ); + while ( yy_base[yy_current_state] != 3541 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1703,12 +1713,12 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 132 "toke.l" +#line 128 "toke.l" BEGIN STARTDEFS; YY_BREAK case 2: YY_RULE_SETUP -#line 134 "toke.l" +#line 130 "toke.l" { BEGIN INDEFS; LEXTRACE("DEFVAR "); @@ -1720,7 +1730,7 @@ YY_RULE_SETUP case 3: YY_RULE_SETUP -#line 143 "toke.l" +#line 139 "toke.l" { BEGIN STARTDEFS; LEXTRACE(", "); @@ -1729,7 +1739,7 @@ YY_RULE_SETUP YY_BREAK case 4: YY_RULE_SETUP -#line 149 "toke.l" +#line 145 "toke.l" { LEXTRACE("= "); return('='); @@ -1737,7 +1747,7 @@ YY_RULE_SETUP YY_BREAK case 5: YY_RULE_SETUP -#line 154 "toke.l" +#line 150 "toke.l" { LEXTRACE("+= "); return('+'); @@ -1745,7 +1755,7 @@ YY_RULE_SETUP YY_BREAK case 6: YY_RULE_SETUP -#line 159 "toke.l" +#line 155 "toke.l" { LEXTRACE("-= "); return('-'); @@ -1753,7 +1763,7 @@ YY_RULE_SETUP YY_BREAK case 7: YY_RULE_SETUP -#line 164 "toke.l" +#line 160 "toke.l" { LEXTRACE("BEGINSTR "); yylval.string = NULL; @@ -1762,7 +1772,7 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 170 "toke.l" +#line 166 "toke.l" { LEXTRACE("WORD(2) "); if (!fill(yytext, yyleng)) @@ -1774,7 +1784,7 @@ YY_RULE_SETUP case 9: YY_RULE_SETUP -#line 179 "toke.l" +#line 175 "toke.l" { /* Line continuation char followed by newline. */ ++sudolineno; @@ -1783,7 +1793,7 @@ YY_RULE_SETUP YY_BREAK case 10: YY_RULE_SETUP -#line 185 "toke.l" +#line 181 "toke.l" { LEXTRACE("ENDSTR "); BEGIN INDEFS; @@ -1792,7 +1802,7 @@ YY_RULE_SETUP YY_BREAK case 11: YY_RULE_SETUP -#line 191 "toke.l" +#line 187 "toke.l" { LEXTRACE("BACKSLASH "); if (!append(yytext, yyleng)) @@ -1801,7 +1811,7 @@ YY_RULE_SETUP YY_BREAK case 12: YY_RULE_SETUP -#line 197 "toke.l" +#line 193 "toke.l" { LEXTRACE("STRBODY "); if (!append(yytext, yyleng)) @@ -1812,7 +1822,7 @@ YY_RULE_SETUP case 13: YY_RULE_SETUP -#line 205 "toke.l" +#line 201 "toke.l" { /* quoted fnmatch glob char, pass verbatim */ LEXTRACE("QUOTEDCHAR "); @@ -1823,7 +1833,7 @@ YY_RULE_SETUP YY_BREAK case 14: YY_RULE_SETUP -#line 213 "toke.l" +#line 209 "toke.l" { /* quoted sudoers special char, strip backslash */ LEXTRACE("QUOTEDCHAR "); @@ -1834,7 +1844,7 @@ YY_RULE_SETUP YY_BREAK case 15: YY_RULE_SETUP -#line 221 "toke.l" +#line 217 "toke.l" { BEGIN INITIAL; yyless(0); @@ -1843,7 +1853,7 @@ YY_RULE_SETUP YY_BREAK case 16: YY_RULE_SETUP -#line 227 "toke.l" +#line 223 "toke.l" { LEXTRACE("ARG "); if (!fill_args(yytext, yyleng, sawspace)) @@ -1854,7 +1864,7 @@ YY_RULE_SETUP case 17: YY_RULE_SETUP -#line 235 "toke.l" +#line 231 "toke.l" { char *path; @@ -1870,7 +1880,7 @@ YY_RULE_SETUP YY_BREAK case 18: YY_RULE_SETUP -#line 248 "toke.l" +#line 244 "toke.l" { char *path; @@ -1879,14 +1889,17 @@ YY_RULE_SETUP LEXTRACE("INCLUDEDIR\n"); - /* Push current buffer and switch to include file */ - if (!push_includedir(path)) + /* + * Push current buffer and switch to include file. + * We simply ignore empty directories. + */ + if (!push_includedir(path) && parse_error) yyterminate(); } YY_BREAK case 19: YY_RULE_SETUP -#line 261 "toke.l" +#line 260 "toke.l" { int n; for (n = 0; isblank((unsigned char)yytext[n]); n++) @@ -1918,7 +1931,7 @@ YY_RULE_SETUP YY_BREAK case 20: YY_RULE_SETUP -#line 290 "toke.l" +#line 289 "toke.l" { int n; for (n = 0; isblank((unsigned char)yytext[n]); n++) @@ -1941,7 +1954,7 @@ YY_RULE_SETUP YY_BREAK case 21: YY_RULE_SETUP -#line 310 "toke.l" +#line 309 "toke.l" { /* cmnd does not require passwd for this user */ LEXTRACE("NOPASSWD "); @@ -1950,7 +1963,7 @@ YY_RULE_SETUP YY_BREAK case 22: YY_RULE_SETUP -#line 316 "toke.l" +#line 315 "toke.l" { /* cmnd requires passwd for this user */ LEXTRACE("PASSWD "); @@ -1959,7 +1972,7 @@ YY_RULE_SETUP YY_BREAK case 23: YY_RULE_SETUP -#line 322 "toke.l" +#line 321 "toke.l" { LEXTRACE("NOEXEC "); return(NOEXEC); @@ -1967,7 +1980,7 @@ YY_RULE_SETUP YY_BREAK case 24: YY_RULE_SETUP -#line 327 "toke.l" +#line 326 "toke.l" { LEXTRACE("EXEC "); return(EXEC); @@ -1975,7 +1988,7 @@ YY_RULE_SETUP YY_BREAK case 25: YY_RULE_SETUP -#line 332 "toke.l" +#line 331 "toke.l" { LEXTRACE("SETENV "); return(SETENV); @@ -1983,7 +1996,7 @@ YY_RULE_SETUP YY_BREAK case 26: YY_RULE_SETUP -#line 337 "toke.l" +#line 336 "toke.l" { LEXTRACE("NOSETENV "); return(NOSETENV); @@ -1991,7 +2004,7 @@ YY_RULE_SETUP YY_BREAK case 27: YY_RULE_SETUP -#line 342 "toke.l" +#line 341 "toke.l" { /* netgroup */ if (!fill(yytext, yyleng)) @@ -2002,7 +2015,7 @@ YY_RULE_SETUP YY_BREAK case 28: YY_RULE_SETUP -#line 350 "toke.l" +#line 349 "toke.l" { /* UN*X group */ if (!fill(yytext, yyleng)) @@ -2013,7 +2026,7 @@ YY_RULE_SETUP YY_BREAK case 29: YY_RULE_SETUP -#line 358 "toke.l" +#line 357 "toke.l" { if (!fill(yytext, yyleng)) yyterminate(); @@ -2023,7 +2036,7 @@ YY_RULE_SETUP YY_BREAK case 30: YY_RULE_SETUP -#line 365 "toke.l" +#line 364 "toke.l" { if (!fill(yytext, yyleng)) yyterminate(); @@ -2033,7 +2046,7 @@ YY_RULE_SETUP YY_BREAK case 31: YY_RULE_SETUP -#line 372 "toke.l" +#line 371 "toke.l" { if (!ipv6_valid(yytext)) { LEXTRACE("ERROR "); @@ -2047,7 +2060,7 @@ YY_RULE_SETUP YY_BREAK case 32: YY_RULE_SETUP -#line 383 "toke.l" +#line 382 "toke.l" { if (!ipv6_valid(yytext)) { LEXTRACE("ERROR "); @@ -2061,7 +2074,7 @@ YY_RULE_SETUP YY_BREAK case 33: YY_RULE_SETUP -#line 394 "toke.l" +#line 393 "toke.l" { if (strcmp(yytext, "ALL") == 0) { LEXTRACE("ALL "); @@ -2086,7 +2099,7 @@ YY_RULE_SETUP YY_BREAK case 34: YY_RULE_SETUP -#line 416 "toke.l" +#line 415 "toke.l" { /* no command args allowed for Defaults!/path */ if (!fill_cmnd(yytext, yyleng)) @@ -2097,7 +2110,7 @@ YY_RULE_SETUP YY_BREAK case 35: YY_RULE_SETUP -#line 424 "toke.l" +#line 423 "toke.l" { BEGIN GOTCMND; LEXTRACE("COMMAND "); @@ -2107,7 +2120,7 @@ YY_RULE_SETUP YY_BREAK case 36: YY_RULE_SETUP -#line 431 "toke.l" +#line 430 "toke.l" { /* directories can't have args... */ if (yytext[yyleng - 1] == '/') { @@ -2125,7 +2138,7 @@ YY_RULE_SETUP YY_BREAK case 37: YY_RULE_SETUP -#line 446 "toke.l" +#line 445 "toke.l" { /* a quoted user/group name */ if (!fill(yytext + 1, yyleng - 2)) @@ -2145,7 +2158,7 @@ YY_RULE_SETUP YY_BREAK case 38: YY_RULE_SETUP -#line 463 "toke.l" +#line 462 "toke.l" { /* a word */ if (!fill(yytext, yyleng)) @@ -2156,7 +2169,7 @@ YY_RULE_SETUP YY_BREAK case 39: YY_RULE_SETUP -#line 471 "toke.l" +#line 470 "toke.l" { LEXTRACE("( "); return ('('); @@ -2164,7 +2177,7 @@ YY_RULE_SETUP YY_BREAK case 40: YY_RULE_SETUP -#line 476 "toke.l" +#line 475 "toke.l" { LEXTRACE(") "); return(')'); @@ -2172,7 +2185,7 @@ YY_RULE_SETUP YY_BREAK case 41: YY_RULE_SETUP -#line 481 "toke.l" +#line 480 "toke.l" { LEXTRACE(", "); return(','); @@ -2180,7 +2193,7 @@ YY_RULE_SETUP YY_BREAK case 42: YY_RULE_SETUP -#line 486 "toke.l" +#line 485 "toke.l" { LEXTRACE("= "); return('='); @@ -2188,7 +2201,7 @@ YY_RULE_SETUP YY_BREAK case 43: YY_RULE_SETUP -#line 491 "toke.l" +#line 490 "toke.l" { LEXTRACE(": "); return(':'); @@ -2196,7 +2209,7 @@ YY_RULE_SETUP YY_BREAK case 44: YY_RULE_SETUP -#line 496 "toke.l" +#line 495 "toke.l" { if (yyleng % 2 == 1) return('!'); /* return '!' */ @@ -2204,7 +2217,7 @@ YY_RULE_SETUP YY_BREAK case 45: YY_RULE_SETUP -#line 501 "toke.l" +#line 500 "toke.l" { BEGIN INITIAL; ++sudolineno; @@ -2214,14 +2227,14 @@ YY_RULE_SETUP YY_BREAK case 46: YY_RULE_SETUP -#line 508 "toke.l" +#line 507 "toke.l" { /* throw away space/tabs */ sawspace = TRUE; /* but remember for fill_args */ } YY_BREAK case 47: YY_RULE_SETUP -#line 512 "toke.l" +#line 511 "toke.l" { sawspace = TRUE; /* remember for fill_args */ ++sudolineno; @@ -2230,7 +2243,7 @@ YY_RULE_SETUP YY_BREAK case 48: YY_RULE_SETUP -#line 518 "toke.l" +#line 517 "toke.l" { BEGIN INITIAL; ++sudolineno; @@ -2240,7 +2253,7 @@ YY_RULE_SETUP YY_BREAK case 49: YY_RULE_SETUP -#line 525 "toke.l" +#line 524 "toke.l" { LEXTRACE("ERROR "); return(ERROR); @@ -2252,7 +2265,7 @@ case YY_STATE_EOF(GOTCMND): case YY_STATE_EOF(STARTDEFS): case YY_STATE_EOF(INDEFS): case YY_STATE_EOF(INSTR): -#line 530 "toke.l" +#line 529 "toke.l" { if (YY_START != INITIAL) { BEGIN INITIAL; @@ -2265,10 +2278,10 @@ case YY_STATE_EOF(INSTR): YY_BREAK case 50: YY_RULE_SETUP -#line 540 "toke.l" +#line 539 "toke.l" ECHO; YY_BREAK -#line 2272 "lex.yy.c" +#line 2285 "lex.yy.c" case YY_END_OF_BUFFER: { @@ -2559,7 +2572,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 554 ) + if ( yy_current_state >= 555 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2594,11 +2607,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 554 ) + if ( yy_current_state >= 555 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 553); + yy_is_jam = (yy_current_state == 554); return yy_is_jam ? 0 : yy_current_state; } @@ -3157,7 +3170,7 @@ int main() return 0; } #endif -#line 540 "toke.l" +#line 539 "toke.l" static unsigned char hexchar(s) @@ -3369,7 +3382,7 @@ switch_dir(stack, dirpath) if (!(dir = opendir(dirpath))) { yyerror(dirpath); - return(FALSE); + return(NULL); } while ((dent = readdir(dir))) { /* Ignore files that end in '~' or have a '.' in them. */ @@ -3461,7 +3474,7 @@ init_lexer() efree(pl); } efree(istack[idepth].path); - if (!istack[idepth].keepopen) + if (idepth && !istack[idepth].keepopen) fclose(istack[idepth].bs->yy_input_file); yy_delete_buffer(istack[idepth].bs); } @@ -3476,6 +3489,7 @@ _push_include(path, isdir) char *path; int isdir; { + struct path_list *pl; FILE *fp; /* push current state onto stack */ @@ -3486,7 +3500,7 @@ _push_include(path, isdir) } istacksize += SUDOERS_STACK_INCREMENT; istack = (struct include_stack *) realloc(istack, - sizeof(istack) * istacksize); + sizeof(*istack) * istacksize); if (istack == NULL) { yyerror("unable to allocate memory"); return(FALSE); @@ -3494,12 +3508,17 @@ _push_include(path, isdir) } if (isdir) { if (!(path = switch_dir(&istack[idepth], path))) { - yyerror(path); + /* switch_dir() called yyerror() for us */ return(FALSE); } - if ((fp = open_sudoers(path, FALSE, &keepopen)) == NULL) { - yyerror(path); - return(FALSE); /* XXX - just to go next one? */ + while ((fp = open_sudoers(path, FALSE, &keepopen)) == NULL) { + /* Unable to open path in includedir, go to next one, if any. */ + efree(path); + if ((pl = istack[idepth].more) == NULL) + return(FALSE); + path = pl->path; + istack[idepth].more = pl->next; + efree(pl); } } else { if ((fp = open_sudoers(path, TRUE, &keepopen)) == NULL) { @@ -3533,25 +3552,31 @@ pop_include() if (!keepopen) fclose(YY_CURRENT_BUFFER->yy_input_file); yy_delete_buffer(YY_CURRENT_BUFFER); - keepopen = FALSE; - if ((pl = istack[idepth - 1].more) != NULL) { - /* Move to next file in the dir. */ - istack[idepth - 1].more = pl->next; - if ((fp = open_sudoers(pl->path, FALSE, &keepopen)) == NULL) { - yyerror(pl->path); - return(FALSE); /* XXX - just to go next one? */ + /* If we are in an include dir, move to the next file. */ + while ((pl = istack[idepth - 1].more) != NULL) { + fp = open_sudoers(pl->path, FALSE, &keepopen); + if (fp != NULL) { + istack[idepth - 1].more = pl->next; + efree(sudoers); + sudoers = pl->path; + sudolineno = 1; + yy_switch_to_buffer(yy_create_buffer(fp, YY_BUF_SIZE)); + efree(pl); + break; } - efree(sudoers); - sudoers = pl->path; - sudolineno = 1; - yy_switch_to_buffer(yy_create_buffer(fp, YY_BUF_SIZE)); + /* Unable to open path in include dir, go to next one. */ + istack[idepth - 1].more = pl->next; + efree(pl->path); efree(pl); - } else { + } + /* If no path list, just pop the last dir on the stack. */ + if (pl == NULL) { idepth--; yy_switch_to_buffer(istack[idepth].bs); efree(sudoers); sudoers = istack[idepth].path; sudolineno = istack[idepth].lineno; + keepopen = istack[idepth].keepopen; } return(TRUE); }