From af5fde7491670e2deb7966a99c25a9b69b7bc86f Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Thu, 6 Aug 1998 05:13:14 +0000 Subject: [PATCH] Make large objects their own relkind type. Fix dups in pg_class_mb files. Fix sequence creation hack for relkind type. --- src/backend/bootstrap/bootparse.y | 6 +- src/backend/catalog/heap.c | 29 +- src/backend/commands/cluster.c | 4 +- src/backend/commands/creatinh.c | 7 +- src/backend/commands/recipe.c | 8 +- src/backend/commands/sequence.c | 14 +- src/backend/commands/view.c | 4 +- src/backend/executor/execMain.c | 5 +- src/backend/executor/nodeTee.c | 8 +- src/backend/parser/gram.c | 5371 ++++++++++---------- src/backend/parser/parse.h | 1 + src/backend/storage/large_object/inv_api.c | 4 +- src/backend/tcop/utility.c | 4 +- src/bin/pg_dump/pg_dump.c | 6 +- src/bin/psql/psql.c | 4 +- src/include/catalog/heap.h | 5 +- src/include/catalog/pg_attribute_mb.h | 469 +- src/include/catalog/pg_class.h | 3 +- src/include/catalog/pg_class_mb.h | 167 +- src/include/catalog/pg_database_mb.h | 60 +- src/include/commands/creatinh.h | 4 +- src/tools/backend/flow.fig | 46 +- src/tools/backend/flow.jpg | Bin 71617 -> 71332 bytes 23 files changed, 2723 insertions(+), 3506 deletions(-) diff --git a/src/backend/bootstrap/bootparse.y b/src/backend/bootstrap/bootparse.y index 44a5b051947..3e16196d33c 100644 --- a/src/backend/bootstrap/bootparse.y +++ b/src/backend/bootstrap/bootparse.y @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootparse.y,v 1.18 1998/07/26 04:30:18 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootparse.y,v 1.19 1998/08/06 05:12:16 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -177,10 +177,10 @@ Boot_CreateStmt: { Oid id; TupleDesc tupdesc; - /* extern Oid heap_create_with_catalog();*/ tupdesc = CreateTupleDesc(numattr,attrtypes); - id = heap_create_with_catalog(LexIDStr($3), tupdesc); + id = heap_create_with_catalog(LexIDStr($3), + tupdesc, RELKIND_RELATION); if (!Quiet) printf("CREATED relation %s with OID %d\n", LexIDStr($3), id); diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index 8f2a56cc55b..32150d926fb 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.55 1998/07/27 19:37:46 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/heap.c,v 1.56 1998/08/06 05:12:19 momjian Exp $ * * INTERFACE ROUTINES * heap_create() - Create an uncataloged heap relation @@ -16,7 +16,7 @@ * * NOTES * this code taken from access/heap/create.c, which contains - * the old heap_create_with_catalogr, amcreate, and amdestroy. + * the old heap_create_with_catalog, amcreate, and amdestroy. * those routines will soon call these routines using the function * manager, * just like the poorly named "NewXXX" routines do. The @@ -65,7 +65,8 @@ static void AddPgRelationTuple(Relation pg_class_desc, - Relation new_rel_desc, Oid new_rel_oid, unsigned natts); + Relation new_rel_desc, Oid new_rel_oid, unsigned natts, + char relkind); static void AddToTempRelList(Relation r); static void DeletePgAttributeTuples(Relation rdesc); static void DeletePgRelationTuple(Relation rdesc); @@ -345,7 +346,7 @@ heap_create(char *name, * preforms a scan to ensure that no relation with the * same name already exists. * - * 3) heap_create_with_catalogr() is called to create the new relation + * 3) heap_create_with_catalog() is called to create the new relation * on disk. * * 4) TypeDefine() is called to define a new type corresponding @@ -378,7 +379,7 @@ heap_create(char *name, * create new relation * insert new relation into attribute catalog * - * Should coordinate with heap_create_with_catalogr(). Either + * Should coordinate with heap_create_with_catalog(). Either * it should not be called or there should be a way to prevent * the relation from being removed at the end of the * transaction if it is successful ('u'/'r' may be enough). @@ -633,14 +634,13 @@ static void AddPgRelationTuple(Relation pg_class_desc, Relation new_rel_desc, Oid new_rel_oid, - unsigned natts) + unsigned natts, + char relkind) { Form_pg_class new_rel_reltup; HeapTuple tup; Relation idescs[Num_pg_class_indices]; bool isBootstrap; - extern bool ItsSequenceCreation; /* It's hack, I know... - vadim - * 03/28/97 */ /* ---------------- * first we munge some of the information in our @@ -653,10 +653,7 @@ AddPgRelationTuple(Relation pg_class_desc, /* new_rel_reltup->reltuples = 1; *//* XXX */ new_rel_reltup->relowner = GetUserId(); - if (ItsSequenceCreation) - new_rel_reltup->relkind = RELKIND_SEQUENCE; - else - new_rel_reltup->relkind = RELKIND_RELATION; + new_rel_reltup->relkind = relkind; new_rel_reltup->relnatts = natts; /* ---------------- @@ -747,8 +744,9 @@ addNewRelationType(char *typeName, Oid new_rel_oid) * -------------------------------- */ Oid -heap_create_with_catalog(char relname[], - TupleDesc tupdesc) +heap_create_with_catalog(char *relname, + TupleDesc tupdesc, + char relkind) { Relation pg_class_desc; Relation new_rel_desc; @@ -813,7 +811,8 @@ heap_create_with_catalog(char relname[], AddPgRelationTuple(pg_class_desc, new_rel_desc, new_rel_oid, - natts); + natts, + relkind); StoreConstraints(new_rel_desc); diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index 7de10c6e26c..b31ee63e201 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -14,7 +14,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.26 1998/07/27 19:37:50 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/cluster.c,v 1.27 1998/08/06 05:12:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -218,7 +218,7 @@ copy_heap(Oid OIDOldHeap) tupdesc = CreateTupleDescCopy(OldHeapDesc); - OIDNewHeap = heap_create_with_catalog(NewName, tupdesc); + OIDNewHeap = heap_create_with_catalog(NewName, tupdesc, RELKIND_RELATION); if (!OidIsValid(OIDNewHeap)) elog(ERROR, "clusterheap: cannot create temporary heap relation\n"); diff --git a/src/backend/commands/creatinh.c b/src/backend/commands/creatinh.c index 7c216149dca..1221fd8e50f 100644 --- a/src/backend/commands/creatinh.c +++ b/src/backend/commands/creatinh.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.30 1998/06/15 19:28:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/creatinh.c,v 1.31 1998/08/06 05:12:24 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -45,7 +45,7 @@ static void StoreCatalogInheritance(Oid relationId, List *supers); * ---------------------------------------------------------------- */ void -DefineRelation(CreateStmt *stmt) +DefineRelation(CreateStmt *stmt, char relkind) { char *relname = palloc(NAMEDATALEN); List *schema = stmt->tableElts; @@ -137,7 +137,8 @@ DefineRelation(CreateStmt *stmt) } } - relationId = heap_create_with_catalog(relname, descriptor); + relationId = heap_create_with_catalog(relname, + descriptor, relkind); StoreCatalogInheritance(relationId, inheritList); } diff --git a/src/backend/commands/recipe.c b/src/backend/commands/recipe.c index 5d96623ed4c..6f300664cc6 100644 --- a/src/backend/commands/recipe.c +++ b/src/backend/commands/recipe.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.21 1998/06/15 19:28:15 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.22 1998/08/06 05:12:26 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1032,7 +1032,8 @@ tg_parseSubQuery(TgRecipe * r, TgNode * n, TeeInfo * teeInfo) tupdesc = rel->rd_att; relid = heap_create_with_catalog( - child->nodeElem->outTypes->val[0], tupdesc); + child->nodeElem->outTypes->val[0], + tupdesc, RELKIND_RELATION); } else { @@ -1055,7 +1056,8 @@ tg_parseSubQuery(TgRecipe * r, TgNode * n, TeeInfo * teeInfo) else { relid = heap_create_with_catalog( - child->nodeElem->outTypes->val[0], tupdesc); + child->nodeElem->outTypes->val[0], + tupdesc, RELKIND_RELATION); } } } diff --git a/src/backend/commands/sequence.c b/src/backend/commands/sequence.c index 572cc3b3f60..2c81196ff7c 100644 --- a/src/backend/commands/sequence.c +++ b/src/backend/commands/sequence.c @@ -24,8 +24,6 @@ #define SEQ_MAXVALUE ((int4)0x7FFFFFFF) #define SEQ_MINVALUE -(SEQ_MAXVALUE) -bool ItsSequenceCreation = false; - typedef struct FormData_pg_sequence { NameData sequence_name; @@ -157,15 +155,7 @@ DefineSequence(CreateSeqStmt *seq) stmt->inhRelnames = NIL; stmt->constraints = NIL; - ItsSequenceCreation = true; /* hack */ - - DefineRelation(stmt); - - /* - * Xact abort calls CloseSequences, which turns ItsSequenceCreation - * off - */ - ItsSequenceCreation = false;/* hack */ + DefineRelation(stmt, RELKIND_SEQUENCE); rel = heap_openr(seq->seqname); Assert(RelationIsValid(rel)); @@ -438,8 +428,6 @@ CloseSequences(void) SeqTable elm; Relation rel; - ItsSequenceCreation = false; - for (elm = seqtab; elm != (SeqTable) NULL;) { if (elm->rel != (Relation) NULL) /* opened in current xact */ diff --git a/src/backend/commands/view.c b/src/backend/commands/view.c index ac4a4d0d204..0da160d5e86 100644 --- a/src/backend/commands/view.c +++ b/src/backend/commands/view.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.23 1998/07/19 05:49:12 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/view.c,v 1.24 1998/08/06 05:12:30 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -105,7 +105,7 @@ DefineVirtualRelation(char *relname, List *tlist) /* * finally create the relation... */ - DefineRelation(&createStmt); + DefineRelation(&createStmt, RELKIND_RELATION); } /*------------------------------------------------------------------ diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 04159f7ab29..41bb1dc5d41 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -26,7 +26,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.51 1998/07/27 19:37:55 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.52 1998/08/06 05:12:33 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -587,7 +587,8 @@ InitPlan(CmdType operation, Query *parseTree, Plan *plan, EState *estate) */ tupdesc = CreateTupleDescCopy(tupType); - intoRelationId = heap_create_with_catalog(intoName, tupdesc); + intoRelationId = heap_create_with_catalog(intoName, + tupdesc, RELKIND_RELATION); FreeTupleDesc(tupdesc); diff --git a/src/backend/executor/nodeTee.c b/src/backend/executor/nodeTee.c index 104de6413bf..c23c7d65d40 100644 --- a/src/backend/executor/nodeTee.c +++ b/src/backend/executor/nodeTee.c @@ -15,7 +15,7 @@ * ExecEndTee * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/Attic/nodeTee.c,v 1.19 1998/07/27 19:37:57 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/Attic/nodeTee.c,v 1.20 1998/08/06 05:12:36 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -168,7 +168,8 @@ ExecInitTee(Tee *node, EState *currentEstate, Plan *parent) bufferRel = heap_openr(teeState->tee_bufferRelname); else bufferRel = heap_open( - heap_create_with_catalog(teeState->tee_bufferRelname, tupType)); + heap_create_with_catalog(teeState->tee_bufferRelname, + tupType, RELKIND_RELATION)); } else { @@ -177,7 +178,8 @@ ExecInitTee(Tee *node, EState *currentEstate, Plan *parent) newoid()); /* bufferRel = ExecCreatR(len, tupType, _TEMP_RELATION_ID); */ bufferRel = heap_open( - heap_create_with_catalog(teeState->tee_bufferRelname, tupType)); + heap_create_with_catalog(teeState->tee_bufferRelname, + tupType, RELKIND_RELATION)); } teeState->tee_bufferRel = bufferRel; diff --git a/src/backend/parser/gram.c b/src/backend/parser/gram.c index c583ed393d7..bceb0510baf 100644 --- a/src/backend/parser/gram.c +++ b/src/backend/parser/gram.c @@ -219,7 +219,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.23 1998/08/04 18:42:39 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.24 1998/08/06 05:12:37 momjian Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -311,6 +311,7 @@ typedef union DefElem *defelt; ParamString *param; SortGroupBy *sortgroupby; + JoinUsing *joinusing; IndexElem *ielem; RangeVar *range; RelExpr *relexp; @@ -333,11 +334,11 @@ typedef union -#define YYFINAL 1557 +#define YYFINAL 1545 #define YYFLAG -32768 #define YYNTBASE 219 -#define YYTRANSLATE(x) ((unsigned)(x) <= 457 ? yytranslate[x] : 474) +#define YYTRANSLATE(x) ((unsigned)(x) <= 457 ? yytranslate[x] : 472) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -435,47 +436,46 @@ static const short yyprhs[] = { 0, 1275, 1280, 1289, 1293, 1294, 1298, 1300, 1303, 1308, 1312, 1319, 1334, 1345, 1354, 1358, 1359, 1364, 1366, 1374, 1378, 1379, 1381, 1382, 1384, 1385, 1387, 1391, 1393, 1394, 1398, - 1399, 1401, 1405, 1408, 1413, 1416, 1419, 1422, 1425, 1427, - 1429, 1430, 1432, 1433, 1435, 1437, 1441, 1445, 1446, 1448, - 1452, 1454, 1458, 1460, 1463, 1464, 1473, 1476, 1477, 1481, - 1486, 1488, 1492, 1495, 1497, 1500, 1503, 1506, 1509, 1511, - 1513, 1515, 1516, 1518, 1519, 1524, 1529, 1530, 1532, 1536, - 1538, 1542, 1544, 1547, 1548, 1550, 1553, 1557, 1562, 1563, - 1567, 1572, 1573, 1576, 1578, 1581, 1583, 1585, 1587, 1589, - 1591, 1593, 1596, 1599, 1602, 1605, 1607, 1610, 1612, 1614, - 1618, 1619, 1625, 1629, 1630, 1636, 1640, 1641, 1646, 1648, - 1653, 1656, 1658, 1662, 1665, 1667, 1668, 1672, 1673, 1676, - 1677, 1679, 1682, 1684, 1687, 1689, 1691, 1693, 1695, 1697, - 1699, 1703, 1704, 1706, 1710, 1714, 1718, 1722, 1726, 1730, - 1734, 1735, 1737, 1739, 1747, 1756, 1765, 1773, 1781, 1785, - 1789, 1791, 1793, 1795, 1797, 1799, 1801, 1803, 1805, 1807, - 1809, 1811, 1814, 1816, 1818, 1820, 1823, 1827, 1831, 1835, - 1839, 1843, 1847, 1851, 1854, 1857, 1860, 1864, 1871, 1875, - 1879, 1883, 1888, 1891, 1894, 1899, 1903, 1908, 1910, 1912, - 1917, 1919, 1924, 1926, 1928, 1933, 1938, 1943, 1948, 1954, - 1960, 1966, 1971, 1974, 1978, 1981, 1986, 1990, 1995, 1999, - 2004, 2010, 2017, 2018, 2025, 2026, 2034, 2040, 2046, 2052, - 2058, 2064, 2070, 2076, 2082, 2089, 2096, 2103, 2110, 2117, - 2124, 2131, 2138, 2145, 2152, 2159, 2166, 2173, 2180, 2187, - 2194, 2198, 2202, 2205, 2208, 2210, 2212, 2215, 2219, 2223, - 2227, 2231, 2234, 2237, 2240, 2244, 2251, 2255, 2259, 2262, - 2265, 2269, 2274, 2276, 2278, 2283, 2285, 2290, 2292, 2294, - 2299, 2304, 2310, 2316, 2322, 2327, 2332, 2339, 2340, 2342, - 2346, 2350, 2354, 2355, 2357, 2359, 2361, 2365, 2366, 2369, - 2371, 2374, 2378, 2382, 2386, 2390, 2393, 2397, 2404, 2408, - 2412, 2415, 2418, 2420, 2424, 2429, 2434, 2439, 2445, 2451, - 2457, 2462, 2466, 2467, 2470, 2471, 2474, 2475, 2479, 2482, - 2484, 2486, 2488, 2490, 2494, 2496, 2498, 2500, 2504, 2508, - 2512, 2514, 2518, 2522, 2526, 2528, 2530, 2535, 2538, 2542, - 2546, 2548, 2552, 2554, 2558, 2560, 2562, 2563, 2565, 2567, - 2569, 2571, 2573, 2575, 2577, 2579, 2581, 2583, 2585, 2587, - 2589, 2591, 2594, 2596, 2598, 2600, 2602, 2604, 2606, 2608, - 2610, 2612, 2614, 2616, 2618, 2620, 2622, 2624, 2626, 2628, - 2630, 2632, 2634, 2636, 2638, 2640, 2642, 2644, 2646, 2648, - 2650, 2652, 2654, 2656, 2658, 2660, 2662, 2664, 2666, 2668, - 2670, 2672, 2674, 2676, 2678, 2680, 2682, 2684, 2686, 2688, - 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704, 2706, 2708, - 2710, 2712, 2714, 2716 + 1399, 1401, 1405, 1408, 1411, 1414, 1417, 1419, 1421, 1422, + 1424, 1425, 1427, 1429, 1433, 1437, 1438, 1441, 1442, 1451, + 1454, 1455, 1459, 1464, 1466, 1470, 1473, 1475, 1478, 1481, + 1484, 1487, 1489, 1491, 1493, 1494, 1496, 1497, 1502, 1507, + 1508, 1510, 1514, 1516, 1520, 1522, 1525, 1526, 1528, 1531, + 1535, 1540, 1541, 1545, 1550, 1551, 1554, 1556, 1559, 1561, + 1563, 1565, 1567, 1569, 1571, 1574, 1577, 1580, 1583, 1585, + 1588, 1590, 1592, 1596, 1597, 1603, 1607, 1608, 1614, 1618, + 1619, 1624, 1626, 1631, 1634, 1636, 1640, 1643, 1645, 1646, + 1650, 1651, 1654, 1655, 1657, 1660, 1662, 1665, 1667, 1669, + 1671, 1673, 1675, 1677, 1681, 1682, 1684, 1688, 1692, 1696, + 1700, 1704, 1708, 1712, 1713, 1715, 1717, 1725, 1734, 1743, + 1751, 1759, 1763, 1767, 1769, 1771, 1773, 1775, 1777, 1779, + 1781, 1783, 1785, 1787, 1789, 1792, 1794, 1796, 1798, 1801, + 1805, 1809, 1813, 1817, 1821, 1825, 1829, 1832, 1835, 1838, + 1842, 1849, 1853, 1857, 1861, 1866, 1869, 1872, 1877, 1881, + 1886, 1888, 1890, 1895, 1897, 1902, 1904, 1906, 1911, 1916, + 1921, 1926, 1932, 1938, 1944, 1949, 1952, 1956, 1959, 1964, + 1968, 1973, 1977, 1982, 1988, 1995, 1996, 2003, 2004, 2012, + 2018, 2024, 2030, 2036, 2042, 2048, 2054, 2060, 2067, 2074, + 2081, 2088, 2095, 2102, 2109, 2116, 2123, 2130, 2137, 2144, + 2151, 2158, 2165, 2172, 2176, 2180, 2183, 2186, 2188, 2190, + 2193, 2197, 2201, 2205, 2209, 2212, 2215, 2218, 2222, 2229, + 2233, 2237, 2240, 2243, 2247, 2252, 2254, 2256, 2261, 2263, + 2268, 2270, 2272, 2277, 2282, 2288, 2294, 2300, 2305, 2310, + 2317, 2318, 2320, 2324, 2328, 2332, 2333, 2335, 2337, 2339, + 2343, 2344, 2347, 2349, 2352, 2356, 2360, 2364, 2368, 2371, + 2375, 2382, 2386, 2390, 2393, 2396, 2398, 2402, 2407, 2412, + 2417, 2423, 2429, 2435, 2440, 2444, 2445, 2448, 2449, 2452, + 2453, 2457, 2460, 2462, 2464, 2466, 2468, 2472, 2474, 2476, + 2478, 2482, 2486, 2490, 2492, 2496, 2500, 2504, 2506, 2508, + 2513, 2516, 2520, 2524, 2526, 2530, 2532, 2536, 2538, 2540, + 2541, 2543, 2545, 2547, 2549, 2551, 2553, 2555, 2557, 2559, + 2561, 2563, 2565, 2567, 2569, 2572, 2574, 2576, 2578, 2580, + 2582, 2584, 2586, 2588, 2590, 2592, 2594, 2596, 2598, 2600, + 2602, 2604, 2606, 2608, 2610, 2612, 2614, 2616, 2618, 2620, + 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2636, 2638, 2640, + 2642, 2644, 2646, 2648, 2650, 2652, 2654, 2656, 2658, 2660, + 2662, 2664, 2666, 2668, 2670, 2672, 2674, 2676, 2678, 2680, + 2682, 2684, 2686, 2688, 2690, 2692, 2694 }; static const short yyrhs[] = { 220, @@ -488,50 +488,50 @@ static const short yyrhs[] = { 220, 0, 318, 0, 327, 0, 330, 0, 329, 0, 325, 0, 334, 0, 307, 0, 364, 0, 337, 0, 347, 0, 349, 0, 350, 0, 351, 0, 356, 0, 358, - 0, 231, 0, 234, 0, 235, 0, 25, 113, 469, - 225, 226, 227, 229, 230, 0, 6, 113, 469, 225, - 226, 227, 229, 230, 0, 41, 113, 469, 0, 120, - 187, 469, 0, 0, 188, 0, 189, 0, 0, 190, - 0, 191, 0, 0, 228, 216, 469, 0, 469, 0, + 0, 231, 0, 234, 0, 235, 0, 25, 113, 467, + 225, 226, 227, 229, 230, 0, 6, 113, 467, 225, + 226, 227, 229, 230, 0, 41, 113, 467, 0, 120, + 187, 467, 0, 0, 188, 0, 189, 0, 0, 190, + 0, 191, 0, 0, 228, 216, 467, 0, 467, 0, 56, 53, 228, 0, 0, 192, 193, 195, 0, 0, - 99, 471, 106, 232, 0, 99, 471, 201, 232, 0, - 99, 102, 123, 233, 0, 99, 72, 355, 0, 468, - 0, 36, 0, 468, 0, 36, 0, 68, 0, 176, - 471, 0, 176, 102, 123, 0, 170, 471, 0, 170, - 102, 123, 0, 6, 101, 455, 387, 237, 0, 4, + 99, 469, 106, 232, 0, 99, 469, 201, 232, 0, + 99, 102, 123, 233, 0, 99, 72, 355, 0, 466, + 0, 36, 0, 466, 0, 36, 0, 68, 0, 176, + 469, 0, 176, 102, 123, 0, 170, 469, 0, 170, + 102, 123, 0, 6, 101, 453, 387, 237, 0, 4, 336, 248, 0, 4, 217, 246, 218, 0, 41, 336, - 471, 0, 6, 336, 471, 99, 36, 254, 0, 6, - 336, 471, 41, 36, 0, 4, 256, 0, 20, 454, - 0, 137, 242, 455, 243, 240, 241, 244, 0, 106, - 0, 50, 0, 468, 0, 179, 0, 180, 0, 134, - 0, 0, 120, 165, 0, 0, 114, 140, 468, 0, - 0, 25, 101, 455, 217, 246, 218, 263, 264, 0, + 469, 0, 6, 336, 469, 99, 36, 254, 0, 6, + 336, 469, 41, 36, 0, 4, 256, 0, 20, 452, + 0, 137, 242, 453, 243, 240, 241, 244, 0, 106, + 0, 50, 0, 466, 0, 179, 0, 180, 0, 134, + 0, 0, 120, 165, 0, 0, 114, 140, 466, 0, + 0, 25, 101, 453, 217, 246, 218, 263, 264, 0, 246, 216, 247, 0, 247, 0, 0, 248, 0, 255, - 0, 471, 406, 249, 0, 250, 0, 0, 250, 251, - 0, 251, 0, 24, 461, 252, 0, 252, 0, 19, + 0, 469, 404, 249, 0, 250, 0, 0, 250, 251, + 0, 251, 0, 24, 459, 252, 0, 252, 0, 19, 217, 258, 218, 0, 36, 254, 0, 77, 79, 0, - 111, 0, 89, 63, 0, 93, 471, 367, 259, 260, - 0, 253, 216, 254, 0, 254, 0, 465, 0, 79, + 111, 0, 89, 63, 0, 93, 469, 367, 259, 260, + 0, 253, 216, 254, 0, 254, 0, 463, 0, 79, 0, 205, 254, 0, 254, 204, 254, 0, 254, 205, 254, 0, 254, 207, 254, 0, 254, 206, 254, 0, 254, 201, 254, 0, 254, 202, 254, 0, 254, 203, 254, 0, 209, 254, 0, 210, 254, 0, 208, 254, - 0, 254, 215, 406, 0, 16, 217, 254, 9, 406, - 218, 0, 217, 254, 218, 0, 462, 217, 218, 0, - 462, 217, 253, 218, 0, 254, 196, 254, 0, 196, + 0, 254, 215, 404, 0, 16, 217, 254, 9, 404, + 218, 0, 217, 254, 218, 0, 460, 217, 218, 0, + 460, 217, 253, 218, 0, 254, 196, 254, 0, 196, 254, 0, 254, 196, 0, 28, 0, 29, 0, 29, - 217, 467, 218, 0, 30, 0, 30, 217, 467, 218, - 0, 31, 0, 113, 0, 24, 461, 256, 0, 256, + 217, 465, 218, 0, 30, 0, 30, 217, 465, 218, + 0, 31, 0, 113, 0, 24, 459, 256, 0, 256, 0, 19, 217, 258, 218, 0, 111, 217, 368, 218, 0, 89, 63, 217, 368, 218, 0, 49, 63, 217, - 368, 218, 93, 471, 367, 259, 260, 0, 257, 216, - 258, 0, 258, 0, 465, 0, 79, 0, 471, 0, + 368, 218, 93, 469, 367, 259, 260, 0, 257, 216, + 258, 0, 258, 0, 463, 0, 79, 0, 469, 0, 205, 258, 0, 258, 204, 258, 0, 258, 205, 258, 0, 258, 207, 258, 0, 258, 206, 258, 0, 258, 201, 258, 0, 258, 202, 258, 0, 258, 203, 258, 0, 209, 258, 0, 210, 258, 0, 208, 258, 0, - 258, 215, 406, 0, 16, 217, 258, 9, 406, 218, - 0, 217, 258, 218, 0, 462, 217, 218, 0, 462, + 258, 215, 404, 0, 16, 217, 258, 9, 404, 218, + 0, 217, 258, 218, 0, 460, 217, 218, 0, 460, 217, 257, 218, 0, 258, 196, 258, 0, 258, 67, 258, 0, 258, 7, 258, 0, 258, 83, 258, 0, 77, 258, 0, 196, 258, 0, 258, 196, 0, 258, @@ -542,215 +542,213 @@ static const short yyrhs[] = { 220, 261, 0, 261, 0, 0, 81, 37, 262, 0, 81, 112, 262, 0, 76, 3, 0, 15, 0, 99, 36, 0, 99, 79, 0, 150, 217, 388, 218, 0, 0, - 186, 201, 162, 0, 0, 25, 101, 455, 266, 9, + 186, 201, 162, 0, 0, 25, 101, 453, 266, 9, 375, 0, 217, 267, 218, 0, 0, 267, 216, 268, - 0, 268, 0, 471, 0, 25, 174, 455, 270, 0, + 0, 268, 0, 469, 0, 25, 174, 453, 270, 0, 270, 271, 0, 0, 135, 274, 0, 138, 0, 148, 274, 0, 158, 274, 0, 159, 274, 0, 177, 274, 0, 273, 0, 274, 0, 199, 0, 205, 199, 0, - 467, 0, 205, 467, 0, 25, 276, 167, 64, 468, - 147, 291, 153, 468, 0, 181, 0, 0, 41, 167, - 64, 468, 0, 25, 125, 461, 279, 280, 81, 455, - 282, 43, 91, 461, 217, 285, 218, 0, 133, 0, + 465, 0, 205, 465, 0, 25, 276, 167, 64, 466, + 147, 291, 153, 466, 0, 181, 0, 0, 41, 167, + 64, 466, 0, 25, 125, 459, 279, 280, 81, 453, + 282, 43, 91, 459, 217, 285, 218, 0, 133, 0, 129, 0, 281, 0, 281, 83, 281, 0, 281, 83, 281, 83, 281, 0, 58, 0, 37, 0, 112, 0, 48, 283, 284, 0, 142, 0, 0, 172, 0, 178, 0, 286, 0, 285, 216, 286, 0, 0, 197, 0, - 199, 0, 468, 0, 194, 0, 41, 125, 461, 81, - 455, 0, 25, 290, 289, 0, 291, 292, 0, 166, - 0, 127, 0, 130, 0, 91, 0, 62, 0, 471, + 199, 0, 466, 0, 194, 0, 41, 125, 459, 81, + 453, 0, 25, 290, 289, 0, 291, 292, 0, 166, + 0, 127, 0, 130, 0, 91, 0, 62, 0, 469, 0, 332, 0, 196, 0, 217, 293, 218, 0, 294, 0, 293, 216, 294, 0, 291, 201, 295, 0, 291, - 0, 36, 201, 295, 0, 471, 0, 331, 0, 272, - 0, 468, 0, 175, 471, 0, 41, 101, 388, 0, + 0, 36, 201, 295, 0, 469, 0, 331, 0, 272, + 0, 466, 0, 175, 469, 0, 41, 101, 388, 0, 41, 174, 388, 0, 46, 298, 299, 300, 0, 160, - 298, 299, 300, 0, 145, 0, 132, 0, 0, 467, - 0, 5, 0, 0, 56, 461, 0, 0, 52, 302, + 298, 299, 300, 0, 145, 0, 132, 0, 0, 465, + 0, 5, 0, 0, 56, 459, 0, 0, 52, 302, 81, 388, 106, 305, 306, 0, 5, 90, 0, 5, 0, 303, 0, 304, 0, 303, 216, 304, 0, 98, 0, 58, 0, 112, 0, 37, 0, 173, 0, 92, - 0, 53, 471, 0, 471, 0, 120, 52, 82, 0, + 0, 53, 469, 0, 469, 0, 120, 52, 82, 0, 0, 94, 302, 81, 388, 50, 305, 0, 25, 309, - 149, 460, 81, 455, 310, 217, 311, 218, 320, 0, - 111, 0, 0, 114, 457, 0, 0, 312, 0, 313, - 0, 312, 216, 314, 0, 314, 0, 462, 217, 389, - 218, 315, 316, 0, 458, 315, 316, 0, 209, 406, - 0, 48, 406, 0, 0, 459, 0, 114, 459, 0, - 0, 144, 149, 460, 402, 0, 43, 168, 464, 0, - 25, 146, 462, 321, 171, 323, 320, 9, 468, 64, - 468, 0, 120, 292, 0, 0, 217, 322, 218, 0, - 217, 218, 0, 470, 0, 322, 216, 470, 0, 324, - 470, 0, 175, 0, 0, 41, 326, 461, 0, 127, - 0, 149, 0, 173, 0, 118, 0, 41, 130, 461, - 328, 0, 461, 0, 206, 0, 41, 146, 462, 321, + 149, 458, 81, 453, 310, 217, 311, 218, 320, 0, + 111, 0, 0, 114, 455, 0, 0, 312, 0, 313, + 0, 312, 216, 314, 0, 314, 0, 460, 217, 389, + 218, 315, 316, 0, 456, 315, 316, 0, 209, 404, + 0, 48, 404, 0, 0, 457, 0, 114, 457, 0, + 0, 144, 149, 458, 400, 0, 43, 168, 462, 0, + 25, 146, 460, 321, 171, 323, 320, 9, 466, 64, + 466, 0, 120, 292, 0, 0, 217, 322, 218, 0, + 217, 218, 0, 468, 0, 322, 216, 468, 0, 324, + 468, 0, 175, 0, 0, 41, 326, 459, 0, 127, + 0, 149, 0, 173, 0, 118, 0, 41, 130, 459, + 328, 0, 459, 0, 206, 0, 41, 146, 460, 321, 0, 41, 166, 331, 217, 333, 218, 0, 196, 0, 332, 0, 204, 0, 205, 0, 206, 0, 207, 0, - 202, 0, 203, 0, 201, 0, 461, 0, 461, 216, - 461, 0, 162, 216, 461, 0, 461, 216, 162, 0, - 6, 101, 455, 387, 169, 336, 335, 106, 461, 0, - 461, 0, 0, 22, 0, 0, 0, 25, 173, 461, - 9, 338, 81, 343, 106, 342, 402, 141, 344, 339, + 202, 0, 203, 0, 201, 0, 459, 0, 459, 216, + 459, 0, 162, 216, 459, 0, 459, 216, 162, 0, + 6, 101, 453, 387, 169, 336, 335, 106, 459, 0, + 459, 0, 0, 22, 0, 0, 0, 25, 173, 459, + 9, 338, 81, 343, 106, 342, 400, 141, 344, 339, 0, 163, 0, 364, 0, 213, 340, 214, 0, 341, 0, 364, 0, 341, 364, 210, 0, 341, 364, 0, - 364, 210, 0, 455, 212, 458, 0, 455, 0, 98, + 364, 210, 0, 453, 212, 456, 0, 453, 0, 98, 0, 112, 0, 37, 0, 58, 0, 151, 0, 0, - 78, 455, 0, 154, 455, 0, 128, 348, 0, 11, + 78, 453, 0, 154, 453, 0, 128, 348, 0, 11, 348, 0, 23, 348, 0, 42, 348, 0, 96, 348, - 0, 121, 0, 108, 0, 0, 25, 118, 461, 9, - 374, 0, 155, 463, 0, 25, 139, 456, 120, 352, - 353, 0, 25, 139, 456, 0, 157, 201, 354, 0, - 0, 185, 201, 355, 0, 0, 468, 0, 36, 0, - 0, 468, 0, 36, 0, 0, 41, 139, 456, 0, - 136, 460, 81, 455, 0, 182, 359, 360, 0, 182, - 359, 360, 455, 361, 0, 183, 0, 0, 131, 0, - 0, 217, 362, 218, 0, 0, 461, 0, 362, 216, - 461, 0, 143, 359, 364, 0, 374, 0, 373, 0, + 0, 121, 0, 108, 0, 0, 25, 118, 459, 9, + 374, 0, 155, 461, 0, 25, 139, 454, 120, 352, + 353, 0, 25, 139, 454, 0, 157, 201, 354, 0, + 0, 185, 201, 355, 0, 0, 466, 0, 36, 0, + 0, 466, 0, 36, 0, 0, 41, 139, 454, 0, + 136, 458, 81, 453, 0, 182, 359, 360, 0, 182, + 359, 360, 453, 361, 0, 183, 0, 0, 131, 0, + 0, 217, 362, 218, 0, 0, 459, 0, 362, 216, + 459, 0, 143, 359, 364, 0, 374, 0, 373, 0, 372, 0, 365, 0, 345, 0, 370, 0, 58, 60, - 455, 367, 366, 0, 115, 217, 452, 218, 0, 98, - 382, 452, 394, 402, 390, 393, 376, 0, 217, 368, - 218, 0, 0, 368, 216, 369, 0, 369, 0, 471, - 434, 0, 37, 50, 455, 402, 0, 156, 380, 455, - 0, 112, 455, 99, 450, 394, 402, 0, 35, 461, - 242, 32, 48, 98, 382, 452, 394, 402, 390, 393, - 376, 383, 0, 98, 382, 452, 379, 394, 402, 390, - 393, 376, 383, 0, 98, 382, 452, 394, 402, 390, - 393, 376, 0, 110, 381, 377, 0, 0, 377, 110, - 381, 378, 0, 378, 0, 98, 382, 452, 394, 402, - 390, 393, 0, 60, 380, 455, 0, 0, 101, 0, - 0, 5, 0, 0, 39, 0, 39, 81, 471, 0, + 453, 367, 366, 0, 115, 217, 450, 218, 0, 98, + 382, 450, 392, 400, 390, 391, 376, 0, 217, 368, + 218, 0, 0, 368, 216, 369, 0, 369, 0, 469, + 432, 0, 37, 50, 453, 400, 0, 156, 380, 453, + 0, 112, 453, 99, 448, 392, 400, 0, 35, 459, + 242, 32, 48, 98, 382, 450, 392, 400, 390, 391, + 376, 383, 0, 98, 382, 450, 379, 392, 400, 390, + 391, 376, 383, 0, 98, 382, 450, 392, 400, 390, + 391, 376, 0, 110, 381, 377, 0, 0, 377, 110, + 381, 378, 0, 378, 0, 98, 382, 450, 392, 400, + 390, 391, 0, 60, 380, 453, 0, 0, 101, 0, + 0, 5, 0, 0, 39, 0, 39, 81, 469, 0, 5, 0, 0, 84, 14, 384, 0, 0, 385, 0, - 384, 216, 385, 0, 471, 386, 0, 471, 212, 471, - 386, 0, 467, 386, 0, 114, 196, 0, 114, 202, - 0, 114, 203, 0, 10, 0, 38, 0, 0, 206, - 0, 0, 389, 0, 461, 0, 389, 216, 461, 0, - 53, 14, 391, 0, 0, 392, 0, 391, 216, 392, - 0, 471, 0, 471, 212, 471, 0, 467, 0, 54, - 430, 0, 0, 50, 217, 403, 397, 62, 403, 399, - 218, 0, 50, 395, 0, 0, 395, 216, 396, 0, - 396, 26, 62, 396, 0, 396, 0, 403, 9, 472, - 0, 403, 471, 0, 403, 0, 74, 397, 0, 51, - 398, 0, 66, 398, 0, 95, 398, 0, 85, 0, - 57, 0, 110, 0, 0, 85, 0, 0, 81, 217, - 430, 218, 0, 114, 217, 400, 218, 0, 0, 401, - 0, 400, 216, 401, 0, 471, 0, 471, 212, 471, - 0, 467, 0, 119, 430, 0, 0, 455, 0, 455, - 206, 0, 213, 214, 405, 0, 213, 467, 214, 405, - 0, 0, 213, 214, 405, 0, 213, 467, 214, 405, - 0, 0, 407, 404, 0, 415, 0, 175, 407, 0, - 408, 0, 420, 0, 410, 0, 409, 0, 194, 0, - 127, 0, 47, 412, 0, 40, 88, 0, 34, 414, - 0, 80, 413, 0, 47, 0, 40, 88, 0, 34, - 0, 80, 0, 217, 467, 218, 0, 0, 217, 467, - 216, 467, 218, 0, 217, 467, 218, 0, 0, 217, - 467, 216, 467, 218, 0, 217, 467, 218, 0, 0, - 416, 217, 467, 218, 0, 416, 0, 18, 417, 418, - 419, 0, 17, 417, 0, 116, 0, 73, 18, 417, - 0, 75, 417, 0, 117, 0, 0, 18, 99, 471, - 0, 0, 21, 471, 0, 0, 421, 0, 103, 422, - 0, 102, 0, 59, 423, 0, 122, 0, 71, 0, - 33, 0, 55, 0, 70, 0, 97, 0, 120, 102, - 123, 0, 0, 421, 0, 122, 106, 71, 0, 33, - 106, 55, 0, 33, 106, 70, 0, 33, 106, 97, - 0, 55, 106, 70, 0, 55, 106, 97, 0, 70, - 106, 97, 0, 0, 430, 0, 79, 0, 217, 426, - 218, 56, 217, 375, 218, 0, 217, 426, 218, 77, - 56, 217, 375, 218, 0, 217, 426, 218, 428, 429, - 217, 375, 218, 0, 217, 426, 218, 428, 217, 375, - 218, 0, 217, 426, 218, 428, 217, 426, 218, 0, - 427, 216, 430, 0, 427, 216, 430, 0, 430, 0, - 196, 0, 202, 0, 201, 0, 203, 0, 204, 0, - 205, 0, 206, 0, 207, 0, 8, 0, 5, 0, - 448, 434, 0, 425, 0, 465, 0, 471, 0, 205, - 430, 0, 430, 204, 430, 0, 430, 205, 430, 0, - 430, 207, 430, 0, 430, 206, 430, 0, 430, 202, - 430, 0, 430, 203, 430, 0, 430, 201, 430, 0, - 209, 430, 0, 210, 430, 0, 208, 430, 0, 430, - 215, 406, 0, 16, 217, 430, 9, 406, 218, 0, - 217, 424, 218, 0, 430, 196, 430, 0, 430, 67, - 430, 0, 430, 77, 67, 430, 0, 196, 430, 0, - 430, 196, 0, 462, 217, 206, 218, 0, 462, 217, - 218, 0, 462, 217, 435, 218, 0, 28, 0, 29, - 0, 29, 217, 467, 218, 0, 30, 0, 30, 217, - 467, 218, 0, 31, 0, 113, 0, 44, 217, 375, - 218, 0, 45, 217, 436, 218, 0, 87, 217, 438, - 218, 0, 100, 217, 440, 218, 0, 109, 217, 13, - 443, 218, 0, 109, 217, 65, 443, 218, 0, 109, - 217, 107, 443, 218, 0, 109, 217, 443, 218, 0, - 430, 152, 0, 430, 61, 79, 0, 430, 164, 0, - 430, 61, 77, 79, 0, 430, 61, 126, 0, 430, - 61, 77, 124, 0, 430, 61, 124, 0, 430, 61, - 77, 126, 0, 430, 12, 433, 7, 433, 0, 430, - 77, 12, 433, 7, 433, 0, 0, 430, 56, 431, - 217, 444, 218, 0, 0, 430, 77, 56, 432, 217, - 446, 218, 0, 430, 196, 217, 375, 218, 0, 430, - 204, 217, 375, 218, 0, 430, 205, 217, 375, 218, - 0, 430, 207, 217, 375, 218, 0, 430, 206, 217, - 375, 218, 0, 430, 202, 217, 375, 218, 0, 430, - 203, 217, 375, 218, 0, 430, 201, 217, 375, 218, - 0, 430, 196, 8, 217, 375, 218, 0, 430, 204, - 8, 217, 375, 218, 0, 430, 205, 8, 217, 375, - 218, 0, 430, 207, 8, 217, 375, 218, 0, 430, - 206, 8, 217, 375, 218, 0, 430, 202, 8, 217, - 375, 218, 0, 430, 203, 8, 217, 375, 218, 0, - 430, 201, 8, 217, 375, 218, 0, 430, 196, 5, - 217, 375, 218, 0, 430, 204, 5, 217, 375, 218, - 0, 430, 205, 5, 217, 375, 218, 0, 430, 207, - 5, 217, 375, 218, 0, 430, 206, 5, 217, 375, - 218, 0, 430, 202, 5, 217, 375, 218, 0, 430, - 203, 5, 217, 375, 218, 0, 430, 201, 5, 217, - 375, 218, 0, 430, 7, 430, 0, 430, 83, 430, - 0, 77, 430, 0, 448, 434, 0, 465, 0, 471, - 0, 205, 433, 0, 433, 204, 433, 0, 433, 205, - 433, 0, 433, 207, 433, 0, 433, 206, 433, 0, - 209, 433, 0, 210, 433, 0, 208, 433, 0, 433, - 215, 406, 0, 16, 217, 433, 9, 406, 218, 0, - 217, 430, 218, 0, 433, 196, 433, 0, 196, 433, - 0, 433, 196, 0, 462, 217, 218, 0, 462, 217, - 435, 218, 0, 28, 0, 29, 0, 29, 217, 467, - 218, 0, 30, 0, 30, 217, 467, 218, 0, 31, - 0, 113, 0, 87, 217, 438, 218, 0, 100, 217, - 440, 218, 0, 109, 217, 13, 443, 218, 0, 109, - 217, 65, 443, 218, 0, 109, 217, 107, 443, 218, - 0, 109, 217, 443, 218, 0, 213, 430, 214, 434, - 0, 213, 430, 209, 430, 214, 434, 0, 0, 424, - 0, 435, 216, 424, 0, 435, 114, 430, 0, 437, - 50, 430, 0, 0, 421, 0, 104, 0, 105, 0, - 439, 56, 439, 0, 0, 448, 434, 0, 465, 0, - 205, 439, 0, 439, 204, 439, 0, 439, 205, 439, - 0, 439, 207, 439, 0, 439, 206, 439, 0, 208, - 439, 0, 439, 215, 406, 0, 16, 217, 439, 9, - 406, 218, 0, 217, 439, 218, 0, 439, 196, 439, - 0, 196, 439, 0, 439, 196, 0, 471, 0, 462, - 217, 218, 0, 462, 217, 435, 218, 0, 87, 217, - 438, 218, 0, 100, 217, 440, 218, 0, 109, 217, - 13, 443, 218, 0, 109, 217, 65, 443, 218, 0, - 109, 217, 107, 443, 218, 0, 109, 217, 443, 218, - 0, 435, 441, 442, 0, 0, 50, 435, 0, 0, - 48, 435, 0, 0, 430, 50, 435, 0, 50, 435, - 0, 435, 0, 375, 0, 445, 0, 465, 0, 445, - 216, 465, 0, 375, 0, 447, 0, 465, 0, 447, - 216, 465, 0, 455, 212, 449, 0, 466, 212, 449, - 0, 458, 0, 449, 212, 458, 0, 449, 212, 206, - 0, 450, 216, 451, 0, 451, 0, 206, 0, 471, - 434, 201, 424, 0, 448, 434, 0, 455, 212, 206, - 0, 452, 216, 453, 0, 453, 0, 424, 9, 472, - 0, 424, 0, 455, 212, 206, 0, 206, 0, 471, - 0, 0, 473, 0, 471, 0, 471, 0, 194, 0, - 471, 0, 194, 0, 471, 0, 471, 0, 471, 0, - 468, 0, 194, 0, 467, 0, 199, 0, 468, 0, - 406, 468, 0, 466, 0, 126, 0, 124, 0, 198, - 0, 197, 0, 195, 0, 194, 0, 471, 0, 411, - 0, 416, 0, 194, 0, 421, 0, 3, 0, 135, - 0, 138, 0, 139, 0, 140, 0, 40, 0, 142, - 0, 185, 0, 146, 0, 148, 0, 149, 0, 63, - 0, 64, 0, 157, 0, 69, 0, 158, 0, 159, - 0, 166, 0, 82, 0, 187, 0, 90, 0, 168, - 0, 172, 0, 177, 0, 178, 0, 102, 0, 104, - 0, 105, 0, 125, 0, 127, 0, 192, 0, 184, - 0, 123, 0, 471, 0, 186, 0, 136, 0, 24, - 0, 26, 0, 49, 0, 53, 0, 155, 0, 84, - 0, 87, 0, 88, 0, 101, 0, 108, 0, 126, - 0, 124, 0, 27, 0, 161, 0 + 384, 216, 385, 0, 428, 386, 0, 114, 196, 0, + 114, 202, 0, 114, 203, 0, 10, 0, 38, 0, + 0, 206, 0, 0, 389, 0, 459, 0, 389, 216, + 459, 0, 53, 14, 433, 0, 0, 54, 428, 0, + 0, 50, 217, 401, 395, 62, 401, 397, 218, 0, + 50, 393, 0, 0, 393, 216, 394, 0, 394, 26, + 62, 394, 0, 394, 0, 401, 9, 470, 0, 401, + 469, 0, 401, 0, 74, 395, 0, 51, 396, 0, + 66, 396, 0, 95, 396, 0, 85, 0, 57, 0, + 110, 0, 0, 85, 0, 0, 81, 217, 428, 218, + 0, 114, 217, 398, 218, 0, 0, 399, 0, 398, + 216, 399, 0, 469, 0, 469, 212, 469, 0, 465, + 0, 119, 428, 0, 0, 453, 0, 453, 206, 0, + 213, 214, 403, 0, 213, 465, 214, 403, 0, 0, + 213, 214, 403, 0, 213, 465, 214, 403, 0, 0, + 405, 402, 0, 413, 0, 175, 405, 0, 406, 0, + 418, 0, 408, 0, 407, 0, 194, 0, 127, 0, + 47, 410, 0, 40, 88, 0, 34, 412, 0, 80, + 411, 0, 47, 0, 40, 88, 0, 34, 0, 80, + 0, 217, 465, 218, 0, 0, 217, 465, 216, 465, + 218, 0, 217, 465, 218, 0, 0, 217, 465, 216, + 465, 218, 0, 217, 465, 218, 0, 0, 414, 217, + 465, 218, 0, 414, 0, 18, 415, 416, 417, 0, + 17, 415, 0, 116, 0, 73, 18, 415, 0, 75, + 415, 0, 117, 0, 0, 18, 99, 469, 0, 0, + 21, 469, 0, 0, 419, 0, 103, 420, 0, 102, + 0, 59, 421, 0, 122, 0, 71, 0, 33, 0, + 55, 0, 70, 0, 97, 0, 120, 102, 123, 0, + 0, 419, 0, 122, 106, 71, 0, 33, 106, 55, + 0, 33, 106, 70, 0, 33, 106, 97, 0, 55, + 106, 70, 0, 55, 106, 97, 0, 70, 106, 97, + 0, 0, 428, 0, 79, 0, 217, 424, 218, 56, + 217, 375, 218, 0, 217, 424, 218, 77, 56, 217, + 375, 218, 0, 217, 424, 218, 426, 427, 217, 375, + 218, 0, 217, 424, 218, 426, 217, 375, 218, 0, + 217, 424, 218, 426, 217, 424, 218, 0, 425, 216, + 428, 0, 425, 216, 428, 0, 428, 0, 196, 0, + 202, 0, 201, 0, 203, 0, 204, 0, 205, 0, + 206, 0, 207, 0, 8, 0, 5, 0, 446, 432, + 0, 423, 0, 463, 0, 469, 0, 205, 428, 0, + 428, 204, 428, 0, 428, 205, 428, 0, 428, 207, + 428, 0, 428, 206, 428, 0, 428, 202, 428, 0, + 428, 203, 428, 0, 428, 201, 428, 0, 209, 428, + 0, 210, 428, 0, 208, 428, 0, 428, 215, 404, + 0, 16, 217, 428, 9, 404, 218, 0, 217, 422, + 218, 0, 428, 196, 428, 0, 428, 67, 428, 0, + 428, 77, 67, 428, 0, 196, 428, 0, 428, 196, + 0, 460, 217, 206, 218, 0, 460, 217, 218, 0, + 460, 217, 433, 218, 0, 28, 0, 29, 0, 29, + 217, 465, 218, 0, 30, 0, 30, 217, 465, 218, + 0, 31, 0, 113, 0, 44, 217, 375, 218, 0, + 45, 217, 434, 218, 0, 87, 217, 436, 218, 0, + 100, 217, 438, 218, 0, 109, 217, 13, 441, 218, + 0, 109, 217, 65, 441, 218, 0, 109, 217, 107, + 441, 218, 0, 109, 217, 441, 218, 0, 428, 152, + 0, 428, 61, 79, 0, 428, 164, 0, 428, 61, + 77, 79, 0, 428, 61, 126, 0, 428, 61, 77, + 124, 0, 428, 61, 124, 0, 428, 61, 77, 126, + 0, 428, 12, 431, 7, 431, 0, 428, 77, 12, + 431, 7, 431, 0, 0, 428, 56, 429, 217, 442, + 218, 0, 0, 428, 77, 56, 430, 217, 444, 218, + 0, 428, 196, 217, 375, 218, 0, 428, 204, 217, + 375, 218, 0, 428, 205, 217, 375, 218, 0, 428, + 207, 217, 375, 218, 0, 428, 206, 217, 375, 218, + 0, 428, 202, 217, 375, 218, 0, 428, 203, 217, + 375, 218, 0, 428, 201, 217, 375, 218, 0, 428, + 196, 8, 217, 375, 218, 0, 428, 204, 8, 217, + 375, 218, 0, 428, 205, 8, 217, 375, 218, 0, + 428, 207, 8, 217, 375, 218, 0, 428, 206, 8, + 217, 375, 218, 0, 428, 202, 8, 217, 375, 218, + 0, 428, 203, 8, 217, 375, 218, 0, 428, 201, + 8, 217, 375, 218, 0, 428, 196, 5, 217, 375, + 218, 0, 428, 204, 5, 217, 375, 218, 0, 428, + 205, 5, 217, 375, 218, 0, 428, 207, 5, 217, + 375, 218, 0, 428, 206, 5, 217, 375, 218, 0, + 428, 202, 5, 217, 375, 218, 0, 428, 203, 5, + 217, 375, 218, 0, 428, 201, 5, 217, 375, 218, + 0, 428, 7, 428, 0, 428, 83, 428, 0, 77, + 428, 0, 446, 432, 0, 463, 0, 469, 0, 205, + 431, 0, 431, 204, 431, 0, 431, 205, 431, 0, + 431, 207, 431, 0, 431, 206, 431, 0, 209, 431, + 0, 210, 431, 0, 208, 431, 0, 431, 215, 404, + 0, 16, 217, 431, 9, 404, 218, 0, 217, 428, + 218, 0, 431, 196, 431, 0, 196, 431, 0, 431, + 196, 0, 460, 217, 218, 0, 460, 217, 433, 218, + 0, 28, 0, 29, 0, 29, 217, 465, 218, 0, + 30, 0, 30, 217, 465, 218, 0, 31, 0, 113, + 0, 87, 217, 436, 218, 0, 100, 217, 438, 218, + 0, 109, 217, 13, 441, 218, 0, 109, 217, 65, + 441, 218, 0, 109, 217, 107, 441, 218, 0, 109, + 217, 441, 218, 0, 213, 428, 214, 432, 0, 213, + 428, 209, 428, 214, 432, 0, 0, 422, 0, 433, + 216, 422, 0, 433, 114, 428, 0, 435, 50, 428, + 0, 0, 419, 0, 104, 0, 105, 0, 437, 56, + 437, 0, 0, 446, 432, 0, 463, 0, 205, 437, + 0, 437, 204, 437, 0, 437, 205, 437, 0, 437, + 207, 437, 0, 437, 206, 437, 0, 208, 437, 0, + 437, 215, 404, 0, 16, 217, 437, 9, 404, 218, + 0, 217, 437, 218, 0, 437, 196, 437, 0, 196, + 437, 0, 437, 196, 0, 469, 0, 460, 217, 218, + 0, 460, 217, 433, 218, 0, 87, 217, 436, 218, + 0, 100, 217, 438, 218, 0, 109, 217, 13, 441, + 218, 0, 109, 217, 65, 441, 218, 0, 109, 217, + 107, 441, 218, 0, 109, 217, 441, 218, 0, 433, + 439, 440, 0, 0, 50, 433, 0, 0, 48, 433, + 0, 0, 428, 50, 433, 0, 50, 433, 0, 433, + 0, 375, 0, 443, 0, 463, 0, 443, 216, 463, + 0, 375, 0, 445, 0, 463, 0, 445, 216, 463, + 0, 453, 212, 447, 0, 464, 212, 447, 0, 456, + 0, 447, 212, 456, 0, 447, 212, 206, 0, 448, + 216, 449, 0, 449, 0, 206, 0, 469, 432, 201, + 422, 0, 446, 432, 0, 453, 212, 206, 0, 450, + 216, 451, 0, 451, 0, 422, 9, 470, 0, 422, + 0, 453, 212, 206, 0, 206, 0, 469, 0, 0, + 471, 0, 469, 0, 469, 0, 194, 0, 469, 0, + 194, 0, 469, 0, 469, 0, 469, 0, 466, 0, + 194, 0, 465, 0, 199, 0, 466, 0, 404, 466, + 0, 464, 0, 126, 0, 124, 0, 198, 0, 197, + 0, 195, 0, 194, 0, 469, 0, 409, 0, 414, + 0, 194, 0, 419, 0, 3, 0, 135, 0, 138, + 0, 139, 0, 140, 0, 40, 0, 142, 0, 185, + 0, 146, 0, 148, 0, 149, 0, 63, 0, 64, + 0, 157, 0, 69, 0, 158, 0, 159, 0, 166, + 0, 82, 0, 187, 0, 90, 0, 168, 0, 172, + 0, 177, 0, 178, 0, 102, 0, 104, 0, 105, + 0, 125, 0, 127, 0, 192, 0, 184, 0, 123, + 0, 469, 0, 186, 0, 136, 0, 24, 0, 26, + 0, 49, 0, 53, 0, 155, 0, 84, 0, 87, + 0, 88, 0, 101, 0, 108, 0, 126, 0, 124, + 0, 27, 0, 161, 0 }; #endif @@ -802,47 +800,46 @@ static const short yyrline[] = { 0, 2265, 2276, 2292, 2293, 2296, 2299, 2303, 2320, 2335, 2360, 2381, 2422, 2441, 2458, 2464, 2468, 2474, 2478, 2494, 2495, 2498, 2499, 2502, 2503, 2506, 2507, 2508, 2509, 2512, 2513, - 2516, 2517, 2520, 2528, 2536, 2546, 2547, 2548, 2549, 2550, - 2551, 2561, 2562, 2565, 2567, 2569, 2573, 2574, 2577, 2578, - 2581, 2589, 2597, 2607, 2611, 2623, 2628, 2629, 2632, 2634, - 2636, 2640, 2646, 2652, 2660, 2661, 2663, 2665, 2667, 2669, - 2671, 2673, 2677, 2678, 2681, 2682, 2683, 2686, 2687, 2690, - 2698, 2706, 2716, 2717, 2720, 2727, 2735, 2737, 2739, 2743, - 2745, 2747, 2762, 2784, 2785, 2792, 2793, 2794, 2797, 2805, - 2806, 2815, 2821, 2826, 2832, 2840, 2842, 2844, 2846, 2850, - 2861, 2867, 2874, 2879, 2885, 2893, 2899, 2912, 2939, 2958, - 2978, 2979, 2980, 2981, 2984, 2985, 2988, 2989, 2992, 2993, - 2996, 3002, 3009, 3015, 3023, 3024, 3025, 3026, 3027, 3028, - 3031, 3032, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, - 3043, 3053, 3055, 3072, 3082, 3092, 3105, 3118, 3124, 3130, - 3134, 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147, 3150, - 3151, 3162, 3167, 3169, 3171, 3179, 3181, 3183, 3185, 3187, - 3189, 3191, 3193, 3195, 3197, 3199, 3201, 3217, 3233, 3235, - 3237, 3239, 3241, 3243, 3245, 3257, 3264, 3271, 3286, 3301, - 3323, 3338, 3360, 3367, 3374, 3384, 3391, 3398, 3406, 3413, - 3420, 3427, 3434, 3436, 3438, 3440, 3447, 3457, 3467, 3477, - 3487, 3493, 3499, 3499, 3513, 3513, 3527, 3537, 3547, 3557, - 3567, 3577, 3587, 3597, 3607, 3617, 3627, 3637, 3647, 3657, - 3667, 3677, 3687, 3697, 3707, 3717, 3727, 3737, 3747, 3757, - 3767, 3769, 3771, 3781, 3786, 3788, 3796, 3798, 3800, 3802, - 3804, 3806, 3808, 3810, 3812, 3828, 3844, 3846, 3848, 3850, - 3852, 3859, 3866, 3881, 3896, 3918, 3933, 3955, 3962, 3969, - 3976, 3984, 3991, 3998, 4005, 4014, 4021, 4028, 4032, 4034, - 4036, 4040, 4047, 4051, 4052, 4053, 4056, 4058, 4062, 4067, - 4069, 4071, 4073, 4075, 4077, 4079, 4081, 4097, 4113, 4115, - 4117, 4119, 4121, 4129, 4136, 4143, 4150, 4158, 4165, 4172, - 4179, 4188, 4192, 4196, 4198, 4207, 4209, 4213, 4215, 4217, - 4221, 4227, 4231, 4233, 4239, 4245, 4249, 4251, 4257, 4265, - 4275, 4277, 4279, 4290, 4292, 4294, 4309, 4316, 4323, 4342, - 4344, 4349, 4356, 4363, 4375, 4389, 4390, 4393, 4398, 4410, - 4411, 4412, 4413, 4414, 4420, 4421, 4423, 4424, 4429, 4436, - 4443, 4450, 4458, 4460, 4470, 4482, 4489, 4490, 4491, 4498, - 4500, 4502, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, - 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, - 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, - 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4560, 4561, 4562, - 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, - 4573, 4574, 4577, 4584 + 2516, 2517, 2520, 2528, 2529, 2530, 2531, 2532, 2533, 2543, + 2544, 2547, 2549, 2551, 2555, 2556, 2559, 2563, 2575, 2580, + 2581, 2584, 2586, 2588, 2592, 2598, 2604, 2612, 2613, 2615, + 2617, 2619, 2621, 2623, 2625, 2629, 2630, 2633, 2634, 2635, + 2638, 2639, 2642, 2657, 2664, 2673, 2674, 2677, 2684, 2692, + 2694, 2696, 2700, 2702, 2704, 2719, 2741, 2742, 2749, 2750, + 2751, 2754, 2762, 2763, 2772, 2778, 2783, 2789, 2797, 2799, + 2801, 2803, 2807, 2818, 2824, 2831, 2836, 2842, 2850, 2856, + 2869, 2896, 2915, 2935, 2936, 2937, 2938, 2941, 2942, 2945, + 2946, 2949, 2950, 2953, 2959, 2966, 2972, 2980, 2981, 2982, + 2983, 2984, 2985, 2988, 2989, 2992, 2993, 2994, 2995, 2996, + 2997, 2998, 2999, 3000, 3010, 3012, 3029, 3039, 3049, 3062, + 3075, 3081, 3087, 3091, 3097, 3098, 3099, 3100, 3101, 3102, + 3103, 3104, 3107, 3108, 3119, 3124, 3126, 3128, 3136, 3138, + 3140, 3142, 3144, 3146, 3148, 3150, 3152, 3154, 3156, 3158, + 3174, 3190, 3192, 3194, 3196, 3198, 3200, 3202, 3214, 3221, + 3228, 3243, 3258, 3280, 3295, 3317, 3324, 3331, 3341, 3348, + 3355, 3363, 3370, 3377, 3384, 3391, 3393, 3395, 3397, 3404, + 3414, 3424, 3434, 3444, 3450, 3456, 3456, 3470, 3470, 3484, + 3494, 3504, 3514, 3524, 3534, 3544, 3554, 3564, 3574, 3584, + 3594, 3604, 3614, 3624, 3634, 3644, 3654, 3664, 3674, 3684, + 3694, 3704, 3714, 3724, 3726, 3728, 3738, 3743, 3745, 3753, + 3755, 3757, 3759, 3761, 3763, 3765, 3767, 3769, 3785, 3801, + 3803, 3805, 3807, 3809, 3816, 3823, 3838, 3853, 3875, 3890, + 3912, 3919, 3926, 3933, 3941, 3948, 3955, 3962, 3971, 3978, + 3985, 3989, 3991, 3993, 3997, 4004, 4008, 4009, 4010, 4013, + 4015, 4019, 4024, 4026, 4028, 4030, 4032, 4034, 4036, 4038, + 4054, 4070, 4072, 4074, 4076, 4078, 4086, 4093, 4100, 4107, + 4115, 4122, 4129, 4136, 4145, 4149, 4153, 4155, 4164, 4166, + 4170, 4172, 4174, 4178, 4184, 4188, 4190, 4196, 4202, 4206, + 4208, 4214, 4222, 4232, 4234, 4236, 4247, 4249, 4251, 4266, + 4273, 4280, 4299, 4301, 4306, 4313, 4320, 4332, 4346, 4347, + 4350, 4355, 4367, 4368, 4369, 4370, 4371, 4377, 4378, 4380, + 4381, 4386, 4393, 4400, 4407, 4415, 4417, 4427, 4439, 4446, + 4447, 4448, 4455, 4457, 4459, 4470, 4471, 4472, 4473, 4474, + 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, + 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, + 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, + 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, + 4527, 4528, 4529, 4530, 4531, 4534, 4541 }; #endif @@ -904,20 +901,19 @@ static const char * const yytname[] = { "$","error","$undefined.","ACTION", "columnList","columnElem","DeleteStmt","LockStmt","UpdateStmt","CursorStmt", "SelectStmt","SubSelect","union_clause","select_list","SubUnion","result","opt_table", "opt_union","opt_unique","sort_clause","sortby_list","sortby","OptUseOp","opt_inh_star", -"relation_name_list","name_list","group_clause","groupby_list","groupby","having_clause", -"from_clause","from_list","from_val","join_expr","join_outer","join_spec","join_list", -"join_using","where_clause","relation_expr","opt_array_bounds","nest_array_bounds", -"Typename","Array","Generic","generic","Numeric","numeric","opt_float","opt_numeric", -"opt_decimal","Character","character","opt_varying","opt_charset","opt_collate", -"Datetime","datetime","opt_timezone","opt_interval","a_expr_or_null","row_expr", -"row_descriptor","row_list","row_op","sub_type","a_expr","@2","@3","b_expr", -"opt_indirection","expr_list","extract_list","extract_arg","position_list","position_expr", -"substr_list","substr_from","substr_for","trim_list","in_expr","in_expr_nodes", -"not_in_expr","not_in_expr_nodes","attr","attrs","res_target_list","res_target_el", -"res_target_list2","res_target_el2","opt_id","relation_name","database_name", -"access_method","attr_name","class","index_name","name","func_name","file_name", -"recipe_name","AexprConst","ParamNo","Iconst","Sconst","UserId","TypeId","ColId", -"ColLabel","SpecialRuleRelation", NULL +"relation_name_list","name_list","group_clause","having_clause","from_clause", +"from_list","from_val","join_expr","join_outer","join_spec","join_list","join_using", +"where_clause","relation_expr","opt_array_bounds","nest_array_bounds","Typename", +"Array","Generic","generic","Numeric","numeric","opt_float","opt_numeric","opt_decimal", +"Character","character","opt_varying","opt_charset","opt_collate","Datetime", +"datetime","opt_timezone","opt_interval","a_expr_or_null","row_expr","row_descriptor", +"row_list","row_op","sub_type","a_expr","@2","@3","b_expr","opt_indirection", +"expr_list","extract_list","extract_arg","position_list","position_expr","substr_list", +"substr_from","substr_for","trim_list","in_expr","in_expr_nodes","not_in_expr", +"not_in_expr_nodes","attr","attrs","res_target_list","res_target_el","res_target_list2", +"res_target_el2","opt_id","relation_name","database_name","access_method","attr_name", +"class","index_name","name","func_name","file_name","recipe_name","AexprConst", +"ParamNo","Iconst","Sconst","UserId","TypeId","ColId","ColLabel","SpecialRuleRelation", NULL }; #endif @@ -967,47 +963,46 @@ static const short yyr1[] = { 0, 366, 366, 367, 367, 368, 368, 369, 370, 371, 372, 373, 374, 375, 376, 376, 377, 377, 378, 379, 379, 380, 380, 381, 381, 382, 382, 382, 382, 383, 383, - 384, 384, 385, 385, 385, 386, 386, 386, 386, 386, - 386, 387, 387, 388, 389, 389, 390, 390, 391, 391, - 392, 392, 392, 393, 393, 394, 394, 394, 395, 395, - 395, 396, 396, 396, 397, 397, 397, 397, 397, 397, - 397, 397, 398, 398, 399, 399, 399, 400, 400, 401, - 401, 401, 402, 402, 403, 403, 404, 404, 404, 405, - 405, 405, 406, 406, 406, 407, 407, 407, 408, 409, - 409, 410, 410, 410, 410, 411, 411, 411, 411, 412, - 412, 413, 413, 413, 414, 414, 414, 415, 415, 416, - 416, 416, 416, 416, 417, 417, 418, 418, 419, 419, - 420, 420, 420, 420, 421, 421, 421, 421, 421, 421, - 422, 422, 423, 423, 423, 423, 423, 423, 423, 423, - 423, 424, 424, 425, 425, 425, 425, 425, 426, 427, - 427, 428, 428, 428, 428, 428, 428, 428, 428, 429, - 429, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 431, 430, 432, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, - 430, 430, 430, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 433, 433, 433, 433, 433, - 433, 433, 433, 433, 433, 434, 434, 434, 435, 435, - 435, 436, 436, 437, 437, 437, 438, 438, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 439, 439, 439, 439, 439, 439, 439, 439, 439, - 439, 440, 440, 441, 441, 442, 442, 443, 443, 443, - 444, 444, 445, 445, 446, 446, 447, 447, 448, 448, - 449, 449, 449, 450, 450, 450, 451, 451, 451, 452, - 452, 453, 453, 453, 453, 454, 454, 455, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 465, - 465, 465, 465, 465, 465, 466, 467, 468, 469, 470, - 470, 470, 471, 471, 471, 471, 471, 471, 471, 471, - 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, - 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, - 471, 471, 471, 471, 471, 471, 471, 472, 472, 472, - 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, - 472, 472, 473, 473 + 384, 384, 385, 386, 386, 386, 386, 386, 386, 387, + 387, 388, 389, 389, 390, 390, 391, 391, 392, 392, + 392, 393, 393, 393, 394, 394, 394, 395, 395, 395, + 395, 395, 395, 395, 395, 396, 396, 397, 397, 397, + 398, 398, 399, 399, 399, 400, 400, 401, 401, 402, + 402, 402, 403, 403, 403, 404, 404, 404, 405, 405, + 405, 406, 407, 407, 408, 408, 408, 408, 409, 409, + 409, 409, 410, 410, 411, 411, 411, 412, 412, 412, + 413, 413, 414, 414, 414, 414, 414, 415, 415, 416, + 416, 417, 417, 418, 418, 418, 418, 419, 419, 419, + 419, 419, 419, 420, 420, 421, 421, 421, 421, 421, + 421, 421, 421, 421, 422, 422, 423, 423, 423, 423, + 423, 424, 425, 425, 426, 426, 426, 426, 426, 426, + 426, 426, 427, 427, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 429, 428, 430, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 432, 432, + 432, 433, 433, 433, 434, 434, 435, 435, 435, 436, + 436, 437, 437, 437, 437, 437, 437, 437, 437, 437, + 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, + 437, 437, 437, 437, 438, 438, 439, 439, 440, 440, + 441, 441, 441, 442, 442, 443, 443, 444, 444, 445, + 445, 446, 446, 447, 447, 447, 448, 448, 448, 449, + 449, 449, 450, 450, 451, 451, 451, 451, 452, 452, + 453, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 463, 463, 463, 463, 463, 463, 464, 465, + 466, 467, 468, 468, 468, 469, 469, 469, 469, 469, + 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, + 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, + 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, + 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 470, 470, 471, 471 }; static const short yyr2[] = { 0, @@ -1056,51 +1051,50 @@ static const short yyr2[] = { 0, 4, 8, 3, 0, 3, 1, 2, 4, 3, 6, 14, 10, 8, 3, 0, 4, 1, 7, 3, 0, 1, 0, 1, 0, 1, 3, 1, 0, 3, 0, - 1, 3, 2, 4, 2, 2, 2, 2, 1, 1, - 0, 1, 0, 1, 1, 3, 3, 0, 1, 3, - 1, 3, 1, 2, 0, 8, 2, 0, 3, 4, - 1, 3, 2, 1, 2, 2, 2, 2, 1, 1, - 1, 0, 1, 0, 4, 4, 0, 1, 3, 1, - 3, 1, 2, 0, 1, 2, 3, 4, 0, 3, - 4, 0, 2, 1, 2, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 1, 2, 1, 1, 3, - 0, 5, 3, 0, 5, 3, 0, 4, 1, 4, - 2, 1, 3, 2, 1, 0, 3, 0, 2, 0, - 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, - 3, 0, 1, 3, 3, 3, 3, 3, 3, 3, - 0, 1, 1, 7, 8, 8, 7, 7, 3, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 2, 3, 3, 3, 3, - 3, 3, 3, 2, 2, 2, 3, 6, 3, 3, - 3, 4, 2, 2, 4, 3, 4, 1, 1, 4, - 1, 4, 1, 1, 4, 4, 4, 4, 5, 5, - 5, 4, 2, 3, 2, 4, 3, 4, 3, 4, - 5, 6, 0, 6, 0, 7, 5, 5, 5, 5, - 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, + 1, 3, 2, 2, 2, 2, 1, 1, 0, 1, + 0, 1, 1, 3, 3, 0, 2, 0, 8, 2, + 0, 3, 4, 1, 3, 2, 1, 2, 2, 2, + 2, 1, 1, 1, 0, 1, 0, 4, 4, 0, + 1, 3, 1, 3, 1, 2, 0, 1, 2, 3, + 4, 0, 3, 4, 0, 2, 1, 2, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, + 1, 1, 3, 0, 5, 3, 0, 5, 3, 0, + 4, 1, 4, 2, 1, 3, 2, 1, 0, 3, + 0, 2, 0, 1, 2, 1, 2, 1, 1, 1, + 1, 1, 1, 3, 0, 1, 3, 3, 3, 3, + 3, 3, 3, 0, 1, 1, 7, 8, 8, 7, + 7, 3, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 2, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 2, 3, + 6, 3, 3, 3, 4, 2, 2, 4, 3, 4, + 1, 1, 4, 1, 4, 1, 1, 4, 4, 4, + 4, 5, 5, 5, 4, 2, 3, 2, 4, 3, + 4, 3, 4, 5, 6, 0, 6, 0, 7, 5, + 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 3, 3, 2, 2, 1, 1, 2, 3, 3, 3, - 3, 2, 2, 2, 3, 6, 3, 3, 2, 2, - 3, 4, 1, 1, 4, 1, 4, 1, 1, 4, - 4, 5, 5, 5, 4, 4, 6, 0, 1, 3, - 3, 3, 0, 1, 1, 1, 3, 0, 2, 1, - 2, 3, 3, 3, 3, 2, 3, 6, 3, 3, - 2, 2, 1, 3, 4, 4, 4, 5, 5, 5, - 4, 3, 0, 2, 0, 2, 0, 3, 2, 1, - 1, 1, 1, 3, 1, 1, 1, 3, 3, 3, - 1, 3, 3, 3, 1, 1, 4, 2, 3, 3, - 1, 3, 1, 3, 1, 1, 0, 1, 1, 1, + 6, 6, 6, 3, 3, 2, 2, 1, 1, 2, + 3, 3, 3, 3, 2, 2, 2, 3, 6, 3, + 3, 2, 2, 3, 4, 1, 1, 4, 1, 4, + 1, 1, 4, 4, 5, 5, 5, 4, 4, 6, + 0, 1, 3, 3, 3, 0, 1, 1, 1, 3, + 0, 2, 1, 2, 3, 3, 3, 3, 2, 3, + 6, 3, 3, 2, 2, 1, 3, 4, 4, 4, + 5, 5, 5, 4, 3, 0, 2, 0, 2, 0, + 3, 2, 1, 1, 1, 1, 3, 1, 1, 1, + 3, 3, 3, 1, 3, 3, 3, 1, 1, 4, + 2, 3, 3, 1, 3, 1, 3, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1 }; static const short yydefact[] = { 0, - 0, 386, 777, 386, 228, 0, 0, 0, 386, 0, + 0, 386, 770, 386, 228, 0, 0, 0, 386, 0, 279, 0, 0, 0, 0, 386, 448, 0, 0, 386, 0, 93, 406, 0, 0, 0, 442, 279, 0, 0, 406, 1, 2, 15, 7, 21, 45, 46, 47, 6, @@ -1108,109 +1102,109 @@ static const short yydefact[] = { 0, 18, 24, 25, 36, 26, 22, 30, 29, 34, 31, 33, 32, 35, 38, 418, 27, 39, 40, 41, 42, 43, 16, 44, 23, 37, 417, 419, 28, 416, 415, - 414, 0, 0, 385, 384, 380, 805, 557, 810, 558, - 816, 817, 819, 559, 556, 823, 825, 560, 830, 831, - 832, 555, 837, 833, 834, 806, 807, 808, 809, 811, - 813, 814, 815, 818, 820, 821, 822, 826, 827, 828, - 829, 836, 812, 824, 835, 803, 804, 85, 776, 381, + 414, 0, 0, 385, 384, 380, 798, 550, 803, 551, + 809, 810, 812, 552, 549, 816, 818, 553, 823, 824, + 825, 548, 830, 826, 827, 799, 800, 801, 802, 804, + 806, 807, 808, 811, 813, 814, 815, 819, 820, 821, + 822, 829, 805, 817, 828, 796, 797, 85, 769, 381, 0, 303, 0, 0, 0, 255, 256, 0, 0, 254, - 0, 0, 227, 0, 0, 0, 93, 785, 0, 0, + 0, 0, 227, 0, 0, 0, 93, 778, 0, 0, 0, 335, 0, 332, 0, 0, 0, 333, 0, 0, 334, 0, 0, 382, 0, 278, 277, 282, 287, 294, - 292, 291, 293, 295, 0, 288, 289, 0, 853, 854, - 377, 779, 778, 0, 383, 447, 445, 0, 400, 830, - 0, 0, 379, 0, 784, 92, 0, 405, 0, 0, - 378, 798, 388, 787, 441, 0, 282, 830, 76, 830, - 74, 408, 4, 5, 463, 799, 52, 207, 52, 0, - 0, 390, 780, 0, 786, 0, 213, 0, 258, 257, + 292, 291, 293, 295, 0, 288, 289, 0, 846, 847, + 377, 772, 771, 0, 383, 447, 445, 0, 400, 823, + 0, 0, 379, 0, 777, 92, 0, 405, 0, 0, + 378, 791, 388, 780, 441, 0, 282, 823, 76, 823, + 74, 408, 4, 5, 461, 792, 52, 207, 52, 0, + 0, 390, 773, 0, 779, 0, 213, 0, 258, 257, 261, 349, 347, 348, 343, 344, 345, 346, 252, 0, - 260, 259, 0, 0, 504, 273, 464, 465, 50, 0, - 0, 401, 0, 341, 0, 342, 0, 274, 331, 788, - 320, 281, 797, 284, 280, 286, 0, 0, 424, 0, - 0, 0, 546, 546, 618, 619, 621, 623, 537, 810, - 0, 0, 531, 571, 0, 546, 0, 573, 534, 0, - 0, 830, 562, 0, 624, 542, 795, 794, 834, 0, - 803, 0, 796, 790, 0, 775, 0, 0, 0, 0, - 0, 509, 516, 519, 518, 514, 539, 517, 804, 773, - 593, 572, 708, 440, 771, 0, 0, 594, 793, 789, - 791, 595, 399, 68, 398, 0, 0, 0, 0, 0, - 95, 413, 504, 429, 284, 77, 75, 407, 403, 3, - 462, 0, 0, 55, 101, 0, 55, 0, 232, 231, + 260, 259, 0, 0, 497, 273, 462, 463, 50, 0, + 0, 401, 0, 341, 0, 342, 0, 274, 331, 781, + 320, 281, 790, 284, 280, 286, 0, 0, 424, 0, + 0, 0, 539, 539, 611, 612, 614, 616, 530, 803, + 0, 0, 524, 564, 0, 539, 0, 566, 527, 0, + 0, 823, 555, 0, 617, 535, 788, 787, 827, 0, + 796, 0, 789, 783, 0, 768, 0, 0, 0, 0, + 0, 502, 509, 512, 511, 507, 532, 510, 797, 766, + 586, 565, 701, 440, 764, 0, 0, 587, 786, 782, + 784, 588, 399, 68, 398, 0, 0, 0, 0, 0, + 95, 413, 497, 429, 284, 77, 75, 407, 403, 3, + 460, 0, 0, 55, 101, 0, 55, 0, 232, 231, 0, 392, 0, 0, 359, 211, 0, 0, 253, 0, 0, 0, 428, 0, 0, 338, 336, 337, 339, 0, 229, 0, 275, 0, 290, 0, 0, 0, 446, 0, - 545, 541, 548, 0, 0, 0, 524, 523, 0, 713, - 0, 522, 557, 558, 559, 555, 563, 554, 546, 544, - 673, 0, 0, 525, 718, 743, 0, 552, 0, 0, - 553, 521, 520, 515, 551, 613, 596, 606, 604, 605, - 0, 0, 0, 572, 792, 0, 513, 0, 0, 0, - 0, 643, 0, 0, 0, 0, 633, 635, 614, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 592, 442, - 0, 478, 0, 0, 0, 72, 73, 67, 71, 70, - 65, 69, 66, 766, 708, 478, 765, 0, 0, 708, + 538, 534, 541, 0, 0, 0, 517, 516, 0, 706, + 0, 515, 550, 551, 552, 548, 556, 547, 539, 537, + 666, 0, 0, 518, 711, 736, 0, 545, 0, 0, + 546, 514, 513, 508, 544, 606, 589, 599, 597, 598, + 0, 0, 0, 565, 785, 0, 506, 0, 0, 0, + 0, 636, 0, 0, 0, 0, 626, 628, 607, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 585, 442, + 0, 471, 0, 0, 0, 72, 73, 67, 71, 70, + 65, 69, 66, 759, 701, 471, 758, 0, 0, 701, 402, 0, 0, 319, 276, 410, 358, 358, 358, 358, 78, 0, 53, 54, 58, 0, 0, 0, 0, 0, 0, 100, 102, 103, 148, 0, 209, 210, 0, 58, - 387, 237, 236, 238, 0, 233, 0, 394, 528, 810, - 526, 529, 325, 0, 801, 802, 326, 800, 330, 0, + 387, 237, 236, 238, 0, 233, 0, 394, 521, 803, + 519, 522, 325, 0, 794, 795, 326, 793, 330, 0, 0, 215, 0, 0, 0, 0, 212, 0, 0, 266, - 0, 263, 0, 0, 503, 466, 251, 0, 0, 350, - 283, 0, 0, 426, 708, 448, 0, 420, 0, 0, - 0, 550, 0, 0, 0, 448, 0, 715, 716, 714, - 0, 0, 0, 0, 0, 0, 0, 543, 0, 0, + 0, 263, 0, 0, 496, 464, 251, 0, 0, 350, + 283, 0, 0, 426, 701, 448, 0, 420, 0, 0, + 0, 543, 0, 0, 0, 448, 0, 708, 709, 707, + 0, 0, 0, 0, 0, 0, 0, 536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 708, 0, 720, 733, 709, 745, 0, 0, 0, 0, - 0, 0, 572, 750, 0, 609, 0, 0, 512, 0, - 0, 841, 842, 843, 844, 846, 847, 848, 849, 850, - 852, 851, 840, 845, 839, 838, 772, 671, 0, 693, - 694, 696, 698, 0, 0, 0, 699, 0, 0, 0, - 0, 0, 0, 0, 708, 0, 675, 676, 0, 0, - 634, 639, 637, 611, 0, 645, 0, 672, 0, 0, - 0, 610, 0, 0, 0, 603, 0, 0, 0, 601, - 0, 0, 0, 602, 0, 0, 0, 597, 0, 0, - 0, 598, 0, 0, 0, 600, 0, 0, 0, 599, - 607, 0, 0, 770, 0, 504, 774, 759, 761, 782, - 0, 616, 0, 760, 768, 0, 504, 0, 0, 94, + 701, 0, 713, 726, 702, 738, 0, 0, 0, 0, + 0, 0, 565, 743, 0, 602, 0, 0, 505, 0, + 0, 834, 835, 836, 837, 839, 840, 841, 842, 843, + 845, 844, 833, 838, 832, 831, 765, 664, 0, 686, + 687, 689, 691, 0, 0, 0, 692, 0, 0, 0, + 0, 0, 0, 0, 701, 0, 668, 669, 0, 0, + 627, 632, 630, 604, 0, 638, 0, 665, 0, 0, + 0, 603, 0, 0, 0, 596, 0, 0, 0, 594, + 0, 0, 0, 595, 0, 0, 0, 590, 0, 0, + 0, 591, 0, 0, 0, 593, 0, 0, 0, 592, + 600, 0, 0, 763, 0, 497, 767, 752, 754, 775, + 0, 609, 0, 753, 761, 0, 497, 0, 0, 94, 88, 87, 0, 0, 404, 357, 101, 84, 0, 0, 0, 356, 51, 56, 57, 62, 0, 0, 0, 0, 0, 0, 202, 0, 206, 106, 205, 62, 0, 0, - 397, 0, 389, 527, 0, 324, 329, 323, 0, 0, + 397, 0, 389, 520, 0, 324, 329, 323, 0, 0, 0, 214, 224, 216, 217, 218, 219, 0, 0, 0, 0, 262, 306, 448, 0, 340, 0, 0, 296, 300, 298, 0, 423, 427, 0, 0, 301, 0, 0, 0, - 540, 620, 622, 0, 536, 0, 625, 626, 0, 530, - 565, 566, 567, 568, 569, 570, 564, 0, 533, 0, - 718, 743, 0, 731, 721, 726, 0, 627, 0, 732, - 0, 0, 0, 0, 0, 719, 0, 0, 0, 0, - 747, 628, 561, 0, 749, 0, 0, 0, 632, 0, - 0, 582, 584, 583, 585, 586, 587, 588, 589, 0, - 579, 0, 507, 512, 538, 0, 0, 0, 718, 743, - 0, 689, 677, 684, 682, 683, 0, 0, 690, 0, - 0, 0, 0, 0, 674, 0, 0, 636, 638, 640, - 0, 0, 612, 0, 0, 0, 0, 0, 0, 0, + 533, 613, 615, 0, 529, 0, 618, 619, 0, 523, + 558, 559, 560, 561, 562, 563, 557, 0, 526, 0, + 711, 736, 0, 724, 714, 719, 0, 620, 0, 725, + 0, 0, 0, 0, 0, 712, 0, 0, 0, 0, + 740, 621, 554, 0, 742, 0, 0, 0, 625, 0, + 0, 575, 577, 576, 578, 579, 580, 581, 582, 0, + 572, 0, 500, 505, 531, 0, 0, 0, 711, 736, + 0, 682, 670, 677, 675, 676, 0, 0, 683, 0, + 0, 0, 0, 0, 667, 0, 0, 629, 631, 633, + 0, 0, 605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 708, 439, - 0, 477, 481, 484, 505, 468, 0, 615, 617, 764, - 430, 769, 0, 90, 91, 97, 89, 0, 411, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 701, 439, + 0, 470, 474, 477, 498, 466, 0, 608, 610, 757, + 430, 762, 0, 90, 91, 97, 89, 0, 411, 0, 0, 79, 0, 81, 0, 355, 0, 64, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 155, - 793, 157, 147, 0, 0, 0, 99, 0, 204, 208, + 786, 157, 147, 0, 0, 0, 99, 0, 204, 208, 210, 0, 0, 0, 0, 0, 0, 114, 104, 105, 108, 110, 64, 0, 234, 396, 391, 395, 400, 327, 0, 0, 328, 373, 374, 371, 372, 0, 225, 0, 0, 222, 344, 270, 220, 221, 267, 269, 271, 268, 265, 264, 0, 0, 0, 352, 353, 351, 297, 0, - 285, 425, 478, 0, 0, 547, 549, 0, 478, 712, - 0, 0, 0, 0, 0, 0, 0, 0, 729, 717, - 730, 722, 723, 725, 724, 727, 734, 0, 744, 711, - 710, 0, 742, 629, 630, 631, 748, 0, 0, 591, - 590, 0, 0, 512, 0, 508, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 687, 641, 688, 678, 679, - 681, 680, 685, 691, 0, 751, 0, 752, 753, 0, - 0, 0, 0, 647, 0, 0, 654, 0, 0, 652, - 0, 0, 653, 0, 0, 648, 0, 0, 649, 0, - 0, 651, 0, 0, 650, 0, 706, 492, 0, 0, - 0, 483, 506, 0, 475, 763, 762, 767, 0, 86, + 285, 425, 471, 0, 0, 540, 542, 0, 471, 705, + 0, 0, 0, 0, 0, 0, 0, 0, 722, 710, + 723, 715, 716, 718, 717, 720, 727, 0, 737, 704, + 703, 0, 735, 622, 623, 624, 741, 0, 0, 584, + 583, 0, 0, 505, 0, 501, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 680, 634, 681, 671, 672, + 674, 673, 678, 684, 0, 744, 0, 745, 746, 0, + 0, 0, 0, 640, 0, 0, 647, 0, 0, 645, + 0, 0, 646, 0, 0, 641, 0, 0, 642, 0, + 0, 644, 0, 0, 643, 0, 699, 485, 0, 0, + 0, 476, 499, 0, 468, 756, 755, 760, 0, 86, 0, 409, 80, 0, 0, 0, 0, 0, 49, 0, 178, 179, 158, 168, 166, 167, 0, 0, 0, 0, 0, 181, 183, 180, 0, 0, 0, 0, 0, 0, @@ -1218,623 +1212,593 @@ static const short yydefact[] = { 0, 0, 0, 0, 140, 141, 143, 145, 120, 146, 0, 0, 0, 0, 0, 0, 112, 0, 119, 113, 115, 424, 107, 48, 241, 0, 0, 393, 322, 0, 0, - 0, 272, 223, 781, 305, 0, 478, 0, 504, 421, - 608, 535, 504, 532, 0, 736, 737, 0, 0, 0, - 741, 735, 746, 0, 0, 0, 0, 581, 0, 510, - 512, 0, 695, 697, 700, 701, 0, 0, 0, 705, - 692, 644, 0, 642, 755, 0, 756, 757, 663, 655, - 670, 662, 668, 660, 669, 661, 664, 656, 665, 657, - 667, 659, 666, 658, 708, 494, 490, 494, 492, 489, - 494, 491, 0, 479, 0, 482, 0, 0, 435, 0, + 0, 272, 223, 774, 305, 0, 471, 0, 497, 421, + 601, 528, 497, 525, 0, 729, 730, 0, 0, 0, + 734, 728, 739, 0, 0, 0, 0, 574, 0, 503, + 505, 0, 688, 690, 693, 694, 0, 0, 0, 698, + 685, 637, 0, 635, 748, 0, 749, 750, 656, 648, + 663, 655, 661, 653, 662, 654, 657, 649, 658, 650, + 660, 652, 659, 651, 701, 487, 483, 487, 485, 482, + 487, 484, 0, 472, 0, 475, 0, 0, 435, 0, 412, 83, 0, 354, 61, 60, 0, 0, 171, 176, 0, 182, 186, 185, 175, 177, 174, 163, 164, 165, 159, 160, 162, 161, 169, 172, 0, 154, 0, 151, 0, 0, 0, 109, 0, 0, 0, 138, 121, 131, 129, 130, 0, 139, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 191, 240, 0, 0, 235, 0, 504, - 370, 226, 0, 307, 308, 310, 315, 0, 782, 504, - 299, 468, 468, 0, 738, 739, 740, 574, 0, 577, - 578, 0, 511, 0, 702, 703, 704, 754, 646, 0, - 707, 493, 486, 487, 485, 488, 0, 480, 467, 469, - 473, 471, 474, 444, 450, 96, 82, 0, 63, 0, - 184, 188, 187, 0, 173, 0, 201, 203, 111, 0, - 0, 0, 134, 137, 126, 127, 128, 122, 123, 125, - 124, 132, 135, 0, 118, 0, 194, 242, 243, 239, - 0, 0, 0, 0, 323, 0, 0, 0, 318, 0, - 468, 475, 475, 728, 575, 576, 686, 758, 497, 0, - 0, 443, 0, 0, 432, 59, 0, 153, 424, 0, - 142, 144, 0, 136, 189, 190, 0, 116, 193, 0, - 321, 376, 369, 302, 309, 314, 313, 0, 783, 312, - 316, 0, 475, 435, 435, 0, 0, 0, 470, 472, - 448, 434, 437, 0, 170, 191, 0, 117, 0, 0, - 192, 246, 375, 0, 317, 315, 435, 422, 433, 0, - 0, 476, 0, 444, 449, 451, 461, 461, 194, 133, - 198, 0, 0, 195, 196, 250, 247, 248, 0, 244, - 249, 361, 0, 360, 362, 318, 450, 0, 0, 498, - 502, 500, 478, 0, 0, 459, 460, 0, 455, 0, + 0, 0, 0, 191, 240, 0, 0, 235, 0, 497, + 370, 226, 0, 307, 308, 310, 315, 0, 775, 497, + 299, 466, 466, 0, 731, 732, 733, 567, 0, 570, + 571, 0, 504, 0, 695, 696, 697, 747, 639, 0, + 700, 486, 479, 480, 478, 481, 0, 473, 465, 467, + 444, 450, 96, 82, 0, 63, 0, 184, 188, 187, + 0, 173, 0, 201, 203, 111, 0, 0, 0, 134, + 137, 126, 127, 128, 122, 123, 125, 124, 132, 135, + 0, 118, 0, 194, 242, 243, 239, 0, 0, 0, + 0, 323, 0, 0, 0, 318, 0, 466, 468, 468, + 721, 568, 569, 679, 751, 490, 443, 0, 0, 432, + 59, 0, 153, 424, 0, 142, 144, 0, 136, 189, + 190, 0, 116, 193, 0, 321, 376, 369, 302, 309, + 314, 313, 0, 776, 312, 316, 0, 468, 435, 435, + 0, 0, 0, 448, 434, 437, 0, 170, 191, 0, + 117, 0, 0, 192, 246, 375, 0, 317, 315, 435, + 422, 433, 0, 0, 469, 0, 444, 449, 451, 459, + 194, 133, 198, 0, 0, 195, 196, 250, 247, 248, + 0, 244, 249, 361, 0, 360, 362, 318, 450, 0, + 0, 491, 495, 493, 471, 0, 0, 457, 458, 0, 453, 152, 197, 199, 200, 0, 230, 0, 364, 365, - 311, 431, 495, 0, 496, 0, 504, 436, 452, 456, - 457, 458, 461, 245, 363, 367, 368, 499, 501, 468, - 454, 366, 475, 438, 0, 0, 0 + 311, 431, 488, 0, 489, 0, 497, 436, 452, 454, + 455, 456, 245, 363, 367, 368, 492, 494, 466, 366, + 468, 438, 0, 0, 0 }; -static const short yydefgoto[] = { 1555, +static const short yydefgoto[] = { 1543, 32, 33, 34, 35, 36, 354, 495, 726, 1265, 928, 1119, 37, 471, 468, 38, 39, 40, 491, 41, 42, 713, 916, 197, 483, 1110, 43, 501, 502, 503, 959, - 960, 961, 962, 1394, 1166, 504, 505, 1287, 938, 1397, - 1438, 1439, 1494, 949, 1150, 44, 356, 506, 507, 45, + 960, 961, 962, 1391, 1166, 504, 505, 1287, 938, 1394, + 1433, 1434, 1486, 949, 1150, 44, 356, 506, 507, 45, 366, 537, 984, 985, 986, 46, 144, 47, 48, 361, - 515, 516, 1175, 1316, 1400, 1499, 1500, 49, 50, 239, + 515, 516, 1175, 1316, 1397, 1491, 1492, 49, 50, 239, 145, 540, 369, 541, 542, 987, 51, 52, 168, 264, 383, 53, 175, 176, 177, 770, 1001, 54, 55, 146, - 994, 1323, 1324, 1325, 1326, 1409, 1450, 56, 57, 58, + 994, 1323, 1324, 1325, 1326, 1406, 1445, 56, 57, 58, 972, 364, 524, 748, 749, 59, 163, 60, 377, 61, - 62, 988, 241, 549, 63, 925, 719, 64, 530, 1504, - 1528, 1529, 1320, 978, 1474, 65, 66, 67, 86, 68, + 62, 988, 241, 549, 63, 925, 719, 64, 530, 1496, + 1518, 1519, 1320, 978, 1467, 65, 66, 67, 86, 68, 69, 70, 518, 743, 967, 334, 71, 72, 73, 199, 349, 715, 918, 74, 75, 76, 558, 387, 553, 554, - 77, 78, 79, 80, 81, 567, 1365, 1462, 1463, 462, - 206, 1423, 188, 1425, 1485, 1486, 1519, 352, 246, 247, - 1105, 1359, 1360, 1259, 696, 902, 903, 1253, 1353, 1458, - 1509, 1510, 373, 904, 437, 843, 311, 312, 313, 314, - 315, 525, 402, 414, 397, 316, 317, 392, 562, 781, - 318, 319, 418, 408, 595, 321, 432, 433, 840, 1043, - 322, 649, 872, 644, 459, 604, 571, 572, 589, 590, - 597, 821, 1033, 605, 1067, 1068, 1226, 1227, 323, 698, - 476, 477, 324, 325, 128, 412, 222, 1185, 699, 1451, - 194, 248, 327, 203, 261, 328, 329, 330, 331, 217, - 527, 332, 627, 183 + 77, 78, 79, 80, 81, 567, 1362, 1455, 1456, 462, + 206, 1418, 188, 1420, 1478, 1479, 1511, 352, 246, 247, + 1105, 1259, 696, 902, 903, 1253, 1353, 1453, 1501, 1502, + 373, 904, 437, 843, 311, 312, 313, 314, 315, 525, + 402, 414, 397, 316, 317, 392, 562, 781, 318, 319, + 418, 408, 595, 321, 432, 433, 840, 1043, 322, 649, + 872, 644, 459, 604, 571, 572, 589, 590, 597, 821, + 1033, 605, 1067, 1068, 1226, 1227, 323, 698, 476, 477, + 324, 325, 128, 412, 222, 1185, 699, 1446, 194, 248, + 327, 203, 261, 328, 329, 330, 331, 217, 527, 332, + 627, 183 }; -static const short yypact[] = { 12019, - 269, 22, 11470, 22, 2959, 11470, 7, 1689, 22, -75, - 138, 384, 91, 10708, 384, 22, 101, 10962, 10708, 22, - 11470, 46, 28, 41, 10708, 98, 246, 138, 11597, 11724, - 28, 12019, 113,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +static const short yypact[] = { 11941, + 238, -20, 11392, -20, 1427, 11392, 52, 2004, -20, 3, + 106, 161, 88, 10630, 161, -20, 169, 10884, 10630, -20, + 11392, 46, 13, 100, 10630, 153, 263, 106, 11519, 11646, + 13, 11941, 212,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 10708, 194,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 10630, 240,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 10708,-32768, 194, 11470, 11470,-32768,-32768, 11470, 11470,-32768, - 11470, 10708,-32768, 195, 9223, 245, 46,-32768, 10708, 11470, - 194,-32768, 11470,-32768, 11470, 11470, 11470,-32768, 1080, 338, --32768, 11470, 11470,-32768, 216,-32768,-32768, 26, 341,-32768, --32768,-32768,-32768,-32768, 351, 223,-32768, 10708,-32768,-32768, --32768,-32768,-32768, 354,-32768,-32768, 362, 4719, 18, 347, - -38, 374,-32768, 400,-32768,-32768, 10708,-32768, 764, 11470, --32768,-32768,-32768,-32768,-32768, 10708, 26, 376,-32768, 403, --32768, 364, 332,-32768, 339,-32768, 424, 331, 424, 552, - 72, 453,-32768, 369,-32768, 572,-32768, 526,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 383, --32768,-32768, 11470, 575, 495,-32768, 412,-32768,-32768, 550, - 9516,-32768, 369,-32768, 447,-32768, 98,-32768,-32768,-32768, --32768,-32768,-32768, 611,-32768,-32768, 11470, 386, 471, 11470, - 11470, 472, 554, 554,-32768, 481, 482,-32768, 489, 607, - 490, 493, 496, 279, 705, 554, 7124,-32768, 509, 515, - 516, 67, 617, 524,-32768,-32768,-32768,-32768, 71, 1585, - 81, 7124,-32768,-32768, 7124,-32768, 7124, 7124, 7124, 6569, - 98, 540,-32768,-32768,-32768,-32768, 537,-32768, 129, 751, --32768, 8831, 553, -2,-32768, 551, 558,-32768, 560,-32768, --32768, 62,-32768,-32768,-32768, 33, 51, 51, 9376, 10708, - 659,-32768, 495,-32768, 611,-32768,-32768,-32768, 10708,-32768, --32768, 47, 593, -67, 10581, 791, -67, 706,-32768,-32768, - 66, 646, 3958, 634,-32768, 507, 98, 9070,-32768, 731, - 765, 7124,-32768, 11470, 10708,-32768,-32768,-32768,-32768, 11089, --32768, 11470,-32768, 713,-32768, 11470, 106, 776,-32768, 7124, --32768,-32768, 816, 638, 638, 638,-32768,-32768, 739, 630, - 638,-32768, 732, 746, 747, 757,-32768,-32768, 554,-32768, - 1465, 633, 638,-32768, 7989, 6569, 745,-32768, 4138, 607, --32768,-32768,-32768,-32768,-32768, 406, 649, 649, 649, 649, - 647, 652, 656, 2146,-32768, 203,-32768, 638, 10313, 7124, - 7297,-32768, 266, 7124, 60, 7124,-32768,-32768, 6754, 4904, - 5089, 5274, 5459, 5644, 5829, 6014, 2766, 7124,-32768, 246, - 4719, 823, 9643, 3218, 11470,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 553, -9,-32768, 665, 560, 317, --32768, 721, 27,-32768,-32768, 670, 37, 866, 866, 866, --32768, 194,-32768,-32768, 123, 672, 11470, 827, 829, 677, - 157,-32768,-32768,-32768,-32768, 204,-32768, 2766, 739, 123, --32768,-32768,-32768,-32768, 814, 817, 696, 714,-32768, 818, --32768,-32768,-32768, 298,-32768,-32768,-32768,-32768, 727, 824, - 68,-32768, 68, 68, 68, 68,-32768, 760, 707, 708, - 302,-32768, 10708, 813, 8831,-32768,-32768, 697, 702, 709, --32768, 10835, 306,-32768, 553, 101, 711,-32768, 10835, 2984, - 825, 901, 717, 722, 404, 101, 725,-32768,-32768,-32768, - 734, 873, 737, 308, 32, 842, 878,-32768, 11470, 428, - 740, 744, 748, 753, 7989, 7989, 7989, 7989, 761, 222, - 553, 754,-32768, 62,-32768, -4, 763, 839, 6199, 6569, - 6199, 6199, 8763, -54, 766,-32768, 391, 7124, 750, 768, - 767,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 1465, 758,-32768, - 770, 771,-32768, 772, 778, 780,-32768, 7297, 7297, 7297, - 7297, 7297, 7124, 54, 553, 782,-32768, 62, 783, 166, --32768,-32768,-32768, 854, 7297,-32768, 7124, 1392, 784, 786, - 6384, 406, 788, 790, 6384, 1891, 799, 800, 6384, 587, - 802, 803, 6384, 587, 804, 805, 6384, 326, 807, 811, - 6384, 326, 815, 830, 6384, 649, 840, 845, 6384, 649, --32768, 2556, 10708,-32768, 8657, 495,-32768, 752,-32768,-32768, - 812,-32768, -49, 752,-32768, 10024, 495, 9770, 779,-32768, --32768,-32768, 312, 11470,-32768,-32768, 10581,-32768, 11470, 11470, - 11470, 11470,-32768,-32768,-32768, 969, 8335, 88, 846, 847, - 11470, 10581, 881, 11470,-32768, 461,-32768, 969, 10708, 66, - 56, 834,-32768,-32768, 10440,-32768,-32768, 924, 10440, 388, - 638,-32768,-32768,-32768,-32768,-32768,-32768, 9223, 8917, 8917, - 9070,-32768, 942, 101, 11470,-32768, 11216, 11470,-32768, 945, --32768, 11470,-32768,-32768, 4719, 4719,-32768, 2766, 11470, 11470, --32768,-32768,-32768, 638,-32768, 4719,-32768,-32768, 7124,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 638,-32768, 7989, - 7989, 6569, 4336, 297, 851, 851, 741,-32768, 7989, 8162, - 7989, 7989, 7989, 7989, 2766,-32768, 3415, 6569, 7124, 6569, - 1020,-32768,-32768, 853, -54, 856, 858, 6569,-32768, 855, - 1021,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 39, - 2398, 219,-32768, 750,-32768, 7297, 638, 638, 7989, 6569, - 4534, 787, 870, 870, 870, 870, 1261, 7297, 7470, 7297, - 7297, 7297, 7297, 2766,-32768, 3612, 11851,-32768,-32768,-32768, - 92, 871, 854, 739, 739, 869, 739, 739, 876, 739, - 739, 882, 739, 739, 889, 739, 739, 891, 739, 739, - 893, 739, 739, 894, 739, 739, 897, 7124, 553,-32768, - 10708, 883, 1063, 11343, 910, 1069, 9897,-32768,-32768,-32768, --32768,-32768, 6569,-32768,-32768, 1009,-32768, 431,-32768, 435, - 2766,-32768, 21,-32768, 1018,-32768, 1073, 938, 922, 8335, --32768, 8335, 8335, 8335, 8335, 8335, 8335, 1781, 923,-32768, --32768, 925,-32768, 11470, 11470, 478,-32768, 926, 958,-32768, --32768, 929, 11470, 7643, 1068, 1086, 11470,-32768,-32768, 461, --32768,-32768, 938, 1102, 1070,-32768,-32768,-32768, 18,-32768, - 383, 1142,-32768,-32768,-32768,-32768,-32768, 1046,-32768, 1002, - 11470,-32768, 392,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 962, 947, 4719,-32768,-32768,-32768,-32768, 1114, --32768,-32768, 2, 486, 949,-32768,-32768, 950, 2, 8831, - 951, 104, 953, 954, 6199, 6199, 6199, 955,-32768, 899, - 297, 340, 340, 851, 851,-32768,-32768, -48, -54, 8831, --32768, 6569,-32768,-32768,-32768,-32768, -54, 739, 959,-32768, --32768, 6939, 965, 750, 961,-32768, 191, 966, 968, 970, - 973, 6199, 6199, 6199, 975,-32768, 914, 787, 345, 345, - 870, 870,-32768,-32768, -44,-32768, 976, 971,-32768, 7297, - 11851, 977, 978,-32768, 980, 981,-32768, 982, 984,-32768, - 986, 987,-32768, 990, 991,-32768, 994, 998,-32768, 1000, - 1001,-32768, 1005, 1006,-32768, 8675,-32768, 664, 10708, 1130, - 10313,-32768,-32768, 1206, 1172,-32768,-32768,-32768, 1091,-32768, - 11470,-32768,-32768, 1196, 1197, 11470, 194, 1043,-32768, 8335, - 1567, 762, 1023, 1023, 1023, 1023, 1860, 8335, 287, 8335, - 8335,-32768,-32768, 8508, 8335, 8335, 8335, 8335, 8335, 8335, - 8335, 2766,-32768, 2826, 504, 529,-32768, 11470, 1038,-32768, - 8335, 598, 1024,-32768, 1025, 1026,-32768,-32768,-32768, 7643, - 7643, 7643, 7643, 7643, 7643, 1060, 1028,-32768,-32768,-32768, - 471,-32768,-32768, 1098, 1203, 66,-32768,-32768, 98, 10708, - 98,-32768,-32768,-32768,-32768, 11470, 2, 1165, 495,-32768, --32768,-32768, 495,-32768, 2766,-32768,-32768, 1030, 1031, 1033, --32768,-32768, -54, 1035, 739, 1039, 1040, 8831, 739,-32768, - 750, 2766,-32768,-32768,-32768,-32768, 1041, 1053, 1056,-32768, --32768,-32768, 11911, 914,-32768, 1059, 1074,-32768,-32768,-32768, + 10630,-32768, 240, 11392, 11392,-32768,-32768, 11392, 11392,-32768, + 11392, 10630,-32768, 272, 9145, 299, 46,-32768, 10630, 11392, + 240,-32768, 11392,-32768, 11392, 11392, 11392,-32768, 800, 389, +-32768, 11392, 11392,-32768, 262,-32768,-32768, 19, 381,-32768, +-32768,-32768,-32768,-32768, 380, 256,-32768, 10630,-32768,-32768, +-32768,-32768,-32768, 398,-32768,-32768, 411, 4809, 25, 376, + -25, 407,-32768, 429,-32768,-32768, 10630,-32768, 269, 11392, +-32768,-32768,-32768,-32768,-32768, 10630, 19, 396,-32768, 405, +-32768, 402, 337,-32768, 332,-32768, 428, 334, 428, 554, + 149, 437,-32768, 350,-32768, 559,-32768, 500,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 358, +-32768,-32768, 11392, 545, 484,-32768, 388,-32768,-32768, 526, + 9438,-32768, 350,-32768, 392,-32768, 153,-32768,-32768,-32768, +-32768,-32768,-32768, 560,-32768,-32768, 11392, 93, 403, 11392, + 11392, 408, 517, 517,-32768, 440, 461,-32768, 465, 566, + 467, 471, 481, 228, 625, 517, 7214,-32768, 487, 491, + 492, -117, 593, 509,-32768,-32768,-32768,-32768, 90, 2128, + 116, 7214,-32768,-32768, 7214,-32768, 7214, 7214, 7214, 6659, + 153, 514,-32768,-32768,-32768,-32768, 513,-32768, 119, 666, +-32768, 8753, 531, -2,-32768, 522, 523,-32768, 541,-32768, +-32768, 118,-32768,-32768,-32768, 16, 28, 28, 9298, 10630, + 639,-32768, 484,-32768, 560,-32768,-32768,-32768, 10630,-32768, +-32768, 49, 573, 120, 10503, 670, 120, 665,-32768,-32768, + 163, 610, 4048, 604,-32768, 548, 153, 8992,-32768, 697, + 735, 7214,-32768, 11392, 10630,-32768,-32768,-32768,-32768, 11011, +-32768, 11392,-32768, 678,-32768, 11392, -16, 736,-32768, 7214, +-32768,-32768, 776, 599, 599, 599,-32768,-32768, 701, 590, + 599,-32768, 694, 698, 699, 706,-32768,-32768, 517,-32768, + 1768, 591, 599,-32768, 8079, 6659, 711,-32768, 4228, 566, +-32768,-32768,-32768,-32768,-32768, 1060, 600, 600, 600, 600, + 601, 603, 602, 1829,-32768, 65,-32768, 599, 10235, 7214, + 7387,-32768, 391, 7214, 122, 7214,-32768,-32768, 6844, 4994, + 5179, 5364, 5549, 5734, 5919, 6104, 3003, 7214,-32768, 263, + 4809, 767, 9565, 3135, 11392,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 531, -14,-32768, 611, 541, 252, +-32768, 657, 27,-32768,-32768, 608, 54, 805, 805, 805, +-32768, 240,-32768,-32768, 208, 614, 11392, 770, 778, 628, + -125,-32768,-32768,-32768,-32768, 170,-32768, 3003, 701, 208, +-32768,-32768,-32768,-32768, 766, 765, 651, 668,-32768, 774, +-32768,-32768,-32768, 195,-32768,-32768,-32768,-32768, 679, 782, + 110,-32768, 110, 110, 110, 110,-32768, 717, 664, 667, + 219,-32768, 10630, 768, 8753,-32768,-32768, 654, 653, 659, +-32768, 10757, 259,-32768, 531, 169, 661,-32768, 10757, 2403, + 781, 862, 671, 672, 279, 169, 675,-32768,-32768,-32768, + 681, 846, 688, 348, 10, 810, 837,-32768, 11392, 371, + 693, 695, 696, 702, 8079, 8079, 8079, 8079, 700, 466, + 531, 703,-32768, 118,-32768, 12, 704, 792, 6289, 6659, + 6289, 6289, 2865, -43, 707,-32768, 633, 7214, 708, 710, + 718,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1768, 709,-32768, + 720, 722,-32768, 723, 726, 727,-32768, 7387, 7387, 7387, + 7387, 7387, 7214, 26, 531, 728,-32768, 118, 730, 160, +-32768,-32768,-32768, 1406, 7387,-32768, 7214, 2229, 731, 732, + 6474, 1060, 739, 741, 6474, 586, 742, 750, 6474, 1508, + 752, 753, 6474, 1508, 754, 755, 6474, 210, 758, 762, + 6474, 210, 763, 764, 6474, 600, 773, 780, 6474, 600, +-32768, 2623, 10630,-32768, 2751, 484,-32768, 771,-32768,-32768, + 769,-32768, -60, 771,-32768, 9946, 484, 9692, 734,-32768, +-32768,-32768, 190, 11392,-32768,-32768, 10503,-32768, 11392, 11392, + 11392, 11392,-32768,-32768,-32768, 926, 8425, 38, 793, 799, + 11392, 10503, 834, 11392,-32768, 330,-32768, 926, 10630, 163, + 34, 791,-32768,-32768, 10362,-32768,-32768, 873, 10362, 189, + 599,-32768,-32768,-32768,-32768,-32768,-32768, 9145, 8839, 8839, + 8992,-32768, 884, 169, 11392,-32768, 11138, 11392,-32768, 879, +-32768, 11392,-32768,-32768, 4809, 4809,-32768, 3003, 11392, 11392, +-32768,-32768,-32768, 599,-32768, 4809,-32768,-32768, 7214,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 599,-32768, 8079, + 8079, 6659, 4426, 444, 804, 804, 905,-32768, 8079, 8252, + 8079, 8079, 8079, 8079, 3003,-32768, 3332, 6659, 7214, 6659, + 972,-32768,-32768, 803, -43, 811, 812, 6659,-32768, 814, + 978,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 43, + 1857, 141,-32768, 708,-32768, 7387, 599, 599, 8079, 6659, + 4624, 878, 820, 820, 820, 820, 390, 7387, 7560, 7387, + 7387, 7387, 7387, 3003,-32768, 3529, 11773,-32768,-32768,-32768, + 186, 827, 1406, 701, 701, 828, 701, 701, 829, 701, + 701, 830, 701, 701, 838, 701, 701, 839, 701, 701, + 840, 701, 701, 841, 701, 701, 842, 7214, 531,-32768, + 10630, 847, 1019, 11265, 848, 999, 9819,-32768,-32768,-32768, +-32768,-32768, 6659,-32768,-32768, 950,-32768, 399,-32768, 458, + 3003,-32768, 56,-32768, 956,-32768, 1016, 881, 854, 8425, +-32768, 8425, 8425, 8425, 8425, 8425, 8425, 426, 858,-32768, +-32768, 861,-32768, 11392, 11392, 475,-32768, 863, 893,-32768, +-32768, 877, 11392, 7733, 1018, 1032, 11392,-32768,-32768, 330, +-32768,-32768, 881, 1051, 1021,-32768,-32768,-32768, 25,-32768, + 358, 1093,-32768,-32768,-32768,-32768,-32768, 1000,-32768, 952, + 11392,-32768, 347,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 913, 897, 4809,-32768,-32768,-32768,-32768, 1063, +-32768,-32768, -6, 504, 898,-32768,-32768, 900, -6, 8753, + 901, 354, 904, 906, 6289, 6289, 6289, 908,-32768, 1035, + 444, 237, 237, 804, 804,-32768,-32768, -55, -43, 8753, +-32768, 6659,-32768,-32768,-32768,-32768, -43, 701, 922,-32768, +-32768, 7029, 923, 708, 916,-32768, 366, 925, 928, 929, + 938, 6289, 6289, 6289, 946,-32768, 1067, 878, 328, 328, + 820, 820,-32768,-32768, -54,-32768, 947, 954,-32768, 7387, + 11773, 953, 955,-32768, 957, 958,-32768, 961, 962,-32768, + 966, 969,-32768, 973, 975,-32768, 976, 977,-32768, 980, + 987,-32768, 988, 989,-32768, 8652,-32768, 843, 10630, 1106, + 10235,-32768,-32768, 1158, 1136,-32768,-32768,-32768, 1068,-32768, + 11392,-32768,-32768, 1175, 1178, 11392, 240, 1023,-32768, 8425, + 1291, 1081, 1002, 1002, 1002, 1002, 759, 8425, 406, 8425, + 8425,-32768,-32768, 8598, 8425, 8425, 8425, 8425, 8425, 8425, + 8425, 3003,-32768, 3875, 505, 521,-32768, 11392, 1022,-32768, + 8425, 370, 1003,-32768, 1005, 1009,-32768,-32768,-32768, 7733, + 7733, 7733, 7733, 7733, 7733, 1312, 1011,-32768,-32768,-32768, + 403,-32768,-32768, 1077, 1187, 163,-32768,-32768, 153, 10630, + 153,-32768,-32768,-32768,-32768, 11392, -6, 1150, 484,-32768, +-32768,-32768, 484,-32768, 3003,-32768,-32768, 1017, 1028, 1030, +-32768,-32768, -43, 1031, 701, 1033, 1036, 8753, 701,-32768, + 708, 3003,-32768,-32768,-32768,-32768, 1039, 1040, 1041,-32768, +-32768,-32768, 11833, 1067,-32768, 1043, 1020,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 553, 1194,-32768, 1194, 664,-32768, - 1194,-32768, 1226,-32768, 10708,-32768, 10164, 7124, 1179, 98, --32768,-32768, 7643,-32768, 1077,-32768, 1099, 808,-32768, 1567, - 192,-32768,-32768,-32768, 373, 29, 762, 1567, 877, 877, - 409, 409, 1023, 1023,-32768,-32768, 532, 2167, 1202,-32768, - 1078, 1135, 2072,-32768, 7643, 638, 638, 974, 1083, 1083, - 1083, 1083, 678, 7816, 7643, 7643, 7643, 7643, 7643, 7643, - 7643, 2766, 3785, 1230,-32768, 24, 1209,-32768, 1247, 495, - 1100,-32768, 1095, 1103,-32768,-32768, 1, 1097, 925, 495, --32768, 1069, 1069, 1106,-32768,-32768,-32768,-32768, 1107,-32768, --32768, 1108,-32768, 1111,-32768,-32768,-32768,-32768,-32768, 11911, --32768,-32768,-32768,-32768,-32768,-32768, 10708,-32768, 1104,-32768, --32768, 1109, 8831, 1311, 1234,-32768, 1060, 194,-32768, 2766, --32768,-32768,-32768, 8335,-32768, 11470,-32768,-32768,-32768, 152, - 1113, 1115,-32768, 974, 1060, 454, 454, 426, 426, 1083, - 1083,-32768,-32768, 555, 1060, 93, 1251,-32768,-32768,-32768, - 11470, 98, 1193, 11470, 924, 11470, 2766, 2766, -36, 11470, - 1069, 1172, 1172,-32768,-32768,-32768,-32768,-32768, 168, 10164, - 11470,-32768, 1238, 1326,-32768,-32768, 1123, 2167, 471, 2766, --32768,-32768, 7643,-32768,-32768,-32768, 80,-32768, 1251, 1128, --32768, 1195,-32768,-32768,-32768,-32768,-32768, 1153,-32768,-32768, --32768, 600, 1172, 1179, 1179, 1131, 1132, 1133,-32768,-32768, - 101, 1240,-32768, 10164,-32768, 1230, 1134, 1060, 89, 89, --32768, 264,-32768, 13,-32768, 1, 1179,-32768,-32768, 7124, - 10164,-32768, 4719, 1311, 1137,-32768, 57, 35, 1251,-32768, --32768, 1352, 40,-32768,-32768,-32768,-32768,-32768, 609,-32768, --32768,-32768, 764,-32768,-32768, -36, 1234, 1372, 615,-32768, --32768, 1145, 2, 1238, 10164,-32768,-32768, 372,-32768, 11470, --32768,-32768,-32768,-32768,-32768, 264,-32768, 1144, 764, 1149, --32768,-32768,-32768, 10164,-32768, 11470, 495,-32768,-32768,-32768, --32768,-32768, 57,-32768,-32768, 1150,-32768,-32768,-32768, 1069, --32768,-32768, 1172,-32768, 1361, 1362,-32768 +-32768,-32768,-32768,-32768, 531, 1183,-32768, 1183, 843,-32768, + 1183,-32768, 1208,-32768, 10630,-32768, 6659, 7214, 1168, 153, +-32768,-32768, 7733,-32768, 1073,-32768, 1084, 1160,-32768, 1291, + 171,-32768,-32768,-32768, 680, 821, 1081, 1291, 836, 836, + 359, 359, 1002, 1002,-32768,-32768, 527, 1274, 1190,-32768, + 1075, 1129, 885,-32768, 7733, 599, 599, 1133, 1079, 1079, + 1079, 1079, 948, 7906, 7733, 7733, 7733, 7733, 7733, 7733, + 7733, 3003, 3702, 1226,-32768, 80, 1209,-32768, 1235, 484, + 1097,-32768, 1095, 1099,-32768,-32768, -5, 1102, 861, 484, +-32768, 999, 999, 1098,-32768,-32768,-32768,-32768, 1104,-32768, +-32768, 1105,-32768, 1109,-32768,-32768,-32768,-32768,-32768, 11833, +-32768,-32768,-32768,-32768,-32768,-32768, 10630,-32768, -43, 8753, + 1323, 1248,-32768, 1312, 240,-32768, 3003,-32768,-32768,-32768, + 8425,-32768, 11392,-32768,-32768,-32768, 225, 1115, 1116,-32768, + 1133, 1312, 1186, 1186, 373, 373, 1079, 1079,-32768,-32768, + 533, 1312, 184, 1255,-32768,-32768,-32768, 11392, 153, 1201, + 11392, 873, 11392, 3003, 3003, -85, 11392, 999, 1136, 1136, +-32768,-32768,-32768,-32768,-32768, 98,-32768, 1245, 1330,-32768, +-32768, 1127, 1274, 403, 3003,-32768,-32768, 7733,-32768,-32768, +-32768, 58,-32768, 1255, 1132,-32768, 1195,-32768,-32768,-32768, +-32768,-32768, 1156,-32768,-32768,-32768, 536, 1136, 1168, 1168, + 1134, 1138, 1135, 169, 1249,-32768, 7214,-32768, 1226, 1142, + 1312, 68, 68,-32768, 179,-32768, 443,-32768, -5, 1168, +-32768,-32768, 7214, 10086,-32768, 4809, 1323, 1153,-32768, 2042, + 1255,-32768,-32768, 1368, 165,-32768,-32768,-32768,-32768,-32768, + 555,-32768,-32768,-32768, 269,-32768,-32768, -85, 1248, 462, + 556,-32768,-32768, 1161, -6, 1245, 7214,-32768,-32768, 311, +-32768,-32768,-32768,-32768,-32768, 179,-32768, 1162, 269, 1164, +-32768,-32768,-32768, 10086,-32768, 11392, 484,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 1167,-32768,-32768,-32768, 999,-32768, + 1136,-32768, 1372, 1378,-32768 }; static const short yypgoto[] = {-32768, --32768, 1331,-32768,-32768,-32768, 1146, 1012, 860,-32768, 636, - 413,-32768, 1037,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 1231,-32768,-32768,-32768, 660, 648, 662,-32768, --32768, 422, 231,-32768, -978,-32768, -453,-32768, -458, -81, - -102, -51, -80,-32768,-32768,-32768,-32768,-32768, 655,-32768, --32768,-32768,-32768,-32768, 251,-32768,-32768,-32768,-32768,-32768, --32768, -731,-32768,-32768,-32768,-32768, -135,-32768,-32768,-32768, --32768, -139, 421,-32768, 632, 635,-32768,-32768, 1366, 1189, - 1052,-32768, 1385,-32768, 1138, 843,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, -1, -68, -97,-32768,-32768,-32768, - 5, 1161,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 1256, -151,-32768,-32768,-32768, 137,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 501,-32768, --32768,-32768,-32768,-32768,-32768, 450,-32768,-32768,-32768, 1389, --32768,-32768,-32768,-32768, -194,-32768,-32768, -1143, -702, 644, --32768,-32768,-32768,-32768, 1064, 159, -1086,-32768, -91,-32768, - 964, -58, -542, -78,-32768, -79, -1354,-32768, -158, 31, - -1293,-32768, 14, -1298, -475,-32768, -1035, 188, -844,-32768, --32768, -96, -322, -888,-32768, -825, -434, 1143,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, -346, -211,-32768,-32768, --32768, 1072,-32768,-32768, -146,-32768, 402,-32768,-32768,-32768, - 1446,-32768,-32768, -557, -450, -409,-32768,-32768, -704, -247, - -694,-32768,-32768, -564,-32768,-32768,-32768,-32768, 1577, 985, --32768, 736, -743, 999,-32768, 75, 1289,-32768, -895, 3, - -77, 74, 1381,-32768,-32768, 1918, 564, 70, -16, -131, - -365, -3, 370,-32768 +-32768, 1347,-32768,-32768,-32768, 1165, 1026, 870,-32768, 647, + 431,-32768, 1059,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 1252,-32768,-32768,-32768, 686, 673, 687,-32768, +-32768, 447, 257,-32768, -1123,-32768, -459,-32768, -818, -51, + -70, -22, -50,-32768,-32768,-32768,-32768,-32768, 682,-32768, +-32768,-32768,-32768,-32768, 166,-32768,-32768,-32768,-32768,-32768, +-32768, -721,-32768,-32768,-32768,-32768, -102,-32768,-32768,-32768, +-32768, -139, 446,-32768, 662, 660,-32768,-32768, 1396, 1221, + 1085,-32768, 1416,-32768, 1166, 876,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 36, -32, -57,-32768,-32768,-32768, + 40, 1192,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 1287, -147,-32768,-32768,-32768, 112,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 482,-32768, +-32768,-32768,-32768,-32768,-32768, 480,-32768,-32768,-32768, 1419, +-32768,-32768,-32768,-32768, -198,-32768,-32768, -1150, -699, 691, +-32768,-32768,-32768,-32768, 1096, 775, -1364,-32768, -53,-32768, + 991, -19, -549, -40,-32768, -42,-32768,-32768, -157, 59, + -1283, -1241, -472,-32768, -1030, 220, -889,-32768,-32768, -56, + -312, -891,-32768, -831, -410, 1172,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, -349, -182,-32768,-32768,-32768, 1047, +-32768,-32768, -165,-32768, 432,-32768,-32768,-32768, 1276,-32768, +-32768, -518, -450, -408,-32768,-32768, -738, -520, -673,-32768, +-32768, -527,-32768,-32768,-32768,-32768, 1042, 1025,-32768, 785, + -741, 1027,-32768, 75, 1326,-32768, -898, 41, -1, 102, + 1452,-32768,-32768, 1836, 1203, 478, 20, -131, -341, -3, + 400,-32768 }; -#define YYLAST 12201 +#define YYLAST 12123 static const short yytable[] = { 129, - 707, 219, 148, 258, 342, 240, 596, 256, 965, 204, - 182, 1107, 1098, 775, 191, 182, 526, 195, 1046, 249, - 484, 182, 691, 786, 705, 209, 211, 1314, 946, 709, - 262, 1003, 1004, 718, 824, 1128, 826, 827, 1412, 1413, - 695, 320, 1009, 1040, 1516, 818, 1041, 6, 1407, 7, - 487, 695, 488, 333, 703, 496, 149, 460, 716, 819, - 858, 1114, 393, 1254, 819, 819, 1516, 337, 466, 819, - 13, 655, 1517, 736, 410, 1524, 711, 1448, 182, 147, - 852, 853, 854, 855, 856, 498, 470, 489, 181, 1129, - 14, 966, 165, 192, 1517, 1130, 1013, 871, 1070, 201, - 467, 794, 512, 1491, 774, 186, 496, 1014, 384, 819, - 17, 388, 1195, 1454, 1455, 656, 1469, 1453, 1525, 1115, - 493, 494, 343, 513, 19, 499, 657, 182, 795, 84, - 148, 148, 712, 1521, 223, 225, 498, 148, 182, 187, - 816, 242, 85, 1435, 1050, 182, 148, 500, 1518, 148, - 178, 148, 223, 225, 1477, 1051, 215, 1449, 148, 148, - 1430, 820, 338, 431, 1492, 370, 820, 820, 909, 1202, - 1518, 820, 335, 1221, 182, 1502, 499, 514, 1436, 196, - 1132, 1298, 1299, 1300, 1301, 1302, 1303, 1493, 1551, 200, - 825, 1470, 1133, 182, 865, 1398, 195, 578, 500, 1212, - 359, 1399, 182, 556, 360, 218, 706, 220, 221, 1408, - 198, 820, 202, 461, 226, 490, 227, 461, 1210, 1358, - 557, 995, 263, 245, 1134, 1503, 250, 202, 251, 1135, - 1136, 1137, 1138, 1139, 1140, 1141, 259, 265, 1018, 195, - 381, 1145, 1146, 1142, 868, 202, 1520, 148, 1456, 859, - 202, 1187, 269, 717, 1554, 1042, 1553, 860, 861, 862, - 863, -553, 326, 148, 263, -521, 148, 389, 864, 166, - 1371, 341, 751, -779, 943, -520, 265, 809, -786, -553, - 344, 1457, 167, -521, 1367, 1466, 1055, 859, 1047, 869, - 1327, 870, 202, -520, 435, 860, 861, 862, 863, 810, - 1057, 1058, 1059, 1060, 1061, 1062, 864, 811, 812, 813, - 814, 403, 724, 725, 320, 1372, 1380, 1373, 815, 469, - 472, 472, 214, -551, 378, 1384, 1385, 1386, 1387, 1388, - 1389, 1390, 1391, 404, 1395, 480, 182, 804, 805, 806, - 807, -551, 650, 1005, 651, 182, 205, 1304, 405, 95, - 538, 508, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 528, - 723, 228, 791, 1271, 242, 1272, 1312, 1478, 1479, 82, - 148, 182, 732, 906, 733, 98, 148, 792, 148, 970, - 1026, 83, 555, 973, 911, 1343, 859, 216, 169, 652, - 1507, 653, 596, 243, 860, 861, 862, 863, 526, 263, - 406, 257, 526, 1354, 793, 864, 1356, 1028, 1029, 260, - 1273, 594, 1274, 478, 481, 263, 609, 810, 1037, 734, - 170, 735, 170, 486, 974, 811, 812, 813, 814, 1063, - 266, 267, 1044, 1129, 270, 626, 815, 648, 268,-32768, - 596, 171, 271, 171, 1318, 975, 830, 546, 1097, 547, - 1198, 1199, 1200, 550, 1468, 551, 1065, 1496, 202, 700, - 1497, 700, 1498, 563, 564, 565, 443, 831, 1419, 336, - 573, 1121, 339, 1122, 1123, 1124, 1125, 1126, 1127, 952, - 340, 172, 580, 172, 953, 976, 736, 1217, 1218, 1219, - 914, 915,-32768, 148, 348, 173, 954, 173, 346, 977, - 811, 812, 813, 814, 130, 610, 202, 611, 1443, 164, - 1327, 815, 1224, 745, 431, 746, 185, 761, 431, 762, - 193, 772, 431, 773, 1132, 347, 431, 1189, -779, 458, - 431, 455, 456, 1193, 431, 326, 1133, 955, 431, 182, - 457, 350, 431, 353, 351, 813, 814, 355, 771, 956, - 862, 863, 1012, 957, 815, 771, 174, 447, 174, 864, - 358, 1020, 1021, 1022, 1023, 1024, 1025, 1540, 1134, 448, - 728, 958, 362, 1541, 1542, 700, 1138, 1139, 1140, 1141, - 365, 594, 594, 594, 594, 363, 832, 1142, 263, 367, - 1183, 833, 834, 835, 836, 837, 838, 839, 441, 368, - 753,-32768, 753, 753, 753, 753, 371, 256, 256, 453, - 454, 455, 456, 372, 1140, 1141, 952, 763, 980, 784, - 457, 785, 1203, 1142, 720, 721, 722, 374, 320, 320, - 375, 1310, 1311, 954, 648, 648, 648, 648, 648, 320, - 1312, 531, 442, 798, 532, 799, 1111, 443, 1112, 1304, - 732, 648, 1113, 444, 533,-32768,-32768, 1308, 1309, 1310, - 1311, 1268, 88, 380, 534, 535, 382, 737, 1312, 1270, - 391, 1275, 1276, 1031, 955, 1277, 1278, 1279, 1280, 1281, - 1282, 1283, 1284, 536, 90, 1288, 956, 386, 390, 182, - 957, 182, 1293, 772, 398, 1147, 917, 394, 395, 94, - 95, 461, 480, 1190, 700, 396, 399, 1285, 958, 400, - 148, 1330, 401, 921, 1246, 921, 923, 924, 148, 772, - 1247, 1289, 409, 942, 968, 413, 98, 555, 921, 1248, - 951, 415, 416, 568, 569, 182, 417, 1249, 447, 1513, - 419, 528, 989, 989, 772, 528, 1290, 1374, 1250, 1375, - 448, 102, 436, 438, 242, 990, 990, 242, 1251, 439, - 1334, 148, 463, 148, 999, 458, 1108, 900, 555, 905, - 1433, 465, 1434, 1252, 464, 1006, 1007, 1344, 482, 492, - 478, 752, 449, 754, 755, 756, 757, 919,-32768,-32768, - 453, 454, 455, 456, 1351, 926, 594, 594, 6, 509, - 7, 457, 517, 17, 529, 594, 594, 594, 594, 594, - 594, 543, 544, 964, 1128, 374, 1370, 1476, 552, 876, - 979, 13, 1129, 879, 1526, 559, 1527, 882, 753, 753, - 1534, 885, 1535, 561, 263, 888, 566, 574, 996, 891, - 998, 14, 648, 894, 579, 594, 598, 897, 320, 326, - 326, 575, 576, 1008, 648, 648, 648, 648, 648, 648, - 326, 17, 577, 457, 606, 441, 1332, 1011, 1129, 607, - 1333, 608, 695, 1304, 1130, 19, 708, 1392, 1305, 1306, - 1307, 1308, 1309, 1310, 1311, 710, 714, 716, 727, 729, - 1131, 730, 1312, 731, 739, 1383, 741, 182, 742, 740, - 1102, 747, 479, 700, 750, 744, 758, 759, 760, 442, - 764, 1045, 765, 1132, 443, 1428, 1048, 1049, 1483, 766, --32768, 780, 789, 779, 767, 1133, 942, 776, 942, 942, - 942, 942, 942, 942, 782, 1427, 810, 1129, 796, 783, - 555, 555, 787, 1130, 811, 812, 813, 814, 797, 148, - 225, 788, 335, 1171, 790, 815, 800,-32768, 1019, 1132, - 801, 823, 842, 907, 802, 1138, 1139, 1140, 1141, 803, - 817, 1133, 1446, 1447, 846, 905, 1142, 1182, 808, 913, - 822, 844,-32768, 829, 845, 1266, 847, 848, 849, 1291, - 860, 861, 862, 863, 850, 1467, 851, 1403, 866, 867, - 874, 864, 875, 1134, 877, 447, 878, 1411, 1135, 1136, - 1137, 1138, 1139, 1140, 1141, 880, 881, 448, 883, 884, - 886, 887, 1142, 889, 927, 1066, 1152, 890, 1132, 908, - 948, 892, 1072, 1073, 969, 1075, 1076, 1537, 1078, 1079, - 1133, 1081, 1082, 971, 1084, 1085, 893, 1087, 1088, 449, - 1090, 1091, 979, 1093, 1094, 993, 895, 453, 454, 455, - 456, 896, 944, 945, 1000, 815, 648, 1032, 457, 326, - 1034, 1038, 1134, 1035, 127, 1036, 1039, 127,-32768,-32768, - 1138, 1139, 1140, 1141, 864, 127, 1074, 1071, 1100, 127, - 127, 1142, 127, 1077, 810, 182, 127, 626, 1099, 1080, - 127, 127, 811, 812, 813, 814, 1083, 148, 1086, 859, - 1089, 1092, 148, 815, 1095, 1103, 942, 860, 861, 862, - 863, 1104, 1109, 1116, 942, 1117, 942, 942, 864, 1118, - 942, 942, 942, 942, 942, 942, 942, 942, 1120, 1144, - 942, -786, 1148, 1149, 148, 1151, 1169, 942, 1170, 1174, - 1179, 1180, 1176, 127, 1181, 1184, 225, 225, 225, 225, - 225, 225, 1319, 1186, 1322, 1188, 1191, 1192, 1194,-32768, - 1196, 1197, 1201, 905, 1211, 1205, 182, 1308, 1309, 1310, - 1311, 1209, 1329, 1213, 1261, 1214, 1223, 1215, 1312, 1264, - 1216, 1255, 1220, 1222, 1229, 1230, 1204, 1231, 1232, 1233, - 1206, 1234, 127, 1235, 1236, 127, 127, 1237, 1238, 127, - 127, 1239, 127, 127, 1550, 1240, 127, 1241, 1242, 1257, - 127, 127, 1243, 1244, 127, 1258, 127, 127, 127, 1225, - 1260, 1262, 1263, 127, 127, 1267, 1426, 1142, 1292, 1315, - 1295, 1296, 1297, 1366, 1313, 1317, 1331, 1335, 1336, 127, - 1337, 182, 1338, 1362, 1321, 1304, 1340, 1341, 1345, 225, - 1305, 1306, 1307, 1308, 1309, 1310, 1311, 440, 127, 479, - 1346, 127, 441, 1347, 1312, 254, 1349, 127, 1352, 1505, - 232, 233, 234, 235, 236, 237, 238, 1357, 1364, 1350, - 941, 225, 1368, 1369, 1376, 1377, 1378, 1312, 1396, 1401, - 225, 225, 225, 225, 225, 225, 225, 225, 1530, 225, - 1402, 1404, 1405, 1410, 127, 1422, 442, 1424, 1406, 1420, - 1421, 443, 127, 1414, 1415, 1416, 1361, 444, 1417, 905, - 1431, 1437, 1432, 1442, 1546, 1461, 320, 445, 127, 1464, - 1465, 127, 127, 446, 1472, 1473, 1449, 1480, 1481, 1484, - 1482, 1490, 1515, 182, 1523, 407, 1536, 1545, 1547, 1552, - 1556, 1557, 213, 1339, 357, 1381, 1382, 1342, 510, 738, - 942, 425, 1429, 963, 473, 1173, 920, 244, 440, 947, - 922, 1172, 1294, 441, 1489, 1441, 1522, 1471, 950, 1495, - 1544, 1178, 992, 207, 991, 345, 485, 148, 440, 184, - 700, 777, 700, 441, 1445, 385, 148, 1506, 1531, 1444, - 127, 127, 447, 379, 255, 1002, 1362, 1460, 1177, 212, - 127, 511, 1538, 693, 448, 1514, 127, 442, 1532, 225, - 941, 905, 443, 1459, 127, 1539, 1355, 1548, 444, 127, - 1452, 910, 424, 1207, 252, 127, 127, 442, 445, 704, - 1475, 127, 443, 127, 446, 1501, 449, 127, 444, 694, - 1488, 450, 451, 452, 453, 454, 455, 456, 445, 0, - 1256, 570, 0, 0, 1440, 457, 441, 1512, 1056, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, - 0, 0, 0, 941, 0, 941, 941, 941, 941, 941, - 941, 0, 0, 0, 0, 0, 0, 0, 0, 1501, - 127, 1488, 0, 0, 0, 0, 1543, 941, 0, 224, - 442, 0, 0, 447, 0, 443, 0, 0, 425, 0, - 1512, 444, 1549, 1487, 127, 448, 127, 253, 0, 0, - 0, 445, 0, 447, 0, 0, 0, 0, 0, 0, - 1511, 0, 0, 0, 0, 448, 0, 326, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 449, 127, 0, - 0, 0, 450, 451, 452, 453, 454, 455, 456, 425, - 0, 0, 0, 0, 1487, 0, 457, 449, 0, 1533, - 0, 0, 450, 451, 452, 453, 454, 455, 456, 0, - 0, 0, 0, 1511, 0, 0, 457, 0, 0, 0, - 0, 0, 0, 0, 127, 0, 447, 88, 279, 0, - 0, 0, 0, 127, 420, 0, 0, 1129, 448, 0, - 127, 283, 0, 1130, 941, 0, 0, 0, 0, 90, - 0, 0, 0, 284, 0, 0, 0, 0, 0, 0, - 127, 0, 0, 0, 94, 95, 0, 0, 0, 0, - 449, 0, 0, 0, 289, 450, 451, 452, 453, 454, - 455, 456, 0, 0, 0, 0, 0, 0, 0, 457, - 0, 98, 0, 941, 0, 0, 421, 293, 0, 0, - 0, 941, 0, 941, 941, 0, 0, 941, 941, 941, - 941, 941, 941, 941, 941, 0, 102, 941, 0, 0, - 0, 422, 0, 0, 941, 0, 0, 0, 1132, 0, - 0, 0, 0, 941, 941, 941, 941, 941, 941, 0, - 1133, 0, 411, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 426, 0, 0, - 427, 0, 428, 429, 430, 434, 0, 0, 0, 0, - 0, 0, 1134, 0, 127, 0, 127, 1135, 1136, 1137, - 1138, 1139, 1140, 1141, 0, 0, 0, 127, 423, 127, - 0, 1142, 0, 0, 0, 127, 941, 1128, 127, 150, - 127, 127, 127, 127, 0, 592, 0, 0, 0, 0, - 0, 151, 127, 127, 0, 127, 152, 0, 0, 0, - 127, 0, 0, 153, 0, 154, 127, 545, 155, 0, - 127, 646, 0, 0, 0, 0, 941, 156, 0, 127, - 127, 127, 127, 0, 157, 560, 127, 158, 127, 127, - 0, 1129, 0, 127, 0, 0, 0, 1130, 0, 425, - 127, 127, 0, 0, 159, 160, 0, 0, 941, 0, - 0, 161, 162, 1131, 603, 0, 1128, 941, 941, 941, - 941, 941, 941, 941, 941, 0, 941, 0, 0, 0, - 0, 0, 0, 0, 0, 628, 425, 0, 0, 654, - 0, 658, 0, 0, 662, 666, 670, 674, 678, 682, - 686, 690, 441, 692, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 941, 0, 475, 0, 0, 0, 0, - 1129, 0, 0, 0, 0, 0, 1130, 0, 0, 0, - 0, 0, 1132, 0, 0, 425, 0, 941, 425, 0, - 0, 0, 1131, 0, 1133, 0, 442, 0, 0, 0, - 0, 443, 0, 0, 0, 0, 0, 444, 0, 0, - 0, 0, 0, 0, 0, 592, 592, 592, 592, 0, - 0, 0, 127, 0, 0, 127, 1134, 0, 127, 0, - 0, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, 0, - 0, 591, 425, 0, 0, 1142, 941, 0, 1143, 0, + 342, 219, 148, 707, 258, 240, 775, 596, 1107, 1098, + 182, 256, 1046, 526, 191, 182, 786, 195, 965, 249, + 1314, 182, 320, 262, 705, 209, 211, 718, 1443, 709, + 484, 946, 858, 1003, 1004, 695, 1298, 1299, 1300, 1301, + 1302, 1303, 1404, 695, 1009, 204, 691, 1040, 1409, 1410, + 1041, 466, 487, 819, 488, 703, 496, 460, 819, 819, + 333, 818, 1013, 470, 804, 805, 806, 807, 1254, 966, + 819, 824, 496, 826, 827, 716, 711, -546, 182, 794, + 337, 556, 1483, 467, 1471, 1472, 498, 84, 181, 489, + 732, 393, 733, 192, 1462, -546, 1114, 736, 557, 201, + 85, 149, 498, 410, 774, 1499, 795, 147, 1444, 384, + 1050, 1121, 388, 1122, 1123, 1124, 1125, 1126, 1127, 852, + 853, 854, 855, 856, 1448, 819, 499, 182, 1014, 170, + 148, 148, 712, 655, 223, 225, 871, 148, 182, 1364, + 816, 242, 499, 1484, 431, 182, 148, 178, 500, 148, + 171, 148, 223, 225, 1115, 820, 215, 909, 148, 148, + 820, 820, 1202, 1221, 500, 169, 1485, 1449, 1450, 1463, + 165, 1377, 820, 186, 182, 338, 1051, 656, 1451, 196, + 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 657, 1392, + 172, 825, 1070, 182, 865, 198, 195, 170, 343, 512, + 1514, 706, 182, 1405, 173, 218, 1470, 187, 335, 461, + 202, 1452, 1210, 461, 995, 263, 227, 490, 171, 202, + 513, 859, 202, 245, 1358, 974, 578, 820, 202, 860, + 861, 862, 863, 1425, 1430, 220, 221, 166, 868, 195, + 864, 370, 226, 1515, 1145, 1146, 975, 148, 200, 1368, + 167, 1395, 269, 1187, 250, 1541, 251, 1396, 172, 1042, + 403, 263, 326, 148, 259, 174, 148, 389, 943, 1431, + 717, 341, 173, 1459, 514, 1018, 381, 359, 609, 1012, + 344, 360, 404, 869, -514, 870, 976, 1327, 1020, 1021, + 1022, 1023, 1024, 1025, 1369, 320, 1370, 405, 95, 1542, + 977, 1268, -514, 6, 1461, 7, 263, 493, 494, 1270, + -513, 1275, 1276, -544, 751, 1277, 1278, 1279, 1280, 1281, + 1282, 1283, 1284, 1055, 98, 1288, 13, 1047, -513, -772, + 435, -544, 1293, 174, -779, 480, 182, 263, 82, 1057, + 1058, 1059, 1060, 1061, 1062, 182, 14, 202, 952, 406, + 83, 508, 378, 953, 1044, 469, 472, 472, 1354, 528, + 723, 1356, 1195, 205, 242, 954, 17, 1005, 914, 915, + 148, 182, 1488, 202, 1212, 1489, 148, 1490, 148, 1343, + 19, 859, 555, 906, 202, 734, 538, 735, 952, 860, + 861, 862, 863, 596, 911, 526, 440, 724, 725, 526, + 864, 441, 791, 970, 1026, 954, 955, 973, 1028, 1029, + 745, 594, 746, 478, 481, 455, 456, 792, 956, 1037, + 1304, 214, 957, 486, 457, 1305, 1306, 1307, 1308, 1309, + 1310, 1311, 1128, 216, 761, 626, 762, 648, 228, 1312, + 958, 596, 813, 814, 793, 442, 955, 243, 1097, 547, + 443, 815, 257, 1063, 1318, 260, 444, 1065, 956, 700, + 267, 700, 957, -772, 458, 1416, 445, 650, 440, 651, + 266, 268, 446, 441, 772, 546, 773, 6, 270, 7, + 958, 550, 1271, 551, 1272, 130, 1129, 1198, 1199, 1200, + 164, 271, 1130, 148, 784, 431, 785, 185, 336, 431, + 13, 193, 1438, 431, 1327, 339, 1530, 431, 1131, 340, + 736, 431, 1531, 1532, 652, 431, 653, 442, 346, 431, + 14, 809, 443, 431, 1217, 1218, 1219, 347, 444, 1273, + 1189, 1274, 348, 862, 863, 326, 1193, 351, 445, 182, + 17, 447, 864, 263, 446, 1183, 350, 353, 771, 810, + 355, 1224, 1423, 448, 19, 771, 362, 811, 812, 813, + 814, 859, 358, 367, 1140, 1141, 363, 365, 815, 860, + 861, 862, 863, 1142, 368, 700, 371, 1132, 1310, 1311, + 864, 594, 594, 594, 594, 449, 798, 1312, 799, 1133, + 450, 451, 452, 453, 454, 455, 456, 441, 728, 720, + 721, 722, 372, 374, 457, 1494, 375, 1056, 380, 320, + 320, 256, 256, 447, 1111, 382, 1112, 763, 980, 386, + 320, 1134, 88, 1203, 390, 448, 1135, 1136, 1137, 1138, + 1139, 1140, 1141, 391, 648, 648, 648, 648, 648,-32768, + 1142, 442, 409, 1143, 90, 265, 443, 811, 812, 813, + 814, 648, 444, 398, 1031, 1495, 394, 449, 815, 94, + 95, 810, 450, 451, 452, 453, 454, 455, 456, 811, + 812, 813, 814, 732, 439, 1113, 457, 395, 509, 1523, + 815, 396, 531, 399, 265, 532, 98, 400, 830, 182, + 772, 182, 1147, 568, 569, 533, 752, 401, 754, 755, + 756, 757, 480, 413, 700, 534, 535, 415, 416, 831, + 148, 102, 417, 921, 1330, 921, 923, 924, 148, 461, + 772, 1190, 1289, 942, 536, 419, 436, 555, 921, 438, + 951, 1285, 917, 463, 1505, 182, 772, 447, 1290, 464, + 1129, 528, 1371, 458, 1372, 528,-32768, 1108, 1428, 448, + 1429, 374, 465, 1469, 242, 990, 990, 242, 482, 492, + 968, 148, 17, 148, 999, 1128, 517, 900, 555, 905, + 1516, 1524, 1517, 1525, 529, 1006, 1007, 543, 989, 989, + 478, 449, 544, 552, 1334, 559, 450, 451, 452, 453, + 454, 455, 456, 561, 1351, 263, 594, 594, 566, 574, + 457, 1344, 579, 575, 576, 594, 594, 594, 594, 594, + 594, 577, 598, 964, 457, 919, 695, 608, 606, 1129, + 607, 710, 708, 926, 714, 1130, 716, 1128, 832, 320, + 727, 1132, 729, 833, 834, 835, 836, 837, 838, 839, + 730, 1131, 648, 1133, 731, 594, 739, 740, 1359, 326, + 326, 741, 742, 747, 648, 648, 648, 648, 648, 648, + 326, 744, 750, 758, 759, 764, 996, 760, 998, 765, + 766, 563, 564, 565, 767, 1134, 1332, 776, 573, 779, + 1333, 1129, 780, 1138, 1139, 1140, 1141, 1130, 782, 783, + 580, 1128, 787, 1246, 1142, 789, 1129, 182, 788, 1247, + 1102, 1389, 1130, 700, 1476, 790, 796, 797, 1248, 800, + 1132, 801, 802, 610, 823, 611, 1249, 808, 803, 817, + 842, 822, 1133, 844, 829, 846, 942, 1250, 942, 942, + 942, 942, 942, 942, 913, 845, 847, 1251, 848, 849, + 555, 555, 850, 851, 866, 1129, 867, 874, 875, 148, + 225, 1130, 1252, 1171, 1134, 877, 1422, 878, 880, 1135, + 1136, 1137, 1138, 1139, 1140, 1141, 881, 1131, 883, 884, + 886, 887, 1132, 1142, 889, 905, 1269, 1182, 890, 892, + 893, 927, 907, 948, 1133, 1266, 908, 1132, 335, 895, + 1291, 969, 971, 1441, 1442, 254, 896, 993, 1000, 1133, + 232, 233, 234, 235, 236, 237, 238, 1400, 753, 944, + 753, 753, 753, 753, 1460, 945, 1134, 1408, 815, 1032, + 1034, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1035, 1036, + 1038, 1134, 1527, 1039, 864, 1142, 1132,-32768,-32768, 1138, + 1139, 1140, 1141, 1071, 1100, 1074, 1077, 1080, 1133, 127, + 1142, 1104, 127, 1103, 1152, 1083, 1086, 1089, 1092, 1095, + 127, 1116, 1099, 1109, 127, 127, 648, 127, 1117, 326, + 1120, 127, 1118,-32768, 1144, 127, 127, -779, 1149, 1148, + 1134, 860, 861, 862, 863, 1135, 1136, 1137, 1138, 1139, + 1140, 1141, 864, 1151, 1170, 182, 1169, 626, 1174, 1142, + 810, 1179, 1376, 1176, 1181, 1180, 1184, 148, 811, 812, + 813, 814, 148, 1186, 1188, 1191, 942, 1192, 1194, 815, + 443, 1196, 1019, 1197, 942, 1201, 942, 942, 127, 1211, + 942, 942, 942, 942, 942, 942, 942, 942, 1205, 1209, + 942, 1129, 1213, 1304, 148, 1214, 1215, 942, 1305, 1306, + 1307, 1308, 1309, 1310, 1311, 1216, 225, 225, 225, 225, + 225, 225, 1312, 1220, 1222, 1380, 1128, 1255, 1367, 1223, + 1229, 1257, 1230, 905, 1231, 1232, 182, 127, 1233, 1234, + 127, 127, 1329, 1235, 127, 127, 1236, 127, 127, 1258, + 1237, 127, 1238, 1239, 1240, 127, 127, 1241, 1319, 127, + 1322, 127, 127, 127, 1242, 1243, 1244, 1260, 127, 127, + 1262, 447, 1261, 1263, 1539, 1267, 1142, 1264, 1315, 1295, + 1129, 1296, 1292, 448, 127, 1297, 1130, 1313, 979, 1317, + 810, 1331, 1132, 1421, 1335, 1350, 753, 753, 811, 812, + 813, 814, 1131, 127, 1133, 1336, 127, 1337, 1338, 815, + 1340, 182, 127, 1341, 1321,-32768, 1345, 1346, 1347, 225, + 1349, 1008, 859, 453, 454, 455, 456, 1352, 1497, 1357, + 860, 861, 862, 863, 457, 1011,-32768, 1361, 1366, 1363, + 1128, 864, 1373, 737, 1138, 1139, 1140, 1141, 1365, 127, + 1375, 225, 1374, 1312, 1393, 1142, 1520, 127, 1399, 1398, + 225, 225, 225, 225, 225, 225, 225, 225, 1401, 225, + 320, 1132, 1402, 127, 1403, 1411, 127, 127, 1407, 1045, + 1535, 1412, 1413, 1133, 1048, 1049, 1414, 1417,-32768, 905, + 407, 1419, 1426, 1427, 1129, 1432, 1308, 1309, 1310, 1311, + 1130, 1437, 1454, 1457, 1458, 1466, 425, 1312, 1465, 1444, + 1473, 1129, 1475, 182, 1474, 1134, 1131, 1130, 1477, 1482, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 942, 1507, 1424, + 1513, 1544, 1526, 1536, 1142, 1534, 1540, 1545, 213, 738, + 475, 1304, 510, 357, 963, 127, 127,-32768,-32768, 1308, + 1309, 1310, 1311, 1173, 148, 127, 473, 700, 244, 700, + 1312, 127, 920, 148, 947, 922, 1172, 1481, 1294, 127, + 1512, 1464, 1487, 1533, 127, 950, 1178, 441, 1436, 991, + 127, 127, 992, 207, 225, 1132, 127, 345, 127, 485, + 184, 905, 127, 385, 777, 876, 1498, 1133, 1440, 879, + 1521, 1439, 1132, 882, 379, 255, 570, 885, 1177, 212, + 693, 888, 1528, 511, 1133, 891, 591, 1506, 1522, 894, + 979, 442, 1002, 897, 1529, 1447, 443, 1537, 1355, 1134, + 1504, 424,-32768, 1207, 1135, 1136, 1137, 1138, 1139, 1140, + 1141, 252, 645, 1468, 1493, 127, 1134, 694, 1142, 704, + 910, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, 1435, + 1256, 0, 0, 425, 0, 1142, 0, 1304, 0, 127, + 0, 127, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 441, + 1504, 0, 1538, 0, 0, 0, 1312, 131, 0, 0, + 0, 0, 0, 0, 0, 1493, 0, 132, 0, 133, + 0, 479, 0, 127, 134, 0, 0, 0, 0, 0, + 326, 135, 0, 136, 425, 0, 137, 447, 0, 0, + 0, 0, 411, 442, 0, 138, 0, 0, 443, 448, + 0, 0, 139, 0, 444, -304, 0, 426, 0, 0, + 427, 0, 428, 429, 430, 434, 0, 0, 0, 127, + 224, 0, 140, 0, 0, 0, 0, 0, 127, 141, + 142, 449, 0, 0, 0, 127, 0, 143, 253, 453, + 454, 455, 456, 0, 0, 0, 0, 0, 0, 0, + 457, 0, 0, 0, 0, 127, 591, 591, 591, 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1132, 0, 0, 0, 127, 127, 645, 646, 646, - 646, 646, 646, 1133, 127, 0, 0, 0, 127, 0, - 0, 0, 0, 0, 0, 646, 0, 0, 0, 0, - 0, 0, 447, 0, 603, 0, 603, 603, 0, 0, - 0, 0, 127, 841, 448, 1134, 0, 0, 0, 0, - 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, 0, 0, - 0, 0, 0, 0, 1142, 0, 0, 1269, 1128, 0, - 0, 0, 0, 0, 0, 0, 449, 0, 857, 0, - 0, 450, 451, 452, 453, 454, 455, 456, 0, 0, - 0, 0, 873, 0, 0, 457, 434, 939, 0, 0, - 434, 0, 0, 0, 434, 0, 0, 0, 434, 0, - 0, 0, 434, 0, 0, 0, 434, 0, 0, 0, - 434, 0, 1129, 0, 434, 0, 0, 0, 1130, 0, - 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 440, 0, 1131, 0, 0, 441, 0, 0, - 0, 591, 591, 591, 591, 0, 0, 0, 0, 0, - 127, 0, 127, 1128, 0, 0, 0, 0, 0, 0, - 592, 592, 127, 0, 0, 0, 0, 127, 0, 592, - 592, 592, 592, 592, 592, 0, 0, 0, 0, 0, - 0, 442, 0, 0, 0, 0, 443, 0, 0, 0, - 0, 0, 444, 425, 645, 645, 645, 645, 645, 127, - 0, 0, 445, 1132, 0, 0, 646, 1129, 446, 592, - 0, 645, 0, 1130, 1010, 1133, 0, 0, 646, 646, - 646, 646, 646, 646, 0, 0, 0, 0, 603, 1131, - 0, 127, 0, 0, 0, 0, 0, 127, 0, 0, - 0, 0, 0, 0, 1030, 0, 425, 1134, 0, 0, - 0, 0, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 0, - 0, 0, 475, 425, 0, 0, 1142, 0, 0, 1379, - 0, 0, 0, 0, 425, 0, 603, 447, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 448, - 939, 0, 939, 939, 939, 939, 939, 939, 1132, 0, - 0, 0, 0, 0, 0, 0, 127, 0, 127, 0, - 1133, 0, 593, 0, 1167, 0, 0, 0, 0, 0, - 0, 449, 0, 1096, 0, 0, 450, 451, 452, 453, - 454, 455, 456, 0, 0, 0, 0, 0, 647, 0, - 457, -581, 1134, 0, 0, 0, 0, 1135, 1136, 1137, - 1138, 1139, 1140, 1141, 0, 0, 591, 591, 0, 0, - 0, 1142, 0, 425, 0, 591, 591, 591, 591, 591, - 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 440, 0, 0, 0, 0, 441, + 0, 1066, 0, 0, 0, 0, 0, 545, 1072, 1073, + 0, 1075, 1076, 0, 1078, 1079, 0, 1081, 1082, 447, + 1084, 1085, 0, 1087, 1088, 560, 1090, 1091, 0, 1093, + 1094, 448, 0, 0, 0, 0, 0, 0, 0, 645, + 645, 645, 645, 645, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 603, 0, 645, 0, 0, 0, + 0, 0, 0, 449, 0, 0, 0, 0, 0,-32768, +-32768, 453, 454, 455, 456, 628, 0, 0, 0, 654, + 0, 658, 457, 0, 662, 666, 670, 674, 678, 682, + 686, 690, 0, 692, 0, 0, 0, 0, 0, 127, + 0, 127, 0, 0, 0, 0, 0, 475, 0, 0, + 0, 0, 127, 0, 127, 0, 0, 0, 0, 0, + 127, 0, 0, 127, 0, 127, 127, 127, 127, 0, + 0, 0, 0, 1378, 1379, 0, 0, 127, 127, 441, + 127, 0, 0, 0, 0, 127, 0, 0, 0, 0, + 0, 127, 0, 0, 0, 127, 0, 0, 0, 0, + 0, 0, 0, 0, 127, 127, 127, 127, 0, 0, + 0, 127, 1204, 127, 127, 0, 1206, 0, 127, 0, + 0, 0, 0, 442, 425, 127, 127, 0, 443, 0, + 0, 0, 0, 0, 444, 440, 0, 0, 0, 0, + 441, 591, 591, 0, 445, 1225, 0, 0, 0, 0, + 591, 591, 591, 591, 591, 591, 0, 0, 0, 0, + 0, 425, 0, 440, 0, 0, 592, 0, 441, 0, + 0, 0, 0, 0, 603, 0, 603, 603, 0, 0, + 0, 0, 0, 841, 442, 0, 0, 645, 0, 443, + 591, 0, 646, 0, 0, 444, 0, 0, 0, 645, + 645, 645, 645, 645, 645, 445, 0, 0, 479, 0, + 425, 446, 442, 425, 0, 0, 0, 443, 857, 447, + 0, 0, 0, 444, 0, 0, 0, 0, 0, 941, + 0, 448, 873, 445, 0, 0, 434, 0, 0, 446, + 434, 0, 0, 0, 434, 0, 0, 127, 434, 0, + 127, 1503, 434, 127, 0, 0, 434, 0, 0, 0, + 434, 0, 0, 449, 434, 0, 0, 425, 450, 451, + 452, 453, 454, 455, 456, 0, 0, 0, 0, 1339, + 447, 0, 457, 1342, 0, 0, 0, 0, 0, 0, + 127, 127, 448, 0, 0, 0, 0, 0, 0, 127, + 0, 1503, 0, 127, 0, 0, 0, 0, 447, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 425, 645, 0, 0, 591, 0, 0, 127, 0, - 0, 0, 0, 0, 645, 645, 645, 645, 645, 645, - 0, 425, 0, 0, 0, 0, 0, 127, 0, 0, - 646, 0, 0, 442, 0, 0, 0, 0, 443, 0, - 603, 603, 603, 0, 444, 0, 0, 0, 0, 0, - 0, 0, 127, 0, 445, 127, 0, 127, 425, 425, - 446, 127, 0, 0, 0, 0, 0, 1208, 0, 0, - 0, 127, 127, 0, 0, 0, 0, 603, 603, 603, - 939, 425, 593, 593, 593, 593, 0, 0, 939, 0, - 939, 939, 0, 0, 939, 939, 939, 939, 939, 939, - 939, 939, 0, 0, 939, 0, 0, 0, 0, 0, - 0, 939, 0, 0, 0, 127, 0, 0, 0, 0, - 1167, 1167, 1167, 1167, 1167, 1167, 0, 0, 0, 447, - 0, 0, 127, 0, 0, 647, 647, 647, 647, 647, - 0, 448, 440, 0, 0, 0, 1328, 441, 0, 0, - 0, 0, 647, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, - 0, 127, 0, 449, 0, 0, 0, 0, 450, 451, - 452, 453, 454, 455, 456, 127, 0, 127, 0, 0, - 0, 442, 457, -580, 0, 0, 443, 0, 0, 0, - 0, 0, 444, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 445, 0, 0, 0, 0, 0, 446, 0, - 0, 0, 0, 1167, 940, 0, 645, 0, 0, 0, + 448, 0, 0, 0, 449, 0, 0, 127, 0, 450, + 451, 452, 453, 454, 455, 456, 592, 592, 592, 592, + 0, 0, 0, 457, -574, 0, 0, 0, 440, 0, + 0, 1508, 449, 441, 0, 0, 0, 450, 451, 452, + 453, 454, 455, 456, 1010, 0, 0, 0, 0, 941, + 0, 457, -573, 0, 0, 0, 0, 0, 603, 1509, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 646, + 646, 646, 646, 646, 1030, 0, 0, 442, 0, 0, + 0, 0, 443, 0, 150, 0, 646, 0, 444, 0, + 0, 645, 0, 0, 0, 0, 151, 425, 445, 0, + 0, 152, 0, 0, 446, 0, 603, 0, 153, 0, + 154, 0, 941, 155, 941, 941, 941, 941, 941, 941, + 0, 0, 156, 0, 0, 127, 0, 127, 0, 157, + 0, 0, 158, 0, 0, 1510, 941, 127, 0, 0, + 88, 279, 127, 0, 0, 0, 0, 420, 0, 159, + 160, 0, 0, 1096, 283, 0, 161, 162, 939, 0, + 0, 0, 90, 0, 0, 0, 284, 0, 425, 0, + 0, 0, 0, 447, 127, 0, 0, 94, 95, 0, + 0, 0, 0, 0, 0, 448, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 98, 0, 127, 0, 0, 421, + 293, 0, 127, 0, 0, 440, 0, 449, 0, 0, + 441, 425, 450, 451, 452, 453, 454, 455, 456, 102, + 593, 592, 592, 0, 422, 0, 457, 0, 425, 0, + 592, 592, 592, 592, 592, 592, 0, 0, 0, 425, + 0, 0, 0, 941, 0, 0, 647, 0, 0, 0, + 0, 0, 0, 0, 442, 0, 0, 0, 0, 443, + 603, 603, 603, 0, 0, 444, 0, 646, 0, 0, + 592, 127, 0, 0, 0, 445, 0, 0, 0, 646, + 646, 646, 646, 646, 646, 0, 0, 1208, 0, 0, + 0, 423, 941, 0, 0, 0, 0, 603, 603, 603, + 941, 0, 941, 941, 0, 0, 941, 941, 941, 941, + 941, 941, 941, 941, 0, 0, 941, 0, 0, 0, + 0, 0, 0, 941, 0, 0, 0, 0, 425, 0, + 0, 0, 941, 941, 941, 941, 941, 941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1167, 0, 0, 0, 0, - 0, 0, 0, 0, 1167, 1167, 1167, 1167, 1167, 1167, - 1167, 1167, 0, 1167, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1363, 0, 0, 0, 447, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 593, 593, 448, - 0, 0, 0, 0, 0, 0, 593, 593, 593, 593, - 593, 593, 0, 0, 0, 0, 0, 0, 0, 0, + 447, 939, 0, 939, 939, 939, 939, 939, 939, 0, + 0, 0, 448, 0, 0, 0, 425, 0, 0, 0, + 0, 0, 0, 127, 0, 1167, 0, 0, 0, 440, + 0, 778, 0, 425, 441, 0, 0, 0, 0, 127, + 593, 593, 593, 593, 449, 941, 0, 0, 0, 450, + 451, 452, 453, 454, 455, 456, 0, 0, 0, 0, + 0, 0, 0, 457, 127, 0, 0, 127, 0, 127, + 425, 425, 0, 127, 0, 0, 0, 0, 442, 0, + 0, 0, 0, 443, 0, 941, 0, 0, 0, 444, + 0, 425, 0, 647, 647, 647, 647, 647, 0, 445, + 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, + 647, 0, 0, 0, 0, 0, 0, 941, 0, 0, + 0, 0, 0, 0, 0, 0, 941, 941, 941, 941, + 941, 941, 941, 941, 0, 941, 0, 0, 0, 0, + 127, 646, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 449, 0, 0, 939, 0, 450, 451, 452, 453, - 454, 455, 456, 647, 898, 0, 593, 0, 0, 899, - 457, 0, 0, 0, 0, 647, 647, 647, 647, 647, - 647, 0, 273, 274, 1069, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 88, 279, - 0, 0, 0, 0, 0, 420, 0, 0, 0, 0, - 0, 0, 283, 1167, 0, 0, 0, 0, 0, 0, - 90, 0, 0, 0, 284, 0, 0, 0, 87, 0, - 0, 0, 0, 0, 0, 94, 95, 0, 285, 0, - 286, 929, 273, 274, 0, 289, 0, 940, 0, 940, - 940, 940, 940, 940, 940, 0, 0, 0, 88, 279, - 0, 0, 98, 0, 0, 280, 0, 421, 293, 0, - 0, 1168, 283, 0, 0, 0, 0, 0, 0, 0, - 90, 296, 0, 0, 284, 0, 0, 102, 91, 92, - 0, 0, 422, 0, 93, 94, 95, 0, 285, 0, - 286, 0, 930, 0, 931, 289, 0, 96, 0, 0, - 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, - 0, 0, 98, 0, 0, 1508, 0, 292, 293, 100, - 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 300, 296, 0, 0, 0, 0, 0, 102, 103, 297, - 104, 298, 299, 0, 0, 0, 0, 0, 0, 423, - 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, - 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, - 0, 0, 114, 115, 116, 0, 0, 647, 1228, 0, - 440, 117, 778, 118, 0, 441, 0, 119, 0, 0, - 300, 0, 120, 121, 0, 0, 0, 0, 0, 122, - 123, 0, 124, 0, 0, 0, 0, 125, 0, 301, - 202, 932, 263, 303, 304, 0, 0, 0, 0, 0, - 933, 0, 0, 934, 935, 936, 0, 940, 0, 442, - 0, 0, 937, 1286, 443, 940, 0, 940, 940, 0, - 444, 940, 940, 940, 940, 940, 940, 940, 940, 131, - 445, 940, 0, 0, 0, 0, 446, 0, 940, 132, - 0, 133, 0, 0, 0, 0, 134, 1168, 1168, 1168, - 1168, 1168, 1168, 135, 0, 136, 0, 0, 137, 0, - 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, - 0, 0, 0, 0, 139, 0, 0, -304, 0, 0, + 0, 0, 941, 0, 447, 0, 0, 0, 0, 0, + 0, 0, 940, 0, 0, 0, 448, 0, 0, 0, + 127, 939, 127, 941, 0, 0, 0, 0, 0, 939, + 0, 939, 939, 0, 0, 939, 939, 939, 939, 939, + 939, 939, 939, 0, 0, 939, 0, 0, 449, 0, + 0, 0, 939, 450, 451, 452, 453, 454, 455, 456, + 0, 1167, 1167, 1167, 1167, 1167, 1167, 457, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 440, + 941, 0, 0, 0, 441, 593, 593, 1328, 0, 0, + 0, 0, 0, 0, 593, 593, 593, 593, 593, 593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 140, 0, 0, 0, 0, 0, - 0, 141, 142, 0, 0, 447, 0, 0, 0, 143, - 1348, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 442, 0, + 0, 647, 0, 443, 593, 0, 0, 0, 0, 444, + 0, 0, 0, 647, 647, 647, 647, 647, 647, 445, + 0, 0, 1069, 0, 0, 446, 0, 0, 0, 0, + 0, 0, 0, 0, 1167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, - 1168, 0, 0, 0, 450, 451, 452, 453, 454, 455, - 456, 0, 0, 0, 0, 0, 0, 0, 457, 0, + 0, 0, 1480, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1167, 0, 1500, 0, + 0, 0, 0, 87, 0, 1167, 1167, 1167, 1167, 1167, + 1167, 1167, 1167, 0, 1167, 940, 0, 940, 940, 940, + 940, 940, 940, 0, 447, 0, 0, 179, 0, 0, + 0, 0, 1480, 88, 0, 0, 448, 0, 0, 1168, + 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, + 0, 0, 0, 91, 92, 0, 0, 0, 449, 93, + 94, 95, 939, 450, 451, 452, 453, 454, 455, 456, + 0, 898, 96, 0, 0, 0, 899, 457, 0, 0, + 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, + 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1168, 0, 0, 0, 0, 0, 0, 0, - 87, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 0, - 1168, 0, 0, 272, 273, 274, 0, 0, 0, 0, - 0, 0, 0, 0, 179, 275, 276, 277, 278, 0, - 88, 279, 0, 0, 0, 0, 0, 280, 0, 0, - 0, 281, 282, 0, 283, 0, 0, 1418, 0, 0, - 0, 0, 90, 0, 0, 0, 284, 0, 0, 0, - 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, - 285, 940, 286, 0, 287, 0, 288, 289, 0, 96, - 0, 0, 0, 0, 290, 0, 0, 97, 0, 0, - 0, 0, 0, 0, 98, 0, 0, 291, 0, 292, - 293, 100, 101, 0, 0, 0, 294, 0, 0, 0, - 295, 0, 0, 296, 0, 0, 0, 0, 0, 102, - 103, 297, 104, 298, 299, 0, 0, 0, 0, 0, - 1168, 0, 106, 0, 0, 107, 108, 109, 0, 110, - 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, - 0, 0, 0, 0, 114, 115, 116, 0, 180, 0, - 0, 0, 0, 117, 0, 118, 0, 0, 0, 119, - 0, 0, 300, 0, 120, 121, 0, 0, 0, 0, - 0, 122, 123, 0, 124, 0, 0, 0, 0, 125, - 0, 301, 202, 302, 263, 303, 304, 87, 0, 0, - 0, 0, 305, 701, 0, 307, 308, 309, 0, 0, - 272, 273, 274, 0, 310, 702, 0, 0, 0, 0, + 0, 440, 102, 103, 0, 104, 441, 105, 0, 1167, + 0, 0, 0, 0, 0, 106, 0, 0, 107, 108, + 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, + 0, 0, 0, 0, 0, 647, 1228, 114, 115, 116, + 0, 180, 0, 0, 828, 0, 117, 0, 118, 0, + 442, 0, 119, 0, 0, 443, 0, 120, 121, 0, + 0, 444, 0, 0, 122, 123, 0, 124, 0, 0, + 0, 445, 125, 0, 126, 0, 0, 446, 0, 0, + 0, 0, 0, 0, 0, 940, 0, 0, 0, 0, + 0, 0, 0, 940, 0, 940, 940, 901, 0, 940, + 940, 940, 940, 940, 940, 940, 940, 0, 0, 940, + 0, 0, 0, 0, 0, 0, 940, 0, 0, 0, + 0, 0, 0, 0, 0, 1168, 1168, 1168, 1168, 1168, + 1168, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 447, 0, 0, 273, + 274, 0, 0, 0, 0, 0, 0, 0, 448, 0, + 0, 0, 0, 0, 0, 88, 279, 0, 0, 0, + 0, 0, 420, 0, 0, 0, 0, 0, 0, 283, + 0, 0, 0, 0, 0, 0, 0, 90, 1348, 0, + 449, 284, 0, 0, 0, 450, 451, 452, 453, 454, + 455, 456, 94, 95, 0, 285, 0, 286, 0, 457, + 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1168, 98, + 0, 0, 0, 0, 421, 293, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, + 0, 0, 0, 0, 102, 0, 0, 0, 0, 422, + 1168, 0, 0, 0, 0, 0, 0, 87, 0, 1168, + 1168, 1168, 1168, 1168, 1168, 1168, 1168, 0, 1168, 0, + 272, 273, 274, 0, 0, 0, 0, 0, 0, 0, 0, 179, 275, 276, 277, 278, 0, 88, 279, 0, - 0, 0, 0, 0, 280, 0, 0, 0, 281, 282, - 0, 283, 0, 0, 0, 0, 0, 0, 0, 90, - 0, 0, 0, 284, 0, 0, 0, 91, 92, 0, - 0, 0, 0, 93, 94, 95, 0, 285, 0, 286, + 0, 0, 0, 0, 280, 0, 0, 300, 281, 282, + 0, 283, 0, 0, 0, 1415, 0, 0, 0, 90, + 0, 0, 0, 284, 0, 0, 423, 91, 92, 0, + 0, 0, 0, 93, 94, 95, 940, 285, 0, 286, 0, 287, 0, 288, 289, 0, 96, 0, 0, 0, 0, 290, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 291, 0, 292, 293, 100, 101, 0, 0, 0, 294, 0, 0, 0, 295, 0, 0, 296, 0, 0, 0, 0, 0, 102, 103, 297, 104, - 298, 299, 0, 0, 0, 0, 0, 0, 0, 106, + 298, 299, 0, 1168, 0, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, 0, 180, 0, 0, 0, 0, @@ -1842,8 +1806,8 @@ static const short yytable[] = { 129, 0, 120, 121, 0, 0, 0, 0, 0, 122, 123, 0, 124, 0, 0, 0, 0, 125, 0, 301, 202, 302, 263, 303, 304, 87, 0, 0, 0, 0, 305, - 0, 0, 307, 308, 309, 0, 0, 272, 273, 274, - 0, 310, 1027, 0, 0, 0, 0, 0, 179, 275, + 701, 0, 307, 308, 309, 0, 0, 272, 273, 274, + 0, 310, 702, 0, 0, 0, 0, 0, 179, 275, 276, 277, 278, 0, 88, 279, 0, 0, 0, 0, 0, 280, 0, 0, 0, 281, 282, 0, 283, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, @@ -1858,18 +1822,55 @@ static const short yytable[] = { 129, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, 0, 180, 0, 0, 0, 0, 117, 0, 118, + 0, 0, 0, 119, 0, 0, 300, 0, 120, 121, + 0, 0, 0, 0, 0, 122, 123, 0, 124, 0, + 0, 0, 0, 125, 0, 301, 202, 302, 263, 303, + 304, 87, 0, 0, 0, 0, 305, 0, 0, 307, + 308, 309, 0, 0, 272, 273, 274, 0, 310, 1027, + 0, 0, 0, 0, 0, 179, 275, 276, 277, 278, + 0, 88, 279, 0, 0, 0, 0, 0, 280, 0, + 0, 0, 281, 282, 0, 283, 0, 0, 0, 0, + 0, 0, 0, 90, 0, 0, 0, 284, 0, 0, + 0, 91, 92, 0, 0, 0, 0, 93, 94, 95, + 0, 285, 0, 286, 0, 287, 0, 288, 289, 0, + 96, 0, 0, 0, 0, 290, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 98, 0, 0, 291, 0, + 292, 293, 100, 101, 0, 0, 0, 294, 0, 0, + 0, 295, 0, 0, 296, 0, 0, 0, 0, 0, + 102, 103, 297, 104, 298, 299, 0, 0, 0, 0, + 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, + 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, + 0, 0, 0, 0, 0, 114, 115, 116, 0, 180, + 0, 0, 0, 0, 117, 0, 118, 0, 0, 0, + 119, 0, 0, 300, 87, 120, 121, 0, 0, 0, + 0, 0, 122, 123, 0, 124, 0, 1153, 273, 274, + 125, 0, 301, 202, 302, 263, 303, 304, 0, 1154, + 1155, 1156, 1157, 305, 88, 279, 307, 308, 309, 0, + 0, 280, 0, 0, 0, 310, 1064, 0, 283, 0, + 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, + 284, 0, 0, 0, 91, 92, 0, 0, 0, 0, + 93, 94, 95, 0, 285, 0, 286, 0, 0, 0, + 1158, 289, 0, 96, 0, 0, 0, 0, 0, 0, + 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, + 0, 0, 0, 292, 293, 100, 101, 0, 0, 0, + 0, 0, 0, 0, 1159, 0, 0, 296, 0, 0, + 0, 0, 0, 102, 103, 297, 104, 298, 299, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 107, + 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 0, 0, 0, 0, 0, 0, 117, 0, 118, 0, 0, 0, 119, 0, 0, 300, 87, 120, 121, 0, 0, 0, 0, 0, 122, 123, 0, 124, 0, - 1153, 273, 274, 125, 0, 301, 202, 302, 263, 303, - 304, 0, 1154, 1155, 1156, 1157, 305, 88, 279, 307, - 308, 309, 0, 0, 280, 0, 0, 0, 310, 1064, + 929, 273, 274, 125, 0, 301, 202, 1160, 263, 303, + 304, 0, 0, 0, 0, 0, 1161, 88, 279, 1162, + 1163, 1164, 0, 0, 280, 0, 0, 0, 1165, 1390, 0, 283, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 284, 0, 0, 0, 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, 285, 0, 286, - 0, 0, 0, 1158, 289, 0, 96, 0, 0, 0, + 0, 930, 0, 931, 289, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 292, 293, 100, 101, - 0, 0, 0, 0, 0, 0, 0, 1159, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, 0, 102, 103, 297, 104, 298, 299, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, @@ -1878,9 +1879,9 @@ static const short yytable[] = { 129, 117, 0, 118, 0, 0, 0, 119, 0, 0, 300, 87, 120, 121, 0, 0, 0, 0, 0, 122, 123, 0, 124, 0, 0, 273, 274, 125, 0, 301, 202, - 1160, 263, 303, 304, 0, 0, 0, 0, 0, 1161, - 88, 519, 1162, 1163, 1164, 0, 0, 520, 0, 0, - 0, 1165, 1393, 0, 521, 0, 0, 0, 0, 0, + 932, 263, 303, 304, 0, 0, 0, 0, 0, 933, + 88, 519, 934, 935, 936, 0, 0, 520, 0, 0, + 0, 937, 1286, 0, 521, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, 285, 0, 286, 0, 0, 0, 0, 522, 0, 96, @@ -2336,96 +2337,144 @@ static const short yytable[] = { 129, 932, 263, 303, 304, 0, 0, 0, 0, 0, 933, 88, 279, 934, 935, 936, 0, 0, 280, 0, 0, 0, 937, 0, 0, 283, 0, 0, 0, 0, 0, - 0, 0, 90, 0, 0, 0, 284, 0, 0, 0, - 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, + 0, 0, 90, 0, 0, 0, 284, 0, 440, 0, + 91, 92, 0, 441, 0, 0, 93, 94, 95, 0, 285, 0, 286, 0, 930, 0, 931, 289, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 292, - 293, 100, 101, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 296, 0, 0, 0, 0, 0, 102, - 103, 297, 104, 298, 299, 0, 0, 0, 0, 0, - 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, - 0, 0, 0, 111, 0, 112, 113, 0, 0, 87, - 0, 0, 0, 0, 114, 115, 116, 0, 0, 0, - 0, 0, 0, 117, 0, 118, 0, 0, 0, 119, - 0, 440, 300, 179, 120, 121, 441, 0, 0, 88, - 0, 122, 123, 0, 124, 0, 89, 0, 0, 125, + 293, 100, 101, 0, 0, 0, 0, 442, 0, 0, + 0, 0, 443, 296, 0, 0, 0, 0, 444, 102, + 103, 297, 104, 298, 299, 0, 0, 0, 445, 0, + 0, 0, 106, 0, 446, 107, 108, 109, 0, 110, + 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, + 0, 0, 0, 0, 114, 115, 116, 0, 0, 440, + 0, 0, 0, 117, 441, 118, 0, 0, 0, 119, + 0, 0, 300, 0, 120, 121, 0, 0, 0, 0, + 0, 122, 123, 0, 124, 0, 0, 0, 0, 125, 0, 301, 202,-32768, 263, 303, 304, 0, 0, 0, - 0, 90, 933, 0, 0, 934, 935, 936, 0, 91, - 92, 0, 0, 0, 937, 93, 94, 95, 0, 0, - 442, 0, 0, 0, 0, 443, 0, 0, 96, 0, - 0, 444, 0, 0, 0, 0, 97, 0, 0, 0, - 0, 445, 0, 98, 0, 0, 0, 446, 99, 0, - 100, 101, 0, 0, 0, 0, 0, 0, 0, 440, - 0, 0, 0, 0, 441, 0, 0, 0, 102, 103, - 0, 104, 0, 105, 0, 0, 0, 0, 0, 0, - 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, - 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, - 0, 0, 828, 114, 115, 116, 0, 180, 442, 0, - 0, 0, 117, 443, 118, 0, 447, 0, 119, 444, - 0, 0, 0, 120, 121, 0, 0, 440, 448, 445, - 122, 123, 441, 124, 0, 446, 0, 0, 125, 0, - 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 933, 447, 0, 934, 935, 936, 442, 0, + 0, 0, 0, 443, 937, 448, 0, 0, 0, 444, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 445, + 0, 0, 0, 0, 0, 446, 0, 0, 0, 0, + 0, 87, 0, 0, 0, 0, 0, 449, 0, 0, + 0, 0, 450, 451, 452, 453, 454, 455, 456, 0, + 0, 0, 0, 0, 0, 1245, 457, 0, 0, 0, + 0, 88, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 449, 0, 0, 901, 0, 450, 451, 452, 453, 454, - 455, 456, 0, 0, 0, 0, 442, 0, 1245, 457, - 0, 443, 0, 0, 0, 0, 0, 444, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 445, 0, 0, - 0, 0, 0, 446, 447, 0, 0, 0, 0, 87, + 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, + 0, 91, 92, 0, 447, 0, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, - 0, 0, 0, 0, 0, 0, 89, 0, 449, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, + 99, 0, 100, 101, 0, 0, 0, 0, 449, 0, 0, 0, 0, 450, 451, 452, 453, 454, 455, 456, - 0, 90, 0, 0, 0, 0, 0, 457, 0, 91, - 92, 0, 447, 0, 0, 93, 94, 95, 0, 0, - 0, 0, 0, 0, 448, 0, 0, 0, 96, 0, - 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, - 100, 101, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 450, 451, 452, 453, 454, 455, 456, 102, 103, - 0, 104, 0, 105, 0, 457, 0, 0, 0, 0, - 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, - 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, - 0, 0, 87, 114, 115, 116, 0, 0, 0, 0, - 0, 0, 117, 0, 118, 0, 0, 0, 119, 0, - 0, 981, 0, 120, 121, 0, 0, 0, 0, 0, - 122, 123, 88, 124, 0, 539, 0, 0, 125, 89, - 126, 202, 254, 263, 0, 982, 0, 232, 233, 234, - 235, 983, 237, 238, 90, 0, 0, 0, 0, 0, - 0, 229, 91, 92, 0, 0, 0, 0, 93, 94, - 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, - 230, 0, 0, 0, 0, 0, 98, 0, 0, 0, - 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, + 102, 103, 0, 104, 0, 105, 0, 457, 0, 0, + 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, + 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, + 0, 0, 0, 0, 87, 114, 115, 116, 0, 0, + 0, 0, 0, 0, 117, 0, 118, 0, 0, 0, + 119, 0, 0, 981, 0, 120, 121, 0, 0, 0, + 0, 0, 122, 123, 88, 124, 0, 539, 0, 0, + 125, 89, 126, 202, 254, 263, 0, 982, 0, 232, + 233, 234, 235, 983, 237, 238, 90, 0, 0, 0, + 0, 0, 0, 229, 91, 92, 0, 0, 0, 0, + 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, + 0, 97, 230, 0, 0, 0, 0, 0, 98, 0, + 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 102, 103, 0, 104, 0, 105, 0, 0, 0, - 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, - 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, - 0, 0, 0, 0, 0, 87, 114, 115, 116, 0, - 0, 0, 0, 0, 0, 117, 0, 118, 0, 0, - 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, - 0, 0, 0, 122, 123, 88, 124, 0, 0, 0, - 0, 125, 89, 126, 0, 231, 0, 0, 0, 0, - 232, 233, 234, 235, 236, 237, 238, 90, 0, 0, - 0, 0, 0, 0, 229, 91, 92, 0, 0, 0, - 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, - 0, 0, 97, 230, 0, 0, 0, 0, 0, 98, - 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, + 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 107, + 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, + 113, 0, 0, 0, 0, 0, 0, 87, 114, 115, + 116, 0, 0, 0, 0, 0, 0, 117, 0, 118, + 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, + 0, 0, 0, 0, 0, 122, 123, 88, 124, 0, + 0, 0, 0, 125, 89, 126, 0, 231, 0, 0, + 0, 0, 232, 233, 234, 235, 236, 237, 238, 90, + 0, 0, 0, 0, 0, 0, 229, 91, 92, 0, + 0, 0, 0, 93, 94, 95, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, + 0, 0, 0, 0, 97, 230, 0, 0, 0, 0, + 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, - 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, - 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, - 112, 113, 0, 0, 0, 0, 0, 0, 87, 114, - 115, 116, 0, 0, 0, 0, 0, 0, 117, 0, - 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, - 121, 0, 179, 0, 0, 0, 122, 123, 88, 124, - 0, 0, 0, 0, 125, 89, 126, 0, 231, 0, - 0, 0, 0, 232, 233, 234, 235, 236, 237, 238, - 90, 0, 0, 0, 0, 0, 0, 0, 91, 92, - 0, 0, 0, 0, 93, 94, 95, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, + 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, + 0, 105, 0, 0, 0, 0, 0, 0, 0, 106, + 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, + 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, + 87, 114, 115, 116, 0, 0, 0, 0, 0, 0, + 117, 0, 118, 0, 0, 0, 119, 0, 0, 0, + 0, 120, 121, 0, 179, 0, 0, 0, 122, 123, + 88, 124, 0, 0, 0, 0, 125, 89, 126, 0, + 231, 0, 0, 0, 0, 232, 233, 234, 235, 236, + 237, 238, 90, 0, 0, 0, 0, 0, 0, 0, + 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, + 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, + 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, + 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, + 103, 0, 104, 0, 105, 0, 0, 0, 0, 0, + 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, + 87, 0, 0, 111, 0, 112, 113, 0, 0, 0, + 0, 0, 0, 0, 114, 115, 116, 0, 180, 0, + 0, 0, 0, 117, 0, 118, 0, 0, 0, 119, + 88, 0, 0, 0, 120, 121, 0, 89, 0, 0, + 0, 122, 123, 0, 124, 0, 0, 0, 0, 125, + 0, 126, 90, 0, 0, 303, 0, 0, 0, 0, + 91, 92, 0, 474, 0, 0, 93, 94, 95, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, + 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, + 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, + 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, + 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, + 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, + 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, + 0, 0, 0, 0, 114, 115, 116, 88, 0, 0, + 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, + 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, + 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, + 0, 126, 0, 93, 94, 95, 0, 0, 0, 0, + 0, 0, 0, 376, 0, 0, 96, 0, 0, 0, + 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, + 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, + 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, + 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, + 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, + 0, 114, 115, 116, 88, 0, 0, 0, 0, 0, + 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, + 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, + 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, + 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, + 697, 0, 0, 96, 0, 0, 0, 0, 0, 0, + 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, + 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, + 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, + 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 88, 0, 0, 0, 0, 0, 117, 89, 118, + 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, + 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, + 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, + 0, 0, 0, 0, 0, 0, 0, 912, 0, 0, + 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, + 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, + 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, + 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, + 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, + 0, 0, 179, 0, 0, 114, 115, 116, 88, 0, + 0, 0, 0, 0, 117, 89, 118, 0, 0, 0, + 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, + 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, + 125, 0, 126, 0, 93, 94, 95, 0, 0, 0, + 0, 0, 0, 0, 1106, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2438,33 +2487,62 @@ static const short yytable[] = { 129, 0, 0, 120, 121, 0, 89, 0, 0, 0, 122, 123, 0, 124, 0, 0, 0, 0, 125, 0, 126, 90, 0, 0, 303, 0, 0, 0, 0, 91, 92, - 0, 474, 0, 0, 93, 94, 95, 0, 0, 0, + 0, 0, 0, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, - 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, + 104, 0, 105, 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, - 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, - 0, 0, 114, 115, 116, 88, 0, 0, 0, 0, - 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, - 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, - 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, + 0, 111, 0, 112, 113, 0, 0, 87, 0, 0, + 0, 0, 114, 115, 116, 0, 0, 0, 0, 0, + 0, 117, 0, 118, 0, 0, 0, 119, 612, 0, + 613, 0, 120, 121, 0, 0, 0, 88, 0, 122, + 123, 0, 124, 0, 89, 0, 0, 125, 0, 126, + 0, 0, 263, 614, 0, 0, 0, 615, 0, 90, + 0, 0, 0, 0, 0, 0, 0, 91, 92, 0, + 0, 0, 0, 93, 94, 95, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 96, 0, 616, 0, + 0, 617, 618, 0, 97, 0, 0, 0, 0, 0, + 0, 98, 0, 0, 0, 619, 99, 0, 100, 101, + 0, 0, 620, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 102, 103, 621, 104, + 622, 105, 0, 0, 87, 0, 0, 0, 0, 106, + 623, 0, 107, 108, 109, 0, 110, 0, 273, 274, + 111, 0, 112, 113, 0, 0, 0, 0, 0, 624, + 0, 114, 115, 116, 88, 519, 0, 0, 0, 0, + 117, 520, 118, 0, 0, 0, 119, 0, 521, 0, + 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, + 625, 124, 0, 0, 91, 92, 125, 0, 126, 0, + 93, 94, 95, 0, 285, 0, 286, 0, 0, 0, + 0, 522, 0, 96, 0, 0, 0, 0, 0, 0, + 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, + 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 296, 0, 0, + 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, + 0, 0, 0, 0, 0, 0, 106, 0, 0, 107, + 108, 109, 0, 110, 0, 87, 0, 111, 0, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 496, 0, 0, 0, 0, 497, 117, 0, 118, + 0, 0, 0, 119, 0, 88, 0, 0, 120, 121, + 0, 0, 89, 0, 0, 122, 123, 0, 124, 0, + 0, 498, 0, 125, 0, 126, 0, 90, 0, 0, + 0, 0, 0, 0, 0, 91, 92, 0, 0, 0, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, - 0, 376, 0, 0, 96, 0, 0, 0, 0, 0, - 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, + 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, + 0, 499, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, - 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, + 112, 113, 0, 0, 0, 0, 179, 0, 0, 114, 115, 116, 88, 0, 0, 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, - 95, 0, 0, 0, 0, 0, 0, 0, 697, 0, + 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, @@ -2473,88 +2551,45 @@ static const short yytable[] = { 129, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, 88, - 0, 0, 0, 0, 0, 117, 89, 118, 0, 0, - 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, + 180, 0, 0, 0, 0, 117, 89, 118, 0, 0, + 0, 119, 0, 0, 0, 0, 120, 121, 0, 768, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, 0, 0, - 0, 0, 0, 0, 0, 912, 0, 0, 96, 0, - 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, + 0, 0, 0, 0, 0, 0, 97, 0, 769, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, - 179, 0, 0, 114, 115, 116, 88, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 88, 0, 0, 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, - 126, 0, 93, 94, 95, 0, 0, 0, 0, 0, - 0, 0, 1106, 0, 0, 96, 0, 0, 0, 0, - 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, - 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 106, 0, - 0, 107, 108, 109, 0, 110, 87, 0, 0, 111, - 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, - 114, 115, 116, 0, 180, 0, 0, 0, 0, 117, - 0, 118, 0, 0, 0, 119, 88, 0, 0, 0, - 120, 121, 0, 89, 0, 0, 0, 122, 123, 0, - 124, 0, 0, 0, 0, 125, 0, 126, 90, 0, - 0, 303, 0, 0, 0, 0, 91, 92, 0, 0, - 0, 0, 93, 94, 95, 0, 0, 0, 0, 0, + 126, 0, 93, 94, 95, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, - 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, + 98, 0, 0, 0, 0, 190, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 106, 0, + 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, - 0, 112, 113, 0, 0, 87, 0, 0, 0, 0, - 114, 115, 116, 0, 0, 0, 0, 0, 0, 117, - 0, 118, 0, 0, 0, 119, 612, 0, 613, 0, - 120, 121, 0, 0, 0, 88, 0, 122, 123, 0, - 124, 0, 89, 0, 0, 125, 0, 126, 0, 0, - 263, 614, 0, 0, 0, 615, 0, 90, 0, 0, - 0, 0, 0, 0, 0, 91, 92, 0, 0, 0, - 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 0, 616, 0, 0, 617, - 618, 0, 97, 0, 0, 0, 0, 0, 0, 98, - 0, 0, 0, 619, 99, 0, 100, 101, 0, 0, - 620, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 103, 621, 104, 622, 105, - 0, 0, 87, 0, 0, 0, 0, 106, 623, 0, - 107, 108, 109, 0, 110, 0, 273, 274, 111, 0, - 112, 113, 0, 0, 0, 0, 0, 624, 0, 114, - 115, 116, 88, 519, 0, 0, 0, 0, 117, 520, - 118, 0, 0, 0, 119, 0, 521, 0, 0, 120, - 121, 0, 0, 0, 90, 0, 122, 123, 625, 124, - 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, - 95, 0, 285, 0, 286, 0, 0, 0, 0, 522, - 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, - 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, - 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 296, 0, 0, 0, 0, - 0, 102, 103, 0, 104, 0, 105, 0, 0, 0, - 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, - 0, 110, 0, 87, 0, 111, 0, 112, 113, 0, - 0, 0, 0, 0, 0, 0, 114, 115, 116, 496, - 0, 0, 0, 0, 497, 117, 0, 118, 0, 0, - 0, 119, 0, 88, 0, 0, 120, 121, 0, 0, - 89, 0, 0, 122, 123, 0, 124, 0, 0, 498, - 0, 125, 0, 126, 0, 90, 0, 0, 0, 0, - 0, 0, 0, 91, 92, 0, 0, 0, 0, 93, + 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, + 114, 115, 116, 88, 0, 0, 0, 0, 0, 117, + 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, + 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, + 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 96, 0, 0, 0, 0, 0, 0, 499, + 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, - 0, 500, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, - 0, 0, 0, 0, 179, 0, 0, 114, 115, 116, - 88, 0, 0, 0, 0, 0, 117, 89, 118, 0, + 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 88, 0, 548, 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, 0, @@ -2564,15 +2599,15 @@ static const short yytable[] = { 129, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, - 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, + 0, 0, 106, 1101, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, - 0, 0, 0, 0, 114, 115, 116, 88, 180, 0, + 0, 0, 0, 0, 114, 115, 116, 88, 0, 997, 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, - 0, 0, 0, 0, 120, 121, 0, 768, 0, 90, + 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, - 0, 0, 0, 0, 97, 0, 769, 0, 0, 0, + 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, @@ -2583,10 +2618,10 @@ static const short yytable[] = { 129, 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, - 93, 94, 95, 189, 0, 0, 0, 0, 0, 0, + 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, - 0, 0, 0, 190, 0, 100, 101, 0, 0, 0, + 0, 0, 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, @@ -2599,466 +2634,387 @@ static const short yytable[] = { 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, - 99, 0, 100, 101, 0, 0, 0, 0, 0, 0, + 208, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, 88, 0, - 548, 0, 0, 0, 117, 89, 118, 0, 0, 0, + 0, 0, 0, 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, - 0, 0, 98, 0, 0, 0, 0, 99, 0, 100, + 0, 0, 98, 0, 0, 0, 0, 210, 0, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, 0, - 104, 0, 105, 0, 0, 87, 0, 0, 0, 0, - 106, 1101, 0, 107, 108, 109, 0, 110, 0, 0, - 0, 111, 0, 112, 113, 0, 0, 0, 0, 0, - 0, 0, 114, 115, 116, 88, 0, 997, 0, 0, - 0, 117, 89, 118, 0, 0, 0, 119, 0, 0, + 104, 0, 105, 0, 0, 0, 0, 0, 0, 0, + 106, 0, 0, 107, 108, 109, 0, 110, 0, 273, + 274, 111, 0, 112, 113, 0, 0, 0, 0, 0, + 0, 0, 114, 115, 116, 88, 279, 0, 0, 0, + 0, 117, 420, 118, 0, 0, 0, 119, 0, 283, 0, 0, 120, 121, 0, 0, 0, 90, 0, 122, - 123, 0, 124, 0, 0, 91, 92, 125, 0, 126, - 0, 93, 94, 95, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, - 0, 0, 97, 0, 0, 0, 0, 0, 0, 98, - 0, 0, 0, 0, 99, 0, 100, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 102, 103, 0, 104, 0, 105, - 0, 0, 87, 0, 0, 0, 0, 106, 0, 0, - 107, 108, 109, 0, 110, 0, 0, 0, 111, 0, - 112, 113, 0, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 88, 0, 0, 0, 0, 0, 117, 89, - 118, 0, 0, 0, 119, 0, 0, 0, 0, 120, - 121, 0, 0, 0, 90, 0, 122, 123, 0, 124, - 0, 0, 91, 92, 125, 0, 126, 0, 93, 94, - 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 96, 0, 0, 0, 0, 0, 0, 0, 97, - 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, - 0, 99, 0, 100, 101, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 102, 103, 0, 104, 0, 105, 0, 0, 87, - 0, 0, 0, 0, 106, 0, 0, 107, 108, 109, - 0, 110, 0, 0, 0, 111, 0, 112, 113, 0, - 0, 0, 0, 0, 0, 0, 114, 115, 116, 88, - 0, 0, 0, 0, 0, 117, 89, 118, 0, 0, - 0, 119, 0, 0, 0, 0, 120, 121, 0, 0, - 0, 90, 0, 122, 123, 0, 124, 0, 0, 91, - 92, 125, 0, 126, 0, 93, 94, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, - 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, - 0, 0, 0, 98, 0, 0, 0, 0, 208, 0, - 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 102, 103, - 0, 104, 0, 105, 0, 0, 87, 0, 0, 0, - 0, 106, 0, 0, 107, 108, 109, 0, 110, 0, - 0, 0, 111, 0, 112, 113, 0, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 88, 0, 0, 0, - 0, 0, 117, 89, 118, 0, 0, 0, 119, 0, - 0, 0, 0, 120, 121, 0, 0, 0, 90, 0, - 122, 123, 0, 124, 0, 0, 91, 92, 125, 0, - 126, 0, 93, 94, 95, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, - 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, - 98, 0, 0, 0, 0, 210, 0, 100, 101, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, 103, 0, 104, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 106, 0, - 0, 107, 108, 109, 0, 110, 0, 273, 274, 111, - 0, 112, 113, 0, 0, 0, 0, 0, 0, 0, - 114, 115, 116, 88, 279, 0, 0, 0, 0, 117, - 420, 118, 0, 0, 0, 119, 0, 283, 0, 0, - 120, 121, 0, 0, 0, 90, 0, 122, 123, 284, - 124, 0, 0, 0, 0, 125, 0, 126, 0, 0, - 94, 95, 0, 285, 0, 286, 0, 273, 274, 0, - 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 88, 279, 0, 0, 98, 566, 0, - 420, 0, 421, 293, 0, 0, 0, 283, 0, 0, - 0, 0, 0, 0, 0, 90, 296, 0, 0, 284, - 0, 0, 102, 0, 297, 0, 298, 422, 0, 0, - 94, 95, 0, 285, 0, 286, 0, 0, 0, 0, - 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, - 0, 0, 421, 293, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 300, 296, 0, 0, 2, - 0, 0, 102, 0, 297, 0, 298, 422, 3, 0, - 0, 4, 0, 5, 423, 202, 0, 263, 303, 304, - 0, 0, 0, 6, 0, 7, 0, 0, 0, 8, - 9, 10, 0, 0, 11, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 0, 0, 0, 300, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 0, 0, 423, 202, 0, 263, 303, 304, - 0, 0, 15, 0, 16, 0, 17, 18, 0, 0, + 123, 284, 124, 0, 0, 0, 0, 125, 0, 126, + 0, 0, 94, 95, 0, 285, 0, 286, 0, 273, + 274, 0, 289, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 279, 0, 0, 98, + 566, 0, 420, 0, 421, 293, 0, 0, 0, 283, + 0, 0, 0, 0, 0, 0, 0, 90, 296, 0, + 0, 284, 0, 0, 102, 0, 297, 0, 298, 422, + 0, 0, 94, 95, 0, 285, 0, 286, 0, 0, + 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, + 0, 0, 0, 0, 421, 293, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 300, 296, 0, + 0, 2, 0, 0, 102, 0, 297, 0, 298, 422, + 3, 0, 0, 4, 0, 5, 423, 202, 0, 263, + 303, 304, 0, 0, 0, 6, 0, 7, 0, 0, + 0, 8, 9, 10, 0, 0, 11, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 0, 0, 0, 300, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 423, 202, 0, 263, + 303, 304, 0, 0, 15, 0, 16, 0, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 21, 22, 0, 0, 0, 0, - 0, 23, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 25, 26, 27, 0, 0, 0, 28, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, - 31 + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, + 0, 0, 0, 0, 0, 0, 21, 22, 0, 0, + 0, 0, 0, 23, 24, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 26, 27, 0, 0, 0, + 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 30, 0, 0, 0, + 0, 0, 31 }; static const short yycheck[] = { 3, - 476, 133, 6, 162, 199, 145, 416, 159, 740, 26, - 14, 907, 901, 556, 18, 19, 363, 21, 844, 151, - 343, 25, 457, 566, 475, 29, 30, 1171, 731, 480, - 5, 775, 776, 487, 599, 7, 601, 602, 1332, 1333, - 50, 188, 786, 5, 10, 50, 8, 35, 48, 37, - 4, 50, 6, 36, 464, 19, 50, 60, 22, 114, - 7, 41, 274, 1099, 114, 114, 10, 106, 36, 114, - 58, 12, 38, 508, 286, 36, 50, 114, 82, 6, - 638, 639, 640, 641, 642, 49, 36, 41, 14, 61, - 78, 36, 168, 19, 38, 67, 801, 655, 7, 25, - 68, 70, 37, 15, 555, 5, 19, 802, 267, 114, - 98, 270, 9, 1412, 1413, 56, 37, 1411, 79, 99, - 188, 189, 200, 58, 112, 89, 67, 131, 97, 108, - 134, 135, 106, 1488, 138, 139, 49, 141, 142, 39, - 591, 145, 121, 51, 849, 149, 150, 111, 114, 153, - 60, 155, 156, 157, 1453, 850, 82, 194, 162, 163, - 9, 216, 201, 310, 76, 243, 216, 216, 218, 218, - 114, 216, 189, 218, 178, 163, 89, 112, 86, 134, - 152, 1160, 1161, 1162, 1163, 1164, 1165, 99, 1543, 149, - 600, 112, 164, 197, 645, 172, 200, 409, 111, 9, - 129, 178, 206, 98, 133, 131, 216, 134, 135, 209, - 183, 216, 195, 216, 141, 169, 142, 216, 1044, 1255, - 115, 764, 197, 149, 196, 213, 153, 195, 155, 201, - 202, 203, 204, 205, 206, 207, 163, 168, 803, 243, - 257, 944, 945, 215, 79, 195, 212, 251, 81, 196, - 195, 995, 178, 217, 1553, 217, 1550, 204, 205, 206, - 207, 195, 188, 267, 197, 195, 270, 271, 215, 132, - 79, 197, 205, 212, 728, 195, 207, 56, 217, 213, - 206, 114, 145, 213, 1263, 1429, 851, 196, 846, 124, - 1186, 126, 195, 213, 311, 204, 205, 206, 207, 196, - 858, 859, 860, 861, 862, 863, 215, 204, 205, 206, - 207, 33, 190, 191, 461, 124, 1295, 126, 215, 336, - 337, 338, 210, 195, 251, 1304, 1305, 1306, 1307, 1308, - 1309, 1310, 1311, 55, 1313, 339, 340, 585, 586, 587, - 588, 213, 77, 778, 79, 349, 101, 196, 70, 71, - 367, 355, 201, 202, 203, 204, 205, 206, 207, 363, - 492, 167, 55, 77, 368, 79, 215, 1454, 1455, 101, - 374, 375, 216, 696, 218, 97, 380, 70, 382, 745, - 815, 113, 386, 749, 707, 1211, 196, 194, 5, 124, - 1477, 126, 802, 149, 204, 205, 206, 207, 745, 197, - 122, 64, 749, 1248, 97, 215, 1251, 817, 818, 194, - 124, 415, 126, 339, 340, 197, 214, 196, 828, 216, - 37, 218, 37, 349, 37, 204, 205, 206, 207, 864, - 90, 81, 214, 61, 81, 439, 215, 441, 216, 67, - 850, 58, 81, 58, 1176, 58, 56, 374, 899, 375, - 1015, 1016, 1017, 380, 1433, 382, 866, 194, 195, 463, - 197, 465, 199, 394, 395, 396, 61, 77, 1357, 123, - 401, 930, 99, 932, 933, 934, 935, 936, 937, 19, - 81, 98, 413, 98, 24, 98, 921, 1052, 1053, 1054, - 179, 180, 196, 497, 131, 112, 36, 112, 123, 112, - 204, 205, 206, 207, 4, 436, 195, 438, 1404, 9, - 1406, 215, 1070, 216, 661, 218, 16, 216, 665, 218, - 20, 216, 669, 218, 152, 123, 673, 1003, 212, 213, - 677, 206, 207, 1009, 681, 461, 164, 77, 685, 543, - 215, 210, 689, 120, 206, 206, 207, 217, 552, 89, - 206, 207, 800, 93, 215, 559, 173, 152, 173, 215, - 9, 809, 810, 811, 812, 813, 814, 196, 196, 164, - 497, 111, 120, 202, 203, 579, 204, 205, 206, 207, - 9, 585, 586, 587, 588, 217, 196, 215, 197, 64, - 199, 201, 202, 203, 204, 205, 206, 207, 12, 217, - 531, 196, 533, 534, 535, 536, 32, 759, 760, 204, - 205, 206, 207, 119, 206, 207, 19, 543, 758, 216, - 215, 218, 1032, 215, 488, 489, 490, 216, 775, 776, - 81, 206, 207, 36, 638, 639, 640, 641, 642, 786, - 215, 135, 56, 216, 138, 218, 216, 61, 218, 196, - 216, 655, 218, 67, 148, 202, 203, 204, 205, 206, - 207, 1120, 33, 217, 158, 159, 56, 509, 215, 1128, - 117, 1130, 1131, 820, 77, 1134, 1135, 1136, 1137, 1138, - 1139, 1140, 1141, 177, 55, 1144, 89, 217, 217, 693, - 93, 695, 1151, 216, 88, 218, 713, 217, 217, 70, - 71, 216, 706, 218, 708, 217, 217, 1142, 111, 217, - 714, 1187, 217, 717, 51, 719, 720, 721, 722, 216, - 57, 218, 18, 727, 741, 217, 97, 731, 732, 66, - 734, 217, 217, 104, 105, 739, 120, 74, 152, 1483, - 217, 745, 759, 760, 216, 749, 218, 216, 85, 218, - 164, 122, 213, 217, 758, 759, 760, 761, 95, 9, - 1195, 765, 212, 767, 768, 213, 913, 693, 772, 695, - 216, 212, 218, 110, 217, 779, 780, 1212, 120, 187, - 706, 531, 196, 533, 534, 535, 536, 714, 202, 203, - 204, 205, 206, 207, 1245, 722, 800, 801, 35, 9, - 37, 215, 157, 98, 171, 809, 810, 811, 812, 813, - 814, 81, 48, 739, 7, 216, 9, 218, 106, 661, - 751, 58, 61, 665, 216, 50, 218, 669, 759, 760, - 216, 673, 218, 18, 197, 677, 98, 106, 765, 681, - 767, 78, 846, 685, 212, 849, 102, 689, 995, 775, - 776, 106, 106, 784, 858, 859, 860, 861, 862, 863, - 786, 98, 106, 215, 218, 12, 1189, 798, 61, 218, - 1193, 216, 50, 196, 67, 112, 212, 1312, 201, 202, - 203, 204, 205, 206, 207, 165, 217, 22, 217, 63, - 83, 63, 215, 217, 81, 218, 201, 901, 185, 83, - 904, 175, 339, 907, 81, 88, 147, 201, 201, 56, - 98, 842, 216, 152, 61, 1374, 847, 848, 1461, 218, - 67, 21, 50, 99, 216, 164, 930, 217, 932, 933, - 934, 935, 936, 937, 218, 1370, 196, 61, 97, 218, - 944, 945, 218, 67, 204, 205, 206, 207, 71, 953, - 954, 218, 969, 957, 218, 215, 217, 196, 218, 152, - 217, 123, 213, 212, 217, 204, 205, 206, 207, 217, - 217, 164, 1407, 1408, 217, 901, 215, 981, 218, 201, - 218, 214, 196, 218, 218, 1117, 217, 217, 217, 1148, - 204, 205, 206, 207, 217, 1430, 217, 1320, 217, 217, - 217, 215, 217, 196, 217, 152, 217, 1330, 201, 202, - 203, 204, 205, 206, 207, 217, 217, 164, 217, 217, - 217, 217, 215, 217, 56, 867, 953, 217, 152, 218, - 150, 217, 874, 875, 201, 877, 878, 1513, 880, 881, - 164, 883, 884, 120, 886, 887, 217, 889, 890, 196, - 892, 893, 983, 895, 896, 114, 217, 204, 205, 206, - 207, 217, 217, 217, 120, 215, 1070, 48, 215, 995, - 218, 217, 196, 218, 3, 218, 56, 6, 202, 203, - 204, 205, 206, 207, 215, 14, 218, 217, 26, 18, - 19, 215, 21, 218, 196, 1099, 25, 1101, 216, 218, - 29, 30, 204, 205, 206, 207, 218, 1111, 218, 196, - 218, 218, 1116, 215, 218, 206, 1120, 204, 205, 206, - 207, 53, 114, 106, 1128, 53, 1130, 1131, 215, 192, + 199, 133, 6, 476, 162, 145, 556, 416, 907, 901, + 14, 159, 844, 363, 18, 19, 566, 21, 740, 151, + 1171, 25, 188, 5, 475, 29, 30, 487, 114, 480, + 343, 731, 7, 775, 776, 50, 1160, 1161, 1162, 1163, + 1164, 1165, 48, 50, 786, 26, 457, 5, 1332, 1333, + 8, 36, 4, 114, 6, 464, 19, 60, 114, 114, + 36, 50, 801, 36, 585, 586, 587, 588, 1099, 36, + 114, 599, 19, 601, 602, 22, 50, 195, 82, 70, + 106, 98, 15, 68, 1449, 1450, 49, 108, 14, 41, + 216, 274, 218, 19, 37, 213, 41, 508, 115, 25, + 121, 50, 49, 286, 555, 1470, 97, 6, 194, 267, + 849, 930, 270, 932, 933, 934, 935, 936, 937, 638, + 639, 640, 641, 642, 1408, 114, 89, 131, 802, 37, + 134, 135, 106, 12, 138, 139, 655, 141, 142, 1263, + 591, 145, 89, 76, 310, 149, 150, 60, 111, 153, + 58, 155, 156, 157, 99, 216, 82, 218, 162, 163, + 216, 216, 218, 218, 111, 5, 99, 1409, 1410, 112, + 168, 1295, 216, 5, 178, 201, 850, 56, 81, 134, + 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 67, 1313, + 98, 600, 7, 197, 645, 183, 200, 37, 200, 37, + 36, 216, 206, 209, 112, 131, 1448, 39, 189, 216, + 195, 114, 1044, 216, 764, 197, 142, 169, 58, 195, + 58, 196, 195, 149, 1255, 37, 409, 216, 195, 204, + 205, 206, 207, 9, 51, 134, 135, 132, 79, 243, + 215, 243, 141, 79, 944, 945, 58, 251, 149, 79, + 145, 172, 178, 995, 153, 1539, 155, 178, 98, 217, + 33, 197, 188, 267, 163, 173, 270, 271, 728, 86, + 217, 197, 112, 1424, 112, 803, 257, 129, 214, 800, + 206, 133, 55, 124, 195, 126, 98, 1186, 809, 810, + 811, 812, 813, 814, 124, 461, 126, 70, 71, 1541, + 112, 1120, 213, 35, 1428, 37, 197, 188, 189, 1128, + 195, 1130, 1131, 195, 205, 1134, 1135, 1136, 1137, 1138, + 1139, 1140, 1141, 851, 97, 1144, 58, 846, 213, 212, + 311, 213, 1151, 173, 217, 339, 340, 197, 101, 858, + 859, 860, 861, 862, 863, 349, 78, 195, 19, 122, + 113, 355, 251, 24, 214, 336, 337, 338, 1248, 363, + 492, 1251, 9, 101, 368, 36, 98, 778, 179, 180, + 374, 375, 194, 195, 9, 197, 380, 199, 382, 1211, + 112, 196, 386, 696, 195, 216, 367, 218, 19, 204, + 205, 206, 207, 802, 707, 745, 7, 190, 191, 749, + 215, 12, 55, 745, 815, 36, 77, 749, 817, 818, + 216, 415, 218, 339, 340, 206, 207, 70, 89, 828, + 196, 210, 93, 349, 215, 201, 202, 203, 204, 205, + 206, 207, 7, 194, 216, 439, 218, 441, 167, 215, + 111, 850, 206, 207, 97, 56, 77, 149, 899, 375, + 61, 215, 64, 864, 1176, 194, 67, 866, 89, 463, + 81, 465, 93, 212, 213, 1357, 77, 77, 7, 79, + 90, 216, 83, 12, 216, 374, 218, 35, 81, 37, + 111, 380, 77, 382, 79, 4, 61, 1015, 1016, 1017, + 9, 81, 67, 497, 216, 661, 218, 16, 123, 665, + 58, 20, 1401, 669, 1403, 99, 196, 673, 83, 81, + 921, 677, 202, 203, 124, 681, 126, 56, 123, 685, + 78, 56, 61, 689, 1052, 1053, 1054, 123, 67, 124, + 1003, 126, 131, 206, 207, 461, 1009, 206, 77, 543, + 98, 152, 215, 197, 83, 199, 210, 120, 552, 196, + 217, 1070, 1371, 164, 112, 559, 120, 204, 205, 206, + 207, 196, 9, 64, 206, 207, 217, 9, 215, 204, + 205, 206, 207, 215, 217, 579, 32, 152, 206, 207, + 215, 585, 586, 587, 588, 196, 216, 215, 218, 164, + 201, 202, 203, 204, 205, 206, 207, 12, 497, 488, + 489, 490, 119, 216, 215, 163, 81, 218, 217, 775, + 776, 759, 760, 152, 216, 56, 218, 543, 758, 217, + 786, 196, 33, 1032, 217, 164, 201, 202, 203, 204, + 205, 206, 207, 117, 638, 639, 640, 641, 642, 196, + 215, 56, 18, 218, 55, 168, 61, 204, 205, 206, + 207, 655, 67, 88, 820, 213, 217, 196, 215, 70, + 71, 196, 201, 202, 203, 204, 205, 206, 207, 204, + 205, 206, 207, 216, 9, 218, 215, 217, 9, 218, + 215, 217, 135, 217, 207, 138, 97, 217, 56, 693, + 216, 695, 218, 104, 105, 148, 531, 217, 533, 534, + 535, 536, 706, 217, 708, 158, 159, 217, 217, 77, + 714, 122, 120, 717, 1187, 719, 720, 721, 722, 216, + 216, 218, 218, 727, 177, 217, 213, 731, 732, 217, + 734, 1142, 713, 212, 1476, 739, 216, 152, 218, 217, + 61, 745, 216, 213, 218, 749, 67, 913, 216, 164, + 218, 216, 212, 218, 758, 759, 760, 761, 120, 187, + 741, 765, 98, 767, 768, 7, 157, 693, 772, 695, + 216, 216, 218, 218, 171, 779, 780, 81, 759, 760, + 706, 196, 48, 106, 1195, 50, 201, 202, 203, 204, + 205, 206, 207, 18, 1245, 197, 800, 801, 98, 106, + 215, 1212, 212, 106, 106, 809, 810, 811, 812, 813, + 814, 106, 102, 739, 215, 714, 50, 216, 218, 61, + 218, 165, 212, 722, 217, 67, 22, 7, 196, 995, + 217, 152, 63, 201, 202, 203, 204, 205, 206, 207, + 63, 83, 846, 164, 217, 849, 81, 83, 1257, 775, + 776, 201, 185, 175, 858, 859, 860, 861, 862, 863, + 786, 88, 81, 147, 201, 98, 765, 201, 767, 216, + 218, 394, 395, 396, 216, 196, 1189, 217, 401, 99, + 1193, 61, 21, 204, 205, 206, 207, 67, 218, 218, + 413, 7, 218, 51, 215, 50, 61, 901, 218, 57, + 904, 1312, 67, 907, 1454, 218, 97, 71, 66, 217, + 152, 217, 217, 436, 123, 438, 74, 218, 217, 217, + 213, 218, 164, 214, 218, 217, 930, 85, 932, 933, + 934, 935, 936, 937, 201, 218, 217, 95, 217, 217, + 944, 945, 217, 217, 217, 61, 217, 217, 217, 953, + 954, 67, 110, 957, 196, 217, 1367, 217, 217, 201, + 202, 203, 204, 205, 206, 207, 217, 83, 217, 217, + 217, 217, 152, 215, 217, 901, 218, 981, 217, 217, + 217, 56, 212, 150, 164, 1117, 218, 152, 969, 217, + 1148, 201, 120, 1404, 1405, 196, 217, 114, 120, 164, + 201, 202, 203, 204, 205, 206, 207, 1320, 531, 217, + 533, 534, 535, 536, 1425, 217, 196, 1330, 215, 48, + 218, 201, 202, 203, 204, 205, 206, 207, 218, 218, + 217, 196, 1505, 56, 215, 215, 152, 202, 203, 204, + 205, 206, 207, 217, 26, 218, 218, 218, 164, 3, + 215, 53, 6, 206, 953, 218, 218, 218, 218, 218, + 14, 106, 216, 114, 18, 19, 1070, 21, 53, 995, + 217, 25, 192, 196, 217, 29, 30, 217, 186, 217, + 196, 204, 205, 206, 207, 201, 202, 203, 204, 205, + 206, 207, 215, 217, 63, 1099, 79, 1101, 48, 215, + 196, 9, 218, 83, 153, 106, 194, 1111, 204, 205, + 206, 207, 1116, 217, 52, 218, 1120, 218, 218, 215, + 61, 218, 218, 218, 1128, 218, 1130, 1131, 82, 214, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 217, 217, - 1144, 217, 217, 186, 1148, 217, 79, 1151, 63, 48, - 9, 106, 83, 82, 153, 194, 1160, 1161, 1162, 1163, - 1164, 1165, 1179, 217, 1181, 52, 218, 218, 218, 196, - 218, 218, 218, 1099, 214, 217, 1180, 204, 205, 206, - 207, 217, 1186, 218, 1111, 218, 216, 218, 215, 1116, - 218, 62, 218, 218, 218, 218, 1038, 218, 218, 218, - 1042, 218, 131, 218, 218, 134, 135, 218, 218, 138, - 139, 218, 141, 142, 1537, 218, 145, 218, 218, 14, - 149, 150, 218, 218, 153, 54, 155, 156, 157, 1071, - 140, 36, 36, 162, 163, 193, 1368, 215, 201, 142, - 217, 217, 217, 1260, 217, 43, 82, 218, 218, 178, - 218, 1255, 218, 1257, 1180, 196, 218, 218, 218, 1263, - 201, 202, 203, 204, 205, 206, 207, 7, 197, 706, - 218, 200, 12, 218, 215, 196, 218, 206, 85, 1474, - 201, 202, 203, 204, 205, 206, 207, 62, 110, 216, - 727, 1295, 216, 195, 93, 218, 162, 215, 69, 91, - 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1503, 1313, - 64, 212, 218, 217, 243, 5, 56, 84, 216, 216, - 212, 61, 251, 218, 218, 218, 1257, 67, 218, 1255, - 218, 81, 218, 141, 1529, 98, 1483, 77, 267, 14, - 218, 270, 271, 83, 217, 151, 194, 217, 217, 110, - 218, 218, 216, 1357, 3, 284, 212, 214, 210, 210, - 0, 0, 32, 1205, 219, 1296, 1297, 1209, 357, 510, - 1374, 300, 1376, 738, 338, 963, 717, 147, 7, 732, - 719, 960, 1152, 12, 1466, 1402, 1489, 1439, 734, 1470, - 1526, 971, 761, 28, 760, 207, 345, 1401, 7, 15, - 1404, 559, 1406, 12, 1406, 268, 1410, 1476, 1506, 1405, - 339, 340, 152, 253, 159, 772, 1420, 1421, 969, 31, - 349, 358, 1514, 460, 164, 1484, 355, 56, 1507, 1433, - 867, 1357, 61, 1420, 363, 1515, 1249, 1534, 67, 368, - 1410, 706, 300, 1042, 156, 374, 375, 56, 77, 465, - 1448, 380, 61, 382, 83, 1472, 196, 386, 67, 461, - 1464, 201, 202, 203, 204, 205, 206, 207, 77, -1, - 1101, 400, -1, -1, 1401, 215, 12, 1481, 218, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1420, - -1, -1, -1, 930, -1, 932, 933, 934, 935, 936, - 937, -1, -1, -1, -1, -1, -1, -1, -1, 1526, - 439, 1515, -1, -1, -1, -1, 1520, 954, -1, 139, - 56, -1, -1, 152, -1, 61, -1, -1, 457, -1, - 1534, 67, 1536, 1464, 463, 164, 465, 157, -1, -1, - -1, 77, -1, 152, -1, -1, -1, -1, -1, -1, - 1481, -1, -1, -1, -1, 164, -1, 1483, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 196, 497, -1, - -1, -1, 201, 202, 203, 204, 205, 206, 207, 508, - -1, -1, -1, -1, 1515, -1, 215, 196, -1, 218, - -1, -1, 201, 202, 203, 204, 205, 206, 207, -1, - -1, -1, -1, 1534, -1, -1, 215, -1, -1, -1, - -1, -1, -1, -1, 543, -1, 152, 33, 34, -1, - -1, -1, -1, 552, 40, -1, -1, 61, 164, -1, - 559, 47, -1, 67, 1071, -1, -1, -1, -1, 55, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - 579, -1, -1, -1, 70, 71, -1, -1, -1, -1, - 196, -1, -1, -1, 80, 201, 202, 203, 204, 205, - 206, 207, -1, -1, -1, -1, -1, -1, -1, 215, - -1, 97, -1, 1120, -1, -1, 102, 103, -1, -1, - -1, 1128, -1, 1130, 1131, -1, -1, 1134, 1135, 1136, - 1137, 1138, 1139, 1140, 1141, -1, 122, 1144, -1, -1, - -1, 127, -1, -1, 1151, -1, -1, -1, 152, -1, - -1, -1, -1, 1160, 1161, 1162, 1163, 1164, 1165, -1, - 164, -1, 287, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 302, -1, -1, - 305, -1, 307, 308, 309, 310, -1, -1, -1, -1, - -1, -1, 196, -1, 693, -1, 695, 201, 202, 203, - 204, 205, 206, 207, -1, -1, -1, 706, 194, 708, - -1, 215, -1, -1, -1, 714, 1223, 7, 717, 101, - 719, 720, 721, 722, -1, 415, -1, -1, -1, -1, - -1, 113, 731, 732, -1, 734, 118, -1, -1, -1, - 739, -1, -1, 125, -1, 127, 745, 372, 130, -1, - 749, 441, -1, -1, -1, -1, 1263, 139, -1, 758, - 759, 760, 761, -1, 146, 390, 765, 149, 767, 768, - -1, 61, -1, 772, -1, -1, -1, 67, -1, 778, - 779, 780, -1, -1, 166, 167, -1, -1, 1295, -1, - -1, 173, 174, 83, 419, -1, 7, 1304, 1305, 1306, - 1307, 1308, 1309, 1310, 1311, -1, 1313, -1, -1, -1, - -1, -1, -1, -1, -1, 440, 815, -1, -1, 444, - -1, 446, -1, -1, 449, 450, 451, 452, 453, 454, - 455, 456, 12, 458, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1350, -1, 339, -1, -1, -1, -1, - 61, -1, -1, -1, -1, -1, 67, -1, -1, -1, - -1, -1, 152, -1, -1, 864, -1, 1374, 867, -1, - -1, -1, 83, -1, 164, -1, 56, -1, -1, -1, - -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, - -1, -1, -1, -1, -1, 585, 586, 587, 588, -1, - -1, -1, 901, -1, -1, 904, 196, -1, 907, -1, - -1, 201, 202, 203, 204, 205, 206, 207, -1, -1, - -1, 415, 921, -1, -1, 215, 1433, -1, 218, -1, + 1144, 61, 218, 196, 1148, 218, 218, 1151, 201, 202, + 203, 204, 205, 206, 207, 218, 1160, 1161, 1162, 1163, + 1164, 1165, 215, 218, 218, 218, 7, 62, 9, 216, + 218, 14, 218, 1099, 218, 218, 1180, 131, 218, 218, + 134, 135, 1186, 218, 138, 139, 218, 141, 142, 54, + 218, 145, 218, 218, 218, 149, 150, 218, 1179, 153, + 1181, 155, 156, 157, 218, 218, 218, 140, 162, 163, + 36, 152, 1111, 36, 1527, 193, 215, 1116, 142, 217, + 61, 217, 201, 164, 178, 217, 67, 217, 751, 43, + 196, 82, 152, 1365, 218, 216, 759, 760, 204, 205, + 206, 207, 83, 197, 164, 218, 200, 218, 218, 215, + 218, 1255, 206, 218, 1180, 196, 218, 218, 218, 1263, + 218, 784, 196, 204, 205, 206, 207, 85, 1467, 62, + 204, 205, 206, 207, 215, 798, 196, 110, 195, 1260, + 7, 215, 93, 509, 204, 205, 206, 207, 216, 243, + 162, 1295, 218, 215, 69, 215, 1495, 251, 64, 91, + 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 212, 1313, + 1476, 152, 218, 267, 216, 218, 270, 271, 217, 842, + 1519, 218, 218, 164, 847, 848, 218, 5, 196, 1255, + 284, 84, 218, 218, 61, 81, 204, 205, 206, 207, + 67, 141, 98, 14, 218, 151, 300, 215, 217, 194, + 217, 61, 218, 1357, 217, 196, 83, 67, 110, 218, + 201, 202, 203, 204, 205, 206, 207, 1371, 216, 1373, + 3, 0, 212, 210, 215, 214, 210, 0, 32, 510, + 339, 196, 357, 219, 738, 339, 340, 202, 203, 204, + 205, 206, 207, 963, 1398, 349, 338, 1401, 147, 1403, + 215, 355, 717, 1407, 732, 719, 960, 1459, 1152, 363, + 1481, 1434, 1463, 1516, 368, 734, 971, 12, 1399, 760, + 374, 375, 761, 28, 1428, 152, 380, 207, 382, 345, + 15, 1357, 386, 268, 559, 661, 1469, 164, 1403, 665, + 1498, 1402, 152, 669, 253, 159, 400, 673, 969, 31, + 460, 677, 1506, 358, 164, 681, 415, 1477, 1499, 685, + 983, 56, 772, 689, 1507, 1407, 61, 1524, 1249, 196, + 1474, 300, 67, 1042, 201, 202, 203, 204, 205, 206, + 207, 156, 441, 1443, 1465, 439, 196, 461, 215, 465, + 706, 201, 202, 203, 204, 205, 206, 207, -1, 1398, + 1101, -1, -1, 457, -1, 215, -1, 196, -1, 463, + -1, 465, 201, 202, 203, 204, 205, 206, 207, 12, + 1524, -1, 1526, -1, -1, -1, 215, 101, -1, -1, + -1, -1, -1, -1, -1, 1516, -1, 111, -1, 113, + -1, 339, -1, 497, 118, -1, -1, -1, -1, -1, + 1476, 125, -1, 127, 508, -1, 130, 152, -1, -1, + -1, -1, 287, 56, -1, 139, -1, -1, 61, 164, + -1, -1, 146, -1, 67, 149, -1, 302, -1, -1, + 305, -1, 307, 308, 309, 310, -1, -1, -1, 543, + 139, -1, 166, -1, -1, -1, -1, -1, 552, 173, + 174, 196, -1, -1, -1, 559, -1, 181, 157, 204, + 205, 206, 207, -1, -1, -1, -1, -1, -1, -1, + 215, -1, -1, -1, -1, 579, 585, 586, 587, 588, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 152, -1, -1, -1, 944, 945, 441, 638, 639, - 640, 641, 642, 164, 953, -1, -1, -1, 957, -1, - -1, -1, -1, -1, -1, 655, -1, -1, -1, -1, - -1, -1, 152, -1, 599, -1, 601, 602, -1, -1, - -1, -1, 981, 608, 164, 196, -1, -1, -1, -1, - 201, 202, 203, 204, 205, 206, 207, -1, -1, -1, - -1, -1, -1, -1, 215, -1, -1, 218, 7, -1, - -1, -1, -1, -1, -1, -1, 196, -1, 643, -1, - -1, 201, 202, 203, 204, 205, 206, 207, -1, -1, - -1, -1, 657, -1, -1, 215, 661, 727, -1, -1, - 665, -1, -1, -1, 669, -1, -1, -1, 673, -1, - -1, -1, 677, -1, -1, -1, 681, -1, -1, -1, - 685, -1, 61, -1, 689, -1, -1, -1, 67, -1, - -1, -1, 1071, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 7, -1, 83, -1, -1, 12, -1, -1, - -1, 585, 586, 587, 588, -1, -1, -1, -1, -1, - 1099, -1, 1101, 7, -1, -1, -1, -1, -1, -1, - 800, 801, 1111, -1, -1, -1, -1, 1116, -1, 809, - 810, 811, 812, 813, 814, -1, -1, -1, -1, -1, - -1, 56, -1, -1, -1, -1, 61, -1, -1, -1, - -1, -1, 67, 1142, 638, 639, 640, 641, 642, 1148, - -1, -1, 77, 152, -1, -1, 846, 61, 83, 849, - -1, 655, -1, 67, 789, 164, -1, -1, 858, 859, - 860, 861, 862, 863, -1, -1, -1, -1, 803, 83, - -1, 1180, -1, -1, -1, -1, -1, 1186, -1, -1, - -1, -1, -1, -1, 819, -1, 1195, 196, -1, -1, - -1, -1, 201, 202, 203, 204, 205, 206, 207, -1, - -1, -1, 706, 1212, -1, -1, 215, -1, -1, 218, - -1, -1, -1, -1, 1223, -1, 851, 152, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 164, - 930, -1, 932, 933, 934, 935, 936, 937, 152, -1, - -1, -1, -1, -1, -1, -1, 1255, -1, 1257, -1, - 164, -1, 415, -1, 954, -1, -1, -1, -1, -1, - -1, 196, -1, 898, -1, -1, 201, 202, 203, 204, - 205, 206, 207, -1, -1, -1, -1, -1, 441, -1, - 215, 216, 196, -1, -1, -1, -1, 201, 202, 203, - 204, 205, 206, 207, -1, -1, 800, 801, -1, -1, - -1, 215, -1, 1312, -1, 809, 810, 811, 812, 813, - 814, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 7, -1, -1, -1, -1, 12, + -1, 867, -1, -1, -1, -1, -1, 372, 874, 875, + -1, 877, 878, -1, 880, 881, -1, 883, 884, 152, + 886, 887, -1, 889, 890, 390, 892, 893, -1, 895, + 896, 164, -1, -1, -1, -1, -1, -1, -1, 638, + 639, 640, 641, 642, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 419, -1, 655, -1, -1, -1, + -1, -1, -1, 196, -1, -1, -1, -1, -1, 202, + 203, 204, 205, 206, 207, 440, -1, -1, -1, 444, + -1, 446, 215, -1, 449, 450, 451, 452, 453, 454, + 455, 456, -1, 458, -1, -1, -1, -1, -1, 693, + -1, 695, -1, -1, -1, -1, -1, 706, -1, -1, + -1, -1, 706, -1, 708, -1, -1, -1, -1, -1, + 714, -1, -1, 717, -1, 719, 720, 721, 722, -1, + -1, -1, -1, 1296, 1297, -1, -1, 731, 732, 12, + 734, -1, -1, -1, -1, 739, -1, -1, -1, -1, + -1, 745, -1, -1, -1, 749, -1, -1, -1, -1, + -1, -1, -1, -1, 758, 759, 760, 761, -1, -1, + -1, 765, 1038, 767, 768, -1, 1042, -1, 772, -1, + -1, -1, -1, 56, 778, 779, 780, -1, 61, -1, + -1, -1, -1, -1, 67, 7, -1, -1, -1, -1, + 12, 800, 801, -1, 77, 1071, -1, -1, -1, -1, + 809, 810, 811, 812, 813, 814, -1, -1, -1, -1, + -1, 815, -1, 7, -1, -1, 415, -1, 12, -1, + -1, -1, -1, -1, 599, -1, 601, 602, -1, -1, + -1, -1, -1, 608, 56, -1, -1, 846, -1, 61, + 849, -1, 441, -1, -1, 67, -1, -1, -1, 858, + 859, 860, 861, 862, 863, 77, -1, -1, 706, -1, + 864, 83, 56, 867, -1, -1, -1, 61, 643, 152, + -1, -1, -1, 67, -1, -1, -1, -1, -1, 727, + -1, 164, 657, 77, -1, -1, 661, -1, -1, 83, + 665, -1, -1, -1, 669, -1, -1, 901, 673, -1, + 904, 1474, 677, 907, -1, -1, 681, -1, -1, -1, + 685, -1, -1, 196, 689, -1, -1, 921, 201, 202, + 203, 204, 205, 206, 207, -1, -1, -1, -1, 1205, + 152, -1, 215, 1209, -1, -1, -1, -1, -1, -1, + 944, 945, 164, -1, -1, -1, -1, -1, -1, 953, + -1, 1524, -1, 957, -1, -1, -1, -1, 152, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1350, 846, -1, -1, 849, -1, -1, 1357, -1, - -1, -1, -1, -1, 858, 859, 860, 861, 862, 863, - -1, 1370, -1, -1, -1, -1, -1, 1376, -1, -1, - 1070, -1, -1, 56, -1, -1, -1, -1, 61, -1, - 1015, 1016, 1017, -1, 67, -1, -1, -1, -1, -1, - -1, -1, 1401, -1, 77, 1404, -1, 1406, 1407, 1408, - 83, 1410, -1, -1, -1, -1, -1, 1042, -1, -1, - -1, 1420, 1421, -1, -1, -1, -1, 1052, 1053, 1054, - 1120, 1430, 585, 586, 587, 588, -1, -1, 1128, -1, - 1130, 1131, -1, -1, 1134, 1135, 1136, 1137, 1138, 1139, - 1140, 1141, -1, -1, 1144, -1, -1, -1, -1, -1, - -1, 1151, -1, -1, -1, 1464, -1, -1, -1, -1, - 1160, 1161, 1162, 1163, 1164, 1165, -1, -1, -1, 152, - -1, -1, 1481, -1, -1, 638, 639, 640, 641, 642, - -1, 164, 7, -1, -1, -1, 1186, 12, -1, -1, - -1, -1, 655, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1515, -1, -1, -1, - -1, 1520, -1, 196, -1, -1, -1, -1, 201, 202, - 203, 204, 205, 206, 207, 1534, -1, 1536, -1, -1, - -1, 56, 215, 216, -1, -1, 61, -1, -1, -1, - -1, -1, 67, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 77, -1, -1, -1, -1, -1, 83, -1, - -1, -1, -1, 1263, 727, -1, 1070, -1, -1, -1, + 164, -1, -1, -1, 196, -1, -1, 981, -1, 201, + 202, 203, 204, 205, 206, 207, 585, 586, 587, 588, + -1, -1, -1, 215, 216, -1, -1, -1, 7, -1, + -1, 10, 196, 12, -1, -1, -1, 201, 202, 203, + 204, 205, 206, 207, 789, -1, -1, -1, -1, 867, + -1, 215, 216, -1, -1, -1, -1, -1, 803, 38, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 638, + 639, 640, 641, 642, 819, -1, -1, 56, -1, -1, + -1, -1, 61, -1, 101, -1, 655, -1, 67, -1, + -1, 1070, -1, -1, -1, -1, 113, 1071, 77, -1, + -1, 118, -1, -1, 83, -1, 851, -1, 125, -1, + 127, -1, 930, 130, 932, 933, 934, 935, 936, 937, + -1, -1, 139, -1, -1, 1099, -1, 1101, -1, 146, + -1, -1, 149, -1, -1, 114, 954, 1111, -1, -1, + 33, 34, 1116, -1, -1, -1, -1, 40, -1, 166, + 167, -1, -1, 898, 47, -1, 173, 174, 727, -1, + -1, -1, 55, -1, -1, -1, 59, -1, 1142, -1, + -1, -1, -1, 152, 1148, -1, -1, 70, 71, -1, + -1, -1, -1, -1, -1, 164, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 97, -1, 1180, -1, -1, 102, + 103, -1, 1186, -1, -1, 7, -1, 196, -1, -1, + 12, 1195, 201, 202, 203, 204, 205, 206, 207, 122, + 415, 800, 801, -1, 127, -1, 215, -1, 1212, -1, + 809, 810, 811, 812, 813, 814, -1, -1, -1, 1223, + -1, -1, -1, 1071, -1, -1, 441, -1, -1, -1, + -1, -1, -1, -1, 56, -1, -1, -1, -1, 61, + 1015, 1016, 1017, -1, -1, 67, -1, 846, -1, -1, + 849, 1255, -1, -1, -1, 77, -1, -1, -1, 858, + 859, 860, 861, 862, 863, -1, -1, 1042, -1, -1, + -1, 194, 1120, -1, -1, -1, -1, 1052, 1053, 1054, + 1128, -1, 1130, 1131, -1, -1, 1134, 1135, 1136, 1137, + 1138, 1139, 1140, 1141, -1, -1, 1144, -1, -1, -1, + -1, -1, -1, 1151, -1, -1, -1, -1, 1312, -1, + -1, -1, 1160, 1161, 1162, 1163, 1164, 1165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1295, -1, -1, -1, -1, - -1, -1, -1, -1, 1304, 1305, 1306, 1307, 1308, 1309, - 1310, 1311, -1, 1313, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1258, -1, -1, -1, 152, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 800, 801, 164, - -1, -1, -1, -1, -1, -1, 809, 810, 811, 812, - 813, 814, -1, -1, -1, -1, -1, -1, -1, -1, + 152, 930, -1, 932, 933, 934, 935, 936, 937, -1, + -1, -1, 164, -1, -1, -1, 1350, -1, -1, -1, + -1, -1, -1, 1357, -1, 954, -1, -1, -1, 7, + -1, 9, -1, 1367, 12, -1, -1, -1, -1, 1373, + 585, 586, 587, 588, 196, 1223, -1, -1, -1, 201, + 202, 203, 204, 205, 206, 207, -1, -1, -1, -1, + -1, -1, -1, 215, 1398, -1, -1, 1401, -1, 1403, + 1404, 1405, -1, 1407, -1, -1, -1, -1, 56, -1, + -1, -1, -1, 61, -1, 1263, -1, -1, -1, 67, + -1, 1425, -1, 638, 639, 640, 641, 642, -1, 77, + -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, + 655, -1, -1, -1, -1, -1, -1, 1295, -1, -1, + -1, -1, -1, -1, -1, -1, 1304, 1305, 1306, 1307, + 1308, 1309, 1310, 1311, -1, 1313, -1, -1, -1, -1, + 1474, 1070, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1258, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 196, -1, -1, 1374, -1, 201, 202, 203, 204, - 205, 206, 207, 846, 209, -1, 849, -1, -1, 214, - 215, -1, -1, -1, -1, 858, 859, 860, 861, 862, - 863, -1, 17, 18, 867, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 33, 34, - -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, - -1, -1, 47, 1433, -1, -1, -1, -1, -1, -1, - 55, -1, -1, -1, 59, -1, -1, -1, 3, -1, - -1, -1, -1, -1, -1, 70, 71, -1, 73, -1, - 75, 16, 17, 18, -1, 80, -1, 930, -1, 932, - 933, 934, 935, 936, 937, -1, -1, -1, 33, 34, - -1, -1, 97, -1, -1, 40, -1, 102, 103, -1, - -1, 954, 47, -1, -1, -1, -1, -1, -1, -1, - 55, 116, -1, -1, 59, -1, -1, 122, 63, 64, - -1, -1, 127, -1, 69, 70, 71, -1, 73, -1, - 75, -1, 77, -1, 79, 80, -1, 82, -1, -1, - -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, - -1, -1, 97, -1, -1, 1480, -1, 102, 103, 104, - 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 175, 116, -1, -1, -1, -1, -1, 122, 123, 124, - 125, 126, 127, -1, -1, -1, -1, -1, -1, 194, - 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, - -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, - -1, -1, 157, 158, 159, -1, -1, 1070, 1071, -1, - 7, 166, 9, 168, -1, 12, -1, 172, -1, -1, - 175, -1, 177, 178, -1, -1, -1, -1, -1, 184, - 185, -1, 187, -1, -1, -1, -1, 192, -1, 194, - 195, 196, 197, 198, 199, -1, -1, -1, -1, -1, - 205, -1, -1, 208, 209, 210, -1, 1120, -1, 56, - -1, -1, 217, 218, 61, 1128, -1, 1130, 1131, -1, - 67, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 101, - 77, 1144, -1, -1, -1, -1, 83, -1, 1151, 111, - -1, 113, -1, -1, -1, -1, 118, 1160, 1161, 1162, - 1163, 1164, 1165, 125, -1, 127, -1, -1, 130, -1, - -1, -1, -1, -1, -1, -1, -1, 139, -1, -1, - -1, -1, -1, -1, 146, -1, -1, 149, -1, -1, + -1, -1, 1350, -1, 152, -1, -1, -1, -1, -1, + -1, -1, 727, -1, -1, -1, 164, -1, -1, -1, + 1524, 1120, 1526, 1371, -1, -1, -1, -1, -1, 1128, + -1, 1130, 1131, -1, -1, 1134, 1135, 1136, 1137, 1138, + 1139, 1140, 1141, -1, -1, 1144, -1, -1, 196, -1, + -1, -1, 1151, 201, 202, 203, 204, 205, 206, 207, + -1, 1160, 1161, 1162, 1163, 1164, 1165, 215, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, + 1428, -1, -1, -1, 12, 800, 801, 1186, -1, -1, + -1, -1, -1, -1, 809, 810, 811, 812, 813, 814, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, - -1, 173, 174, -1, -1, 152, -1, -1, -1, 181, - 1223, -1, -1, -1, -1, -1, -1, 164, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 56, -1, + -1, 846, -1, 61, 849, -1, -1, -1, -1, 67, + -1, -1, -1, 858, 859, 860, 861, 862, 863, 77, + -1, -1, 867, -1, -1, 83, -1, -1, -1, -1, + -1, -1, -1, -1, 1263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 196, - 1263, -1, -1, -1, 201, 202, 203, 204, 205, 206, - 207, -1, -1, -1, -1, -1, -1, -1, 215, -1, + -1, -1, 1457, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1295, -1, 1473, -1, + -1, -1, -1, 3, -1, 1304, 1305, 1306, 1307, 1308, + 1309, 1310, 1311, -1, 1313, 930, -1, 932, 933, 934, + 935, 936, 937, -1, 152, -1, -1, 27, -1, -1, + -1, -1, 1507, 33, -1, -1, 164, -1, -1, 954, + 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, + -1, -1, -1, 63, 64, -1, -1, -1, 196, 69, + 70, 71, 1371, 201, 202, 203, 204, 205, 206, 207, + -1, 209, 82, -1, -1, -1, 214, 215, -1, -1, + 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, + -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1295, -1, -1, -1, -1, -1, -1, -1, - 3, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, -1, - 1313, -1, -1, 16, 17, 18, -1, -1, -1, -1, - -1, -1, -1, -1, 27, 28, 29, 30, 31, -1, - 33, 34, -1, -1, -1, -1, -1, 40, -1, -1, - -1, 44, 45, -1, 47, -1, -1, 1350, -1, -1, - -1, -1, 55, -1, -1, -1, 59, -1, -1, -1, - 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, - 73, 1374, 75, -1, 77, -1, 79, 80, -1, 82, - -1, -1, -1, -1, 87, -1, -1, 90, -1, -1, - -1, -1, -1, -1, 97, -1, -1, 100, -1, 102, - 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, - 113, -1, -1, 116, -1, -1, -1, -1, -1, 122, - 123, 124, 125, 126, 127, -1, -1, -1, -1, -1, - 1433, -1, 135, -1, -1, 138, 139, 140, -1, 142, - -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, - -1, -1, -1, -1, 157, 158, 159, -1, 161, -1, - -1, -1, -1, 166, -1, 168, -1, -1, -1, 172, - -1, -1, 175, -1, 177, 178, -1, -1, -1, -1, - -1, 184, 185, -1, 187, -1, -1, -1, -1, 192, - -1, 194, 195, 196, 197, 198, 199, 3, -1, -1, - -1, -1, 205, 206, -1, 208, 209, 210, -1, -1, - 16, 17, 18, -1, 217, 218, -1, -1, -1, -1, + -1, 7, 122, 123, -1, 125, 12, 127, -1, 1428, + -1, -1, -1, -1, -1, 135, -1, -1, 138, 139, + 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, + -1, -1, -1, -1, -1, 1070, 1071, 157, 158, 159, + -1, 161, -1, -1, 50, -1, 166, -1, 168, -1, + 56, -1, 172, -1, -1, 61, -1, 177, 178, -1, + -1, 67, -1, -1, 184, 185, -1, 187, -1, -1, + -1, 77, 192, -1, 194, -1, -1, 83, -1, -1, + -1, -1, -1, -1, -1, 1120, -1, -1, -1, -1, + -1, -1, -1, 1128, -1, 1130, 1131, 217, -1, 1134, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, -1, -1, 1144, + -1, -1, -1, -1, -1, -1, 1151, -1, -1, -1, + -1, -1, -1, -1, -1, 1160, 1161, 1162, 1163, 1164, + 1165, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 152, -1, -1, 17, + 18, -1, -1, -1, -1, -1, -1, -1, 164, -1, + -1, -1, -1, -1, -1, 33, 34, -1, -1, -1, + -1, -1, 40, -1, -1, -1, -1, -1, -1, 47, + -1, -1, -1, -1, -1, -1, -1, 55, 1223, -1, + 196, 59, -1, -1, -1, 201, 202, 203, 204, 205, + 206, 207, 70, 71, -1, 73, -1, 75, -1, 215, + -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1263, 97, + -1, -1, -1, -1, 102, 103, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, + -1, -1, -1, -1, 122, -1, -1, -1, -1, 127, + 1295, -1, -1, -1, -1, -1, -1, 3, -1, 1304, + 1305, 1306, 1307, 1308, 1309, 1310, 1311, -1, 1313, -1, + 16, 17, 18, -1, -1, -1, -1, -1, -1, -1, -1, 27, 28, 29, 30, 31, -1, 33, 34, -1, - -1, -1, -1, -1, 40, -1, -1, -1, 44, 45, - -1, 47, -1, -1, -1, -1, -1, -1, -1, 55, - -1, -1, -1, 59, -1, -1, -1, 63, 64, -1, - -1, -1, -1, 69, 70, 71, -1, 73, -1, 75, + -1, -1, -1, -1, 40, -1, -1, 175, 44, 45, + -1, 47, -1, -1, -1, 1350, -1, -1, -1, 55, + -1, -1, -1, 59, -1, -1, 194, 63, 64, -1, + -1, -1, -1, 69, 70, 71, 1371, 73, -1, 75, -1, 77, -1, 79, 80, -1, 82, -1, -1, -1, -1, 87, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, 100, -1, 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, -1, 113, -1, -1, 116, -1, -1, -1, -1, -1, 122, 123, 124, 125, - 126, 127, -1, -1, -1, -1, -1, -1, -1, 135, + 126, 127, -1, 1428, -1, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, -1, 161, -1, -1, -1, -1, @@ -3066,7 +3022,7 @@ static const short yycheck[] = { 3, -1, 177, 178, -1, -1, -1, -1, -1, 184, 185, -1, 187, -1, -1, -1, -1, 192, -1, 194, 195, 196, 197, 198, 199, 3, -1, -1, -1, -1, 205, - -1, -1, 208, 209, 210, -1, -1, 16, 17, 18, + 206, -1, 208, 209, 210, -1, -1, 16, 17, 18, -1, 217, 218, -1, -1, -1, -1, -1, 27, 28, 29, 30, 31, -1, 33, 34, -1, -1, -1, -1, -1, 40, -1, -1, -1, 44, 45, -1, 47, -1, @@ -3082,18 +3038,55 @@ static const short yycheck[] = { 3, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, -1, 161, -1, -1, -1, -1, 166, -1, 168, + -1, -1, -1, 172, -1, -1, 175, -1, 177, 178, + -1, -1, -1, -1, -1, 184, 185, -1, 187, -1, + -1, -1, -1, 192, -1, 194, 195, 196, 197, 198, + 199, 3, -1, -1, -1, -1, 205, -1, -1, 208, + 209, 210, -1, -1, 16, 17, 18, -1, 217, 218, + -1, -1, -1, -1, -1, 27, 28, 29, 30, 31, + -1, 33, 34, -1, -1, -1, -1, -1, 40, -1, + -1, -1, 44, 45, -1, 47, -1, -1, -1, -1, + -1, -1, -1, 55, -1, -1, -1, 59, -1, -1, + -1, 63, 64, -1, -1, -1, -1, 69, 70, 71, + -1, 73, -1, 75, -1, 77, -1, 79, 80, -1, + 82, -1, -1, -1, -1, 87, -1, -1, 90, -1, + -1, -1, -1, -1, -1, 97, -1, -1, 100, -1, + 102, 103, 104, 105, -1, -1, -1, 109, -1, -1, + -1, 113, -1, -1, 116, -1, -1, -1, -1, -1, + 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, + -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, + 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, + -1, -1, -1, -1, -1, 157, 158, 159, -1, 161, + -1, -1, -1, -1, 166, -1, 168, -1, -1, -1, + 172, -1, -1, 175, 3, 177, 178, -1, -1, -1, + -1, -1, 184, 185, -1, 187, -1, 16, 17, 18, + 192, -1, 194, 195, 196, 197, 198, 199, -1, 28, + 29, 30, 31, 205, 33, 34, 208, 209, 210, -1, + -1, 40, -1, -1, -1, 217, 218, -1, 47, -1, + -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, + 59, -1, -1, -1, 63, 64, -1, -1, -1, -1, + 69, 70, 71, -1, 73, -1, 75, -1, -1, -1, + 79, 80, -1, 82, -1, -1, -1, -1, -1, -1, + -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, + -1, -1, -1, 102, 103, 104, 105, -1, -1, -1, + -1, -1, -1, -1, 113, -1, -1, 116, -1, -1, + -1, -1, -1, 122, 123, 124, 125, 126, 127, -1, + -1, -1, -1, -1, -1, -1, 135, -1, -1, 138, + 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, + 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, + 159, -1, -1, -1, -1, -1, -1, 166, -1, 168, -1, -1, -1, 172, -1, -1, 175, 3, 177, 178, -1, -1, -1, -1, -1, 184, 185, -1, 187, -1, 16, 17, 18, 192, -1, 194, 195, 196, 197, 198, - 199, -1, 28, 29, 30, 31, 205, 33, 34, 208, + 199, -1, -1, -1, -1, -1, 205, 33, 34, 208, 209, 210, -1, -1, 40, -1, -1, -1, 217, 218, -1, 47, -1, -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, 59, -1, -1, -1, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, 75, - -1, -1, -1, 79, 80, -1, 82, -1, -1, -1, + -1, 77, -1, 79, 80, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, 103, 104, 105, - -1, -1, -1, -1, -1, -1, -1, 113, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, @@ -3560,96 +3553,144 @@ static const short yycheck[] = { 3, 196, 197, 198, 199, -1, -1, -1, -1, -1, 205, 33, 34, 208, 209, 210, -1, -1, 40, -1, -1, -1, 217, -1, -1, 47, -1, -1, -1, -1, -1, - -1, -1, 55, -1, -1, -1, 59, -1, -1, -1, - 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, + -1, -1, 55, -1, -1, -1, 59, -1, 7, -1, + 63, 64, -1, 12, -1, -1, 69, 70, 71, -1, 73, -1, 75, -1, 77, -1, 79, 80, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, - 103, 104, 105, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 116, -1, -1, -1, -1, -1, 122, - 123, 124, 125, 126, 127, -1, -1, -1, -1, -1, - -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, - -1, -1, -1, 146, -1, 148, 149, -1, -1, 3, - -1, -1, -1, -1, 157, 158, 159, -1, -1, -1, - -1, -1, -1, 166, -1, 168, -1, -1, -1, 172, - -1, 7, 175, 27, 177, 178, 12, -1, -1, 33, - -1, 184, 185, -1, 187, -1, 40, -1, -1, 192, + 103, 104, 105, -1, -1, -1, -1, 56, -1, -1, + -1, -1, 61, 116, -1, -1, -1, -1, 67, 122, + 123, 124, 125, 126, 127, -1, -1, -1, 77, -1, + -1, -1, 135, -1, 83, 138, 139, 140, -1, 142, + -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, + -1, -1, -1, -1, 157, 158, 159, -1, -1, 7, + -1, -1, -1, 166, 12, 168, -1, -1, -1, 172, + -1, -1, 175, -1, 177, 178, -1, -1, -1, -1, + -1, 184, 185, -1, 187, -1, -1, -1, -1, 192, -1, 194, 195, 196, 197, 198, 199, -1, -1, -1, - -1, 55, 205, -1, -1, 208, 209, 210, -1, 63, - 64, -1, -1, -1, 217, 69, 70, 71, -1, -1, - 56, -1, -1, -1, -1, 61, -1, -1, 82, -1, - -1, 67, -1, -1, -1, -1, 90, -1, -1, -1, - -1, 77, -1, 97, -1, -1, -1, 83, 102, -1, - 104, 105, -1, -1, -1, -1, -1, -1, -1, 7, - -1, -1, -1, -1, 12, -1, -1, -1, 122, 123, - -1, 125, -1, 127, -1, -1, -1, -1, -1, -1, - -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, - -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, - -1, -1, 50, 157, 158, 159, -1, 161, 56, -1, - -1, -1, 166, 61, 168, -1, 152, -1, 172, 67, - -1, -1, -1, 177, 178, -1, -1, 7, 164, 77, - 184, 185, 12, 187, -1, 83, -1, -1, 192, -1, - 194, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 205, 152, -1, 208, 209, 210, 56, -1, + -1, -1, -1, 61, 217, 164, -1, -1, -1, 67, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 77, + -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, + -1, 3, -1, -1, -1, -1, -1, 196, -1, -1, + -1, -1, 201, 202, 203, 204, 205, 206, 207, -1, + -1, -1, -1, -1, -1, 214, 215, -1, -1, -1, + -1, 33, -1, -1, -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 196, -1, -1, 217, -1, 201, 202, 203, 204, 205, - 206, 207, -1, -1, -1, -1, 56, -1, 214, 215, - -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, - -1, -1, -1, 83, 152, -1, -1, -1, -1, 3, + -1, -1, -1, 55, -1, -1, -1, -1, -1, -1, + -1, 63, 64, -1, 152, -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, 164, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, - -1, -1, -1, -1, -1, -1, 40, -1, 196, -1, + 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, + -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, + 102, -1, 104, 105, -1, -1, -1, -1, 196, -1, -1, -1, -1, 201, 202, 203, 204, 205, 206, 207, - -1, 55, -1, -1, -1, -1, -1, 215, -1, 63, - 64, -1, 152, -1, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, 164, -1, -1, -1, 82, -1, - -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, - -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, - 104, 105, -1, -1, -1, -1, 196, -1, -1, -1, - -1, 201, 202, 203, 204, 205, 206, 207, 122, 123, - -1, 125, -1, 127, -1, 215, -1, -1, -1, -1, - -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, - -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, - -1, -1, 3, 157, 158, 159, -1, -1, -1, -1, - -1, -1, 166, -1, 168, -1, -1, -1, 172, -1, - -1, 175, -1, 177, 178, -1, -1, -1, -1, -1, - 184, 185, 33, 187, -1, 36, -1, -1, 192, 40, - 194, 195, 196, 197, -1, 199, -1, 201, 202, 203, - 204, 205, 206, 207, 55, -1, -1, -1, -1, -1, - -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, - 91, -1, -1, -1, -1, -1, 97, -1, -1, -1, - -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, + 122, 123, -1, 125, -1, 127, -1, 215, -1, -1, + -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, + 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, + -1, -1, -1, -1, 3, 157, 158, 159, -1, -1, + -1, -1, -1, -1, 166, -1, 168, -1, -1, -1, + 172, -1, -1, 175, -1, 177, 178, -1, -1, -1, + -1, -1, 184, 185, 33, 187, -1, 36, -1, -1, + 192, 40, 194, 195, 196, 197, -1, 199, -1, 201, + 202, 203, 204, 205, 206, 207, 55, -1, -1, -1, + -1, -1, -1, 62, 63, 64, -1, -1, -1, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, + -1, 90, 91, -1, -1, -1, -1, -1, 97, -1, + -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 122, 123, -1, 125, -1, 127, -1, -1, -1, - -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, - -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, - -1, -1, -1, -1, -1, 3, 157, 158, 159, -1, - -1, -1, -1, -1, -1, 166, -1, 168, -1, -1, - -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, - -1, -1, -1, 184, 185, 33, 187, -1, -1, -1, - -1, 192, 40, 194, -1, 196, -1, -1, -1, -1, - 201, 202, 203, 204, 205, 206, 207, 55, -1, -1, - -1, -1, -1, -1, 62, 63, 64, -1, -1, -1, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, - -1, -1, 90, 91, -1, -1, -1, -1, -1, 97, - -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, + -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, + -1, -1, -1, -1, -1, -1, 135, -1, -1, 138, + 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, + 149, -1, -1, -1, -1, -1, -1, 3, 157, 158, + 159, -1, -1, -1, -1, -1, -1, 166, -1, 168, + -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, + -1, -1, -1, -1, -1, 184, 185, 33, 187, -1, + -1, -1, -1, 192, 40, 194, -1, 196, -1, -1, + -1, -1, 201, 202, 203, 204, 205, 206, 207, 55, + -1, -1, -1, -1, -1, -1, 62, 63, 64, -1, + -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, + -1, -1, -1, -1, 90, 91, -1, -1, -1, -1, + -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, - -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, - 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, - 148, 149, -1, -1, -1, -1, -1, -1, 3, 157, - 158, 159, -1, -1, -1, -1, -1, -1, 166, -1, - 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, - 178, -1, 27, -1, -1, -1, 184, 185, 33, 187, - -1, -1, -1, -1, 192, 40, 194, -1, 196, -1, - -1, -1, -1, 201, 202, 203, 204, 205, 206, 207, - 55, -1, -1, -1, -1, -1, -1, -1, 63, 64, - -1, -1, -1, -1, 69, 70, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, + -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, + -1, 127, -1, -1, -1, -1, -1, -1, -1, 135, + -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, + 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, + 3, 157, 158, 159, -1, -1, -1, -1, -1, -1, + 166, -1, 168, -1, -1, -1, 172, -1, -1, -1, + -1, 177, 178, -1, 27, -1, -1, -1, 184, 185, + 33, 187, -1, -1, -1, -1, 192, 40, 194, -1, + 196, -1, -1, -1, -1, 201, 202, 203, 204, 205, + 206, 207, 55, -1, -1, -1, -1, -1, -1, -1, + 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, + -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, + -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, + 123, -1, 125, -1, 127, -1, -1, -1, -1, -1, + -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, + 3, -1, -1, 146, -1, 148, 149, -1, -1, -1, + -1, -1, -1, -1, 157, 158, 159, -1, 161, -1, + -1, -1, -1, 166, -1, 168, -1, -1, -1, 172, + 33, -1, -1, -1, 177, 178, -1, 40, -1, -1, + -1, 184, 185, -1, 187, -1, -1, -1, -1, 192, + -1, 194, 55, -1, -1, 198, -1, -1, -1, -1, + 63, 64, -1, 206, -1, -1, 69, 70, 71, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, + -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, + -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, + -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, + 123, -1, 125, -1, 127, -1, -1, 3, -1, -1, + -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, + -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, + -1, -1, -1, -1, 157, 158, 159, 33, -1, -1, + -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, + -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, + -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, + -1, 194, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, 206, -1, -1, 82, -1, -1, -1, + -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, + -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, + -1, 127, -1, -1, 3, -1, -1, -1, -1, 135, + -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, + 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, + -1, 157, 158, 159, 33, -1, -1, -1, -1, -1, + 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, + -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, + -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, + 206, -1, -1, 82, -1, -1, -1, -1, -1, -1, + -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, + -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, + -1, 3, -1, -1, -1, -1, 135, -1, -1, 138, + 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, + 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, + 159, 33, -1, -1, -1, -1, -1, 166, 40, 168, + -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, + -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, + -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, 206, -1, -1, + 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, + -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, + 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 122, 123, -1, 125, -1, 127, -1, -1, 3, -1, + -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, + 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, + -1, -1, 27, -1, -1, 157, 158, 159, 33, -1, + -1, -1, -1, -1, 166, 40, 168, -1, -1, -1, + 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, + 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, + 192, -1, 194, -1, 69, 70, 71, -1, -1, -1, + -1, -1, -1, -1, 206, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -3662,33 +3703,62 @@ static const short yycheck[] = { 3, -1, -1, 177, 178, -1, 40, -1, -1, -1, 184, 185, -1, 187, -1, -1, -1, -1, 192, -1, 194, 55, -1, -1, 198, -1, -1, -1, -1, 63, 64, - -1, 206, -1, -1, 69, 70, 71, -1, -1, -1, + -1, -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, - 125, -1, 127, -1, -1, 3, -1, -1, -1, -1, + 125, -1, 127, -1, -1, -1, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, - -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, - -1, -1, 157, 158, 159, 33, -1, -1, -1, -1, - -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, - -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, - 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, + -1, 146, -1, 148, 149, -1, -1, 3, -1, -1, + -1, -1, 157, 158, 159, -1, -1, -1, -1, -1, + -1, 166, -1, 168, -1, -1, -1, 172, 24, -1, + 26, -1, 177, 178, -1, -1, -1, 33, -1, 184, + 185, -1, 187, -1, 40, -1, -1, 192, -1, 194, + -1, -1, 197, 49, -1, -1, -1, 53, -1, 55, + -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, + -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 82, -1, 84, -1, + -1, 87, 88, -1, 90, -1, -1, -1, -1, -1, + -1, 97, -1, -1, -1, 101, 102, -1, 104, 105, + -1, -1, 108, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, + 126, 127, -1, -1, 3, -1, -1, -1, -1, 135, + 136, -1, 138, 139, 140, -1, 142, -1, 17, 18, + 146, -1, 148, 149, -1, -1, -1, -1, -1, 155, + -1, 157, 158, 159, 33, 34, -1, -1, -1, -1, + 166, 40, 168, -1, -1, -1, 172, -1, 47, -1, + -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, + 186, 187, -1, -1, 63, 64, 192, -1, 194, -1, + 69, 70, 71, -1, 73, -1, 75, -1, -1, -1, + -1, 80, -1, 82, -1, -1, -1, -1, -1, -1, + -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, + -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 116, -1, -1, + -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, + -1, -1, -1, -1, -1, -1, 135, -1, -1, 138, + 139, 140, -1, 142, -1, 3, -1, 146, -1, 148, + 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, + 159, 19, -1, -1, -1, -1, 24, 166, -1, 168, + -1, -1, -1, 172, -1, 33, -1, -1, 177, 178, + -1, -1, 40, -1, -1, 184, 185, -1, 187, -1, + -1, 49, -1, 192, -1, 194, -1, 55, -1, -1, + -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, 206, -1, -1, 82, -1, -1, -1, -1, -1, - -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, + -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, + -1, 89, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, -1, 3, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, - 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, + 148, 149, -1, -1, -1, -1, 27, -1, -1, 157, 158, 159, 33, -1, -1, -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, 206, -1, + 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, @@ -3697,88 +3767,45 @@ static const short yycheck[] = { 3, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 33, - -1, -1, -1, -1, -1, 166, 40, 168, -1, -1, - -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, + 161, -1, -1, -1, -1, 166, 40, 168, -1, -1, + -1, 172, -1, -1, -1, -1, 177, 178, -1, 53, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, 206, -1, -1, 82, -1, - -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, + -1, -1, -1, -1, -1, -1, 90, -1, 92, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, -1, 3, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, - 27, -1, -1, 157, 158, 159, 33, -1, -1, -1, + -1, -1, -1, 157, 158, 159, 33, -1, -1, -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, - 194, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, 206, -1, -1, 82, -1, -1, -1, -1, - -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, - 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, - 127, -1, -1, -1, -1, -1, -1, -1, 135, -1, - -1, 138, 139, 140, -1, 142, 3, -1, -1, 146, - -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, - 157, 158, 159, -1, 161, -1, -1, -1, -1, 166, - -1, 168, -1, -1, -1, 172, 33, -1, -1, -1, - 177, 178, -1, 40, -1, -1, -1, 184, 185, -1, - 187, -1, -1, -1, -1, 192, -1, 194, 55, -1, - -1, 198, -1, -1, -1, -1, 63, 64, -1, -1, - -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, + 194, -1, 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, - 127, -1, -1, -1, -1, -1, -1, -1, 135, -1, + 127, -1, -1, 3, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, - -1, 148, 149, -1, -1, 3, -1, -1, -1, -1, - 157, 158, 159, -1, -1, -1, -1, -1, -1, 166, - -1, 168, -1, -1, -1, 172, 24, -1, 26, -1, - 177, 178, -1, -1, -1, 33, -1, 184, 185, -1, - 187, -1, 40, -1, -1, 192, -1, 194, -1, -1, - 197, 49, -1, -1, -1, 53, -1, 55, -1, -1, - -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, -1, 84, -1, -1, 87, - 88, -1, 90, -1, -1, -1, -1, -1, -1, 97, - -1, -1, -1, 101, 102, -1, 104, 105, -1, -1, - 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, - -1, -1, 3, -1, -1, -1, -1, 135, 136, -1, - 138, 139, 140, -1, 142, -1, 17, 18, 146, -1, - 148, 149, -1, -1, -1, -1, -1, 155, -1, 157, - 158, 159, 33, 34, -1, -1, -1, -1, 166, 40, - 168, -1, -1, -1, 172, -1, 47, -1, -1, 177, - 178, -1, -1, -1, 55, -1, 184, 185, 186, 187, - -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, - 71, -1, 73, -1, 75, -1, -1, -1, -1, 80, - -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, - -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, - -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 116, -1, -1, -1, -1, - -1, 122, 123, -1, 125, -1, 127, -1, -1, -1, - -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, - -1, 142, -1, 3, -1, 146, -1, 148, 149, -1, - -1, -1, -1, -1, -1, -1, 157, 158, 159, 19, - -1, -1, -1, -1, 24, 166, -1, 168, -1, -1, - -1, 172, -1, 33, -1, -1, 177, 178, -1, -1, - 40, -1, -1, 184, 185, -1, 187, -1, -1, 49, - -1, 192, -1, 194, -1, 55, -1, -1, -1, -1, - -1, -1, -1, 63, 64, -1, -1, -1, -1, 69, + -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, + 157, 158, 159, 33, -1, -1, -1, -1, -1, 166, + 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, + 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, + 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 82, -1, -1, -1, -1, -1, -1, 89, + -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, - -1, 111, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, -1, 3, -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, - -1, -1, -1, -1, 27, -1, -1, 157, 158, 159, - 33, -1, -1, -1, -1, -1, 166, 40, 168, -1, + -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, + 33, -1, 162, -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, -1, @@ -3788,15 +3815,15 @@ static const short yycheck[] = { 3, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, -1, -1, 3, -1, -1, - -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, + -1, -1, 135, 9, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, - -1, -1, -1, -1, 157, 158, 159, 33, 161, -1, + -1, -1, -1, -1, 157, 158, 159, 33, -1, 162, -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, - -1, -1, -1, -1, 177, 178, -1, 53, -1, 55, + -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, - -1, -1, -1, -1, 90, -1, 92, -1, -1, -1, + -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, 125, @@ -3807,7 +3834,7 @@ static const short yycheck[] = { 3, 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, - 69, 70, 71, 72, -1, -1, -1, -1, -1, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, @@ -3829,7 +3856,7 @@ static const short yycheck[] = { 3, -1, -1, -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 33, -1, - 162, -1, -1, -1, 166, 40, 168, -1, -1, -1, + -1, -1, -1, -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, 71, -1, -1, -1, @@ -3838,93 +3865,42 @@ static const short yycheck[] = { 3, -1, -1, 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, - 125, -1, 127, -1, -1, 3, -1, -1, -1, -1, - 135, 9, -1, 138, 139, 140, -1, 142, -1, -1, - -1, 146, -1, 148, 149, -1, -1, -1, -1, -1, - -1, -1, 157, 158, 159, 33, -1, 162, -1, -1, - -1, 166, 40, 168, -1, -1, -1, 172, -1, -1, + 125, -1, 127, -1, -1, -1, -1, -1, -1, -1, + 135, -1, -1, 138, 139, 140, -1, 142, -1, 17, + 18, 146, -1, 148, 149, -1, -1, -1, -1, -1, + -1, -1, 157, 158, 159, 33, 34, -1, -1, -1, + -1, 166, 40, 168, -1, -1, -1, 172, -1, 47, -1, -1, 177, 178, -1, -1, -1, 55, -1, 184, - 185, -1, 187, -1, -1, 63, 64, 192, -1, 194, - -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, - -1, -1, 90, -1, -1, -1, -1, -1, -1, 97, - -1, -1, -1, -1, 102, -1, 104, 105, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 122, 123, -1, 125, -1, 127, - -1, -1, 3, -1, -1, -1, -1, 135, -1, -1, - 138, 139, 140, -1, 142, -1, -1, -1, 146, -1, - 148, 149, -1, -1, -1, -1, -1, -1, -1, 157, - 158, 159, 33, -1, -1, -1, -1, -1, 166, 40, - 168, -1, -1, -1, 172, -1, -1, -1, -1, 177, - 178, -1, -1, -1, 55, -1, 184, 185, -1, 187, - -1, -1, 63, 64, 192, -1, 194, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 82, -1, -1, -1, -1, -1, -1, -1, 90, - -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, - -1, 102, -1, 104, 105, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 122, 123, -1, 125, -1, 127, -1, -1, 3, - -1, -1, -1, -1, 135, -1, -1, 138, 139, 140, - -1, 142, -1, -1, -1, 146, -1, 148, 149, -1, - -1, -1, -1, -1, -1, -1, 157, 158, 159, 33, - -1, -1, -1, -1, -1, 166, 40, 168, -1, -1, - -1, 172, -1, -1, -1, -1, 177, 178, -1, -1, - -1, 55, -1, 184, 185, -1, 187, -1, -1, 63, - 64, 192, -1, 194, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 82, -1, - -1, -1, -1, -1, -1, -1, 90, -1, -1, -1, - -1, -1, -1, 97, -1, -1, -1, -1, 102, -1, - 104, 105, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, - -1, 125, -1, 127, -1, -1, 3, -1, -1, -1, - -1, 135, -1, -1, 138, 139, 140, -1, 142, -1, - -1, -1, 146, -1, 148, 149, -1, -1, -1, -1, - -1, -1, -1, 157, 158, 159, 33, -1, -1, -1, - -1, -1, 166, 40, 168, -1, -1, -1, 172, -1, - -1, -1, -1, 177, 178, -1, -1, -1, 55, -1, - 184, 185, -1, 187, -1, -1, 63, 64, 192, -1, - 194, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 82, -1, -1, -1, -1, - -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, - 97, -1, -1, -1, -1, 102, -1, 104, 105, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 122, 123, -1, 125, -1, - 127, -1, -1, -1, -1, -1, -1, -1, 135, -1, - -1, 138, 139, 140, -1, 142, -1, 17, 18, 146, - -1, 148, 149, -1, -1, -1, -1, -1, -1, -1, - 157, 158, 159, 33, 34, -1, -1, -1, -1, 166, - 40, 168, -1, -1, -1, 172, -1, 47, -1, -1, - 177, 178, -1, -1, -1, 55, -1, 184, 185, 59, - 187, -1, -1, -1, -1, 192, -1, 194, -1, -1, - 70, 71, -1, 73, -1, 75, -1, 17, 18, -1, - 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 33, 34, -1, -1, 97, 98, -1, - 40, -1, 102, 103, -1, -1, -1, 47, -1, -1, - -1, -1, -1, -1, -1, 55, 116, -1, -1, 59, - -1, -1, 122, -1, 124, -1, 126, 127, -1, -1, - 70, 71, -1, 73, -1, 75, -1, -1, -1, -1, - 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 97, -1, -1, - -1, -1, 102, 103, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 6, 175, 116, -1, -1, 11, - -1, -1, 122, -1, 124, -1, 126, 127, 20, -1, - -1, 23, -1, 25, 194, 195, -1, 197, 198, 199, - -1, -1, -1, 35, -1, 37, -1, -1, -1, 41, - 42, 43, -1, -1, 46, -1, -1, -1, -1, -1, - 52, -1, -1, -1, -1, -1, 58, -1, -1, -1, - -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 78, -1, -1, -1, - -1, -1, -1, -1, 194, 195, -1, 197, 198, 199, - -1, -1, 94, -1, 96, -1, 98, 99, -1, -1, + 185, 59, 187, -1, -1, -1, -1, 192, -1, 194, + -1, -1, 70, 71, -1, 73, -1, 75, -1, 17, + 18, -1, 80, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 33, 34, -1, -1, 97, + 98, -1, 40, -1, 102, 103, -1, -1, -1, 47, + -1, -1, -1, -1, -1, -1, -1, 55, 116, -1, + -1, 59, -1, -1, 122, -1, 124, -1, 126, 127, + -1, -1, 70, 71, -1, 73, -1, 75, -1, -1, + -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 97, + -1, -1, -1, -1, 102, 103, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 6, 175, 116, -1, + -1, 11, -1, -1, 122, -1, 124, -1, 126, 127, + 20, -1, -1, 23, -1, 25, 194, 195, -1, 197, + 198, 199, -1, -1, -1, 35, -1, 37, -1, -1, + -1, 41, 42, 43, -1, -1, 46, -1, -1, -1, + -1, -1, 52, -1, -1, -1, -1, -1, 58, -1, + -1, -1, -1, -1, -1, -1, -1, 175, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 78, -1, + -1, -1, -1, -1, -1, -1, 194, 195, -1, 197, + 198, 199, -1, -1, 94, -1, 96, -1, 98, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 128, -1, -1, -1, - -1, -1, -1, -1, 136, 137, -1, -1, -1, -1, - -1, 143, 144, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 154, 155, 156, -1, -1, -1, 160, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 170, -1, - -1, -1, -1, -1, 176, -1, -1, -1, -1, -1, - 182 + -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 128, -1, + -1, -1, -1, -1, -1, -1, 136, 137, -1, -1, + -1, -1, -1, 143, 144, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 154, 155, 156, -1, -1, -1, + 160, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 170, -1, -1, -1, -1, -1, 176, -1, -1, -1, + -1, -1, 182 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/local/bison/bison.simple" @@ -6796,279 +6772,216 @@ case 453: #line 2521 "gram.y" { yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = yyvsp[-1].str; + yyval.sortgroupby->node = yyvsp[-1].node; yyval.sortgroupby->useOp = yyvsp[0].str; ; break;} case 454: -#line 2529 "gram.y" -{ - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = yyvsp[-3].str; - yyval.sortgroupby->name = yyvsp[-1].str; - yyval.sortgroupby->useOp = yyvsp[0].str; - ; +#line 2528 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 455: -#line 2537 "gram.y" -{ - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = yyvsp[-1].ival; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = NULL; - yyval.sortgroupby->useOp = yyvsp[0].str; - ; +#line 2529 "gram.y" +{ yyval.str = "<"; ; break;} case 456: -#line 2546 "gram.y" -{ yyval.str = yyvsp[0].str; ; +#line 2530 "gram.y" +{ yyval.str = ">"; ; break;} case 457: -#line 2547 "gram.y" +#line 2531 "gram.y" { yyval.str = "<"; ; break;} case 458: -#line 2548 "gram.y" +#line 2532 "gram.y" { yyval.str = ">"; ; break;} case 459: -#line 2549 "gram.y" -{ yyval.str = "<"; ; - break;} -case 460: -#line 2550 "gram.y" -{ yyval.str = ">"; ; - break;} -case 461: -#line 2551 "gram.y" +#line 2533 "gram.y" { yyval.str = "<"; /*default*/ ; break;} -case 462: -#line 2561 "gram.y" +case 460: +#line 2543 "gram.y" { yyval.boolean = TRUE; ; break;} -case 463: -#line 2562 "gram.y" +case 461: +#line 2544 "gram.y" { yyval.boolean = FALSE; ; break;} -case 465: -#line 2568 "gram.y" +case 463: +#line 2550 "gram.y" { yyval.list = lcons(makeString(yyvsp[0].str),NIL); ; break;} -case 466: -#line 2570 "gram.y" +case 464: +#line 2552 "gram.y" { yyval.list = lappend(yyvsp[-2].list,makeString(yyvsp[0].str)); ; break;} -case 467: -#line 2573 "gram.y" +case 465: +#line 2555 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 468: -#line 2574 "gram.y" +case 466: +#line 2556 "gram.y" { yyval.list = NIL; ; break;} -case 469: -#line 2577 "gram.y" -{ yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ; - break;} -case 470: -#line 2578 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ; - break;} -case 471: -#line 2582 "gram.y" -{ - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = yyvsp[0].str; - yyval.sortgroupby->useOp = NULL; - ; - break;} -case 472: -#line 2590 "gram.y" -{ - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = yyvsp[-2].str; - yyval.sortgroupby->name = yyvsp[0].str; - yyval.sortgroupby->useOp = NULL; - ; - break;} -case 473: -#line 2598 "gram.y" -{ - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = yyvsp[0].ival; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = NULL; - yyval.sortgroupby->useOp = NULL; - ; - break;} -case 474: -#line 2608 "gram.y" +case 467: +#line 2560 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 475: -#line 2611 "gram.y" +case 468: +#line 2563 "gram.y" { yyval.node = NULL; ; break;} -case 476: -#line 2624 "gram.y" +case 469: +#line 2576 "gram.y" { yyval.list = NIL; elog(ERROR,"JOIN not yet implemented"); ; break;} -case 477: -#line 2628 "gram.y" +case 470: +#line 2580 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 478: -#line 2629 "gram.y" +case 471: +#line 2581 "gram.y" { yyval.list = NIL; ; break;} -case 479: -#line 2633 "gram.y" +case 472: +#line 2585 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].range); ; break;} -case 480: -#line 2635 "gram.y" +case 473: +#line 2587 "gram.y" { elog(ERROR,"CROSS JOIN not yet implemented"); ; break;} -case 481: -#line 2637 "gram.y" +case 474: +#line 2589 "gram.y" { yyval.list = lcons(yyvsp[0].range, NIL); ; break;} -case 482: -#line 2641 "gram.y" +case 475: +#line 2593 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[-2].relexp; yyval.range->name = yyvsp[0].str; ; break;} -case 483: -#line 2647 "gram.y" +case 476: +#line 2599 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[-1].relexp; yyval.range->name = yyvsp[0].str; ; break;} -case 484: -#line 2653 "gram.y" +case 477: +#line 2605 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[0].relexp; yyval.range->name = NULL; ; break;} -case 485: -#line 2660 "gram.y" +case 478: +#line 2612 "gram.y" { yyval.str = NULL; ; break;} -case 486: -#line 2662 "gram.y" +case 479: +#line 2614 "gram.y" { elog(ERROR,"FULL OUTER JOIN not yet implemented"); ; break;} -case 487: -#line 2664 "gram.y" +case 480: +#line 2616 "gram.y" { elog(ERROR,"LEFT OUTER JOIN not yet implemented"); ; break;} -case 488: -#line 2666 "gram.y" +case 481: +#line 2618 "gram.y" { elog(ERROR,"RIGHT OUTER JOIN not yet implemented"); ; break;} -case 489: -#line 2668 "gram.y" +case 482: +#line 2620 "gram.y" { elog(ERROR,"OUTER JOIN not yet implemented"); ; break;} -case 490: -#line 2670 "gram.y" +case 483: +#line 2622 "gram.y" { elog(ERROR,"INNER JOIN not yet implemented"); ; break;} -case 491: -#line 2672 "gram.y" +case 484: +#line 2624 "gram.y" { elog(ERROR,"UNION JOIN not yet implemented"); ; break;} -case 492: -#line 2674 "gram.y" +case 485: +#line 2626 "gram.y" { elog(ERROR,"INNER JOIN not yet implemented"); ; break;} -case 493: -#line 2677 "gram.y" +case 486: +#line 2629 "gram.y" { yyval.str = NULL; ; break;} -case 494: -#line 2678 "gram.y" +case 487: +#line 2630 "gram.y" { yyval.str = NULL; /* no qualifiers */ ; break;} -case 495: -#line 2681 "gram.y" +case 488: +#line 2633 "gram.y" { yyval.str = NULL; ; break;} -case 496: -#line 2682 "gram.y" +case 489: +#line 2634 "gram.y" { yyval.str = NULL; ; break;} -case 497: -#line 2683 "gram.y" +case 490: +#line 2635 "gram.y" { yyval.str = NULL; /* no qualifiers */ ; break;} -case 498: -#line 2686 "gram.y" -{ yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ; +case 491: +#line 2638 "gram.y" +{ yyval.list = lcons(yyvsp[0].joinusing, NIL); ; break;} -case 499: -#line 2687 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ; +case 492: +#line 2639 "gram.y" +{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].joinusing); ; break;} -case 500: -#line 2691 "gram.y" +case 493: +#line 2651 "gram.y" { - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = yyvsp[0].str; - yyval.sortgroupby->useOp = NULL; + yyval.joinusing = makeNode(JoinUsing); + yyval.joinusing->resno = 0; + yyval.joinusing->range = NULL; + yyval.joinusing->name = yyvsp[0].str; ; break;} -case 501: -#line 2699 "gram.y" +case 494: +#line 2658 "gram.y" { - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = 0; - yyval.sortgroupby->range = yyvsp[-2].str; - yyval.sortgroupby->name = yyvsp[0].str; - yyval.sortgroupby->useOp = NULL; + yyval.joinusing = makeNode(JoinUsing); + yyval.joinusing->resno = 0; + yyval.joinusing->range = yyvsp[-2].str; + yyval.joinusing->name = yyvsp[0].str; ; break;} -case 502: -#line 2707 "gram.y" +case 495: +#line 2665 "gram.y" { - yyval.sortgroupby = makeNode(SortGroupBy); - yyval.sortgroupby->resno = yyvsp[0].ival; - yyval.sortgroupby->range = NULL; - yyval.sortgroupby->name = NULL; - yyval.sortgroupby->useOp = NULL; + yyval.joinusing = makeNode(JoinUsing); + yyval.joinusing->resno = yyvsp[0].ival; + yyval.joinusing->range = NULL; + yyval.joinusing->name = NULL; ; break;} -case 503: -#line 2716 "gram.y" +case 496: +#line 2673 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 504: -#line 2717 "gram.y" +case 497: +#line 2674 "gram.y" { yyval.node = NULL; /* no qualifiers */ ; break;} -case 505: -#line 2721 "gram.y" +case 498: +#line 2678 "gram.y" { /* normal relations */ yyval.relexp = makeNode(RelExpr); @@ -7076,8 +6989,8 @@ case 505: yyval.relexp->inh = FALSE; ; break;} -case 506: -#line 2728 "gram.y" +case 499: +#line 2685 "gram.y" { /* inheritance query */ yyval.relexp = makeNode(RelExpr); @@ -7085,32 +6998,32 @@ case 506: yyval.relexp->inh = TRUE; ; break;} -case 507: -#line 2736 "gram.y" +case 500: +#line 2693 "gram.y" { yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ; break;} -case 508: -#line 2738 "gram.y" +case 501: +#line 2695 "gram.y" { yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ; break;} -case 509: -#line 2740 "gram.y" +case 502: +#line 2697 "gram.y" { yyval.list = NIL; ; break;} -case 510: -#line 2744 "gram.y" +case 503: +#line 2701 "gram.y" { yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ; break;} -case 511: -#line 2746 "gram.y" +case 504: +#line 2703 "gram.y" { yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ; break;} -case 512: -#line 2748 "gram.y" +case 505: +#line 2705 "gram.y" { yyval.list = NIL; ; break;} -case 513: -#line 2763 "gram.y" +case 506: +#line 2720 "gram.y" { yyval.typnam = yyvsp[-1].typnam; yyval.typnam->arrayBounds = yyvsp[0].list; @@ -7133,78 +7046,78 @@ case 513: yyval.typnam->setof = FALSE; ; break;} -case 515: -#line 2786 "gram.y" +case 508: +#line 2743 "gram.y" { yyval.typnam = yyvsp[0].typnam; yyval.typnam->setof = TRUE; ; break;} -case 519: -#line 2798 "gram.y" +case 512: +#line 2755 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType(yyvsp[0].str); yyval.typnam->typmod = -1; ; break;} -case 520: -#line 2805 "gram.y" +case 513: +#line 2762 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 521: -#line 2806 "gram.y" +case 514: +#line 2763 "gram.y" { yyval.str = xlateSqlType("type"); ; break;} -case 522: -#line 2816 "gram.y" +case 515: +#line 2773 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType(yyvsp[0].str); yyval.typnam->typmod = -1; ; break;} -case 523: -#line 2822 "gram.y" +case 516: +#line 2779 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("float"); ; break;} -case 524: -#line 2827 "gram.y" +case 517: +#line 2784 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("integer"); yyval.typnam->typmod = -1; ; break;} -case 525: -#line 2833 "gram.y" +case 518: +#line 2790 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("integer"); yyval.typnam->typmod = -1; ; break;} -case 526: -#line 2841 "gram.y" +case 519: +#line 2798 "gram.y" { yyval.str = xlateSqlType("float8"); ; break;} -case 527: -#line 2843 "gram.y" +case 520: +#line 2800 "gram.y" { yyval.str = xlateSqlType("float8"); ; break;} -case 528: -#line 2845 "gram.y" +case 521: +#line 2802 "gram.y" { yyval.str = xlateSqlType("decimal"); ; break;} -case 529: -#line 2847 "gram.y" +case 522: +#line 2804 "gram.y" { yyval.str = xlateSqlType("numeric"); ; break;} -case 530: -#line 2851 "gram.y" +case 523: +#line 2808 "gram.y" { if (yyvsp[-1].ival < 1) elog(ERROR,"precision for FLOAT must be at least 1"); @@ -7216,14 +7129,14 @@ case 530: elog(ERROR,"precision for FLOAT must be less than 16"); ; break;} -case 531: -#line 2862 "gram.y" +case 524: +#line 2819 "gram.y" { yyval.str = xlateSqlType("float8"); ; break;} -case 532: -#line 2868 "gram.y" +case 525: +#line 2825 "gram.y" { if (yyvsp[-3].ival != 9) elog(ERROR,"NUMERIC precision %d must be 9",yyvsp[-3].ival); @@ -7231,21 +7144,21 @@ case 532: elog(ERROR,"NUMERIC scale %d must be zero",yyvsp[-1].ival); ; break;} -case 533: -#line 2875 "gram.y" +case 526: +#line 2832 "gram.y" { if (yyvsp[-1].ival != 9) elog(ERROR,"NUMERIC precision %d must be 9",yyvsp[-1].ival); ; break;} -case 534: -#line 2880 "gram.y" +case 527: +#line 2837 "gram.y" { yyval.str = NULL; ; break;} -case 535: -#line 2886 "gram.y" +case 528: +#line 2843 "gram.y" { if (yyvsp[-3].ival > 9) elog(ERROR,"DECIMAL precision %d exceeds implementation limit of 9",yyvsp[-3].ival); @@ -7254,22 +7167,22 @@ case 535: yyval.str = NULL; ; break;} -case 536: -#line 2894 "gram.y" +case 529: +#line 2851 "gram.y" { if (yyvsp[-1].ival > 9) elog(ERROR,"DECIMAL precision %d exceeds implementation limit of 9",yyvsp[-1].ival); yyval.str = NULL; ; break;} -case 537: -#line 2900 "gram.y" +case 530: +#line 2857 "gram.y" { yyval.str = NULL; ; break;} -case 538: -#line 2913 "gram.y" +case 531: +#line 2870 "gram.y" { yyval.typnam = makeNode(TypeName); if (strcasecmp(yyvsp[-3].str, "char") == 0) @@ -7297,8 +7210,8 @@ case 538: yyval.typnam->typmod = VARHDRSZ + yyvsp[-1].ival; ; break;} -case 539: -#line 2940 "gram.y" +case 532: +#line 2897 "gram.y" { yyval.typnam = makeNode(TypeName); /* Let's try to make all single-character types into bpchar(1) @@ -7316,8 +7229,8 @@ case 539: } ; break;} -case 540: -#line 2959 "gram.y" +case 533: +#line 2916 "gram.y" { char *type, *c; if ((yyvsp[-1].str == NULL) || (strcasecmp(yyvsp[-1].str, "sql_text") == 0)) { @@ -7338,56 +7251,56 @@ case 540: yyval.str = type; ; break;} -case 541: -#line 2978 "gram.y" +case 534: +#line 2935 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; break;} -case 542: -#line 2979 "gram.y" +case 535: +#line 2936 "gram.y" { yyval.str = xlateSqlType("varchar"); ; break;} -case 543: -#line 2980 "gram.y" +case 536: +#line 2937 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; break;} -case 544: -#line 2981 "gram.y" +case 537: +#line 2938 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; break;} -case 545: -#line 2984 "gram.y" +case 538: +#line 2941 "gram.y" { yyval.boolean = TRUE; ; break;} -case 546: -#line 2985 "gram.y" +case 539: +#line 2942 "gram.y" { yyval.boolean = FALSE; ; break;} -case 547: -#line 2988 "gram.y" +case 540: +#line 2945 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 548: -#line 2989 "gram.y" +case 541: +#line 2946 "gram.y" { yyval.str = NULL; ; break;} -case 549: -#line 2992 "gram.y" +case 542: +#line 2949 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 550: -#line 2993 "gram.y" +case 543: +#line 2950 "gram.y" { yyval.str = NULL; ; break;} -case 551: -#line 2997 "gram.y" +case 544: +#line 2954 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType(yyvsp[0].str); yyval.typnam->typmod = -1; ; break;} -case 552: -#line 3003 "gram.y" +case 545: +#line 2960 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("timestamp"); @@ -7395,104 +7308,104 @@ case 552: yyval.typnam->typmod = -1; ; break;} -case 553: -#line 3010 "gram.y" +case 546: +#line 2967 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("time"); yyval.typnam->typmod = -1; ; break;} -case 554: -#line 3016 "gram.y" +case 547: +#line 2973 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("interval"); yyval.typnam->typmod = -1; ; break;} -case 555: -#line 3023 "gram.y" +case 548: +#line 2980 "gram.y" { yyval.str = "year"; ; break;} -case 556: -#line 3024 "gram.y" +case 549: +#line 2981 "gram.y" { yyval.str = "month"; ; break;} -case 557: -#line 3025 "gram.y" +case 550: +#line 2982 "gram.y" { yyval.str = "day"; ; break;} -case 558: -#line 3026 "gram.y" +case 551: +#line 2983 "gram.y" { yyval.str = "hour"; ; break;} -case 559: -#line 3027 "gram.y" +case 552: +#line 2984 "gram.y" { yyval.str = "minute"; ; break;} -case 560: -#line 3028 "gram.y" +case 553: +#line 2985 "gram.y" { yyval.str = "second"; ; break;} -case 561: -#line 3031 "gram.y" +case 554: +#line 2988 "gram.y" { yyval.boolean = TRUE; ; break;} -case 562: -#line 3032 "gram.y" +case 555: +#line 2989 "gram.y" { yyval.boolean = FALSE; ; break;} -case 563: -#line 3035 "gram.y" +case 556: +#line 2992 "gram.y" { yyval.list = lcons(yyvsp[0].str, NIL); ; break;} -case 564: -#line 3036 "gram.y" +case 557: +#line 2993 "gram.y" { yyval.list = NIL; ; break;} -case 565: -#line 3037 "gram.y" +case 558: +#line 2994 "gram.y" { yyval.list = NIL; ; break;} -case 566: -#line 3038 "gram.y" +case 559: +#line 2995 "gram.y" { yyval.list = NIL; ; break;} -case 567: -#line 3039 "gram.y" +case 560: +#line 2996 "gram.y" { yyval.list = NIL; ; break;} -case 568: -#line 3040 "gram.y" +case 561: +#line 2997 "gram.y" { yyval.list = NIL; ; break;} -case 569: -#line 3041 "gram.y" +case 562: +#line 2998 "gram.y" { yyval.list = NIL; ; break;} -case 570: -#line 3042 "gram.y" +case 563: +#line 2999 "gram.y" { yyval.list = NIL; ; break;} -case 571: -#line 3043 "gram.y" +case 564: +#line 3000 "gram.y" { yyval.list = NIL; ; break;} -case 572: -#line 3054 "gram.y" +case 565: +#line 3011 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 573: -#line 3056 "gram.y" +case 566: +#line 3013 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Null; yyval.node = (Node *)n; ; break;} -case 574: -#line 3073 "gram.y" +case 567: +#line 3030 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-5].list; @@ -7503,8 +7416,8 @@ case 574: yyval.node = (Node *)n; ; break;} -case 575: -#line 3083 "gram.y" +case 568: +#line 3040 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-6].list; @@ -7515,8 +7428,8 @@ case 575: yyval.node = (Node *)n; ; break;} -case 576: -#line 3093 "gram.y" +case 569: +#line 3050 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-6].list; @@ -7530,8 +7443,8 @@ case 576: yyval.node = (Node *)n; ; break;} -case 577: -#line 3106 "gram.y" +case 570: +#line 3063 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-5].list; @@ -7545,87 +7458,87 @@ case 577: yyval.node = (Node *)n; ; break;} -case 578: -#line 3119 "gram.y" +case 571: +#line 3076 "gram.y" { yyval.node = makeRowExpr(yyvsp[-3].str, yyvsp[-5].list, yyvsp[-1].list); ; break;} -case 579: -#line 3125 "gram.y" +case 572: +#line 3082 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 580: -#line 3131 "gram.y" +case 573: +#line 3088 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 581: -#line 3135 "gram.y" +case 574: +#line 3092 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 582: -#line 3140 "gram.y" +case 575: +#line 3097 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 583: -#line 3141 "gram.y" +case 576: +#line 3098 "gram.y" { yyval.str = "<"; ; break;} -case 584: -#line 3142 "gram.y" +case 577: +#line 3099 "gram.y" { yyval.str = "="; ; break;} -case 585: -#line 3143 "gram.y" +case 578: +#line 3100 "gram.y" { yyval.str = ">"; ; break;} -case 586: -#line 3144 "gram.y" +case 579: +#line 3101 "gram.y" { yyval.str = "+"; ; break;} -case 587: -#line 3145 "gram.y" +case 580: +#line 3102 "gram.y" { yyval.str = "-"; ; break;} -case 588: -#line 3146 "gram.y" +case 581: +#line 3103 "gram.y" { yyval.str = "*"; ; break;} -case 589: -#line 3147 "gram.y" +case 582: +#line 3104 "gram.y" { yyval.str = "/"; ; break;} -case 590: -#line 3150 "gram.y" +case 583: +#line 3107 "gram.y" { yyval.ival = ANY_SUBLINK; ; break;} -case 591: -#line 3151 "gram.y" +case 584: +#line 3108 "gram.y" { yyval.ival = ALL_SUBLINK; ; break;} -case 592: -#line 3163 "gram.y" +case 585: +#line 3120 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 593: -#line 3168 "gram.y" +case 586: +#line 3125 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 594: -#line 3170 "gram.y" +case 587: +#line 3127 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 595: -#line 3172 "gram.y" +case 588: +#line 3129 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -7634,52 +7547,52 @@ case 595: yyval.node = (Node *)n; ; break;} -case 596: -#line 3180 "gram.y" +case 589: +#line 3137 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 597: -#line 3182 "gram.y" +case 590: +#line 3139 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 598: -#line 3184 "gram.y" +case 591: +#line 3141 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 599: -#line 3186 "gram.y" +case 592: +#line 3143 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 600: -#line 3188 "gram.y" +case 593: +#line 3145 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 601: -#line 3190 "gram.y" +case 594: +#line 3147 "gram.y" { yyval.node = makeA_Expr(OP, "<", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 602: -#line 3192 "gram.y" +case 595: +#line 3149 "gram.y" { yyval.node = makeA_Expr(OP, ">", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 603: -#line 3194 "gram.y" +case 596: +#line 3151 "gram.y" { yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 604: -#line 3196 "gram.y" +case 597: +#line 3153 "gram.y" { yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ; break;} -case 605: -#line 3198 "gram.y" +case 598: +#line 3155 "gram.y" { yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ; break;} -case 606: -#line 3200 "gram.y" +case 599: +#line 3157 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 607: -#line 3202 "gram.y" +case 600: +#line 3159 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -7696,8 +7609,8 @@ case 607: } ; break;} -case 608: -#line 3218 "gram.y" +case 601: +#line 3175 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -7714,32 +7627,32 @@ case 608: } ; break;} -case 609: -#line 3234 "gram.y" +case 602: +#line 3191 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 610: -#line 3236 "gram.y" +case 603: +#line 3193 "gram.y" { yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ; break;} -case 611: -#line 3238 "gram.y" +case 604: +#line 3195 "gram.y" { yyval.node = makeIndexable("~~", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 612: -#line 3240 "gram.y" +case 605: +#line 3197 "gram.y" { yyval.node = makeA_Expr(OP, "!~~", yyvsp[-3].node, yyvsp[0].node); ; break;} -case 613: -#line 3242 "gram.y" +case 606: +#line 3199 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 614: -#line 3244 "gram.y" +case 607: +#line 3201 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 615: -#line 3246 "gram.y" +case 608: +#line 3203 "gram.y" { /* cheap hack for aggregate (eg. count) */ FuncCall *n = makeNode(FuncCall); @@ -7752,8 +7665,8 @@ case 615: yyval.node = (Node *)n; ; break;} -case 616: -#line 3258 "gram.y" +case 609: +#line 3215 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -7761,8 +7674,8 @@ case 616: yyval.node = (Node *)n; ; break;} -case 617: -#line 3265 "gram.y" +case 610: +#line 3222 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -7770,8 +7683,8 @@ case 617: yyval.node = (Node *)n; ; break;} -case 618: -#line 3272 "gram.y" +case 611: +#line 3229 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -7787,8 +7700,8 @@ case 618: yyval.node = (Node *)n; ; break;} -case 619: -#line 3287 "gram.y" +case 612: +#line 3244 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -7804,8 +7717,8 @@ case 619: yyval.node = (Node *)n; ; break;} -case 620: -#line 3302 "gram.y" +case 613: +#line 3259 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -7828,8 +7741,8 @@ case 620: yyval.node = (Node *)n; ; break;} -case 621: -#line 3324 "gram.y" +case 614: +#line 3281 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -7845,8 +7758,8 @@ case 621: yyval.node = (Node *)n; ; break;} -case 622: -#line 3339 "gram.y" +case 615: +#line 3296 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -7869,8 +7782,8 @@ case 622: yyval.node = (Node *)n; ; break;} -case 623: -#line 3361 "gram.y" +case 616: +#line 3318 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -7878,8 +7791,8 @@ case 623: yyval.node = (Node *)n; ; break;} -case 624: -#line 3368 "gram.y" +case 617: +#line 3325 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -7887,8 +7800,8 @@ case 624: yyval.node = (Node *)n; ; break;} -case 625: -#line 3375 "gram.y" +case 618: +#line 3332 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = NIL; @@ -7899,8 +7812,8 @@ case 625: yyval.node = (Node *)n; ; break;} -case 626: -#line 3385 "gram.y" +case 619: +#line 3342 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "date_part"; @@ -7908,8 +7821,8 @@ case 626: yyval.node = (Node *)n; ; break;} -case 627: -#line 3392 "gram.y" +case 620: +#line 3349 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -7917,8 +7830,8 @@ case 627: yyval.node = (Node *)n; ; break;} -case 628: -#line 3399 "gram.y" +case 621: +#line 3356 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -7926,8 +7839,8 @@ case 628: yyval.node = (Node *)n; ; break;} -case 629: -#line 3407 "gram.y" +case 622: +#line 3364 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -7935,8 +7848,8 @@ case 629: yyval.node = (Node *)n; ; break;} -case 630: -#line 3414 "gram.y" +case 623: +#line 3371 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "ltrim"; @@ -7944,8 +7857,8 @@ case 630: yyval.node = (Node *)n; ; break;} -case 631: -#line 3421 "gram.y" +case 624: +#line 3378 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "rtrim"; @@ -7953,8 +7866,8 @@ case 631: yyval.node = (Node *)n; ; break;} -case 632: -#line 3428 "gram.y" +case 625: +#line 3385 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -7962,24 +7875,24 @@ case 632: yyval.node = (Node *)n; ; break;} -case 633: -#line 3435 "gram.y" +case 626: +#line 3392 "gram.y" { yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-1].node, NULL); ; break;} -case 634: -#line 3437 "gram.y" +case 627: +#line 3394 "gram.y" { yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-2].node, NULL); ; break;} -case 635: -#line 3439 "gram.y" +case 628: +#line 3396 "gram.y" { yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-1].node, NULL); ; break;} -case 636: -#line 3441 "gram.y" +case 629: +#line 3398 "gram.y" { yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-3].node, NULL); ; break;} -case 637: -#line 3448 "gram.y" +case 630: +#line 3405 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -7990,8 +7903,8 @@ case 637: yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n); ; break;} -case 638: -#line 3458 "gram.y" +case 631: +#line 3415 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8002,8 +7915,8 @@ case 638: yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n); ; break;} -case 639: -#line 3468 "gram.y" +case 632: +#line 3425 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8014,8 +7927,8 @@ case 639: yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n); ; break;} -case 640: -#line 3478 "gram.y" +case 633: +#line 3435 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8026,28 +7939,28 @@ case 640: yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n); ; break;} -case 641: -#line 3488 "gram.y" +case 634: +#line 3445 "gram.y" { yyval.node = makeA_Expr(AND, NULL, makeA_Expr(OP, ">=", yyvsp[-4].node, yyvsp[-2].node), makeA_Expr(OP, "<=", yyvsp[-4].node, yyvsp[0].node)); ; break;} -case 642: -#line 3494 "gram.y" +case 635: +#line 3451 "gram.y" { yyval.node = makeA_Expr(OR, NULL, makeA_Expr(OP, "<", yyvsp[-5].node, yyvsp[-2].node), makeA_Expr(OP, ">", yyvsp[-5].node, yyvsp[0].node)); ; break;} -case 643: -#line 3499 "gram.y" +case 636: +#line 3456 "gram.y" { saved_In_Expr = lcons(yyvsp[-1].node,saved_In_Expr); ; break;} -case 644: -#line 3500 "gram.y" +case 637: +#line 3457 "gram.y" { saved_In_Expr = lnext(saved_In_Expr); if (nodeTag(yyvsp[-1].node) == T_SubLink) @@ -8062,12 +7975,12 @@ case 644: else yyval.node = yyvsp[-1].node; ; break;} -case 645: -#line 3513 "gram.y" +case 638: +#line 3470 "gram.y" { saved_In_Expr = lcons(yyvsp[-2].node,saved_In_Expr); ; break;} -case 646: -#line 3514 "gram.y" +case 639: +#line 3471 "gram.y" { saved_In_Expr = lnext(saved_In_Expr); if (nodeTag(yyvsp[-1].node) == T_SubLink) @@ -8082,8 +7995,8 @@ case 646: else yyval.node = yyvsp[-1].node; ; break;} -case 647: -#line 3528 "gram.y" +case 640: +#line 3485 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8094,8 +8007,8 @@ case 647: yyval.node = (Node *)n; ; break;} -case 648: -#line 3538 "gram.y" +case 641: +#line 3495 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8106,8 +8019,8 @@ case 648: yyval.node = (Node *)n; ; break;} -case 649: -#line 3548 "gram.y" +case 642: +#line 3505 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8118,8 +8031,8 @@ case 649: yyval.node = (Node *)n; ; break;} -case 650: -#line 3558 "gram.y" +case 643: +#line 3515 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8130,8 +8043,8 @@ case 650: yyval.node = (Node *)n; ; break;} -case 651: -#line 3568 "gram.y" +case 644: +#line 3525 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8142,8 +8055,8 @@ case 651: yyval.node = (Node *)n; ; break;} -case 652: -#line 3578 "gram.y" +case 645: +#line 3535 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8154,8 +8067,8 @@ case 652: yyval.node = (Node *)n; ; break;} -case 653: -#line 3588 "gram.y" +case 646: +#line 3545 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8166,8 +8079,8 @@ case 653: yyval.node = (Node *)n; ; break;} -case 654: -#line 3598 "gram.y" +case 647: +#line 3555 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8178,8 +8091,8 @@ case 654: yyval.node = (Node *)n; ; break;} -case 655: -#line 3608 "gram.y" +case 648: +#line 3565 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8190,8 +8103,8 @@ case 655: yyval.node = (Node *)n; ; break;} -case 656: -#line 3618 "gram.y" +case 649: +#line 3575 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8202,8 +8115,8 @@ case 656: yyval.node = (Node *)n; ; break;} -case 657: -#line 3628 "gram.y" +case 650: +#line 3585 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8214,8 +8127,8 @@ case 657: yyval.node = (Node *)n; ; break;} -case 658: -#line 3638 "gram.y" +case 651: +#line 3595 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8226,8 +8139,8 @@ case 658: yyval.node = (Node *)n; ; break;} -case 659: -#line 3648 "gram.y" +case 652: +#line 3605 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8238,8 +8151,8 @@ case 659: yyval.node = (Node *)n; ; break;} -case 660: -#line 3658 "gram.y" +case 653: +#line 3615 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8250,8 +8163,8 @@ case 660: yyval.node = (Node *)n; ; break;} -case 661: -#line 3668 "gram.y" +case 654: +#line 3625 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8262,8 +8175,8 @@ case 661: yyval.node = (Node *)n; ; break;} -case 662: -#line 3678 "gram.y" +case 655: +#line 3635 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -8274,8 +8187,8 @@ case 662: yyval.node = (Node *)n; ; break;} -case 663: -#line 3688 "gram.y" +case 656: +#line 3645 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8286,8 +8199,8 @@ case 663: yyval.node = (Node *)n; ; break;} -case 664: -#line 3698 "gram.y" +case 657: +#line 3655 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8298,8 +8211,8 @@ case 664: yyval.node = (Node *)n; ; break;} -case 665: -#line 3708 "gram.y" +case 658: +#line 3665 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8310,8 +8223,8 @@ case 665: yyval.node = (Node *)n; ; break;} -case 666: -#line 3718 "gram.y" +case 659: +#line 3675 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8322,8 +8235,8 @@ case 666: yyval.node = (Node *)n; ; break;} -case 667: -#line 3728 "gram.y" +case 660: +#line 3685 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8334,8 +8247,8 @@ case 667: yyval.node = (Node *)n; ; break;} -case 668: -#line 3738 "gram.y" +case 661: +#line 3695 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8346,8 +8259,8 @@ case 668: yyval.node = (Node *)n; ; break;} -case 669: -#line 3748 "gram.y" +case 662: +#line 3705 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8358,8 +8271,8 @@ case 669: yyval.node = (Node *)n; ; break;} -case 670: -#line 3758 "gram.y" +case 663: +#line 3715 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -8370,31 +8283,31 @@ case 670: yyval.node = (Node *)n; ; break;} -case 671: -#line 3768 "gram.y" +case 664: +#line 3725 "gram.y" { yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 672: -#line 3770 "gram.y" +case 665: +#line 3727 "gram.y" { yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 673: -#line 3772 "gram.y" +case 666: +#line 3729 "gram.y" { yyval.node = makeA_Expr(NOT, NULL, NULL, yyvsp[0].node); ; break;} -case 674: -#line 3782 "gram.y" +case 667: +#line 3739 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 675: -#line 3787 "gram.y" +case 668: +#line 3744 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 676: -#line 3789 "gram.y" +case 669: +#line 3746 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -8403,40 +8316,40 @@ case 676: yyval.node = (Node *)n; ; break;} -case 677: -#line 3797 "gram.y" +case 670: +#line 3754 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 678: -#line 3799 "gram.y" +case 671: +#line 3756 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 679: -#line 3801 "gram.y" +case 672: +#line 3758 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 680: -#line 3803 "gram.y" +case 673: +#line 3760 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 681: -#line 3805 "gram.y" +case 674: +#line 3762 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 682: -#line 3807 "gram.y" +case 675: +#line 3764 "gram.y" { yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ; break;} -case 683: -#line 3809 "gram.y" +case 676: +#line 3766 "gram.y" { yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ; break;} -case 684: -#line 3811 "gram.y" +case 677: +#line 3768 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 685: -#line 3813 "gram.y" +case 678: +#line 3770 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8453,8 +8366,8 @@ case 685: } ; break;} -case 686: -#line 3829 "gram.y" +case 679: +#line 3786 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8471,24 +8384,24 @@ case 686: } ; break;} -case 687: -#line 3845 "gram.y" +case 680: +#line 3802 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 688: -#line 3847 "gram.y" +case 681: +#line 3804 "gram.y" { yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ; break;} -case 689: -#line 3849 "gram.y" +case 682: +#line 3806 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 690: -#line 3851 "gram.y" +case 683: +#line 3808 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 691: -#line 3853 "gram.y" +case 684: +#line 3810 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -8496,8 +8409,8 @@ case 691: yyval.node = (Node *)n; ; break;} -case 692: -#line 3860 "gram.y" +case 685: +#line 3817 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -8505,8 +8418,8 @@ case 692: yyval.node = (Node *)n; ; break;} -case 693: -#line 3867 "gram.y" +case 686: +#line 3824 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8522,8 +8435,8 @@ case 693: yyval.node = (Node *)n; ; break;} -case 694: -#line 3882 "gram.y" +case 687: +#line 3839 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8539,8 +8452,8 @@ case 694: yyval.node = (Node *)n; ; break;} -case 695: -#line 3897 "gram.y" +case 688: +#line 3854 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -8563,8 +8476,8 @@ case 695: yyval.node = (Node *)n; ; break;} -case 696: -#line 3919 "gram.y" +case 689: +#line 3876 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8580,8 +8493,8 @@ case 696: yyval.node = (Node *)n; ; break;} -case 697: -#line 3934 "gram.y" +case 690: +#line 3891 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -8604,8 +8517,8 @@ case 697: yyval.node = (Node *)n; ; break;} -case 698: -#line 3956 "gram.y" +case 691: +#line 3913 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -8613,8 +8526,8 @@ case 698: yyval.node = (Node *)n; ; break;} -case 699: -#line 3963 "gram.y" +case 692: +#line 3920 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -8622,8 +8535,8 @@ case 699: yyval.node = (Node *)n; ; break;} -case 700: -#line 3970 "gram.y" +case 693: +#line 3927 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -8631,8 +8544,8 @@ case 700: yyval.node = (Node *)n; ; break;} -case 701: -#line 3977 "gram.y" +case 694: +#line 3934 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -8640,8 +8553,8 @@ case 701: yyval.node = (Node *)n; ; break;} -case 702: -#line 3985 "gram.y" +case 695: +#line 3942 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -8649,8 +8562,8 @@ case 702: yyval.node = (Node *)n; ; break;} -case 703: -#line 3992 "gram.y" +case 696: +#line 3949 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "ltrim"; @@ -8658,8 +8571,8 @@ case 703: yyval.node = (Node *)n; ; break;} -case 704: -#line 3999 "gram.y" +case 697: +#line 3956 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "rtrim"; @@ -8667,8 +8580,8 @@ case 704: yyval.node = (Node *)n; ; break;} -case 705: -#line 4006 "gram.y" +case 698: +#line 3963 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -8676,8 +8589,8 @@ case 705: yyval.node = (Node *)n; ; break;} -case 706: -#line 4015 "gram.y" +case 699: +#line 3972 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = NULL; @@ -8685,8 +8598,8 @@ case 706: yyval.list = lcons(ai, yyvsp[0].list); ; break;} -case 707: -#line 4022 "gram.y" +case 700: +#line 3979 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = yyvsp[-4].node; @@ -8694,24 +8607,24 @@ case 707: yyval.list = lcons(ai, yyvsp[0].list); ; break;} -case 708: -#line 4029 "gram.y" +case 701: +#line 3986 "gram.y" { yyval.list = NIL; ; break;} -case 709: -#line 4033 "gram.y" +case 702: +#line 3990 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 710: -#line 4035 "gram.y" +case 703: +#line 3992 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 711: -#line 4037 "gram.y" +case 704: +#line 3994 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 712: -#line 4041 "gram.y" +case 705: +#line 3998 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8719,67 +8632,67 @@ case 712: yyval.list = lappend(lcons((Node *)n,NIL), yyvsp[0].node); ; break;} -case 713: -#line 4048 "gram.y" +case 706: +#line 4005 "gram.y" { yyval.list = NIL; ; break;} -case 714: -#line 4051 "gram.y" +case 707: +#line 4008 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 715: -#line 4052 "gram.y" +case 708: +#line 4009 "gram.y" { yyval.str = "tz_hour"; ; break;} -case 716: -#line 4053 "gram.y" +case 709: +#line 4010 "gram.y" { yyval.str = "tz_minute"; ; break;} -case 717: -#line 4057 "gram.y" +case 710: +#line 4014 "gram.y" { yyval.list = makeList(yyvsp[0].node, yyvsp[-2].node, -1); ; break;} -case 718: -#line 4059 "gram.y" +case 711: +#line 4016 "gram.y" { yyval.list = NIL; ; break;} -case 719: -#line 4063 "gram.y" +case 712: +#line 4020 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 720: -#line 4068 "gram.y" +case 713: +#line 4025 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 721: -#line 4070 "gram.y" +case 714: +#line 4027 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 722: -#line 4072 "gram.y" +case 715: +#line 4029 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 723: -#line 4074 "gram.y" +case 716: +#line 4031 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 724: -#line 4076 "gram.y" +case 717: +#line 4033 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 725: -#line 4078 "gram.y" +case 718: +#line 4035 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 726: -#line 4080 "gram.y" +case 719: +#line 4037 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 727: -#line 4082 "gram.y" +case 720: +#line 4039 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8796,8 +8709,8 @@ case 727: } ; break;} -case 728: -#line 4098 "gram.y" +case 721: +#line 4055 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8814,24 +8727,24 @@ case 728: } ; break;} -case 729: -#line 4114 "gram.y" +case 722: +#line 4071 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 730: -#line 4116 "gram.y" +case 723: +#line 4073 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 731: -#line 4118 "gram.y" +case 724: +#line 4075 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 732: -#line 4120 "gram.y" +case 725: +#line 4077 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 733: -#line 4122 "gram.y" +case 726: +#line 4079 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -8840,8 +8753,8 @@ case 733: yyval.node = (Node *)n; ; break;} -case 734: -#line 4130 "gram.y" +case 727: +#line 4087 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -8849,8 +8762,8 @@ case 734: yyval.node = (Node *)n; ; break;} -case 735: -#line 4137 "gram.y" +case 728: +#line 4094 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -8858,8 +8771,8 @@ case 735: yyval.node = (Node *)n; ; break;} -case 736: -#line 4144 "gram.y" +case 729: +#line 4101 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -8867,8 +8780,8 @@ case 736: yyval.node = (Node *)n; ; break;} -case 737: -#line 4151 "gram.y" +case 730: +#line 4108 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -8876,8 +8789,8 @@ case 737: yyval.node = (Node *)n; ; break;} -case 738: -#line 4159 "gram.y" +case 731: +#line 4116 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -8885,8 +8798,8 @@ case 738: yyval.node = (Node *)n; ; break;} -case 739: -#line 4166 "gram.y" +case 732: +#line 4123 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "ltrim"; @@ -8894,8 +8807,8 @@ case 739: yyval.node = (Node *)n; ; break;} -case 740: -#line 4173 "gram.y" +case 733: +#line 4130 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "rtrim"; @@ -8903,8 +8816,8 @@ case 740: yyval.node = (Node *)n; ; break;} -case 741: -#line 4180 "gram.y" +case 734: +#line 4137 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -8912,22 +8825,22 @@ case 741: yyval.node = (Node *)n; ; break;} -case 742: -#line 4189 "gram.y" +case 735: +#line 4146 "gram.y" { yyval.list = nconc(nconc(yyvsp[-2].list,yyvsp[-1].list),yyvsp[0].list); ; break;} -case 743: -#line 4193 "gram.y" +case 736: +#line 4150 "gram.y" { yyval.list = NIL; ; break;} -case 744: -#line 4197 "gram.y" +case 737: +#line 4154 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 745: -#line 4199 "gram.y" +case 738: +#line 4156 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Integer; @@ -8935,72 +8848,72 @@ case 745: yyval.list = lcons((Node *)n,NIL); ; break;} -case 746: -#line 4208 "gram.y" +case 739: +#line 4165 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 747: -#line 4210 "gram.y" +case 740: +#line 4167 "gram.y" { yyval.list = NIL; ; break;} -case 748: -#line 4214 "gram.y" +case 741: +#line 4171 "gram.y" { yyval.list = lappend(yyvsp[0].list, yyvsp[-2].node); ; break;} -case 749: -#line 4216 "gram.y" +case 742: +#line 4173 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 750: -#line 4218 "gram.y" +case 743: +#line 4175 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 751: -#line 4222 "gram.y" +case 744: +#line 4179 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = yyvsp[0].node; yyval.node = (Node *)n; ; break;} -case 752: -#line 4228 "gram.y" +case 745: +#line 4185 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 753: -#line 4232 "gram.y" +case 746: +#line 4189 "gram.y" { yyval.node = makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node); ; break;} -case 754: -#line 4234 "gram.y" +case 747: +#line 4191 "gram.y" { yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node, makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node)); ; break;} -case 755: -#line 4240 "gram.y" +case 748: +#line 4197 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = yyvsp[0].node; yyval.node = (Node *)n; ; break;} -case 756: -#line 4246 "gram.y" +case 749: +#line 4203 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 757: -#line 4250 "gram.y" +case 750: +#line 4207 "gram.y" { yyval.node = makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node); ; break;} -case 758: -#line 4252 "gram.y" +case 751: +#line 4209 "gram.y" { yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node, makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node)); ; break;} -case 759: -#line 4258 "gram.y" +case 752: +#line 4215 "gram.y" { yyval.attr = makeNode(Attr); yyval.attr->relname = yyvsp[-2].str; @@ -9009,8 +8922,8 @@ case 759: yyval.attr->indirection = NULL; ; break;} -case 760: -#line 4266 "gram.y" +case 753: +#line 4223 "gram.y" { yyval.attr = makeNode(Attr); yyval.attr->relname = NULL; @@ -9019,28 +8932,28 @@ case 760: yyval.attr->indirection = NULL; ; break;} -case 761: -#line 4276 "gram.y" +case 754: +#line 4233 "gram.y" { yyval.list = lcons(makeString(yyvsp[0].str), NIL); ; break;} -case 762: -#line 4278 "gram.y" +case 755: +#line 4235 "gram.y" { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); ; break;} -case 763: -#line 4280 "gram.y" +case 756: +#line 4237 "gram.y" { yyval.list = lappend(yyvsp[-2].list, makeString("*")); ; break;} -case 764: -#line 4291 "gram.y" +case 757: +#line 4248 "gram.y" { yyval.list = lappend(yyvsp[-2].list,yyvsp[0].target); ; break;} -case 765: -#line 4293 "gram.y" +case 758: +#line 4250 "gram.y" { yyval.list = lcons(yyvsp[0].target, NIL); ; break;} -case 766: -#line 4295 "gram.y" +case 759: +#line 4252 "gram.y" { ResTarget *rt = makeNode(ResTarget); Attr *att = makeNode(Attr); @@ -9054,8 +8967,8 @@ case 766: yyval.list = lcons(rt, NIL); ; break;} -case 767: -#line 4310 "gram.y" +case 760: +#line 4267 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = yyvsp[-3].str; @@ -9063,8 +8976,8 @@ case 767: yyval.target->val = (Node *)yyvsp[0].node; ; break;} -case 768: -#line 4317 "gram.y" +case 761: +#line 4274 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = NULL; @@ -9072,8 +8985,8 @@ case 768: yyval.target->val = (Node *)yyvsp[-1].attr; ; break;} -case 769: -#line 4324 "gram.y" +case 762: +#line 4281 "gram.y" { Attr *att = makeNode(Attr); att->relname = yyvsp[-2].str; @@ -9086,16 +8999,16 @@ case 769: yyval.target->val = (Node *)att; ; break;} -case 770: -#line 4343 "gram.y" +case 763: +#line 4300 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target); ; break;} -case 771: -#line 4345 "gram.y" +case 764: +#line 4302 "gram.y" { yyval.list = lcons(yyvsp[0].target, NIL); ; break;} -case 772: -#line 4350 "gram.y" +case 765: +#line 4307 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = yyvsp[0].str; @@ -9103,8 +9016,8 @@ case 772: yyval.target->val = (Node *)yyvsp[-2].node; ; break;} -case 773: -#line 4357 "gram.y" +case 766: +#line 4314 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = NULL; @@ -9112,8 +9025,8 @@ case 773: yyval.target->val = (Node *)yyvsp[0].node; ; break;} -case 774: -#line 4364 "gram.y" +case 767: +#line 4321 "gram.y" { Attr *att = makeNode(Attr); att->relname = yyvsp[-2].str; @@ -9126,8 +9039,8 @@ case 774: yyval.target->val = (Node *)att; ; break;} -case 775: -#line 4376 "gram.y" +case 768: +#line 4333 "gram.y" { Attr *att = makeNode(Attr); att->relname = "*"; @@ -9140,23 +9053,23 @@ case 775: yyval.target->val = (Node *)att; ; break;} -case 776: -#line 4389 "gram.y" +case 769: +#line 4346 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 777: -#line 4390 "gram.y" +case 770: +#line 4347 "gram.y" { yyval.str = NULL; ; break;} -case 778: -#line 4394 "gram.y" +case 771: +#line 4351 "gram.y" { yyval.str = yyvsp[0].str; StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN); ; break;} -case 779: -#line 4399 "gram.y" +case 772: +#line 4356 "gram.y" { /* disallow refs to variable system tables */ if (strcmp(LogRelationName, yyvsp[0].str) == 0 @@ -9167,44 +9080,44 @@ case 779: StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN); ; break;} -case 780: -#line 4410 "gram.y" +case 773: +#line 4367 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 781: -#line 4411 "gram.y" +case 774: +#line 4368 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 782: -#line 4412 "gram.y" +case 775: +#line 4369 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 783: -#line 4413 "gram.y" +case 776: +#line 4370 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 784: -#line 4414 "gram.y" +case 777: +#line 4371 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 785: -#line 4420 "gram.y" +case 778: +#line 4377 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 786: -#line 4421 "gram.y" +case 779: +#line 4378 "gram.y" { yyval.str = xlateSqlFunc(yyvsp[0].str); ; break;} -case 787: -#line 4423 "gram.y" +case 780: +#line 4380 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 788: -#line 4424 "gram.y" +case 781: +#line 4381 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 789: -#line 4430 "gram.y" +case 782: +#line 4387 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Integer; @@ -9212,8 +9125,8 @@ case 789: yyval.node = (Node *)n; ; break;} -case 790: -#line 4437 "gram.y" +case 783: +#line 4394 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Float; @@ -9221,8 +9134,8 @@ case 790: yyval.node = (Node *)n; ; break;} -case 791: -#line 4444 "gram.y" +case 784: +#line 4401 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -9230,8 +9143,8 @@ case 791: yyval.node = (Node *)n; ; break;} -case 792: -#line 4451 "gram.y" +case 785: +#line 4408 "gram.y" { A_Const *n = makeNode(A_Const); n->typename = yyvsp[-1].typnam; @@ -9240,12 +9153,12 @@ case 792: yyval.node = (Node *)n; ; break;} -case 793: -#line 4459 "gram.y" +case 786: +#line 4416 "gram.y" { yyval.node = (Node *)yyvsp[0].paramno; ; break;} -case 794: -#line 4461 "gram.y" +case 787: +#line 4418 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -9256,8 +9169,8 @@ case 794: yyval.node = (Node *)n; ; break;} -case 795: -#line 4471 "gram.y" +case 788: +#line 4428 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -9268,239 +9181,239 @@ case 795: yyval.node = (Node *)n; ; break;} -case 796: -#line 4483 "gram.y" +case 789: +#line 4440 "gram.y" { yyval.paramno = makeNode(ParamNo); yyval.paramno->number = yyvsp[0].ival; ; break;} -case 797: -#line 4489 "gram.y" +case 790: +#line 4446 "gram.y" { yyval.ival = yyvsp[0].ival; ; break;} -case 798: -#line 4490 "gram.y" +case 791: +#line 4447 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 799: -#line 4491 "gram.y" +case 792: +#line 4448 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 800: -#line 4499 "gram.y" +case 793: +#line 4456 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].str); ; break;} -case 801: -#line 4501 "gram.y" +case 794: +#line 4458 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].str); ; break;} -case 802: -#line 4503 "gram.y" +case 795: +#line 4460 "gram.y" { yyval.str = xlateSqlType(yyvsp[0].str); ; break;} -case 803: -#line 4513 "gram.y" +case 796: +#line 4470 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 804: -#line 4514 "gram.y" +case 797: +#line 4471 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 805: -#line 4515 "gram.y" +case 798: +#line 4472 "gram.y" { yyval.str = "action"; ; break;} -case 806: -#line 4516 "gram.y" +case 799: +#line 4473 "gram.y" { yyval.str = "cache"; ; break;} -case 807: -#line 4517 "gram.y" +case 800: +#line 4474 "gram.y" { yyval.str = "cycle"; ; break;} -case 808: -#line 4518 "gram.y" +case 801: +#line 4475 "gram.y" { yyval.str = "database"; ; break;} -case 809: -#line 4519 "gram.y" +case 802: +#line 4476 "gram.y" { yyval.str = "delimiters"; ; break;} -case 810: -#line 4520 "gram.y" +case 803: +#line 4477 "gram.y" { yyval.str = "double"; ; break;} -case 811: -#line 4521 "gram.y" +case 804: +#line 4478 "gram.y" { yyval.str = "each"; ; break;} -case 812: -#line 4522 "gram.y" +case 805: +#line 4479 "gram.y" { yyval.str = "encoding"; ; break;} -case 813: -#line 4523 "gram.y" +case 806: +#line 4480 "gram.y" { yyval.str = "function"; ; break;} -case 814: -#line 4524 "gram.y" +case 807: +#line 4481 "gram.y" { yyval.str = "increment"; ; break;} -case 815: -#line 4525 "gram.y" +case 808: +#line 4482 "gram.y" { yyval.str = "index"; ; break;} -case 816: -#line 4526 "gram.y" +case 809: +#line 4483 "gram.y" { yyval.str = "key"; ; break;} -case 817: -#line 4527 "gram.y" +case 810: +#line 4484 "gram.y" { yyval.str = "language"; ; break;} -case 818: -#line 4528 "gram.y" +case 811: +#line 4485 "gram.y" { yyval.str = "location"; ; break;} -case 819: -#line 4529 "gram.y" +case 812: +#line 4486 "gram.y" { yyval.str = "match"; ; break;} -case 820: -#line 4530 "gram.y" +case 813: +#line 4487 "gram.y" { yyval.str = "maxvalue"; ; break;} -case 821: -#line 4531 "gram.y" +case 814: +#line 4488 "gram.y" { yyval.str = "minvalue"; ; break;} -case 822: -#line 4532 "gram.y" +case 815: +#line 4489 "gram.y" { yyval.str = "operator"; ; break;} -case 823: -#line 4533 "gram.y" +case 816: +#line 4490 "gram.y" { yyval.str = "option"; ; break;} -case 824: -#line 4534 "gram.y" +case 817: +#line 4491 "gram.y" { yyval.str = "password"; ; break;} -case 825: -#line 4535 "gram.y" +case 818: +#line 4492 "gram.y" { yyval.str = "privileges"; ; break;} -case 826: -#line 4536 "gram.y" +case 819: +#line 4493 "gram.y" { yyval.str = "recipe"; ; break;} -case 827: -#line 4537 "gram.y" +case 820: +#line 4494 "gram.y" { yyval.str = "row"; ; break;} -case 828: -#line 4538 "gram.y" +case 821: +#line 4495 "gram.y" { yyval.str = "start"; ; break;} -case 829: -#line 4539 "gram.y" +case 822: +#line 4496 "gram.y" { yyval.str = "statement"; ; break;} -case 830: -#line 4540 "gram.y" +case 823: +#line 4497 "gram.y" { yyval.str = "time"; ; break;} -case 831: -#line 4541 "gram.y" +case 824: +#line 4498 "gram.y" { yyval.str = "timezone_hour"; ; break;} -case 832: -#line 4542 "gram.y" +case 825: +#line 4499 "gram.y" { yyval.str = "timezone_minute"; ; break;} -case 833: -#line 4543 "gram.y" +case 826: +#line 4500 "gram.y" { yyval.str = "trigger"; ; break;} -case 834: -#line 4544 "gram.y" +case 827: +#line 4501 "gram.y" { yyval.str = "type"; ; break;} -case 835: -#line 4545 "gram.y" +case 828: +#line 4502 "gram.y" { yyval.str = "valid"; ; break;} -case 836: -#line 4546 "gram.y" +case 829: +#line 4503 "gram.y" { yyval.str = "version"; ; break;} -case 837: -#line 4547 "gram.y" +case 830: +#line 4504 "gram.y" { yyval.str = "zone"; ; break;} -case 838: -#line 4560 "gram.y" +case 831: +#line 4517 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 839: -#line 4561 "gram.y" +case 832: +#line 4518 "gram.y" { yyval.str = "archive"; ; break;} -case 840: -#line 4562 "gram.y" +case 833: +#line 4519 "gram.y" { yyval.str = "cluster"; ; break;} -case 841: -#line 4563 "gram.y" +case 834: +#line 4520 "gram.y" { yyval.str = "constraint"; ; break;} -case 842: -#line 4564 "gram.y" +case 835: +#line 4521 "gram.y" { yyval.str = "cross"; ; break;} -case 843: -#line 4565 "gram.y" +case 836: +#line 4522 "gram.y" { yyval.str = "foreign"; ; break;} -case 844: -#line 4566 "gram.y" +case 837: +#line 4523 "gram.y" { yyval.str = "group"; ; break;} -case 845: -#line 4567 "gram.y" +case 838: +#line 4524 "gram.y" { yyval.str = "load"; ; break;} -case 846: -#line 4568 "gram.y" +case 839: +#line 4525 "gram.y" { yyval.str = "order"; ; break;} -case 847: -#line 4569 "gram.y" +case 840: +#line 4526 "gram.y" { yyval.str = "position"; ; break;} -case 848: -#line 4570 "gram.y" +case 841: +#line 4527 "gram.y" { yyval.str = "precision"; ; break;} -case 849: -#line 4571 "gram.y" +case 842: +#line 4528 "gram.y" { yyval.str = "table"; ; break;} -case 850: -#line 4572 "gram.y" +case 843: +#line 4529 "gram.y" { yyval.str = "transaction"; ; break;} -case 851: -#line 4573 "gram.y" +case 844: +#line 4530 "gram.y" { yyval.str = "true"; ; break;} -case 852: -#line 4574 "gram.y" +case 845: +#line 4531 "gram.y" { yyval.str = "false"; ; break;} -case 853: -#line 4578 "gram.y" +case 846: +#line 4535 "gram.y" { if (QueryIsRule) yyval.str = "*CURRENT*"; @@ -9508,8 +9421,8 @@ case 853: elog(ERROR,"CURRENT used in non-rule query"); ; break;} -case 854: -#line 4585 "gram.y" +case 847: +#line 4542 "gram.y" { if (QueryIsRule) yyval.str = "*NEW*"; @@ -9715,7 +9628,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 4593 "gram.y" +#line 4550 "gram.y" static Node * diff --git a/src/backend/parser/parse.h b/src/backend/parser/parse.h index 5ce1d6f2996..d5e888e4994 100644 --- a/src/backend/parser/parse.h +++ b/src/backend/parser/parse.h @@ -16,6 +16,7 @@ typedef union DefElem *defelt; ParamString *param; SortGroupBy *sortgroupby; + JoinUsing *joinusing; IndexElem *ielem; RangeVar *range; RelExpr *relexp; diff --git a/src/backend/storage/large_object/inv_api.c b/src/backend/storage/large_object/inv_api.c index 3924330c35f..f06bb5968a1 100644 --- a/src/backend/storage/large_object/inv_api.c +++ b/src/backend/storage/large_object/inv_api.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.32 1998/07/27 19:38:11 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/large_object/inv_api.c,v 1.33 1998/08/06 05:12:45 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -153,7 +153,7 @@ inv_create(int flags) * be located on whatever storage manager the user requested. */ - heap_create_with_catalog(objname, tupdesc); + heap_create_with_catalog(objname, tupdesc, RELKIND_LOBJECT); /* make the relation visible in this transaction */ CommandCounterIncrement(); diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 94f44a73857..75d51086d31 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.44 1998/07/26 04:30:48 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.45 1998/08/06 05:12:48 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -173,7 +173,7 @@ ProcessUtility(Node *parsetree, *ps_status = commandTag = "CREATE"; CHECK_IF_ABORTED(); - DefineRelation((CreateStmt *) parsetree); + DefineRelation((CreateStmt *) parsetree, RELKIND_RELATION); break; case T_DestroyStmt: diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index ad68b9fcde7..b3f0bbeba6e 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -21,7 +21,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.78 1998/07/19 05:24:49 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.79 1998/08/06 05:12:51 momjian Exp $ * * Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb * @@ -1418,7 +1418,7 @@ getTables(int *numTables, FuncInfo *finfo, int numFuncs) "from pg_class, pg_user " "where relowner = usesysid and " "(relkind = 'r' or relkind = 'S') and relname !~ '^pg_' " - "and relname !~ '^xin[xv][0-9]+' order by oid"); + "order by oid"); res = PQexec(g_conn, query); if (!res || @@ -1879,7 +1879,7 @@ getIndices(int *numIndices) "from pg_index i, pg_class t1, pg_class t2, pg_am a " "where t1.oid = i.indexrelid and t2.oid = i.indrelid " "and t1.relam = a.oid and i.indexrelid > '%d'::oid " - "and t2.relname !~ '^pg_' and t1.relname !~ '^xinx'", + "and t2.relname !~ '^pg_' and t1.relkind != 'l'", g_last_builtin_oid); res = PQexec(g_conn, query); diff --git a/src/bin/psql/psql.c b/src/bin/psql/psql.c index 0b4c78a7e6e..b3f692780eb 100644 --- a/src/bin/psql/psql.c +++ b/src/bin/psql/psql.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.151 1998/08/05 16:23:40 momjian Exp $ + * $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.152 1998/08/06 05:12:55 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -408,7 +408,6 @@ tableList(PsqlSettings *pset, bool deep_tablelist, char info_type, strcat(listbuf, " and relname !~ '^pg_'"); else strcat(listbuf, " and relname ~ '^pg_'"); - strcat(listbuf, " and relname !~ '^xin[vx][0-9]+'"); strcat(listbuf, " and usesysid = relowner"); strcat(listbuf, " ORDER BY relname "); if (!(res = PSQLexec(pset, listbuf))) @@ -544,7 +543,6 @@ rightsList(PsqlSettings *pset) strcat(listbuf, "FROM pg_class, pg_user "); strcat(listbuf, "WHERE ( relkind = 'r' OR relkind = 'i' OR relkind = 'S') "); strcat(listbuf, " and relname !~ '^pg_'"); - strcat(listbuf, " and relname !~ '^xin[vx][0-9]+'"); strcat(listbuf, " and usesysid = relowner"); strcat(listbuf, " ORDER BY relname "); if (!(res = PSQLexec(pset, listbuf))) diff --git a/src/include/catalog/heap.h b/src/include/catalog/heap.h index e43ac0cd0e7..3caebe74449 100644 --- a/src/include/catalog/heap.h +++ b/src/include/catalog/heap.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: heap.h,v 1.12 1998/02/26 04:40:38 momjian Exp $ + * $Id: heap.h,v 1.13 1998/08/06 05:13:01 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -17,7 +17,8 @@ extern Relation heap_create(char *relname, TupleDesc att); -extern Oid heap_create_with_catalog(char relname[], TupleDesc tupdesc); +extern Oid heap_create_with_catalog(char *relname, + TupleDesc tupdesc, char relkind); extern void heap_destroy_with_catalog(char relname[]); extern void heap_destroy(Relation r); diff --git a/src/include/catalog/pg_attribute_mb.h b/src/include/catalog/pg_attribute_mb.h index de5adbae3ec..c7cbfa30ec9 100644 --- a/src/include/catalog/pg_attribute_mb.h +++ b/src/include/catalog/pg_attribute_mb.h @@ -7,474 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_attribute_mb.h,v 1.1 1998/07/27 03:21:57 scrappy Exp $ - * - * NOTES - * the genbki.sh script reads this file and generates .bki - * information from the DATA() statements. - * - * utils/cache/relcache.c requires some hard-coded tuple descriptors - * for some of the system catalogs so if the schema for any of - * these changes, be sure and change the appropriate Schema_xxx - * macros! -cim 2/5/91 - * - *------------------------------------------------------------------------- - */ -#ifndef PG_ATTRIBUTE_H -#define PG_ATTRIBUTE_H - -/* ---------------- - * postgres.h contains the system type definintions and the - * CATALOG(), BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ - -/* ---------------- - * pg_attribute definition. cpp turns this into - * typedef struct FormData_pg_attribute - * - * If you change the following, make sure you change the structs for - * system attributes in heap.c and index.c also. - * ---------------- - */ -CATALOG(pg_attribute) BOOTSTRAP -{ - Oid attrelid; - NameData attname; - Oid atttypid; - - /* - * atttypid is the OID of the instance in Catalog Class pg_type that - * defines the data type of this attribute (e.g. int4). Information - * in that instance is redundant with the attlen, attbyval, and - * attalign attributes of this instance, so they had better match or - * Postgres will fail. - */ - float4 attdisbursion; - int2 attlen; - - /* - * attlen is a copy of the typlen field from pg_type for this - * attribute. See atttypid above. See struct TypeTupleFormData for - * definition. - */ - int2 attnum; - - /* - * attnum is the "attribute number" for the attribute: A value that - * uniquely identifies this attribute within its class. For user - * attributes, Attribute numbers are greater than 0 and not greater - * than the number of attributes in the class. I.e. if the Class - * pg_class says that Class XYZ has 10 attributes, then the user - * attribute numbers in Class pg_attribute must be 1-10. - * - * System attributes have attribute numbers less than 0 that are unique - * within the class, but not constrained to any particular range. - * - * Note that (attnum - 1) is often used as the index to an array. - */ - int4 attnelems; - - int4 attcacheoff; - - /* - * fastgetattr() uses attcacheoff to cache byte offsets of attributes - * in heap tuples. The data actually stored in pg_attribute (-1) - * indicates no cached value. But when we copy these tuples into a - * tuple descriptor, we may then update attcacheoff in the copies. - * This speeds up the attribute walking process. - */ - - int4 atttypmod; - - /* - * atttypmod records type-specific modifications supplied at table - * creation time, and passes it to input and output functions as the - * third argument. - */ - - bool attbyval; - - /* - * attbyval is a copy of the typbyval field from pg_type for this - * attribute. See atttypid above. See struct TypeTupleFormData for - * definition. - */ - bool attisset; - char attalign; - - /* - * attalign is a copy of the typalign field from pg_type for this - * attribute. See atttypid above. See struct TypeTupleFormData for - * definition. - */ - bool attnotnull; - - /* This flag represents the "NOT NULL" constraint */ - bool atthasdef; - - /* Has DEFAULT value or not */ -} FormData_pg_attribute; - -/* - * someone should figure out how to do this properly. (The problem is - * the size of the C struct is not the same as the size of the tuple.) - */ -#define ATTRIBUTE_TUPLE_SIZE \ - (offsetof(FormData_pg_attribute,atthasdef) + sizeof(char)) - -/* ---------------- - * Form_pg_attribute corresponds to a pointer to a tuple with - * the format of pg_attribute relation. - * ---------------- - */ -typedef FormData_pg_attribute *AttributeTupleForm; - -/* ---------------- - * compiler constants for pg_attribute - * ---------------- - */ - -#define Natts_pg_attribute 14 -#define Anum_pg_attribute_attrelid 1 -#define Anum_pg_attribute_attname 2 -#define Anum_pg_attribute_atttypid 3 -#define Anum_pg_attribute_attdisbursion 4 -#define Anum_pg_attribute_attlen 5 -#define Anum_pg_attribute_attnum 6 -#define Anum_pg_attribute_attnelems 7 -#define Anum_pg_attribute_attcacheoff 8 -#define Anum_pg_attribute_atttypmod 9 -#define Anum_pg_attribute_attbyval 10 -#define Anum_pg_attribute_attisset 11 -#define Anum_pg_attribute_attalign 12 -#define Anum_pg_attribute_attnotnull 13 -#define Anum_pg_attribute_atthasdef 14 - - -/* ---------------- - * SCHEMA_ macros for declaring hardcoded tuple descriptors. - * these are used in utils/cache/relcache.c - * ---------------- -#define SCHEMA_NAME(x) CppConcat(Name_,x) -#define SCHEMA_DESC(x) CppConcat(Desc_,x) -#define SCHEMA_NATTS(x) CppConcat(Natts_,x) -#define SCHEMA_DEF(x) \ - FormData_pg_attribute \ - SCHEMA_DESC(x) [ SCHEMA_NATTS(x) ] = \ - { \ - CppConcat(Schema_,x) \ - } - */ - -/* ---------------- - * initial contents of pg_attribute - * ---------------- - */ - -/* ---------------- - * pg_type schema - * ---------------- - */ -#define Schema_pg_type \ -{ 1247, {"typname"}, 19, 0, NAMEDATALEN, 1, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typowner"}, 26, 0, 4, 2, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typlen"}, 21, 0, 2, 3, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1247, {"typprtlen"}, 21, 0, 2, 4, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1247, {"typbyval"}, 16, 0, 1, 5, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1247, {"typtype"}, 18, 0, 1, 6, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1247, {"typisdefined"}, 16, 0, 1, 7, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1247, {"typdelim"}, 18, 0, 1, 8, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1247, {"typrelid"}, 26, 0, 4, 9, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typelem"}, 26, 0, 4, 10, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typinput"}, 24, 0, 4, 11, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typoutput"}, 24, 0, 4, 12, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typreceive"}, 24, 0, 4, 13, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typsend"}, 24, 0, 4, 14, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1247, {"typalign"}, 18, 0, 1, 15, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1247, {"typdefault"}, 25, 0, -1, 16, 0, -1, -1, '\0' , '\0', 'i', '\0', '\0' } - -DATA(insert OID = 0 ( 1247 typname 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1247 typowner 26 0 4 2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typlen 21 0 2 3 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1247 typprtlen 21 0 2 4 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1247 typbyval 16 0 1 5 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1247 typtype 18 0 1 6 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1247 typisdefined 16 0 1 7 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1247 typdelim 18 0 1 8 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1247 typrelid 26 0 4 9 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typelem 26 0 4 10 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typinput 24 0 4 11 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typoutput 24 0 4 12 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typreceive 24 0 4 13 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typsend 24 0 4 14 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 typalign 18 0 1 15 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1247 typdefault 25 0 -1 16 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1247 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1247 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1247 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1247 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1247 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_database - * ---------------- - */ -DATA(insert OID = 0 ( 1262 datname 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1262 datdba 23 0 4 2 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1262 encoding 23 0 4 3 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1262 datpath 25 0 -1 4 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1262 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1262 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1262 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1262 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1262 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1262 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_proc - * ---------------- - */ -#define Schema_pg_proc \ -{ 1255, {"proname"}, 19, 0, NAMEDATALEN, 1, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"proowner"}, 26, 0, 4, 2, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"prolang"}, 26, 0, 4, 3, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"proisinh"}, 16, 0, 1, 4, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1255, {"proistrusted"}, 16, 0, 1, 5, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1255, {"proiscachable"}, 16, 0, 1, 6, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1255, {"pronargs"}, 21, 0, 2, 7, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1255, {"proretset"}, 16, 0, 1, 8, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1255, {"prorettype"}, 26, 0, 4, 9, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"proargtypes"}, 30, 0, 32, 10, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"probyte_pct"}, 23, 0, 4, 11, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"properbyte_cpu"}, 23, 0, 4, 12, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"propercall_cpu"}, 23, 0, 4, 13, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"prooutin_ratio"}, 23, 0, 4, 14, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"prosrc"}, 25, 0, -1, 15, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1255, {"probin"}, 17, 0, -1, 16, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' } - -DATA(insert OID = 0 ( 1255 proname 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 proowner 26 0 4 2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 prolang 26 0 4 3 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 proisinh 16 0 1 4 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1255 proistrusted 16 0 1 5 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1255 proiscachable 16 0 1 6 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1255 pronargs 21 0 2 7 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1255 proretset 16 0 1 8 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1255 prorettype 26 0 4 9 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 proargtypes 30 0 32 10 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 probyte_pct 23 0 4 11 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 properbyte_cpu 23 0 4 12 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 propercall_cpu 23 0 4 13 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 prooutin_ratio 23 0 4 14 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 prosrc 25 0 -1 15 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 probin 17 0 -1 16 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1255 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1255 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_shadow - * ---------------- - */ -DATA(insert OID = 0 ( 1260 usename 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1260 usesysid 23 0 4 2 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1260 usecreatedb 16 0 1 3 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1260 usetrace 16 0 1 4 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1260 usesuper 16 0 1 5 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1260 usecatupd 16 0 1 6 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1260 passwd 25 0 -1 7 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1260 valuntil 702 0 4 8 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1260 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1260 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1260 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1260 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1260 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1260 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_group - * ---------------- - */ -DATA(insert OID = 0 ( 1261 groname 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1261 grosysid 23 0 4 2 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1261 grolist 1007 0 -1 3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1261 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1261 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1261 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1261 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1261 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1261 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_attribute - * ---------------- - */ -#define Schema_pg_attribute \ -{ 1249, {"attrelid"}, 26, 0, 4, 1, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"attname"}, 19, 0, NAMEDATALEN, 2, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"atttypid"}, 26, 0, 4, 3, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"attdisbursion"}, 700, 0, 4, 4, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"attlen"}, 21, 0, 2, 5, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1249, {"attnum"}, 21, 0, 2, 6, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1249, {"attnelems"}, 23, 0, 4, 7, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"attcacheoff"}, 23, 0, 4, 8, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1249, {"atttypmod"}, 21, 0, 4, 9, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1249, {"attbyval"}, 16, 0, 1, 10, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1249, {"attisset"}, 16, 0, 1, 11, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1249, {"attalign"}, 18, 0, 1, 12, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1249, {"attnotnull"}, 16, 0, 1, 13, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1249, {"atthasdef"}, 16, 0, 1, 14, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' } - -DATA(insert OID = 0 ( 1249 attrelid 26 0 4 1 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 attname 19 0 NAMEDATALEN 2 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1249 atttypid 26 0 4 3 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 attdisbursion 700 0 4 4 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1249 attlen 21 0 2 5 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1249 attnum 21 0 2 6 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1249 attnelems 23 0 4 7 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 attcacheoff 23 0 4 8 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 atttypmod 21 0 4 9 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1249 attbyval 16 0 1 10 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1249 attisset 16 0 1 11 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1249 attalign 18 0 1 12 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1249 attnotnull 16 0 1 13 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1249 atthasdef 16 0 1 14 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1249 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1249 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1249 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1249 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1249 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_class - * ---------------- - */ -#define Schema_pg_class \ -{ 1259, {"relname"}, 19, 0, NAMEDATALEN, 1, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"reltype"}, 26, 0, 4, 2, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"relowner"}, 26, 0, 4, 3, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"relam"}, 26, 0, 4, 4, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"relpages"}, 23, 0, 4, 5, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"reltuples"}, 23, 0, 4, 6, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' }, \ -{ 1259, {"relhasindex"}, 16, 0, 1, 7, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1259, {"relisshared"}, 16, 0, 1, 8, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1259, {"relkind"}, 18, 0, 1, 9, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1259, {"relnatts"}, 21, 0, 2, 10, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1259, {"relchecks"}, 21, 0, 2, 11, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1259, {"reltriggers"}, 21, 0, 2, 12, 0, -1, -1, '\001', '\0', 's', '\0', '\0' }, \ -{ 1259, {"relhasrules"}, 16, 0, 1, 13, 0, -1, -1, '\001', '\0', 'c', '\0', '\0' }, \ -{ 1259, {"relacl"}, 1034, 0, -1, 14, 0, -1, -1, '\0', '\0', 'i', '\0', '\0' } - -DATA(insert OID = 0 ( 1259 relname 19 0 NAMEDATALEN 1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1259 reltype 26 0 4 2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 relowner 26 0 4 3 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 relam 26 0 4 4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 relpages 23 0 4 5 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 reltuples 23 0 4 6 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 relhasindex 16 0 1 7 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1259 relisshared 16 0 1 8 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1259 relkind 18 0 1 9 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1259 relnatts 21 0 2 10 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1259 relchecks 21 0 2 11 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1259 reltriggers 21 0 2 12 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1259 relhasrules 16 0 1 13 0 -1 -1 t f c f f)); -DATA(insert OID = 0 ( 1259 relacl 1034 0 -1 14 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1259 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1259 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1259 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1259 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1259 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_attrdef - * ---------------- - */ -DATA(insert OID = 0 ( 1215 adrelid 26 0 4 1 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1215 adnum 21 0 2 2 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1215 adbin 25 0 -1 3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1215 adsrc 25 0 -1 4 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1215 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1215 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1215 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1215 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1215 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1215 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_relcheck - * ---------------- - */ -DATA(insert OID = 0 ( 1216 rcrelid 26 0 4 1 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1216 rcname 19 0 NAMEDATALEN 2 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 rcbin 25 0 -1 3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 rcsrc 25 0 -1 4 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1216 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1216 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1216 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_trigger - * ---------------- - */ -DATA(insert OID = 0 ( 1219 tgrelid 26 0 4 1 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1219 tgname 19 0 NAMEDATALEN 2 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 tgfoid 26 0 4 3 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1219 tgtype 21 0 2 4 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1219 tgnargs 21 0 2 5 0 -1 -1 t f s f f)); -DATA(insert OID = 0 ( 1219 tgattr 22 0 16 6 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 tgargs 17 0 -1 7 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 ctid 27 0 6 -1 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 oid 26 0 4 -2 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1219 xmin 28 0 4 -3 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 cmin 29 0 4 -4 0 -1 -1 t f i f f)); -DATA(insert OID = 0 ( 1219 xmax 28 0 4 -5 0 -1 -1 f f i f f)); -DATA(insert OID = 0 ( 1219 cmax 29 0 4 -6 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_variable - this relation is modified by special purpose access - * method code. The following is garbage but is needed - * so that the reldesc code works properly. - * ---------------- - */ -#define Schema_pg_variable \ -{ 1264, {"varfoo"}, 26, 0, 4, 1, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' } - -DATA(insert OID = 0 ( 1264 varfoo 26 0 4 1 0 -1 -1 t f i f f)); - -/* ---------------- - * pg_log - this relation is modified by special purpose access - * method code. The following is garbage but is needed - * so that the reldesc code works properly. - * ---------------- - */ -#define Schema_pg_log \ -{ 1269, {"logfoo"}, 26, 0, 4, 1, 0, -1, -1, '\001', '\0', 'i', '\0', '\0' } - -DATA(insert OID = 0 ( 1269 logfoo 26 0 4 1 0 -1 -1 t f i f f)); - -#endif /* PG_ATTRIBUTE_H */ - -/*------------------------------------------------------------------------- - * - * pg_attribute.h-- - * definition of the system "attribute" relation (pg_attribute) - * along with the relation's initial contents. - * - * - * Copyright (c) 1994, Regents of the University of California - * - * $Id: pg_attribute_mb.h,v 1.1 1998/07/27 03:21:57 scrappy Exp $ + * $Id: pg_attribute_mb.h,v 1.2 1998/08/06 05:13:03 momjian Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h index 223c60f8945..1702a2e0e1d 100644 --- a/src/include/catalog/pg_class.h +++ b/src/include/catalog/pg_class.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_class.h,v 1.20 1998/02/26 04:40:52 momjian Exp $ + * $Id: pg_class.h,v 1.21 1998/08/06 05:13:05 momjian Exp $ * * NOTES * ``pg_relation'' is being replaced by ``pg_class''. currently @@ -157,6 +157,7 @@ DESCR(""); #define RelOid_pg_trigger 1219 #define RELKIND_INDEX 'i' /* secondary index */ +#define RELKIND_LOBJECT 'l' /* large objects */ #define RELKIND_RELATION 'r' /* cataloged heap */ #define RELKIND_SPECIAL 's' /* special (non-heap) */ #define RELKIND_SEQUENCE 'S' /* SEQUENCE relation */ diff --git a/src/include/catalog/pg_class_mb.h b/src/include/catalog/pg_class_mb.h index 09bc745d120..5135e4403aa 100644 --- a/src/include/catalog/pg_class_mb.h +++ b/src/include/catalog/pg_class_mb.h @@ -7,172 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_class_mb.h,v 1.1 1998/07/27 03:21:58 scrappy Exp $ - * - * NOTES - * ``pg_relation'' is being replaced by ``pg_class''. currently - * we are only changing the name in the catalogs but someday the - * code will be changed too. -cim 2/26/90 - * [it finally happens. -ay 11/5/94] - * - * the genbki.sh script reads this file and generates .bki - * information from the DATA() statements. - * - *------------------------------------------------------------------------- - */ -#ifndef PG_RELATION_H -#define PG_RELATION_H - -/* ---------------- - * postgres.h contains the system type definintions and the - * CATALOG(), BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ - -/* ---------------- - * pg_class definition. cpp turns this into - * typedef struct FormData_pg_class - * - * Note: the #if 0, #endif around the BKI_BEGIN.. END block - * below keeps cpp from seeing what is meant for the - * genbki script: pg_relation is now called pg_class, but - * only in the catalogs -cim 2/26/90 - * ---------------- - */ - -/* ---------------- - * This structure is actually variable-length (the last attribute is - * a POSTGRES array). Hence, sizeof(FormData_pg_class) does not - * describe the fixed-length or actual size of the structure. - * FormData_pg_class.relacl may not be correctly aligned, either, - * if aclitem and struct varlena don't align together. Hence, - * you MUST use heap_getattr() to get the relacl field. - * ---------------- - */ -CATALOG(pg_class) BOOTSTRAP -{ - NameData relname; - Oid reltype; - Oid relowner; - Oid relam; - int4 relpages; - int4 reltuples; - bool relhasindex; - bool relisshared; - char relkind; - int2 relnatts; - - /* - * relnatts is the number of user attributes this class has. There - * must be exactly this many instances in Class pg_attribute for this - * class which have attnum > 0 (= user attribute). - */ - int2 relchecks; /* # of CHECK constraints, not stored in - * db? */ - int2 reltriggers; /* # of TRIGGERs */ - bool relhasrules; - aclitem relacl[1]; /* this is here for the catalog */ -} FormData_pg_class; - -#define CLASS_TUPLE_SIZE \ - (offsetof(FormData_pg_class,relhasrules) + sizeof(bool)) - -/* ---------------- - * Form_pg_class corresponds to a pointer to a tuple with - * the format of pg_class relation. - * ---------------- - */ -typedef FormData_pg_class *Form_pg_class; - -/* ---------------- - * compiler constants for pg_class - * ---------------- - */ - -/* ---------------- - * Natts_pg_class_fixed is used to tell routines that insert new - * pg_class tuples (as opposed to replacing old ones) that there's no - * relacl field. - * ---------------- - */ -#define Natts_pg_class_fixed 13 -#define Natts_pg_class 14 -#define Anum_pg_class_relname 1 -#define Anum_pg_class_reltype 2 -#define Anum_pg_class_relowner 3 -#define Anum_pg_class_relam 4 -#define Anum_pg_class_relpages 5 -#define Anum_pg_class_reltuples 6 -#define Anum_pg_class_relhasindex 7 -#define Anum_pg_class_relisshared 8 -#define Anum_pg_class_relkind 9 -#define Anum_pg_class_relnatts 10 -#define Anum_pg_class_relchecks 11 -#define Anum_pg_class_reltriggers 12 -#define Anum_pg_class_relhasrules 13 -#define Anum_pg_class_relacl 14 - -/* ---------------- - * initial contents of pg_class - * ---------------- - */ - -DATA(insert OID = 1247 ( pg_type 71 PGUID 0 0 0 f f r 16 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1249 ( pg_attribute 75 PGUID 0 0 0 f f r 14 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1255 ( pg_proc 81 PGUID 0 0 0 f f r 16 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1259 ( pg_class 83 PGUID 0 0 0 f f r 14 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1260 ( pg_shadow 86 PGUID 0 0 0 f t r 8 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1261 ( pg_group 87 PGUID 0 0 0 f t s 3 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1262 ( pg_database 88 PGUID 0 0 0 f t r 4 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1264 ( pg_variable 90 PGUID 0 0 0 f t s 2 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1269 ( pg_log 99 PGUID 0 0 0 f t s 1 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1215 ( pg_attrdef 109 PGUID 0 0 0 t t r 4 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1216 ( pg_relcheck 110 PGUID 0 0 0 t t r 4 0 0 f _null_ )); -DESCR(""); -DATA(insert OID = 1219 ( pg_trigger 111 PGUID 0 0 0 t t r 7 0 0 f _null_ )); -DESCR(""); - -#define RelOid_pg_type 1247 -#define RelOid_pg_attribute 1249 -#define RelOid_pg_proc 1255 -#define RelOid_pg_class 1259 -#define RelOid_pg_shadow 1260 -#define RelOid_pg_group 1261 -#define RelOid_pg_database 1262 -#define RelOid_pg_variable 1264 -#define RelOid_pg_log 1269 -#define RelOid_pg_attrdef 1215 -#define RelOid_pg_relcheck 1216 -#define RelOid_pg_trigger 1219 - -#define RELKIND_INDEX 'i' /* secondary index */ -#define RELKIND_RELATION 'r' /* cataloged heap */ -#define RELKIND_SPECIAL 's' /* special (non-heap) */ -#define RELKIND_SEQUENCE 'S' /* SEQUENCE relation */ -#define RELKIND_UNCATALOGED 'u' /* temporary heap */ - -#endif /* PG_RELATION_H */ -/*------------------------------------------------------------------------- - * - * pg_class.h-- - * definition of the system "relation" relation (pg_class) - * along with the relation's initial contents. - * - * - * Copyright (c) 1994, Regents of the University of California - * - * $Id: pg_class_mb.h,v 1.1 1998/07/27 03:21:58 scrappy Exp $ + * $Id: pg_class_mb.h,v 1.2 1998/08/06 05:13:07 momjian Exp $ * * NOTES * ``pg_relation'' is being replaced by ``pg_class''. currently diff --git a/src/include/catalog/pg_database_mb.h b/src/include/catalog/pg_database_mb.h index a9ff602a6fc..0b778a5d509 100644 --- a/src/include/catalog/pg_database_mb.h +++ b/src/include/catalog/pg_database_mb.h @@ -7,65 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pg_database_mb.h,v 1.1 1998/07/27 03:21:58 scrappy Exp $ - * - * NOTES - * the genbki.sh script reads this file and generates .bki - * information from the DATA() statements. - * - *------------------------------------------------------------------------- - */ -#ifndef PG_DATABASE_H -#define PG_DATABASE_H - -/* ---------------- - * postgres.h contains the system type definintions and the - * CATALOG(), BOOTSTRAP and DATA() sugar words so this file - * can be read by both genbki.sh and the C compiler. - * ---------------- - */ - -/* ---------------- - * pg_database definition. cpp turns this into - * typedef struct FormData_pg_database - * ---------------- - */ -CATALOG(pg_database) BOOTSTRAP -{ - NameData datname; - int4 datdba; - int4 encoding; - text datpath; /* VARIABLE LENGTH FIELD */ -} FormData_pg_database; -/* ---------------- - * Form_pg_database corresponds to a pointer to a tuple with - * the format of pg_database relation. - * ---------------- - */ -typedef FormData_pg_database *Form_pg_database; - -/* ---------------- - * compiler constants for pg_database - * ---------------- - */ -#define Natts_pg_database 4 -#define Anum_pg_database_datname 1 -#define Anum_pg_database_datdba 2 -#define Anum_pg_database_encoding 3 -#define Anum_pg_database_datpath 4 - - -#endif /* PG_DATABASE_H */ -/*------------------------------------------------------------------------- - * - * pg_database.h-- - * definition of the system "database" relation (pg_database) - * along with the relation's initial contents. - * - * - * Copyright (c) 1994, Regents of the University of California - * - * $Id: pg_database_mb.h,v 1.1 1998/07/27 03:21:58 scrappy Exp $ + * $Id: pg_database_mb.h,v 1.2 1998/08/06 05:13:09 momjian Exp $ * * NOTES * the genbki.sh script reads this file and generates .bki diff --git a/src/include/commands/creatinh.h b/src/include/commands/creatinh.h index 21208ad958d..f4e5f396682 100644 --- a/src/include/commands/creatinh.h +++ b/src/include/commands/creatinh.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: creatinh.h,v 1.6 1997/11/26 01:12:12 momjian Exp $ + * $Id: creatinh.h,v 1.7 1998/08/06 05:13:10 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -15,7 +15,7 @@ #include "nodes/parsenodes.h" -extern void DefineRelation(CreateStmt *stmt); +extern void DefineRelation(CreateStmt *stmt, char relkind); extern void RemoveRelation(char *name); #endif /* CREATINH_H */ diff --git a/src/tools/backend/flow.fig b/src/tools/backend/flow.fig index f661b844466..35124b1f056 100644 --- a/src/tools/backend/flow.fig +++ b/src/tools/backend/flow.fig @@ -92,12 +92,12 @@ Inches 0 0 2.00 150.00 180.00 0 0 2.00 150.00 180.00 4660 1524 5295 1293 -2 1 0 2 31 7 0 0 -1 0.000 0 0 -1 1 0 2 - 0 0 2.00 150.00 180.00 - 2550 3300 2550 4275 2 1 0 2 8 7 0 0 -1 0.000 0 0 -1 1 0 2 0 0 2.00 150.00 180.00 2550 7275 2550 7875 +2 1 0 2 31 7 0 0 -1 0.000 0 0 -1 1 0 2 + 0 0 2.00 150.00 180.00 + 2550 3300 2550 4275 3 0 0 2 8 7 0 0 -1 0.000 0 1 0 8 0 0 2.00 150.00 150.00 1350 9375 1050 9375 825 9000 825 4425 1050 4050 1500 3975 @@ -106,25 +106,25 @@ Inches 0 0 2.00 150.00 150.00 7650 5775 8250 5475 8250 4575 7725 3975 3525 3975 2850 3975 2700 4275 -4 1 -1 0 0 28 18 0.0000 4 195 1050 1560 11190 Utilities\001 -4 1 -1 0 0 28 18 0.0000 4 240 2325 7965 11190 Storage Managers\001 -4 1 -1 0 0 0 18 0.0000 4 255 840 4725 11175 Catalog\001 -4 1 -1 0 0 28 18 0.0000 4 195 2100 3135 12405 Access Methods\001 -4 1 7 0 0 28 18 0.0000 4 195 1980 2535 7230 Generate Paths\001 -4 1 7 0 0 28 18 0.0000 4 195 1485 6450 6030 Commands\001 -4 1 7 0 0 28 18 0.0000 4 195 1830 2565 8445 Generate Plan\001 -4 1 -1 0 0 28 18 0.0000 4 195 1470 2535 1965 Postmaster\001 -4 1 -1 0 0 28 18 0.0000 4 240 1110 6435 3150 Postgres\001 -4 1 -1 0 0 28 18 0.0000 4 240 1110 2550 3165 Postgres\001 -4 1 7 0 0 28 18 0.0000 4 195 1275 2565 6945 Rewrite &\001 -4 1 7 0 0 28 18 0.0000 4 255 1500 2565 5865 Traffic Cop\001 -4 1 7 0 0 28 18 0.0000 4 195 825 2535 4650 Parser\001 -4 1 7 0 0 28 18 0.0000 4 195 1890 2550 8175 Choose Path &\001 -4 1 7 0 0 28 18 0.0000 4 195 1140 2535 9495 Executor\001 +4 1 -1 0 0 16 18 0.0000 4 210 900 1560 11190 Utilities\001 +4 1 -1 0 0 16 18 0.0000 4 270 2265 7965 11190 Storage Managers\001 +4 1 -1 0 0 16 18 0.0000 4 270 960 4725 11175 Catalog\001 +4 1 -1 0 0 16 18 0.0000 4 210 2070 3135 12405 Access Methods\001 +4 1 7 0 0 16 18 0.0000 4 210 1380 6450 6030 Commands\001 +4 1 7 0 0 16 18 0.0000 4 210 1725 2565 8445 Generate Plan\001 +4 1 -1 0 0 16 18 0.0000 4 270 1110 6435 3150 Postgres\001 +4 1 -1 0 0 16 18 0.0000 4 270 1110 2550 3165 Postgres\001 +4 1 7 0 0 16 18 0.0000 4 210 1200 2565 6945 Rewrite &\001 +4 1 7 0 0 16 18 0.0000 4 270 1410 2565 5865 Traffic Cop\001 +4 1 7 0 0 16 18 0.0000 4 210 780 2535 4650 Parser\001 +4 1 7 0 0 16 18 0.0000 4 210 1110 2535 9495 Executor\001 4 1 8 0 0 28 18 0.0000 4 240 795 4455 5700 utility\001 -4 1 7 0 0 28 18 0.0000 4 240 825 6450 5745 Utility\001 -4 1 -1 0 0 28 18 0.0000 4 195 630 2520 765 Main\001 +4 1 7 0 0 16 18 0.0000 4 270 705 6450 5745 Utility\001 +4 1 -1 0 0 16 18 0.0000 4 210 585 2520 765 Main\001 4 1 8 0 0 28 18 0.0000 4 240 1125 2565 6435 complex\001 -4 1 -1 0 0 0 18 0.0000 4 225 1425 6450 12375 Nodes / Lists\001 -4 1 7 0 0 0 18 0.0000 4 255 645 6450 1350 Libpq\001 -4 1 -1 0 0 0 18 0.0000 4 255 1095 1650 13650 Bootstrap\001 +4 1 -1 0 0 16 18 0.0000 4 210 1605 6450 12375 Nodes / Lists\001 +4 1 7 0 0 16 18 0.0000 4 270 705 6450 1350 Libpq\001 +4 1 7 0 0 16 18 0.0000 4 210 1890 2535 7230 Generate Paths\001 +4 1 7 0 0 16 18 0.0000 4 210 1875 2550 8175 Choose Path &\001 +4 1 -1 0 0 16 18 0.0000 4 270 1230 1650 13650 Bootstrap\001 +4 1 -1 0 0 16 18 0.0000 4 210 1380 2535 1965 Postmaster\001 diff --git a/src/tools/backend/flow.jpg b/src/tools/backend/flow.jpg index 2706cfcddf9df05fdc467837b3d8f6484c051be4..f744394d879699c9597ddc9d697dcb778036c7ee 100644 GIT binary patch literal 71332 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 literal 71617 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

AZ``N3xhDsC8_woZdAzCQD(*9EF^9{?Vz@N!sC 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