diff --git a/Common/SmoothData.cpp b/Common/SmoothData.cpp index 3d9111532cd0eb9c9703f24ec87c5b438a22371e..5824370749252a556fe2385ba2175021dc956cdd 100644 --- a/Common/SmoothData.cpp +++ b/Common/SmoothData.cpp @@ -1,4 +1,4 @@ -// $Id: SmoothData.cpp,v 1.1 2007-02-26 08:25:36 geuzaine Exp $ +// $Id: SmoothData.cpp,v 1.2 2007-03-05 09:30:53 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -99,7 +99,40 @@ bool smooth_data::get(double x, double y, double z, int n, double *vals) if(it == c.end()) return false; for(int k = 0; k < n; k++) - vals[k] = (*it).vals[k]; + vals[k] = it->vals[k]; + return true; +} + +void smooth_data::normalize() +{ + std::set<xyzv, lessthanxyzv>::iterator it = c.begin(); + while(it != c.end()){ + if(it->nbvals == 3) norme(it->vals); + it++; + } +} + +bool smooth_data::exportview(std::string filename) +{ + FILE *fp = fopen(filename.c_str(), "w"); + if(!fp) return false; + fprintf(fp, "View \"data\" {\n"); + std::set<xyzv, lessthanxyzv>::iterator it = c.begin(); + while(it != c.end()){ + switch(it->nbvals){ + case 1: + fprintf(fp, "SP(%.16g,%.16g,%.16g){%.16g};\n", + it->x, it->y, it->z, it->vals[0]); + break; + case 3: + fprintf(fp, "VP(%.16g,%.16g,%.16g){%.16g,%.16g,%.16g};\n", + it->x, it->y, it->z, it->vals[0], it->vals[1], it->vals[2]); + break; + } + it++; + } + fprintf(fp, "};\n"); + fclose(fp); return true; } diff --git a/Common/SmoothData.h b/Common/SmoothData.h index 446eff2c794694367f698b2f947bb78536f10f93..0a391ee4b4c33e9ca650f102cb5593e2aae093a1 100644 --- a/Common/SmoothData.h +++ b/Common/SmoothData.h @@ -22,6 +22,7 @@ #include <set> #include <vector> +#include <string> #include "Numeric.h" // Basic coordinate-based floating point data averager @@ -65,6 +66,8 @@ class smooth_data{ smooth_data() {} void add(double x, double y, double z, int n, double *vals); bool get(double x, double y, double z, int n, double *vals); + void normalize(); + bool exportview(std::string filename); }; // Normal smoother with threshold (saves memory by storing normals as diff --git a/Geo/ExtrudeParams.cpp b/Geo/ExtrudeParams.cpp index 50c407b0f8ba680ef6f84814ef767f9755b36c73..983fbdc44b92f91538e2f9c073e3c6a9c2df10d0 100644 --- a/Geo/ExtrudeParams.cpp +++ b/Geo/ExtrudeParams.cpp @@ -1,4 +1,4 @@ -// $Id: ExtrudeParams.cpp,v 1.23 2007-02-26 08:25:38 geuzaine Exp $ +// $Id: ExtrudeParams.cpp,v 1.24 2007-03-05 09:30:53 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -43,6 +43,7 @@ ExtrudeParams::ExtrudeParams(int ModeEx) geo.Source = -1; mesh.ExtrudeMesh = false; mesh.Recombine = false; + mesh.ViewIndex = -1; } void ExtrudeParams::fill(int type, diff --git a/Geo/ExtrudeParams.h b/Geo/ExtrudeParams.h index 4d21190d5b261b13a90681c0596b91b6ae02f235..2c084ebff1c30df9bcc803db950240970757eae1 100644 --- a/Geo/ExtrudeParams.h +++ b/Geo/ExtrudeParams.h @@ -21,6 +21,8 @@ // Please report all bugs and problems to <gmsh@geuz.org>. #include <vector> +#include <map> +#include <string> #include "SmoothData.h" // geo.Mode @@ -52,6 +54,8 @@ public : int NbLayer; std::vector<int> NbElmLayer; std::vector<double> hLayer; + std::map<int, std::pair<double, std::vector<int> > > Holes; + int ViewIndex; }mesh; struct{ int Mode; @@ -60,7 +64,6 @@ public : double trans[3]; double axe[3], pt[3], angle; }geo; - }; #endif diff --git a/Geo/GModelIO_Fourier.cpp b/Geo/GModelIO_Fourier.cpp index 09922a9d2214f122d4993dd4b6ac9fa07be127e6..5286d21cb4547d03f446a9790535db597887e97a 100644 --- a/Geo/GModelIO_Fourier.cpp +++ b/Geo/GModelIO_Fourier.cpp @@ -87,10 +87,17 @@ public: { int M = (int)(30. / CTX.mesh.lc_factor), N = (int)(30. / CTX.mesh.lc_factor); - //if(gf->tag() == 2){ - //M = 9; - //N = 15; - //} +#if 1 + switch(gf->tag()){ + case 0: M = 30; N = 30; break; // falcon front + case 1: M = 30; N = 120; break; // falcon back + case 2: break; // wing front + case 3: M = 25; N = 30; break; // wing top (N along the fuselage) + case 4: M = 25; N = 30; break; // wing bottom + } + //M /= 2 ; + //N /= 2 ; +#endif for(int i = 0; i < M; i++){ for(int j = 0; j < N; j++){ @@ -884,8 +891,8 @@ int GModel::readFourier(const std::string &name) // mesh each face with quads std::for_each(firstFace(), lastFace(), meshCartesian()); - cleanUpAndMergeAllFaces(this); + cleanUpAndMergeAllFaces(this); return 1; // mesh each face using the standard gmsh algorithms @@ -893,7 +900,8 @@ int GModel::readFourier(const std::string &name) //return 1; // compute partition of unity - std::for_each(firstFace(), lastFace(), computePartitionOfUnity()); + //std::for_each(firstFace(), lastFace(), computePartitionOfUnity()); + //return 1; // create grooves std::for_each(firstFace(), lastFace(), createGroove()); diff --git a/Geo/Geo.cpp b/Geo/Geo.cpp index 5815c9103b5898f78ce3781761472ab131d8f181..eb1f19e2f0332e1a0842f05f74b0f3995cab9cdc 100644 --- a/Geo/Geo.cpp +++ b/Geo/Geo.cpp @@ -1,4 +1,4 @@ -// $Id: Geo.cpp,v 1.83 2007-02-26 08:25:38 geuzaine Exp $ +// $Id: Geo.cpp,v 1.84 2007-03-05 09:30:53 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -169,7 +169,7 @@ void Free_Vertex(void *a, void *b) } } -PhysicalGroup *Create_PhysicalGroup(int Num, int typ, List_T * intlist) +PhysicalGroup *Create_PhysicalGroup(int Num, int typ, List_T *intlist) { PhysicalGroup *p = (PhysicalGroup *) Malloc(sizeof(PhysicalGroup)); p->Entities = List_Create(List_Nbr(intlist), 1, sizeof(int)); @@ -195,7 +195,7 @@ void Free_PhysicalGroup(void *a, void *b) } } -EdgeLoop *Create_EdgeLoop(int Num, List_T * intlist) +EdgeLoop *Create_EdgeLoop(int Num, List_T *intlist) { EdgeLoop *l = (EdgeLoop *) Malloc(sizeof(EdgeLoop)); l->Curves = List_Create(List_Nbr(intlist), 1, sizeof(int)); @@ -219,7 +219,7 @@ void Free_EdgeLoop(void *a, void *b) } } -SurfaceLoop *Create_SurfaceLoop(int Num, List_T * intlist) +SurfaceLoop *Create_SurfaceLoop(int Num, List_T *intlist) { SurfaceLoop *l = (SurfaceLoop *) Malloc(sizeof(SurfaceLoop)); l->Surfaces = List_Create(List_Nbr(intlist), 1, sizeof(int)); @@ -243,14 +243,14 @@ void Free_SurfaceLoop(void *a, void *b) } } -static void direction(Vertex * v1, Vertex * v2, double d[3]) +static void direction(Vertex *v1, Vertex *v2, double d[3]) { d[0] = v2->Pos.X - v1->Pos.X; d[1] = v2->Pos.Y - v1->Pos.Y; d[2] = v2->Pos.Z - v1->Pos.Z; } -void End_Curve(Curve * c) +void End_Curve(Curve *c) { double R2, mat[3][3], R, A3, A1, A4; Vertex *v[4], v0, v2, v3,*pV; @@ -455,7 +455,7 @@ void End_Curve(Curve * c) } } -void End_Surface(Surface * s) +void End_Surface(Surface *s) { // if all generatrices of a surface are on the same geometry, then // the surface is also on the geometry @@ -474,8 +474,8 @@ void End_Surface(Surface * s) } } -Curve *Create_Curve(int Num, int Typ, int Order, List_T * Liste, - List_T * Knots, int p1, int p2, double u1, double u2) +Curve *Create_Curve(int Num, int Typ, int Order, List_T *Liste, + List_T *Knots, int p1, int p2, double u1, double u2) { double matcr[4][4] = { {-0.5, 1.5, -1.5, 0.5}, {1.0, -2.5, 2.0, -0.5}, @@ -737,7 +737,7 @@ int NEWREG(void) + 1); } -int compare2Lists(List_T * List1, List_T * List2, +int compare2Lists(List_T *List1, List_T *List2, int (*fcmp) (const void *a, const void *b)) { int i, found; @@ -848,7 +848,7 @@ PhysicalGroup *FindPhysicalGroup(int num, int type) return NULL; } -void CopyVertex(Vertex * v, Vertex * vv) +void CopyVertex(Vertex *v, Vertex *vv) { vv->lc = v->lc; vv->u = v->u; @@ -857,7 +857,7 @@ void CopyVertex(Vertex * v, Vertex * vv) vv->Pos.Z = v->Pos.Z; } -Vertex *DuplicateVertex(Vertex * v) +Vertex *DuplicateVertex(Vertex *v) { if(!v) return NULL; Vertex *pv = Create_Vertex(NEWPOINT(), 0, 0, 0, 0, 0); @@ -875,7 +875,7 @@ int compareAbsCurve(const void *a, const void *b) return (abs((*q)->Num) - abs((*w)->Num)); } -void CopyCurve(Curve * c, Curve * cc) +void CopyCurve(Curve *c, Curve *cc) { int i, j; cc->Typ = c->Typ; @@ -907,7 +907,7 @@ void CopyCurve(Curve * c, Curve * cc) Tree_Insert(THEM->Curves, &cc); } -Curve *DuplicateCurve(Curve * c) +Curve *DuplicateCurve(Curve *c) { Curve *pc; Vertex *v, *newv; @@ -925,7 +925,7 @@ Curve *DuplicateCurve(Curve * c) return pc; } -void CopySurface(Surface * s, Surface * ss) +void CopySurface(Surface *s, Surface *ss) { int i, j; ss->Typ = s->Typ; @@ -954,7 +954,7 @@ void CopySurface(Surface * s, Surface * ss) Tree_Insert(THEM->Surfaces, &ss); } -Surface *DuplicateSurface(Surface * s) +Surface *DuplicateSurface(Surface *s) { Surface *ps; Curve *c, *newc; @@ -1273,7 +1273,7 @@ void VisibilityShape(char *str, int Type, int Mode) } } -Curve *CreateReversedCurve(Curve * c) +Curve *CreateReversedCurve(Curve *c) { Curve *newc; Vertex *e1, *e2, *e3, *e4; @@ -1332,7 +1332,7 @@ Curve *CreateReversedCurve(Curve * c) } } -int recognize_seg(int typ, List_T * liste, int *seg) +int recognize_seg(int typ, List_T *liste, int *seg) { int i, beg, end; Curve *pc; @@ -1352,7 +1352,7 @@ int recognize_seg(int typ, List_T * liste, int *seg) return 0; } -int recognize_loop(List_T * liste, int *loop) +int recognize_loop(List_T *liste, int *loop) { int i, res; EdgeLoop *pe; @@ -1372,7 +1372,7 @@ int recognize_loop(List_T * liste, int *loop) return res; } -int recognize_surfloop(List_T * liste, int *loop) +int recognize_surfloop(List_T *liste, int *loop) { int i, res; EdgeLoop *pe; @@ -1542,7 +1542,7 @@ static void vecmat4x4(double mat[4][4], double vec[4], double res[4]) } } -void printCurve(Curve * c) +void printCurve(Curve *c) { Vertex *v; int N = List_Nbr(c->Control_Points); @@ -1554,7 +1554,7 @@ void printCurve(Curve * c) } } -void printSurface(Surface * s) +void printSurface(Surface *s) { Curve *c; int N = List_Nbr(s->Generatrices); @@ -1566,7 +1566,7 @@ void printSurface(Surface * s) } } -void ApplyTransformationToPoint(double matrix[4][4], Vertex * v, +void ApplyTransformationToPoint(double matrix[4][4], Vertex *v, bool end_curve_surface=false) { double pos[4], vec[4]; @@ -1626,7 +1626,7 @@ void ApplyTransformationToPoint(double matrix[4][4], Vertex * v, } } -void ApplyTransformationToCurve(double matrix[4][4], Curve * c) +void ApplyTransformationToCurve(double matrix[4][4], Curve *c) { Vertex *v; @@ -1645,7 +1645,7 @@ void ApplyTransformationToCurve(double matrix[4][4], Curve * c) End_Curve(c); } -void ApplyTransformationToSurface(double matrix[4][4], Surface * s) +void ApplyTransformationToSurface(double matrix[4][4], Surface *s) { Curve *c; Vertex *v; @@ -1666,7 +1666,7 @@ void ApplyTransformationToSurface(double matrix[4][4], Surface * s) End_Surface(s); } -void ApplicationOnShapes(double matrix[4][4], List_T * ListShapes) +void ApplicationOnShapes(double matrix[4][4], List_T *ListShapes) { int i; Shape O; @@ -1721,7 +1721,7 @@ void ApplicationOnShapes(double matrix[4][4], List_T * ListShapes) List_Reset(ListOfTransformedPoints); } -void TranslateShapes(double X, double Y, double Z, List_T * ListShapes) +void TranslateShapes(double X, double Y, double Z, List_T *ListShapes) { double T[3], matrix[4][4]; @@ -1735,7 +1735,7 @@ void TranslateShapes(double X, double Y, double Z, List_T * ListShapes) ReplaceAllDuplicates(); } -void DilatShapes(double X, double Y, double Z, double A, List_T * ListShapes) +void DilatShapes(double X, double Y, double Z, double A, List_T *ListShapes) { double T[3], matrix[4][4]; @@ -1751,7 +1751,7 @@ void DilatShapes(double X, double Y, double Z, double A, List_T * ListShapes) void RotateShapes(double Ax, double Ay, double Az, double Px, double Py, double Pz, - double alpha, List_T * ListShapes) + double alpha, List_T *ListShapes) { double A[3], T[3], matrix[4][4]; @@ -1777,7 +1777,7 @@ void RotateShapes(double Ax, double Ay, double Az, ReplaceAllDuplicates(); } -void SymmetryShapes(double A, double B, double C, double D, List_T * ListShapes) +void SymmetryShapes(double A, double B, double C, double D, List_T *ListShapes) { double matrix[4][4]; @@ -1990,8 +1990,8 @@ int Extrude_ProtudeCurve(int type, int ic, double T0, double T1, double T2, double A0, double A1, double A2, double X0, double X1, double X2, double alpha, - Surface ** ps, int final, - ExtrudeParams * e) + Surface **ps, int final, + ExtrudeParams *e) { double matrix[4][4], T[3], Ax[3]; Curve *CurveBeg, *CurveEnd; @@ -2150,7 +2150,7 @@ int Extrude_ProtudeSurface(int type, int is, double T0, double T1, double T2, double A0, double A1, double A2, double X0, double X1, double X2, double alpha, - Volume **pv, ExtrudeParams * e) + Volume **pv, ExtrudeParams *e) { double matrix[4][4], T[3], Ax[3]; Curve *c, *c2; @@ -2816,7 +2816,7 @@ static double projectPC(double u) DSQR(c.Pos.Z - VERTEX->Pos.Z)); } -bool ProjectPointOnCurve(Curve * c, Vertex * v, Vertex * RES, Vertex * DER) +bool ProjectPointOnCurve(Curve *c, Vertex *v, Vertex *RES, Vertex *DER) { double xmin; CURVE = c; @@ -2837,7 +2837,7 @@ bool ProjectPointOnCurve(Curve * c, Vertex * v, Vertex * RES, Vertex * DER) return true; } -bool ProjectPointOnSurface(Surface * s, Vertex & p, double u[2]) +bool ProjectPointOnSurface(Surface *s, Vertex &p, double u[2]) { double x[3] = { 0.5, 0.5, 0.5 }; Vertex vv; @@ -2867,7 +2867,7 @@ bool ProjectPointOnSurface(Surface * s, Vertex & p, double u[2]) return true; } -void Projette(Vertex * v, double mat[3][3]) +void Projette(Vertex *v, double mat[3][3]) { double X, Y, Z; diff --git a/Graphics/PostElement.cpp b/Graphics/PostElement.cpp index 807f7e215464b8d89477b94bd8e7ebc4315c3bc1..f89ad4080e8042ce917bf4e2efcdae74b25b1bd3 100644 --- a/Graphics/PostElement.cpp +++ b/Graphics/PostElement.cpp @@ -1,4 +1,4 @@ -// $Id: PostElement.cpp,v 1.77 2006-11-27 22:22:16 geuzaine Exp $ +// $Id: PostElement.cpp,v 1.78 2007-03-05 09:30:53 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -1241,7 +1241,7 @@ void Draw_VectorPyramid(ARGS) // Tensor Elements -static int state = -1; +static int state = -1; // WTF? This is completely wrong when you have multiple view --CG void Draw_TensorElement(int type, Post_View * View, int preproNormals, double ValMin, double ValMax, @@ -1263,7 +1263,7 @@ void Draw_TensorElement(int type, Post_View * View, int preproNormals, int ts = View->TimeStep; - if(View->TensorType == DRAW_POST_VONMISES){ + if(View->TensorType == DRAW_POST_VONMISES || !View->NbTP){ View->TimeStep = 0; double V_VonMises[8]; @@ -1284,6 +1284,8 @@ void Draw_TensorElement(int type, Post_View * View, int preproNormals, View->TensorType == DRAW_POST_LMGC90_DEPAV || View->TensorType == DRAW_POST_LMGC90_DEPNORM){ + // FIXME: need to clean up this mess! --CG + static double zmin[3], zmax[3]; int it; double DEP[3]; // déplacement relatif cdf % a config de référence diff --git a/Mesh/BoundaryLayer.cpp b/Mesh/BoundaryLayer.cpp index 9a0c2df98cb04c093bb5acc6c6163c69c7e3f8eb..6ea20007ed1855b2270e87b6f723ad9f8d4831fd 100644 --- a/Mesh/BoundaryLayer.cpp +++ b/Mesh/BoundaryLayer.cpp @@ -1,4 +1,4 @@ -// $Id: BoundaryLayer.cpp,v 1.1 2007-02-26 08:25:39 geuzaine Exp $ +// $Id: BoundaryLayer.cpp,v 1.2 2007-03-05 09:30:53 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -24,6 +24,7 @@ #include "meshGEdge.h" #include "meshGFace.h" #include "Message.h" +#include "Views.h" template<class T> static void addExtrudeNormals(std::vector<T*> &elements) @@ -62,8 +63,7 @@ int MeshBoundaryLayerFaces(GModel *m) // we use the normals for the extrusion) std::for_each(m->firstFace(), m->lastFace(), orientMeshGFace()); - // compute a smooth normal field on all the surfaces giving rise to - // boundary layers + // compute a normal field for the extrusion if(ExtrudeParams::normals) delete ExtrudeParams::normals; ExtrudeParams::normals = new smooth_data(); ExtrudeParams *myep = 0; @@ -72,16 +72,34 @@ int MeshBoundaryLayerFaces(GModel *m) if(gf->geomType() == GEntity::BoundaryLayerSurface){ ExtrudeParams *ep = myep = gf->meshAttributes.extrude; if(ep && ep->mesh.ExtrudeMesh && ep->geo.Mode == COPIED_ENTITY){ - GFace *from = gf->model()->faceByTag(std::abs(ep->geo.Source)); - if(!from){ - Msg(GERROR, "Unknown source face %d for boundary layer", ep->geo.Source); - continue; + if(ep->mesh.ViewIndex >= 0 && ep->mesh.ViewIndex < List_Nbr(CTX.post.list)){ + // use external vector point post-pro view to get normals + // FIXME: should use an octree on a general view instead + xyzv::eps = 1.e-4; + Post_View *v = *(Post_View**)List_Pointer(CTX.post.list, ep->mesh.ViewIndex); + if(v->NbVP){ + int nb = List_Nbr(v->VP) / v->NbVP; + for(int i = 0; i < List_Nbr(v->VP); i += nb){ + double *data = (double*)List_Pointer_Fast(v->VP, i); + ExtrudeParams::normals->add(data[0], data[1], data[2], 3, &data[3]); + } + } + } + else{ + // compute smooth normal field from surfaces + GFace *from = gf->model()->faceByTag(std::abs(ep->geo.Source)); + if(!from){ + Msg(GERROR, "Unknown source face %d for boundary layer", ep->geo.Source); + continue; + } + addExtrudeNormals(from->triangles); + addExtrudeNormals(from->quadrangles); } - addExtrudeNormals(from->triangles); - addExtrudeNormals(from->quadrangles); } } } + ExtrudeParams::normals->normalize(); + //ExtrudeParams::normals->exportview("normals.pos"); if(!myep) return 0; // set the position of bounding points (FIXME: should check diff --git a/Mesh/Makefile b/Mesh/Makefile index 35d571c21291504a5d43e07426c10ebb07ed8f18..754944f03a63bf10f18e52ce9ce0d48f837593b3 100644 --- a/Mesh/Makefile +++ b/Mesh/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.167 2007-02-28 06:58:46 geuzaine Exp $ +# $Id: Makefile,v 1.168 2007-03-05 09:30:53 geuzaine Exp $ # # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle # @@ -317,7 +317,9 @@ BoundaryLayer.o: BoundaryLayer.cpp BoundaryLayer.h ../Geo/GModel.h \ ../Geo/MElement.h ../Geo/SPoint2.h ../Geo/SVector3.h ../Geo/Pair.h \ ../Geo/ExtrudeParams.h ../Geo/GRegion.h ../Geo/GEntity.h \ ../Geo/MElement.h ../Geo/ExtrudeParams.h ../Geo/SBoundingBox3d.h \ - meshGEdge.h meshGFace.h ../Common/Message.h + meshGEdge.h meshGFace.h ../Common/Message.h ../Common/Views.h \ + ../Common/ColorTable.h ../Common/VertexArray.h ../Common/SmoothData.h \ + ../Common/AdaptiveViews.h ../Common/GmshMatrix.h BDS.o: BDS.cpp ../Numeric/Numeric.h ../Common/GmshMatrix.h BDS.h \ ../Geo/GFace.h ../Geo/GPoint.h ../Geo/GEntity.h ../Geo/Range.h \ ../Geo/SPoint3.h ../Geo/SBoundingBox3d.h ../Geo/SPoint3.h \ diff --git a/Mesh/meshGRegionExtruded.cpp b/Mesh/meshGRegionExtruded.cpp index 1c30fd029b15612aed3c25e58c1e84bd3be737c7..a14e81ff615175ea7e4eda1c69c5d30171086e11 100644 --- a/Mesh/meshGRegionExtruded.cpp +++ b/Mesh/meshGRegionExtruded.cpp @@ -1,4 +1,4 @@ -// $Id: meshGRegionExtruded.cpp,v 1.10 2007-01-22 16:31:44 geuzaine Exp $ +// $Id: meshGRegionExtruded.cpp,v 1.11 2007-03-05 09:30:53 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -185,6 +185,131 @@ void insertAllVertices(GRegion *gr, } } +#if defined(HAVE_ANN_) + +#include "ANN/ANN.h" + +template <class T> +void carveHole(std::vector<T*> &elements, double distance, ANNkd_tree *kdtree) +{ + // delete all elements that have at least one vertex closer than + // 'distance' from the carving surface vertices + ANNidxArray index = new ANNidx[1]; + ANNdistArray dist = new ANNdist[1]; + std::vector<T*> temp; + for(unsigned int i = 0; i < elements.size(); i++){ + for(unsigned int j = 0; j < elements[i]->getNumVertices(); j++){ + MVertex *v = elements[i]->getVertex(j); + double xyz[3] = {v->x(), v->y(), v->z()}; + kdtree->annkSearch(xyz, 1, index, dist); + double d = sqrt(dist[0]); + if(d < distance){ + delete elements[i]; + break; + } + else if(j == elements[i]->getNumVertices() - 1){ + temp.push_back(elements[i]); + } + } + } + elements = temp; + delete [] index; + delete [] dist; +} + +#endif + +template <class T> +void addFaces(std::vector<T*> &elements, std::set<MFace, Less_Face> &faces) +{ + for(unsigned int i = 0; i < elements.size(); i++){ + for(int j = 0; j < elements[i]->getNumFaces(); j++){ + MFace f = elements[i]->getFace(j); + std::set<MFace, Less_Face>::iterator it = faces.find(f); + if(it == faces.end()) + faces.insert(f); + else + faces.erase(it); + } + } +} + +void carveHole(GRegion *gr, int num, double distance, std::vector<int> &surfaces) +{ +#if !defined(HAVE_ANN_) + Msg(GERROR, "Gmsh must be compiled with ANN support to carve holes in extruded meshes"); +#else + Msg(INFO, "Carving hole %d from surface %d at distance %g", num, surfaces[0], distance); + GModel *m = gr->model(); + + // add all points from carving surfaces into kdtree + int numnodes = 0; + for(unsigned int i = 0; i < surfaces.size(); i++){ + GFace *gf = m->faceByTag(surfaces[i]); + if(!gf){ + Msg(GERROR, "Unknown carving surface %d", surfaces[i]); + return; + } + numnodes += gf->mesh_vertices.size(); + } + + ANNpointArray kdnodes = annAllocPts(numnodes, 4); + int k = 0; + for(unsigned int i = 0; i < surfaces.size(); i++){ + GFace *gf = m->faceByTag(surfaces[i]); + for(unsigned int j = 0; j < gf->mesh_vertices.size(); j++){ + kdnodes[k][0] = gf->mesh_vertices[j]->x(); + kdnodes[k][1] = gf->mesh_vertices[j]->y(); + kdnodes[k][2] = gf->mesh_vertices[j]->z(); + k++; + } + } + ANNkd_tree *kdtree = new ANNkd_tree(kdnodes, numnodes, 3); + + // remove the volume elements that are within 'distance' of the + // carved surface + carveHole(gr->tetrahedra, distance, kdtree); + carveHole(gr->hexahedra, distance, kdtree); + carveHole(gr->prisms, distance, kdtree); + carveHole(gr->pyramids, distance, kdtree); + + delete kdtree; + annDeallocPts(kdnodes); + + // TODO: remove any interior elements left inside the carved surface + // (could shoot a line from each element's barycenter and count + // intersections o see who's inside) + + // generate discrete boundary mesh of the carved hole + GFace *gf = m->faceByTag(num); + if(!gf) return; + std::set<MFace, Less_Face> faces; + std::list<GFace*> f = gr->faces(); + for(std::list<GFace*>::iterator it = f.begin(); it != f.end(); it++){ + addFaces((*it)->triangles, faces); + addFaces((*it)->quadrangles, faces); + } + addFaces(gr->tetrahedra, faces); + addFaces(gr->hexahedra, faces); + addFaces(gr->prisms, faces); + addFaces(gr->pyramids, faces); + + std::set<MVertex*> verts; + for(std::set<MFace, Less_Face>::iterator it = faces.begin(); it != faces.end(); it++){ + for(int i = 0; i < it->getNumVertices(); i++){ + it->getVertex(i)->setEntity(gf); + verts.insert(it->getVertex(i)); + } + if(it->getNumVertices() == 3) + gf->triangles.push_back(new MTriangle(it->getVertex(0), it->getVertex(1), + it->getVertex(2))); + else if(it->getNumVertices() == 4) + gf->quadrangles.push_back(new MQuadrangle(it->getVertex(0), it->getVertex(1), + it->getVertex(2), it->getVertex(3))); + } +#endif +} + void meshGRegionExtruded::operator() (GRegion *gr) { if(gr->geomType() == GEntity::DiscreteVolume) return; @@ -215,6 +340,14 @@ void meshGRegionExtruded::operator() (GRegion *gr) extrudeMesh(from, gr, pos); + // carve holes if any (only do it now if the mesh is final, i.e., if + // the mesh is recombined) + if(ep->mesh.Holes.size() && ep->mesh.Recombine){ + std::map<int, std::pair<double, std::vector<int> > >::iterator it; + for(it = ep->mesh.Holes.begin(); it != ep->mesh.Holes.end(); it++) + carveHole(gr, it->first, it->second.first, it->second.second); + } + MVertexLessThanLexicographic::tolerance = old_tol; } @@ -473,6 +606,17 @@ int SubdivideExtrudedMesh(GModel *m) } } + // carve holes if any + for(unsigned int i = 0; i < regions.size(); i++){ + GRegion *gr = regions[i]; + ExtrudeParams *ep = gr->meshAttributes.extrude; + if(ep->mesh.Holes.size()){ + std::map<int, std::pair<double, std::vector<int> > >::iterator it; + for(it = ep->mesh.Holes.begin(); it != ep->mesh.Holes.end(); it++) + carveHole(gr, it->first, it->second.first, it->second.second); + } + } + MVertexLessThanLexicographic::tolerance = old_tol; return 1; } diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index 43213177ffc4097701b3ed996b25138d778a1378..d6d9d43b656a776636e3b94b5392a5f84718f42b 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.l,v 1.85 2007-03-02 09:20:21 remacle Exp $ +// $Id: Gmsh.l,v 1.86 2007-03-05 09:30:53 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -166,6 +166,7 @@ GMSH_MINOR_VERSION return tGMSH_MINOR_VERSION; GMSH_PATCH_VERSION return tGMSH_PATCH_VERSION; Hide return tHide; +Hole return tHole; Hypot return tHypot; In return tIn; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index e019c471bdd40cff3901b44e294264a5af5c293c..07b7e12f8ca4d86f0f078d6f968c9cc965bdc923 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -78,53 +78,54 @@ #define tCoherence 328 #define tAttractor 329 #define tLayers 330 -#define tAlias 331 -#define tAliasWithOptions 332 -#define tText2D 333 -#define tText3D 334 -#define tInterpolationScheme 335 -#define tTime 336 -#define tGrain 337 -#define tCombine 338 -#define tBSpline 339 -#define tBezier 340 -#define tNurbs 341 -#define tOrder 342 -#define tKnots 343 -#define tColor 344 -#define tColorTable 345 -#define tFor 346 -#define tIn 347 -#define tEndFor 348 -#define tIf 349 -#define tEndIf 350 -#define tExit 351 -#define tReturn 352 -#define tCall 353 -#define tFunction 354 -#define tShow 355 -#define tHide 356 -#define tGetValue 357 -#define tGMSH_MAJOR_VERSION 358 -#define tGMSH_MINOR_VERSION 359 -#define tGMSH_PATCH_VERSION 360 -#define tAFFECTPLUS 361 -#define tAFFECTMINUS 362 -#define tAFFECTTIMES 363 -#define tAFFECTDIVIDE 364 -#define tOR 365 -#define tAND 366 -#define tEQUAL 367 -#define tNOTEQUAL 368 -#define tLESSOREQUAL 369 -#define tGREATEROREQUAL 370 -#define tPLUSPLUS 371 -#define tMINUSMINUS 372 -#define UNARYPREC 373 +#define tHole 331 +#define tAlias 332 +#define tAliasWithOptions 333 +#define tText2D 334 +#define tText3D 335 +#define tInterpolationScheme 336 +#define tTime 337 +#define tGrain 338 +#define tCombine 339 +#define tBSpline 340 +#define tBezier 341 +#define tNurbs 342 +#define tOrder 343 +#define tKnots 344 +#define tColor 345 +#define tColorTable 346 +#define tFor 347 +#define tIn 348 +#define tEndFor 349 +#define tIf 350 +#define tEndIf 351 +#define tExit 352 +#define tReturn 353 +#define tCall 354 +#define tFunction 355 +#define tShow 356 +#define tHide 357 +#define tGetValue 358 +#define tGMSH_MAJOR_VERSION 359 +#define tGMSH_MINOR_VERSION 360 +#define tGMSH_PATCH_VERSION 361 +#define tAFFECTPLUS 362 +#define tAFFECTMINUS 363 +#define tAFFECTTIMES 364 +#define tAFFECTDIVIDE 365 +#define tOR 366 +#define tAND 367 +#define tEQUAL 368 +#define tNOTEQUAL 369 +#define tLESSOREQUAL 370 +#define tGREATEROREQUAL 371 +#define tPLUSPLUS 372 +#define tMINUSMINUS 373 +#define UNARYPREC 374 #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.309 2007-03-02 09:20:21 remacle Exp $ +// $Id: Gmsh.tab.cpp,v 1.310 2007-03-05 09:30:53 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -219,26 +220,26 @@ typedef union { -#define YYFINAL 1198 +#define YYFINAL 1220 #define YYFLAG -32768 -#define YYNTBASE 140 +#define YYNTBASE 141 -#define YYTRANSLATE(x) ((unsigned)(x) <= 373 ? yytranslate[x] : 207) +#define YYTRANSLATE(x) ((unsigned)(x) <= 374 ? yytranslate[x] : 209) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 125, 2, 135, 2, 124, 2, 2, 130, - 131, 122, 120, 136, 121, 134, 123, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 116, - 2, 118, 111, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 126, 2, 136, 2, 125, 2, 2, 131, + 132, 123, 121, 137, 122, 135, 124, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 117, + 2, 119, 112, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 132, 2, 133, 129, 2, 2, 2, 2, 2, 2, + 133, 2, 134, 130, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 137, 2, 138, 139, 2, 2, 2, 2, + 2, 2, 138, 2, 139, 140, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -262,8 +263,8 @@ static const short yytranslate[] = { 0, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 112, 113, 114, 115, 117, 119, - 126, 127, 128 + 107, 108, 109, 110, 111, 113, 114, 115, 116, 118, + 120, 127, 128, 129 }; #if YYDEBUG != 0 @@ -284,227 +285,230 @@ static const short yyprhs[] = { 0, 743, 748, 754, 758, 762, 767, 772, 776, 784, 792, 796, 804, 808, 811, 814, 830, 833, 840, 849, 858, 869, 871, 874, 876, 880, 885, 887, 893, 905, 919, - 920, 928, 929, 943, 944, 960, 961, 968, 977, 986, - 995, 1008, 1021, 1034, 1049, 1064, 1079, 1080, 1093, 1094, - 1107, 1108, 1121, 1122, 1139, 1140, 1157, 1158, 1175, 1176, - 1195, 1196, 1215, 1216, 1235, 1237, 1240, 1246, 1254, 1264, - 1267, 1274, 1284, 1294, 1303, 1313, 1322, 1331, 1338, 1343, - 1354, 1365, 1376, 1387, 1390, 1392, 1396, 1399, 1402, 1405, - 1409, 1413, 1417, 1421, 1425, 1429, 1433, 1437, 1441, 1445, - 1449, 1453, 1457, 1461, 1467, 1472, 1477, 1482, 1487, 1492, - 1497, 1502, 1507, 1512, 1517, 1524, 1529, 1534, 1539, 1544, - 1549, 1554, 1561, 1568, 1575, 1580, 1585, 1590, 1595, 1600, - 1605, 1610, 1615, 1620, 1625, 1630, 1637, 1642, 1647, 1652, - 1657, 1662, 1667, 1674, 1681, 1688, 1693, 1695, 1697, 1699, - 1701, 1703, 1705, 1707, 1709, 1715, 1720, 1725, 1728, 1734, - 1738, 1745, 1750, 1758, 1765, 1767, 1770, 1773, 1777, 1781, - 1793, 1803, 1811, 1819, 1821, 1825, 1827, 1829, 1832, 1836, - 1841, 1845, 1851, 1856, 1858, 1860, 1862, 1866, 1871, 1878, - 1886, 1888, 1890, 1894, 1898, 1908, 1916, 1918, 1924, 1928, - 1935, 1937, 1941, 1943, 1945, 1952, 1957, 1962, 1967, 1974, - 1981 + 920, 928, 929, 943, 944, 960, 961, 968, 969, 980, + 989, 998, 1007, 1020, 1033, 1046, 1061, 1076, 1091, 1092, + 1105, 1106, 1119, 1120, 1133, 1134, 1151, 1152, 1169, 1170, + 1187, 1188, 1207, 1208, 1227, 1228, 1247, 1249, 1252, 1258, + 1266, 1276, 1279, 1291, 1298, 1308, 1318, 1327, 1337, 1346, + 1355, 1362, 1367, 1378, 1389, 1400, 1411, 1414, 1416, 1420, + 1423, 1426, 1429, 1433, 1437, 1441, 1445, 1449, 1453, 1457, + 1461, 1465, 1469, 1473, 1477, 1481, 1485, 1491, 1496, 1501, + 1506, 1511, 1516, 1521, 1526, 1531, 1536, 1541, 1548, 1553, + 1558, 1563, 1568, 1573, 1578, 1585, 1592, 1599, 1604, 1609, + 1614, 1619, 1624, 1629, 1634, 1639, 1644, 1649, 1654, 1661, + 1666, 1671, 1676, 1681, 1686, 1691, 1698, 1705, 1712, 1717, + 1719, 1721, 1723, 1725, 1727, 1729, 1731, 1733, 1739, 1744, + 1749, 1752, 1758, 1762, 1769, 1774, 1782, 1789, 1791, 1794, + 1797, 1801, 1805, 1817, 1827, 1835, 1843, 1845, 1849, 1851, + 1853, 1856, 1860, 1865, 1871, 1874, 1878, 1882, 1888, 1893, + 1895, 1897, 1899, 1903, 1910, 1912, 1914, 1918, 1922, 1932, + 1940, 1942, 1948, 1952, 1959, 1961, 1965, 1967, 1969, 1976, + 1981, 1986, 1991, 1998, 2005 }; -static const short yyrhs[] = { 141, - 0, 1, 6, 0, 0, 141, 142, 0, 145, 0, - 144, 0, 164, 0, 166, 0, 167, 0, 170, 0, - 171, 0, 172, 0, 173, 0, 176, 0, 192, 0, - 193, 0, 194, 0, 175, 0, 174, 0, 118, 0, - 118, 118, 0, 35, 130, 5, 131, 6, 0, 35, - 130, 5, 131, 143, 206, 6, 0, 35, 130, 5, - 136, 202, 131, 6, 0, 35, 130, 5, 136, 202, - 131, 143, 206, 6, 0, 4, 5, 137, 146, 138, - 6, 0, 4, 5, 4, 197, 137, 146, 138, 6, - 0, 0, 146, 149, 0, 146, 153, 0, 146, 156, - 0, 146, 158, 0, 146, 159, 0, 146, 161, 0, - 195, 0, 147, 136, 195, 0, 195, 0, 148, 136, - 195, 0, 0, 0, 4, 150, 130, 147, 131, 151, - 137, 148, 138, 6, 0, 206, 0, 152, 136, 206, - 0, 0, 79, 130, 195, 136, 195, 136, 195, 131, - 154, 137, 152, 138, 6, 0, 206, 0, 155, 136, - 206, 0, 0, 80, 130, 195, 136, 195, 136, 195, - 136, 195, 131, 157, 137, 155, 138, 6, 0, 81, - 137, 199, 138, 137, 199, 138, 6, 0, 0, 82, - 160, 137, 148, 138, 6, 0, 83, 130, 195, 131, - 200, 6, 0, 7, 0, 107, 0, 108, 0, 109, - 0, 110, 0, 126, 0, 127, 0, 4, 162, 195, - 6, 0, 4, 132, 195, 133, 162, 195, 6, 0, - 4, 132, 137, 202, 138, 133, 162, 200, 6, 0, - 4, 132, 133, 7, 200, 6, 0, 4, 132, 133, - 107, 200, 6, 0, 4, 163, 6, 0, 4, 132, - 195, 133, 163, 6, 0, 4, 134, 4, 7, 206, - 6, 0, 4, 132, 195, 133, 134, 4, 7, 206, - 6, 0, 4, 134, 4, 162, 195, 6, 0, 4, - 132, 195, 133, 134, 4, 162, 195, 6, 0, 4, - 134, 4, 163, 6, 0, 4, 132, 195, 133, 134, - 4, 163, 6, 0, 4, 134, 90, 134, 4, 7, - 203, 6, 0, 4, 132, 195, 133, 134, 90, 134, - 4, 7, 203, 6, 0, 4, 134, 91, 7, 204, - 6, 0, 4, 132, 195, 133, 134, 91, 7, 204, - 6, 0, 64, 130, 4, 131, 134, 4, 7, 195, - 6, 0, 64, 130, 4, 131, 134, 4, 7, 206, - 6, 0, 195, 0, 206, 0, 43, 130, 195, 131, - 7, 197, 6, 0, 60, 43, 130, 165, 131, 7, - 200, 6, 0, 75, 43, 200, 7, 200, 6, 0, - 75, 46, 200, 7, 200, 6, 0, 52, 53, 200, - 7, 195, 6, 0, 46, 130, 195, 131, 7, 200, - 6, 0, 50, 130, 195, 131, 7, 200, 6, 0, - 44, 130, 195, 131, 7, 200, 6, 0, 44, 130, - 195, 131, 7, 200, 56, 197, 6, 0, 45, 130, - 195, 131, 7, 200, 6, 0, 45, 130, 195, 131, - 7, 200, 56, 197, 6, 0, 54, 130, 195, 131, - 7, 137, 195, 136, 195, 136, 5, 136, 5, 136, - 5, 138, 6, 0, 85, 130, 195, 131, 7, 200, - 6, 0, 86, 130, 195, 131, 7, 200, 6, 0, - 87, 130, 195, 131, 7, 200, 89, 200, 88, 195, - 6, 0, 46, 71, 130, 195, 131, 7, 200, 6, - 0, 60, 46, 130, 165, 131, 7, 200, 6, 0, - 56, 49, 130, 195, 131, 7, 200, 6, 0, 57, - 49, 130, 195, 131, 7, 200, 6, 0, 12, 13, - 6, 0, 13, 49, 195, 6, 0, 54, 49, 130, - 195, 131, 7, 5, 5, 5, 6, 0, 47, 130, - 195, 131, 7, 200, 6, 0, 48, 130, 195, 131, - 7, 200, 6, 0, 49, 71, 130, 195, 131, 7, - 200, 6, 0, 60, 49, 130, 165, 131, 7, 200, - 6, 0, 59, 51, 130, 195, 131, 7, 200, 6, - 0, 51, 130, 195, 131, 7, 200, 6, 0, 60, - 51, 130, 165, 131, 7, 200, 6, 0, 66, 197, - 137, 168, 138, 0, 65, 137, 197, 136, 197, 136, - 195, 138, 137, 168, 138, 0, 67, 197, 137, 168, - 138, 0, 68, 137, 197, 136, 195, 138, 137, 168, - 138, 0, 170, 0, 169, 0, 167, 0, 0, 169, - 166, 0, 169, 43, 137, 202, 138, 6, 0, 169, - 46, 137, 202, 138, 6, 0, 169, 49, 137, 202, - 138, 6, 0, 169, 51, 137, 202, 138, 6, 0, - 70, 137, 169, 138, 0, 70, 4, 132, 195, 133, - 6, 0, 77, 4, 132, 195, 133, 6, 0, 78, - 4, 132, 195, 133, 6, 0, 73, 137, 169, 138, - 0, 73, 4, 132, 195, 133, 6, 0, 73, 4, - 6, 0, 73, 4, 4, 6, 0, 90, 203, 137, - 169, 138, 0, 101, 206, 6, 0, 102, 206, 6, - 0, 101, 137, 169, 138, 0, 102, 137, 169, 138, - 0, 4, 206, 6, 0, 4, 4, 132, 195, 133, - 206, 6, 0, 4, 4, 4, 132, 195, 133, 6, - 0, 4, 195, 6, 0, 64, 130, 4, 131, 134, - 4, 6, 0, 84, 4, 6, 0, 97, 6, 0, - 40, 6, 0, 40, 137, 195, 136, 195, 136, 195, - 136, 195, 136, 195, 136, 195, 138, 6, 0, 41, - 6, 0, 92, 130, 195, 8, 195, 131, 0, 92, - 130, 195, 8, 195, 8, 195, 131, 0, 92, 4, - 93, 137, 195, 8, 195, 138, 0, 92, 4, 93, - 137, 195, 8, 195, 8, 195, 138, 0, 94, 0, - 100, 4, 0, 98, 0, 99, 4, 6, 0, 95, - 130, 195, 131, 0, 96, 0, 69, 197, 137, 169, - 138, 0, 69, 137, 197, 136, 197, 136, 195, 138, - 137, 169, 138, 0, 69, 137, 197, 136, 197, 136, - 197, 136, 195, 138, 137, 169, 138, 0, 0, 69, - 197, 137, 169, 177, 190, 138, 0, 0, 69, 137, - 197, 136, 197, 136, 195, 138, 137, 169, 178, 190, - 138, 0, 0, 69, 137, 197, 136, 197, 136, 197, - 136, 195, 138, 137, 169, 179, 190, 138, 0, 0, - 69, 137, 169, 180, 190, 138, 0, 69, 43, 137, - 195, 136, 197, 138, 6, 0, 69, 46, 137, 195, - 136, 197, 138, 6, 0, 69, 49, 137, 195, 136, - 197, 138, 6, 0, 69, 43, 137, 195, 136, 197, - 136, 197, 136, 195, 138, 6, 0, 69, 46, 137, - 195, 136, 197, 136, 197, 136, 195, 138, 6, 0, - 69, 49, 137, 195, 136, 197, 136, 197, 136, 195, - 138, 6, 0, 69, 43, 137, 195, 136, 197, 136, - 197, 136, 197, 136, 195, 138, 6, 0, 69, 46, - 137, 195, 136, 197, 136, 197, 136, 197, 136, 195, - 138, 6, 0, 69, 49, 137, 195, 136, 197, 136, - 197, 136, 197, 136, 195, 138, 6, 0, 0, 69, - 43, 137, 195, 136, 197, 138, 181, 137, 190, 138, - 6, 0, 0, 69, 46, 137, 195, 136, 197, 138, - 182, 137, 190, 138, 6, 0, 0, 69, 49, 137, - 195, 136, 197, 138, 183, 137, 190, 138, 6, 0, - 0, 69, 43, 137, 195, 136, 197, 136, 197, 136, - 195, 138, 184, 137, 190, 138, 6, 0, 0, 69, - 46, 137, 195, 136, 197, 136, 197, 136, 195, 138, - 185, 137, 190, 138, 6, 0, 0, 69, 49, 137, - 195, 136, 197, 136, 197, 136, 195, 138, 186, 137, - 190, 138, 6, 0, 0, 69, 43, 137, 195, 136, - 197, 136, 197, 136, 197, 136, 195, 138, 187, 137, - 190, 138, 6, 0, 0, 69, 46, 137, 195, 136, - 197, 136, 197, 136, 197, 136, 195, 138, 188, 137, - 190, 138, 6, 0, 0, 69, 49, 137, 195, 136, - 197, 136, 197, 136, 197, 136, 195, 138, 189, 137, - 190, 138, 6, 0, 191, 0, 190, 191, 0, 76, - 137, 195, 138, 6, 0, 76, 137, 200, 136, 200, - 138, 6, 0, 76, 137, 200, 136, 200, 136, 200, - 138, 6, 0, 72, 6, 0, 58, 46, 200, 7, - 195, 6, 0, 58, 46, 200, 7, 195, 61, 63, - 195, 6, 0, 58, 46, 200, 7, 195, 61, 62, - 195, 6, 0, 58, 49, 137, 195, 138, 7, 200, - 6, 0, 58, 49, 137, 195, 138, 7, 200, 4, - 6, 0, 55, 49, 137, 195, 138, 7, 200, 6, - 0, 58, 51, 137, 195, 138, 7, 200, 6, 0, - 72, 49, 200, 7, 195, 6, 0, 72, 49, 200, - 6, 0, 43, 137, 202, 138, 93, 49, 137, 195, - 138, 6, 0, 46, 137, 202, 138, 93, 49, 137, - 195, 138, 6, 0, 46, 137, 202, 138, 93, 51, - 137, 195, 138, 6, 0, 49, 137, 202, 138, 93, - 51, 137, 195, 138, 6, 0, 74, 6, 0, 196, - 0, 130, 195, 131, 0, 121, 195, 0, 120, 195, - 0, 125, 195, 0, 195, 121, 195, 0, 195, 120, - 195, 0, 195, 122, 195, 0, 195, 123, 195, 0, - 195, 124, 195, 0, 195, 129, 195, 0, 195, 116, - 195, 0, 195, 118, 195, 0, 195, 117, 195, 0, - 195, 119, 195, 0, 195, 114, 195, 0, 195, 115, - 195, 0, 195, 113, 195, 0, 195, 112, 195, 0, - 195, 111, 195, 8, 195, 0, 14, 130, 195, 131, - 0, 15, 130, 195, 131, 0, 16, 130, 195, 131, - 0, 17, 130, 195, 131, 0, 18, 130, 195, 131, - 0, 19, 130, 195, 131, 0, 20, 130, 195, 131, - 0, 21, 130, 195, 131, 0, 22, 130, 195, 131, - 0, 24, 130, 195, 131, 0, 25, 130, 195, 136, - 195, 131, 0, 26, 130, 195, 131, 0, 27, 130, - 195, 131, 0, 28, 130, 195, 131, 0, 29, 130, - 195, 131, 0, 30, 130, 195, 131, 0, 31, 130, - 195, 131, 0, 32, 130, 195, 136, 195, 131, 0, - 33, 130, 195, 136, 195, 131, 0, 34, 130, 195, - 136, 195, 131, 0, 23, 130, 195, 131, 0, 14, - 132, 195, 133, 0, 15, 132, 195, 133, 0, 16, - 132, 195, 133, 0, 17, 132, 195, 133, 0, 18, - 132, 195, 133, 0, 19, 132, 195, 133, 0, 20, - 132, 195, 133, 0, 21, 132, 195, 133, 0, 22, - 132, 195, 133, 0, 24, 132, 195, 133, 0, 25, - 132, 195, 136, 195, 133, 0, 26, 132, 195, 133, - 0, 27, 132, 195, 133, 0, 28, 132, 195, 133, - 0, 29, 132, 195, 133, 0, 30, 132, 195, 133, - 0, 31, 132, 195, 133, 0, 32, 132, 195, 136, - 195, 133, 0, 33, 132, 195, 136, 195, 133, 0, - 34, 132, 195, 136, 195, 133, 0, 23, 132, 195, - 133, 0, 3, 0, 9, 0, 10, 0, 11, 0, - 104, 0, 105, 0, 106, 0, 4, 0, 4, 139, - 137, 195, 138, 0, 4, 132, 195, 133, 0, 135, - 4, 132, 133, 0, 4, 163, 0, 4, 132, 195, - 133, 163, 0, 4, 134, 4, 0, 4, 132, 195, - 133, 134, 4, 0, 4, 134, 4, 163, 0, 4, - 132, 195, 133, 134, 4, 163, 0, 103, 130, 5, - 136, 195, 131, 0, 198, 0, 121, 197, 0, 120, - 197, 0, 197, 121, 197, 0, 197, 120, 197, 0, - 137, 195, 136, 195, 136, 195, 136, 195, 136, 195, - 138, 0, 137, 195, 136, 195, 136, 195, 136, 195, - 138, 0, 137, 195, 136, 195, 136, 195, 138, 0, - 130, 195, 136, 195, 136, 195, 131, 0, 200, 0, - 199, 136, 200, 0, 195, 0, 201, 0, 137, 138, - 0, 137, 202, 138, 0, 121, 137, 202, 138, 0, - 195, 8, 195, 0, 195, 8, 195, 8, 195, 0, - 43, 137, 195, 138, 0, 167, 0, 170, 0, 176, - 0, 4, 132, 133, 0, 121, 4, 132, 133, 0, - 4, 132, 137, 202, 138, 133, 0, 121, 4, 132, - 137, 202, 138, 133, 0, 195, 0, 201, 0, 202, - 136, 195, 0, 202, 136, 201, 0, 137, 195, 136, - 195, 136, 195, 136, 195, 138, 0, 137, 195, 136, - 195, 136, 195, 138, 0, 4, 0, 4, 134, 90, - 134, 4, 0, 137, 205, 138, 0, 4, 132, 195, - 133, 134, 91, 0, 203, 0, 205, 136, 203, 0, - 5, 0, 42, 0, 37, 130, 206, 136, 206, 131, - 0, 38, 130, 206, 131, 0, 39, 130, 206, 131, - 0, 36, 130, 206, 131, 0, 36, 130, 206, 136, - 202, 131, 0, 36, 130, 4, 134, 4, 131, 0, - 36, 130, 4, 132, 195, 133, 134, 4, 131, 0 +static const short yyrhs[] = { 142, + 0, 1, 6, 0, 0, 142, 143, 0, 146, 0, + 145, 0, 165, 0, 167, 0, 168, 0, 171, 0, + 172, 0, 173, 0, 174, 0, 177, 0, 194, 0, + 195, 0, 196, 0, 176, 0, 175, 0, 119, 0, + 119, 119, 0, 35, 131, 5, 132, 6, 0, 35, + 131, 5, 132, 144, 208, 6, 0, 35, 131, 5, + 137, 204, 132, 6, 0, 35, 131, 5, 137, 204, + 132, 144, 208, 6, 0, 4, 5, 138, 147, 139, + 6, 0, 4, 5, 4, 199, 138, 147, 139, 6, + 0, 0, 147, 150, 0, 147, 154, 0, 147, 157, + 0, 147, 159, 0, 147, 160, 0, 147, 162, 0, + 197, 0, 148, 137, 197, 0, 197, 0, 149, 137, + 197, 0, 0, 0, 4, 151, 131, 148, 132, 152, + 138, 149, 139, 6, 0, 208, 0, 153, 137, 208, + 0, 0, 80, 131, 197, 137, 197, 137, 197, 132, + 155, 138, 153, 139, 6, 0, 208, 0, 156, 137, + 208, 0, 0, 81, 131, 197, 137, 197, 137, 197, + 137, 197, 132, 158, 138, 156, 139, 6, 0, 82, + 138, 201, 139, 138, 201, 139, 6, 0, 0, 83, + 161, 138, 149, 139, 6, 0, 84, 131, 197, 132, + 202, 6, 0, 7, 0, 108, 0, 109, 0, 110, + 0, 111, 0, 127, 0, 128, 0, 4, 163, 197, + 6, 0, 4, 133, 197, 134, 163, 197, 6, 0, + 4, 133, 138, 204, 139, 134, 163, 202, 6, 0, + 4, 133, 134, 7, 202, 6, 0, 4, 133, 134, + 108, 202, 6, 0, 4, 164, 6, 0, 4, 133, + 197, 134, 164, 6, 0, 4, 135, 4, 7, 208, + 6, 0, 4, 133, 197, 134, 135, 4, 7, 208, + 6, 0, 4, 135, 4, 163, 197, 6, 0, 4, + 133, 197, 134, 135, 4, 163, 197, 6, 0, 4, + 135, 4, 164, 6, 0, 4, 133, 197, 134, 135, + 4, 164, 6, 0, 4, 135, 91, 135, 4, 7, + 205, 6, 0, 4, 133, 197, 134, 135, 91, 135, + 4, 7, 205, 6, 0, 4, 135, 92, 7, 206, + 6, 0, 4, 133, 197, 134, 135, 92, 7, 206, + 6, 0, 64, 131, 4, 132, 135, 4, 7, 197, + 6, 0, 64, 131, 4, 132, 135, 4, 7, 208, + 6, 0, 197, 0, 208, 0, 43, 131, 197, 132, + 7, 199, 6, 0, 60, 43, 131, 166, 132, 7, + 202, 6, 0, 75, 43, 202, 7, 202, 6, 0, + 75, 46, 202, 7, 202, 6, 0, 52, 53, 202, + 7, 197, 6, 0, 46, 131, 197, 132, 7, 202, + 6, 0, 50, 131, 197, 132, 7, 202, 6, 0, + 44, 131, 197, 132, 7, 202, 6, 0, 44, 131, + 197, 132, 7, 202, 56, 199, 6, 0, 45, 131, + 197, 132, 7, 202, 6, 0, 45, 131, 197, 132, + 7, 202, 56, 199, 6, 0, 54, 131, 197, 132, + 7, 138, 197, 137, 197, 137, 5, 137, 5, 137, + 5, 139, 6, 0, 86, 131, 197, 132, 7, 202, + 6, 0, 87, 131, 197, 132, 7, 202, 6, 0, + 88, 131, 197, 132, 7, 202, 90, 202, 89, 197, + 6, 0, 46, 71, 131, 197, 132, 7, 202, 6, + 0, 60, 46, 131, 166, 132, 7, 202, 6, 0, + 56, 49, 131, 197, 132, 7, 202, 6, 0, 57, + 49, 131, 197, 132, 7, 202, 6, 0, 12, 13, + 6, 0, 13, 49, 197, 6, 0, 54, 49, 131, + 197, 132, 7, 5, 5, 5, 6, 0, 47, 131, + 197, 132, 7, 202, 6, 0, 48, 131, 197, 132, + 7, 202, 6, 0, 49, 71, 131, 197, 132, 7, + 202, 6, 0, 60, 49, 131, 166, 132, 7, 202, + 6, 0, 59, 51, 131, 197, 132, 7, 202, 6, + 0, 51, 131, 197, 132, 7, 202, 6, 0, 60, + 51, 131, 166, 132, 7, 202, 6, 0, 66, 199, + 138, 169, 139, 0, 65, 138, 199, 137, 199, 137, + 197, 139, 138, 169, 139, 0, 67, 199, 138, 169, + 139, 0, 68, 138, 199, 137, 197, 139, 138, 169, + 139, 0, 171, 0, 170, 0, 168, 0, 0, 170, + 167, 0, 170, 43, 138, 204, 139, 6, 0, 170, + 46, 138, 204, 139, 6, 0, 170, 49, 138, 204, + 139, 6, 0, 170, 51, 138, 204, 139, 6, 0, + 70, 138, 170, 139, 0, 70, 4, 133, 197, 134, + 6, 0, 78, 4, 133, 197, 134, 6, 0, 79, + 4, 133, 197, 134, 6, 0, 73, 138, 170, 139, + 0, 73, 4, 133, 197, 134, 6, 0, 73, 4, + 6, 0, 73, 4, 4, 6, 0, 91, 205, 138, + 170, 139, 0, 102, 208, 6, 0, 103, 208, 6, + 0, 102, 138, 170, 139, 0, 103, 138, 170, 139, + 0, 4, 208, 6, 0, 4, 4, 133, 197, 134, + 208, 6, 0, 4, 4, 4, 133, 197, 134, 6, + 0, 4, 197, 6, 0, 64, 131, 4, 132, 135, + 4, 6, 0, 85, 4, 6, 0, 98, 6, 0, + 40, 6, 0, 40, 138, 197, 137, 197, 137, 197, + 137, 197, 137, 197, 137, 197, 139, 6, 0, 41, + 6, 0, 93, 131, 197, 8, 197, 132, 0, 93, + 131, 197, 8, 197, 8, 197, 132, 0, 93, 4, + 94, 138, 197, 8, 197, 139, 0, 93, 4, 94, + 138, 197, 8, 197, 8, 197, 139, 0, 95, 0, + 101, 4, 0, 99, 0, 100, 4, 6, 0, 96, + 131, 197, 132, 0, 97, 0, 69, 199, 138, 170, + 139, 0, 69, 138, 199, 137, 199, 137, 197, 139, + 138, 170, 139, 0, 69, 138, 199, 137, 199, 137, + 199, 137, 197, 139, 138, 170, 139, 0, 0, 69, + 199, 138, 170, 178, 192, 139, 0, 0, 69, 138, + 199, 137, 199, 137, 197, 139, 138, 170, 179, 192, + 139, 0, 0, 69, 138, 199, 137, 199, 137, 199, + 137, 197, 139, 138, 170, 180, 192, 139, 0, 0, + 69, 138, 170, 181, 192, 139, 0, 0, 69, 4, + 133, 197, 134, 138, 170, 182, 192, 139, 0, 69, + 43, 138, 197, 137, 199, 139, 6, 0, 69, 46, + 138, 197, 137, 199, 139, 6, 0, 69, 49, 138, + 197, 137, 199, 139, 6, 0, 69, 43, 138, 197, + 137, 199, 137, 199, 137, 197, 139, 6, 0, 69, + 46, 138, 197, 137, 199, 137, 199, 137, 197, 139, + 6, 0, 69, 49, 138, 197, 137, 199, 137, 199, + 137, 197, 139, 6, 0, 69, 43, 138, 197, 137, + 199, 137, 199, 137, 199, 137, 197, 139, 6, 0, + 69, 46, 138, 197, 137, 199, 137, 199, 137, 199, + 137, 197, 139, 6, 0, 69, 49, 138, 197, 137, + 199, 137, 199, 137, 199, 137, 197, 139, 6, 0, + 0, 69, 43, 138, 197, 137, 199, 139, 183, 138, + 192, 139, 6, 0, 0, 69, 46, 138, 197, 137, + 199, 139, 184, 138, 192, 139, 6, 0, 0, 69, + 49, 138, 197, 137, 199, 139, 185, 138, 192, 139, + 6, 0, 0, 69, 43, 138, 197, 137, 199, 137, + 199, 137, 197, 139, 186, 138, 192, 139, 6, 0, + 0, 69, 46, 138, 197, 137, 199, 137, 199, 137, + 197, 139, 187, 138, 192, 139, 6, 0, 0, 69, + 49, 138, 197, 137, 199, 137, 199, 137, 197, 139, + 188, 138, 192, 139, 6, 0, 0, 69, 43, 138, + 197, 137, 199, 137, 199, 137, 199, 137, 197, 139, + 189, 138, 192, 139, 6, 0, 0, 69, 46, 138, + 197, 137, 199, 137, 199, 137, 199, 137, 197, 139, + 190, 138, 192, 139, 6, 0, 0, 69, 49, 138, + 197, 137, 199, 137, 199, 137, 199, 137, 197, 139, + 191, 138, 192, 139, 6, 0, 193, 0, 192, 193, + 0, 76, 138, 197, 139, 6, 0, 76, 138, 202, + 137, 202, 139, 6, 0, 76, 138, 202, 137, 202, + 137, 202, 139, 6, 0, 72, 6, 0, 77, 131, + 197, 132, 7, 138, 202, 139, 61, 197, 6, 0, + 58, 46, 202, 7, 197, 6, 0, 58, 46, 202, + 7, 197, 61, 63, 197, 6, 0, 58, 46, 202, + 7, 197, 61, 62, 197, 6, 0, 58, 49, 138, + 197, 139, 7, 202, 6, 0, 58, 49, 138, 197, + 139, 7, 202, 4, 6, 0, 55, 49, 138, 197, + 139, 7, 202, 6, 0, 58, 51, 138, 197, 139, + 7, 202, 6, 0, 72, 49, 202, 7, 197, 6, + 0, 72, 49, 202, 6, 0, 43, 138, 204, 139, + 94, 49, 138, 197, 139, 6, 0, 46, 138, 204, + 139, 94, 49, 138, 197, 139, 6, 0, 46, 138, + 204, 139, 94, 51, 138, 197, 139, 6, 0, 49, + 138, 204, 139, 94, 51, 138, 197, 139, 6, 0, + 74, 6, 0, 198, 0, 131, 197, 132, 0, 122, + 197, 0, 121, 197, 0, 126, 197, 0, 197, 122, + 197, 0, 197, 121, 197, 0, 197, 123, 197, 0, + 197, 124, 197, 0, 197, 125, 197, 0, 197, 130, + 197, 0, 197, 117, 197, 0, 197, 119, 197, 0, + 197, 118, 197, 0, 197, 120, 197, 0, 197, 115, + 197, 0, 197, 116, 197, 0, 197, 114, 197, 0, + 197, 113, 197, 0, 197, 112, 197, 8, 197, 0, + 14, 131, 197, 132, 0, 15, 131, 197, 132, 0, + 16, 131, 197, 132, 0, 17, 131, 197, 132, 0, + 18, 131, 197, 132, 0, 19, 131, 197, 132, 0, + 20, 131, 197, 132, 0, 21, 131, 197, 132, 0, + 22, 131, 197, 132, 0, 24, 131, 197, 132, 0, + 25, 131, 197, 137, 197, 132, 0, 26, 131, 197, + 132, 0, 27, 131, 197, 132, 0, 28, 131, 197, + 132, 0, 29, 131, 197, 132, 0, 30, 131, 197, + 132, 0, 31, 131, 197, 132, 0, 32, 131, 197, + 137, 197, 132, 0, 33, 131, 197, 137, 197, 132, + 0, 34, 131, 197, 137, 197, 132, 0, 23, 131, + 197, 132, 0, 14, 133, 197, 134, 0, 15, 133, + 197, 134, 0, 16, 133, 197, 134, 0, 17, 133, + 197, 134, 0, 18, 133, 197, 134, 0, 19, 133, + 197, 134, 0, 20, 133, 197, 134, 0, 21, 133, + 197, 134, 0, 22, 133, 197, 134, 0, 24, 133, + 197, 134, 0, 25, 133, 197, 137, 197, 134, 0, + 26, 133, 197, 134, 0, 27, 133, 197, 134, 0, + 28, 133, 197, 134, 0, 29, 133, 197, 134, 0, + 30, 133, 197, 134, 0, 31, 133, 197, 134, 0, + 32, 133, 197, 137, 197, 134, 0, 33, 133, 197, + 137, 197, 134, 0, 34, 133, 197, 137, 197, 134, + 0, 23, 133, 197, 134, 0, 3, 0, 9, 0, + 10, 0, 11, 0, 105, 0, 106, 0, 107, 0, + 4, 0, 4, 140, 138, 197, 139, 0, 4, 133, + 197, 134, 0, 136, 4, 133, 134, 0, 4, 164, + 0, 4, 133, 197, 134, 164, 0, 4, 135, 4, + 0, 4, 133, 197, 134, 135, 4, 0, 4, 135, + 4, 164, 0, 4, 133, 197, 134, 135, 4, 164, + 0, 104, 131, 5, 137, 197, 132, 0, 200, 0, + 122, 199, 0, 121, 199, 0, 199, 122, 199, 0, + 199, 121, 199, 0, 138, 197, 137, 197, 137, 197, + 137, 197, 137, 197, 139, 0, 138, 197, 137, 197, + 137, 197, 137, 197, 139, 0, 138, 197, 137, 197, + 137, 197, 139, 0, 131, 197, 137, 197, 137, 197, + 132, 0, 202, 0, 201, 137, 202, 0, 197, 0, + 203, 0, 138, 139, 0, 138, 204, 139, 0, 122, + 138, 204, 139, 0, 197, 123, 138, 204, 139, 0, + 122, 203, 0, 197, 123, 203, 0, 197, 8, 197, + 0, 197, 8, 197, 8, 197, 0, 43, 138, 197, + 139, 0, 168, 0, 171, 0, 177, 0, 4, 133, + 134, 0, 4, 133, 138, 204, 139, 134, 0, 197, + 0, 203, 0, 204, 137, 197, 0, 204, 137, 203, + 0, 138, 197, 137, 197, 137, 197, 137, 197, 139, + 0, 138, 197, 137, 197, 137, 197, 139, 0, 4, + 0, 4, 135, 91, 135, 4, 0, 138, 207, 139, + 0, 4, 133, 197, 134, 135, 92, 0, 205, 0, + 207, 137, 205, 0, 5, 0, 42, 0, 37, 131, + 208, 137, 208, 132, 0, 38, 131, 208, 132, 0, + 39, 131, 208, 132, 0, 36, 131, 208, 132, 0, + 36, 131, 208, 137, 204, 132, 0, 36, 131, 4, + 135, 4, 132, 0, 36, 131, 4, 133, 197, 134, + 135, 4, 132, 0 }; #endif @@ -527,25 +531,25 @@ static const short yyrline[] = { 0, 1786, 1804, 1818, 1825, 1831, 1840, 1853, 1904, 1919, 1930, 1950, 1960, 1982, 1986, 1991, 1996, 2006, 2023, 2039, 2065, 2092, 2124, 2131, 2136, 2142, 2146, 2154, 2163, 2171, 2179, - 2184, 2192, 2197, 2205, 2210, 2218, 2223, 2232, 2239, 2246, - 2253, 2260, 2267, 2274, 2281, 2288, 2295, 2300, 2307, 2312, - 2319, 2324, 2331, 2336, 2343, 2348, 2355, 2360, 2367, 2372, - 2379, 2384, 2391, 2396, 2406, 2410, 2415, 2425, 2447, 2471, - 2479, 2498, 2516, 2534, 2563, 2598, 2603, 2630, 2644, 2662, - 2669, 2675, 2678, 2686, 2696, 2698, 2699, 2700, 2701, 2702, - 2703, 2704, 2705, 2712, 2713, 2714, 2715, 2716, 2717, 2718, - 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, - 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, - 2739, 2740, 2741, 2742, 2743, 2745, 2746, 2747, 2748, 2749, - 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, - 2760, 2761, 2762, 2763, 2764, 2765, 2770, 2775, 2776, 2777, - 2778, 2779, 2780, 2784, 2800, 2815, 2835, 2849, 2862, 2885, - 2903, 2921, 2939, 2957, 2964, 2969, 2973, 2977, 2981, 2987, - 2992, 2996, 3000, 3006, 3012, 3019, 3025, 3029, 3034, 3038, - 3049, 3056, 3067, 3087, 3097, 3107, 3117, 3134, 3153, 3177, - 3205, 3211, 3215, 3219, 3231, 3236, 3248, 3255, 3276, 3281, - 3295, 3301, 3307, 3312, 3320, 3328, 3342, 3356, 3360, 3379, - 3401 + 2183, 2191, 2195, 2203, 2207, 2215, 2219, 2226, 2230, 2242, + 2249, 2256, 2263, 2270, 2277, 2284, 2291, 2298, 2305, 2309, + 2316, 2320, 2327, 2331, 2338, 2342, 2349, 2353, 2360, 2364, + 2371, 2375, 2382, 2386, 2393, 2397, 2407, 2411, 2416, 2426, + 2448, 2472, 2476, 2499, 2518, 2536, 2554, 2583, 2618, 2623, + 2650, 2664, 2682, 2689, 2695, 2698, 2706, 2716, 2718, 2719, + 2720, 2721, 2722, 2723, 2724, 2725, 2732, 2733, 2734, 2735, + 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, + 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, + 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2765, 2766, + 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, + 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2790, + 2795, 2796, 2797, 2798, 2799, 2800, 2804, 2820, 2835, 2855, + 2869, 2882, 2905, 2923, 2941, 2959, 2977, 2984, 2989, 2993, + 2997, 3001, 3007, 3012, 3016, 3020, 3026, 3032, 3039, 3045, + 3049, 3054, 3058, 3066, 3076, 3085, 3093, 3099, 3110, 3130, + 3140, 3150, 3160, 3177, 3203, 3209, 3213, 3217, 3229, 3234, + 3246, 3253, 3274, 3279, 3293, 3299, 3305, 3310, 3318, 3326, + 3340, 3354, 3358, 3377, 3399 }; #endif @@ -562,7 +566,7 @@ static const char * const yytname[] = { "$","error","$undefined.","tDOUBLE", "tElliptic","tPlane","tRuled","tTransfinite","tComplex","tPhysical","tUsing", "tBump","tProgression","tPlugin","tRotate","tTranslate","tSymmetry","tDilate", "tExtrude","tDuplicata","tLoop","tRecombine","tDelete","tCoherence","tAttractor", -"tLayers","tAlias","tAliasWithOptions","tText2D","tText3D","tInterpolationScheme", +"tLayers","tHole","tAlias","tAliasWithOptions","tText2D","tText3D","tInterpolationScheme", "tTime","tGrain","tCombine","tBSpline","tBezier","tNurbs","tOrder","tKnots", "tColor","tColorTable","tFor","tIn","tEndFor","tIf","tEndIf","tExit","tReturn", "tCall","tFunction","tShow","tHide","tGetValue","tGMSH_MAJOR_VERSION","tGMSH_MINOR_VERSION", @@ -575,7 +579,7 @@ static const char * const yytname[] = { "$","error","$undefined.","tDOUBLE", "InterpolationMatrix","Time","@5","Grain","NumericAffectation","NumericIncrement", "Affectation","PhysicalId","Shape","Transform","MultipleShape","ListOfShapes", "Duplicata","Delete","Colorify","Visibility","Command","Loop","Extrude","@6", -"@7","@8","@9","@10","@11","@12","@13","@14","@15","@16","@17","@18","ExtrudeParameters", +"@7","@8","@9","@10","@11","@12","@13","@14","@15","@16","@17","@18","@19","ExtrudeParameters", "ExtrudeParameter","Transfinite","Embedding","Coherence","FExpr","FExpr_Single", "VExpr","VExpr_Single","RecursiveListOfListOfDouble","ListOfDouble","FExpr_Multi", "RecursiveListOfDouble","ColorExpr","ListOfColor","RecursiveListOfColor","StringExpr", NULL @@ -583,41 +587,41 @@ static const char * const yytname[] = { "$","error","$undefined.","tDOUBLE", #endif static const short yyr1[] = { 0, - 140, 140, 141, 141, 142, 142, 142, 142, 142, 142, - 142, 142, 142, 142, 142, 142, 142, 142, 142, 143, - 143, 144, 144, 144, 144, 145, 145, 146, 146, 146, - 146, 146, 146, 146, 147, 147, 148, 148, 150, 151, - 149, 152, 152, 154, 153, 155, 155, 157, 156, 158, - 160, 159, 161, 162, 162, 162, 162, 162, 163, 163, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 165, - 165, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 167, 167, 167, 167, 168, 168, 168, 169, 169, 169, - 169, 169, 169, 170, 170, 170, 170, 171, 171, 171, - 171, 172, 173, 173, 173, 173, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 176, 176, 176, 177, - 176, 178, 176, 179, 176, 180, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 181, 176, 182, 176, - 183, 176, 184, 176, 185, 176, 186, 176, 187, 176, - 188, 176, 189, 176, 190, 190, 191, 191, 191, 191, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 193, - 193, 193, 193, 194, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 196, 196, 196, 196, - 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 196, 196, 197, 197, 197, 197, 197, 198, - 198, 198, 198, 199, 199, 200, 200, 200, 200, 200, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 202, 202, 202, 202, 203, 203, 203, 203, 204, 204, - 205, 205, 206, 206, 206, 206, 206, 206, 206, 206, - 206 + 141, 141, 142, 142, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 144, + 144, 145, 145, 145, 145, 146, 146, 147, 147, 147, + 147, 147, 147, 147, 148, 148, 149, 149, 151, 152, + 150, 153, 153, 155, 154, 156, 156, 158, 157, 159, + 161, 160, 162, 163, 163, 163, 163, 163, 164, 164, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 166, + 166, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + 168, 168, 168, 168, 169, 169, 169, 170, 170, 170, + 170, 170, 170, 171, 171, 171, 171, 172, 172, 172, + 172, 173, 174, 174, 174, 174, 175, 175, 175, 175, + 175, 175, 175, 175, 175, 175, 176, 176, 176, 176, + 176, 176, 176, 176, 176, 176, 177, 177, 177, 178, + 177, 179, 177, 180, 177, 181, 177, 182, 177, 177, + 177, 177, 177, 177, 177, 177, 177, 177, 183, 177, + 184, 177, 185, 177, 186, 177, 187, 177, 188, 177, + 189, 177, 190, 177, 191, 177, 192, 192, 193, 193, + 193, 193, 193, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 195, 195, 195, 195, 196, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 199, 199, 199, + 199, 199, 200, 200, 200, 200, 201, 201, 202, 202, + 202, 202, 202, 202, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 204, 204, 204, 204, 205, 205, + 205, 205, 206, 206, 207, 207, 208, 208, 208, 208, + 208, 208, 208, 208, 208 }; static const short yyr2[] = { 0, @@ -637,25 +641,25 @@ static const short yyr2[] = { 0, 4, 5, 3, 3, 4, 4, 3, 7, 7, 3, 7, 3, 2, 2, 15, 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, - 6, 9, 9, 8, 9, 8, 8, 6, 4, 10, - 10, 10, 10, 2, 1, 3, 2, 2, 2, 3, - 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, - 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, - 3, 5, 4, 1, 1, 1, 3, 4, 6, 7, - 1, 1, 3, 3, 9, 7, 1, 5, 3, 6, - 1, 3, 1, 1, 6, 4, 4, 4, 6, 6, - 9 + 7, 0, 13, 0, 15, 0, 6, 0, 10, 8, + 8, 8, 12, 12, 12, 14, 14, 14, 0, 12, + 0, 12, 0, 12, 0, 16, 0, 16, 0, 16, + 0, 18, 0, 18, 0, 18, 1, 2, 5, 7, + 9, 2, 11, 6, 9, 9, 8, 9, 8, 8, + 6, 4, 10, 10, 10, 10, 2, 1, 3, 2, + 2, 2, 3, 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, 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, 2, 3, 3, 5, 4, 1, + 1, 1, 3, 6, 1, 1, 3, 3, 9, 7, + 1, 5, 3, 6, 1, 3, 1, 1, 6, 4, + 4, 4, 6, 6, 9 }; static const short yydefact[] = { 0, @@ -666,1482 +670,1542 @@ static const short yydefact[] = { 0, 0, 0, 0, 0, 0, 151, 0, 156, 0, 153, 0, 0, 0, 0, 4, 6, 5, 7, 8, 9, 10, 11, 12, 13, 19, 18, 14, 15, 16, 17, - 277, 284, 333, 54, 278, 279, 280, 0, 0, 0, + 280, 287, 337, 54, 281, 282, 283, 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, 334, 0, 281, 282, 283, 55, 56, 57, + 0, 0, 338, 0, 284, 285, 286, 55, 56, 57, 58, 0, 0, 0, 59, 60, 0, 0, 0, 0, - 0, 0, 0, 215, 0, 0, 0, 0, 144, 0, + 0, 0, 0, 218, 0, 0, 0, 0, 144, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 295, 0, 0, 0, 0, - 0, 118, 0, 0, 118, 0, 0, 118, 214, 0, - 0, 0, 0, 0, 0, 0, 0, 327, 0, 0, - 0, 0, 0, 143, 0, 152, 333, 118, 0, 118, - 0, 0, 0, 0, 0, 288, 0, 28, 0, 0, + 0, 0, 0, 0, 0, 298, 0, 0, 0, 0, + 0, 0, 118, 0, 0, 118, 0, 0, 118, 217, + 0, 0, 0, 0, 0, 0, 0, 0, 331, 0, + 0, 0, 0, 0, 143, 0, 152, 337, 118, 0, + 118, 0, 0, 0, 0, 0, 291, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 284, 218, 217, 219, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 66, 140, + 0, 0, 0, 0, 0, 0, 287, 221, 220, 222, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 137, 101, 0, 0, + 0, 0, 287, 0, 0, 320, 321, 322, 325, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 137, 101, 0, 0, 0, - 0, 284, 0, 0, 314, 315, 316, 321, 322, 0, + 0, 0, 0, 0, 309, 0, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 306, 0, 307, 0, 0, 0, 0, + 0, 0, 300, 299, 0, 0, 0, 0, 118, 118, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, + 118, 0, 0, 0, 0, 130, 0, 0, 0, 0, + 0, 0, 142, 0, 0, 0, 0, 0, 118, 0, + 0, 0, 154, 0, 133, 0, 134, 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 297, 296, 0, 0, 0, 0, 118, 118, 0, - 0, 0, 0, 0, 0, 0, 166, 0, 118, 0, - 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, - 142, 0, 0, 0, 0, 0, 118, 0, 0, 0, - 154, 0, 133, 0, 134, 0, 0, 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 219, 0, 0, 0, 0, 54, 0, 0, + 0, 0, 0, 61, 0, 236, 235, 233, 234, 229, + 231, 230, 232, 224, 223, 225, 226, 227, 228, 102, + 0, 0, 0, 0, 0, 0, 220, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 216, 0, 0, 0, 0, 54, 0, 0, 0, 0, - 0, 61, 0, 233, 232, 230, 231, 226, 228, 227, - 229, 221, 220, 222, 223, 224, 225, 102, 0, 0, - 0, 0, 0, 0, 284, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 80, 81, 0, 0, 0, 0, 0, - 0, 0, 299, 298, 117, 0, 116, 115, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 119, 0, - 0, 160, 0, 124, 209, 0, 131, 0, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 155, 135, 136, 0, 286, 292, 0, 28, 39, - 0, 0, 0, 51, 0, 0, 29, 30, 31, 32, - 33, 34, 235, 256, 236, 257, 237, 258, 238, 259, + 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 80, 81, + 0, 0, 0, 0, 0, 0, 0, 302, 301, 117, + 0, 116, 115, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 119, 0, 0, 160, 0, 124, + 212, 0, 131, 0, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 155, 135, 136, + 0, 289, 295, 0, 28, 39, 0, 0, 0, 51, + 0, 0, 29, 30, 31, 32, 33, 34, 238, 259, 239, 260, 240, 261, 241, 262, 242, 263, 243, 264, - 255, 276, 244, 265, 0, 0, 246, 267, 247, 268, - 248, 269, 249, 270, 250, 271, 251, 272, 0, 0, - 0, 0, 0, 0, 0, 0, 338, 0, 0, 336, - 337, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 72, 0, 0, 0, 0, 287, 0, 22, 20, - 0, 0, 0, 0, 317, 0, 0, 0, 311, 323, - 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 309, 0, 0, 0, 0, 0, + 244, 265, 245, 266, 246, 267, 258, 279, 247, 268, + 0, 0, 249, 270, 250, 271, 251, 272, 252, 273, + 253, 274, 254, 275, 0, 0, 0, 0, 0, 0, + 0, 0, 342, 0, 0, 340, 341, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, + 0, 0, 290, 0, 22, 20, 0, 0, 0, 0, + 323, 0, 0, 317, 225, 316, 327, 328, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 111, 113, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 195, 0, 157, 0, + 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 132, 0, 0, 0, 0, 289, 0, 285, - 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, + 0, 111, 113, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 197, 0, 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 286, 64, 65, 0, 0, 0, 0, 0, 67, - 68, 70, 0, 0, 331, 0, 76, 234, 21, 0, - 0, 0, 0, 0, 313, 318, 0, 0, 0, 0, + 0, 0, 132, 0, 0, 0, 0, 292, 0, 288, + 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 310, 86, 0, 0, 0, 0, 0, 201, 0, + 0, 289, 64, 65, 0, 0, 0, 0, 0, 67, + 68, 70, 0, 0, 335, 0, 76, 237, 21, 0, + 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, + 0, 86, 0, 0, 0, 0, 0, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, - 0, 167, 196, 0, 0, 125, 208, 129, 84, 85, - 126, 127, 0, 0, 0, 328, 0, 0, 0, 147, - 139, 291, 138, 0, 0, 0, 0, 0, 304, 0, - 0, 245, 266, 252, 273, 253, 274, 254, 275, 0, - 340, 339, 335, 294, 0, 54, 0, 0, 0, 0, - 62, 0, 0, 0, 329, 23, 24, 0, 0, 82, - 0, 0, 312, 0, 89, 0, 91, 0, 0, 87, - 0, 0, 104, 105, 0, 0, 88, 109, 0, 0, + 0, 118, 0, 0, 0, 0, 0, 0, 0, 202, + 0, 0, 167, 198, 0, 0, 125, 211, 129, 84, + 85, 126, 127, 0, 0, 0, 332, 0, 0, 0, + 147, 139, 294, 138, 0, 0, 0, 0, 0, 307, + 0, 0, 248, 269, 255, 276, 256, 277, 257, 278, + 0, 344, 343, 339, 297, 0, 54, 0, 0, 0, + 0, 62, 0, 0, 0, 333, 23, 24, 0, 0, + 82, 0, 318, 0, 89, 0, 91, 0, 0, 87, + 0, 0, 104, 105, 0, 0, 88, 109, 314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 141, 0, 0, 0, 0, 118, 0, 177, - 0, 179, 0, 181, 0, 0, 0, 0, 306, 0, - 0, 0, 161, 94, 95, 0, 0, 0, 0, 293, - 27, 0, 35, 0, 0, 0, 0, 0, 37, 0, - 0, 0, 0, 0, 73, 0, 0, 74, 0, 332, - 0, 0, 319, 0, 0, 0, 0, 97, 0, 0, - 106, 0, 0, 0, 206, 99, 100, 0, 0, 0, - 204, 207, 108, 83, 98, 107, 110, 0, 0, 0, - 303, 0, 302, 0, 0, 168, 0, 0, 169, 0, - 0, 170, 0, 120, 121, 122, 123, 0, 0, 0, - 0, 0, 0, 326, 0, 149, 148, 40, 0, 0, - 0, 305, 0, 0, 0, 0, 0, 63, 69, 71, - 0, 77, 0, 25, 0, 320, 0, 90, 92, 0, - 0, 0, 0, 0, 203, 202, 205, 78, 79, 118, - 0, 114, 0, 0, 0, 0, 0, 0, 197, 0, - 118, 0, 0, 0, 0, 0, 36, 0, 0, 0, - 38, 52, 53, 341, 0, 330, 0, 210, 211, 212, - 213, 103, 0, 0, 0, 301, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, - 325, 150, 0, 0, 0, 0, 75, 0, 0, 112, - 0, 183, 0, 0, 185, 0, 0, 187, 0, 0, - 0, 198, 158, 0, 118, 96, 0, 44, 0, 50, - 0, 0, 300, 171, 0, 0, 178, 172, 0, 0, - 180, 173, 0, 0, 182, 0, 0, 164, 0, 0, - 0, 0, 0, 0, 189, 0, 191, 0, 193, 199, - 163, 159, 0, 41, 0, 48, 0, 0, 0, 174, - 0, 0, 175, 0, 0, 176, 0, 0, 0, 42, - 0, 145, 0, 0, 0, 0, 0, 0, 0, 165, - 0, 0, 0, 0, 184, 0, 186, 0, 188, 0, - 43, 45, 0, 46, 93, 0, 0, 0, 0, 0, - 190, 192, 194, 47, 49, 0, 0, 0 + 0, 0, 0, 141, 0, 0, 0, 0, 118, 168, + 0, 179, 0, 181, 0, 183, 0, 0, 0, 0, + 309, 0, 0, 0, 0, 161, 94, 95, 0, 0, + 0, 0, 296, 27, 0, 35, 0, 0, 0, 0, + 0, 37, 0, 0, 0, 0, 0, 73, 0, 0, + 74, 0, 336, 0, 0, 324, 0, 0, 0, 97, + 0, 0, 106, 0, 0, 0, 209, 99, 100, 0, + 0, 0, 207, 210, 108, 83, 98, 107, 110, 0, + 0, 0, 306, 0, 305, 0, 0, 0, 170, 0, + 0, 171, 0, 0, 172, 0, 120, 121, 122, 123, + 0, 0, 0, 0, 0, 0, 0, 330, 0, 149, + 148, 40, 0, 0, 0, 308, 0, 0, 0, 0, + 0, 63, 69, 71, 0, 77, 0, 25, 0, 0, + 90, 92, 0, 0, 0, 0, 0, 206, 205, 208, + 78, 79, 118, 0, 114, 0, 0, 0, 0, 0, + 0, 0, 199, 0, 0, 118, 0, 0, 0, 0, + 0, 36, 0, 0, 0, 38, 52, 53, 345, 0, + 334, 0, 213, 214, 215, 216, 103, 0, 0, 0, + 304, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 162, 0, 0, 329, 150, 0, + 0, 0, 0, 75, 0, 0, 112, 0, 185, 0, + 0, 187, 0, 0, 189, 0, 0, 0, 200, 0, + 158, 0, 118, 96, 0, 44, 0, 50, 0, 0, + 303, 173, 0, 0, 180, 174, 0, 0, 182, 175, + 0, 0, 184, 0, 0, 0, 164, 0, 0, 0, + 0, 0, 0, 191, 0, 193, 0, 195, 201, 0, + 163, 159, 0, 41, 0, 48, 0, 0, 0, 176, + 0, 0, 177, 0, 0, 178, 0, 0, 0, 0, + 42, 0, 145, 0, 0, 0, 0, 0, 0, 0, + 203, 165, 0, 0, 0, 0, 186, 0, 188, 0, + 190, 0, 43, 45, 0, 46, 93, 0, 0, 0, + 0, 0, 192, 194, 196, 47, 49, 0, 0, 0 }; -static const short yydefgoto[] = { 1196, - 2, 55, 631, 56, 57, 381, 922, 928, 557, 712, - 1046, 1159, 558, 1130, 1183, 559, 1161, 560, 561, 716, - 562, 121, 206, 58, 493, 519, 295, 506, 507, 296, - 62, 63, 64, 65, 66, 297, 690, 1104, 1143, 520, - 977, 980, 983, 1115, 1119, 1123, 1151, 1154, 1157, 686, - 687, 68, 69, 70, 314, 124, 332, 166, 828, 829, - 316, 300, 190, 626, 746, 495 +static const short yydefgoto[] = { 1218, + 2, 55, 637, 56, 57, 383, 935, 941, 563, 722, + 1061, 1180, 564, 1149, 1205, 565, 1182, 566, 567, 726, + 568, 121, 207, 58, 498, 525, 296, 511, 512, 297, + 62, 63, 64, 65, 66, 298, 700, 1122, 1163, 526, + 987, 990, 993, 996, 1133, 1137, 1141, 1171, 1174, 1177, + 696, 697, 68, 69, 70, 315, 124, 333, 166, 839, + 840, 317, 301, 191, 632, 756, 500 }; -static const short yypact[] = { 2638, - 77, 2714,-32768, 1806, 91, 74, 21, 13, 159, -63, - 45, 70, -31, 90, 99, -34, 110, 124, 184, -28, - 82, 129, 265, 368, 291, 751, 220, 230, -69, -69, - 234, 266, 2, 334, 3, 383, -13, 393, 419, 433, - 331, 337, 341, 8, 24,-32768, 360,-32768, 456,-32768, - 491, 497, 20, 27,-32768,-32768,-32768,-32768,-32768,-32768, +static const short yypact[] = { 2880, + 15, 2957,-32768, 1980, 16, -7, -80, 14, 76, -26, + -53, -34, -36, -28, 29, -44, 34, 37, 121, -35, + 90, 149, 157, 419, 163, 260, 102, 106, 221, 221, + 109, 19, 6, 191, 7, 296, 18, 306, 333, 353, + 223, 237, 308, 8, 27,-32768, 318,-32768, 358,-32768, + 368, 463, 21, 33,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, -2, 12,-32768,-32768,-32768,-32768, 26, 79, 125, - 327, 342, 387, 487, 506, 513, 526, 530, 539, 540, - 556, 574, 575, 589, 606, 607, 613, 614, 374, 375, - 384, 398,-32768, 409,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 2099, 2099, 2099,-32768,-32768, 2099, 1437, 37, 536, - 2099, 488, 1241,-32768, 538, 547, 2099, 553,-32768, 2099, --32768, 2099, 1939, 2099, 2099, 438, 2099, 1939, 2099, 2099, - 444, 1939, 2099, 2099, 1308, 448, 2099, 434, 453, 476, - 1308, 442, 445, 499, 503, 512, 516, 517, 582, -69, - -69, -69, 2099, 2099, -77,-32768, -50, -69, 522, 537, - 563, 1642, 226, 523,-32768, 1308, 23,-32768,-32768, 1308, - 1308, 559, 569, 702, 2099, 2099, 2099, 590, 2099, 596, - 634, 2099, 2099,-32768, 752,-32768,-32768,-32768, 755,-32768, - 758, 636, 2099, 765, 639,-32768, -69,-32768, 2099, 2099, - 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, - 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, - 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, - 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, - 461, 518, 518, 518, 772, 505, 669, 669, 669, 4928, - 31, 1939, 2731, 209, 661, 792, 693, 1276,-32768,-32768, - 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, 2099, - 2099, 2099, 2099, 2099, 2099,-32768,-32768, 1396, -59, 3484, - 4949, 608, 692, 2222,-32768,-32768,-32768, 2414,-32768, 554, - 4970, 4991, 2099, 5012, 618, 5033, 5054, 2099, 619, 5075, - 5096, 1771, 1172, 2414, 823,-32768, 2099, 5117, 2099, 2099, - 2099, 841, 2099, 2099, 2099, 2062, 2062, 2062, 2062, 718, - 97,-32768,-32768, 3510, 3536, -69, -69, 598, 598, 332, - 2099, 2099, 2099, 1642, 1642, 2099, 2781, 386,-32768, 2099, - 666, 40, 846,-32768, 2099, 911, 869, 871, 2099, 2099, --32768, 5138, 5159, 5180, 799, 3562,-32768, 757, 2433, 5201, --32768, 1014,-32768, 1209,-32768, 2099, 4238, 279, 2099, 314, - 9, 5222, 4261, 5243, 4284, 5264, 4307, 5285, 4330, 5306, - 4353, 5327, 4376, 5348, 4399, 5369, 4422, 5390, 4445, 5411, - 4468, 5432, 4491, 3588, 3614, 5453, 4514, 5474, 4537, 5495, - 4560, 5516, 4583, 5537, 4606, 5558, 4629, 3640, 3666, 3692, - 3718, 3744, 3770, 641, 115, 756, 760, 767, 766, 2099, --32768, 1308, 1308, 672, 98, 518, 2099, 894, 899, 16, - 771,-32768, 2465, 1432, 1001, 764, 764, 560, 560, 560, - 560, -43, -43, 669, 669, 669, 669,-32768, 18, 1939, - 2099, 900, 1472, 2099, 633, 2099, 1939, 813, 901, 902, - 5579, 903, 818, 905, 907, 5600, 822, 909, 910, 1939, --32768, 673, 2099, 5621, 912, 2542, 5642, 5663, 2099, 2842, - 2870, 5684, 787, 5915,-32768, 791, 795, 796, 794, -69, - 2099, 2099,-32768,-32768,-32768, 793, 2781,-32768, 797, 2099, - 3796, 3822, 3848, 3458, -30, 4, 5, -8,-32768, 147, - -69, 2215, 4652,-32768,-32768, 2099,-32768, 4675,-32768, 1308, - 1308, 4698, 4721, 922, 923, 925, 802, 2099, 2264, 2099, - 2099,-32768,-32768,-32768, 4744, 343,-32768, 2898,-32768,-32768, - 807, 808, 803,-32768, 809, 936,-32768,-32768,-32768,-32768, +-32768, 2, 11,-32768,-32768,-32768,-32768, 183, 215, 257, + 284, 288, 298, 351, 373, 418, 434, 439, 456, 466, + 467, 475, 493, 511, 533, 545, 546, 549, 343, 346, + 378, 386,-32768, 401,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 2275, 2275, 2275,-32768,-32768, 2275, 1774, 24, 531, + 2275, 554, 1298,-32768, 560, 568, 2275, 534,-32768, 2275, +-32768, 2275, 2114, 2275, 2275, 423, 2275, 2114, 2275, 2275, + 446, 2114, 2275, 2275, 1366, 459, 2275, 440, 471, 490, + 1366, 501, 505, 521, 537, 558, 561, 576, 706, 221, + 221, 221, 2275, 2275, -55,-32768, 0, 221, 461, 543, + 573, 598, 1945, 286, 611,-32768, 1366, 3,-32768,-32768, + 1366, 1366, 638, 650, 781, 2275, 2275, 2275, 660, 2275, + 656, 707, 2275, 2275,-32768, 794,-32768,-32768,-32768, 803, +-32768, 840, 726, 2275, 847, 728,-32768, 221,-32768, 2275, + 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, + 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, + 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, + 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, + 2275, 578, 508, 508, 508, 862, 615, 738, 738, 738, + 5191, 17, 2114, 2970, 100, 735, 864, 739, 1334,-32768, +-32768, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, 2275, + 2275, 2275, 2275, 2275, 2275, 2275,-32768,-32768, 1616, -91, + 3724, 5212, 657, 736, 2114,-32768,-32768,-32768, 2635,-32768, + 371, 5233, 5254, 2275, 5275, 569, 5296, 5317, 2275, 590, + 5338, 5359, 1514, 1227, 2656, 866,-32768, 2275, 5380, 2275, + 2275, 2275, 868, 2275, 2275, 2275, 2238, 2238, 2238, 2238, + 744, 265,-32768,-32768, 3750, 3776, 221, 221, 667, 667, + 350, 2275, 2275, 2275, 2275, 1945, 1945, 2275, 3021, 454, +-32768, 2275, 962, 251, 874,-32768, 2275, 1551, 875, 876, + 2275, 2275,-32768, 5401, 5422, 5443, 790, 3802,-32768, 746, + 2679, 5464,-32768, 1802,-32768, 2371,-32768, 2275, 4478, 233, + 2275, 304, 4, 5485, 4501, 5506, 4524, 5527, 4547, 5548, + 4570, 5569, 4593, 5590, 4616, 5611, 4639, 5632, 4662, 5653, + 4685, 5674, 4708, 5695, 4731, 3828, 3854, 5716, 4754, 5737, + 4777, 5758, 4800, 5779, 4823, 5800, 4846, 5821, 4869, 3880, + 3906, 3932, 3958, 3984, 4010, 595, -13, 749, 755, 756, + 752, 2275,-32768, 1366, 1366, 610, 45, 508, 2275, 885, + 888, 13, 759,-32768, 2698, 579, 720, 645, 645, 683, + 683, 683, 683, 96, 96, 738, 738, 738, 738,-32768, + 28, 2114, 2275, 887, 1809, 2275, 738,-32768, 2275, 2114, + 2114, 801, 889, 890, 5842, 891, 805, 893, 896, 5863, + 811, 899, 902, 2114,-32768, 614, 1644, 2275, 5884, 904, + 2783, 5905, 5926, 2275, 3082, 3110, 5947, 780, 6199,-32768, + 782, 784, 785, 778, 221, 2275, 2275,-32768,-32768,-32768, + 779, 3021,-32768, 783, 2275, 4892, 4036, 4062, 4088, 3698, + -18, 93, -38, 47,-32768, 153, 221, 2391, 4915,-32768, +-32768, 2275,-32768, 4938,-32768, 1366, 1366, 4961, 4984, 912, + 913, 914, 789, 2275, 2440, 2275, 2275,-32768,-32768,-32768, + 5007, 72,-32768, 3138,-32768,-32768, 795, 796, 787,-32768, + 797, 923,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 2099, 2099,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2099, 2099, - 2099, 2099, 2099, 2099, 2099, 940,-32768, 1939, 518,-32768, --32768, 2099, 4767, 939, 941, 819, 81, 2099, 945, 947, - 1415,-32768, 957, 814, 8, 963,-32768, 2099,-32768, 854, - 518, 177, 3874, -69,-32768, 1939, 2926, 1607, 2487, 2414, --32768, 926, 1308, 1308, 970, 1308, 754, 1308, 1308, 971, - 928, 1308, 1308, 677,-32768, 1567, 974, 845, 976, 977, - 978, 667, 980, 981, 982, 983, 985, 986, 987, 991, - 410, 3900, 3926,-32768,-32768, 2954, -69, -69, -69, 1939, - 1939, 1939, 1939, 993, 863, -37,-32768, 416,-32768, 147, - 995, 1743, 996, 1012, 1013, 1017, 1019, 1308, 1308, 1308, - 1016, 3952,-32768, 2512, 893, 1022, 1026,-32768, 1027,-32768, - 14, 904, 2099, 2099, 1308, 895, 2099,-32768, 5705, 4790, - 5726, 4813, 5747, 4836, 5768, 4859, 4882, 906, 229, 914, - 5789, 88,-32768,-32768, 197, 303, 913, 1028, 1872,-32768, --32768,-32768, 8, 2099,-32768, 678,-32768, 5915,-32768, 1030, - 25, 2099, 39, 681,-32768,-32768, 1939, 2099, 915, 17, - 42, 1308, 1032, 917, 918, 1035, 1037, 1308, 919, 1040, - 1044,-32768,-32768, 1046, 2099, 1308, 1308, 1308,-32768, 385, - 1308, 1308, 1308, 1308, 1308, 1308, 1308, 420, 2099, 2099, - 2099, 930, 107, 355, 405, 684, 685, 705, 708,-32768, - 1308,-32768,-32768, 1642, 72,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 1063, 1066, 988,-32768, 2099, 2099, 2099,-32768, --32768, 279,-32768, 1070, 2099, 3978, 4004, 709,-32768, 2099, - 5810,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 944, --32768,-32768,-32768,-32768, 1308, 518, 2099, 1073, 1076, 16, --32768, 1075, 4905, 8,-32768,-32768,-32768, 518, 4030,-32768, - 950, 719, 5915, 2099,-32768, -69,-32768, -69, 1079,-32768, - 2099, 2099,-32768,-32768, 1081, 2099,-32768,-32768, 1083, 4056, - 1084, 1085, 1087, 2099, 2099, 852, 1088, 1089, 1090, 1096, - 1097, 1098,-32768, 2062, 2982, 5831, 2758, 598, -69, 1099, - -69, 1101, -69, 1102, 1103, 1104, 1105, 1106, -3, 992, - 3010, 441,-32768,-32768,-32768, 1308, 2786, 480, 5852,-32768, --32768, 324, 5915, 2099, 2099, 1308, 990, 723, 5915, 1308, - 1109, 1123, 1125, 1911,-32768, 1126, 1128,-32768, 1002,-32768, - 1129, 2099,-32768, 1005, 3038, 48, 78,-32768, 3066, 3094, --32768, 3122, 1135, 2099,-32768,-32768,-32768, 2030, 2348, 1137, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 2370, 1138, 1009, --32768, 2099,-32768, 1011, 449,-32768, 1010, 452,-32768, 1018, - 490,-32768, 1020,-32768,-32768,-32768,-32768, 1144, 1308, 1024, - 2099, 1065, 2099,-32768, 2099,-32768,-32768,-32768, 2099, 4082, - 4108,-32768, 1308, 2099, 1145, 1148, 1025,-32768,-32768,-32768, - 8,-32768, 1068,-32768, 4134,-32768, 1156,-32768,-32768, 1157, - 1158, 1159, 1160, 4160,-32768,-32768,-32768,-32768,-32768, 598, - 2814,-32768, 1642, 147, 1642, 147, 1642, 147,-32768, 726, --32768, 3150, 2099, 3178, 3206, 1031, 5915, 2099, 2099, 727, - 5915,-32768,-32768,-32768, 1165,-32768, 2099,-32768,-32768,-32768, --32768,-32768, 1168, 1039, 2099,-32768, 3234, 492, 101, 3262, - 494, 118, 3290, 504, 269, 1308, 1173, 2318, 1041, 2395, --32768,-32768, 2099, 5873, 4186, 1174,-32768, 4212, 1048,-32768, - 3318, 1201, 2099, 1202, 1203, 2099, 1204, 1205, 2099, 1206, - 1078,-32768,-32768, 147,-32768,-32768, 733,-32768, 2099,-32768, - 2099, 1208,-32768,-32768, 1077, 3346,-32768,-32768, 1080, 3374, --32768,-32768, 1082, 3402,-32768, 1212, 277, 2367, 1214, 1086, - 5894, 3430, 1091, 147, 1218, 147, 1219, 147, 1220,-32768, --32768,-32768, 147,-32768, 518,-32768, 1222, 1224, 283,-32768, - 1093, 312,-32768, 1094, 326,-32768, 1095, 346, 734,-32768, - 1107,-32768, 1108, 1227, 147, 1228, 147, 1229, 147,-32768, - 518, 1230, 518, 1237,-32768, 364,-32768, 370,-32768, 373, --32768,-32768, 737,-32768,-32768, 1239, 1242, 1245, 518, 1256, --32768,-32768,-32768,-32768,-32768, 1264, 1267,-32768 + 2275, 2275,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 2275, 2275, 2275, 2275, 2275, 2275, + 2275, 929,-32768, 2114, 508,-32768,-32768, 2275, 5030, 928, + 930, 804, 26, 2275, 931, 933, 1911,-32768, 934, 807, + 8, 936,-32768, 2275,-32768, 824, 508, 86, 4114, 221, +-32768, 2114, 3166, 2725, 738,-32768, 2635,-32768, 897, 1366, + 1366, 940, 1366, 705, 1366, 1366, 941, 898, 1366, 1366, + 620,-32768, 2114, 2047, 943, 813, 945, 948, 949, 601, + 950, 951, 952, 953, 959, 960, 961, 966, 497, 4140, + 4166,-32768,-32768, 3194, 833, 221, 221, 221, 2114, 2114, + 2114, 2114, 967, 834, 845, -40,-32768, 510,-32768, 153, + 971, 2086, 972, 977, 978, 979, 982, 1366, 1366, 1366, + 985, 4192,-32768, 2753, 1195, 984, 987,-32768, 986,-32768, + 9, 863, 2275, 2275, 1366, 855, 2275,-32768, 5968, 5053, + 5989, 5076, 6010, 5099, 6031, 5122, 5145, 865, 252, 867, + 6052, -54,-32768,-32768, 94, 413, 860, 989, 2206,-32768, +-32768,-32768, 8, 2275,-32768, 642,-32768, 6199,-32768, 992, + 50, 2275, 10, 649,-32768, 2275, 879, 42, 48, 1366, + 994, 882, 886, 995, 996, 1366, 892, 997, 1017,-32768, + 659,-32768, 1020, 2275, 1366, 1366, 1366,-32768, 383, 1366, + 1366, 1366, 1366, 1366, 1366, 1366, 520, 2275, 2275, 2275, + 894,-32768, 95, 244, 447, 673, 677, 680, 681,-32768, + 1366, 2275,-32768,-32768, 1945, -33,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 1021, 1022, 939,-32768, 2275, 2275, 2275, +-32768,-32768, 233,-32768, 1025, 2275, 4218, 4244, 684,-32768, + 2275, 6073,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 900,-32768,-32768,-32768,-32768, 1366, 508, 2275, 1028, 1032, + 13,-32768, 1033, 5168, 8,-32768,-32768,-32768, 508, 4270, +-32768, 906, 6199, 2275,-32768, 221,-32768, 221, 1035,-32768, + 2275, 2275,-32768,-32768, 1037, 2275,-32768,-32768,-32768, 1040, + 4296, 1041, 1045, 1046, 2275, 2275, 821, 1047, 1049, 1051, + 1053, 1054, 1055,-32768, 2238, 3222, 6094, 2998, 667, 3021, + 221, 1057, 221, 1058, 221, 1059, 1060, 1062, 1063, 1064, + 339, 901, 6115, 3250, 514,-32768,-32768,-32768, 1366, 3026, + 377, 6136,-32768,-32768, 301, 6199, 2275, 2275, 1366, 908, + 691, 6199, 1366, 1067, 1066, 1068, 2487,-32768, 1019, 1069, +-32768, 938,-32768, 1070, 2275,-32768, 3278, 12, 73,-32768, + 3306, 3334,-32768, 3362, 1072, 2275,-32768,-32768,-32768, 2517, + 2538, 1074,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2561, + 1076, 947,-32768, 2275,-32768, 954, 153, 516,-32768, 956, + 524,-32768, 957, 528,-32768, 964,-32768,-32768,-32768,-32768, + 1080, 1366, 1082, 965, 2275, 1002, 2275,-32768, 2275,-32768, +-32768,-32768, 2275, 4322, 4348,-32768, 1366, 2275, 1086, 1091, + 973,-32768,-32768,-32768, 8,-32768, 1007,-32768, 4374, 1098, +-32768,-32768, 1100, 1102, 1103, 1104, 4400,-32768,-32768,-32768, +-32768,-32768, 667, 3054,-32768, 51, 1945, 153, 1945, 153, + 1945, 153,-32768, 692, 976,-32768, 3390, 2275, 3418, 3446, + 980, 6199, 2275, 2275, 695, 6199,-32768,-32768,-32768, 1105, +-32768, 2275,-32768,-32768,-32768,-32768,-32768, 1110, 981, 2275, +-32768,-32768, 3474, 548, 169, 3502, 550, 241, 3530, 553, + 243, 1366, 1111, 1366, 2489, 988, 2580,-32768,-32768, 2275, + 6157, 4426, 1113,-32768, 4452, 990,-32768, 3558, 1116, 2275, + 1117, 1118, 2275, 1119, 1122, 2275, 1124, 993,-32768, 1000, +-32768, 153,-32768,-32768, 715,-32768, 2275,-32768, 2275, 1126, +-32768,-32768, 1003, 3586,-32768,-32768, 1004, 3614,-32768,-32768, + 1005, 3642,-32768, 1127, 1073, 273, 2509, 1129, 1006, 6178, + 3670, 1008, 153, 1134, 153, 1140, 153, 1141,-32768, 2275, +-32768,-32768, 153,-32768, 508,-32768, 1142, 1145, 279,-32768, + 1014, 327,-32768, 1016, 337,-32768, 1018, 2607, 364, 718, +-32768, 1026,-32768, 1024, 1149, 153, 1151, 153, 1152, 153, +-32768,-32768, 508, 1154, 508, 1160,-32768, 403,-32768, 453, +-32768, 486,-32768,-32768, 719,-32768,-32768, 1161, 1162, 1163, + 508, 1164,-32768,-32768,-32768,-32768,-32768, 1171, 1172,-32768 }; static const short yypgoto[] = {-32768, --32768,-32768, 519,-32768,-32768, 722,-32768, 189,-32768,-32768, +-32768,-32768, 355,-32768,-32768, 618,-32768, 74,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, -255, 38,-32768, 206, 1271, -1, -335, -164, 1, --32768,-32768,-32768,-32768,-32768, 1272,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -680, - -631,-32768,-32768,-32768, 49,-32768, 271,-32768, 276, 50, - -116, -60, -610, 430,-32768, -4 +-32768, -260, 36,-32768, -74, 1173, -1, -338, -154, 1, +-32768,-32768,-32768,-32768,-32768, 1175,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + -364, -641,-32768,-32768,-32768, 49,-32768, 275,-32768, 162, + 428, 290, -62, -627, 319,-32768, -4 }; -#define YYLAST 6044 +#define YYLAST 6329 static const short yytable[] = { 125, - 60, 202, 61, 509, 466, 174, 177, 347, 437, 805, - 351, 188, 550, 356, 745, 207, 299, 550, 129, 624, - 146, 299, 865, 629, 197, 299, 353, 191, 354, 180, - 857, 197, 181, 372, 684, 374, 141, 432, 685, 136, - 264, 122, 336, 337, 860, 525, 526, 867, 199, 201, - 161, 162, 123, 1018, 803, 99, 100, 101, 102, 338, - 163, 103, 99, 100, 101, 102, 132, 164, 103, 336, - 337, 459, 866, 133, 136, 141, 460, 305, 282, 283, - 284, 309, 3, 1019, 736, 285, 339, 551, 552, 553, - 554, 555, 551, 552, 553, 554, 555, 868, 137, 132, - 802, 147, 142, 126, 74, 138, 680, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 144, 127, 115, 116, 285, 265, 266, 683, 203, - 148, 204, 852, 137, 988, 630, 205, 433, 175, 178, - 681, 682, 630, 684, 189, 299, 556, 685, 208, 130, - 128, 824, 625, 192, 355, 209, 198, 210, 336, 337, - 257, 258, 259, 200, 131, 260, 263, 336, 337, 268, - 737, 738, 684, 803, 134, 288, 685, 149, 290, 618, - 291, 298, 301, 302, 522, 304, 298, 306, 307, 684, - 298, 310, 311, 685, 315, 318, 299, 336, 337, 135, - 322, 434, 539, 74, 108, 109, 110, 111, 211, 913, - 212, 334, 335, 115, 116, 436, 336, 337, 684, 139, - 335, 707, 685, 115, 116, 352, 336, 337, 140, 357, - 358, 617, 500, 362, 363, 364, 145, 366, 1094, 143, - 369, 370, 899, 940, 900, 607, 425, 426, 427, 428, - 608, 377, 482, 144, 213, 1097, 214, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 165, - 167, 438, 173, 108, 109, 110, 111, 751, 169, 846, - 298, 170, 467, 150, 171, 108, 109, 110, 111, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 115, 116, 505, 505, 508, 508, - 684, 154, 258, 299, 685, 336, 337, 197, 684, 159, - 641, 471, 685, 1069, 684, 1072, 476, 1075, 685, 842, - 258, 298, 349, 299, 467, 484, 160, 486, 487, 488, - 168, 490, 491, 492, 494, 494, 494, 494, 99, 100, - 101, 102, 176, 684, 103, 161, 162, 685, 179, 511, - 512, 513, 257, 258, 514, 163, 182, 684, 523, 632, - 1055, 685, 172, 528, 115, 116, 1100, 532, 533, 108, - 109, 110, 111, 151, 1141, 547, 152, 684, 153, 654, - 1164, 685, 183, 1127, 545, 893, 894, 548, 115, 116, - 331, 620, 333, 336, 337, 684, 184, 803, 340, 685, - 803, 684, 348, 803, 684, 685, 884, 885, 685, 1166, - 549, 336, 337, 1149, 998, 1152, 215, 1155, 216, 999, - 185, 194, 1158, 1168, 424, 197, 186, 510, 115, 116, - 187, 217, 619, 218, 336, 337, 707, 380, 613, 845, - 847, 614, 615, 1170, 1176, 621, 1178, 995, 1180, 193, - 901, 299, 902, 269, 195, 803, 99, 100, 101, 102, - 196, 1186, 103, 251, 252, 336, 337, 1187, 298, 633, - 1188, 613, 637, 253, 639, 640, 219, 803, 220, 299, - 803, 521, 197, 803, 336, 337, 803, 254, 298, 336, - 337, 656, 496, 497, 498, 336, 337, 662, 255, 267, - 903, 709, 904, 286, 803, 789, 803, 729, 803, 672, - 673, 804, 287, 99, 100, 101, 102, 289, 676, 103, - 336, 337, 974, 299, 299, 299, 299, 303, 336, 337, - 319, 336, 337, 308, 692, 754, 991, 317, 323, 694, - 695, 324, 320, 708, 1033, 330, 702, 1035, 704, 705, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 730, 321, 503, 504, 285, 336, - 337, 336, 337, 336, 337, 333, 221, 996, 222, 796, - 797, 798, 799, 336, 337, 1037, 750, 1093, 325, 1096, - 115, 116, 326, 719, 720, 223, 430, 224, 204, 1099, - 299, 327, 225, 205, 226, 328, 329, 721, 722, 723, - 724, 725, 726, 727, 350, 227, 298, 228, 341, 229, - 731, 230, 28, 29, 30, 31, 739, 33, 231, 233, - 232, 234, 779, 342, 38, 39, 748, 5, 6, 280, - 281, 282, 283, 284, 298, 235, 613, 236, 285, 467, - 359, 468, 760, 761, 1064, 763, 862, 766, 767, 343, - 360, 770, 771, 237, 239, 238, 240, 361, 515, 11, - 12, 516, 14, 15, 517, 17, 518, 19, 241, 20, - 242, 22, 23, 365, 25, 26, 368, 780, 298, 298, - 298, 298, 367, 115, 116, 243, 245, 244, 246, 463, - 37, 204, 247, 249, 248, 250, 205, 813, 814, 815, - 41, 42, 43, 467, 467, 473, 477, 371, 115, 116, - 373, 826, 827, 375, 638, 831, 204, 376, 378, 708, - 671, 205, 605, 848, 606, 379, 429, 271, 272, 273, + 60, 514, 61, 755, 439, 203, 355, 556, 356, 175, + 178, 189, 556, 146, 208, 871, 630, 1031, 349, 129, + 3, 353, 169, 434, 358, 198, 141, 265, 126, 746, + 192, 693, 141, 635, 136, 694, 695, 198, 693, 122, + 461, 127, 694, 695, 374, 462, 376, 875, 200, 202, + 128, 74, 123, 877, 814, 868, 99, 100, 101, 102, + 181, 170, 103, 182, 171, 337, 338, 172, 99, 100, + 101, 102, 115, 116, 103, 306, 198, 134, 1032, 310, + 717, 131, 339, 557, 558, 559, 560, 561, 557, 558, + 559, 560, 561, 142, 137, 147, 135, 876, 813, 691, + 74, 138, 139, 878, 132, 926, 438, 99, 100, 101, + 102, 133, 132, 103, 266, 267, 747, 748, 613, 689, + 337, 338, 693, 614, 435, 863, 694, 695, 115, 116, + 337, 338, 337, 338, 204, 357, 205, 340, 148, 161, + 162, 206, 562, 176, 179, 190, 636, 835, 209, 163, + 631, 130, 108, 109, 110, 111, 173, 193, 199, 140, + 258, 259, 260, 136, 143, 261, 264, 144, 636, 269, + 201, 115, 116, 145, 814, 289, 624, 144, 291, 623, + 292, 299, 302, 303, 692, 305, 299, 307, 308, 1082, + 299, 311, 312, 337, 338, 319, 528, 149, 115, 116, + 436, 108, 109, 110, 111, 150, 717, 108, 109, 110, + 111, 335, 336, 154, 545, 337, 338, 761, 283, 284, + 285, 336, 471, 137, 693, 286, 115, 116, 694, 695, + 690, 911, 159, 912, 364, 365, 366, 953, 368, 177, + 693, 371, 372, 160, 694, 695, 168, 427, 428, 429, + 430, 486, 379, 501, 502, 503, 531, 532, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 440, 180, 155, 165, 167, 156, 174, 1111, 157, 183, + 158, 299, 693, 210, 693, 211, 694, 695, 694, 695, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 816, 184, 510, 510, 513, + 513, 161, 162, 467, 693, 212, 469, 213, 694, 695, + 693, 163, 475, 186, 694, 695, 185, 480, 164, 115, + 116, 467, 299, 195, 337, 338, 489, 187, 491, 492, + 493, 196, 495, 496, 497, 499, 499, 499, 499, 1114, + 913, 1117, 914, 853, 1009, 337, 338, 214, 471, 215, + 516, 517, 518, 519, 258, 259, 520, 1070, 693, 638, + 529, 505, 694, 695, 814, 534, 337, 338, 693, 538, + 539, 1161, 694, 695, 216, 553, 217, 1185, 218, 857, + 219, 661, 300, 351, 337, 338, 551, 300, 220, 554, + 221, 300, 1012, 626, 332, 693, 334, 1013, 188, 694, + 695, 555, 341, 814, 895, 896, 814, 350, 194, 814, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 487, 284, 285, 151, 1187, 197, 152, 286, 153, + 337, 338, 625, 252, 693, 1189, 253, 1001, 694, 695, + 619, 222, 382, 223, 856, 858, 515, 627, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 688, 853, 155, 439, 285, 156, 285, 440, 157, - 859, 158, 764, 524, 765, 298, 863, 467, 467, 616, - 655, 869, 467, 854, 772, 855, 467, 875, 861, 467, - 467, 905, 906, 880, 441, 881, 882, 883, 464, 483, - 886, 887, 888, 889, 890, 891, 892, 895, 896, 897, - 467, 933, 907, 467, 926, 908, 927, 489, 499, 909, - 910, 527, 911, 941, 467, 960, 944, 961, 1004, 920, - 1005, 1076, 926, 1077, 1086, 917, 918, 919, 1004, 1171, - 1129, 1172, 1189, 923, 1190, 530, 1078, 531, 929, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 537, 969, - 610, 609, 285, 540, 932, 934, 505, 611, 508, 622, - 819, 612, 623, 627, 753, 642, 634, 643, 644, 646, - 647, 648, 945, 649, 651, 652, 653, 666, 658, 949, - 950, 667, 5, 6, 952, 668, 669, 670, 698, 699, - 674, 700, 958, 959, 675, 701, 713, 714, 717, 715, - 1128, 718, 968, 728, 733, 744, 734, 793, 794, 795, - 740, 735, 741, 515, 11, 12, 516, 14, 15, 517, - 17, 518, 19, 743, 20, 992, 22, 23, 747, 25, - 26, 749, 1000, 1001, 759, 1002, 762, 768, 769, 1006, - 774, 775, 776, 777, 778, 37, 781, 782, 783, 784, - 1015, 785, 786, 787, 788, 41, 42, 43, 800, 801, - 806, 808, 1024, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 809, 810, 816, - 1031, 285, 811, 820, 812, 5, 6, 821, 505, 822, - 508, 830, 823, 825, 850, 856, 841, 870, 1040, 1042, - 873, 1044, 874, 1045, 843, 877, 849, 1047, 529, 878, - 879, 864, 1051, 871, 872, 876, 515, 11, 12, 516, - 14, 15, 517, 17, 518, 19, 898, 20, 914, 22, - 23, 915, 25, 26, 912, 921, 916, 931, 935, 936, - 938, 1067, 943, 1070, 948, 1073, 951, 953, 37, 955, - 956, 1080, 957, 962, 963, 964, 1084, 1085, 41, 42, - 43, 965, 966, 967, 976, 1088, 979, 982, 984, 985, - 986, 987, 1007, 1091, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 1101, 1003, 989, 1008, 285, - 1009, 929, 1011, 1012, 1014, 1013, 946, 1016, 947, 1023, - 1160, 1116, 1027, 1029, 1120, 1030, 1034, 1124, 1032, 1039, - 1052, 543, 1043, 1053, 1036, 1054, 1038, 1131, 1056, 1132, - 1041, 1058, 1059, 1060, 1061, 1062, 1181, 1083, 1184, 975, - 1087, 978, 1089, 981, 71, 292, 1090, 1105, 1102, 1110, - 75, 76, 77, 1112, 1194, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 1114, 1117, 1118, 1121, - 1122, 1125, 1133, 1134, 293, 1126, 1136, 1140, 1138, 1144, - 5, 6, 1145, 1150, 1153, 1156, 1148, 1162, 1163, 1165, - 1167, 1169, 1175, 1177, 1179, 1182, 28, 29, 30, 31, - 32, 33, 1185, 1173, 1191, 1174, 270, 1192, 38, 39, - 1193, 515, 11, 12, 516, 14, 15, 517, 17, 518, - 19, 1195, 20, 1197, 22, 23, 1198, 25, 26, 858, - 711, 1107, 59, 67, 104, 105, 106, 107, 1050, 937, - 0, 442, 0, 37, 0, 0, 0, 0, 0, 0, - 0, 112, 294, 41, 42, 43, 114, 0, 0, 0, - 0, 117, 0, 1068, 0, 1071, 120, 1074, 0, 481, - 71, 292, 0, 0, 0, 0, 75, 76, 77, 0, - 0, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 0, 0, 0, 0, 544, 0, 0, 0, - 293, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 0, 28, 29, 30, 31, 32, 33, 0, 0, - 0, 0, 0, 0, 38, 39, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 458, 0, 0, 285, 0, 0, 0, 0, 0, - 104, 105, 106, 107, 0, 0, 0, 0, 0, 0, - 742, 0, 0, 0, 0, 0, 0, 112, 312, 0, - 0, 0, 114, 0, 0, 0, 0, 117, 0, 71, - 256, 0, 120, 0, 313, 75, 76, 77, 0, 0, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 0, 0, 0, 71, 256, 0, 0, 0, 0, - 75, 76, 77, 0, 0, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 104, - 105, 106, 107, 285, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 112, 113, 0, 0, - 285, 114, 0, 0, 0, 0, 117, 0, 0, 261, - 0, 120, 773, 262, 104, 105, 106, 107, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 112, 113, 0, 0, 0, 114, 0, 0, 0, - 0, 117, 0, 0, 635, 0, 120, 0, 636, 71, - 256, 0, 0, 0, 0, 75, 76, 77, 0, 0, + 284, 285, 1192, 224, 814, 225, 286, 471, 254, 472, + 299, 639, 198, 619, 643, 1010, 255, 644, 645, 647, + 108, 109, 110, 111, 693, 904, 905, 814, 694, 695, + 814, 256, 299, 814, 268, 645, 664, 814, 290, 115, + 116, 1208, 670, 99, 100, 101, 102, 719, 226, 103, + 227, 739, 300, 304, 680, 681, 814, 693, 814, 270, + 814, 694, 695, 684, 228, 287, 229, 337, 338, 230, + 986, 231, 316, 288, 337, 338, 309, 320, 323, 764, + 702, 426, 198, 915, 468, 916, 232, 718, 233, 318, + 527, 1209, 712, 342, 714, 715, 234, 236, 235, 237, + 781, 321, 468, 300, 354, 238, 788, 239, 359, 360, + 740, 508, 509, 99, 100, 101, 102, 337, 338, 103, + 322, 334, 1046, 240, 1210, 241, 806, 807, 808, 809, + 337, 338, 760, 798, 337, 338, 337, 338, 324, 729, + 730, 242, 325, 243, 337, 338, 815, 910, 337, 338, + 1005, 326, 1047, 731, 732, 733, 734, 735, 736, 737, + 1049, 789, 299, 244, 1051, 245, 741, 327, 337, 338, + 337, 338, 749, 337, 338, 246, 248, 247, 249, 250, + 343, 251, 758, 1085, 1110, 1088, 1113, 1091, 328, 1116, + 299, 329, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 1079, 471, 330, 477, 286, 331, + 344, 299, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 471, 611, 481, 612, + 286, 28, 29, 30, 31, 345, 33, 299, 299, 299, + 299, 115, 116, 352, 38, 39, 471, 432, 622, 205, + 471, 300, 662, 772, 206, 773, 471, 1146, 780, 646, + 648, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 361, 837, 838, 300, 286, 842, 646, 718, 865, 679, + 866, 859, 362, 115, 116, 471, 363, 872, 1169, 465, + 1172, 205, 1175, 369, 367, 471, 206, 889, 1179, 373, + 370, 698, 864, 281, 282, 283, 284, 285, 375, 471, + 870, 917, 286, 471, 873, 918, 471, 471, 919, 920, + 939, 1198, 940, 1200, 972, 1202, 973, 1018, 1092, 1019, + 1093, 939, 891, 1103, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 377, 906, 907, 908, 286, + 380, 1018, 946, 1148, 1193, 1211, 1194, 1212, 378, 921, + 923, 620, 621, 924, 954, 381, 431, 286, 933, 441, + 442, 443, 488, 466, 494, 504, 930, 931, 932, 533, + 543, 536, 537, 546, 936, 615, 616, 617, 618, 942, + 628, 629, 633, 640, 649, 650, 651, 653, 654, 655, + 981, 1095, 656, 300, 658, 659, 947, 510, 660, 513, + 666, 674, 678, 675, 763, 676, 677, 682, 708, 709, + 710, 683, 957, 711, 725, 723, 724, 727, 728, 961, + 962, 300, 738, 743, 964, 744, 750, 745, 751, 754, + 753, 757, 759, 970, 971, 767, 770, 776, 777, 783, + 784, 785, 300, 980, 786, 787, 790, 791, 792, 793, + 803, 804, 805, 704, 705, 794, 795, 796, 1147, 797, + 802, 811, 810, 5, 6, 812, 817, 819, 300, 300, + 300, 300, 820, 821, 822, 1014, 1015, 823, 827, 832, + 833, 834, 841, 836, 860, 861, 852, 867, 854, 880, + 883, 884, 887, 1029, 521, 11, 12, 522, 14, 15, + 523, 17, 524, 19, 1037, 20, 874, 22, 23, 881, + 25, 26, 888, 882, 890, 1025, 927, 928, 929, 886, + 934, 909, 1044, 948, 944, 949, 37, 1002, 951, 956, + 960, 510, 963, 513, 965, 1017, 967, 41, 42, 43, + 968, 969, 974, 1057, 975, 1059, 976, 1060, 977, 978, + 979, 1062, 989, 992, 995, 997, 1066, 998, 999, 1000, + 1021, 1022, 1027, 1023, 1026, 1028, 1036, 768, 769, 1040, + 771, 1042, 774, 775, 1043, 1053, 778, 779, 1055, 925, + 1058, 1067, 1045, 1048, 1050, 1083, 1068, 1086, 1071, 1089, + 530, 1052, 1056, 1073, 1069, 1074, 1097, 1075, 1076, 1077, + 1104, 1101, 1102, 1094, 1106, 869, 1119, 1100, 1128, 1107, + 1105, 1132, 1135, 1136, 1139, 1123, 1130, 1140, 1108, 1143, + 1152, 1144, 1159, 1160, 1164, 824, 825, 826, 1145, 1170, + 1153, 1155, 1157, 1165, 1168, 1173, 1176, 1183, 942, 1184, + 958, 1186, 959, 1188, 1197, 1190, 1199, 1201, 1134, 1204, + 1181, 1138, 1196, 1195, 1142, 1207, 1213, 1214, 1215, 1217, + 1219, 1220, 721, 1125, 59, 1150, 67, 1151, 1065, 950, + 0, 0, 0, 0, 0, 988, 0, 991, 1203, 994, + 1206, 0, 0, 0, 0, 0, 0, 879, 0, 0, + 0, 0, 830, 885, 0, 0, 1216, 0, 1178, 0, + 0, 0, 892, 893, 894, 0, 0, 897, 898, 899, + 900, 901, 902, 903, 0, 0, 0, 0, 0, 71, + 293, 0, 0, 0, 0, 75, 76, 77, 922, 0, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 0, 0, 0, 71, 256, 0, 0, 0, 0, - 75, 76, 77, 0, 0, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 0, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 106, 107, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 112, 113, 0, 0, - 0, 114, 0, 0, 0, 0, 117, 0, 0, 756, - 0, 120, 0, 757, 104, 105, 106, 107, 807, 0, + 98, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 344, 345, 0, 0, 0, 114, 0, 0, 0, - 0, 346, 0, 71, 465, 0, 120, 0, 164, 75, - 76, 77, 0, 0, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 0, 0, 0, 71, 72, - 73, 0, 74, 0, 75, 76, 77, 0, 0, 78, + 0, 0, 0, 945, 0, 0, 0, 0, 0, 0, + 0, 28, 29, 30, 31, 32, 33, 0, 0, 0, + 0, 0, 0, 271, 38, 39, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 0, 1084, 0, 1087, 286, 1090, 831, 0, 0, 0, + 104, 105, 106, 107, 0, 0, 0, 0, 0, 444, + 0, 0, 0, 0, 0, 0, 0, 112, 295, 0, + 0, 0, 114, 0, 0, 0, 1006, 117, 0, 0, + 0, 0, 120, 0, 0, 485, 1016, 0, 71, 293, + 1020, 0, 0, 0, 75, 76, 77, 0, 0, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 0, 99, 100, 101, 102, 0, 0, 103, 0, 0, - 0, 0, 0, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 104, 105, 106, 107, 851, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 294, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 1054, + 28, 29, 30, 31, 32, 33, 0, 0, 0, 0, + 0, 0, 0, 38, 39, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 104, + 105, 106, 107, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 112, 313, 0, 0, + 0, 114, 0, 0, 0, 0, 117, 0, 0, 0, + 0, 120, 0, 314, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 71, 293, 0, 1118, + 0, 1120, 75, 76, 77, 0, 0, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, + 0, 0, 0, 0, 0, 0, 294, 0, 0, 0, + 0, 0, 5, 6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, + 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 38, 39, 521, 11, 12, 522, 14, 15, 523, + 17, 524, 19, 0, 20, 0, 22, 23, 0, 25, + 26, 0, 0, 0, 0, 0, 0, 104, 105, 106, + 107, 460, 0, 0, 0, 37, 0, 0, 0, 0, + 0, 0, 0, 0, 112, 295, 41, 42, 43, 114, + 0, 0, 0, 0, 117, 0, 71, 293, 0, 120, + 0, 484, 75, 76, 77, 0, 0, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, + 0, 0, 0, 0, 0, 0, 294, 0, 0, 535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 112, 113, 0, 0, 0, 114, 0, 0, 0, 0, - 117, 0, 0, 0, 0, 120, 0, 480, 104, 105, - 106, 107, 108, 109, 110, 111, 1010, 0, 0, 0, - 0, 0, 0, 0, 0, 112, 113, 0, 0, 0, - 114, 115, 116, 0, 0, 117, 0, 118, 0, 119, - 120, 71, 292, 0, 0, 0, 0, 75, 76, 77, - 0, 0, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 0, 0, 0, 0, 0, 0, 0, - 0, 293, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 28, 29, 30, 31, 32, 33, 0, - 0, 0, 0, 0, 0, 38, 39, 0, 0, 0, - 0, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 1025, 0, 0, 0, 285, - 0, 104, 105, 106, 107, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 112, 294, - 0, 0, 0, 114, 71, 256, 197, 0, 117, 0, - 75, 76, 77, 120, 0, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 0, 99, 100, 101, - 102, 71, 256, 103, 0, 0, 0, 75, 76, 77, + 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, + 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 38, 39, 0, 0, 0, 0, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 0, 0, 0, 0, 286, 0, 104, 105, 106, + 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 112, 295, 0, 0, 0, 114, + 0, 0, 0, 0, 117, 0, 71, 257, 0, 120, + 0, 663, 75, 76, 77, 0, 0, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, + 0, 71, 257, 5, 6, 0, 0, 75, 76, 77, 0, 0, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 0, 0, 0, 0, 0, 0, 0, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 104, 105, 106, 107, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 112, 113, 0, 0, 0, 114, 0, 0, 0, - 0, 117, 0, 0, 0, 0, 120, 0, 0, 0, + 96, 97, 98, 0, 521, 11, 12, 522, 14, 15, + 523, 17, 524, 19, 0, 20, 0, 22, 23, 0, + 25, 26, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 37, 104, 105, 106, + 107, 0, 0, 0, 0, 0, 0, 41, 42, 43, + 0, 0, 0, 0, 112, 113, 0, 0, 0, 114, + 0, 0, 0, 0, 117, 0, 0, 262, 0, 120, + 0, 263, 104, 105, 106, 107, 752, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, + 113, 0, 0, 0, 114, 0, 0, 0, 0, 117, + 549, 0, 641, 0, 120, 0, 642, 71, 257, 0, + 0, 0, 0, 75, 76, 77, 0, 0, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 0, + 0, 0, 71, 72, 73, 0, 74, 0, 75, 76, + 77, 0, 0, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, + 0, 103, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 0, 0, 0, 0, + 286, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 106, 107, 782, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 346, 347, 0, 0, 0, + 114, 0, 0, 0, 0, 348, 0, 0, 0, 0, + 120, 0, 164, 104, 105, 106, 107, 108, 109, 110, + 111, 818, 0, 0, 0, 0, 0, 0, 0, 0, + 112, 113, 0, 0, 0, 114, 115, 116, 0, 0, + 117, 0, 118, 0, 119, 120, 71, 293, 0, 0, + 0, 0, 75, 76, 77, 0, 0, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 0, 0, + 0, 0, 0, 0, 0, 0, 294, 0, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 0, 0, 0, 0, 286, 0, 28, 29, + 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, + 0, 38, 39, 0, 0, 0, 0, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 862, 0, 0, 0, 286, 0, 104, 105, 106, + 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 112, 295, 0, 0, 0, 114, + 71, 257, 198, 0, 117, 0, 75, 76, 77, 120, + 0, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 0, 99, 100, 101, 102, 71, 257, 103, + 0, 0, 0, 75, 76, 77, 0, 0, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 0, + 0, 0, 0, 0, 0, 0, 0, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, 0, 104, 105, 106, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 113, - 0, 0, 0, 114, 71, 465, 5, 6, 117, 0, - 75, 76, 77, 120, 0, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 0, 515, 11, 12, - 516, 14, 15, 517, 17, 518, 19, 0, 20, 0, - 22, 23, 0, 25, 26, 5, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, - 42, 43, 0, 0, 0, 0, 515, 11, 12, 516, - 14, 15, 517, 17, 518, 19, 0, 20, 0, 22, - 23, 0, 25, 26, 104, 105, 106, 107, 0, 5, - 6, 0, 0, 0, 0, 0, 0, 0, 37, 0, - 0, 112, 113, 0, 0, 0, 114, 0, 41, 42, - 43, 117, 689, 1026, 0, 0, 120, 0, 0, 0, - 515, 11, 12, 516, 14, 15, 517, 17, 518, 19, - 0, 20, 0, 22, 23, 1028, 25, 26, 5, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, - 1106, 703, 41, 42, 43, 0, 0, 0, 0, 515, - 11, 12, 516, 14, 15, 517, 17, 518, 19, 0, - 20, 466, 22, 23, 0, 25, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 541, 37, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 41, 42, 43, 0, 1103, 0, 0, 271, 272, + 0, 0, 0, 114, 0, 0, 0, 0, 117, 0, + 0, 0, 0, 120, 0, 0, 0, 0, 104, 105, + 106, 107, 5, 6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 112, 113, 0, 0, 0, + 114, 0, 5, 6, 0, 117, 0, 0, 0, 0, + 120, 0, 0, 521, 11, 12, 522, 14, 15, 523, + 17, 524, 19, 0, 20, 0, 22, 23, 0, 25, + 26, 0, 0, 521, 11, 12, 522, 14, 15, 523, + 17, 524, 19, 0, 20, 37, 22, 23, 0, 25, + 26, 5, 6, 0, 0, 0, 41, 42, 43, 0, + 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 41, 42, 43, 0, + 0, 0, 521, 11, 12, 522, 14, 15, 523, 17, + 524, 19, 1024, 20, 0, 22, 23, 0, 25, 26, + 5, 6, 0, 0, 0, 0, 0, 0, 0, 550, + 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, + 5, 6, 1038, 0, 0, 41, 42, 43, 0, 699, + 0, 521, 11, 12, 522, 14, 15, 523, 17, 524, + 19, 0, 20, 1039, 22, 23, 0, 25, 26, 0, + 0, 521, 11, 12, 522, 14, 15, 523, 17, 524, + 19, 0, 20, 37, 22, 23, 1041, 25, 26, 0, + 0, 0, 0, 0, 41, 42, 43, 0, 713, 0, + 0, 0, 0, 37, 0, 1124, 0, 0, 0, 0, + 0, 0, 0, 0, 41, 42, 43, 0, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 1191, 0, 0, 0, 286, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1121, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 469, 0, 0, 0, 286, 1162, 0, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 628, 0, 0, 0, 285, 0, 0, 0, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 758, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 1142, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 818, - 0, 0, 0, 285, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 0, 0, 271, 272, 273, + 283, 284, 285, 469, 0, 0, 0, 286, 0, 0, + 0, 0, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 547, 0, 0, 0, + 286, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 634, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 0, 0, 0, - 0, 0, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, -3, 1, 0, - 285, -3, 0, 0, 0, 0, 0, 0, 0, -3, - -3, 0, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, -3, 0, 0, 0, 0, -3, -3, 659, - -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, - 0, -3, -3, -3, -3, -3, -3, -3, 0, 0, - 0, -3, -3, -3, -3, -3, -3, -3, 0, -3, - -3, -3, -3, 0, -3, -3, 0, 4, 0, 0, - 0, -3, -3, -3, -3, 5, 6, -3, 0, -3, - 0, -3, -3, -3, -3, -3, -3, -3, -3, -3, - 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 0, 0, 8, 9, 0, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 0, 20, 21, 22, - 23, 24, 25, 26, 0, 0, 0, 27, 28, 29, - 30, 31, 32, 33, 0, 34, 35, 36, 37, 0, - 38, 39, 5, 6, 0, 0, 0, 40, 41, 42, - 43, 0, 0, 44, 0, 45, 0, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 0, 0, 0, 0, - 0, 0, 0, 515, 11, 12, 516, 14, 15, 517, - 17, 518, 19, 0, 20, 0, 22, 23, 0, 25, - 26, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 37, 0, 0, 0, 285, - 0, 0, 0, 435, 0, 41, 42, 43, 271, 272, + 284, 285, 766, 0, 0, 0, 286, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 470, 284, 285, + 829, 0, 0, 0, 286, 0, 0, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 487, 284, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 0, 0, 0, 0, 286, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 0, 0, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 0, 0, 0, 0, 286, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 0, -3, + 1, 0, 286, -3, 0, 0, 0, 0, 0, 0, + 0, -3, -3, 0, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 0, 0, + 0, 0, 286, 0, -3, 0, 0, 0, 0, -3, + -3, 667, -3, -3, -3, -3, -3, -3, -3, -3, + -3, -3, 0, -3, -3, -3, -3, -3, -3, -3, + 0, 0, 0, -3, -3, -3, -3, -3, -3, -3, + 0, -3, -3, -3, -3, 0, 0, -3, -3, 0, + 4, 0, 0, 0, -3, -3, -3, -3, 5, 6, + -3, 0, -3, 0, -3, -3, -3, -3, -3, -3, + -3, -3, -3, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 0, 8, 9, 0, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, + 20, 21, 22, 23, 24, 25, 26, 0, 0, 0, + 27, 28, 29, 30, 31, 32, 33, 0, 34, 35, + 36, 37, 5, 6, 38, 39, 0, 0, 0, 0, + 0, 40, 41, 42, 43, 0, 0, 44, 0, 45, + 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 0, 0, 0, 521, 11, 12, 522, 14, 15, 523, + 17, 524, 19, 0, 20, 0, 22, 23, 0, 25, + 26, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 37, 0, 0, 0, 286, + 0, 0, 0, 437, 0, 0, 41, 42, 43, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 972, 0, 973, 271, 272, 273, 274, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 984, 0, 985, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 993, 0, 994, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 1065, - 0, 1066, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 663, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 0, 0, 664, 271, 272, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 1007, 0, 1008, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 1080, 0, 1081, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, + 671, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 672, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 0, 0, 710, 271, 272, 273, 274, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 0, 0, 720, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 0, 0, 755, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 792, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 970, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 0, 0, 990, 271, 272, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 0, 0, 765, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 0, 0, 801, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, + 982, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 1004, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 0, 0, 1017, 271, 272, 273, 274, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 0, 0, 1030, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 0, 0, 1020, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 1021, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 1022, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 0, 0, 1079, 271, 272, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 0, 0, 1033, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 0, 0, 1034, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, + 1035, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 1096, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 0, 0, 1081, 271, 272, 273, 274, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 0, 0, 1098, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 0, 0, 1082, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 1092, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 1095, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 0, 0, 1098, 271, 272, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 0, 0, 1099, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 0, 0, 1109, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, + 1112, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 1115, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 0, 0, 1113, 271, 272, 273, 274, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 0, 0, 1131, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 0, 0, 1135, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 1137, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 0, 0, 1139, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 0, 0, 1147, 271, 272, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 0, 0, 1154, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 0, 0, 1156, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, + 1158, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 0, 0, 1167, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 431, 0, - 0, 0, 0, 501, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 461, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 501, 271, 272, 273, 274, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 433, + 0, 0, 0, 0, 506, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 463, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 506, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 502, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 538, 271, 272, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 507, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 544, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 585, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 586, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 599, 271, 272, 273, 274, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 591, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 592, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 605, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 600, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 601, 271, 272, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 606, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 607, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 602, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 603, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 604, 271, 272, 273, 274, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 608, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 609, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 610, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 677, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 678, 271, 272, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 686, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 687, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 679, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 752, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 790, 271, 272, 273, 274, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 688, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 762, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 799, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 791, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 817, 271, 272, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 800, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 828, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 924, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 925, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 942, 271, 272, 273, 274, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 937, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 938, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 955, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 954, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 1048, 271, 272, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 966, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 1063, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 0, 0, 0, 1049, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 0, 0, 0, 1057, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 0, 0, 0, 1063, 271, 272, 273, 274, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 0, 0, 0, 1064, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 0, 0, 0, + 1072, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 0, 0, 0, 1078, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 0, 0, - 0, 1109, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 0, 0, 1111, 271, 272, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 0, + 0, 0, 1127, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 0, 0, 0, 1129, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 546, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 0, 0, 564, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 566, 271, 272, 273, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 552, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 0, 0, 0, 0, + 286, 0, 0, 0, 570, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 572, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 0, 0, 568, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 570, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 0, 0, 572, 271, 272, 273, 274, + 284, 285, 0, 0, 0, 0, 286, 0, 0, 0, + 574, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 576, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 0, 0, + 0, 0, 286, 0, 0, 0, 578, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 574, 271, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 580, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 0, - 0, 576, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 578, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 0, 0, 580, 271, 272, + 282, 283, 284, 285, 0, 0, 0, 0, 286, 0, + 0, 0, 582, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 584, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 0, 0, 0, 0, 286, 0, 0, 0, 586, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 582, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 0, 0, 584, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 588, 271, 272, 273, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 588, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 0, 0, 0, 0, + 286, 0, 0, 0, 590, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 594, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 0, 0, 590, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 592, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 0, 0, 594, 271, 272, 273, 274, + 284, 285, 0, 0, 0, 0, 286, 0, 0, 0, + 596, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 598, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 0, 0, + 0, 0, 286, 0, 0, 0, 600, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 596, 271, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 602, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 0, - 0, 598, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 691, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 0, 0, 693, 271, 272, + 282, 283, 284, 285, 0, 0, 0, 0, 286, 0, + 0, 0, 604, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 685, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 0, 0, 0, 0, 286, 0, 0, 0, 701, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 0, 0, - 696, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 0, 0, 697, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 0, 0, 706, 271, 272, 273, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 703, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 0, 0, 0, 0, + 286, 0, 0, 0, 706, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 0, 0, 707, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 0, 0, 732, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 0, 0, 833, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 0, 0, 835, 271, 272, 273, 274, + 284, 285, 0, 0, 0, 0, 286, 0, 0, 0, + 716, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 0, 0, 742, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 0, 0, + 0, 0, 286, 0, 0, 0, 844, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 0, 0, 837, 271, + 285, 0, 0, 0, 0, 286, 0, 0, 0, 846, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 0, - 0, 839, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 0, 0, 840, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 0, 0, 939, 271, 272, + 282, 283, 284, 285, 0, 0, 0, 0, 286, 0, + 0, 0, 848, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 0, 0, 850, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 0, 0, 0, 0, 286, 0, 0, 0, 851, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 431, 271, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 0, + 0, 952, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 0, 0, 0, 0, + 286, 0, 433, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 464, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 0, 0, + 0, 0, 286, 0, 473, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 474, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 0, 0, 0, 0, 286, 0, 476, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 0, 0, 0, 0, 286, 0, 478, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 0, 0, 0, 0, 286, 0, 479, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 482, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 462, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 469, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 470, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 472, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 474, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 475, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 478, 271, 272, 273, 274, + 282, 283, 284, 285, 0, 0, 0, 0, 286, 0, + 483, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 490, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 0, 0, 0, 0, + 286, 0, 540, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 541, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 0, 0, + 0, 0, 286, 0, 542, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 548, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 0, 0, 0, 0, 286, 0, 569, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 479, 271, 272, 273, + 285, 0, 0, 0, 0, 286, 0, 571, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 485, 271, 272, + 284, 285, 0, 0, 0, 0, 286, 0, 573, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 534, 271, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 575, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 535, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 536, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 542, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 563, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 565, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 567, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 569, 271, 272, 273, 274, + 282, 283, 284, 285, 0, 0, 0, 0, 286, 0, + 577, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 579, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 0, 0, 0, 0, + 286, 0, 581, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 583, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 0, 0, + 0, 0, 286, 0, 585, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 587, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 0, 0, 0, 0, 286, 0, 589, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 571, 271, 272, 273, + 285, 0, 0, 0, 0, 286, 0, 593, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 573, 271, 272, + 284, 285, 0, 0, 0, 0, 286, 0, 595, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 575, 271, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 597, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 577, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 579, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 581, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 583, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 587, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 589, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 591, 271, 272, 273, 274, + 282, 283, 284, 285, 0, 0, 0, 0, 286, 0, + 599, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 601, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 0, 0, 0, 0, + 286, 0, 603, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 652, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 0, 0, + 0, 0, 286, 0, 657, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 665, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 0, 0, 0, 0, 286, 0, 668, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 593, 271, 272, 273, + 285, 0, 0, 0, 0, 286, 0, 669, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 595, 271, 272, + 284, 285, 0, 0, 0, 0, 286, 0, 673, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 597, 271, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 843, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 645, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 650, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 657, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 660, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 661, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 665, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285, 0, 832, 271, 272, 273, 274, + 282, 283, 284, 285, 0, 0, 0, 0, 286, 0, + 845, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 0, 0, 0, 0, 286, + 0, 847, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 0, 0, 0, 0, + 286, 0, 849, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 0, 0, 0, + 0, 286, 0, 855, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 0, 0, + 0, 0, 286, 0, 943, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 282, 283, 284, 285, 0, + 0, 0, 0, 286, 0, 983, 272, 273, 274, 275, + 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 0, 0, 0, 0, 286, 0, 1003, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 0, 0, 0, 0, 285, 0, 834, 271, 272, 273, + 285, 0, 0, 0, 0, 286, 0, 1011, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 0, 0, 0, 0, 285, 0, 836, 271, 272, + 284, 285, 0, 0, 0, 0, 286, 0, 1126, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 0, 0, 0, 0, 285, 0, 838, 271, + 283, 284, 285, 0, 0, 0, 0, 286, 0, 1166, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 0, 0, 0, 0, 285, 0, 844, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 0, 0, 0, 0, 285, 0, - 930, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 0, 0, 0, 0, 285, - 0, 971, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 0, 0, 0, 0, - 285, 0, 997, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 0, 0, 0, - 0, 285, 0, 1108, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 0, 0, - 0, 0, 285, 0, 1146, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 0, - 0, 0, 0, 285 + 282, 283, 284, 285, 0, 0, 0, 0, 286 }; static const short yycheck[] = { 4, - 2, 4, 2, 339, 8, 4, 4, 172, 264, 690, - 175, 4, 4, 178, 625, 4, 133, 4, 6, 4, - 49, 138, 6, 6, 5, 142, 4, 4, 6, 43, - 6, 5, 46, 198, 72, 200, 71, 7, 76, 71, - 4, 4, 120, 121, 6, 6, 7, 6, 53, 54, - 120, 121, 4, 6, 686, 36, 37, 38, 39, 137, - 130, 42, 36, 37, 38, 39, 130, 137, 42, 120, - 121, 131, 56, 137, 71, 71, 136, 138, 122, 123, - 124, 142, 6, 6, 4, 129, 137, 79, 80, 81, - 82, 83, 79, 80, 81, 82, 83, 56, 130, 130, - 138, 130, 137, 13, 7, 137, 137, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 130, 49, 126, 127, 129, 90, 91, 137, 132, - 49, 134, 743, 130, 138, 118, 139, 107, 137, 137, - 137, 137, 118, 72, 137, 262, 138, 76, 137, 137, - 130, 138, 137, 130, 132, 130, 137, 132, 120, 121, - 112, 113, 114, 137, 6, 117, 118, 120, 121, 121, - 90, 91, 72, 805, 130, 127, 76, 49, 130, 435, - 132, 133, 134, 135, 349, 137, 138, 139, 140, 72, - 142, 143, 144, 76, 145, 147, 313, 120, 121, 130, - 151, 262, 367, 7, 107, 108, 109, 110, 130, 138, - 132, 163, 164, 126, 127, 7, 120, 121, 72, 130, - 172, 134, 76, 126, 127, 176, 120, 121, 130, 180, - 181, 134, 136, 185, 186, 187, 53, 189, 138, 130, - 192, 193, 136, 854, 138, 131, 251, 252, 253, 254, - 136, 203, 313, 130, 130, 138, 132, 209, 210, 211, + 2, 340, 2, 631, 265, 4, 4, 4, 6, 4, + 4, 4, 4, 49, 4, 6, 4, 6, 173, 6, + 6, 176, 4, 7, 179, 5, 71, 4, 13, 4, + 4, 72, 71, 6, 71, 76, 77, 5, 72, 4, + 132, 49, 76, 77, 199, 137, 201, 6, 53, 54, + 131, 7, 4, 6, 696, 6, 36, 37, 38, 39, + 43, 43, 42, 46, 46, 121, 122, 49, 36, 37, + 38, 39, 127, 128, 42, 138, 5, 131, 6, 142, + 135, 6, 138, 80, 81, 82, 83, 84, 80, 81, + 82, 83, 84, 138, 131, 131, 131, 56, 139, 138, + 7, 138, 131, 56, 131, 139, 7, 36, 37, 38, + 39, 138, 131, 42, 91, 92, 91, 92, 132, 138, + 121, 122, 72, 137, 108, 753, 76, 77, 127, 128, + 121, 122, 121, 122, 133, 133, 135, 138, 49, 121, + 122, 140, 139, 138, 138, 138, 119, 139, 138, 131, + 138, 138, 108, 109, 110, 111, 138, 131, 138, 131, + 112, 113, 114, 71, 131, 117, 118, 131, 119, 121, + 138, 127, 128, 53, 816, 127, 437, 131, 130, 135, + 132, 133, 134, 135, 138, 137, 138, 139, 140, 139, + 142, 143, 144, 121, 122, 147, 351, 49, 127, 128, + 263, 108, 109, 110, 111, 49, 135, 108, 109, 110, + 111, 163, 164, 51, 369, 121, 122, 132, 123, 124, + 125, 173, 137, 131, 72, 130, 127, 128, 76, 77, + 138, 137, 131, 139, 186, 187, 188, 865, 190, 49, + 72, 193, 194, 138, 76, 77, 138, 252, 253, 254, + 255, 314, 204, 328, 329, 330, 6, 7, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 29, - 30, 264, 32, 107, 108, 109, 110, 131, 43, 7, - 262, 46, 136, 49, 49, 107, 108, 109, 110, 271, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 265, 6, 43, 29, 30, 46, 32, 139, 49, 4, + 51, 263, 72, 131, 72, 133, 76, 77, 76, 77, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 126, 127, 338, 339, 338, 339, - 72, 51, 294, 460, 76, 120, 121, 5, 72, 130, - 467, 303, 76, 1034, 72, 1036, 308, 1038, 76, 131, - 312, 313, 137, 480, 136, 317, 137, 319, 320, 321, - 137, 323, 324, 325, 326, 327, 328, 329, 36, 37, - 38, 39, 49, 72, 42, 120, 121, 76, 6, 341, - 342, 343, 344, 345, 346, 130, 4, 72, 350, 460, - 1011, 76, 137, 355, 126, 127, 138, 359, 360, 107, - 108, 109, 110, 46, 138, 378, 49, 72, 51, 480, - 138, 76, 4, 1104, 376, 6, 7, 379, 126, 127, - 160, 436, 162, 120, 121, 72, 4, 1069, 168, 76, - 1072, 72, 172, 1075, 72, 76, 62, 63, 76, 138, - 137, 120, 121, 1134, 131, 1136, 130, 1138, 132, 136, - 130, 6, 1143, 138, 4, 5, 130, 136, 126, 127, - 130, 130, 435, 132, 120, 121, 134, 207, 430, 735, - 736, 432, 433, 138, 1165, 437, 1167, 8, 1169, 130, - 136, 608, 138, 6, 4, 1127, 36, 37, 38, 39, - 4, 138, 42, 130, 130, 120, 121, 138, 460, 461, - 138, 463, 464, 130, 466, 467, 130, 1149, 132, 636, - 1152, 136, 5, 1155, 120, 121, 1158, 130, 480, 120, - 121, 483, 327, 328, 329, 120, 121, 489, 130, 4, - 136, 546, 138, 6, 1176, 136, 1178, 608, 1180, 501, - 502, 136, 6, 36, 37, 38, 39, 5, 510, 42, - 120, 121, 898, 680, 681, 682, 683, 130, 120, 121, - 137, 120, 121, 130, 526, 636, 136, 130, 137, 530, - 531, 137, 130, 546, 136, 4, 538, 136, 540, 541, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 609, 130, 336, 337, 129, 120, - 121, 120, 121, 120, 121, 345, 130, 138, 132, 680, - 681, 682, 683, 120, 121, 136, 631, 136, 130, 136, - 126, 127, 130, 585, 586, 130, 132, 132, 134, 136, - 757, 130, 130, 139, 132, 130, 130, 599, 600, 601, - 602, 603, 604, 605, 132, 130, 608, 132, 137, 130, - 612, 132, 65, 66, 67, 68, 618, 70, 130, 130, - 132, 132, 6, 137, 77, 78, 628, 12, 13, 120, - 121, 122, 123, 124, 636, 130, 638, 132, 129, 136, - 132, 138, 643, 644, 1030, 646, 757, 648, 649, 137, - 132, 652, 653, 130, 130, 132, 132, 6, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 130, 54, - 132, 56, 57, 134, 59, 60, 93, 61, 680, 681, - 682, 683, 137, 126, 127, 130, 130, 132, 132, 132, - 75, 134, 130, 130, 132, 132, 139, 698, 699, 700, - 85, 86, 87, 136, 136, 138, 138, 6, 126, 127, - 6, 713, 714, 6, 132, 717, 134, 132, 4, 732, - 500, 139, 132, 736, 134, 137, 5, 111, 112, 113, + 282, 283, 284, 285, 286, 700, 4, 339, 340, 339, + 340, 121, 122, 295, 72, 131, 8, 133, 76, 77, + 72, 131, 304, 131, 76, 77, 4, 309, 138, 127, + 128, 313, 314, 6, 121, 122, 318, 131, 320, 321, + 322, 4, 324, 325, 326, 327, 328, 329, 330, 139, + 137, 139, 139, 132, 8, 121, 122, 131, 137, 133, + 342, 343, 344, 345, 346, 347, 348, 1025, 72, 462, + 352, 137, 76, 77, 1046, 357, 121, 122, 72, 361, + 362, 139, 76, 77, 131, 380, 133, 139, 131, 7, + 133, 484, 133, 138, 121, 122, 378, 138, 131, 381, + 133, 142, 132, 438, 160, 72, 162, 137, 131, 76, + 77, 138, 168, 1085, 62, 63, 1088, 173, 131, 1091, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 46, 139, 4, 49, 130, 51, + 121, 122, 437, 131, 72, 139, 131, 139, 76, 77, + 432, 131, 208, 133, 745, 746, 137, 439, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 521, 744, 43, 134, 129, 46, 129, 7, 49, - 752, 51, 49, 138, 51, 757, 758, 136, 136, 138, - 138, 762, 136, 136, 138, 138, 136, 768, 138, 136, - 136, 138, 138, 775, 132, 776, 777, 778, 137, 7, - 781, 782, 783, 784, 785, 786, 787, 789, 790, 791, - 136, 846, 138, 136, 136, 138, 138, 7, 131, 801, - 801, 6, 804, 858, 136, 4, 138, 6, 136, 822, - 138, 136, 136, 138, 138, 817, 818, 819, 136, 136, - 138, 138, 136, 825, 138, 7, 1041, 7, 830, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 90, 894, - 131, 136, 129, 137, 845, 847, 898, 131, 898, 6, - 8, 136, 4, 133, 634, 93, 7, 7, 7, 7, - 93, 7, 864, 7, 93, 7, 7, 131, 7, 871, - 872, 131, 12, 13, 876, 131, 131, 134, 7, 7, - 138, 7, 884, 885, 138, 134, 130, 130, 130, 137, - 1105, 6, 894, 4, 6, 132, 6, 677, 678, 679, - 6, 133, 6, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 7, 54, 916, 56, 57, 6, 59, - 60, 118, 924, 925, 49, 926, 7, 7, 51, 930, - 7, 137, 7, 7, 7, 75, 7, 7, 7, 7, - 942, 7, 7, 7, 4, 85, 86, 87, 6, 137, - 6, 6, 954, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 6, 6, 4, - 972, 129, 6, 131, 6, 12, 13, 6, 1030, 4, - 1030, 137, 6, 130, 7, 6, 131, 6, 989, 991, - 6, 993, 6, 995, 131, 6, 134, 999, 138, 6, - 5, 137, 1004, 137, 137, 137, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 137, 54, 6, 56, - 57, 6, 59, 60, 804, 6, 89, 134, 6, 4, - 6, 1033, 133, 1035, 6, 1037, 6, 5, 75, 6, - 6, 1043, 6, 6, 6, 6, 1048, 1049, 85, 86, - 87, 6, 6, 6, 6, 1057, 6, 6, 6, 6, - 6, 6, 4, 1065, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 1076, 137, 136, 6, 129, - 6, 1083, 7, 6, 6, 134, 866, 133, 868, 5, - 1145, 1093, 6, 6, 1096, 137, 137, 1099, 138, 6, - 6, 138, 88, 6, 137, 131, 137, 1109, 91, 1111, - 137, 6, 6, 6, 6, 6, 1171, 137, 1173, 899, - 6, 901, 5, 903, 3, 4, 138, 137, 6, 6, - 9, 10, 11, 136, 1189, 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, - 6, 6, 5, 137, 43, 138, 137, 6, 137, 6, - 12, 13, 137, 6, 6, 6, 136, 6, 5, 137, - 137, 137, 6, 6, 6, 6, 65, 66, 67, 68, - 69, 70, 6, 137, 6, 138, 6, 6, 77, 78, - 6, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 6, 54, 0, 56, 57, 0, 59, 60, 751, - 549, 1083, 2, 2, 103, 104, 105, 106, 1003, 850, - -1, 6, -1, 75, -1, -1, -1, -1, -1, -1, - -1, 120, 121, 85, 86, 87, 125, -1, -1, -1, - -1, 130, -1, 1033, -1, 1035, 135, 1037, -1, 138, - 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, -1, 138, -1, -1, -1, - 43, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, 65, 66, 67, 68, 69, 70, -1, -1, - -1, -1, -1, -1, 77, 78, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, 6, -1, -1, 129, -1, -1, -1, -1, -1, - 103, 104, 105, 106, -1, -1, -1, -1, -1, -1, - 6, -1, -1, -1, -1, -1, -1, 120, 121, -1, - -1, -1, 125, -1, -1, -1, -1, 130, -1, 3, - 4, -1, 135, -1, 137, 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, -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, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 103, - 104, 105, 106, 129, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 120, 121, -1, -1, - 129, 125, -1, -1, -1, -1, 130, -1, -1, 133, - -1, 135, 6, 137, 103, 104, 105, 106, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 120, 121, -1, -1, -1, 125, -1, -1, -1, - -1, 130, -1, -1, 133, -1, 135, -1, 137, 3, - 4, -1, -1, -1, -1, 9, 10, 11, -1, -1, + 124, 125, 139, 131, 1146, 133, 130, 137, 131, 139, + 462, 463, 5, 465, 466, 139, 131, 469, 470, 471, + 108, 109, 110, 111, 72, 6, 7, 1169, 76, 77, + 1172, 131, 484, 1175, 4, 487, 488, 1179, 5, 127, + 128, 139, 494, 36, 37, 38, 39, 552, 131, 42, + 133, 614, 263, 131, 506, 507, 1198, 72, 1200, 6, + 1202, 76, 77, 515, 131, 6, 133, 121, 122, 131, + 909, 133, 145, 6, 121, 122, 131, 138, 151, 642, + 532, 4, 5, 137, 295, 139, 131, 552, 133, 131, + 137, 139, 544, 133, 546, 547, 131, 131, 133, 133, + 663, 131, 313, 314, 177, 131, 6, 133, 181, 182, + 615, 337, 338, 36, 37, 38, 39, 121, 122, 42, + 131, 347, 987, 131, 139, 133, 689, 690, 691, 692, + 121, 122, 637, 137, 121, 122, 121, 122, 138, 591, + 592, 131, 138, 133, 121, 122, 137, 802, 121, 122, + 137, 131, 137, 605, 606, 607, 608, 609, 610, 611, + 137, 61, 614, 131, 137, 133, 618, 131, 121, 122, + 121, 122, 624, 121, 122, 131, 131, 133, 133, 131, + 138, 133, 634, 1048, 137, 1050, 137, 1052, 131, 137, + 642, 131, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 1043, 137, 131, 139, 130, 4, + 138, 663, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 137, 133, 139, 135, + 130, 65, 66, 67, 68, 138, 70, 689, 690, 691, + 692, 127, 128, 133, 78, 79, 137, 133, 139, 135, + 137, 462, 139, 49, 140, 51, 137, 1122, 139, 470, + 471, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 133, 723, 724, 484, 130, 727, 487, 742, 137, 505, + 139, 746, 133, 127, 128, 137, 6, 139, 1153, 133, + 1155, 135, 1157, 138, 135, 137, 140, 139, 1163, 6, + 94, 527, 754, 121, 122, 123, 124, 125, 6, 137, + 762, 139, 130, 137, 766, 139, 137, 137, 139, 139, + 137, 1186, 139, 1188, 4, 1190, 6, 137, 137, 139, + 139, 137, 784, 139, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 6, 798, 799, 800, 130, + 4, 137, 857, 139, 137, 137, 139, 139, 133, 811, + 812, 434, 435, 815, 869, 138, 5, 130, 833, 135, + 7, 133, 7, 138, 7, 132, 828, 829, 830, 6, + 91, 7, 7, 138, 836, 137, 132, 132, 137, 841, + 6, 4, 134, 7, 94, 7, 7, 7, 94, 7, + 905, 1056, 7, 614, 94, 7, 858, 909, 7, 909, + 7, 132, 135, 132, 640, 132, 132, 139, 7, 7, + 7, 139, 874, 135, 138, 131, 131, 131, 6, 881, + 882, 642, 4, 6, 886, 6, 6, 134, 6, 133, + 7, 6, 119, 895, 896, 49, 7, 7, 51, 7, + 138, 7, 663, 905, 7, 7, 7, 7, 7, 7, + 686, 687, 688, 536, 537, 7, 7, 7, 1123, 4, + 138, 138, 6, 12, 13, 131, 6, 6, 689, 690, + 691, 692, 6, 6, 6, 937, 938, 6, 4, 6, + 4, 6, 138, 131, 135, 7, 132, 6, 132, 6, + 6, 6, 6, 955, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 966, 54, 138, 56, 57, 138, + 59, 60, 6, 138, 5, 7, 6, 6, 90, 138, + 6, 138, 984, 6, 135, 4, 75, 137, 6, 134, + 6, 1043, 6, 1043, 5, 138, 6, 86, 87, 88, + 6, 6, 6, 1005, 6, 1007, 6, 1009, 6, 6, + 6, 1013, 6, 6, 6, 6, 1018, 6, 6, 6, + 4, 6, 135, 6, 6, 6, 5, 650, 651, 6, + 653, 6, 655, 656, 138, 6, 659, 660, 7, 815, + 89, 6, 139, 138, 138, 1047, 6, 1049, 92, 1051, + 139, 138, 138, 6, 132, 6, 1058, 6, 6, 6, + 6, 1063, 1064, 138, 5, 761, 6, 138, 6, 139, + 1072, 6, 6, 6, 6, 138, 137, 6, 1080, 6, + 5, 139, 6, 61, 6, 708, 709, 710, 139, 6, + 138, 138, 138, 138, 137, 6, 6, 6, 1100, 5, + 876, 138, 878, 138, 6, 138, 6, 6, 1110, 6, + 1165, 1113, 139, 138, 1116, 6, 6, 6, 6, 6, + 0, 0, 555, 1100, 2, 1127, 2, 1129, 1017, 861, + -1, -1, -1, -1, -1, 911, -1, 913, 1193, 915, + 1195, -1, -1, -1, -1, -1, -1, 770, -1, -1, + -1, -1, 8, 776, -1, -1, 1211, -1, 1160, -1, + -1, -1, 785, 786, 787, -1, -1, 790, 791, 792, + 793, 794, 795, 796, -1, -1, -1, -1, -1, 3, + 4, -1, -1, -1, -1, 9, 10, 11, 811, -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, -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, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, - 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 120, 121, -1, -1, - -1, 125, -1, -1, -1, -1, 130, -1, -1, 133, - -1, 135, -1, 137, 103, 104, 105, 106, 6, -1, + 34, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 120, 121, -1, -1, -1, 125, -1, -1, -1, - -1, 130, -1, 3, 4, -1, 135, -1, 137, 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, - 5, -1, 7, -1, 9, 10, 11, -1, -1, 14, + -1, -1, -1, 856, -1, -1, -1, -1, -1, -1, + -1, 65, 66, 67, 68, 69, 70, -1, -1, -1, + -1, -1, -1, 6, 78, 79, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, 1047, -1, 1049, 130, 1051, 132, -1, -1, -1, + 104, 105, 106, 107, -1, -1, -1, -1, -1, 6, + -1, -1, -1, -1, -1, -1, -1, 121, 122, -1, + -1, -1, 126, -1, -1, -1, 929, 131, -1, -1, + -1, -1, 136, -1, -1, 139, 939, -1, 3, 4, + 943, -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, 36, 37, 38, 39, -1, -1, 42, -1, -1, - -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, 103, 104, 105, 106, 6, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 43, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, 130, -1, 1002, + 65, 66, 67, 68, 69, 70, -1, -1, -1, -1, + -1, -1, -1, 78, 79, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, 104, + 105, 106, 107, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 121, 122, -1, -1, + -1, 126, -1, -1, -1, -1, 131, -1, -1, -1, + -1, 136, -1, 138, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3, 4, -1, 1092, + -1, 1094, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, + -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, + -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, + 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, + -1, 78, 79, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, -1, 56, 57, -1, 59, + 60, -1, -1, -1, -1, -1, -1, 104, 105, 106, + 107, 6, -1, -1, -1, 75, -1, -1, -1, -1, + -1, -1, -1, -1, 121, 122, 86, 87, 88, 126, + -1, -1, -1, -1, 131, -1, 3, 4, -1, 136, + -1, 138, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, + -1, -1, -1, -1, -1, -1, 43, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 120, 121, -1, -1, -1, 125, -1, -1, -1, -1, - 130, -1, -1, -1, -1, 135, -1, 137, 103, 104, - 105, 106, 107, 108, 109, 110, 6, -1, -1, -1, - -1, -1, -1, -1, -1, 120, 121, -1, -1, -1, - 125, 126, 127, -1, -1, 130, -1, 132, -1, 134, - 135, 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, -1, -1, -1, -1, - -1, 43, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, 65, 66, 67, 68, 69, 70, -1, - -1, -1, -1, -1, -1, 77, 78, -1, -1, -1, - -1, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 6, -1, -1, -1, 129, - -1, 103, 104, 105, 106, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 120, 121, - -1, -1, -1, 125, 3, 4, 5, -1, 130, -1, - 9, 10, 11, 135, -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, -1, -1, -1, 9, 10, 11, + -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, + 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, + -1, 78, 79, -1, -1, -1, -1, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, -1, -1, -1, -1, 130, -1, 104, 105, 106, + 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 121, 122, -1, -1, -1, 126, + -1, -1, -1, -1, 131, -1, 3, 4, -1, 136, + -1, 138, 9, 10, 11, -1, -1, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, + -1, 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, -1, -1, -1, -1, -1, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, 103, 104, 105, 106, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 120, 121, -1, -1, -1, 125, -1, -1, -1, - -1, 130, -1, -1, -1, -1, 135, -1, -1, -1, - -1, 103, 104, 105, 106, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 120, 121, - -1, -1, -1, 125, 3, 4, 12, 13, 130, -1, - 9, 10, 11, 135, -1, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, -1, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, -1, 54, -1, - 56, 57, -1, 59, 60, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 75, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, - 86, 87, -1, -1, -1, -1, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, -1, 54, -1, 56, - 57, -1, 59, 60, 103, 104, 105, 106, -1, 12, - 13, -1, -1, -1, -1, -1, -1, -1, 75, -1, - -1, 120, 121, -1, -1, -1, 125, -1, 85, 86, - 87, 130, 138, 6, -1, -1, 135, -1, -1, -1, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - -1, 54, -1, 56, 57, 6, 59, 60, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 75, -1, -1, -1, -1, -1, -1, -1, - 6, 138, 85, 86, 87, -1, -1, -1, -1, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, - 54, 8, 56, 57, -1, 59, 60, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 8, 75, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 85, 86, 87, -1, 138, -1, -1, 111, 112, + 32, 33, 34, -1, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, -1, 54, -1, 56, 57, -1, + 59, 60, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 75, 104, 105, 106, + 107, -1, -1, -1, -1, -1, -1, 86, 87, 88, + -1, -1, -1, -1, 121, 122, -1, -1, -1, 126, + -1, -1, -1, -1, 131, -1, -1, 134, -1, 136, + -1, 138, 104, 105, 106, 107, 6, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 121, + 122, -1, -1, -1, 126, -1, -1, -1, -1, 131, + 139, -1, 134, -1, 136, -1, 138, 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, 5, -1, 7, -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, 36, 37, 38, 39, -1, + -1, 42, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, -1, -1, -1, -1, 104, 105, + 106, 107, 6, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 121, 122, -1, -1, -1, + 126, -1, -1, -1, -1, 131, -1, -1, -1, -1, + 136, -1, 138, 104, 105, 106, 107, 108, 109, 110, + 111, 6, -1, -1, -1, -1, -1, -1, -1, -1, + 121, 122, -1, -1, -1, 126, 127, 128, -1, -1, + 131, -1, 133, -1, 135, 136, 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, -1, -1, -1, -1, -1, 43, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, 65, 66, + 67, 68, 69, 70, -1, -1, -1, -1, -1, -1, + -1, 78, 79, -1, -1, -1, -1, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 6, -1, -1, -1, 130, -1, 104, 105, 106, + 107, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 121, 122, -1, -1, -1, 126, + 3, 4, 5, -1, 131, -1, 9, 10, 11, 136, + -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, + -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, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, 104, 105, 106, 107, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 121, 122, + -1, -1, -1, 126, -1, -1, -1, -1, 131, -1, + -1, -1, -1, 136, -1, -1, -1, -1, 104, 105, + 106, 107, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 121, 122, -1, -1, -1, + 126, -1, 12, 13, -1, 131, -1, -1, -1, -1, + 136, -1, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, -1, 56, 57, -1, 59, + 60, -1, -1, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, -1, 54, 75, 56, 57, -1, 59, + 60, 12, 13, -1, -1, -1, 86, 87, 88, -1, + -1, -1, -1, -1, -1, 75, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 86, 87, 88, -1, + -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 6, 54, -1, 56, 57, -1, 59, 60, + 12, 13, -1, -1, -1, -1, -1, -1, -1, 139, + -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, + 12, 13, 6, -1, -1, 86, 87, 88, -1, 139, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, -1, 54, 6, 56, 57, -1, 59, 60, -1, + -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, -1, 54, 75, 56, 57, 6, 59, 60, -1, + -1, -1, -1, -1, 86, 87, 88, -1, 139, -1, + -1, -1, -1, 75, -1, 6, -1, -1, -1, -1, + -1, -1, -1, -1, 86, 87, 88, -1, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 6, -1, -1, -1, 130, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 139, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 8, -1, -1, -1, 130, 139, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 8, -1, -1, -1, 129, -1, -1, -1, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 8, -1, -1, -1, 129, -1, - -1, -1, -1, -1, 138, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 8, - -1, -1, -1, 129, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, 111, 112, 113, + 123, 124, 125, 8, -1, -1, -1, 130, -1, -1, + -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 8, -1, -1, -1, + 130, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 8, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, -1, - -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, 0, 1, -1, - 129, 4, -1, -1, -1, -1, -1, -1, -1, 12, - 13, -1, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, 35, -1, -1, -1, -1, 40, 41, 138, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - -1, 54, 55, 56, 57, 58, 59, 60, -1, -1, - -1, 64, 65, 66, 67, 68, 69, 70, -1, 72, - 73, 74, 75, -1, 77, 78, -1, 4, -1, -1, - -1, 84, 85, 86, 87, 12, 13, 90, -1, 92, - -1, 94, 95, 96, 97, 98, 99, 100, 101, 102, - -1, -1, -1, -1, -1, -1, -1, -1, 35, -1, - -1, -1, -1, 40, 41, -1, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, - 57, 58, 59, 60, -1, -1, -1, 64, 65, 66, - 67, 68, 69, 70, -1, 72, 73, 74, 75, -1, - 77, 78, 12, 13, -1, -1, -1, 84, 85, 86, - 87, -1, -1, 90, -1, 92, -1, 94, 95, 96, - 97, 98, 99, 100, 101, 102, -1, -1, -1, -1, + 124, 125, 8, -1, -1, -1, 130, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 8, -1, -1, -1, 130, -1, -1, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, -1, -1, -1, -1, 130, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, -1, -1, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, 0, + 1, -1, 130, 4, -1, -1, -1, -1, -1, -1, + -1, 12, 13, -1, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, 35, -1, -1, -1, -1, 40, + 41, 139, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, + -1, -1, -1, 64, 65, 66, 67, 68, 69, 70, + -1, 72, 73, 74, 75, -1, -1, 78, 79, -1, + 4, -1, -1, -1, 85, 86, 87, 88, 12, 13, + 91, -1, 93, -1, 95, 96, 97, 98, 99, 100, + 101, 102, 103, -1, -1, -1, -1, -1, -1, -1, + -1, 35, -1, -1, -1, -1, 40, 41, -1, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, 58, 59, 60, -1, -1, -1, + 64, 65, 66, 67, 68, 69, 70, -1, 72, 73, + 74, 75, 12, 13, 78, 79, -1, -1, -1, -1, + -1, 85, 86, 87, 88, -1, -1, 91, -1, 93, + -1, 95, 96, 97, 98, 99, 100, 101, 102, 103, -1, -1, -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, -1, 54, -1, 56, 57, -1, 59, - 60, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 75, -1, -1, -1, 129, - -1, -1, -1, 133, -1, 85, 86, 87, 111, 112, + 60, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 75, -1, -1, -1, 130, + -1, -1, -1, 134, -1, -1, 86, 87, 88, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, 136, -1, 138, 111, 112, 113, 114, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, 137, -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, - -1, 136, -1, 138, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, - -1, 138, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, -1, -1, 138, 111, 112, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, 137, -1, 139, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + 137, -1, 139, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, + 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 111, 112, 113, 114, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, - -1, -1, -1, 138, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, - -1, 138, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, -1, -1, 138, 111, 112, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, + 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 111, 112, 113, 114, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, - -1, -1, -1, 138, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, - -1, 138, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, -1, -1, 138, 111, 112, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, + 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 111, 112, 113, 114, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, - -1, -1, -1, 138, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, - -1, 138, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, -1, -1, 138, 111, 112, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, + 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 111, 112, 113, 114, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, - -1, -1, -1, 138, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, - -1, 138, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, -1, -1, 138, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, -1, -1, 138, 111, 112, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, -1, -1, + 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, -1, -1, 139, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, 131, -1, - -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 123, 124, 125, -1, -1, -1, -1, 130, -1, 132, + -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, - -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, 136, 111, 112, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, - -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, 136, 111, 112, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, - -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, 136, 111, 112, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, - -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, 136, 111, 112, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, - -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, 136, 111, 112, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, 136, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, 136, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, 136, 111, 112, 113, 114, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, -1, -1, -1, + 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, -1, -1, - -1, 136, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, 136, 111, 112, + 125, -1, -1, -1, -1, 130, -1, -1, -1, -1, + -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, -1, -1, -1, 137, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - 133, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, 133, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, 133, 111, 112, 113, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, 133, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, 133, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, 133, 111, 112, 113, 114, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, 133, 111, + 125, -1, -1, -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, 133, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, 133, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, 133, 111, 112, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - 133, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, 133, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, 133, 111, 112, 113, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, 133, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, 133, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, 133, 111, 112, 113, 114, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, 133, 111, + 125, -1, -1, -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, 133, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, 133, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, 133, 111, 112, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, -1, -1, - 133, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, -1, -1, 133, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, -1, -1, 133, 111, 112, 113, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, -1, -1, 133, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - -1, -1, 133, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, -1, -1, 133, 111, 112, 113, 114, + 124, 125, -1, -1, -1, -1, 130, -1, -1, -1, + 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, -1, -1, 133, 111, + 125, -1, -1, -1, -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, -1, - -1, 133, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, -1, -1, 133, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, -1, -1, 133, 111, 112, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + -1, -1, 134, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, -1, -1, 134, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, -1, -1, 134, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, -1, -1, -1, -1, 130, -1, -1, + -1, 134, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, + 123, 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, 131, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, 131, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, 131, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, 131, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, 131, 111, 112, 113, 114, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, 131, 111, 112, 113, + 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, 131, 111, 112, + 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, + 123, 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, 131, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, 131, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, 131, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, 131, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, 131, 111, 112, 113, 114, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, 131, 111, 112, 113, + 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, 131, 111, 112, + 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, + 123, 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, 131, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, 131, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, 131, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, 131, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, 131, 111, 112, 113, 114, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, 131, 111, 112, 113, + 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, 131, 111, 112, + 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, + 123, 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, 131, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, 131, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, 131, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, 131, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129, -1, 131, 111, 112, 113, 114, + 122, 123, 124, 125, -1, -1, -1, -1, 130, -1, + 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, -1, -1, -1, -1, 130, + -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, -1, -1, -1, -1, + 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, -1, -1, -1, + -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, -1, -1, + -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, -1, + -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -1, -1, -1, -1, 129, -1, 131, 111, 112, 113, + 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, -1, -1, -1, -1, 129, -1, 131, 111, 112, + 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, + 123, 124, 125, -1, -1, -1, -1, 130, -1, 132, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, -1, -1, -1, -1, 129, -1, - 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, -1, -1, -1, -1, 129, - -1, 131, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, -1, -1, -1, -1, - 129, -1, 131, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, -1, -1, -1, - -1, 129, -1, 131, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, -1, -1, - -1, -1, 129, -1, 131, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, -1, - -1, -1, -1, 129 + 122, 123, 124, 125, -1, -1, -1, -1, 130 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" @@ -4883,12 +4947,11 @@ case 159: case 160: #line 2180 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 161: -#line 2185 "Gmsh.y" +#line 2184 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, yyvsp[-3].l, @@ -4898,14 +4961,13 @@ case 161: ; break;} case 162: -#line 2193 "Gmsh.y" +#line 2192 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 163: -#line 2198 "Gmsh.y" +#line 2196 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, yyvsp[-3].l, @@ -4915,14 +4977,13 @@ case 163: ; break;} case 164: -#line 2206 "Gmsh.y" +#line 2204 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 165: -#line 2211 "Gmsh.y" +#line 2208 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-3].l, @@ -4932,14 +4993,13 @@ case 165: ; break;} case 166: -#line 2219 "Gmsh.y" +#line 2216 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} case 167: -#line 2224 "Gmsh.y" +#line 2220 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(BOUNDARY_LAYER, yyvsp[-3].l, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., @@ -4948,7 +5008,25 @@ case 167: ; break;} case 168: -#line 2233 "Gmsh.y" +#line 2227 "Gmsh.y" +{ + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; + ; + break;} +case 169: +#line 2231 "Gmsh.y" +{ + yyval.l = List_Create(2, 1, sizeof(Shape)); + extr.mesh.ViewIndex = yyvsp[-6].d; + ExtrudeShapes(BOUNDARY_LAYER, yyvsp[-3].l, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., + &extr, yyval.l); + extr.mesh.ViewIndex = -1; + Free(yyvsp[-8].c); + List_Delete(yyvsp[-3].l); + ; + break;} +case 170: +#line 2243 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-4].d, @@ -4956,8 +5034,8 @@ case 168: NULL, yyval.l); ; break;} -case 169: -#line 2240 "Gmsh.y" +case 171: +#line 2250 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-4].d, @@ -4965,8 +5043,8 @@ case 169: NULL, yyval.l); ; break;} -case 170: -#line 2247 "Gmsh.y" +case 172: +#line 2257 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-4].d, @@ -4974,8 +5052,8 @@ case 170: NULL, yyval.l); ; break;} -case 171: -#line 2254 "Gmsh.y" +case 173: +#line 2264 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-8].d, @@ -4983,8 +5061,8 @@ case 171: NULL, yyval.l); ; break;} -case 172: -#line 2261 "Gmsh.y" +case 174: +#line 2271 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -4992,8 +5070,8 @@ case 172: NULL, yyval.l); ; break;} -case 173: -#line 2268 "Gmsh.y" +case 175: +#line 2278 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -5001,8 +5079,8 @@ case 173: NULL, yyval.l); ; break;} -case 174: -#line 2275 "Gmsh.y" +case 176: +#line 2285 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-10].d, @@ -5010,8 +5088,8 @@ case 174: NULL, yyval.l); ; break;} -case 175: -#line 2282 "Gmsh.y" +case 177: +#line 2292 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-10].d, @@ -5019,8 +5097,8 @@ case 175: NULL, yyval.l); ; break;} -case 176: -#line 2289 "Gmsh.y" +case 178: +#line 2299 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-10].d, @@ -5028,15 +5106,14 @@ case 176: NULL, yyval.l); ; break;} -case 177: -#line 2296 "Gmsh.y" +case 179: +#line 2306 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} -case 178: -#line 2301 "Gmsh.y" +case 180: +#line 2310 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-8].d, @@ -5044,15 +5121,14 @@ case 178: &extr, yyval.l); ; break;} -case 179: -#line 2308 "Gmsh.y" +case 181: +#line 2317 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} -case 180: -#line 2313 "Gmsh.y" +case 182: +#line 2321 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -5060,15 +5136,14 @@ case 180: &extr, yyval.l); ; break;} -case 181: -#line 2320 "Gmsh.y" +case 183: +#line 2328 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} -case 182: -#line 2325 "Gmsh.y" +case 184: +#line 2332 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -5076,15 +5151,14 @@ case 182: &extr, yyval.l); ; break;} -case 183: -#line 2332 "Gmsh.y" +case 185: +#line 2339 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} -case 184: -#line 2337 "Gmsh.y" +case 186: +#line 2343 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-12].d, @@ -5092,15 +5166,14 @@ case 184: &extr, yyval.l); ; break;} -case 185: -#line 2344 "Gmsh.y" +case 187: +#line 2350 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} -case 186: -#line 2349 "Gmsh.y" +case 188: +#line 2354 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-12].d, @@ -5108,15 +5181,14 @@ case 186: &extr, yyval.l); ; break;} -case 187: -#line 2356 "Gmsh.y" +case 189: +#line 2361 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} -case 188: -#line 2361 "Gmsh.y" +case 190: +#line 2365 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-12].d, @@ -5124,15 +5196,14 @@ case 188: &extr, yyval.l); ; break;} -case 189: -#line 2368 "Gmsh.y" +case 191: +#line 2372 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} -case 190: -#line 2373 "Gmsh.y" +case 192: +#line 2376 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-14].d, @@ -5140,15 +5211,14 @@ case 190: &extr, yyval.l); ; break;} -case 191: -#line 2380 "Gmsh.y" +case 193: +#line 2383 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} -case 192: -#line 2385 "Gmsh.y" +case 194: +#line 2387 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-14].d, @@ -5156,15 +5226,14 @@ case 192: &extr, yyval.l); ; break;} -case 193: -#line 2392 "Gmsh.y" +case 195: +#line 2394 "Gmsh.y" { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; ; break;} -case 194: -#line 2397 "Gmsh.y" +case 196: +#line 2398 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-14].d, @@ -5172,18 +5241,18 @@ case 194: &extr, yyval.l); ; break;} -case 195: -#line 2408 "Gmsh.y" +case 197: +#line 2409 "Gmsh.y" { ; break;} -case 196: -#line 2411 "Gmsh.y" +case 198: +#line 2412 "Gmsh.y" { ; break;} -case 197: -#line 2417 "Gmsh.y" +case 199: +#line 2418 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -5193,8 +5262,8 @@ case 197: extr.mesh.hLayer.push_back(1.); ; break;} -case 198: -#line 2426 "Gmsh.y" +case 200: +#line 2427 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -5217,8 +5286,8 @@ case 198: List_Delete(yyvsp[-2].l); ; break;} -case 199: -#line 2448 "Gmsh.y" +case 201: +#line 2449 "Gmsh.y" { yymsg(WARNING, "Explicit region numbers in layers are deprecated"); double d; @@ -5243,14 +5312,35 @@ case 199: List_Delete(yyvsp[-2].l); ; break;} -case 200: -#line 2472 "Gmsh.y" +case 202: +#line 2473 "Gmsh.y" { extr.mesh.Recombine = true; ; break;} -case 201: -#line 2481 "Gmsh.y" +case 203: +#line 2477 "Gmsh.y" +{ + int num = (int)yyvsp[-8].d; + if(FindSurface(num)){ + yymsg(GERROR, "Surface %d already exists", num); + } + else{ + Surface *s = Create_Surface(num, MSH_SURF_DISCRETE); + Tree_Add(THEM->Surfaces, &s); + extr.mesh.Holes[num].first = yyvsp[-1].d; + extr.mesh.Holes[num].second.clear(); + for(int i = 0; i < List_Nbr(yyvsp[-4].l); i++){ + double d; + List_Read(yyvsp[-4].l, i, &d); + extr.mesh.Holes[num].second.push_back((int)d); + } + } + List_Delete(yyvsp[-4].l); + ; + break;} +case 204: +#line 2501 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5269,8 +5359,8 @@ case 201: List_Delete(yyvsp[-3].l); ; break;} -case 202: -#line 2499 "Gmsh.y" +case 205: +#line 2519 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5289,8 +5379,8 @@ case 202: List_Delete(yyvsp[-6].l); ; break;} -case 203: -#line 2517 "Gmsh.y" +case 206: +#line 2537 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5309,8 +5399,8 @@ case 203: List_Delete(yyvsp[-6].l); ; break;} -case 204: -#line 2535 "Gmsh.y" +case 207: +#line 2555 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d); if(!s) @@ -5340,8 +5430,8 @@ case 204: List_Delete(yyvsp[-1].l); ; break;} -case 205: -#line 2564 "Gmsh.y" +case 208: +#line 2584 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-5].d); if(!s) @@ -5377,15 +5467,15 @@ case 205: Free(yyvsp[-1].c); ; break;} -case 206: -#line 2599 "Gmsh.y" +case 209: +#line 2619 "Gmsh.y" { yymsg(WARNING, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete(yyvsp[-1].l); ; break;} -case 207: -#line 2604 "Gmsh.y" +case 210: +#line 2624 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d); if(!v) @@ -5413,8 +5503,8 @@ case 207: List_Delete(yyvsp[-1].l); ; break;} -case 208: -#line 2631 "Gmsh.y" +case 211: +#line 2651 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5429,8 +5519,8 @@ case 208: List_Delete(yyvsp[-3].l); ; break;} -case 209: -#line 2645 "Gmsh.y" +case 212: +#line 2665 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ double d; @@ -5444,72 +5534,72 @@ case 209: List_Delete(yyvsp[-1].l); ; break;} -case 210: -#line 2664 "Gmsh.y" +case 213: +#line 2684 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-2].d); if(s) setSurfaceEmbeddedPoints(s, yyvsp[-7].l); ; break;} -case 211: -#line 2670 "Gmsh.y" +case 214: +#line 2690 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-2].d); if(s) setSurfaceEmbeddedCurves(s, yyvsp[-7].l); ; break;} -case 212: -#line 2676 "Gmsh.y" +case 215: +#line 2696 "Gmsh.y" { ; break;} -case 213: -#line 2679 "Gmsh.y" +case 216: +#line 2699 "Gmsh.y" { ; break;} -case 214: -#line 2688 "Gmsh.y" +case 217: +#line 2708 "Gmsh.y" { ReplaceAllDuplicates(); ; break;} -case 215: -#line 2697 "Gmsh.y" +case 218: +#line 2717 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 216: -#line 2698 "Gmsh.y" +case 219: +#line 2718 "Gmsh.y" { yyval.d = yyvsp[-1].d; ; break;} -case 217: -#line 2699 "Gmsh.y" +case 220: +#line 2719 "Gmsh.y" { yyval.d = -yyvsp[0].d; ; break;} -case 218: -#line 2700 "Gmsh.y" +case 221: +#line 2720 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 219: -#line 2701 "Gmsh.y" +case 222: +#line 2721 "Gmsh.y" { yyval.d = !yyvsp[0].d; ; break;} -case 220: -#line 2702 "Gmsh.y" +case 223: +#line 2722 "Gmsh.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d; ; break;} -case 221: -#line 2703 "Gmsh.y" +case 224: +#line 2723 "Gmsh.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d; ; break;} -case 222: -#line 2704 "Gmsh.y" +case 225: +#line 2724 "Gmsh.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d; ; break;} -case 223: -#line 2706 "Gmsh.y" +case 226: +#line 2726 "Gmsh.y" { if(!yyvsp[0].d) yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d); @@ -5517,248 +5607,248 @@ case 223: yyval.d = yyvsp[-2].d / yyvsp[0].d; ; break;} -case 224: -#line 2712 "Gmsh.y" +case 227: +#line 2732 "Gmsh.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d; ; break;} -case 225: -#line 2713 "Gmsh.y" +case 228: +#line 2733 "Gmsh.y" { yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ; break;} -case 226: -#line 2714 "Gmsh.y" +case 229: +#line 2734 "Gmsh.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d; ; break;} -case 227: -#line 2715 "Gmsh.y" +case 230: +#line 2735 "Gmsh.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d; ; break;} -case 228: -#line 2716 "Gmsh.y" +case 231: +#line 2736 "Gmsh.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d; ; break;} -case 229: -#line 2717 "Gmsh.y" +case 232: +#line 2737 "Gmsh.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d; ; break;} -case 230: -#line 2718 "Gmsh.y" +case 233: +#line 2738 "Gmsh.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d; ; break;} -case 231: -#line 2719 "Gmsh.y" -{ yyval.d = yyvsp[-2].d != yyvsp[0].d; ; +case 234: +#line 2739 "Gmsh.y" +{ yyval.d = yyvsp[-2].d != yyvsp[0].d; ; break;} -case 232: -#line 2720 "Gmsh.y" +case 235: +#line 2740 "Gmsh.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d; ; break;} -case 233: -#line 2721 "Gmsh.y" +case 236: +#line 2741 "Gmsh.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d; ; break;} -case 234: -#line 2722 "Gmsh.y" +case 237: +#line 2742 "Gmsh.y" { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d; ; break;} -case 235: -#line 2723 "Gmsh.y" +case 238: +#line 2743 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} -case 236: -#line 2724 "Gmsh.y" +case 239: +#line 2744 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} -case 237: -#line 2725 "Gmsh.y" +case 240: +#line 2745 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} -case 238: -#line 2726 "Gmsh.y" +case 241: +#line 2746 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} -case 239: -#line 2727 "Gmsh.y" +case 242: +#line 2747 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} -case 240: -#line 2728 "Gmsh.y" +case 243: +#line 2748 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} -case 241: -#line 2729 "Gmsh.y" +case 244: +#line 2749 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} -case 242: -#line 2730 "Gmsh.y" +case 245: +#line 2750 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} -case 243: -#line 2731 "Gmsh.y" +case 246: +#line 2751 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} -case 244: -#line 2732 "Gmsh.y" +case 247: +#line 2752 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} -case 245: -#line 2733 "Gmsh.y" +case 248: +#line 2753 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} -case 246: -#line 2734 "Gmsh.y" +case 249: +#line 2754 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} -case 247: -#line 2735 "Gmsh.y" +case 250: +#line 2755 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} -case 248: -#line 2736 "Gmsh.y" +case 251: +#line 2756 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} -case 249: -#line 2737 "Gmsh.y" +case 252: +#line 2757 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} -case 250: -#line 2738 "Gmsh.y" +case 253: +#line 2758 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} -case 251: -#line 2739 "Gmsh.y" +case 254: +#line 2759 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} -case 252: -#line 2740 "Gmsh.y" +case 255: +#line 2760 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 253: -#line 2741 "Gmsh.y" +case 256: +#line 2761 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 254: -#line 2742 "Gmsh.y" +case 257: +#line 2762 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} -case 255: -#line 2743 "Gmsh.y" +case 258: +#line 2763 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} -case 256: -#line 2745 "Gmsh.y" +case 259: +#line 2765 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} -case 257: -#line 2746 "Gmsh.y" +case 260: +#line 2766 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} -case 258: -#line 2747 "Gmsh.y" +case 261: +#line 2767 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} -case 259: -#line 2748 "Gmsh.y" +case 262: +#line 2768 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} -case 260: -#line 2749 "Gmsh.y" +case 263: +#line 2769 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} -case 261: -#line 2750 "Gmsh.y" +case 264: +#line 2770 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} -case 262: -#line 2751 "Gmsh.y" +case 265: +#line 2771 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} -case 263: -#line 2752 "Gmsh.y" +case 266: +#line 2772 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} -case 264: -#line 2753 "Gmsh.y" +case 267: +#line 2773 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} -case 265: -#line 2754 "Gmsh.y" +case 268: +#line 2774 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} -case 266: -#line 2755 "Gmsh.y" +case 269: +#line 2775 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} -case 267: -#line 2756 "Gmsh.y" +case 270: +#line 2776 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} -case 268: -#line 2757 "Gmsh.y" +case 271: +#line 2777 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} -case 269: -#line 2758 "Gmsh.y" +case 272: +#line 2778 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} -case 270: -#line 2759 "Gmsh.y" +case 273: +#line 2779 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} -case 271: -#line 2760 "Gmsh.y" +case 274: +#line 2780 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} -case 272: -#line 2761 "Gmsh.y" +case 275: +#line 2781 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} -case 273: -#line 2762 "Gmsh.y" +case 276: +#line 2782 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 274: -#line 2763 "Gmsh.y" +case 277: +#line 2783 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 275: -#line 2764 "Gmsh.y" +case 278: +#line 2784 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} -case 276: -#line 2765 "Gmsh.y" +case 279: +#line 2785 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} -case 277: -#line 2774 "Gmsh.y" +case 280: +#line 2794 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 278: -#line 2775 "Gmsh.y" +case 281: +#line 2795 "Gmsh.y" { yyval.d = 3.141592653589793; ; break;} -case 279: -#line 2776 "Gmsh.y" +case 282: +#line 2796 "Gmsh.y" { yyval.d = ParUtil::Instance()->rank(); ; break;} -case 280: -#line 2777 "Gmsh.y" +case 283: +#line 2797 "Gmsh.y" { yyval.d = ParUtil::Instance()->size(); ; break;} -case 281: -#line 2778 "Gmsh.y" +case 284: +#line 2798 "Gmsh.y" { yyval.d = Get_GmshMajorVersion(); ; break;} -case 282: -#line 2779 "Gmsh.y" +case 285: +#line 2799 "Gmsh.y" { yyval.d = Get_GmshMinorVersion(); ; break;} -case 283: -#line 2780 "Gmsh.y" +case 286: +#line 2800 "Gmsh.y" { yyval.d = Get_GmshPatchVersion(); ; break;} -case 284: -#line 2785 "Gmsh.y" +case 287: +#line 2805 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[0].c; @@ -5772,8 +5862,8 @@ case 284: Free(yyvsp[0].c); ; break;} -case 285: -#line 2801 "Gmsh.y" +case 288: +#line 2821 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", yyvsp[-4].c, (int)yyvsp[-1].d) ; @@ -5789,8 +5879,8 @@ case 285: Free(yyvsp[-4].c); ; break;} -case 286: -#line 2816 "Gmsh.y" +case 289: +#line 2836 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-3].c; @@ -5811,8 +5901,8 @@ case 286: Free(yyvsp[-3].c); ; break;} -case 287: -#line 2836 "Gmsh.y" +case 290: +#line 2856 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-2].c; @@ -5827,8 +5917,8 @@ case 287: Free(yyvsp[-2].c); ; break;} -case 288: -#line 2850 "Gmsh.y" +case 291: +#line 2870 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-1].c; @@ -5842,8 +5932,8 @@ case 288: Free(yyvsp[-1].c); ; break;} -case 289: -#line 2863 "Gmsh.y" +case 292: +#line 2883 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-4].c; @@ -5864,8 +5954,8 @@ case 289: Free(yyvsp[-4].c); ; break;} -case 290: -#line 2886 "Gmsh.y" +case 293: +#line 2906 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5884,8 +5974,8 @@ case 290: Free(yyvsp[-2].c); Free(yyvsp[0].c); ; break;} -case 291: -#line 2904 "Gmsh.y" +case 294: +#line 2924 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5904,8 +5994,8 @@ case 291: Free(yyvsp[-5].c); Free(yyvsp[0].c); ; break;} -case 292: -#line 2922 "Gmsh.y" +case 295: +#line 2942 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5924,8 +6014,8 @@ case 292: Free(yyvsp[-3].c); Free(yyvsp[-1].c); ; break;} -case 293: -#line 2940 "Gmsh.y" +case 296: +#line 2960 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5944,127 +6034,156 @@ case 293: Free(yyvsp[-6].c); Free(yyvsp[-1].c); ; break;} -case 294: -#line 2958 "Gmsh.y" +case 297: +#line 2978 "Gmsh.y" { yyval.d = GetValue(yyvsp[-3].c, yyvsp[-1].d); Free(yyvsp[-3].c); ; break;} -case 295: -#line 2966 "Gmsh.y" +case 298: +#line 2986 "Gmsh.y" { memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)); ; break;} -case 296: -#line 2970 "Gmsh.y" +case 299: +#line 2990 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i]; ; break;} -case 297: -#line 2974 "Gmsh.y" +case 300: +#line 2994 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} -case 298: -#line 2978 "Gmsh.y" +case 301: +#line 2998 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i]; ; break;} -case 299: -#line 2982 "Gmsh.y" +case 302: +#line 3002 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i]; ; break;} -case 300: -#line 2989 "Gmsh.y" +case 303: +#line 3009 "Gmsh.y" { yyval.v[0] = yyvsp[-9].d; yyval.v[1] = yyvsp[-7].d; yyval.v[2] = yyvsp[-5].d; yyval.v[3] = yyvsp[-3].d; yyval.v[4] = yyvsp[-1].d; ; break;} -case 301: -#line 2993 "Gmsh.y" +case 304: +#line 3013 "Gmsh.y" { yyval.v[0] = yyvsp[-7].d; yyval.v[1] = yyvsp[-5].d; yyval.v[2] = yyvsp[-3].d; yyval.v[3] = yyvsp[-1].d; yyval.v[4] = 1.0; ; break;} -case 302: -#line 2997 "Gmsh.y" +case 305: +#line 3017 "Gmsh.y" { yyval.v[0] = yyvsp[-5].d; yyval.v[1] = yyvsp[-3].d; yyval.v[2] = yyvsp[-1].d; yyval.v[3] = 0.0; yyval.v[4] = 1.0; ; break;} -case 303: -#line 3001 "Gmsh.y" +case 306: +#line 3021 "Gmsh.y" { yyval.v[0] = yyvsp[-5].d; yyval.v[1] = yyvsp[-3].d; yyval.v[2] = yyvsp[-1].d; yyval.v[3] = 0.0; yyval.v[4] = 1.0; ; break;} -case 304: -#line 3008 "Gmsh.y" +case 307: +#line 3028 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(List_T*)); List_Add(yyval.l, &(yyvsp[0].l)); ; break;} -case 305: -#line 3013 "Gmsh.y" +case 308: +#line 3033 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].l)); ; break;} -case 306: -#line 3021 "Gmsh.y" +case 309: +#line 3041 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 307: -#line 3026 "Gmsh.y" +case 310: +#line 3046 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 308: -#line 3030 "Gmsh.y" +case 311: +#line 3050 "Gmsh.y" { // creates an empty list yyval.l = List_Create(2, 1, sizeof(double)); ; break;} -case 309: -#line 3035 "Gmsh.y" +case 312: +#line 3055 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 310: -#line 3039 "Gmsh.y" +case 313: +#line 3059 "Gmsh.y" { yyval.l = yyvsp[-1].l; - double *pd; for(int i = 0; i < List_Nbr(yyval.l); i++){ - pd = (double*)List_Pointer(yyval.l, i); + double *pd = (double*)List_Pointer(yyval.l, i); (*pd) = - (*pd); } ; break;} -case 311: -#line 3051 "Gmsh.y" +case 314: +#line 3067 "Gmsh.y" +{ + yyval.l = yyvsp[-1].l; + for(int i = 0; i < List_Nbr(yyval.l); i++){ + double *pd = (double*)List_Pointer(yyval.l, i); + (*pd) *= yyvsp[-4].d; + } + ; + break;} +case 315: +#line 3078 "Gmsh.y" +{ + yyval.l = yyvsp[0].l; + for(int i = 0; i < List_Nbr(yyval.l); i++){ + double *pd = (double*)List_Pointer(yyval.l, i); + (*pd) = - (*pd); + } + ; + break;} +case 316: +#line 3086 "Gmsh.y" +{ + yyval.l = yyvsp[0].l; + for(int i = 0; i < List_Nbr(yyval.l); i++){ + double *pd = (double*)List_Pointer(yyval.l, i); + (*pd) *= yyvsp[-2].d; + } + ; + break;} +case 317: +#line 3094 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); for(double d = yyvsp[-2].d; (yyvsp[-2].d < yyvsp[0].d) ? (d <= yyvsp[0].d) : (d >= yyvsp[0].d); (yyvsp[-2].d < yyvsp[0].d) ? (d += 1.) : (d -= 1.)) List_Add(yyval.l, &d); ; break;} -case 312: -#line 3057 "Gmsh.y" +case 318: +#line 3100 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); if(!yyvsp[0].d || (yyvsp[-4].d < yyvsp[-2].d && yyvsp[0].d < 0) || (yyvsp[-4].d > yyvsp[-2].d && yyvsp[0].d > 0)){ @@ -6076,8 +6195,8 @@ case 312: List_Add(yyval.l, &d); ; break;} -case 313: -#line 3068 "Gmsh.y" +case 319: +#line 3111 "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 @@ -6098,8 +6217,8 @@ case 313: } ; break;} -case 314: -#line 3088 "Gmsh.y" +case 320: +#line 3131 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6110,8 +6229,8 @@ case 314: List_Delete(yyvsp[0].l); ; break;} -case 315: -#line 3098 "Gmsh.y" +case 321: +#line 3141 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6122,8 +6241,8 @@ case 315: List_Delete(yyvsp[0].l); ; break;} -case 316: -#line 3108 "Gmsh.y" +case 322: +#line 3151 "Gmsh.y" { yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)); for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ @@ -6134,8 +6253,8 @@ case 316: List_Delete(yyvsp[0].l); ; break;} -case 317: -#line 3118 "Gmsh.y" +case 323: +#line 3161 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6153,29 +6272,8 @@ case 317: Free(yyvsp[-2].c); ; break;} -case 318: -#line 3135 "Gmsh.y" -{ - yyval.l = List_Create(2, 1, sizeof(double)); - Symbol TheSymbol; - TheSymbol.Name = yyvsp[-2].c; - Symbol *pSymbol; - if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) { - yymsg(GERROR, "Unknown variable '%s'", yyvsp[-2].c); - double d = 0.0; - List_Add(yyval.l, &d); - } - else{ - for(int i = 0; i < List_Nbr(pSymbol->val); i++){ - double d = - *(double*)List_Pointer_Fast(pSymbol->val, i); - List_Add(yyval.l, &d); - } - } - Free(yyvsp[-2].c); - ; - break;} -case 319: -#line 3154 "Gmsh.y" +case 324: +#line 3178 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6200,55 +6298,27 @@ case 319: List_Delete(yyvsp[-2].l); ; break;} -case 320: -#line 3178 "Gmsh.y" -{ - yyval.l = List_Create(2, 1, sizeof(double)); - Symbol TheSymbol; - TheSymbol.Name = yyvsp[-5].c; - Symbol *pSymbol; - if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) { - yymsg(GERROR, "Unknown variable '%s'", yyvsp[-5].c); - double d = 0.0; - List_Add(yyval.l, &d); - } - else{ - for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ - int j = (int)(*(double*)List_Pointer_Fast(yyvsp[-2].l, i)); - double *pd; - if((pd = (double*)List_Pointer_Test(pSymbol->val, j))){ - double d = - *pd; - List_Add(yyval.l, &d); - } - else - yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-5].c, j); - } - } - Free(yyvsp[-5].c); - List_Delete(yyvsp[-2].l); - ; - break;} -case 321: -#line 3207 "Gmsh.y" +case 325: +#line 3205 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 322: -#line 3212 "Gmsh.y" +case 326: +#line 3210 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 323: -#line 3216 "Gmsh.y" +case 327: +#line 3214 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 324: -#line 3220 "Gmsh.y" +case 328: +#line 3218 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ double d; @@ -6258,20 +6328,20 @@ case 324: List_Delete(yyvsp[0].l); ; break;} -case 325: -#line 3233 "Gmsh.y" +case 329: +#line 3231 "Gmsh.y" { yyval.u = CTX.PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d); ; break;} -case 326: -#line 3237 "Gmsh.y" +case 330: +#line 3235 "Gmsh.y" { yyval.u = CTX.PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} -case 327: -#line 3249 "Gmsh.y" +case 331: +#line 3247 "Gmsh.y" { int flag; yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); @@ -6279,8 +6349,8 @@ case 327: Free(yyvsp[0].c); ; break;} -case 328: -#line 3256 "Gmsh.y" +case 332: +#line 3254 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -6300,14 +6370,14 @@ case 328: Free(yyvsp[-4].c); Free(yyvsp[0].c); ; break;} -case 329: -#line 3278 "Gmsh.y" +case 333: +#line 3276 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 330: -#line 3282 "Gmsh.y" +case 334: +#line 3280 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d); @@ -6320,27 +6390,27 @@ case 330: Free(yyvsp[-5].c); ; break;} -case 331: -#line 3297 "Gmsh.y" +case 335: +#line 3295 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); List_Add(yyval.l, &(yyvsp[0].u)); ; break;} -case 332: -#line 3302 "Gmsh.y" +case 336: +#line 3300 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].u)); ; break;} -case 333: -#line 3309 "Gmsh.y" +case 337: +#line 3307 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} -case 334: -#line 3313 "Gmsh.y" +case 338: +#line 3311 "Gmsh.y" { yyval.c = (char *)Malloc(32*sizeof(char)); time_t now; @@ -6349,8 +6419,8 @@ case 334: yyval.c[strlen(yyval.c) - 1] = '\0'; ; break;} -case 335: -#line 3321 "Gmsh.y" +case 339: +#line 3319 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)); strcpy(yyval.c, yyvsp[-3].c); @@ -6359,8 +6429,8 @@ case 335: Free(yyvsp[-1].c); ; break;} -case 336: -#line 3329 "Gmsh.y" +case 340: +#line 3327 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6375,8 +6445,8 @@ case 336: Free(yyvsp[-1].c); ; break;} -case 337: -#line 3343 "Gmsh.y" +case 341: +#line 3341 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6391,14 +6461,14 @@ case 337: Free(yyvsp[-1].c); ; break;} -case 338: -#line 3357 "Gmsh.y" +case 342: +#line 3355 "Gmsh.y" { yyval.c = yyvsp[-1].c; ; break;} -case 339: -#line 3361 "Gmsh.y" +case 343: +#line 3359 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring); @@ -6418,8 +6488,8 @@ case 339: List_Delete(yyvsp[-1].l); ; break;} -case 340: -#line 3380 "Gmsh.y" +case 344: +#line 3378 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -6442,8 +6512,8 @@ case 340: } ; break;} -case 341: -#line 3402 "Gmsh.y" +case 345: +#line 3400 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -6688,7 +6758,7 @@ yyerrhandle: } return 1; } -#line 3425 "Gmsh.y" +#line 3423 "Gmsh.y" void DeleteSymbol(void *a, void *b){ diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index 584194736cbc5db3930a50e5ccef20a72d9d905e..f4cbe407b7a0c6ba964b12bf38509d8bb1571964 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -81,49 +81,50 @@ typedef union { #define tCoherence 328 #define tAttractor 329 #define tLayers 330 -#define tAlias 331 -#define tAliasWithOptions 332 -#define tText2D 333 -#define tText3D 334 -#define tInterpolationScheme 335 -#define tTime 336 -#define tGrain 337 -#define tCombine 338 -#define tBSpline 339 -#define tBezier 340 -#define tNurbs 341 -#define tOrder 342 -#define tKnots 343 -#define tColor 344 -#define tColorTable 345 -#define tFor 346 -#define tIn 347 -#define tEndFor 348 -#define tIf 349 -#define tEndIf 350 -#define tExit 351 -#define tReturn 352 -#define tCall 353 -#define tFunction 354 -#define tShow 355 -#define tHide 356 -#define tGetValue 357 -#define tGMSH_MAJOR_VERSION 358 -#define tGMSH_MINOR_VERSION 359 -#define tGMSH_PATCH_VERSION 360 -#define tAFFECTPLUS 361 -#define tAFFECTMINUS 362 -#define tAFFECTTIMES 363 -#define tAFFECTDIVIDE 364 -#define tOR 365 -#define tAND 366 -#define tEQUAL 367 -#define tNOTEQUAL 368 -#define tLESSOREQUAL 369 -#define tGREATEROREQUAL 370 -#define tPLUSPLUS 371 -#define tMINUSMINUS 372 -#define UNARYPREC 373 +#define tHole 331 +#define tAlias 332 +#define tAliasWithOptions 333 +#define tText2D 334 +#define tText3D 335 +#define tInterpolationScheme 336 +#define tTime 337 +#define tGrain 338 +#define tCombine 339 +#define tBSpline 340 +#define tBezier 341 +#define tNurbs 342 +#define tOrder 343 +#define tKnots 344 +#define tColor 345 +#define tColorTable 346 +#define tFor 347 +#define tIn 348 +#define tEndFor 349 +#define tIf 350 +#define tEndIf 351 +#define tExit 352 +#define tReturn 353 +#define tCall 354 +#define tFunction 355 +#define tShow 356 +#define tHide 357 +#define tGetValue 358 +#define tGMSH_MAJOR_VERSION 359 +#define tGMSH_MINOR_VERSION 360 +#define tGMSH_PATCH_VERSION 361 +#define tAFFECTPLUS 362 +#define tAFFECTMINUS 363 +#define tAFFECTTIMES 364 +#define tAFFECTDIVIDE 365 +#define tOR 366 +#define tAND 367 +#define tEQUAL 368 +#define tNOTEQUAL 369 +#define tLESSOREQUAL 370 +#define tGREATEROREQUAL 371 +#define tPLUSPLUS 372 +#define tMINUSMINUS 373 +#define UNARYPREC 374 extern YYSTYPE yylval; diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index bc7818295d80ab8c45070aa6fe26d02aee694da4..c26fa2d507caec9c802ab6b1cc4056446bc985bd 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.y,v 1.265 2007-03-02 09:20:21 remacle Exp $ +// $Id: Gmsh.y,v 1.266 2007-03-05 09:30:57 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -97,10 +97,10 @@ int CheckViewErrorFlags(Post_View *v); %token tPoint tCircle tEllipse tLine tSphere tPolarSphere tSurface tSpline tVolume %token tCharacteristic tLength tParametric tElliptic %token tPlane tRuled tTransfinite tComplex tPhysical -%token tUsing tBump tProgression tPlugin +%token tUsing tBump tProgression tPlugin %token tRotate tTranslate tSymmetry tDilate tExtrude tDuplicata %token tLoop tRecombine tDelete tCoherence -%token tAttractor tLayers tAlias tAliasWithOptions +%token tAttractor tLayers tHole tAlias tAliasWithOptions %token tText2D tText3D tInterpolationScheme tTime tGrain tCombine %token tBSpline tBezier tNurbs tOrder tKnots %token tColor tColorTable tFor tIn tEndFor tIf tEndIf tExit @@ -2178,8 +2178,7 @@ Extrude : } | tExtrude VExpr '{' ListOfShapes { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } ExtrudeParameters '}' { @@ -2191,8 +2190,7 @@ Extrude : } | tExtrude '{' VExpr ',' VExpr ',' FExpr '}' '{' ListOfShapes { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } ExtrudeParameters '}' { @@ -2204,8 +2202,7 @@ Extrude : } | tExtrude '{' VExpr ',' VExpr ',' VExpr ',' FExpr '}' '{' ListOfShapes { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } ExtrudeParameters '}' { @@ -2217,8 +2214,7 @@ Extrude : } | tExtrude '{' ListOfShapes { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } ExtrudeParameters '}' { @@ -2227,6 +2223,20 @@ Extrude : &extr, $$); List_Delete($3); } + | tExtrude tSTRING '[' FExpr ']' '{' ListOfShapes + { + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; + } + ExtrudeParameters '}' + { + $$ = List_Create(2, 1, sizeof(Shape)); + extr.mesh.ViewIndex = $4; + ExtrudeShapes(BOUNDARY_LAYER, $7, 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., + &extr, $$); + extr.mesh.ViewIndex = -1; + Free($2); + List_Delete($7); + } // Deprecated extrude commands (for backward compatibility) | tExtrude tPoint '{' FExpr ',' VExpr '}' tEND @@ -2294,8 +2304,7 @@ Extrude : } | tExtrude tPoint '{' FExpr ',' VExpr '}' { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } '{' ExtrudeParameters '}' tEND { @@ -2306,8 +2315,7 @@ Extrude : } | tExtrude tLine '{' FExpr ',' VExpr '}' { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } '{' ExtrudeParameters '}' tEND { @@ -2318,8 +2326,7 @@ Extrude : } | tExtrude tSurface '{' FExpr ',' VExpr '}' { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } '{' ExtrudeParameters '}' tEND { @@ -2330,8 +2337,7 @@ Extrude : } | tExtrude tPoint '{' FExpr ',' VExpr ',' VExpr ',' FExpr '}' { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } '{' ExtrudeParameters '}' tEND { @@ -2342,8 +2348,7 @@ Extrude : } | tExtrude tLine '{' FExpr ',' VExpr ',' VExpr ',' FExpr '}' { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } '{' ExtrudeParameters '}' tEND { @@ -2354,8 +2359,7 @@ Extrude : } | tExtrude tSurface '{' FExpr ',' VExpr ',' VExpr ',' FExpr '}' { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } '{' ExtrudeParameters '}' tEND { @@ -2366,8 +2370,7 @@ Extrude : } | tExtrude tPoint '{' FExpr ',' VExpr ',' VExpr ',' VExpr ',' FExpr'}' { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } '{' ExtrudeParameters '}' tEND { @@ -2378,8 +2381,7 @@ Extrude : } | tExtrude tLine '{' FExpr ',' VExpr ',' VExpr ',' VExpr ',' FExpr '}' { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } '{' ExtrudeParameters '}' tEND { @@ -2390,8 +2392,7 @@ Extrude : } | tExtrude tSurface '{' FExpr ',' VExpr ',' VExpr ',' VExpr ',' FExpr '}' { - extr.mesh.ExtrudeMesh = false; - extr.mesh.Recombine = false; + extr.mesh.ExtrudeMesh = extr.mesh.Recombine = false; } '{' ExtrudeParameters '}' tEND { @@ -2472,6 +2473,25 @@ ExtrudeParameter : { extr.mesh.Recombine = true; } + | tHole '(' FExpr ')' tAFFECT '{' ListOfDouble '}' tUsing FExpr tEND + { + int num = (int)$3; + if(FindSurface(num)){ + yymsg(GERROR, "Surface %d already exists", num); + } + else{ + Surface *s = Create_Surface(num, MSH_SURF_DISCRETE); + Tree_Add(THEM->Surfaces, &s); + extr.mesh.Holes[num].first = $10; + extr.mesh.Holes[num].second.clear(); + for(int i = 0; i < List_Nbr($7); i++){ + double d; + List_Read($7, i, &d); + extr.mesh.Holes[num].second.push_back((int)d); + } + } + List_Delete($7); + } ; // T R A N S F I N I T E @@ -3038,16 +3058,39 @@ ListOfDouble : | '-' '{' RecursiveListOfDouble '}' { $$ = $3; - double *pd; for(int i = 0; i < List_Nbr($$); i++){ - pd = (double*)List_Pointer($$, i); + double *pd = (double*)List_Pointer($$, i); (*pd) = - (*pd); } } + | FExpr '*' '{' RecursiveListOfDouble '}' + { + $$ = $4; + for(int i = 0; i < List_Nbr($$); i++){ + double *pd = (double*)List_Pointer($$, i); + (*pd) *= $1; + } + } ; FExpr_Multi : - FExpr tDOTS FExpr + '-' FExpr_Multi %prec UNARYPREC + { + $$ = $2; + for(int i = 0; i < List_Nbr($$); i++){ + double *pd = (double*)List_Pointer($$, i); + (*pd) = - (*pd); + } + } + | FExpr '*' FExpr_Multi + { + $$ = $3; + for(int i = 0; i < List_Nbr($$); i++){ + double *pd = (double*)List_Pointer($$, i); + (*pd) *= $1; + } + } + | FExpr tDOTS FExpr { $$ = List_Create(2, 1, sizeof(double)); for(double d = $1; ($1 < $3) ? (d <= $3) : (d >= $3); ($1 < $3) ? (d += 1.) : (d -= 1.)) @@ -3131,25 +3174,6 @@ FExpr_Multi : } Free($1); } - | '-' tSTRING '[' ']' - { - $$ = List_Create(2, 1, sizeof(double)); - Symbol TheSymbol; - TheSymbol.Name = $2; - Symbol *pSymbol; - if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) { - yymsg(GERROR, "Unknown variable '%s'", $2); - double d = 0.0; - List_Add($$, &d); - } - else{ - for(int i = 0; i < List_Nbr(pSymbol->val); i++){ - double d = - *(double*)List_Pointer_Fast(pSymbol->val, i); - List_Add($$, &d); - } - } - Free($2); - } | tSTRING '[' '{' RecursiveListOfDouble '}' ']' { $$ = List_Create(2, 1, sizeof(double)); @@ -3174,32 +3198,6 @@ FExpr_Multi : Free($1); List_Delete($4); } - | '-' tSTRING '[' '{' RecursiveListOfDouble '}' ']' - { - $$ = List_Create(2, 1, sizeof(double)); - Symbol TheSymbol; - TheSymbol.Name = $2; - Symbol *pSymbol; - if(!(pSymbol = (Symbol*)Tree_PQuery(Symbol_T, &TheSymbol))) { - yymsg(GERROR, "Unknown variable '%s'", $2); - double d = 0.0; - List_Add($$, &d); - } - else{ - for(int i = 0; i < List_Nbr($5); i++){ - int j = (int)(*(double*)List_Pointer_Fast($5, i)); - double *pd; - if((pd = (double*)List_Pointer_Test(pSymbol->val, j))){ - double d = - *pd; - List_Add($$, &d); - } - else - yymsg(GERROR, "Uninitialized variable '%s[%d]'", $2, j); - } - } - Free($2); - List_Delete($5); - } ; RecursiveListOfDouble : diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 6fa793956739f8e02e3a9b3a1bb124a98e3e82d0..123459f847eb2548a924b327aec4cc4f678e4103 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -2,7 +2,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.308 2007-03-02 09:20:21 remacle Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.309 2007-03-05 09:30:57 geuzaine Exp $ */ #define FLEX_SCANNER @@ -283,76 +283,77 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 141 -#define YY_END_OF_BUFFER 142 -static yyconst short int yy_accept[599] = +#define YY_NUM_RULES 142 +#define YY_END_OF_BUFFER 143 +static yyconst short int yy_accept[602] = { 0, - 0, 0, 142, 140, 1, 1, 140, 5, 140, 6, - 140, 140, 140, 140, 140, 135, 20, 2, 140, 15, - 140, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 140, 27, 23, 18, 24, 16, 25, - 17, 0, 137, 3, 4, 19, 136, 135, 0, 28, - 26, 29, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 83, 82, 139, 139, - - 139, 139, 139, 139, 139, 139, 139, 139, 139, 97, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 130, 131, 139, 139, 139, 139, - 139, 139, 139, 22, 21, 0, 136, 0, 0, 138, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 48, - 139, 139, 139, 139, 139, 139, 139, 139, 62, 139, - 139, 139, 139, 74, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 88, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, - - 139, 139, 139, 139, 139, 139, 112, 139, 139, 139, - 139, 139, 139, 139, 139, 126, 139, 139, 139, 139, - 139, 0, 137, 0, 0, 136, 30, 139, 139, 139, - 139, 34, 36, 139, 139, 139, 139, 42, 57, 139, - 45, 139, 139, 139, 139, 139, 139, 139, 47, 139, - 139, 61, 139, 139, 139, 139, 139, 70, 139, 71, - 139, 73, 139, 139, 139, 139, 80, 139, 139, 139, - 139, 139, 86, 139, 87, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 109, 139, - 139, 139, 139, 122, 113, 139, 139, 139, 111, 139, - - 139, 139, 139, 139, 133, 125, 139, 139, 139, 139, - 10, 9, 8, 139, 12, 14, 0, 136, 32, 139, - 139, 139, 38, 139, 139, 139, 139, 139, 139, 139, - 139, 53, 139, 139, 139, 139, 139, 139, 139, 139, - 68, 139, 139, 72, 139, 139, 134, 139, 81, 139, - 84, 139, 139, 89, 139, 139, 139, 94, 95, 139, - 139, 98, 139, 99, 139, 100, 139, 139, 139, 139, - 139, 108, 139, 139, 139, 139, 139, 139, 139, 139, - 127, 139, 128, 139, 11, 139, 13, 139, 31, 35, - 37, 139, 139, 41, 139, 139, 139, 50, 139, 139, - - 139, 139, 139, 58, 59, 139, 139, 139, 67, 139, - 139, 139, 139, 139, 139, 139, 90, 85, 139, 139, - 91, 139, 139, 105, 139, 104, 139, 139, 110, 107, - 114, 115, 139, 119, 139, 139, 139, 139, 139, 139, - 129, 7, 139, 39, 139, 43, 139, 139, 139, 139, - 139, 46, 52, 139, 139, 64, 139, 139, 139, 65, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 118, 139, 139, 116, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 63, - 66, 139, 75, 139, 139, 139, 76, 139, 92, 93, - - 139, 96, 139, 139, 139, 139, 139, 117, 139, 139, - 139, 40, 139, 139, 139, 51, 139, 139, 60, 69, - 139, 139, 139, 139, 139, 139, 139, 106, 120, 139, - 139, 124, 139, 139, 56, 139, 54, 139, 139, 139, - 139, 139, 102, 139, 139, 139, 139, 139, 44, 139, - 55, 139, 139, 139, 139, 103, 101, 121, 123, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 49, 139, 139, 139, 139, 139, 139, 139, - 139, 139, 33, 139, 139, 139, 139, 139, 139, 139, - 139, 77, 78, 79, 139, 139, 132, 0 - + 0, 0, 143, 141, 1, 1, 141, 5, 141, 6, + 141, 141, 141, 141, 141, 136, 20, 2, 141, 15, + 141, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 141, 27, 23, 18, 24, 16, 25, + 17, 0, 138, 3, 4, 19, 137, 136, 0, 28, + 26, 29, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 84, 83, 140, + + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 98, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 131, 132, 140, 140, 140, + 140, 140, 140, 140, 22, 21, 0, 137, 0, 0, + 139, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 48, 140, 140, 140, 140, 140, 140, 140, 140, 62, + 140, 140, 140, 140, 74, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 89, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + + 140, 140, 140, 140, 140, 140, 140, 140, 113, 140, + 140, 140, 140, 140, 140, 140, 140, 127, 140, 140, + 140, 140, 140, 0, 138, 0, 0, 137, 30, 140, + 140, 140, 140, 34, 36, 140, 140, 140, 140, 42, + 57, 140, 45, 140, 140, 140, 140, 140, 140, 140, + 47, 140, 140, 61, 140, 140, 140, 140, 140, 70, + 140, 71, 140, 73, 140, 140, 140, 140, 80, 81, + 140, 140, 140, 140, 140, 87, 140, 88, 140, 140, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 110, 140, 140, 140, 140, 123, 114, 140, 140, + + 140, 112, 140, 140, 140, 140, 140, 134, 126, 140, + 140, 140, 140, 10, 9, 8, 140, 12, 14, 0, + 137, 32, 140, 140, 140, 38, 140, 140, 140, 140, + 140, 140, 140, 140, 53, 140, 140, 140, 140, 140, + 140, 140, 140, 68, 140, 140, 72, 140, 140, 135, + 140, 82, 140, 85, 140, 140, 90, 140, 140, 140, + 95, 96, 140, 140, 99, 140, 100, 140, 101, 140, + 140, 140, 140, 140, 109, 140, 140, 140, 140, 140, + 140, 140, 140, 128, 140, 129, 140, 11, 140, 13, + 140, 31, 35, 37, 140, 140, 41, 140, 140, 140, + + 50, 140, 140, 140, 140, 140, 58, 59, 140, 140, + 140, 67, 140, 140, 140, 140, 140, 140, 140, 91, + 86, 140, 140, 92, 140, 140, 106, 140, 105, 140, + 140, 111, 108, 115, 116, 140, 120, 140, 140, 140, + 140, 140, 140, 130, 7, 140, 39, 140, 43, 140, + 140, 140, 140, 140, 46, 52, 140, 140, 64, 140, + 140, 140, 65, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 140, 119, 140, 140, 117, + 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 63, 66, 140, 75, 140, 140, 140, 76, + + 140, 93, 94, 140, 97, 140, 140, 140, 140, 140, + 118, 140, 140, 140, 40, 140, 140, 140, 51, 140, + 140, 60, 69, 140, 140, 140, 140, 140, 140, 140, + 107, 121, 140, 140, 125, 140, 140, 56, 140, 54, + 140, 140, 140, 140, 140, 103, 140, 140, 140, 140, + 140, 44, 140, 55, 140, 140, 140, 140, 104, 102, + 122, 124, 140, 140, 140, 140, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 49, 140, 140, 140, 140, + 140, 140, 140, 140, 140, 33, 140, 140, 140, 140, + 140, 140, 140, 140, 77, 78, 79, 140, 140, 133, + + 0 } ; static yyconst int yy_ec[256] = @@ -399,147 +400,149 @@ static yyconst int yy_meta[73] = 2, 1 } ; -static yyconst short int yy_base[600] = +static yyconst short int yy_base[603] = { 0, - 0, 0, 720, 721, 721, 721, 698, 721, 712, 721, - 696, 64, 65, 63, 75, 77, 721, 721, 695, 694, - 693, 46, 48, 65, 66, 65, 79, 62, 45, 46, - 0, 654, 91, 46, 646, 648, 93, 107, 109, 145, - 646, 649, 657, 635, 721, 721, 721, 721, 721, 721, - 721, 695, 167, 721, 721, 721, 172, 187, 211, 721, - 721, 721, 0, 645, 649, 654, 647, 76, 640, 629, - 633, 640, 70, 642, 649, 632, 108, 637, 636, 645, - 630, 633, 639, 639, 94, 639, 626, 625, 621, 624, - 641, 658, 615, 629, 617, 635, 0, 0, 616, 605, - - 615, 614, 137, 641, 621, 607, 619, 605, 597, 0, - 86, 138, 136, 607, 164, 600, 607, 603, 603, 153, - 598, 597, 596, 600, 0, 0, 622, 597, 605, 607, - 598, 595, 583, 721, 721, 226, 217, 236, 241, 246, - 586, 602, 223, 589, 588, 583, 588, 589, 584, 581, - 584, 582, 582, 575, 588, 585, 575, 82, 571, 579, - 581, 584, 562, 572, 573, 181, 570, 561, 0, 562, - 560, 563, 572, 0, 572, 590, 588, 574, 566, 556, - 588, 549, 562, 559, 560, 596, 548, 562, 541, 558, - 554, 557, 539, 543, 548, 541, 552, 547, 538, 543, - - 545, 534, 527, 545, 540, 522, 535, 537, 532, 531, - 520, 241, 532, 525, 555, 527, 533, 520, 519, 511, - 221, 258, 276, 285, 290, 295, 0, 512, 515, 519, - 526, 0, 557, 524, 515, 518, 518, 0, 0, 501, - 0, 519, 508, 501, 500, 507, 504, 510, 0, 494, - 493, 0, 502, 495, 495, 502, 498, 0, 486, 0, - 488, 0, 485, 503, 512, 500, 0, 481, 505, 480, - 480, 477, 0, 528, 0, 137, 483, 475, 475, 479, - 481, 484, 479, 468, 469, 468, 465, 466, 0, 470, - 464, 461, 475, 0, 0, 461, 464, 463, 0, 474, - - 457, 468, 471, 466, 0, 0, 446, 451, 461, 455, - 0, 455, 0, 460, 453, 0, 300, 305, 464, 444, - 448, 447, 0, 456, 445, 440, 447, 444, 451, 448, - 447, 455, 437, 444, 439, 442, 441, 442, 212, 427, - 0, 439, 438, 0, 432, 184, 0, 429, 0, 447, - 0, 420, 429, 0, 435, 426, 420, 0, 0, 428, - 429, 0, 418, 0, 435, 0, 423, 423, 425, 413, - 420, 0, 419, 418, 403, 402, 415, 408, 415, 398, - 0, 271, 0, 411, 0, 408, 0, 405, 0, 0, - 444, 393, 406, 0, 397, 398, 389, 0, 394, 405, - - 400, 381, 390, 0, 0, 401, 160, 392, 0, 391, - 394, 384, 301, 420, 376, 404, 0, 0, 381, 368, - 0, 373, 390, 0, 375, 0, 371, 379, 0, 0, - 0, 0, 381, 0, 380, 384, 379, 366, 373, 380, - 0, 0, 361, 0, 365, 0, 371, 383, 371, 372, - 372, 0, 0, 372, 353, 0, 353, 367, 368, 0, - 355, 381, 376, 369, 359, 375, 352, 356, 343, 348, - 350, 339, 343, 0, 346, 335, 0, 329, 339, 332, - 342, 332, 370, 333, 329, 340, 333, 324, 341, 0, - 0, 328, 0, 349, 348, 359, 0, 360, 0, 0, - - 327, 0, 330, 325, 328, 309, 322, 0, 321, 324, - 337, 0, 313, 314, 316, 0, 319, 318, 0, 0, - 328, 327, 336, 323, 315, 300, 302, 0, 0, 294, - 295, 0, 298, 289, 0, 293, 0, 292, 309, 308, - 307, 321, 0, 300, 291, 298, 297, 282, 0, 281, - 0, 301, 300, 299, 305, 0, 0, 0, 0, 286, - 285, 312, 311, 310, 300, 275, 285, 293, 291, 290, - 283, 268, 0, 285, 284, 256, 255, 223, 255, 252, - 249, 244, 0, 230, 210, 200, 187, 133, 121, 108, - 91, 0, 0, 0, 72, 74, 0, 721, 79 - + 0, 0, 723, 724, 724, 724, 701, 724, 715, 724, + 699, 64, 65, 63, 75, 77, 724, 724, 698, 697, + 696, 46, 48, 65, 66, 65, 79, 62, 45, 71, + 0, 657, 91, 46, 649, 651, 93, 107, 109, 145, + 649, 652, 660, 638, 724, 724, 724, 724, 724, 724, + 724, 698, 167, 724, 724, 724, 172, 187, 211, 724, + 724, 724, 0, 648, 652, 657, 650, 94, 643, 632, + 636, 643, 70, 645, 652, 635, 108, 640, 639, 648, + 633, 636, 642, 642, 151, 642, 629, 628, 624, 627, + 644, 661, 618, 632, 624, 619, 637, 0, 0, 618, + + 607, 617, 616, 137, 643, 623, 609, 621, 607, 599, + 0, 35, 154, 89, 609, 128, 602, 609, 605, 605, + 156, 600, 599, 598, 602, 0, 0, 624, 599, 607, + 609, 600, 597, 585, 724, 724, 220, 226, 235, 241, + 246, 588, 604, 190, 591, 590, 585, 590, 591, 586, + 583, 586, 584, 584, 577, 590, 587, 577, 130, 573, + 581, 583, 586, 564, 574, 575, 124, 572, 563, 0, + 564, 562, 565, 574, 0, 574, 592, 590, 576, 568, + 567, 557, 589, 550, 563, 560, 561, 597, 549, 563, + 542, 559, 555, 558, 540, 544, 549, 542, 553, 548, + + 539, 544, 546, 535, 528, 546, 541, 523, 536, 538, + 533, 532, 521, 240, 533, 526, 556, 528, 534, 521, + 520, 512, 218, 255, 273, 282, 287, 292, 0, 513, + 516, 520, 527, 0, 558, 525, 516, 519, 519, 0, + 0, 502, 0, 520, 509, 502, 501, 508, 505, 511, + 0, 495, 494, 0, 503, 496, 496, 503, 499, 0, + 487, 0, 489, 0, 486, 504, 513, 501, 0, 0, + 482, 506, 481, 481, 478, 0, 529, 0, 155, 484, + 476, 476, 480, 482, 485, 480, 469, 470, 469, 466, + 467, 0, 471, 465, 462, 476, 0, 0, 462, 465, + + 464, 0, 475, 458, 469, 472, 467, 0, 0, 447, + 452, 462, 456, 0, 456, 0, 461, 454, 0, 297, + 302, 465, 445, 449, 448, 0, 457, 446, 441, 448, + 445, 452, 449, 448, 456, 438, 445, 440, 443, 442, + 443, 182, 428, 0, 440, 439, 0, 433, 238, 0, + 430, 0, 448, 0, 421, 430, 0, 436, 427, 421, + 0, 0, 429, 430, 0, 419, 0, 436, 0, 424, + 424, 426, 414, 421, 0, 420, 419, 404, 403, 416, + 409, 416, 399, 0, 268, 0, 412, 0, 409, 0, + 406, 0, 0, 445, 394, 407, 0, 398, 399, 390, + + 0, 395, 406, 401, 382, 391, 0, 0, 402, 271, + 393, 0, 392, 395, 385, 243, 421, 377, 405, 0, + 0, 382, 369, 0, 374, 391, 0, 376, 0, 372, + 380, 0, 0, 0, 0, 382, 0, 381, 385, 380, + 367, 374, 381, 0, 0, 362, 0, 366, 0, 372, + 384, 372, 373, 373, 0, 0, 373, 354, 0, 354, + 368, 369, 0, 356, 382, 377, 370, 360, 376, 353, + 357, 344, 349, 351, 340, 344, 0, 347, 336, 0, + 330, 340, 333, 343, 333, 371, 334, 330, 341, 334, + 325, 342, 0, 0, 329, 0, 350, 349, 360, 0, + + 361, 0, 0, 328, 0, 331, 326, 329, 310, 323, + 0, 322, 325, 338, 0, 314, 315, 317, 0, 320, + 319, 0, 0, 329, 328, 337, 324, 316, 301, 303, + 0, 0, 295, 296, 0, 299, 290, 0, 294, 0, + 293, 310, 309, 308, 322, 0, 301, 292, 299, 298, + 283, 0, 282, 0, 302, 301, 300, 306, 0, 0, + 0, 0, 287, 286, 313, 312, 311, 301, 276, 286, + 294, 293, 292, 285, 271, 0, 288, 287, 286, 283, + 259, 290, 263, 262, 259, 0, 246, 227, 180, 177, + 133, 121, 107, 106, 0, 0, 0, 83, 71, 0, + + 724, 79 } ; -static yyconst short int yy_def[600] = +static yyconst short int yy_def[603] = { 0, - 598, 1, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 598, 598, 598, 598, 598, 598, 598, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 598, 598, 598, 598, 598, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 598, 598, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 599, 599, 599, - 599, 599, 599, 599, 599, 599, 599, 0, 598 - + 601, 1, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 601, 601, 601, 601, 601, 601, + 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 601, 601, 601, 601, 601, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 601, + 601, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, + + 0, 601 } ; -static yyconst short int yy_nxt[794] = +static yyconst short int yy_nxt[797] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, @@ -549,89 +552,89 @@ static yyconst short int yy_nxt[794] = 31, 31, 31, 31, 31, 31, 31, 31, 43, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 44, 48, 52, 50, 53, 53, 53, 53, 53, - 63, 96, 54, 104, 49, 51, 55, 57, 69, 58, - 58, 58, 58, 58, 64, 56, 91, 97, 70, 94, - - 597, 92, 65, 59, 98, 105, 596, 71, 66, 67, - 68, 73, 93, 72, 95, 74, 78, 595, 75, 76, - 79, 82, 145, 83, 77, 86, 151, 59, 80, 246, - 84, 81, 194, 85, 152, 87, 88, 100, 89, 108, - 146, 101, 247, 594, 90, 102, 109, 110, 168, 111, - 103, 195, 112, 114, 169, 113, 593, 115, 170, 125, - 126, 156, 118, 119, 157, 158, 116, 159, 592, 120, - 121, 160, 117, 122, 123, 127, 355, 356, 124, 53, - 53, 53, 53, 53, 137, 137, 137, 137, 137, 186, - 199, 128, 196, 136, 197, 200, 187, 57, 138, 58, - - 58, 58, 58, 58, 129, 198, 208, 130, 255, 209, - 456, 256, 202, 59, 457, 210, 591, 136, 413, 139, - 139, 414, 138, 140, 140, 140, 140, 140, 203, 137, - 137, 137, 137, 137, 222, 222, 590, 59, 223, 223, - 223, 223, 223, 224, 225, 225, 589, 229, 226, 226, - 226, 226, 226, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 230, 231, 300, 588, 224, 587, 311, - 223, 223, 223, 223, 223, 407, 408, 312, 301, 586, - 302, 313, 585, 314, 315, 584, 583, 316, 223, 223, - 223, 223, 223, 317, 317, 582, 581, 318, 318, 318, - - 318, 318, 226, 226, 226, 226, 226, 226, 226, 226, - 226, 226, 318, 318, 318, 318, 318, 318, 318, 318, - 318, 318, 439, 462, 580, 579, 578, 440, 577, 576, - 575, 463, 574, 573, 572, 571, 570, 569, 568, 567, - 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, - 556, 555, 554, 553, 552, 551, 550, 549, 548, 547, - 546, 545, 544, 543, 542, 541, 540, 539, 538, 537, - 536, 535, 534, 533, 532, 531, 530, 529, 528, 527, - 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, - 516, 515, 514, 513, 512, 511, 510, 509, 508, 507, - - 506, 505, 504, 503, 502, 501, 500, 499, 498, 497, - 496, 495, 494, 493, 492, 491, 490, 489, 488, 487, - 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, - 476, 475, 474, 473, 472, 471, 470, 469, 468, 467, - 466, 465, 464, 461, 460, 459, 458, 455, 454, 453, - 452, 451, 450, 449, 448, 447, 446, 445, 444, 443, - 442, 441, 438, 437, 436, 435, 434, 433, 432, 431, - 430, 429, 428, 427, 426, 425, 424, 423, 422, 421, - 420, 419, 418, 417, 416, 415, 412, 411, 410, 409, - 406, 405, 404, 403, 402, 401, 400, 399, 398, 397, - - 396, 395, 394, 393, 392, 391, 390, 389, 388, 387, - 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, - 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, - 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, - 354, 353, 352, 351, 350, 349, 348, 347, 346, 345, - 344, 343, 342, 341, 340, 339, 338, 337, 336, 335, - 334, 333, 332, 331, 330, 329, 328, 327, 326, 325, - 324, 323, 322, 321, 320, 319, 310, 309, 308, 307, - 306, 305, 304, 303, 299, 298, 297, 296, 295, 294, - 293, 292, 291, 290, 289, 288, 287, 286, 285, 284, - - 283, 282, 281, 280, 279, 278, 277, 276, 275, 274, - 273, 272, 271, 270, 269, 268, 267, 266, 265, 264, - 263, 262, 261, 260, 259, 258, 257, 254, 253, 252, - 251, 250, 249, 248, 245, 244, 243, 242, 241, 240, - 239, 238, 237, 236, 235, 234, 233, 232, 228, 227, - 221, 220, 219, 218, 217, 216, 215, 214, 213, 212, - 211, 207, 206, 205, 204, 201, 193, 192, 191, 190, - 189, 188, 185, 184, 183, 182, 181, 180, 179, 178, - 177, 176, 175, 174, 173, 172, 171, 167, 166, 165, - 164, 163, 162, 161, 155, 154, 153, 150, 149, 148, - - 147, 144, 143, 142, 141, 135, 134, 133, 132, 131, - 107, 106, 99, 62, 61, 60, 47, 46, 45, 598, - 3, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598 + 63, 196, 54, 105, 49, 51, 55, 57, 69, 58, + 58, 58, 58, 58, 64, 56, 91, 600, 70, 94, + + 197, 92, 65, 59, 95, 106, 97, 71, 66, 67, + 68, 73, 93, 72, 96, 74, 78, 599, 75, 76, + 79, 82, 98, 83, 77, 86, 152, 59, 80, 99, + 84, 81, 598, 85, 153, 87, 88, 101, 89, 109, + 146, 102, 597, 201, 90, 103, 110, 111, 202, 112, + 104, 257, 113, 115, 258, 114, 596, 116, 147, 126, + 127, 157, 119, 120, 158, 159, 117, 160, 595, 121, + 122, 161, 118, 123, 124, 128, 204, 248, 125, 53, + 53, 53, 53, 53, 138, 138, 138, 138, 138, 188, + 249, 129, 205, 137, 358, 359, 189, 57, 139, 58, + + 58, 58, 58, 58, 130, 169, 594, 131, 198, 210, + 199, 170, 211, 59, 231, 171, 593, 137, 212, 140, + 140, 200, 139, 141, 141, 141, 141, 141, 224, 224, + 232, 233, 225, 225, 225, 225, 225, 59, 138, 138, + 138, 138, 138, 227, 227, 410, 411, 228, 228, 228, + 228, 228, 226, 141, 141, 141, 141, 141, 141, 141, + 141, 141, 141, 592, 303, 465, 314, 225, 225, 225, + 225, 225, 416, 466, 315, 417, 226, 304, 316, 305, + 317, 318, 591, 590, 319, 225, 225, 225, 225, 225, + 320, 320, 589, 588, 321, 321, 321, 321, 321, 228, + + 228, 228, 228, 228, 228, 228, 228, 228, 228, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 442, + 587, 459, 586, 585, 443, 460, 584, 583, 582, 581, + 580, 579, 578, 577, 576, 575, 574, 573, 572, 571, + 570, 569, 568, 567, 566, 565, 564, 563, 562, 561, + 560, 559, 558, 557, 556, 555, 554, 553, 552, 551, + 550, 549, 548, 547, 546, 545, 544, 543, 542, 541, + 540, 539, 538, 537, 536, 535, 534, 533, 532, 531, + 530, 529, 528, 527, 526, 525, 524, 523, 522, 521, + 520, 519, 518, 517, 516, 515, 514, 513, 512, 511, + + 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, + 500, 499, 498, 497, 496, 495, 494, 493, 492, 491, + 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, + 480, 479, 478, 477, 476, 475, 474, 473, 472, 471, + 470, 469, 468, 467, 464, 463, 462, 461, 458, 457, + 456, 455, 454, 453, 452, 451, 450, 449, 448, 447, + 446, 445, 444, 441, 440, 439, 438, 437, 436, 435, + 434, 433, 432, 431, 430, 429, 428, 427, 426, 425, + 424, 423, 422, 421, 420, 419, 418, 415, 414, 413, + 412, 409, 408, 407, 406, 405, 404, 403, 402, 401, + + 400, 399, 398, 397, 396, 395, 394, 393, 392, 391, + 390, 389, 388, 387, 386, 385, 384, 383, 382, 381, + 380, 379, 378, 377, 376, 375, 374, 373, 372, 371, + 370, 369, 368, 367, 366, 365, 364, 363, 362, 361, + 360, 357, 356, 355, 354, 353, 352, 351, 350, 349, + 348, 347, 346, 345, 344, 343, 342, 341, 340, 339, + 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, + 328, 327, 326, 325, 324, 323, 322, 313, 312, 311, + 310, 309, 308, 307, 306, 302, 301, 300, 299, 298, + 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, + + 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, + 277, 276, 275, 274, 273, 272, 271, 270, 269, 268, + 267, 266, 265, 264, 263, 262, 261, 260, 259, 256, + 255, 254, 253, 252, 251, 250, 247, 246, 245, 244, + 243, 242, 241, 240, 239, 238, 237, 236, 235, 234, + 230, 229, 223, 222, 221, 220, 219, 218, 217, 216, + 215, 214, 213, 209, 208, 207, 206, 203, 195, 194, + 193, 192, 191, 190, 187, 186, 185, 184, 183, 182, + 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, + 168, 167, 166, 165, 164, 163, 162, 156, 155, 154, + + 151, 150, 149, 148, 145, 144, 143, 142, 136, 135, + 134, 133, 132, 108, 107, 100, 62, 61, 60, 47, + 46, 45, 601, 3, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601 } ; -static yyconst short int yy_chk[794] = +static yyconst short int yy_chk[797] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -641,85 +644,85 @@ static yyconst short int yy_chk[794] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 12, 14, 13, 14, 14, 14, 14, 14, - 599, 30, 15, 34, 12, 13, 15, 16, 23, 16, - 16, 16, 16, 16, 22, 15, 28, 30, 23, 29, - - 596, 28, 22, 16, 30, 34, 595, 23, 22, 22, - 22, 24, 28, 23, 29, 24, 25, 591, 24, 24, - 25, 26, 68, 26, 24, 27, 73, 16, 25, 158, - 26, 25, 111, 26, 73, 27, 27, 33, 27, 37, - 68, 33, 158, 590, 27, 33, 37, 37, 85, 37, - 33, 111, 37, 38, 85, 37, 589, 38, 85, 40, - 40, 77, 39, 39, 77, 77, 38, 77, 588, 39, - 39, 77, 38, 39, 39, 40, 276, 276, 39, 53, - 53, 53, 53, 53, 57, 57, 57, 57, 57, 103, - 113, 40, 112, 53, 112, 113, 103, 58, 57, 58, - - 58, 58, 58, 58, 40, 112, 120, 40, 166, 120, - 407, 166, 115, 58, 407, 120, 587, 53, 346, 59, - 59, 346, 57, 59, 59, 59, 59, 59, 115, 137, - 137, 137, 137, 137, 136, 136, 586, 58, 136, 136, - 136, 136, 136, 137, 138, 138, 585, 143, 138, 138, - 138, 138, 138, 139, 139, 139, 139, 139, 140, 140, - 140, 140, 140, 143, 143, 212, 584, 137, 582, 221, - 222, 222, 222, 222, 222, 339, 339, 221, 212, 581, - 212, 221, 580, 221, 221, 579, 578, 221, 223, 223, - 223, 223, 223, 224, 224, 577, 576, 224, 224, 224, - - 224, 224, 225, 225, 225, 225, 225, 226, 226, 226, - 226, 226, 317, 317, 317, 317, 317, 318, 318, 318, - 318, 318, 382, 413, 575, 574, 572, 382, 571, 570, - 569, 413, 568, 567, 566, 565, 564, 563, 562, 561, - 560, 555, 554, 553, 552, 550, 548, 547, 546, 545, - 544, 542, 541, 540, 539, 538, 536, 534, 533, 531, - 530, 527, 526, 525, 524, 523, 522, 521, 518, 517, - 515, 514, 513, 511, 510, 509, 507, 506, 505, 504, - 503, 501, 498, 496, 495, 494, 492, 489, 488, 487, - 486, 485, 484, 483, 482, 481, 480, 479, 478, 476, - - 475, 473, 472, 471, 470, 469, 468, 467, 466, 465, - 464, 463, 462, 461, 459, 458, 457, 455, 454, 451, - 450, 449, 448, 447, 445, 443, 440, 439, 438, 437, - 436, 435, 433, 428, 427, 425, 423, 422, 420, 419, - 416, 415, 414, 412, 411, 410, 408, 406, 403, 402, - 401, 400, 399, 397, 396, 395, 393, 392, 391, 388, - 386, 384, 380, 379, 378, 377, 376, 375, 374, 373, - 371, 370, 369, 368, 367, 365, 363, 361, 360, 357, - 356, 355, 353, 352, 350, 348, 345, 343, 342, 340, - 338, 337, 336, 335, 334, 333, 332, 331, 330, 329, - - 328, 327, 326, 325, 324, 322, 321, 320, 319, 315, - 314, 312, 310, 309, 308, 307, 304, 303, 302, 301, - 300, 298, 297, 296, 293, 292, 291, 290, 288, 287, - 286, 285, 284, 283, 282, 281, 280, 279, 278, 277, - 274, 272, 271, 270, 269, 268, 266, 265, 264, 263, - 261, 259, 257, 256, 255, 254, 253, 251, 250, 248, - 247, 246, 245, 244, 243, 242, 240, 237, 236, 235, - 234, 233, 231, 230, 229, 228, 220, 219, 218, 217, - 216, 215, 214, 213, 211, 210, 209, 208, 207, 206, - 205, 204, 203, 202, 201, 200, 199, 198, 197, 196, - - 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, - 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, - 175, 173, 172, 171, 170, 168, 167, 165, 164, 163, - 162, 161, 160, 159, 157, 156, 155, 154, 153, 152, - 151, 150, 149, 148, 147, 146, 145, 144, 142, 141, - 133, 132, 131, 130, 129, 128, 127, 124, 123, 122, - 121, 119, 118, 117, 116, 114, 109, 108, 107, 106, - 105, 104, 102, 101, 100, 99, 96, 95, 94, 93, - 92, 91, 90, 89, 88, 87, 86, 84, 83, 82, - 81, 80, 79, 78, 76, 75, 74, 72, 71, 70, - - 69, 67, 66, 65, 64, 52, 44, 43, 42, 41, - 36, 35, 32, 21, 20, 19, 11, 9, 7, 3, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598, 598, 598, 598, 598, 598, 598, 598, - 598, 598, 598 + 602, 112, 15, 34, 12, 13, 15, 16, 23, 16, + 16, 16, 16, 16, 22, 15, 28, 599, 23, 29, + + 112, 28, 22, 16, 29, 34, 30, 23, 22, 22, + 22, 24, 28, 23, 29, 24, 25, 598, 24, 24, + 25, 26, 30, 26, 24, 27, 73, 16, 25, 30, + 26, 25, 594, 26, 73, 27, 27, 33, 27, 37, + 68, 33, 593, 114, 27, 33, 37, 37, 114, 37, + 33, 167, 37, 38, 167, 37, 592, 38, 68, 40, + 40, 77, 39, 39, 77, 77, 38, 77, 591, 39, + 39, 77, 38, 39, 39, 40, 116, 159, 39, 53, + 53, 53, 53, 53, 57, 57, 57, 57, 57, 104, + 159, 40, 116, 53, 279, 279, 104, 58, 57, 58, + + 58, 58, 58, 58, 40, 85, 590, 40, 113, 121, + 113, 85, 121, 58, 144, 85, 589, 53, 121, 59, + 59, 113, 57, 59, 59, 59, 59, 59, 137, 137, + 144, 144, 137, 137, 137, 137, 137, 58, 138, 138, + 138, 138, 138, 139, 139, 342, 342, 139, 139, 139, + 139, 139, 138, 140, 140, 140, 140, 140, 141, 141, + 141, 141, 141, 588, 214, 416, 223, 224, 224, 224, + 224, 224, 349, 416, 223, 349, 138, 214, 223, 214, + 223, 223, 587, 585, 223, 225, 225, 225, 225, 225, + 226, 226, 584, 583, 226, 226, 226, 226, 226, 227, + + 227, 227, 227, 227, 228, 228, 228, 228, 228, 320, + 320, 320, 320, 320, 321, 321, 321, 321, 321, 385, + 582, 410, 581, 580, 385, 410, 579, 578, 577, 575, + 574, 573, 572, 571, 570, 569, 568, 567, 566, 565, + 564, 563, 558, 557, 556, 555, 553, 551, 550, 549, + 548, 547, 545, 544, 543, 542, 541, 539, 537, 536, + 534, 533, 530, 529, 528, 527, 526, 525, 524, 521, + 520, 518, 517, 516, 514, 513, 512, 510, 509, 508, + 507, 506, 504, 501, 499, 498, 497, 495, 492, 491, + 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, + + 479, 478, 476, 475, 474, 473, 472, 471, 470, 469, + 468, 467, 466, 465, 464, 462, 461, 460, 458, 457, + 454, 453, 452, 451, 450, 448, 446, 443, 442, 441, + 440, 439, 438, 436, 431, 430, 428, 426, 425, 423, + 422, 419, 418, 417, 415, 414, 413, 411, 409, 406, + 405, 404, 403, 402, 400, 399, 398, 396, 395, 394, + 391, 389, 387, 383, 382, 381, 380, 379, 378, 377, + 376, 374, 373, 372, 371, 370, 368, 366, 364, 363, + 360, 359, 358, 356, 355, 353, 351, 348, 346, 345, + 343, 341, 340, 339, 338, 337, 336, 335, 334, 333, + + 332, 331, 330, 329, 328, 327, 325, 324, 323, 322, + 318, 317, 315, 313, 312, 311, 310, 307, 306, 305, + 304, 303, 301, 300, 299, 296, 295, 294, 293, 291, + 290, 289, 288, 287, 286, 285, 284, 283, 282, 281, + 280, 277, 275, 274, 273, 272, 271, 268, 267, 266, + 265, 263, 261, 259, 258, 257, 256, 255, 253, 252, + 250, 249, 248, 247, 246, 245, 244, 242, 239, 238, + 237, 236, 235, 233, 232, 231, 230, 222, 221, 220, + 219, 218, 217, 216, 215, 213, 212, 211, 210, 209, + 208, 207, 206, 205, 204, 203, 202, 201, 200, 199, + + 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, + 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, + 178, 177, 176, 174, 173, 172, 171, 169, 168, 166, + 165, 164, 163, 162, 161, 160, 158, 157, 156, 155, + 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, + 143, 142, 134, 133, 132, 131, 130, 129, 128, 125, + 124, 123, 122, 120, 119, 118, 117, 115, 110, 109, + 108, 107, 106, 105, 103, 102, 101, 100, 97, 96, + 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, + 84, 83, 82, 81, 80, 79, 78, 76, 75, 74, + + 72, 71, 70, 69, 67, 66, 65, 64, 52, 44, + 43, 42, 41, 36, 35, 32, 21, 20, 19, 11, + 9, 7, 3, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601, 601, 601, 601, 601, + 601, 601, 601, 601, 601, 601 } ; @@ -737,7 +740,7 @@ char *yytext; #line 1 "Gmsh.l" #define INITIAL 0 #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.308 2007-03-02 09:20:21 remacle Exp $ +// $Id: Gmsh.yy.cpp,v 1.309 2007-03-05 09:30:57 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -798,7 +801,7 @@ void skipline(void); && ferror( yyin ) ) \ Msg(FATAL, "Input in flex scanner failed"); -#line 802 "Gmsh.yy.cpp" +#line 805 "Gmsh.yy.cpp" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -952,7 +955,7 @@ YY_DECL #line 79 "Gmsh.l" -#line 956 "Gmsh.yy.cpp" +#line 959 "Gmsh.yy.cpp" if ( yy_init ) { @@ -1003,13 +1006,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 599 ) + if ( yy_current_state >= 602 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 721 ); + while ( yy_base[yy_current_state] != 724 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1438,102 +1441,102 @@ return tHide; case 81: YY_RULE_SETUP #line 169 "Gmsh.l" -return tHypot; +return tHole; YY_BREAK case 82: YY_RULE_SETUP -#line 171 "Gmsh.l" -return tIn; +#line 170 "Gmsh.l" +return tHypot; YY_BREAK case 83: YY_RULE_SETUP #line 172 "Gmsh.l" -return tIf; +return tIn; YY_BREAK case 84: YY_RULE_SETUP -#line 174 "Gmsh.l" -return tKnots; +#line 173 "Gmsh.l" +return tIf; YY_BREAK case 85: YY_RULE_SETUP -#line 176 "Gmsh.l" -return tLength; +#line 175 "Gmsh.l" +return tKnots; YY_BREAK case 86: YY_RULE_SETUP #line 177 "Gmsh.l" -return tLine; +return tLength; YY_BREAK case 87: YY_RULE_SETUP #line 178 "Gmsh.l" -return tLoop; +return tLine; YY_BREAK case 88: YY_RULE_SETUP #line 179 "Gmsh.l" -return tLog; +return tLoop; YY_BREAK case 89: YY_RULE_SETUP #line 180 "Gmsh.l" -return tLog10; +return tLog; YY_BREAK case 90: YY_RULE_SETUP #line 181 "Gmsh.l" -return tLayers; +return tLog10; YY_BREAK case 91: YY_RULE_SETUP -#line 183 "Gmsh.l" -return tModulo; +#line 182 "Gmsh.l" +return tLayers; YY_BREAK case 92: YY_RULE_SETUP #line 184 "Gmsh.l" -return tMPI_Rank; +return tModulo; YY_BREAK case 93: YY_RULE_SETUP #line 185 "Gmsh.l" -return tMPI_Size; +return tMPI_Rank; YY_BREAK case 94: YY_RULE_SETUP -#line 187 "Gmsh.l" -return tNurbs; +#line 186 "Gmsh.l" +return tMPI_Size; YY_BREAK case 95: YY_RULE_SETUP -#line 189 "Gmsh.l" -return tOrder; +#line 188 "Gmsh.l" +return tNurbs; YY_BREAK case 96: YY_RULE_SETUP -#line 191 "Gmsh.l" -return tPhysical; +#line 190 "Gmsh.l" +return tOrder; YY_BREAK case 97: YY_RULE_SETUP #line 192 "Gmsh.l" -return tPi; +return tPhysical; YY_BREAK case 98: YY_RULE_SETUP #line 193 "Gmsh.l" -return tPlane; +return tPi; YY_BREAK case 99: YY_RULE_SETUP #line 194 "Gmsh.l" -return tPoint; +return tPlane; YY_BREAK case 100: YY_RULE_SETUP #line 195 "Gmsh.l" -return tProgression; +return tPoint; YY_BREAK case 101: YY_RULE_SETUP @@ -1543,195 +1546,200 @@ return tProgression; case 102: YY_RULE_SETUP #line 197 "Gmsh.l" -return tParametric; +return tProgression; YY_BREAK case 103: YY_RULE_SETUP #line 198 "Gmsh.l" -return tPolarSphere; +return tParametric; YY_BREAK case 104: YY_RULE_SETUP #line 199 "Gmsh.l" -return tPrintf; +return tPolarSphere; YY_BREAK case 105: YY_RULE_SETUP #line 200 "Gmsh.l" -return tPlugin; +return tPrintf; YY_BREAK case 106: YY_RULE_SETUP -#line 202 "Gmsh.l" -return tRecombine; +#line 201 "Gmsh.l" +return tPlugin; YY_BREAK case 107: YY_RULE_SETUP #line 203 "Gmsh.l" -return tRotate; +return tRecombine; YY_BREAK case 108: YY_RULE_SETUP #line 204 "Gmsh.l" -return tRuled; +return tRotate; YY_BREAK case 109: YY_RULE_SETUP #line 205 "Gmsh.l" -return tRand; +return tRuled; YY_BREAK case 110: YY_RULE_SETUP #line 206 "Gmsh.l" -return tReturn; +return tRand; YY_BREAK case 111: YY_RULE_SETUP -#line 208 "Gmsh.l" -return tSqrt; +#line 207 "Gmsh.l" +return tReturn; YY_BREAK case 112: YY_RULE_SETUP #line 209 "Gmsh.l" -return tSin; +return tSqrt; YY_BREAK case 113: YY_RULE_SETUP #line 210 "Gmsh.l" -return tSinh; +return tSin; YY_BREAK case 114: YY_RULE_SETUP #line 211 "Gmsh.l" -return tSphere; +return tSinh; YY_BREAK case 115: YY_RULE_SETUP #line 212 "Gmsh.l" -return tSpline; +return tSphere; YY_BREAK case 116: YY_RULE_SETUP #line 213 "Gmsh.l" -return tSurface; +return tSpline; YY_BREAK case 117: YY_RULE_SETUP #line 214 "Gmsh.l" -return tSymmetry; +return tSurface; YY_BREAK case 118: YY_RULE_SETUP #line 215 "Gmsh.l" -return tSprintf; +return tSymmetry; YY_BREAK case 119: YY_RULE_SETUP #line 216 "Gmsh.l" -return tStrCat; +return tSprintf; YY_BREAK case 120: YY_RULE_SETUP #line 217 "Gmsh.l" -return tStrPrefix; +return tStrCat; YY_BREAK case 121: YY_RULE_SETUP #line 218 "Gmsh.l" -return tStrRelative; +return tStrPrefix; YY_BREAK case 122: YY_RULE_SETUP #line 219 "Gmsh.l" -return tShow; +return tStrRelative; YY_BREAK case 123: YY_RULE_SETUP -#line 221 "Gmsh.l" -return tTransfinite; +#line 220 "Gmsh.l" +return tShow; YY_BREAK case 124: YY_RULE_SETUP #line 222 "Gmsh.l" -return tTranslate; +return tTransfinite; YY_BREAK case 125: YY_RULE_SETUP #line 223 "Gmsh.l" -return tTanh; +return tTranslate; YY_BREAK case 126: YY_RULE_SETUP #line 224 "Gmsh.l" -return tTan; +return tTanh; YY_BREAK case 127: YY_RULE_SETUP #line 225 "Gmsh.l" -return tToday; +return tTan; YY_BREAK case 128: YY_RULE_SETUP -#line 227 "Gmsh.l" -return tUsing; +#line 226 "Gmsh.l" +return tToday; YY_BREAK case 129: YY_RULE_SETUP -#line 229 "Gmsh.l" -return tVolume; +#line 228 "Gmsh.l" +return tUsing; YY_BREAK case 130: YY_RULE_SETUP -#line 231 "Gmsh.l" -return tText2D; +#line 230 "Gmsh.l" +return tVolume; YY_BREAK case 131: YY_RULE_SETUP #line 232 "Gmsh.l" -return tText3D; +return tText2D; YY_BREAK case 132: YY_RULE_SETUP #line 233 "Gmsh.l" -return tInterpolationScheme; +return tText3D; YY_BREAK case 133: YY_RULE_SETUP #line 234 "Gmsh.l" -return tTime; +return tInterpolationScheme; YY_BREAK case 134: YY_RULE_SETUP #line 235 "Gmsh.l" -return tGrain; +return tTime; YY_BREAK case 135: -#line 238 "Gmsh.l" +YY_RULE_SETUP +#line 236 "Gmsh.l" +return tGrain; + YY_BREAK case 136: #line 239 "Gmsh.l" case 137: #line 240 "Gmsh.l" case 138: +#line 241 "Gmsh.l" +case 139: YY_RULE_SETUP -#line 240 "Gmsh.l" +#line 241 "Gmsh.l" {yylval.d = atof((char *)yytext); return tDOUBLE;} YY_BREAK -case 139: +case 140: YY_RULE_SETUP -#line 242 "Gmsh.l" +#line 243 "Gmsh.l" {yylval.c = strsave((char*)yytext); return tSTRING;} YY_BREAK -case 140: +case 141: YY_RULE_SETUP -#line 244 "Gmsh.l" +#line 245 "Gmsh.l" return yytext[0]; YY_BREAK -case 141: +case 142: YY_RULE_SETUP -#line 246 "Gmsh.l" +#line 247 "Gmsh.l" ECHO; YY_BREAK -#line 1735 "Gmsh.yy.cpp" +#line 1743 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2023,7 +2031,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 599 ) + if ( yy_current_state >= 602 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2058,11 +2066,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 599 ) + if ( yy_current_state >= 602 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 598); + yy_is_jam = (yy_current_state == 601); return yy_is_jam ? 0 : yy_current_state; } @@ -2617,7 +2625,7 @@ int main() return 0; } #endif -#line 246 "Gmsh.l" +#line 247 "Gmsh.l" #undef yywrap diff --git a/Parser/OpenFile.cpp b/Parser/OpenFile.cpp index dde132503cd2402ef9f4c9d22212cf9994b90857..57492fc97e022d8d0ce41b2995054eb26a654dab 100644 --- a/Parser/OpenFile.cpp +++ b/Parser/OpenFile.cpp @@ -1,4 +1,4 @@ -// $Id: OpenFile.cpp,v 1.142 2007-02-04 11:24:55 geuzaine Exp $ +// $Id: OpenFile.cpp,v 1.143 2007-03-05 09:30:57 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -148,11 +148,17 @@ void SetBoundingBox(void) if(bb.empty() && List_Nbr(CTX.post.list)) { for(int i = 0; i < List_Nbr(CTX.post.list); i++){ Post_View *v = *(Post_View **)List_Pointer(CTX.post.list, i); - bb += SPoint3(v->BBox[0], v->BBox[2], v->BBox[4]); + if(fabs(v->BBox[0]) != VAL_INF && + fabs(v->BBox[2]) != VAL_INF && + fabs(v->BBox[4]) != VAL_INF) + bb += SPoint3(v->BBox[0], v->BBox[2], v->BBox[4]); + if(fabs(v->BBox[1]) != VAL_INF && + fabs(v->BBox[3]) != VAL_INF && + fabs(v->BBox[5]) != VAL_INF) bb += SPoint3(v->BBox[1], v->BBox[3], v->BBox[5]); } } - + if(bb.empty()){ bb += SPoint3(-1., -1., -1.); bb += SPoint3(1., 1., 1.); diff --git a/Plugin/Levelset.cpp b/Plugin/Levelset.cpp index 0cbaedc121d11bf2fe932c9187698ae7546aafaa..e13800e4fa1ecbcd52844d9d32506034bc6a8bb6 100644 --- a/Plugin/Levelset.cpp +++ b/Plugin/Levelset.cpp @@ -1,4 +1,4 @@ -// $Id: Levelset.cpp,v 1.30 2006-11-27 22:22:32 geuzaine Exp $ +// $Id: Levelset.cpp,v 1.31 2007-03-05 09:30:57 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -434,7 +434,7 @@ void GMSH_LevelsetPlugin::executeList(Post_View * iView, List_T * iList, double *y = (double *)List_Pointer_Fast(iList, i + nbNod); double *z = (double *)List_Pointer_Fast(iList, i + 2 * nbNod); - if(nbNod == 2 || nbNod == 3 || (nbNod == 4 && nbEdg == 6)) { + if(nbNod == 1 || nbNod == 2 || nbNod == 3 || (nbNod == 4 && nbEdg == 6)) { // easy for simplices: at most one element is created per time step for(int iTS = 0; iTS < iView->NbTimeStep; iTS++) { int dTS = (dTimeStep < 0) ? iTS : dTimeStep; @@ -587,6 +587,27 @@ Post_View *GMSH_LevelsetPlugin::execute(Post_View * v) // different types on the levelset if the value view (w) is the same // as the levelset view (v). + // points + executeList(v, v->SP, v->NbSP, 1, w, w->SP, w->NbSP, 1, 1, 0, 0, out); + if(v != w) { + executeList(v, v->SP, v->NbSP, 1, w, w->VP, w->NbVP, 3, 1, 0, 0, out); + executeList(v, v->SP, v->NbSP, 1, w, w->TP, w->NbTP, 9, 1, 0, 0, out); + } + + if(v != w) { + executeList(v, v->VP, v->NbVP, 3, w, w->SP, w->NbSP, 1, 1, 0, 0, out); + } + executeList(v, v->VP, v->NbVP, 3, w, w->VP, w->NbVP, 3, 1, 0, 0, out); + if(v != w) { + executeList(v, v->VP, v->NbVP, 3, w, w->TP, w->NbTP, 9, 1, 0, 0, out); + } + + if(v != w) { + executeList(v, v->TP, v->NbTP, 9, w, w->SP, w->NbSP, 1, 1, 0, 0, out); + executeList(v, v->TP, v->NbTP, 9, w, w->VP, w->NbVP, 3, 1, 0, 0, out); + } + executeList(v, v->TP, v->NbTP, 9, w, w->TP, w->NbTP, 9, 1, 0, 0, out); + // lines int exnLin[12][2] = {{0,1}}; executeList(v, v->SL, v->NbSL, 1, w, w->SL, w->NbSL, 1, 2, 1, exnLin, out); diff --git a/doc/CREDITS b/doc/CREDITS index ec8b5092677c6726d032e38d0735c03348a836ff..965041694235d1a0af0a5ad4e20e70c169641519 100644 --- a/doc/CREDITS +++ b/doc/CREDITS @@ -1,4 +1,4 @@ -$Id: CREDITS,v 1.44 2007-03-02 08:44:55 geuzaine Exp $ +$Id: CREDITS,v 1.45 2007-03-05 09:30:58 geuzaine Exp $ Gmsh is copyright (C) 1997-2007 @@ -120,4 +120,5 @@ at surrey.ac.uk>, Timmy Schumacher <Tim.Schumacher at colorado.edu>, Carl Osterwisch <osterwischc at asme.org>, Bruno Frackowiak <bruno.frackowiak at onecert.fr>, Philip Kelleners <P.H.Kelleners at ctw.utwente.nl>, Romuald Conty <conty at phimeca.com>, Ruth Sabariego -<r.sabariego at ulg.ac.be>. +<r.sabariego at ulg.ac.be>, Renaud Sizaire <renaud.sizaire at +ferespost.be>.