diff --git a/Mesh/meshGFace.h b/Mesh/meshGFace.h index 43850c3e4f2a09a806e612fc501c659774ee43cc..bf4f9ae091b13d3f5c3b0b448011f35686a488d6 100644 --- a/Mesh/meshGFace.h +++ b/Mesh/meshGFace.h @@ -35,14 +35,14 @@ class orientMeshGFace { void operator () (GFace *); }; -void fourthPoint (double *p1, double *p2, double *p3, double *p4); +void fourthPoint(double *p1, double *p2, double *p3, double *p4); // Compute edge loops of the face, all_mvertices are the vertices of // the void computeEdgeLoops(const GFace *gf, std::vector<MVertex*> &all_mvertices, std::vector<int> &indices); - +void findTransfiniteCorners(GFace *gf, std::vector<MVertex*> &corners); int MeshTransfiniteSurface(GFace *gf); int MeshExtrudedSurface(GFace *gf, std::set<std::pair<MVertex*, MVertex*> > *constrainedEdges=0); diff --git a/Mesh/meshGFaceTransfinite.cpp b/Mesh/meshGFaceTransfinite.cpp index 2a2b30c2a66de4a1e72304958800aca25681175c..7f7dc11c49427a7f7da10b5bf5e7e7764aca316f 100644 --- a/Mesh/meshGFaceTransfinite.cpp +++ b/Mesh/meshGFaceTransfinite.cpp @@ -37,14 +37,8 @@ extern Context_T CTX; // f(u,v) = u c2 (v) + (1-v) c1(u) + v c3(u) - u(1-v) s2 - uv s3 #define TRAN_TRI(c1,c2,c3,s1,s2,s3,u,v) u*c2+(1.-v)*c1+v*c3-(u*(1.-v)*s2+u*v*s3) -int MeshTransfiniteSurface(GFace *gf) +void findTransfiniteCorners(GFace *gf, std::vector<MVertex*> &corners) { - if(gf->meshAttributes.Method != MESH_TRANSFINITE) return 0; - - Msg::StatusBar(2, true, "Meshing surface %d (transfinite)", gf->tag()); - - std::vector<MVertex*> corners; - if(gf->meshAttributes.corners.size()){ // corners have been specified explicitly for(unsigned int i = 0; i < gf->meshAttributes.corners.size(); i++) @@ -52,11 +46,49 @@ int MeshTransfiniteSurface(GFace *gf) } else{ // try to find the corners automatically - GEdgeLoop el(gf->edges()); + std::list<GEdge*> fedges = gf->edges(); + GEdgeLoop el(fedges); for(GEdgeLoop::iter it = el.begin(); it != el.end(); it++) corners.push_back(it->getBeginVertex()->mesh_vertices[0]); + + // try reaaally hard for 3-sided faces + if(corners.size() == 3){ + GEdge *first = 0, *last = 0; + for(std::list<GEdge*>::iterator it = fedges.begin(); it != fedges.end(); it++){ + if(((*it)->getBeginVertex()->mesh_vertices[0] == corners[0] && + (*it)->getEndVertex()->mesh_vertices[0] == corners[1]) || + ((*it)->getBeginVertex()->mesh_vertices[0] == corners[1] && + (*it)->getEndVertex()->mesh_vertices[0] == corners[0])){ + first = *it; + } + if(((*it)->getBeginVertex()->mesh_vertices[0] == corners[2] && + (*it)->getEndVertex()->mesh_vertices[0] == corners[0]) || + ((*it)->getBeginVertex()->mesh_vertices[0] == corners[0] && + (*it)->getEndVertex()->mesh_vertices[0] == corners[2])){ + last = *it; + } + } + if(first && last){ + if(first->mesh_vertices.size() != last->mesh_vertices.size()){ + std::vector<MVertex*> corners2(3); + corners2[0] = corners[1]; + corners2[1] = corners[2]; + corners2[2] = corners[0]; + corners = corners2; + } + } + } } +} + +int MeshTransfiniteSurface(GFace *gf) +{ + if(gf->meshAttributes.Method != MESH_TRANSFINITE) return 0; + Msg::StatusBar(2, true, "Meshing surface %d (transfinite)", gf->tag()); + + std::vector<MVertex*> corners; + findTransfiniteCorners(gf, corners); if(corners.size () != 3 && corners.size () != 4){ Msg::Error("Surface %d is transfinite but has %d corners", gf->tag(), corners.size()); diff --git a/Mesh/meshGRegionTransfinite.cpp b/Mesh/meshGRegionTransfinite.cpp index 53efdd9a2d0b91ea11e5db87e474b2af25806575..2bd94f9b6f45aad8b0662b1652595e5b91d75dbd 100644 --- a/Mesh/meshGRegionTransfinite.cpp +++ b/Mesh/meshGRegionTransfinite.cpp @@ -156,7 +156,7 @@ public: : _gf(0), _LL(0), _HH(0), _permutation(-1), _index(-1) { } - GOrientedTransfiniteFace(GFace *gf, std::vector<GVertex*> &corners) + GOrientedTransfiniteFace(GFace *gf, std::vector<MVertex*> &corners) : _gf(gf), _LL(0), _HH(0), _permutation(-1), _index(-1) { _LL = gf->transfinite_vertices.size() - 1; @@ -169,17 +169,11 @@ public: std::vector<MVertex*> s(8); if(corners.size() == 8){ for(int i = 0; i < 8; i++) - s[i] = corners[i]->mesh_vertices[0]; + s[i] = corners[i]; } else if(corners.size() == 6){ - s[0] = corners[0]->mesh_vertices[0]; - s[1] = corners[1]->mesh_vertices[0]; - s[2] = corners[2]->mesh_vertices[0]; - s[3] = corners[0]->mesh_vertices[0]; - s[4] = corners[3]->mesh_vertices[0]; - s[5] = corners[4]->mesh_vertices[0]; - s[6] = corners[5]->mesh_vertices[0]; - s[7] = corners[3]->mesh_vertices[0]; + s[0] = corners[0]; s[1] = corners[1]; s[2] = corners[2]; s[3] = corners[0]; + s[4] = corners[3]; s[5] = corners[4]; s[6] = corners[5]; s[7] = corners[3]; } else return; @@ -262,6 +256,53 @@ public: } }; +void findTransfiniteCorners(GRegion *gr, std::vector<MVertex*> &corners) +{ + if(gr->meshAttributes.corners.size()){ + // corners have been specified explicitly + for(unsigned int i = 0; i < gr->meshAttributes.corners.size(); i++) + corners.push_back(gr->meshAttributes.corners[i]->mesh_vertices[0]); + } + else{ + // try to find the corners automatically + GFace *gf = 0; + std::list<GFace*> faces = gr->faces(); + if(faces.size() == 6){ + // any face will do as a starting face + gf = faces.front(); + } + else if(faces.size() == 5){ + // we need to start with a triangular face + for(std::list<GFace*>::iterator it = faces.begin(); it != faces.end(); it++){ + if((*it)->edges().size() == 3 || (*it)->meshAttributes.corners.size() == 3){ + gf = *it; + break; + } + } + } + if(gf){ + std::list<GEdge*> fedges = gf->edges(); + std::list<GEdge*> redges = gr->edges(); + for(std::list<GEdge*>::iterator it = fedges.begin(); it != fedges.end(); it++) + redges.erase(std::find(redges.begin(), redges.end(), *it)); + findTransfiniteCorners(gf, corners); + int N = corners.size(); + for(unsigned int i = 0; i < N; i++){ + for(std::list<GEdge*>::iterator it = redges.begin(); it != redges.end(); it++){ + if((*it)->getBeginVertex()->mesh_vertices[0] == corners[i]){ + corners.push_back((*it)->getEndVertex()->mesh_vertices[0]); + break; + } + else if((*it)->getEndVertex()->mesh_vertices[0] == corners[i]){ + corners.push_back((*it)->getBeginVertex()->mesh_vertices[0]); + break; + } + } + } + } + } +} + int MeshTransfiniteVolume(GRegion *gr) { if(gr->meshAttributes.Method != MESH_TRANSFINITE) return 0; @@ -274,9 +315,17 @@ int MeshTransfiniteVolume(GRegion *gr) return 0; } + std::vector<MVertex*> corners; + findTransfiniteCorners(gr, corners); + if(corners.size() != 6 && corners.size() != 8){ + Msg::Error("Volume %d is transfinite but has %d corners", + gr->tag(), corners.size()); + return 0; + } + std::vector<GOrientedTransfiniteFace> orientedFaces(6); for(std::list<GFace*>::iterator it = faces.begin(); it != faces.end(); ++it){ - GOrientedTransfiniteFace f(*it, gr->meshAttributes.corners); + GOrientedTransfiniteFace f(*it, corners); if(f.index() < 0){ Msg::Error("Incompatible surface %d in transfinite volume %d", (*it)->tag(), gr->tag()); @@ -365,7 +414,7 @@ int MeshTransfiniteVolume(GRegion *gr) MVertex *f1 = orientedFaces[1].getVertex(j, k); MVertex *f2 = orientedFaces[2].getVertex(i, k); MVertex *f3; - if(gr->meshAttributes.corners.size() == 8) + if(corners.size() == 8) f3 = orientedFaces[3].getVertex(j, k); else f3 = c8; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 4710a2caeb9ca17d1c63244172802bee84ac885b..621d11fd051fe0b093dac5af766685e608b61d25 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -650,7 +650,7 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 6284 +#define YYLAST 6191 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 141 @@ -659,7 +659,7 @@ union yyalloc /* YYNRULES -- Number of rules. */ #define YYNRULES 358 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1253 +#define YYNSTATES 1250 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -738,20 +738,20 @@ static const yytype_uint16 yyprhs[] = 1181, 1198, 1199, 1216, 1217, 1234, 1235, 1254, 1255, 1274, 1275, 1294, 1296, 1299, 1305, 1313, 1323, 1326, 1336, 1337, 1341, 1342, 1344, 1345, 1348, 1349, 1352, 1360, 1367, 1376, - 1385, 1391, 1398, 1409, 1420, 1431, 1442, 1445, 1449, 1451, - 1455, 1458, 1461, 1464, 1468, 1472, 1476, 1480, 1484, 1488, - 1492, 1496, 1500, 1504, 1508, 1512, 1516, 1520, 1526, 1531, - 1536, 1541, 1546, 1551, 1556, 1561, 1566, 1571, 1576, 1583, - 1588, 1593, 1598, 1603, 1608, 1613, 1620, 1627, 1634, 1639, - 1644, 1649, 1654, 1659, 1664, 1669, 1674, 1679, 1684, 1689, - 1696, 1701, 1706, 1711, 1716, 1721, 1726, 1733, 1740, 1747, - 1752, 1754, 1756, 1758, 1760, 1762, 1764, 1766, 1768, 1774, - 1779, 1784, 1787, 1793, 1797, 1804, 1809, 1817, 1824, 1826, - 1829, 1832, 1836, 1840, 1852, 1862, 1870, 1878, 1880, 1884, - 1886, 1888, 1891, 1895, 1900, 1906, 1908, 1910, 1913, 1917, - 1921, 1927, 1932, 1934, 1936, 1940, 1947, 1949, 1951, 1955, - 1959, 1969, 1977, 1979, 1985, 1989, 1996, 1998, 2002, 2004, - 2006, 2010, 2017, 2019, 2021, 2028, 2033, 2038, 2043 + 1382, 1388, 1395, 1406, 1417, 1428, 1439, 1442, 1446, 1448, + 1452, 1455, 1458, 1461, 1465, 1469, 1473, 1477, 1481, 1485, + 1489, 1493, 1497, 1501, 1505, 1509, 1513, 1517, 1523, 1528, + 1533, 1538, 1543, 1548, 1553, 1558, 1563, 1568, 1573, 1580, + 1585, 1590, 1595, 1600, 1605, 1610, 1617, 1624, 1631, 1636, + 1641, 1646, 1651, 1656, 1661, 1666, 1671, 1676, 1681, 1686, + 1693, 1698, 1703, 1708, 1713, 1718, 1723, 1730, 1737, 1744, + 1749, 1751, 1753, 1755, 1757, 1759, 1761, 1763, 1765, 1771, + 1776, 1781, 1784, 1790, 1794, 1801, 1806, 1814, 1821, 1823, + 1826, 1829, 1833, 1837, 1849, 1859, 1867, 1875, 1877, 1881, + 1883, 1885, 1888, 1892, 1897, 1903, 1905, 1907, 1910, 1914, + 1918, 1924, 1929, 1931, 1933, 1937, 1944, 1946, 1948, 1952, + 1956, 1966, 1974, 1976, 1982, 1986, 1993, 1995, 1999, 2001, + 2003, 2007, 2014, 2016, 2018, 2025, 2030, 2035, 2040 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -894,74 +894,74 @@ static const yytype_int16 yyrhs[] = -1, -1, 4, -1, -1, 7, 206, -1, -1, 7, 201, -1, 58, 46, 206, 7, 201, 194, 6, -1, 58, 49, 207, 196, 195, 6, -1, 55, 49, 138, - 201, 139, 7, 206, 6, -1, 58, 51, 138, 201, - 139, 7, 206, 6, -1, 70, 49, 207, 197, 6, - -1, 71, 49, 206, 7, 201, 6, -1, 43, 138, - 209, 139, 93, 49, 138, 201, 139, 6, -1, 46, - 138, 209, 139, 93, 49, 138, 201, 139, 6, -1, - 46, 138, 209, 139, 93, 51, 138, 201, 139, 6, - -1, 49, 138, 209, 139, 93, 51, 138, 201, 139, - 6, -1, 74, 6, -1, 74, 4, 6, -1, 202, - -1, 131, 201, 132, -1, 122, 201, -1, 121, 201, - -1, 126, 201, -1, 201, 122, 201, -1, 201, 121, - 201, -1, 201, 123, 201, -1, 201, 124, 201, -1, - 201, 125, 201, -1, 201, 130, 201, -1, 201, 117, - 201, -1, 201, 118, 201, -1, 201, 120, 201, -1, - 201, 119, 201, -1, 201, 116, 201, -1, 201, 115, - 201, -1, 201, 114, 201, -1, 201, 113, 201, -1, - 201, 112, 201, 8, 201, -1, 14, 131, 201, 132, - -1, 15, 131, 201, 132, -1, 16, 131, 201, 132, - -1, 17, 131, 201, 132, -1, 18, 131, 201, 132, - -1, 19, 131, 201, 132, -1, 20, 131, 201, 132, - -1, 21, 131, 201, 132, -1, 22, 131, 201, 132, - -1, 24, 131, 201, 132, -1, 25, 131, 201, 137, - 201, 132, -1, 26, 131, 201, 132, -1, 27, 131, - 201, 132, -1, 28, 131, 201, 132, -1, 29, 131, - 201, 132, -1, 30, 131, 201, 132, -1, 31, 131, - 201, 132, -1, 32, 131, 201, 137, 201, 132, -1, - 33, 131, 201, 137, 201, 132, -1, 34, 131, 201, - 137, 201, 132, -1, 23, 131, 201, 132, -1, 14, - 133, 201, 134, -1, 15, 133, 201, 134, -1, 16, - 133, 201, 134, -1, 17, 133, 201, 134, -1, 18, - 133, 201, 134, -1, 19, 133, 201, 134, -1, 20, - 133, 201, 134, -1, 21, 133, 201, 134, -1, 22, - 133, 201, 134, -1, 24, 133, 201, 134, -1, 25, - 133, 201, 137, 201, 134, -1, 26, 133, 201, 134, - -1, 27, 133, 201, 134, -1, 28, 133, 201, 134, - -1, 29, 133, 201, 134, -1, 30, 133, 201, 134, - -1, 31, 133, 201, 134, -1, 32, 133, 201, 137, - 201, 134, -1, 33, 133, 201, 137, 201, 134, -1, - 34, 133, 201, 137, 201, 134, -1, 23, 133, 201, - 134, -1, 3, -1, 9, -1, 10, -1, 11, -1, - 105, -1, 106, -1, 107, -1, 4, -1, 4, 140, - 138, 201, 139, -1, 4, 133, 201, 134, -1, 136, - 4, 133, 134, -1, 4, 164, -1, 4, 133, 201, - 134, 164, -1, 4, 135, 4, -1, 4, 133, 201, - 134, 135, 4, -1, 4, 135, 4, 164, -1, 4, - 133, 201, 134, 135, 4, 164, -1, 104, 131, 5, - 137, 201, 132, -1, 204, -1, 122, 203, -1, 121, - 203, -1, 203, 122, 203, -1, 203, 121, 203, -1, - 138, 201, 137, 201, 137, 201, 137, 201, 137, 201, - 139, -1, 138, 201, 137, 201, 137, 201, 137, 201, - 139, -1, 138, 201, 137, 201, 137, 201, 139, -1, - 131, 201, 137, 201, 137, 201, 132, -1, 206, -1, - 205, 137, 206, -1, 201, -1, 208, -1, 138, 139, - -1, 138, 209, 139, -1, 122, 138, 209, 139, -1, - 201, 123, 138, 209, 139, -1, 206, -1, 5, -1, - 122, 208, -1, 201, 123, 208, -1, 201, 8, 201, - -1, 201, 8, 201, 8, 201, -1, 43, 138, 201, - 139, -1, 170, -1, 178, -1, 4, 133, 134, -1, - 4, 133, 138, 209, 139, 134, -1, 201, -1, 208, - -1, 209, 137, 201, -1, 209, 137, 208, -1, 138, + 201, 139, 7, 206, 6, -1, 58, 51, 207, 196, + 6, -1, 70, 49, 207, 197, 6, -1, 71, 49, + 206, 7, 201, 6, -1, 43, 138, 209, 139, 93, + 49, 138, 201, 139, 6, -1, 46, 138, 209, 139, + 93, 49, 138, 201, 139, 6, -1, 46, 138, 209, + 139, 93, 51, 138, 201, 139, 6, -1, 49, 138, + 209, 139, 93, 51, 138, 201, 139, 6, -1, 74, + 6, -1, 74, 4, 6, -1, 202, -1, 131, 201, + 132, -1, 122, 201, -1, 121, 201, -1, 126, 201, + -1, 201, 122, 201, -1, 201, 121, 201, -1, 201, + 123, 201, -1, 201, 124, 201, -1, 201, 125, 201, + -1, 201, 130, 201, -1, 201, 117, 201, -1, 201, + 118, 201, -1, 201, 120, 201, -1, 201, 119, 201, + -1, 201, 116, 201, -1, 201, 115, 201, -1, 201, + 114, 201, -1, 201, 113, 201, -1, 201, 112, 201, + 8, 201, -1, 14, 131, 201, 132, -1, 15, 131, + 201, 132, -1, 16, 131, 201, 132, -1, 17, 131, + 201, 132, -1, 18, 131, 201, 132, -1, 19, 131, + 201, 132, -1, 20, 131, 201, 132, -1, 21, 131, + 201, 132, -1, 22, 131, 201, 132, -1, 24, 131, + 201, 132, -1, 25, 131, 201, 137, 201, 132, -1, + 26, 131, 201, 132, -1, 27, 131, 201, 132, -1, + 28, 131, 201, 132, -1, 29, 131, 201, 132, -1, + 30, 131, 201, 132, -1, 31, 131, 201, 132, -1, + 32, 131, 201, 137, 201, 132, -1, 33, 131, 201, + 137, 201, 132, -1, 34, 131, 201, 137, 201, 132, + -1, 23, 131, 201, 132, -1, 14, 133, 201, 134, + -1, 15, 133, 201, 134, -1, 16, 133, 201, 134, + -1, 17, 133, 201, 134, -1, 18, 133, 201, 134, + -1, 19, 133, 201, 134, -1, 20, 133, 201, 134, + -1, 21, 133, 201, 134, -1, 22, 133, 201, 134, + -1, 24, 133, 201, 134, -1, 25, 133, 201, 137, + 201, 134, -1, 26, 133, 201, 134, -1, 27, 133, + 201, 134, -1, 28, 133, 201, 134, -1, 29, 133, + 201, 134, -1, 30, 133, 201, 134, -1, 31, 133, + 201, 134, -1, 32, 133, 201, 137, 201, 134, -1, + 33, 133, 201, 137, 201, 134, -1, 34, 133, 201, + 137, 201, 134, -1, 23, 133, 201, 134, -1, 3, + -1, 9, -1, 10, -1, 11, -1, 105, -1, 106, + -1, 107, -1, 4, -1, 4, 140, 138, 201, 139, + -1, 4, 133, 201, 134, -1, 136, 4, 133, 134, + -1, 4, 164, -1, 4, 133, 201, 134, 164, -1, + 4, 135, 4, -1, 4, 133, 201, 134, 135, 4, + -1, 4, 135, 4, 164, -1, 4, 133, 201, 134, + 135, 4, 164, -1, 104, 131, 5, 137, 201, 132, + -1, 204, -1, 122, 203, -1, 121, 203, -1, 203, + 122, 203, -1, 203, 121, 203, -1, 138, 201, 137, 201, 137, 201, 137, 201, 137, 201, 139, -1, 138, - 201, 137, 201, 137, 201, 139, -1, 4, -1, 4, - 135, 90, 135, 4, -1, 138, 212, 139, -1, 4, - 133, 201, 134, 135, 91, -1, 210, -1, 212, 137, - 210, -1, 214, -1, 4, -1, 4, 135, 4, -1, - 4, 133, 201, 134, 135, 4, -1, 5, -1, 42, - -1, 37, 131, 213, 137, 213, 132, -1, 38, 131, - 213, 132, -1, 39, 131, 213, 132, -1, 36, 131, - 213, 132, -1, 36, 131, 213, 137, 209, 132, -1 + 201, 137, 201, 137, 201, 137, 201, 139, -1, 138, + 201, 137, 201, 137, 201, 139, -1, 131, 201, 137, + 201, 137, 201, 132, -1, 206, -1, 205, 137, 206, + -1, 201, -1, 208, -1, 138, 139, -1, 138, 209, + 139, -1, 122, 138, 209, 139, -1, 201, 123, 138, + 209, 139, -1, 206, -1, 5, -1, 122, 208, -1, + 201, 123, 208, -1, 201, 8, 201, -1, 201, 8, + 201, 8, 201, -1, 43, 138, 201, 139, -1, 170, + -1, 178, -1, 4, 133, 134, -1, 4, 133, 138, + 209, 139, 134, -1, 201, -1, 208, -1, 209, 137, + 201, -1, 209, 137, 208, -1, 138, 201, 137, 201, + 137, 201, 137, 201, 139, -1, 138, 201, 137, 201, + 137, 201, 139, -1, 4, -1, 4, 135, 90, 135, + 4, -1, 138, 212, 139, -1, 4, 133, 201, 134, + 135, 91, -1, 210, -1, 212, 137, 210, -1, 214, + -1, 4, -1, 4, 135, 4, -1, 4, 133, 201, + 134, 135, 4, -1, 5, -1, 42, -1, 37, 131, + 213, 137, 213, 132, -1, 38, 131, 213, 132, -1, + 39, 131, 213, 132, -1, 36, 131, 213, 132, -1, + 36, 131, 213, 137, 209, 132, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -989,20 +989,20 @@ static const yytype_uint16 yyrline[] = 2309, 2321, 2320, 2332, 2331, 2343, 2342, 2354, 2353, 2365, 2364, 2379, 2382, 2388, 2397, 2417, 2440, 2444, 2468, 2471, 2487, 2490, 2503, 2506, 2512, 2515, 2522, 2551, 2621, 2626, - 2668, 2711, 2737, 2760, 2783, 2786, 2795, 2799, 2815, 2816, - 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2830, 2831, 2832, - 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, - 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, - 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2863, - 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, - 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2883, - 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2902, 2915, 2927, - 2942, 2952, 2962, 2980, 2985, 2990, 3000, 3010, 3018, 3022, - 3026, 3030, 3034, 3041, 3045, 3049, 3053, 3060, 3065, 3072, - 3077, 3081, 3086, 3090, 3098, 3109, 3113, 3125, 3133, 3141, - 3148, 3159, 3179, 3189, 3199, 3209, 3229, 3234, 3238, 3242, - 3254, 3258, 3270, 3277, 3287, 3291, 3306, 3311, 3318, 3322, - 3335, 3343, 3354, 3358, 3366, 3374, 3388, 3402, 3406 + 2693, 2736, 2762, 2785, 2808, 2811, 2820, 2824, 2840, 2841, + 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2855, 2856, 2857, + 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, + 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, + 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2885, 2886, 2888, + 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, + 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, + 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2927, 2940, 2952, + 2967, 2977, 2987, 3005, 3010, 3015, 3025, 3035, 3043, 3047, + 3051, 3055, 3059, 3066, 3070, 3074, 3078, 3085, 3090, 3097, + 3102, 3106, 3111, 3115, 3123, 3134, 3138, 3150, 3158, 3166, + 3173, 3184, 3204, 3214, 3224, 3234, 3254, 3259, 3263, 3267, + 3279, 3283, 3295, 3302, 3312, 3316, 3331, 3336, 3343, 3347, + 3360, 3368, 3379, 3383, 3391, 3399, 3413, 3427, 3431 }; #endif @@ -1139,7 +1139,7 @@ static const yytype_uint8 yyr2[] = 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, 9, 0, 3, - 0, 1, 0, 2, 0, 2, 7, 6, 8, 8, + 0, 1, 0, 2, 0, 2, 7, 6, 8, 5, 5, 6, 10, 10, 10, 10, 2, 3, 1, 3, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, 4, @@ -1194,7 +1194,7 @@ static const yytype_uint16 yydefact[] = 143, 107, 0, 0, 0, 0, 297, 0, 0, 332, 333, 336, 337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, 320, - 0, 0, 0, 0, 0, 0, 326, 325, 212, 0, + 0, 0, 0, 0, 0, 0, 326, 325, 212, 212, 0, 0, 0, 0, 0, 0, 0, 0, 310, 309, 0, 0, 0, 0, 127, 127, 0, 0, 0, 0, 0, 0, 0, 172, 0, 127, 214, 0, 0, 0, @@ -1230,7 +1230,7 @@ static const yytype_uint16 yydefact[] = 0, 0, 334, 0, 0, 329, 235, 328, 338, 339, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, - 0, 208, 213, 211, 0, 0, 0, 0, 0, 0, + 0, 208, 213, 211, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 120, 0, 0, 0, 0, 0, 0, 0, 0, 201, 0, 163, 0, 215, 220, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1244,208 +1244,206 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 323, 0, 94, 0, 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 206, 0, 0, 173, 202, 0, 0, 221, 0, - 135, 134, 0, 27, 28, 0, 0, 0, 343, 0, - 0, 0, 153, 0, 0, 145, 304, 144, 0, 0, - 0, 0, 317, 0, 258, 279, 265, 286, 266, 287, - 267, 288, 0, 358, 354, 307, 0, 54, 0, 0, - 0, 0, 62, 0, 0, 0, 344, 0, 0, 0, - 0, 23, 24, 0, 0, 92, 0, 330, 0, 0, - 0, 0, 0, 95, 0, 0, 110, 111, 0, 0, - 96, 116, 324, 0, 0, 0, 0, 88, 0, 216, - 0, 0, 0, 0, 0, 0, 0, 147, 0, 0, - 0, 0, 127, 0, 183, 0, 185, 0, 187, 319, - 0, 0, 0, 0, 167, 0, 0, 100, 101, 0, - 0, 0, 0, 80, 0, 306, 0, 35, 0, 0, - 0, 0, 0, 37, 0, 0, 0, 0, 74, 0, - 0, 75, 0, 347, 129, 130, 131, 132, 0, 0, - 335, 0, 91, 97, 98, 103, 0, 0, 112, 0, - 0, 0, 218, 105, 0, 0, 209, 219, 115, 93, - 104, 113, 117, 0, 0, 0, 0, 316, 0, 315, - 0, 0, 174, 0, 0, 175, 0, 0, 176, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 341, - 0, 155, 154, 0, 0, 0, 40, 0, 0, 0, - 318, 0, 0, 0, 351, 63, 70, 72, 0, 78, - 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, - 106, 0, 84, 85, 127, 0, 121, 0, 0, 0, - 0, 0, 0, 203, 0, 0, 127, 0, 124, 123, - 0, 0, 0, 0, 81, 82, 0, 36, 0, 0, - 0, 38, 53, 0, 345, 0, 222, 223, 224, 225, - 109, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 168, - 0, 0, 340, 156, 0, 0, 0, 0, 0, 76, - 0, 0, 0, 0, 119, 0, 189, 0, 0, 191, - 0, 0, 193, 0, 0, 0, 204, 0, 164, 0, - 127, 102, 83, 0, 44, 0, 50, 0, 0, 0, - 89, 114, 313, 177, 0, 0, 184, 178, 0, 0, - 186, 179, 0, 0, 188, 0, 0, 0, 170, 0, - 0, 0, 0, 0, 0, 0, 195, 0, 197, 0, - 199, 205, 207, 169, 165, 0, 41, 0, 48, 0, - 0, 0, 0, 180, 0, 0, 181, 0, 0, 182, - 0, 0, 0, 42, 0, 0, 151, 0, 0, 0, - 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, - 190, 0, 192, 0, 194, 0, 43, 45, 0, 46, - 0, 99, 0, 0, 0, 0, 0, 51, 196, 198, - 200, 47, 49 + 206, 0, 0, 173, 202, 0, 0, 221, 0, 135, + 134, 0, 27, 28, 0, 0, 0, 343, 0, 0, + 0, 153, 0, 0, 145, 304, 144, 0, 0, 0, + 0, 317, 0, 258, 279, 265, 286, 266, 287, 267, + 288, 0, 358, 354, 307, 0, 54, 0, 0, 0, + 0, 62, 0, 0, 0, 344, 0, 0, 0, 0, + 23, 24, 0, 0, 92, 0, 330, 0, 0, 0, + 0, 0, 95, 0, 0, 110, 111, 0, 0, 96, + 116, 324, 0, 0, 0, 0, 88, 0, 216, 0, + 0, 0, 0, 0, 0, 147, 0, 0, 0, 0, + 127, 0, 183, 0, 185, 0, 187, 319, 0, 0, + 0, 0, 167, 0, 0, 100, 101, 0, 0, 0, + 0, 80, 0, 306, 0, 35, 0, 0, 0, 0, + 0, 37, 0, 0, 0, 0, 74, 0, 0, 75, + 0, 347, 129, 130, 131, 132, 0, 0, 335, 0, + 91, 97, 98, 103, 0, 0, 112, 0, 0, 0, + 218, 105, 0, 0, 209, 115, 93, 104, 113, 117, + 0, 0, 0, 0, 316, 0, 315, 0, 0, 174, + 0, 0, 175, 0, 0, 176, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 341, 0, 155, 154, + 0, 0, 0, 40, 0, 0, 0, 318, 0, 0, + 0, 351, 63, 70, 72, 0, 78, 0, 25, 0, + 0, 0, 0, 0, 0, 0, 0, 106, 0, 84, + 85, 127, 0, 121, 0, 0, 0, 0, 0, 0, + 203, 0, 0, 127, 0, 124, 123, 0, 0, 0, + 0, 81, 82, 0, 36, 0, 0, 0, 38, 53, + 0, 345, 0, 222, 223, 224, 225, 109, 0, 0, + 0, 0, 0, 314, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 168, 0, 0, 340, + 156, 0, 0, 0, 0, 0, 76, 0, 0, 0, + 0, 119, 0, 189, 0, 0, 191, 0, 0, 193, + 0, 0, 0, 204, 0, 164, 0, 127, 102, 83, + 0, 44, 0, 50, 0, 0, 0, 89, 114, 313, + 177, 0, 0, 184, 178, 0, 0, 186, 179, 0, + 0, 188, 0, 0, 0, 170, 0, 0, 0, 0, + 0, 0, 0, 195, 0, 197, 0, 199, 205, 207, + 169, 165, 0, 41, 0, 48, 0, 0, 0, 0, + 180, 0, 0, 181, 0, 0, 182, 0, 0, 0, + 42, 0, 0, 151, 0, 0, 0, 0, 0, 0, + 0, 171, 0, 0, 0, 0, 0, 190, 0, 192, + 0, 194, 0, 43, 45, 0, 46, 0, 99, 0, + 0, 0, 0, 0, 51, 196, 198, 200, 47, 49 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 60, 658, 61, 62, 398, 956, 962, - 579, 744, 1086, 1212, 580, 1180, 1238, 581, 1214, 582, - 583, 748, 127, 214, 63, 523, 995, 900, 467, 309, - 280, 281, 66, 67, 68, 69, 70, 310, 719, 1149, - 1195, 543, 1013, 1016, 1019, 1164, 1168, 1172, 1204, 1207, - 1210, 715, 716, 814, 694, 520, 547, 72, 73, 74, - 327, 130, 348, 173, 861, 862, 338, 329, 313, 198, + -1, 2, 3, 60, 658, 61, 62, 398, 954, 960, + 579, 744, 1083, 1209, 580, 1177, 1235, 581, 1211, 582, + 583, 748, 127, 214, 63, 523, 993, 899, 467, 309, + 280, 281, 66, 67, 68, 69, 70, 310, 719, 1146, + 1192, 543, 1010, 1013, 1016, 1161, 1165, 1169, 1201, 1204, + 1207, 715, 716, 814, 694, 520, 547, 72, 73, 74, + 327, 130, 348, 173, 860, 861, 338, 329, 313, 198, 649, 777, 443, 444 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1017 +#define YYPACT_NINF -1014 static const yytype_int16 yypact[] = { - 2816, 42, 72, 2892, -1017, -1017, 1303, 86, 75, -79, - 18, 178, -64, 5, 70, -42, 145, 173, -19, 201, - 216, 203, -34, 215, 291, 301, 272, 327, 265, 334, - 259, 266, 191, 191, 286, 254, 385, 391, 400, 8, - 99, 440, 486, 517, 521, 377, 393, 399, 12, 32, - -1017, 402, -1017, 547, 405, -1017, 544, 552, 14, 15, - -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, - -1017, -1017, -1017, -1017, -1017, -1017, 26, 434, 422, -1017, - -1017, -1017, 144, 165, 253, 256, 263, 288, 312, 337, - 346, 389, 418, 428, 432, 433, 454, 471, 474, 477, - 478, 520, 523, 442, 447, 481, 482, -1017, 614, 491, - -1017, -1017, -1017, -1017, -1017, -1017, -1017, 2364, 2364, 2364, - -1017, -1017, 2364, 1996, 17, 579, 531, 2364, 621, 1237, - -1017, 624, 632, 2364, 650, -1017, 2364, -1017, 2364, 2297, - 2364, 2364, 495, 2364, 2297, 2364, 2364, 511, 2297, 2364, - 2364, 1569, 512, 2364, 530, 519, 527, 1569, 1439, 549, - 528, 553, 574, 578, 591, 606, 676, 191, 191, 191, - 2364, 2364, 280, -1017, 292, 191, 600, 623, 672, 2167, - 304, 1439, 1569, 613, 27, 646, -1017, 756, -1017, 673, - 679, 681, 761, 2364, 2364, 2364, 635, 2364, 677, 690, - 2364, 2364, -1017, 2364, 795, -1017, 810, -1017, 811, -1017, - 688, 2364, 818, 685, -1017, -1017, -1017, 819, 2364, 2364, - 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, - 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, - 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, - 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, - 39, 39, 39, 39, 2364, 823, 504, 694, 694, 694, - 5125, 11, 2297, 4389, 300, 696, 822, 699, 708, -1017, - 709, 2956, 1762, -1017, -1017, 2364, 2364, 2364, 2364, 2364, - 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, 2364, - -1017, -1017, 1793, -52, 2229, 5146, 496, 711, 2297, -1017, - -1017, 1143, -1017, 525, 5167, 5188, 2364, 5209, 526, 5230, - 5251, 2364, 533, 5272, 5293, 1699, 1165, 2609, 843, -1017, - 2364, 5314, 2364, 2364, 2364, 844, -1017, -1017, 847, 2364, - 2364, 2421, 2421, 2421, 2421, 2364, 723, 61, -1017, -1017, - 3661, 3687, 191, 191, 531, 531, 71, 2364, 2364, 2364, - 2167, 2167, 2364, 2956, 294, -1017, 849, 851, 2364, 853, - -1017, 2364, 2364, 994, -1017, 2297, 2364, 2364, -1017, 5335, - 5356, 5377, 770, 3713, -1017, 725, 2631, 5398, 4412, -1017, - -1017, 1335, -1017, 1472, 2364, 4435, 232, 2364, 10, -1017, - 5419, 4458, 5440, 4481, 5461, 4504, 5482, 4527, 5503, 4550, - 5524, 4573, 5545, 4596, 5566, 4619, 5587, 4642, 5608, 4665, - 5629, 4688, 3739, 3765, 5650, 4711, 5671, 4734, 5692, 4757, - 5713, 4780, 5734, 4803, 5755, 4826, 3791, 3817, 3843, 3869, - 3895, 3921, 45, 125, -1017, 724, 732, 733, 2110, 729, - 2364, -1017, 1569, 1569, 542, 271, 422, 2364, 861, 864, - 13, 735, -1017, -44, 41, -18, 163, -1017, -1017, 2650, - 1160, 1371, 717, 717, 469, 469, 469, 469, 452, 452, - 694, 694, 694, 694, -1017, 7, 2297, 2364, 863, 2132, - 2364, 694, -1017, 2364, 2297, 2297, 778, 866, 867, 5776, - 868, 784, 872, 873, 5797, 788, 875, 876, 2297, -1017, - 546, 1829, 2364, 5818, 877, 2719, 5839, 5860, 2364, 1569, - 881, 2991, 5881, 754, 6154, -1017, 755, 758, 759, 5902, - 753, 191, 2364, 2364, -1017, -1017, 757, 763, 2364, 3947, - 3973, 3999, 3635, 25, 191, 1602, 2364, 887, 2364, 5923, - -1017, 4849, 4872, -1017, 555, 4895, 4918, 888, 890, 893, - 769, 2364, 1732, 2364, 2364, -1017, 22, -1017, -1017, 4941, - 532, -1017, 3019, -1017, 774, 775, 771, -1017, 901, -1017, - -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, - -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, - -1017, -1017, -1017, -1017, -1017, -1017, 2364, 2364, -1017, -1017, - -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, - 2364, 2364, 2364, 2364, 2364, 2364, 2364, 904, -1017, 2297, - 39, -1017, -1017, -1017, 2364, 4964, 905, 907, 760, -1017, - 24, 2364, 908, 909, 2393, -1017, 903, 783, 12, 911, - -1017, 2297, 2297, 2297, 2297, 2364, -1017, 800, 39, 193, - 4025, 191, -1017, 2297, 3047, 2670, 694, -1017, 1143, -1017, - 870, 1569, 1569, 913, 1569, 620, 1569, 1569, 914, 874, - 1569, 1569, 556, -1017, 2297, 2450, 916, 786, 919, 920, - 921, 611, -1017, -1017, 924, 925, 926, 927, 929, 934, - 935, 936, 941, 328, 4051, 4077, -1017, -1017, 3075, 191, - 191, 191, 940, 793, 816, -35, -1017, 332, -1017, 25, - 6154, -1017, 2469, 812, 943, 945, 910, 948, 950, 1569, - 1569, 1569, 953, 4103, -1017, 2689, 633, 954, 956, 957, - 961, -1017, 962, -1017, 838, 2364, 2364, 1569, 839, -1017, - 5944, 4987, 5965, 5010, 5986, 5033, 6007, 5056, 5079, -1017, - 209, 846, 6028, 139, -1017, -1017, 66, 365, 841, 972, - 2488, -1017, -1017, -1017, 12, 2364, -1017, 559, -1017, 560, - 564, 565, 569, 6154, -1017, 974, 52, 2364, 47, 573, - -1017, 2364, 845, 928, 928, 1569, 975, 848, 850, 976, - 981, 1569, 852, 983, 985, -1017, 576, -1017, 988, 2364, - 1569, 1569, 1569, 990, 989, -1017, 1569, 1569, 1569, 1569, - 1569, 1569, 1569, 449, 2364, 2364, 2364, 858, -51, -39, - 133, -1017, 1569, 2364, -1017, -1017, 2167, -30, -1017, 2297, - -1017, -1017, 859, -1017, -1017, 992, 993, 912, -1017, 2364, - 2364, 2364, -1017, 997, 998, -1017, 232, -1017, 2364, 4129, - 4155, 577, -1017, 2364, -1017, -1017, -1017, -1017, -1017, -1017, - -1017, -1017, 865, -1017, -1017, -1017, 1569, 422, 2364, 1002, - 1000, 13, -1017, 1003, 5102, 12, -1017, 1004, 1005, 1006, - 1007, -1017, -1017, 39, 4181, -1017, 880, 6154, 2364, 191, - 1009, 1010, 1011, -1017, 2364, 2364, -1017, -1017, 1017, 2364, - -1017, -1017, -1017, 1020, 4207, 1022, 1023, 933, 2364, -1017, - 1024, 1026, 1027, 1028, 1029, 1041, 1045, -1017, 2421, 3103, - 6049, 2907, 531, 191, 1046, 191, 1051, 191, 1052, 674, - 922, 6070, 3131, 341, -1017, 580, 2364, -1017, -1017, 1569, - 2935, 1097, 6091, -1017, 1959, -1017, 227, 6154, 2364, 2364, - 1569, 930, 581, 6154, 1056, 1060, 1063, 2513, -1017, 1055, - 1065, -1017, 937, -1017, -1017, -1017, -1017, -1017, 1067, 2364, - -1017, 3159, 382, -1017, -1017, -1017, 3187, 3215, -1017, 3243, - 1070, 2364, -1017, -1017, 1030, 1072, 6154, -1017, -1017, -1017, - -1017, -1017, -1017, 938, 2532, 1078, 949, -1017, 2364, -1017, - 947, 345, -1017, 952, 370, -1017, 955, 374, -1017, 959, - 1082, 1569, 1085, 960, 2364, 1088, 3271, 1015, 2364, -1017, - 2364, -1017, -1017, 2297, 2552, 1089, -1017, 2364, 4233, 4259, - -1017, 1569, 2364, 1098, -1017, -1017, -1017, -1017, 12, -1017, - 1025, -1017, 4285, 1107, 1108, 1109, 1111, 1112, 4311, 982, - -1017, 1569, -1017, -1017, 531, 2963, -1017, 2167, 25, 2167, - 25, 2167, 25, -1017, 629, 1569, -1017, 3299, -1017, -1017, - 2364, 3327, 3355, 634, -1017, -1017, 986, 6154, 2364, 2364, - 637, 6154, -1017, 1115, -1017, 2364, -1017, -1017, -1017, -1017, - -1017, 1118, 2364, 638, 987, 2364, -1017, 3383, 378, -21, - 3411, 407, -16, 3439, 425, -13, 1569, 1119, 1066, 1990, - 991, 2571, -1017, -1017, 1124, 2364, 6112, 4337, 20, -1017, - 4363, 995, 3467, 1129, -1017, 3495, 1130, 2364, 1132, 1133, - 2364, 1134, 1136, 2364, 1137, 1008, -1017, 2364, -1017, 25, - -1017, -1017, -1017, 641, -1017, 2364, -1017, 1569, 2364, 1139, - -1017, -1017, -1017, -1017, 1012, 3523, -1017, -1017, 1016, 3551, - -1017, -1017, 1018, 3579, -1017, 1140, 2590, -11, 2160, 1142, - 1019, 6133, 645, 3607, 1021, 25, 1147, 25, 1149, 25, - 1153, -1017, -1017, -1017, -1017, 25, -1017, 39, -1017, 1032, - 1154, 1157, -8, -1017, 1033, 126, -1017, 1034, 130, -1017, - 1035, 134, 663, -1017, 1039, 1569, -1017, 1061, 1158, 25, - 1161, 25, 1172, 25, -1017, 39, 1195, 39, 668, 1196, - -1017, 229, -1017, 297, -1017, 362, -1017, -1017, 669, -1017, - 1197, -1017, 1198, 1199, 1200, 39, 1201, -1017, -1017, -1017, - -1017, -1017, -1017 + 2725, 53, 33, 2801, -1014, -1014, 1281, 90, 103, -9, + 21, 180, -84, 65, 71, 62, 79, 130, -32, 137, + 166, 251, -48, 264, 273, 280, -8, 310, 418, 318, + 256, 244, 242, 242, 257, 268, 354, 361, 369, 25, + 253, 375, 437, 446, 453, 334, 341, 347, -2, 40, + -1014, 351, -1014, 497, 371, -1014, 503, 514, 15, 19, + -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, + -1014, -1014, -1014, -1014, -1014, -1014, 27, 383, 616, -1014, + -1014, -1014, 59, 141, 176, 245, 359, 362, 398, 408, + 415, 449, 471, 475, 478, 500, 508, 511, 565, 570, + 574, 604, 614, 405, 421, 425, 464, -1014, 542, 465, + -1014, -1014, -1014, -1014, -1014, -1014, -1014, 2254, 2254, 2254, + -1014, -1014, 2254, 1886, 28, 608, 35, 2254, 626, 547, + -1014, 637, 644, 2254, 617, -1014, 2254, -1014, 2254, 2187, + 2254, 2254, 525, 2254, 2187, 2254, 2254, 555, 2187, 2254, + 2254, 1459, 556, 2254, 566, 569, 578, 1459, 1329, 1329, + 579, 584, 591, 603, 618, 652, 757, 242, 242, 242, + 2254, 2254, -71, -1014, 63, 242, 633, 642, 651, 2057, + 416, 1329, 1459, 677, 36, 679, -1014, 810, -1014, 686, + 761, 762, 821, 2254, 2254, 2254, 699, 2254, 711, 765, + 2254, 2254, -1014, 2254, 890, -1014, 893, -1014, 894, -1014, + 768, 2254, 899, 766, -1014, -1014, -1014, 900, 2254, 2254, + 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, + 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, + 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, + 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, + 588, 588, 588, 588, 2254, 902, 470, 775, 775, 775, + 5032, 9, 2187, 4296, 167, 773, 906, 776, 777, -1014, + 778, 2865, 1652, -1014, -1014, 2254, 2254, 2254, 2254, 2254, + 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, 2254, + -1014, -1014, 1980, -114, 3542, 5053, -59, 780, 2187, -1014, + -1014, 2499, -1014, 619, 5074, 5095, 2254, 5116, 627, 5137, + 5158, 2254, 628, 5179, 5200, 1589, 1144, 2521, 909, -1014, + 2254, 5221, 2254, 2254, 2254, 912, -1014, -1014, 914, 914, + 2254, 2311, 2311, 2311, 2311, 2254, 790, 364, -1014, -1014, + 3568, 3594, 242, 242, 35, 35, 452, 2254, 2254, 2254, + 2057, 2057, 2254, 2865, 454, -1014, 916, 917, 2254, 920, + -1014, 2254, 2254, 750, -1014, 2187, 2254, 2254, -1014, 5242, + 5263, 5284, 837, 3620, -1014, 791, 2540, 5305, 4319, -1014, + -1014, 944, -1014, 1054, 2254, 4342, 213, 2254, 11, -1014, + 5326, 4365, 5347, 4388, 5368, 4411, 5389, 4434, 5410, 4457, + 5431, 4480, 5452, 4503, 5473, 4526, 5494, 4549, 5515, 4572, + 5536, 4595, 3646, 3672, 5557, 4618, 5578, 4641, 5599, 4664, + 5620, 4687, 5641, 4710, 5662, 4733, 3698, 3724, 3750, 3776, + 3802, 3828, 635, -55, -1014, 793, 799, 800, 2000, 797, + 2254, -1014, 1459, 1459, 639, 314, 616, 2254, 929, 933, + 13, 805, -1014, -82, 129, -12, 73, -1014, -1014, 2560, + 1307, 1002, 763, 763, 630, 630, 630, 630, -52, -52, + 775, 775, 775, 775, -1014, 7, 2187, 2254, 934, 2022, + 2254, 775, -1014, 2254, 2187, 2187, 847, 935, 936, 5683, + 937, 852, 940, 941, 5704, 856, 945, 946, 2187, -1014, + 640, 1719, 2254, 5725, 948, 2628, 5746, 5767, 2254, 1459, + 954, 955, 5788, 828, 6061, -1014, 831, 833, 835, 5809, + 834, 242, 2254, 2254, -1014, -1014, 829, 836, 2254, 3854, + 3880, 3906, 3516, 38, 242, 1177, 2254, 964, 2254, 5830, + -1014, 4756, 4779, -1014, 649, 4802, 4825, 965, 966, 967, + 841, 2254, 1492, 2254, 2254, -1014, 14, -1014, -1014, 4848, + 48, -1014, 2900, -1014, 846, 849, 840, -1014, 975, -1014, + -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, + -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, + -1014, -1014, -1014, -1014, -1014, -1014, 2254, 2254, -1014, -1014, + -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, + 2254, 2254, 2254, 2254, 2254, 2254, 2254, 978, -1014, 2187, + 588, -1014, -1014, -1014, 2254, 4871, 979, 980, 863, -1014, + 91, 2254, 996, 1000, 2283, -1014, 1001, 874, -2, 1003, + -1014, 2187, 2187, 2187, 2187, 2254, -1014, 892, 588, -28, + 3932, 242, -1014, 2187, 2928, 2579, 775, -1014, 2499, -1014, + 962, 1459, 1459, 1005, 1459, 741, 1459, 1459, 1006, 963, + 1459, 1459, 676, -1014, 2187, 2340, 1009, 879, 1011, 1015, + 1016, 2119, -1014, -1014, 1019, -1014, 1020, 1025, 1027, 1028, + 1030, 1031, 1022, 558, 3958, 3984, -1014, -1014, 2956, 242, + 242, 242, 1033, 903, 911, -42, -1014, 560, -1014, 38, + 6061, -1014, 2359, 908, 1034, 1038, 999, 1043, 1044, 1459, + 1459, 1459, 1047, 4010, -1014, 2598, 1683, 1049, 1050, 1051, + 1052, -1014, 1053, -1014, 924, 2254, 2254, 1459, 923, -1014, + 5851, 4894, 5872, 4917, 5893, 4940, 5914, 4963, 4986, -1014, + 43, 931, 5935, 246, -1014, -1014, 98, 583, 930, 1061, + 2378, -1014, -1014, -1014, -2, 2254, -1014, 683, -1014, 684, + 691, 694, 701, 6061, -1014, 1063, 54, 2254, 57, 702, + -1014, 2254, 932, 1017, 1017, 1459, 1066, 938, 939, 1068, + 1069, 1459, 943, 1072, 1076, -1014, 708, -1014, 1079, 2254, + 1459, 1459, 1459, 1081, 1082, -1014, 1459, 1459, 1459, 1459, + 1459, 1459, 343, 2254, 2254, 2254, 949, 179, 331, 338, + -1014, 1459, 2254, -1014, -1014, 2057, -15, -1014, 2187, -1014, + -1014, 951, -1014, -1014, 1084, 1085, 1018, -1014, 2254, 2254, + 2254, -1014, 1086, 1087, -1014, 213, -1014, 2254, 4036, 4062, + 709, -1014, 2254, -1014, -1014, -1014, -1014, -1014, -1014, -1014, + -1014, 960, -1014, -1014, -1014, 1459, 616, 2254, 1103, 1108, + 13, -1014, 1123, 5009, -2, -1014, 1124, 1127, 1129, 1130, + -1014, -1014, 588, 4088, -1014, 1008, 6061, 2254, 242, 1131, + 1137, 1138, -1014, 2254, 2254, -1014, -1014, 1139, 2254, -1014, + -1014, -1014, 1145, 4114, 1146, 1150, 1064, 2254, -1014, 1173, + 1174, 1175, 1176, 1178, 1179, -1014, 2311, 2984, 5956, 2816, + 35, 242, 1180, 242, 1182, 242, 1185, 315, 1048, 5977, + 3012, 562, -1014, 713, 2254, -1014, -1014, 1459, 2844, 447, + 5998, -1014, 1849, -1014, 171, 6061, 2254, 2254, 1459, 1056, + 716, 6061, 1188, 1189, 1190, 2403, -1014, 1191, 1193, -1014, + 1062, -1014, -1014, -1014, -1014, -1014, 1194, 2254, -1014, 3040, + 377, -1014, -1014, -1014, 3068, 3096, -1014, 3124, 1196, 2254, + -1014, -1014, 1155, 1197, 6061, -1014, -1014, -1014, -1014, -1014, + 1067, 2422, 1198, 1075, -1014, 2254, -1014, 1078, 592, -1014, + 1077, 599, -1014, 1080, 609, -1014, 1092, 1200, 1459, 1207, + 1094, 2254, 1201, 3152, 1147, 2254, -1014, 2254, -1014, -1014, + 2187, 2442, 1233, -1014, 2254, 4140, 4166, -1014, 1459, 2254, + 1234, -1014, -1014, -1014, -1014, -2, -1014, 1151, -1014, 4192, + 1235, 1237, 1238, 1239, 1240, 4218, 1109, -1014, 1459, -1014, + -1014, 35, 2872, -1014, 2057, 38, 2057, 38, 2057, 38, + -1014, 720, 1459, -1014, 3180, -1014, -1014, 2254, 3208, 3236, + 724, -1014, -1014, 1114, 6061, 2254, 2254, 725, 6061, -1014, + 1247, -1014, 2254, -1014, -1014, -1014, -1014, -1014, 1249, 2254, + 729, 1116, 2254, -1014, 3264, 611, 186, 3292, 620, 194, + 3320, 622, 229, 1459, 1250, 1195, 1622, 1120, 2461, -1014, + -1014, 1253, 2254, 6019, 4244, 30, -1014, 4270, 1132, 3348, + 1254, -1014, 3376, 1255, 2254, 1261, 1262, 2254, 1265, 1266, + 2254, 1267, 1135, -1014, 2254, -1014, 38, -1014, -1014, -1014, + 730, -1014, 2254, -1014, 1459, 2254, 1271, -1014, -1014, -1014, + -1014, 1140, 3404, -1014, -1014, 1141, 3432, -1014, -1014, 1143, + 3460, -1014, 1276, 2480, 307, 1880, 1283, 1149, 6040, 733, + 3488, 1156, 38, 1288, 38, 1315, 38, 1316, -1014, -1014, + -1014, -1014, 38, -1014, 588, -1014, 1186, 1319, 1272, 309, + -1014, 1192, 332, -1014, 1199, 335, -1014, 1203, 337, 736, + -1014, 1204, 1459, -1014, 1187, 1321, 38, 1322, 38, 1323, + 38, -1014, 588, 1325, 588, 737, 1330, -1014, 386, -1014, + 458, -1014, 474, -1014, -1014, 753, -1014, 1358, -1014, 1359, + 1360, 1361, 588, 1362, -1014, -1014, -1014, -1014, -1014, -1014 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1017, -1017, -1017, -1017, 359, -1017, -1017, -1017, -1017, 98, - -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, - -1017, -1017, -269, -3, -1017, -305, -1017, 430, 1222, 3, - -353, -175, -1017, -1017, -1017, -1017, -1017, 1223, -1017, -1017, - -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, -1017, - -1017, -635, -692, -1017, -1017, -1017, -1017, -1017, -1017, -1017, - -6, -1017, 228, -1017, -1016, 290, 1047, 23, 37, -626, - 353, -1017, -253, 1 + -1014, -1014, -1014, -1014, 549, -1014, -1014, -1014, -1014, 247, + -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, + -1014, -1014, -252, 24, -1014, 75, -1014, 576, 1368, 3, + -345, -111, -1014, -1014, -1014, -1014, -1014, 1370, -1014, -1014, + -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, -1014, + -1014, -673, -708, -1014, -1014, 1035, -1014, -1014, -1014, -1014, + -6, -1014, -21, -1014, -1013, -93, -133, 22, 121, -629, + 495, -1014, -258, 2 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1455,168 +1453,157 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -5 static const yytype_int16 yytable[] = { - 129, 536, 537, 128, 363, 457, 65, 131, 445, 446, - 447, 373, 184, 656, 573, 152, 196, 647, 452, 206, - 208, 274, 776, 835, 135, 1090, 1156, 142, 767, 737, - 210, 369, 391, 370, 393, 712, 199, 526, 527, 528, - 712, 713, 714, 442, 216, 1103, 713, 714, 4, 712, - 147, 147, 134, 895, 712, 713, 714, 712, 892, 712, - 713, 714, 712, 713, 714, 713, 714, 138, 713, 714, - 352, 353, 5, 639, 139, 103, 104, 105, 106, 217, - 485, 107, 352, 353, 837, 486, 933, 138, 934, 143, - 574, 575, 576, 577, 651, 712, 144, 153, 935, 132, - 936, 713, 714, 187, 834, 188, 185, 275, 276, 944, - 142, 267, 268, 269, 768, 769, 270, 273, 1138, 148, - 653, 282, 453, 1141, 133, 657, 1144, 302, 1193, 279, - 304, 1218, 305, 311, 314, 315, 140, 317, 311, 319, - 320, 1182, 311, 323, 324, 835, 186, 331, 883, 578, - 197, 648, 207, 209, 120, 121, 136, 738, 1157, 211, - 371, 212, 312, 200, 350, 351, 213, 312, 352, 353, - 657, 312, 143, 351, 113, 114, 115, 116, 626, 652, - 627, 318, 352, 353, 137, 322, 641, 379, 380, 381, - 545, 383, 352, 353, 386, 387, 712, 388, 531, 1228, - 712, 141, 713, 714, 712, 395, 713, 714, 538, 562, - 713, 714, 400, 401, 402, 403, 404, 405, 406, 407, + 129, 152, 196, 445, 446, 447, 65, 834, 131, 536, + 537, 172, 174, 656, 180, 573, 452, 647, 485, 776, + 206, 737, 457, 486, 208, 1087, 339, 135, 712, 184, + 128, 210, 274, 5, 713, 714, 1153, 147, 157, 278, + 369, 158, 370, 159, 199, 1100, 836, 138, 366, 138, + 352, 353, 442, 216, 139, 712, 651, 147, 328, 4, + 891, 713, 714, 894, 335, 337, 337, 354, 363, 120, + 121, 296, 297, 298, 489, 373, 212, 628, 299, 126, + 217, 213, 629, 153, 103, 104, 105, 106, 337, 367, + 107, 574, 575, 576, 577, 767, 391, 833, 393, 31, + 32, 33, 34, 132, 786, 639, 148, 38, 712, 495, + 41, 267, 268, 269, 713, 714, 270, 273, 275, 276, + 453, 282, 134, 185, 942, 657, 653, 302, 834, 279, + 304, 142, 305, 311, 314, 315, 197, 317, 311, 319, + 320, 1179, 311, 323, 324, 882, 347, 331, 349, 738, + 578, 648, 133, 207, 356, 120, 121, 209, 364, 136, + 211, 312, 212, 186, 350, 351, 312, 213, 1154, 371, + 312, 200, 657, 351, 456, 872, 120, 121, 352, 353, + 495, 768, 769, 740, 352, 353, 137, 379, 380, 381, + 218, 383, 219, 143, 386, 387, 140, 388, 142, 1225, + 144, 355, 141, 641, 150, 395, 113, 114, 115, 116, + 145, 654, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 352, 353, 151, 628, 448, 973, - 172, 174, 629, 180, 154, 1220, 311, 120, 121, 1222, - 937, 458, 938, 1224, 740, 218, 145, 219, 639, 469, + 438, 439, 440, 441, 545, 971, 712, 187, 448, 188, + 143, 146, 713, 714, 712, 318, 311, 652, 149, 322, + 713, 714, 220, 562, 221, 113, 114, 115, 116, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, - 480, 481, 482, 483, 150, 312, 220, 176, 221, 712, - 177, 654, 491, 178, 146, 713, 714, 456, 161, 454, - 499, 162, 168, 169, 163, 504, 164, 742, 157, 491, - 311, 158, 170, 159, 513, 786, 515, 516, 517, 171, - 495, 492, 149, 521, 522, 524, 524, 524, 524, 529, - 155, 873, 525, 525, 525, 525, 495, 150, 492, 312, - 156, 539, 540, 541, 267, 268, 542, 279, 279, 1036, - 120, 121, 549, 510, 1037, 551, 552, 712, 1242, 311, - 555, 556, 877, 713, 714, 168, 169, 761, 160, 113, - 114, 115, 116, 165, 222, 170, 223, 224, 569, 225, - 166, 572, 179, 571, 226, 347, 227, 349, 312, 120, - 121, 352, 353, 356, 167, 785, 640, 364, 113, 114, - 115, 116, 554, 352, 353, 352, 353, 835, 354, 228, - 835, 229, 1093, 835, 175, 352, 353, 216, 120, 121, - 355, 544, 712, 1109, 181, 1112, 1243, 1115, 713, 714, - 182, 328, 365, 230, 635, 231, 183, 335, 337, 352, - 353, 644, 642, 352, 353, 927, 928, 643, 103, 104, - 105, 106, 352, 353, 107, 824, 352, 353, 232, 836, - 233, 337, 367, 113, 114, 115, 116, 234, 1024, 235, - 311, 660, 1067, 635, 664, 835, 189, 665, 666, 668, - 190, 352, 353, 120, 121, 352, 353, 876, 878, 352, - 353, 1244, 311, 352, 353, 666, 685, 1069, 193, 312, - 835, 1071, 691, 835, 1177, 1137, 835, 667, 669, 835, - 236, 191, 237, 659, 194, 192, 704, 705, 352, 353, - 195, 312, 708, 201, 667, 278, 442, 216, 203, 835, - 720, 835, 722, 835, 1140, 682, 352, 353, 204, 238, - 1202, 239, 1205, 202, 1208, 733, 205, 735, 736, 240, - 1211, 241, 1143, 242, 244, 243, 245, 741, 103, 104, - 105, 106, 215, 260, 107, 296, 297, 298, 261, 1010, - 534, 535, 299, 277, 1231, 246, 1233, 247, 1235, 349, - 294, 295, 296, 297, 298, 31, 32, 33, 34, 299, - 750, 751, 248, 38, 249, 250, 41, 251, 252, 254, - 253, 255, 262, 263, 752, 753, 754, 755, 756, 757, - 758, 264, 265, 311, 120, 121, 316, 283, 762, 489, - 300, 212, 120, 121, 126, 770, 213, 450, 301, 212, - 978, 851, 321, 330, 213, 311, 311, 311, 311, 783, - 333, 256, 312, 257, 258, 303, 259, 311, 334, 340, - 120, 121, 495, 495, 496, 501, 760, 740, 332, 797, - 495, 798, 505, 813, 312, 312, 312, 312, 311, 495, - 346, 638, 493, 495, 341, 683, 312, 339, 779, 780, - 781, 782, 495, 495, 726, 805, 885, 495, 886, 887, - 789, 495, 495, 888, 889, 342, 495, 312, 890, 343, - 495, 1104, 896, 495, 960, 912, 961, 495, 1042, 1025, - 1043, 806, 344, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 345, 357, 859, - 860, 299, 636, 637, 368, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 703, - 741, 358, 374, 299, 879, 852, 1116, 378, 1117, 884, - 382, 495, 717, 1124, 960, 960, 1128, 1133, 1042, 372, - 1179, 894, 960, 385, 1199, 897, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 511, 297, 298, - 1225, 389, 1226, 914, 299, 960, 1245, 1240, 1246, 692, - 359, 375, 376, 1020, 377, 384, 390, 392, 929, 930, - 931, 394, 396, 397, 299, 399, 939, 941, 449, 460, - 942, 459, 461, 311, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 950, 951, 952, 126, 299, 462, 490, - 512, 518, 957, 955, 519, 530, 546, 963, 548, 550, - 560, 630, 312, 563, 631, 632, 634, 645, 646, 650, - 661, 670, 967, 671, 672, 674, 945, 675, 966, 676, - 677, 679, 680, 681, 687, 693, 697, 698, 702, 788, - 699, 700, 981, 721, 766, 729, 706, 730, 986, 987, - 731, 1119, 707, 989, 732, 745, 746, 749, 759, 747, - 774, 764, 996, 765, 771, 772, 775, 778, 784, 792, - 795, 801, 1004, 808, 809, 802, 810, 811, 812, 1005, - 815, 832, 816, 817, 818, 279, 819, 828, 829, 830, - 1026, 820, 821, 822, 1213, 823, 831, 833, 1034, 840, - 839, 841, 1038, 1039, 843, 1035, 844, 848, 853, 842, - 854, 793, 794, 855, 796, 856, 799, 800, 857, 858, - 803, 804, 1236, 1052, 1239, 1178, 880, 863, 874, 881, - 891, 903, 906, 898, 899, 1058, 904, 907, 905, 910, - 909, 911, 1251, 913, 918, 919, 932, 946, 947, 948, - 964, 949, 1065, 953, 969, 954, 7, 8, 968, 971, - 974, 975, 976, 977, 980, 983, 984, 985, 1077, 845, - 846, 847, 1081, 988, 1082, 990, 994, 311, 992, 993, - 997, 1087, 998, 999, 1000, 1001, 1091, 463, 13, 14, - 464, 16, 17, 465, 19, 466, 21, 1002, 22, 1003, - 24, 25, 1012, 27, 28, 29, 312, 1015, 1018, 1021, - 1044, 1107, 1048, 1110, 943, 1113, 1045, 279, 1041, 1046, - 1083, 1049, 1050, 1051, 1121, 1057, 1061, 1059, 1060, 45, - 46, 47, 1126, 1127, 1063, 902, 1066, 1064, 1073, 1130, - 1068, 908, 1075, 1070, 1078, 1085, 1132, 1072, 1076, 1135, - 915, 916, 917, 1080, 1092, 1030, 920, 921, 922, 923, - 924, 925, 926, 1096, 1097, 1098, 1094, 1099, 1100, 963, - 1102, 1129, 940, 1131, 1125, 1146, 1134, 982, 1147, 1150, - 1152, 1165, 1159, 553, 1169, 1161, 1163, 1173, 1166, 1167, - 1170, 1176, 1171, 1174, 1184, 893, 1191, 1175, 1196, 1181, - 1185, 493, 1183, 1203, 1187, 1206, 1189, 1197, 1201, 1209, - 1216, 1011, 1217, 1014, 1230, 1017, 965, 1232, 75, 306, - 1215, 1219, 1221, 1223, 79, 80, 81, 1227, 1234, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 1229, 1237, 1241, 1247, 1248, 1249, 1250, 1252, 307, 285, + 480, 481, 482, 483, 312, 120, 121, 150, 458, 712, + 352, 353, 491, 1033, 151, 713, 714, 222, 1034, 223, + 499, 176, 742, 154, 177, 504, 931, 178, 932, 491, + 311, 639, 155, 493, 513, 1135, 515, 516, 517, 156, + 492, 534, 535, 1138, 522, 524, 524, 524, 524, 529, + 349, 120, 121, 525, 525, 525, 525, 492, 312, 925, + 926, 539, 540, 541, 267, 268, 542, 279, 279, 636, + 637, 160, 549, 168, 169, 551, 552, 165, 1141, 311, + 555, 556, 761, 170, 120, 121, 224, 712, 225, 712, + 171, 740, 167, 713, 714, 713, 714, 166, 569, 168, + 169, 572, 1106, 454, 1109, 175, 1112, 312, 834, 170, + 785, 834, 712, 181, 834, 712, 179, 712, 713, 714, + 182, 713, 714, 713, 714, 183, 1090, 526, 527, 528, + 571, 189, 113, 114, 115, 116, 692, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 511, 297, + 298, 190, 120, 121, 635, 299, 1190, 510, 1215, 640, + 191, 644, 352, 353, 1017, 1027, 712, 192, 643, 352, + 353, 161, 713, 714, 162, 193, 834, 163, 933, 164, + 934, 1217, 194, 1174, 1219, 935, 1221, 936, 195, 642, + 311, 660, 201, 635, 664, 352, 353, 665, 666, 668, + 226, 834, 227, 228, 834, 229, 554, 834, 352, 353, + 834, 531, 311, 202, 203, 666, 685, 204, 312, 1199, + 703, 1202, 691, 1205, 875, 877, 667, 669, 205, 1208, + 834, 215, 834, 717, 834, 1239, 704, 705, 712, 230, + 312, 231, 708, 667, 713, 714, 260, 352, 353, 232, + 720, 233, 722, 1228, 712, 1230, 234, 1232, 235, 264, + 713, 714, 261, 284, 365, 733, 262, 735, 736, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 1153, 901, 64, 71, 299, 366, 31, - 32, 33, 34, 35, 970, 0, 1031, 38, 0, 1027, - 41, 0, 0, 284, 0, 0, 0, 0, 0, 0, - 1040, 0, 0, 0, 0, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 494, 297, 298, 109, - 110, 111, 112, 299, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 117, 308, 0, 0, - 299, 119, 0, 0, 0, 1108, 122, 1111, 0, 1114, - 0, 125, 0, 0, 509, 0, 75, 76, 77, 0, - 78, 1074, 79, 80, 81, 0, 0, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 0, 103, - 104, 105, 106, 0, 0, 107, 0, 7, 8, 285, + 296, 297, 298, 352, 353, 352, 353, 299, 793, 794, + 236, 796, 237, 799, 800, 1007, 1028, 803, 804, 538, + 876, 544, 442, 216, 741, 263, 265, 1240, 120, 121, + 750, 751, 238, 450, 239, 212, 240, 659, 241, 242, + 213, 243, 277, 1241, 752, 753, 754, 755, 756, 757, + 758, 216, 303, 311, 103, 104, 105, 106, 762, 682, + 107, 244, 283, 245, 976, 770, 844, 845, 846, 246, + 788, 247, 248, 300, 249, 311, 311, 311, 311, 783, + 301, 312, 103, 104, 105, 106, 316, 311, 107, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 1118, 0, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 463, 13, - 14, 464, 16, 17, 465, 19, 466, 21, 0, 22, - 0, 24, 25, 0, 27, 28, 29, 0, 0, 0, - 0, 108, 0, 0, 0, 0, 1145, 109, 110, 111, - 112, 113, 114, 115, 116, 0, 0, 0, 0, 0, - 45, 46, 47, 0, 117, 118, 0, 0, 0, 119, - 0, 120, 121, 0, 122, 0, 123, 0, 124, 125, - 0, 126, 75, 306, 336, 0, 0, 0, 79, 80, - 81, 0, 0, 82, 83, 84, 85, 86, 87, 88, + 296, 297, 298, 312, 312, 312, 312, 299, 311, 352, + 353, 352, 353, 352, 353, 312, 321, 330, 827, 828, + 829, 113, 114, 115, 116, 823, 250, 835, 251, 1021, + 333, 252, 901, 253, 332, 254, 312, 255, 907, 334, + 340, 120, 121, 352, 353, 341, 1101, 914, 915, 916, + 352, 353, 342, 919, 920, 921, 922, 923, 924, 1064, + 352, 353, 352, 353, 343, 256, 1066, 257, 938, 858, + 859, 352, 353, 352, 353, 258, 1068, 259, 1134, 344, + 760, 294, 295, 296, 297, 298, 495, 1137, 496, 1140, + 299, 346, 7, 8, 495, 495, 501, 505, 626, 883, + 627, 357, 779, 780, 781, 782, 495, 495, 638, 683, + 358, 893, 963, 345, 789, 896, 495, 741, 726, 359, + 797, 878, 798, 463, 13, 14, 464, 16, 17, 465, + 19, 466, 21, 913, 22, 806, 24, 25, 368, 27, + 28, 29, 372, 495, 941, 805, 374, 927, 928, 929, + 884, 495, 885, 886, 375, 937, 939, 378, 495, 940, + 887, 495, 311, 888, 382, 45, 46, 47, 495, 495, + 889, 895, 948, 949, 950, 495, 958, 911, 959, 384, + 495, 955, 1022, 1039, 1024, 1040, 961, 1113, 385, 1114, + 312, 495, 958, 1121, 1125, 1037, 958, 1039, 1130, 1176, + 958, 965, 1196, 1222, 958, 1223, 1237, 980, 964, 953, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 553, + 1242, 979, 1243, 299, 376, 377, 389, 984, 985, 390, + 392, 394, 987, 396, 397, 299, 399, 449, 459, 461, + 1008, 994, 1011, 460, 1014, 126, 512, 462, 490, 518, + 1001, 519, 530, 546, 548, 1071, 550, 560, 1002, 563, + 630, 631, 632, 279, 634, 645, 1210, 646, 1023, 650, + 670, 661, 671, 672, 674, 675, 1031, 676, 677, 679, + 1035, 1036, 680, 681, 1032, 687, 7, 8, 693, 943, + 697, 695, 1116, 698, 1233, 699, 1236, 700, 706, 702, + 721, 1049, 729, 730, 731, 707, 732, 745, 747, 1115, + 746, 749, 759, 1055, 1248, 764, 765, 463, 13, 14, + 464, 16, 17, 465, 19, 466, 21, 766, 22, 1062, + 24, 25, 771, 27, 28, 29, 772, 775, 774, 778, + 784, 792, 795, 801, 802, 1074, 808, 809, 810, 1078, + 1142, 1079, 811, 812, 311, 815, 822, 816, 1084, 45, + 46, 47, 817, 1088, 818, 819, 1175, 820, 821, 830, + 839, 831, 832, 1105, 840, 1108, 838, 1111, 841, 842, + 843, 847, 312, 852, 853, 857, 855, 854, 1104, 856, + 1107, 862, 1110, 873, 279, 879, 7, 8, 880, 890, + 897, 1118, 902, 898, 905, 906, 903, 904, 909, 1123, + 1124, 908, 910, 567, 912, 917, 1127, 930, 918, 944, + 945, 946, 951, 1129, 952, 962, 1132, 463, 13, 14, + 464, 16, 17, 465, 19, 466, 21, 947, 22, 966, + 24, 25, 967, 27, 28, 29, 961, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 1162, 969, + 972, 1166, 299, 973, 1170, 974, 975, 981, 1173, 45, + 46, 47, 978, 982, 983, 986, 1178, 75, 306, 1180, + 988, 1080, 990, 79, 80, 81, 991, 992, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 995, + 996, 997, 998, 1000, 999, 1018, 1009, 307, 1012, 7, + 8, 1015, 1041, 568, 1038, 1042, 1043, 1047, 1045, 1046, + 1048, 1054, 1056, 1057, 1060, 1058, 1070, 1075, 31, 32, + 33, 34, 35, 1061, 1072, 1065, 38, 1063, 1067, 41, + 463, 13, 14, 464, 16, 17, 465, 19, 466, 21, + 1069, 22, 1073, 24, 25, 1077, 27, 28, 29, 1082, + 1089, 1093, 1091, 1094, 1095, 1096, 1097, 1099, 109, 110, + 111, 112, 1122, 1126, 1128, 1131, 1143, 1144, 1147, 1149, + 1158, 1160, 45, 46, 47, 117, 308, 1163, 1164, 1156, + 119, 1167, 1168, 1171, 1172, 122, 1181, 1214, 1182, 1184, + 125, 1186, 1188, 509, 75, 76, 77, 1194, 78, 1193, + 79, 80, 81, 1198, 1200, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 718, 103, 104, 105, + 106, 1203, 1206, 107, 1212, 1213, 1226, 1227, 1229, 1231, + 1216, 1234, 75, 306, 336, 892, 1238, 1218, 79, 80, + 81, 1220, 1224, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 567, 0, 0, 0, 0, 0, - 0, 0, 307, 0, 7, 8, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 31, 32, 33, 34, 35, 0, 0, - 0, 38, 0, 0, 41, 463, 13, 14, 464, 16, - 17, 465, 19, 466, 21, 0, 22, 0, 24, 25, - 0, 27, 28, 29, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 109, 110, 111, 112, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, + 99, 100, 101, 102, 1244, 1245, 1246, 1247, 1249, 1150, + 900, 64, 307, 71, 521, 968, 0, 0, 0, 108, + 0, 0, 0, 0, 0, 109, 110, 111, 112, 113, + 114, 115, 116, 31, 32, 33, 34, 35, 0, 0, + 0, 38, 117, 118, 41, 0, 0, 119, 0, 120, + 121, 0, 122, 0, 123, 0, 124, 125, 0, 126, + 0, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 109, 110, 111, 112, 299, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 325, 0, 0, 0, 119, 0, 0, 0, 0, 122, 0, 75, 306, 0, 125, 0, 326, 79, 80, 81, 0, 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, 0, 0, 0, 0, 0, - 0, 568, 307, 0, 7, 8, 0, 0, 0, 0, + 0, 0, 307, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 0, 0, 0, 38, 0, 0, 41, 463, 13, 14, 464, 16, @@ -1629,25 +1616,25 @@ static const yytype_int16 yytable[] = 81, 0, 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, 0, 0, 0, 0, 0, - 0, 718, 307, 0, 7, 8, 0, 0, 0, 0, + 0, 734, 307, 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 32, 33, 34, 35, 468, 0, 0, 38, 0, 0, 41, 463, 13, 14, 464, 16, 17, 465, 19, 466, 21, 0, 22, 0, 24, 25, - 0, 27, 28, 29, 0, 0, 0, 0, 0, 484, - 0, 0, 0, 109, 110, 111, 112, 0, 0, 0, + 0, 27, 28, 29, 0, 0, 0, 0, 0, 0, + 0, 850, 0, 109, 110, 111, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, 117, 308, 0, 0, 0, 119, 0, 0, 0, 0, 122, 0, 75, 306, 0, 125, 0, 508, 79, 80, 81, 0, 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, 0, 0, 0, 0, 0, - 0, 734, 307, 0, 285, 286, 287, 288, 289, 290, + 0, 1145, 307, 0, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 31, 32, 33, 34, 35, 0, 0, 0, 38, 0, 0, 41, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 299, 0, 851, 0, 0, 0, 0, 0, 0, 0, 109, 110, 111, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 308, 0, 0, 0, 119, 0, 0, 0, 0, @@ -1664,34 +1651,34 @@ static const yytype_int16 yytable[] = 0, 0, 0, 109, 110, 111, 112, 0, 0, 0, 0, 0, 0, 0, 0, 45, 46, 47, 0, 0, 117, 118, 0, 0, 0, 119, 0, 0, 0, 0, - 122, 0, 0, 0, 0, 125, 0, 1033, 0, 0, + 122, 0, 0, 0, 0, 125, 484, 1030, 0, 0, 109, 110, 111, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 633, 117, 118, 0, - 0, 0, 119, 0, 0, 0, 0, 122, 0, 1148, + 0, 0, 119, 0, 0, 0, 0, 122, 0, 1191, 271, 0, 125, 0, 272, 75, 266, 0, 0, 0, 0, 79, 80, 81, 0, 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, 0, 0, - 75, 266, 7, 8, 0, 0, 79, 80, 81, 0, + 75, 266, 0, 0, 0, 0, 79, 80, 81, 0, 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 0, 463, 13, 14, 464, 16, 17, 465, - 19, 466, 21, 0, 22, 0, 24, 25, 0, 27, - 28, 29, 285, 286, 287, 288, 289, 290, 291, 292, + 101, 102, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 109, 110, 111, 112, - 299, 0, 0, 0, 0, 45, 46, 47, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 118, 0, 0, 0, 119, 0, 0, 0, 0, 122, 0, 0, 662, 0, 125, 0, 663, 109, 110, 111, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 360, 361, - 0, 0, 0, 119, 0, 0, 0, 0, 362, 1194, + 0, 813, 0, 119, 0, 0, 0, 0, 362, 0, 75, 306, 0, 125, 0, 171, 79, 80, 81, 0, 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 0, 0, 0, 0, 0, 0, 0, 0, 307, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 31, 32, 33, 34, 35, 487, 75, 266, 38, + 0, 31, 32, 33, 34, 35, 0, 75, 266, 38, 0, 0, 41, 79, 80, 81, 0, 0, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 773, @@ -1702,554 +1689,545 @@ static const yytype_int16 yytable[] = 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 807, 103, 104, 105, 106, 0, 0, 107, 0, 0, 0, 0, 109, 110, - 111, 112, 0, 0, 0, 838, 0, 0, 0, 0, + 111, 112, 0, 0, 0, 837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 118, 0, 0, 0, - 119, 0, 0, 0, 882, 122, 0, 0, 0, 0, + 119, 0, 0, 0, 881, 122, 0, 0, 0, 0, 125, 0, 0, 0, 0, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 1047, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 1044, 0, 0, 0, 299, 0, 109, 110, 111, 112, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1062, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1059, 0, 0, 0, 117, 118, 0, 0, 0, 119, 0, 0, - 0, 0, 122, 0, 0, 0, 0, 125, 1084, 0, + 0, 0, 122, 0, 0, 0, 0, 125, 1081, 0, 0, 0, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 0, 1151, 0, 0, + 293, 294, 295, 296, 297, 298, 0, 1148, 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 1192, 0, 0, 299, + 294, 295, 296, 297, 298, 0, 1189, 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 493, 299, 0, 0, 0, 0, 0, 0, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 564, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 493, 0, 0, 0, 299, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 655, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 564, 0, 0, 0, 299, 0, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 791, 0, + 291, 292, 293, 294, 295, 296, 297, 298, 655, 0, 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 850, 0, 0, + 292, 293, 294, 295, 296, 297, 298, 791, 0, 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 293, 294, 295, 296, 297, 298, 849, 0, 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 511, 297, 298, 0, 0, 0, 0, 299, + 294, 295, 494, 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, + 292, 293, 294, 295, 511, 297, 298, 0, 0, 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, -4, 1, 0, 299, - -4, 0, 0, 0, 0, 0, 0, 0, -4, -4, - 0, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, -4, 0, 0, 0, 0, -4, -4, 688, -4, - -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, -4, 1, 0, 299, -4, + 0, 0, 0, 0, 0, 0, 0, -4, -4, 0, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + -4, 0, 0, 0, 0, -4, -4, 688, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, -4, - -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, - -4, -4, 0, 0, -4, -4, 6, 0, 0, 0, - -4, -4, -4, -4, 7, 8, -4, 0, -4, 0, - -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, - 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 10, 11, 0, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, - 26, 27, 28, 29, 0, 30, 31, 32, 33, 34, - 35, 0, 36, 37, 38, 39, 40, 41, 7, 8, - 42, 43, 0, 0, 0, 0, 44, 45, 46, 47, - 0, 0, 48, 0, 49, 0, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 0, 0, 0, 463, - 13, 14, 464, 16, 17, 465, 19, 466, 21, 0, - 22, 0, 24, 25, 0, 27, 28, 29, 0, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 45, 46, 47, 1008, 0, 1009, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 1028, 0, 1029, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 1105, 0, 1106, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 695, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 743, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 790, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 827, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 1006, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 1023, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 1053, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 1054, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 1055, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 1056, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 1079, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 1120, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 1122, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 1123, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 1136, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 1139, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 1142, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 1160, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 0, 0, 1162, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 0, 0, 1186, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 0, 0, - 1188, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 0, 0, 1190, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 0, 0, 1200, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 451, 0, 0, - 0, 0, 532, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 532, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 533, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 561, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 606, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 607, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 620, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 621, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 622, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 623, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 624, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 625, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 709, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 710, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 711, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 787, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 825, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 826, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 849, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 958, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 959, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 979, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 991, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 1088, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 0, 0, 0, 1089, 285, 286, 287, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 0, - 0, 0, 1095, 285, 286, 287, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 0, 0, 0, 1101, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 0, 0, 0, 1155, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 0, 0, 0, - 1158, 285, 286, 287, 288, 289, 290, 291, 292, 293, + -4, -4, -4, -4, -4, -4, -4, 0, -4, -4, + -4, -4, -4, -4, 0, -4, -4, -4, -4, -4, + -4, 0, 0, -4, -4, 6, 0, 0, 0, -4, + -4, -4, -4, 7, 8, -4, 0, -4, 0, -4, + -4, -4, -4, -4, -4, -4, -4, -4, -4, 0, + 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, + 0, 10, 11, 0, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 0, 22, 23, 24, 25, 26, + 27, 28, 29, 0, 30, 31, 32, 33, 34, 35, + 0, 36, 37, 38, 39, 40, 41, 7, 8, 42, + 43, 0, 0, 0, 0, 44, 45, 46, 47, 0, + 0, 48, 0, 49, 0, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 0, 0, 0, 463, 13, + 14, 464, 16, 17, 465, 19, 466, 21, 0, 22, + 0, 24, 25, 0, 27, 28, 29, 0, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 45, 46, 47, 1005, 0, 1006, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 1025, 0, 1026, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 1102, + 0, 1103, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 743, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 790, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 826, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 1003, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 1020, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 1050, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 1051, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 1052, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 1053, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 1076, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 1117, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 1119, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 1120, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 1133, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 1136, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 1139, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 1157, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 0, 0, 1159, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 0, 0, 1183, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 0, + 0, 1185, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 0, 0, 1187, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 0, 0, 1197, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 451, 0, + 0, 0, 0, 532, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 487, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 532, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 533, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 561, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 606, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 607, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 620, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 621, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 622, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 623, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 624, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 625, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 709, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 710, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 711, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 787, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 824, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 825, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 848, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 956, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 957, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 977, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 989, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 1085, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 0, 0, 0, 1086, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, + 0, 0, 299, 0, 0, 0, 0, 0, 0, 1092, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, + 0, 0, 0, 0, 0, 1098, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 0, 0, 0, 0, + 0, 1152, 285, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, + 299, 0, 0, 0, 0, 0, 0, 1155, 285, 286, + 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, + 455, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 455, 285, 286, 287, 288, 289, 290, + 0, 0, 0, 566, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 0, 0, 566, 285, 286, 287, + 0, 0, 299, 0, 0, 0, 570, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 570, + 298, 0, 0, 0, 0, 299, 0, 0, 0, 585, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 0, 0, 585, 285, 286, 287, 288, 289, 290, 291, + 0, 0, 587, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 587, 285, 286, 287, 288, + 0, 299, 0, 0, 0, 589, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 0, 0, 589, 285, + 0, 0, 0, 0, 299, 0, 0, 0, 591, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 591, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 593, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 0, 0, 593, 285, 286, 287, 288, 289, + 299, 0, 0, 0, 595, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 595, 285, 286, + 0, 0, 0, 299, 0, 0, 0, 597, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, - 597, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 599, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 599, 285, 286, 287, 288, 289, 290, + 0, 0, 0, 601, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 0, 0, 601, 285, 286, 287, + 0, 0, 299, 0, 0, 0, 603, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 603, + 298, 0, 0, 0, 0, 299, 0, 0, 0, 605, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 0, 0, 605, 285, 286, 287, 288, 289, 290, 291, + 0, 0, 609, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 609, 285, 286, 287, 288, + 0, 299, 0, 0, 0, 611, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 0, 0, 611, 285, + 0, 0, 0, 0, 299, 0, 0, 0, 613, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 613, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 615, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 0, 0, 615, 285, 286, 287, 288, 289, + 299, 0, 0, 0, 617, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 617, 285, 286, + 0, 0, 0, 299, 0, 0, 0, 619, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, - 619, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 724, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 724, 285, 286, 287, 288, 289, 290, + 0, 0, 0, 725, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 0, 0, 725, 285, 286, 287, + 0, 0, 299, 0, 0, 0, 727, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 0, 0, 727, + 298, 0, 0, 0, 0, 299, 0, 0, 0, 728, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 0, 0, 728, 285, 286, 287, 288, 289, 290, 291, + 0, 0, 739, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 0, 0, 739, 285, 286, 287, 288, + 0, 299, 0, 0, 0, 763, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 0, 0, 763, 285, + 0, 0, 0, 0, 299, 0, 0, 0, 864, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, - 0, 865, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 866, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 0, 0, 867, 285, 286, 287, 288, 289, + 299, 0, 0, 0, 868, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 0, 0, 869, 285, 286, + 0, 0, 0, 299, 0, 0, 0, 870, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, 0, 0, 871, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 0, 0, 872, 285, 286, 287, 288, 289, 290, + 0, 0, 0, 970, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 0, 0, 972, 285, 286, 287, + 0, 0, 299, 0, 451, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, + 0, 0, 0, 299, 0, 488, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 0, 0, 0, 0, 299, 0, 497, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 451, 285, 286, + 298, 0, 0, 0, 0, 299, 0, 498, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 488, 285, + 297, 298, 0, 0, 0, 0, 299, 0, 500, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 497, + 296, 297, 298, 0, 0, 0, 0, 299, 0, 502, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 498, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 503, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 500, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 506, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 502, 285, 286, 287, 288, 289, 290, 291, + 299, 0, 507, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 503, 285, 286, 287, 288, 289, 290, + 0, 299, 0, 514, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 506, 285, 286, 287, 288, 289, + 0, 0, 299, 0, 557, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 507, 285, 286, 287, 288, + 0, 0, 0, 299, 0, 558, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 514, 285, 286, 287, + 0, 0, 0, 0, 299, 0, 559, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 557, 285, 286, + 298, 0, 0, 0, 0, 299, 0, 565, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 558, 285, + 297, 298, 0, 0, 0, 0, 299, 0, 584, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 559, + 296, 297, 298, 0, 0, 0, 0, 299, 0, 586, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 565, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 588, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 584, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 590, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 586, 285, 286, 287, 288, 289, 290, 291, + 299, 0, 592, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 588, 285, 286, 287, 288, 289, 290, + 0, 299, 0, 594, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 590, 285, 286, 287, 288, 289, + 0, 0, 299, 0, 596, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 592, 285, 286, 287, 288, + 0, 0, 0, 299, 0, 598, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 594, 285, 286, 287, + 0, 0, 0, 0, 299, 0, 600, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 596, 285, 286, + 298, 0, 0, 0, 0, 299, 0, 602, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 598, 285, + 297, 298, 0, 0, 0, 0, 299, 0, 604, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 600, + 296, 297, 298, 0, 0, 0, 0, 299, 0, 608, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 602, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 610, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 604, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 612, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 608, 285, 286, 287, 288, 289, 290, 291, + 299, 0, 614, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 610, 285, 286, 287, 288, 289, 290, + 0, 299, 0, 616, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 612, 285, 286, 287, 288, 289, + 0, 0, 299, 0, 618, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 614, 285, 286, 287, 288, + 0, 0, 0, 299, 0, 673, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 616, 285, 286, 287, + 0, 0, 0, 0, 299, 0, 678, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 618, 285, 286, + 298, 0, 0, 0, 0, 299, 0, 686, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 673, 285, + 297, 298, 0, 0, 0, 0, 299, 0, 689, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 678, + 296, 297, 298, 0, 0, 0, 0, 299, 0, 690, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 686, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 696, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 689, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 701, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 690, 285, 286, 287, 288, 289, 290, 291, + 299, 0, 723, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 696, 285, 286, 287, 288, 289, 290, + 0, 299, 0, 863, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 701, 285, 286, 287, 288, 289, + 0, 0, 299, 0, 865, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 723, 285, 286, 287, 288, + 0, 0, 0, 299, 0, 867, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299, 0, 864, 285, 286, 287, + 0, 0, 0, 0, 299, 0, 869, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 0, 0, 0, 0, 299, 0, 866, 285, 286, + 298, 0, 0, 0, 0, 299, 0, 874, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 0, 0, 0, 0, 299, 0, 868, 285, + 297, 298, 0, 0, 0, 0, 299, 0, 1004, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 0, 0, 0, 0, 299, 0, 870, + 296, 297, 298, 0, 0, 0, 0, 299, 0, 1019, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, 0, - 875, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 1029, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, 299, - 0, 1007, 285, 286, 287, 288, 289, 290, 291, 292, + 0, 1151, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, 0, - 299, 0, 1022, 285, 286, 287, 288, 289, 290, 291, + 299, 0, 1195, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, 0, - 0, 299, 0, 1032, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 0, 0, - 0, 0, 299, 0, 1154, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 0, - 0, 0, 0, 299, 0, 1198, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 0, 0, 0, 0, 299 + 0, 299 }; static const yytype_int16 yycheck[] = { - 6, 354, 355, 6, 179, 274, 3, 6, 261, 262, - 263, 186, 4, 6, 4, 49, 4, 4, 7, 5, - 5, 4, 648, 715, 6, 1041, 6, 69, 4, 7, - 4, 4, 207, 6, 209, 70, 4, 342, 343, 344, - 70, 76, 77, 4, 5, 1061, 76, 77, 6, 70, - 69, 69, 131, 6, 70, 76, 77, 70, 6, 70, - 76, 77, 70, 76, 77, 76, 77, 131, 76, 77, - 121, 122, 0, 7, 138, 36, 37, 38, 39, 78, - 132, 42, 121, 122, 719, 137, 137, 131, 139, 131, - 80, 81, 82, 83, 138, 70, 138, 131, 137, 13, - 139, 76, 77, 4, 139, 6, 98, 90, 91, 139, - 69, 117, 118, 119, 90, 91, 122, 123, 139, 138, - 138, 127, 111, 139, 49, 118, 139, 133, 139, 126, - 136, 139, 138, 139, 140, 141, 131, 143, 144, 145, - 146, 1157, 148, 149, 150, 837, 138, 153, 774, 139, - 138, 138, 138, 138, 128, 129, 138, 135, 138, 133, - 133, 135, 139, 131, 170, 171, 140, 144, 121, 122, - 118, 148, 131, 179, 108, 109, 110, 111, 133, 138, - 135, 144, 121, 122, 6, 148, 455, 193, 194, 195, - 365, 197, 121, 122, 200, 201, 70, 203, 137, 1215, - 70, 131, 76, 77, 70, 211, 76, 77, 137, 384, - 76, 77, 218, 219, 220, 221, 222, 223, 224, 225, + 6, 49, 4, 261, 262, 263, 3, 715, 6, 354, + 355, 32, 33, 6, 35, 4, 7, 4, 132, 648, + 5, 7, 274, 137, 5, 1038, 159, 6, 70, 4, + 6, 4, 4, 0, 76, 77, 6, 69, 46, 4, + 4, 49, 6, 51, 4, 1058, 719, 131, 181, 131, + 121, 122, 4, 5, 138, 70, 138, 69, 151, 6, + 6, 76, 77, 6, 157, 158, 159, 138, 179, 128, + 129, 123, 124, 125, 133, 186, 135, 132, 130, 138, + 78, 140, 137, 131, 36, 37, 38, 39, 181, 182, + 42, 80, 81, 82, 83, 4, 207, 139, 209, 64, + 65, 66, 67, 13, 132, 7, 138, 72, 70, 137, + 75, 117, 118, 119, 76, 77, 122, 123, 90, 91, + 111, 127, 131, 98, 139, 118, 138, 133, 836, 126, + 136, 69, 138, 139, 140, 141, 138, 143, 144, 145, + 146, 1154, 148, 149, 150, 774, 167, 153, 169, 135, + 139, 138, 49, 138, 175, 128, 129, 138, 179, 138, + 133, 139, 135, 138, 170, 171, 144, 140, 138, 133, + 148, 131, 118, 179, 7, 132, 128, 129, 121, 122, + 137, 90, 91, 135, 121, 122, 6, 193, 194, 195, + 131, 197, 133, 131, 200, 201, 131, 203, 69, 1212, + 138, 138, 131, 455, 131, 211, 108, 109, 110, 111, + 131, 138, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 121, 122, 53, 132, 264, 885, - 32, 33, 137, 35, 49, 139, 272, 128, 129, 139, - 137, 274, 139, 139, 135, 131, 131, 133, 7, 285, + 256, 257, 258, 259, 365, 884, 70, 4, 264, 6, + 131, 131, 76, 77, 70, 144, 272, 138, 131, 148, + 76, 77, 131, 384, 133, 108, 109, 110, 111, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 131, 272, 131, 43, 133, 70, - 46, 138, 308, 49, 131, 76, 77, 7, 43, 272, - 316, 46, 121, 122, 49, 321, 51, 570, 46, 325, - 326, 49, 131, 51, 330, 132, 332, 333, 334, 138, - 137, 308, 131, 339, 340, 341, 342, 343, 344, 345, - 49, 132, 341, 342, 343, 344, 137, 131, 325, 326, - 49, 357, 358, 359, 360, 361, 362, 354, 355, 132, - 128, 129, 368, 326, 137, 371, 372, 70, 139, 375, - 376, 377, 7, 76, 77, 121, 122, 630, 51, 108, - 109, 110, 111, 49, 131, 131, 133, 131, 394, 133, - 131, 397, 138, 396, 131, 167, 133, 169, 375, 128, - 129, 121, 122, 175, 138, 658, 135, 179, 108, 109, - 110, 111, 375, 121, 122, 121, 122, 1109, 138, 131, - 1112, 133, 1048, 1115, 138, 121, 122, 5, 128, 129, - 138, 137, 70, 1068, 49, 1070, 139, 1072, 76, 77, - 49, 151, 138, 131, 450, 133, 46, 157, 158, 121, - 122, 457, 455, 121, 122, 6, 7, 456, 36, 37, - 38, 39, 121, 122, 42, 137, 121, 122, 131, 137, - 133, 181, 182, 108, 109, 110, 111, 131, 137, 133, - 486, 487, 137, 489, 490, 1177, 46, 493, 494, 495, - 4, 121, 122, 128, 129, 121, 122, 766, 767, 121, - 122, 139, 508, 121, 122, 511, 512, 137, 131, 486, - 1202, 137, 518, 1205, 1149, 137, 1208, 494, 495, 1211, - 131, 4, 133, 486, 131, 4, 532, 533, 121, 122, - 131, 508, 538, 131, 511, 4, 4, 5, 133, 1231, - 546, 1233, 548, 1235, 137, 508, 121, 122, 4, 131, - 1185, 133, 1187, 6, 1189, 561, 4, 563, 564, 131, - 1195, 133, 137, 131, 131, 133, 133, 570, 36, 37, - 38, 39, 138, 131, 42, 123, 124, 125, 131, 932, - 352, 353, 130, 4, 1219, 131, 1221, 133, 1223, 361, - 121, 122, 123, 124, 125, 64, 65, 66, 67, 130, - 606, 607, 131, 72, 133, 131, 75, 133, 131, 131, - 133, 133, 131, 131, 620, 621, 622, 623, 624, 625, - 626, 7, 131, 629, 128, 129, 131, 6, 634, 133, - 6, 135, 128, 129, 138, 641, 140, 133, 6, 135, - 893, 8, 131, 131, 140, 651, 652, 653, 654, 655, - 131, 131, 629, 133, 131, 5, 133, 663, 131, 131, - 128, 129, 137, 137, 139, 139, 629, 135, 138, 49, - 137, 51, 139, 62, 651, 652, 653, 654, 684, 137, - 4, 139, 8, 137, 131, 139, 663, 138, 651, 652, - 653, 654, 137, 137, 139, 139, 137, 137, 139, 139, - 663, 137, 137, 139, 139, 131, 137, 684, 139, 131, - 137, 1064, 139, 137, 137, 139, 139, 137, 137, 139, - 139, 684, 131, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 131, 138, 745, - 746, 130, 452, 453, 131, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 531, - 763, 138, 6, 130, 767, 132, 137, 6, 139, 775, - 135, 137, 544, 139, 137, 137, 139, 139, 137, 133, - 139, 787, 137, 93, 139, 791, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 137, 6, 139, 809, 130, 137, 137, 139, 139, 519, - 138, 138, 133, 139, 133, 138, 6, 6, 824, 825, - 826, 133, 4, 138, 130, 6, 832, 833, 5, 7, - 836, 135, 133, 839, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 849, 850, 851, 138, 130, 139, 138, - 7, 7, 858, 856, 7, 132, 7, 863, 7, 6, - 90, 137, 839, 138, 132, 132, 137, 6, 4, 134, - 7, 93, 878, 7, 7, 7, 839, 93, 877, 7, - 7, 93, 7, 7, 7, 4, 132, 132, 135, 661, - 132, 132, 898, 6, 134, 7, 139, 7, 904, 905, - 7, 1076, 139, 909, 135, 131, 131, 6, 4, 138, - 7, 6, 918, 6, 6, 6, 133, 6, 118, 49, - 7, 7, 928, 7, 138, 51, 7, 7, 7, 928, - 6, 138, 7, 7, 7, 932, 7, 709, 710, 711, - 946, 7, 7, 7, 1197, 4, 6, 131, 954, 6, - 138, 6, 958, 959, 6, 954, 6, 4, 4, 49, - 4, 671, 672, 6, 674, 4, 676, 677, 6, 131, - 680, 681, 1225, 979, 1227, 1150, 135, 138, 132, 7, - 6, 6, 6, 138, 56, 991, 138, 6, 138, 6, - 138, 6, 1245, 5, 4, 6, 138, 138, 6, 6, - 135, 89, 1008, 6, 4, 7, 12, 13, 6, 6, - 6, 6, 6, 6, 134, 6, 6, 6, 1024, 729, - 730, 731, 1028, 6, 1030, 5, 93, 1033, 6, 6, - 6, 1037, 6, 6, 6, 6, 1042, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 6, 54, 4, - 56, 57, 6, 59, 60, 61, 1033, 6, 6, 137, - 4, 1067, 7, 1069, 836, 1071, 6, 1064, 138, 6, - 1033, 6, 135, 6, 1080, 5, 138, 47, 6, 85, - 86, 87, 1088, 1089, 6, 795, 139, 138, 6, 1095, - 138, 801, 7, 138, 6, 6, 1102, 138, 138, 1105, - 810, 811, 812, 88, 6, 8, 816, 817, 818, 819, - 820, 821, 822, 6, 6, 6, 91, 6, 6, 1125, - 138, 6, 832, 5, 138, 6, 139, 899, 62, 138, - 6, 1137, 137, 139, 1140, 6, 6, 1143, 6, 6, - 6, 1147, 6, 6, 5, 786, 6, 139, 6, 1155, - 138, 8, 1158, 6, 138, 6, 138, 138, 137, 6, - 6, 933, 5, 935, 6, 937, 876, 6, 3, 4, - 138, 138, 138, 138, 9, 10, 11, 138, 6, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 139, 6, 6, 6, 6, 6, 6, 6, 43, 112, + 296, 297, 298, 299, 272, 128, 129, 131, 274, 70, + 121, 122, 308, 132, 53, 76, 77, 131, 137, 133, + 316, 43, 570, 49, 46, 321, 137, 49, 139, 325, + 326, 7, 49, 8, 330, 139, 332, 333, 334, 49, + 308, 352, 353, 139, 340, 341, 342, 343, 344, 345, + 361, 128, 129, 341, 342, 343, 344, 325, 326, 6, + 7, 357, 358, 359, 360, 361, 362, 354, 355, 452, + 453, 51, 368, 121, 122, 371, 372, 49, 139, 375, + 376, 377, 630, 131, 128, 129, 131, 70, 133, 70, + 138, 135, 138, 76, 77, 76, 77, 131, 394, 121, + 122, 397, 1065, 272, 1067, 138, 1069, 375, 1106, 131, + 658, 1109, 70, 49, 1112, 70, 138, 70, 76, 77, + 49, 76, 77, 76, 77, 46, 1045, 342, 343, 344, + 396, 46, 108, 109, 110, 111, 519, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 4, 128, 129, 450, 130, 139, 326, 139, 135, + 4, 457, 121, 122, 139, 8, 70, 4, 456, 121, + 122, 43, 76, 77, 46, 131, 1174, 49, 137, 51, + 139, 139, 131, 1146, 139, 137, 139, 139, 131, 455, + 486, 487, 131, 489, 490, 121, 122, 493, 494, 495, + 131, 1199, 133, 131, 1202, 133, 375, 1205, 121, 122, + 1208, 137, 508, 6, 133, 511, 512, 4, 486, 1182, + 531, 1184, 518, 1186, 766, 767, 494, 495, 4, 1192, + 1228, 138, 1230, 544, 1232, 139, 532, 533, 70, 131, + 508, 133, 538, 511, 76, 77, 131, 121, 122, 131, + 546, 133, 548, 1216, 70, 1218, 131, 1220, 133, 7, + 76, 77, 131, 6, 138, 561, 131, 563, 564, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 1125, 794, 3, 3, 130, 181, 64, - 65, 66, 67, 68, 881, -1, 139, 72, -1, 949, - 75, -1, -1, 6, -1, -1, -1, -1, -1, -1, - 960, -1, -1, -1, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 104, - 105, 106, 107, 130, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 121, 122, -1, -1, - 130, 126, -1, -1, -1, 1067, 131, 1069, -1, 1071, - -1, 136, -1, -1, 139, -1, 3, 4, 5, -1, - 7, 1021, 9, 10, 11, -1, -1, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, -1, 36, - 37, 38, 39, -1, -1, 42, -1, 12, 13, 112, + 123, 124, 125, 121, 122, 121, 122, 130, 671, 672, + 131, 674, 133, 676, 677, 930, 139, 680, 681, 137, + 7, 137, 4, 5, 570, 131, 131, 139, 128, 129, + 606, 607, 131, 133, 133, 135, 131, 486, 133, 131, + 140, 133, 4, 139, 620, 621, 622, 623, 624, 625, + 626, 5, 5, 629, 36, 37, 38, 39, 634, 508, + 42, 131, 6, 133, 892, 641, 729, 730, 731, 131, + 661, 133, 131, 6, 133, 651, 652, 653, 654, 655, + 6, 629, 36, 37, 38, 39, 131, 663, 42, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, 1075, -1, 130, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, - -1, 56, 57, -1, 59, 60, 61, -1, -1, -1, - -1, 98, -1, -1, -1, -1, 1116, 104, 105, 106, - 107, 108, 109, 110, 111, -1, -1, -1, -1, -1, - 85, 86, 87, -1, 121, 122, -1, -1, -1, 126, - -1, 128, 129, -1, 131, -1, 133, -1, 135, 136, - -1, 138, 3, 4, 5, -1, -1, -1, 9, 10, - 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, + 123, 124, 125, 651, 652, 653, 654, 130, 684, 121, + 122, 121, 122, 121, 122, 663, 131, 131, 709, 710, + 711, 108, 109, 110, 111, 137, 131, 137, 133, 137, + 131, 131, 795, 133, 138, 131, 684, 133, 801, 131, + 131, 128, 129, 121, 122, 131, 1061, 810, 811, 812, + 121, 122, 131, 816, 817, 818, 819, 820, 821, 137, + 121, 122, 121, 122, 131, 131, 137, 133, 831, 745, + 746, 121, 122, 121, 122, 131, 137, 133, 137, 131, + 629, 121, 122, 123, 124, 125, 137, 137, 139, 137, + 130, 4, 12, 13, 137, 137, 139, 139, 133, 775, + 135, 138, 651, 652, 653, 654, 137, 137, 139, 139, + 138, 787, 875, 131, 663, 791, 137, 763, 139, 138, + 49, 767, 51, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 809, 54, 684, 56, 57, 131, 59, + 60, 61, 133, 137, 835, 139, 6, 823, 824, 825, + 137, 137, 139, 139, 138, 831, 832, 6, 137, 835, + 139, 137, 838, 139, 135, 85, 86, 87, 137, 137, + 139, 139, 848, 849, 850, 137, 137, 139, 139, 138, + 137, 857, 139, 137, 947, 139, 862, 137, 93, 139, + 838, 137, 137, 139, 139, 958, 137, 137, 139, 139, + 137, 877, 139, 137, 137, 139, 139, 898, 876, 855, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 139, + 137, 897, 139, 130, 133, 133, 6, 903, 904, 6, + 6, 133, 908, 4, 138, 130, 6, 5, 135, 133, + 931, 917, 933, 7, 935, 138, 7, 139, 138, 7, + 926, 7, 132, 7, 7, 1018, 6, 90, 926, 138, + 137, 132, 132, 930, 137, 6, 1194, 4, 944, 134, + 93, 7, 7, 7, 7, 93, 952, 7, 7, 93, + 956, 957, 7, 7, 952, 7, 12, 13, 4, 838, + 132, 6, 1073, 132, 1222, 132, 1224, 132, 139, 135, + 6, 977, 7, 7, 7, 139, 135, 131, 138, 1072, + 131, 6, 4, 989, 1242, 6, 6, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 134, 54, 1005, + 56, 57, 6, 59, 60, 61, 6, 133, 7, 6, + 118, 49, 7, 7, 51, 1021, 7, 138, 7, 1025, + 1113, 1027, 7, 7, 1030, 6, 4, 7, 1034, 85, + 86, 87, 7, 1039, 7, 7, 1147, 7, 7, 6, + 6, 138, 131, 1064, 6, 1066, 138, 1068, 49, 6, + 6, 4, 1030, 4, 4, 131, 4, 6, 1064, 6, + 1066, 138, 1068, 132, 1061, 135, 12, 13, 7, 6, + 138, 1077, 6, 56, 6, 6, 138, 138, 6, 1085, + 1086, 138, 6, 139, 5, 4, 1092, 138, 6, 138, + 6, 6, 6, 1099, 7, 135, 1102, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 89, 54, 6, + 56, 57, 4, 59, 60, 61, 1122, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 1134, 6, + 6, 1137, 130, 6, 1140, 6, 6, 6, 1144, 85, + 86, 87, 134, 6, 6, 6, 1152, 3, 4, 1155, + 5, 1030, 6, 9, 10, 11, 6, 93, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 6, + 6, 6, 6, 4, 6, 137, 6, 43, 6, 12, + 13, 6, 4, 139, 138, 6, 6, 135, 7, 6, + 6, 5, 47, 6, 6, 138, 6, 6, 64, 65, + 66, 67, 68, 138, 7, 138, 72, 139, 138, 75, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 138, 54, 138, 56, 57, 88, 59, 60, 61, 6, + 6, 6, 91, 6, 6, 6, 6, 138, 104, 105, + 106, 107, 138, 6, 5, 139, 6, 62, 138, 6, + 6, 6, 85, 86, 87, 121, 122, 6, 6, 137, + 126, 6, 6, 6, 139, 131, 5, 5, 138, 138, + 136, 138, 6, 139, 3, 4, 5, 138, 7, 6, + 9, 10, 11, 137, 6, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 139, 36, 37, 38, + 39, 6, 6, 42, 138, 6, 139, 6, 6, 6, + 138, 6, 3, 4, 5, 786, 6, 138, 9, 10, + 11, 138, 138, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 139, -1, -1, -1, -1, -1, - -1, -1, 43, -1, 12, 13, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, 64, 65, 66, 67, 68, -1, -1, - -1, 72, -1, -1, 75, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, -1, 54, -1, 56, 57, - -1, 59, 60, 61, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 104, 105, 106, 107, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 85, 86, 87, + 31, 32, 33, 34, 6, 6, 6, 6, 6, 1122, + 794, 3, 43, 3, 339, 880, -1, -1, -1, 98, + -1, -1, -1, -1, -1, 104, 105, 106, 107, 108, + 109, 110, 111, 64, 65, 66, 67, 68, -1, -1, + -1, 72, 121, 122, 75, -1, -1, 126, -1, 128, + 129, -1, 131, -1, 133, -1, 135, 136, -1, 138, + -1, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 104, 105, 106, 107, 130, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, -1, 3, 4, -1, 136, -1, 138, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, - -1, 139, 43, -1, 12, 13, -1, -1, -1, -1, + -1, -1, 43, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, -1, -1, -1, 72, -1, -1, 75, 43, 44, 45, 46, 47, @@ -2267,8 +2245,8 @@ static const yytype_int16 yycheck[] = -1, -1, -1, 64, 65, 66, 67, 68, 6, -1, -1, 72, -1, -1, 75, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, -1, 56, 57, - -1, 59, 60, 61, -1, -1, -1, -1, -1, 6, - -1, -1, -1, 104, 105, 106, 107, -1, -1, -1, + -1, 59, 60, 61, -1, -1, -1, -1, -1, -1, + -1, 8, -1, 104, 105, 106, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 87, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, -1, 3, 4, -1, 136, -1, 138, 9, 10, @@ -2280,7 +2258,7 @@ static const yytype_int16 yycheck[] = -1, -1, 130, 64, 65, 66, 67, 68, -1, -1, -1, 72, -1, -1, 75, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 130, -1, 132, -1, -1, -1, -1, -1, -1, -1, 104, 105, 106, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, @@ -2297,7 +2275,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, 104, 105, 106, 107, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 87, -1, -1, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, 136, -1, 138, -1, -1, + 131, -1, -1, -1, -1, 136, 6, 138, -1, -1, 104, 105, 106, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, -1, 139, @@ -2305,26 +2283,26 @@ static const yytype_int16 yycheck[] = -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, - 3, 4, 12, 13, -1, -1, 9, 10, 11, -1, + 3, 4, -1, -1, -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, -1, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, -1, 54, -1, 56, 57, -1, 59, - 60, 61, 112, 113, 114, 115, 116, 117, 118, 119, + 33, 34, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 104, 105, 106, 107, - 130, -1, -1, -1, -1, 85, 86, 87, -1, -1, + 130, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, -1, -1, 134, -1, 136, -1, 138, 104, 105, 106, 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, 122, - -1, -1, -1, 126, -1, -1, -1, -1, 131, 139, + -1, 62, -1, 126, -1, -1, -1, -1, 131, -1, 3, 4, -1, 136, -1, 138, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, 43, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, 64, 65, 66, 67, 68, 137, 3, 4, 72, + -1, 64, 65, 66, 67, 68, -1, 3, 4, 72, -1, -1, 75, 9, 10, 11, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 6, @@ -2359,7 +2337,7 @@ static const yytype_int16 yycheck[] = -1, -1, 130, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 8, -1, -1, -1, 130, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 120, 121, 122, 123, 124, 125, 8, -1, -1, -1, 130, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, @@ -2369,176 +2347,180 @@ static const yytype_int16 yycheck[] = 130, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, -1, 0, 1, -1, 130, - 4, -1, -1, -1, -1, -1, -1, -1, 12, 13, - -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, 35, -1, -1, -1, -1, 40, 41, 139, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, - 54, 55, 56, 57, 58, 59, 60, 61, -1, 63, - 64, 65, 66, 67, 68, -1, 70, 71, 72, 73, - 74, 75, -1, -1, 78, 79, 4, -1, -1, -1, - 84, 85, 86, 87, 12, 13, 90, -1, 92, -1, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - -1, -1, -1, -1, -1, -1, -1, 35, -1, -1, - -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, - 58, 59, 60, 61, -1, 63, 64, 65, 66, 67, - 68, -1, 70, 71, 72, 73, 74, 75, 12, 13, - 78, 79, -1, -1, -1, -1, 84, 85, 86, 87, - -1, -1, 90, -1, 92, -1, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, -1, -1, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, - 54, -1, 56, 57, -1, 59, 60, 61, -1, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, 85, 86, 87, 137, -1, 139, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, - -1, -1, 137, -1, 139, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, - 137, -1, 139, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, - 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, -1, -1, -1, 139, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, - -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, - -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, - 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, -1, -1, -1, 139, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, - -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, - -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, - 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, -1, -1, -1, 139, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, - -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, - -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, - 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, -1, -1, -1, 139, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, - -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, - -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, - 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, -1, -1, -1, 139, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, -1, -1, -1, -1, 130, -1, 132, -1, -1, - -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, - 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, - -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, - 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, - -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, - 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, - -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, - 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, - -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, - 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, - -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, - -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, - -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, - 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, 0, 1, -1, 130, 4, + -1, -1, -1, -1, -1, -1, -1, 12, 13, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + 35, -1, -1, -1, -1, 40, 41, 139, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, + 55, 56, 57, 58, 59, 60, 61, -1, 63, 64, + 65, 66, 67, 68, -1, 70, 71, 72, 73, 74, + 75, -1, -1, 78, 79, 4, -1, -1, -1, 84, + 85, 86, 87, 12, 13, 90, -1, 92, -1, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, -1, + -1, -1, -1, -1, -1, -1, 35, -1, -1, -1, + -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, -1, 54, 55, 56, 57, 58, + 59, 60, 61, -1, 63, 64, 65, 66, 67, 68, + -1, 70, 71, 72, 73, 74, 75, 12, 13, 78, + 79, -1, -1, -1, -1, 84, 85, 86, 87, -1, + -1, 90, -1, 92, -1, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, -1, -1, -1, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, + -1, 56, 57, -1, 59, 60, 61, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + 85, 86, 87, 137, -1, 139, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, 137, -1, 139, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, 137, + -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, -1, -1, 139, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, -1, -1, 139, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, + -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, -1, -1, 139, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, -1, -1, 139, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, + -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, -1, -1, 139, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, -1, -1, 139, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, + -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, -1, -1, 139, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, -1, -1, 139, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, -1, + -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, -1, -1, 139, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, -1, -1, 139, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, 132, -1, + -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, 137, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, 137, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, 137, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, 137, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, 137, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, -1, -1, -1, 137, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, @@ -2611,7 +2593,11 @@ static const yytype_int16 yycheck[] = 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, - -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, + -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, @@ -2710,13 +2696,7 @@ static const yytype_int16 yycheck[] = 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, - -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, - -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, - -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - -1, -1, -1, -1, 130 + -1, 130 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -2756,7 +2736,7 @@ static const yytype_uint8 yystos[] = 6, 6, 201, 5, 201, 201, 4, 43, 122, 170, 178, 201, 208, 209, 201, 201, 131, 201, 209, 201, 201, 131, 209, 201, 201, 122, 138, 201, 206, 208, - 131, 201, 138, 131, 131, 206, 5, 206, 207, 138, + 131, 201, 138, 131, 131, 206, 5, 206, 207, 207, 131, 131, 131, 131, 131, 131, 4, 203, 203, 203, 201, 201, 121, 122, 138, 138, 203, 138, 138, 138, 121, 122, 131, 172, 203, 138, 207, 206, 131, 4, @@ -2775,7 +2755,7 @@ static const yytype_uint8 yystos[] = 138, 201, 208, 8, 123, 137, 139, 132, 132, 201, 132, 139, 132, 132, 201, 139, 132, 132, 138, 139, 209, 123, 7, 201, 132, 201, 201, 201, 7, 7, - 196, 201, 201, 166, 201, 214, 166, 166, 166, 201, + 196, 196, 201, 166, 201, 214, 166, 166, 166, 201, 132, 137, 137, 137, 203, 203, 171, 171, 137, 201, 201, 201, 201, 182, 137, 172, 7, 197, 7, 201, 6, 201, 201, 139, 209, 201, 201, 132, 132, 132, @@ -2792,7 +2772,7 @@ static const yytype_uint8 yystos[] = 201, 7, 134, 138, 201, 201, 201, 208, 201, 208, 93, 7, 7, 132, 7, 93, 7, 7, 132, 93, 7, 7, 209, 139, 138, 201, 132, 7, 139, 132, - 132, 201, 206, 4, 195, 139, 132, 132, 132, 132, + 132, 201, 206, 4, 195, 6, 132, 132, 132, 132, 132, 132, 135, 203, 201, 201, 139, 139, 201, 137, 137, 137, 70, 76, 77, 192, 193, 203, 139, 179, 201, 6, 201, 132, 134, 134, 139, 134, 134, 7, @@ -2805,50 +2785,49 @@ static const yytype_uint8 yystos[] = 139, 8, 49, 206, 206, 7, 206, 49, 51, 206, 206, 7, 51, 206, 206, 139, 209, 6, 7, 138, 7, 7, 7, 62, 194, 6, 7, 7, 7, 7, - 7, 7, 7, 4, 137, 137, 137, 139, 203, 203, - 203, 6, 138, 131, 139, 193, 137, 192, 6, 138, - 6, 6, 49, 6, 6, 206, 206, 206, 4, 137, - 8, 8, 132, 4, 4, 6, 4, 6, 131, 201, - 201, 205, 206, 138, 132, 134, 132, 134, 132, 134, - 132, 134, 134, 132, 132, 132, 163, 7, 163, 164, - 135, 7, 6, 210, 201, 137, 139, 139, 139, 139, - 139, 6, 6, 145, 201, 6, 139, 201, 138, 56, - 168, 168, 206, 6, 138, 138, 6, 6, 206, 138, - 6, 6, 139, 5, 201, 206, 206, 206, 4, 6, - 206, 206, 206, 206, 206, 206, 206, 6, 7, 201, - 201, 201, 138, 137, 139, 137, 139, 137, 139, 201, - 206, 201, 201, 203, 139, 209, 138, 6, 6, 89, - 201, 201, 201, 6, 7, 164, 149, 201, 137, 137, - 137, 139, 150, 201, 135, 206, 214, 201, 6, 4, - 211, 6, 134, 210, 6, 6, 6, 6, 213, 137, - 134, 201, 203, 6, 6, 6, 201, 201, 6, 201, - 5, 137, 6, 6, 93, 167, 201, 6, 6, 6, - 6, 6, 6, 4, 201, 214, 139, 132, 137, 139, - 171, 203, 6, 183, 203, 6, 184, 203, 6, 185, - 139, 137, 132, 139, 137, 139, 201, 206, 137, 139, - 8, 139, 132, 138, 201, 214, 132, 137, 201, 201, - 206, 138, 137, 139, 4, 6, 6, 6, 7, 6, - 135, 6, 201, 139, 139, 139, 139, 5, 201, 47, - 6, 138, 6, 6, 138, 201, 139, 137, 138, 137, - 138, 137, 138, 6, 206, 7, 138, 201, 6, 139, - 88, 201, 201, 209, 6, 6, 153, 201, 137, 137, - 205, 201, 6, 210, 91, 137, 6, 6, 6, 6, - 6, 137, 138, 205, 171, 137, 139, 201, 203, 192, - 201, 203, 192, 201, 203, 192, 137, 139, 206, 172, - 139, 201, 139, 139, 139, 138, 201, 201, 139, 6, - 201, 5, 201, 139, 139, 201, 139, 137, 139, 139, - 137, 139, 139, 137, 139, 206, 6, 62, 139, 180, - 138, 6, 6, 150, 132, 137, 6, 138, 137, 137, - 139, 6, 139, 6, 186, 201, 6, 6, 187, 201, - 6, 6, 188, 201, 6, 139, 201, 192, 172, 139, - 156, 201, 205, 201, 5, 138, 139, 138, 139, 138, - 139, 6, 6, 139, 139, 181, 6, 138, 132, 139, - 139, 137, 192, 6, 189, 192, 6, 190, 192, 6, - 191, 192, 154, 213, 159, 138, 6, 5, 139, 138, - 139, 138, 139, 138, 139, 137, 139, 138, 205, 139, - 6, 192, 6, 192, 6, 192, 213, 6, 157, 213, - 139, 6, 139, 139, 139, 137, 139, 6, 6, 6, - 6, 213, 6 + 7, 7, 4, 137, 137, 137, 139, 203, 203, 203, + 6, 138, 131, 139, 193, 137, 192, 6, 138, 6, + 6, 49, 6, 6, 206, 206, 206, 4, 137, 8, + 8, 132, 4, 4, 6, 4, 6, 131, 201, 201, + 205, 206, 138, 132, 134, 132, 134, 132, 134, 132, + 134, 134, 132, 132, 132, 163, 7, 163, 164, 135, + 7, 6, 210, 201, 137, 139, 139, 139, 139, 139, + 6, 6, 145, 201, 6, 139, 201, 138, 56, 168, + 168, 206, 6, 138, 138, 6, 6, 206, 138, 6, + 6, 139, 5, 201, 206, 206, 206, 4, 6, 206, + 206, 206, 206, 206, 206, 6, 7, 201, 201, 201, + 138, 137, 139, 137, 139, 137, 139, 201, 206, 201, + 201, 203, 139, 209, 138, 6, 6, 89, 201, 201, + 201, 6, 7, 164, 149, 201, 137, 137, 137, 139, + 150, 201, 135, 206, 214, 201, 6, 4, 211, 6, + 134, 210, 6, 6, 6, 6, 213, 137, 134, 201, + 203, 6, 6, 6, 201, 201, 6, 201, 5, 137, + 6, 6, 93, 167, 201, 6, 6, 6, 6, 6, + 4, 201, 214, 139, 132, 137, 139, 171, 203, 6, + 183, 203, 6, 184, 203, 6, 185, 139, 137, 132, + 139, 137, 139, 201, 206, 137, 139, 8, 139, 132, + 138, 201, 214, 132, 137, 201, 201, 206, 138, 137, + 139, 4, 6, 6, 6, 7, 6, 135, 6, 201, + 139, 139, 139, 139, 5, 201, 47, 6, 138, 6, + 6, 138, 201, 139, 137, 138, 137, 138, 137, 138, + 6, 206, 7, 138, 201, 6, 139, 88, 201, 201, + 209, 6, 6, 153, 201, 137, 137, 205, 201, 6, + 210, 91, 137, 6, 6, 6, 6, 6, 137, 138, + 205, 171, 137, 139, 201, 203, 192, 201, 203, 192, + 201, 203, 192, 137, 139, 206, 172, 139, 201, 139, + 139, 139, 138, 201, 201, 139, 6, 201, 5, 201, + 139, 139, 201, 139, 137, 139, 139, 137, 139, 139, + 137, 139, 206, 6, 62, 139, 180, 138, 6, 6, + 150, 132, 137, 6, 138, 137, 137, 139, 6, 139, + 6, 186, 201, 6, 6, 187, 201, 6, 6, 188, + 201, 6, 139, 201, 192, 172, 139, 156, 201, 205, + 201, 5, 138, 139, 138, 139, 138, 139, 6, 6, + 139, 139, 181, 6, 138, 132, 139, 139, 137, 192, + 6, 189, 192, 6, 190, 192, 6, 191, 192, 154, + 213, 159, 138, 6, 5, 139, 138, 139, 138, 139, + 138, 139, 137, 139, 138, 205, 139, 6, 192, 6, + 192, 6, 192, 213, 6, 157, 213, 139, 6, 139, + 139, 139, 137, 139, 6, 6, 6, 6, 213, 6 }; #define yyerrok (yyerrstatus = 0) @@ -6599,8 +6578,8 @@ yyreduce: yymsg(0, "Unknown surface %d", (int)d); } } + List_Delete((yyvsp[(3) - (6)].l)); } - List_Delete((yyvsp[(3) - (6)].l)); } List_Delete((yyvsp[(4) - (6)].l)); ;} @@ -6617,50 +6596,75 @@ yyreduce: case 219: #line 2627 "Gmsh.y" { - int k = List_Nbr((yyvsp[(7) - (8)].l)); - if(k != 6 && k != 8){ - yymsg(0, "Wrong definition of Transfinite Volume %d: " - "%d points instead of 6 or 8" , (int)(yyvsp[(4) - (8)].d), k); + int k = List_Nbr((yyvsp[(4) - (5)].l)); + if(k != 0 && k != 6 && k != 8){ + yymsg(0, "Wrong definition of Transfinite Volume: " + "%d points instead of 6 or 8", k); } else{ - Volume *v = FindVolume((int)(yyvsp[(4) - (8)].d)); - if(v){ - v->Method = MESH_TRANSFINITE; - List_Reset(v->TrsfPoints); - for(int i = 0; i < k; i++){ - double d; - List_Read((yyvsp[(7) - (8)].l), i, &d); - Vertex *vert = FindPoint((int)fabs(d)); - if(vert) - List_Add(v->TrsfPoints, &vert); - else - yymsg(0, "Unknown point %d", (int)fabs(d)); - } - } + if(!(yyvsp[(3) - (5)].l)){ + List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); + if(List_Nbr(tmp)){ + for(int i = 0; i < List_Nbr(tmp); i++){ + Volume *v; + List_Read(tmp, i, &v); + v->Method = MESH_TRANSFINITE; + List_Reset(v->TrsfPoints); + } + } + else{ + for(GModel::riter it = GModel::current()->firstRegion(); + it != GModel::current()->lastRegion(); it++){ + (*it)->meshAttributes.Method = MESH_TRANSFINITE; + } + } + List_Delete(tmp); + } else{ - GRegion *gr = GModel::current()->getRegionByTag((int)(yyvsp[(4) - (8)].d)); - if(gr){ - gr->meshAttributes.Method = MESH_TRANSFINITE; - for(int i = 0; i < k; i++){ - double d; - List_Read((yyvsp[(7) - (8)].l), i, &d); - GVertex *gv = GModel::current()->getVertexByTag((int)fabs(d)); - if(gv) - gr->meshAttributes.corners.push_back(gv); + for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){ + double d; + List_Read((yyvsp[(3) - (5)].l), i, &d); + Volume *v = FindVolume((int)d); + if(v){ + v->Method = MESH_TRANSFINITE; + List_Reset(v->TrsfPoints); + for(int i = 0; i < k; i++){ + double p; + List_Read((yyvsp[(4) - (5)].l), i, &p); + Vertex *vert = FindPoint((int)fabs(p)); + if(vert) + List_Add(v->TrsfPoints, &vert); + else + yymsg(0, "Unknown point %d", (int)fabs(p)); + } + } + else{ + GRegion *gr = GModel::current()->getRegionByTag((int)d); + if(gr){ + gr->meshAttributes.Method = MESH_TRANSFINITE; + for(int i = 0; i < k; i++){ + double p; + List_Read((yyvsp[(4) - (5)].l), i, &p); + GVertex *gv = GModel::current()->getVertexByTag((int)fabs(p)); + if(gv) + gr->meshAttributes.corners.push_back(gv); + else + yymsg(0, "Unknown point %d", (int)fabs(p)); + } + } else - yymsg(0, "Unknown point %d", (int)fabs(d)); + yymsg(0, "Unknown volume %d", (int)d); } } - else - yymsg(0, "Unknown volume %d", (int)(yyvsp[(4) - (8)].d)); + List_Delete((yyvsp[(3) - (5)].l)); } } - List_Delete((yyvsp[(7) - (8)].l)); + List_Delete((yyvsp[(4) - (5)].l)); ;} break; case 220: -#line 2669 "Gmsh.y" +#line 2694 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -6706,7 +6710,7 @@ yyreduce: break; case 221: -#line 2712 "Gmsh.y" +#line 2737 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -6729,7 +6733,7 @@ yyreduce: break; case 222: -#line 2738 "Gmsh.y" +#line 2763 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -6755,7 +6759,7 @@ yyreduce: break; case 223: -#line 2761 "Gmsh.y" +#line 2786 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -6781,26 +6785,26 @@ yyreduce: break; case 224: -#line 2784 "Gmsh.y" +#line 2809 "Gmsh.y" { ;} break; case 225: -#line 2787 "Gmsh.y" +#line 2812 "Gmsh.y" { ;} break; case 226: -#line 2796 "Gmsh.y" +#line 2821 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; case 227: -#line 2800 "Gmsh.y" +#line 2825 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -6813,47 +6817,47 @@ yyreduce: break; case 228: -#line 2815 "Gmsh.y" +#line 2840 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 229: -#line 2816 "Gmsh.y" +#line 2841 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; case 230: -#line 2817 "Gmsh.y" +#line 2842 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; case 231: -#line 2818 "Gmsh.y" +#line 2843 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; case 232: -#line 2819 "Gmsh.y" +#line 2844 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; case 233: -#line 2820 "Gmsh.y" +#line 2845 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; case 234: -#line 2821 "Gmsh.y" +#line 2846 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; case 235: -#line 2822 "Gmsh.y" +#line 2847 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; case 236: -#line 2824 "Gmsh.y" +#line 2849 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -6863,307 +6867,307 @@ yyreduce: break; case 237: -#line 2830 "Gmsh.y" +#line 2855 "Gmsh.y" { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 238: -#line 2831 "Gmsh.y" +#line 2856 "Gmsh.y" { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 239: -#line 2832 "Gmsh.y" +#line 2857 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 240: -#line 2833 "Gmsh.y" +#line 2858 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 241: -#line 2834 "Gmsh.y" +#line 2859 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 242: -#line 2835 "Gmsh.y" +#line 2860 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 243: -#line 2836 "Gmsh.y" +#line 2861 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 244: -#line 2837 "Gmsh.y" +#line 2862 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 245: -#line 2838 "Gmsh.y" +#line 2863 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 246: -#line 2839 "Gmsh.y" +#line 2864 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 247: -#line 2840 "Gmsh.y" +#line 2865 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 248: -#line 2841 "Gmsh.y" +#line 2866 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 249: -#line 2842 "Gmsh.y" +#line 2867 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 250: -#line 2843 "Gmsh.y" +#line 2868 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 251: -#line 2844 "Gmsh.y" +#line 2869 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 252: -#line 2845 "Gmsh.y" +#line 2870 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 253: -#line 2846 "Gmsh.y" +#line 2871 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 254: -#line 2847 "Gmsh.y" +#line 2872 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 255: -#line 2848 "Gmsh.y" +#line 2873 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 256: -#line 2849 "Gmsh.y" +#line 2874 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 257: -#line 2850 "Gmsh.y" +#line 2875 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 258: -#line 2851 "Gmsh.y" +#line 2876 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 259: -#line 2852 "Gmsh.y" +#line 2877 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 260: -#line 2853 "Gmsh.y" +#line 2878 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 261: -#line 2854 "Gmsh.y" +#line 2879 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 262: -#line 2855 "Gmsh.y" +#line 2880 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 263: -#line 2856 "Gmsh.y" +#line 2881 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 264: -#line 2857 "Gmsh.y" +#line 2882 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 265: -#line 2858 "Gmsh.y" +#line 2883 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 266: -#line 2859 "Gmsh.y" +#line 2884 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 267: -#line 2860 "Gmsh.y" +#line 2885 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 268: -#line 2861 "Gmsh.y" +#line 2886 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 269: -#line 2863 "Gmsh.y" +#line 2888 "Gmsh.y" { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 270: -#line 2864 "Gmsh.y" +#line 2889 "Gmsh.y" { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 271: -#line 2865 "Gmsh.y" +#line 2890 "Gmsh.y" { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 272: -#line 2866 "Gmsh.y" +#line 2891 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 273: -#line 2867 "Gmsh.y" +#line 2892 "Gmsh.y" { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 274: -#line 2868 "Gmsh.y" +#line 2893 "Gmsh.y" { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 275: -#line 2869 "Gmsh.y" +#line 2894 "Gmsh.y" { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 276: -#line 2870 "Gmsh.y" +#line 2895 "Gmsh.y" { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 277: -#line 2871 "Gmsh.y" +#line 2896 "Gmsh.y" { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 278: -#line 2872 "Gmsh.y" +#line 2897 "Gmsh.y" { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 279: -#line 2873 "Gmsh.y" +#line 2898 "Gmsh.y" { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 280: -#line 2874 "Gmsh.y" +#line 2899 "Gmsh.y" { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 281: -#line 2875 "Gmsh.y" +#line 2900 "Gmsh.y" { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 282: -#line 2876 "Gmsh.y" +#line 2901 "Gmsh.y" { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 283: -#line 2877 "Gmsh.y" +#line 2902 "Gmsh.y" { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 284: -#line 2878 "Gmsh.y" +#line 2903 "Gmsh.y" { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 285: -#line 2879 "Gmsh.y" +#line 2904 "Gmsh.y" { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 286: -#line 2880 "Gmsh.y" +#line 2905 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 287: -#line 2881 "Gmsh.y" +#line 2906 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 288: -#line 2882 "Gmsh.y" +#line 2907 "Gmsh.y" { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 289: -#line 2883 "Gmsh.y" +#line 2908 "Gmsh.y" { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 290: -#line 2892 "Gmsh.y" +#line 2917 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 291: -#line 2893 "Gmsh.y" +#line 2918 "Gmsh.y" { (yyval.d) = 3.141592653589793; ;} break; case 292: -#line 2894 "Gmsh.y" +#line 2919 "Gmsh.y" { (yyval.d) = Msg::GetCommRank(); ;} break; case 293: -#line 2895 "Gmsh.y" +#line 2920 "Gmsh.y" { (yyval.d) = Msg::GetCommSize(); ;} break; case 294: -#line 2896 "Gmsh.y" +#line 2921 "Gmsh.y" { (yyval.d) = Get_GmshMajorVersion(); ;} break; case 295: -#line 2897 "Gmsh.y" +#line 2922 "Gmsh.y" { (yyval.d) = Get_GmshMinorVersion(); ;} break; case 296: -#line 2898 "Gmsh.y" +#line 2923 "Gmsh.y" { (yyval.d) = Get_GmshPatchVersion(); ;} break; case 297: -#line 2903 "Gmsh.y" +#line 2928 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7176,7 +7180,7 @@ yyreduce: break; case 298: -#line 2916 "Gmsh.y" +#line 2941 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -7191,7 +7195,7 @@ yyreduce: break; case 299: -#line 2928 "Gmsh.y" +#line 2953 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -7209,7 +7213,7 @@ yyreduce: break; case 300: -#line 2943 "Gmsh.y" +#line 2968 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -7222,7 +7226,7 @@ yyreduce: break; case 301: -#line 2953 "Gmsh.y" +#line 2978 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -7235,7 +7239,7 @@ yyreduce: break; case 302: -#line 2963 "Gmsh.y" +#line 2988 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -7253,7 +7257,7 @@ yyreduce: break; case 303: -#line 2981 "Gmsh.y" +#line 3006 "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)); @@ -7261,7 +7265,7 @@ yyreduce: break; case 304: -#line 2986 "Gmsh.y" +#line 3011 "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)); @@ -7269,7 +7273,7 @@ yyreduce: break; case 305: -#line 2991 "Gmsh.y" +#line 3016 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -7282,7 +7286,7 @@ yyreduce: break; case 306: -#line 3001 "Gmsh.y" +#line 3026 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -7295,7 +7299,7 @@ yyreduce: break; case 307: -#line 3011 "Gmsh.y" +#line 3036 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); @@ -7303,70 +7307,70 @@ yyreduce: break; case 308: -#line 3019 "Gmsh.y" +#line 3044 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; case 309: -#line 3023 "Gmsh.y" +#line 3048 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; case 310: -#line 3027 "Gmsh.y" +#line 3052 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; case 311: -#line 3031 "Gmsh.y" +#line 3056 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; case 312: -#line 3035 "Gmsh.y" +#line 3060 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; case 313: -#line 3042 "Gmsh.y" +#line 3067 "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 314: -#line 3046 "Gmsh.y" +#line 3071 "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 315: -#line 3050 "Gmsh.y" +#line 3075 "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 316: -#line 3054 "Gmsh.y" +#line 3079 "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 317: -#line 3061 "Gmsh.y" +#line 3086 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); @@ -7374,14 +7378,14 @@ yyreduce: break; case 318: -#line 3066 "Gmsh.y" +#line 3091 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; case 319: -#line 3073 "Gmsh.y" +#line 3098 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -7389,14 +7393,14 @@ yyreduce: break; case 320: -#line 3078 "Gmsh.y" +#line 3103 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 321: -#line 3082 "Gmsh.y" +#line 3107 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); @@ -7404,14 +7408,14 @@ yyreduce: break; case 322: -#line 3087 "Gmsh.y" +#line 3112 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 323: -#line 3091 "Gmsh.y" +#line 3116 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7422,7 +7426,7 @@ yyreduce: break; case 324: -#line 3099 "Gmsh.y" +#line 3124 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7433,14 +7437,14 @@ yyreduce: break; case 325: -#line 3110 "Gmsh.y" +#line 3135 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 326: -#line 3114 "Gmsh.y" +#line 3139 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -7452,7 +7456,7 @@ yyreduce: break; case 327: -#line 3126 "Gmsh.y" +#line 3151 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7463,7 +7467,7 @@ yyreduce: break; case 328: -#line 3134 "Gmsh.y" +#line 3159 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7474,7 +7478,7 @@ yyreduce: break; case 329: -#line 3142 "Gmsh.y" +#line 3167 "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)); @@ -7484,7 +7488,7 @@ yyreduce: break; case 330: -#line 3149 "Gmsh.y" +#line 3174 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!(yyvsp[(5) - (5)].d) || ((yyvsp[(1) - (5)].d) < (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) < 0) || ((yyvsp[(1) - (5)].d) > (yyvsp[(3) - (5)].d) && (yyvsp[(5) - (5)].d) > 0)){ @@ -7498,7 +7502,7 @@ yyreduce: break; case 331: -#line 3160 "Gmsh.y" +#line 3185 "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 @@ -7521,7 +7525,7 @@ yyreduce: break; case 332: -#line 3180 "Gmsh.y" +#line 3205 "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++){ @@ -7534,7 +7538,7 @@ yyreduce: break; case 333: -#line 3190 "Gmsh.y" +#line 3215 "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++){ @@ -7547,7 +7551,7 @@ yyreduce: break; case 334: -#line 3200 "Gmsh.y" +#line 3225 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -7560,7 +7564,7 @@ yyreduce: break; case 335: -#line 3210 "Gmsh.y" +#line 3235 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -7580,7 +7584,7 @@ yyreduce: break; case 336: -#line 3230 "Gmsh.y" +#line 3255 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); @@ -7588,21 +7592,21 @@ yyreduce: break; case 337: -#line 3235 "Gmsh.y" +#line 3260 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; case 338: -#line 3239 "Gmsh.y" +#line 3264 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; case 339: -#line 3243 "Gmsh.y" +#line 3268 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -7614,21 +7618,21 @@ yyreduce: break; case 340: -#line 3255 "Gmsh.y" +#line 3280 "Gmsh.y" { (yyval.u) = CTX.PACK_COLOR((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; case 341: -#line 3259 "Gmsh.y" +#line 3284 "Gmsh.y" { (yyval.u) = CTX.PACK_COLOR((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; case 342: -#line 3271 "Gmsh.y" +#line 3296 "Gmsh.y" { int flag; (yyval.u) = Get_ColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -7638,7 +7642,7 @@ yyreduce: break; case 343: -#line 3278 "Gmsh.y" +#line 3303 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -7648,14 +7652,14 @@ yyreduce: break; case 344: -#line 3288 "Gmsh.y" +#line 3313 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; case 345: -#line 3292 "Gmsh.y" +#line 3317 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = Get_ColorTable((int)(yyvsp[(3) - (6)].d)); @@ -7670,7 +7674,7 @@ yyreduce: break; case 346: -#line 3307 "Gmsh.y" +#line 3332 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); @@ -7678,21 +7682,21 @@ yyreduce: break; case 347: -#line 3312 "Gmsh.y" +#line 3337 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; case 348: -#line 3319 "Gmsh.y" +#line 3344 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 349: -#line 3323 "Gmsh.y" +#line 3348 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7708,7 +7712,7 @@ yyreduce: break; case 350: -#line 3336 "Gmsh.y" +#line 3361 "Gmsh.y" { const char *val = ""; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), val); @@ -7719,7 +7723,7 @@ yyreduce: break; case 351: -#line 3344 "Gmsh.y" +#line 3369 "Gmsh.y" { const char *val = ""; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), val); @@ -7730,14 +7734,14 @@ yyreduce: break; case 352: -#line 3355 "Gmsh.y" +#line 3380 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; case 353: -#line 3359 "Gmsh.y" +#line 3384 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -7748,7 +7752,7 @@ yyreduce: break; case 354: -#line 3367 "Gmsh.y" +#line 3392 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (6)].c)) + strlen((yyvsp[(5) - (6)].c)) + 1) * sizeof(char)); strcpy((yyval.c), (yyvsp[(3) - (6)].c)); @@ -7759,7 +7763,7 @@ yyreduce: break; case 355: -#line 3375 "Gmsh.y" +#line 3400 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -7776,7 +7780,7 @@ yyreduce: break; case 356: -#line 3389 "Gmsh.y" +#line 3414 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -7793,14 +7797,14 @@ yyreduce: break; case 357: -#line 3403 "Gmsh.y" +#line 3428 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; case 358: -#line 3407 "Gmsh.y" +#line 3432 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -7823,7 +7827,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 7827 "Gmsh.tab.cpp" +#line 7831 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -8037,7 +8041,7 @@ yyreturn: } -#line 3427 "Gmsh.y" +#line 3452 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 2ab06858b9b72cfe69e72ade45f78ee9ba168a09..23f7868d95b2d8ef59ada6170adc489625a4e0b1 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -2613,8 +2613,8 @@ Transfinite : yymsg(0, "Unknown surface %d", (int)d); } } + List_Delete($3); } - List_Delete($3); } List_Delete($4); } @@ -2623,47 +2623,72 @@ Transfinite : yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete($7); } - | tTransfinite tVolume '{' FExpr '}' tAFFECT ListOfDouble tEND + | tTransfinite tVolume ListOfDoubleOrAll TransfiniteCorners tEND { - int k = List_Nbr($7); - if(k != 6 && k != 8){ - yymsg(0, "Wrong definition of Transfinite Volume %d: " - "%d points instead of 6 or 8" , (int)$4, k); + int k = List_Nbr($4); + if(k != 0 && k != 6 && k != 8){ + yymsg(0, "Wrong definition of Transfinite Volume: " + "%d points instead of 6 or 8", k); } else{ - Volume *v = FindVolume((int)$4); - if(v){ - v->Method = MESH_TRANSFINITE; - List_Reset(v->TrsfPoints); - for(int i = 0; i < k; i++){ - double d; - List_Read($7, i, &d); - Vertex *vert = FindPoint((int)fabs(d)); - if(vert) - List_Add(v->TrsfPoints, &vert); - else - yymsg(0, "Unknown point %d", (int)fabs(d)); - } - } + if(!$3){ + List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes); + if(List_Nbr(tmp)){ + for(int i = 0; i < List_Nbr(tmp); i++){ + Volume *v; + List_Read(tmp, i, &v); + v->Method = MESH_TRANSFINITE; + List_Reset(v->TrsfPoints); + } + } + else{ + for(GModel::riter it = GModel::current()->firstRegion(); + it != GModel::current()->lastRegion(); it++){ + (*it)->meshAttributes.Method = MESH_TRANSFINITE; + } + } + List_Delete(tmp); + } else{ - GRegion *gr = GModel::current()->getRegionByTag((int)$4); - if(gr){ - gr->meshAttributes.Method = MESH_TRANSFINITE; - for(int i = 0; i < k; i++){ - double d; - List_Read($7, i, &d); - GVertex *gv = GModel::current()->getVertexByTag((int)fabs(d)); - if(gv) - gr->meshAttributes.corners.push_back(gv); + for(int i = 0; i < List_Nbr($3); i++){ + double d; + List_Read($3, i, &d); + Volume *v = FindVolume((int)d); + if(v){ + v->Method = MESH_TRANSFINITE; + List_Reset(v->TrsfPoints); + for(int i = 0; i < k; i++){ + double p; + List_Read($4, i, &p); + Vertex *vert = FindPoint((int)fabs(p)); + if(vert) + List_Add(v->TrsfPoints, &vert); + else + yymsg(0, "Unknown point %d", (int)fabs(p)); + } + } + else{ + GRegion *gr = GModel::current()->getRegionByTag((int)d); + if(gr){ + gr->meshAttributes.Method = MESH_TRANSFINITE; + for(int i = 0; i < k; i++){ + double p; + List_Read($4, i, &p); + GVertex *gv = GModel::current()->getVertexByTag((int)fabs(p)); + if(gv) + gr->meshAttributes.corners.push_back(gv); + else + yymsg(0, "Unknown point %d", (int)fabs(p)); + } + } else - yymsg(0, "Unknown point %d", (int)fabs(d)); + yymsg(0, "Unknown volume %d", (int)d); } } - else - yymsg(0, "Unknown volume %d", (int)$4); + List_Delete($3); } } - List_Delete($7); + List_Delete($4); } | tRecombine tSurface ListOfDoubleOrAll RecombineAngle tEND { diff --git a/demos/transfinite.geo b/demos/transfinite.geo index 288ae53cee7e24671bc90515e218d3038ca2793f..c08bd2070565a018ad44bd49c75603746d3929f6 100644 --- a/demos/transfinite.geo +++ b/demos/transfinite.geo @@ -1,13 +1,4 @@ -/********************************************************************* - * - * Gmsh tutorial 6 - * - * Transfinite meshes - * - *********************************************************************/ - -// We start by defining a more complex geometry, using the same -// commands as in the previous examples: +// Here's an example using Transfinite meshes r_int = 0.05 ; r_ext = 0.051 ; @@ -132,9 +123,6 @@ Volume(143) = {142}; // inf b Surface Loop(144) = {89,-119,71,103,115}; Volume(145) = {144}; // inf h -// Once the geometry is defined, we then add transfinite mesh commands -// in order to explicitly define a structured mesh. - // 1. Transfinite line commands specify the number of points on the // curves and their distribution (`Progression 2' means that each line // element in the series will be twice as long as the preceding one): @@ -147,111 +135,13 @@ Transfinite Line{32,27,49,45,43} = nbpt_shell ; Transfinite Line{33,28,46,50,52} = nbpt_far Using Progression 1.2 ; Transfinite Line{34,29,51,47,53} = nbpt_inf Using Progression 1.05; -// 2. Transfinite surfaces are defined by an ordered list of the -// points on their boundary (the ordering of these points defines the -// ordering of the mesh elements). Note that a transfinite surface can -// only have 3 or 4 sides: - -Transfinite Surface{55} = {1,14,16,18}; -Transfinite Surface{57} = {14,2,19,16}; -Transfinite Surface{59} = {2,3,21,19}; -Transfinite Surface{61} = {3,4,23,21}; -Transfinite Surface{63} = {4,5,25,23}; -Transfinite Surface{73} = {1,15,17,18}; -Transfinite Surface{75} = {15,10,20,17}; -Transfinite Surface{77} = {10,11,22,20}; -Transfinite Surface{79} = {11,12,24,22}; -Transfinite Surface{81} = {12,13,26,24}; -Transfinite Surface{65} = {18,16,19,6}; -Transfinite Surface{67} = {6,19,21,7}; -Transfinite Surface{69} = {7,21,23,8}; -Transfinite Surface{71} = {8,23,25,9}; -Transfinite Surface{83} = {17,18,6,20}; -Transfinite Surface{85} = {20,6,7,22}; -Transfinite Surface{87} = {22,7,8,24}; -Transfinite Surface{89} = {24,8,9,26}; -Transfinite Surface{91} = {1,14,15}; -Transfinite Surface{95} = {15,14,16,17}; -Transfinite Surface{93} = {18,16,17}; -Transfinite Surface{121} = {15,14,2,10}; -Transfinite Surface{97} = {17,16,19,20}; -Transfinite Surface{123} = {10,2,3,11}; -Transfinite Surface{99} = {20,19,21,22}; -Transfinite Surface{107} = {10,2,19,20}; -Transfinite Surface{105} = {6,20,19}; -Transfinite Surface{109} = {7,22,21}; -Transfinite Surface{111} = {11,3,21,22}; -Transfinite Surface{101} = {22,21,23,24}; -Transfinite Surface{125} = {11,3,4,12}; -Transfinite Surface{115} = {8,24,23}; -Transfinite Surface{113} = {24,12,4,23}; -Transfinite Surface{127} = {12,13,5,4}; -Transfinite Surface{103} = {24,23,25,26}; -Transfinite Surface{119} = {9,26,25}; -Transfinite Surface{117} = {13,5,25,26}; - -// 3. Transfinite volumes are also defined by an ordered list of the -// points on their boundary (the ordering defines the ordering of the -// mesh elements). A transfinite volume can only have 6 or 8 faces: - -Transfinite Volume{129} = {1,14,15,18,16,17}; -Transfinite Volume{131} = {17,16,14,15,20,19,2,10}; -Transfinite Volume{133} = {18,17,16,6,20,19}; -Transfinite Volume{135} = {10,2,19,20,11,3,21,22}; -Transfinite Volume{137} = {6,20,19,7,22,21}; -Transfinite Volume{139} = {11,3,4,12,22,21,23,24}; -Transfinite Volume{141} = {7,22,21,8,24,23}; -Transfinite Volume{143} = {12,4,5,13,24,23,25,26}; -Transfinite Volume{145} = {8,24,23,9,26,25}; - -// As with Extruded meshes, the `Recombine' command tells Gmsh to -// recombine the simplices into quadrangles, prisms or hexahedra when -// possible: - -Recombine Surface {55:127}; - -// We finish by defing some physical entities: - -VolInt = 1000 ; -SurfIntPhi0 = 1001 ; SurfIntPhi1 = 1002 ; -SurfIntZ0 = 1003 ; - -VolShell = 2000 ; -SurfShellInt = 2001 ; SurfShellExt = 2002 ; -SurfShellPhi0 = 2003 ; SurfShellPhi1 = 2004 ; -SurfShellZ0 = 2005 ; -LineShellIntPhi0 = 2006 ; -LineShellIntPhi1 = 2007 ; LineShellIntZ0 = 2008 ; -PointShellInt = 2009 ; - -VolExt = 3000 ; -VolInf = 3001 ; -SurfInf = 3002 ; -SurfExtInfPhi0 = 3003 ; SurfExtInfPhi1 = 3004 ; -SurfExtInfZ0 = 3005 ; -SurfInfRight = 3006 ; -SurfInfTop = 3007 ; - -Physical Volume (VolInt) = {129,131,133} ; -Physical Surface (SurfIntPhi0) = {55,57,65} ; -Physical Surface (SurfIntPhi1) = {73,75,83} ; -Physical Surface (SurfIntZ0) = {91,121} ; - -Physical Volume (VolShell) = {135,137} ; -Physical Surface (SurfShellInt) = {105,107} ; -Physical Surface (SurfShellExt) = {109,111} ; -Physical Surface (SurfShellPhi0) = {59,67} ; -Physical Surface (SurfShellPhi1) = {77,85} ; -Physical Surface (SurfShellZ0) = {123} ; -Physical Line (LineShellIntPhi0) = {1,2} ; -Physical Line (LineShellIntPhi1) = {9,10} ; -Physical Line (LineShellIntZ0) = 21 ; -//Physical Point (PointShellInt) = 6 ; +// 2. Transfinite surfaces are normally defined by the ordered list of +// their 3 or 4 transfinite interpolation corners, but when the +// surfaces have only 3 or 4 sides they can be defined automatically: +Transfinite Surface "*"; +Recombine Surface "*"; -Physical Volume (VolExt) = {139,141} ; -Physical Volume (VolInf) = {143,145} ; -Physical Surface (SurfExtInfPhi0) = {61,63,69,71} ; -Physical Surface (SurfExtInfPhi1) = {79,87,81,89} ; -Physical Surface (SurfExtInfZ0) = {125,127} ; -Physical Surface (SurfInfRight) = {117} ; -Physical Surface (SurfInfTop) = {119} ; +// 3. Transfinite volumes are also normally defined by an ordered list +// of the transfinite interpolation corners, but when they have only 5 +// or 6 sides they can be defined automatically: +Transfinite Volume "*"; diff --git a/doc/VERSIONS.txt b/doc/VERSIONS.txt index cf62743df4e4ef2c8d07c10aa1384f53221e673e..e4d2bbf7ad73e4b7abfb2d8821c0f5d64ab1af3b 100644 --- a/doc/VERSIONS.txt +++ b/doc/VERSIONS.txt @@ -1,10 +1,11 @@ -$Id: VERSIONS.txt,v 1.26 2008-12-28 11:40:26 geuzaine Exp $ +$Id: VERSIONS.txt,v 1.27 2008-12-28 15:21:33 geuzaine Exp $ 2.3.0 (?): restored full-quad recombine algorithm; fixed clipping planes when more than 32 views are present ({Geometry,Mesh,View}.Clip replaces General.Clip); modified arrow size (View.ArrowSize{Min,Max} replaces View.ArrowSize) and Transform options; improved visibility -browser; major graphics and GUI code refactoring; many small +browser; major graphics and GUI code refactoring; improved automatic +transfinite corner selection (now also for volumes); many small improvements and small bug fixes. 2.2.6 (Nov 21, 2008): better transfinite smoothing and automatic diff --git a/doc/texinfo/gmsh.texi b/doc/texinfo/gmsh.texi index 4a51d96704d3f1c92413d0dc2bf850170d03ac32..b42f8ad7ef4dc0ee94e69b1dbd4532a77497ac07 100644 --- a/doc/texinfo/gmsh.texi +++ b/doc/texinfo/gmsh.texi @@ -2100,20 +2100,22 @@ line. (A deprecated synonym for @code{Progression} is @code{Power}.) -@item Transfinite Surface @{ @var{expression} @} | "*" < = @{ @var{expression-list} @} > < Left | Right | Alternate > ; -Selects the surface @var{expression} to be meshed with the 2D -transfinite algorithm. The @var{expression-list} should contain the +@item Transfinite Surface @{ @var{expression-list} @} | "*" < = @{ @var{expression-list} @} > < Left | Right | Alternate > ; +Selects surfaces to be meshed with the 2D transfinite algorithm. The +@var{expression-list} on the right-hand-side should contain the identification numbers of three or four points on the boundary of the -surface, defining the corners of the transfinite interpolation. If no +surface that define the corners of the transfinite interpolation. If no identfication numbers are given, the transfinite algorithm will try to find the corners automatically. The optional argument specifies the way the triangles are oriented when the mesh is not recombined. -@item Transfinite Volume @{ @var{expression} @} = @{ @var{expression-list} @}; -Selects a five- or six-face volume @var{expression} to be meshed with -the 3D transfinite algorithm. The @var{expression-list} should contain -the identification numbers of the six or eight points on the boundary of -the volume that define the corners of the transfinite interpolation. +@item Transfinite Volume @{ @var{expression-list} @} | "*" < = @{ @var{expression-list} @} > ; +Selects five- or six-face volumes to be meshed with the 3D transfinite +algorithm. The @var{expression-list} on the right-hand-side should +contain the identification numbers of the six or eight points on the +boundary of the volume that define the corners of the transfinite +interpolation. If no identfication numbers are given, the transfinite +algorithm will try to find the corners automatically. @end ftable