From dd2228bbe9549db90f76f75db0adeb8566e886b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Remacle=20=28students=29?= <jean-francois.remacle@uclouvain.be> Date: Tue, 26 May 2009 15:23:58 +0000 Subject: [PATCH] Emilie: added functions to remesh a volume --- Geo/GEdgeCompound.h | 2 +- Geo/GEntity.h | 6 +- Geo/GFace.cpp | 1 + Geo/GFace.h | 16 +- Geo/GFaceCompound.cpp | 8 + Geo/GModel.cpp | 20 +- Geo/GModelIO_Geo.cpp | 21 +- Geo/Makefile | 2 +- Geo/discreteEdge.cpp | 71 +- Geo/discreteFace.cpp | 1 + Geo/discreteRegion.cpp | 15 + Geo/discreteRegion.h | 3 +- Makefile | 2 +- Mesh/meshGFace.cpp | 2 - Mesh/meshGRegion.cpp | 29 + Parser/Gmsh.tab.cpp | 4231 +++++++++++++++++---------------- Parser/Gmsh.y | 23 +- benchmarks/2d/circle2_GEO.geo | 2 +- benchmarks/stl/sp2tmp01.geo | 1 + 19 files changed, 2325 insertions(+), 2131 deletions(-) diff --git a/Geo/GEdgeCompound.h b/Geo/GEdgeCompound.h index 3965e7b2e7..807b717528 100644 --- a/Geo/GEdgeCompound.h +++ b/Geo/GEdgeCompound.h @@ -30,7 +30,7 @@ public: Range<double> parBounds(int i) const; virtual GPoint point(double par) const; virtual SVector3 firstDer(double par) const; - virtual GEntity::GeomType geomType() const { return CompoundCurve; } + virtual GEntity::GeomType geomType() const { return CompoundCurve; } ModelType getNativeType() const { return GmshModel; } void * getNativePtr() const { return 0; } virtual double curvature(double t) const; diff --git a/Geo/GEntity.h b/Geo/GEntity.h index 59835925ec..03cac86fe1 100644 --- a/Geo/GEntity.h +++ b/Geo/GEntity.h @@ -94,7 +94,8 @@ class GEntity { DiscreteSurface, CompoundSurface, Volume, - DiscreteVolume + DiscreteVolume, + CompoundVolume }; // return a string describing the entity type @@ -134,7 +135,8 @@ class GEntity { "Discrete surface", "Compound surface", "Volume", - "Discrete volume" + "Discrete volume", + "Compound Volume" }; unsigned int type = (unsigned int)geomType(); if(type >= sizeof(name) / sizeof(name[0])) diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp index de16bb1b7e..f87072d3b0 100644 --- a/Geo/GFace.cpp +++ b/Geo/GFace.cpp @@ -16,6 +16,7 @@ #include "Numeric.h" #include "EigSolve.h" + #if defined(HAVE_GMSH_EMBEDDED) #include "GmshEmbedded.h" #else diff --git a/Geo/GFace.h b/Geo/GFace.h index 64426c17bf..4613e00f63 100644 --- a/Geo/GFace.h +++ b/Geo/GFace.h @@ -20,6 +20,7 @@ class MElement; class MTriangle; class MQuadrangle; class ExtrudeParams; +class GFaceCompound; struct mean_plane { @@ -45,8 +46,14 @@ class GFace : public GEntity std::list<int> l_dirs; GRegion *r1, *r2; mean_plane meanPlane; - std::list<GEdge*> embedded_edges; - std::list<GVertex*> embedded_vertices; + std::list<GEdge *> embedded_edges; + std::list<GVertex *> embedded_vertices; + // given a list of GEdges, the function builds a list of wires, + // i.e. closed edge loops. the first wire is the one that is the + // outer contour of the face. + void resolveWires(); + GFaceCompound *compound; // this model edge belongs to a compound + public: // this will become protected or private std::list<GEdgeLoop> edgeLoops; @@ -204,6 +211,11 @@ class GFace : public GEntity // reset the mesh attributes to default values virtual void resetMeshAttributes(); + // compound + void setCompound(GFaceCompound *gfc) { compound = gfc; } + GFaceCompound *getCompound() const { return compound; } + + struct { // do we recombine the triangles of the mesh? int recombine; diff --git a/Geo/GFaceCompound.cpp b/Geo/GFaceCompound.cpp index c162e10783..c3209ba388 100644 --- a/Geo/GFaceCompound.cpp +++ b/Geo/GFaceCompound.cpp @@ -92,8 +92,16 @@ void GFaceCompound::parametrize() const void GFaceCompound::getBoundingEdges() { + + + for (std::list<GFace*>::iterator it = _compound.begin(); it != _compound.end(); ++it){ + printf("set compound %d for face %d \n", tag(),(*it)->tag()); + (*it)->setCompound(this); + } + printf("***** In GFaceCompound: size U0=%d, v0=%d\n ", _U0.size(), _V0.size()); + //in case the bounding edges are explicitely given if (_U0.size()){ std::list<GEdge*> :: const_iterator it = _U0.begin(); diff --git a/Geo/GModel.cpp b/Geo/GModel.cpp index 09045c48fc..9b525febb8 100644 --- a/Geo/GModel.cpp +++ b/Geo/GModel.cpp @@ -960,10 +960,21 @@ void GModel::createTopologyFromMesh() } } -// printf("vertices size =%d \n", Dvertices.size()); -// printf("edges size =%d \n", Dedges.size()); -// printf("faces size =%d \n", Dfaces.size()); -// printf("regions size =%d \n", Dregions.size()); + printf("vertices size =%d \n", Dvertices.size()); + printf("edges size =%d \n", Dedges.size()); + printf("faces size =%d \n", Dfaces.size()); + printf("regions size =%d \n", Dregions.size()); + + //For each discreteRegion, create Topology + //--------------------------------------- + + for (std::vector<discreteRegion*>::iterator region = Dregions.begin(); region != Dregions.end(); region++){ + + printf("create topology for region \n", (*region)->tag()); + + (*region)->setBoundFaces(); + + } //For each discreteFace, create Topology and if needed create discreteEdges @@ -1086,7 +1097,6 @@ void GModel::createTopologyFromMesh() (*face)->setBoundEdges(myEdges); } - //For each discreteEdge, create Topology //--------------------------------------- diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp index 1ace780b7f..8f80637c0a 100644 --- a/Geo/GModelIO_Geo.cpp +++ b/Geo/GModelIO_Geo.cpp @@ -15,6 +15,7 @@ #include "gmshFace.h" #include "GFaceCompound.h" #include "GEdgeCompound.h" +#include "GRegionCompound.h" #include "gmshEdge.h" #include "gmshRegion.h" #include "Field.h" @@ -114,8 +115,9 @@ int GModel::importGEOInternals() for(int i = 0; i < List_Nbr(_geo_internals->PhysicalGroups); i++){ PhysicalGroup *p; List_Read(_geo_internals->PhysicalGroups, i, &p); - std::list<GFace*>f_compound; std::vector<GEdge*>e_compound; + std::list<GFace*>f_compound; + std::vector<GRegion*>r_compound; for(int j = 0; j < List_Nbr(p->Entities); j++){ int num; List_Read(p->Entities, j, &num); @@ -130,7 +132,10 @@ int GModel::importGEOInternals() ge = getFaceByTag(abs(num)); f_compound.push_back(getFaceByTag(abs(num))); break; - case MSH_PHYSICAL_VOLUME: ge = getRegionByTag(abs(num)); break; + case MSH_PHYSICAL_VOLUME: + ge = getRegionByTag(abs(num)); + r_compound.push_back(getRegionByTag(abs(num))); + break; } int pnum = sign(num) * p->Num; if(ge && std::find(ge->physicals.begin(), ge->physicals.end(), pnum) == @@ -172,7 +177,17 @@ int GModel::importGEOInternals() } else gf->resetMeshAttributes(); - } + } + if (p->Typ == MSH_PHYSICAL_VOLUME && p->Boundaries[0]){ + GRegion *gr = getRegionByTag(abs(p->Num)); + if (!gr){ + GRegionCompound *gr = new GRegionCompound(this, p->Num, r_compound); + add(gr); + } + else + gr->resetMeshAttributes(); + } + } Msg::Debug("Gmsh model imported:"); diff --git a/Geo/Makefile b/Geo/Makefile index 043e10073f..dcbf8a3150 100644 --- a/Geo/Makefile +++ b/Geo/Makefile @@ -17,7 +17,7 @@ CFLAGS = ${OPTIM} ${FLAGS} ${INC} ${SYSINCLUDE} SRC = GEntity.cpp\ GVertex.cpp GEdge.cpp GFace.cpp GRegion.cpp\ - GEdgeLoop.cpp GEdgeCompound.cpp GFaceCompound.cpp\ + GEdgeLoop.cpp GEdgeCompound.cpp GFaceCompound.cpp GRegionCompound.cpp\ gmshVertex.cpp gmshEdge.cpp gmshFace.cpp gmshRegion.cpp gmshSurface.cpp\ OCCVertex.cpp OCCEdge.cpp OCCFace.cpp OCCRegion.cpp\ discreteEdge.cpp discreteFace.cpp discreteRegion.cpp\ diff --git a/Geo/discreteEdge.cpp b/Geo/discreteEdge.cpp index 21b5212dfb..d14ee32475 100644 --- a/Geo/discreteEdge.cpp +++ b/Geo/discreteEdge.cpp @@ -10,6 +10,11 @@ #include "Numeric.h" #include "MPoint.h" #include "MTriangle.h" +#include "MQuadrangle.h" +#include "MPrism.h" +#include "MTetrahedron.h" +#include "MHexahedron.h" +#include "MPyramid.h" #include <vector> #include <list> @@ -209,7 +214,7 @@ void discreteEdge::parametrize() } //Replace MVertex by MedgeVertex - //we need to recreate lines and triangles + //we need to recreate lines, triangles and tets //that contain those new MEdgeVertices std::map<MVertex*, MVertex*> old2new; @@ -244,14 +249,16 @@ void discreteEdge::parametrize() for(std::list<GFace*>::iterator iFace = l_faces.begin(); iFace != l_faces.end(); ++iFace){ std::vector<MTriangle*> newTriangles; - for (unsigned int i = 0; i < (*iFace)->triangles.size(); ++i){ - MTriangle *t = (*iFace)->triangles[i]; - MVertex *v[3]; - v[0] = t->getVertex(0); - v[1] = t->getVertex(1); - v[2] = t->getVertex(2); + std::vector<MQuadrangle*> newQuadrangles; + for (unsigned int i = 0; i < (*iFace)->getNumMeshElements(); ++i){ + MElement *e = (*iFace)->getMeshElement(i); + int N = e->getNumVertices(); + MVertex *v[N]; + for(int j = 0; j < N; j++){ + v[j] = e->getVertex(j); + } //printf("old triangle v0=%p (%d) v1=%p (%d) v2=%p (%d) \n",v[0], v[0]->getNum() , v[1],v[1]->getNum() ,v[2], v[2]->getNum()); - for (int j = 0; j < 3; j++){ + for (int j = 0; j < N; j++){ std::map<MVertex*, MVertex*>::iterator itmap = old2new.find(v[j]); MVertex *vNEW; if (itmap != old2new.end()) { @@ -260,14 +267,58 @@ void discreteEdge::parametrize() } } //printf(" new triangle v0=%p (%d) v1=%p (%d) v2=%p (%d) \n",v[0], v[0]->getNum() , v[1],v[1]->getNum() ,v[2], v[2]->getNum()); - newTriangles.push_back(new MTriangle(v[0], v[1], v[2])); + if (N == 3) newTriangles.push_back(new MTriangle(v[0], v[1], v[2])); + else if ( N == 4) newQuadrangles.push_back(new MQuadrangle(v[0], v[1], v[2], v[3])); + } - (*iFace)->triangles.clear(); (*iFace)->deleteVertexArrays(); + (*iFace)->triangles.clear(); (*iFace)->triangles = newTriangles; + (*iFace)->quadrangles.clear(); + (*iFace)->quadrangles = newQuadrangles; + } + + + //for(std::list<GRegion*>::iterator iRegion = l_regions.begin(); iRegion != l_regions.end(); ++iRegion){ + for(GModel::riter iRegion = model()->firstRegion(); iRegion != model()->lastRegion(); iRegion++){ + std::vector<MTetrahedron*> newTetrahedra; + std::vector<MHexahedron*> newHexahedra; + std::vector<MPrism*> newPrisms; + std::vector<MPyramid*> newPyramids; + for (unsigned int i = 0; i < (*iRegion)->getNumMeshElements(); ++i){ + MElement *e = (*iRegion)->getMeshElement(i); + int N = e->getNumVertices(); + MVertex *v[N]; + for(int j = 0; j < N; j++){ + v[j] = e->getVertex(j); + } + for (int j = 0; j < N; j++){ + std::map<MVertex*, MVertex*>::iterator itmap = old2new.find(v[j]); + MVertex *vNEW; + if (itmap != old2new.end()) { + vNEW = itmap->second; + v[j]=vNEW; + } + } + if (N == 4) newTetrahedra.push_back(new MTetrahedron(v[0], v[1], v[2], v[3])); + else if ( N == 5) newPyramids.push_back(new MPyramid(v[0], v[1], v[2], v[3], v[4])); + else if ( N == 6) newPrisms.push_back(new MPrism(v[0], v[1], v[2], v[3], v[4], v[5])); + else if ( N == 8) newHexahedra.push_back(new MHexahedron(v[0], v[1], v[2], v[3], v[4], v[5], v[6], v[7])); + } + (*iRegion)->deleteVertexArrays(); + (*iRegion)->tetrahedra.clear(); + (*iRegion)->tetrahedra = newTetrahedra; + (*iRegion)->pyramids.clear(); + (*iRegion)->pyramids = newPyramids; + (*iRegion)->prisms.clear(); + (*iRegion)->prisms = newPrisms; + (*iRegion)->hexahedra.clear(); + (*iRegion)->hexahedra = newHexahedra; + } + // for (int i = 0; i < mesh_vertices.size(); i++){ // double t1; // mesh_vertices[i]->getParameter(0,t1); diff --git a/Geo/discreteFace.cpp b/Geo/discreteFace.cpp index 9f2c213eb8..608d5e954b 100644 --- a/Geo/discreteFace.cpp +++ b/Geo/discreteFace.cpp @@ -84,6 +84,7 @@ GPoint discreteFace::point(double par1, double par2) const SPoint2 discreteFace::parFromPoint(const SPoint3 &p) const { + Msg::Error("Cannot compute parametric coordinates on discrete face"); return SPoint2(); } diff --git a/Geo/discreteRegion.cpp b/Geo/discreteRegion.cpp index 8e9ae71546..db7aefa3ce 100644 --- a/Geo/discreteRegion.cpp +++ b/Geo/discreteRegion.cpp @@ -5,6 +5,7 @@ #include "GmshConfig.h" #include "discreteRegion.h" +#include "MVertex.h" #if !defined(HAVE_GMSH_EMBEDDED) #include "Geo.h" @@ -17,3 +18,17 @@ discreteRegion::discreteRegion(GModel *model, int num) : GRegion(model, num) Tree_Add(model->getGEOInternals()->Volumes, &v); #endif } + +void discreteRegion::setBoundFaces() +{ + + //in case discrete region already exist + //to modify to take into account appropriate faces + for(GModel::fiter face = model()->firstFace(); face != model()->lastFace(); face++){ + l_faces.push_back(*face); + (*face)->addRegion(this); + printf("face %d \n", (*face)->tag()); + } + + +} diff --git a/Geo/discreteRegion.h b/Geo/discreteRegion.h index 814776902e..ac7a5b68cd 100644 --- a/Geo/discreteRegion.h +++ b/Geo/discreteRegion.h @@ -13,7 +13,8 @@ class discreteRegion : public GRegion { public: discreteRegion(GModel *model, int num); virtual ~discreteRegion() {} - virtual GeomType geomType() const { return DiscreteVolume; } + virtual GeomType geomType() const { return DiscreteVolume; } + void setBoundFaces(); }; #endif diff --git a/Makefile b/Makefile index 32880fc26d..8354b514ea 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,7 @@ GMSH_DATE = `date "+%Y%m%d"` GMSH_API =\ Geo/GModel.h Geo/GEntity.h Geo/GPoint.h Geo/GVertex.h Geo/GEdge.h Geo/GFace.h\ - Geo/GRegion.h Geo/GEdgeLoop.h Geo/GFaceCompound.h\ + Geo/GRegion.h Geo/GEdgeLoop.h Geo/GFaceCompound.h Geo/GRegionCompound.h\ Geo/MVertex.h Geo/MEdge.h Geo/MFace.h Geo/MElement.h\ Geo/MPoint.h Geo/MLine.h Geo/MTriangle.h Geo/MQuadrangle.h\ Geo/MTetrahedron.h Geo/MHexahedron.h Geo/MPrism.h Geo/MPyramid.h\ diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp index c182652136..e282b10024 100644 --- a/Mesh/meshGFace.cpp +++ b/Mesh/meshGFace.cpp @@ -378,7 +378,6 @@ static bool gmsh2DMeshGenerator(GFace *gf, int RECUR_ITER, std::list<GEdge*> edges = gf->edges(); // here, we will replace edges by their compounds - printf("***** In meshGFace: \n"); if (gf->geomType() == GEntity::CompoundSurface){ //printf("replace edges by compound lines \n"); std::set<GEdge*> mySet; @@ -448,7 +447,6 @@ static bool gmsh2DMeshGenerator(GFace *gf, int RECUR_ITER, double *V_ = new double[all_vertices.size()]; v_container::iterator itv = all_vertices.begin(); - printf("boundary vertices size = %d \n", all_vertices.size()); int count = 0; SBoundingBox3d bbox; diff --git a/Mesh/meshGRegion.cpp b/Mesh/meshGRegion.cpp index a4afef5178..627a8776c5 100644 --- a/Mesh/meshGRegion.cpp +++ b/Mesh/meshGRegion.cpp @@ -20,6 +20,7 @@ #include "MTetrahedron.h" #include "BDS.h" #include "Context.h" +#include "GFaceCompound.h" void getAllBoundingVertices(GRegion *gr, std::set<MVertex*> &allBoundingVertices) { @@ -492,6 +493,11 @@ void meshNormalsPointOutOfTheRegion(GRegion *gr) std::list<GFace*> faces = gr->faces(); std::list<GFace*>::iterator it = faces.begin(); + + printf("in normals faces size = %d \n", faces.size()); + for (std::list<GFace*>::iterator it = faces.begin(); it != faces.end(); it++) + printf("in normals face %d \n", (*it)->tag()); + double rrr[6]; setRand(rrr); @@ -580,6 +586,7 @@ void meshGRegion::operator() (GRegion *gr) std::list<GFace*> faces = gr->faces(); + // sanity check for(std::list<GFace*>::iterator it = faces.begin(); it != faces.end(); it++){ if((*it)->quadrangles.size()){ @@ -588,6 +595,28 @@ void meshGRegion::operator() (GRegion *gr) } } + //replace discreteFaces by their compounds + if (gr->geomType() == GEntity::CompoundVolume){ + std::set<GFace*> mySet; + std::list<GFace*>::iterator it = faces.begin(); + while(it != faces.end()){ + if ((*it)->getCompound()){ + mySet.insert((*it)->getCompound()); + printf("compound face %d found in face %d\n",(*it)->getCompound()->tag(), (*it)->tag()); + } + else + mySet.insert(*it); + ++it; + } + printf("replacing %d edges by %d in the GFaceCompound %d\n",faces.size(),mySet.size(),gr->tag()); + faces.clear(); + faces.insert(faces.begin(), mySet.begin(), mySet.end()); + gr->set(faces); + } + + + std::list<GFace*> myface = gr->faces(); + if(CTX::instance()->mesh.algo3d == ALGO_3D_DELAUNAY){ delaunay.push_back(gr); } diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 8d521ead95..6d463ff38d 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -652,16 +652,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 6340 +#define YYLAST 6398 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 142 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 78 /* YYNRULES -- Number of rules. */ -#define YYNRULES 364 +#define YYNRULES 365 /* YYNRULES -- Number of states. */ -#define YYNSTATES 1263 +#define YYNSTATES 1270 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -729,32 +729,32 @@ static const yytype_uint16 yyprhs[] = 375, 383, 393, 403, 415, 425, 435, 437, 439, 440, 446, 447, 450, 458, 459, 469, 476, 484, 492, 501, 510, 528, 536, 544, 556, 565, 566, 576, 585, 595, - 599, 604, 615, 623, 631, 640, 641, 651, 664, 673, - 682, 690, 691, 701, 707, 719, 725, 735, 740, 750, - 760, 762, 764, 765, 768, 775, 782, 789, 796, 801, - 808, 815, 819, 824, 830, 834, 838, 843, 848, 852, - 860, 868, 872, 880, 884, 887, 890, 906, 909, 912, - 919, 928, 937, 948, 950, 953, 955, 959, 964, 966, - 972, 984, 998, 999, 1007, 1008, 1022, 1023, 1039, 1040, - 1047, 1056, 1065, 1074, 1087, 1100, 1113, 1128, 1143, 1158, - 1159, 1172, 1173, 1186, 1187, 1200, 1201, 1218, 1219, 1236, - 1237, 1254, 1255, 1274, 1275, 1294, 1295, 1314, 1316, 1319, - 1325, 1333, 1343, 1346, 1356, 1357, 1361, 1362, 1364, 1365, - 1368, 1369, 1372, 1380, 1387, 1396, 1402, 1408, 1415, 1426, - 1437, 1448, 1459, 1462, 1466, 1468, 1472, 1475, 1478, 1481, - 1485, 1489, 1493, 1497, 1501, 1505, 1509, 1513, 1517, 1521, - 1525, 1529, 1533, 1537, 1543, 1548, 1553, 1558, 1563, 1568, - 1573, 1578, 1583, 1588, 1593, 1600, 1605, 1610, 1615, 1620, - 1625, 1630, 1637, 1644, 1651, 1656, 1661, 1666, 1671, 1676, - 1681, 1686, 1691, 1696, 1701, 1706, 1713, 1718, 1723, 1728, - 1733, 1738, 1743, 1750, 1757, 1764, 1769, 1771, 1773, 1775, - 1777, 1779, 1781, 1783, 1785, 1791, 1796, 1801, 1804, 1810, - 1814, 1821, 1826, 1834, 1841, 1843, 1846, 1849, 1853, 1857, - 1869, 1879, 1887, 1895, 1897, 1901, 1903, 1905, 1908, 1912, - 1917, 1923, 1925, 1927, 1930, 1934, 1938, 1944, 1949, 1951, - 1953, 1957, 1964, 1966, 1968, 1972, 1976, 1986, 1994, 1996, - 2002, 2006, 2013, 2015, 2019, 2021, 2023, 2027, 2034, 2036, - 2038, 2045, 2050, 2055, 2060 + 599, 604, 615, 623, 631, 640, 641, 651, 660, 673, + 682, 691, 699, 700, 710, 716, 728, 734, 744, 749, + 759, 769, 771, 773, 774, 777, 784, 791, 798, 805, + 810, 817, 824, 828, 833, 839, 843, 847, 852, 857, + 861, 869, 877, 881, 889, 893, 896, 899, 915, 918, + 921, 928, 937, 946, 957, 959, 962, 964, 968, 973, + 975, 981, 993, 1007, 1008, 1016, 1017, 1031, 1032, 1048, + 1049, 1056, 1065, 1074, 1083, 1096, 1109, 1122, 1137, 1152, + 1167, 1168, 1181, 1182, 1195, 1196, 1209, 1210, 1227, 1228, + 1245, 1246, 1263, 1264, 1283, 1284, 1303, 1304, 1323, 1325, + 1328, 1334, 1342, 1352, 1355, 1365, 1366, 1370, 1371, 1373, + 1374, 1377, 1378, 1381, 1389, 1396, 1405, 1411, 1417, 1424, + 1435, 1446, 1457, 1468, 1471, 1475, 1477, 1481, 1484, 1487, + 1490, 1494, 1498, 1502, 1506, 1510, 1514, 1518, 1522, 1526, + 1530, 1534, 1538, 1542, 1546, 1552, 1557, 1562, 1567, 1572, + 1577, 1582, 1587, 1592, 1597, 1602, 1609, 1614, 1619, 1624, + 1629, 1634, 1639, 1646, 1653, 1660, 1665, 1670, 1675, 1680, + 1685, 1690, 1695, 1700, 1705, 1710, 1715, 1722, 1727, 1732, + 1737, 1742, 1747, 1752, 1759, 1766, 1773, 1778, 1780, 1782, + 1784, 1786, 1788, 1790, 1792, 1794, 1800, 1805, 1810, 1813, + 1819, 1823, 1830, 1835, 1843, 1850, 1852, 1855, 1858, 1862, + 1866, 1878, 1888, 1896, 1904, 1906, 1910, 1912, 1914, 1917, + 1921, 1926, 1932, 1934, 1936, 1939, 1943, 1947, 1953, 1958, + 1960, 1962, 1966, 1973, 1975, 1977, 1981, 1985, 1995, 2003, + 2005, 2011, 2015, 2022, 2024, 2028, 2030, 2032, 2036, 2043, + 2045, 2047, 2054, 2059, 2064, 2069 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -825,148 +825,149 @@ static const yytype_int16 yyrhs[] = 211, 6, -1, 49, 132, 206, 133, 7, 211, 6, -1, 50, 70, 132, 206, 133, 7, 211, 6, -1, -1, 61, 50, 173, 132, 167, 133, 7, 211, 6, - -1, 62, 50, 132, 206, 133, 7, 211, 4, 139, - 210, 140, 6, -1, 62, 47, 132, 206, 133, 7, - 211, 6, -1, 60, 52, 132, 206, 133, 7, 211, - 6, -1, 52, 132, 206, 133, 7, 211, 6, -1, - -1, 61, 52, 174, 132, 167, 133, 7, 211, 6, - -1, 66, 208, 139, 176, 140, -1, 65, 139, 208, - 138, 208, 138, 206, 140, 139, 176, 140, -1, 67, - 208, 139, 176, 140, -1, 68, 139, 208, 138, 206, - 140, 139, 176, 140, -1, 4, 139, 176, 140, -1, - 76, 47, 139, 214, 140, 50, 139, 206, 140, -1, - 73, 47, 132, 206, 133, 139, 214, 140, 6, -1, - 177, -1, 175, -1, -1, 177, 170, -1, 177, 44, - 139, 214, 140, 6, -1, 177, 47, 139, 214, 140, - 6, -1, 177, 50, 139, 214, 140, 6, -1, 177, - 52, 139, 214, 140, 6, -1, 74, 139, 177, 140, - -1, 74, 99, 134, 206, 135, 6, -1, 74, 4, - 134, 206, 135, 6, -1, 74, 4, 6, -1, 74, - 4, 4, 6, -1, 91, 215, 139, 177, 140, -1, - 103, 5, 6, -1, 104, 5, 6, -1, 103, 139, - 177, 140, -1, 104, 139, 177, 140, -1, 4, 219, - 6, -1, 4, 4, 134, 206, 135, 218, 6, -1, - 4, 4, 4, 134, 206, 135, 6, -1, 4, 206, - 6, -1, 64, 132, 4, 133, 136, 4, 6, -1, - 85, 4, 6, -1, 98, 6, -1, 40, 6, -1, - 40, 139, 206, 138, 206, 138, 206, 138, 206, 138, - 206, 138, 206, 140, 6, -1, 41, 6, -1, 43, - 6, -1, 93, 132, 206, 8, 206, 133, -1, 93, - 132, 206, 8, 206, 8, 206, 133, -1, 93, 4, - 94, 139, 206, 8, 206, 140, -1, 93, 4, 94, - 139, 206, 8, 206, 8, 206, 140, -1, 95, -1, - 102, 4, -1, 100, -1, 101, 4, 6, -1, 96, - 132, 206, 133, -1, 97, -1, 69, 208, 139, 177, - 140, -1, 69, 139, 208, 138, 208, 138, 206, 140, - 139, 177, 140, -1, 69, 139, 208, 138, 208, 138, - 208, 138, 206, 140, 139, 177, 140, -1, -1, 69, - 208, 139, 177, 184, 197, 140, -1, -1, 69, 139, - 208, 138, 208, 138, 206, 140, 139, 177, 185, 197, - 140, -1, -1, 69, 139, 208, 138, 208, 138, 208, - 138, 206, 140, 139, 177, 186, 197, 140, -1, -1, - 69, 139, 177, 187, 197, 140, -1, 69, 44, 139, - 206, 138, 208, 140, 6, -1, 69, 47, 139, 206, - 138, 208, 140, 6, -1, 69, 50, 139, 206, 138, - 208, 140, 6, -1, 69, 44, 139, 206, 138, 208, - 138, 208, 138, 206, 140, 6, -1, 69, 47, 139, - 206, 138, 208, 138, 208, 138, 206, 140, 6, -1, - 69, 50, 139, 206, 138, 208, 138, 208, 138, 206, + -1, 62, 52, 132, 206, 133, 7, 211, 6, -1, + 62, 50, 132, 206, 133, 7, 211, 4, 139, 210, + 140, 6, -1, 62, 47, 132, 206, 133, 7, 211, + 6, -1, 60, 52, 132, 206, 133, 7, 211, 6, + -1, 52, 132, 206, 133, 7, 211, 6, -1, -1, + 61, 52, 174, 132, 167, 133, 7, 211, 6, -1, + 66, 208, 139, 176, 140, -1, 65, 139, 208, 138, + 208, 138, 206, 140, 139, 176, 140, -1, 67, 208, + 139, 176, 140, -1, 68, 139, 208, 138, 206, 140, + 139, 176, 140, -1, 4, 139, 176, 140, -1, 76, + 47, 139, 214, 140, 50, 139, 206, 140, -1, 73, + 47, 132, 206, 133, 139, 214, 140, 6, -1, 177, + -1, 175, -1, -1, 177, 170, -1, 177, 44, 139, + 214, 140, 6, -1, 177, 47, 139, 214, 140, 6, + -1, 177, 50, 139, 214, 140, 6, -1, 177, 52, + 139, 214, 140, 6, -1, 74, 139, 177, 140, -1, + 74, 99, 134, 206, 135, 6, -1, 74, 4, 134, + 206, 135, 6, -1, 74, 4, 6, -1, 74, 4, + 4, 6, -1, 91, 215, 139, 177, 140, -1, 103, + 5, 6, -1, 104, 5, 6, -1, 103, 139, 177, + 140, -1, 104, 139, 177, 140, -1, 4, 219, 6, + -1, 4, 4, 134, 206, 135, 218, 6, -1, 4, + 4, 4, 134, 206, 135, 6, -1, 4, 206, 6, + -1, 64, 132, 4, 133, 136, 4, 6, -1, 85, + 4, 6, -1, 98, 6, -1, 40, 6, -1, 40, + 139, 206, 138, 206, 138, 206, 138, 206, 138, 206, + 138, 206, 140, 6, -1, 41, 6, -1, 43, 6, + -1, 93, 132, 206, 8, 206, 133, -1, 93, 132, + 206, 8, 206, 8, 206, 133, -1, 93, 4, 94, + 139, 206, 8, 206, 140, -1, 93, 4, 94, 139, + 206, 8, 206, 8, 206, 140, -1, 95, -1, 102, + 4, -1, 100, -1, 101, 4, 6, -1, 96, 132, + 206, 133, -1, 97, -1, 69, 208, 139, 177, 140, + -1, 69, 139, 208, 138, 208, 138, 206, 140, 139, + 177, 140, -1, 69, 139, 208, 138, 208, 138, 208, + 138, 206, 140, 139, 177, 140, -1, -1, 69, 208, + 139, 177, 184, 197, 140, -1, -1, 69, 139, 208, + 138, 208, 138, 206, 140, 139, 177, 185, 197, 140, + -1, -1, 69, 139, 208, 138, 208, 138, 208, 138, + 206, 140, 139, 177, 186, 197, 140, -1, -1, 69, + 139, 177, 187, 197, 140, -1, 69, 44, 139, 206, + 138, 208, 140, 6, -1, 69, 47, 139, 206, 138, + 208, 140, 6, -1, 69, 50, 139, 206, 138, 208, 140, 6, -1, 69, 44, 139, 206, 138, 208, 138, - 208, 138, 208, 138, 206, 140, 6, -1, 69, 47, - 139, 206, 138, 208, 138, 208, 138, 208, 138, 206, - 140, 6, -1, 69, 50, 139, 206, 138, 208, 138, - 208, 138, 208, 138, 206, 140, 6, -1, -1, 69, - 44, 139, 206, 138, 208, 140, 188, 139, 197, 140, - 6, -1, -1, 69, 47, 139, 206, 138, 208, 140, - 189, 139, 197, 140, 6, -1, -1, 69, 50, 139, - 206, 138, 208, 140, 190, 139, 197, 140, 6, -1, - -1, 69, 44, 139, 206, 138, 208, 138, 208, 138, - 206, 140, 191, 139, 197, 140, 6, -1, -1, 69, - 47, 139, 206, 138, 208, 138, 208, 138, 206, 140, - 192, 139, 197, 140, 6, -1, -1, 69, 50, 139, - 206, 138, 208, 138, 208, 138, 206, 140, 193, 139, - 197, 140, 6, -1, -1, 69, 44, 139, 206, 138, - 208, 138, 208, 138, 208, 138, 206, 140, 194, 139, - 197, 140, 6, -1, -1, 69, 47, 139, 206, 138, - 208, 138, 208, 138, 208, 138, 206, 140, 195, 139, - 197, 140, 6, -1, -1, 69, 50, 139, 206, 138, - 208, 138, 208, 138, 208, 138, 206, 140, 196, 139, - 197, 140, 6, -1, 198, -1, 197, 198, -1, 77, - 139, 206, 140, 6, -1, 77, 139, 211, 138, 211, - 140, 6, -1, 77, 139, 211, 138, 211, 138, 211, - 140, 6, -1, 71, 6, -1, 78, 132, 206, 133, - 7, 211, 63, 206, 6, -1, -1, 63, 4, 206, - -1, -1, 4, -1, -1, 7, 211, -1, -1, 7, - 206, -1, 59, 47, 212, 7, 206, 199, 6, -1, - 59, 50, 212, 201, 200, 6, -1, 56, 50, 139, - 206, 140, 7, 211, 6, -1, 59, 52, 212, 201, - 6, -1, 71, 50, 212, 202, 6, -1, 72, 50, - 211, 7, 206, 6, -1, 44, 139, 214, 140, 94, + 208, 138, 206, 140, 6, -1, 69, 47, 139, 206, + 138, 208, 138, 208, 138, 206, 140, 6, -1, 69, + 50, 139, 206, 138, 208, 138, 208, 138, 206, 140, + 6, -1, 69, 44, 139, 206, 138, 208, 138, 208, + 138, 208, 138, 206, 140, 6, -1, 69, 47, 139, + 206, 138, 208, 138, 208, 138, 208, 138, 206, 140, + 6, -1, 69, 50, 139, 206, 138, 208, 138, 208, + 138, 208, 138, 206, 140, 6, -1, -1, 69, 44, + 139, 206, 138, 208, 140, 188, 139, 197, 140, 6, + -1, -1, 69, 47, 139, 206, 138, 208, 140, 189, + 139, 197, 140, 6, -1, -1, 69, 50, 139, 206, + 138, 208, 140, 190, 139, 197, 140, 6, -1, -1, + 69, 44, 139, 206, 138, 208, 138, 208, 138, 206, + 140, 191, 139, 197, 140, 6, -1, -1, 69, 47, + 139, 206, 138, 208, 138, 208, 138, 206, 140, 192, + 139, 197, 140, 6, -1, -1, 69, 50, 139, 206, + 138, 208, 138, 208, 138, 206, 140, 193, 139, 197, + 140, 6, -1, -1, 69, 44, 139, 206, 138, 208, + 138, 208, 138, 208, 138, 206, 140, 194, 139, 197, + 140, 6, -1, -1, 69, 47, 139, 206, 138, 208, + 138, 208, 138, 208, 138, 206, 140, 195, 139, 197, + 140, 6, -1, -1, 69, 50, 139, 206, 138, 208, + 138, 208, 138, 208, 138, 206, 140, 196, 139, 197, + 140, 6, -1, 198, -1, 197, 198, -1, 77, 139, + 206, 140, 6, -1, 77, 139, 211, 138, 211, 140, + 6, -1, 77, 139, 211, 138, 211, 138, 211, 140, + 6, -1, 71, 6, -1, 78, 132, 206, 133, 7, + 211, 63, 206, 6, -1, -1, 63, 4, 206, -1, + -1, 4, -1, -1, 7, 211, -1, -1, 7, 206, + -1, 59, 47, 212, 7, 206, 199, 6, -1, 59, + 50, 212, 201, 200, 6, -1, 56, 50, 139, 206, + 140, 7, 211, 6, -1, 59, 52, 212, 201, 6, + -1, 71, 50, 212, 202, 6, -1, 72, 50, 211, + 7, 206, 6, -1, 44, 139, 214, 140, 94, 50, + 139, 206, 140, 6, -1, 47, 139, 214, 140, 94, 50, 139, 206, 140, 6, -1, 47, 139, 214, 140, - 94, 50, 139, 206, 140, 6, -1, 47, 139, 214, - 140, 94, 52, 139, 206, 140, 6, -1, 50, 139, - 214, 140, 94, 52, 139, 206, 140, 6, -1, 75, - 6, -1, 75, 4, 6, -1, 207, -1, 132, 206, - 133, -1, 123, 206, -1, 122, 206, -1, 127, 206, - -1, 206, 123, 206, -1, 206, 122, 206, -1, 206, - 124, 206, -1, 206, 125, 206, -1, 206, 126, 206, - -1, 206, 131, 206, -1, 206, 118, 206, -1, 206, - 119, 206, -1, 206, 121, 206, -1, 206, 120, 206, - -1, 206, 117, 206, -1, 206, 116, 206, -1, 206, - 115, 206, -1, 206, 114, 206, -1, 206, 113, 206, - 8, 206, -1, 14, 132, 206, 133, -1, 15, 132, - 206, 133, -1, 16, 132, 206, 133, -1, 17, 132, - 206, 133, -1, 18, 132, 206, 133, -1, 19, 132, - 206, 133, -1, 20, 132, 206, 133, -1, 21, 132, - 206, 133, -1, 22, 132, 206, 133, -1, 24, 132, - 206, 133, -1, 25, 132, 206, 138, 206, 133, -1, - 26, 132, 206, 133, -1, 27, 132, 206, 133, -1, - 28, 132, 206, 133, -1, 29, 132, 206, 133, -1, - 30, 132, 206, 133, -1, 31, 132, 206, 133, -1, - 32, 132, 206, 138, 206, 133, -1, 33, 132, 206, - 138, 206, 133, -1, 34, 132, 206, 138, 206, 133, - -1, 23, 132, 206, 133, -1, 14, 134, 206, 135, - -1, 15, 134, 206, 135, -1, 16, 134, 206, 135, - -1, 17, 134, 206, 135, -1, 18, 134, 206, 135, - -1, 19, 134, 206, 135, -1, 20, 134, 206, 135, - -1, 21, 134, 206, 135, -1, 22, 134, 206, 135, - -1, 24, 134, 206, 135, -1, 25, 134, 206, 138, - 206, 135, -1, 26, 134, 206, 135, -1, 27, 134, - 206, 135, -1, 28, 134, 206, 135, -1, 29, 134, - 206, 135, -1, 30, 134, 206, 135, -1, 31, 134, - 206, 135, -1, 32, 134, 206, 138, 206, 135, -1, - 33, 134, 206, 138, 206, 135, -1, 34, 134, 206, - 138, 206, 135, -1, 23, 134, 206, 135, -1, 3, - -1, 9, -1, 10, -1, 11, -1, 106, -1, 107, - -1, 108, -1, 4, -1, 4, 141, 139, 206, 140, - -1, 4, 134, 206, 135, -1, 137, 4, 134, 135, - -1, 4, 165, -1, 4, 134, 206, 135, 165, -1, - 4, 136, 4, -1, 4, 134, 206, 135, 136, 4, - -1, 4, 136, 4, 165, -1, 4, 134, 206, 135, - 136, 4, 165, -1, 105, 132, 5, 138, 206, 133, - -1, 209, -1, 123, 208, -1, 122, 208, -1, 208, - 123, 208, -1, 208, 122, 208, -1, 139, 206, 138, - 206, 138, 206, 138, 206, 138, 206, 140, -1, 139, - 206, 138, 206, 138, 206, 138, 206, 140, -1, 139, - 206, 138, 206, 138, 206, 140, -1, 132, 206, 138, - 206, 138, 206, 133, -1, 211, -1, 210, 138, 211, - -1, 206, -1, 213, -1, 139, 140, -1, 139, 214, - 140, -1, 123, 139, 214, 140, -1, 206, 124, 139, - 214, 140, -1, 211, -1, 5, -1, 123, 213, -1, - 206, 124, 213, -1, 206, 8, 206, -1, 206, 8, - 206, 8, 206, -1, 44, 139, 206, 140, -1, 175, - -1, 183, -1, 4, 134, 135, -1, 4, 134, 139, - 214, 140, 135, -1, 206, -1, 213, -1, 214, 138, - 206, -1, 214, 138, 213, -1, 139, 206, 138, 206, - 138, 206, 138, 206, 140, -1, 139, 206, 138, 206, - 138, 206, 140, -1, 4, -1, 4, 136, 91, 136, - 4, -1, 139, 217, 140, -1, 4, 134, 206, 135, - 136, 92, -1, 215, -1, 217, 138, 215, -1, 219, - -1, 4, -1, 4, 136, 4, -1, 4, 134, 206, - 135, 136, 4, -1, 5, -1, 42, -1, 37, 132, - 218, 138, 218, 133, -1, 38, 132, 218, 133, -1, - 39, 132, 218, 133, -1, 36, 132, 218, 133, -1, - 36, 132, 218, 138, 214, 133, -1 + 94, 52, 139, 206, 140, 6, -1, 50, 139, 214, + 140, 94, 52, 139, 206, 140, 6, -1, 75, 6, + -1, 75, 4, 6, -1, 207, -1, 132, 206, 133, + -1, 123, 206, -1, 122, 206, -1, 127, 206, -1, + 206, 123, 206, -1, 206, 122, 206, -1, 206, 124, + 206, -1, 206, 125, 206, -1, 206, 126, 206, -1, + 206, 131, 206, -1, 206, 118, 206, -1, 206, 119, + 206, -1, 206, 121, 206, -1, 206, 120, 206, -1, + 206, 117, 206, -1, 206, 116, 206, -1, 206, 115, + 206, -1, 206, 114, 206, -1, 206, 113, 206, 8, + 206, -1, 14, 132, 206, 133, -1, 15, 132, 206, + 133, -1, 16, 132, 206, 133, -1, 17, 132, 206, + 133, -1, 18, 132, 206, 133, -1, 19, 132, 206, + 133, -1, 20, 132, 206, 133, -1, 21, 132, 206, + 133, -1, 22, 132, 206, 133, -1, 24, 132, 206, + 133, -1, 25, 132, 206, 138, 206, 133, -1, 26, + 132, 206, 133, -1, 27, 132, 206, 133, -1, 28, + 132, 206, 133, -1, 29, 132, 206, 133, -1, 30, + 132, 206, 133, -1, 31, 132, 206, 133, -1, 32, + 132, 206, 138, 206, 133, -1, 33, 132, 206, 138, + 206, 133, -1, 34, 132, 206, 138, 206, 133, -1, + 23, 132, 206, 133, -1, 14, 134, 206, 135, -1, + 15, 134, 206, 135, -1, 16, 134, 206, 135, -1, + 17, 134, 206, 135, -1, 18, 134, 206, 135, -1, + 19, 134, 206, 135, -1, 20, 134, 206, 135, -1, + 21, 134, 206, 135, -1, 22, 134, 206, 135, -1, + 24, 134, 206, 135, -1, 25, 134, 206, 138, 206, + 135, -1, 26, 134, 206, 135, -1, 27, 134, 206, + 135, -1, 28, 134, 206, 135, -1, 29, 134, 206, + 135, -1, 30, 134, 206, 135, -1, 31, 134, 206, + 135, -1, 32, 134, 206, 138, 206, 135, -1, 33, + 134, 206, 138, 206, 135, -1, 34, 134, 206, 138, + 206, 135, -1, 23, 134, 206, 135, -1, 3, -1, + 9, -1, 10, -1, 11, -1, 106, -1, 107, -1, + 108, -1, 4, -1, 4, 141, 139, 206, 140, -1, + 4, 134, 206, 135, -1, 137, 4, 134, 135, -1, + 4, 165, -1, 4, 134, 206, 135, 165, -1, 4, + 136, 4, -1, 4, 134, 206, 135, 136, 4, -1, + 4, 136, 4, 165, -1, 4, 134, 206, 135, 136, + 4, 165, -1, 105, 132, 5, 138, 206, 133, -1, + 209, -1, 123, 208, -1, 122, 208, -1, 208, 123, + 208, -1, 208, 122, 208, -1, 139, 206, 138, 206, + 138, 206, 138, 206, 138, 206, 140, -1, 139, 206, + 138, 206, 138, 206, 138, 206, 140, -1, 139, 206, + 138, 206, 138, 206, 140, -1, 132, 206, 138, 206, + 138, 206, 133, -1, 211, -1, 210, 138, 211, -1, + 206, -1, 213, -1, 139, 140, -1, 139, 214, 140, + -1, 123, 139, 214, 140, -1, 206, 124, 139, 214, + 140, -1, 211, -1, 5, -1, 123, 213, -1, 206, + 124, 213, -1, 206, 8, 206, -1, 206, 8, 206, + 8, 206, -1, 44, 139, 206, 140, -1, 175, -1, + 183, -1, 4, 134, 135, -1, 4, 134, 139, 214, + 140, 135, -1, 206, -1, 213, -1, 214, 138, 206, + -1, 214, 138, 213, -1, 139, 206, 138, 206, 138, + 206, 138, 206, 140, -1, 139, 206, 138, 206, 138, + 206, 140, -1, 4, -1, 4, 136, 91, 136, 4, + -1, 139, 217, 140, -1, 4, 134, 206, 135, 136, + 92, -1, 215, -1, 217, 138, 215, -1, 219, -1, + 4, -1, 4, 136, 4, -1, 4, 134, 206, 135, + 136, 4, -1, 5, -1, 42, -1, 37, 132, 218, + 138, 218, 133, -1, 38, 132, 218, 133, -1, 39, + 132, 218, 133, -1, 36, 132, 218, 133, -1, 36, + 132, 218, 138, 214, 133, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -983,32 +984,32 @@ static const yytype_uint16 yyrline[] = 885, 891, 911, 932, 958, 970, 987, 991, 1002, 1005, 1018, 1021, 1031, 1055, 1054, 1074, 1096, 1114, 1132, 1162, 1192, 1212, 1230, 1248, 1274, 1292, 1291, 1314, 1332, 1371, - 1377, 1383, 1390, 1415, 1440, 1457, 1456, 1476, 1504, 1524, - 1542, 1560, 1559, 1584, 1589, 1594, 1599, 1604, 1624, 1630, - 1641, 1642, 1647, 1650, 1654, 1677, 1700, 1723, 1751, 1760, - 1764, 1779, 1806, 1823, 1837, 1843, 1849, 1858, 1872, 1920, - 1938, 1953, 1972, 1984, 2008, 2012, 2017, 2022, 2028, 2037, - 2054, 2071, 2090, 2109, 2137, 2145, 2151, 2158, 2162, 2171, - 2179, 2187, 2196, 2195, 2208, 2207, 2220, 2219, 2232, 2231, - 2244, 2251, 2258, 2265, 2272, 2279, 2286, 2293, 2300, 2308, - 2307, 2319, 2318, 2330, 2329, 2341, 2340, 2352, 2351, 2363, - 2362, 2374, 2373, 2385, 2384, 2396, 2395, 2410, 2413, 2419, - 2428, 2448, 2471, 2475, 2499, 2502, 2518, 2521, 2534, 2537, - 2543, 2546, 2553, 2609, 2679, 2684, 2751, 2794, 2820, 2843, - 2866, 2869, 2878, 2882, 2898, 2899, 2900, 2901, 2902, 2903, - 2904, 2905, 2906, 2913, 2914, 2915, 2916, 2917, 2918, 2919, - 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, - 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, - 2940, 2941, 2942, 2943, 2944, 2946, 2947, 2948, 2949, 2950, - 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, - 2961, 2962, 2963, 2964, 2965, 2966, 2975, 2976, 2977, 2978, - 2979, 2980, 2981, 2985, 2998, 3010, 3025, 3035, 3045, 3063, - 3068, 3073, 3083, 3093, 3101, 3105, 3109, 3113, 3117, 3124, - 3128, 3132, 3136, 3143, 3148, 3155, 3160, 3164, 3169, 3173, - 3181, 3192, 3196, 3208, 3216, 3224, 3231, 3242, 3262, 3272, - 3282, 3292, 3312, 3317, 3321, 3325, 3337, 3341, 3353, 3360, - 3370, 3374, 3389, 3394, 3401, 3405, 3418, 3426, 3437, 3441, - 3449, 3457, 3471, 3485, 3489 + 1377, 1383, 1390, 1415, 1440, 1457, 1456, 1476, 1494, 1522, + 1542, 1560, 1578, 1577, 1602, 1607, 1612, 1617, 1622, 1642, + 1648, 1659, 1660, 1665, 1668, 1672, 1695, 1718, 1741, 1769, + 1778, 1782, 1797, 1824, 1841, 1855, 1861, 1867, 1876, 1890, + 1938, 1956, 1971, 1990, 2002, 2026, 2030, 2035, 2040, 2046, + 2055, 2072, 2089, 2108, 2127, 2155, 2163, 2169, 2176, 2180, + 2189, 2197, 2205, 2214, 2213, 2226, 2225, 2238, 2237, 2250, + 2249, 2262, 2269, 2276, 2283, 2290, 2297, 2304, 2311, 2318, + 2326, 2325, 2337, 2336, 2348, 2347, 2359, 2358, 2370, 2369, + 2381, 2380, 2392, 2391, 2403, 2402, 2414, 2413, 2428, 2431, + 2437, 2446, 2466, 2489, 2493, 2517, 2520, 2536, 2539, 2552, + 2555, 2561, 2564, 2571, 2627, 2697, 2702, 2769, 2812, 2838, + 2861, 2884, 2887, 2896, 2900, 2916, 2917, 2918, 2919, 2920, + 2921, 2922, 2923, 2924, 2931, 2932, 2933, 2934, 2935, 2936, + 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, + 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, + 2957, 2958, 2959, 2960, 2961, 2962, 2964, 2965, 2966, 2967, + 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, + 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2993, 2994, 2995, + 2996, 2997, 2998, 2999, 3003, 3016, 3028, 3043, 3053, 3063, + 3081, 3086, 3091, 3101, 3111, 3119, 3123, 3127, 3131, 3135, + 3142, 3146, 3150, 3154, 3161, 3166, 3173, 3178, 3182, 3187, + 3191, 3199, 3210, 3214, 3226, 3234, 3242, 3249, 3260, 3280, + 3290, 3300, 3310, 3330, 3335, 3339, 3343, 3355, 3359, 3371, + 3378, 3388, 3392, 3407, 3412, 3419, 3423, 3436, 3444, 3455, + 3459, 3467, 3475, 3489, 3503, 3507 }; #endif @@ -1096,31 +1097,31 @@ static const yytype_uint8 yyr1[] = 169, 169, 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 172, 170, 170, 170, 170, 170, 170, 170, 170, 170, 173, 170, 170, 170, 170, - 170, 174, 170, 175, 175, 175, 175, 175, 175, 175, - 176, 176, 177, 177, 177, 177, 177, 177, 178, 178, - 178, 178, 178, 179, 180, 180, 180, 180, 181, 181, - 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 183, - 183, 183, 184, 183, 185, 183, 186, 183, 187, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 188, - 183, 189, 183, 190, 183, 191, 183, 192, 183, 193, - 183, 194, 183, 195, 183, 196, 183, 197, 197, 198, - 198, 198, 198, 198, 199, 199, 200, 200, 201, 201, - 202, 202, 203, 203, 203, 203, 203, 203, 204, 204, - 204, 204, 205, 205, 206, 206, 206, 206, 206, 206, + 170, 170, 174, 170, 175, 175, 175, 175, 175, 175, + 175, 176, 176, 177, 177, 177, 177, 177, 177, 178, + 178, 178, 178, 178, 179, 180, 180, 180, 180, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, + 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, + 183, 183, 183, 184, 183, 185, 183, 186, 183, 187, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 188, 183, 189, 183, 190, 183, 191, 183, 192, 183, + 193, 183, 194, 183, 195, 183, 196, 183, 197, 197, + 198, 198, 198, 198, 198, 199, 199, 200, 200, 201, + 201, 202, 202, 203, 203, 203, 203, 203, 203, 204, + 204, 204, 204, 205, 205, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 207, 207, 207, 207, + 206, 206, 206, 206, 206, 206, 206, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 208, 208, 208, 208, 208, 209, - 209, 209, 209, 210, 210, 211, 211, 211, 211, 211, - 211, 212, 212, 213, 213, 213, 213, 213, 213, 213, - 213, 213, 214, 214, 214, 214, 215, 215, 215, 215, - 216, 216, 217, 217, 218, 218, 218, 218, 219, 219, - 219, 219, 219, 219, 219 + 207, 207, 207, 207, 207, 208, 208, 208, 208, 208, + 209, 209, 209, 209, 210, 210, 211, 211, 211, 211, + 211, 211, 212, 212, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 214, 214, 214, 214, 215, 215, 215, + 215, 216, 216, 217, 217, 218, 218, 218, 218, 219, + 219, 219, 219, 219, 219, 219 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1137,32 +1138,32 @@ static const yytype_uint8 yyr2[] = 7, 9, 9, 11, 9, 9, 1, 1, 0, 5, 0, 2, 7, 0, 9, 6, 7, 7, 8, 8, 17, 7, 7, 11, 8, 0, 9, 8, 9, 3, - 4, 10, 7, 7, 8, 0, 9, 12, 8, 8, - 7, 0, 9, 5, 11, 5, 9, 4, 9, 9, - 1, 1, 0, 2, 6, 6, 6, 6, 4, 6, - 6, 3, 4, 5, 3, 3, 4, 4, 3, 7, - 7, 3, 7, 3, 2, 2, 15, 2, 2, 6, - 8, 8, 10, 1, 2, 1, 3, 4, 1, 5, - 11, 13, 0, 7, 0, 13, 0, 15, 0, 6, - 8, 8, 8, 12, 12, 12, 14, 14, 14, 0, - 12, 0, 12, 0, 12, 0, 16, 0, 16, 0, - 16, 0, 18, 0, 18, 0, 18, 1, 2, 5, - 7, 9, 2, 9, 0, 3, 0, 1, 0, 2, - 0, 2, 7, 6, 8, 5, 5, 6, 10, 10, - 10, 10, 2, 3, 1, 3, 2, 2, 2, 3, + 4, 10, 7, 7, 8, 0, 9, 8, 12, 8, + 8, 7, 0, 9, 5, 11, 5, 9, 4, 9, + 9, 1, 1, 0, 2, 6, 6, 6, 6, 4, + 6, 6, 3, 4, 5, 3, 3, 4, 4, 3, + 7, 7, 3, 7, 3, 2, 2, 15, 2, 2, + 6, 8, 8, 10, 1, 2, 1, 3, 4, 1, + 5, 11, 13, 0, 7, 0, 13, 0, 15, 0, + 6, 8, 8, 8, 12, 12, 12, 14, 14, 14, + 0, 12, 0, 12, 0, 12, 0, 16, 0, 16, + 0, 16, 0, 18, 0, 18, 0, 18, 1, 2, + 5, 7, 9, 2, 9, 0, 3, 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, 5, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 6, 4, 4, 4, 4, 4, - 4, 6, 6, 6, 4, 4, 4, 4, 4, 4, + 3, 3, 3, 3, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, - 4, 4, 6, 6, 6, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 5, 4, 4, 2, 5, 3, - 6, 4, 7, 6, 1, 2, 2, 3, 3, 11, - 9, 7, 7, 1, 3, 1, 1, 2, 3, 4, - 5, 1, 1, 2, 3, 3, 5, 4, 1, 1, - 3, 6, 1, 1, 3, 3, 9, 7, 1, 5, - 3, 6, 1, 3, 1, 1, 3, 6, 1, 1, - 6, 4, 4, 4, 6 + 4, 4, 6, 6, 6, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, + 4, 4, 4, 6, 6, 6, 4, 1, 1, 1, + 1, 1, 1, 1, 1, 5, 4, 4, 2, 5, + 3, 6, 4, 7, 6, 1, 2, 2, 3, 3, + 11, 9, 7, 7, 1, 3, 1, 1, 2, 3, + 4, 5, 1, 1, 2, 3, 3, 5, 4, 1, + 1, 3, 6, 1, 1, 3, 3, 9, 7, 1, + 5, 3, 6, 1, 3, 1, 1, 3, 6, 1, + 1, 6, 4, 4, 4, 6 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1175,288 +1176,288 @@ static const yytype_uint16 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 163, 0, 168, 0, 0, 165, 0, 0, 0, + 0, 164, 0, 169, 0, 0, 166, 0, 0, 0, 0, 5, 7, 6, 8, 9, 10, 11, 12, 13, - 19, 18, 14, 15, 16, 17, 296, 303, 358, 54, - 297, 298, 299, 0, 0, 0, 0, 0, 0, 0, + 19, 18, 14, 15, 16, 17, 297, 304, 359, 54, + 298, 299, 300, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 360, 0, + 0, 301, 302, 303, 58, 57, 56, 55, 0, 0, + 0, 60, 59, 0, 0, 0, 0, 133, 0, 0, + 0, 235, 0, 0, 0, 0, 156, 0, 158, 159, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 359, 0, - 0, 300, 301, 302, 58, 57, 56, 55, 0, 0, - 0, 60, 59, 0, 0, 0, 0, 132, 0, 0, - 0, 234, 0, 0, 0, 0, 155, 0, 157, 158, + 0, 0, 0, 93, 105, 115, 122, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 315, 0, 0, + 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, + 133, 0, 233, 0, 0, 0, 0, 0, 0, 0, + 349, 0, 0, 0, 0, 0, 155, 0, 0, 165, + 0, 133, 0, 133, 0, 0, 0, 0, 308, 29, + 359, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 105, 115, 121, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 314, 0, 0, 0, - 0, 0, 132, 0, 0, 0, 0, 0, 0, 132, - 0, 232, 0, 0, 0, 0, 0, 0, 0, 348, - 0, 0, 0, 0, 0, 154, 0, 0, 164, 0, - 132, 0, 132, 0, 0, 0, 0, 307, 29, 358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 304, 238, 237, 239, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 132, 0, 131, 0, 66, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 149, 109, 0, 0, 0, 0, + 304, 0, 0, 339, 340, 343, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, - 237, 236, 238, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 131, 0, 130, 0, 66, 151, 0, 0, + 0, 326, 0, 327, 0, 0, 0, 0, 0, 333, + 332, 0, 219, 219, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 317, 316, 0, 0, 0, 0, + 133, 133, 0, 0, 0, 0, 0, 0, 0, 179, + 0, 133, 221, 0, 0, 0, 142, 0, 0, 0, + 234, 0, 0, 0, 154, 0, 0, 0, 0, 0, + 133, 0, 0, 0, 0, 167, 145, 0, 146, 0, + 0, 0, 310, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 148, 109, 0, 0, 0, 0, 303, - 0, 0, 338, 339, 342, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 325, 0, 326, 0, 0, 0, 0, 0, 332, 331, - 0, 218, 218, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 316, 315, 0, 0, 0, 0, 132, 132, - 0, 0, 0, 0, 0, 0, 0, 178, 0, 132, - 220, 0, 0, 0, 141, 0, 0, 0, 233, 0, - 0, 0, 153, 0, 0, 0, 0, 0, 132, 0, - 0, 0, 0, 166, 144, 0, 145, 0, 0, 0, - 309, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, + 355, 0, 0, 0, 0, 0, 0, 236, 0, 0, + 0, 0, 54, 0, 0, 0, 0, 0, 128, 0, + 0, 0, 0, 134, 61, 0, 253, 252, 251, 250, + 246, 247, 249, 248, 241, 240, 242, 243, 244, 245, + 110, 0, 0, 0, 0, 0, 0, 237, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 328, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 355, 0, 354, 0, - 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, - 54, 0, 0, 0, 0, 0, 127, 0, 0, 0, - 0, 133, 61, 0, 252, 251, 250, 249, 245, 246, - 248, 247, 240, 239, 241, 242, 243, 244, 110, 0, - 0, 0, 0, 0, 0, 236, 333, 0, 0, 0, + 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 173, 0, 0, 0, 0, 143, 0, 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 318, 317, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 0, - 0, 0, 0, 142, 0, 0, 138, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, - 146, 147, 0, 305, 311, 0, 39, 0, 0, 0, - 52, 0, 30, 31, 32, 33, 34, 254, 275, 255, - 276, 256, 277, 257, 278, 258, 279, 259, 280, 260, - 281, 261, 282, 262, 283, 274, 295, 263, 284, 0, - 0, 265, 286, 266, 287, 267, 288, 268, 289, 269, - 290, 270, 291, 0, 0, 0, 0, 0, 0, 0, - 0, 363, 0, 0, 361, 362, 79, 0, 0, 0, - 0, 0, 54, 0, 0, 0, 0, 0, 73, 0, - 0, 0, 0, 306, 0, 0, 0, 0, 0, 22, - 20, 0, 0, 0, 0, 340, 0, 0, 335, 241, - 334, 344, 345, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 328, 0, 0, 0, - 0, 0, 0, 0, 214, 219, 217, 0, 225, 0, - 0, 86, 87, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 123, 125, 0, 0, 0, 0, 0, 0, - 0, 0, 207, 0, 169, 0, 221, 226, 0, 0, + 0, 168, 0, 147, 148, 0, 306, 312, 0, 39, + 0, 0, 0, 52, 0, 30, 31, 32, 33, 34, + 255, 276, 256, 277, 257, 278, 258, 279, 259, 280, + 260, 281, 261, 282, 262, 283, 263, 284, 275, 296, + 264, 285, 0, 0, 266, 287, 267, 288, 268, 289, + 269, 290, 270, 291, 271, 292, 0, 0, 0, 0, + 0, 0, 0, 0, 364, 0, 0, 362, 363, 79, + 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, + 0, 73, 0, 0, 0, 0, 307, 0, 0, 0, + 0, 0, 22, 20, 0, 0, 0, 0, 341, 0, + 0, 336, 242, 335, 345, 346, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 329, + 0, 0, 0, 0, 0, 0, 0, 215, 220, 218, + 0, 226, 0, 0, 86, 87, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 124, 126, 0, 0, + 0, 0, 0, 0, 0, 0, 208, 0, 170, 0, + 222, 227, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, + 0, 309, 0, 305, 0, 0, 0, 0, 0, 26, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 357, + 0, 0, 0, 306, 64, 65, 0, 0, 0, 0, + 0, 67, 69, 71, 0, 0, 353, 0, 77, 0, + 0, 0, 0, 254, 21, 0, 0, 0, 0, 0, + 338, 0, 0, 90, 90, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 330, 0, 95, 0, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 143, 0, 0, 0, 0, 0, 0, 308, 0, 304, - 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 356, 0, 0, 0, 305, - 64, 65, 0, 0, 0, 0, 0, 67, 69, 71, - 0, 0, 352, 0, 77, 0, 0, 0, 0, 253, - 21, 0, 0, 0, 0, 0, 337, 0, 0, 90, - 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 329, 0, 95, 0, 0, 0, 0, 0, 0, - 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, - 179, 208, 0, 0, 227, 0, 140, 139, 0, 27, - 28, 0, 0, 0, 349, 0, 0, 0, 159, 0, - 0, 150, 310, 149, 0, 0, 0, 0, 323, 0, - 264, 285, 271, 292, 272, 293, 273, 294, 0, 364, - 360, 313, 0, 54, 0, 0, 0, 0, 62, 0, - 0, 0, 350, 0, 0, 0, 0, 23, 24, 0, - 0, 92, 0, 336, 0, 0, 0, 0, 0, 96, - 0, 0, 112, 113, 0, 0, 97, 120, 330, 0, - 0, 0, 0, 88, 0, 222, 0, 0, 0, 0, - 0, 0, 0, 152, 0, 0, 0, 0, 132, 0, - 189, 0, 191, 0, 193, 325, 0, 0, 0, 0, - 173, 0, 0, 101, 102, 0, 0, 0, 0, 80, - 0, 312, 0, 35, 0, 0, 0, 0, 0, 37, - 0, 0, 0, 0, 74, 0, 0, 75, 0, 353, - 134, 135, 136, 137, 0, 0, 341, 0, 91, 98, - 99, 104, 0, 0, 114, 0, 0, 0, 224, 107, - 0, 0, 215, 119, 0, 0, 0, 0, 118, 0, - 0, 0, 0, 322, 0, 321, 0, 0, 180, 0, - 0, 181, 0, 0, 182, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 347, 0, 161, 160, 0, - 0, 0, 40, 0, 0, 0, 324, 0, 0, 0, - 357, 63, 70, 72, 0, 78, 0, 25, 0, 0, - 0, 0, 0, 0, 0, 0, 108, 94, 106, 116, - 122, 0, 84, 85, 132, 0, 126, 0, 0, 0, - 0, 0, 0, 209, 0, 0, 132, 0, 129, 128, - 0, 0, 0, 0, 81, 82, 0, 36, 0, 0, - 0, 38, 53, 0, 351, 0, 228, 229, 230, 231, - 111, 0, 0, 0, 0, 0, 320, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 174, - 0, 0, 346, 162, 0, 0, 0, 0, 0, 76, - 0, 0, 0, 0, 124, 0, 195, 0, 0, 197, - 0, 0, 199, 0, 0, 0, 210, 0, 170, 0, - 132, 103, 83, 0, 44, 0, 50, 0, 0, 0, - 89, 117, 319, 183, 0, 0, 190, 184, 0, 0, - 192, 185, 0, 0, 194, 0, 0, 0, 176, 0, - 0, 0, 0, 0, 0, 0, 201, 0, 203, 0, - 205, 211, 213, 175, 171, 0, 41, 0, 48, 0, - 0, 0, 0, 186, 0, 0, 187, 0, 0, 188, - 0, 0, 0, 42, 0, 0, 156, 0, 0, 0, - 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, - 196, 0, 198, 0, 200, 0, 43, 45, 0, 46, - 0, 100, 0, 0, 0, 0, 0, 51, 202, 204, - 206, 47, 49 + 0, 0, 213, 0, 0, 180, 209, 0, 0, 228, + 0, 141, 140, 0, 27, 28, 0, 0, 0, 350, + 0, 0, 0, 160, 0, 0, 151, 311, 150, 0, + 0, 0, 0, 324, 0, 265, 286, 272, 293, 273, + 294, 274, 295, 0, 365, 361, 314, 0, 54, 0, + 0, 0, 0, 62, 0, 0, 0, 351, 0, 0, + 0, 0, 23, 24, 0, 0, 92, 0, 337, 0, + 0, 0, 0, 0, 96, 0, 0, 112, 113, 0, + 0, 97, 121, 331, 0, 0, 0, 0, 88, 0, + 223, 0, 0, 0, 0, 0, 0, 0, 0, 153, + 0, 0, 0, 0, 133, 0, 190, 0, 192, 0, + 194, 326, 0, 0, 0, 0, 174, 0, 0, 101, + 102, 0, 0, 0, 0, 80, 0, 313, 0, 35, + 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, + 74, 0, 0, 75, 0, 354, 135, 136, 137, 138, + 0, 0, 342, 0, 91, 98, 99, 104, 0, 0, + 114, 0, 0, 0, 225, 107, 0, 0, 216, 120, + 0, 0, 0, 0, 119, 0, 117, 0, 0, 0, + 323, 0, 322, 0, 0, 181, 0, 0, 182, 0, + 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 348, 0, 162, 161, 0, 0, 0, 40, + 0, 0, 0, 325, 0, 0, 0, 358, 63, 70, + 72, 0, 78, 0, 25, 0, 0, 0, 0, 0, + 0, 0, 0, 108, 94, 106, 116, 123, 0, 84, + 85, 133, 0, 127, 0, 0, 0, 0, 0, 0, + 210, 0, 0, 133, 0, 130, 129, 0, 0, 0, + 0, 81, 82, 0, 36, 0, 0, 0, 38, 53, + 0, 352, 0, 229, 230, 231, 232, 111, 0, 0, + 0, 0, 0, 321, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 175, 0, 0, 347, + 163, 0, 0, 0, 0, 0, 76, 0, 0, 0, + 0, 125, 0, 196, 0, 0, 198, 0, 0, 200, + 0, 0, 0, 211, 0, 171, 0, 133, 103, 83, + 0, 44, 0, 50, 0, 0, 0, 89, 118, 320, + 184, 0, 0, 191, 185, 0, 0, 193, 186, 0, + 0, 195, 0, 0, 0, 177, 0, 0, 0, 0, + 0, 0, 0, 202, 0, 204, 0, 206, 212, 214, + 176, 172, 0, 41, 0, 48, 0, 0, 0, 0, + 187, 0, 0, 188, 0, 0, 189, 0, 0, 0, + 42, 0, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 178, 0, 0, 0, 0, 0, 197, 0, 199, + 0, 201, 0, 43, 45, 0, 46, 0, 100, 0, + 0, 0, 0, 0, 51, 203, 205, 207, 47, 49 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 3, 61, 661, 62, 63, 402, 962, 968, - 582, 750, 1096, 1222, 583, 1190, 1248, 584, 1224, 585, - 586, 754, 128, 217, 64, 700, 1001, 906, 471, 344, - 345, 346, 347, 312, 283, 284, 67, 68, 69, 70, - 71, 313, 725, 1159, 1205, 546, 1019, 1022, 1025, 1174, - 1178, 1182, 1214, 1217, 1220, 721, 722, 820, 697, 524, - 550, 73, 74, 75, 330, 131, 352, 176, 867, 868, - 340, 332, 316, 201, 652, 783, 447, 448 + -1, 2, 3, 61, 664, 62, 63, 404, 968, 974, + 585, 754, 1103, 1229, 586, 1197, 1255, 587, 1231, 588, + 589, 758, 128, 218, 64, 703, 1007, 911, 473, 345, + 346, 347, 348, 313, 284, 285, 67, 68, 69, 70, + 71, 314, 729, 1166, 1212, 549, 1026, 1029, 1032, 1181, + 1185, 1189, 1221, 1224, 1227, 725, 726, 824, 700, 526, + 553, 73, 74, 75, 331, 131, 354, 177, 872, 873, + 341, 333, 317, 202, 655, 787, 449, 450 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -1043 +#define YYPACT_NINF -1051 static const yytype_int16 yypact[] = { - 2822, 50, 73, 2899, -1043, -1043, 1305, 84, 71, 52, - 20, 123, 182, -89, 79, 188, -47, 204, 213, -43, - 222, 235, 148, -38, 210, 257, 344, 407, 346, 157, - 163, 283, 308, 180, 180, 355, 555, 417, 440, 454, - 17, 70, 461, 501, 514, 522, 385, 395, 427, 13, - 31, -1043, 431, -1043, 533, 415, -1043, 569, 576, 15, - 19, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, - -1043, -1043, -1043, -1043, -1043, -1043, -1043, 21, 447, 42, - -1043, -1043, -1043, -39, 80, 147, 231, 331, 412, 420, - 432, 435, 443, 458, 464, 493, 503, 513, 530, 540, - 551, 565, 572, 577, 455, 465, 468, 469, -1043, 601, - 496, -1043, -1043, -1043, -1043, -1043, -1043, -1043, 2285, 2285, - 2285, -1043, -1043, 2285, 1914, 18, 628, 199, 2285, 635, - 697, -1043, 650, 655, 2285, 661, -1043, 2285, -1043, -1043, - 2285, 2217, 2285, 2285, 539, 2285, 2217, 2285, 2285, 547, - 2217, 2285, 2285, 1484, 548, 2285, 545, 556, 561, 1353, - 1353, 1353, 573, -1043, -1043, -1043, -1043, 588, 591, 694, - 180, 180, 180, 2285, 2285, 43, -1043, 48, 180, 589, - 604, 605, 2086, 202, 1353, 1484, 657, 9, 658, -1043, - 702, -1043, 669, 671, 696, 825, 2285, 2285, 2285, 698, - 2285, 713, 741, 2285, 2285, -1043, 2285, 831, -1043, 847, - -1043, 851, -1043, 726, 2285, 861, 729, -1043, -1043, -1043, - 863, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, - 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, - 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, - 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, - 2285, 2285, 2285, 441, 441, 441, 441, 2285, 871, 566, - 754, 754, 754, 5159, 26, 2217, 4423, 297, 753, 883, - 757, 755, -1043, 752, 2964, 936, -1043, -1043, 2285, 2285, - 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, 2285, - 2285, 2285, 2285, -1043, -1043, 1121, 36, 3669, 5180, 529, - 756, 2217, -1043, -1043, 638, -1043, 574, 5201, 5222, 2285, - 5243, 575, 5264, 5285, 2285, 578, 5306, 5327, 1615, 1157, - 2608, 886, -1043, 2285, 5348, 2285, 2285, 2285, -1043, -1043, - 889, 890, 890, 2285, 767, 768, 769, 770, 2285, 2285, - 773, 211, -1043, -1043, 3695, 3721, 180, 180, 199, 199, - 230, 2285, 2285, 2285, 2086, 2086, 2285, 2964, 328, -1043, - 896, 900, 2285, 902, -1043, 2285, 2285, 1517, -1043, 2217, - 2285, 2285, -1043, 5369, 5390, 5411, 820, 3747, -1043, 774, - 2641, 5432, 4446, -1043, -1043, 1648, -1043, 1908, 2285, 4469, - -24, 2285, 7, -1043, 5453, 4492, 5474, 4515, 5495, 4538, - 5516, 4561, 5537, 4584, 5558, 4607, 5579, 4630, 5600, 4653, - 5621, 4676, 5642, 4699, 5663, 4722, 3773, 3799, 5684, 4745, - 5705, 4768, 5726, 4791, 5747, 4814, 5768, 4837, 5789, 4860, - 3825, 3851, 3877, 3903, 3929, 3955, 585, 365, -1043, 776, - 779, 782, 1679, 778, 2285, -1043, 1484, 1484, 586, 500, - 42, 2285, 911, 915, 14, 785, -1043, -70, -31, -15, - 196, -1043, -1043, 2662, 1331, 1014, 676, 676, 175, 175, - 175, 175, -59, -59, 754, 754, 754, 754, -1043, 8, - 2217, 2285, 914, 2051, 2285, 754, -1043, 2285, 2217, 2217, - 832, 918, 920, 5810, 922, 836, 924, 929, 5831, 843, - 932, 933, 2217, -1043, 587, 1746, 2285, 5852, 938, 2999, - 5873, 5894, 2285, 1484, 939, 941, 5915, 2342, 2342, 2342, - 2342, 5936, 5957, 812, 180, 2285, 2285, -1043, -1043, 809, - 811, 2285, 3981, 4007, 4033, 3643, 339, 180, 2079, 2285, - 946, 2285, 5978, -1043, 4883, 4906, -1043, 610, 4929, 4952, - 948, 949, 950, 817, 2285, 2384, 2285, 2285, -1043, 24, - -1043, -1043, 4975, 546, -1043, 3027, -1043, 828, 829, 823, - -1043, 957, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, - -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, - -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, 2285, - 2285, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, - -1043, -1043, -1043, 2285, 2285, 2285, 2285, 2285, 2285, 2285, - 962, -1043, 2217, 441, -1043, -1043, -1043, 2285, 4998, 961, - 963, 833, -1043, 28, 2285, 964, 965, 1710, -1043, 966, - 838, 13, 969, -1043, 2217, 2217, 2217, 2217, 2285, -1043, - 857, 441, 381, 4059, 180, -1043, 2217, 3055, 2694, 754, - -1043, 638, -1043, 927, 1484, 1484, 975, 1484, 715, 1484, - 1484, 976, 934, 1484, 1484, 633, -1043, 2217, 2029, 977, - 846, 980, 982, 983, 2149, -1043, -1043, 986, -1043, 988, - 860, 6209, -1043, 864, 866, 867, 989, 994, 998, 330, - 4085, 4111, -1043, -1043, 3083, 180, 180, 180, 1000, 868, - 878, -41, -1043, 338, -1043, 339, 6209, -1043, 2392, 872, - 1006, 1007, 967, 1010, 1012, 1484, 1484, 1484, 1015, 4137, - -1043, 2727, 616, 1016, 1017, 1020, 1018, -1043, 1021, -1043, - 891, 2285, 2285, 1484, 892, -1043, 5999, 5021, 6020, 5044, - 6041, 5067, 6062, 5090, 5113, -1043, 382, 899, 6083, 141, - -1043, -1043, 68, 504, 893, 1027, 2449, -1043, -1043, -1043, - 13, 2285, -1043, 634, -1043, 640, 641, 644, 645, 6209, - -1043, 1029, 45, 2285, 10, 648, -1043, 2285, 897, 981, - 981, 1484, 1033, 901, 904, 1035, 1039, 1484, 907, 1041, - 1057, -1043, 666, -1043, 1059, 2285, 1484, 1484, 1484, 1061, - 1060, -1043, 1484, 1063, 1065, 1069, 1072, 1484, 1484, 405, - 2285, 2285, 2285, 942, -36, 140, 280, -1043, 1484, 2285, - -1043, -1043, 2086, -37, -1043, 2217, -1043, -1043, 944, -1043, - -1043, 1062, 1079, 996, -1043, 2285, 2285, 2285, -1043, 1081, - 1082, -1043, -24, -1043, 2285, 4163, 4189, 689, -1043, 2285, - -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, 952, -1043, - -1043, -1043, 1484, 42, 2285, 1084, 1087, 14, -1043, 1088, - 5136, 13, -1043, 1089, 1090, 1091, 1092, -1043, -1043, 441, - 4215, -1043, 968, 6209, 2285, 180, 1094, 1095, 1096, -1043, - 2285, 2285, -1043, -1043, 1098, 2285, -1043, -1043, -1043, 1100, - 4241, 1101, 1102, 1019, 2285, -1043, 1104, 1484, 1484, 1484, - 1484, 1105, 1108, -1043, 2342, 3111, 6104, 2915, 199, 180, - 1112, 180, 1113, 180, 1114, 265, 984, 6125, 3139, 348, - -1043, 700, 2285, -1043, -1043, 1484, 2943, 318, 6146, -1043, - 1877, -1043, 403, 6209, 2285, 2285, 1484, 985, 703, 6209, - 1117, 1119, 1120, 2469, -1043, 1136, 1122, -1043, 1013, -1043, - -1043, -1043, -1043, -1043, 1140, 2285, -1043, 3167, 307, -1043, - -1043, -1043, 3195, 3223, -1043, 3251, 1143, 2285, -1043, -1043, - 1106, 1144, 6209, -1043, 1146, 1149, 1150, 1151, -1043, 1024, - 2489, 1152, 1025, -1043, 2285, -1043, 1030, 351, -1043, 1026, - 359, -1043, 1053, 390, -1043, 1054, 1163, 1484, 1187, 1056, - 2285, 1190, 3279, 1109, 2285, -1043, 2285, -1043, -1043, 2217, - 2522, 1191, -1043, 2285, 4267, 4293, -1043, 1484, 2285, 1193, - -1043, -1043, -1043, -1043, 13, -1043, 1110, -1043, 4319, 1194, - 1197, 1198, 1199, 1200, 4345, 1068, -1043, -1043, -1043, -1043, - -1043, 1484, -1043, -1043, 199, 2971, -1043, 2086, 339, 2086, - 339, 2086, 339, -1043, 704, 1484, -1043, 3307, -1043, -1043, - 2285, 3335, 3363, 707, -1043, -1043, 1070, 6209, 2285, 2285, - 708, 6209, -1043, 1202, -1043, 2285, -1043, -1043, -1043, -1043, - -1043, 1205, 2285, 734, 1071, 2285, -1043, 3391, 456, -33, - 3419, 517, -29, 3447, 531, -25, 1484, 1206, 1154, 2439, - 1074, 2543, -1043, -1043, 1209, 2285, 6167, 4371, 22, -1043, - 4397, 1083, 3475, 1213, -1043, 3503, 1221, 2285, 1222, 1223, - 2285, 1225, 1226, 2285, 1242, 1111, -1043, 2285, -1043, 339, - -1043, -1043, -1043, 735, -1043, 2285, -1043, 1484, 2285, 1244, - -1043, -1043, -1043, -1043, 1115, 3531, -1043, -1043, 1116, 3559, - -1043, -1043, 1118, 3587, -1043, 1247, 2575, -17, 2490, 1250, - 1127, 6188, 739, 3615, 1123, 339, 1252, 339, 1253, 339, - 1254, -1043, -1043, -1043, -1043, 339, -1043, 441, -1043, 1128, - 1262, 1245, -14, -1043, 1130, 118, -1043, 1131, 128, -1043, - 1132, 237, 743, -1043, 1134, 1484, -1043, 1135, 1268, 339, - 1270, 339, 1271, 339, -1043, 441, 1272, 441, 744, 1275, - -1043, 261, -1043, 273, -1043, 322, -1043, -1043, 748, -1043, - 1276, -1043, 1277, 1279, 1280, 441, 1281, -1043, -1043, -1043, - -1043, -1043, -1043 + 2859, 49, 73, 2936, -1051, -1051, 1362, 75, 69, -3, + -1, 254, 257, -99, 143, 146, -38, 149, 171, -40, + 180, 201, 293, -36, 324, 330, 342, 163, 298, 31, + 341, 221, 231, 338, 338, 304, 217, 346, 389, 402, + 17, 25, 409, 488, 495, 506, 377, 399, 407, 14, + 32, -1051, 413, -1051, 468, 387, -1051, 536, 549, 19, + 22, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, + -1051, -1051, -1051, -1051, -1051, -1051, -1051, 21, 423, 263, + -1051, -1051, -1051, -91, -58, -26, 181, 337, 383, 396, + 422, 434, 437, 452, 458, 463, 470, 482, 483, 501, + 505, 508, 530, 535, 455, 477, 496, 513, -1051, 594, + 517, -1051, -1051, -1051, -1051, -1051, -1051, -1051, 2342, 2342, + 2342, -1051, -1051, 2342, 1971, 11, 615, 379, 2342, 621, + 638, -1051, 655, 691, 2342, 645, -1051, 2342, -1051, -1051, + 2342, 2274, 2342, 2342, 570, 2342, 2274, 2342, 2342, 571, + 2274, 2342, 2342, 1541, 588, 2342, 626, 657, 666, 1410, + 1410, 1410, 679, -1051, -1051, -1051, -1051, 680, 684, 685, + 811, 338, 338, 338, 2342, 2342, -18, -1051, 61, 338, + 681, 682, 686, 2143, 186, 1410, 1541, 690, 33, 689, + -1051, 818, -1051, 687, 693, 694, 827, 2342, 2342, 2342, + 698, 2342, 697, 745, 2342, 2342, -1051, 2342, 834, -1051, + 836, -1051, 837, -1051, 711, 2342, 842, 708, -1051, -1051, + -1051, 843, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, + 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, + 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, + 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, + 2342, 2342, 2342, 2342, 395, 395, 395, 395, 2342, 845, + 502, 717, 717, 717, 5196, 13, 2274, 4460, 275, 715, + 846, 718, 719, -1051, 720, 3001, 1230, -1051, -1051, 2342, + 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, 2342, + 2342, 2342, 2342, 2342, -1051, -1051, 1736, 208, 3706, 5217, + 469, 722, 2274, -1051, -1051, 2643, -1051, 528, 5238, 5259, + 2342, 5280, 545, 5301, 5322, 2342, 548, 5343, 5364, 1672, + 1201, 2663, 850, -1051, 2342, 5385, 2342, 2342, 2342, -1051, + -1051, 852, 855, 855, 2342, 732, 733, 734, 735, 2342, + 2342, 2342, 736, 199, -1051, -1051, 3732, 3758, 338, 338, + 379, 379, 297, 2342, 2342, 2342, 2143, 2143, 2342, 3001, + 340, -1051, 864, 865, 2342, 867, -1051, 2342, 2342, 1234, + -1051, 2274, 2342, 2342, -1051, 5406, 5427, 5448, 783, 3784, + -1051, 737, 2686, 5469, 4483, -1051, -1051, 1574, -1051, 1705, + 2342, 4506, 336, 2342, 8, -1051, 5490, 4529, 5511, 4552, + 5532, 4575, 5553, 4598, 5574, 4621, 5595, 4644, 5616, 4667, + 5637, 4690, 5658, 4713, 5679, 4736, 5700, 4759, 3810, 3836, + 5721, 4782, 5742, 4805, 5763, 4828, 5784, 4851, 5805, 4874, + 5826, 4897, 3862, 3888, 3914, 3940, 3966, 3992, 555, 280, + -1051, 739, 742, 746, 1767, 740, 2342, -1051, 1541, 1541, + 558, 78, 263, 2342, 874, 877, 15, 747, -1051, -46, + 234, -19, 137, -1051, -1051, 2712, 556, 683, 457, 457, + 534, 534, 534, 534, 487, 487, 717, 717, 717, 717, + -1051, 7, 2274, 2342, 879, 2108, 2342, 717, -1051, 2342, + 2274, 2274, 790, 881, 882, 5847, 883, 797, 885, 887, + 5868, 801, 889, 890, 2274, -1051, 581, 1803, 2342, 5889, + 891, 3036, 5910, 5931, 2342, 1541, 895, 894, 5952, 2399, + 2399, 2399, 2399, 5973, 5994, 6015, 765, 338, 2342, 2342, + -1051, -1051, 762, 764, 2342, 4018, 4044, 4070, 3680, 94, + 338, 1965, 2342, 899, 2342, 6036, -1051, 4920, 4943, -1051, + 586, 4966, 4989, 900, 901, 905, 770, 2342, 2136, 2342, + 2342, -1051, 16, -1051, -1051, 5012, 30, -1051, 3064, -1051, + 781, 784, 776, -1051, 911, -1051, -1051, -1051, -1051, -1051, + -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, + -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, + -1051, -1051, 2342, 2342, -1051, -1051, -1051, -1051, -1051, -1051, + -1051, -1051, -1051, -1051, -1051, -1051, 2342, 2342, 2342, 2342, + 2342, 2342, 2342, 914, -1051, 2274, 395, -1051, -1051, -1051, + 2342, 5035, 915, 920, 792, -1051, 18, 2342, 924, 925, + 2086, -1051, 928, 798, 14, 930, -1051, 2274, 2274, 2274, + 2274, 2342, -1051, 819, 395, 288, 4096, 338, -1051, 2274, + 3092, 2731, 717, -1051, 2643, -1051, 892, 1541, 1541, 932, + 1541, 677, 1541, 1541, 933, 896, 1541, 1541, 590, -1051, + 2274, 2446, 934, 804, 937, 939, 942, 2206, -1051, -1051, + 931, -1051, 943, 821, 6267, -1051, 822, 824, 825, 944, + 952, 954, 958, 350, 4122, 4148, -1051, -1051, 3120, 338, + 338, 338, 957, 828, 841, -33, -1051, 353, -1051, 94, + 6267, -1051, 2472, 830, 960, 968, 929, 982, 983, 1541, + 1541, 1541, 986, 4174, -1051, 2762, 1068, 987, 988, 989, + 990, -1051, 992, -1051, 861, 2342, 2342, 1541, 857, -1051, + 6057, 5058, 6078, 5081, 6099, 5104, 6120, 5127, 5150, -1051, + 303, 866, 6141, 367, -1051, -1051, 64, 300, 869, 993, + 2491, -1051, -1051, -1051, 14, 2342, -1051, 593, -1051, 596, + 597, 600, 601, 6267, -1051, 995, 44, 2342, 10, 607, + -1051, 2342, 863, 946, 946, 1541, 1000, 868, 870, 1004, + 1005, 1541, 873, 1007, 1008, -1051, 608, -1051, 1025, 2342, + 1541, 1541, 1541, 1028, 1027, -1051, 1541, 1029, 1031, 1032, + 1034, 1541, 1541, 1541, 408, 2342, 2342, 2342, 906, -43, + 229, 285, -1051, 1541, 2342, -1051, -1051, 2143, -29, -1051, + 2274, -1051, -1051, 907, -1051, -1051, 1036, 1042, 961, -1051, + 2342, 2342, 2342, -1051, 1044, 1045, -1051, 336, -1051, 2342, + 4200, 4226, 628, -1051, 2342, -1051, -1051, -1051, -1051, -1051, + -1051, -1051, -1051, 919, -1051, -1051, -1051, 1541, 263, 2342, + 1050, 1053, 15, -1051, 1052, 5173, 14, -1051, 1054, 1055, + 1059, 1060, -1051, -1051, 395, 4252, -1051, 935, 6267, 2342, + 338, 1061, 1063, 1065, -1051, 2342, 2342, -1051, -1051, 1066, + 2342, -1051, -1051, -1051, 1072, 4278, 1073, 1077, 965, 2342, + -1051, 1080, 1541, 1541, 1541, 1541, 1081, 1084, 1083, -1051, + 2399, 3148, 6162, 2952, 379, 338, 1086, 338, 1087, 338, + 1088, 592, 959, 6183, 3176, 360, -1051, 632, 2342, -1051, + -1051, 1541, 2980, 903, 6204, -1051, 1934, -1051, 320, 6267, + 2342, 2342, 1541, 951, 633, 6267, 1091, 1090, 1092, 2524, + -1051, 1094, 1096, -1051, 967, -1051, -1051, -1051, -1051, -1051, + 1098, 2342, -1051, 3204, 357, -1051, -1051, -1051, 3232, 3260, + -1051, 3288, 1100, 2342, -1051, -1051, 1062, 1102, 6267, -1051, + 1106, 1108, 1109, 1111, -1051, 979, -1051, 2544, 1113, 981, + -1051, 2342, -1051, 984, 362, -1051, 991, 382, -1051, 994, + 384, -1051, 996, 1115, 1541, 1116, 998, 2342, 1119, 3316, + 1033, 2342, -1051, 2342, -1051, -1051, 2274, 2567, 1120, -1051, + 2342, 4304, 4330, -1051, 1541, 2342, 1121, -1051, -1051, -1051, + -1051, 14, -1051, 1039, -1051, 4356, 1122, 1126, 1128, 1132, + 1133, 4382, 1001, -1051, -1051, -1051, -1051, -1051, 1541, -1051, + -1051, 379, 3008, -1051, 2143, 94, 2143, 94, 2143, 94, + -1051, 636, 1541, -1051, 3344, -1051, -1051, 2342, 3372, 3400, + 637, -1051, -1051, 1002, 6267, 2342, 2342, 640, 6267, -1051, + 1136, -1051, 2342, -1051, -1051, -1051, -1051, -1051, 1138, 2342, + 643, 1006, 2342, -1051, 3428, 391, -25, 3456, 420, -17, + 3484, 429, -13, 1541, 1139, 1089, 2441, 1010, 2593, -1051, + -1051, 1141, 2342, 6225, 4408, 4, -1051, 4434, 1012, 3512, + 1147, -1051, 3540, 1149, 2342, 1150, 1151, 2342, 1153, 1154, + 2342, 1155, 1022, -1051, 2342, -1051, 94, -1051, -1051, -1051, + 644, -1051, 2342, -1051, 1541, 2342, 1158, -1051, -1051, -1051, + -1051, 1026, 3568, -1051, -1051, 1040, 3596, -1051, -1051, 1041, + 3624, -1051, 1161, 2612, 126, 2496, 1164, 1056, 6246, 647, + 3652, 1035, 94, 1165, 94, 1166, 94, 1172, -1051, -1051, + -1051, -1051, 94, -1051, 395, -1051, 1057, 1191, 1159, 134, + -1051, 1067, 194, -1051, 1069, 202, -1051, 1070, 239, 648, + -1051, 1074, 1541, -1051, 1058, 1194, 94, 1196, 94, 1231, + 94, -1051, 395, 1232, 395, 652, 1233, -1051, 249, -1051, + 258, -1051, 277, -1051, -1051, 656, -1051, 1235, -1051, 1236, + 1237, 1238, 395, 1242, -1051, -1051, -1051, -1051, -1051, -1051 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -1043, -1043, -1043, -1043, 498, -1043, -1043, -1043, -1043, 153, - -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, - -1043, -1043, -273, -3, -1043, 27, -1043, 491, 1289, -1043, - -1043, -1043, -1043, 3, -357, -112, -1043, -1043, -1043, -1043, - -1043, 1290, -1043, -1043, -1043, -1043, -1043, -1043, -1043, -1043, - -1043, -1043, -1043, -1043, -1043, -657, -650, -1043, -1043, 953, - -1043, -1043, -1043, -1043, -6, -1043, 139, -1043, -1042, 187, - -102, 278, 35, -632, 409, -1043, -257, 4 + -1051, -1051, -1051, -1051, 348, -1051, -1051, -1051, -1051, 65, + -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, + -1051, -1051, -275, 20, -1051, -352, -1051, 436, 1246, -1051, + -1051, -1051, -1051, 3, -359, -113, -1051, -1051, -1051, -1051, + -1051, 1247, -1051, -1051, -1051, -1051, -1051, -1051, -1051, -1051, + -1051, -1051, -1051, -1051, -1051, -647, -678, -1051, -1051, 908, + -1051, -1051, -1051, -1051, -6, -1051, 23, -1051, -1050, 242, + -98, 318, 35, -637, 361, -1051, -258, 5 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1466,1099 +1467,1110 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -5 static const yytype_int16 yytable[] = { - 130, 539, 540, 129, 461, 1100, 66, 449, 450, 451, - 132, 576, 154, 373, 659, 374, 901, 199, 650, 782, - 209, 187, 277, 144, 211, 213, 136, 149, 1166, 1113, - 718, 743, 773, 456, 718, 202, 719, 720, 718, 144, - 719, 720, 718, 140, 719, 720, 718, 219, 719, 720, - 141, 898, 719, 720, 718, 149, 4, 718, 341, 342, - 719, 720, 140, 719, 720, 299, 300, 301, 843, 654, - 367, 841, 302, 5, 190, 642, 191, 377, 104, 105, - 106, 107, 370, 220, 108, 145, 356, 357, 577, 578, - 579, 580, 146, 221, 155, 222, 150, 133, 395, 840, - 397, 145, 939, 950, 940, 121, 122, 1148, 655, 278, - 279, 1151, 270, 271, 272, 1154, 188, 273, 276, 774, - 775, 134, 285, 1203, 656, 1192, 1228, 660, 305, 138, - 282, 307, 356, 357, 308, 314, 317, 318, 457, 320, - 314, 322, 323, 375, 314, 326, 327, 581, 889, 334, - 121, 122, 200, 651, 210, 214, 189, 215, 212, 137, - 744, 1167, 216, 203, 660, 356, 357, 354, 355, 489, - 356, 357, 175, 177, 490, 183, 355, 114, 115, 116, - 117, 321, 358, 1238, 135, 325, 644, 359, 139, 718, - 383, 384, 385, 841, 387, 719, 720, 390, 391, 718, - 392, 163, 153, 281, 164, 719, 720, 165, 399, 166, - 167, 142, 223, 168, 224, 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, 442, 443, 444, 445, 548, 1230, 979, - 156, 452, 356, 357, 32, 33, 34, 35, 1232, 314, - 121, 122, 39, 497, 462, 42, 565, 746, 941, 225, - 942, 226, 473, 474, 475, 476, 477, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 487, 297, 298, 299, - 300, 301, 171, 172, 460, 495, 302, 157, 718, 351, - 458, 353, 173, 503, 719, 720, 748, 360, 508, 174, - 143, 368, 495, 314, 356, 357, 1036, 517, 152, 519, - 520, 521, 718, 356, 357, 657, 147, 526, 719, 720, - 331, 369, 531, 532, 718, 148, 339, 339, 339, 534, - 719, 720, 356, 357, 151, 542, 543, 544, 270, 271, - 545, 282, 282, 227, 514, 228, 552, 152, 541, 554, - 555, 339, 371, 314, 558, 559, 767, 1234, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 515, - 300, 301, 572, 718, 158, 575, 302, 574, 162, 719, - 720, 1252, 356, 357, 791, 1026, 114, 115, 116, 117, - 718, 933, 934, 1253, 557, 169, 719, 720, 943, 315, - 944, 1119, 1103, 1122, 315, 1125, 121, 122, 315, 356, - 357, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 446, 219, 170, 638, 302, - 356, 357, 356, 357, 159, 647, 645, 160, 1037, 161, - 356, 357, 1254, 229, 646, 230, 547, 184, 830, 841, - 356, 357, 841, 356, 357, 841, 842, 104, 105, 106, - 107, 356, 357, 108, 314, 663, 1030, 638, 667, 1077, - 185, 668, 669, 671, 178, 537, 538, 1079, 631, 882, - 884, 186, 1187, 632, 353, 193, 314, 642, 192, 669, - 688, 883, 356, 357, 792, 879, 694, 196, 194, 499, - 499, 701, 701, 701, 701, 662, 195, 197, 1081, 710, - 711, 702, 702, 702, 702, 714, 1042, 841, 1212, 205, - 1215, 1043, 1218, 726, 231, 728, 232, 685, 1221, 206, - 446, 219, 233, 315, 234, 703, 704, 705, 739, 198, - 741, 742, 841, 204, 235, 841, 236, 237, 841, 238, - 747, 841, 1241, 207, 1243, 239, 1245, 240, 356, 357, - 208, 1016, 104, 105, 106, 107, 218, 263, 108, 496, - 241, 841, 242, 841, 1147, 841, 243, 264, 244, 179, - 265, 266, 180, 756, 757, 181, 496, 315, 267, 114, - 115, 116, 117, 114, 115, 116, 117, 758, 759, 760, - 761, 762, 763, 764, 857, 245, 314, 246, 268, 121, - 122, 768, 280, 121, 122, 247, 643, 248, 776, 356, - 357, 286, 984, 639, 640, 249, 497, 250, 314, 314, - 314, 314, 789, 356, 357, 1150, 303, 315, 121, 122, - 314, 304, 251, 493, 252, 215, 306, 766, 127, 1153, - 216, 319, 253, 709, 254, 121, 122, 171, 172, 324, - 333, 314, 746, 255, 335, 256, 723, 173, 336, 785, - 786, 787, 788, 337, 182, 121, 122, 257, 350, 258, - 454, 795, 215, 287, 259, 343, 260, 216, 378, 261, - 695, 262, 499, 499, 500, 505, 499, 1114, 509, 629, - 348, 630, 812, 349, 499, 499, 641, 686, 361, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 362, 363, 865, 866, 302, 499, 858, - 732, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 498, 300, 301, 803, 747, 804, 315, 302, - 885, 499, 891, 811, 892, 890, 670, 672, 499, 499, - 893, 894, 499, 499, 895, 896, 499, 900, 902, 372, - 315, 903, 376, 670, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 794, 499, 380, 918, 302, 379, 920, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 935, 936, 937, 966, 302, 967, - 381, 382, 945, 947, 386, 389, 948, 393, 499, 314, - 1031, 1048, 1126, 1049, 1127, 499, 966, 1134, 1138, 956, - 957, 958, 388, 394, 834, 835, 836, 396, 963, 961, - 398, 799, 800, 969, 802, 400, 805, 806, 401, 403, - 809, 810, 966, 1048, 1143, 1189, 453, 966, 973, 1209, - 951, 1235, 966, 1236, 1250, 302, 1255, 972, 1256, 463, - 464, 465, 466, 516, 127, 494, 522, 523, 987, 527, - 528, 529, 530, 549, 992, 993, 533, 551, 553, 995, - 315, 563, 634, 566, 633, 635, 637, 648, 1002, 649, - 653, 664, 851, 852, 853, 674, 673, 675, 1010, 677, - 678, 679, 315, 315, 315, 315, 680, 682, 1011, 683, - 684, 282, 472, 696, 315, 690, 1032, 698, 708, 712, - 1223, 713, 727, 738, 1040, 735, 736, 737, 1044, 1045, - 751, 752, 753, 755, 1041, 315, 765, 770, 772, 771, - 777, 778, 781, 780, 1129, 784, 790, 798, 1246, 1058, - 1249, 949, 801, 807, 814, 815, 808, 816, 908, 817, - 818, 1064, 821, 823, 914, 822, 827, 824, 1261, 825, - 826, 828, 829, 921, 922, 923, 837, 838, 1075, 926, - 839, 845, 846, 847, 931, 932, 849, 848, 850, 854, - 859, 860, 862, 864, 1087, 946, 861, 863, 1091, 886, - 1092, 869, 880, 314, 887, 897, 904, 1097, 905, 909, - 910, 912, 1101, 911, 988, 913, 915, 916, 1188, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 917, 919, 924, 925, 302, 953, 971, - 927, 1117, 928, 1120, 1093, 1123, 929, 282, 1017, 930, - 1020, 938, 1023, 952, 1131, 954, 955, 959, 970, 960, - 974, 975, 1136, 1137, 977, 980, 981, 982, 983, 1140, - 989, 990, 991, 986, 994, 996, 1142, 998, 999, 1145, - 1003, 1008, 1009, 1000, 1004, 1005, 1006, 1007, 1018, 1021, - 1024, 1050, 1027, 315, 1047, 1051, 1052, 488, 1055, 969, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 1175, 1033, 1054, 1179, 302, 1057, 1183, 1063, 1056, - 1066, 1186, 1067, 1046, 1065, 1068, 1069, 1070, 1073, 1191, - 76, 309, 1193, 1071, 1074, 1078, 80, 81, 82, 1083, - 1076, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 1080, 1082, 1085, 1086, 1088, 1095, 1090, 1102, - 1106, 310, 1104, 1107, 1108, 1109, 1110, 1112, 1139, 1135, - 1141, 1144, 1156, 1160, 1084, 1162, 1118, 1157, 1121, 1171, - 1124, 1169, 32, 33, 34, 35, 36, 1173, 1176, 1177, - 39, 1180, 1181, 42, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 1184, 1194, - 1227, 1185, 302, 1201, 1195, 1197, 1206, 1199, 1213, 1216, - 1219, 1211, 110, 111, 112, 113, 1207, 1225, 1226, 1229, - 1231, 1233, 1128, 1237, 1240, 1239, 1242, 1244, 1247, 118, - 311, 1251, 1257, 1258, 120, 1259, 1260, 1262, 1163, 123, - 899, 907, 65, 72, 126, 525, 976, 513, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 77, - 78, 0, 79, 1155, 80, 81, 82, 315, 0, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 0, 104, 105, 106, 107, 0, 0, 108, 0, 0, - 0, 0, 0, 0, 0, 0, 76, 309, 338, 0, - 0, 0, 80, 81, 82, 0, 0, 83, 84, 85, + 130, 542, 543, 463, 1107, 136, 66, 451, 452, 453, + 1173, 132, 579, 662, 154, 278, 906, 786, 200, 653, + 458, 188, 777, 747, 210, 214, 129, 212, 1120, 191, + 149, 192, 144, 140, 448, 220, 203, 375, 722, 376, + 141, 222, 722, 223, 723, 724, 722, 846, 723, 724, + 903, 149, 723, 724, 722, 4, 176, 178, 722, 184, + 723, 724, 342, 343, 723, 724, 104, 105, 106, 107, + 369, 645, 108, 5, 224, 163, 225, 379, 164, 358, + 359, 165, 848, 166, 221, 645, 140, 372, 133, 580, + 581, 582, 583, 657, 145, 945, 155, 946, 397, 150, + 399, 146, 279, 280, 358, 359, 226, 845, 227, 778, + 779, 956, 271, 272, 273, 1155, 189, 274, 277, 134, + 659, 360, 286, 1158, 1199, 459, 663, 1161, 306, 135, + 283, 308, 358, 359, 309, 315, 318, 319, 137, 321, + 315, 323, 324, 1174, 315, 327, 328, 894, 584, 335, + 121, 122, 748, 201, 654, 215, 190, 216, 211, 121, + 122, 213, 217, 663, 204, 722, 750, 377, 356, 357, + 846, 723, 724, 114, 115, 116, 117, 357, 706, 707, + 708, 322, 1245, 358, 359, 326, 647, 114, 115, 116, + 117, 385, 386, 387, 353, 389, 355, 722, 392, 393, + 361, 394, 362, 723, 724, 722, 370, 121, 122, 401, + 159, 723, 724, 160, 646, 161, 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, 442, 443, 444, 445, 446, 447, 551, 985, + 138, 180, 454, 139, 181, 722, 1210, 182, 220, 152, + 315, 723, 724, 722, 1235, 142, 660, 568, 143, 723, + 724, 147, 462, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 464, 104, + 105, 106, 107, 148, 144, 108, 497, 888, 358, 359, + 722, 460, 151, 228, 505, 229, 723, 724, 752, 510, + 722, 358, 359, 497, 315, 371, 723, 724, 519, 722, + 521, 522, 523, 152, 1237, 723, 724, 537, 528, 172, + 173, 491, 1239, 533, 534, 535, 492, 153, 722, 174, + 162, 358, 359, 170, 723, 724, 183, 545, 546, 547, + 271, 272, 548, 283, 283, 516, 145, 947, 555, 948, + 171, 557, 558, 658, 156, 315, 561, 562, 771, 1241, + 157, 540, 541, 282, 114, 115, 116, 117, 167, 1259, + 355, 168, 158, 169, 575, 332, 185, 578, 1260, 448, + 220, 340, 340, 340, 121, 122, 795, 358, 359, 114, + 115, 116, 117, 634, 939, 940, 560, 1261, 635, 358, + 359, 796, 577, 949, 1110, 950, 501, 340, 373, 121, + 122, 104, 105, 106, 107, 544, 884, 108, 1126, 186, + 1129, 501, 1132, 179, 32, 33, 34, 35, 846, 187, + 641, 846, 39, 1049, 846, 42, 193, 650, 1050, 316, + 172, 173, 358, 359, 316, 121, 122, 649, 316, 230, + 174, 231, 358, 359, 206, 358, 359, 175, 550, 358, + 359, 648, 358, 359, 358, 359, 315, 666, 835, 641, + 670, 847, 194, 671, 672, 674, 121, 122, 1037, 195, + 1084, 887, 889, 750, 358, 359, 358, 359, 315, 197, + 196, 672, 691, 358, 359, 232, 846, 233, 697, 1194, + 1086, 207, 1088, 704, 704, 704, 704, 665, 234, 1154, + 235, 198, 714, 715, 705, 705, 705, 705, 718, 199, + 208, 846, 358, 359, 846, 205, 730, 846, 732, 688, + 846, 358, 359, 209, 236, 1219, 237, 1222, 1157, 1225, + 713, 743, 219, 745, 746, 1228, 238, 1160, 239, 240, + 846, 241, 846, 727, 846, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 242, 1023, 243, 264, 303, 1248, + 244, 1250, 245, 1252, 316, 246, 751, 247, 121, 122, + 499, 268, 248, 495, 249, 216, 760, 761, 127, 265, + 217, 300, 301, 302, 250, 252, 251, 253, 303, 281, + 762, 763, 764, 765, 766, 767, 768, 287, 266, 315, + 498, 121, 122, 254, 772, 255, 456, 256, 216, 257, + 258, 780, 259, 217, 288, 267, 990, 498, 316, 269, + 307, 315, 315, 315, 315, 793, 298, 299, 300, 301, + 302, 304, 260, 315, 261, 303, 501, 262, 502, 263, + 770, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 501, 315, 507, 501, 303, 511, 632, + 798, 633, 789, 790, 791, 792, 501, 305, 644, 316, + 642, 643, 320, 325, 799, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 517, 301, 302, 501, + 334, 689, 1121, 303, 501, 816, 736, 807, 501, 808, + 815, 896, 1033, 897, 501, 501, 898, 899, 501, 501, + 900, 901, 839, 840, 841, 501, 501, 907, 923, 870, + 871, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 336, 972, 698, 973, 303, + 501, 1055, 1038, 1056, 1133, 501, 1134, 1141, 972, 895, + 1145, 972, 1055, 1150, 1196, 972, 1242, 1216, 1243, 337, + 972, 905, 1257, 751, 1262, 908, 1263, 890, 338, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 316, 344, 349, 925, 303, 352, 350, 351, 673, 675, + 363, 364, 374, 378, 380, 365, 381, 382, 383, 941, + 942, 943, 316, 384, 388, 673, 390, 951, 953, 391, + 395, 954, 396, 398, 315, 400, 402, 403, 303, 405, + 455, 465, 467, 466, 962, 963, 964, 518, 127, 524, + 468, 496, 525, 969, 529, 530, 531, 532, 975, 536, + 955, 552, 554, 556, 566, 637, 569, 636, 640, 638, + 651, 652, 656, 979, 676, 957, 667, 967, 677, 678, + 680, 681, 682, 978, 683, 685, 686, 687, 693, 699, + 701, 712, 716, 993, 717, 731, 742, 739, 740, 998, + 999, 1043, 741, 755, 1001, 757, 756, 759, 769, 803, + 804, 774, 806, 1008, 809, 810, 775, 776, 813, 814, + 781, 782, 785, 994, 1017, 784, 788, 825, 794, 805, + 811, 818, 802, 819, 820, 1018, 821, 283, 812, 822, + 826, 831, 1039, 316, 827, 828, 1230, 829, 830, 832, + 1047, 833, 834, 842, 1051, 1052, 851, 843, 1024, 850, + 1027, 1048, 1030, 844, 852, 316, 316, 316, 316, 853, + 1136, 856, 857, 858, 1253, 1065, 1256, 316, 854, 855, + 859, 864, 865, 869, 867, 866, 874, 1071, 868, 885, + 892, 902, 909, 910, 1268, 891, 914, 915, 316, 916, + 917, 918, 920, 921, 922, 1082, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 924, 1094, 929, 930, 303, 1098, 932, 1099, 933, 934, + 315, 935, 959, 1044, 1104, 944, 958, 913, 960, 1108, + 965, 961, 966, 919, 1195, 976, 980, 981, 983, 1006, + 986, 987, 926, 927, 928, 988, 989, 995, 931, 996, + 992, 997, 1000, 936, 937, 938, 862, 1002, 1124, 1004, + 1127, 1100, 1130, 1005, 283, 952, 1009, 1014, 1015, 1016, + 1054, 1138, 1025, 1028, 1031, 1057, 1058, 1034, 1059, 1143, + 1144, 1061, 1062, 1063, 1064, 1070, 1147, 1125, 1073, 1128, + 1072, 1131, 1074, 1149, 1075, 1076, 1152, 1077, 1078, 1080, + 1081, 1090, 1097, 1092, 1083, 1095, 1102, 1109, 1113, 977, + 1085, 1111, 1114, 1087, 1115, 1089, 975, 1093, 1116, 1117, + 1119, 1142, 1146, 1148, 904, 1163, 1151, 1169, 1182, 1167, + 1176, 1186, 1164, 1178, 1190, 1180, 1183, 1184, 1193, 1187, + 1188, 1191, 1192, 1201, 1234, 1202, 1198, 1208, 316, 1200, + 1213, 1220, 1223, 1218, 1010, 1011, 1012, 1013, 1226, 1204, + 1206, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 1214, 1232, 1233, 1246, 303, + 1247, 863, 1249, 1040, 76, 310, 1236, 1170, 1238, 1240, + 80, 81, 82, 1244, 1053, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 474, 1251, 1254, 1258, + 912, 1264, 1265, 1266, 1267, 311, 7, 8, 1269, 65, + 72, 527, 0, 982, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 33, 34, 35, + 36, 0, 0, 0, 39, 0, 1091, 42, 469, 14, + 15, 470, 17, 18, 471, 20, 472, 22, 0, 23, + 0, 25, 26, 0, 28, 29, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 47, 48, 118, 312, 0, 0, 0, 120, 0, + 0, 0, 0, 123, 1135, 0, 0, 0, 126, 0, + 0, 515, 0, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 316, 76, 77, 78, 0, 79, + 0, 80, 81, 82, 559, 1162, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 0, 104, 105, + 106, 107, 0, 0, 108, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 310, 339, 0, 0, 0, 80, + 81, 82, 0, 0, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, + 0, 109, 0, 0, 0, 0, 0, 110, 111, 112, + 113, 114, 115, 116, 117, 32, 33, 34, 35, 36, + 0, 0, 0, 39, 118, 119, 42, 0, 0, 120, + 0, 121, 122, 0, 123, 0, 124, 0, 125, 126, + 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 118, 329, 0, 0, 0, 120, 0, 0, + 0, 0, 123, 0, 76, 310, 0, 126, 0, 330, + 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 311, 7, 8, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 33, 34, 35, + 36, 0, 0, 0, 39, 0, 0, 42, 469, 14, + 15, 470, 17, 18, 471, 20, 472, 22, 0, 23, + 0, 25, 26, 0, 28, 29, 30, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 47, 48, 118, 329, 0, 0, 0, 120, 0, + 0, 0, 0, 123, 0, 76, 310, 0, 126, 0, + 330, 80, 81, 82, 0, 0, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 573, 0, 311, 7, 8, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 32, 33, 34, + 35, 36, 490, 0, 0, 39, 0, 0, 42, 469, + 14, 15, 470, 17, 18, 471, 20, 472, 22, 0, + 23, 0, 25, 26, 0, 28, 29, 30, 0, 0, + 0, 0, 0, 639, 0, 0, 0, 110, 111, 112, + 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 47, 48, 118, 312, 0, 0, 0, 120, + 0, 0, 0, 0, 123, 0, 76, 310, 0, 126, + 0, 514, 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 310, 0, 0, - 0, 0, 0, 0, 109, 0, 0, 0, 0, 0, - 110, 111, 112, 113, 114, 115, 116, 117, 32, 33, - 34, 35, 36, 0, 0, 0, 39, 118, 119, 42, - 0, 0, 120, 0, 121, 122, 0, 123, 0, 124, - 0, 125, 126, 0, 127, 0, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 110, 111, - 112, 113, 302, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118, 328, 0, 0, 0, - 120, 0, 0, 0, 0, 123, 0, 76, 309, 0, - 126, 0, 329, 80, 81, 82, 0, 0, 83, 84, + 0, 0, 0, 0, 0, 574, 0, 311, 0, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 0, 0, 0, 0, 303, 32, 33, + 34, 35, 36, 0, 0, 0, 39, 0, 0, 42, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 110, 111, + 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 118, 312, 0, 0, 0, + 120, 0, 0, 0, 0, 123, 0, 76, 270, 220, + 126, 0, 690, 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 310, 7, - 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, - 33, 34, 35, 36, 0, 0, 0, 39, 0, 0, - 42, 467, 14, 15, 468, 17, 18, 469, 20, 470, - 22, 0, 23, 0, 25, 26, 0, 28, 29, 30, + 104, 105, 106, 107, 76, 270, 108, 7, 8, 0, + 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 0, 0, 0, 469, + 14, 15, 470, 17, 18, 471, 20, 472, 22, 0, + 23, 0, 25, 26, 0, 28, 29, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 46, 47, 48, 118, 328, 0, 0, - 0, 120, 0, 0, 0, 0, 123, 0, 76, 309, - 0, 126, 0, 329, 80, 81, 82, 0, 0, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 556, 0, 310, - 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 47, 48, 0, 0, 118, 119, 0, 0, + 0, 120, 0, 0, 0, 0, 123, 0, 0, 0, + 0, 126, 0, 1046, 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 32, 33, 34, 35, 36, 636, 0, 0, 39, 0, - 0, 42, 467, 14, 15, 468, 17, 18, 469, 20, - 470, 22, 0, 23, 0, 25, 26, 0, 28, 29, - 30, 0, 0, 0, 0, 0, 779, 0, 0, 0, - 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 46, 47, 48, 118, 311, 0, - 0, 0, 120, 0, 0, 0, 0, 123, 0, 76, - 309, 0, 126, 0, 512, 80, 81, 82, 0, 0, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 570, 0, - 310, 0, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 32, 33, 34, 35, 36, 0, 0, 0, 39, - 0, 0, 42, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 118, 311, - 0, 0, 0, 120, 0, 0, 0, 0, 123, 0, - 76, 269, 219, 126, 0, 687, 80, 81, 82, 0, - 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 0, 104, 105, 106, 107, 76, 269, 108, - 7, 8, 0, 80, 81, 82, 0, 0, 83, 84, + 0, 0, 783, 118, 119, 0, 0, 0, 120, 0, + 0, 0, 0, 123, 0, 728, 275, 0, 126, 0, + 276, 76, 270, 0, 0, 0, 0, 80, 81, 82, + 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 0, 0, 0, 76, 270, 7, 8, + 0, 0, 80, 81, 82, 0, 0, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 0, 0, + 469, 14, 15, 470, 17, 18, 471, 20, 472, 22, + 0, 23, 0, 25, 26, 0, 28, 29, 30, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 110, 111, 112, 113, 303, 0, 0, + 0, 0, 46, 47, 48, 0, 0, 0, 0, 0, + 118, 119, 0, 0, 0, 120, 0, 0, 0, 0, + 123, 0, 0, 668, 0, 126, 0, 669, 110, 111, + 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 366, 367, 0, 0, 823, + 120, 0, 0, 0, 0, 368, 744, 76, 310, 0, + 126, 0, 175, 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 0, - 0, 0, 467, 14, 15, 468, 17, 18, 469, 20, - 470, 22, 0, 23, 0, 25, 26, 0, 28, 29, - 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, - 0, 0, 0, 0, 46, 47, 48, 0, 0, 118, - 119, 0, 0, 0, 120, 0, 0, 0, 0, 123, - 0, 0, 0, 0, 126, 0, 1039, 0, 0, 110, - 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 813, 118, 119, 0, 0, - 0, 120, 0, 0, 0, 0, 123, 0, 571, 274, - 0, 126, 0, 275, 76, 269, 0, 0, 0, 0, - 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 0, 0, 0, 76, - 269, 7, 8, 0, 0, 80, 81, 82, 0, 0, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 0, 0, 467, 14, 15, 468, 17, 18, 469, - 20, 470, 22, 0, 23, 0, 25, 26, 0, 28, - 29, 30, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 110, 111, 112, 113, - 302, 0, 0, 0, 0, 46, 47, 48, 0, 0, - 0, 0, 0, 118, 119, 0, 0, 0, 120, 0, - 0, 0, 0, 123, 0, 0, 665, 0, 126, 0, - 666, 110, 111, 112, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 364, 365, - 0, 0, 819, 120, 0, 0, 0, 0, 366, 724, - 76, 309, 0, 126, 0, 174, 80, 81, 82, 0, - 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 310, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 32, 33, 34, 35, 36, 0, 76, 269, - 39, 0, 0, 42, 80, 81, 82, 0, 0, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, - 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, - 311, 0, 0, 0, 120, 76, 269, 219, 0, 123, - 0, 80, 81, 82, 126, 0, 83, 84, 85, 86, + 0, 0, 0, 0, 0, 0, 0, 0, 311, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 32, + 33, 34, 35, 36, 0, 76, 270, 39, 0, 0, + 42, 80, 81, 82, 0, 0, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 0, 104, 105, - 106, 107, 0, 0, 108, 0, 0, 0, 0, 0, - 110, 111, 112, 113, 0, 0, 7, 8, 844, 0, - 0, 0, 0, 0, 0, 0, 0, 118, 119, 0, - 0, 0, 120, 0, 0, 0, 0, 123, 0, 0, - 0, 0, 126, 0, 0, 0, 0, 0, 467, 14, - 15, 468, 17, 18, 469, 20, 470, 22, 0, 23, - 0, 25, 26, 0, 28, 29, 30, 110, 111, 112, - 113, 7, 8, 0, 0, 888, 0, 0, 0, 0, + 97, 98, 99, 100, 101, 102, 103, 0, 0, 110, + 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 118, 312, 0, 0, + 0, 120, 76, 270, 220, 0, 123, 0, 80, 81, + 82, 126, 0, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 0, 104, 105, 106, 107, 0, + 0, 108, 0, 0, 0, 0, 0, 110, 111, 112, + 113, 0, 817, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 0, 0, 0, 120, - 46, 47, 48, 0, 123, 1053, 0, 0, 0, 126, - 0, 0, 0, 467, 14, 15, 468, 17, 18, 469, - 20, 470, 22, 0, 23, 1072, 25, 26, 0, 28, - 29, 30, 7, 8, 0, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 740, 46, 47, 48, 1094, 0, - 0, 0, 0, 0, 467, 14, 15, 468, 17, 18, - 469, 20, 470, 22, 0, 23, 0, 25, 26, 1161, - 28, 29, 30, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 46, 47, 48, 1158, - 302, 1202, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 497, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1204, 0, 0, 0, 0, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 567, - 0, 0, 0, 302, 0, 0, 288, 289, 290, 291, + 0, 0, 0, 0, 123, 0, 0, 0, 849, 126, + 0, 0, 0, 0, 0, 469, 14, 15, 470, 17, + 18, 471, 20, 472, 22, 0, 23, 893, 25, 26, + 0, 28, 29, 30, 110, 111, 112, 113, 7, 8, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 118, 119, 0, 0, 0, 120, 46, 47, 48, + 1060, 123, 0, 0, 0, 0, 126, 0, 0, 0, + 469, 14, 15, 470, 17, 18, 471, 20, 472, 22, + 1079, 23, 0, 25, 26, 0, 28, 29, 30, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 1101, 0, 0, 0, 303, 0, 0, + 0, 1165, 46, 47, 48, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 1168, + 0, 0, 0, 303, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 1209, 0, + 0, 0, 303, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1211, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 499, 0, 0, 0, 303, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 658, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 288, 289, + 302, 499, 0, 0, 0, 303, 0, 0, 0, 0, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 570, 0, 0, 0, 303, 0, + 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 661, 0, 0, 0, 303, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 801, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 500, 301, 302, + 861, 0, 0, 0, 303, 0, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 517, 301, 302, + 0, 0, 0, 0, 303, 0, 0, 0, 0, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 797, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 515, 300, 301, 856, 0, 0, 0, 302, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, -4, 1, 0, 302, -4, 0, 0, 0, - 0, 0, 0, 0, -4, -4, 0, 0, 0, 0, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, -4, 302, 0, - 0, 0, -4, -4, 0, -4, -4, -4, -4, -4, - -4, -4, -4, -4, -4, -4, 0, -4, -4, -4, - -4, -4, -4, -4, -4, 0, -4, -4, -4, -4, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 0, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 0, -4, + 1, 0, 303, -4, 0, 0, 0, 0, 0, 0, + 0, -4, -4, 0, 0, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, -4, 0, 0, 0, 0, -4, + -4, 0, -4, -4, -4, -4, -4, -4, -4, -4, + -4, -4, -4, 0, -4, -4, -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, 22, 0, 23, 24, 25, 26, 27, 28, - 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, - 37, 38, 39, 40, 41, 42, 7, 8, 43, 44, - 0, 0, 0, 0, 45, 46, 47, 48, 0, 0, - 49, 0, 50, 0, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 0, 0, 0, 0, 467, 14, - 15, 468, 17, 18, 469, 20, 470, 22, 0, 23, - 0, 25, 26, 0, 28, 29, 30, 0, 288, 289, + -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, 22, + 0, 23, 24, 25, 26, 27, 28, 29, 30, 0, + 31, 32, 33, 34, 35, 36, 0, 37, 38, 39, + 40, 41, 42, 7, 8, 43, 44, 0, 0, 0, + 0, 45, 46, 47, 48, 0, 0, 49, 0, 50, + 0, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 0, 0, 0, 0, 469, 14, 15, 470, 17, + 18, 471, 20, 472, 22, 0, 23, 0, 25, 26, + 0, 28, 29, 30, 0, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 46, 47, 48, + 1021, 0, 1022, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 1041, 0, + 1042, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 1122, 0, 1123, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 46, 47, 48, 1014, 0, 1015, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 0, 0, 694, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 1034, 0, 1035, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 1115, - 0, 1116, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 691, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 749, 288, 289, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 753, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 800, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 838, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 0, 0, 1019, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 796, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 0, 0, 1036, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 0, 0, 833, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, - 0, 1012, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 1029, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 1059, 288, 289, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 1066, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 1067, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 1068, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 0, 0, 1069, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 1060, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 0, 0, 1096, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 0, 0, 1061, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, - 0, 1062, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 1089, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 1130, 288, 289, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 1137, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 1139, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 1140, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 0, 0, 1153, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 1132, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 0, 0, 1156, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 0, 0, 1133, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, - 0, 1146, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 1149, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 1152, 288, 289, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 1159, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 1177, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 1179, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 0, 0, 1203, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 1170, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 0, 0, 1205, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 0, 0, 1172, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 0, - 0, 1196, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 1198, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 1200, 288, 289, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 1207, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 1217, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 457, 0, 0, 0, 0, 538, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 1210, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 493, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 538, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 539, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 455, 0, 0, 0, - 0, 535, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 491, 288, 289, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, + 0, 0, 567, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 612, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 535, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 536, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 564, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 613, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 626, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 627, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 609, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 610, 288, 289, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, + 0, 0, 628, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 629, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 623, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 624, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 625, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 630, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 631, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 719, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 626, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 627, 288, 289, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, + 0, 0, 720, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 721, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 628, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 715, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 716, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 797, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 836, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 837, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 717, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 793, 288, 289, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, + 0, 0, 860, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 970, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 831, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 832, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 855, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 971, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 991, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 1003, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 964, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 965, 288, 289, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, + 0, 0, 1105, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 1106, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 985, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 997, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 1098, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 0, 0, 0, 1112, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 1118, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 1172, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 0, 1099, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 0, 0, 0, 1105, 288, 289, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, + 0, 0, 1175, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 461, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 0, 0, 0, 0, 303, 0, 0, 0, 572, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 0, 0, 0, 1111, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 0, 0, 0, 1165, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 1168, 288, 289, 290, 291, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 576, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, + 303, 0, 0, 0, 591, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 593, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 0, 0, 0, 0, 303, 0, 0, 0, + 595, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 597, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, + 0, 0, 303, 0, 0, 0, 599, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 459, 288, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 601, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 569, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 573, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 588, 288, 289, + 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, + 0, 0, 603, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 605, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 0, 0, 0, 0, 303, 0, 0, 0, 607, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 590, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 592, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 594, 288, 289, 290, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 609, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, + 303, 0, 0, 0, 611, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 615, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 596, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 598, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 600, 288, 289, 290, 291, + 301, 302, 0, 0, 0, 0, 303, 0, 0, 0, + 617, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 619, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, + 0, 0, 303, 0, 0, 0, 621, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 602, 288, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 623, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 604, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 606, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 608, 288, 289, + 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, + 0, 0, 625, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 734, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 0, 0, 0, 0, 303, 0, 0, 0, 735, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 612, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 614, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 616, 288, 289, 290, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 0, + 0, 737, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, + 303, 0, 0, 0, 738, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 0, 0, 749, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 618, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 620, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 622, 288, 289, 290, 291, + 301, 302, 0, 0, 0, 0, 303, 0, 0, 0, + 773, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 0, 0, 876, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, + 0, 0, 303, 0, 0, 0, 878, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 730, 288, + 302, 0, 0, 0, 0, 303, 0, 0, 0, 880, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 731, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 0, 0, 733, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 0, 0, 734, 288, 289, + 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, + 0, 0, 882, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 0, 0, 883, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 0, 0, 0, 0, 303, 0, 0, 0, 984, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 0, 0, - 745, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 0, 0, 769, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 0, 0, 871, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 0, 0, 873, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 0, 0, 875, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 0, 0, 877, 288, 289, 290, 291, - 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 0, 0, 878, 288, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 457, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 0, - 0, 978, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 455, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 492, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 501, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 502, 288, 289, 290, 291, + 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, + 494, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 503, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, + 303, 0, 504, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 506, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, + 0, 0, 303, 0, 508, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 509, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 0, 0, 0, 0, 303, 0, 512, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 504, 288, 289, 290, + 302, 0, 0, 0, 0, 303, 0, 513, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 506, 288, 289, + 301, 302, 0, 0, 0, 0, 303, 0, 520, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 507, 288, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 563, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 510, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 511, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 518, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 560, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 561, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 562, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 568, 288, 289, 290, 291, + 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, + 564, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 565, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, + 303, 0, 571, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 590, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, + 0, 0, 303, 0, 592, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 594, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 0, 0, 0, 0, 303, 0, 596, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 587, 288, 289, 290, + 302, 0, 0, 0, 0, 303, 0, 598, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 589, 288, 289, + 301, 302, 0, 0, 0, 0, 303, 0, 600, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 591, 288, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 602, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 593, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 595, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 597, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 599, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 601, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 603, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 605, 288, 289, 290, 291, + 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, + 604, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 606, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, + 303, 0, 608, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 610, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, + 0, 0, 303, 0, 614, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 616, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 0, 0, 0, 0, 303, 0, 618, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 607, 288, 289, 290, + 302, 0, 0, 0, 0, 303, 0, 620, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 611, 288, 289, + 301, 302, 0, 0, 0, 0, 303, 0, 622, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 613, 288, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 624, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 615, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 617, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 619, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 621, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 676, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 681, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 689, 288, 289, 290, 291, + 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, + 679, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 684, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, + 303, 0, 692, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 695, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, + 0, 0, 303, 0, 696, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 702, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 0, 0, 0, 0, 303, 0, 709, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 692, 288, 289, 290, + 302, 0, 0, 0, 0, 303, 0, 710, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 693, 288, 289, + 301, 302, 0, 0, 0, 0, 303, 0, 711, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 699, 288, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 733, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 706, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 707, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 729, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302, 0, 870, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 0, 0, 0, - 0, 302, 0, 872, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 0, 0, - 0, 0, 302, 0, 874, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 0, - 0, 0, 0, 302, 0, 876, 288, 289, 290, 291, + 299, 300, 301, 302, 0, 0, 0, 0, 303, 0, + 875, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 0, 0, 0, 0, 303, + 0, 877, 289, 290, 291, 292, 293, 294, 295, 296, + 297, 298, 299, 300, 301, 302, 0, 0, 0, 0, + 303, 0, 879, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 0, 0, 0, + 0, 303, 0, 881, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 0, 0, + 0, 0, 303, 0, 886, 289, 290, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 0, + 0, 0, 0, 303, 0, 1020, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 0, 0, 0, 0, 303, 0, 1035, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 0, 0, 0, 0, 302, 0, 881, 288, 289, 290, + 302, 0, 0, 0, 0, 303, 0, 1045, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 0, 0, 0, 0, 302, 0, 1013, 288, 289, + 301, 302, 0, 0, 0, 0, 303, 0, 1171, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, - 300, 301, 0, 0, 0, 0, 302, 0, 1028, 288, + 300, 301, 302, 0, 0, 0, 0, 303, 0, 1215, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 0, 0, 0, 0, 302, 0, 1038, - 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 0, 0, 0, 0, 302, 0, - 1164, 288, 289, 290, 291, 292, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 0, 0, 0, 0, 302, - 0, 1208, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 0, 0, 0, 0, - 302 + 299, 300, 301, 302, 0, 0, 0, 0, 303 }; static const yytype_int16 yycheck[] = { - 6, 358, 359, 6, 277, 1047, 3, 264, 265, 266, - 6, 4, 50, 4, 6, 6, 6, 4, 4, 651, - 5, 4, 4, 70, 5, 4, 6, 70, 6, 1071, - 71, 7, 4, 7, 71, 4, 77, 78, 71, 70, - 77, 78, 71, 132, 77, 78, 71, 5, 77, 78, - 139, 6, 77, 78, 71, 70, 6, 71, 160, 161, - 77, 78, 132, 77, 78, 124, 125, 126, 725, 139, - 182, 721, 131, 0, 4, 7, 6, 189, 36, 37, - 38, 39, 184, 79, 42, 132, 122, 123, 81, 82, - 83, 84, 139, 132, 132, 134, 139, 13, 210, 140, - 212, 132, 138, 140, 140, 129, 130, 140, 139, 91, - 92, 140, 118, 119, 120, 140, 99, 123, 124, 91, - 92, 50, 128, 140, 139, 1167, 140, 119, 134, 6, - 127, 137, 122, 123, 140, 141, 142, 143, 112, 145, - 146, 147, 148, 134, 150, 151, 152, 140, 780, 155, - 129, 130, 139, 139, 139, 134, 139, 136, 139, 139, - 136, 139, 141, 132, 119, 122, 123, 173, 174, 133, - 122, 123, 33, 34, 138, 36, 182, 109, 110, 111, - 112, 146, 139, 1225, 132, 150, 459, 139, 6, 71, - 196, 197, 198, 843, 200, 77, 78, 203, 204, 71, - 206, 44, 54, 4, 47, 77, 78, 50, 214, 52, - 47, 132, 132, 50, 134, 221, 222, 223, 224, 225, + 6, 360, 361, 278, 1054, 6, 3, 265, 266, 267, + 6, 6, 4, 6, 50, 4, 6, 654, 4, 4, + 7, 4, 4, 7, 5, 4, 6, 5, 1078, 4, + 70, 6, 70, 132, 4, 5, 4, 4, 71, 6, + 139, 132, 71, 134, 77, 78, 71, 725, 77, 78, + 6, 70, 77, 78, 71, 6, 33, 34, 71, 36, + 77, 78, 160, 161, 77, 78, 36, 37, 38, 39, + 183, 7, 42, 0, 132, 44, 134, 190, 47, 122, + 123, 50, 729, 52, 79, 7, 132, 185, 13, 81, + 82, 83, 84, 139, 132, 138, 132, 140, 211, 139, + 213, 139, 91, 92, 122, 123, 132, 140, 134, 91, + 92, 140, 118, 119, 120, 140, 99, 123, 124, 50, + 139, 139, 128, 140, 1174, 112, 119, 140, 134, 132, + 127, 137, 122, 123, 140, 141, 142, 143, 139, 145, + 146, 147, 148, 139, 150, 151, 152, 784, 140, 155, + 129, 130, 136, 139, 139, 134, 139, 136, 139, 129, + 130, 139, 141, 119, 132, 71, 136, 134, 174, 175, + 848, 77, 78, 109, 110, 111, 112, 183, 530, 531, + 532, 146, 1232, 122, 123, 150, 461, 109, 110, 111, + 112, 197, 198, 199, 171, 201, 173, 71, 204, 205, + 139, 207, 179, 77, 78, 71, 183, 129, 130, 215, + 47, 77, 78, 50, 136, 52, 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, 260, 261, 262, 369, 140, 891, - 50, 267, 122, 123, 65, 66, 67, 68, 140, 275, - 129, 130, 73, 8, 277, 76, 388, 136, 138, 132, - 140, 134, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 122, 123, 124, - 125, 126, 122, 123, 7, 311, 131, 50, 71, 170, - 275, 172, 132, 319, 77, 78, 573, 178, 324, 139, - 132, 182, 328, 329, 122, 123, 8, 333, 132, 335, - 336, 337, 71, 122, 123, 139, 132, 343, 77, 78, - 153, 139, 348, 349, 71, 132, 159, 160, 161, 138, - 77, 78, 122, 123, 132, 361, 362, 363, 364, 365, - 366, 358, 359, 132, 329, 134, 372, 132, 138, 375, - 376, 184, 185, 379, 380, 381, 633, 140, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 398, 71, 50, 401, 131, 400, 52, 77, - 78, 140, 122, 123, 661, 140, 109, 110, 111, 112, - 71, 6, 7, 140, 379, 132, 77, 78, 138, 141, - 140, 1078, 1054, 1080, 146, 1082, 129, 130, 150, 122, - 123, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 4, 5, 139, 454, 131, - 122, 123, 122, 123, 47, 461, 459, 50, 140, 52, - 122, 123, 140, 132, 460, 134, 138, 50, 138, 1119, - 122, 123, 1122, 122, 123, 1125, 138, 36, 37, 38, - 39, 122, 123, 42, 490, 491, 138, 493, 494, 138, - 50, 497, 498, 499, 139, 356, 357, 138, 133, 772, - 773, 47, 1159, 138, 365, 4, 512, 7, 47, 515, - 516, 7, 122, 123, 133, 133, 522, 132, 4, 138, - 138, 527, 528, 529, 530, 490, 4, 132, 138, 535, - 536, 527, 528, 529, 530, 541, 133, 1187, 1195, 6, - 1197, 138, 1199, 549, 132, 551, 134, 512, 1205, 134, - 4, 5, 132, 275, 134, 528, 529, 530, 564, 132, - 566, 567, 1212, 132, 132, 1215, 134, 132, 1218, 134, - 573, 1221, 1229, 4, 1231, 132, 1233, 134, 122, 123, - 4, 938, 36, 37, 38, 39, 139, 132, 42, 311, - 132, 1241, 134, 1243, 138, 1245, 132, 132, 134, 44, - 132, 132, 47, 609, 610, 50, 328, 329, 7, 109, - 110, 111, 112, 109, 110, 111, 112, 623, 624, 625, - 626, 627, 628, 629, 8, 132, 632, 134, 132, 129, - 130, 637, 4, 129, 130, 132, 136, 134, 644, 122, - 123, 6, 899, 456, 457, 132, 8, 134, 654, 655, - 656, 657, 658, 122, 123, 138, 6, 379, 129, 130, - 666, 6, 132, 134, 134, 136, 5, 632, 139, 138, - 141, 132, 132, 534, 134, 129, 130, 122, 123, 132, - 132, 687, 136, 132, 139, 134, 547, 132, 132, 654, - 655, 656, 657, 132, 139, 129, 130, 132, 4, 134, - 134, 666, 136, 6, 132, 132, 134, 141, 6, 132, - 523, 134, 138, 138, 140, 140, 138, 1074, 140, 134, - 132, 136, 687, 132, 138, 138, 140, 140, 139, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 139, 139, 751, 752, 131, 138, 133, - 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 50, 769, 52, 490, 131, - 773, 138, 138, 140, 140, 781, 498, 499, 138, 138, - 140, 140, 138, 138, 140, 140, 138, 793, 140, 132, - 512, 797, 134, 515, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 664, 138, 134, 140, 131, 139, 815, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 830, 831, 832, 138, 131, 140, - 134, 6, 838, 839, 136, 94, 842, 6, 138, 845, - 140, 138, 138, 140, 140, 138, 138, 140, 140, 855, - 856, 857, 139, 6, 715, 716, 717, 6, 864, 862, - 134, 674, 675, 869, 677, 4, 679, 680, 139, 6, - 683, 684, 138, 138, 140, 140, 5, 138, 884, 140, - 845, 138, 138, 140, 140, 131, 138, 883, 140, 136, - 7, 134, 140, 7, 139, 139, 7, 7, 904, 132, - 132, 132, 132, 7, 910, 911, 133, 7, 6, 915, - 632, 91, 133, 139, 138, 133, 138, 6, 924, 4, - 135, 7, 735, 736, 737, 7, 94, 7, 934, 7, - 94, 7, 654, 655, 656, 657, 7, 94, 934, 7, - 7, 938, 6, 4, 666, 7, 952, 6, 136, 140, - 1207, 140, 6, 136, 960, 7, 7, 7, 964, 965, - 132, 132, 139, 6, 960, 687, 4, 6, 135, 6, - 6, 6, 134, 7, 1086, 6, 119, 50, 1235, 985, - 1237, 842, 7, 7, 7, 139, 52, 7, 801, 7, - 7, 997, 6, 133, 807, 7, 7, 133, 1255, 133, - 133, 7, 4, 816, 817, 818, 6, 139, 1014, 822, - 132, 139, 6, 6, 827, 828, 6, 50, 6, 4, - 4, 4, 4, 132, 1030, 838, 6, 6, 1034, 136, - 1036, 139, 133, 1039, 7, 6, 139, 1043, 57, 6, - 139, 6, 1048, 139, 905, 6, 139, 6, 1160, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 6, 5, 4, 6, 131, 6, 882, - 7, 1077, 7, 1079, 1039, 1081, 7, 1074, 939, 7, - 941, 139, 943, 139, 1090, 6, 90, 6, 136, 7, - 6, 4, 1098, 1099, 6, 6, 6, 6, 6, 1105, - 6, 6, 6, 135, 6, 5, 1112, 6, 6, 1115, - 6, 6, 4, 94, 927, 928, 929, 930, 6, 6, - 6, 4, 138, 845, 139, 6, 6, 6, 6, 1135, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 1147, 955, 7, 1150, 131, 6, 1153, 5, 136, - 6, 1157, 6, 966, 48, 6, 6, 6, 6, 1165, - 3, 4, 1168, 139, 139, 139, 9, 10, 11, 6, - 140, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 139, 139, 7, 139, 6, 6, 89, 6, - 6, 44, 92, 6, 6, 6, 6, 139, 6, 139, - 5, 140, 6, 139, 1027, 6, 1077, 63, 1079, 6, - 1081, 138, 65, 66, 67, 68, 69, 6, 6, 6, - 73, 6, 6, 76, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 6, 5, - 5, 140, 131, 6, 139, 139, 6, 139, 6, 6, - 6, 138, 105, 106, 107, 108, 139, 139, 6, 139, - 139, 139, 1085, 139, 6, 140, 6, 6, 6, 122, - 123, 6, 6, 6, 127, 6, 6, 6, 1135, 132, - 792, 800, 3, 3, 137, 342, 887, 140, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, - 5, -1, 7, 1126, 9, 10, 11, 1039, -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, -1, - -1, -1, -1, -1, -1, -1, 3, 4, 5, -1, - -1, -1, 9, 10, 11, -1, -1, 14, 15, 16, + 256, 257, 258, 259, 260, 261, 262, 263, 371, 896, + 6, 44, 268, 6, 47, 71, 140, 50, 5, 132, + 276, 77, 78, 71, 140, 132, 139, 390, 132, 77, + 78, 132, 7, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 278, 36, + 37, 38, 39, 132, 70, 42, 312, 7, 122, 123, + 71, 276, 132, 132, 320, 134, 77, 78, 576, 325, + 71, 122, 123, 329, 330, 139, 77, 78, 334, 71, + 336, 337, 338, 132, 140, 77, 78, 138, 344, 122, + 123, 133, 140, 349, 350, 351, 138, 54, 71, 132, + 52, 122, 123, 132, 77, 78, 139, 363, 364, 365, + 366, 367, 368, 360, 361, 330, 132, 138, 374, 140, + 139, 377, 378, 139, 50, 381, 382, 383, 636, 140, + 50, 358, 359, 4, 109, 110, 111, 112, 47, 140, + 367, 50, 50, 52, 400, 153, 50, 403, 140, 4, + 5, 159, 160, 161, 129, 130, 664, 122, 123, 109, + 110, 111, 112, 133, 6, 7, 381, 140, 138, 122, + 123, 133, 402, 138, 1061, 140, 138, 185, 186, 129, + 130, 36, 37, 38, 39, 138, 133, 42, 1085, 50, + 1087, 138, 1089, 139, 65, 66, 67, 68, 1126, 47, + 456, 1129, 73, 133, 1132, 76, 47, 463, 138, 141, + 122, 123, 122, 123, 146, 129, 130, 462, 150, 132, + 132, 134, 122, 123, 6, 122, 123, 139, 138, 122, + 123, 461, 122, 123, 122, 123, 492, 493, 138, 495, + 496, 138, 4, 499, 500, 501, 129, 130, 138, 4, + 138, 776, 777, 136, 122, 123, 122, 123, 514, 132, + 4, 517, 518, 122, 123, 132, 1194, 134, 524, 1166, + 138, 134, 138, 529, 530, 531, 532, 492, 132, 138, + 134, 132, 538, 539, 529, 530, 531, 532, 544, 132, + 4, 1219, 122, 123, 1222, 132, 552, 1225, 554, 514, + 1228, 122, 123, 4, 132, 1202, 134, 1204, 138, 1206, + 537, 567, 139, 569, 570, 1212, 132, 138, 134, 132, + 1248, 134, 1250, 550, 1252, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 132, 944, 134, 132, 131, 1236, + 132, 1238, 134, 1240, 276, 132, 576, 134, 129, 130, + 8, 7, 132, 134, 134, 136, 612, 613, 139, 132, + 141, 124, 125, 126, 132, 132, 134, 134, 131, 4, + 626, 627, 628, 629, 630, 631, 632, 6, 132, 635, + 312, 129, 130, 132, 640, 134, 134, 132, 136, 134, + 132, 647, 134, 141, 6, 132, 904, 329, 330, 132, + 5, 657, 658, 659, 660, 661, 122, 123, 124, 125, + 126, 6, 132, 669, 134, 131, 138, 132, 140, 134, + 635, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 138, 690, 140, 138, 131, 140, 134, + 667, 136, 657, 658, 659, 660, 138, 6, 140, 381, + 458, 459, 132, 132, 669, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 138, + 132, 140, 1081, 131, 138, 690, 140, 50, 138, 52, + 140, 138, 140, 140, 138, 138, 140, 140, 138, 138, + 140, 140, 719, 720, 721, 138, 138, 140, 140, 755, + 756, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 139, 138, 525, 140, 131, + 138, 138, 140, 140, 138, 138, 140, 140, 138, 785, + 140, 138, 138, 140, 140, 138, 138, 140, 140, 132, + 138, 797, 140, 773, 138, 801, 140, 777, 132, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 492, 132, 132, 819, 131, 4, 132, 132, 500, 501, + 139, 139, 132, 134, 6, 139, 139, 134, 134, 835, + 836, 837, 514, 6, 136, 517, 139, 843, 844, 94, + 6, 847, 6, 6, 850, 134, 4, 139, 131, 6, + 5, 136, 134, 7, 860, 861, 862, 7, 139, 7, + 140, 139, 7, 869, 132, 132, 132, 132, 874, 133, + 847, 7, 7, 6, 91, 133, 139, 138, 138, 133, + 6, 4, 135, 889, 94, 850, 7, 867, 7, 7, + 7, 94, 7, 888, 7, 94, 7, 7, 7, 4, + 6, 136, 140, 909, 140, 6, 136, 7, 7, 915, + 916, 8, 7, 132, 920, 139, 132, 6, 4, 677, + 678, 6, 680, 929, 682, 683, 6, 135, 686, 687, + 6, 6, 134, 910, 940, 7, 6, 6, 119, 7, + 7, 7, 50, 139, 7, 940, 7, 944, 52, 7, + 7, 7, 958, 635, 133, 133, 1214, 133, 133, 7, + 966, 7, 4, 6, 970, 971, 6, 139, 945, 139, + 947, 966, 949, 132, 6, 657, 658, 659, 660, 50, + 1093, 739, 740, 741, 1242, 991, 1244, 669, 6, 6, + 4, 4, 4, 132, 4, 6, 139, 1003, 6, 133, + 7, 6, 139, 57, 1262, 136, 6, 139, 690, 139, + 6, 6, 139, 6, 6, 1021, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 5, 1037, 4, 6, 131, 1041, 7, 1043, 7, 7, + 1046, 7, 6, 140, 1050, 139, 139, 805, 6, 1055, + 6, 90, 7, 811, 1167, 136, 6, 4, 6, 94, + 6, 6, 820, 821, 822, 6, 6, 6, 826, 6, + 135, 6, 6, 831, 832, 833, 8, 5, 1084, 6, + 1086, 1046, 1088, 6, 1081, 843, 6, 6, 4, 6, + 139, 1097, 6, 6, 6, 4, 6, 138, 6, 1105, + 1106, 7, 6, 136, 6, 5, 1112, 1084, 6, 1086, + 48, 1088, 6, 1119, 6, 6, 1122, 6, 139, 6, + 139, 6, 89, 7, 140, 6, 6, 6, 6, 887, + 139, 92, 6, 139, 6, 139, 1142, 139, 6, 6, + 139, 139, 6, 5, 796, 6, 140, 6, 1154, 139, + 138, 1157, 63, 6, 1160, 6, 6, 6, 1164, 6, + 6, 6, 140, 5, 5, 139, 1172, 6, 850, 1175, + 6, 6, 6, 138, 932, 933, 934, 935, 6, 139, + 139, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 139, 139, 6, 140, 131, + 6, 133, 6, 961, 3, 4, 139, 1142, 139, 139, + 9, 10, 11, 139, 972, 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, + 804, 6, 6, 6, 6, 44, 12, 13, 6, 3, + 3, 343, -1, 892, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, + 69, -1, -1, -1, 73, -1, 1034, 76, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, + -1, 57, 58, -1, 60, 61, 62, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 86, 87, 88, 122, 123, -1, -1, -1, 127, -1, + -1, -1, -1, 132, 1092, -1, -1, -1, 137, -1, + -1, 140, -1, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, 1046, 3, 4, 5, -1, 7, + -1, 9, 10, 11, 140, 1133, 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, -1, -1, -1, -1, + -1, -1, -1, 3, 4, 5, -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, -1, -1, -1, -1, + -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, + -1, 99, -1, -1, -1, -1, -1, 105, 106, 107, + 108, 109, 110, 111, 112, 65, 66, 67, 68, 69, + -1, -1, -1, 73, 122, 123, 76, -1, -1, 127, + -1, 129, 130, -1, 132, -1, 134, -1, 136, 137, + -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 105, 106, 107, 108, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 122, 123, -1, -1, -1, 127, -1, -1, + -1, -1, 132, -1, 3, 4, -1, 137, -1, 139, + 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, -1, 44, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, + 69, -1, -1, -1, 73, -1, -1, 76, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, + -1, 57, 58, -1, 60, 61, 62, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 86, 87, 88, 122, 123, -1, -1, -1, 127, -1, + -1, -1, -1, 132, -1, 3, 4, -1, 137, -1, + 139, 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, 140, -1, 44, 12, 13, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, + 68, 69, 6, -1, -1, 73, -1, -1, 76, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, -1, 57, 58, -1, 60, 61, 62, -1, -1, + -1, -1, -1, 6, -1, -1, -1, 105, 106, 107, + 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 86, 87, 88, 122, 123, -1, -1, -1, 127, + -1, -1, -1, -1, 132, -1, 3, 4, -1, 137, + -1, 139, 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, -1, 44, -1, -1, - -1, -1, -1, -1, 99, -1, -1, -1, -1, -1, - 105, 106, 107, 108, 109, 110, 111, 112, 65, 66, - 67, 68, 69, -1, -1, -1, 73, 122, 123, 76, - -1, -1, 127, -1, 129, 130, -1, 132, -1, 134, - -1, 136, 137, -1, 139, -1, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 105, 106, - 107, 108, 131, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 140, -1, 44, -1, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, 65, 66, + 67, 68, 69, -1, -1, -1, 73, -1, -1, 76, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, -1, -1, - 127, -1, -1, -1, -1, 132, -1, 3, 4, -1, + 127, -1, -1, -1, -1, 132, -1, 3, 4, 5, 137, -1, 139, 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, -1, 44, 12, - 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, - 66, 67, 68, 69, -1, -1, -1, 73, -1, -1, - 76, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, -1, 55, -1, 57, 58, -1, 60, 61, 62, + 36, 37, 38, 39, 3, 4, 42, 12, 13, -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, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, + 55, -1, 57, 58, -1, 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 86, 87, 88, 122, 123, -1, -1, - -1, 127, -1, -1, -1, -1, 132, -1, 3, 4, - -1, 137, -1, 139, 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, 140, -1, 44, - 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 86, 87, 88, -1, -1, 122, 123, -1, -1, + -1, 127, -1, -1, -1, -1, 132, -1, -1, -1, + -1, 137, -1, 139, -1, -1, 105, 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 65, 66, 67, 68, 69, 6, -1, -1, 73, -1, - -1, 76, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, -1, 55, -1, 57, 58, -1, 60, 61, - 62, -1, -1, -1, -1, -1, 6, -1, -1, -1, - 105, 106, 107, 108, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 86, 87, 88, 122, 123, -1, - -1, -1, 127, -1, -1, -1, -1, 132, -1, 3, - 4, -1, 137, -1, 139, 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, 140, -1, - 44, -1, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, 65, 66, 67, 68, 69, -1, -1, -1, 73, - -1, -1, 76, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 105, 106, 107, 108, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, - -1, -1, -1, 127, -1, -1, -1, -1, 132, -1, - 3, 4, 5, 137, -1, 139, 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, 3, 4, 42, - 12, 13, -1, 9, 10, 11, -1, -1, 14, 15, + -1, -1, 6, 122, 123, -1, -1, -1, 127, -1, + -1, -1, -1, 132, -1, 140, 135, -1, 137, -1, + 139, 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, -1, -1, 3, 4, 12, 13, + -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, -1, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + -1, 55, -1, 57, 58, -1, 60, 61, 62, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 105, 106, 107, 108, 131, -1, -1, + -1, -1, 86, 87, 88, -1, -1, -1, -1, -1, + 122, 123, -1, -1, -1, 127, -1, -1, -1, -1, + 132, -1, -1, 135, -1, 137, -1, 139, 105, 106, + 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 122, 123, -1, -1, 63, + 127, -1, -1, -1, -1, 132, 140, 3, 4, -1, + 137, -1, 139, 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, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, -1, 55, -1, 57, 58, -1, 60, 61, - 62, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 105, 106, 107, 108, -1, -1, -1, -1, - -1, -1, -1, -1, 86, 87, 88, -1, -1, 122, - 123, -1, -1, -1, 127, -1, -1, -1, -1, 132, - -1, -1, -1, -1, 137, -1, 139, -1, -1, 105, - 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 6, 122, 123, -1, -1, - -1, 127, -1, -1, -1, -1, 132, -1, 140, 135, - -1, 137, -1, 139, 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, -1, -1, 3, - 4, 12, 13, -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, -1, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, -1, 55, -1, 57, 58, -1, 60, - 61, 62, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 105, 106, 107, 108, - 131, -1, -1, -1, -1, 86, 87, 88, -1, -1, - -1, -1, -1, 122, 123, -1, -1, -1, 127, -1, - -1, -1, -1, 132, -1, -1, 135, -1, 137, -1, - 139, 105, 106, 107, 108, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, - -1, -1, 63, 127, -1, -1, -1, -1, 132, 140, - 3, 4, -1, 137, -1, 139, 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, - -1, 44, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, 65, 66, 67, 68, 69, -1, 3, 4, - 73, -1, -1, 76, 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, 105, 106, 107, 108, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, - 123, -1, -1, -1, 127, 3, 4, 5, -1, 132, - -1, 9, 10, 11, 137, -1, 14, 15, 16, 17, + -1, -1, -1, -1, -1, -1, -1, -1, 44, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, 65, + 66, 67, 68, 69, -1, 3, 4, 73, -1, -1, + 76, 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, -1, -1, -1, -1, - 105, 106, 107, 108, -1, -1, 12, 13, 6, -1, - -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, - -1, -1, 127, -1, -1, -1, -1, 132, -1, -1, - -1, -1, 137, -1, -1, -1, -1, -1, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, - -1, 57, 58, -1, 60, 61, 62, 105, 106, 107, - 108, 12, 13, -1, -1, 6, -1, -1, -1, -1, + 28, 29, 30, 31, 32, 33, 34, -1, -1, 105, + 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 122, 123, -1, -1, + -1, 127, 3, 4, 5, -1, 132, -1, 9, 10, + 11, 137, -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, -1, -1, -1, -1, 105, 106, 107, + 108, -1, 6, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, 122, 123, -1, -1, -1, 127, - 86, 87, 88, -1, 132, 6, -1, -1, -1, 137, - -1, -1, -1, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, -1, 55, 6, 57, 58, -1, 60, - 61, 62, 12, 13, -1, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, 140, 86, 87, 88, 6, -1, - -1, -1, -1, -1, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, -1, 55, -1, 57, 58, 6, - 60, 61, 62, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 86, 87, 88, 140, - 131, 6, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 8, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 140, -1, -1, -1, -1, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 8, - -1, -1, -1, 131, -1, -1, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 8, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 8, -1, -1, -1, 131, -1, -1, -1, + -1, -1, -1, -1, 132, -1, -1, -1, 6, 137, + -1, -1, -1, -1, -1, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, -1, 55, 6, 57, 58, + -1, 60, 61, 62, 105, 106, 107, 108, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 8, -1, -1, -1, 131, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, - -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, + -1, 122, 123, -1, -1, -1, 127, 86, 87, 88, + 6, 132, -1, -1, -1, -1, 137, -1, -1, -1, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 6, 55, -1, 57, 58, -1, 60, 61, 62, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 6, -1, -1, -1, 131, -1, -1, + -1, 140, 86, 87, 88, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 6, + -1, -1, -1, 131, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 6, -1, + -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 140, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 8, -1, -1, -1, 131, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, -1, 0, 1, -1, 131, 4, -1, -1, -1, - -1, -1, -1, -1, 12, 13, -1, -1, -1, -1, + 126, 8, -1, -1, -1, 131, -1, -1, -1, -1, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, 35, 131, -1, - -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, - 58, 59, 60, 61, 62, -1, 64, 65, 66, 67, - 68, 69, -1, 71, 72, 73, 74, 75, 76, -1, - -1, 79, 80, 4, -1, -1, -1, 85, 86, 87, - 88, 12, 13, 91, -1, 93, -1, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, -1, -1, -1, - -1, -1, -1, -1, 35, -1, -1, -1, -1, 40, + 123, 124, 125, 126, 8, -1, -1, -1, 131, -1, + -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 8, -1, -1, -1, 131, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 8, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 8, -1, -1, -1, 131, -1, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + -1, -1, -1, -1, 131, -1, -1, -1, -1, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, -1, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, -1, 0, + 1, -1, 131, 4, -1, -1, -1, -1, -1, -1, + -1, 12, 13, -1, -1, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, 35, -1, -1, -1, -1, 40, 41, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, 61, 62, -1, 64, 65, 66, 67, 68, 69, -1, - 71, 72, 73, 74, 75, 76, 12, 13, 79, 80, - -1, -1, -1, -1, 85, 86, 87, 88, -1, -1, + 71, 72, 73, 74, 75, 76, -1, -1, 79, 80, + 4, -1, -1, -1, 85, 86, 87, 88, 12, 13, 91, -1, 93, -1, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, -1, -1, -1, -1, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, - -1, 57, 58, -1, 60, 61, 62, -1, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - 86, 87, 88, 138, -1, 140, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, 138, -1, 140, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, -1, -1, 140, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, -1, -1, 140, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, -1, -1, 140, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, - -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, -1, -1, 140, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, -1, -1, 140, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, -1, -1, 140, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, - -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, -1, -1, 140, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, -1, -1, 140, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, -1, -1, 140, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, - -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, -1, -1, 140, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, -1, -1, 140, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, -1, -1, 140, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, - -1, 140, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, -1, -1, 140, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, -1, -1, 140, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, -1, -1, 140, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, 133, -1, -1, -1, - -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, 138, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, 138, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, 138, 113, 114, 115, 116, + 101, 102, 103, 104, -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, 53, + -1, 55, 56, 57, 58, 59, 60, 61, 62, -1, + 64, 65, 66, 67, 68, 69, -1, 71, 72, 73, + 74, 75, 76, 12, 13, 79, 80, -1, -1, -1, + -1, 85, 86, 87, 88, -1, -1, 91, -1, 93, + -1, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, -1, -1, -1, -1, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, -1, 55, -1, 57, 58, + -1, 60, 61, 62, -1, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, 86, 87, 88, + 138, -1, 140, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, 138, -1, + 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, 138, -1, 140, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, -1, -1, 140, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, + 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, -1, -1, 140, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, + 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, -1, -1, 140, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, + 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, -1, -1, 140, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, + 140, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, -1, -1, 140, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + -1, -1, -1, -1, 140, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + -1, -1, 140, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, 133, -1, -1, -1, -1, 138, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, 138, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, 138, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, 138, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, 138, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, 138, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, 138, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, + -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, + 138, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, -1, -1, -1, -1, -1, 138, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + -1, -1, 138, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, + -1, 131, -1, -1, -1, 135, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, 135, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, @@ -2631,8 +2643,12 @@ static const yytype_int16 yycheck[] = 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, -1, 135, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, -1, -1, -1, -1, 131, -1, -1, - -1, 135, 113, 114, 115, 116, 117, 118, 119, 120, + 124, 125, 126, -1, -1, -1, -1, 131, -1, 133, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, + 133, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, + -1, 133, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, 133, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, @@ -2734,12 +2750,7 @@ static const yytype_int16 yycheck[] = 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, 133, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, -1, -1, -1, -1, 131, -1, - 133, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, -1, -1, 131, - -1, 133, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, -1, -1, -1, -1, - 131 + 123, 124, 125, 126, -1, -1, -1, -1, 131 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -2762,117 +2773,117 @@ static const yytype_uint8 yystos[] = 206, 207, 219, 13, 50, 132, 6, 139, 6, 6, 132, 139, 132, 132, 70, 132, 139, 132, 132, 70, 139, 132, 132, 54, 50, 132, 50, 50, 50, 47, - 50, 52, 52, 44, 47, 50, 52, 47, 50, 132, - 139, 122, 123, 132, 139, 208, 209, 208, 139, 44, - 47, 50, 139, 208, 50, 50, 47, 4, 99, 139, - 4, 6, 47, 4, 4, 4, 132, 132, 132, 4, - 139, 215, 4, 132, 132, 6, 134, 4, 4, 5, - 139, 5, 139, 4, 134, 136, 141, 165, 139, 5, - 219, 132, 134, 132, 134, 132, 134, 132, 134, 132, - 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, - 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, - 134, 132, 134, 132, 134, 132, 134, 132, 134, 132, - 134, 132, 134, 132, 132, 132, 132, 7, 132, 4, - 206, 206, 206, 206, 135, 139, 206, 4, 91, 92, - 4, 4, 175, 176, 177, 206, 6, 6, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 131, 6, 6, 206, 5, 206, 206, 4, - 44, 123, 175, 183, 206, 213, 214, 206, 206, 132, - 206, 214, 206, 206, 132, 214, 206, 206, 123, 139, - 206, 211, 213, 132, 206, 139, 132, 132, 5, 211, - 212, 212, 212, 132, 171, 172, 173, 174, 132, 132, - 4, 208, 208, 208, 206, 206, 122, 123, 139, 139, - 208, 139, 139, 139, 122, 123, 132, 177, 208, 139, - 212, 211, 132, 4, 6, 134, 134, 177, 6, 139, - 134, 134, 6, 206, 206, 206, 136, 206, 139, 94, - 206, 206, 206, 6, 6, 177, 6, 177, 134, 206, - 4, 139, 149, 6, 206, 206, 206, 206, 206, 206, + 50, 52, 52, 44, 47, 50, 52, 47, 50, 52, + 132, 139, 122, 123, 132, 139, 208, 209, 208, 139, + 44, 47, 50, 139, 208, 50, 50, 47, 4, 99, + 139, 4, 6, 47, 4, 4, 4, 132, 132, 132, + 4, 139, 215, 4, 132, 132, 6, 134, 4, 4, + 5, 139, 5, 139, 4, 134, 136, 141, 165, 139, + 5, 219, 132, 134, 132, 134, 132, 134, 132, 134, + 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, + 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, + 132, 134, 132, 134, 132, 134, 132, 134, 132, 134, + 132, 134, 132, 134, 132, 132, 132, 132, 7, 132, + 4, 206, 206, 206, 206, 135, 139, 206, 4, 91, + 92, 4, 4, 175, 176, 177, 206, 6, 6, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 131, 6, 6, 206, 5, 206, 206, + 4, 44, 123, 175, 183, 206, 213, 214, 206, 206, + 132, 206, 214, 206, 206, 132, 214, 206, 206, 123, + 139, 206, 211, 213, 132, 206, 139, 132, 132, 5, + 211, 212, 212, 212, 132, 171, 172, 173, 174, 132, + 132, 132, 4, 208, 208, 208, 206, 206, 122, 123, + 139, 139, 208, 139, 139, 139, 122, 123, 132, 177, + 208, 139, 212, 211, 132, 4, 6, 134, 134, 177, + 6, 139, 134, 134, 6, 206, 206, 206, 136, 206, + 139, 94, 206, 206, 206, 6, 6, 177, 6, 177, + 134, 206, 4, 139, 149, 6, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 4, 218, + 219, 218, 218, 218, 206, 5, 134, 133, 7, 112, + 214, 135, 7, 164, 165, 136, 7, 134, 140, 44, + 47, 50, 52, 170, 6, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 4, 218, 219, 218, - 218, 218, 206, 5, 134, 133, 7, 112, 214, 135, - 7, 164, 165, 136, 7, 134, 140, 44, 47, 50, - 52, 170, 6, 206, 206, 206, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 206, 206, 6, 133, - 138, 138, 133, 134, 139, 206, 213, 8, 124, 138, - 140, 133, 133, 206, 133, 140, 133, 133, 206, 140, - 133, 133, 139, 140, 214, 124, 7, 206, 133, 206, - 206, 206, 7, 7, 201, 201, 206, 132, 132, 132, - 132, 206, 206, 133, 138, 138, 138, 208, 208, 176, - 176, 138, 206, 206, 206, 206, 187, 138, 177, 7, - 202, 7, 206, 6, 206, 206, 140, 214, 206, 206, - 133, 133, 133, 91, 138, 177, 139, 8, 133, 135, - 140, 140, 206, 135, 165, 206, 4, 81, 82, 83, - 84, 140, 152, 156, 159, 161, 162, 133, 135, 133, - 135, 133, 135, 133, 135, 133, 135, 133, 135, 133, - 135, 133, 135, 133, 135, 133, 135, 133, 135, 138, - 138, 133, 135, 133, 135, 133, 135, 133, 135, 133, - 135, 133, 135, 138, 138, 138, 138, 138, 138, 134, - 136, 133, 138, 138, 133, 133, 6, 138, 206, 211, - 211, 140, 7, 136, 164, 165, 219, 206, 6, 4, - 4, 139, 216, 135, 139, 139, 139, 139, 8, 6, - 119, 146, 214, 206, 7, 135, 139, 206, 206, 206, - 213, 206, 213, 94, 7, 7, 133, 7, 94, 7, - 7, 133, 94, 7, 7, 214, 140, 139, 206, 133, - 7, 140, 133, 133, 206, 211, 4, 200, 6, 133, - 167, 206, 219, 167, 167, 167, 133, 133, 136, 208, - 206, 206, 140, 140, 206, 138, 138, 138, 71, 77, - 78, 197, 198, 208, 140, 184, 206, 6, 206, 133, - 135, 135, 140, 135, 135, 7, 7, 7, 136, 206, - 140, 206, 206, 7, 136, 135, 136, 165, 218, 140, - 153, 132, 132, 139, 163, 6, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 4, 214, 218, 206, 135, - 6, 6, 135, 4, 91, 92, 206, 6, 6, 6, - 7, 134, 215, 217, 6, 214, 214, 214, 214, 206, - 119, 218, 133, 138, 208, 214, 140, 8, 50, 211, - 211, 7, 211, 50, 52, 211, 211, 7, 52, 211, - 211, 140, 214, 6, 7, 139, 7, 7, 7, 63, - 199, 6, 7, 133, 133, 133, 133, 7, 7, 4, - 138, 138, 138, 140, 208, 208, 208, 6, 139, 132, - 140, 198, 138, 197, 6, 139, 6, 6, 50, 6, - 6, 211, 211, 211, 4, 138, 8, 8, 133, 4, - 4, 6, 4, 6, 132, 206, 206, 210, 211, 139, - 133, 135, 133, 135, 133, 135, 133, 135, 135, 133, - 133, 133, 164, 7, 164, 165, 136, 7, 6, 215, - 206, 138, 140, 140, 140, 140, 140, 6, 6, 146, - 206, 6, 140, 206, 139, 57, 169, 169, 211, 6, - 139, 139, 6, 6, 211, 139, 6, 6, 140, 5, - 206, 211, 211, 211, 4, 6, 211, 7, 7, 7, - 7, 211, 211, 6, 7, 206, 206, 206, 139, 138, - 140, 138, 140, 138, 140, 206, 211, 206, 206, 208, - 140, 214, 139, 6, 6, 90, 206, 206, 206, 6, - 7, 165, 150, 206, 138, 138, 138, 140, 151, 206, - 136, 211, 219, 206, 6, 4, 216, 6, 135, 215, - 6, 6, 6, 6, 218, 138, 135, 206, 208, 6, - 6, 6, 206, 206, 6, 206, 5, 138, 6, 6, - 94, 168, 206, 6, 211, 211, 211, 211, 6, 4, - 206, 219, 140, 133, 138, 140, 176, 208, 6, 188, - 208, 6, 189, 208, 6, 190, 140, 138, 133, 140, - 138, 140, 206, 211, 138, 140, 8, 140, 133, 139, - 206, 219, 133, 138, 206, 206, 211, 139, 138, 140, - 4, 6, 6, 6, 7, 6, 136, 6, 206, 140, - 140, 140, 140, 5, 206, 48, 6, 6, 6, 6, - 6, 139, 6, 6, 139, 206, 140, 138, 139, 138, - 139, 138, 139, 6, 211, 7, 139, 206, 6, 140, - 89, 206, 206, 214, 6, 6, 154, 206, 138, 138, - 210, 206, 6, 215, 92, 138, 6, 6, 6, 6, - 6, 138, 139, 210, 176, 138, 140, 206, 208, 197, - 206, 208, 197, 206, 208, 197, 138, 140, 211, 177, - 140, 206, 140, 140, 140, 139, 206, 206, 140, 6, - 206, 5, 206, 140, 140, 206, 140, 138, 140, 140, - 138, 140, 140, 138, 140, 211, 6, 63, 140, 185, - 139, 6, 6, 151, 133, 138, 6, 139, 138, 138, - 140, 6, 140, 6, 191, 206, 6, 6, 192, 206, - 6, 6, 193, 206, 6, 140, 206, 197, 177, 140, - 157, 206, 210, 206, 5, 139, 140, 139, 140, 139, - 140, 6, 6, 140, 140, 186, 6, 139, 133, 140, - 140, 138, 197, 6, 194, 197, 6, 195, 197, 6, - 196, 197, 155, 218, 160, 139, 6, 5, 140, 139, - 140, 139, 140, 139, 140, 138, 140, 139, 210, 140, - 6, 197, 6, 197, 6, 197, 218, 6, 158, 218, - 140, 6, 140, 140, 140, 138, 140, 6, 6, 6, - 6, 218, 6 + 6, 133, 138, 138, 133, 134, 139, 206, 213, 8, + 124, 138, 140, 133, 133, 206, 133, 140, 133, 133, + 206, 140, 133, 133, 139, 140, 214, 124, 7, 206, + 133, 206, 206, 206, 7, 7, 201, 201, 206, 132, + 132, 132, 132, 206, 206, 206, 133, 138, 138, 138, + 208, 208, 176, 176, 138, 206, 206, 206, 206, 187, + 138, 177, 7, 202, 7, 206, 6, 206, 206, 140, + 214, 206, 206, 133, 133, 133, 91, 138, 177, 139, + 8, 133, 135, 140, 140, 206, 135, 165, 206, 4, + 81, 82, 83, 84, 140, 152, 156, 159, 161, 162, + 133, 135, 133, 135, 133, 135, 133, 135, 133, 135, + 133, 135, 133, 135, 133, 135, 133, 135, 133, 135, + 133, 135, 138, 138, 133, 135, 133, 135, 133, 135, + 133, 135, 133, 135, 133, 135, 138, 138, 138, 138, + 138, 138, 134, 136, 133, 138, 138, 133, 133, 6, + 138, 206, 211, 211, 140, 7, 136, 164, 165, 219, + 206, 6, 4, 4, 139, 216, 135, 139, 139, 139, + 139, 8, 6, 119, 146, 214, 206, 7, 135, 139, + 206, 206, 206, 213, 206, 213, 94, 7, 7, 133, + 7, 94, 7, 7, 133, 94, 7, 7, 214, 140, + 139, 206, 133, 7, 140, 133, 133, 206, 211, 4, + 200, 6, 133, 167, 206, 219, 167, 167, 167, 133, + 133, 133, 136, 208, 206, 206, 140, 140, 206, 138, + 138, 138, 71, 77, 78, 197, 198, 208, 140, 184, + 206, 6, 206, 133, 135, 135, 140, 135, 135, 7, + 7, 7, 136, 206, 140, 206, 206, 7, 136, 135, + 136, 165, 218, 140, 153, 132, 132, 139, 163, 6, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 4, + 214, 218, 206, 135, 6, 6, 135, 4, 91, 92, + 206, 6, 6, 6, 7, 134, 215, 217, 6, 214, + 214, 214, 214, 206, 119, 218, 133, 138, 208, 214, + 140, 8, 50, 211, 211, 7, 211, 50, 52, 211, + 211, 7, 52, 211, 211, 140, 214, 6, 7, 139, + 7, 7, 7, 63, 199, 6, 7, 133, 133, 133, + 133, 7, 7, 7, 4, 138, 138, 138, 140, 208, + 208, 208, 6, 139, 132, 140, 198, 138, 197, 6, + 139, 6, 6, 50, 6, 6, 211, 211, 211, 4, + 138, 8, 8, 133, 4, 4, 6, 4, 6, 132, + 206, 206, 210, 211, 139, 133, 135, 133, 135, 133, + 135, 133, 135, 135, 133, 133, 133, 164, 7, 164, + 165, 136, 7, 6, 215, 206, 138, 140, 140, 140, + 140, 140, 6, 6, 146, 206, 6, 140, 206, 139, + 57, 169, 169, 211, 6, 139, 139, 6, 6, 211, + 139, 6, 6, 140, 5, 206, 211, 211, 211, 4, + 6, 211, 7, 7, 7, 7, 211, 211, 211, 6, + 7, 206, 206, 206, 139, 138, 140, 138, 140, 138, + 140, 206, 211, 206, 206, 208, 140, 214, 139, 6, + 6, 90, 206, 206, 206, 6, 7, 165, 150, 206, + 138, 138, 138, 140, 151, 206, 136, 211, 219, 206, + 6, 4, 216, 6, 135, 215, 6, 6, 6, 6, + 218, 138, 135, 206, 208, 6, 6, 6, 206, 206, + 6, 206, 5, 138, 6, 6, 94, 168, 206, 6, + 211, 211, 211, 211, 6, 4, 6, 206, 219, 140, + 133, 138, 140, 176, 208, 6, 188, 208, 6, 189, + 208, 6, 190, 140, 138, 133, 140, 138, 140, 206, + 211, 138, 140, 8, 140, 133, 139, 206, 219, 133, + 138, 206, 206, 211, 139, 138, 140, 4, 6, 6, + 6, 7, 6, 136, 6, 206, 140, 140, 140, 140, + 5, 206, 48, 6, 6, 6, 6, 6, 139, 6, + 6, 139, 206, 140, 138, 139, 138, 139, 138, 139, + 6, 211, 7, 139, 206, 6, 140, 89, 206, 206, + 214, 6, 6, 154, 206, 138, 138, 210, 206, 6, + 215, 92, 138, 6, 6, 6, 6, 6, 138, 139, + 210, 176, 138, 140, 206, 208, 197, 206, 208, 197, + 206, 208, 197, 138, 140, 211, 177, 140, 206, 140, + 140, 140, 139, 206, 206, 140, 6, 206, 5, 206, + 140, 140, 206, 140, 138, 140, 140, 138, 140, 140, + 138, 140, 211, 6, 63, 140, 185, 139, 6, 6, + 151, 133, 138, 6, 139, 138, 138, 140, 6, 140, + 6, 191, 206, 6, 6, 192, 206, 6, 6, 193, + 206, 6, 140, 206, 197, 177, 140, 157, 206, 210, + 206, 5, 139, 140, 139, 140, 139, 140, 6, 6, + 140, 140, 186, 6, 139, 133, 140, 140, 138, 197, + 6, 194, 197, 6, 195, 197, 6, 196, 197, 155, + 218, 160, 139, 6, 5, 140, 139, 140, 139, 140, + 139, 140, 138, 140, 139, 210, 140, 6, 197, 6, + 197, 6, 197, 218, 6, 158, 218, 140, 6, 140, + 140, 140, 138, 140, 6, 6, 6, 6, 218, 6 }; #define yyerrok (yyerrstatus = 0) @@ -5250,6 +5261,26 @@ yyreduce: case 117: #line 1477 "Gmsh.y" + { + int num = (int)(yyvsp[(4) - (8)].d); + if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ + yymsg(0, "Physical volume %d already exists", num); + } + else{ + List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); + List_T *S[4] = {temp, 0, 0, 0}; + PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_VOLUME, temp, S); + List_Delete(temp); + List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); + } + List_Delete((yyvsp[(7) - (8)].l)); + (yyval.s).Type = MSH_PHYSICAL_VOLUME; + (yyval.s).Num = num; + ;} + break; + + case 118: +#line 1495 "Gmsh.y" { int num = (int)(yyvsp[(4) - (12)].d); if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -5278,12 +5309,12 @@ yyreduce: ;} break; - case 118: -#line 1505 "Gmsh.y" + case 119: +#line 1523 "Gmsh.y" { int num = (int)(yyvsp[(4) - (8)].d); - if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ - yymsg(0, "Physical surface %d already exists", num); + if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ + yymsg(0, "Physical line %d already exists", num); } else{ List_T *temp = ListOfDouble2ListOfInt((yyvsp[(7) - (8)].l)); @@ -5298,8 +5329,8 @@ yyreduce: ;} break; - case 119: -#line 1525 "Gmsh.y" + case 120: +#line 1543 "Gmsh.y" { yymsg(0, "'Complex Volume' command is deprecated: use 'Volume' instead"); int num = (int)(yyvsp[(4) - (8)].d); @@ -5319,8 +5350,8 @@ yyreduce: ;} break; - case 120: -#line 1543 "Gmsh.y" + case 121: +#line 1561 "Gmsh.y" { int num = (int)(yyvsp[(3) - (7)].d); if(FindVolume(num)){ @@ -5339,15 +5370,15 @@ yyreduce: ;} break; - case 121: -#line 1560 "Gmsh.y" + case 122: +#line 1578 "Gmsh.y" { curPhysDim = 3; ;} break; - case 122: -#line 1564 "Gmsh.y" + case 123: +#line 1582 "Gmsh.y" { int num = (int)(yyvsp[(5) - (9)].i); if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ @@ -5365,40 +5396,40 @@ yyreduce: ;} break; - case 123: -#line 1585 "Gmsh.y" + case 124: +#line 1603 "Gmsh.y" { TranslateShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); ;} break; - case 124: -#line 1590 "Gmsh.y" + case 125: +#line 1608 "Gmsh.y" { RotateShapes((yyvsp[(3) - (11)].v)[0], (yyvsp[(3) - (11)].v)[1], (yyvsp[(3) - (11)].v)[2], (yyvsp[(5) - (11)].v)[0], (yyvsp[(5) - (11)].v)[1], (yyvsp[(5) - (11)].v)[2], (yyvsp[(7) - (11)].d), (yyvsp[(10) - (11)].l)); (yyval.l) = (yyvsp[(10) - (11)].l); ;} break; - case 125: -#line 1595 "Gmsh.y" + case 126: +#line 1613 "Gmsh.y" { SymmetryShapes((yyvsp[(2) - (5)].v)[0], (yyvsp[(2) - (5)].v)[1], (yyvsp[(2) - (5)].v)[2], (yyvsp[(2) - (5)].v)[3], (yyvsp[(4) - (5)].l)); (yyval.l) = (yyvsp[(4) - (5)].l); ;} break; - case 126: -#line 1600 "Gmsh.y" + case 127: +#line 1618 "Gmsh.y" { DilatShapes((yyvsp[(3) - (9)].v)[0], (yyvsp[(3) - (9)].v)[1], (yyvsp[(3) - (9)].v)[2], (yyvsp[(5) - (9)].d), (yyvsp[(8) - (9)].l)); (yyval.l) = (yyvsp[(8) - (9)].l); ;} break; - case 127: -#line 1605 "Gmsh.y" + case 128: +#line 1623 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); if(!strcmp((yyvsp[(1) - (4)].c), "Duplicata")){ @@ -5420,8 +5451,8 @@ yyreduce: ;} break; - case 128: -#line 1625 "Gmsh.y" + case 129: +#line 1643 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); IntersectCurvesWithSurface((yyvsp[(4) - (9)].l), (int)(yyvsp[(8) - (9)].d), (yyval.l)); @@ -5429,8 +5460,8 @@ yyreduce: ;} break; - case 129: -#line 1631 "Gmsh.y" + case 130: +#line 1649 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape*)); List_T *tmp = ListOfDouble2ListOfInt((yyvsp[(7) - (9)].l)); @@ -5440,32 +5471,32 @@ yyreduce: ;} break; - case 130: -#line 1641 "Gmsh.y" + case 131: +#line 1659 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 131: -#line 1642 "Gmsh.y" + case 132: +#line 1660 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 132: -#line 1647 "Gmsh.y" + case 133: +#line 1665 "Gmsh.y" { (yyval.l) = List_Create(3, 3, sizeof(Shape)); ;} break; - case 133: -#line 1651 "Gmsh.y" + case 134: +#line 1669 "Gmsh.y" { List_Add((yyval.l), &(yyvsp[(2) - (2)].s)); ;} break; - case 134: -#line 1655 "Gmsh.y" + case 135: +#line 1673 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5490,8 +5521,8 @@ yyreduce: ;} break; - case 135: -#line 1678 "Gmsh.y" + case 136: +#line 1696 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5516,8 +5547,8 @@ yyreduce: ;} break; - case 136: -#line 1701 "Gmsh.y" + case 137: +#line 1719 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5542,8 +5573,8 @@ yyreduce: ;} break; - case 137: -#line 1724 "Gmsh.y" + case 138: +#line 1742 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){ double d; @@ -5568,8 +5599,8 @@ yyreduce: ;} break; - case 138: -#line 1752 "Gmsh.y" + case 139: +#line 1770 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5580,15 +5611,15 @@ yyreduce: ;} break; - case 139: -#line 1761 "Gmsh.y" + case 140: +#line 1779 "Gmsh.y" { GModel::current()->getFields()->deleteField((int)(yyvsp[(4) - (6)].d)); ;} break; - case 140: -#line 1765 "Gmsh.y" + case 141: +#line 1783 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (6)].c), "View")){ @@ -5605,8 +5636,8 @@ yyreduce: ;} break; - case 141: -#line 1780 "Gmsh.y" + case 142: +#line 1798 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Meshes") || !strcmp((yyvsp[(2) - (3)].c), "All")){ for(unsigned int i = 0; i < GModel::list.size(); i++){ @@ -5635,8 +5666,8 @@ yyreduce: ;} break; - case 142: -#line 1807 "Gmsh.y" + case 143: +#line 1825 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (4)].c), "Empty") && !strcmp((yyvsp[(3) - (4)].c), "Views")){ @@ -5650,8 +5681,8 @@ yyreduce: ;} break; - case 143: -#line 1824 "Gmsh.y" + case 144: +#line 1842 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(4) - (5)].l)); i++){ Shape TheShape; @@ -5662,8 +5693,8 @@ yyreduce: ;} break; - case 144: -#line 1838 "Gmsh.y" + case 145: +#line 1856 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 1); @@ -5671,8 +5702,8 @@ yyreduce: ;} break; - case 145: -#line 1844 "Gmsh.y" + case 146: +#line 1862 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape((yyvsp[(2) - (3)].c), i, 0); @@ -5680,8 +5711,8 @@ yyreduce: ;} break; - case 146: -#line 1850 "Gmsh.y" + case 147: +#line 1868 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5692,8 +5723,8 @@ yyreduce: ;} break; - case 147: -#line 1859 "Gmsh.y" + case 148: +#line 1877 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (4)].l)); i++){ Shape TheShape; @@ -5704,8 +5735,8 @@ yyreduce: ;} break; - case 148: -#line 1873 "Gmsh.y" + case 149: +#line 1891 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Include")){ char tmpstring[1024]; @@ -5755,8 +5786,8 @@ yyreduce: ;} break; - case 149: -#line 1921 "Gmsh.y" + case 150: +#line 1939 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Save") && !strcmp((yyvsp[(2) - (7)].c), "View")){ @@ -5776,8 +5807,8 @@ yyreduce: ;} break; - case 150: -#line 1939 "Gmsh.y" + case 151: +#line 1957 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(1) - (7)].c), "Background") && !strcmp((yyvsp[(2) - (7)].c), "Mesh") && !strcmp((yyvsp[(3) - (7)].c), "View")){ @@ -5794,8 +5825,8 @@ yyreduce: ;} break; - case 151: -#line 1954 "Gmsh.y" + case 152: +#line 1972 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (3)].c), "Sleep")){ SleepInSeconds((yyvsp[(2) - (3)].d)); @@ -5816,8 +5847,8 @@ yyreduce: ;} break; - case 152: -#line 1973 "Gmsh.y" + case 153: +#line 1991 "Gmsh.y" { #if !defined(HAVE_NO_POST) try { @@ -5831,8 +5862,8 @@ yyreduce: ;} break; - case 153: -#line 1985 "Gmsh.y" + case 154: +#line 2003 "Gmsh.y" { #if !defined(HAVE_NO_POST) if(!strcmp((yyvsp[(2) - (3)].c), "ElementsFromAllViews")) @@ -5858,31 +5889,31 @@ yyreduce: ;} break; - case 154: -#line 2009 "Gmsh.y" + case 155: +#line 2027 "Gmsh.y" { exit(0); ;} break; - case 155: -#line 2013 "Gmsh.y" + case 156: +#line 2031 "Gmsh.y" { CTX::instance()->forcedBBox = 0; SetBoundingBox(); ;} break; - case 156: -#line 2018 "Gmsh.y" + case 157: +#line 2036 "Gmsh.y" { CTX::instance()->forcedBBox = 1; SetBoundingBox((yyvsp[(3) - (15)].d), (yyvsp[(5) - (15)].d), (yyvsp[(7) - (15)].d), (yyvsp[(9) - (15)].d), (yyvsp[(11) - (15)].d), (yyvsp[(13) - (15)].d)); ;} break; - case 157: -#line 2023 "Gmsh.y" + case 158: +#line 2041 "Gmsh.y" { #if defined(HAVE_FLTK) Draw(); @@ -5890,15 +5921,15 @@ yyreduce: ;} break; - case 158: -#line 2029 "Gmsh.y" + case 159: +#line 2047 "Gmsh.y" { GModel::current()->createTopologyFromMesh(); ;} break; - case 159: -#line 2038 "Gmsh.y" + case 160: +#line 2056 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (6)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (6)].d); @@ -5917,8 +5948,8 @@ yyreduce: ;} break; - case 160: -#line 2055 "Gmsh.y" + case 161: +#line 2073 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(3) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(5) - (8)].d); @@ -5937,8 +5968,8 @@ yyreduce: ;} break; - case 161: -#line 2072 "Gmsh.y" + case 162: +#line 2090 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (8)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (8)].d); @@ -5959,8 +5990,8 @@ yyreduce: ;} break; - case 162: -#line 2091 "Gmsh.y" + case 163: +#line 2109 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = (yyvsp[(5) - (10)].d); LoopControlVariablesTab[ImbricatedLoop][1] = (yyvsp[(7) - (10)].d); @@ -5981,8 +6012,8 @@ yyreduce: ;} break; - case 163: -#line 2110 "Gmsh.y" + case 164: +#line 2128 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(0, "Invalid For/EndFor loop"); @@ -6012,8 +6043,8 @@ yyreduce: ;} break; - case 164: -#line 2138 "Gmsh.y" + case 165: +#line 2156 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction ((yyvsp[(2) - (2)].c), gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6023,8 +6054,8 @@ yyreduce: ;} break; - case 165: -#line 2146 "Gmsh.y" + case 166: +#line 2164 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction (&gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6032,8 +6063,8 @@ yyreduce: ;} break; - case 166: -#line 2152 "Gmsh.y" + case 167: +#line 2170 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction ((yyvsp[(2) - (3)].c), &gmsh_yyin, gmsh_yyname, gmsh_yylineno)) @@ -6042,21 +6073,21 @@ yyreduce: ;} break; - case 167: -#line 2159 "Gmsh.y" + case 168: +#line 2177 "Gmsh.y" { if(!(yyvsp[(3) - (4)].d)) skip_until("If", "EndIf"); ;} break; - case 168: -#line 2163 "Gmsh.y" + case 169: +#line 2181 "Gmsh.y" { ;} break; - case 169: -#line 2172 "Gmsh.y" + case 170: +#line 2190 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (5)].l), @@ -6066,8 +6097,8 @@ yyreduce: ;} break; - case 170: -#line 2180 "Gmsh.y" + case 171: +#line 2198 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (11)].l), @@ -6077,8 +6108,8 @@ yyreduce: ;} break; - case 171: -#line 2188 "Gmsh.y" + case 172: +#line 2206 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (13)].l), @@ -6088,15 +6119,15 @@ yyreduce: ;} break; - case 172: -#line 2196 "Gmsh.y" + case 173: +#line 2214 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 173: -#line 2200 "Gmsh.y" + case 174: +#line 2218 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, (yyvsp[(4) - (7)].l), @@ -6106,15 +6137,15 @@ yyreduce: ;} break; - case 174: -#line 2208 "Gmsh.y" + case 175: +#line 2226 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 175: -#line 2212 "Gmsh.y" + case 176: +#line 2230 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, (yyvsp[(10) - (13)].l), @@ -6124,15 +6155,15 @@ yyreduce: ;} break; - case 176: -#line 2220 "Gmsh.y" + case 177: +#line 2238 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 177: -#line 2224 "Gmsh.y" + case 178: +#line 2242 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, (yyvsp[(12) - (15)].l), @@ -6142,15 +6173,15 @@ yyreduce: ;} break; - case 178: -#line 2232 "Gmsh.y" + case 179: +#line 2250 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 179: -#line 2236 "Gmsh.y" + case 180: +#line 2254 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, (yyvsp[(3) - (6)].l), 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -6159,8 +6190,8 @@ yyreduce: ;} break; - case 180: -#line 2245 "Gmsh.y" + case 181: +#line 2263 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (8)].d), @@ -6169,8 +6200,8 @@ yyreduce: ;} break; - case 181: -#line 2252 "Gmsh.y" + case 182: +#line 2270 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (8)].d), @@ -6179,8 +6210,8 @@ yyreduce: ;} break; - case 182: -#line 2259 "Gmsh.y" + case 183: +#line 2277 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (8)].d), @@ -6189,8 +6220,8 @@ yyreduce: ;} break; - case 183: -#line 2266 "Gmsh.y" + case 184: +#line 2284 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6199,8 +6230,8 @@ yyreduce: ;} break; - case 184: -#line 2273 "Gmsh.y" + case 185: +#line 2291 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6209,8 +6240,8 @@ yyreduce: ;} break; - case 185: -#line 2280 "Gmsh.y" + case 186: +#line 2298 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6219,8 +6250,8 @@ yyreduce: ;} break; - case 186: -#line 2287 "Gmsh.y" + case 187: +#line 2305 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (14)].d), @@ -6229,8 +6260,8 @@ yyreduce: ;} break; - case 187: -#line 2294 "Gmsh.y" + case 188: +#line 2312 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (14)].d), @@ -6239,8 +6270,8 @@ yyreduce: ;} break; - case 188: -#line 2301 "Gmsh.y" + case 189: +#line 2319 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (14)].d), @@ -6249,15 +6280,15 @@ yyreduce: ;} break; - case 189: -#line 2308 "Gmsh.y" + case 190: +#line 2326 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 190: -#line 2312 "Gmsh.y" + case 191: +#line 2330 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)(yyvsp[(4) - (12)].d), @@ -6266,15 +6297,15 @@ yyreduce: ;} break; - case 191: -#line 2319 "Gmsh.y" + case 192: +#line 2337 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 192: -#line 2323 "Gmsh.y" + case 193: +#line 2341 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (12)].d), @@ -6283,15 +6314,15 @@ yyreduce: ;} break; - case 193: -#line 2330 "Gmsh.y" + case 194: +#line 2348 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 194: -#line 2334 "Gmsh.y" + case 195: +#line 2352 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (12)].d), @@ -6300,15 +6331,15 @@ yyreduce: ;} break; - case 195: -#line 2341 "Gmsh.y" + case 196: +#line 2359 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 196: -#line 2345 "Gmsh.y" + case 197: +#line 2363 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)(yyvsp[(4) - (16)].d), @@ -6317,15 +6348,15 @@ yyreduce: ;} break; - case 197: -#line 2352 "Gmsh.y" + case 198: +#line 2370 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 198: -#line 2356 "Gmsh.y" + case 199: +#line 2374 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (16)].d), @@ -6334,15 +6365,15 @@ yyreduce: ;} break; - case 199: -#line 2363 "Gmsh.y" + case 200: +#line 2381 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 200: -#line 2367 "Gmsh.y" + case 201: +#line 2385 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (16)].d), @@ -6351,15 +6382,15 @@ yyreduce: ;} break; - case 201: -#line 2374 "Gmsh.y" + case 202: +#line 2392 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 202: -#line 2378 "Gmsh.y" + case 203: +#line 2396 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)(yyvsp[(4) - (18)].d), @@ -6368,15 +6399,15 @@ yyreduce: ;} break; - case 203: -#line 2385 "Gmsh.y" + case 204: +#line 2403 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 204: -#line 2389 "Gmsh.y" + case 205: +#line 2407 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)(yyvsp[(4) - (18)].d), @@ -6385,15 +6416,15 @@ yyreduce: ;} break; - case 205: -#line 2396 "Gmsh.y" + case 206: +#line 2414 "Gmsh.y" { extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ;} break; - case 206: -#line 2400 "Gmsh.y" + case 207: +#line 2418 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)(yyvsp[(4) - (18)].d), @@ -6402,20 +6433,20 @@ yyreduce: ;} break; - case 207: -#line 2411 "Gmsh.y" + case 208: +#line 2429 "Gmsh.y" { ;} break; - case 208: -#line 2414 "Gmsh.y" + case 209: +#line 2432 "Gmsh.y" { ;} break; - case 209: -#line 2420 "Gmsh.y" + case 210: +#line 2438 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -6426,8 +6457,8 @@ yyreduce: ;} break; - case 210: -#line 2429 "Gmsh.y" + case 211: +#line 2447 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = List_Nbr((yyvsp[(3) - (7)].l)); @@ -6449,8 +6480,8 @@ yyreduce: ;} break; - case 211: -#line 2449 "Gmsh.y" + case 212: +#line 2467 "Gmsh.y" { yymsg(0, "Explicit region numbers in layers are deprecated"); extr.mesh.ExtrudeMesh = true; @@ -6475,15 +6506,15 @@ yyreduce: ;} break; - case 212: -#line 2472 "Gmsh.y" + case 213: +#line 2490 "Gmsh.y" { extr.mesh.Recombine = true; ;} break; - case 213: -#line 2476 "Gmsh.y" + case 214: +#line 2494 "Gmsh.y" { int num = (int)(yyvsp[(3) - (9)].d); if(FindSurface(num)){ @@ -6504,15 +6535,15 @@ yyreduce: ;} break; - case 214: -#line 2499 "Gmsh.y" + case 215: +#line 2517 "Gmsh.y" { (yyval.v)[0] = (yyval.v)[1] = 1.; ;} break; - case 215: -#line 2503 "Gmsh.y" + case 216: +#line 2521 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power")) (yyval.v)[0] = 1.; @@ -6527,15 +6558,15 @@ yyreduce: ;} break; - case 216: -#line 2518 "Gmsh.y" + case 217: +#line 2536 "Gmsh.y" { (yyval.i) = -1; // left ;} break; - case 217: -#line 2522 "Gmsh.y" + case 218: +#line 2540 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "Right")) (yyval.i) = 1; @@ -6547,36 +6578,36 @@ yyreduce: ;} break; - case 218: -#line 2534 "Gmsh.y" + case 219: +#line 2552 "Gmsh.y" { (yyval.l) = List_Create(1, 1, sizeof(double)); ;} break; - case 219: -#line 2538 "Gmsh.y" + case 220: +#line 2556 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); ;} break; - case 220: -#line 2543 "Gmsh.y" + case 221: +#line 2561 "Gmsh.y" { (yyval.i) = 45; ;} break; - case 221: -#line 2547 "Gmsh.y" + case 222: +#line 2565 "Gmsh.y" { (yyval.i) = (int)(yyvsp[(2) - (2)].d); ;} break; - case 222: -#line 2554 "Gmsh.y" + case 223: +#line 2572 "Gmsh.y" { int type = (int)(yyvsp[(6) - (7)].v)[0]; double coef = fabs((yyvsp[(6) - (7)].v)[1]); @@ -6634,8 +6665,8 @@ yyreduce: ;} break; - case 223: -#line 2610 "Gmsh.y" + case 224: +#line 2628 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (6)].l)); if(k != 0 && k != 3 && k != 4){ @@ -6707,16 +6738,16 @@ yyreduce: ;} break; - case 224: -#line 2680 "Gmsh.y" + case 225: +#line 2698 "Gmsh.y" { yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete((yyvsp[(7) - (8)].l)); ;} break; - case 225: -#line 2685 "Gmsh.y" + case 226: +#line 2703 "Gmsh.y" { int k = List_Nbr((yyvsp[(4) - (5)].l)); if(k != 0 && k != 6 && k != 8){ @@ -6785,8 +6816,8 @@ yyreduce: ;} break; - case 226: -#line 2752 "Gmsh.y" + case 227: +#line 2770 "Gmsh.y" { if(!(yyvsp[(3) - (5)].l)){ List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces); @@ -6831,8 +6862,8 @@ yyreduce: ;} break; - case 227: -#line 2795 "Gmsh.y" + case 228: +#line 2813 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){ double d; @@ -6854,8 +6885,8 @@ yyreduce: ;} break; - case 228: -#line 2821 "Gmsh.y" + case 229: +#line 2839 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -6880,8 +6911,8 @@ yyreduce: ;} break; - case 229: -#line 2844 "Gmsh.y" + case 230: +#line 2862 "Gmsh.y" { Surface *s = FindSurface((int)(yyvsp[(8) - (10)].d)); if(s){ @@ -6906,27 +6937,27 @@ yyreduce: ;} break; - case 230: -#line 2867 "Gmsh.y" + case 231: +#line 2885 "Gmsh.y" { ;} break; - case 231: -#line 2870 "Gmsh.y" + case 232: +#line 2888 "Gmsh.y" { ;} break; - case 232: -#line 2879 "Gmsh.y" + case 233: +#line 2897 "Gmsh.y" { ReplaceAllDuplicates(); ;} break; - case 233: -#line 2883 "Gmsh.y" + case 234: +#line 2901 "Gmsh.y" { if(!strcmp((yyvsp[(2) - (3)].c), "Geometry")) ReplaceAllDuplicates(); @@ -6938,48 +6969,48 @@ yyreduce: ;} break; - case 234: -#line 2898 "Gmsh.y" + case 235: +#line 2916 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; - case 235: -#line 2899 "Gmsh.y" + case 236: +#line 2917 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (3)].d); ;} break; - case 236: -#line 2900 "Gmsh.y" + case 237: +#line 2918 "Gmsh.y" { (yyval.d) = -(yyvsp[(2) - (2)].d); ;} break; - case 237: -#line 2901 "Gmsh.y" + case 238: +#line 2919 "Gmsh.y" { (yyval.d) = (yyvsp[(2) - (2)].d); ;} break; - case 238: -#line 2902 "Gmsh.y" + case 239: +#line 2920 "Gmsh.y" { (yyval.d) = !(yyvsp[(2) - (2)].d); ;} break; - case 239: -#line 2903 "Gmsh.y" + case 240: +#line 2921 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); ;} break; - case 240: -#line 2904 "Gmsh.y" + case 241: +#line 2922 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); ;} break; - case 241: -#line 2905 "Gmsh.y" + case 242: +#line 2923 "Gmsh.y" { (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;} break; - case 242: -#line 2907 "Gmsh.y" + case 243: +#line 2925 "Gmsh.y" { if(!(yyvsp[(3) - (3)].d)) yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); @@ -6988,308 +7019,308 @@ yyreduce: ;} break; - case 243: -#line 2913 "Gmsh.y" - { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} - break; - case 244: -#line 2914 "Gmsh.y" - { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} +#line 2931 "Gmsh.y" + { (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;} break; case 245: -#line 2915 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} +#line 2932 "Gmsh.y" + { (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;} break; case 246: -#line 2916 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} +#line 2933 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); ;} break; case 247: -#line 2917 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} +#line 2934 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); ;} break; case 248: -#line 2918 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} +#line 2935 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); ;} break; case 249: -#line 2919 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} +#line 2936 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); ;} break; case 250: -#line 2920 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} +#line 2937 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); ;} break; case 251: -#line 2921 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} +#line 2938 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); ;} break; case 252: -#line 2922 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} +#line 2939 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); ;} break; case 253: -#line 2923 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} +#line 2940 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); ;} break; case 254: -#line 2924 "Gmsh.y" - { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} +#line 2941 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;} break; case 255: -#line 2925 "Gmsh.y" - { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} +#line 2942 "Gmsh.y" + { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 256: -#line 2926 "Gmsh.y" - { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} +#line 2943 "Gmsh.y" + { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 257: -#line 2927 "Gmsh.y" - { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} +#line 2944 "Gmsh.y" + { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 258: -#line 2928 "Gmsh.y" - { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} +#line 2945 "Gmsh.y" + { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 259: -#line 2929 "Gmsh.y" - { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} +#line 2946 "Gmsh.y" + { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 260: -#line 2930 "Gmsh.y" - { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} +#line 2947 "Gmsh.y" + { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 261: -#line 2931 "Gmsh.y" - { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} +#line 2948 "Gmsh.y" + { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 262: -#line 2932 "Gmsh.y" - { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} +#line 2949 "Gmsh.y" + { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 263: -#line 2933 "Gmsh.y" - { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} +#line 2950 "Gmsh.y" + { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 264: -#line 2934 "Gmsh.y" - { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} +#line 2951 "Gmsh.y" + { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 265: -#line 2935 "Gmsh.y" - { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} +#line 2952 "Gmsh.y" + { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 266: -#line 2936 "Gmsh.y" - { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} +#line 2953 "Gmsh.y" + { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 267: -#line 2937 "Gmsh.y" - { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} +#line 2954 "Gmsh.y" + { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 268: -#line 2938 "Gmsh.y" - { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} +#line 2955 "Gmsh.y" + { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 269: -#line 2939 "Gmsh.y" - { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} +#line 2956 "Gmsh.y" + { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 270: -#line 2940 "Gmsh.y" - { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} +#line 2957 "Gmsh.y" + { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 271: -#line 2941 "Gmsh.y" - { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} +#line 2958 "Gmsh.y" + { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 272: -#line 2942 "Gmsh.y" +#line 2959 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 273: -#line 2943 "Gmsh.y" - { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} +#line 2960 "Gmsh.y" + { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 274: -#line 2944 "Gmsh.y" - { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} +#line 2961 "Gmsh.y" + { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 275: -#line 2946 "Gmsh.y" - { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} +#line 2962 "Gmsh.y" + { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 276: -#line 2947 "Gmsh.y" - { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} +#line 2964 "Gmsh.y" + { (yyval.d) = exp((yyvsp[(3) - (4)].d)); ;} break; case 277: -#line 2948 "Gmsh.y" - { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} +#line 2965 "Gmsh.y" + { (yyval.d) = log((yyvsp[(3) - (4)].d)); ;} break; case 278: -#line 2949 "Gmsh.y" - { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} +#line 2966 "Gmsh.y" + { (yyval.d) = log10((yyvsp[(3) - (4)].d)); ;} break; case 279: -#line 2950 "Gmsh.y" - { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} +#line 2967 "Gmsh.y" + { (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); ;} break; case 280: -#line 2951 "Gmsh.y" - { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} +#line 2968 "Gmsh.y" + { (yyval.d) = sin((yyvsp[(3) - (4)].d)); ;} break; case 281: -#line 2952 "Gmsh.y" - { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} +#line 2969 "Gmsh.y" + { (yyval.d) = asin((yyvsp[(3) - (4)].d)); ;} break; case 282: -#line 2953 "Gmsh.y" - { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} +#line 2970 "Gmsh.y" + { (yyval.d) = cos((yyvsp[(3) - (4)].d)); ;} break; case 283: -#line 2954 "Gmsh.y" - { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} +#line 2971 "Gmsh.y" + { (yyval.d) = acos((yyvsp[(3) - (4)].d)); ;} break; case 284: -#line 2955 "Gmsh.y" - { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} +#line 2972 "Gmsh.y" + { (yyval.d) = tan((yyvsp[(3) - (4)].d)); ;} break; case 285: -#line 2956 "Gmsh.y" - { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} +#line 2973 "Gmsh.y" + { (yyval.d) = atan((yyvsp[(3) - (4)].d)); ;} break; case 286: -#line 2957 "Gmsh.y" - { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} +#line 2974 "Gmsh.y" + { (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;} break; case 287: -#line 2958 "Gmsh.y" - { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} +#line 2975 "Gmsh.y" + { (yyval.d) = sinh((yyvsp[(3) - (4)].d)); ;} break; case 288: -#line 2959 "Gmsh.y" - { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} +#line 2976 "Gmsh.y" + { (yyval.d) = cosh((yyvsp[(3) - (4)].d)); ;} break; case 289: -#line 2960 "Gmsh.y" - { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} +#line 2977 "Gmsh.y" + { (yyval.d) = tanh((yyvsp[(3) - (4)].d)); ;} break; case 290: -#line 2961 "Gmsh.y" - { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} +#line 2978 "Gmsh.y" + { (yyval.d) = fabs((yyvsp[(3) - (4)].d)); ;} break; case 291: -#line 2962 "Gmsh.y" - { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} +#line 2979 "Gmsh.y" + { (yyval.d) = floor((yyvsp[(3) - (4)].d)); ;} break; case 292: -#line 2963 "Gmsh.y" - { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} +#line 2980 "Gmsh.y" + { (yyval.d) = ceil((yyvsp[(3) - (4)].d)); ;} break; case 293: -#line 2964 "Gmsh.y" +#line 2981 "Gmsh.y" { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 294: -#line 2965 "Gmsh.y" - { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} +#line 2982 "Gmsh.y" + { (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;} break; case 295: -#line 2966 "Gmsh.y" - { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} +#line 2983 "Gmsh.y" + { (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;} break; case 296: -#line 2975 "Gmsh.y" - { (yyval.d) = (yyvsp[(1) - (1)].d); ;} +#line 2984 "Gmsh.y" + { (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;} break; case 297: -#line 2976 "Gmsh.y" - { (yyval.d) = 3.141592653589793; ;} +#line 2993 "Gmsh.y" + { (yyval.d) = (yyvsp[(1) - (1)].d); ;} break; case 298: -#line 2977 "Gmsh.y" - { (yyval.d) = Msg::GetCommRank(); ;} +#line 2994 "Gmsh.y" + { (yyval.d) = 3.141592653589793; ;} break; case 299: -#line 2978 "Gmsh.y" - { (yyval.d) = Msg::GetCommSize(); ;} +#line 2995 "Gmsh.y" + { (yyval.d) = Msg::GetCommRank(); ;} break; case 300: -#line 2979 "Gmsh.y" - { (yyval.d) = GetGmshMajorVersion(); ;} +#line 2996 "Gmsh.y" + { (yyval.d) = Msg::GetCommSize(); ;} break; case 301: -#line 2980 "Gmsh.y" - { (yyval.d) = GetGmshMinorVersion(); ;} +#line 2997 "Gmsh.y" + { (yyval.d) = GetGmshMajorVersion(); ;} break; case 302: -#line 2981 "Gmsh.y" - { (yyval.d) = GetGmshPatchVersion(); ;} +#line 2998 "Gmsh.y" + { (yyval.d) = GetGmshMinorVersion(); ;} break; case 303: -#line 2986 "Gmsh.y" +#line 2999 "Gmsh.y" + { (yyval.d) = GetGmshPatchVersion(); ;} + break; + + case 304: +#line 3004 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7301,8 +7332,8 @@ yyreduce: ;} break; - case 304: -#line 2999 "Gmsh.y" + case 305: +#line 3017 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ; @@ -7316,8 +7347,8 @@ yyreduce: ;} break; - case 305: -#line 3011 "Gmsh.y" + case 306: +#line 3029 "Gmsh.y" { int index = (int)(yyvsp[(3) - (4)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){ @@ -7334,8 +7365,8 @@ yyreduce: ;} break; - case 306: -#line 3026 "Gmsh.y" + case 307: +#line 3044 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c)); @@ -7347,8 +7378,8 @@ yyreduce: ;} break; - case 307: -#line 3036 "Gmsh.y" + case 308: +#line 3054 "Gmsh.y" { if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){ yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c)); @@ -7360,8 +7391,8 @@ yyreduce: ;} break; - case 308: -#line 3046 "Gmsh.y" + case 309: +#line 3064 "Gmsh.y" { int index = (int)(yyvsp[(3) - (5)].d); if(!gmsh_yysymbols.count((yyvsp[(1) - (5)].c))){ @@ -7378,24 +7409,24 @@ yyreduce: ;} break; - case 309: -#line 3064 "Gmsh.y" + case 310: +#line 3082 "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)); ;} break; - case 310: -#line 3069 "Gmsh.y" + case 311: +#line 3087 "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)); ;} break; - case 311: -#line 3074 "Gmsh.y" + case 312: +#line 3092 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (4)].c), 0, (yyvsp[(3) - (4)].c), d)){ @@ -7407,8 +7438,8 @@ yyreduce: ;} break; - case 312: -#line 3084 "Gmsh.y" + case 313: +#line 3102 "Gmsh.y" { double d = 0.; if(NumberOption(GMSH_GET, (yyvsp[(1) - (7)].c), (int)(yyvsp[(3) - (7)].d), (yyvsp[(6) - (7)].c), d)){ @@ -7420,124 +7451,124 @@ yyreduce: ;} break; - case 313: -#line 3094 "Gmsh.y" + case 314: +#line 3112 "Gmsh.y" { (yyval.d) = Msg::GetValue((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].d)); Free((yyvsp[(3) - (6)].c)); ;} break; - case 314: -#line 3102 "Gmsh.y" + case 315: +#line 3120 "Gmsh.y" { memcpy((yyval.v), (yyvsp[(1) - (1)].v), 5*sizeof(double)); ;} break; - case 315: -#line 3106 "Gmsh.y" + case 316: +#line 3124 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = -(yyvsp[(2) - (2)].v)[i]; ;} break; - case 316: -#line 3110 "Gmsh.y" + case 317: +#line 3128 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(2) - (2)].v)[i]; ;} break; - case 317: -#line 3114 "Gmsh.y" + case 318: +#line 3132 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] - (yyvsp[(3) - (3)].v)[i]; ;} break; - case 318: -#line 3118 "Gmsh.y" + case 319: +#line 3136 "Gmsh.y" { for(int i = 0; i < 5; i++) (yyval.v)[i] = (yyvsp[(1) - (3)].v)[i] + (yyvsp[(3) - (3)].v)[i]; ;} break; - case 319: -#line 3125 "Gmsh.y" + case 320: +#line 3143 "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 320: -#line 3129 "Gmsh.y" + case 321: +#line 3147 "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 321: -#line 3133 "Gmsh.y" + case 322: +#line 3151 "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 322: -#line 3137 "Gmsh.y" + case 323: +#line 3155 "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 323: -#line 3144 "Gmsh.y" + case 324: +#line 3162 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(List_T*)); List_Add((yyval.l), &((yyvsp[(1) - (1)].l))); ;} break; - case 324: -#line 3149 "Gmsh.y" + case 325: +#line 3167 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].l))); ;} break; - case 325: -#line 3156 "Gmsh.y" + case 326: +#line 3174 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 326: -#line 3161 "Gmsh.y" + case 327: +#line 3179 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 327: -#line 3165 "Gmsh.y" + case 328: +#line 3183 "Gmsh.y" { // creates an empty list (yyval.l) = List_Create(2, 1, sizeof(double)); ;} break; - case 328: -#line 3170 "Gmsh.y" + case 329: +#line 3188 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 329: -#line 3174 "Gmsh.y" + case 330: +#line 3192 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (4)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7547,8 +7578,8 @@ yyreduce: ;} break; - case 330: -#line 3182 "Gmsh.y" + case 331: +#line 3200 "Gmsh.y" { (yyval.l) = (yyvsp[(4) - (5)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7558,15 +7589,15 @@ yyreduce: ;} break; - case 331: -#line 3193 "Gmsh.y" + case 332: +#line 3211 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 332: -#line 3197 "Gmsh.y" + case 333: +#line 3215 "Gmsh.y" { if(!strcmp((yyvsp[(1) - (1)].c), "*") || !strcmp((yyvsp[(1) - (1)].c), "all")) (yyval.l) = 0; @@ -7577,8 +7608,8 @@ yyreduce: ;} break; - case 333: -#line 3209 "Gmsh.y" + case 334: +#line 3227 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (2)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7588,8 +7619,8 @@ yyreduce: ;} break; - case 334: -#line 3217 "Gmsh.y" + case 335: +#line 3235 "Gmsh.y" { (yyval.l) = (yyvsp[(3) - (3)].l); for(int i = 0; i < List_Nbr((yyval.l)); i++){ @@ -7599,8 +7630,8 @@ yyreduce: ;} break; - case 335: -#line 3225 "Gmsh.y" + case 336: +#line 3243 "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)); @@ -7609,8 +7640,8 @@ yyreduce: ;} break; - case 336: -#line 3232 "Gmsh.y" + case 337: +#line 3250 "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)){ @@ -7623,8 +7654,8 @@ yyreduce: ;} break; - case 337: -#line 3243 "Gmsh.y" + case 338: +#line 3261 "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 @@ -7646,8 +7677,8 @@ yyreduce: ;} break; - case 338: -#line 3263 "Gmsh.y" + case 339: +#line 3281 "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++){ @@ -7659,8 +7690,8 @@ yyreduce: ;} break; - case 339: -#line 3273 "Gmsh.y" + case 340: +#line 3291 "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++){ @@ -7672,8 +7703,8 @@ yyreduce: ;} break; - case 340: -#line 3283 "Gmsh.y" + case 341: +#line 3301 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (3)].c))) @@ -7685,8 +7716,8 @@ yyreduce: ;} break; - case 341: -#line 3293 "Gmsh.y" + case 342: +#line 3311 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); if(!gmsh_yysymbols.count((yyvsp[(1) - (6)].c))) @@ -7705,30 +7736,30 @@ yyreduce: ;} break; - case 342: -#line 3313 "Gmsh.y" + case 343: +#line 3331 "Gmsh.y" { (yyval.l) = List_Create(2, 1, sizeof(double)); List_Add((yyval.l), &((yyvsp[(1) - (1)].d))); ;} break; - case 343: -#line 3318 "Gmsh.y" + case 344: +#line 3336 "Gmsh.y" { (yyval.l) = (yyvsp[(1) - (1)].l); ;} break; - case 344: -#line 3322 "Gmsh.y" + case 345: +#line 3340 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].d))); ;} break; - case 345: -#line 3326 "Gmsh.y" + case 346: +#line 3344 "Gmsh.y" { for(int i = 0; i < List_Nbr((yyvsp[(3) - (3)].l)); i++){ double d; @@ -7739,22 +7770,22 @@ yyreduce: ;} break; - case 346: -#line 3338 "Gmsh.y" + case 347: +#line 3356 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (9)].d), (int)(yyvsp[(4) - (9)].d), (int)(yyvsp[(6) - (9)].d), (int)(yyvsp[(8) - (9)].d)); ;} break; - case 347: -#line 3342 "Gmsh.y" + case 348: +#line 3360 "Gmsh.y" { (yyval.u) = CTX::instance()->packColor((int)(yyvsp[(2) - (7)].d), (int)(yyvsp[(4) - (7)].d), (int)(yyvsp[(6) - (7)].d), 255); ;} break; - case 348: -#line 3354 "Gmsh.y" + case 349: +#line 3372 "Gmsh.y" { int flag; (yyval.u) = GetColorForString(ColorString, -1, (yyvsp[(1) - (1)].c), &flag); @@ -7763,8 +7794,8 @@ yyreduce: ;} break; - case 349: -#line 3361 "Gmsh.y" + case 350: +#line 3379 "Gmsh.y" { unsigned int val = 0; ColorOption(GMSH_GET, (yyvsp[(1) - (5)].c), 0, (yyvsp[(5) - (5)].c), val); @@ -7773,15 +7804,15 @@ yyreduce: ;} break; - case 350: -#line 3371 "Gmsh.y" + case 351: +#line 3389 "Gmsh.y" { (yyval.l) = (yyvsp[(2) - (3)].l); ;} break; - case 351: -#line 3375 "Gmsh.y" + case 352: +#line 3393 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = GetColorTable((int)(yyvsp[(3) - (6)].d)); @@ -7795,30 +7826,30 @@ yyreduce: ;} break; - case 352: -#line 3390 "Gmsh.y" + case 353: +#line 3408 "Gmsh.y" { (yyval.l) = List_Create(256, 10, sizeof(unsigned int)); List_Add((yyval.l), &((yyvsp[(1) - (1)].u))); ;} break; - case 353: -#line 3395 "Gmsh.y" + case 354: +#line 3413 "Gmsh.y" { List_Add((yyval.l), &((yyvsp[(3) - (3)].u))); ;} break; - case 354: -#line 3402 "Gmsh.y" + case 355: +#line 3420 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 355: -#line 3406 "Gmsh.y" + case 356: +#line 3424 "Gmsh.y" { if(!gmsh_yystringsymbols.count((yyvsp[(1) - (1)].c))){ yymsg(0, "Unknown string variable '%s'", (yyvsp[(1) - (1)].c)); @@ -7833,8 +7864,8 @@ yyreduce: ;} break; - case 356: -#line 3419 "Gmsh.y" + case 357: +#line 3437 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (3)].c), 0, (yyvsp[(3) - (3)].c), out); @@ -7844,8 +7875,8 @@ yyreduce: ;} break; - case 357: -#line 3427 "Gmsh.y" + case 358: +#line 3445 "Gmsh.y" { std::string out; StringOption(GMSH_GET, (yyvsp[(1) - (6)].c), (int)(yyvsp[(3) - (6)].d), (yyvsp[(6) - (6)].c), out); @@ -7855,15 +7886,15 @@ yyreduce: ;} break; - case 358: -#line 3438 "Gmsh.y" + case 359: +#line 3456 "Gmsh.y" { (yyval.c) = (yyvsp[(1) - (1)].c); ;} break; - case 359: -#line 3442 "Gmsh.y" + case 360: +#line 3460 "Gmsh.y" { (yyval.c) = (char *)Malloc(32 * sizeof(char)); time_t now; @@ -7873,8 +7904,8 @@ yyreduce: ;} break; - case 360: -#line 3450 "Gmsh.y" + case 361: +#line 3468 "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)); @@ -7884,8 +7915,8 @@ yyreduce: ;} break; - case 361: -#line 3458 "Gmsh.y" + case 362: +#line 3476 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -7901,8 +7932,8 @@ yyreduce: ;} break; - case 362: -#line 3472 "Gmsh.y" + case 363: +#line 3490 "Gmsh.y" { (yyval.c) = (char *)Malloc((strlen((yyvsp[(3) - (4)].c)) + 1) * sizeof(char)); int i; @@ -7918,15 +7949,15 @@ yyreduce: ;} break; - case 363: -#line 3486 "Gmsh.y" + case 364: +#line 3504 "Gmsh.y" { (yyval.c) = (yyvsp[(3) - (4)].c); ;} break; - case 364: -#line 3490 "Gmsh.y" + case 365: +#line 3508 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble((yyvsp[(3) - (6)].c), (yyvsp[(5) - (6)].l), tmpstring); @@ -7949,7 +7980,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 7953 "Gmsh.tab.cpp" +#line 7984 "Gmsh.tab.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -8163,7 +8194,7 @@ yyreturn: } -#line 3510 "Gmsh.y" +#line 3528 "Gmsh.y" int PrintListOfDouble(char *format, List_T *list, char *buffer) diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 951cc49294..59326aa166 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1473,6 +1473,25 @@ Shape : $$.Type = MSH_PHYSICAL_SURFACE; $$.Num = num; } + + | tCompound tVolume '(' FExpr ')' tAFFECT ListOfDouble tEND + { + int num = (int)$4; + if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ + yymsg(0, "Physical volume %d already exists", num); + } + else{ + List_T *temp = ListOfDouble2ListOfInt($7); + List_T *S[4] = {temp, 0, 0, 0}; + PhysicalGroup *p = Create_PhysicalGroup(num, MSH_PHYSICAL_VOLUME, temp, S); + List_Delete(temp); + List_Add(GModel::current()->getGEOInternals()->PhysicalGroups, &p); + } + List_Delete($7); + $$.Type = MSH_PHYSICAL_VOLUME; + $$.Num = num; + } + | tCompound tSurface '(' FExpr ')' tAFFECT ListOfDouble tSTRING '{' RecursiveListOfListOfDouble '}' tEND { int num = (int)$4; @@ -1504,8 +1523,8 @@ Shape : | tCompound tLine '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$4; - if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ - yymsg(0, "Physical surface %d already exists", num); + if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ + yymsg(0, "Physical line %d already exists", num); } else{ List_T *temp = ListOfDouble2ListOfInt($7); diff --git a/benchmarks/2d/circle2_GEO.geo b/benchmarks/2d/circle2_GEO.geo index 2d493a82fd..4922514fe0 100644 --- a/benchmarks/2d/circle2_GEO.geo +++ b/benchmarks/2d/circle2_GEO.geo @@ -6,4 +6,4 @@ CreateTopology; Compound Line (100) = {1,2,3,4}; Compound Line (200) = {11,22,33,44}; -Compound Surface(1000)={47} Boundary {{1,2,3,4}, {11,22,33,44}}; +//Compound Surface(1000)={47} Boundary {{1,2,3,4}, {11,22,33,44}}; diff --git a/benchmarks/stl/sp2tmp01.geo b/benchmarks/stl/sp2tmp01.geo index c53c2f9fe9..017c23acab 100644 --- a/benchmarks/stl/sp2tmp01.geo +++ b/benchmarks/stl/sp2tmp01.geo @@ -1,3 +1,4 @@ +Mesh.CharacteristicLengthFactor = 0.1; Merge "sp2tmp01_1.stl"; Merge "sp2tmp01_2.stl"; -- GitLab