From 5cca81d66fed37778c61e6d3ea6f8ebff814a83a Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Tue, 21 Feb 2017 19:40:02 +0000 Subject: [PATCH] refactoring --- Geo/GModelIO_GEO.cpp | 60 + Geo/GModelIO_GEO.h | 9 + Geo/GModelIO_OCC.cpp | 18 + Geo/GModelIO_OCC.h | 9 +- Mesh/meshGEdge.cpp | 2 +- Parser/Gmsh.tab.cpp | 3600 +++++++++++++++++------------------- Parser/Gmsh.y | 244 +-- demos/boolean/periodic.geo | 12 + 8 files changed, 1885 insertions(+), 2069 deletions(-) create mode 100644 demos/boolean/periodic.geo diff --git a/Geo/GModelIO_GEO.cpp b/Geo/GModelIO_GEO.cpp index 7729882d44..53245baf4b 100644 --- a/Geo/GModelIO_GEO.cpp +++ b/Geo/GModelIO_GEO.cpp @@ -397,6 +397,23 @@ void GEO_Internals::setCompoundMesh(int dim, std::vector<int> tags) meshCompounds.insert(std::make_pair(dim, tags)); } +void GEO_Internals::setMeshSize(int dim, int tag, double size) +{ + if(dim != 0){ + Msg::Error("Setting mesh size only available on GEO vertices"); + return; + } + Vertex *v = FindPoint(tag); + if(v) v->lc = size; +} + +void GEO_Internals::setDegenerated(int dim, int tag) +{ + if(dim != 1) return; + Curve *c = FindCurve(tag); + if(c) c->degenerated = true; +} + void GEO_Internals::synchronize(GModel *model) { if(Tree_Nbr(Points)) { @@ -720,6 +737,49 @@ void GEO_Internals::synchronize(GModel *model) Msg::Debug("%d Regions", model->getNumRegions()); } +bool GEO_Internals::getVertex(int tag, double &x, double &y, double &z) +{ + Vertex *v = FindPoint(tag); + if(v){ + x = v->Pos.X; + y = v->Pos.Y; + z = v->Pos.Z; + return true; + } + return false; +} + +void GEO_Internals::removeAllDuplicates() +{ + ReplaceAllDuplicates(); +} + +void GEO_Internals::mergeVertices(std::vector<int> tags) +{ + if(tags.size() < 2) return; + Vertex *target = FindPoint(tags[0]); + if(!target){ + Msg::Error("Could not find GEO vertex with tag %d", tags[0]); + return; + } + + double x = target->Pos.X, y = target->Pos.Y, z = target->Pos.Z; + for(unsigned int i = 1; i < tags.size(); i++){ + Vertex *source = FindPoint(tags[i]); + if(!source){ + Msg::Error("Could not find GEO vertex with tag %d", tags[i]); + return; + } + source->Typ = target->Typ; + source->Pos.X = x; + source->Pos.Y = y; + source->Pos.Z = z; + source->boundaryLayerIndex = target->boundaryLayerIndex; + } + ExtrudeParams::normalsCoherence.push_back(SPoint3(x, y, z)); + ReplaceAllDuplicates(); +} + gmshSurface *GEO_Internals::newGeometrySphere(int num, int centerTag, int pointTag) { Vertex *v1 = FindPoint(centerTag); diff --git a/Geo/GModelIO_GEO.h b/Geo/GModelIO_GEO.h index 9eba2faeeb..b5c95411c0 100644 --- a/Geo/GModelIO_GEO.h +++ b/Geo/GModelIO_GEO.h @@ -48,10 +48,19 @@ class GEO_Internals{ // set meshing constraints void setCompoundMesh(int dim, std::vector<int> tags); + void setMeshSize(int dim, int tag, double size); + void setDegenerated(int dim, int tag); // synchronize internal CAD data with the given GModel void synchronize(GModel *model); + // queries + bool getVertex(int tag, double &x, double &y, double &z); + + // coherence + void removeAllDuplicates(); + void mergeVertices(std::vector<int> tags); + // create coordinate systems gmshSurface *newGeometrySphere(int num, int centerTag, int pointTag); gmshSurface *newGeometryPolarSphere(int num, int centerTag, int pointTag); diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp index 2f633d6a15..f2dff36640 100644 --- a/Geo/GModelIO_OCC.cpp +++ b/Geo/GModelIO_OCC.cpp @@ -1759,6 +1759,12 @@ void OCC_Internals::exportShapes(const std::string &fileName, } } +void OCC_Internals::setMeshSize(int dim, int tag, double size) +{ + if(dim < 0 || dim > 3) return; + meshAttributes[dim][tag].size = size; +} + void OCC_Internals::synchronize(GModel *model) { int vTagMax = std::max(model->getMaxElementaryNumber(0), getMaxTag(0)); @@ -1854,6 +1860,18 @@ void OCC_Internals::synchronize(GModel *model) } } +bool OCC_Internals::getVertex(int tag, double &x, double &y, double &z) +{ + if(_tagVertex.IsBound(tag)){ + gp_Pnt pnt = BRep_Tool::Pnt(TopoDS::Vertex(_tagVertex.Find(tag))); + x = pnt.X(); + y = pnt.Y(); + z = pnt.Z(); + return true; + } + return false; +} + void OCC_Internals::_addShapeToMaps(TopoDS_Shape shape) { // Solids diff --git a/Geo/GModelIO_OCC.h b/Geo/GModelIO_OCC.h index 6885a153f2..c848e419ee 100644 --- a/Geo/GModelIO_OCC.h +++ b/Geo/GModelIO_OCC.h @@ -205,17 +205,20 @@ class OCC_Internals { // export all bound shapes to file void exportShapes(const std::string &fileName, const std::string &format=""); + // set meshing constraints + void setMeshSize(int dim, int tag, double size); + // synchronize internal CAD data with the given GModel void synchronize(GModel *model); - // get the GEntity corresponding to an OCC shape + // queries + bool getVertex(int tag, double &x, double &y, double &z); + GVertex *getOCCVertexByNativePtr(GModel *model, TopoDS_Vertex toFind); GEdge *getOCCEdgeByNativePtr(GModel *model, TopoDS_Edge toFind); GFace *getOCCFaceByNativePtr(GModel *model, TopoDS_Face toFind); GRegion *getOCCRegionByNativePtr(GModel *model, TopoDS_Solid toFind); - - // *** FIXME what follows will be removed *** private: TopoDS_Shape _shape; diff --git a/Mesh/meshGEdge.cpp b/Mesh/meshGEdge.cpp index 0f35039338..8599b8f1d5 100644 --- a/Mesh/meshGEdge.cpp +++ b/Mesh/meshGEdge.cpp @@ -569,7 +569,7 @@ void meshGEdge::operator() (GEdge *ge) (ge->position(0.5) - ge->getBeginVertex()->xyz()).norm() < CTX::instance()->geom.tolerance) length = 0.; // special case t avoid infinite loop in integration else - length = Integration(ge, t_begin, t_end, F_One, Points, 1.e-8 * CTX::instance()->lc); + length = Integration(ge, t_begin, t_end, F_One, Points, 1.e-12 * CTX::instance()->lc); ge->setLength(length); Points.clear(); diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 827ce4cf87..3472af3dde 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -890,7 +890,7 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 15024 +#define YYLAST 14878 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 238 @@ -983,28 +983,28 @@ static const yytype_uint16 yyprhs[] = 772, 776, 780, 786, 792, 793, 796, 800, 806, 810, 811, 814, 818, 822, 826, 832, 834, 836, 840, 842, 844, 848, 850, 852, 856, 858, 860, 864, 865, 871, - 872, 875, 883, 891, 896, 904, 913, 922, 930, 938, - 950, 959, 967, 976, 985, 994, 1004, 1008, 1013, 1024, - 1032, 1040, 1048, 1056, 1064, 1072, 1080, 1088, 1096, 1104, - 1113, 1126, 1135, 1143, 1152, 1160, 1169, 1178, 1187, 1196, - 1205, 1214, 1220, 1232, 1238, 1248, 1258, 1263, 1273, 1283, - 1285, 1287, 1288, 1291, 1298, 1305, 1312, 1319, 1328, 1339, - 1354, 1371, 1384, 1399, 1414, 1429, 1444, 1453, 1462, 1469, - 1474, 1481, 1488, 1492, 1497, 1503, 1510, 1516, 1520, 1524, - 1529, 1535, 1540, 1546, 1550, 1556, 1564, 1572, 1576, 1584, - 1588, 1591, 1594, 1597, 1600, 1603, 1619, 1622, 1625, 1628, - 1631, 1634, 1651, 1663, 1670, 1679, 1688, 1699, 1701, 1704, - 1707, 1709, 1713, 1717, 1722, 1727, 1729, 1731, 1737, 1749, - 1763, 1764, 1772, 1773, 1787, 1788, 1804, 1805, 1812, 1822, - 1825, 1829, 1840, 1849, 1858, 1867, 1880, 1893, 1906, 1921, - 1936, 1951, 1952, 1965, 1966, 1979, 1980, 1993, 1994, 2011, - 2012, 2029, 2030, 2047, 2048, 2067, 2068, 2087, 2088, 2107, - 2109, 2112, 2118, 2126, 2136, 2139, 2142, 2146, 2149, 2153, - 2156, 2160, 2163, 2167, 2170, 2174, 2184, 2191, 2193, 2195, - 2197, 2199, 2201, 2202, 2205, 2209, 2219, 2224, 2239, 2240, - 2244, 2245, 2247, 2248, 2251, 2252, 2255, 2256, 2259, 2266, - 2274, 2281, 2290, 2296, 2300, 2309, 2315, 2320, 2327, 2339, - 2351, 2370, 2389, 2402, 2415, 2428, 2439, 2450, 2461, 2472, + 872, 875, 883, 891, 899, 908, 917, 925, 933, 945, + 954, 962, 971, 980, 989, 999, 1003, 1008, 1019, 1027, + 1035, 1043, 1051, 1059, 1067, 1075, 1083, 1091, 1099, 1108, + 1121, 1130, 1138, 1147, 1155, 1164, 1173, 1182, 1191, 1200, + 1209, 1215, 1227, 1233, 1243, 1253, 1258, 1268, 1278, 1280, + 1282, 1283, 1286, 1293, 1300, 1307, 1314, 1323, 1334, 1349, + 1366, 1379, 1394, 1409, 1424, 1439, 1448, 1457, 1464, 1469, + 1476, 1483, 1487, 1492, 1498, 1505, 1511, 1515, 1519, 1524, + 1530, 1535, 1541, 1545, 1551, 1559, 1567, 1571, 1579, 1583, + 1586, 1589, 1592, 1595, 1598, 1614, 1617, 1620, 1623, 1626, + 1629, 1646, 1658, 1665, 1674, 1683, 1694, 1696, 1699, 1702, + 1704, 1708, 1712, 1717, 1722, 1724, 1726, 1732, 1744, 1758, + 1759, 1767, 1768, 1782, 1783, 1799, 1800, 1807, 1817, 1820, + 1824, 1835, 1844, 1853, 1862, 1875, 1888, 1901, 1916, 1931, + 1946, 1947, 1960, 1961, 1974, 1975, 1988, 1989, 2006, 2007, + 2024, 2025, 2042, 2043, 2062, 2063, 2082, 2083, 2102, 2104, + 2107, 2113, 2121, 2131, 2134, 2137, 2141, 2144, 2148, 2151, + 2155, 2158, 2162, 2165, 2169, 2179, 2186, 2188, 2190, 2192, + 2194, 2196, 2197, 2200, 2204, 2214, 2219, 2234, 2235, 2239, + 2240, 2242, 2243, 2246, 2247, 2250, 2251, 2254, 2261, 2269, + 2276, 2285, 2291, 2295, 2304, 2310, 2315, 2322, 2334, 2346, + 2365, 2384, 2397, 2410, 2423, 2434, 2445, 2456, 2467, 2478, 2483, 2488, 2493, 2498, 2503, 2508, 2513, 2518, 2523, 2526, 2530, 2537, 2539, 2541, 2543, 2546, 2552, 2560, 2571, 2573, 2577, 2580, 2583, 2586, 2590, 2594, 2598, 2602, 2606, 2610, @@ -1120,168 +1120,168 @@ static const yytype_int16 yyrhs[] = 338, 234, 324, -1, -1, 172, 88, 235, 324, 236, -1, -1, 115, 327, -1, 84, 228, 324, 229, 7, 327, 6, -1, 87, 228, 324, 229, 7, 330, 6, - -1, 124, 87, 330, 6, -1, 91, 228, 324, 229, - 7, 330, 6, -1, 85, 228, 324, 229, 7, 330, - 282, 6, -1, 86, 228, 324, 229, 7, 330, 282, - 6, -1, 164, 228, 324, 229, 7, 330, 6, -1, - 165, 228, 324, 229, 7, 330, 6, -1, 166, 228, - 324, 229, 7, 330, 168, 330, 167, 324, 6, -1, - 120, 87, 228, 324, 229, 7, 330, 6, -1, 102, - 228, 324, 229, 7, 330, 6, -1, 87, 4, 228, - 324, 229, 7, 330, 6, -1, 115, 90, 228, 324, - 229, 7, 330, 6, -1, 90, 228, 324, 229, 7, - 330, 281, 6, -1, 116, 90, 228, 324, 229, 7, - 330, 281, 6, -1, 12, 13, 6, -1, 13, 90, - 324, 6, -1, 105, 90, 228, 324, 229, 7, 5, - 5, 5, 6, -1, 88, 228, 324, 229, 7, 330, - 6, -1, 89, 228, 324, 229, 7, 330, 6, -1, - 93, 228, 324, 229, 7, 330, 6, -1, 96, 228, - 324, 229, 7, 330, 6, -1, 100, 228, 324, 229, - 7, 330, 6, -1, 101, 228, 324, 229, 7, 330, - 6, -1, 94, 228, 324, 229, 7, 330, 6, -1, - 95, 228, 324, 229, 7, 330, 6, -1, 112, 228, - 324, 229, 7, 330, 6, -1, 138, 228, 324, 229, - 7, 330, 6, -1, 120, 90, 228, 324, 229, 7, - 330, 6, -1, 120, 90, 228, 324, 229, 7, 330, - 4, 235, 329, 236, 6, -1, 90, 4, 228, 324, - 229, 7, 330, 6, -1, 92, 228, 324, 229, 7, - 330, 6, -1, 118, 92, 228, 324, 229, 7, 330, - 6, -1, 111, 228, 324, 229, 7, 330, 6, -1, - 116, 111, 228, 324, 229, 7, 330, 6, -1, 120, - 92, 228, 324, 229, 7, 330, 6, -1, 119, 84, - 228, 277, 229, 260, 330, 6, -1, 119, 87, 228, - 278, 229, 260, 330, 6, -1, 119, 90, 228, 279, - 229, 260, 330, 6, -1, 119, 92, 228, 280, 229, - 260, 330, 6, -1, 127, 327, 235, 285, 236, -1, - 126, 235, 327, 234, 327, 234, 324, 236, 235, 285, - 236, -1, 128, 327, 235, 285, 236, -1, 129, 235, - 327, 234, 324, 236, 235, 285, 236, -1, 129, 235, - 327, 234, 327, 236, 235, 285, 236, -1, 4, 235, - 285, 236, -1, 144, 87, 235, 333, 236, 90, 235, - 324, 236, -1, 141, 87, 228, 324, 229, 235, 333, - 236, 6, -1, 286, -1, 284, -1, -1, 286, 283, - -1, 286, 84, 235, 333, 236, 6, -1, 286, 87, - 235, 333, 236, 6, -1, 286, 90, 235, 333, 236, - 6, -1, 286, 92, 235, 333, 236, 6, -1, 131, - 115, 228, 324, 229, 7, 330, 6, -1, 131, 84, - 228, 324, 229, 7, 235, 329, 236, 6, -1, 131, - 115, 228, 324, 229, 7, 235, 327, 234, 327, 234, + -1, 91, 228, 324, 229, 7, 330, 6, -1, 85, + 228, 324, 229, 7, 330, 282, 6, -1, 86, 228, + 324, 229, 7, 330, 282, 6, -1, 164, 228, 324, + 229, 7, 330, 6, -1, 165, 228, 324, 229, 7, + 330, 6, -1, 166, 228, 324, 229, 7, 330, 168, + 330, 167, 324, 6, -1, 120, 87, 228, 324, 229, + 7, 330, 6, -1, 102, 228, 324, 229, 7, 330, + 6, -1, 87, 4, 228, 324, 229, 7, 330, 6, + -1, 115, 90, 228, 324, 229, 7, 330, 6, -1, + 90, 228, 324, 229, 7, 330, 281, 6, -1, 116, + 90, 228, 324, 229, 7, 330, 281, 6, -1, 12, + 13, 6, -1, 13, 90, 324, 6, -1, 105, 90, + 228, 324, 229, 7, 5, 5, 5, 6, -1, 88, + 228, 324, 229, 7, 330, 6, -1, 89, 228, 324, + 229, 7, 330, 6, -1, 93, 228, 324, 229, 7, + 330, 6, -1, 96, 228, 324, 229, 7, 330, 6, + -1, 100, 228, 324, 229, 7, 330, 6, -1, 101, + 228, 324, 229, 7, 330, 6, -1, 94, 228, 324, + 229, 7, 330, 6, -1, 95, 228, 324, 229, 7, + 330, 6, -1, 112, 228, 324, 229, 7, 330, 6, + -1, 138, 228, 324, 229, 7, 330, 6, -1, 120, + 90, 228, 324, 229, 7, 330, 6, -1, 120, 90, + 228, 324, 229, 7, 330, 4, 235, 329, 236, 6, + -1, 90, 4, 228, 324, 229, 7, 330, 6, -1, + 92, 228, 324, 229, 7, 330, 6, -1, 118, 92, + 228, 324, 229, 7, 330, 6, -1, 111, 228, 324, + 229, 7, 330, 6, -1, 116, 111, 228, 324, 229, + 7, 330, 6, -1, 120, 92, 228, 324, 229, 7, + 330, 6, -1, 119, 84, 228, 277, 229, 260, 330, + 6, -1, 119, 87, 228, 278, 229, 260, 330, 6, + -1, 119, 90, 228, 279, 229, 260, 330, 6, -1, + 119, 92, 228, 280, 229, 260, 330, 6, -1, 127, + 327, 235, 285, 236, -1, 126, 235, 327, 234, 327, + 234, 324, 236, 235, 285, 236, -1, 128, 327, 235, + 285, 236, -1, 129, 235, 327, 234, 324, 236, 235, + 285, 236, -1, 129, 235, 327, 234, 327, 236, 235, + 285, 236, -1, 4, 235, 285, 236, -1, 144, 87, + 235, 333, 236, 90, 235, 324, 236, -1, 141, 87, + 228, 324, 229, 235, 333, 236, 6, -1, 286, -1, + 284, -1, -1, 286, 283, -1, 286, 84, 235, 333, + 236, 6, -1, 286, 87, 235, 333, 236, 6, -1, + 286, 90, 235, 333, 236, 6, -1, 286, 92, 235, 333, 236, 6, -1, 131, 115, 228, 324, 229, 7, - 235, 327, 234, 327, 234, 327, 234, 333, 236, 6, - -1, 131, 88, 228, 324, 229, 7, 235, 327, 234, - 333, 236, 6, -1, 131, 94, 228, 324, 229, 7, + 330, 6, -1, 131, 84, 228, 324, 229, 7, 235, + 329, 236, 6, -1, 131, 115, 228, 324, 229, 7, + 235, 327, 234, 327, 234, 333, 236, 6, -1, 131, + 115, 228, 324, 229, 7, 235, 327, 234, 327, 234, + 327, 234, 333, 236, 6, -1, 131, 88, 228, 324, + 229, 7, 235, 327, 234, 333, 236, 6, -1, 131, + 94, 228, 324, 229, 7, 235, 327, 234, 327, 234, + 333, 236, 6, -1, 131, 95, 228, 324, 229, 7, 235, 327, 234, 327, 234, 333, 236, 6, -1, 131, - 95, 228, 324, 229, 7, 235, 327, 234, 327, 234, - 333, 236, 6, -1, 131, 97, 228, 324, 229, 7, + 97, 228, 324, 229, 7, 235, 327, 234, 327, 234, + 333, 236, 6, -1, 131, 98, 228, 324, 229, 7, 235, 327, 234, 327, 234, 333, 236, 6, -1, 131, - 98, 228, 324, 229, 7, 235, 327, 234, 327, 234, - 333, 236, 6, -1, 131, 4, 228, 324, 229, 7, - 330, 6, -1, 131, 4, 228, 324, 229, 7, 5, - 6, -1, 131, 4, 235, 324, 236, 6, -1, 142, - 235, 286, 236, -1, 142, 180, 230, 324, 231, 6, - -1, 142, 4, 230, 324, 231, 6, -1, 142, 342, - 6, -1, 142, 4, 4, 6, -1, 169, 334, 235, - 286, 236, -1, 125, 169, 334, 235, 286, 236, -1, - 202, 324, 235, 286, 236, -1, 185, 5, 6, -1, - 186, 5, 6, -1, 185, 235, 286, 236, -1, 125, - 185, 235, 286, 236, -1, 186, 235, 286, 236, -1, - 125, 186, 235, 286, 236, -1, 4, 338, 6, -1, - 71, 228, 340, 229, 6, -1, 4, 4, 230, 324, - 231, 337, 6, -1, 4, 4, 4, 230, 324, 231, - 6, -1, 4, 324, 6, -1, 123, 228, 4, 229, - 232, 4, 6, -1, 163, 4, 6, -1, 178, 6, - -1, 179, 6, -1, 68, 6, -1, 69, 6, -1, - 62, 6, -1, 62, 235, 324, 234, 324, 234, 324, - 234, 324, 234, 324, 234, 324, 236, 6, -1, 63, - 6, -1, 64, 6, -1, 75, 6, -1, 76, 6, - -1, 107, 6, -1, 108, 235, 333, 236, 235, 333, - 236, 235, 329, 236, 235, 324, 234, 324, 236, 6, - -1, 183, 228, 235, 333, 236, 234, 338, 234, 338, - 229, 6, -1, 171, 228, 324, 8, 324, 229, -1, - 171, 228, 324, 8, 324, 8, 324, 229, -1, 171, - 4, 172, 235, 324, 8, 324, 236, -1, 171, 4, - 172, 235, 324, 8, 324, 8, 324, 236, -1, 173, - -1, 184, 4, -1, 184, 338, -1, 181, -1, 182, - 342, 6, -1, 182, 338, 6, -1, 174, 228, 324, - 229, -1, 175, 228, 324, 229, -1, 176, -1, 177, - -1, 130, 327, 235, 286, 236, -1, 130, 235, 327, - 234, 327, 234, 324, 236, 235, 286, 236, -1, 130, - 235, 327, 234, 327, 234, 327, 234, 324, 236, 235, - 286, 236, -1, -1, 130, 327, 235, 286, 296, 309, - 236, -1, -1, 130, 235, 327, 234, 327, 234, 324, - 236, 235, 286, 297, 309, 236, -1, -1, 130, 235, - 327, 234, 327, 234, 327, 234, 324, 236, 235, 286, - 298, 309, 236, -1, -1, 130, 235, 286, 299, 309, - 236, -1, 130, 235, 286, 236, 122, 102, 235, 324, - 236, -1, 111, 330, -1, 116, 111, 330, -1, 113, - 235, 333, 236, 235, 333, 236, 235, 324, 236, -1, - 130, 84, 235, 324, 234, 327, 236, 6, -1, 130, - 87, 235, 324, 234, 327, 236, 6, -1, 130, 90, - 235, 324, 234, 327, 236, 6, -1, 130, 84, 235, - 324, 234, 327, 234, 327, 234, 324, 236, 6, -1, - 130, 87, 235, 324, 234, 327, 234, 327, 234, 324, - 236, 6, -1, 130, 90, 235, 324, 234, 327, 234, - 327, 234, 324, 236, 6, -1, 130, 84, 235, 324, - 234, 327, 234, 327, 234, 327, 234, 324, 236, 6, - -1, 130, 87, 235, 324, 234, 327, 234, 327, 234, - 327, 234, 324, 236, 6, -1, 130, 90, 235, 324, + 4, 228, 324, 229, 7, 330, 6, -1, 131, 4, + 228, 324, 229, 7, 5, 6, -1, 131, 4, 235, + 324, 236, 6, -1, 142, 235, 286, 236, -1, 142, + 180, 230, 324, 231, 6, -1, 142, 4, 230, 324, + 231, 6, -1, 142, 342, 6, -1, 142, 4, 4, + 6, -1, 169, 334, 235, 286, 236, -1, 125, 169, + 334, 235, 286, 236, -1, 202, 324, 235, 286, 236, + -1, 185, 5, 6, -1, 186, 5, 6, -1, 185, + 235, 286, 236, -1, 125, 185, 235, 286, 236, -1, + 186, 235, 286, 236, -1, 125, 186, 235, 286, 236, + -1, 4, 338, 6, -1, 71, 228, 340, 229, 6, + -1, 4, 4, 230, 324, 231, 337, 6, -1, 4, + 4, 4, 230, 324, 231, 6, -1, 4, 324, 6, + -1, 123, 228, 4, 229, 232, 4, 6, -1, 163, + 4, 6, -1, 178, 6, -1, 179, 6, -1, 68, + 6, -1, 69, 6, -1, 62, 6, -1, 62, 235, + 324, 234, 324, 234, 324, 234, 324, 234, 324, 234, + 324, 236, 6, -1, 63, 6, -1, 64, 6, -1, + 75, 6, -1, 76, 6, -1, 107, 6, -1, 108, + 235, 333, 236, 235, 333, 236, 235, 329, 236, 235, + 324, 234, 324, 236, 6, -1, 183, 228, 235, 333, + 236, 234, 338, 234, 338, 229, 6, -1, 171, 228, + 324, 8, 324, 229, -1, 171, 228, 324, 8, 324, + 8, 324, 229, -1, 171, 4, 172, 235, 324, 8, + 324, 236, -1, 171, 4, 172, 235, 324, 8, 324, + 8, 324, 236, -1, 173, -1, 184, 4, -1, 184, + 338, -1, 181, -1, 182, 342, 6, -1, 182, 338, + 6, -1, 174, 228, 324, 229, -1, 175, 228, 324, + 229, -1, 176, -1, 177, -1, 130, 327, 235, 286, + 236, -1, 130, 235, 327, 234, 327, 234, 324, 236, + 235, 286, 236, -1, 130, 235, 327, 234, 327, 234, + 327, 234, 324, 236, 235, 286, 236, -1, -1, 130, + 327, 235, 286, 296, 309, 236, -1, -1, 130, 235, + 327, 234, 327, 234, 324, 236, 235, 286, 297, 309, + 236, -1, -1, 130, 235, 327, 234, 327, 234, 327, + 234, 324, 236, 235, 286, 298, 309, 236, -1, -1, + 130, 235, 286, 299, 309, 236, -1, 130, 235, 286, + 236, 122, 102, 235, 324, 236, -1, 111, 330, -1, + 116, 111, 330, -1, 113, 235, 333, 236, 235, 333, + 236, 235, 324, 236, -1, 130, 84, 235, 324, 234, + 327, 236, 6, -1, 130, 87, 235, 324, 234, 327, + 236, 6, -1, 130, 90, 235, 324, 234, 327, 236, + 6, -1, 130, 84, 235, 324, 234, 327, 234, 327, + 234, 324, 236, 6, -1, 130, 87, 235, 324, 234, + 327, 234, 327, 234, 324, 236, 6, -1, 130, 90, + 235, 324, 234, 327, 234, 327, 234, 324, 236, 6, + -1, 130, 84, 235, 324, 234, 327, 234, 327, 234, + 327, 234, 324, 236, 6, -1, 130, 87, 235, 324, 234, 327, 234, 327, 234, 327, 234, 324, 236, 6, - -1, -1, 130, 84, 235, 324, 234, 327, 236, 300, - 235, 309, 236, 6, -1, -1, 130, 87, 235, 324, - 234, 327, 236, 301, 235, 309, 236, 6, -1, -1, - 130, 90, 235, 324, 234, 327, 236, 302, 235, 309, - 236, 6, -1, -1, 130, 84, 235, 324, 234, 327, - 234, 327, 234, 324, 236, 303, 235, 309, 236, 6, - -1, -1, 130, 87, 235, 324, 234, 327, 234, 327, - 234, 324, 236, 304, 235, 309, 236, 6, -1, -1, - 130, 90, 235, 324, 234, 327, 234, 327, 234, 324, - 236, 305, 235, 309, 236, 6, -1, -1, 130, 84, - 235, 324, 234, 327, 234, 327, 234, 327, 234, 324, - 236, 306, 235, 309, 236, 6, -1, -1, 130, 87, - 235, 324, 234, 327, 234, 327, 234, 327, 234, 324, - 236, 307, 235, 309, 236, 6, -1, -1, 130, 90, - 235, 324, 234, 327, 234, 327, 234, 327, 234, 324, - 236, 308, 235, 309, 236, 6, -1, 310, -1, 309, - 310, -1, 147, 235, 324, 236, 6, -1, 147, 235, - 330, 234, 330, 236, 6, -1, 147, 235, 330, 234, - 330, 234, 330, 236, 6, -1, 148, 6, -1, 139, - 6, -1, 139, 324, 6, -1, 155, 6, -1, 155, - 157, 6, -1, 156, 6, -1, 156, 157, 6, -1, - 153, 6, -1, 153, 157, 6, -1, 154, 6, -1, - 154, 157, 6, -1, 149, 228, 324, 229, 7, 330, - 122, 324, 6, -1, 122, 4, 230, 324, 231, 6, - -1, 133, -1, 134, -1, 135, -1, 136, -1, 137, - -1, -1, 142, 6, -1, 142, 324, 6, -1, 311, - 235, 286, 312, 236, 235, 286, 312, 236, -1, 99, - 228, 337, 229, -1, 311, 228, 324, 229, 7, 235, - 286, 312, 236, 235, 286, 312, 236, 6, -1, -1, - 122, 4, 324, -1, -1, 4, -1, -1, 7, 330, - -1, -1, 7, 324, -1, -1, 132, 330, -1, 103, - 104, 330, 7, 324, 6, -1, 117, 87, 331, 7, - 324, 315, 6, -1, 117, 90, 331, 317, 316, 6, - -1, 106, 90, 235, 324, 236, 7, 330, 6, -1, - 117, 92, 331, 317, 6, -1, 158, 331, 6, -1, - 145, 90, 235, 333, 236, 7, 324, 6, -1, 139, - 90, 331, 318, 6, -1, 139, 92, 331, 6, -1, - 140, 90, 330, 7, 324, 6, -1, 121, 87, 235, - 333, 236, 7, 235, 333, 236, 319, 6, -1, 121, - 90, 235, 333, 236, 7, 235, 333, 236, 319, 6, - -1, 121, 87, 235, 333, 236, 7, 235, 333, 236, - 126, 235, 327, 234, 327, 234, 324, 236, 6, -1, - 121, 90, 235, 333, 236, 7, 235, 333, 236, 126, - 235, 327, 234, 327, 234, 324, 236, 6, -1, 121, - 87, 235, 333, 236, 7, 235, 333, 236, 127, 327, - 6, -1, 121, 90, 235, 333, 236, 7, 235, 333, - 236, 127, 327, 6, -1, 121, 90, 324, 235, 333, - 236, 7, 324, 235, 333, 236, 6, -1, 84, 235, - 333, 236, 172, 90, 235, 324, 236, 6, -1, 87, - 235, 333, 236, 172, 90, 235, 324, 236, 6, -1, - 84, 235, 333, 236, 172, 92, 235, 324, 236, 6, - -1, 87, 235, 333, 236, 172, 92, 235, 324, 236, - 6, -1, 90, 235, 333, 236, 172, 92, 235, 324, - 236, 6, -1, 146, 90, 331, 6, -1, 146, 87, - 331, 6, -1, 109, 84, 331, 6, -1, 109, 87, - 331, 6, -1, 109, 90, 331, 6, -1, 120, 87, + -1, 130, 90, 235, 324, 234, 327, 234, 327, 234, + 327, 234, 324, 236, 6, -1, -1, 130, 84, 235, + 324, 234, 327, 236, 300, 235, 309, 236, 6, -1, + -1, 130, 87, 235, 324, 234, 327, 236, 301, 235, + 309, 236, 6, -1, -1, 130, 90, 235, 324, 234, + 327, 236, 302, 235, 309, 236, 6, -1, -1, 130, + 84, 235, 324, 234, 327, 234, 327, 234, 324, 236, + 303, 235, 309, 236, 6, -1, -1, 130, 87, 235, + 324, 234, 327, 234, 327, 234, 324, 236, 304, 235, + 309, 236, 6, -1, -1, 130, 90, 235, 324, 234, + 327, 234, 327, 234, 324, 236, 305, 235, 309, 236, + 6, -1, -1, 130, 84, 235, 324, 234, 327, 234, + 327, 234, 327, 234, 324, 236, 306, 235, 309, 236, + 6, -1, -1, 130, 87, 235, 324, 234, 327, 234, + 327, 234, 327, 234, 324, 236, 307, 235, 309, 236, + 6, -1, -1, 130, 90, 235, 324, 234, 327, 234, + 327, 234, 327, 234, 324, 236, 308, 235, 309, 236, + 6, -1, 310, -1, 309, 310, -1, 147, 235, 324, + 236, 6, -1, 147, 235, 330, 234, 330, 236, 6, + -1, 147, 235, 330, 234, 330, 234, 330, 236, 6, + -1, 148, 6, -1, 139, 6, -1, 139, 324, 6, + -1, 155, 6, -1, 155, 157, 6, -1, 156, 6, + -1, 156, 157, 6, -1, 153, 6, -1, 153, 157, + 6, -1, 154, 6, -1, 154, 157, 6, -1, 149, + 228, 324, 229, 7, 330, 122, 324, 6, -1, 122, + 4, 230, 324, 231, 6, -1, 133, -1, 134, -1, + 135, -1, 136, -1, 137, -1, -1, 142, 6, -1, + 142, 324, 6, -1, 311, 235, 286, 312, 236, 235, + 286, 312, 236, -1, 99, 228, 337, 229, -1, 311, + 228, 324, 229, 7, 235, 286, 312, 236, 235, 286, + 312, 236, 6, -1, -1, 122, 4, 324, -1, -1, + 4, -1, -1, 7, 330, -1, -1, 7, 324, -1, + -1, 132, 330, -1, 103, 104, 330, 7, 324, 6, + -1, 117, 87, 331, 7, 324, 315, 6, -1, 117, + 90, 331, 317, 316, 6, -1, 106, 90, 235, 324, + 236, 7, 330, 6, -1, 117, 92, 331, 317, 6, + -1, 158, 331, 6, -1, 145, 90, 235, 333, 236, + 7, 324, 6, -1, 139, 90, 331, 318, 6, -1, + 139, 92, 331, 6, -1, 140, 90, 330, 7, 324, + 6, -1, 121, 87, 235, 333, 236, 7, 235, 333, + 236, 319, 6, -1, 121, 90, 235, 333, 236, 7, + 235, 333, 236, 319, 6, -1, 121, 87, 235, 333, + 236, 7, 235, 333, 236, 126, 235, 327, 234, 327, + 234, 324, 236, 6, -1, 121, 90, 235, 333, 236, + 7, 235, 333, 236, 126, 235, 327, 234, 327, 234, + 324, 236, 6, -1, 121, 87, 235, 333, 236, 7, + 235, 333, 236, 127, 327, 6, -1, 121, 90, 235, + 333, 236, 7, 235, 333, 236, 127, 327, 6, -1, + 121, 90, 324, 235, 333, 236, 7, 324, 235, 333, + 236, 6, -1, 84, 235, 333, 236, 172, 90, 235, + 324, 236, 6, -1, 87, 235, 333, 236, 172, 90, + 235, 324, 236, 6, -1, 84, 235, 333, 236, 172, + 92, 235, 324, 236, 6, -1, 87, 235, 333, 236, + 172, 92, 235, 324, 236, 6, -1, 90, 235, 333, + 236, 172, 92, 235, 324, 236, 6, -1, 146, 90, + 331, 6, -1, 146, 87, 331, 6, -1, 109, 84, + 331, 6, -1, 109, 87, 331, 6, -1, 109, 90, + 331, 6, -1, 124, 87, 330, 6, -1, 120, 87, 330, 6, -1, 120, 90, 330, 6, -1, 120, 92, 330, 6, -1, 143, 6, -1, 143, 4, 6, -1, 143, 84, 235, 333, 236, 6, -1, 193, -1, 194, @@ -1406,49 +1406,49 @@ static const yytype_uint16 yyrline[] = 1492, 1500, 1506, 1511, 1537, 1538, 1542, 1553, 1568, 1578, 1579, 1584, 1592, 1601, 1609, 1627, 1631, 1637, 1645, 1649, 1655, 1663, 1667, 1673, 1681, 1685, 1691, 1700, 1703, 1710, - 1713, 1720, 1741, 1755, 1776, 1790, 1824, 1861, 1875, 1889, - 1909, 1918, 1932, 1947, 1961, 1980, 1990, 1996, 2002, 2009, - 2036, 2051, 2071, 2092, 2113, 2134, 2156, 2178, 2199, 2222, - 2231, 2252, 2267, 2281, 2296, 2311, 2326, 2335, 2378, 2421, - 2464, 2512, 2529, 2547, 2557, 2567, 2577, 2640, 2651, 2667, - 2668, 2673, 2676, 2680, 2709, 2738, 2767, 2801, 2823, 2849, - 2871, 2894, 2915, 2971, 2995, 3020, 3046, 3159, 3178, 3221, - 3242, 3248, 3263, 3291, 3308, 3317, 3331, 3345, 3351, 3357, - 3366, 3375, 3384, 3398, 3460, 3478, 3495, 3510, 3539, 3551, - 3575, 3579, 3584, 3592, 3597, 3603, 3608, 3614, 3622, 3626, - 3630, 3635, 3695, 3711, 3728, 3745, 3767, 3789, 3824, 3832, - 3840, 3846, 3853, 3860, 3880, 3906, 3918, 3930, 3960, 3991, - 4000, 3999, 4014, 4013, 4028, 4027, 4042, 4041, 4054, 4081, - 4100, 4119, 4145, 4152, 4159, 4166, 4173, 4180, 4187, 4194, - 4201, 4209, 4208, 4222, 4221, 4235, 4234, 4248, 4247, 4261, - 4260, 4274, 4273, 4287, 4286, 4300, 4299, 4313, 4312, 4329, - 4332, 4338, 4350, 4370, 4394, 4398, 4402, 4406, 4410, 4414, - 4420, 4426, 4430, 4434, 4438, 4442, 4461, 4474, 4475, 4476, - 4477, 4478, 4482, 4483, 4484, 4487, 4521, 4547, 4571, 4574, - 4590, 4593, 4610, 4613, 4619, 4622, 4629, 4632, 4639, 4656, - 4712, 4782, 4787, 4854, 4890, 4898, 4941, 4980, 5000, 5032, - 5059, 5085, 5111, 5137, 5163, 5185, 5213, 5241, 5269, 5297, - 5325, 5364, 5403, 5424, 5445, 5466, 5472, 5478, 5490, 5494, - 5504, 5539, 5540, 5541, 5545, 5551, 5563, 5581, 5609, 5610, - 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5624, 5625, 5626, - 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, - 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, - 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, - 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, - 5675, 5680, 5679, 5687, 5692, 5697, 5714, 5732, 5750, 5768, - 5786, 5791, 5797, 5812, 5831, 5851, 5871, 5891, 5914, 5919, - 5924, 5934, 5944, 5949, 5960, 5969, 5974, 5979, 6006, 6010, - 6014, 6018, 6022, 6029, 6033, 6037, 6041, 6048, 6053, 6060, - 6065, 6069, 6074, 6078, 6086, 6097, 6101, 6113, 6121, 6129, - 6136, 6146, 6175, 6179, 6183, 6187, 6191, 6195, 6199, 6203, - 6207, 6236, 6265, 6294, 6323, 6336, 6349, 6362, 6375, 6385, - 6395, 6405, 6417, 6430, 6442, 6446, 6450, 6454, 6458, 6476, - 6494, 6502, 6510, 6539, 6549, 6568, 6573, 6577, 6581, 6593, - 6597, 6609, 6626, 6636, 6640, 6655, 6660, 6667, 6671, 6684, - 6698, 6712, 6726, 6740, 6748, 6759, 6763, 6767, 6775, 6781, - 6787, 6795, 6803, 6810, 6818, 6833, 6847, 6861, 6873, 6889, - 6898, 6907, 6917, 6928, 6936, 6944, 6948, 6967, 6974, 6980, - 6987, 6995, 6994, 7007, 7012, 7018, 7027, 7040, 7043, 7047 + 1713, 1720, 1741, 1755, 1769, 1803, 1840, 1854, 1868, 1888, + 1897, 1911, 1926, 1940, 1959, 1969, 1975, 1981, 1988, 2015, + 2030, 2050, 2071, 2092, 2113, 2135, 2157, 2178, 2201, 2210, + 2231, 2246, 2260, 2275, 2290, 2305, 2314, 2357, 2400, 2443, + 2491, 2508, 2526, 2536, 2546, 2556, 2619, 2630, 2646, 2647, + 2652, 2655, 2659, 2670, 2681, 2692, 2708, 2730, 2756, 2778, + 2801, 2822, 2878, 2902, 2927, 2953, 3066, 3085, 3128, 3149, + 3155, 3170, 3198, 3215, 3224, 3238, 3252, 3258, 3264, 3273, + 3282, 3291, 3305, 3367, 3385, 3402, 3417, 3446, 3458, 3482, + 3486, 3491, 3499, 3504, 3510, 3515, 3521, 3529, 3533, 3537, + 3542, 3602, 3618, 3635, 3652, 3674, 3696, 3731, 3739, 3747, + 3753, 3760, 3767, 3787, 3813, 3825, 3837, 3867, 3898, 3907, + 3906, 3921, 3920, 3935, 3934, 3949, 3948, 3961, 3988, 4007, + 4026, 4052, 4059, 4066, 4073, 4080, 4087, 4094, 4101, 4108, + 4116, 4115, 4129, 4128, 4142, 4141, 4155, 4154, 4168, 4167, + 4181, 4180, 4194, 4193, 4207, 4206, 4220, 4219, 4236, 4239, + 4245, 4257, 4277, 4301, 4305, 4309, 4313, 4317, 4321, 4327, + 4333, 4337, 4341, 4345, 4349, 4368, 4381, 4382, 4383, 4384, + 4385, 4389, 4390, 4391, 4394, 4428, 4454, 4478, 4481, 4497, + 4500, 4517, 4520, 4526, 4529, 4536, 4539, 4546, 4559, 4615, + 4685, 4690, 4757, 4793, 4801, 4844, 4883, 4903, 4935, 4962, + 4988, 5014, 5040, 5066, 5088, 5116, 5144, 5172, 5200, 5228, + 5267, 5306, 5323, 5340, 5357, 5369, 5375, 5381, 5393, 5397, + 5407, 5418, 5419, 5420, 5424, 5430, 5442, 5460, 5488, 5489, + 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5503, 5504, 5505, + 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, + 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, + 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, + 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, + 5554, 5559, 5558, 5566, 5571, 5576, 5593, 5611, 5629, 5647, + 5665, 5670, 5676, 5691, 5710, 5730, 5750, 5770, 5793, 5798, + 5803, 5813, 5823, 5828, 5839, 5848, 5853, 5858, 5885, 5889, + 5893, 5897, 5901, 5908, 5912, 5916, 5920, 5927, 5932, 5939, + 5944, 5948, 5953, 5957, 5965, 5976, 5980, 5992, 6000, 6008, + 6015, 6025, 6047, 6051, 6055, 6059, 6063, 6067, 6071, 6075, + 6079, 6108, 6137, 6166, 6195, 6208, 6221, 6234, 6247, 6257, + 6267, 6277, 6289, 6302, 6314, 6318, 6322, 6326, 6330, 6348, + 6366, 6374, 6382, 6411, 6421, 6440, 6445, 6449, 6453, 6465, + 6469, 6481, 6498, 6508, 6512, 6527, 6532, 6539, 6543, 6556, + 6570, 6584, 6598, 6612, 6620, 6631, 6635, 6639, 6647, 6653, + 6659, 6667, 6675, 6682, 6690, 6705, 6719, 6733, 6745, 6761, + 6770, 6779, 6789, 6800, 6808, 6816, 6820, 6839, 6846, 6852, + 6859, 6867, 6866, 6879, 6884, 6890, 6899, 6912, 6915, 6919 }; #endif @@ -1581,22 +1581,22 @@ static const yytype_uint16 yyr1[] = 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 284, 284, 284, 284, 284, 284, 284, 284, 285, - 285, 286, 286, 286, 286, 286, 286, 287, 287, 287, - 287, 287, 287, 287, 287, 287, 287, 287, 287, 288, - 288, 288, 288, 288, 289, 289, 290, 291, 291, 291, - 291, 291, 291, 292, 292, 292, 292, 292, 292, 292, + 284, 284, 284, 284, 284, 284, 284, 284, 285, 285, + 286, 286, 286, 286, 286, 286, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 287, 288, 288, + 288, 288, 288, 289, 289, 290, 291, 291, 291, 291, + 291, 291, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, 292, - 292, 292, 293, 294, 294, 294, 294, 294, 294, 294, - 294, 294, 294, 294, 294, 294, 294, 295, 295, 295, - 296, 295, 297, 295, 298, 295, 299, 295, 295, 295, + 292, 293, 294, 294, 294, 294, 294, 294, 294, 294, + 294, 294, 294, 294, 294, 294, 295, 295, 295, 296, + 295, 297, 295, 298, 295, 299, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 300, 295, 301, 295, 302, 295, 303, 295, 304, - 295, 305, 295, 306, 295, 307, 295, 308, 295, 309, - 309, 310, 310, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 311, 311, 311, - 311, 311, 312, 312, 312, 313, 313, 314, 315, 315, - 316, 316, 317, 317, 318, 318, 319, 319, 320, 320, + 300, 295, 301, 295, 302, 295, 303, 295, 304, 295, + 305, 295, 306, 295, 307, 295, 308, 295, 309, 309, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 310, 310, 310, 310, 310, 311, 311, 311, 311, + 311, 312, 312, 312, 313, 313, 314, 315, 315, 316, + 316, 317, 317, 318, 318, 319, 319, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 321, 321, @@ -1642,28 +1642,28 @@ static const yytype_uint8 yyr2[] = 3, 3, 5, 5, 0, 2, 3, 5, 3, 0, 2, 3, 3, 3, 5, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 0, 5, 0, - 2, 7, 7, 4, 7, 8, 8, 7, 7, 11, - 8, 7, 8, 8, 8, 9, 3, 4, 10, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, - 12, 8, 7, 8, 7, 8, 8, 8, 8, 8, - 8, 5, 11, 5, 9, 9, 4, 9, 9, 1, - 1, 0, 2, 6, 6, 6, 6, 8, 10, 14, - 16, 12, 14, 14, 14, 14, 8, 8, 6, 4, - 6, 6, 3, 4, 5, 6, 5, 3, 3, 4, - 5, 4, 5, 3, 5, 7, 7, 3, 7, 3, - 2, 2, 2, 2, 2, 15, 2, 2, 2, 2, - 2, 16, 11, 6, 8, 8, 10, 1, 2, 2, - 1, 3, 3, 4, 4, 1, 1, 5, 11, 13, - 0, 7, 0, 13, 0, 15, 0, 6, 9, 2, - 3, 10, 8, 8, 8, 12, 12, 12, 14, 14, - 14, 0, 12, 0, 12, 0, 12, 0, 16, 0, - 16, 0, 16, 0, 18, 0, 18, 0, 18, 1, - 2, 5, 7, 9, 2, 2, 3, 2, 3, 2, - 3, 2, 3, 2, 3, 9, 6, 1, 1, 1, - 1, 1, 0, 2, 3, 9, 4, 14, 0, 3, - 0, 1, 0, 2, 0, 2, 0, 2, 6, 7, - 6, 8, 5, 3, 8, 5, 4, 6, 11, 11, - 18, 18, 12, 12, 12, 10, 10, 10, 10, 10, + 2, 7, 7, 7, 8, 8, 7, 7, 11, 8, + 7, 8, 8, 8, 9, 3, 4, 10, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 8, 12, + 8, 7, 8, 7, 8, 8, 8, 8, 8, 8, + 5, 11, 5, 9, 9, 4, 9, 9, 1, 1, + 0, 2, 6, 6, 6, 6, 8, 10, 14, 16, + 12, 14, 14, 14, 14, 8, 8, 6, 4, 6, + 6, 3, 4, 5, 6, 5, 3, 3, 4, 5, + 4, 5, 3, 5, 7, 7, 3, 7, 3, 2, + 2, 2, 2, 2, 15, 2, 2, 2, 2, 2, + 16, 11, 6, 8, 8, 10, 1, 2, 2, 1, + 3, 3, 4, 4, 1, 1, 5, 11, 13, 0, + 7, 0, 13, 0, 15, 0, 6, 9, 2, 3, + 10, 8, 8, 8, 12, 12, 12, 14, 14, 14, + 0, 12, 0, 12, 0, 12, 0, 16, 0, 16, + 0, 16, 0, 18, 0, 18, 0, 18, 1, 2, + 5, 7, 9, 2, 2, 3, 2, 3, 2, 3, + 2, 3, 2, 3, 9, 6, 1, 1, 1, 1, + 1, 0, 2, 3, 9, 4, 14, 0, 3, 0, + 1, 0, 2, 0, 2, 0, 2, 6, 7, 6, + 8, 5, 3, 8, 5, 4, 6, 11, 11, 18, + 18, 12, 12, 12, 10, 10, 10, 10, 10, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 3, 6, 1, 1, 1, 2, 5, 7, 10, 1, 3, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, @@ -1698,10 +1698,10 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 347, 348, 349, 350, - 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 346, 347, 348, 349, + 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 277, 0, 0, 285, 286, 0, 0, 0, 280, 0, + 276, 0, 0, 284, 285, 0, 0, 0, 279, 0, 0, 0, 0, 0, 401, 402, 403, 0, 0, 5, 6, 7, 8, 10, 11, 24, 12, 13, 14, 15, 23, 22, 21, 16, 0, 17, 18, 19, 20, 0, @@ -1712,26 +1712,26 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 567, 0, 588, 569, 458, 459, 460, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 455, 456, 457, - 568, 0, 0, 0, 0, 70, 71, 0, 0, 221, + 568, 0, 0, 0, 0, 70, 71, 0, 0, 220, 0, 0, 0, 408, 0, 557, 598, 465, 0, 0, - 0, 0, 264, 0, 266, 267, 262, 263, 0, 268, - 269, 127, 139, 70, 71, 0, 0, 0, 0, 0, + 0, 0, 263, 0, 265, 266, 261, 262, 0, 267, + 268, 127, 139, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 270, 0, 0, 0, 0, 0, 597, 0, + 0, 0, 269, 0, 0, 0, 0, 0, 597, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 529, 0, 530, 499, - 299, 500, 598, 465, 0, 0, 0, 0, 0, 0, + 298, 500, 598, 465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 488, 0, 0, 0, 0, 0, 221, + 0, 0, 0, 488, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 597, 0, 221, 598, 0, 0, + 0, 0, 0, 0, 597, 0, 220, 598, 0, 0, 398, 0, 0, 0, 0, 0, 0, 0, 0, 506, 0, 505, 0, 0, 0, 0, 0, 597, 0, 0, - 551, 0, 0, 0, 0, 260, 261, 0, 597, 0, - 0, 0, 278, 279, 0, 221, 0, 221, 597, 0, - 598, 0, 0, 221, 404, 0, 0, 70, 71, 0, + 551, 0, 0, 0, 0, 259, 260, 0, 597, 0, + 0, 0, 277, 278, 0, 220, 0, 220, 597, 0, + 598, 0, 0, 220, 404, 0, 0, 70, 71, 0, 0, 63, 67, 66, 65, 64, 69, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1739,10 +1739,10 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 411, 410, 412, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, - 219, 0, 0, 257, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 219, 0, + 218, 0, 0, 256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, - 253, 0, 0, 473, 186, 0, 597, 0, 557, 598, + 252, 0, 0, 473, 185, 0, 597, 0, 557, 598, 558, 0, 0, 593, 0, 125, 125, 0, 0, 0, 0, 545, 546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1751,17 +1751,17 @@ static const yytype_uint16 yydefact[] = 0, 0, 512, 0, 0, 513, 0, 514, 0, 515, 0, 0, 0, 0, 0, 0, 0, 0, 410, 507, 0, 501, 0, 0, 0, 70, 71, 0, 0, 0, - 0, 0, 0, 300, 0, 362, 362, 0, 0, 0, + 0, 0, 0, 299, 0, 361, 361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 221, 221, 0, 490, 489, 0, - 0, 0, 0, 221, 221, 0, 0, 0, 0, 0, - 0, 0, 296, 0, 221, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 364, 0, 0, 0, 0, - 0, 0, 0, 242, 399, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 373, 259, 0, 0, 0, 0, - 0, 221, 0, 0, 0, 0, 0, 282, 281, 0, - 247, 0, 248, 0, 0, 0, 221, 0, 0, 0, - 0, 352, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 220, 220, 0, 490, 489, 0, + 0, 0, 0, 220, 220, 0, 0, 0, 0, 0, + 0, 0, 295, 0, 220, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 363, 0, 0, 0, 0, + 0, 0, 0, 241, 399, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 372, 258, 0, 0, 0, 0, + 0, 220, 0, 0, 0, 0, 0, 281, 280, 0, + 246, 0, 247, 0, 0, 0, 220, 0, 0, 0, + 0, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1769,28 +1769,28 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 461, 591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 0, 409, 63, 64, 0, 0, 63, 0, 0, - 0, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 222, 0, 0, 0, 426, 425, 424, 423, 419, + 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, + 0, 221, 0, 0, 0, 426, 425, 424, 423, 419, 420, 422, 421, 414, 413, 415, 416, 417, 418, 0, - 0, 0, 187, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 356, 0, 0, 0, 0, 0, 0, 0, - 392, 393, 394, 0, 0, 0, 478, 72, 73, 0, + 0, 0, 355, 0, 0, 0, 0, 0, 0, 0, + 391, 392, 393, 0, 0, 0, 478, 72, 73, 0, 531, 0, 0, 0, 0, 0, 465, 0, 0, 0, 0, 0, 0, 0, 0, 0, 516, 0, 517, 0, 518, 0, 519, 0, 0, 0, 409, 502, 509, 0, 415, 508, 0, 0, 0, 532, 0, 0, 0, 0, - 0, 0, 0, 360, 0, 0, 0, 155, 156, 0, + 0, 0, 0, 359, 0, 0, 0, 155, 156, 0, 158, 159, 0, 161, 162, 0, 164, 165, 0, 395, - 0, 396, 0, 397, 0, 0, 0, 0, 173, 221, + 0, 396, 0, 397, 0, 0, 0, 0, 394, 220, 0, 0, 0, 0, 0, 492, 491, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 376, 0, 0, 243, 0, 0, 239, 0, 0, 0, - 391, 390, 0, 0, 0, 409, 0, 0, 0, 0, - 0, 0, 0, 0, 283, 284, 0, 0, 249, 251, + 375, 0, 0, 242, 0, 0, 238, 0, 0, 0, + 390, 389, 0, 0, 0, 409, 0, 0, 0, 0, + 0, 0, 0, 0, 282, 283, 0, 0, 248, 250, 0, 599, 0, 0, 0, 0, 0, 0, 63, 64, 0, 0, 63, 64, 0, 0, 0, 0, 94, 78, 0, 467, 466, 480, 428, 429, 430, 431, 432, 433, @@ -1804,23 +1804,23 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 595, 0, 0, 48, 0, 0, 0, 61, 0, 39, 40, 41, 42, 43, 469, 468, 0, 0, 563, 28, 26, 0, - 0, 0, 0, 29, 0, 0, 254, 594, 74, 128, + 0, 0, 0, 29, 0, 0, 253, 594, 74, 128, 75, 140, 0, 0, 0, 547, 548, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 467, 466, 0, 0, 535, 0, 534, 533, 0, 0, 542, 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, 544, 503, 0, 0, 0, 469, 468, - 0, 0, 0, 0, 0, 409, 358, 363, 361, 0, - 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 409, 409, 409, 0, 0, 0, 0, 0, 250, 252, - 0, 0, 0, 211, 213, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 409, 357, 362, 360, 0, + 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 409, 409, 409, 0, 0, 0, 0, 0, 249, 251, + 0, 0, 0, 210, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 329, 0, 287, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 365, 375, 0, 0, 0, + 0, 328, 0, 286, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 364, 374, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 244, 0, 0, 0, 0, 0, 246, 0, - 353, 0, 0, 0, 0, 405, 0, 0, 0, 0, + 0, 0, 243, 0, 0, 0, 0, 0, 245, 0, + 352, 0, 0, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 596, 0, 0, 475, 0, 474, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1831,93 +1831,93 @@ static const yytype_uint16 yydefact[] = 559, 27, 0, 0, 562, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, 169, 0, 0, 0, 0, 0, 0, 0, 167, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 368, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 520, 521, 522, 523, 0, 510, 504, 0, 0, - 0, 0, 0, 0, 0, 0, 370, 0, 0, 157, + 0, 0, 0, 0, 0, 0, 369, 0, 0, 157, 0, 160, 0, 163, 0, 166, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 335, 0, 0, 334, 0, 341, - 0, 343, 0, 337, 0, 339, 0, 297, 330, 0, - 0, 0, 238, 0, 0, 0, 0, 0, 0, 0, - 0, 377, 0, 241, 240, 400, 0, 0, 35, 36, - 0, 0, 0, 0, 552, 0, 0, 0, 273, 0, - 0, 0, 221, 354, 221, 0, 0, 0, 0, 89, - 0, 93, 0, 0, 81, 0, 85, 0, 256, 479, - 255, 438, 446, 447, 448, 586, 0, 0, 584, 483, + 0, 0, 0, 244, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 334, 0, 0, 333, 0, 340, + 0, 342, 0, 336, 0, 338, 0, 296, 329, 0, + 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, + 0, 376, 0, 240, 239, 400, 0, 0, 35, 36, + 0, 0, 0, 0, 552, 0, 0, 0, 272, 0, + 0, 0, 220, 353, 220, 0, 0, 0, 0, 89, + 0, 93, 0, 0, 81, 0, 85, 0, 255, 479, + 254, 438, 446, 447, 448, 586, 0, 0, 584, 483, 484, 486, 0, 0, 462, 145, 0, 592, 150, 482, 571, 573, 464, 0, 0, 0, 90, 0, 0, 0, 63, 0, 0, 0, 0, 82, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 497, 0, 0, 30, 31, 0, 32, 0, 0, 129, 136, 0, 0, 76, 77, 171, - 0, 0, 0, 0, 0, 0, 172, 0, 0, 189, - 190, 0, 0, 0, 0, 174, 202, 191, 195, 196, - 192, 193, 194, 181, 0, 0, 0, 479, 538, 537, - 536, 0, 0, 0, 0, 0, 0, 0, 204, 539, - 197, 0, 0, 167, 0, 0, 369, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, - 0, 0, 0, 221, 221, 0, 311, 0, 313, 0, - 315, 0, 0, 336, 499, 0, 0, 342, 344, 338, - 340, 0, 0, 291, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 0, 0, 0, 177, - 178, 0, 0, 0, 0, 118, 122, 0, 0, 352, - 352, 0, 406, 0, 0, 0, 91, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 0, 0, 188, + 189, 0, 0, 0, 0, 173, 201, 190, 194, 195, + 191, 192, 193, 180, 0, 0, 0, 479, 538, 537, + 536, 0, 0, 0, 0, 0, 0, 0, 203, 539, + 196, 0, 0, 167, 0, 0, 368, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 257, 0, + 0, 0, 0, 220, 220, 0, 310, 0, 312, 0, + 314, 0, 0, 335, 499, 0, 0, 341, 343, 337, + 339, 0, 0, 290, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 197, 0, 0, 0, 0, 176, + 177, 0, 0, 0, 0, 118, 122, 0, 0, 351, + 351, 0, 406, 0, 0, 0, 91, 0, 0, 0, 83, 0, 481, 0, 0, 0, 0, 0, 0, 101, 0, 0, 95, 0, 0, 0, 0, 112, 0, 0, - 113, 0, 556, 223, 224, 225, 226, 0, 0, 0, + 113, 0, 556, 222, 223, 224, 225, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 0, 0, 46, 564, 0, 0, 130, 137, 0, 0, 0, 0, 170, - 175, 176, 182, 0, 0, 201, 0, 184, 0, 0, - 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 183, 0, 205, 359, 203, 207, 208, 209, 210, 180, - 0, 199, 206, 0, 0, 0, 0, 0, 0, 496, - 0, 495, 0, 0, 0, 302, 0, 0, 303, 0, - 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, - 237, 236, 0, 0, 0, 0, 0, 0, 0, 0, - 227, 0, 0, 374, 37, 0, 0, 550, 0, 275, - 274, 0, 0, 0, 0, 0, 0, 0, 102, 0, + 174, 175, 181, 0, 0, 200, 0, 183, 0, 0, + 370, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 182, 0, 204, 358, 202, 206, 207, 208, 209, 179, + 0, 198, 205, 0, 0, 0, 0, 0, 0, 496, + 0, 495, 0, 0, 0, 301, 0, 0, 302, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 236, 235, 0, 0, 0, 0, 0, 0, 0, 0, + 226, 0, 0, 373, 37, 0, 0, 550, 0, 274, + 273, 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 96, 0, 0, 0, 577, 583, 582, 0, 146, 148, 0, 151, 152, 153, 103, 105, 97, 99, 108, 110, 0, 116, 0, 86, 49, 0, 0, 0, 498, 0, 0, 0, 33, 0, 144, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 540, 541, 0, - 0, 0, 0, 0, 0, 185, 0, 366, 366, 0, - 123, 124, 221, 0, 214, 215, 0, 0, 0, 0, - 0, 0, 298, 0, 331, 0, 0, 221, 0, 0, - 0, 0, 0, 0, 0, 0, 218, 217, 0, 0, - 0, 0, 119, 120, 0, 0, 355, 0, 104, 106, + 0, 0, 0, 0, 0, 184, 0, 365, 365, 0, + 123, 124, 220, 0, 213, 214, 0, 0, 0, 0, + 0, 0, 297, 0, 330, 0, 0, 220, 0, 0, + 0, 0, 0, 0, 0, 0, 217, 216, 0, 0, + 0, 0, 119, 120, 0, 0, 354, 0, 104, 106, 98, 100, 87, 0, 545, 546, 0, 0, 554, 0, 45, 0, 0, 0, 47, 62, 0, 0, 0, 134, - 132, 385, 387, 386, 388, 0, 389, 188, 0, 0, - 0, 0, 0, 0, 301, 0, 0, 0, 0, 0, + 132, 384, 386, 385, 387, 0, 388, 187, 0, 0, + 0, 0, 0, 0, 300, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 494, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 346, 0, 0, 0, - 292, 0, 228, 0, 0, 0, 0, 0, 0, 0, - 549, 276, 0, 0, 221, 407, 0, 147, 0, 0, + 0, 0, 0, 0, 0, 0, 345, 0, 0, 0, + 291, 0, 227, 0, 0, 0, 0, 0, 0, 0, + 549, 275, 0, 0, 220, 407, 0, 147, 0, 0, 154, 114, 0, 0, 0, 0, 0, 131, 138, 144, 144, 168, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 367, 378, 0, 0, 379, 0, 212, 0, 317, - 0, 0, 319, 0, 0, 321, 0, 0, 0, 332, - 0, 288, 0, 221, 0, 0, 0, 0, 0, 0, - 179, 121, 272, 352, 0, 141, 0, 0, 53, 0, + 0, 366, 377, 0, 0, 378, 0, 211, 0, 316, + 0, 0, 318, 0, 0, 320, 0, 0, 0, 331, + 0, 287, 0, 220, 0, 0, 0, 0, 0, 0, + 178, 121, 271, 351, 0, 141, 0, 0, 53, 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 200, 0, 382, 0, 383, 384, 493, 305, 0, - 0, 312, 306, 0, 0, 314, 307, 0, 0, 316, - 0, 0, 0, 294, 231, 0, 0, 0, 0, 0, + 0, 199, 0, 381, 0, 382, 383, 493, 304, 0, + 0, 311, 305, 0, 0, 313, 306, 0, 0, 315, + 0, 0, 0, 293, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 323, 0, 325, 0, 327, 333, 345, 293, 289, 0, + 322, 0, 324, 0, 326, 332, 344, 292, 288, 0, 0, 0, 0, 0, 0, 0, 0, 142, 143, 50, 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 308, 0, 0, 309, 0, 0, 310, - 0, 0, 232, 233, 234, 235, 0, 229, 357, 0, - 51, 0, 0, 265, 0, 543, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 295, 0, - 0, 0, 0, 0, 271, 0, 0, 0, 0, 0, - 0, 318, 0, 320, 0, 322, 0, 230, 52, 54, + 0, 0, 0, 307, 0, 0, 308, 0, 0, 309, + 0, 0, 231, 232, 233, 234, 0, 228, 356, 0, + 51, 0, 0, 264, 0, 543, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, + 0, 0, 0, 0, 270, 0, 0, 0, 0, 0, + 0, 317, 0, 319, 0, 321, 0, 229, 52, 54, 0, 55, 0, 524, 525, 526, 527, 0, 0, 0, - 0, 0, 0, 0, 60, 380, 381, 324, 326, 328, + 0, 0, 0, 0, 60, 379, 380, 323, 325, 327, 56, 58 }; @@ -1942,7 +1942,7 @@ static const yytype_int16 yydefgoto[] = #define YYPACT_NINF -1827 static const yytype_int16 yypact[] = { - 11338, 52, 86, 11487, -1827, -1827, 4967, 56, -62, -196, + 11385, 52, 86, 11534, -1827, -1827, 4967, 56, -62, -196, -121, 49, 188, 209, 240, 294, -115, 397, 440, -77, -14, 190, 190, 132, 244, 257, 14, 282, 295, 15, 311, 317, 318, 330, 352, 367, 370, 385, 392, 445, @@ -1951,8 +1951,8 @@ static const yytype_int16 yypact[] = 546, 290, 290, 594, 296, 70, -1827, -1827, -1827, -1827, -1827, 585, 547, 733, 743, 19, 61, 753, 765, 204, 856, 862, 883, 6198, 897, 697, 701, 702, 16, 59, - -1827, 706, 726, -1827, -1827, 899, 951, 731, -1827, 3724, - 736, 4165, 33, 35, -1827, -1827, -1827, 10716, 737, -1827, + -1827, 706, 726, -1827, -1827, 899, 951, 731, -1827, 3594, + 736, 5065, 33, 35, -1827, -1827, -1827, 10716, 737, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, 143, -1827, -1827, -1827, -1827, 3, -1827, 117, 201, -1827, 39, -1827, -1827, -1827, -1827, -1827, @@ -1964,11 +1964,11 @@ static const yytype_int16 yypact[] = 792, 803, 804, 190, 190, 814, 827, -1827, -1827, -1827, -1827, 797, 10716, 10716, 10716, 4585, 4875, 147, 23, 349, 808, 838, 578, -1827, 839, 1073, 138, -66, 1078, 10716, - 3792, 3792, -1827, 10716, -1827, -1827, -1827, -1827, 3792, -1827, - -1827, -1827, -1827, -1827, -1827, 5065, 23, 10716, 9903, 10716, + 4165, 4165, -1827, 10716, -1827, -1827, -1827, -1827, 4165, -1827, + -1827, -1827, -1827, -1827, -1827, 5845, 23, 10716, 9903, 10716, 10716, 868, 10716, 9903, 10716, 10716, 871, 10716, 9903, 10716, - 10716, 10716, 10716, 10716, 10716, 3792, 10716, 10716, 10716, 6879, - 906, 879, -1827, 9903, 6198, 6198, 6198, 3792, 768, 410, + 10716, 10716, 10716, 10716, 10716, 4165, 10716, 10716, 10716, 6879, + 906, 879, -1827, 9903, 6198, 6198, 6198, 4165, 768, 410, 190, 190, 190, 190, 20, 26, 32, 34, 6879, 1028, 28, 190, 7106, 10716, 5510, -1827, -1827, 952, -1827, 2120, -1827, -1827, 187, -180, 10716, 9903, 931, 934, 7333, 6198, @@ -1980,82 +1980,82 @@ static const yytype_int16 yypact[] = -1827, 1188, 1191, 1197, 6198, 6198, 1163, 1186, 1192, -1827, 10716, -1827, 1439, 1445, 10716, 10716, 10716, -111, 10716, 1242, -1827, 1310, 10716, 10716, 10716, -1827, -1827, 10716, 1249, 1481, - 1496, 1268, -1827, -1827, 1501, -1827, 1502, -1827, 587, 5024, - 195, 3792, 10716, -1827, -1827, 6879, 6879, 9782, 10197, 1276, - 1277, 5065, -1827, -1827, -1827, -1827, -1827, -1827, 6879, 1507, + 1496, 1268, -1827, -1827, 1501, -1827, 1502, -1827, 587, 3559, + 195, 4165, 10716, -1827, -1827, 6879, 6879, 9782, 10197, 1276, + 1277, 5845, -1827, -1827, -1827, -1827, -1827, -1827, 6879, 1507, 1284, 10716, 10716, 1511, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, - 10716, 10716, 10716, 10716, 10716, 10716, 3792, 3792, 3792, 3792, - 3792, 3792, 3792, 3792, 3792, 3792, 6879, 3792, 3792, 10716, - 3792, 3792, 3792, 3792, 3792, 10716, 5065, 10716, 3792, 3792, - 3792, 3792, 3792, 23, 5065, 23, 1289, 1289, 1289, 107, - 13453, 120, 13062, 205, 1285, 1513, 190, 1283, -1827, 1288, - 4641, 10716, 9903, -1827, 10716, 10716, 10716, 10716, 10716, 10716, + 10716, 10716, 10716, 10716, 10716, 10716, 4165, 4165, 4165, 4165, + 4165, 4165, 4165, 4165, 4165, 4165, 6879, 4165, 4165, 10716, + 4165, 4165, 4165, 4165, 4165, 10716, 5845, 10716, 4165, 4165, + 4165, 4165, 4165, 23, 5845, 23, 1289, 1289, 1289, 107, + 13326, 120, 12935, 205, 1285, 1513, 190, 1283, -1827, 1288, + 3747, 10716, 9903, -1827, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, 10716, -1827, -1827, 10716, 10716, -1827, -1827, 760, 703, 161, -1827, 283, - -1827, 237, 11609, -1827, 343, 239, 250, 1291, 1293, 13474, - 9903, 3314, -1827, 425, 13495, 13516, 10716, 13537, 490, 13558, - 13579, 10716, 13600, 527, 13621, 13642, 13663, 13684, 13705, 13726, - 1299, 13747, 13768, 13789, 1523, 10716, 10716, 602, 1526, 1527, + -1827, 237, 10873, -1827, 343, 239, 250, 1291, 1293, 13347, + 9903, 3095, -1827, 425, 13368, 13389, 10716, 13410, 490, 13431, + 13452, 10716, 13473, 527, 13494, 13515, 13536, 13557, 13578, 13599, + 1299, 13620, 13641, 13662, 1523, 10716, 10716, 602, 1526, 1527, 1528, 1306, 10716, 10716, 1532, 347, 8241, 8468, 10716, 10716, - 3792, 10716, -1827, 1475, 10716, -1827, 1476, -1827, 1477, -1827, + 4165, 10716, -1827, 1475, 10716, -1827, 1476, -1827, 1477, -1827, 1478, 6879, 43, 45, 47, 48, 9903, 9903, 1289, -1827, - 13810, -1827, 641, 10716, 8695, 10716, 10716, 522, 13831, 645, + 13683, -1827, 641, 10716, 8695, 10716, 10716, 522, 13704, 645, 10716, 10716, 10716, -1827, 1536, 1537, 1537, 10716, 10124, 10124, 10124, 10124, 10716, 1539, 10716, 1541, 10716, 1544, 9903, 9903, - 11147, 1322, 1546, 1318, -1827, -1827, 246, -1827, -1827, 11635, - 11661, 290, 290, 349, 349, 249, 10716, 10716, 10716, 4482, - 4482, 10716, 2900, 331, -1827, 10716, 10716, 10716, 10716, 10716, - 10716, 10716, 10716, 10716, 13852, 1553, 1548, 1554, 10716, 1561, - 10716, 10716, 3019, -1827, -1827, 9903, 9903, 9903, 1563, 1564, - 10716, 10716, 10716, 13873, -1827, -1827, 13894, 13915, 13936, 1402, - 11687, -1827, 1337, 3334, 13957, 13978, 13085, -1827, -1827, 9903, - -1827, 3283, -1827, 5334, 10716, 10716, -1827, 10716, 10716, 1344, - 13999, 11622, 1348, 683, 194, 14020, 281, 13108, 10716, 9903, - 1588, 1590, -1827, 10716, 14041, 13131, 431, 13039, 13039, 13039, - 13039, 13039, 13039, 13039, 13039, 13039, 13039, 13039, 11713, 13039, - 13039, 13039, 13039, 13039, 13039, 13039, 11739, 11765, 11791, -147, + 3718, 1322, 1546, 1318, -1827, -1827, 246, -1827, -1827, 11058, + 11224, 290, 290, 349, 349, 249, 10716, 10716, 10716, 4482, + 4482, 10716, 2899, 331, -1827, 10716, 10716, 10716, 10716, 10716, + 10716, 10716, 10716, 10716, 13725, 1553, 1548, 1554, 10716, 1561, + 10716, 10716, 3283, -1827, -1827, 9903, 9903, 9903, 1563, 1564, + 10716, 10716, 10716, 13746, -1827, -1827, 13767, 13788, 13809, 1402, + 11581, -1827, 1337, 3195, 13830, 13851, 12958, -1827, -1827, 9903, + -1827, 5334, -1827, 10744, 10716, 10716, -1827, 10716, 10716, 1344, + 13872, 11669, 1348, 683, 194, 13893, 281, 12981, 10716, 9903, + 1588, 1590, -1827, 10716, 13914, 13004, 431, 11193, 11193, 11193, + 11193, 11193, 11193, 11193, 11193, 11193, 11193, 11193, 11609, 11193, + 11193, 11193, 11193, 11193, 11193, 11193, 11635, 11661, 11687, -147, -68, -147, 1368, 1370, 1367, 710, 710, 1372, 710, 1374, - 1379, 1380, 11817, 710, 710, 710, 450, 710, 14797, -1827, + 1379, 1380, 11713, 710, 710, 710, 450, 710, 10940, -1827, 891, 1381, 1383, 1378, 101, 773, 1387, 1389, 1388, 1593, - 1594, 6879, 322, 1595, 1596, 6879, 116, 5065, 10716, 1640, + 1594, 6879, 322, 1595, 1596, 6879, 116, 5845, 10716, 1640, 1643, 22, 710, -1827, 159, 30, 31, 226, 1420, -54, - 927, -1827, 2285, 758, 3355, 2213, 848, 1222, 1222, 728, + 927, -1827, 2285, 758, 3315, 2213, 848, 1222, 1222, 728, 728, 728, 728, 626, 626, 1289, 1289, 1289, 1289, 11, - 14062, 13154, -1827, 10716, 10716, 1645, 24, 9903, 10716, 10716, - 1644, 9903, 10716, 1647, 3792, 1648, -1827, 23, 1649, 3792, - 10716, 5065, 1651, 9903, 9903, 1487, 1653, 1656, 14083, 1658, - 1494, 1661, 1663, 14104, 1664, 1500, 1667, 1669, 1670, 1671, - 1673, 1675, -1827, 1676, 1677, 1678, 10716, 14125, 3721, 1452, - -1827, -1827, -1827, 1683, 14146, 13177, -180, -1827, -1827, 9903, - -1827, 9903, 3314, 1461, 9903, 1460, 727, 11843, 11869, 710, - 11895, 1462, 4181, 1469, 1470, 1474, -1827, 9903, -1827, 9903, - -1827, 9903, -1827, 9903, 710, 801, 1704, -1827, 3442, 9903, - 1289, -1827, 14167, 13200, 9903, -1827, 1705, 1479, 14188, 14209, - 14230, 10716, 6879, 1712, 1711, 14251, 1492, 14797, 1488, 1512, - 14797, 1495, 1515, 14797, 1508, 1516, 14797, 1529, 14272, -1827, - 14293, -1827, 14314, -1827, 802, 815, 9903, 1498, -1827, -1827, - 10744, 10866, 290, 10716, 10716, -1827, -1827, 1510, 1530, 4482, - 11921, 11947, 11973, 10677, 1625, -56, 290, 10924, 14335, 4705, - 14356, 14377, 14398, 14419, 14440, 14461, 14482, 1757, 10716, 1759, - -1827, 10716, 14503, -1827, 13223, 13246, -1827, 818, 822, 844, - -1827, -1827, 13269, 13292, 11999, -1827, 1762, 1763, 1764, 1542, - 10716, 10980, 10716, 10716, -1827, -1827, 54, 858, -1827, -1827, - 11037, -1827, 1766, 10423, 1543, 1545, 6879, 1769, 1733, 1734, - 6879, 322, 1737, 1738, 6879, 322, 4996, 881, -1827, -1827, - 13315, 439, 130, -1827, -1827, -1827, -1827, -1827, -1827, -1827, + 13935, 13027, -1827, 10716, 10716, 1645, 24, 9903, 10716, 10716, + 1644, 9903, 10716, 1647, 4165, 1648, -1827, 23, 1649, 4165, + 10716, 5845, 1651, 9903, 9903, 1487, 1653, 1656, 13956, 1658, + 1494, 1661, 1663, 13977, 1664, 1500, 1667, 1669, 1670, 1671, + 1673, 1675, -1827, 1676, 1677, 1678, 10716, 13998, 3964, 1452, + -1827, -1827, -1827, 1683, 14019, 13050, -180, -1827, -1827, 9903, + -1827, 9903, 3095, 1461, 9903, 1460, 727, 11739, 11765, 710, + 11791, 1462, 4181, 1469, 1470, 1474, -1827, 9903, -1827, 9903, + -1827, 9903, -1827, 9903, 710, 801, 1704, -1827, 3334, 9903, + 1289, -1827, 14040, 13073, 9903, -1827, 1705, 1479, 14061, 14082, + 14103, 10716, 6879, 1712, 1711, 14124, 1492, 10940, 1488, 1512, + 10940, 1495, 1515, 10940, 1508, 1516, 10940, 1529, 14145, -1827, + 14166, -1827, 14187, -1827, 802, 815, 9903, 1498, -1827, -1827, + 10866, 10905, 290, 10716, 10716, -1827, -1827, 1510, 1530, 4482, + 11817, 11843, 11869, 10677, 1625, -56, 290, 10961, 14208, 4514, + 14229, 14250, 14271, 14292, 14313, 14334, 14355, 1757, 10716, 1759, + -1827, 10716, 14376, -1827, 13096, 13119, -1827, 818, 822, 844, + -1827, -1827, 13142, 13165, 11895, -1827, 1762, 1763, 1764, 1542, + 10716, 11028, 10716, 10716, -1827, -1827, 54, 858, -1827, -1827, + 11084, -1827, 1766, 10423, 1543, 1545, 6879, 1769, 1733, 1734, + 6879, 322, 1737, 1738, 6879, 322, 4542, 881, -1827, -1827, + 13188, 439, 130, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, 10716, -1827, -1827, -1827, -1827, -1827, -1827, -1827, 10716, 10716, 10716, -1827, 9903, -1827, -1827, - -1827, -1827, 3792, -1827, -1827, 10716, -1827, 6879, 3792, 3792, - 3792, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, 10716, - 3792, -1827, 3792, -1827, 10716, -1827, -1827, -1827, -1827, 190, + -1827, -1827, 4165, -1827, -1827, 10716, -1827, 6879, 4165, 4165, + 4165, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, 10716, + 4165, -1827, 4165, -1827, 10716, -1827, -1827, -1827, -1827, 190, 190, 1778, -1827, 10716, 1779, 190, 190, 1780, 180, 10716, 1781, 1784, 910, -1827, 1785, 1565, 16, 1787, -1827, 9903, 9903, 9903, 9903, 10716, 1566, 1568, 1570, 1572, -1827, 710, 10716, -1827, 1573, 1574, 1556, -1827, 1793, -1827, -1827, -1827, - -1827, -1827, 472, 577, 14524, 13338, -1827, -1827, 1589, 3792, - 466, 14545, 13361, -1827, 543, 12025, -1827, -1827, -1827, 71, - -1827, -1827, 13039, 710, 290, 3314, -1827, 1001, 6879, 6879, + -1827, -1827, 472, 577, 14397, 13211, -1827, -1827, 1589, 4165, + 466, 14418, 13234, -1827, 543, 11921, -1827, -1827, -1827, 71, + -1827, -1827, 11193, 710, 290, 3095, -1827, 1001, 6879, 6879, 1798, 6879, 1052, 6879, 6879, 1799, 6879, 1716, 6879, 6879, 6879, 6879, 6879, 6879, 6879, 6879, 6879, 954, 1802, 1803, 9903, -1827, -180, 338, 920, 924, -1827, 944, -1827, -1827, @@ -2063,111 +2063,111 @@ static const yytype_int16 yypact[] = 950, 956, 960, -1827, -1827, 6879, 10716, 966, -180, -180, 970, 6879, 9903, 1804, 1805, 1807, 2688, -1827, -1827, 1809, -1827, 1810, 329, 10716, 329, 10716, 329, 10716, 329, 10716, - 1811, 1812, 1814, 1815, 1816, 971, 1824, 11093, -1827, -1827, - 333, 12051, 12077, -1827, -1827, 5446, -130, 290, 290, 290, + 1811, 1812, 1814, 1815, 1816, 971, 1824, 11123, -1827, -1827, + 333, 11947, 11973, -1827, -1827, 4705, -130, 290, 290, 290, 1714, 1826, 10495, 1597, 1825, 1605, 36, 64, 65, 69, -45, -1827, 337, -1827, -56, 1827, 1829, 1830, 1832, 1833, - 1834, 1836, 1838, 1840, 6879, 14797, -1827, 1005, 1601, 1843, + 1834, 1836, 1838, 1840, 6879, 10940, -1827, 1005, 1601, 1843, 1845, 1846, 1767, 1849, 1847, 1854, 10716, 6879, 6879, 6879, - 1857, 12103, -1827, 3479, 525, 1859, 1860, 1631, -1827, 1632, + 1857, 11999, -1827, 3355, 525, 1859, 1860, 1631, -1827, 1632, -1827, 1127, 1634, 6879, 1630, -1827, 190, 190, 1864, 10716, 1865, 190, 190, 1866, 10716, 1867, -1827, 710, 1868, -1827, - 1871, -1827, 1870, 13039, 13039, 13039, 13039, 795, 1646, 11583, - 1650, 710, 710, 1652, 799, 819, 14566, 1654, 710, 13039, - 2650, 3792, -1827, 1149, -1827, 2650, 3792, -1827, 336, 1655, + 1871, -1827, 1870, 11193, 11193, 11193, 11193, 795, 1646, 10588, + 1650, 710, 710, 1652, 799, 819, 14439, 1654, 710, 11193, + 2650, 4165, -1827, 1149, -1827, 2650, 4165, -1827, 336, 1655, 1874, 1187, -1827, -1827, -1827, 16, 10716, -1827, 976, -1827, - 995, 1000, 1007, 1008, 14587, 10716, 10716, 10716, 10716, 329, - 14797, 1660, 10716, 10716, 6879, 1662, -1827, -1827, -1827, -1827, + 995, 1000, 1007, 1008, 14460, 10716, 10716, 10716, 10716, 329, + 10940, 1660, 10716, 10716, 6879, 1662, -1827, -1827, -1827, -1827, 1657, -1827, 1872, 58, -1827, -1827, 1876, 10716, 9376, 1672, 1659, 1890, 1892, 10, 1665, 1674, 1789, 1789, 6879, 1893, 1679, 1680, 1896, 1899, 6879, 1735, 1681, 1902, 1905, 1906, 1907, 1911, 1912, 1913, 1914, 1915, -1827, 1917, 6879, 1014, - 1920, 710, 1696, 1695, 12129, 12155, 12181, 12207, 12233, 12259, - 12285, -1827, -1827, -1827, -1827, 1922, 14797, -1827, 710, 1923, - 1020, 6879, 6879, 6879, 1926, 1925, -1827, 6879, 6879, 14797, - 6879, 14797, 6879, 14797, 6879, 14797, 6879, 6879, 6879, 1697, + 1920, 710, 1696, 1695, 12025, 12051, 12077, 12103, 12129, 12155, + 12181, -1827, -1827, -1827, -1827, 1922, 10940, -1827, 710, 1923, + 1020, 6879, 6879, 6879, 1926, 1925, -1827, 6879, 6879, 10940, + 6879, 10940, 6879, 10940, 6879, 10940, 6879, 6879, 6879, 1697, 1698, 1927, 118, -1827, 10716, 10716, 10716, 1700, 1701, -90, 140, 145, 1702, 1710, -1827, 1279, 6879, -1827, 10716, -1827, 1936, -1827, 1937, -1827, 1941, -1827, 1942, -1827, -1827, 4482, -17, 6425, -1827, 1706, 1739, 1740, 1741, 1742, 1743, 8922, 1966, -1827, 9903, -1827, -1827, -1827, 1744, 10716, -1827, -1827, - 13384, 1967, 1974, 1813, -1827, 10716, 10716, 10716, -1827, 1976, - 196, 5065, -1827, -1827, -1827, 1749, 1978, 2650, 3792, -1827, - 1371, -1827, 2650, 3792, -1827, 1540, -1827, 329, -1827, 677, - -1827, -1827, -1827, -1827, -1827, -1827, 3792, 10716, -1827, -1827, - -1827, -1827, 3792, 1982, -1827, -1827, 25, -1827, -1827, -1827, + 13257, 1967, 1974, 1813, -1827, 10716, 10716, 10716, -1827, 1976, + 196, 5845, -1827, -1827, -1827, 1749, 1978, 2650, 4165, -1827, + 1371, -1827, 2650, 4165, -1827, 1540, -1827, 329, -1827, 677, + -1827, -1827, -1827, -1827, -1827, -1827, 4165, 10716, -1827, -1827, + -1827, -1827, 4165, 1982, -1827, -1827, 25, -1827, -1827, -1827, -1827, -1827, -1827, 1981, -147, -147, -1827, 1986, -147, -147, - 5065, 10716, 1987, 1991, 22, -1827, 1992, 13407, 16, -1827, - 1993, 1994, 1995, 1997, 1704, 14608, 14629, 14650, 14671, 6879, - 10716, 12311, 12337, 1021, -1827, 10716, 2001, -1827, -1827, 3792, - -1827, 12363, 5744, 14797, -1827, 1990, 1999, -1827, -1827, -1827, + 5845, 10716, 1987, 1991, 22, -1827, 1992, 13280, 16, -1827, + 1993, 1994, 1995, 1997, 1704, 14481, 14502, 14523, 14544, 6879, + 10716, 12207, 12233, 1021, -1827, 10716, 2001, -1827, -1827, 4165, + -1827, 12259, 5744, 10940, -1827, 1990, 1999, -1827, -1827, -1827, 10716, 10716, 290, 2005, 2006, 2007, -1827, 10716, 10716, -1827, -1827, 2008, 1928, 2011, 10716, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827, 2013, 2015, 1788, -180, -1827, -1827, -1827, 10716, 10716, 10716, 10716, 10716, 10716, 10716, -1827, -1827, -1827, 1790, 2016, 1735, 2018, 10716, -1827, 2021, 2022, 2023, 2038, 2039, 2041, 1255, 2043, 9903, 9903, 10716, -1827, 10124, - 5680, 14692, 3750, 349, 349, 290, 2044, 290, 2045, 290, - 2047, 10716, 10716, -1827, 285, 1828, 14713, -1827, -1827, -1827, - -1827, 5907, 341, -1827, 2052, 2053, 6879, 290, 290, 290, + 4996, 14565, 3477, 349, 349, 290, 2044, 290, 2045, 290, + 2047, 10716, 10716, -1827, 285, 1828, 14586, -1827, -1827, -1827, + -1827, 5446, 341, -1827, 2052, 2053, 6879, 290, 290, 290, 290, 290, 5269, 2054, -1827, 1036, 10716, 1821, 2055, -1827, - -1827, 6879, 3901, 414, 14734, -1827, -1827, 9449, 1835, 11622, - 11622, 6879, -1827, 2057, -147, -147, -1827, 2058, -147, -147, - -1827, 6879, -1827, 1837, 13039, 710, 5971, 9676, 5065, -1827, + -1827, 6879, 3748, 414, 14607, -1827, -1827, 9449, 1835, 11669, + 11669, 6879, -1827, 2057, -147, -147, -1827, 2058, -147, -147, + -1827, 6879, -1827, 1837, 11193, 710, 5971, 9676, 5845, -1827, 2059, 2061, -1827, 2062, 2064, 2065, 1888, -1827, 2012, 2071, -1827, 1848, -1827, -1827, -1827, -1827, -1827, 1807, 1811, 1812, - 1814, 2072, 684, 14797, 10716, 10716, 6879, 1844, 1042, 14797, - -1827, 2076, 10716, -1827, -1827, 1850, 1851, 6134, 6361, 210, - -1827, -1827, -1827, 6588, 6815, -1827, 1852, -1827, 7042, 2078, - -1827, 6879, 13039, 13039, 12389, 12415, 12441, 12467, 12493, 10716, - -1827, 2083, -1827, 14797, -1827, -1827, -1827, -1827, -1827, -1827, - 1855, -1827, -1827, 1043, 1048, 11556, 2046, 2085, 1858, -1827, + 1814, 2072, 684, 10940, 10716, 10716, 6879, 1844, 1042, 10940, + -1827, 2076, 10716, -1827, -1827, 1850, 1851, 5907, 6134, 210, + -1827, -1827, -1827, 6361, 6588, -1827, 1852, -1827, 6815, 2078, + -1827, 6879, 11193, 11193, 12285, 12311, 12337, 12363, 12389, 10716, + -1827, 2083, -1827, 10940, -1827, -1827, -1827, -1827, -1827, -1827, + 1855, -1827, -1827, 1043, 1048, 5024, 2046, 2085, 1858, -1827, 10716, -1827, 1856, 1875, 424, -1827, 1861, 426, -1827, 1877, - 429, -1827, 1878, 7269, 13430, 2088, 6879, 2077, 1879, 10716, + 429, -1827, 1878, 7042, 13303, 2088, 6879, 2077, 1879, 10716, -1827, -1827, 1053, 449, 451, 459, 483, 486, 9149, 530, - -1827, 2110, 7496, -1827, -1827, 1950, 10716, -1827, 10716, -1827, - -1827, 9903, 2075, 2112, 5065, 1883, 1884, 1885, -1827, 2117, + -1827, 2110, 7269, -1827, -1827, 1950, 10716, -1827, 10716, -1827, + -1827, 9903, 2075, 2112, 5845, 1883, 1884, 1885, -1827, 2117, 2118, -1827, 2121, 2123, 2124, -1827, -1827, -1827, 5510, -1827, - -1827, 3792, 14797, -1827, -1827, -1827, -1827, -1827, -1827, -1827, - -1827, 16, -1827, 1968, -1827, -1827, 10716, 12519, 12545, -1827, - 6879, 10716, 2130, -1827, 12571, -1827, -1827, 6879, 6879, 2131, + -1827, 4165, 10940, -1827, -1827, -1827, -1827, -1827, -1827, -1827, + -1827, 16, -1827, 1968, -1827, -1827, 10716, 12415, 12441, -1827, + 6879, 10716, 2130, -1827, 12467, -1827, -1827, 6879, 6879, 2131, 2134, 2135, 2136, 10716, 2137, 2138, 1054, -1827, -1827, 10716, - 10716, 10716, 10716, 10716, 7723, -1827, 6879, 857, 886, 9903, - -1827, -1827, 349, 3966, -1827, -1827, 4482, -56, 4482, -56, - 4482, -56, -1827, 2139, -1827, 1057, 6879, -1827, 7950, 2140, - 9903, 290, 290, 290, 290, 290, -1827, -1827, 10716, 8177, - 8404, 1070, -1827, -1827, 1918, 1916, -1827, 2146, -1827, -1827, + 10716, 10716, 10716, 10716, 7496, -1827, 6879, 857, 886, 9903, + -1827, -1827, 349, 3901, -1827, -1827, 4482, -56, 4482, -56, + 4482, -56, -1827, 2139, -1827, 1057, 6879, -1827, 7723, 2140, + 9903, 290, 290, 290, 290, 290, -1827, -1827, 10716, 7950, + 8177, 1070, -1827, -1827, 1918, 1916, -1827, 2146, -1827, -1827, -1827, -1827, -1827, 1071, 1245, 2148, 1074, 2153, -1827, 1929, - 14797, 10716, 10716, 1075, 14797, -1827, 10716, 1090, 1091, -1827, - -1827, -1827, -1827, -1827, -1827, 8631, -1827, -1827, 1930, 12597, - 12623, 12649, 12675, 12701, -1827, 1116, 1931, 290, 6879, 2156, - 1934, 290, 2165, 1119, 1938, 10716, -1827, 8858, 537, -6, - 9085, 541, 533, 9322, 549, 679, -1827, 6879, 2166, 2051, - 11150, 1940, -1827, 1138, 588, 591, 623, 625, 631, 2530, - -1827, -1827, 2170, 2171, -1827, -1827, 10716, -1827, 5065, 23, - -1827, -1827, 10716, 14755, 12727, 50, 12753, -1827, -1827, -1827, + 10940, 10716, 10716, 1075, 10940, -1827, 10716, 1090, 1091, -1827, + -1827, -1827, -1827, -1827, -1827, 8404, -1827, -1827, 1930, 12493, + 12519, 12545, 12571, 12597, -1827, 1116, 1931, 290, 6879, 2156, + 1934, 290, 2165, 1119, 1938, 10716, -1827, 8631, 537, -6, + 8858, 541, 533, 9085, 549, 679, -1827, 6879, 2166, 2051, + 11214, 1940, -1827, 1138, 588, 591, 623, 625, 631, 2530, + -1827, -1827, 2170, 2171, -1827, -1827, 10716, -1827, 5845, 23, + -1827, -1827, 10716, 14628, 12623, 50, 12649, -1827, -1827, -1827, -1827, -1827, 10716, 10716, 10716, 10716, 10716, 10716, 2173, 290, - 84, -1827, -1827, 290, 89, -1827, 2174, -1827, 9405, 2175, + 84, -1827, -1827, 290, 89, -1827, 2174, -1827, 9322, 2175, 10716, 2176, 2177, 10716, 2178, 2179, 10716, 2180, 1951, -1827, 10716, -1827, -56, -1827, 2182, 9903, 9903, 9903, 9903, 9149, - -1827, -1827, -1827, 11622, 1414, -1827, 1961, 1144, -1827, 10716, - -1827, 6879, 10716, 1148, 1151, 12779, 12805, 12831, 12857, 12883, - 12909, -1827, 633, -1827, 654, -1827, -1827, -1827, -1827, 1960, - 9551, -1827, -1827, 1962, 9612, -1827, -1827, 1963, 9839, -1827, - 2190, 3092, 715, 11206, -1827, 1155, 1158, 1176, 1177, 664, - 1181, 1964, 5065, 1972, 2196, 1969, 14776, 1212, 10027, -1827, + -1827, -1827, -1827, 11669, 1414, -1827, 1961, 1144, -1827, 10716, + -1827, 6879, 10716, 1148, 1151, 12675, 12701, 12727, 12753, 12779, + 12805, -1827, 633, -1827, 654, -1827, -1827, -1827, -1827, 1960, + 9405, -1827, -1827, 1962, 9551, -1827, -1827, 1963, 9612, -1827, + 2190, 2880, 715, 11253, -1827, 1155, 1158, 1176, 1177, 664, + 1181, 1964, 5845, 1972, 2196, 1969, 14649, 1212, 9839, -1827, -1827, 10716, 10716, 10716, 10716, 10716, 10716, 290, 290, -56, 2197, -56, 2199, -56, 2200, -1827, -1827, -1827, -1827, -56, 2202, 2203, 2204, 2206, 9903, 2207, 2208, -1827, -1827, -1827, - 3792, -1827, 1980, 2210, 10069, 13039, 12935, 12961, 12987, 13013, + 4165, -1827, 1980, 2210, 10027, 11193, 12831, 12857, 12883, 12909, 666, 674, 789, -1827, 1983, 1147, -1827, 1985, 1409, -1827, 1989, 1456, -1827, -1827, -1827, -1827, 1216, -1827, -1827, 1237, -1827, 2017, 6879, -1827, 2215, -1827, 10716, 10716, 10716, 10716, 10716, 10716, 2216, -56, 2217, -56, 2223, -56, -1827, 2228, - 3792, 2237, 3792, 1244, -1827, 10149, 10253, 10325, 10367, 10448, - 10588, -1827, 1547, -1827, 1571, -1827, 1584, -1827, -1827, -1827, + 4165, 2237, 4165, 1244, -1827, 10069, 10149, 10253, 10325, 10367, + 10448, -1827, 1547, -1827, 1571, -1827, 1584, -1827, -1827, -1827, 1247, -1827, 2241, -1827, -1827, -1827, -1827, 2242, 2244, 2247, - 2248, 2263, 3792, 2268, -1827, -1827, -1827, -1827, -1827, -1827, + 2248, 2263, 4165, 2268, -1827, -1827, -1827, -1827, -1827, -1827, -1827, -1827 }; @@ -2482,118 +2482,118 @@ static const yytype_int16 yytable[] = 0, 200, 521, 201, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, 0, 521, 0, 521, 0, 521, 0, 0, 522, 0, 0, 521, 0, 857, - 0, 858, 521, 0, 0, 0, 0, 1120, 0, 1196, + 0, 858, 521, 0, 0, 0, 2156, 1120, 0, 1196, 0, 1124, 0, 0, 0, 522, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 7, 8, 521, 498, 0, 0, 0, 0, + 497, 7, 8, 0, 521, 498, 0, 0, 0, 0, 0, 1221, 1222, 0, 0, 0, 0, 1225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1164, 0, 1165, 0, 0, 1167, 0, 1255, 0, 0, 1257, 0, 0, 0, 0, 0, 0, 0, 1179, 0, 1180, 0, 1181, 0, 1182, 0, 1373, 0, 0, 1271, 1187, 1273, 1274, 0, 0, 1190, 0, 0, 0, 0, 0, - 0, 1281, 0, 0, 774, 24, 25, 775, 27, 28, - 776, 30, 777, 32, 33, 34, 35, 0, 290, 0, - 37, 38, 39, 0, 0, 41, 1215, 0, 0, 0, - 0, 778, 48, 1303, 0, 50, 779, 0, 53, 54, - 780, 1304, 1305, 1306, 58, 521, 0, 0, 0, 0, - 0, 7, 8, 1309, 0, 0, 0, 0, 71, 0, + 0, 1281, 0, 774, 24, 25, 775, 27, 28, 776, + 30, 777, 32, 33, 34, 35, 0, 0, 290, 37, + 38, 39, 0, 0, 41, 0, 1215, 0, 0, 0, + 778, 48, 0, 1303, 50, 779, 0, 53, 54, 780, + 0, 1304, 1305, 1306, 0, 521, 0, 0, 0, 0, + 0, 0, 0, 1309, 0, 0, 0, 71, 0, 0, 522, 522, 522, 522, 522, 0, 0, 1316, 0, 0, 0, 0, 1319, 0, 0, 0, 0, 0, 1449, 1450, - 1451, 1323, 0, 0, 85, 86, 87, 1331, 0, 0, + 1451, 1323, 0, 85, 86, 87, 0, 1331, 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, 521, 521, - 521, 1344, 0, 0, 0, 0, 0, 0, 1350, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2156, 0, - 0, 0, 0, 774, 24, 25, 775, 27, 28, 776, - 30, 777, 32, 33, 34, 35, 0, 1307, 0, 37, - 38, 39, 0, 0, 41, 0, 0, 0, 0, 522, - 778, 48, 0, 0, 50, 779, 944, 53, 54, 780, - 0, 0, 0, 58, 0, 0, 0, 0, 521, 0, - 0, 0, 0, 0, 0, 0, 0, 71, 1404, 1405, + 521, 1344, 0, 0, 0, 0, 0, 0, 1350, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 583, 0, 0, 0, 498, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1307, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 522, + 0, 0, 0, 0, 0, 944, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 521, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1404, 1405, 0, 1406, 1407, 0, 1408, 1409, 1410, 0, 0, 1340, 1341, 1342, 1343, 0, 1416, 0, 0, 0, 0, 0, - 521, 0, 0, 85, 86, 87, 0, 0, 0, 0, + 521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1429, 0, 1431, 0, 1433, 0, 1435, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 983, 0, 0, 0, 0, 0, 0, 544, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1455, 0, 0, 0, 0, 0, 0, 0, 0, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1399, 0, 0, 0, 0, 0, 0, 0, 0, 593, - 0, 0, 0, 0, 1490, 966, 0, 0, 603, 605, + 0, 0, 0, 0, 1490, 0, 0, 0, 603, 605, 607, 0, 0, 0, 612, 0, 0, 0, 0, 0, 0, 0, 1420, 0, 0, 0, 0, 1510, 0, 0, 0, 0, 1515, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 647, 0, 7, 8, 0, 0, 0, - 1672, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 0, 583, 0, 1557, 0, 0, 0, 0, 0, + 1672, 0, 0, 0, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 823, 496, 497, 0, 0, + 0, 0, 498, 1100, 1557, 0, 0, 0, 0, 0, 0, 0, 0, 1565, 1566, 1567, 1568, 0, 0, 0, - 1571, 1572, 983, 0, 0, 0, 692, 693, 0, 0, + 1571, 1572, 1186, 0, 0, 0, 692, 693, 0, 0, 0, 0, 0, 0, 0, 1581, 1583, 0, 0, 701, - 0, 0, 0, 1100, 0, 0, 0, 774, 24, 25, + 0, 0, 0, 1496, 0, 0, 0, 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, 0, 0, 0, 37, 38, 39, 0, 0, 41, 0, 0, 0, 0, 0, 778, 48, 0, 739, 50, 779, - 0, 53, 54, 780, 0, 0, 0, 58, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 71, 0, 1759, 0, 0, 0, 0, 0, 0, + 0, 53, 54, 780, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, + 0, 71, 498, 1759, 0, 0, 0, 0, 0, 0, 0, 0, 1650, 1651, 1652, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1664, 0, 1666, 85, 86, 87, - 1186, 0, 0, 0, 0, 0, 0, 1671, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 1687, 0, 0, 0, 0, - 0, 0, 0, 1692, 1693, 1694, 1804, 1496, 1807, 0, + 0, 0, 0, 1692, 1693, 1694, 1804, 0, 1807, 0, 1810, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1823, 1824, - 1825, 1826, 1827, 1829, 0, 1714, 0, 0, 0, 988, - 0, 0, 593, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 823, 496, 497, 0, 0, 1726, - 0, 498, 0, 484, 485, 486, 487, 488, 489, 490, + 1825, 1826, 1827, 1829, 0, 1714, 0, 0, 0, 966, + 0, 0, 593, 0, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 0, 1726, + 0, 0, 498, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 1743, 0, 0, 498, 1685, 1749, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 1757, 1758, 0, 0, 498, 0, 0, 1763, 1764, 0, 0, 0, - 0, 0, 1768, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1768, 0, 0, 0, 0, 0, 378, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 0, 0, 0, 0, 0, 0, 0, 1783, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 521, 521, 1795, 0, 1796, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1813, - 1814, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 521, 0, 0, 0, 1832, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1842, 0, 0, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 1862, 498, 0, 0, 0, - 0, 0, 1071, 0, 0, 0, 1077, 0, 0, 0, - 0, 0, 0, 0, 0, 1793, 1794, 0, 378, 135, + 0, 0, 0, 521, 521, 1795, 0, 1796, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 0, 0, 1813, + 1814, 175, 176, 177, 178, 0, 0, 0, 0, 180, + 181, 182, 0, 0, 183, 0, 0, 0, 0, 0, + 521, 0, 0, 0, 1832, 188, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1842, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 0, 0, 0, 0, 498, 1862, 0, 0, 0, 0, + 0, 1800, 1071, 1801, 0, 0, 1077, 0, 0, 0, + 0, 0, 0, 0, 0, 1793, 1794, 0, 0, 0, 0, 0, 1877, 1878, 0, 0, 0, 0, 0, 0, 1884, 0, 0, 0, 0, 0, 0, 1998, 0, 2001, - 0, 2004, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2014, 2015, 2016, 2017, 2018, 1904, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 0, 0, 0, - 0, 175, 176, 177, 178, 0, 0, 0, 1913, 180, - 181, 182, 0, 0, 183, 0, 506, 135, 0, 0, - 0, 0, 0, 0, 0, 188, 0, 1928, 0, 0, + 0, 2004, 0, 0, 0, 0, 0, 0, 0, 7, + 8, 0, 2014, 2015, 2016, 2017, 2018, 1904, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 191, 192, 193, 0, 498, 0, 1913, 0, + 0, 0, 0, 0, 686, 200, 0, 201, 108, 0, + 0, 0, 0, 0, 0, 0, 0, 1928, 0, 0, 0, 0, 0, 0, 0, 0, 578, 0, 2050, 0, 0, 0, 2054, 0, 1939, 0, 1940, 0, 0, 521, - 0, 0, 0, 0, 0, 0, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 0, 1954, 0, 0, 175, - 176, 177, 178, 1197, 0, 0, 0, 180, 181, 182, - 0, 0, 183, 0, 1960, 0, 0, 0, 0, 1964, - 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, - 2102, 1975, 0, 0, 2104, 0, 0, 1979, 1980, 1981, + 0, 774, 24, 25, 775, 27, 28, 776, 30, 777, + 32, 33, 34, 35, 0, 0, 1954, 37, 38, 39, + 0, 0, 41, 1197, 0, 0, 0, 0, 778, 48, + 0, 0, 50, 779, 1960, 53, 54, 780, 0, 1964, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2102, 1975, 0, 0, 2104, 71, 0, 1979, 1980, 1981, 1982, 1983, 0, 0, 0, 0, 0, 521, 0, 0, 0, 0, 0, 0, 1997, 0, 2000, 0, 2003, 0, - 2129, 0, 191, 192, 193, 0, 0, 0, 521, 0, - 0, 1941, 0, 0, 0, 200, 2019, 201, 108, 0, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 0, 0, 0, 1284, 498, 2033, - 2034, 1288, 0, 0, 2036, 1293, 0, 1159, 0, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 2180, 2181, - 191, 192, 193, 2058, 1800, 0, 1801, 0, 0, 1993, - 0, 0, 0, 200, 0, 201, 108, 0, 1310, 0, + 2129, 85, 86, 87, 0, 0, 0, 0, 521, 0, + 0, 1941, 0, 0, 0, 0, 2019, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 0, 0, 0, 0, 498, 0, 1284, 0, 2033, + 2034, 1288, 0, 926, 2036, 1293, 0, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 0, 0, 0, 0, 498, 0, 0, 2180, 2181, + 0, 0, 1836, 2058, 1837, 0, 0, 0, 0, 1993, + 0, 0, 0, 0, 0, 0, 0, 0, 1310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2013, 0, 0, 0, 2084, 0, 0, 0, 0, 0, 1749, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2607,14 +2607,14 @@ static const yytype_int16 yytable[] = 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 2174, - 2175, 2176, 2177, 2178, 2179, 1836, 1415, 1837, 0, 0, + 2175, 2176, 2177, 2178, 2179, 1995, 1415, 1996, 0, 0, 0, 0, 1419, 895, 0, 0, 0, 0, 0, 0, 0, 0, 521, 0, 0, 2125, 2126, 2127, 2128, 2130, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 382, - 135, 0, 0, 0, 0, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 2225, 2226, 2227, 2228, 2229, 2230, - 1995, 0, 1996, 0, 0, 1480, 0, 0, 0, 162, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 506, + 135, 0, 0, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, + 0, 498, 0, 0, 2225, 2226, 2227, 2228, 2229, 2230, + 1159, 0, 0, 0, 0, 1480, 0, 0, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 1491, 1492, 1493, 0, 175, 176, 177, 178, 0, 0, 0, 0, 180, 181, 182, 0, 1505, 183, 0, 0, 0, 0, @@ -2630,7 +2630,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 1601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1615, 0, 0, 0, 191, 192, 193, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 200, 0, 201, 0, + 0, 0, 0, 0, 0, 0, 200, 0, 201, 108, 0, 0, 1632, 1633, 1634, 0, 0, 0, 1637, 1638, 0, 1639, 0, 1640, 0, 1641, 0, 1642, 1643, 1644, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, @@ -2659,22 +2659,22 @@ static const yytype_int16 yytable[] = 160, 161, 0, 0, 0, 0, 0, 1574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 172, 173, 174, 1835, 0, 0, 0, 179, 0, 0, 0, - 0, 0, 1847, 7, 8, 1349, 0, 184, 185, 186, + 0, 0, 1847, 0, 0, 1349, 0, 184, 185, 186, 0, 0, 1854, 0, 0, 187, 0, 1859, 0, 190, 0, 0, 0, 194, 0, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 1371, 1372, 0, 0, 0, 0, 0, 0, 0, 1879, 0, 0, 629, 630, 0, 0, 0, 204, 0, 0, 0, 0, 631, 0, 0, 0, 0, 208, 0, 321, 0, 0, - 0, 0, 1574, 0, 0, 774, 24, 25, 775, 27, - 28, 776, 30, 777, 32, 33, 34, 35, 0, 0, - 0, 37, 38, 39, 0, 0, 41, 0, 0, 0, - 0, 0, 778, 48, 0, 0, 50, 779, 0, 53, - 54, 780, 0, 0, 0, 58, 0, 1925, 0, 0, - 0, 0, 190, 0, 0, 0, 194, 772, 0, 71, + 0, 0, 1574, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, + 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, + 1246, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 0, 0, 1925, 0, 498, + 0, 0, 190, 0, 0, 0, 194, 772, 1296, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 202, 203, 85, 86, 87, 204, 0, + 0, 0, 0, 202, 203, 0, 0, 0, 204, 0, 0, 0, 0, 360, 469, 0, 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1574, 0, 0, 0, 0, 0, 0, 1969, 1970, @@ -2688,7 +2688,7 @@ static const yytype_int16 yytable[] = 160, 161, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 171, 172, 173, 174, 498, 0, 0, 0, 179, 0, 0, 2051, - 0, 1246, 0, 0, 0, 0, 0, 184, 185, 186, + 0, 1447, 0, 0, 0, 0, 0, 184, 185, 186, 0, 0, 0, 0, 0, 187, 0, 1618, 2068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 134, 135, 0, 1629, 0, 136, 137, 138, 0, @@ -2700,7 +2700,7 @@ static const yytype_int16 yytable[] = 0, 0, 180, 181, 182, 0, 0, 183, 0, 184, 185, 186, 1574, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 190, 1703, 0, 0, 194, 0, 1707, 0, + 0, 0, 190, 1703, 0, 0, 194, 0, 1707, 382, 135, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 203, 0, 0, 0, 204, 0, @@ -2717,9 +2717,9 @@ static const yytype_int16 yytable[] = 208, 0, 209, 0, 210, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, - 0, 0, 1296, 484, 485, 486, 487, 488, 489, 490, + 0, 0, 1798, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 191, 192, 193, 0, 0, 0, 686, + 0, 498, 0, 191, 192, 193, 0, 0, 0, 1909, 1849, 1850, 0, 0, 1852, 1853, 200, 0, 201, 0, 1856, 1857, 133, 268, 0, 0, 0, 0, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, @@ -2739,7 +2739,7 @@ static const yytype_int16 yytable[] = 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, 0, 0, 0, 37, 38, 39, 0, 0, 41, 0, 0, 0, 0, 0, 778, 48, 0, 0, 50, - 779, 0, 53, 54, 780, 0, 190, 0, 58, 0, + 779, 0, 53, 54, 780, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 71, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 1828, 0, @@ -2751,7 +2751,7 @@ static const yytype_int16 yytable[] = 155, 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 171, 172, 173, 174, 0, 0, 0, - 989, 179, 0, 0, 0, 0, 0, 0, 0, 0, + 988, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 0, 0, 1507, 1508, 0, 187, 0, 1512, 1513, 274, 0, 0, 275, 0, 0, 276, 0, 277, 0, 0, 0, 0, 0, 0, 36, @@ -2762,7 +2762,7 @@ static const yytype_int16 yytable[] = 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, - 0, 0, 1447, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1818, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, @@ -2779,14 +2779,14 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 187, 188, 0, 0, 274, 0, 0, 275, 0, 0, 276, 0, 277, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 278, 0, 49, 0, 0, + 135, 0, 0, 0, 0, 278, 0, 49, 0, 0, 279, 0, 0, 280, 0, 0, 0, 0, 0, 0, 60, 61, 62, 63, 64, 0, 0, 66, 67, 68, - 69, 70, 0, 0, 0, 74, 0, 0, 77, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, - 0, 0, 0, 0, 0, 0, 1798, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 69, 70, 0, 0, 0, 74, 0, 0, 77, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 0, 0, + 0, 0, 175, 176, 177, 178, 0, 0, 0, 0, + 180, 181, 182, 0, 0, 183, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 190, 191, 192, 193, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 200, 0, 201, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2797,8 +2797,8 @@ static const yytype_int16 yytable[] = 154, 155, 156, 157, 158, 159, 160, 161, 269, 270, 271, 272, 273, 0, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 0, 0, 0, 180, 181, 182, 0, - 0, 183, 0, 184, 185, 186, 0, 0, 0, 0, + 177, 178, 179, 191, 192, 193, 180, 181, 182, 0, + 0, 183, 0, 184, 185, 186, 200, 0, 201, 0, 0, 187, 188, 0, 0, 274, 0, 0, 275, 0, 0, 276, 0, 277, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2808,7 +2808,7 @@ static const yytype_int16 yytable[] = 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 0, 0, 1818, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1889, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 191, 192, 193, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 200, 0, 201, 108, 0, 0, 0, 0, @@ -2831,7 +2831,7 @@ static const yytype_int16 yytable[] = 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, - 1889, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, @@ -2853,7 +2853,7 @@ static const yytype_int16 yytable[] = 68, 69, 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 0, 0, 1890, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, @@ -2876,7 +2876,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, - 0, 0, 0, 0, 1891, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1892, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, @@ -2899,7 +2899,7 @@ static const yytype_int16 yytable[] = 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, - 0, 1892, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1894, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, @@ -2921,7 +2921,7 @@ static const yytype_int16 yytable[] = 67, 68, 69, 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 0, 0, 0, 0, 0, 0, 0, 1894, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1922, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, @@ -2944,7 +2944,7 @@ static const yytype_int16 yytable[] = 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 0, 0, 1922, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1937, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, @@ -2967,7 +2967,7 @@ static const yytype_int16 yytable[] = 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, - 0, 0, 1937, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, @@ -2989,7 +2989,7 @@ static const yytype_int16 yytable[] = 66, 67, 68, 69, 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 0, 0, 1984, + 498, 0, 0, 0, 0, 0, 0, 0, 0, 2011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, @@ -3012,7 +3012,7 @@ static const yytype_int16 yytable[] = 69, 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, - 0, 0, 0, 0, 0, 0, 2011, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, @@ -3035,7 +3035,7 @@ static const yytype_int16 yytable[] = 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 0, 0, 2020, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, @@ -3058,7 +3058,7 @@ static const yytype_int16 yytable[] = 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, 0, - 2021, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2041, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, @@ -3080,7 +3080,7 @@ static const yytype_int16 yytable[] = 68, 69, 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 0, 0, 2041, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2059, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, @@ -3103,7 +3103,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, - 0, 0, 0, 0, 2059, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2062, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, @@ -3126,7 +3126,7 @@ static const yytype_int16 yytable[] = 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, - 0, 2062, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2065, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, @@ -3149,7 +3149,7 @@ static const yytype_int16 yytable[] = 0, 184, 185, 186, 0, 0, 0, 0, 0, 187, 188, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 0, 0, 0, 0, 0, 0, 0, 2065, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2107, 0, 0, 0, 0, 190, 191, 192, 193, 194, 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, 0, 201, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3158,7 +3158,7 @@ static const yytype_int16 yytable[] = 0, 1582, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 190, 191, 192, 193, - 194, 2107, 0, 0, 0, 195, 196, 197, 198, 199, + 194, 2150, 0, 0, 0, 195, 196, 197, 198, 199, 200, 0, 201, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 203, 0, 0, 0, 204, 0, 0, 0, 0, 360, 0, 133, @@ -3172,13 +3172,13 @@ static const yytype_int16 yytable[] = 186, 0, 0, 0, 0, 0, 187, 188, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 133, 388, 2150, 0, 0, + 0, 0, 0, 0, 0, 133, 388, 2152, 0, 0, 0, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 171, 172, 173, 174, 498, - 0, 0, 0, 179, 0, 0, 0, 0, 2152, 0, + 0, 0, 0, 179, 0, 0, 0, 0, 2154, 0, 0, 0, 0, 0, 184, 185, 186, 0, 0, 0, 0, 0, 187, 190, 191, 192, 193, 194, 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, 0, 201, @@ -3201,7 +3201,7 @@ static const yytype_int16 yytable[] = 70, 0, 0, 0, 74, 0, 0, 77, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 0, 0, 2154, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 281, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, @@ -3220,11 +3220,11 @@ static const yytype_int16 yytable[] = 158, 159, 160, 161, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 171, 172, 173, 174, 498, 0, 0, 0, 179, 0, - 0, 0, 0, 2173, 0, 0, 0, 0, 0, 184, + 0, 0, 0, 2204, 0, 0, 0, 0, 0, 184, 185, 186, 0, 0, 0, 0, 0, 187, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 0, 0, 2204, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2243, 0, 0, 0, 0, 0, 190, 191, 192, 193, 194, 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, 0, 201, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3232,7 +3232,7 @@ static const yytype_int16 yytable[] = 0, 0, 360, 0, 0, 0, 0, 208, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 0, 190, 2243, 0, 0, 194, 0, + 0, 0, 0, 0, 190, 2244, 0, 0, 194, 0, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 203, 0, 0, 0, @@ -3242,7 +3242,7 @@ static const yytype_int16 yytable[] = 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 171, 172, 173, 174, - 498, 0, 0, 0, 179, 0, 0, 0, 0, 2244, + 498, 0, 0, 0, 179, 0, 0, 0, 0, 2245, 0, 0, 0, 0, 0, 184, 185, 186, 133, 388, 0, 1454, 0, 187, 136, 137, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, @@ -3250,11 +3250,11 @@ static const yytype_int16 yytable[] = 160, 161, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 171, 172, 173, 174, 498, 0, 0, 0, 179, 0, 0, 0, - 0, 2245, 0, 0, 0, 0, 0, 184, 185, 186, + 0, 2246, 0, 0, 0, 0, 0, 184, 185, 186, 0, 0, 0, 0, 0, 187, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 0, 0, 2246, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2247, 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, 194, 0, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3262,7 +3262,7 @@ static const yytype_int16 yytable[] = 0, 360, 0, 0, 0, 0, 208, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, - 0, 0, 190, 0, 2247, 0, 194, 0, 0, 0, + 0, 0, 190, 0, 2248, 0, 194, 0, 0, 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 203, 0, 0, 0, 204, 133, @@ -3275,428 +3275,413 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 184, 185, 186, 0, 0, 0, 0, 0, 187, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, - 0, 0, 0, 0, 2248, 0, 0, 0, 774, 24, + 497, 0, 0, 0, 0, 498, 0, 857, 0, 858, + 0, 0, 1527, 0, 0, 0, 0, 0, 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, 0, 0, 0, 37, 38, 39, 0, 0, 41, 0, 0, 0, 0, 0, 778, 48, 0, 0, 50, - 779, 0, 53, 54, 780, 0, 0, 0, 58, 0, + 779, 0, 53, 54, 780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 0, 0, 71, 0, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 190, 498, 0, 975, 194, 85, 86, - 87, 933, 195, 196, 197, 198, 199, 0, 0, 0, + 87, 933, 195, 196, 197, 198, 199, 7, 8, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 202, 203, 7, 8, 0, 204, + 0, 0, 0, 0, 202, 203, 0, 0, 0, 204, 0, 0, 0, 0, 360, 0, 0, 0, 0, 208, 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, 0, 0, 0, 37, 38, 39, 0, - 0, 41, 0, 0, 0, 0, 0, 778, 48, 0, - 1218, 50, 779, 0, 53, 54, 780, 0, 0, 0, - 58, 0, 7, 8, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 71, 0, 0, 0, 774, 24, + 0, 41, 0, 7, 8, 0, 0, 778, 48, 0, + 989, 50, 779, 0, 53, 54, 780, 0, 0, 774, + 24, 25, 775, 27, 28, 776, 30, 777, 32, 33, + 34, 35, 0, 0, 71, 37, 38, 39, 0, 0, + 41, 0, 0, 0, 0, 0, 778, 48, 0, 0, + 50, 779, 0, 53, 54, 780, 0, 0, 0, 0, + 85, 86, 87, 0, 0, 0, 0, 0, 0, 0, + 7, 8, 0, 71, 0, 774, 24, 25, 775, 27, + 28, 776, 30, 777, 32, 33, 34, 35, 0, 0, + 0, 37, 38, 39, 0, 0, 41, 0, 0, 85, + 86, 87, 778, 48, 0, 0, 50, 779, 0, 53, + 54, 780, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 7, 8, 0, 71, + 498, 0, 1218, 0, 0, 0, 0, 812, 0, 0, + 0, 0, 774, 24, 25, 775, 27, 28, 776, 30, + 777, 32, 33, 34, 35, 85, 86, 87, 37, 38, + 39, 0, 0, 41, 0, 7, 8, 0, 0, 778, + 48, 1219, 0, 50, 779, 0, 53, 54, 780, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 496, 497, 0, 0, 0, 71, 498, 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, 0, 0, 0, 37, 38, 39, 0, 0, 41, - 85, 86, 87, 0, 0, 778, 48, 0, 0, 50, - 779, 0, 53, 54, 780, 0, 0, 0, 58, 7, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 71, 0, 774, 24, 25, 775, 27, 28, - 776, 30, 777, 32, 33, 34, 35, 0, 0, 0, - 37, 38, 39, 0, 0, 41, 0, 0, 85, 86, - 87, 778, 48, 0, 0, 50, 779, 0, 53, 54, - 780, 0, 1219, 0, 58, 7, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, - 0, 774, 24, 25, 775, 27, 28, 776, 30, 777, - 32, 33, 34, 35, 0, 0, 0, 37, 38, 39, - 0, 0, 41, 0, 85, 86, 87, 0, 778, 48, - 0, 0, 50, 779, 0, 53, 54, 780, 0, 0, - 1243, 58, 7, 8, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 0, 774, 24, 25, + 0, 0, 85, 86, 87, 778, 48, 1243, 0, 50, + 779, 0, 53, 54, 780, 0, 0, 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, - 0, 0, 0, 37, 38, 39, 0, 0, 41, 0, - 0, 85, 86, 87, 778, 48, 0, 0, 50, 779, - 0, 53, 54, 780, 0, 0, 1272, 58, 7, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 71, 0, 0, 774, 24, 25, 775, 27, 28, - 776, 30, 777, 32, 33, 34, 35, 0, 0, 0, - 37, 38, 39, 0, 0, 41, 0, 85, 86, 87, - 0, 778, 48, 0, 0, 50, 779, 0, 53, 54, - 780, 0, 0, 1278, 58, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, - 774, 24, 25, 775, 27, 28, 776, 30, 777, 32, - 33, 34, 35, 0, 0, 0, 37, 38, 39, 0, - 0, 41, 0, 0, 85, 86, 87, 778, 48, 0, - 0, 50, 779, 0, 53, 54, 780, 0, 0, 1443, - 58, 0, 0, 0, 0, 0, 0, 0, -4, 1, - 0, 0, -4, 0, 71, 0, 0, 0, 0, 0, - -4, -4, 0, 0, 0, 0, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 85, 86, 87, 0, 498, 0, 0, 0, 0, 0, - -4, -4, 926, 0, 0, 0, 2071, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -4, -4, -4, 0, 0, 0, -4, -4, 0, -4, - 0, 0, 0, -4, -4, 0, -4, -4, 0, 0, + 0, 0, 71, 37, 38, 39, 7, 8, 41, 0, + 0, 0, 0, 0, 778, 48, 0, 0, 50, 779, + 0, 53, 54, 780, 0, 0, 0, 0, 85, 86, + 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 71, 0, 0, 1272, 7, 8, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 0, 0, 0, 0, 498, 0, 85, 86, 87, + 0, 0, 933, 0, 0, 0, 0, 0, 774, 24, + 25, 775, 27, 28, 776, 30, 777, 32, 33, 34, + 35, 0, 0, 0, 37, 38, 39, 0, 0, 41, + 1278, 0, 0, 0, 0, 778, 48, 0, 0, 50, + 779, 0, 53, 54, 780, 0, 0, 774, 24, 25, + 775, 27, 28, 776, 30, 777, 32, 33, 34, 35, + 0, 0, 71, 37, 38, 39, 0, 0, 41, 1443, + 0, 0, 0, 0, 778, 48, 0, 0, 50, 779, + 0, 53, 54, 780, 0, 0, 0, 0, 85, 86, + 87, 0, 0, 0, 0, -4, 1, 0, 0, -4, + 0, 71, 0, 0, 0, 0, 0, -4, -4, 0, + 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 0, 85, 86, 87, + 498, 0, 857, 0, 858, 0, 0, -4, -4, 0, + 0, 0, 0, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, -4, -4, -4, + 2071, 498, 0, -4, -4, 0, -4, 0, 934, 0, + -4, -4, 0, -4, -4, 0, 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, 0, 0, -4, -4, -4, - -4, -4, 2158, -4, -4, -4, -4, -4, -4, -4, - -4, -4, 0, -4, -4, -4, -4, -4, -4, -4, - 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, - 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, 0, 0, 0, -4, -4, - -4, 6, 0, 0, 0, 0, -4, 0, 0, 7, - 8, -4, -4, -4, -4, 0, 0, -4, 0, -4, - 0, -4, -4, -4, -4, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, 0, 0, 0, 0, 9, - 10, -4, -4, -4, 0, 0, 0, 0, 0, 0, - -4, 0, -4, 0, 0, 0, 0, 0, 0, 11, - 12, 13, 0, 0, 0, 14, 15, 0, 16, 0, - 0, 0, 17, 18, 0, 19, 20, 0, 0, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 0, 0, 36, 37, 38, 39, - 40, 0, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 0, 50, 51, 52, 53, 54, 55, 56, 0, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 0, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 7, 8, 0, 80, 81, 82, - 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, - 84, 85, 86, 87, 0, 0, 88, 0, 89, 0, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 0, 0, 0, 0, 0, 0, - 104, 105, 106, 0, 0, 0, 0, 0, 0, 107, - 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 774, 24, 25, 775, - 27, 28, 776, 30, 777, 32, 33, 34, 35, 0, - 0, 0, 37, 38, 39, 0, 0, 41, 0, 0, - 0, 0, 0, 778, 48, 0, 0, 50, 779, 0, - 53, 54, 780, 0, 0, 0, 58, 0, 0, 0, + -4, -4, 0, 0, -4, -4, -4, -4, -4, 2158, + -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, + -4, -4, -4, -4, -4, -4, -4, 0, -4, -4, + -4, -4, -4, -4, -4, -4, -4, 0, -4, -4, + -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + -4, -4, 0, 0, 0, -4, -4, -4, 6, 0, + 0, 0, 0, -4, 0, 0, 7, 8, -4, -4, + -4, -4, 0, 0, -4, 0, -4, 0, -4, -4, + -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + -4, -4, 0, 0, 0, 0, 9, 10, -4, -4, + -4, 0, 0, 0, 0, 0, 0, -4, 0, -4, + 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, + 0, 0, 14, 15, 0, 16, 0, 0, 0, 17, + 18, 0, 19, 20, 0, 0, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 0, 0, 36, 37, 38, 39, 40, 0, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 0, 50, + 51, 52, 53, 54, 55, 56, 0, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 0, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 7, 8, 0, 80, 81, 82, 0, 0, 0, + 0, 0, 83, 0, 0, 0, 0, 84, 85, 86, + 87, 0, 0, 88, 0, 89, 0, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 0, 0, 0, 0, 0, 0, 104, 105, 106, + 0, 0, 0, 0, 0, 0, 107, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 0, 0, 0, 993, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 0, 85, 86, 87, 0, - 0, 1909, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 857, 0, 858, 0, 0, 1527, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 812, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 933, + 0, 0, 0, 774, 24, 25, 775, 27, 28, 776, + 30, 777, 32, 33, 34, 35, 0, 0, 0, 37, + 38, 39, 0, 0, 41, 0, 0, 0, 0, 0, + 778, 48, 0, 0, 50, 779, 0, 53, 54, 780, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 934, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 980, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1025, 484, 485, + 494, 495, 496, 497, 0, 0, 0, 71, 498, 0, + 0, 993, 0, 0, 0, 980, 0, 0, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1033, 484, 485, 486, 487, 488, 489, + 496, 497, 0, 85, 86, 87, 498, 0, 0, 0, + 0, 0, 0, 1025, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1034, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1033, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1035, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1034, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1050, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1035, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1170, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1050, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1171, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1170, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1173, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1171, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1227, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1173, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1228, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1227, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1229, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1228, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1266, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1229, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1367, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1266, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1445, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1367, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1446, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1445, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1495, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1446, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1621, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1495, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1622, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1621, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1623, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1622, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1624, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1623, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1625, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1624, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1626, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1625, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1627, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1626, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1744, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1627, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1745, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1744, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1752, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1745, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1899, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1752, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1900, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1899, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1901, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1900, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 1902, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1901, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 1903, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 1902, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 1961, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1903, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 1962, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 1961, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 1966, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 1962, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 2043, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1966, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 2044, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 2043, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 2045, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 2044, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 2046, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 2045, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 2047, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 2046, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 2089, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 2047, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 2092, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 2089, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 2141, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 2092, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 2142, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 2141, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 2143, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 2142, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 2144, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 2143, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 2145, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 2144, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 0, 0, 0, 2146, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 2145, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 0, 0, 0, 2206, + 0, 0, 498, 0, 0, 0, 0, 0, 0, 2146, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 2207, 484, 485, 486, 487, + 0, 0, 0, 0, 0, 2206, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, - 0, 2208, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 2207, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 0, 0, 0, 2209, 484, 485, + 498, 0, 0, 0, 0, 0, 0, 2208, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 857, 0, - 858, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 0, 0, 766, 484, 485, 486, 487, 488, 489, + 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, + 0, 0, 0, 2209, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 986, 484, 485, 486, + 0, 0, 498, 0, 0, 0, 766, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 0, 0, 1005, + 497, 0, 0, 0, 0, 498, 0, 0, 0, 986, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 1012, 484, 485, 486, 487, 488, 489, 490, + 0, 0, 1005, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 0, 0, 1113, 484, 485, 486, 487, + 0, 498, 0, 0, 0, 1012, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 0, 0, 1163, 484, + 0, 0, 0, 0, 498, 0, 0, 0, 1113, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, - 0, 1189, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1163, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 0, 0, 1259, 484, 485, 486, 487, 488, + 498, 0, 0, 0, 1189, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 0, 0, 1260, 484, 485, + 0, 0, 0, 498, 0, 0, 0, 1259, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, 0, - 1264, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 1260, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 0, 0, 1265, 484, 485, 486, 487, 488, 489, + 0, 0, 0, 1264, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 0, 0, 1298, 484, 485, 486, + 0, 0, 498, 0, 0, 0, 1265, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 0, 0, 1360, + 497, 0, 0, 0, 0, 498, 0, 0, 0, 1298, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 0, 0, 1365, 484, 485, 486, 487, 488, 489, 490, + 0, 0, 1360, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 0, 0, 1688, 484, 485, 486, 487, + 0, 498, 0, 0, 0, 1365, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 0, 0, 1731, 484, + 0, 0, 0, 0, 498, 0, 0, 0, 1688, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, 0, - 0, 1923, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1731, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 762, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 822, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 826, 484, 485, 486, 487, 488, + 498, 0, 0, 0, 1923, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 827, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 762, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 829, 484, 485, 486, + 0, 0, 0, 0, 498, 0, 822, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 831, 484, 485, + 497, 0, 0, 0, 0, 498, 0, 826, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 832, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 827, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 834, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 829, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 836, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 831, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 837, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 832, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 838, 484, 485, 486, 487, 488, 489, 490, + 498, 0, 834, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 839, 484, 485, 486, 487, 488, 489, + 0, 498, 0, 836, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 840, 484, 485, 486, 487, 488, + 0, 0, 498, 0, 837, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 841, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 838, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 843, 484, 485, 486, + 0, 0, 0, 0, 498, 0, 839, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 844, 484, 485, + 497, 0, 0, 0, 0, 498, 0, 840, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 845, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 841, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 886, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 843, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 896, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 844, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 957, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 845, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 975, 484, 485, 486, 487, 488, 489, 490, + 498, 0, 886, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 976, 484, 485, 486, 487, 488, 489, + 0, 498, 0, 896, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 977, 484, 485, 486, 487, 488, + 0, 0, 498, 0, 957, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 978, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 975, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 984, 484, 485, 486, + 0, 0, 0, 0, 498, 0, 976, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 985, 484, 485, + 497, 0, 0, 0, 0, 498, 0, 977, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 992, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 978, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 1001, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 984, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 1011, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 985, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 1112, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 992, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 1140, 484, 485, 486, 487, 488, 489, 490, + 498, 0, 1001, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 1145, 484, 485, 486, 487, 488, 489, + 0, 498, 0, 1011, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 1158, 484, 485, 486, 487, 488, + 0, 0, 498, 0, 1112, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 1162, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 1140, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 1188, 484, 485, 486, + 0, 0, 0, 0, 498, 0, 1145, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 1193, 484, 485, + 497, 0, 0, 0, 0, 498, 0, 1158, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 1194, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 1162, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 1195, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 1188, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 1201, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 1193, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 1210, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1194, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 1211, 484, 485, 486, 487, 488, 489, 490, + 498, 0, 1195, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 1212, 484, 485, 486, 487, 488, 489, + 0, 498, 0, 1201, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 1245, 484, 485, 486, 487, 488, + 0, 0, 498, 0, 1210, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 1247, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 1211, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 1248, 484, 485, 486, + 0, 0, 0, 0, 498, 0, 1212, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 1249, 484, 485, + 497, 0, 0, 0, 0, 498, 0, 1245, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 1250, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 1247, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 1251, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 1248, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 1252, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 1249, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 1253, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1250, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 1258, 484, 485, 486, 487, 488, 489, 490, + 498, 0, 1251, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 1359, 484, 485, 486, 487, 488, 489, + 0, 498, 0, 1252, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 1364, 484, 485, 486, 487, 488, + 0, 0, 498, 0, 1253, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 1539, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 1258, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498, 0, 1564, 484, 485, 486, + 0, 0, 0, 0, 498, 0, 1359, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 0, 0, 0, 0, 498, 0, 1737, 484, 485, + 497, 0, 0, 0, 0, 498, 0, 1364, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 0, 0, 0, 0, 498, 0, 1738, 484, + 496, 497, 0, 0, 0, 0, 498, 0, 1539, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 0, 0, 0, 0, 498, 0, 1739, + 495, 496, 497, 0, 0, 0, 0, 498, 0, 1564, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, 0, - 1740, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 1737, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, 498, - 0, 1799, 484, 485, 486, 487, 488, 489, 490, 491, + 0, 1738, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, 0, - 498, 0, 1817, 484, 485, 486, 487, 488, 489, 490, + 498, 0, 1739, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, 0, - 0, 498, 0, 1840, 484, 485, 486, 487, 488, 489, + 0, 498, 0, 1740, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, 0, - 0, 0, 498, 0, 2088, 484, 485, 486, 487, 488, + 0, 0, 498, 0, 1799, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 0, - 0, 0, 0, 498, 0, 2171, 484, 485, 486, 487, + 0, 0, 0, 498, 0, 1817, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 0, 0, 0, 0, 498 + 0, 0, 0, 0, 498, 0, 1840, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 0, 0, 0, 0, 498, 0, 2088, 484, 485, + 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, + 496, 497, 0, 0, 0, 0, 498, 0, 2171 }; static const yytype_int16 yycheck[] = @@ -3989,51 +3974,51 @@ static const yytype_int16 yycheck[] = -1, 201, 864, 203, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 877, -1, 879, -1, 881, -1, 883, -1, -1, 1909, -1, -1, 889, -1, 229, - -1, 231, 894, -1, -1, -1, -1, 807, -1, 901, + -1, 231, 894, -1, -1, -1, 6, 807, -1, 901, -1, 811, -1, -1, -1, 1930, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, 12, 13, 926, 227, -1, -1, -1, -1, + 222, 12, 13, -1, 926, 227, -1, -1, -1, -1, -1, 933, 934, -1, -1, -1, -1, 939, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 859, -1, 861, -1, -1, 864, -1, 958, -1, -1, 961, -1, -1, -1, -1, -1, -1, -1, 877, -1, 879, -1, 881, -1, 883, -1, 1134, -1, -1, 980, 889, 982, 983, -1, -1, 894, -1, -1, -1, -1, -1, - -1, 993, -1, -1, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, -1, 47, -1, - 100, 101, 102, -1, -1, 105, 926, -1, -1, -1, - -1, 111, 112, 1025, -1, 115, 116, -1, 118, 119, - 120, 1033, 1034, 1035, 124, 1037, -1, -1, -1, -1, - -1, 12, 13, 1045, -1, -1, -1, -1, 138, -1, + -1, 993, -1, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, -1, -1, 47, 100, + 101, 102, -1, -1, 105, -1, 926, -1, -1, -1, + 111, 112, -1, 1025, 115, 116, -1, 118, 119, 120, + -1, 1033, 1034, 1035, -1, 1037, -1, -1, -1, -1, + -1, -1, -1, 1045, -1, -1, -1, 138, -1, -1, 2075, 2076, 2077, 2078, 2079, -1, -1, 1059, -1, -1, -1, -1, 1064, -1, -1, -1, -1, -1, 1227, 1228, - 1229, 1073, -1, -1, 164, 165, 166, 1079, -1, -1, + 1229, 1073, -1, 164, 165, 166, -1, 1079, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1089, 1090, 1091, - 1092, 1093, -1, -1, -1, -1, -1, -1, 1100, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 6, -1, - -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, -1, 1037, -1, 100, - 101, 102, -1, -1, 105, -1, -1, -1, -1, 2164, - 111, 112, -1, -1, 115, 116, 236, 118, 119, 120, - -1, -1, -1, 124, -1, -1, -1, -1, 1160, -1, - -1, -1, -1, -1, -1, -1, -1, 138, 1170, 1171, + 1092, 1093, -1, -1, -1, -1, -1, -1, 1100, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 8, -1, -1, -1, 227, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1037, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2164, + -1, -1, -1, -1, -1, 236, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1160, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1170, 1171, -1, 1173, 1174, -1, 1176, 1177, 1178, -1, -1, 1089, 1090, 1091, 1092, -1, 1186, -1, -1, -1, -1, -1, - 1192, -1, -1, 164, 165, 166, -1, -1, -1, -1, + 1192, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1203, -1, 1205, -1, 1207, -1, 1209, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1232, -1, -1, -1, -1, -1, -1, -1, -1, 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1160, -1, -1, -1, -1, -1, -1, -1, -1, 298, - -1, -1, -1, -1, 1266, 236, -1, -1, 307, 308, + -1, -1, -1, -1, 1266, -1, -1, -1, 307, 308, 309, -1, -1, -1, 313, -1, -1, -1, -1, -1, -1, -1, 1192, -1, -1, -1, -1, 1289, -1, -1, -1, -1, 1294, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 342, -1, 12, 13, -1, -1, -1, - 1469, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, - -1, -1, 8, -1, 1336, -1, -1, -1, -1, -1, + 1469, -1, -1, -1, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, + -1, -1, 227, 8, 1336, -1, -1, -1, -1, -1, -1, -1, -1, 1345, 1346, 1347, 1348, -1, -1, -1, 1352, 1353, 8, -1, -1, -1, 395, 396, -1, -1, -1, -1, -1, -1, -1, 1367, 1368, -1, -1, 408, @@ -4041,66 +4026,66 @@ static const yytype_int16 yycheck[] = 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, 100, 101, 102, -1, -1, 105, -1, -1, -1, -1, -1, 111, 112, -1, 446, 115, 116, - -1, 118, 119, 120, -1, -1, -1, 124, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 138, -1, 1592, -1, -1, -1, -1, -1, -1, + -1, 118, 119, 120, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, + -1, 138, 227, 1592, -1, -1, -1, -1, -1, -1, -1, -1, 1444, 1445, 1446, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1456, -1, 1458, 164, 165, 166, - 8, -1, -1, -1, -1, -1, -1, 1469, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1469, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1482, -1, -1, -1, -1, 1487, -1, -1, -1, -1, - -1, -1, -1, 1495, 1496, 1497, 1655, 8, 1657, -1, + -1, -1, -1, 1495, 1496, 1497, 1655, -1, 1657, -1, 1659, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1677, 1678, 1679, 1680, 1681, 1682, -1, 1527, -1, -1, -1, 236, - -1, -1, 571, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, -1, -1, 1551, - -1, 227, -1, 209, 210, 211, 212, 213, 214, 215, + -1, -1, 571, -1, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, -1, 1551, + -1, -1, 227, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, 1570, -1, -1, 227, 1482, 1575, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 1590, 1591, -1, -1, 227, -1, -1, 1597, 1598, -1, -1, -1, - -1, -1, 1604, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1604, -1, -1, -1, -1, -1, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1621, 1622, 1623, 1624, 1625, 1626, 1627, -1, -1, -1, -1, -1, -1, -1, 1635, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1645, 1646, 1647, -1, 1649, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1661, - 1662, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, - 1682, -1, -1, -1, 1686, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1697, -1, -1, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, -1, -1, -1, 1717, 227, -1, -1, -1, - -1, -1, 761, -1, -1, -1, 765, -1, -1, -1, - -1, -1, -1, -1, -1, 1645, 1646, -1, 4, 5, + -1, -1, -1, 1645, 1646, 1647, -1, 1649, 44, 45, + 46, 47, 48, 49, 50, 51, 52, -1, -1, 1661, + 1662, 57, 58, 59, 60, -1, -1, -1, -1, 65, + 66, 67, -1, -1, 70, -1, -1, -1, -1, -1, + 1682, -1, -1, -1, 1686, 81, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1697, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + -1, -1, -1, -1, 227, 1717, -1, -1, -1, -1, + -1, 234, 761, 236, -1, -1, 765, -1, -1, -1, + -1, -1, -1, -1, -1, 1645, 1646, -1, -1, -1, -1, -1, 1744, 1745, -1, -1, -1, -1, -1, -1, 1752, -1, -1, -1, -1, -1, -1, 1916, -1, 1918, - -1, 1920, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1931, 1932, 1933, 1934, 1935, 1779, 44, 45, - 46, 47, 48, 49, 50, 51, 52, -1, -1, -1, - -1, 57, 58, 59, 60, -1, -1, -1, 1800, 65, - 66, 67, -1, -1, 70, -1, 4, 5, -1, -1, - -1, -1, -1, -1, -1, 81, -1, 1819, -1, -1, + -1, 1920, -1, -1, -1, -1, -1, -1, -1, 12, + 13, -1, 1931, 1932, 1933, 1934, 1935, 1779, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 188, 189, 190, -1, 227, -1, 1800, -1, + -1, -1, -1, -1, 235, 201, -1, 203, 204, -1, + -1, -1, -1, -1, -1, -1, -1, 1819, -1, -1, -1, -1, -1, -1, -1, -1, 1828, -1, 1987, -1, -1, -1, 1991, -1, 1836, -1, 1838, -1, -1, 1841, - -1, -1, -1, -1, -1, -1, 44, 45, 46, 47, - 48, 49, 50, 51, 52, -1, 1858, -1, -1, 57, - 58, 59, 60, 902, -1, -1, -1, 65, 66, 67, - -1, -1, 70, -1, 1876, -1, -1, -1, -1, 1881, - -1, -1, -1, 81, -1, -1, -1, -1, -1, -1, - 2049, 1893, -1, -1, 2053, -1, -1, 1899, 1900, 1901, + -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, -1, -1, 1858, 100, 101, 102, + -1, -1, 105, 902, -1, -1, -1, -1, 111, 112, + -1, -1, 115, 116, 1876, 118, 119, 120, -1, 1881, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2049, 1893, -1, -1, 2053, 138, -1, 1899, 1900, 1901, 1902, 1903, -1, -1, -1, -1, -1, 1909, -1, -1, -1, -1, -1, -1, 1916, -1, 1918, -1, 1920, -1, - 2079, -1, 188, 189, 190, -1, -1, -1, 1930, -1, - -1, 1841, -1, -1, -1, 201, 1938, 203, 204, -1, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, -1, -1, -1, 996, 227, 1961, - 1962, 1000, -1, -1, 1966, 1004, -1, 236, -1, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, -1, -1, -1, -1, 227, 2147, 2148, - 188, 189, 190, 1995, 234, -1, 236, -1, -1, 1909, - -1, -1, -1, 201, -1, 203, 204, -1, 1047, -1, + 2079, 164, 165, 166, -1, -1, -1, -1, 1930, -1, + -1, 1841, -1, -1, -1, -1, 1938, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, -1, -1, 227, -1, 996, -1, 1961, + 1962, 1000, -1, 235, 1966, 1004, -1, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, -1, -1, 227, -1, -1, 2147, 2148, + -1, -1, 234, 1995, 236, -1, -1, -1, -1, 1909, + -1, -1, -1, -1, -1, -1, -1, -1, 1047, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1930, -1, -1, -1, 2026, -1, -1, -1, -1, -1, 2032, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -4118,10 +4103,10 @@ static const yytype_int16 yycheck[] = -1, -1, 1191, 587, -1, -1, -1, -1, -1, -1, -1, -1, 2164, -1, -1, 2075, 2076, 2077, 2078, 2079, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, - 5, -1, -1, -1, -1, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, - -1, -1, -1, 227, 2206, 2207, 2208, 2209, 2210, 2211, - 234, -1, 236, -1, -1, 1254, -1, -1, -1, 44, + 5, -1, -1, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, + -1, 227, -1, -1, 2206, 2207, 2208, 2209, 2210, 2211, + 236, -1, -1, -1, -1, 1254, -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, 1267, 1268, 1269, -1, 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, -1, 1283, 70, -1, -1, -1, -1, @@ -4137,7 +4122,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, 1384, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1398, -1, -1, -1, 188, 189, 190, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 201, -1, 203, -1, + -1, -1, -1, -1, -1, -1, 201, -1, 203, 204, -1, -1, 1421, 1422, 1423, -1, -1, -1, 1427, 1428, -1, 1430, -1, 1432, -1, 1434, -1, 1436, 1437, 1438, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, @@ -4166,22 +4151,22 @@ static const yytype_int16 yycheck[] = 35, 36, -1, -1, -1, -1, -1, 1676, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, 54, 55, 56, 1691, -1, -1, -1, 61, -1, -1, -1, - -1, -1, 1701, 12, 13, 1099, -1, 72, 73, 74, + -1, -1, 1701, -1, -1, 1099, -1, 72, 73, 74, -1, -1, 1711, -1, -1, 80, -1, 1716, -1, 187, -1, -1, -1, 191, -1, -1, -1, -1, 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, 1132, 1133, -1, -1, -1, -1, -1, -1, -1, 1746, -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, -1, -1, 228, -1, -1, -1, -1, 233, -1, 235, -1, -1, - -1, -1, 1771, -1, -1, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, - -1, 100, 101, 102, -1, -1, 105, -1, -1, -1, - -1, -1, 111, 112, -1, -1, 115, 116, -1, 118, - 119, 120, -1, -1, -1, 124, -1, 1816, -1, -1, - -1, -1, 187, -1, -1, -1, 191, 476, -1, 138, + -1, -1, 1771, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, + -1, 227, -1, -1, -1, -1, -1, -1, -1, -1, + 236, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, -1, -1, 1816, -1, 227, + -1, -1, 187, -1, -1, -1, 191, 476, 236, -1, -1, 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 218, 219, 164, 165, 166, 223, -1, + -1, -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, -1, -1, 228, 229, -1, -1, -1, 233, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1880, -1, -1, -1, -1, -1, -1, 1887, 1888, @@ -4207,7 +4192,7 @@ static const yytype_int16 yycheck[] = -1, -1, 65, 66, 67, -1, -1, 70, -1, 72, 73, 74, 2091, -1, -1, -1, -1, 80, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 187, 1507, -1, -1, 191, -1, 1512, -1, + -1, -1, 187, 1507, -1, -1, 191, -1, 1512, 4, 5, 196, 197, 198, 199, 200, -1, -1, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, -1, @@ -4246,7 +4231,7 @@ static const yytype_int16 yycheck[] = 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, 100, 101, 102, -1, -1, 105, -1, -1, -1, -1, -1, 111, 112, -1, -1, 115, - 116, -1, 118, 119, 120, -1, 187, -1, 124, -1, + 116, -1, 118, 119, 120, -1, 187, -1, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, -1, 138, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 218, 219, -1, @@ -4286,14 +4271,14 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, 80, 81, -1, -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 111, -1, 113, -1, -1, + 5, -1, -1, -1, -1, 111, -1, 113, -1, -1, 116, -1, -1, 119, -1, -1, -1, -1, -1, -1, 126, 127, 128, 129, 130, -1, -1, 133, 134, 135, - 136, 137, -1, -1, -1, 141, -1, -1, 144, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, - -1, -1, -1, -1, -1, -1, 236, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 136, 137, -1, -1, -1, 141, -1, -1, 144, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, -1, + -1, -1, 57, 58, 59, 60, -1, -1, -1, -1, + 65, 66, 67, -1, -1, 70, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, -1, -1, -1, -1, 187, 188, 189, 190, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, 201, -1, 203, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -4304,8 +4289,8 @@ static const yytype_int16 yycheck[] = 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, -1, -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, -1, -1, -1, 65, 66, 67, -1, - -1, 70, -1, 72, 73, 74, -1, -1, -1, -1, + 59, 60, 61, 188, 189, 190, 65, 66, 67, -1, + -1, 70, -1, 72, 73, 74, 201, -1, 203, -1, -1, 80, 81, -1, -1, 84, -1, -1, 87, -1, -1, 90, -1, 92, -1, -1, -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -4782,109 +4767,109 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, 72, 73, 74, -1, -1, -1, -1, -1, 80, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, - -1, -1, -1, -1, 236, -1, -1, -1, 84, 85, + 222, -1, -1, -1, -1, 227, -1, 229, -1, 231, + -1, -1, 234, -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, 100, 101, 102, -1, -1, 105, -1, -1, -1, -1, -1, 111, 112, -1, -1, 115, - 116, -1, 118, 119, 120, -1, -1, -1, 124, -1, + 116, -1, 118, 119, 120, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 13, -1, -1, 138, -1, -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, 187, 227, -1, 229, 191, 164, 165, - 166, 234, 196, 197, 198, 199, 200, -1, -1, -1, + 166, 234, 196, 197, 198, 199, 200, 12, 13, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 218, 219, 12, 13, -1, 223, + -1, -1, -1, -1, 218, 219, -1, -1, -1, 223, -1, -1, -1, -1, 228, -1, -1, -1, -1, 233, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, 100, 101, 102, -1, - -1, 105, -1, -1, -1, -1, -1, 111, 112, -1, - 236, 115, 116, -1, 118, 119, 120, -1, -1, -1, - 124, -1, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, -1, -1, -1, 84, 85, + -1, 105, -1, 12, 13, -1, -1, 111, 112, -1, + 236, 115, 116, -1, 118, 119, 120, -1, -1, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, -1, -1, 138, 100, 101, 102, -1, -1, + 105, -1, -1, -1, -1, -1, 111, 112, -1, -1, + 115, 116, -1, 118, 119, 120, -1, -1, -1, -1, + 164, 165, 166, -1, -1, -1, -1, -1, -1, -1, + 12, 13, -1, 138, -1, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, + -1, 100, 101, 102, -1, -1, 105, -1, -1, 164, + 165, 166, 111, 112, -1, -1, 115, 116, -1, 118, + 119, 120, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 12, 13, -1, 138, + 227, -1, 236, -1, -1, -1, -1, 234, -1, -1, + -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 164, 165, 166, 100, 101, + 102, -1, -1, 105, -1, 12, 13, -1, -1, 111, + 112, 236, -1, 115, 116, -1, 118, 119, 120, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, -1, -1, -1, 138, 227, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, 100, 101, 102, -1, -1, 105, - 164, 165, 166, -1, -1, 111, 112, -1, -1, 115, - 116, -1, 118, 119, 120, -1, -1, -1, 124, 12, - 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 138, -1, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, - 100, 101, 102, -1, -1, 105, -1, -1, 164, 165, - 166, 111, 112, -1, -1, 115, 116, -1, 118, 119, - 120, -1, 236, -1, 124, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, - -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, -1, -1, -1, 100, 101, 102, - -1, -1, 105, -1, 164, 165, 166, -1, 111, 112, - -1, -1, 115, 116, -1, 118, 119, 120, -1, -1, - 236, 124, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, -1, 84, 85, 86, + -1, -1, 164, 165, 166, 111, 112, 236, -1, 115, + 116, -1, 118, 119, 120, -1, -1, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - -1, -1, -1, 100, 101, 102, -1, -1, 105, -1, - -1, 164, 165, 166, 111, 112, -1, -1, 115, 116, - -1, 118, 119, 120, -1, -1, 236, 124, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 138, -1, -1, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, - 100, 101, 102, -1, -1, 105, -1, 164, 165, 166, - -1, 111, 112, -1, -1, 115, 116, -1, 118, 119, - 120, -1, -1, 236, 124, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, -1, -1, -1, 100, 101, 102, -1, - -1, 105, -1, -1, 164, 165, 166, 111, 112, -1, - -1, 115, 116, -1, 118, 119, 120, -1, -1, 236, - 124, -1, -1, -1, -1, -1, -1, -1, 0, 1, - -1, -1, 4, -1, 138, -1, -1, -1, -1, -1, - 12, 13, -1, -1, -1, -1, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 164, 165, 166, -1, 227, -1, -1, -1, -1, -1, - 42, 43, 235, -1, -1, -1, 236, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 62, 63, 64, -1, -1, -1, 68, 69, -1, 71, - -1, -1, -1, 75, 76, -1, 78, 79, -1, -1, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, -1, -1, 99, 100, 101, - 102, 103, 236, 105, 106, 107, 108, 109, 110, 111, - 112, 113, -1, 115, 116, 117, 118, 119, 120, 121, - -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, - -1, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, -1, -1, -1, 150, 151, - 152, 4, -1, -1, -1, -1, 158, -1, -1, 12, - 13, 163, 164, 165, 166, -1, -1, 169, -1, 171, - -1, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, -1, -1, -1, -1, 42, - 43, 193, 194, 195, -1, -1, -1, -1, -1, -1, - 202, -1, 204, -1, -1, -1, -1, -1, -1, 62, - 63, 64, -1, -1, -1, 68, 69, -1, 71, -1, - -1, -1, 75, 76, -1, 78, 79, -1, -1, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, -1, -1, 99, 100, 101, 102, - 103, -1, 105, 106, 107, 108, 109, 110, 111, 112, - 113, -1, 115, 116, 117, 118, 119, 120, 121, -1, - 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 12, 13, -1, 150, 151, 152, - -1, -1, -1, -1, -1, 158, -1, -1, -1, -1, - 163, 164, 165, 166, -1, -1, 169, -1, 171, -1, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, -1, -1, -1, -1, -1, -1, - 193, 194, 195, -1, -1, -1, -1, -1, -1, 202, - -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, -1, - -1, -1, 100, 101, 102, -1, -1, 105, -1, -1, - -1, -1, -1, 111, 112, -1, -1, 115, 116, -1, - 118, 119, 120, -1, -1, -1, 124, -1, -1, -1, + -1, -1, 138, 100, 101, 102, 12, 13, 105, -1, + -1, -1, -1, -1, 111, 112, -1, -1, 115, 116, + -1, 118, 119, 120, -1, -1, -1, -1, 164, 165, + 166, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 138, -1, -1, 236, 12, 13, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, -1, -1, 227, -1, 164, 165, 166, + -1, -1, 234, -1, -1, -1, -1, -1, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, -1, -1, -1, 100, 101, 102, -1, -1, 105, + 236, -1, -1, -1, -1, 111, 112, -1, -1, 115, + 116, -1, 118, 119, 120, -1, -1, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + -1, -1, 138, 100, 101, 102, -1, -1, 105, 236, + -1, -1, -1, -1, 111, 112, -1, -1, 115, 116, + -1, 118, 119, 120, -1, -1, -1, -1, 164, 165, + 166, -1, -1, -1, -1, 0, 1, -1, -1, 4, + -1, 138, -1, -1, -1, -1, -1, 12, 13, -1, + -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, -1, 164, 165, 166, + 227, -1, 229, -1, 231, -1, -1, 42, 43, -1, + -1, -1, -1, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 62, 63, 64, + 236, 227, -1, 68, 69, -1, 71, -1, 234, -1, + 75, 76, -1, 78, 79, -1, -1, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, -1, -1, 99, 100, 101, 102, 103, 236, + 105, 106, 107, 108, 109, 110, 111, 112, 113, -1, + 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, + 125, 126, 127, 128, 129, 130, 131, -1, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, -1, -1, -1, 150, 151, 152, 4, -1, + -1, -1, -1, 158, -1, -1, 12, 13, 163, 164, + 165, 166, -1, -1, 169, -1, 171, -1, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, -1, -1, -1, -1, 42, 43, 193, 194, + 195, -1, -1, -1, -1, -1, -1, 202, -1, 204, + -1, -1, -1, -1, -1, -1, 62, 63, 64, -1, + -1, -1, 68, 69, -1, 71, -1, -1, -1, 75, + 76, -1, 78, 79, -1, -1, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, -1, -1, 99, 100, 101, 102, 103, -1, 105, + 106, 107, 108, 109, 110, 111, 112, 113, -1, 115, + 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, + 126, 127, 128, 129, 130, 131, -1, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 12, 13, -1, 150, 151, 152, -1, -1, -1, + -1, -1, 158, -1, -1, -1, -1, 163, 164, 165, + 166, -1, -1, 169, -1, 171, -1, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, -1, -1, -1, -1, -1, -1, 193, 194, 195, + -1, -1, -1, -1, -1, -1, 202, -1, 204, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 138, -1, -1, -1, 142, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, - -1, -1, -1, 227, -1, -1, 164, 165, 166, -1, - -1, 235, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, - 227, -1, 229, -1, 231, -1, -1, 234, 209, 210, + -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, -1, -1, -1, 100, + 101, 102, -1, -1, 105, -1, -1, -1, -1, -1, + 111, 112, -1, -1, 115, 116, -1, 118, 119, 120, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, -1, -1, -1, 138, 227, -1, + -1, 142, -1, -1, -1, 234, -1, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, + 221, 222, -1, 164, 165, 166, 227, -1, -1, -1, -1, -1, -1, 234, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, 234, @@ -5016,21 +5001,6 @@ static const yytype_int16 yycheck[] = 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, -1, 234, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, - -1, -1, 227, -1, -1, -1, -1, -1, -1, 234, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, - -1, -1, -1, -1, -1, 234, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - -1, -1, -1, -1, 227, -1, -1, -1, -1, -1, - -1, 234, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, - 227, -1, -1, -1, -1, -1, -1, 234, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, -1, -1, -1, -1, 227, -1, 229, -1, - 231, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, - -1, -1, -1, 231, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, 231, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, @@ -5069,11 +5039,7 @@ static const yytype_int16 yycheck[] = 220, 221, 222, -1, -1, -1, -1, 227, -1, -1, -1, 231, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, - 227, -1, 229, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, - -1, 227, -1, 229, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, - -1, -1, 227, -1, 229, 209, 210, 211, 212, 213, + 227, -1, -1, -1, 231, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, 229, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, @@ -5203,7 +5169,11 @@ static const yytype_int16 yycheck[] = 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, -1, -1, -1, 227, -1, 229, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - -1, -1, -1, -1, 227 + -1, -1, -1, -1, 227, -1, 229, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, -1, -1, 227, -1, 229, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, -1, -1, -1, 227, -1, 229 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -8111,30 +8081,6 @@ yyreduce: case 173: #line 1756 "Gmsh.y" - { - for (int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ - double dnum; - List_Read((yyvsp[(3) - (4)].l), i, &dnum); - int num = (int) fabs(dnum); - Curve *c = FindCurve(num); - if (c){ - c->degenerated = true; - } - else{ - GEdge *ge = GModel::current()->getEdgeByTag(num); - if (!ge){ - yymsg(0, "Curve %d does not exist", num); - } - else{ - ge->setTooSmall(true); - } - } - } - ;} - break; - - case 174: -#line 1777 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8150,8 +8096,8 @@ yyreduce: ;} break; - case 175: -#line 1791 "Gmsh.y" + case 174: +#line 1770 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (8)].l), tags); @@ -8187,8 +8133,8 @@ yyreduce: ;} break; - case 176: -#line 1825 "Gmsh.y" + case 175: +#line 1804 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (8)].l), tags); @@ -8227,8 +8173,8 @@ yyreduce: ;} break; - case 177: -#line 1862 "Gmsh.y" + case 176: +#line 1841 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8244,8 +8190,8 @@ yyreduce: ;} break; - case 178: -#line 1876 "Gmsh.y" + case 177: +#line 1855 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8261,8 +8207,8 @@ yyreduce: ;} break; - case 179: -#line 1891 "Gmsh.y" + case 178: +#line 1870 "Gmsh.y" { int num = (int)(yyvsp[(3) - (11)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (11)].l), tags); @@ -8283,8 +8229,8 @@ yyreduce: ;} break; - case 180: -#line 1910 "Gmsh.y" + case 179: +#line 1889 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8295,8 +8241,8 @@ yyreduce: ;} break; - case 181: -#line 1919 "Gmsh.y" + case 180: +#line 1898 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8312,8 +8258,8 @@ yyreduce: ;} break; - case 182: -#line 1933 "Gmsh.y" + case 181: +#line 1912 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8330,8 +8276,8 @@ yyreduce: ;} break; - case 183: -#line 1948 "Gmsh.y" + case 182: +#line 1927 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8347,8 +8293,8 @@ yyreduce: ;} break; - case 184: -#line 1962 "Gmsh.y" + case 183: +#line 1941 "Gmsh.y" { int num = (int)(yyvsp[(3) - (8)].d); std::vector<int> wires; ListOfDouble2Vector((yyvsp[(6) - (8)].l), wires); @@ -8369,8 +8315,8 @@ yyreduce: ;} break; - case 185: -#line 1981 "Gmsh.y" + case 184: +#line 1960 "Gmsh.y" { yymsg(1, "'Ruled Surface' command is deprecated: use 'Surface' instead"); int num = (int)(yyvsp[(4) - (9)].d); @@ -8382,8 +8328,8 @@ yyreduce: ;} break; - case 186: -#line 1991 "Gmsh.y" + case 185: +#line 1970 "Gmsh.y" { myGmshSurface = 0; (yyval.s).Type = 0; @@ -8391,8 +8337,8 @@ yyreduce: ;} break; - case 187: -#line 1997 "Gmsh.y" + case 186: +#line 1976 "Gmsh.y" { myGmshSurface = gmshSurface::getSurface((int)(yyvsp[(3) - (4)].d)); (yyval.s).Type = 0; @@ -8400,8 +8346,8 @@ yyreduce: ;} break; - case 188: -#line 2003 "Gmsh.y" + case 187: +#line 1982 "Gmsh.y" { int num = (int)(yyvsp[(4) - (10)].d); myGmshSurface = gmshParametricSurface::NewParametricSurface(num, (yyvsp[(7) - (10)].c), (yyvsp[(8) - (10)].c), (yyvsp[(9) - (10)].c)); @@ -8410,8 +8356,8 @@ yyreduce: ;} break; - case 189: -#line 2010 "Gmsh.y" + case 188: +#line 1989 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8440,8 +8386,8 @@ yyreduce: ;} break; - case 190: -#line 2037 "Gmsh.y" + case 189: +#line 2016 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8458,8 +8404,8 @@ yyreduce: ;} break; - case 191: -#line 2052 "Gmsh.y" + case 190: +#line 2031 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8481,8 +8427,8 @@ yyreduce: ;} break; - case 192: -#line 2072 "Gmsh.y" + case 191: +#line 2051 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8505,8 +8451,8 @@ yyreduce: ;} break; - case 193: -#line 2093 "Gmsh.y" + case 192: +#line 2072 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8529,8 +8475,8 @@ yyreduce: ;} break; - case 194: -#line 2114 "Gmsh.y" + case 193: +#line 2093 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8553,8 +8499,8 @@ yyreduce: ;} break; - case 195: -#line 2135 "Gmsh.y" + case 194: +#line 2114 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8578,8 +8524,8 @@ yyreduce: ;} break; - case 196: -#line 2157 "Gmsh.y" + case 195: +#line 2136 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8603,8 +8549,8 @@ yyreduce: ;} break; - case 197: -#line 2179 "Gmsh.y" + case 196: +#line 2158 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8627,8 +8573,8 @@ yyreduce: ;} break; - case 198: -#line 2200 "Gmsh.y" + case 197: +#line 2179 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<double> param; ListOfDouble2Vector((yyvsp[(6) - (7)].l), param); @@ -8653,8 +8599,8 @@ yyreduce: ;} break; - case 199: -#line 2223 "Gmsh.y" + case 198: +#line 2202 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8665,8 +8611,8 @@ yyreduce: ;} break; - case 200: -#line 2233 "Gmsh.y" + case 199: +#line 2212 "Gmsh.y" { int num = (int)(yyvsp[(4) - (12)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (12)].l), tags); @@ -8688,8 +8634,8 @@ yyreduce: ;} break; - case 201: -#line 2253 "Gmsh.y" + case 200: +#line 2232 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8706,8 +8652,8 @@ yyreduce: ;} break; - case 202: -#line 2268 "Gmsh.y" + case 201: +#line 2247 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(6) - (7)].l), tags); @@ -8723,8 +8669,8 @@ yyreduce: ;} break; - case 203: -#line 2282 "Gmsh.y" + case 202: +#line 2261 "Gmsh.y" { yymsg(1, "'Complex Volume' command is deprecated: use 'Volume' instead"); int num = (int)(yyvsp[(4) - (8)].d); @@ -8741,8 +8687,8 @@ yyreduce: ;} break; - case 204: -#line 2297 "Gmsh.y" + case 203: +#line 2276 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); std::vector<int> wires, out[4]; ListOfDouble2Vector((yyvsp[(6) - (7)].l), wires); @@ -8759,8 +8705,8 @@ yyreduce: ;} break; - case 205: -#line 2312 "Gmsh.y" + case 204: +#line 2291 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> wires, out[4]; ListOfDouble2Vector((yyvsp[(7) - (8)].l), wires); @@ -8777,8 +8723,8 @@ yyreduce: ;} break; - case 206: -#line 2327 "Gmsh.y" + case 205: +#line 2306 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); std::vector<int> tags; ListOfDouble2Vector((yyvsp[(7) - (8)].l), tags); @@ -8789,8 +8735,8 @@ yyreduce: ;} break; - case 207: -#line 2336 "Gmsh.y" + case 206: +#line 2315 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8835,8 +8781,8 @@ yyreduce: ;} break; - case 208: -#line 2379 "Gmsh.y" + case 207: +#line 2358 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8881,8 +8827,8 @@ yyreduce: ;} break; - case 209: -#line 2422 "Gmsh.y" + case 208: +#line 2401 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8927,8 +8873,8 @@ yyreduce: ;} break; - case 210: -#line 2465 "Gmsh.y" + case 209: +#line 2444 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].i); int op = (yyvsp[(6) - (8)].i); @@ -8973,8 +8919,8 @@ yyreduce: ;} break; - case 211: -#line 2513 "Gmsh.y" + case 210: +#line 2492 "Gmsh.y" { if(factory == "OpenCASCADE"){ std::vector<int> in[4]; @@ -8993,8 +8939,8 @@ yyreduce: ;} break; - case 212: -#line 2530 "Gmsh.y" + case 211: +#line 2509 "Gmsh.y" { if(factory == "OpenCASCADE"){ std::vector<int> in[4]; @@ -9014,8 +8960,8 @@ yyreduce: ;} break; - case 213: -#line 2548 "Gmsh.y" + case 212: +#line 2527 "Gmsh.y" { if(factory == "OpenCASCADE"){ Msg::Error("TODO OCC Symmetry"); @@ -9027,8 +8973,8 @@ yyreduce: ;} break; - case 214: -#line 2558 "Gmsh.y" + case 213: +#line 2537 "Gmsh.y" { if(factory == "OpenCASCADE"){ Msg::Error("TODO OCC Dilate"); @@ -9040,8 +8986,8 @@ yyreduce: ;} break; - case 215: -#line 2568 "Gmsh.y" + case 214: +#line 2547 "Gmsh.y" { if(factory == "OpenCASCADE"){ Msg::Error("TODO OCC Dilate"); @@ -9053,8 +8999,8 @@ yyreduce: ;} break; - case 216: -#line 2578 "Gmsh.y" + case 215: +#line 2557 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){ @@ -9119,8 +9065,8 @@ yyreduce: ;} break; - case 217: -#line 2641 "Gmsh.y" + case 216: +#line 2620 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -9133,8 +9079,8 @@ yyreduce: ;} break; - case 218: -#line 2652 "Gmsh.y" + case 217: +#line 2631 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); if(factory == "OpenCASCADE"){ @@ -9149,160 +9095,88 @@ yyreduce: ;} break; - case 219: -#line 2667 "Gmsh.y" + case 218: +#line 2646 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 220: -#line 2668 "Gmsh.y" + case 219: +#line 2647 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 221: -#line 2673 "Gmsh.y" + case 220: +#line 2652 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; - case 222: -#line 2677 "Gmsh.y" + case 221: +#line 2656 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; - case 223: -#line 2681 "Gmsh.y" + case 222: +#line 2660 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; List_Read((yyvsp[(4) - (6)].l), i, &d); - Shape TheShape; - TheShape.Num = (int)d; - Vertex *v = FindPoint(std::abs(TheShape.Num)); - if(v){ - TheShape.Type = MSH_POINT; - List_Add((yyval.l), &TheShape); - } - else{ - GVertex *gv = GModel::current()->getVertexByTag(std::abs(TheShape.Num)); - if(gv){ - TheShape.Type = MSH_POINT_FROM_GMODEL; - List_Add((yyval.l), &TheShape); - } - else{ - if(factory == "OpenCASCADE"){ - TheShape.Type = MSH_POINT_FROM_GMODEL; - List_Add((yyval.l), &TheShape); - } - else - yymsg(1, "Unknown point %d", TheShape.Num); - } - } + Shape s; + s.Num = (int)d; + s.Type = MSH_POINT; + List_Add((yyval.l), &s); } ;} break; - case 224: -#line 2710 "Gmsh.y" + case 223: +#line 2671 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; List_Read((yyvsp[(4) - (6)].l), i, &d); - Shape TheShape; - TheShape.Num = (int)d; - Curve *c = FindCurve(std::abs(TheShape.Num)); - if(c){ - TheShape.Type = c->Typ; - List_Add((yyval.l), &TheShape); - } - else{ - GEdge *ge = GModel::current()->getEdgeByTag(std::abs(TheShape.Num)); - if(ge){ - TheShape.Type = MSH_SEGM_FROM_GMODEL; - List_Add((yyval.l), &TheShape); - } - else{ - if(factory == "OpenCASCADE"){ - TheShape.Type = MSH_SEGM_FROM_GMODEL; - List_Add((yyval.l), &TheShape); - } - else - yymsg(1, "Unknown curve %d", TheShape.Num); - } - } + Shape s; + s.Num = (int)d; + s.Type = MSH_SEGM_LINE; + List_Add((yyval.l), &s); } ;} break; - case 225: -#line 2739 "Gmsh.y" + case 224: +#line 2682 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; List_Read((yyvsp[(4) - (6)].l), i, &d); - Shape TheShape; - TheShape.Num = (int)d; - Surface *s = FindSurface(std::abs(TheShape.Num)); - if(s){ - TheShape.Type = s->Typ; - List_Add((yyval.l), &TheShape); - } - else{ - GFace *gf = GModel::current()->getFaceByTag(std::abs(TheShape.Num)); - if(gf){ - TheShape.Type = MSH_SURF_FROM_GMODEL; - List_Add((yyval.l), &TheShape); - } - else{ - if(factory == "OpenCASCADE"){ - TheShape.Type = MSH_SURF_FROM_GMODEL; - List_Add((yyval.l), &TheShape); - } - else - yymsg(1, "Unknown surface %d", TheShape.Num); - } - } + Shape s; + s.Num = (int)d; + s.Type = MSH_SURF_PLAN; // we don't care about the actual type + List_Add((yyval.l), &s); } ;} break; - case 226: -#line 2768 "Gmsh.y" + case 225: +#line 2693 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; List_Read((yyvsp[(4) - (6)].l), i, &d); - Shape TheShape; - TheShape.Num = (int)d; - Volume *v = FindVolume(std::abs(TheShape.Num)); - if(v){ - TheShape.Type = v->Typ; - List_Add((yyval.l), &TheShape); - } - else{ - GRegion *gr = GModel::current()->getRegionByTag(std::abs(TheShape.Num)); - if(gr){ - TheShape.Type = MSH_VOLUME_FROM_GMODEL; - List_Add((yyval.l), &TheShape); - } - else{ - if(factory == "OpenCASCADE"){ - TheShape.Type = MSH_VOLUME_FROM_GMODEL; - List_Add((yyval.l), &TheShape); - } - else - yymsg(1, "Unknown volume %d", TheShape.Num); - } - } + Shape s; + s.Num = (int)d; + s.Type = MSH_VOLUME; + List_Add((yyval.l), &s); } ;} break; - case 227: -#line 2802 "Gmsh.y" + case 226: +#line 2709 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(7) - (8)].l)) == 4){ @@ -9326,8 +9200,8 @@ yyreduce: ;} break; - case 228: -#line 2824 "Gmsh.y" + case 227: +#line 2731 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) int t = (int)(yyvsp[(4) - (10)].d); @@ -9355,8 +9229,8 @@ yyreduce: ;} break; - case 229: -#line 2851 "Gmsh.y" + case 228: +#line 2758 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 0){ @@ -9379,8 +9253,8 @@ yyreduce: ;} break; - case 230: -#line 2873 "Gmsh.y" + case 229: +#line 2780 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(14) - (16)].l)) == 0){ @@ -9404,8 +9278,8 @@ yyreduce: ;} break; - case 231: -#line 2895 "Gmsh.y" + case 230: +#line 2802 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(10) - (12)].l)) == 1){ @@ -9428,8 +9302,8 @@ yyreduce: ;} break; - case 232: -#line 2917 "Gmsh.y" + case 231: +#line 2824 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ @@ -9486,8 +9360,8 @@ yyreduce: ;} break; - case 233: -#line 2973 "Gmsh.y" + case 232: +#line 2880 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 1){ @@ -9512,8 +9386,8 @@ yyreduce: ;} break; - case 234: -#line 2997 "Gmsh.y" + case 233: +#line 2904 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 3){ @@ -9539,8 +9413,8 @@ yyreduce: ;} break; - case 235: -#line 3022 "Gmsh.y" + case 234: +#line 2929 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(List_Nbr((yyvsp[(12) - (14)].l)) == 5){ @@ -9567,8 +9441,8 @@ yyreduce: ;} break; - case 236: -#line 3047 "Gmsh.y" + case 235: +#line 2954 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "Union")){ @@ -9683,8 +9557,8 @@ yyreduce: ;} break; - case 237: -#line 3160 "Gmsh.y" + case 236: +#line 3067 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (8)].c), "MathEval")){ @@ -9705,8 +9579,8 @@ yyreduce: ;} break; - case 238: -#line 3179 "Gmsh.y" + case 237: +#line 3086 "Gmsh.y" { #if defined(HAVE_DINTEGRATION) if(!strcmp((yyvsp[(2) - (6)].c), "CutMesh")){ @@ -9746,8 +9620,8 @@ yyreduce: ;} break; - case 239: -#line 3222 "Gmsh.y" + case 238: +#line 3129 "Gmsh.y" { if(factory == "OpenCASCADE"){ std::vector<int> in[4]; @@ -9770,8 +9644,8 @@ yyreduce: ;} break; - case 240: -#line 3243 "Gmsh.y" + case 239: +#line 3150 "Gmsh.y" { #if defined(HAVE_MESH) GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d)); @@ -9779,8 +9653,8 @@ yyreduce: ;} break; - case 241: -#line 3249 "Gmsh.y" + case 240: +#line 3156 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -9797,8 +9671,8 @@ yyreduce: ;} break; - case 242: -#line 3264 "Gmsh.y" + case 241: +#line 3171 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ ClearProject(); @@ -9828,8 +9702,8 @@ yyreduce: ;} break; - case 243: -#line 3292 "Gmsh.y" + case 242: +#line 3199 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -9843,8 +9717,8 @@ yyreduce: ;} break; - case 244: -#line 3309 "Gmsh.y" + case 243: +#line 3216 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9855,8 +9729,8 @@ yyreduce: ;} break; - case 245: -#line 3318 "Gmsh.y" + case 244: +#line 3225 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(5) - (6)].l)); i++){ Shape TheShape; @@ -9867,8 +9741,8 @@ yyreduce: ;} break; - case 246: -#line 3332 "Gmsh.y" + case 245: +#line 3239 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9879,8 +9753,8 @@ yyreduce: ;} break; - case 247: -#line 3346 "Gmsh.y" + case 246: +#line 3253 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1, false); @@ -9888,8 +9762,8 @@ yyreduce: ;} break; - case 248: -#line 3352 "Gmsh.y" + case 247: +#line 3259 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0, false); @@ -9897,8 +9771,8 @@ yyreduce: ;} break; - case 249: -#line 3358 "Gmsh.y" + case 248: +#line 3265 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -9909,8 +9783,8 @@ yyreduce: ;} break; - case 250: -#line 3367 "Gmsh.y" + case 249: +#line 3274 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9921,8 +9795,8 @@ yyreduce: ;} break; - case 251: -#line 3376 "Gmsh.y" + case 250: +#line 3283 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -9933,8 +9807,8 @@ yyreduce: ;} break; - case 252: -#line 3385 "Gmsh.y" + case 251: +#line 3292 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -9945,8 +9819,8 @@ yyreduce: ;} break; - case 253: -#line 3399 "Gmsh.y" + case 252: +#line 3306 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(2) - (3)].c)); @@ -10010,8 +9884,8 @@ yyreduce: ;} break; - case 254: -#line 3461 "Gmsh.y" + case 253: +#line 3368 "Gmsh.y" { int n = List_Nbr((yyvsp[(3) - (5)].l)); if(n == 1){ @@ -10031,8 +9905,8 @@ yyreduce: ;} break; - case 255: -#line 3479 "Gmsh.y" + case 254: +#line 3386 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -10051,8 +9925,8 @@ yyreduce: ;} break; - case 256: -#line 3496 "Gmsh.y" + case 255: +#line 3403 "Gmsh.y" { #if defined(HAVE_POST) && defined(HAVE_MESH) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -10069,8 +9943,8 @@ yyreduce: ;} break; - case 257: -#line 3511 "Gmsh.y" + case 256: +#line 3418 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -10101,8 +9975,8 @@ yyreduce: ;} break; - case 258: -#line 3540 "Gmsh.y" + case 257: +#line 3447 "Gmsh.y" { #if defined(HAVE_PLUGINS) try { @@ -10116,8 +9990,8 @@ yyreduce: ;} break; - case 259: -#line 3552 "Gmsh.y" + case 258: +#line 3459 "Gmsh.y" { #if defined(HAVE_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -10143,23 +10017,23 @@ yyreduce: ;} break; - case 260: -#line 3576 "Gmsh.y" + case 259: +#line 3483 "Gmsh.y" { Msg::Exit(0); ;} break; - case 261: -#line 3580 "Gmsh.y" + case 260: +#line 3487 "Gmsh.y" { gmsh_yyerrorstate = 999; // this will be checked when yyparse returns YYABORT; ;} break; - case 262: -#line 3585 "Gmsh.y" + case 261: +#line 3492 "Gmsh.y" { // FIXME: this is a hack to force a transfer from the old DB to // the new DB. This will become unnecessary if/when we fill the @@ -10169,16 +10043,16 @@ yyreduce: ;} break; - case 263: -#line 3593 "Gmsh.y" + case 262: +#line 3500 "Gmsh.y" { new GModel(); GModel::current(GModel::list.size() - 1); ;} break; - case 264: -#line 3598 "Gmsh.y" + case 263: +#line 3505 "Gmsh.y" { CTX::instance()->forcedBBox = 0; GModel::current()->importGEOInternals(); @@ -10186,16 +10060,16 @@ yyreduce: ;} break; - case 265: -#line 3604 "Gmsh.y" + case 264: +#line 3511 "Gmsh.y" { CTX::instance()->forcedBBox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); ;} break; - case 266: -#line 3609 "Gmsh.y" + case 265: +#line 3516 "Gmsh.y" { #if defined(HAVE_OPENGL) drawContext::global()->draw(); @@ -10203,8 +10077,8 @@ yyreduce: ;} break; - case 267: -#line 3615 "Gmsh.y" + case 266: +#line 3522 "Gmsh.y" { #if defined(HAVE_OPENGL) CTX::instance()->mesh.changed = ENT_ALL; @@ -10214,30 +10088,30 @@ yyreduce: ;} break; - case 268: -#line 3623 "Gmsh.y" + case 267: +#line 3530 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; - case 269: -#line 3627 "Gmsh.y" + case 268: +#line 3534 "Gmsh.y" { GModel::current()->createTopologyFromMesh(1); ;} break; - case 270: -#line 3631 "Gmsh.y" + case 269: +#line 3538 "Gmsh.y" { GModel::current()->importGEOInternals(); GModel::current()->refineMesh(CTX::instance()->mesh.secondOrderLinear); ;} break; - case 271: -#line 3637 "Gmsh.y" + case 270: +#line 3544 "Gmsh.y" { int lock = CTX::instance()->lock; CTX::instance()->lock = 0; @@ -10293,8 +10167,8 @@ yyreduce: ;} break; - case 272: -#line 3696 "Gmsh.y" + case 271: +#line 3603 "Gmsh.y" { #if defined(HAVE_POPPLER) std::vector<int> is; @@ -10308,8 +10182,8 @@ yyreduce: ;} break; - case 273: -#line 3712 "Gmsh.y" + case 272: +#line 3619 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -10328,8 +10202,8 @@ yyreduce: ;} break; - case 274: -#line 3729 "Gmsh.y" + case 273: +#line 3636 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -10348,8 +10222,8 @@ yyreduce: ;} break; - case 275: -#line 3746 "Gmsh.y" + case 274: +#line 3653 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -10373,8 +10247,8 @@ yyreduce: ;} break; - case 276: -#line 3768 "Gmsh.y" + case 275: +#line 3675 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -10398,8 +10272,8 @@ yyreduce: ;} break; - case 277: -#line 3790 "Gmsh.y" + case 276: +#line 3697 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -10436,8 +10310,8 @@ yyreduce: ;} break; - case 278: -#line 3825 "Gmsh.y" + case 277: +#line 3732 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10447,8 +10321,8 @@ yyreduce: ;} break; - case 279: -#line 3833 "Gmsh.y" + case 278: +#line 3740 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction (std::string((yyvsp[(2) - (2)].c)), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10458,8 +10332,8 @@ yyreduce: ;} break; - case 280: -#line 3841 "Gmsh.y" + case 279: +#line 3748 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10467,8 +10341,8 @@ yyreduce: ;} break; - case 281: -#line 3847 "Gmsh.y" + case 280: +#line 3754 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10477,8 +10351,8 @@ yyreduce: ;} break; - case 282: -#line 3854 "Gmsh.y" + case 281: +#line 3761 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction (std::string((yyvsp[(2) - (3)].c)), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -10487,8 +10361,8 @@ yyreduce: ;} break; - case 283: -#line 3861 "Gmsh.y" + case 282: +#line 3768 "Gmsh.y" { ImbricatedTest++; if(ImbricatedTest > MAX_RECUR_TESTS-1){ @@ -10510,8 +10384,8 @@ yyreduce: ;} break; - case 284: -#line 3881 "Gmsh.y" + case 283: +#line 3788 "Gmsh.y" { if(ImbricatedTest > 0){ if (statusImbricatedTests[ImbricatedTest]){ @@ -10539,8 +10413,8 @@ yyreduce: ;} break; - case 285: -#line 3907 "Gmsh.y" + case 284: +#line 3814 "Gmsh.y" { if(ImbricatedTest > 0){ if(statusImbricatedTests[ImbricatedTest]){ @@ -10554,8 +10428,8 @@ yyreduce: ;} break; - case 286: -#line 3919 "Gmsh.y" + case 285: +#line 3826 "Gmsh.y" { ImbricatedTest--; if(ImbricatedTest < 0) @@ -10563,8 +10437,8 @@ yyreduce: ;} break; - case 287: -#line 3931 "Gmsh.y" + case 286: +#line 3838 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -10596,8 +10470,8 @@ yyreduce: ;} break; - case 288: -#line 3961 "Gmsh.y" + case 287: +#line 3868 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -10630,8 +10504,8 @@ yyreduce: ;} break; - case 289: -#line 3992 "Gmsh.y" + case 288: +#line 3899 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -10641,8 +10515,8 @@ yyreduce: ;} break; - case 290: -#line 4000 "Gmsh.y" + case 289: +#line 3907 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10650,8 +10524,8 @@ yyreduce: ;} break; - case 291: -#line 4006 "Gmsh.y" + case 290: +#line 3913 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -10661,8 +10535,8 @@ yyreduce: ;} break; - case 292: -#line 4014 "Gmsh.y" + case 291: +#line 3921 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10670,8 +10544,8 @@ yyreduce: ;} break; - case 293: -#line 4020 "Gmsh.y" + case 292: +#line 3927 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -10681,8 +10555,8 @@ yyreduce: ;} break; - case 294: -#line 4028 "Gmsh.y" + case 293: +#line 3935 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10690,8 +10564,8 @@ yyreduce: ;} break; - case 295: -#line 4034 "Gmsh.y" + case 294: +#line 3941 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -10701,8 +10575,8 @@ yyreduce: ;} break; - case 296: -#line 4042 "Gmsh.y" + case 295: +#line 3949 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10710,8 +10584,8 @@ yyreduce: ;} break; - case 297: -#line 4048 "Gmsh.y" + case 296: +#line 3955 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -10720,8 +10594,8 @@ yyreduce: ;} break; - case 298: -#line 4055 "Gmsh.y" + case 297: +#line 3962 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -10750,8 +10624,8 @@ yyreduce: ;} break; - case 299: -#line 4082 "Gmsh.y" + case 298: +#line 3989 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -10772,8 +10646,8 @@ yyreduce: ;} break; - case 300: -#line 4101 "Gmsh.y" + case 299: +#line 4008 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -10794,8 +10668,8 @@ yyreduce: ;} break; - case 301: -#line 4120 "Gmsh.y" + case 300: +#line 4027 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -10822,8 +10696,8 @@ yyreduce: ;} break; - case 302: -#line 4146 "Gmsh.y" + case 301: +#line 4053 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -10832,8 +10706,8 @@ yyreduce: ;} break; - case 303: -#line 4153 "Gmsh.y" + case 302: +#line 4060 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -10842,8 +10716,8 @@ yyreduce: ;} break; - case 304: -#line 4160 "Gmsh.y" + case 303: +#line 4067 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -10852,8 +10726,8 @@ yyreduce: ;} break; - case 305: -#line 4167 "Gmsh.y" + case 304: +#line 4074 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -10862,8 +10736,8 @@ yyreduce: ;} break; - case 306: -#line 4174 "Gmsh.y" + case 305: +#line 4081 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -10872,8 +10746,8 @@ yyreduce: ;} break; - case 307: -#line 4181 "Gmsh.y" + case 306: +#line 4088 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -10882,8 +10756,8 @@ yyreduce: ;} break; - case 308: -#line 4188 "Gmsh.y" + case 307: +#line 4095 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -10892,8 +10766,8 @@ yyreduce: ;} break; - case 309: -#line 4195 "Gmsh.y" + case 308: +#line 4102 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -10902,8 +10776,8 @@ yyreduce: ;} break; - case 310: -#line 4202 "Gmsh.y" + case 309: +#line 4109 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -10912,8 +10786,8 @@ yyreduce: ;} break; - case 311: -#line 4209 "Gmsh.y" + case 310: +#line 4116 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10921,8 +10795,8 @@ yyreduce: ;} break; - case 312: -#line 4215 "Gmsh.y" + case 311: +#line 4122 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -10931,8 +10805,8 @@ yyreduce: ;} break; - case 313: -#line 4222 "Gmsh.y" + case 312: +#line 4129 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10940,8 +10814,8 @@ yyreduce: ;} break; - case 314: -#line 4228 "Gmsh.y" + case 313: +#line 4135 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -10950,8 +10824,8 @@ yyreduce: ;} break; - case 315: -#line 4235 "Gmsh.y" + case 314: +#line 4142 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10959,8 +10833,8 @@ yyreduce: ;} break; - case 316: -#line 4241 "Gmsh.y" + case 315: +#line 4148 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -10969,8 +10843,8 @@ yyreduce: ;} break; - case 317: -#line 4248 "Gmsh.y" + case 316: +#line 4155 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10978,8 +10852,8 @@ yyreduce: ;} break; - case 318: -#line 4254 "Gmsh.y" + case 317: +#line 4161 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -10988,8 +10862,8 @@ yyreduce: ;} break; - case 319: -#line 4261 "Gmsh.y" + case 318: +#line 4168 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -10997,8 +10871,8 @@ yyreduce: ;} break; - case 320: -#line 4267 "Gmsh.y" + case 319: +#line 4174 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -11007,8 +10881,8 @@ yyreduce: ;} break; - case 321: -#line 4274 "Gmsh.y" + case 320: +#line 4181 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11016,8 +10890,8 @@ yyreduce: ;} break; - case 322: -#line 4280 "Gmsh.y" + case 321: +#line 4187 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -11026,8 +10900,8 @@ yyreduce: ;} break; - case 323: -#line 4287 "Gmsh.y" + case 322: +#line 4194 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11035,8 +10909,8 @@ yyreduce: ;} break; - case 324: -#line 4293 "Gmsh.y" + case 323: +#line 4200 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -11045,8 +10919,8 @@ yyreduce: ;} break; - case 325: -#line 4300 "Gmsh.y" + case 324: +#line 4207 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11054,8 +10928,8 @@ yyreduce: ;} break; - case 326: -#line 4306 "Gmsh.y" + case 325: +#line 4213 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -11064,8 +10938,8 @@ yyreduce: ;} break; - case 327: -#line 4313 "Gmsh.y" + case 326: +#line 4220 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; extr.mesh.QuadToTri = NO_QUADTRI; @@ -11073,8 +10947,8 @@ yyreduce: ;} break; - case 328: -#line 4319 "Gmsh.y" + case 327: +#line 4226 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -11083,20 +10957,20 @@ yyreduce: ;} break; - case 329: -#line 4330 "Gmsh.y" + case 328: +#line 4237 "Gmsh.y" { ;} break; - case 330: -#line 4333 "Gmsh.y" + case 329: +#line 4240 "Gmsh.y" { ;} break; - case 331: -#line 4339 "Gmsh.y" + case 330: +#line 4246 "Gmsh.y" { int n = (int)fabs((yyvsp[(3) - (5)].d)); if(n){ // we accept n==0 to easily disable layers @@ -11110,8 +10984,8 @@ yyreduce: ;} break; - case 332: -#line 4351 "Gmsh.y" + case 331: +#line 4258 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -11133,8 +11007,8 @@ yyreduce: ;} break; - case 333: -#line 4371 "Gmsh.y" + case 332: +#line 4278 "Gmsh.y" { yymsg(1, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -11159,43 +11033,43 @@ yyreduce: ;} break; - case 334: -#line 4395 "Gmsh.y" + case 333: +#line 4302 "Gmsh.y" { extr.mesh.ScaleLast = true; ;} break; - case 335: -#line 4399 "Gmsh.y" + case 334: +#line 4306 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; - case 336: -#line 4403 "Gmsh.y" + case 335: +#line 4310 "Gmsh.y" { extr.mesh.Recombine = (yyvsp[(2) - (3)].d) ? true : false; ;} break; - case 337: -#line 4407 "Gmsh.y" + case 336: +#line 4314 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); ;} break; - case 338: -#line 4411 "Gmsh.y" + case 337: +#line 4318 "Gmsh.y" { yymsg(0, "Keyword 'QuadTriSngl' deprecated. Use 'QuadTriNoNewVerts' instead."); ;} break; - case 339: -#line 4415 "Gmsh.y" + case 338: +#line 4322 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -11203,8 +11077,8 @@ yyreduce: ;} break; - case 340: -#line 4421 "Gmsh.y" + case 339: +#line 4328 "Gmsh.y" { yymsg(0, "Method 'QuadTriDbl' deprecated. Use 'QuadTriAddVerts' instead, " "which has no requirement for the number of extrusion layers and meshes " @@ -11212,36 +11086,36 @@ yyreduce: ;} break; - case 341: -#line 4427 "Gmsh.y" + case 340: +#line 4334 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1; ;} break; - case 342: -#line 4431 "Gmsh.y" + case 341: +#line 4338 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_ADDVERTS_1_RECOMB; ;} break; - case 343: -#line 4435 "Gmsh.y" + case 342: +#line 4342 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1; ;} break; - case 344: -#line 4439 "Gmsh.y" + case 343: +#line 4346 "Gmsh.y" { extr.mesh.QuadToTri = QUADTRI_NOVERTS_1_RECOMB; ;} break; - case 345: -#line 4443 "Gmsh.y" + case 344: +#line 4350 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -11262,8 +11136,8 @@ yyreduce: ;} break; - case 346: -#line 4462 "Gmsh.y" + case 345: +#line 4369 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (6)].c), "Index")) extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d); @@ -11273,48 +11147,48 @@ yyreduce: ;} break; - case 347: -#line 4474 "Gmsh.y" + case 346: +#line 4381 "Gmsh.y" { (yyval.i) = OCC_Internals::Union; ;} break; - case 348: -#line 4475 "Gmsh.y" + case 347: +#line 4382 "Gmsh.y" { (yyval.i) = OCC_Internals::Intersection; ;} break; - case 349: -#line 4476 "Gmsh.y" + case 348: +#line 4383 "Gmsh.y" { (yyval.i) = OCC_Internals::Difference; ;} break; - case 350: -#line 4477 "Gmsh.y" + case 349: +#line 4384 "Gmsh.y" { (yyval.i) = OCC_Internals::Section; ;} break; - case 351: -#line 4478 "Gmsh.y" + case 350: +#line 4385 "Gmsh.y" { (yyval.i) = OCC_Internals::Fragments; ;} break; - case 352: -#line 4482 "Gmsh.y" + case 351: +#line 4389 "Gmsh.y" { (yyval.i) = 0; ;} break; - case 353: -#line 4483 "Gmsh.y" + case 352: +#line 4390 "Gmsh.y" { (yyval.i) = 1; ;} break; - case 354: -#line 4484 "Gmsh.y" + case 353: +#line 4391 "Gmsh.y" { (yyval.i) = (yyvsp[(2) - (3)].d); ;} break; - case 355: -#line 4489 "Gmsh.y" + case 354: +#line 4396 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -11349,8 +11223,8 @@ yyreduce: ;} break; - case 356: -#line 4522 "Gmsh.y" + case 355: +#line 4429 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); if(factory == "OpenCASCADE"){ @@ -11375,8 +11249,8 @@ yyreduce: ;} break; - case 357: -#line 4549 "Gmsh.y" + case 356: +#line 4456 "Gmsh.y" { if(factory == "OpenCASCADE"){ std::vector<int> shape[4], tool[4]; @@ -11397,15 +11271,15 @@ yyreduce: ;} break; - case 358: -#line 4571 "Gmsh.y" + case 357: +#line 4478 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; - case 359: -#line 4575 "Gmsh.y" + case 358: +#line 4482 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -11420,15 +11294,15 @@ yyreduce: ;} break; - case 360: -#line 4590 "Gmsh.y" + case 359: +#line 4497 "Gmsh.y" { (yyval.i) = -1; // left ;} break; - case 361: -#line 4594 "Gmsh.y" + case 360: +#line 4501 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -11444,70 +11318,66 @@ yyreduce: ;} break; - case 362: -#line 4610 "Gmsh.y" + case 361: +#line 4517 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 363: -#line 4614 "Gmsh.y" + case 362: +#line 4521 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 364: -#line 4619 "Gmsh.y" + case 363: +#line 4526 "Gmsh.y" { (yyval.i) = 45; ;} break; - case 365: -#line 4623 "Gmsh.y" + case 364: +#line 4530 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; - case 366: -#line 4629 "Gmsh.y" + case 365: +#line 4536 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 367: -#line 4633 "Gmsh.y" + case 366: +#line 4540 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 368: -#line 4640 "Gmsh.y" + case 367: +#line 4547 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; List_Read((yyvsp[(3) - (6)].l), i, &d); - Vertex *v = FindPoint((int)d); - if(v){ - v->lc = (yyvsp[(5) - (6)].d); - } - else{ - GVertex *gv = GModel::current()->getVertexByTag((int)d); - if(gv) - gv->setPrescribedMeshSizeAtVertex((yyvsp[(5) - (6)].d)); - } + int tag = (int)d; + GModel::current()->getGEOInternals()->setMeshSize(0, tag, (yyvsp[(5) - (6)].d)); + GModel::current()->getOCCInternals()->setMeshSize(0, tag, (yyvsp[(5) - (6)].d)); + GVertex *gv = GModel::current()->getVertexByTag(tag); + if(gv) gv->setPrescribedMeshSizeAtVertex((yyvsp[(5) - (6)].d)); } List_Delete((yyvsp[(3) - (6)].l)); ;} break; - case 369: -#line 4657 "Gmsh.y" + case 368: +#line 4560 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -11565,8 +11435,8 @@ yyreduce: ;} break; - case 370: -#line 4713 "Gmsh.y" + case 369: +#line 4616 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -11638,16 +11508,16 @@ yyreduce: ;} break; - case 371: -#line 4783 "Gmsh.y" + case 370: +#line 4686 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 372: -#line 4788 "Gmsh.y" + case 371: +#line 4691 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -11716,8 +11586,8 @@ yyreduce: ;} break; - case 373: -#line 4855 "Gmsh.y" + case 372: +#line 4758 "Gmsh.y" { if(!(yyvsp[(2) - (3)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -11755,8 +11625,8 @@ yyreduce: ;} break; - case 374: -#line 4891 "Gmsh.y" + case 373: +#line 4794 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (8)].l)); i++){ double d; @@ -11766,8 +11636,8 @@ yyreduce: ;} break; - case 375: -#line 4899 "Gmsh.y" + case 374: +#line 4802 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -11812,8 +11682,8 @@ yyreduce: ;} break; - case 376: -#line 4942 "Gmsh.y" + case 375: +#line 4845 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); @@ -11854,8 +11724,8 @@ yyreduce: ;} break; - case 377: -#line 4981 "Gmsh.y" + case 376: +#line 4884 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -11877,8 +11747,8 @@ yyreduce: ;} break; - case 378: -#line 5002 "Gmsh.y" + case 377: +#line 4905 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (11)].l)) != List_Nbr((yyvsp[(8) - (11)].l))){ yymsg(0, "Number of master lines (%d) different from number of " @@ -11911,8 +11781,8 @@ yyreduce: ;} break; - case 379: -#line 5034 "Gmsh.y" + case 378: +#line 4937 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (11)].l)) != List_Nbr((yyvsp[(8) - (11)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -11940,8 +11810,8 @@ yyreduce: ;} break; - case 380: -#line 5061 "Gmsh.y" + case 379: +#line 4964 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (18)].l)) != List_Nbr((yyvsp[(8) - (18)].l))){ yymsg(0, "Number of master edges (%d) different from number of " @@ -11968,8 +11838,8 @@ yyreduce: ;} break; - case 381: -#line 5087 "Gmsh.y" + case 380: +#line 4990 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (18)].l)) != List_Nbr((yyvsp[(8) - (18)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -11996,8 +11866,8 @@ yyreduce: ;} break; - case 382: -#line 5113 "Gmsh.y" + case 381: +#line 5016 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (12)].l)) != List_Nbr((yyvsp[(8) - (12)].l))){ yymsg(0, "Number of master edges (%d) different from number of " @@ -12024,8 +11894,8 @@ yyreduce: ;} break; - case 383: -#line 5139 "Gmsh.y" + case 382: +#line 5042 "Gmsh.y" { if (List_Nbr((yyvsp[(4) - (12)].l)) != List_Nbr((yyvsp[(8) - (12)].l))){ yymsg(0, "Number of master faces (%d) different from number of " @@ -12052,8 +11922,8 @@ yyreduce: ;} break; - case 384: -#line 5165 "Gmsh.y" + case 383: +#line 5068 "Gmsh.y" { if (List_Nbr((yyvsp[(5) - (12)].l)) != List_Nbr((yyvsp[(10) - (12)].l))){ yymsg(0, "Number of master surface edges (%d) different from number of " @@ -12076,8 +11946,8 @@ yyreduce: ;} break; - case 385: -#line 5186 "Gmsh.y" + case 384: +#line 5089 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -12107,8 +11977,8 @@ yyreduce: ;} break; - case 386: -#line 5214 "Gmsh.y" + case 385: +#line 5117 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -12138,8 +12008,8 @@ yyreduce: ;} break; - case 387: -#line 5242 "Gmsh.y" + case 386: +#line 5145 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -12169,8 +12039,8 @@ yyreduce: ;} break; - case 388: -#line 5270 "Gmsh.y" + case 387: +#line 5173 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -12200,8 +12070,8 @@ yyreduce: ;} break; - case 389: -#line 5298 "Gmsh.y" + case 388: +#line 5201 "Gmsh.y" { Volume *v = FindVolume((int)(yyvsp[(8) - (10)].d)); if(v){ @@ -12231,8 +12101,8 @@ yyreduce: ;} break; - case 390: -#line 5326 "Gmsh.y" + case 389: +#line 5229 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -12273,8 +12143,8 @@ yyreduce: ;} break; - case 391: -#line 5365 "Gmsh.y" + case 390: +#line 5268 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Curves); @@ -12315,8 +12185,8 @@ yyreduce: ;} break; - case 392: -#line 5404 "Gmsh.y" + case 391: +#line 5307 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::viter it = GModel::current()->firstVertex(); @@ -12328,19 +12198,15 @@ yyreduce: double d; List_Read((yyvsp[(3) - (4)].l), i, &d); GVertex *gv = GModel::current()->getVertexByTag((int)d); - if(gv){ - gv->relocateMeshVertices(); - } - else - yymsg(1, "Unknown point %d", (int)d); + if(gv) gv->relocateMeshVertices(); } List_Delete((yyvsp[(3) - (4)].l)); } ;} break; - case 393: -#line 5425 "Gmsh.y" + case 392: +#line 5324 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::eiter it = GModel::current()->firstEdge(); @@ -12352,19 +12218,15 @@ yyreduce: double d; List_Read((yyvsp[(3) - (4)].l), i, &d); GEdge *ge = GModel::current()->getEdgeByTag((int)d); - if(ge){ - ge->relocateMeshVertices(); - } - else - yymsg(1, "Unknown line %d", (int)d); + if(ge) ge->relocateMeshVertices(); } List_Delete((yyvsp[(3) - (4)].l)); } ;} break; - case 394: -#line 5446 "Gmsh.y" + case 393: +#line 5341 "Gmsh.y" { if(!(yyvsp[(3) - (4)].l)){ for(GModel::fiter it = GModel::current()->firstFace(); @@ -12376,19 +12238,30 @@ yyreduce: double d; List_Read((yyvsp[(3) - (4)].l), i, &d); GFace *gf = GModel::current()->getFaceByTag((int)d); - if(gf){ - gf->relocateMeshVertices(); - } - else - yymsg(1, "Unknown surface %d", (int)d); + if(gf) gf->relocateMeshVertices(); } List_Delete((yyvsp[(3) - (4)].l)); } ;} break; + case 394: +#line 5358 "Gmsh.y" + { + for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ + double dnum; + List_Read((yyvsp[(3) - (4)].l), i, &dnum); + int num = (int)fabs(dnum); + GModel::current()->getGEOInternals()->setDegenerated(1, num); + GEdge *ge = GModel::current()->getEdgeByTag(num); + if(ge) ge->setTooSmall(true); + } + List_Delete((yyvsp[(3) - (4)].l)); + ;} + break; + case 395: -#line 5467 "Gmsh.y" +#line 5370 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); GModel::current()->getGEOInternals()->setCompoundMesh(1, tags); @@ -12397,7 +12270,7 @@ yyreduce: break; case 396: -#line 5473 "Gmsh.y" +#line 5376 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); GModel::current()->getGEOInternals()->setCompoundMesh(2, tags); @@ -12406,7 +12279,7 @@ yyreduce: break; case 397: -#line 5479 "Gmsh.y" +#line 5382 "Gmsh.y" { std::vector<int> tags; ListOfDouble2Vector((yyvsp[(3) - (4)].l), tags); GModel::current()->getGEOInternals()->setCompoundMesh(3, tags); @@ -12415,17 +12288,17 @@ yyreduce: break; case 398: -#line 5491 "Gmsh.y" +#line 5394 "Gmsh.y" { - ReplaceAllDuplicates(); + GModel::current()->getGEOInternals()->removeAllDuplicates(); ;} break; case 399: -#line 5495 "Gmsh.y" +#line 5398 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) - ReplaceAllDuplicates(); + GModel::current()->getGEOInternals()->removeAllDuplicates(); else if(!strcmp((yyvsp[(2) - (3)].c), "Mesh")) GModel::current()->removeDuplicateMeshVertices(CTX::instance()->geom.tolerance); else @@ -12435,55 +12308,31 @@ yyreduce: break; case 400: -#line 5505 "Gmsh.y" +#line 5408 "Gmsh.y" { - if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){ - double d; - List_Read((yyvsp[(4) - (6)].l), 0, &d); - Vertex *target = FindPoint((int)d); - if(!target) - yymsg(0, "Could not find Point %d", (int)d); - else{ - double x = target->Pos.X, y = target->Pos.Y, z = target->Pos.Z; - for(int i = 1; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ - List_Read((yyvsp[(4) - (6)].l), i, &d); - Vertex *source = FindPoint((int)d); - if(!source) yymsg(0, "Could not find Point %d", (int)d); - if(target && source){ - source->Typ = target->Typ; - source->Pos.X = x; - source->Pos.Y = y; - source->Pos.Z = z; - source->boundaryLayerIndex = target->boundaryLayerIndex; - } - } - ExtrudeParams::normalsCoherence.push_back(SPoint3(x, y, z)); - } - } - else - yymsg(0, "Need at least two points to merge"); - ReplaceAllDuplicates(); + std::vector<int> tags; ListOfDouble2Vector((yyvsp[(4) - (6)].l), tags); + GModel::current()->getGEOInternals()->mergeVertices(tags); List_Delete((yyvsp[(4) - (6)].l)); ;} break; case 401: -#line 5539 "Gmsh.y" +#line 5418 "Gmsh.y" { (yyval.c) = (char*)"Homology"; ;} break; case 402: -#line 5540 "Gmsh.y" +#line 5419 "Gmsh.y" { (yyval.c) = (char*)"Cohomology"; ;} break; case 403: -#line 5541 "Gmsh.y" +#line 5420 "Gmsh.y" { (yyval.c) = (char*)"Betti"; ;} break; case 404: -#line 5546 "Gmsh.y" +#line 5425 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < 4; i++) dim.push_back(i); @@ -12492,7 +12341,7 @@ yyreduce: break; case 405: -#line 5552 "Gmsh.y" +#line 5431 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){ @@ -12507,7 +12356,7 @@ yyreduce: break; case 406: -#line 5564 "Gmsh.y" +#line 5443 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){ @@ -12528,7 +12377,7 @@ yyreduce: break; case 407: -#line 5582 "Gmsh.y" +#line 5461 "Gmsh.y" { std::vector<int> domain, subdomain, dim; for(int i = 0; i < List_Nbr((yyvsp[(6) - (10)].l)); i++){ @@ -12554,47 +12403,47 @@ yyreduce: break; case 408: -#line 5609 "Gmsh.y" +#line 5488 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 409: -#line 5610 "Gmsh.y" +#line 5489 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; case 410: -#line 5611 "Gmsh.y" +#line 5490 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; case 411: -#line 5612 "Gmsh.y" +#line 5491 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 412: -#line 5613 "Gmsh.y" +#line 5492 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; case 413: -#line 5614 "Gmsh.y" +#line 5493 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; case 414: -#line 5615 "Gmsh.y" +#line 5494 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; case 415: -#line 5616 "Gmsh.y" +#line 5495 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; case 416: -#line 5618 "Gmsh.y" +#line 5497 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -12604,232 +12453,232 @@ yyreduce: break; case 417: -#line 5624 "Gmsh.y" +#line 5503 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 418: -#line 5625 "Gmsh.y" +#line 5504 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 419: -#line 5626 "Gmsh.y" +#line 5505 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 420: -#line 5627 "Gmsh.y" +#line 5506 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 421: -#line 5628 "Gmsh.y" +#line 5507 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 422: -#line 5629 "Gmsh.y" +#line 5508 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 423: -#line 5630 "Gmsh.y" +#line 5509 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 424: -#line 5631 "Gmsh.y" +#line 5510 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 425: -#line 5632 "Gmsh.y" +#line 5511 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 426: -#line 5633 "Gmsh.y" +#line 5512 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 427: -#line 5634 "Gmsh.y" +#line 5513 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 428: -#line 5635 "Gmsh.y" +#line 5514 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 429: -#line 5636 "Gmsh.y" +#line 5515 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 430: -#line 5637 "Gmsh.y" +#line 5516 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 431: -#line 5638 "Gmsh.y" +#line 5517 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 432: -#line 5639 "Gmsh.y" +#line 5518 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 433: -#line 5640 "Gmsh.y" +#line 5519 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 434: -#line 5641 "Gmsh.y" +#line 5520 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 435: -#line 5642 "Gmsh.y" +#line 5521 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 436: -#line 5643 "Gmsh.y" +#line 5522 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 437: -#line 5644 "Gmsh.y" +#line 5523 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 438: -#line 5645 "Gmsh.y" +#line 5524 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 439: -#line 5646 "Gmsh.y" +#line 5525 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 440: -#line 5647 "Gmsh.y" +#line 5526 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 441: -#line 5648 "Gmsh.y" +#line 5527 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 442: -#line 5649 "Gmsh.y" +#line 5528 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 443: -#line 5650 "Gmsh.y" +#line 5529 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 444: -#line 5651 "Gmsh.y" +#line 5530 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 445: -#line 5652 "Gmsh.y" +#line 5531 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d) + 0.5); ;} break; case 446: -#line 5653 "Gmsh.y" +#line 5532 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 447: -#line 5654 "Gmsh.y" +#line 5533 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 448: -#line 5655 "Gmsh.y" +#line 5534 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 449: -#line 5656 "Gmsh.y" +#line 5535 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 450: -#line 5665 "Gmsh.y" +#line 5544 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 451: -#line 5666 "Gmsh.y" +#line 5545 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; case 452: -#line 5667 "Gmsh.y" +#line 5546 "Gmsh.y" { (yyval.d) = (double)ImbricatedTest; ;} break; case 453: -#line 5668 "Gmsh.y" +#line 5547 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; case 454: -#line 5669 "Gmsh.y" +#line 5548 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; case 455: -#line 5670 "Gmsh.y" +#line 5549 "Gmsh.y" { (yyval.d) = GetGmshMajorVersion(); ;} break; case 456: -#line 5671 "Gmsh.y" +#line 5550 "Gmsh.y" { (yyval.d) = GetGmshMinorVersion(); ;} break; case 457: -#line 5672 "Gmsh.y" +#line 5551 "Gmsh.y" { (yyval.d) = GetGmshPatchVersion(); ;} break; case 458: -#line 5673 "Gmsh.y" +#line 5552 "Gmsh.y" { (yyval.d) = Cpu(); ;} break; case 459: -#line 5674 "Gmsh.y" +#line 5553 "Gmsh.y" { (yyval.d) = GetMemoryUsage()/1024./1024.; ;} break; case 460: -#line 5675 "Gmsh.y" +#line 5554 "Gmsh.y" { (yyval.d) = TotalRam(); ;} break; case 461: -#line 5680 "Gmsh.y" +#line 5559 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 462: -#line 5682 "Gmsh.y" +#line 5561 "Gmsh.y" { std::vector<double> val(1, (yyvsp[(3) - (6)].d)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -12838,7 +12687,7 @@ yyreduce: break; case 463: -#line 5688 "Gmsh.y" +#line 5567 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -12846,7 +12695,7 @@ yyreduce: break; case 464: -#line 5693 "Gmsh.y" +#line 5572 "Gmsh.y" { (yyval.d) = Msg::GetOnelabNumber((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -12854,7 +12703,7 @@ yyreduce: break; case 465: -#line 5698 "Gmsh.y" +#line 5577 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -12874,7 +12723,7 @@ yyreduce: break; case 466: -#line 5715 "Gmsh.y" +#line 5594 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -12895,7 +12744,7 @@ yyreduce: break; case 467: -#line 5733 "Gmsh.y" +#line 5612 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -12916,7 +12765,7 @@ yyreduce: break; case 468: -#line 5751 "Gmsh.y" +#line 5630 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -12937,7 +12786,7 @@ yyreduce: break; case 469: -#line 5769 "Gmsh.y" +#line 5648 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -12958,7 +12807,7 @@ yyreduce: break; case 470: -#line 5787 "Gmsh.y" +#line 5666 "Gmsh.y" { (yyval.d) = gmsh_yysymbols.count((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -12966,7 +12815,7 @@ yyreduce: break; case 471: -#line 5792 "Gmsh.y" +#line 5671 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.d) = !StatFile(tmp); @@ -12975,7 +12824,7 @@ yyreduce: break; case 472: -#line 5798 "Gmsh.y" +#line 5677 "Gmsh.y" { if(gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ gmsh_yysymbol &s(gmsh_yysymbols[(yyvsp[(2) - (4)].c)]); @@ -12993,7 +12842,7 @@ yyreduce: break; case 473: -#line 5813 "Gmsh.y" +#line 5692 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -13015,7 +12864,7 @@ yyreduce: break; case 474: -#line 5832 "Gmsh.y" +#line 5711 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -13038,7 +12887,7 @@ yyreduce: break; case 475: -#line 5852 "Gmsh.y" +#line 5731 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -13061,7 +12910,7 @@ yyreduce: break; case 476: -#line 5872 "Gmsh.y" +#line 5751 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -13084,7 +12933,7 @@ yyreduce: break; case 477: -#line 5892 "Gmsh.y" +#line 5771 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -13107,7 +12956,7 @@ yyreduce: break; case 478: -#line 5915 "Gmsh.y" +#line 5794 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), (yyval.d)); Free((yyvsp[(1) - (3)].c)); Free((yyvsp[(3) - (3)].c)); @@ -13115,7 +12964,7 @@ yyreduce: break; case 479: -#line 5920 "Gmsh.y" +#line 5799 "Gmsh.y" { NumberOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), (yyval.d)); Free((yyvsp[(1) - (6)].c)); Free((yyvsp[(6) - (6)].c)); @@ -13123,7 +12972,7 @@ yyreduce: break; case 480: -#line 5925 "Gmsh.y" +#line 5804 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -13136,7 +12985,7 @@ yyreduce: break; case 481: -#line 5935 "Gmsh.y" +#line 5814 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -13149,7 +12998,7 @@ yyreduce: break; case 482: -#line 5945 "Gmsh.y" +#line 5824 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -13157,7 +13006,7 @@ yyreduce: break; case 483: -#line 5950 "Gmsh.y" +#line 5829 "Gmsh.y" { int matches = 0; for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ @@ -13171,7 +13020,7 @@ yyreduce: break; case 484: -#line 5961 "Gmsh.y" +#line 5840 "Gmsh.y" { std::string s((yyvsp[(3) - (6)].c)), substr((yyvsp[(5) - (6)].c)); if(s.find(substr) != std::string::npos) @@ -13183,7 +13032,7 @@ yyreduce: break; case 485: -#line 5970 "Gmsh.y" +#line 5849 "Gmsh.y" { (yyval.d) = strlen((yyvsp[(3) - (4)].c)); Free((yyvsp[(3) - (4)].c)); @@ -13191,7 +13040,7 @@ yyreduce: break; case 486: -#line 5975 "Gmsh.y" +#line 5854 "Gmsh.y" { (yyval.d) = strcmp((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); Free((yyvsp[(3) - (6)].c)); Free((yyvsp[(5) - (6)].c)); @@ -13199,7 +13048,7 @@ yyreduce: break; case 487: -#line 5980 "Gmsh.y" +#line 5859 "Gmsh.y" { int align = 0, font = 0, fontsize = CTX::instance()->glFontSize; if(List_Nbr((yyvsp[(3) - (4)].l)) % 2){ @@ -13226,70 +13075,70 @@ yyreduce: break; case 488: -#line 6007 "Gmsh.y" +#line 5886 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; case 489: -#line 6011 "Gmsh.y" +#line 5890 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; case 490: -#line 6015 "Gmsh.y" +#line 5894 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 491: -#line 6019 "Gmsh.y" +#line 5898 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; case 492: -#line 6023 "Gmsh.y" +#line 5902 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; case 493: -#line 6030 "Gmsh.y" +#line 5909 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (11)].d); (yyval.v)[1] = (yyvsp[(4) - (11)].d); (yyval.v)[2] = (yyvsp[(6) - (11)].d); (yyval.v)[3] = (yyvsp[(8) - (11)].d); (yyval.v)[4] = (yyvsp[(10) - (11)].d); ;} break; case 494: -#line 6034 "Gmsh.y" +#line 5913 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (9)].d); (yyval.v)[1] = (yyvsp[(4) - (9)].d); (yyval.v)[2] = (yyvsp[(6) - (9)].d); (yyval.v)[3] = (yyvsp[(8) - (9)].d); (yyval.v)[4] = 1.0; ;} break; case 495: -#line 6038 "Gmsh.y" +#line 5917 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 496: -#line 6042 "Gmsh.y" +#line 5921 "Gmsh.y" { (yyval.v)[0] = (yyvsp[(2) - (7)].d); (yyval.v)[1] = (yyvsp[(4) - (7)].d); (yyval.v)[2] = (yyvsp[(6) - (7)].d); (yyval.v)[3] = 0.0; (yyval.v)[4] = 1.0; ;} break; case 497: -#line 6049 "Gmsh.y" +#line 5928 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); @@ -13297,14 +13146,14 @@ yyreduce: break; case 498: -#line 6054 "Gmsh.y" +#line 5933 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; case 499: -#line 6061 "Gmsh.y" +#line 5940 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -13312,14 +13161,14 @@ yyreduce: break; case 500: -#line 6066 "Gmsh.y" +#line 5945 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 501: -#line 6070 "Gmsh.y" +#line 5949 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); @@ -13327,14 +13176,14 @@ yyreduce: break; case 502: -#line 6075 "Gmsh.y" +#line 5954 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 503: -#line 6079 "Gmsh.y" +#line 5958 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -13345,7 +13194,7 @@ yyreduce: break; case 504: -#line 6087 "Gmsh.y" +#line 5966 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -13356,14 +13205,14 @@ yyreduce: break; case 505: -#line 6098 "Gmsh.y" +#line 5977 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 506: -#line 6102 "Gmsh.y" +#line 5981 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -13375,7 +13224,7 @@ yyreduce: break; case 507: -#line 6114 "Gmsh.y" +#line 5993 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -13386,7 +13235,7 @@ yyreduce: break; case 508: -#line 6122 "Gmsh.y" +#line 6001 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -13397,7 +13246,7 @@ yyreduce: break; case 509: -#line 6130 "Gmsh.y" +#line 6009 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); for(double d = (yyvsp[(1) - (3)].d); ((yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d)) ? (d <= (yyvsp[(3) - (3)].d)) : (d >= (yyvsp[(3) - (3)].d)); @@ -13407,7 +13256,7 @@ yyreduce: break; case 510: -#line 6137 "Gmsh.y" +#line 6016 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d)){ //|| ($1 < $3 && $5 < 0) || ($1 > $3 && $5 > 0) @@ -13420,95 +13269,88 @@ yyreduce: break; case 511: -#line 6147 "Gmsh.y" +#line 6026 "Gmsh.y" { - // Returns the coordinates of a point and fills a list with it. - // This allows to ensure e.g. that relative point positions are - // always conserved - Vertex *v = FindPoint((int)(yyvsp[(3) - (4)].d)); (yyval.l) = List_Create(3, 1, sizeof(double)); - if(!v) { - GVertex *gv = GModel::current()->getVertexByTag((int)(yyvsp[(3) - (4)].d)); - if(gv){ - double x = gv->x(), y = gv->y(), z = gv->z(); - List_Add((yyval.l), &x); - List_Add((yyval.l), &y); - List_Add((yyval.l), &z); - } - else{ - yymsg(0, "Unknown point '%d'", (int)(yyvsp[(3) - (4)].d)); - double d = 0.0; - List_Add((yyval.l), &d); - List_Add((yyval.l), &d); - List_Add((yyval.l), &d); + int tag = (int)(yyvsp[(3) - (4)].d); + double x = 0., y = 0., z = 0.; + if(!GModel::current()->getGEOInternals()->getVertex(tag, x, y, z)){ + if(!GModel::current()->getOCCInternals()->getVertex(tag, x, y, z)){ + GVertex *gv = GModel::current()->getVertexByTag(tag); + if(gv){ + x = gv->x(); + y = gv->y(); + z = gv->z(); + } + else{ + yymsg(0, "Unknown vertex %d", tag); + } } } - else{ - List_Add((yyval.l), &v->Pos.X); - List_Add((yyval.l), &v->Pos.Y); - List_Add((yyval.l), &v->Pos.Z); - } + List_Add((yyval.l), &x); + List_Add((yyval.l), &y); + List_Add((yyval.l), &z); ;} break; case 512: -#line 6176 "Gmsh.y" +#line 6048 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(0); ;} break; case 513: -#line 6180 "Gmsh.y" +#line 6052 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(1); ;} break; case 514: -#line 6184 "Gmsh.y" +#line 6056 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(2); ;} break; case 515: -#line 6188 "Gmsh.y" +#line 6060 "Gmsh.y" { (yyval.l) = GetAllElementaryEntityNumbers(3); ;} break; case 516: -#line 6192 "Gmsh.y" +#line 6064 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(0); ;} break; case 517: -#line 6196 "Gmsh.y" +#line 6068 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(1); ;} break; case 518: -#line 6200 "Gmsh.y" +#line 6072 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(2); ;} break; case 519: -#line 6204 "Gmsh.y" +#line 6076 "Gmsh.y" { (yyval.l) = GetAllPhysicalEntityNumbers(3); ;} break; case 520: -#line 6208 "Gmsh.y" +#line 6080 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -13540,7 +13382,7 @@ yyreduce: break; case 521: -#line 6237 "Gmsh.y" +#line 6109 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -13572,7 +13414,7 @@ yyreduce: break; case 522: -#line 6266 "Gmsh.y" +#line 6138 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -13604,7 +13446,7 @@ yyreduce: break; case 523: -#line 6295 "Gmsh.y" +#line 6167 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ @@ -13636,7 +13478,7 @@ yyreduce: break; case 524: -#line 6325 "Gmsh.y" +#line 6197 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13651,7 +13493,7 @@ yyreduce: break; case 525: -#line 6338 "Gmsh.y" +#line 6210 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13666,7 +13508,7 @@ yyreduce: break; case 526: -#line 6351 "Gmsh.y" +#line 6223 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13681,7 +13523,7 @@ yyreduce: break; case 527: -#line 6364 "Gmsh.y" +#line 6236 "Gmsh.y" { (yyval.l) = List_Create(10, 1, sizeof(double)); GModel::current()->importGEOInternals(); @@ -13696,7 +13538,7 @@ yyreduce: break; case 528: -#line 6376 "Gmsh.y" +#line 6248 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -13709,7 +13551,7 @@ yyreduce: break; case 529: -#line 6386 "Gmsh.y" +#line 6258 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -13722,7 +13564,7 @@ yyreduce: break; case 530: -#line 6396 "Gmsh.y" +#line 6268 "Gmsh.y" { (yyval.l) = List_Create(List_Nbr((yyvsp[(1) - (1)].l)), 1, sizeof(double)); for(int i = 0; i < List_Nbr((yyvsp[(1) - (1)].l)); i++){ @@ -13735,7 +13577,7 @@ yyreduce: break; case 531: -#line 6406 "Gmsh.y" +#line 6278 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -13750,7 +13592,7 @@ yyreduce: break; case 532: -#line 6418 "Gmsh.y" +#line 6290 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -13765,7 +13607,7 @@ yyreduce: break; case 533: -#line 6431 "Gmsh.y" +#line 6303 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(3) - (4)].c))) @@ -13780,35 +13622,35 @@ yyreduce: break; case 534: -#line 6443 "Gmsh.y" +#line 6315 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; case 535: -#line 6447 "Gmsh.y" +#line 6319 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); ;} break; case 536: -#line 6451 "Gmsh.y" +#line 6323 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (6)].l); ;} break; case 537: -#line 6455 "Gmsh.y" +#line 6327 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (6)].l); ;} break; case 538: -#line 6459 "Gmsh.y" +#line 6331 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -13829,7 +13671,7 @@ yyreduce: break; case 539: -#line 6477 "Gmsh.y" +#line 6349 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -13850,7 +13692,7 @@ yyreduce: break; case 540: -#line 6495 "Gmsh.y" +#line 6367 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -13861,7 +13703,7 @@ yyreduce: break; case 541: -#line 6503 "Gmsh.y" +#line 6375 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(double)); for(int i = 0; i < (int)(yyvsp[(7) - (8)].d); i++) { @@ -13872,7 +13714,7 @@ yyreduce: break; case 542: -#line 6511 "Gmsh.y" +#line 6383 "Gmsh.y" { Msg::Barrier(); FILE *File; @@ -13904,7 +13746,7 @@ yyreduce: break; case 543: -#line 6540 "Gmsh.y" +#line 6412 "Gmsh.y" { double x0 = (yyvsp[(3) - (14)].d), x1 = (yyvsp[(5) - (14)].d), y0 = (yyvsp[(7) - (14)].d), y1 = (yyvsp[(9) - (14)].d), ys = (yyvsp[(11) - (14)].d); int N = (int)(yyvsp[(13) - (14)].d); @@ -13917,7 +13759,7 @@ yyreduce: break; case 544: -#line 6550 "Gmsh.y" +#line 6422 "Gmsh.y" { std::vector<double> tmp; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ @@ -13936,7 +13778,7 @@ yyreduce: break; case 545: -#line 6569 "Gmsh.y" +#line 6441 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -13944,21 +13786,21 @@ yyreduce: break; case 546: -#line 6574 "Gmsh.y" +#line 6446 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 547: -#line 6578 "Gmsh.y" +#line 6450 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; case 548: -#line 6582 "Gmsh.y" +#line 6454 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -13970,21 +13812,21 @@ yyreduce: break; case 549: -#line 6594 "Gmsh.y" +#line 6466 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; case 550: -#line 6598 "Gmsh.y" +#line 6470 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; case 551: -#line 6610 "Gmsh.y" +#line 6482 "Gmsh.y" { int flag = 0; if(gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ @@ -14004,7 +13846,7 @@ yyreduce: break; case 552: -#line 6627 "Gmsh.y" +#line 6499 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -14014,14 +13856,14 @@ yyreduce: break; case 553: -#line 6637 "Gmsh.y" +#line 6509 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 554: -#line 6641 "Gmsh.y" +#line 6513 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -14036,7 +13878,7 @@ yyreduce: break; case 555: -#line 6656 "Gmsh.y" +#line 6528 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); @@ -14044,21 +13886,21 @@ yyreduce: break; case 556: -#line 6661 "Gmsh.y" +#line 6533 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; case 557: -#line 6668 "Gmsh.y" +#line 6540 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 558: -#line 6672 "Gmsh.y" +#line 6544 "Gmsh.y" { std::string val; if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))) @@ -14074,7 +13916,7 @@ yyreduce: break; case 559: -#line 6685 "Gmsh.y" +#line 6557 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -14091,7 +13933,7 @@ yyreduce: break; case 560: -#line 6699 "Gmsh.y" +#line 6571 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -14108,7 +13950,7 @@ yyreduce: break; case 561: -#line 6713 "Gmsh.y" +#line 6585 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -14125,7 +13967,7 @@ yyreduce: break; case 562: -#line 6727 "Gmsh.y" +#line 6599 "Gmsh.y" { std::string val; int j = (int)(yyvsp[(3) - (4)].d); @@ -14142,7 +13984,7 @@ yyreduce: break; case 563: -#line 6741 "Gmsh.y" +#line 6613 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -14153,7 +13995,7 @@ yyreduce: break; case 564: -#line 6749 "Gmsh.y" +#line 6621 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -14164,21 +14006,21 @@ yyreduce: break; case 565: -#line 6760 "Gmsh.y" +#line 6632 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 566: -#line 6764 "Gmsh.y" +#line 6636 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 567: -#line 6768 "Gmsh.y" +#line 6640 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -14189,7 +14031,7 @@ yyreduce: break; case 568: -#line 6776 "Gmsh.y" +#line 6648 "Gmsh.y" { std::string exe = Msg::GetExecutableName(); (yyval.c) = (char *)Malloc(exe.size() + 1); @@ -14198,7 +14040,7 @@ yyreduce: break; case 569: -#line 6782 "Gmsh.y" +#line 6654 "Gmsh.y" { std::string action = Msg::GetOnelabAction(); (yyval.c) = (char *)Malloc(action.size() + 1); @@ -14207,7 +14049,7 @@ yyreduce: break; case 570: -#line 6788 "Gmsh.y" +#line 6660 "Gmsh.y" { const char *env = GetEnvironmentVar((yyvsp[(3) - (4)].c)); if(!env) env = ""; @@ -14218,7 +14060,7 @@ yyreduce: break; case 571: -#line 6796 "Gmsh.y" +#line 6668 "Gmsh.y" { std::string s = Msg::GetString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -14229,7 +14071,7 @@ yyreduce: break; case 572: -#line 6804 "Gmsh.y" +#line 6676 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (4)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -14239,7 +14081,7 @@ yyreduce: break; case 573: -#line 6811 "Gmsh.y" +#line 6683 "Gmsh.y" { std::string s = Msg::GetOnelabString((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].c)); (yyval.c) = (char *)Malloc((s.size() + 1) * sizeof(char)); @@ -14250,7 +14092,7 @@ yyreduce: break; case 574: -#line 6819 "Gmsh.y" +#line 6691 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -14268,7 +14110,7 @@ yyreduce: break; case 575: -#line 6834 "Gmsh.y" +#line 6706 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -14285,7 +14127,7 @@ yyreduce: break; case 576: -#line 6848 "Gmsh.y" +#line 6720 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -14302,7 +14144,7 @@ yyreduce: break; case 577: -#line 6862 "Gmsh.y" +#line 6734 "Gmsh.y" { std::string input = (yyvsp[(3) - (8)].c); std::string substr_old = (yyvsp[(5) - (8)].c); @@ -14317,7 +14159,7 @@ yyreduce: break; case 578: -#line 6874 "Gmsh.y" +#line 6746 "Gmsh.y" { int size = 1; for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++) @@ -14336,7 +14178,7 @@ yyreduce: break; case 579: -#line 6890 "Gmsh.y" +#line 6762 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -14348,7 +14190,7 @@ yyreduce: break; case 580: -#line 6899 "Gmsh.y" +#line 6771 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -14360,7 +14202,7 @@ yyreduce: break; case 581: -#line 6908 "Gmsh.y" +#line 6780 "Gmsh.y" { int i = 0; while ((yyvsp[(3) - (4)].c)[i]) { @@ -14373,7 +14215,7 @@ yyreduce: break; case 582: -#line 6918 "Gmsh.y" +#line 6790 "Gmsh.y" { if((yyvsp[(3) - (8)].d)){ (yyval.c) = (yyvsp[(5) - (8)].c); @@ -14387,7 +14229,7 @@ yyreduce: break; case 583: -#line 6929 "Gmsh.y" +#line 6801 "Gmsh.y" { std::string in = (yyvsp[(3) - (8)].c); std::string out = in.substr((int)(yyvsp[(5) - (8)].d), (int)(yyvsp[(7) - (8)].d)); @@ -14398,7 +14240,7 @@ yyreduce: break; case 584: -#line 6937 "Gmsh.y" +#line 6809 "Gmsh.y" { std::string in = (yyvsp[(3) - (6)].c); std::string out = in.substr((int)(yyvsp[(5) - (6)].d), std::string::npos); @@ -14409,14 +14251,14 @@ yyreduce: break; case 585: -#line 6945 "Gmsh.y" +#line 6817 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 586: -#line 6949 "Gmsh.y" +#line 6821 "Gmsh.y" { char tmpstring[5000]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -14438,7 +14280,7 @@ yyreduce: break; case 587: -#line 6968 "Gmsh.y" +#line 6840 "Gmsh.y" { std::string tmp = FixRelativePath(gmsh_yyname, (yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -14448,7 +14290,7 @@ yyreduce: break; case 588: -#line 6975 "Gmsh.y" +#line 6847 "Gmsh.y" { std::string tmp = SplitFileName(GetAbsolutePath(gmsh_yyname))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -14457,7 +14299,7 @@ yyreduce: break; case 589: -#line 6981 "Gmsh.y" +#line 6853 "Gmsh.y" { std::string tmp = SplitFileName((yyvsp[(3) - (4)].c))[0]; (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -14467,7 +14309,7 @@ yyreduce: break; case 590: -#line 6988 "Gmsh.y" +#line 6860 "Gmsh.y" { std::string tmp = GetAbsolutePath((yyvsp[(3) - (4)].c)); (yyval.c) = (char*)Malloc((tmp.size() + 1) * sizeof(char)); @@ -14477,12 +14319,12 @@ yyreduce: break; case 591: -#line 6995 "Gmsh.y" +#line 6867 "Gmsh.y" { floatOptions.clear(); charOptions.clear(); ;} break; case 592: -#line 6997 "Gmsh.y" +#line 6869 "Gmsh.y" { std::string val((yyvsp[(3) - (6)].c)); Msg::ExchangeOnelabParameter("", val, floatOptions, charOptions); @@ -14493,7 +14335,7 @@ yyreduce: break; case 593: -#line 7008 "Gmsh.y" +#line 6880 "Gmsh.y" { (yyval.l) = List_Create(20,20,sizeof(char*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].c))); @@ -14501,12 +14343,12 @@ yyreduce: break; case 594: -#line 7013 "Gmsh.y" +#line 6885 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].c))); ;} break; case 595: -#line 7019 "Gmsh.y" +#line 6891 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -14517,7 +14359,7 @@ yyreduce: break; case 596: -#line 7028 "Gmsh.y" +#line 6900 "Gmsh.y" { char tmpstr[256]; sprintf(tmpstr, "_%d", (int)(yyvsp[(4) - (5)].d)); @@ -14528,23 +14370,23 @@ yyreduce: break; case 597: -#line 7041 "Gmsh.y" +#line 6913 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 598: -#line 7044 "Gmsh.y" +#line 6916 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 599: -#line 7048 "Gmsh.y" +#line 6920 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; /* Line 1267 of yacc.c. */ -#line 14548 "Gmsh.tab.cpp" +#line 14390 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -14758,7 +14600,7 @@ yyreturn: } -#line 7051 "Gmsh.y" +#line 6923 "Gmsh.y" void assignVariable(const std::string &name, int index, int assignType, diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 8b12933a87..d9636ce46d 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1752,27 +1752,6 @@ Shape : $$.Type = MSH_SEGM_LINE; $$.Num = num; } - | tDegenerated tLine ListOfDouble tEND - { - for (int i = 0; i < List_Nbr($3); i++){ - double dnum; - List_Read($3, i, &dnum); - int num = (int) fabs(dnum); - Curve *c = FindCurve(num); - if (c){ - c->degenerated = true; - } - else{ - GEdge *ge = GModel::current()->getEdgeByTag(num); - if (!ge){ - yymsg(0, "Curve %d does not exist", num); - } - else{ - ge->setTooSmall(true); - } - } - } - } | tSpline '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$3; @@ -2682,28 +2661,10 @@ ListOfShapes : for(int i = 0; i < List_Nbr($4); i++){ double d; List_Read($4, i, &d); - Shape TheShape; - TheShape.Num = (int)d; - Vertex *v = FindPoint(std::abs(TheShape.Num)); - if(v){ - TheShape.Type = MSH_POINT; - List_Add($$, &TheShape); - } - else{ - GVertex *gv = GModel::current()->getVertexByTag(std::abs(TheShape.Num)); - if(gv){ - TheShape.Type = MSH_POINT_FROM_GMODEL; - List_Add($$, &TheShape); - } - else{ - if(factory == "OpenCASCADE"){ - TheShape.Type = MSH_POINT_FROM_GMODEL; - List_Add($$, &TheShape); - } - else - yymsg(1, "Unknown point %d", TheShape.Num); - } - } + Shape s; + s.Num = (int)d; + s.Type = MSH_POINT; + List_Add($$, &s); } } | ListOfShapes tLine '{' RecursiveListOfDouble '}' tEND @@ -2711,28 +2672,10 @@ ListOfShapes : for(int i = 0; i < List_Nbr($4); i++){ double d; List_Read($4, i, &d); - Shape TheShape; - TheShape.Num = (int)d; - Curve *c = FindCurve(std::abs(TheShape.Num)); - if(c){ - TheShape.Type = c->Typ; - List_Add($$, &TheShape); - } - else{ - GEdge *ge = GModel::current()->getEdgeByTag(std::abs(TheShape.Num)); - if(ge){ - TheShape.Type = MSH_SEGM_FROM_GMODEL; - List_Add($$, &TheShape); - } - else{ - if(factory == "OpenCASCADE"){ - TheShape.Type = MSH_SEGM_FROM_GMODEL; - List_Add($$, &TheShape); - } - else - yymsg(1, "Unknown curve %d", TheShape.Num); - } - } + Shape s; + s.Num = (int)d; + s.Type = MSH_SEGM_LINE; + List_Add($$, &s); } } | ListOfShapes tSurface '{' RecursiveListOfDouble '}' tEND @@ -2740,28 +2683,10 @@ ListOfShapes : for(int i = 0; i < List_Nbr($4); i++){ double d; List_Read($4, i, &d); - Shape TheShape; - TheShape.Num = (int)d; - Surface *s = FindSurface(std::abs(TheShape.Num)); - if(s){ - TheShape.Type = s->Typ; - List_Add($$, &TheShape); - } - else{ - GFace *gf = GModel::current()->getFaceByTag(std::abs(TheShape.Num)); - if(gf){ - TheShape.Type = MSH_SURF_FROM_GMODEL; - List_Add($$, &TheShape); - } - else{ - if(factory == "OpenCASCADE"){ - TheShape.Type = MSH_SURF_FROM_GMODEL; - List_Add($$, &TheShape); - } - else - yymsg(1, "Unknown surface %d", TheShape.Num); - } - } + Shape s; + s.Num = (int)d; + s.Type = MSH_SURF_PLAN; // we don't care about the actual type + List_Add($$, &s); } } | ListOfShapes tVolume '{' RecursiveListOfDouble '}' tEND @@ -2769,28 +2694,10 @@ ListOfShapes : for(int i = 0; i < List_Nbr($4); i++){ double d; List_Read($4, i, &d); - Shape TheShape; - TheShape.Num = (int)d; - Volume *v = FindVolume(std::abs(TheShape.Num)); - if(v){ - TheShape.Type = v->Typ; - List_Add($$, &TheShape); - } - else{ - GRegion *gr = GModel::current()->getRegionByTag(std::abs(TheShape.Num)); - if(gr){ - TheShape.Type = MSH_VOLUME_FROM_GMODEL; - List_Add($$, &TheShape); - } - else{ - if(factory == "OpenCASCADE"){ - TheShape.Type = MSH_VOLUME_FROM_GMODEL; - List_Add($$, &TheShape); - } - else - yymsg(1, "Unknown volume %d", TheShape.Num); - } - } + Shape s; + s.Num = (int)d; + s.Type = MSH_VOLUME; + List_Add($$, &s); } } ; @@ -4641,15 +4548,11 @@ Constraints : for(int i = 0; i < List_Nbr($3); i++){ double d; List_Read($3, i, &d); - Vertex *v = FindPoint((int)d); - if(v){ - v->lc = $5; - } - else{ - GVertex *gv = GModel::current()->getVertexByTag((int)d); - if(gv) - gv->setPrescribedMeshSizeAtVertex($5); - } + int tag = (int)d; + GModel::current()->getGEOInternals()->setMeshSize(0, tag, $5); + GModel::current()->getOCCInternals()->setMeshSize(0, tag, $5); + GVertex *gv = GModel::current()->getVertexByTag(tag); + if(gv) gv->setPrescribedMeshSizeAtVertex($5); } List_Delete($3); } @@ -5412,11 +5315,7 @@ Constraints : double d; List_Read($3, i, &d); GVertex *gv = GModel::current()->getVertexByTag((int)d); - if(gv){ - gv->relocateMeshVertices(); - } - else - yymsg(1, "Unknown point %d", (int)d); + if(gv) gv->relocateMeshVertices(); } List_Delete($3); } @@ -5433,11 +5332,7 @@ Constraints : double d; List_Read($3, i, &d); GEdge *ge = GModel::current()->getEdgeByTag((int)d); - if(ge){ - ge->relocateMeshVertices(); - } - else - yymsg(1, "Unknown line %d", (int)d); + if(ge) ge->relocateMeshVertices(); } List_Delete($3); } @@ -5454,15 +5349,23 @@ Constraints : double d; List_Read($3, i, &d); GFace *gf = GModel::current()->getFaceByTag((int)d); - if(gf){ - gf->relocateMeshVertices(); - } - else - yymsg(1, "Unknown surface %d", (int)d); + if(gf) gf->relocateMeshVertices(); } List_Delete($3); } } + | tDegenerated tLine ListOfDouble tEND + { + for(int i = 0; i < List_Nbr($3); i++){ + double dnum; + List_Read($3, i, &dnum); + int num = (int)fabs(dnum); + GModel::current()->getGEOInternals()->setDegenerated(1, num); + GEdge *ge = GModel::current()->getEdgeByTag(num); + if(ge) ge->setTooSmall(true); + } + List_Delete($3); + } | tCompound tLine ListOfDouble tEND { std::vector<int> tags; ListOfDouble2Vector($3, tags); @@ -5489,12 +5392,12 @@ Constraints : Coherence : tCoherence tEND { - ReplaceAllDuplicates(); + GModel::current()->getGEOInternals()->removeAllDuplicates(); } | tCoherence tSTRING tEND { if(!strcmp($2, "Geometry")) - ReplaceAllDuplicates(); + GModel::current()->getGEOInternals()->removeAllDuplicates(); else if(!strcmp($2, "Mesh")) GModel::current()->removeDuplicateMeshVertices(CTX::instance()->geom.tolerance); else @@ -5503,32 +5406,8 @@ Coherence : } | tCoherence tPoint '{' RecursiveListOfDouble '}' tEND { - if(List_Nbr($4) >= 2){ - double d; - List_Read($4, 0, &d); - Vertex *target = FindPoint((int)d); - if(!target) - yymsg(0, "Could not find Point %d", (int)d); - else{ - double x = target->Pos.X, y = target->Pos.Y, z = target->Pos.Z; - for(int i = 1; i < List_Nbr($4); i++){ - List_Read($4, i, &d); - Vertex *source = FindPoint((int)d); - if(!source) yymsg(0, "Could not find Point %d", (int)d); - if(target && source){ - source->Typ = target->Typ; - source->Pos.X = x; - source->Pos.Y = y; - source->Pos.Z = z; - source->boundaryLayerIndex = target->boundaryLayerIndex; - } - } - ExtrudeParams::normalsCoherence.push_back(SPoint3(x, y, z)); - } - } - else - yymsg(0, "Need at least two points to merge"); - ReplaceAllDuplicates(); + std::vector<int> tags; ListOfDouble2Vector($4, tags); + GModel::current()->getGEOInternals()->mergeVertices(tags); List_Delete($4); } ; @@ -6145,32 +6024,25 @@ FExpr_Multi : } | tPoint '{' FExpr '}' { - // Returns the coordinates of a point and fills a list with it. - // This allows to ensure e.g. that relative point positions are - // always conserved - Vertex *v = FindPoint((int)$3); $$ = List_Create(3, 1, sizeof(double)); - if(!v) { - GVertex *gv = GModel::current()->getVertexByTag((int)$3); - if(gv){ - double x = gv->x(), y = gv->y(), z = gv->z(); - List_Add($$, &x); - List_Add($$, &y); - List_Add($$, &z); - } - else{ - yymsg(0, "Unknown point '%d'", (int)$3); - double d = 0.0; - List_Add($$, &d); - List_Add($$, &d); - List_Add($$, &d); + int tag = (int)$3; + double x = 0., y = 0., z = 0.; + if(!GModel::current()->getGEOInternals()->getVertex(tag, x, y, z)){ + if(!GModel::current()->getOCCInternals()->getVertex(tag, x, y, z)){ + GVertex *gv = GModel::current()->getVertexByTag(tag); + if(gv){ + x = gv->x(); + y = gv->y(); + z = gv->z(); + } + else{ + yymsg(0, "Unknown vertex %d", tag); + } } } - else{ - List_Add($$, &v->Pos.X); - List_Add($$, &v->Pos.Y); - List_Add($$, &v->Pos.Z); - } + List_Add($$, &x); + List_Add($$, &y); + List_Add($$, &z); } | tPoint tBIGSTR { @@ -7359,8 +7231,8 @@ void addPeriodicFace(int iTarget, int iSource, if (!target || !source) { Msg::Error("Could not find surface slave %d or master %d for periodic copy", iTarget,iSource); - } - else target->setMeshMaster(source, edgeCounterparts); + } + else target->setMeshMaster(source, edgeCounterparts); } } diff --git a/demos/boolean/periodic.geo b/demos/boolean/periodic.geo new file mode 100644 index 0000000000..00861a1aed --- /dev/null +++ b/demos/boolean/periodic.geo @@ -0,0 +1,12 @@ +SetFactory("OpenCASCADE"); + +Mesh.CharacteristicLengthMax = 0.4; + +R = 2; +Block(1) = {0,0,0, R,R,R}; +pts() = Unique(Boundary{Boundary{Boundary{Volume{1};}}}); + +Characteristic Length{pts(0)} = 0.01; + +SyncModel; +Periodic Surface{2} = {1} Translate{R,0,0}; -- GitLab