diff --git a/Geo/Makefile b/Geo/Makefile index b085be61ded6bd3b305b11d9aa72a236ea78394f..79025c85970e2d03870d2d9702585fcfa9171f8e 100644 --- a/Geo/Makefile +++ b/Geo/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.138 2007-02-27 22:01:25 geuzaine Exp $ +# $Id: Makefile,v 1.139 2007-03-02 09:20:21 remacle Exp $ # # Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle # @@ -23,7 +23,7 @@ include ../variables LIB = ../lib/libGmshGeo.a INCLUDE = -I../Common -I../DataStr -I../Geo -I../Mesh -I../Numeric\ - -I../Parser -I../Fltk -I../contrib/NR -I../contrib/FourierModel -I../contrib/ANN/include + -I../Parser -I../Fltk -I../contrib/NR -I../contrib/FourierModel -I../contrib/ANN/include -I../contrib/MathEval CFLAGS = ${OPTIM} ${FLAGS} ${INCLUDE} SRC = GEntity.cpp\ diff --git a/Geo/gmshSurface.cpp b/Geo/gmshSurface.cpp index 0e8bfd5621c9521bef6623b60fabe56990da9443..ec0a1c5347355fa7a24dfacf2ca009ac9f1d5214 100644 --- a/Geo/gmshSurface.cpp +++ b/Geo/gmshSurface.cpp @@ -1,4 +1,4 @@ -// $Id: gmshSurface.cpp,v 1.4 2007-02-03 13:06:44 geuzaine Exp $ +// $Id: gmshSurface.cpp,v 1.5 2007-03-02 09:20:21 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -21,6 +21,9 @@ #include "gmshSurface.h" #include "Message.h" +#if defined(HAVE_MATH_EVAL) +#include "matheval.h" +#endif std::map<int,gmshSurface*> gmshSurface::allGmshSurfaces; @@ -55,3 +58,74 @@ SPoint3 gmshSphere::point (double par1, double par2) const // printf("%g %g - %g %g %g\n",par1,par2,x,y,z); return SPoint3(x, y, z); } + +gmshSurface * gmshPolarSphere::NewPolarSphere(int iSphere, double x, double y, double z, double r) +{ + gmshPolarSphere *sph = new gmshPolarSphere(x, y, z, r); + + if(allGmshSurfaces.find(iSphere) != allGmshSurfaces.end()){ + Msg(GERROR,"gmshSurface %d already exists",iSphere); + } + + allGmshSurfaces[iSphere] = sph; + return sph; +} + +SPoint3 gmshPolarSphere::point (double parA, double parB) const +{ + double ra,phi; + ra=hypot(parA,parB); + phi=2*atan((parB/ra)/(1+parA/ra)); + double par1=-phi; + double par2=M_PI-ra; + + //par2 += M_PI*.5; + const double x = xc + r * sin(par2) * cos(par1); + const double y = yc + r * sin(par2) * sin(par1); + const double z = zc - r * cos(par2); + // printf("%g %g - %g %g %g\n",par1,par2,x,y,z); + return SPoint3(x, y, z); +} + + +gmshSurface * gmshParametricSurface::NewParametricSurface(int iSurf, char *valX, char *valY, char *valZ) +{ + gmshParametricSurface *sph = new gmshParametricSurface(valX,valY,valZ); + + if(allGmshSurfaces.find(iSurf) != allGmshSurfaces.end()){ + Msg(GERROR,"gmshSurface %d already exists",iSurf); + } + allGmshSurfaces[iSurf] = sph; + return sph; +} + +gmshParametricSurface ::gmshParametricSurface(char *valX, char *valY, char *valZ) +{ +#if !defined(HAVE_MATH_EVAL) + Msg(GERROR, "MathEval is not compiled in this version of Gmsh"); +#else + evalX = evaluator_create(valX); + evalY = evaluator_create(valY); + evalZ = evaluator_create(valZ); +#endif +} + +gmshParametricSurface ::~gmshParametricSurface() +{ +#if !defined(HAVE_MATH_EVAL) + Msg(GERROR, "MathEval is not compiled in this version of Gmsh"); +#else + evaluator_destroy(evalX); + evaluator_destroy(evalY); + evaluator_destroy(evalZ); +#endif +} +SPoint3 gmshParametricSurface ::point(double par1, double par2) const +{ + char *names[2] = {"u","v"}; + double values [2] = {par1,par2}; + const double x = evaluator_evaluate(evalX, 2, names, values); + const double y = evaluator_evaluate(evalY, 2, names, values); + const double z = evaluator_evaluate(evalZ, 2, names, values); + return SPoint3(x,y,z); +} diff --git a/Geo/gmshSurface.h b/Geo/gmshSurface.h index 2d672dc19e9cfbe21c40a12572c37e5677f96bc5..1084acb233cab6b6e5d5378f9c3ad82e394caffa 100644 --- a/Geo/gmshSurface.h +++ b/Geo/gmshSurface.h @@ -51,7 +51,9 @@ public: Cylinder, Sphere, Cone, - Torus + Torus, + ParametricSurface, + PolarSphere }; virtual gmshSurface::gmshSurfaceType geomType() const = 0; virtual SPoint3 point(double par1, double par2) const = 0; @@ -99,5 +101,75 @@ public: throw; } }; +class gmshPolarSphere : public gmshSurface +{ + double xc, yc, zc, r; + gmshPolarSphere(double _x, double _y, double _z, double _r) : xc(_x), yc(_y), zc(_z), r(_r){} +public: + static gmshSurface *NewPolarSphere(int _iSphere, double _x, double _y, double _z, double _r); + virtual Range<double> parBounds(int i) const + { + if(i == 0) return Range<double>(-M_PI, M_PI); + if(i == 1) return Range<double>(-M_PI, M_PI); + throw; + } + // Underlying geometric representation of this entity. + virtual gmshSurface::gmshSurfaceType geomType() const { return gmshSurface::PolarSphere; } + virtual SPoint3 point(double par1, double par2) const; + virtual SPoint2 parFromPoint(double x, double y, double z) const + { + // 2 be done + throw; + } + // Return the normal to the face at the given parameter location. + virtual SVector3 normal(const SPoint2 ¶m) const + { + SPoint3 p1 = gmshSurface::point(param); + SPoint3 p2(xc, yc, zc); + SVector3 n(p1, p2); + n.normalize(); + return n; + } + // Return the first derivate of the face at the parameter location. + virtual Pair<SVector3,SVector3> firstDer(const SPoint2 ¶m) const + { + // 2 be done + throw; + } +}; + + +class gmshParametricSurface : public gmshSurface +{ + void *evalX, *evalY, *evalZ; + gmshParametricSurface(char*, char*, char*); + ~gmshParametricSurface(); +public: + static gmshSurface *NewParametricSurface(int iSurf, char*, char*, char*); + virtual Range<double> parBounds(int i) const + { + throw; + } + // Underlying geometric representation of this entity. + virtual gmshSurface::gmshSurfaceType geomType() const { return gmshSurface::ParametricSurface; } + virtual SPoint3 point(double par1, double par2) const; + virtual SPoint2 parFromPoint(double x, double y, double z) const + { + // 2 be done + throw; + } + // Return the normal to the face at the given parameter location. + virtual SVector3 normal(const SPoint2 ¶m) const + { + throw; + } + // Return the first derivate of the face at the parameter location. + virtual Pair<SVector3,SVector3> firstDer(const SPoint2 ¶m) const + { + // 2 be done + throw; + } +}; + #endif diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp index 60b8ef3807b088c6477d651db36196a7637089b3..972b4396ee00a5f349e2259b532e444ac3be9ba3 100644 --- a/Mesh/meshGFace.cpp +++ b/Mesh/meshGFace.cpp @@ -1,4 +1,4 @@ -// $Id: meshGFace.cpp,v 1.61 2007-02-27 22:00:56 geuzaine Exp $ +// $Id: meshGFace.cpp,v 1.62 2007-03-02 09:20:21 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -834,8 +834,6 @@ bool gmsh2DMeshGenerator ( GFace *gf ) } } - - m->cleanup(); m->del_point(m->find_point(-1)); m->del_point(m->find_point(-2)); @@ -845,16 +843,15 @@ bool gmsh2DMeshGenerator ( GFace *gf ) // start mesh generation // if (CTX.mesh.algo2d == ALGO_2D_MESHADAPT) { - RefineMesh (gf,*m,100); + RefineMesh (gf,*m,20); if (gf->meshAttributes.recombine) { m->recombineIntoQuads (gf->meshAttributes.recombineAngle,gf); } } - -// char name[245]; -// sprintf(name,"param%d.pos",gf->tag()); -// outputScalarField(m->triangles, name,1); + char name[245]; + sprintf(name,"param%d.pos",gf->tag()); + outputScalarField(m->triangles, name,1); // sprintf(name,"real%d.pos",gf->tag()); // outputScalarField(m->triangles, name,0); // fill the small gmsh structures diff --git a/Parser/Gmsh.l b/Parser/Gmsh.l index f9a1baa488ee45eeeeeb0ed828c8586f08a62550..43213177ffc4097701b3ed996b25138d778a1378 100644 --- a/Parser/Gmsh.l +++ b/Parser/Gmsh.l @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.l,v 1.84 2007-01-31 12:27:18 remacle Exp $ +// $Id: Gmsh.l,v 1.85 2007-03-02 09:20:21 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -135,6 +135,7 @@ Coherence return tCoherence; Complex return tComplex; Color return tColor; ColorTable return tColorTable; +Coordinates return tCoordinates; CatmullRom return tSpline; Call return tCall; @@ -150,6 +151,7 @@ Extrude return tExtrude; Elliptic return tElliptic; EndFor return tEndFor; EndIf return tEndIf; +Euclidian return tEuclidian; Exit return tExit; Fabs return tFabs; @@ -193,6 +195,7 @@ Point return tPoint; Power return tProgression; Progression return tProgression; Parametric return tParametric; +PolarSphere return tPolarSphere; Printf return tPrintf; Plugin return tPlugin; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 9ccc6a862c11f48b329d784eddb2a88c99a50796..e019c471bdd40cff3901b44e294264a5af5c293c 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -13,115 +13,118 @@ #define tPi 263 #define tMPI_Rank 264 #define tMPI_Size 265 -#define tExp 266 -#define tLog 267 -#define tLog10 268 -#define tSqrt 269 -#define tSin 270 -#define tAsin 271 -#define tCos 272 -#define tAcos 273 -#define tTan 274 -#define tRand 275 -#define tAtan 276 -#define tAtan2 277 -#define tSinh 278 -#define tCosh 279 -#define tTanh 280 -#define tFabs 281 -#define tFloor 282 -#define tCeil 283 -#define tFmod 284 -#define tModulo 285 -#define tHypot 286 -#define tPrintf 287 -#define tSprintf 288 -#define tStrCat 289 -#define tStrPrefix 290 -#define tStrRelative 291 -#define tBoundingBox 292 -#define tDraw 293 -#define tToday 294 -#define tPoint 295 -#define tCircle 296 -#define tEllipse 297 -#define tLine 298 -#define tSphere 299 -#define tSurface 300 -#define tSpline 301 -#define tVolume 302 -#define tCharacteristic 303 -#define tLength 304 -#define tParametric 305 -#define tElliptic 306 -#define tPlane 307 -#define tRuled 308 -#define tTransfinite 309 -#define tComplex 310 -#define tPhysical 311 -#define tUsing 312 -#define tBump 313 -#define tProgression 314 -#define tPlugin 315 -#define tRotate 316 -#define tTranslate 317 -#define tSymmetry 318 -#define tDilate 319 -#define tExtrude 320 -#define tDuplicata 321 -#define tLoop 322 -#define tRecombine 323 -#define tDelete 324 -#define tCoherence 325 -#define tAttractor 326 -#define tLayers 327 -#define tAlias 328 -#define tAliasWithOptions 329 -#define tText2D 330 -#define tText3D 331 -#define tInterpolationScheme 332 -#define tTime 333 -#define tGrain 334 -#define tCombine 335 -#define tBSpline 336 -#define tBezier 337 -#define tNurbs 338 -#define tOrder 339 -#define tKnots 340 -#define tColor 341 -#define tColorTable 342 -#define tFor 343 -#define tIn 344 -#define tEndFor 345 -#define tIf 346 -#define tEndIf 347 -#define tExit 348 -#define tReturn 349 -#define tCall 350 -#define tFunction 351 -#define tShow 352 -#define tHide 353 -#define tGetValue 354 -#define tGMSH_MAJOR_VERSION 355 -#define tGMSH_MINOR_VERSION 356 -#define tGMSH_PATCH_VERSION 357 -#define tAFFECTPLUS 358 -#define tAFFECTMINUS 359 -#define tAFFECTTIMES 360 -#define tAFFECTDIVIDE 361 -#define tOR 362 -#define tAND 363 -#define tEQUAL 364 -#define tNOTEQUAL 365 -#define tLESSOREQUAL 366 -#define tGREATEROREQUAL 367 -#define tPLUSPLUS 368 -#define tMINUSMINUS 369 -#define UNARYPREC 370 +#define tEuclidian 266 +#define tCoordinates 267 +#define tExp 268 +#define tLog 269 +#define tLog10 270 +#define tSqrt 271 +#define tSin 272 +#define tAsin 273 +#define tCos 274 +#define tAcos 275 +#define tTan 276 +#define tRand 277 +#define tAtan 278 +#define tAtan2 279 +#define tSinh 280 +#define tCosh 281 +#define tTanh 282 +#define tFabs 283 +#define tFloor 284 +#define tCeil 285 +#define tFmod 286 +#define tModulo 287 +#define tHypot 288 +#define tPrintf 289 +#define tSprintf 290 +#define tStrCat 291 +#define tStrPrefix 292 +#define tStrRelative 293 +#define tBoundingBox 294 +#define tDraw 295 +#define tToday 296 +#define tPoint 297 +#define tCircle 298 +#define tEllipse 299 +#define tLine 300 +#define tSphere 301 +#define tPolarSphere 302 +#define tSurface 303 +#define tSpline 304 +#define tVolume 305 +#define tCharacteristic 306 +#define tLength 307 +#define tParametric 308 +#define tElliptic 309 +#define tPlane 310 +#define tRuled 311 +#define tTransfinite 312 +#define tComplex 313 +#define tPhysical 314 +#define tUsing 315 +#define tBump 316 +#define tProgression 317 +#define tPlugin 318 +#define tRotate 319 +#define tTranslate 320 +#define tSymmetry 321 +#define tDilate 322 +#define tExtrude 323 +#define tDuplicata 324 +#define tLoop 325 +#define tRecombine 326 +#define tDelete 327 +#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 #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.308 2007-02-27 17:15:47 remacle Exp $ +// $Id: Gmsh.tab.cpp,v 1.309 2007-03-02 09:20:21 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -184,6 +187,7 @@ static int ViewErrorFlags[VIEW_NB_ELEMENT_TYPES]; #define MAX_RECUR_LOOPS 100 static int ImbricatedLoop = 0; +static gmshSurface *myGmshSurface = 0; static fpos_t yyposImbricatedLoopsTab[MAX_RECUR_LOOPS]; static int yylinenoImbricatedLoopsTab[MAX_RECUR_LOOPS]; static double LoopControlVariablesTab[MAX_RECUR_LOOPS][3]; @@ -195,7 +199,7 @@ void skip_until(char *skip, char *until); int PrintListOfDouble(char *format, List_T *list, char *buffer); int CheckViewErrorFlags(Post_View *v); -#line 77 "Gmsh.y" +#line 78 "Gmsh.y" typedef union { char *c; int i; @@ -215,26 +219,26 @@ typedef union { -#define YYFINAL 1183 +#define YYFINAL 1198 #define YYFLAG -32768 -#define YYNTBASE 137 +#define YYNTBASE 140 -#define YYTRANSLATE(x) ((unsigned)(x) <= 370 ? yytranslate[x] : 204) +#define YYTRANSLATE(x) ((unsigned)(x) <= 373 ? yytranslate[x] : 207) 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, 122, 2, 132, 2, 121, 2, 2, 127, - 128, 119, 117, 133, 118, 131, 120, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 113, - 2, 115, 108, 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, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 129, 2, 130, 126, 2, 2, 2, 2, 2, 2, + 132, 2, 133, 129, 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, 134, 2, 135, 136, 2, 2, 2, 2, + 2, 2, 137, 2, 138, 139, 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, @@ -258,7 +262,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, 109, 110, 111, 112, 114, 116, 123, 124, 125 + 107, 108, 109, 110, 112, 113, 114, 115, 117, 119, + 126, 127, 128 }; #if YYDEBUG != 0 @@ -271,273 +276,276 @@ static const short yyprhs[] = { 0, 189, 190, 197, 204, 206, 208, 210, 212, 214, 216, 218, 223, 231, 241, 248, 255, 259, 266, 273, 283, 290, 300, 306, 315, 324, 336, 343, 353, 363, 373, - 375, 377, 385, 398, 407, 414, 421, 428, 436, 444, - 452, 462, 470, 480, 498, 506, 514, 526, 535, 544, - 553, 562, 570, 579, 588, 597, 605, 614, 620, 632, - 638, 648, 650, 652, 654, 655, 658, 665, 672, 679, - 686, 691, 698, 705, 712, 717, 724, 728, 733, 739, - 743, 747, 752, 757, 761, 769, 777, 781, 789, 793, - 796, 799, 815, 818, 825, 834, 843, 854, 856, 859, - 861, 865, 870, 872, 878, 890, 904, 905, 913, 914, - 928, 929, 945, 946, 953, 962, 971, 980, 993, 1006, - 1019, 1034, 1049, 1064, 1065, 1078, 1079, 1092, 1093, 1106, - 1107, 1124, 1125, 1142, 1143, 1160, 1161, 1180, 1181, 1200, - 1201, 1220, 1222, 1225, 1231, 1239, 1249, 1252, 1259, 1269, - 1279, 1288, 1298, 1307, 1316, 1323, 1328, 1339, 1350, 1361, - 1372, 1375, 1377, 1381, 1384, 1387, 1390, 1394, 1398, 1402, - 1406, 1410, 1414, 1418, 1422, 1426, 1430, 1434, 1438, 1442, - 1446, 1452, 1457, 1462, 1467, 1472, 1477, 1482, 1487, 1492, - 1497, 1502, 1509, 1514, 1519, 1524, 1529, 1534, 1539, 1546, - 1553, 1560, 1565, 1570, 1575, 1580, 1585, 1590, 1595, 1600, - 1605, 1610, 1615, 1622, 1627, 1632, 1637, 1642, 1647, 1652, - 1659, 1666, 1673, 1678, 1680, 1682, 1684, 1686, 1688, 1690, - 1692, 1694, 1700, 1705, 1710, 1713, 1719, 1723, 1730, 1735, - 1743, 1750, 1752, 1755, 1758, 1762, 1766, 1778, 1788, 1796, - 1804, 1806, 1810, 1812, 1814, 1817, 1821, 1826, 1830, 1836, - 1841, 1843, 1845, 1847, 1851, 1856, 1863, 1871, 1873, 1875, - 1879, 1883, 1893, 1901, 1903, 1909, 1913, 1920, 1922, 1926, - 1928, 1930, 1937, 1942, 1947, 1952, 1959, 1966 + 375, 377, 385, 394, 401, 408, 415, 423, 431, 439, + 449, 457, 467, 485, 493, 501, 513, 522, 531, 540, + 549, 553, 558, 569, 577, 585, 594, 603, 612, 620, + 629, 635, 647, 653, 663, 665, 667, 669, 670, 673, + 680, 687, 694, 701, 706, 713, 720, 727, 732, 739, + 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 }; -static const short yyrhs[] = { 138, - 0, 1, 6, 0, 0, 138, 139, 0, 142, 0, - 141, 0, 161, 0, 163, 0, 164, 0, 167, 0, - 168, 0, 169, 0, 170, 0, 173, 0, 189, 0, - 190, 0, 191, 0, 172, 0, 171, 0, 115, 0, - 115, 115, 0, 33, 127, 5, 128, 6, 0, 33, - 127, 5, 128, 140, 203, 6, 0, 33, 127, 5, - 133, 199, 128, 6, 0, 33, 127, 5, 133, 199, - 128, 140, 203, 6, 0, 4, 5, 134, 143, 135, - 6, 0, 4, 5, 4, 194, 134, 143, 135, 6, - 0, 0, 143, 146, 0, 143, 150, 0, 143, 153, - 0, 143, 155, 0, 143, 156, 0, 143, 158, 0, - 192, 0, 144, 133, 192, 0, 192, 0, 145, 133, - 192, 0, 0, 0, 4, 147, 127, 144, 128, 148, - 134, 145, 135, 6, 0, 203, 0, 149, 133, 203, - 0, 0, 76, 127, 192, 133, 192, 133, 192, 128, - 151, 134, 149, 135, 6, 0, 203, 0, 152, 133, - 203, 0, 0, 77, 127, 192, 133, 192, 133, 192, - 133, 192, 128, 154, 134, 152, 135, 6, 0, 78, - 134, 196, 135, 134, 196, 135, 6, 0, 0, 79, - 157, 134, 145, 135, 6, 0, 80, 127, 192, 128, - 197, 6, 0, 7, 0, 104, 0, 105, 0, 106, - 0, 107, 0, 123, 0, 124, 0, 4, 159, 192, - 6, 0, 4, 129, 192, 130, 159, 192, 6, 0, - 4, 129, 134, 199, 135, 130, 159, 197, 6, 0, - 4, 129, 130, 7, 197, 6, 0, 4, 129, 130, - 104, 197, 6, 0, 4, 160, 6, 0, 4, 129, - 192, 130, 160, 6, 0, 4, 131, 4, 7, 203, - 6, 0, 4, 129, 192, 130, 131, 4, 7, 203, - 6, 0, 4, 131, 4, 159, 192, 6, 0, 4, - 129, 192, 130, 131, 4, 159, 192, 6, 0, 4, - 131, 4, 160, 6, 0, 4, 129, 192, 130, 131, - 4, 160, 6, 0, 4, 131, 87, 131, 4, 7, - 200, 6, 0, 4, 129, 192, 130, 131, 87, 131, - 4, 7, 200, 6, 0, 4, 131, 88, 7, 201, - 6, 0, 4, 129, 192, 130, 131, 88, 7, 201, - 6, 0, 61, 127, 4, 128, 131, 4, 7, 192, - 6, 0, 61, 127, 4, 128, 131, 4, 7, 203, - 6, 0, 192, 0, 203, 0, 41, 127, 192, 128, - 7, 194, 6, 0, 41, 127, 192, 128, 90, 46, - 134, 192, 135, 7, 194, 6, 0, 57, 41, 127, - 162, 128, 7, 197, 6, 0, 72, 41, 197, 7, - 197, 6, 0, 72, 44, 197, 7, 197, 6, 0, - 49, 50, 197, 7, 192, 6, 0, 44, 127, 192, - 128, 7, 197, 6, 0, 47, 127, 192, 128, 7, - 197, 6, 0, 42, 127, 192, 128, 7, 197, 6, - 0, 42, 127, 192, 128, 7, 197, 53, 194, 6, - 0, 43, 127, 192, 128, 7, 197, 6, 0, 43, - 127, 192, 128, 7, 197, 53, 194, 6, 0, 51, - 127, 192, 128, 7, 134, 192, 133, 192, 133, 5, - 133, 5, 133, 5, 135, 6, 0, 82, 127, 192, - 128, 7, 197, 6, 0, 83, 127, 192, 128, 7, - 197, 6, 0, 84, 127, 192, 128, 7, 197, 86, - 197, 85, 192, 6, 0, 44, 68, 127, 192, 128, - 7, 197, 6, 0, 57, 44, 127, 162, 128, 7, - 197, 6, 0, 53, 46, 127, 192, 128, 7, 197, - 6, 0, 54, 46, 127, 192, 128, 7, 197, 6, - 0, 45, 127, 192, 128, 7, 197, 6, 0, 46, - 68, 127, 192, 128, 7, 197, 6, 0, 57, 46, - 127, 162, 128, 7, 197, 6, 0, 56, 48, 127, - 192, 128, 7, 197, 6, 0, 48, 127, 192, 128, - 7, 197, 6, 0, 57, 48, 127, 162, 128, 7, - 197, 6, 0, 63, 194, 134, 165, 135, 0, 62, - 134, 194, 133, 194, 133, 192, 135, 134, 165, 135, - 0, 64, 194, 134, 165, 135, 0, 65, 134, 194, - 133, 192, 135, 134, 165, 135, 0, 167, 0, 166, - 0, 164, 0, 0, 166, 163, 0, 166, 41, 134, - 199, 135, 6, 0, 166, 44, 134, 199, 135, 6, - 0, 166, 46, 134, 199, 135, 6, 0, 166, 48, - 134, 199, 135, 6, 0, 67, 134, 166, 135, 0, - 67, 4, 129, 192, 130, 6, 0, 74, 4, 129, - 192, 130, 6, 0, 75, 4, 129, 192, 130, 6, - 0, 70, 134, 166, 135, 0, 70, 4, 129, 192, - 130, 6, 0, 70, 4, 6, 0, 70, 4, 4, - 6, 0, 87, 200, 134, 166, 135, 0, 98, 203, - 6, 0, 99, 203, 6, 0, 98, 134, 166, 135, - 0, 99, 134, 166, 135, 0, 4, 203, 6, 0, - 4, 4, 129, 192, 130, 203, 6, 0, 4, 4, - 4, 129, 192, 130, 6, 0, 4, 192, 6, 0, - 61, 127, 4, 128, 131, 4, 6, 0, 81, 4, - 6, 0, 94, 6, 0, 38, 6, 0, 38, 134, - 192, 133, 192, 133, 192, 133, 192, 133, 192, 133, - 192, 135, 6, 0, 39, 6, 0, 89, 127, 192, - 8, 192, 128, 0, 89, 127, 192, 8, 192, 8, - 192, 128, 0, 89, 4, 90, 134, 192, 8, 192, - 135, 0, 89, 4, 90, 134, 192, 8, 192, 8, - 192, 135, 0, 91, 0, 97, 4, 0, 95, 0, - 96, 4, 6, 0, 92, 127, 192, 128, 0, 93, - 0, 66, 194, 134, 166, 135, 0, 66, 134, 194, - 133, 194, 133, 192, 135, 134, 166, 135, 0, 66, - 134, 194, 133, 194, 133, 194, 133, 192, 135, 134, - 166, 135, 0, 0, 66, 194, 134, 166, 174, 187, - 135, 0, 0, 66, 134, 194, 133, 194, 133, 192, - 135, 134, 166, 175, 187, 135, 0, 0, 66, 134, - 194, 133, 194, 133, 194, 133, 192, 135, 134, 166, - 176, 187, 135, 0, 0, 66, 134, 166, 177, 187, - 135, 0, 66, 41, 134, 192, 133, 194, 135, 6, - 0, 66, 44, 134, 192, 133, 194, 135, 6, 0, - 66, 46, 134, 192, 133, 194, 135, 6, 0, 66, - 41, 134, 192, 133, 194, 133, 194, 133, 192, 135, - 6, 0, 66, 44, 134, 192, 133, 194, 133, 194, - 133, 192, 135, 6, 0, 66, 46, 134, 192, 133, - 194, 133, 194, 133, 192, 135, 6, 0, 66, 41, - 134, 192, 133, 194, 133, 194, 133, 194, 133, 192, - 135, 6, 0, 66, 44, 134, 192, 133, 194, 133, - 194, 133, 194, 133, 192, 135, 6, 0, 66, 46, - 134, 192, 133, 194, 133, 194, 133, 194, 133, 192, - 135, 6, 0, 0, 66, 41, 134, 192, 133, 194, - 135, 178, 134, 187, 135, 6, 0, 0, 66, 44, - 134, 192, 133, 194, 135, 179, 134, 187, 135, 6, - 0, 0, 66, 46, 134, 192, 133, 194, 135, 180, - 134, 187, 135, 6, 0, 0, 66, 41, 134, 192, - 133, 194, 133, 194, 133, 192, 135, 181, 134, 187, - 135, 6, 0, 0, 66, 44, 134, 192, 133, 194, - 133, 194, 133, 192, 135, 182, 134, 187, 135, 6, - 0, 0, 66, 46, 134, 192, 133, 194, 133, 194, - 133, 192, 135, 183, 134, 187, 135, 6, 0, 0, - 66, 41, 134, 192, 133, 194, 133, 194, 133, 194, - 133, 192, 135, 184, 134, 187, 135, 6, 0, 0, - 66, 44, 134, 192, 133, 194, 133, 194, 133, 194, - 133, 192, 135, 185, 134, 187, 135, 6, 0, 0, - 66, 46, 134, 192, 133, 194, 133, 194, 133, 194, - 133, 192, 135, 186, 134, 187, 135, 6, 0, 188, - 0, 187, 188, 0, 73, 134, 192, 135, 6, 0, - 73, 134, 197, 133, 197, 135, 6, 0, 73, 134, - 197, 133, 197, 133, 197, 135, 6, 0, 69, 6, - 0, 55, 44, 197, 7, 192, 6, 0, 55, 44, - 197, 7, 192, 58, 60, 192, 6, 0, 55, 44, - 197, 7, 192, 58, 59, 192, 6, 0, 55, 46, - 134, 192, 135, 7, 197, 6, 0, 55, 46, 134, - 192, 135, 7, 197, 4, 6, 0, 52, 46, 134, - 192, 135, 7, 197, 6, 0, 55, 48, 134, 192, - 135, 7, 197, 6, 0, 69, 46, 197, 7, 192, - 6, 0, 69, 46, 197, 6, 0, 41, 134, 199, - 135, 90, 46, 134, 192, 135, 6, 0, 44, 134, - 199, 135, 90, 46, 134, 192, 135, 6, 0, 44, - 134, 199, 135, 90, 48, 134, 192, 135, 6, 0, - 46, 134, 199, 135, 90, 48, 134, 192, 135, 6, - 0, 71, 6, 0, 193, 0, 127, 192, 128, 0, - 118, 192, 0, 117, 192, 0, 122, 192, 0, 192, - 118, 192, 0, 192, 117, 192, 0, 192, 119, 192, - 0, 192, 120, 192, 0, 192, 121, 192, 0, 192, - 126, 192, 0, 192, 113, 192, 0, 192, 115, 192, - 0, 192, 114, 192, 0, 192, 116, 192, 0, 192, - 111, 192, 0, 192, 112, 192, 0, 192, 110, 192, - 0, 192, 109, 192, 0, 192, 108, 192, 8, 192, - 0, 12, 127, 192, 128, 0, 13, 127, 192, 128, - 0, 14, 127, 192, 128, 0, 15, 127, 192, 128, - 0, 16, 127, 192, 128, 0, 17, 127, 192, 128, - 0, 18, 127, 192, 128, 0, 19, 127, 192, 128, - 0, 20, 127, 192, 128, 0, 22, 127, 192, 128, - 0, 23, 127, 192, 133, 192, 128, 0, 24, 127, - 192, 128, 0, 25, 127, 192, 128, 0, 26, 127, - 192, 128, 0, 27, 127, 192, 128, 0, 28, 127, - 192, 128, 0, 29, 127, 192, 128, 0, 30, 127, - 192, 133, 192, 128, 0, 31, 127, 192, 133, 192, - 128, 0, 32, 127, 192, 133, 192, 128, 0, 21, - 127, 192, 128, 0, 12, 129, 192, 130, 0, 13, - 129, 192, 130, 0, 14, 129, 192, 130, 0, 15, - 129, 192, 130, 0, 16, 129, 192, 130, 0, 17, - 129, 192, 130, 0, 18, 129, 192, 130, 0, 19, - 129, 192, 130, 0, 20, 129, 192, 130, 0, 22, - 129, 192, 130, 0, 23, 129, 192, 133, 192, 130, - 0, 24, 129, 192, 130, 0, 25, 129, 192, 130, - 0, 26, 129, 192, 130, 0, 27, 129, 192, 130, - 0, 28, 129, 192, 130, 0, 29, 129, 192, 130, - 0, 30, 129, 192, 133, 192, 130, 0, 31, 129, - 192, 133, 192, 130, 0, 32, 129, 192, 133, 192, - 130, 0, 21, 129, 192, 130, 0, 3, 0, 9, - 0, 10, 0, 11, 0, 101, 0, 102, 0, 103, - 0, 4, 0, 4, 136, 134, 192, 135, 0, 4, - 129, 192, 130, 0, 132, 4, 129, 130, 0, 4, - 160, 0, 4, 129, 192, 130, 160, 0, 4, 131, - 4, 0, 4, 129, 192, 130, 131, 4, 0, 4, - 131, 4, 160, 0, 4, 129, 192, 130, 131, 4, - 160, 0, 100, 127, 5, 133, 192, 128, 0, 195, - 0, 118, 194, 0, 117, 194, 0, 194, 118, 194, - 0, 194, 117, 194, 0, 134, 192, 133, 192, 133, - 192, 133, 192, 133, 192, 135, 0, 134, 192, 133, - 192, 133, 192, 133, 192, 135, 0, 134, 192, 133, - 192, 133, 192, 135, 0, 127, 192, 133, 192, 133, - 192, 128, 0, 197, 0, 196, 133, 197, 0, 192, - 0, 198, 0, 134, 135, 0, 134, 199, 135, 0, - 118, 134, 199, 135, 0, 192, 8, 192, 0, 192, - 8, 192, 8, 192, 0, 41, 134, 192, 135, 0, - 164, 0, 167, 0, 173, 0, 4, 129, 130, 0, - 118, 4, 129, 130, 0, 4, 129, 134, 199, 135, - 130, 0, 118, 4, 129, 134, 199, 135, 130, 0, - 192, 0, 198, 0, 199, 133, 192, 0, 199, 133, - 198, 0, 134, 192, 133, 192, 133, 192, 133, 192, - 135, 0, 134, 192, 133, 192, 133, 192, 135, 0, - 4, 0, 4, 131, 87, 131, 4, 0, 134, 202, - 135, 0, 4, 129, 192, 130, 131, 88, 0, 200, - 0, 202, 133, 200, 0, 5, 0, 40, 0, 35, - 127, 203, 133, 203, 128, 0, 36, 127, 203, 128, - 0, 37, 127, 203, 128, 0, 34, 127, 203, 128, - 0, 34, 127, 203, 133, 199, 128, 0, 34, 127, - 4, 131, 4, 128, 0, 34, 127, 4, 129, 192, - 130, 131, 4, 128, 0 +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 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 142, 144, 149, 151, 154, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 172, - 177, 183, 189, 204, 217, 245, 253, 262, 270, 271, - 272, 273, 274, 275, 278, 281, 285, 288, 292, 483, - 501, 511, 517, 524, 532, 538, 544, 551, 559, 565, - 573, 578, 582, 591, 593, 594, 595, 596, 599, 601, - 604, 639, 678, 732, 749, 767, 778, 797, 811, 828, - 854, 881, 895, 912, 926, 943, 963, 986, 996, 1010, - 1015, 1023, 1045, 1068, 1084, 1112, 1142, 1164, 1182, 1200, - 1218, 1244, 1262, 1288, 1308, 1332, 1356, 1382, 1399, 1418, - 1436, 1474, 1496, 1512, 1532, 1549, 1566, 1586, 1592, 1597, - 1602, 1609, 1611, 1612, 1615, 1620, 1624, 1640, 1656, 1672, - 1692, 1705, 1711, 1717, 1728, 1738, 1748, 1764, 1782, 1796, - 1803, 1809, 1818, 1831, 1882, 1897, 1908, 1928, 1938, 1960, - 1964, 1969, 1974, 1984, 2001, 2017, 2043, 2070, 2102, 2109, - 2114, 2120, 2124, 2132, 2141, 2149, 2157, 2162, 2170, 2175, - 2183, 2188, 2196, 2201, 2210, 2217, 2224, 2231, 2238, 2245, - 2252, 2259, 2266, 2273, 2278, 2285, 2290, 2297, 2302, 2309, - 2314, 2321, 2326, 2333, 2338, 2345, 2350, 2357, 2362, 2369, - 2374, 2384, 2388, 2393, 2403, 2425, 2449, 2457, 2476, 2494, - 2512, 2541, 2576, 2581, 2608, 2622, 2640, 2647, 2653, 2656, - 2664, 2674, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, - 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, - 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, - 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, - 2720, 2721, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, - 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, - 2741, 2742, 2743, 2748, 2753, 2754, 2755, 2756, 2757, 2758, - 2762, 2778, 2793, 2813, 2827, 2840, 2863, 2881, 2899, 2917, - 2935, 2942, 2947, 2951, 2955, 2959, 2965, 2970, 2974, 2978, - 2984, 2990, 2997, 3003, 3007, 3012, 3016, 3027, 3034, 3045, - 3065, 3075, 3085, 3095, 3112, 3131, 3155, 3183, 3189, 3193, - 3197, 3209, 3214, 3226, 3233, 3254, 3259, 3273, 3279, 3285, - 3290, 3298, 3306, 3320, 3334, 3338, 3357, 3379 + 143, 145, 150, 152, 155, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 173, + 178, 184, 190, 205, 218, 246, 254, 263, 271, 272, + 273, 274, 275, 276, 279, 282, 286, 289, 293, 484, + 502, 512, 518, 525, 533, 539, 545, 552, 560, 566, + 574, 579, 583, 592, 594, 595, 596, 597, 600, 602, + 605, 640, 679, 733, 750, 768, 779, 798, 812, 829, + 855, 882, 896, 913, 927, 944, 964, 987, 997, 1011, + 1016, 1024, 1051, 1067, 1095, 1125, 1147, 1165, 1183, 1201, + 1227, 1245, 1271, 1291, 1315, 1339, 1365, 1382, 1401, 1419, + 1458, 1463, 1468, 1474, 1496, 1518, 1534, 1554, 1571, 1588, + 1608, 1614, 1619, 1624, 1631, 1633, 1634, 1637, 1642, 1646, + 1662, 1678, 1694, 1714, 1727, 1733, 1739, 1750, 1760, 1770, + 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 }; #endif @@ -545,70 +553,71 @@ static const short yyrline[] = { 0, #if YYDEBUG != 0 || defined (YYERROR_VERBOSE) static const char * const yytname[] = { "$","error","$undefined.","tDOUBLE", -"tSTRING","tBIGSTR","tEND","tAFFECT","tDOTS","tPi","tMPI_Rank","tMPI_Size","tExp", -"tLog","tLog10","tSqrt","tSin","tAsin","tCos","tAcos","tTan","tRand","tAtan", -"tAtan2","tSinh","tCosh","tTanh","tFabs","tFloor","tCeil","tFmod","tModulo", -"tHypot","tPrintf","tSprintf","tStrCat","tStrPrefix","tStrRelative","tBoundingBox", -"tDraw","tToday","tPoint","tCircle","tEllipse","tLine","tSphere","tSurface", -"tSpline","tVolume","tCharacteristic","tLength","tParametric","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","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","tGMSH_PATCH_VERSION", -"tAFFECTPLUS","tAFFECTMINUS","tAFFECTTIMES","tAFFECTDIVIDE","'?'","tOR","tAND", -"tEQUAL","tNOTEQUAL","'<'","tLESSOREQUAL","'>'","tGREATEROREQUAL","'+'","'-'", -"'*'","'/'","'%'","'!'","tPLUSPLUS","tMINUSMINUS","UNARYPREC","'^'","'('","')'", -"'['","']'","'.'","'#'","','","'{'","'}'","'~'","All","GeoFormatItems","GeoFormatItem", -"SendToFile","Printf","View","Views","ElementCoords","ElementValues","Element", -"@1","@2","Text2DValues","Text2D","@3","Text3DValues","Text3D","@4","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","ExtrudeParameter","Transfinite", -"Embedding","Coherence","FExpr","FExpr_Single","VExpr","VExpr_Single","RecursiveListOfListOfDouble", -"ListOfDouble","FExpr_Multi","RecursiveListOfDouble","ColorExpr","ListOfColor", -"RecursiveListOfColor","StringExpr", NULL +"tSTRING","tBIGSTR","tEND","tAFFECT","tDOTS","tPi","tMPI_Rank","tMPI_Size","tEuclidian", +"tCoordinates","tExp","tLog","tLog10","tSqrt","tSin","tAsin","tCos","tAcos", +"tTan","tRand","tAtan","tAtan2","tSinh","tCosh","tTanh","tFabs","tFloor","tCeil", +"tFmod","tModulo","tHypot","tPrintf","tSprintf","tStrCat","tStrPrefix","tStrRelative", +"tBoundingBox","tDraw","tToday","tPoint","tCircle","tEllipse","tLine","tSphere", +"tPolarSphere","tSurface","tSpline","tVolume","tCharacteristic","tLength","tParametric", +"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", +"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", +"tGMSH_PATCH_VERSION","tAFFECTPLUS","tAFFECTMINUS","tAFFECTTIMES","tAFFECTDIVIDE", +"'?'","tOR","tAND","tEQUAL","tNOTEQUAL","'<'","tLESSOREQUAL","'>'","tGREATEROREQUAL", +"'+'","'-'","'*'","'/'","'%'","'!'","tPLUSPLUS","tMINUSMINUS","UNARYPREC","'^'", +"'('","')'","'['","']'","'.'","'#'","','","'{'","'}'","'~'","All","GeoFormatItems", +"GeoFormatItem","SendToFile","Printf","View","Views","ElementCoords","ElementValues", +"Element","@1","@2","Text2DValues","Text2D","@3","Text3DValues","Text3D","@4", +"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", +"ExtrudeParameter","Transfinite","Embedding","Coherence","FExpr","FExpr_Single", +"VExpr","VExpr_Single","RecursiveListOfListOfDouble","ListOfDouble","FExpr_Multi", +"RecursiveListOfDouble","ColorExpr","ListOfColor","RecursiveListOfColor","StringExpr", NULL }; #endif static const short yyr1[] = { 0, - 137, 137, 138, 138, 139, 139, 139, 139, 139, 139, - 139, 139, 139, 139, 139, 139, 139, 139, 139, 140, - 140, 141, 141, 141, 141, 142, 142, 143, 143, 143, - 143, 143, 143, 143, 144, 144, 145, 145, 147, 148, - 146, 149, 149, 151, 150, 152, 152, 154, 153, 155, - 157, 156, 158, 159, 159, 159, 159, 159, 160, 160, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 162, - 162, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 164, 164, 164, - 164, 165, 165, 165, 166, 166, 166, 166, 166, 166, - 167, 167, 167, 167, 168, 168, 168, 168, 169, 170, - 170, 170, 170, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 173, 173, 173, 174, 173, 175, 173, - 176, 173, 177, 173, 173, 173, 173, 173, 173, 173, - 173, 173, 173, 178, 173, 179, 173, 180, 173, 181, - 173, 182, 173, 183, 173, 184, 173, 185, 173, 186, - 173, 187, 187, 188, 188, 188, 188, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 190, 190, 190, 190, - 191, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 193, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 194, 194, 194, 194, 194, 195, 195, 195, 195, - 196, 196, 197, 197, 197, 197, 197, 198, 198, 198, - 198, 198, 198, 198, 198, 198, 198, 199, 199, 199, - 199, 200, 200, 200, 200, 201, 201, 202, 202, 203, - 203, 203, 203, 203, 203, 203, 203, 203 + 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 }; static const short yyr2[] = { 0, @@ -620,32 +629,33 @@ static const short yyr2[] = { 0, 0, 6, 6, 1, 1, 1, 1, 1, 1, 1, 4, 7, 9, 6, 6, 3, 6, 6, 9, 6, 9, 5, 8, 8, 11, 6, 9, 9, 9, 1, - 1, 7, 12, 8, 6, 6, 6, 7, 7, 7, - 9, 7, 9, 17, 7, 7, 11, 8, 8, 8, - 8, 7, 8, 8, 8, 7, 8, 5, 11, 5, - 9, 1, 1, 1, 0, 2, 6, 6, 6, 6, - 4, 6, 6, 6, 4, 6, 3, 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, + 1, 7, 8, 6, 6, 6, 7, 7, 7, 9, + 7, 9, 17, 7, 7, 11, 8, 8, 8, 8, + 3, 4, 10, 7, 7, 8, 8, 8, 7, 8, + 5, 11, 5, 9, 1, 1, 1, 0, 2, 6, + 6, 6, 6, 4, 6, 6, 6, 4, 6, 3, + 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, - 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 + 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 }; static const short yydefact[] = { 0, @@ -653,1463 +663,1485 @@ static const short yydefact[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 148, 0, 153, 0, 150, 0, 0, 0, - 0, 4, 6, 5, 7, 8, 9, 10, 11, 12, - 13, 19, 18, 14, 15, 16, 17, 274, 281, 330, - 54, 275, 276, 277, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 331, - 0, 278, 279, 280, 55, 56, 57, 58, 0, 0, - 0, 59, 60, 0, 0, 0, 0, 0, 0, 0, - 212, 0, 0, 141, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 334, 0, 281, 282, 283, 55, 56, 57, + 58, 0, 0, 0, 59, 60, 0, 0, 0, 0, + 0, 0, 0, 215, 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, 292, 0, - 0, 0, 0, 0, 115, 0, 0, 115, 0, 0, - 115, 211, 0, 0, 0, 0, 0, 0, 0, 0, - 324, 0, 0, 0, 0, 0, 140, 0, 149, 330, - 115, 0, 115, 0, 0, 0, 0, 0, 285, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 281, 215, - 214, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 66, 137, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 134, 0, - 0, 0, 281, 0, 0, 311, 312, 313, 318, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 303, 0, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 294, 293, 0, 0, 0, 0, 115, 115, 0, 0, - 0, 0, 0, 0, 0, 163, 0, 115, 0, 0, - 0, 0, 127, 0, 0, 0, 0, 0, 0, 139, - 0, 0, 0, 0, 0, 115, 0, 0, 0, 151, - 0, 130, 0, 131, 0, 0, 287, 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, 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, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 306, 0, 307, 0, 0, 0, 0, 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, 213, - 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, - 61, 0, 230, 229, 227, 228, 223, 225, 224, 226, - 218, 217, 219, 220, 221, 222, 0, 0, 0, 0, - 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, - 81, 0, 0, 0, 0, 0, 0, 0, 296, 295, - 114, 0, 113, 112, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 116, 0, 0, 157, 0, 121, - 206, 0, 128, 0, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 152, 132, 133, - 0, 283, 289, 0, 28, 39, 0, 0, 0, 51, - 0, 0, 29, 30, 31, 32, 33, 34, 232, 253, - 233, 254, 234, 255, 235, 256, 236, 257, 237, 258, - 238, 259, 239, 260, 240, 261, 252, 273, 241, 262, - 0, 0, 243, 264, 244, 265, 245, 266, 246, 267, - 247, 268, 248, 269, 0, 0, 0, 0, 0, 0, - 0, 0, 335, 0, 0, 333, 334, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 72, 0, 0, - 0, 0, 284, 0, 22, 20, 0, 0, 0, 0, - 0, 314, 0, 0, 0, 308, 320, 321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 306, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 108, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 192, 0, 154, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 129, 0, 0, - 0, 0, 286, 0, 282, 0, 0, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 283, 64, 65, 0, - 0, 0, 0, 0, 67, 68, 70, 0, 0, 328, - 0, 76, 231, 21, 0, 0, 0, 0, 0, 0, - 310, 315, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 307, 87, 0, 0, - 0, 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 197, 0, 164, 193, 0, 0, 122, - 205, 126, 85, 86, 123, 124, 0, 0, 0, 325, - 0, 0, 0, 144, 136, 288, 135, 0, 0, 0, - 0, 0, 301, 0, 0, 242, 263, 249, 270, 250, - 271, 251, 272, 0, 337, 336, 332, 291, 0, 54, - 0, 0, 0, 0, 62, 0, 0, 0, 326, 23, - 24, 0, 0, 82, 0, 0, 0, 309, 0, 90, - 0, 92, 0, 0, 88, 0, 0, 102, 0, 0, - 89, 106, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, - 115, 0, 174, 0, 176, 0, 178, 0, 0, 0, - 0, 303, 0, 0, 0, 158, 95, 96, 0, 0, - 0, 0, 290, 27, 0, 35, 0, 0, 0, 0, - 0, 37, 0, 0, 0, 0, 0, 73, 0, 0, - 74, 0, 329, 0, 0, 0, 316, 0, 0, 0, - 0, 98, 0, 0, 103, 0, 0, 203, 100, 101, - 0, 0, 0, 201, 204, 105, 84, 99, 104, 107, - 0, 0, 0, 300, 0, 299, 0, 0, 165, 0, - 0, 166, 0, 0, 167, 0, 117, 118, 119, 120, - 0, 0, 0, 0, 0, 0, 323, 0, 146, 145, - 40, 0, 0, 0, 302, 0, 0, 0, 0, 0, - 63, 69, 71, 0, 77, 0, 25, 0, 0, 317, - 0, 91, 93, 0, 0, 0, 0, 200, 199, 202, - 78, 79, 115, 0, 111, 0, 0, 0, 0, 0, - 0, 194, 0, 115, 0, 0, 0, 0, 0, 36, - 0, 0, 0, 38, 52, 53, 338, 0, 327, 0, - 0, 207, 208, 209, 210, 0, 0, 0, 298, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 159, 0, 0, 322, 147, 0, 0, 0, 0, 75, - 0, 0, 0, 109, 0, 180, 0, 0, 182, 0, - 0, 184, 0, 0, 0, 195, 155, 0, 115, 97, - 0, 44, 0, 50, 0, 83, 0, 297, 168, 0, - 0, 175, 169, 0, 0, 177, 170, 0, 0, 179, - 0, 0, 161, 0, 0, 0, 0, 0, 0, 186, - 0, 188, 0, 190, 196, 160, 156, 0, 41, 0, - 48, 0, 0, 0, 171, 0, 0, 172, 0, 0, - 173, 0, 0, 0, 42, 0, 142, 0, 0, 0, - 0, 0, 0, 0, 162, 0, 0, 0, 0, 181, - 0, 183, 0, 185, 0, 43, 45, 0, 46, 94, - 0, 0, 0, 0, 0, 187, 189, 191, 47, 49, - 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, + 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, + 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 310, 86, 0, 0, 0, 0, 0, 201, 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, 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 }; -static const short yydefgoto[] = { 1181, - 2, 52, 617, 53, 54, 370, 905, 911, 543, 697, - 1029, 1144, 544, 1115, 1168, 545, 1146, 546, 547, 701, - 548, 118, 199, 55, 479, 505, 286, 492, 493, 287, - 59, 60, 61, 62, 63, 288, 675, 1088, 1128, 506, - 960, 963, 966, 1100, 1104, 1108, 1136, 1139, 1142, 671, - 672, 65, 66, 67, 304, 121, 321, 159, 812, 813, - 306, 291, 183, 612, 731, 481 +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 yypact[] = { 2365, - 59, 2434,-32768, 1756, -45, 1, 73, -63, -41, -27, - -60, -16, -18, -2, 29, 91, 87, 104, 124, 179, - -8, 188, 328, 207, 210, 301, 301, 221, 407, 6, - 313, 10, 371, 85, 390, 413, 439, 334, 337, 341, - 11, 24,-32768, 374,-32768, 444,-32768, 483, 489, 8, - 21,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 7, 12, --32768,-32768,-32768,-32768, 182, 211, 225, 296, 309, 315, - 365, 377, 383, 392, 393, 402, 420, 432, 455, 481, - 482, 495, 498, 502, 514, 387, 403, 424, 425,-32768, - 428,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1953, 1953, - 1953,-32768,-32768, 1953, 1369, 18, 494, 1953, 563, 849, --32768, 572, 561,-32768, 1953,-32768, 1953, 1886, 1953, 1953, - 452, 1953, 1886, 1953, 456, 1886, 1953, 1953, 1302, 1953, - 496, 460, 466, 1302, 506, 510, 470, 499, 527, 537, - 538, 586, 301, 301, 301, 1953, 1953, -93,-32768, 105, - 301, 535, 536, 544, 1595, 214, 565,-32768, 1302, 23, --32768,-32768, 1302, 1302, 573, 578, 705, 1953, 1953, 1953, - 601, 1953, 583, 658, 1953, 1953,-32768, 735,-32768,-32768, --32768, 736,-32768, 747, 625, 1953, 754, 640,-32768, 301, --32768, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, - 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, - 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, - 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953, - 1953, 1953, 1953, 503, 528, 528, 528, 770, 492, 653, - 653, 653, 4874, 30, 1886, 4161, 303, 678, 776, 660, - 878,-32768,-32768, 1953, 1953, 1953, 1953, 1953, 1953, 1953, - 1953, 1953, 1953, 1953, 1953, 1953, 1953, 1953,-32768, -13, - 3407, 4895, 543, 714, 2078,-32768,-32768,-32768, 2152,-32768, - 342, 4916, 4937, 1953, 4958, 512, 4979, 1953, 515, 5000, - 5021, 1721, 1164, 2152, 809,-32768, 5042, 1953, 1953, 1953, - 812, 1953, 1953, 1953, 2011, 2011, 2011, 2011, 703, 50, --32768,-32768, 3433, 3459, 301, 301, 634, 634, 287, 1953, - 1953, 1953, 1595, 1595, 1953, 2703, 323,-32768, 1953, 999, - 196, 833,-32768, 1953, 2493, 846, 847, 1953, 1953,-32768, - 5063, 5084, 5105, 769, 3485,-32768, 724, 2174, 5126,-32768, - 2510,-32768, 2554,-32768, 1953, 4184, 261, 1953, 345, 14, - 5147, 4207, 5168, 4230, 5189, 4253, 5210, 4276, 5231, 4299, - 5252, 4322, 5273, 4345, 5294, 4368, 5315, 4391, 5336, 4414, - 5357, 4437, 3511, 3537, 5378, 4460, 5399, 4483, 5420, 4506, - 5441, 4529, 5462, 4552, 5483, 4575, 3563, 3589, 3615, 3641, - 3667, 3693, 520, 20, 727, 731, 733, 730, 1953,-32768, - 1302, 1302, 554, 114, 528, 1953, 858, 862, 13, 737, --32768, 2193, 1158, 1045, 992, 992, 726, 726, 726, 726, - 486, 486, 653, 653, 653, 653, 54, 1886, 1953, 28, - 1428, 1953, 689, 1953, 1886, 778, 863, 864, 5504, 865, - 779, 867, 5525, 785, 869, 870, 1886,-32768, 557, 1953, - 871, 1236, 5546, 5567, 1953, 2737, 2765, 5588, 752, 5819, --32768, 757, 758, 760, 751, 301, 1953, 1953,-32768,-32768, --32768, 755, 2703,-32768, 756, 1953, 3719, 3745, 3771, 3381, - -59, -17, 55, -51,-32768, 39, 301, 2576, 4598,-32768, --32768, 1953,-32768, 4621,-32768, 1302, 1302, 4644, 4667, 885, - 887, 888, 765, 1953, 2620, 1953, 1953,-32768,-32768,-32768, - 4690, 67,-32768, 2793,-32768,-32768, 771, 772, 766,-32768, - 774, 896,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +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, -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,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 1953, 1953,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 1953, 1953, 1953, 1953, 1953, 1953, - 1953, 899,-32768, 1886, 528,-32768,-32768, 1953, 4713, 900, - 901, 780, 26, 1953, 903, 905, 1098,-32768, 906, 783, - 11, 908,-32768, 1953,-32768, 802, 528, 68, 3797, 301, - 872,-32768, 1886, 2821, 1560, 2223, 2152,-32768, 873, 1302, - 1302, 913, 1302, 607, 1302, 914, 874, 1302, 1302, 560, --32768, 1132, 789, 917, 919, 920, 685, 921, 922, 941, - 942, 943, 944, 946, 967, 348, 3823, 3849,-32768,-32768, - 2849, 301, 301, 301, 1886, 1886, 1886, 1886, 966, 842, - -7,-32768, 399,-32768, 39, 971, 1400, 972, 973, 974, - 975, 976, 1302, 1302, 1302, 979, 3875,-32768, 2242, 826, - 978, 996,-32768, 995,-32768, 19, 875, 1953, 1953, 1302, - 876, 1953,-32768, 5609, 4736, 5630, 4759, 5651, 4782, 5672, - 4805, 4828, 877, 83, 879, 5693, 176,-32768,-32768, 102, - 366, 880, 1001, 1521,-32768,-32768,-32768, 11, 1953,-32768, - 577,-32768, 5819,-32768, 1000, 57, 1953, 15, 882, 600, --32768,-32768, 1886, 1953, 883, 25, 27, 1302, 1003, 884, - 886, 1006, 1302, 889, 1008, 1013,-32768,-32768, 1953, 1302, - 1302, 1302,-32768, 339, 1302, 1302, 1302, 1302, 1302, 1302, - 1302, 405, 1953, 1953, 1953, 891, -48, 77, 82, 604, - 605, 616, 624,-32768, 1302,-32768,-32768, 1595, 4,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 1015, 1021, 945,-32768, - 1953, 1953, 1953,-32768,-32768, 261,-32768, 1022, 1953, 3901, - 3927, 647,-32768, 1953, 5714,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 898,-32768,-32768,-32768,-32768, 1302, 528, - 1953, 1026, 1029, 13,-32768, 1028, 4851, 11,-32768,-32768, --32768, 528, 3953,-32768, 1953, 907, 651, 5819, 1953,-32768, - 301,-32768, 301, 1030,-32768, 1953, 1953,-32768, 1032, 1953, --32768,-32768, 3979, 1033, 1043, 1048, 1953, 1953, 784, 1052, - 1053, 1054, 1055, 1056, 1057,-32768, 2011, 2877, 5735, 2262, - 634, 301, 1059, 301, 1061, 301, 1063, 1064, 1066, 1067, - 1069, 610, 918, 2905, 409,-32768,-32768,-32768, 1302, 2680, - 652, 5756,-32768,-32768, 96, 5819, 1953, 1953, 1302, 950, - 675, 5819, 1302, 1072, 1071, 1079, 1693,-32768, 1080, 1083, --32768, 947,-32768, 1084, 1953, 2933,-32768, 956, 2961, 43, - 47,-32768, 2989, 3017,-32768, 3045, 1953,-32768,-32768,-32768, - 1820, 2038, 1085,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 2109, 1086, 959,-32768, 1953,-32768, 960, 440,-32768, 963, - 453,-32768, 964, 459,-32768, 965,-32768,-32768,-32768,-32768, - 1088, 1302, 968, 1953, 1016, 1953,-32768, 1953,-32768,-32768, --32768, 1953, 4005, 4031,-32768, 1302, 1953, 1094, 1097, 987, --32768,-32768,-32768, 11,-32768, 1031,-32768, 4057, 1109,-32768, - 1111,-32768,-32768, 1115, 1117, 1118, 4083,-32768,-32768,-32768, --32768,-32768, 634, 2709,-32768, 1595, 39, 1595, 39, 1595, - 39,-32768, 682,-32768, 3073, 1953, 3101, 3129, 993, 5819, - 1953, 1953, 694, 5819,-32768,-32768,-32768, 1123,-32768, 1953, - 301,-32768,-32768,-32768,-32768, 1125, 997, 1953,-32768, 3157, - 463, 162, 3185, 471, 232, 3213, 484, 233, 1302, 1127, - 2637, 1002, 2128,-32768,-32768, 1953, 5777, 4109, 1129,-32768, - 4135, 75, 1004,-32768, 3241, 1133, 1953, 1134, 1136, 1953, - 1138, 1139, 1953, 1140, 1012,-32768,-32768, 39,-32768,-32768, - 697,-32768, 1953,-32768, 1953,-32768, 1143,-32768,-32768, 1035, - 3269,-32768,-32768, 1038, 3297,-32768,-32768, 1065, 3325,-32768, - 1144, 235, 2681, 1191, 1068, 5798, 3353, 1070, 39, 1192, - 39, 1194, 39, 1195,-32768,-32768,-32768, 39,-32768, 528, --32768, 1198, 1215, 266,-32768, 1087, 280,-32768, 1089, 302, --32768, 1091, 317, 702,-32768, 1099,-32768, 1014, 1216, 39, - 1226, 39, 1228, 39,-32768, 528, 1229, 528, 1230,-32768, - 320,-32768, 322,-32768, 360,-32768,-32768, 707,-32768,-32768, - 1231, 1248, 1249, 528, 1250,-32768,-32768,-32768,-32768,-32768, - 1257, 1259,-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 }; static const short yypgoto[] = {-32768, --32768,-32768, 524,-32768,-32768, 728,-32768, 195,-32768,-32768, +-32768,-32768, 519,-32768,-32768, 722,-32768, 189,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, -237, 35,-32768, -69, 1260, 0, -325, -159, 2, --32768,-32768,-32768,-32768,-32768, 1278,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -674, - -652,-32768,-32768,-32768, 48,-32768, 269,-32768, 297, -85, - -9, 38, -606, 454,-32768, -4 +-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 }; -#define YYLAST 5945 - - -static const short yytable[] = { 122, - 789, 57, 495, 58, 730, 336, 124, 131, 340, 167, - 195, 345, 190, 170, 181, 200, 610, 536, 787, 426, - 844, 257, 536, 325, 326, 190, 342, 184, 343, 721, - 850, 361, 852, 363, 620, 144, 421, 145, 119, 146, - 327, 96, 97, 98, 99, 192, 194, 100, 1002, 135, - 131, 120, 1003, 305, 96, 97, 98, 99, 311, 615, - 100, 669, 841, 127, 3, 670, 132, 127, 325, 326, - 128, 190, 669, 133, 665, 138, 670, 851, 126, 853, - 1096, 123, 668, 341, 882, 129, 883, 346, 347, 537, - 538, 539, 540, 541, 537, 538, 539, 540, 541, 130, - 96, 97, 98, 99, 258, 259, 100, 669, 71, 132, - 134, 670, 722, 723, 447, 136, 666, 621, 290, 448, - 71, 836, 135, 290, 137, 173, 290, 786, 174, 112, - 113, 325, 326, 422, 125, 196, 787, 197, 896, 168, - 139, 191, 198, 171, 182, 201, 611, 593, 542, 141, - 185, 344, 594, 808, 193, 138, 250, 251, 252, 325, - 326, 253, 256, 325, 326, 261, 325, 326, 616, 142, - 296, 616, 281, 299, 282, 289, 292, 293, 508, 295, - 289, 297, 486, 289, 300, 301, 604, 307, 667, 112, - 113, 325, 326, 325, 326, 736, 525, 692, 325, 326, - 455, 511, 512, 323, 324, 105, 106, 107, 108, 884, - 826, 885, 324, 140, 886, 455, 887, 105, 106, 107, - 108, 325, 326, 981, 143, 351, 352, 353, 982, 355, - 669, 923, 358, 359, 670, 147, 112, 113, 328, 414, - 415, 416, 417, 366, 603, 290, 482, 483, 484, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 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, 427, 423, 290, 158, 160, 1078, 166, 112, 113, - 669, 669, 289, 669, 670, 670, 692, 670, 202, 425, - 203, 432, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 491, 491, 494, 494, - 325, 326, 251, 152, 669, 600, 601, 204, 670, 205, - 469, 459, 1052, 153, 1055, 463, 1058, 338, 669, 251, - 289, 206, 670, 207, 161, 472, 473, 474, 169, 476, - 477, 478, 480, 480, 480, 480, 1081, 1084, 148, 1126, - 669, 149, 830, 150, 670, 151, 172, 497, 498, 499, - 250, 251, 500, 112, 113, 669, 509, 1038, 669, 670, - 669, 514, 670, 175, 670, 518, 519, 867, 868, 787, - 1149, 533, 787, 325, 326, 787, 105, 106, 107, 108, - 876, 877, 531, 1112, 1151, 534, 176, 154, 155, 496, - 606, 320, 208, 322, 209, 112, 113, 156, 669, 329, - 679, 680, 670, 337, 157, 210, 1153, 211, 290, 325, - 326, 212, 177, 213, 1134, 628, 1137, 162, 1140, 187, - 163, 1155, 164, 1143, 1171, 507, 1172, 290, 605, 787, - 178, 325, 326, 179, 325, 326, 599, 180, 369, 105, - 106, 107, 108, 607, 455, 1161, 456, 1163, 535, 1165, - 773, 787, 829, 831, 787, 618, 188, 787, 112, 113, - 787, 214, 189, 215, 1173, 289, 619, 260, 599, 624, - 186, 626, 627, 216, 640, 217, 413, 190, 787, 218, - 787, 219, 787, 244, 289, 325, 326, 642, 220, 222, - 221, 223, 647, 154, 155, 325, 326, 694, 224, 245, - 225, 788, 190, 156, 657, 658, 96, 97, 98, 99, - 165, 974, 100, 661, 746, 747, 226, 749, 227, 752, - 246, 247, 755, 756, 248, 957, 325, 326, 228, 677, - 229, 96, 97, 98, 99, 280, 693, 100, 262, 325, - 326, 687, 1016, 689, 690, 325, 326, 279, 294, 325, - 326, 230, 298, 231, 290, 1018, 309, 325, 326, 319, - 715, 1020, 310, 489, 490, 1077, 314, 797, 798, 799, - 325, 326, 322, 1080, 275, 276, 277, 232, 234, 233, - 235, 278, 735, 290, 112, 113, 1083, 454, 704, 705, - 419, 236, 197, 237, 238, 315, 239, 198, 240, 308, - 241, 714, 706, 707, 708, 709, 710, 711, 712, 312, - 242, 289, 243, 313, 455, 716, 461, 455, 591, 464, - 592, 724, 750, 316, 751, 290, 290, 290, 290, 978, - 740, 733, 854, 317, 318, 112, 113, 859, 330, 331, - 289, 451, 599, 197, 864, 865, 866, 332, 198, 869, - 870, 871, 872, 873, 874, 875, 455, 1047, 602, 455, - 763, 641, 455, 339, 757, 25, 26, 27, 28, 893, - 30, 348, 780, 781, 782, 783, 349, 35, 36, 838, - 350, 839, 289, 289, 289, 289, 356, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 354, 455, 290, 846, 278, 455, 455, 888, 889, - 360, 362, 764, 915, 971, 810, 811, 357, 455, 815, - 890, 693, 364, 365, 656, 832, 455, 367, 891, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 368, 418, 673, 837, 278, 278, 909, - 847, 910, 429, 455, 843, 928, 979, 943, 430, 944, - 289, 848, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 863, 987, 428, 988, - 278, 112, 113, 975, 1059, 470, 1060, 625, 475, 197, - 878, 879, 880, 985, 198, 916, 909, 989, 1069, 987, - 485, 1114, 892, 803, 1156, 894, 1157, 924, 513, 1174, - 903, 1175, 273, 274, 275, 276, 277, 452, 900, 901, - 902, 278, 516, 517, 263, 523, 906, 526, 596, 595, - 597, 912, 598, 608, 1061, 609, 613, 629, 634, 630, - 631, 633, 952, 635, 637, 638, 639, 643, 917, 651, - 491, 655, 494, 431, 652, 653, 1023, 654, 738, 659, - 660, 683, 926, 684, 685, 686, 929, 698, 699, 700, - 702, 703, 713, 933, 934, 718, 719, 936, 725, 720, - 726, 729, 728, 732, 941, 942, 734, 739, 745, 748, - 753, 754, 759, 760, 951, 761, 762, 765, 766, 1113, - 777, 778, 779, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 767, 768, 769, - 770, 278, 771, 804, 983, 984, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 772, 784, 998, 1085, 278, 785, 790, 792, 793, 794, - 795, 796, 800, 805, 1007, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 806, - 807, 809, 1014, 278, 825, 840, 827, 834, 855, 814, - 833, 858, 491, 861, 494, 845, 849, 856, 862, 857, - 897, 1025, 860, 1027, 881, 1028, 898, 904, 914, 1030, - 899, 918, 919, 921, 1034, 932, 927, 935, 938, 501, - 9, 10, 502, 12, 503, 14, 504, 16, 939, 17, - 972, 19, 20, 940, 22, 23, 895, 945, 946, 947, - 948, 949, 950, 1050, 959, 1053, 962, 1056, 965, 967, - 34, 968, 969, 1063, 970, 990, 991, 996, 1067, 1068, - 38, 39, 40, 986, 992, 1000, 994, 1071, 995, 997, - 1010, 1012, 1013, 1022, 1015, 1075, 1017, 1019, 1021, 1035, - 1026, 1024, 1036, 727, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 912, 1037, 1041, 1042, 278, 1039, 930, - 1043, 931, 1044, 1045, 1101, 1145, 1066, 1105, 1070, 1073, - 1109, 1074, 1086, 510, 1094, 1089, 1097, 758, 1099, 1102, - 1116, 1103, 1117, 1106, 1107, 1110, 1111, 1118, 1159, 1125, - 958, 1166, 961, 1169, 964, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 68, 283, 1119, 1179, - 278, 1121, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 1129, 1135, 1123, 1138, - 1141, 1130, 1133, 1147, 284, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 1148, - 1150, 1160, 1152, 278, 1154, 25, 26, 27, 28, 29, - 30, 1162, 1158, 1164, 1167, 1170, 1176, 35, 36, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 1177, 1178, 1180, 1182, 278, 1183, 842, - 1091, 56, 696, 101, 102, 103, 104, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 64, - 109, 285, 1033, 278, 1051, 111, 1054, 920, 1057, 0, - 114, 0, 0, 0, 0, 117, 0, 0, 468, 0, - 0, 0, 0, 0, 68, 283, 0, 0, 0, 1072, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 0, 0, 0, 0, 0, 0, - 0, 0, 284, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 0, 0, 0, - 0, 278, 0, 25, 26, 27, 28, 29, 30, 0, - 644, 68, 249, 0, 0, 35, 36, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 101, 102, 103, 104, 791, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 109, 302, - 0, 0, 0, 111, 0, 0, 0, 0, 114, 0, - 68, 249, 0, 117, 0, 303, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, - 103, 104, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 109, 110, 0, 0, 0, - 111, 0, 0, 0, 0, 114, 0, 0, 254, 0, - 117, 0, 255, 0, 0, 0, 0, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 0, 0, 0, 0, 278, 835, 101, 102, 103, - 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 110, 0, 0, 0, 111, - 0, 0, 0, 0, 114, 0, 0, 622, 0, 117, - 0, 623, 68, 249, 0, 0, 0, 0, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 0, 0, 0, 0, 0, 68, 249, 0, - 0, 0, 0, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 0, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, - 102, 103, 104, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 109, 110, 0, 0, - 0, 111, 0, 0, 0, 0, 114, 0, 0, 742, - 0, 117, 0, 743, 101, 102, 103, 104, 993, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 333, 334, 0, 0, 0, 111, 0, 0, 0, - 0, 335, 0, 68, 453, 0, 117, 0, 157, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, +#define YYLAST 6044 + + +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, + 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, 0, 0, 0, 0, 0, 68, 69, - 70, 0, 71, 0, 72, 73, 74, 75, 76, 77, + 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, 0, 96, - 97, 98, 99, 0, 0, 100, 0, 0, 0, 0, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 101, 102, 103, 104, 0, 1008, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 109, 110, 0, - 0, 0, 111, 0, 0, 0, 0, 114, 0, 0, - 0, 0, 117, 0, 467, 101, 102, 103, 104, 105, - 106, 107, 108, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 109, 110, 0, 0, 0, 111, 112, 113, - 0, 0, 114, 0, 115, 0, 116, 117, 68, 283, - 0, 0, 0, 0, 72, 73, 74, 75, 76, 77, + 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, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 0, 0, - 0, 0, 0, 0, 0, 0, 284, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 0, 0, 0, 0, 278, 0, 25, 26, 27, - 28, 29, 30, 0, 0, 68, 249, 0, 0, 35, - 36, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 101, 102, 103, 104, 0, + 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, + 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, + 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, 0, 0, - 0, 0, 109, 285, 0, 0, 0, 111, 0, 0, - 0, 0, 114, 68, 249, 190, 0, 117, 0, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 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, 1009, 96, 97, 98, 99, 0, 0, - 100, 0, 101, 102, 103, 104, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, - 110, 0, 0, 0, 111, 0, 0, 0, 0, 114, - 68, 453, 0, 0, 117, 0, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 93, 94, 95, 96, 97, 98, 0, 99, 100, 101, + 102, 71, 256, 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, - 101, 102, 103, 104, 1011, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 109, 110, 0, - 0, 0, 111, 1090, 0, 0, 0, 114, 0, 0, - 0, 0, 117, 0, 0, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 454, - 0, 0, 0, 278, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 101, 102, 103, - 104, 527, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 109, 110, 0, 0, 0, 111, - 614, 0, 0, 0, 114, 0, 0, 0, 0, 117, - 0, 0, 0, 0, 0, 0, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 744, 0, 0, 0, 278, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 802, - 0, 0, 0, 278, 0, 0, 0, 0, 0, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 0, 0, 0, 0, 278, 0, 0, - 0, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 0, 0, 0, 0, 278, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, + 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, + 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, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 0, -3, 1, 0, 278, -3, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 0, 0, 0, 0, 278, 0, 0, - 0, 0, 0, 0, 955, 0, 956, -3, 0, 0, - 0, 0, -3, -3, 0, -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, 4, -3, -3, - 0, 0, 0, 0, 0, -3, -3, -3, -3, 0, - 0, -3, 0, -3, 0, -3, -3, -3, -3, -3, - -3, -3, -3, -3, 0, 0, 5, 0, 0, 0, - 0, 6, 7, 0, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 0, 17, 18, 19, 20, 21, 22, - 23, 0, 0, 0, 24, 25, 26, 27, 28, 29, - 30, 0, 31, 32, 33, 34, 0, 35, 36, 0, - 0, 0, 0, 0, 37, 38, 39, 40, 0, 0, - 41, 0, 42, 0, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 501, 9, 10, 502, 12, 503, 14, - 504, 16, 0, 17, 0, 19, 20, 0, 22, 23, - 501, 9, 10, 502, 12, 503, 14, 504, 16, 0, - 17, 0, 19, 20, 34, 22, 23, 0, 0, 0, - 0, 0, 0, 0, 38, 39, 40, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 38, 39, 40, 501, 9, 10, 502, 12, 503, - 14, 504, 16, 0, 17, 0, 19, 20, 0, 22, - 23, 0, 0, 0, 0, 0, 501, 9, 10, 502, - 12, 503, 14, 504, 16, 34, 17, 515, 19, 20, - 0, 22, 23, 0, 0, 38, 39, 40, 0, 0, - 0, 0, 0, 0, 529, 0, 0, 34, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 38, 39, 40, - 501, 9, 10, 502, 12, 503, 14, 504, 16, 0, - 17, 0, 19, 20, 0, 22, 23, 501, 9, 10, - 502, 12, 503, 14, 504, 16, 0, 17, 530, 19, - 20, 34, 22, 23, 0, 0, 0, 0, 0, 0, - 0, 38, 39, 40, 0, 0, 0, 0, 34, 0, - 674, 0, 0, 0, 0, 0, 0, 0, 38, 39, - 40, 501, 9, 10, 502, 12, 503, 14, 504, 16, - 0, 17, 0, 19, 20, 0, 22, 23, 0, 0, - 0, 0, 0, 501, 9, 10, 502, 12, 503, 14, - 504, 16, 34, 17, 688, 19, 20, 0, 22, 23, - 0, 0, 38, 39, 40, 0, 0, 0, 0, 0, - 0, 1087, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 38, 39, 40, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 0, 0, 0, 0, 278, 0, 0, 0, 0, - 0, 0, 976, 0, 977, 1127, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, - 0, 1048, 0, 1049, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, - 0, 648, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 0, 0, 0, 0, 0, 649, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 0, 0, 0, 0, 0, 695, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 0, 741, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, - 0, 0, 0, 776, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, - 0, 953, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 0, 0, 0, 0, 0, 973, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 0, 0, 0, 0, 0, 999, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 0, 1001, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, - 0, 0, 0, 1004, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, - 0, 1005, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 0, 0, 0, 0, 0, 1006, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 0, 0, 0, 0, 0, 1062, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 0, 1064, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, - 0, 0, 0, 1065, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, - 0, 1076, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 0, 0, 0, 0, 0, 1079, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 0, 0, 0, 0, 0, 1082, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 0, 0, 0, 0, 0, 1098, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, - 0, 0, 0, 1120, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, - 0, 1122, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 0, 0, 0, 0, 0, 1124, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 0, 0, 0, 0, 0, 1132, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 420, 0, - 0, 0, 0, 487, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 0, 0, 0, 449, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 0, 0, 0, 487, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, - 0, 488, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 0, 0, 0, 524, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 0, 0, 0, 571, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 0, 0, 0, 572, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 0, 0, 0, 585, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, - 0, 586, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 0, 0, 0, 587, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 0, 0, 0, 588, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 0, 0, 0, 589, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 0, 0, 0, 590, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, - 0, 662, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 0, 0, 0, 663, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 0, 0, 0, 664, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 0, 0, 0, 737, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 0, 0, 0, 774, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, - 0, 775, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 0, 0, 0, 801, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 0, 0, 0, 907, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 0, 0, 0, 908, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 0, 0, 0, 925, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, - 0, 937, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 0, 0, 0, 1031, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 0, 0, 0, 1032, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 0, 0, 0, 1040, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 0, 0, 0, 1046, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, - 0, 1093, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 0, 0, 0, 1095, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 424, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 0, 0, 0, 0, 278, - 0, 0, 0, 532, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 550, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 0, 0, 0, 0, 278, 0, 0, 0, 552, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 554, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 0, 0, 0, - 0, 278, 0, 0, 0, 556, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 558, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 0, 0, 0, 0, 278, 0, 0, - 0, 560, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 562, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, - 0, 0, 0, 278, 0, 0, 0, 564, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 566, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 0, 0, 0, 0, 278, - 0, 0, 0, 568, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 570, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 0, 0, 0, 0, 278, 0, 0, 0, 574, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 576, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 0, 0, 0, - 0, 278, 0, 0, 0, 578, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 580, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 0, 0, 0, 0, 278, 0, 0, - 0, 582, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 584, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, - 0, 0, 0, 278, 0, 0, 0, 676, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 678, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 0, 0, 0, 0, 278, - 0, 0, 0, 681, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 0, 0, 682, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 0, 0, 0, 0, 278, 0, 0, 0, 691, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 0, 0, 717, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 0, 0, 0, - 0, 278, 0, 0, 0, 817, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 0, 0, 819, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 0, 0, 0, 0, 278, 0, 0, - 0, 821, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 0, 0, 823, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, - 0, 0, 0, 278, 0, 0, 0, 824, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 0, 0, - 922, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 0, 0, 0, 0, 278, - 0, 420, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 450, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 0, 0, 0, - 0, 278, 0, 457, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 458, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, - 0, 0, 0, 278, 0, 460, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 462, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 0, 0, 0, 0, 278, 0, 465, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 466, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 0, 0, 0, 0, 278, 0, 471, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 520, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 0, 0, 0, 0, 278, - 0, 521, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 522, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 0, 0, 0, - 0, 278, 0, 528, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 549, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, - 0, 0, 0, 278, 0, 551, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 553, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 0, 0, 0, 0, 278, 0, 555, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 557, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 0, 0, 0, 0, 278, 0, 559, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 561, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 0, 0, 0, 0, 278, - 0, 563, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 565, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 0, 0, 0, - 0, 278, 0, 567, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 569, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, - 0, 0, 0, 278, 0, 573, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 575, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 0, 0, 0, 0, 278, 0, 577, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 579, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 0, 0, 0, 0, 278, 0, 581, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 583, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 0, 0, 0, 0, 278, - 0, 632, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 636, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 0, 0, 0, - 0, 278, 0, 645, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 646, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, - 0, 0, 0, 278, 0, 650, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278, 0, 816, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 0, 0, 0, 0, 278, 0, 818, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 0, 0, 0, 0, 278, 0, 820, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 0, 0, 0, 0, 278, 0, 822, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 0, 0, 0, 0, 278, 0, - 828, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 0, 0, 0, 0, 278, - 0, 913, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 0, 0, 0, 0, - 278, 0, 954, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 0, 0, 0, - 0, 278, 0, 980, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 0, 0, - 0, 0, 278, 0, 1092, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 0, - 0, 0, 0, 278, 0, 1131, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 0, 0, 0, 0, 278 + 541, 37, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 41, 42, 43, 0, 1103, 0, 0, 271, 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 0, 0, 0, 0, 285, 0, 0, 0, 574, 271, + 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, + 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, + 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, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 0, 0, 0, 0, 285, 0, 0, 0, 596, 271, + 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, + 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, + 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, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 0, 0, 0, 0, 285, 0, 0, 0, 837, 271, + 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, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 0, 0, 0, 0, 285, 0, 431, 271, + 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, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 0, 0, 0, 0, 285, 0, 479, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 0, 0, 0, 0, 285, 0, 485, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 0, 0, 0, 0, 285, 0, 534, 271, + 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, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 0, 0, 0, 0, 285, 0, 571, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 0, 0, 0, 0, 285, 0, 573, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 0, 0, 0, 0, 285, 0, 575, 271, + 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, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 0, 0, 0, 0, 285, 0, 593, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 0, 0, 0, 0, 285, 0, 595, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 0, 0, 0, 0, 285, 0, 597, 271, + 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, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 0, 0, 0, 0, 285, 0, 834, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 0, 0, 0, 0, 285, 0, 836, 271, 272, + 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, + 283, 284, 0, 0, 0, 0, 285, 0, 838, 271, + 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 }; static const short yycheck[] = { 4, - 675, 2, 328, 2, 611, 165, 6, 68, 168, 4, - 4, 171, 5, 4, 4, 4, 4, 4, 671, 257, - 6, 4, 4, 117, 118, 5, 4, 4, 6, 4, - 6, 191, 6, 193, 7, 44, 7, 46, 4, 48, - 134, 34, 35, 36, 37, 50, 51, 40, 6, 68, - 68, 4, 6, 139, 34, 35, 36, 37, 144, 6, - 40, 69, 6, 127, 6, 73, 127, 127, 117, 118, - 134, 5, 69, 134, 134, 127, 73, 53, 6, 53, - 6, 127, 134, 169, 133, 127, 135, 173, 174, 76, - 77, 78, 79, 80, 76, 77, 78, 79, 80, 127, - 34, 35, 36, 37, 87, 88, 40, 69, 7, 127, - 127, 73, 87, 88, 128, 134, 134, 90, 128, 133, - 7, 728, 68, 133, 127, 41, 136, 135, 44, 123, - 124, 117, 118, 104, 134, 129, 789, 131, 135, 134, - 50, 134, 136, 134, 134, 134, 134, 128, 135, 46, - 127, 129, 133, 135, 134, 127, 109, 110, 111, 117, - 118, 114, 115, 117, 118, 118, 117, 118, 115, 46, - 133, 115, 125, 136, 127, 128, 129, 130, 338, 132, - 133, 134, 133, 136, 137, 138, 424, 140, 134, 123, - 124, 117, 118, 117, 118, 128, 356, 131, 117, 118, - 133, 6, 7, 156, 157, 104, 105, 106, 107, 133, - 128, 135, 165, 127, 133, 133, 135, 104, 105, 106, - 107, 117, 118, 128, 46, 178, 179, 180, 133, 182, - 69, 838, 185, 186, 73, 48, 123, 124, 134, 244, - 245, 246, 247, 196, 131, 255, 316, 317, 318, 202, - 203, 204, 205, 206, 207, 208, 209, 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, 257, 255, 303, 26, 27, 135, 29, 123, 124, - 69, 69, 255, 69, 73, 73, 131, 73, 127, 7, - 129, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 327, 328, 327, 328, - 117, 118, 285, 127, 69, 421, 422, 127, 73, 129, - 303, 294, 1017, 134, 1019, 298, 1021, 134, 69, 302, - 303, 127, 73, 129, 134, 308, 309, 310, 46, 312, - 313, 314, 315, 316, 317, 318, 135, 135, 41, 135, - 69, 44, 7, 46, 73, 48, 6, 330, 331, 332, - 333, 334, 335, 123, 124, 69, 339, 994, 69, 73, - 69, 344, 73, 4, 73, 348, 349, 59, 60, 1052, - 135, 367, 1055, 117, 118, 1058, 104, 105, 106, 107, - 6, 7, 365, 1088, 135, 368, 4, 117, 118, 133, - 425, 153, 127, 155, 129, 123, 124, 127, 69, 161, - 516, 517, 73, 165, 134, 127, 135, 129, 448, 117, - 118, 127, 4, 129, 1119, 455, 1121, 41, 1123, 6, - 44, 135, 46, 1128, 135, 133, 135, 467, 424, 1112, - 127, 117, 118, 127, 117, 118, 419, 127, 200, 104, - 105, 106, 107, 426, 133, 1150, 135, 1152, 134, 1154, - 133, 1134, 720, 721, 1137, 448, 4, 1140, 123, 124, - 1143, 127, 4, 129, 135, 448, 449, 4, 451, 452, - 127, 454, 455, 127, 467, 129, 4, 5, 1161, 127, - 1163, 129, 1165, 127, 467, 117, 118, 470, 127, 127, - 129, 129, 475, 117, 118, 117, 118, 532, 127, 127, - 129, 133, 5, 127, 487, 488, 34, 35, 36, 37, - 134, 133, 40, 496, 630, 631, 127, 633, 129, 635, - 127, 127, 638, 639, 127, 881, 117, 118, 127, 512, - 129, 34, 35, 36, 37, 5, 532, 40, 6, 117, - 118, 524, 133, 526, 527, 117, 118, 6, 127, 117, - 118, 127, 127, 129, 594, 133, 127, 117, 118, 4, - 595, 133, 127, 325, 326, 133, 127, 683, 684, 685, - 117, 118, 334, 133, 119, 120, 121, 127, 127, 129, - 129, 126, 617, 623, 123, 124, 133, 8, 571, 572, - 129, 127, 131, 129, 127, 127, 129, 136, 127, 134, - 129, 594, 585, 586, 587, 588, 589, 590, 591, 134, - 127, 594, 129, 134, 133, 598, 135, 133, 129, 135, - 131, 604, 46, 127, 48, 665, 666, 667, 668, 8, - 623, 614, 748, 127, 127, 123, 124, 753, 134, 134, - 623, 129, 625, 131, 760, 761, 762, 134, 136, 765, - 766, 767, 768, 769, 770, 771, 133, 1013, 135, 133, - 6, 135, 133, 129, 135, 62, 63, 64, 65, 785, - 67, 129, 665, 666, 667, 668, 129, 74, 75, 133, - 6, 135, 665, 666, 667, 668, 134, 108, 109, 110, + 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, + 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, + 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, 131, 133, 743, 135, 126, 133, 133, 135, 135, - 6, 6, 58, 829, 135, 698, 699, 90, 133, 702, - 135, 717, 6, 129, 486, 721, 133, 4, 135, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 134, 5, 507, 729, 126, 126, 133, - 743, 135, 7, 133, 737, 135, 135, 4, 129, 6, - 743, 744, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 759, 133, 131, 135, - 126, 123, 124, 899, 133, 7, 135, 129, 7, 131, - 773, 774, 775, 909, 136, 830, 133, 913, 135, 133, - 128, 135, 785, 8, 133, 788, 135, 842, 6, 133, - 806, 135, 117, 118, 119, 120, 121, 134, 801, 802, - 803, 126, 7, 7, 6, 87, 809, 134, 128, 133, - 128, 814, 133, 6, 1024, 4, 130, 90, 90, 7, - 7, 7, 877, 7, 90, 7, 7, 7, 831, 128, - 881, 131, 881, 6, 128, 128, 972, 128, 620, 135, - 135, 7, 845, 7, 7, 131, 849, 127, 127, 134, - 127, 6, 4, 856, 857, 6, 6, 860, 6, 130, - 6, 129, 7, 6, 867, 868, 115, 46, 46, 7, - 7, 48, 134, 7, 877, 7, 7, 7, 7, 1089, - 662, 663, 664, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 7, 7, 7, - 7, 126, 7, 128, 907, 908, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 4, 6, 925, 1059, 126, 134, 6, 6, 6, 6, - 6, 6, 4, 6, 937, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 4, - 6, 127, 955, 126, 128, 6, 128, 7, 6, 134, - 131, 6, 1013, 6, 1013, 134, 134, 134, 6, 134, - 6, 974, 134, 976, 134, 978, 6, 6, 131, 982, - 86, 6, 4, 6, 987, 6, 130, 6, 6, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 6, 51, - 133, 53, 54, 6, 56, 57, 788, 6, 6, 6, - 6, 6, 6, 1016, 6, 1018, 6, 1020, 6, 6, - 72, 6, 6, 1026, 6, 4, 6, 131, 1031, 1032, - 82, 83, 84, 134, 6, 130, 7, 1040, 6, 6, - 6, 6, 134, 6, 135, 1048, 134, 134, 134, 6, - 85, 134, 6, 6, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 1066, 128, 7, 6, 126, 88, 851, - 6, 853, 6, 6, 1077, 1130, 134, 1080, 6, 5, - 1083, 135, 6, 135, 6, 134, 133, 6, 6, 6, - 1093, 6, 1095, 6, 6, 6, 135, 5, 135, 6, - 882, 1156, 884, 1158, 886, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 3, 4, 134, 1174, - 126, 134, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 6, 6, 134, 6, - 6, 134, 133, 6, 41, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 5, - 134, 6, 134, 126, 134, 62, 63, 64, 65, 66, - 67, 6, 134, 6, 6, 6, 6, 74, 75, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 6, 6, 6, 0, 126, 0, 736, - 1066, 2, 535, 100, 101, 102, 103, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 2, - 117, 118, 986, 126, 1016, 122, 1018, 834, 1020, -1, - 127, -1, -1, -1, -1, 132, -1, -1, 135, -1, - -1, -1, -1, -1, 3, 4, -1, -1, -1, 1041, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 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, + 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, -1, -1, -1, -1, -1, -1, - -1, -1, 41, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, - -1, 126, -1, 62, 63, 64, 65, 66, 67, -1, - 135, 3, 4, -1, -1, 74, 75, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 100, 101, 102, 103, 6, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 117, 118, - -1, -1, -1, 122, -1, -1, -1, -1, 127, -1, - 3, 4, -1, 132, -1, 134, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 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, - -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, - 102, 103, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 117, 118, -1, -1, -1, - 122, -1, -1, -1, -1, 127, -1, -1, 130, -1, - 132, -1, 134, -1, -1, -1, -1, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, -1, -1, -1, -1, 126, 6, 100, 101, 102, - 103, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 117, 118, -1, -1, -1, 122, - -1, -1, -1, -1, 127, -1, -1, 130, -1, 132, - -1, 134, 3, 4, -1, -1, -1, -1, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, -1, -1, -1, -1, -1, 3, 4, -1, - -1, -1, -1, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, -1, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, - 101, 102, 103, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 117, 118, -1, -1, - -1, 122, -1, -1, -1, -1, 127, -1, -1, 130, - -1, 132, -1, 134, 100, 101, 102, 103, 6, -1, + 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, + 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 117, 118, -1, -1, -1, 122, -1, -1, -1, - -1, 127, -1, 3, 4, -1, 132, -1, 134, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + -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, -1, -1, -1, -1, -1, 3, 4, - 5, -1, 7, -1, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, -1, 34, - 35, 36, 37, -1, -1, 40, -1, -1, -1, -1, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - 100, 101, 102, 103, -1, 6, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, - -1, -1, 122, -1, -1, -1, -1, 127, -1, -1, - -1, -1, 132, -1, 134, 100, 101, 102, 103, 104, - 105, 106, 107, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 117, 118, -1, -1, -1, 122, 123, 124, - -1, -1, 127, -1, 129, -1, 131, 132, 3, 4, - -1, -1, -1, -1, 9, 10, 11, 12, 13, 14, + 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, -1, -1, - -1, -1, -1, -1, -1, -1, 41, 108, 109, 110, + 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, -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, 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, -1, -1, -1, -1, 126, -1, 62, 63, 64, - 65, 66, 67, -1, -1, 3, 4, -1, -1, 74, - 75, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 100, 101, 102, 103, -1, + 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, -1, 117, 118, -1, -1, -1, 122, -1, -1, - -1, -1, 127, 3, 4, 5, -1, 132, -1, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 6, 34, 35, 36, 37, -1, -1, - 40, -1, 100, 101, 102, 103, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 117, - 118, -1, -1, -1, 122, -1, -1, -1, -1, 127, - 3, 4, -1, -1, 132, -1, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 100, 101, 102, 103, 6, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, - -1, -1, 122, 6, -1, -1, -1, 127, -1, -1, - -1, -1, 132, -1, -1, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 8, - -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 100, 101, 102, - 103, 8, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 117, 118, -1, -1, -1, 122, - 8, -1, -1, -1, 127, -1, -1, -1, -1, 132, - -1, -1, -1, -1, -1, -1, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 8, -1, -1, -1, 126, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 8, - -1, -1, -1, 126, -1, -1, -1, -1, -1, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, - -1, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -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, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, 0, 1, -1, 126, 4, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, - -1, -1, -1, -1, 133, -1, 135, 33, -1, -1, - -1, -1, 38, 39, -1, 41, 42, 43, 44, 45, - 46, 47, 48, 49, -1, 51, 52, 53, 54, 55, - 56, 57, -1, -1, -1, 61, 62, 63, 64, 65, - 66, 67, -1, 69, 70, 71, 72, 4, 74, 75, - -1, -1, -1, -1, -1, 81, 82, 83, 84, -1, - -1, 87, -1, 89, -1, 91, 92, 93, 94, 95, - 96, 97, 98, 99, -1, -1, 33, -1, -1, -1, - -1, 38, 39, -1, 41, 42, 43, 44, 45, 46, - 47, 48, 49, -1, 51, 52, 53, 54, 55, 56, - 57, -1, -1, -1, 61, 62, 63, 64, 65, 66, - 67, -1, 69, 70, 71, 72, -1, 74, 75, -1, - -1, -1, -1, -1, 81, 82, 83, 84, -1, -1, - 87, -1, 89, -1, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 41, 42, 43, 44, 45, 46, 47, - 48, 49, -1, 51, -1, 53, 54, -1, 56, 57, - 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, - 51, -1, 53, 54, 72, 56, 57, -1, -1, -1, - -1, -1, -1, -1, 82, 83, 84, -1, -1, -1, - -1, 72, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 82, 83, 84, 41, 42, 43, 44, 45, 46, - 47, 48, 49, -1, 51, -1, 53, 54, -1, 56, - 57, -1, -1, -1, -1, -1, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 72, 51, 135, 53, 54, - -1, 56, 57, -1, -1, 82, 83, 84, -1, -1, - -1, -1, -1, -1, 135, -1, -1, 72, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, - 41, 42, 43, 44, 45, 46, 47, 48, 49, -1, - 51, -1, 53, 54, -1, 56, 57, 41, 42, 43, - 44, 45, 46, 47, 48, 49, -1, 51, 135, 53, - 54, 72, 56, 57, -1, -1, -1, -1, -1, -1, - -1, 82, 83, 84, -1, -1, -1, -1, 72, -1, - 135, -1, -1, -1, -1, -1, -1, -1, 82, 83, - 84, 41, 42, 43, 44, 45, 46, 47, 48, 49, - -1, 51, -1, 53, 54, -1, 56, 57, -1, -1, - -1, -1, -1, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 72, 51, 135, 53, 54, -1, 56, 57, - -1, -1, 82, 83, 84, -1, -1, -1, -1, -1, - -1, 135, -1, -1, 72, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, 83, 84, 108, 109, 110, + -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, + 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, -1, -1, -1, -1, 126, -1, -1, -1, -1, - -1, -1, 133, -1, 135, 135, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, 133, -1, 135, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, - -1, 135, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, -1, -1, 135, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, -1, -1, 135, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - -1, -1, -1, -1, -1, 135, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, -1, -1, 135, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, - -1, 135, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, -1, -1, 135, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, -1, -1, 135, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - -1, -1, -1, -1, -1, 135, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, -1, -1, 135, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, - -1, 135, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, -1, -1, 135, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, -1, -1, 135, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - -1, -1, -1, -1, -1, 135, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, -1, -1, 135, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, - -1, 135, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, -1, -1, 135, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, -1, -1, 135, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - -1, -1, -1, -1, -1, 135, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, -1, -1, 135, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, - -1, 135, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, -1, -1, 135, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, -1, -1, 135, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, 128, -1, - -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - -1, -1, -1, 133, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, -1, -1, -1, 133, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, -1, -1, -1, 133, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, - -1, 133, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, -1, -1, -1, 133, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, - -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, + 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, + 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, + -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, + 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, 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, + 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, 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, 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, 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, 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, -1, -1, -1, -1, 126, -1, -1, -1, 130, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, - -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, + 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, 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, + 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, 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, 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, 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, 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, + 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, 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, 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, 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, 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, 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, + 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, - -1, -1, -1, -1, 126, -1, -1, -1, 130, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, - -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, - -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, - -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, + 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, 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, 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, -1, -1, -1, -1, 126, -1, -1, -1, 130, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, - -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, + 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, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, 130, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, - -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, - -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, - -1, -1, -1, 130, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, -1, -1, 130, 108, 109, 110, + 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, 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, 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, -1, -1, -1, -1, 126, -1, -1, -1, 130, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - -1, -1, 130, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, - -1, 126, -1, -1, -1, 130, 108, 109, 110, 111, + 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, 115, 116, 117, 118, 119, 120, 121, - -1, -1, -1, -1, 126, -1, -1, -1, 130, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, - -1, 130, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, -1, -1, 130, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, - -1, -1, -1, 126, -1, -1, -1, 130, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, - 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, - -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, - -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, - -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, + 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, 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, - -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, + 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, 128, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, - -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, - -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, - -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, + 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, 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, - -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, + 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, 128, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, - -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, - -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, - -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, + 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, 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, - -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, + 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, 128, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, - -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, - -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, - -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, + 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, 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, - -1, -1, -1, -1, 126, -1, 128, 108, 109, 110, + 122, 123, 124, -1, -1, -1, -1, 129, -1, 131, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, -1, -1, -1, -1, 126, -1, 128, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, -1, -1, -1, 126, -1, 128, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, -1, -1, -1, 126, -1, 128, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, -1, -1, -1, 126, -1, - 128, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, -1, -1, -1, 126, - -1, 128, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, -1, -1, -1, - 126, -1, 128, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, -1, -1, - -1, 126, -1, 128, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, -1, -1, - -1, -1, 126, -1, 128, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, - -1, -1, -1, 126, -1, 128, 108, 109, 110, 111, + 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, 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, - -1, -1, -1, -1, 126 + 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 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" @@ -2655,90 +2687,90 @@ yyreduce: switch (yyn) { case 2: -#line 144 "Gmsh.y" +#line 145 "Gmsh.y" { yyerrok; return 1; ; break;} case 5: -#line 155 "Gmsh.y" +#line 156 "Gmsh.y" { return 1; ; break;} case 6: -#line 156 "Gmsh.y" +#line 157 "Gmsh.y" { return 1; ; break;} case 7: -#line 157 "Gmsh.y" +#line 158 "Gmsh.y" { return 1; ; break;} case 8: -#line 158 "Gmsh.y" +#line 159 "Gmsh.y" { return 1; ; break;} case 9: -#line 159 "Gmsh.y" +#line 160 "Gmsh.y" { List_Delete(yyvsp[0].l); return 1; ; break;} case 10: -#line 160 "Gmsh.y" +#line 161 "Gmsh.y" { List_Delete(yyvsp[0].l); return 1; ; break;} case 11: -#line 161 "Gmsh.y" +#line 162 "Gmsh.y" { return 1; ; break;} case 12: -#line 162 "Gmsh.y" +#line 163 "Gmsh.y" { return 1; ; break;} case 13: -#line 163 "Gmsh.y" +#line 164 "Gmsh.y" { return 1; ; break;} case 14: -#line 164 "Gmsh.y" +#line 165 "Gmsh.y" { List_Delete(yyvsp[0].l); return 1; ; break;} case 15: -#line 165 "Gmsh.y" +#line 166 "Gmsh.y" { return 1; ; break;} case 16: -#line 166 "Gmsh.y" +#line 167 "Gmsh.y" { return 1; ; break;} case 17: -#line 167 "Gmsh.y" +#line 168 "Gmsh.y" { return 1; ; break;} case 18: -#line 168 "Gmsh.y" +#line 169 "Gmsh.y" { return 1; ; break;} case 19: -#line 169 "Gmsh.y" +#line 170 "Gmsh.y" { return 1; ; break;} case 20: -#line 174 "Gmsh.y" +#line 175 "Gmsh.y" { yyval.c = "w"; ; break;} case 21: -#line 178 "Gmsh.y" +#line 179 "Gmsh.y" { yyval.c = "a"; ; break;} case 22: -#line 185 "Gmsh.y" +#line 186 "Gmsh.y" { Msg(DIRECT, yyvsp[-2].c); Free(yyvsp[-2].c); ; break;} case 23: -#line 190 "Gmsh.y" +#line 191 "Gmsh.y" { char tmpstring[1024]; FixRelativePath(yyvsp[-1].c, tmpstring); @@ -2755,7 +2787,7 @@ case 23: ; break;} case 24: -#line 205 "Gmsh.y" +#line 206 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-4].c, yyvsp[-2].l, tmpstring); @@ -2770,7 +2802,7 @@ case 24: ; break;} case 25: -#line 218 "Gmsh.y" +#line 219 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-6].c, yyvsp[-4].l, tmpstring); @@ -2796,7 +2828,7 @@ case 25: ; break;} case 26: -#line 247 "Gmsh.y" +#line 248 "Gmsh.y" { if(!strcmp(yyvsp[-5].c, "View") && !CheckViewErrorFlags(View)){ EndView(View, 0, yyname, yyvsp[-4].c); @@ -2805,7 +2837,7 @@ case 26: ; break;} case 27: -#line 254 "Gmsh.y" +#line 255 "Gmsh.y" { if(!strcmp(yyvsp[-7].c, "View") && !CheckViewErrorFlags(View)){ EndView(View, 0, yyname, yyvsp[-6].c); @@ -2814,7 +2846,7 @@ case 27: ; break;} case 28: -#line 264 "Gmsh.y" +#line 265 "Gmsh.y" { View = BeginView(1); for(int i = 0; i < VIEW_NB_ELEMENT_TYPES; i++){ @@ -2823,23 +2855,23 @@ case 28: ; break;} case 35: -#line 280 "Gmsh.y" +#line 281 "Gmsh.y" { ViewCoord[ViewCoordIdx] = yyvsp[0].d; ViewCoordIdx++; ; break;} case 36: -#line 282 "Gmsh.y" +#line 283 "Gmsh.y" { ViewCoord[ViewCoordIdx] = yyvsp[0].d; ViewCoordIdx++; ; break;} case 37: -#line 287 "Gmsh.y" +#line 288 "Gmsh.y" { if(ViewValueList) List_Add(ViewValueList, &yyvsp[0].d); ; break;} case 38: -#line 289 "Gmsh.y" +#line 290 "Gmsh.y" { if(ViewValueList) List_Add(ViewValueList, &yyvsp[0].d); ; break;} case 39: -#line 294 "Gmsh.y" +#line 295 "Gmsh.y" { if(!strcmp(yyvsp[0].c, "SP")){ ViewElementIdx = 0; ViewNumNodes = 1; ViewNumComp = 1; @@ -3031,7 +3063,7 @@ case 39: ; break;} case 40: -#line 484 "Gmsh.y" +#line 485 "Gmsh.y" { if(ViewValueList){ if(ViewCoordIdx != 3 * ViewNumNodes){ @@ -3051,7 +3083,7 @@ case 40: ; break;} case 41: -#line 502 "Gmsh.y" +#line 503 "Gmsh.y" { if(ViewValueList){ if((List_Nbr(ViewValueList) - ViewNumListTmp) % (ViewNumComp * ViewNumNodes)) @@ -3061,21 +3093,21 @@ case 41: ; break;} case 42: -#line 513 "Gmsh.y" +#line 514 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} case 43: -#line 518 "Gmsh.y" +#line 519 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} case 44: -#line 526 "Gmsh.y" +#line 527 "Gmsh.y" { List_Add(View->T2D, &yyvsp[-5].d); List_Add(View->T2D, &yyvsp[-3].d); List_Add(View->T2D, &yyvsp[-1].d); @@ -3084,27 +3116,27 @@ case 44: ; break;} case 45: -#line 533 "Gmsh.y" +#line 534 "Gmsh.y" { View->NbT2++; ; break;} case 46: -#line 540 "Gmsh.y" +#line 541 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} case 47: -#line 545 "Gmsh.y" +#line 546 "Gmsh.y" { for(int i = 0; i < (int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]); Free(yyvsp[0].c); ; break;} case 48: -#line 553 "Gmsh.y" +#line 554 "Gmsh.y" { List_Add(View->T3D, &yyvsp[-7].d); List_Add(View->T3D, &yyvsp[-5].d); List_Add(View->T3D, &yyvsp[-3].d); List_Add(View->T3D, &yyvsp[-1].d); @@ -3113,64 +3145,64 @@ case 48: ; break;} case 49: -#line 560 "Gmsh.y" +#line 561 "Gmsh.y" { View->NbT3++; ; break;} case 50: -#line 568 "Gmsh.y" +#line 569 "Gmsh.y" { View->adaptive = new Adaptive_Post_View(View, yyvsp[-5].l, yyvsp[-2].l); ; break;} case 51: -#line 575 "Gmsh.y" +#line 576 "Gmsh.y" { ViewValueList = View->Time; ; break;} case 52: -#line 579 "Gmsh.y" +#line 580 "Gmsh.y" { ; break;} case 53: -#line 584 "Gmsh.y" +#line 585 "Gmsh.y" { (*View->Grains) [(int)yyvsp[-3].d] = yyvsp[-1].l; ; break;} case 54: -#line 592 "Gmsh.y" +#line 593 "Gmsh.y" { yyval.i = 0; ; break;} case 55: -#line 593 "Gmsh.y" +#line 594 "Gmsh.y" { yyval.i = 1; ; break;} case 56: -#line 594 "Gmsh.y" +#line 595 "Gmsh.y" { yyval.i = 2; ; break;} case 57: -#line 595 "Gmsh.y" +#line 596 "Gmsh.y" { yyval.i = 3; ; break;} case 58: -#line 596 "Gmsh.y" +#line 597 "Gmsh.y" { yyval.i = 4; ; break;} case 59: -#line 600 "Gmsh.y" +#line 601 "Gmsh.y" { yyval.i = 1; ; break;} case 60: -#line 601 "Gmsh.y" +#line 602 "Gmsh.y" { yyval.i = -1; ; break;} case 61: -#line 609 "Gmsh.y" +#line 610 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-3].c; @@ -3203,7 +3235,7 @@ case 61: ; break;} case 62: -#line 640 "Gmsh.y" +#line 641 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-6].c; @@ -3244,7 +3276,7 @@ case 62: ; break;} case 63: -#line 679 "Gmsh.y" +#line 680 "Gmsh.y" { if(List_Nbr(yyvsp[-5].l) != List_Nbr(yyvsp[-1].l)){ yymsg(GERROR, "Incompatible array dimensions in affectation"); @@ -3300,7 +3332,7 @@ case 63: ; break;} case 64: -#line 733 "Gmsh.y" +#line 734 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-5].c; @@ -3319,7 +3351,7 @@ case 64: ; break;} case 65: -#line 750 "Gmsh.y" +#line 751 "Gmsh.y" { // appends to the list Symbol TheSymbol; @@ -3339,7 +3371,7 @@ case 65: ; break;} case 66: -#line 768 "Gmsh.y" +#line 769 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-2].c; @@ -3352,7 +3384,7 @@ case 66: ; break;} case 67: -#line 779 "Gmsh.y" +#line 780 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-5].c; @@ -3370,7 +3402,7 @@ case 67: ; break;} case 68: -#line 798 "Gmsh.y" +#line 799 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -3386,7 +3418,7 @@ case 68: ; break;} case 69: -#line 812 "Gmsh.y" +#line 813 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -3402,7 +3434,7 @@ case 69: ; break;} case 70: -#line 829 "Gmsh.y" +#line 830 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3430,7 +3462,7 @@ case 70: ; break;} case 71: -#line 855 "Gmsh.y" +#line 856 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3459,7 +3491,7 @@ case 71: ; break;} case 72: -#line 882 "Gmsh.y" +#line 883 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3475,7 +3507,7 @@ case 72: ; break;} case 73: -#line 896 "Gmsh.y" +#line 897 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -3491,7 +3523,7 @@ case 73: ; break;} case 74: -#line 913 "Gmsh.y" +#line 914 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -3507,7 +3539,7 @@ case 74: ; break;} case 75: -#line 927 "Gmsh.y" +#line 928 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -3523,7 +3555,7 @@ case 75: ; break;} case 76: -#line 944 "Gmsh.y" +#line 945 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable(0); if(!ct) @@ -3545,7 +3577,7 @@ case 76: ; break;} case 77: -#line 964 "Gmsh.y" +#line 965 "Gmsh.y" { GmshColorTable *ct = Get_ColorTable((int)yyvsp[-6].d); if(!ct) @@ -3567,7 +3599,7 @@ case 77: ; break;} case 78: -#line 987 "Gmsh.y" +#line 988 "Gmsh.y" { try { GMSH_PluginManager::instance()->setPluginOption(yyvsp[-6].c, yyvsp[-3].c, yyvsp[-1].d); @@ -3579,7 +3611,7 @@ case 78: ; break;} case 79: -#line 997 "Gmsh.y" +#line 998 "Gmsh.y" { try { GMSH_PluginManager::instance()->setPluginOption(yyvsp[-6].c, yyvsp[-3].c, yyvsp[-1].c); @@ -3591,20 +3623,20 @@ case 79: ; break;} case 80: -#line 1012 "Gmsh.y" +#line 1013 "Gmsh.y" { yyval.i = (int)yyvsp[0].d; ; break;} case 81: -#line 1016 "Gmsh.y" +#line 1017 "Gmsh.y" { yyval.i = GMODEL->setPhysicalName(std::string(yyvsp[0].c), ++THEM->MaxPhysicalNum); Free(yyvsp[0].c); ; break;} case 82: -#line 1028 "Gmsh.y" +#line 1029 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindPoint(num)){ @@ -3615,41 +3647,21 @@ case 82: double y = CTX.geom.scaling_factor * yyvsp[-1].v[1]; double z = CTX.geom.scaling_factor * yyvsp[-1].v[2]; double lc = CTX.geom.scaling_factor * yyvsp[-1].v[3]; - Vertex *v = Create_Vertex(num, x, y, z, lc, 1.0); + Vertex *v; + if (!myGmshSurface) + v = Create_Vertex(num, x, y, z, lc, 1.0); + else + v = Create_Vertex(num, x, y, myGmshSurface, lc); + Tree_Add(THEM->Points, &v); - AddToTemporaryBoundingBox(x, y, z); + AddToTemporaryBoundingBox(v->Pos.X,v->Pos.Y,v->Pos.Z); } yyval.s.Type = MSH_POINT; yyval.s.Num = num; ; break;} case 83: -#line 1046 "Gmsh.y" -{ - int num = (int)yyvsp[-9].d; - if(FindPoint(num)){ - yymsg(GERROR, "Point %d already exists", num); - } - else{ - double u = CTX.geom.scaling_factor * yyvsp[-1].v[0]; - double v = CTX.geom.scaling_factor * yyvsp[-1].v[1]; - double lc = CTX.geom.scaling_factor * yyvsp[-1].v[2]; - gmshSurface *surf = gmshSurface::surfaceByTag((int)yyvsp[-4].d); - if(!surf){ - yymsg(GERROR, "gmshSurface %d does not exist", (int)yyvsp[-4].d); - } - else{ - Vertex *vt = Create_Vertex(num, u, v, surf, lc); - Tree_Add(THEM->Points, &vt); - AddToTemporaryBoundingBox(vt->Pos.X,vt->Pos.Y,vt->Pos.Z); - } - } - yyval.s.Type = MSH_POINT; - yyval.s.Num = num; - ; - break;} -case 84: -#line 1069 "Gmsh.y" +#line 1052 "Gmsh.y" { int num = (int)yyvsp[-4].i; if(FindPhysicalGroup(num, MSH_PHYSICAL_POINT)){ @@ -3666,8 +3678,8 @@ case 84: yyval.s.Num = num; ; break;} -case 85: -#line 1085 "Gmsh.y" +case 84: +#line 1068 "Gmsh.y" { double pars[] = { CTX.lc/10, CTX.lc/100., CTX.lc/20, 10, 3 }; for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ @@ -3696,8 +3708,8 @@ case 85: yyval.s.Num = 0; ; break;} -case 86: -#line 1113 "Gmsh.y" +case 85: +#line 1096 "Gmsh.y" { double pars[] = { CTX.lc/10, CTX.lc/100., CTX.lc/20, 10, 3 }; for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ @@ -3728,8 +3740,8 @@ case 86: yyval.s.Num = 0; ; break;} -case 87: -#line 1143 "Gmsh.y" +case 86: +#line 1126 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -3749,8 +3761,8 @@ case 87: yyval.s.Num = 0; ; break;} -case 88: -#line 1165 "Gmsh.y" +case 87: +#line 1148 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -3769,8 +3781,8 @@ case 88: yyval.s.Num = num; ; break;} -case 89: -#line 1183 "Gmsh.y" +case 88: +#line 1166 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -3789,8 +3801,8 @@ case 89: yyval.s.Num = num; ; break;} -case 90: -#line 1201 "Gmsh.y" +case 89: +#line 1184 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -3809,8 +3821,8 @@ case 90: yyval.s.Num = num; ; break;} -case 91: -#line 1219 "Gmsh.y" +case 90: +#line 1202 "Gmsh.y" { int num = (int)yyvsp[-6].d; if(FindCurve(num)){ @@ -3837,8 +3849,8 @@ case 91: yyval.s.Num = num; ; break;} -case 92: -#line 1245 "Gmsh.y" +case 91: +#line 1228 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindCurve(num)){ @@ -3857,8 +3869,8 @@ case 92: yyval.s.Num = num; ; break;} -case 93: -#line 1263 "Gmsh.y" +case 92: +#line 1246 "Gmsh.y" { int num = (int)yyvsp[-6].d; if(FindCurve(num)){ @@ -3885,8 +3897,8 @@ case 93: yyval.s.Num = num; ; break;} -case 94: -#line 1290 "Gmsh.y" +case 93: +#line 1273 "Gmsh.y" { int num = (int)yyvsp[-14].d; if(FindCurve(num)){ @@ -3906,8 +3918,8 @@ case 94: yyval.s.Num = num; ; break;} -case 95: -#line 1309 "Gmsh.y" +case 94: +#line 1292 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(List_Nbr(yyvsp[-1].l) < 4){ @@ -3932,8 +3944,8 @@ case 95: yyval.s.Num = num; ; break;} -case 96: -#line 1333 "Gmsh.y" +case 95: +#line 1316 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(List_Nbr(yyvsp[-1].l) < 4){ @@ -3958,8 +3970,8 @@ case 96: yyval.s.Num = num; ; break;} -case 97: -#line 1357 "Gmsh.y" +case 96: +#line 1340 "Gmsh.y" { int num = (int)yyvsp[-8].d; if(List_Nbr(yyvsp[-5].l) + (int)yyvsp[-1].d + 1 != List_Nbr(yyvsp[-3].l)){ @@ -3986,8 +3998,8 @@ case 97: yyval.s.Num = num; ; break;} -case 98: -#line 1383 "Gmsh.y" +case 97: +#line 1366 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindEdgeLoop(num)){ @@ -4005,8 +4017,8 @@ case 98: yyval.s.Num = num; ; break;} -case 99: -#line 1400 "Gmsh.y" +case 98: +#line 1383 "Gmsh.y" { int num = (int)yyvsp[-4].i; if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE)){ @@ -4023,8 +4035,8 @@ case 99: yyval.s.Num = num; ; break;} -case 100: -#line 1419 "Gmsh.y" +case 99: +#line 1402 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindSurface(num)){ @@ -4043,8 +4055,8 @@ case 100: yyval.s.Num = num; ; break;} -case 101: -#line 1437 "Gmsh.y" +case 100: +#line 1420 "Gmsh.y" { int num = (int)yyvsp[-4].d, type = 0; if(FindSurface(num)){ @@ -4083,7 +4095,26 @@ case 101: yyval.s.Num = num; ; break;} +case 101: +#line 1459 "Gmsh.y" +{ + myGmshSurface = 0; + ; + break;} case 102: +#line 1464 "Gmsh.y" +{ + myGmshSurface = gmshSurface :: surfaceByTag ( (int) yyvsp[-1].d); + ; + break;} +case 103: +#line 1469 "Gmsh.y" +{ + int num = (int)yyvsp[-6].d, type = 0; + myGmshSurface = gmshParametricSurface::NewParametricSurface ((int)yyvsp[-6].d,yyvsp[-3].c,yyvsp[-2].c,yyvsp[-1].c); + ; + break;} +case 104: #line 1475 "Gmsh.y" { int num = (int)yyvsp[-4].d, type = 0; @@ -4099,7 +4130,7 @@ case 102: Vertex *v2 = FindPoint((int)p2); if(!v1) yymsg(GERROR, "Sphere %d : unknown point %d", num, (int)p1); if(!v2) yymsg(GERROR, "Sphere %d : unknown point %d", num, (int)p2); - gmshSurface *myGmshSurface = gmshSphere::NewSphere + myGmshSurface = gmshSphere::NewSphere (num, v1->Pos.X, v1->Pos.Y, v1->Pos.Z, sqrt((v2->Pos.X - v1->Pos.X) * (v2->Pos.X - v1->Pos.X) + (v2->Pos.Y - v1->Pos.Y) * (v2->Pos.Y - v1->Pos.Y) + @@ -4107,8 +4138,32 @@ case 102: } ; break;} -case 103: +case 105: #line 1497 "Gmsh.y" +{ + int num = (int)yyvsp[-4].d, type = 0; + if (List_Nbr(yyvsp[-1].l) != 2){ + yymsg(GERROR, "PolarSphere %d has to be defined using 2 points (center + " + "any point) and not %d", num, List_Nbr(yyvsp[-1].l)); + } + else{ + double p1,p2; + List_Read(yyvsp[-1].l, 0, &p1); + List_Read(yyvsp[-1].l, 1, &p2); + Vertex *v1 = FindPoint((int)p1); + Vertex *v2 = FindPoint((int)p2); + if(!v1) yymsg(GERROR, "PolarSphere %d : unknown point %d", num, (int)p1); + if(!v2) yymsg(GERROR, "PolarSphere %d : unknown point %d", num, (int)p2); + myGmshSurface = gmshPolarSphere::NewPolarSphere + (num, v1->Pos.X, v1->Pos.Y, v1->Pos.Z, + sqrt((v2->Pos.X - v1->Pos.X) * (v2->Pos.X - v1->Pos.X) + + (v2->Pos.Y - v1->Pos.Y) * (v2->Pos.Y - v1->Pos.Y) + + (v2->Pos.Z - v1->Pos.Z) * (v2->Pos.Z - v1->Pos.Z))); + } + ; + break;} +case 106: +#line 1519 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindSurfaceLoop(num)){ @@ -4125,8 +4180,8 @@ case 103: yyval.s.Num = num; ; break;} -case 104: -#line 1513 "Gmsh.y" +case 107: +#line 1535 "Gmsh.y" { int num = (int)yyvsp[-4].i; if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE)){ @@ -4143,8 +4198,8 @@ case 104: yyval.s.Num = num; ; break;} -case 105: -#line 1533 "Gmsh.y" +case 108: +#line 1555 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindVolume(num)){ @@ -4162,8 +4217,8 @@ case 105: yyval.s.Num = num; ; break;} -case 106: -#line 1550 "Gmsh.y" +case 109: +#line 1572 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindVolume(num)){ @@ -4181,8 +4236,8 @@ case 106: yyval.s.Num = num; ; break;} -case 107: -#line 1567 "Gmsh.y" +case 110: +#line 1589 "Gmsh.y" { int num = (int)yyvsp[-4].i; if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME)){ @@ -4199,60 +4254,60 @@ case 107: yyval.s.Num = num; ; break;} -case 108: -#line 1588 "Gmsh.y" +case 111: +#line 1610 "Gmsh.y" { TranslateShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-1].l); yyval.l = yyvsp[-1].l; ; break;} -case 109: -#line 1593 "Gmsh.y" +case 112: +#line 1615 "Gmsh.y" { RotateShapes(yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l); yyval.l = yyvsp[-1].l; ; break;} -case 110: -#line 1598 "Gmsh.y" +case 113: +#line 1620 "Gmsh.y" { SymmetryShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-3].v[3], yyvsp[-1].l); yyval.l = yyvsp[-1].l; ; break;} -case 111: -#line 1603 "Gmsh.y" +case 114: +#line 1625 "Gmsh.y" { DilatShapes(yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l); yyval.l = yyvsp[-1].l; ; break;} -case 112: -#line 1610 "Gmsh.y" +case 115: +#line 1632 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 113: -#line 1611 "Gmsh.y" +case 116: +#line 1633 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 114: -#line 1612 "Gmsh.y" +case 117: +#line 1634 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 115: -#line 1617 "Gmsh.y" +case 118: +#line 1639 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); ; break;} -case 116: -#line 1621 "Gmsh.y" +case 119: +#line 1643 "Gmsh.y" { List_Add(yyval.l, &yyvsp[0].s); ; break;} -case 117: -#line 1625 "Gmsh.y" +case 120: +#line 1647 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4269,8 +4324,8 @@ case 117: } ; break;} -case 118: -#line 1641 "Gmsh.y" +case 121: +#line 1663 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4287,8 +4342,8 @@ case 118: } ; break;} -case 119: -#line 1657 "Gmsh.y" +case 122: +#line 1679 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4305,8 +4360,8 @@ case 119: } ; break;} -case 120: -#line 1673 "Gmsh.y" +case 123: +#line 1695 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -4323,8 +4378,8 @@ case 120: } ; break;} -case 121: -#line 1694 "Gmsh.y" +case 124: +#line 1716 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ @@ -4336,32 +4391,32 @@ case 121: List_Delete(yyvsp[-1].l); ; break;} -case 122: -#line 1706 "Gmsh.y" +case 125: +#line 1728 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0); Free(yyvsp[-4].c); yyval.l = NULL; ; break;} -case 123: -#line 1712 "Gmsh.y" +case 126: +#line 1734 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 0); Free(yyvsp[-4].c); yyval.l = NULL; ; break;} -case 124: -#line 1718 "Gmsh.y" +case 127: +#line 1740 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) AliasView((int)yyvsp[-2].d, 1); Free(yyvsp[-4].c); yyval.l = NULL; ; break;} -case 125: -#line 1730 "Gmsh.y" +case 128: +#line 1752 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4371,8 +4426,8 @@ case 125: List_Delete(yyvsp[-1].l); ; break;} -case 126: -#line 1739 "Gmsh.y" +case 129: +#line 1761 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")){ RemoveViewByIndex((int)yyvsp[-2].d); @@ -4383,8 +4438,8 @@ case 126: Free(yyvsp[-4].c); ; break;} -case 127: -#line 1749 "Gmsh.y" +case 130: +#line 1771 "Gmsh.y" { if(!strcmp(yyvsp[-1].c, "Meshes") || !strcmp(yyvsp[-1].c, "All")){ GMODEL->destroy(); @@ -4401,8 +4456,8 @@ case 127: Free(yyvsp[-1].c); ; break;} -case 128: -#line 1765 "Gmsh.y" +case 131: +#line 1787 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Empty") && !strcmp(yyvsp[-1].c, "Views")){ for(int i = List_Nbr(CTX.post.list) - 1; i >= 0; i--){ @@ -4417,8 +4472,8 @@ case 128: Free(yyvsp[-2].c); Free(yyvsp[-1].c); ; break;} -case 129: -#line 1784 "Gmsh.y" +case 132: +#line 1806 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4428,24 +4483,24 @@ case 129: List_Delete(yyvsp[-1].l); ; break;} -case 130: -#line 1798 "Gmsh.y" +case 133: +#line 1820 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape(yyvsp[-1].c, i, 1); Free(yyvsp[-1].c); ; break;} -case 131: -#line 1804 "Gmsh.y" +case 134: +#line 1826 "Gmsh.y" { for(int i = 0; i < 4; i++) VisibilityShape(yyvsp[-1].c, i, 0); Free(yyvsp[-1].c); ; break;} -case 132: -#line 1810 "Gmsh.y" +case 135: +#line 1832 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4455,8 +4510,8 @@ case 132: List_Delete(yyvsp[-1].l); ; break;} -case 133: -#line 1819 "Gmsh.y" +case 136: +#line 1841 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -4466,8 +4521,8 @@ case 133: List_Delete(yyvsp[-1].l); ; break;} -case 134: -#line 1833 "Gmsh.y" +case 137: +#line 1855 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Include")){ char tmpstring[1024]; @@ -4518,8 +4573,8 @@ case 134: Free(yyvsp[-2].c); Free(yyvsp[-1].c); ; break;} -case 135: -#line 1883 "Gmsh.y" +case 138: +#line 1905 "Gmsh.y" { if(!strcmp(yyvsp[-6].c, "Save") && !strcmp(yyvsp[-5].c, "View")){ Post_View **vv = (Post_View **)List_Pointer_Test(CTX.post.list, (int)yyvsp[-3].d); @@ -4535,8 +4590,8 @@ case 135: Free(yyvsp[-6].c); Free(yyvsp[-5].c); Free(yyvsp[-1].c); ; break;} -case 136: -#line 1898 "Gmsh.y" +case 139: +#line 1920 "Gmsh.y" { if(!strcmp(yyvsp[-6].c, "Background") && !strcmp(yyvsp[-5].c, "Mesh") && !strcmp(yyvsp[-4].c, "View")){ Post_View **vv = (Post_View **)List_Pointer_Test(CTX.post.list, (int)yyvsp[-2].d); @@ -4548,8 +4603,8 @@ case 136: Free(yyvsp[-6].c); Free(yyvsp[-5].c); Free(yyvsp[-4].c); ; break;} -case 137: -#line 1909 "Gmsh.y" +case 140: +#line 1931 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Sleep")){ SleepInSeconds(yyvsp[-1].d); @@ -4570,8 +4625,8 @@ case 137: Free(yyvsp[-2].c); ; break;} -case 138: -#line 1929 "Gmsh.y" +case 141: +#line 1951 "Gmsh.y" { try { GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0); @@ -4582,8 +4637,8 @@ case 138: Free(yyvsp[-4].c); Free(yyvsp[-1].c); ; break;} -case 139: -#line 1939 "Gmsh.y" +case 142: +#line 1961 "Gmsh.y" { if(!strcmp(yyvsp[-1].c, "ElementsFromAllViews")) CombineViews(0, 1, CTX.post.combine_remove_orig); @@ -4606,36 +4661,36 @@ case 139: Free(yyvsp[-1].c); ; break;} -case 140: -#line 1961 "Gmsh.y" +case 143: +#line 1983 "Gmsh.y" { exit(0); ; break;} -case 141: -#line 1965 "Gmsh.y" +case 144: +#line 1987 "Gmsh.y" { CTX.forced_bbox = 0; SetBoundingBox(); ; break;} -case 142: -#line 1970 "Gmsh.y" +case 145: +#line 1992 "Gmsh.y" { CTX.forced_bbox = 1; SetBoundingBox(yyvsp[-12].d, yyvsp[-10].d, yyvsp[-8].d, yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d); ; break;} -case 143: -#line 1975 "Gmsh.y" +case 146: +#line 1997 "Gmsh.y" { #if defined(HAVE_FLTK) Draw(); #endif ; break;} -case 144: -#line 1987 "Gmsh.y" +case 147: +#line 2009 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -4651,8 +4706,8 @@ case 144: if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor"); ; break;} -case 145: -#line 2002 "Gmsh.y" +case 148: +#line 2024 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -4669,8 +4724,8 @@ case 145: skip_until("For", "EndFor"); ; break;} -case 146: -#line 2018 "Gmsh.y" +case 149: +#line 2040 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -4697,8 +4752,8 @@ case 146: if(yyvsp[-3].d > yyvsp[-1].d) skip_until("For", "EndFor"); ; break;} -case 147: -#line 2044 "Gmsh.y" +case 150: +#line 2066 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -4726,8 +4781,8 @@ case 147: skip_until("For", "EndFor"); ; break;} -case 148: -#line 2071 "Gmsh.y" +case 151: +#line 2093 "Gmsh.y" { if(ImbricatedLoop <= 0){ yymsg(GERROR, "Invalid For/EndFor loop"); @@ -4760,8 +4815,8 @@ case 148: } ; break;} -case 149: -#line 2103 "Gmsh.y" +case 152: +#line 2125 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno)) yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c); @@ -4769,34 +4824,34 @@ case 149: //FIXME: wee leak $2 ; break;} -case 150: -#line 2110 "Gmsh.y" +case 153: +#line 2132 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno)) yymsg(GERROR, "Error while exiting function"); ; break;} -case 151: -#line 2115 "Gmsh.y" +case 154: +#line 2137 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c, &yyin, yyname, yylineno)) yymsg(GERROR, "Unknown function %s", yyvsp[-1].c); //FIXME: wee leak $2 ; break;} -case 152: -#line 2121 "Gmsh.y" +case 155: +#line 2143 "Gmsh.y" { if(!yyvsp[-1].d) skip_until("If", "EndIf"); ; break;} -case 153: -#line 2125 "Gmsh.y" +case 156: +#line 2147 "Gmsh.y" { ; break;} -case 154: -#line 2134 "Gmsh.y" +case 157: +#line 2156 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, yyvsp[-1].l, @@ -4805,8 +4860,8 @@ case 154: List_Delete(yyvsp[-1].l); ; break;} -case 155: -#line 2142 "Gmsh.y" +case 158: +#line 2164 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, yyvsp[-1].l, @@ -4815,8 +4870,8 @@ case 155: List_Delete(yyvsp[-1].l); ; break;} -case 156: -#line 2150 "Gmsh.y" +case 159: +#line 2172 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-1].l, @@ -4825,15 +4880,15 @@ case 156: List_Delete(yyvsp[-1].l); ; break;} -case 157: -#line 2158 "Gmsh.y" +case 160: +#line 2180 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 158: -#line 2163 "Gmsh.y" +case 161: +#line 2185 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE, yyvsp[-3].l, @@ -4842,15 +4897,15 @@ case 158: List_Delete(yyvsp[-3].l); ; break;} -case 159: -#line 2171 "Gmsh.y" +case 162: +#line 2193 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 160: -#line 2176 "Gmsh.y" +case 163: +#line 2198 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(ROTATE, yyvsp[-3].l, @@ -4859,15 +4914,15 @@ case 160: List_Delete(yyvsp[-3].l); ; break;} -case 161: -#line 2184 "Gmsh.y" +case 164: +#line 2206 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 162: -#line 2189 "Gmsh.y" +case 165: +#line 2211 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShapes(TRANSLATE_ROTATE, yyvsp[-3].l, @@ -4876,15 +4931,15 @@ case 162: List_Delete(yyvsp[-3].l); ; break;} -case 163: -#line 2197 "Gmsh.y" +case 166: +#line 2219 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 164: -#line 2202 "Gmsh.y" +case 167: +#line 2224 "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., @@ -4892,8 +4947,8 @@ case 164: List_Delete(yyvsp[-3].l); ; break;} -case 165: -#line 2211 "Gmsh.y" +case 168: +#line 2233 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-4].d, @@ -4901,8 +4956,8 @@ case 165: NULL, yyval.l); ; break;} -case 166: -#line 2218 "Gmsh.y" +case 169: +#line 2240 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-4].d, @@ -4910,8 +4965,8 @@ case 166: NULL, yyval.l); ; break;} -case 167: -#line 2225 "Gmsh.y" +case 170: +#line 2247 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-4].d, @@ -4919,8 +4974,8 @@ case 167: NULL, yyval.l); ; break;} -case 168: -#line 2232 "Gmsh.y" +case 171: +#line 2254 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-8].d, @@ -4928,8 +4983,8 @@ case 168: NULL, yyval.l); ; break;} -case 169: -#line 2239 "Gmsh.y" +case 172: +#line 2261 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -4937,8 +4992,8 @@ case 169: NULL, yyval.l); ; break;} -case 170: -#line 2246 "Gmsh.y" +case 173: +#line 2268 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -4946,8 +5001,8 @@ case 170: NULL, yyval.l); ; break;} -case 171: -#line 2253 "Gmsh.y" +case 174: +#line 2275 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-10].d, @@ -4955,8 +5010,8 @@ case 171: NULL, yyval.l); ; break;} -case 172: -#line 2260 "Gmsh.y" +case 175: +#line 2282 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-10].d, @@ -4964,8 +5019,8 @@ case 172: NULL, yyval.l); ; break;} -case 173: -#line 2267 "Gmsh.y" +case 176: +#line 2289 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-10].d, @@ -4973,15 +5028,15 @@ case 173: NULL, yyval.l); ; break;} -case 174: -#line 2274 "Gmsh.y" +case 177: +#line 2296 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 175: -#line 2279 "Gmsh.y" +case 178: +#line 2301 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_POINT, (int)yyvsp[-8].d, @@ -4989,15 +5044,15 @@ case 175: &extr, yyval.l); ; break;} -case 176: -#line 2286 "Gmsh.y" +case 179: +#line 2308 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 177: -#line 2291 "Gmsh.y" +case 180: +#line 2313 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SEGM_LINE, (int)yyvsp[-8].d, @@ -5005,15 +5060,15 @@ case 177: &extr, yyval.l); ; break;} -case 178: -#line 2298 "Gmsh.y" +case 181: +#line 2320 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 179: -#line 2303 "Gmsh.y" +case 182: +#line 2325 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE, MSH_SURF_PLAN, (int)yyvsp[-8].d, @@ -5021,15 +5076,15 @@ case 179: &extr, yyval.l); ; break;} -case 180: -#line 2310 "Gmsh.y" +case 183: +#line 2332 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 181: -#line 2315 "Gmsh.y" +case 184: +#line 2337 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_POINT, (int)yyvsp[-12].d, @@ -5037,15 +5092,15 @@ case 181: &extr, yyval.l); ; break;} -case 182: -#line 2322 "Gmsh.y" +case 185: +#line 2344 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 183: -#line 2327 "Gmsh.y" +case 186: +#line 2349 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SEGM_LINE, (int)yyvsp[-12].d, @@ -5053,15 +5108,15 @@ case 183: &extr, yyval.l); ; break;} -case 184: -#line 2334 "Gmsh.y" +case 187: +#line 2356 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 185: -#line 2339 "Gmsh.y" +case 188: +#line 2361 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(ROTATE, MSH_SURF_PLAN, (int)yyvsp[-12].d, @@ -5069,15 +5124,15 @@ case 185: &extr, yyval.l); ; break;} -case 186: -#line 2346 "Gmsh.y" +case 189: +#line 2368 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 187: -#line 2351 "Gmsh.y" +case 190: +#line 2373 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_POINT, (int)yyvsp[-14].d, @@ -5085,15 +5140,15 @@ case 187: &extr, yyval.l); ; break;} -case 188: -#line 2358 "Gmsh.y" +case 191: +#line 2380 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 189: -#line 2363 "Gmsh.y" +case 192: +#line 2385 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SEGM_LINE, (int)yyvsp[-14].d, @@ -5101,15 +5156,15 @@ case 189: &extr, yyval.l); ; break;} -case 190: -#line 2370 "Gmsh.y" +case 193: +#line 2392 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 191: -#line 2375 "Gmsh.y" +case 194: +#line 2397 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(Shape)); ExtrudeShape(TRANSLATE_ROTATE, MSH_SURF_PLAN, (int)yyvsp[-14].d, @@ -5117,18 +5172,18 @@ case 191: &extr, yyval.l); ; break;} -case 192: -#line 2386 "Gmsh.y" +case 195: +#line 2408 "Gmsh.y" { ; break;} -case 193: -#line 2389 "Gmsh.y" +case 196: +#line 2411 "Gmsh.y" { ; break;} -case 194: -#line 2395 "Gmsh.y" +case 197: +#line 2417 "Gmsh.y" { extr.mesh.ExtrudeMesh = true; extr.mesh.NbLayer = 1; @@ -5138,8 +5193,8 @@ case 194: extr.mesh.hLayer.push_back(1.); ; break;} -case 195: -#line 2404 "Gmsh.y" +case 198: +#line 2426 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -5162,8 +5217,8 @@ case 195: List_Delete(yyvsp[-2].l); ; break;} -case 196: -#line 2426 "Gmsh.y" +case 199: +#line 2448 "Gmsh.y" { yymsg(WARNING, "Explicit region numbers in layers are deprecated"); double d; @@ -5188,14 +5243,14 @@ case 196: List_Delete(yyvsp[-2].l); ; break;} -case 197: -#line 2450 "Gmsh.y" +case 200: +#line 2472 "Gmsh.y" { extr.mesh.Recombine = true; ; break;} -case 198: -#line 2459 "Gmsh.y" +case 201: +#line 2481 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5214,8 +5269,8 @@ case 198: List_Delete(yyvsp[-3].l); ; break;} -case 199: -#line 2477 "Gmsh.y" +case 202: +#line 2499 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5234,8 +5289,8 @@ case 199: List_Delete(yyvsp[-6].l); ; break;} -case 200: -#line 2495 "Gmsh.y" +case 203: +#line 2517 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -5254,8 +5309,8 @@ case 200: List_Delete(yyvsp[-6].l); ; break;} -case 201: -#line 2513 "Gmsh.y" +case 204: +#line 2535 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d); if(!s) @@ -5285,8 +5340,8 @@ case 201: List_Delete(yyvsp[-1].l); ; break;} -case 202: -#line 2542 "Gmsh.y" +case 205: +#line 2564 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-5].d); if(!s) @@ -5322,15 +5377,15 @@ case 202: Free(yyvsp[-1].c); ; break;} -case 203: -#line 2577 "Gmsh.y" +case 206: +#line 2599 "Gmsh.y" { yymsg(WARNING, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)"); List_Delete(yyvsp[-1].l); ; break;} -case 204: -#line 2582 "Gmsh.y" +case 207: +#line 2604 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d); if(!v) @@ -5358,8 +5413,8 @@ case 204: List_Delete(yyvsp[-1].l); ; break;} -case 205: -#line 2609 "Gmsh.y" +case 208: +#line 2631 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -5374,8 +5429,8 @@ case 205: List_Delete(yyvsp[-3].l); ; break;} -case 206: -#line 2623 "Gmsh.y" +case 209: +#line 2645 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ double d; @@ -5389,72 +5444,72 @@ case 206: List_Delete(yyvsp[-1].l); ; break;} -case 207: -#line 2642 "Gmsh.y" +case 210: +#line 2664 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-2].d); if(s) setSurfaceEmbeddedPoints(s, yyvsp[-7].l); ; break;} -case 208: -#line 2648 "Gmsh.y" +case 211: +#line 2670 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-2].d); if(s) setSurfaceEmbeddedCurves(s, yyvsp[-7].l); ; break;} -case 209: -#line 2654 "Gmsh.y" +case 212: +#line 2676 "Gmsh.y" { ; break;} -case 210: -#line 2657 "Gmsh.y" +case 213: +#line 2679 "Gmsh.y" { ; break;} -case 211: -#line 2666 "Gmsh.y" +case 214: +#line 2688 "Gmsh.y" { ReplaceAllDuplicates(); ; break;} -case 212: -#line 2675 "Gmsh.y" +case 215: +#line 2697 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 213: -#line 2676 "Gmsh.y" +case 216: +#line 2698 "Gmsh.y" { yyval.d = yyvsp[-1].d; ; break;} -case 214: -#line 2677 "Gmsh.y" +case 217: +#line 2699 "Gmsh.y" { yyval.d = -yyvsp[0].d; ; break;} -case 215: -#line 2678 "Gmsh.y" +case 218: +#line 2700 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 216: -#line 2679 "Gmsh.y" +case 219: +#line 2701 "Gmsh.y" { yyval.d = !yyvsp[0].d; ; break;} -case 217: -#line 2680 "Gmsh.y" +case 220: +#line 2702 "Gmsh.y" { yyval.d = yyvsp[-2].d - yyvsp[0].d; ; break;} -case 218: -#line 2681 "Gmsh.y" +case 221: +#line 2703 "Gmsh.y" { yyval.d = yyvsp[-2].d + yyvsp[0].d; ; break;} -case 219: -#line 2682 "Gmsh.y" +case 222: +#line 2704 "Gmsh.y" { yyval.d = yyvsp[-2].d * yyvsp[0].d; ; break;} -case 220: -#line 2684 "Gmsh.y" +case 223: +#line 2706 "Gmsh.y" { if(!yyvsp[0].d) yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d); @@ -5462,248 +5517,248 @@ case 220: yyval.d = yyvsp[-2].d / yyvsp[0].d; ; break;} -case 221: -#line 2690 "Gmsh.y" +case 224: +#line 2712 "Gmsh.y" { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d; ; break;} -case 222: -#line 2691 "Gmsh.y" +case 225: +#line 2713 "Gmsh.y" { yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ; break;} -case 223: -#line 2692 "Gmsh.y" +case 226: +#line 2714 "Gmsh.y" { yyval.d = yyvsp[-2].d < yyvsp[0].d; ; break;} -case 224: -#line 2693 "Gmsh.y" +case 227: +#line 2715 "Gmsh.y" { yyval.d = yyvsp[-2].d > yyvsp[0].d; ; break;} -case 225: -#line 2694 "Gmsh.y" +case 228: +#line 2716 "Gmsh.y" { yyval.d = yyvsp[-2].d <= yyvsp[0].d; ; break;} -case 226: -#line 2695 "Gmsh.y" +case 229: +#line 2717 "Gmsh.y" { yyval.d = yyvsp[-2].d >= yyvsp[0].d; ; break;} -case 227: -#line 2696 "Gmsh.y" +case 230: +#line 2718 "Gmsh.y" { yyval.d = yyvsp[-2].d == yyvsp[0].d; ; break;} -case 228: -#line 2697 "Gmsh.y" +case 231: +#line 2719 "Gmsh.y" { yyval.d = yyvsp[-2].d != yyvsp[0].d; ; break;} -case 229: -#line 2698 "Gmsh.y" +case 232: +#line 2720 "Gmsh.y" { yyval.d = yyvsp[-2].d && yyvsp[0].d; ; break;} -case 230: -#line 2699 "Gmsh.y" +case 233: +#line 2721 "Gmsh.y" { yyval.d = yyvsp[-2].d || yyvsp[0].d; ; break;} -case 231: -#line 2700 "Gmsh.y" +case 234: +#line 2722 "Gmsh.y" { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d; ; break;} -case 232: -#line 2701 "Gmsh.y" +case 235: +#line 2723 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} -case 233: -#line 2702 "Gmsh.y" +case 236: +#line 2724 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} -case 234: -#line 2703 "Gmsh.y" +case 237: +#line 2725 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} -case 235: -#line 2704 "Gmsh.y" +case 238: +#line 2726 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} -case 236: -#line 2705 "Gmsh.y" +case 239: +#line 2727 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} -case 237: -#line 2706 "Gmsh.y" +case 240: +#line 2728 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} -case 238: -#line 2707 "Gmsh.y" +case 241: +#line 2729 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} -case 239: -#line 2708 "Gmsh.y" +case 242: +#line 2730 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} -case 240: -#line 2709 "Gmsh.y" -{ yyval.d = tan(yyvsp[-1].d); ; +case 243: +#line 2731 "Gmsh.y" +{ yyval.d = tan(yyvsp[-1].d); ; break;} -case 241: -#line 2710 "Gmsh.y" +case 244: +#line 2732 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} -case 242: -#line 2711 "Gmsh.y" +case 245: +#line 2733 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} -case 243: -#line 2712 "Gmsh.y" +case 246: +#line 2734 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} -case 244: -#line 2713 "Gmsh.y" +case 247: +#line 2735 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} -case 245: -#line 2714 "Gmsh.y" +case 248: +#line 2736 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} -case 246: -#line 2715 "Gmsh.y" +case 249: +#line 2737 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} -case 247: -#line 2716 "Gmsh.y" +case 250: +#line 2738 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} -case 248: -#line 2717 "Gmsh.y" +case 251: +#line 2739 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} -case 249: -#line 2718 "Gmsh.y" +case 252: +#line 2740 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 250: -#line 2719 "Gmsh.y" +case 253: +#line 2741 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 251: -#line 2720 "Gmsh.y" +case 254: +#line 2742 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} -case 252: -#line 2721 "Gmsh.y" +case 255: +#line 2743 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} -case 253: -#line 2723 "Gmsh.y" +case 256: +#line 2745 "Gmsh.y" { yyval.d = exp(yyvsp[-1].d); ; break;} -case 254: -#line 2724 "Gmsh.y" +case 257: +#line 2746 "Gmsh.y" { yyval.d = log(yyvsp[-1].d); ; break;} -case 255: -#line 2725 "Gmsh.y" +case 258: +#line 2747 "Gmsh.y" { yyval.d = log10(yyvsp[-1].d); ; break;} -case 256: -#line 2726 "Gmsh.y" +case 259: +#line 2748 "Gmsh.y" { yyval.d = sqrt(yyvsp[-1].d); ; break;} -case 257: -#line 2727 "Gmsh.y" +case 260: +#line 2749 "Gmsh.y" { yyval.d = sin(yyvsp[-1].d); ; break;} -case 258: -#line 2728 "Gmsh.y" +case 261: +#line 2750 "Gmsh.y" { yyval.d = asin(yyvsp[-1].d); ; break;} -case 259: -#line 2729 "Gmsh.y" +case 262: +#line 2751 "Gmsh.y" { yyval.d = cos(yyvsp[-1].d); ; break;} -case 260: -#line 2730 "Gmsh.y" +case 263: +#line 2752 "Gmsh.y" { yyval.d = acos(yyvsp[-1].d); ; break;} -case 261: -#line 2731 "Gmsh.y" +case 264: +#line 2753 "Gmsh.y" { yyval.d = tan(yyvsp[-1].d); ; break;} -case 262: -#line 2732 "Gmsh.y" +case 265: +#line 2754 "Gmsh.y" { yyval.d = atan(yyvsp[-1].d); ; break;} -case 263: -#line 2733 "Gmsh.y" +case 266: +#line 2755 "Gmsh.y" { yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} -case 264: -#line 2734 "Gmsh.y" +case 267: +#line 2756 "Gmsh.y" { yyval.d = sinh(yyvsp[-1].d); ; break;} -case 265: -#line 2735 "Gmsh.y" +case 268: +#line 2757 "Gmsh.y" { yyval.d = cosh(yyvsp[-1].d); ; break;} -case 266: -#line 2736 "Gmsh.y" +case 269: +#line 2758 "Gmsh.y" { yyval.d = tanh(yyvsp[-1].d); ; break;} -case 267: -#line 2737 "Gmsh.y" +case 270: +#line 2759 "Gmsh.y" { yyval.d = fabs(yyvsp[-1].d); ; break;} -case 268: -#line 2738 "Gmsh.y" +case 271: +#line 2760 "Gmsh.y" { yyval.d = floor(yyvsp[-1].d); ; break;} -case 269: -#line 2739 "Gmsh.y" +case 272: +#line 2761 "Gmsh.y" { yyval.d = ceil(yyvsp[-1].d); ; break;} -case 270: -#line 2740 "Gmsh.y" +case 273: +#line 2762 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 271: -#line 2741 "Gmsh.y" +case 274: +#line 2763 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} -case 272: -#line 2742 "Gmsh.y" +case 275: +#line 2764 "Gmsh.y" { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} -case 273: -#line 2743 "Gmsh.y" +case 276: +#line 2765 "Gmsh.y" { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} -case 274: -#line 2752 "Gmsh.y" +case 277: +#line 2774 "Gmsh.y" { yyval.d = yyvsp[0].d; ; break;} -case 275: -#line 2753 "Gmsh.y" +case 278: +#line 2775 "Gmsh.y" { yyval.d = 3.141592653589793; ; break;} -case 276: -#line 2754 "Gmsh.y" +case 279: +#line 2776 "Gmsh.y" { yyval.d = ParUtil::Instance()->rank(); ; break;} -case 277: -#line 2755 "Gmsh.y" +case 280: +#line 2777 "Gmsh.y" { yyval.d = ParUtil::Instance()->size(); ; break;} -case 278: -#line 2756 "Gmsh.y" +case 281: +#line 2778 "Gmsh.y" { yyval.d = Get_GmshMajorVersion(); ; break;} -case 279: -#line 2757 "Gmsh.y" +case 282: +#line 2779 "Gmsh.y" { yyval.d = Get_GmshMinorVersion(); ; break;} -case 280: -#line 2758 "Gmsh.y" +case 283: +#line 2780 "Gmsh.y" { yyval.d = Get_GmshPatchVersion(); ; break;} -case 281: -#line 2763 "Gmsh.y" +case 284: +#line 2785 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[0].c; @@ -5717,8 +5772,8 @@ case 281: Free(yyvsp[0].c); ; break;} -case 282: -#line 2779 "Gmsh.y" +case 285: +#line 2801 "Gmsh.y" { char tmpstring[1024]; sprintf(tmpstring, "%s_%d", yyvsp[-4].c, (int)yyvsp[-1].d) ; @@ -5734,8 +5789,8 @@ case 282: Free(yyvsp[-4].c); ; break;} -case 283: -#line 2794 "Gmsh.y" +case 286: +#line 2816 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-3].c; @@ -5756,8 +5811,8 @@ case 283: Free(yyvsp[-3].c); ; break;} -case 284: -#line 2814 "Gmsh.y" +case 287: +#line 2836 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-2].c; @@ -5772,8 +5827,8 @@ case 284: Free(yyvsp[-2].c); ; break;} -case 285: -#line 2828 "Gmsh.y" +case 288: +#line 2850 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-1].c; @@ -5787,8 +5842,8 @@ case 285: Free(yyvsp[-1].c); ; break;} -case 286: -#line 2841 "Gmsh.y" +case 289: +#line 2863 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-4].c; @@ -5809,8 +5864,8 @@ case 286: Free(yyvsp[-4].c); ; break;} -case 287: -#line 2864 "Gmsh.y" +case 290: +#line 2886 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5829,8 +5884,8 @@ case 287: Free(yyvsp[-2].c); Free(yyvsp[0].c); ; break;} -case 288: -#line 2882 "Gmsh.y" +case 291: +#line 2904 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5849,8 +5904,8 @@ case 288: Free(yyvsp[-5].c); Free(yyvsp[0].c); ; break;} -case 289: -#line 2900 "Gmsh.y" +case 292: +#line 2922 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5869,8 +5924,8 @@ case 289: Free(yyvsp[-3].c); Free(yyvsp[-1].c); ; break;} -case 290: -#line 2918 "Gmsh.y" +case 293: +#line 2940 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -5889,108 +5944,108 @@ case 290: Free(yyvsp[-6].c); Free(yyvsp[-1].c); ; break;} -case 291: -#line 2936 "Gmsh.y" +case 294: +#line 2958 "Gmsh.y" { yyval.d = GetValue(yyvsp[-3].c, yyvsp[-1].d); Free(yyvsp[-3].c); ; break;} -case 292: -#line 2944 "Gmsh.y" +case 295: +#line 2966 "Gmsh.y" { memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)); ; break;} -case 293: -#line 2948 "Gmsh.y" +case 296: +#line 2970 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i]; ; break;} -case 294: -#line 2952 "Gmsh.y" +case 297: +#line 2974 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} -case 295: -#line 2956 "Gmsh.y" +case 298: +#line 2978 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i]; ; break;} -case 296: -#line 2960 "Gmsh.y" +case 299: +#line 2982 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i]; ; break;} -case 297: -#line 2967 "Gmsh.y" +case 300: +#line 2989 "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 298: -#line 2971 "Gmsh.y" +case 301: +#line 2993 "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 299: -#line 2975 "Gmsh.y" +case 302: +#line 2997 "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 300: -#line 2979 "Gmsh.y" +case 303: +#line 3001 "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 301: -#line 2986 "Gmsh.y" +case 304: +#line 3008 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(List_T*)); List_Add(yyval.l, &(yyvsp[0].l)); ; break;} -case 302: -#line 2991 "Gmsh.y" +case 305: +#line 3013 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].l)); ; break;} -case 303: -#line 2999 "Gmsh.y" +case 306: +#line 3021 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 304: -#line 3004 "Gmsh.y" +case 307: +#line 3026 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 305: -#line 3008 "Gmsh.y" +case 308: +#line 3030 "Gmsh.y" { // creates an empty list yyval.l = List_Create(2, 1, sizeof(double)); ; break;} -case 306: -#line 3013 "Gmsh.y" +case 309: +#line 3035 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 307: -#line 3017 "Gmsh.y" +case 310: +#line 3039 "Gmsh.y" { yyval.l = yyvsp[-1].l; double *pd; @@ -6000,16 +6055,16 @@ case 307: } ; break;} -case 308: -#line 3029 "Gmsh.y" +case 311: +#line 3051 "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 309: -#line 3035 "Gmsh.y" +case 312: +#line 3057 "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)){ @@ -6021,8 +6076,8 @@ case 309: List_Add(yyval.l, &d); ; break;} -case 310: -#line 3046 "Gmsh.y" +case 313: +#line 3068 "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 @@ -6043,8 +6098,8 @@ case 310: } ; break;} -case 311: -#line 3066 "Gmsh.y" +case 314: +#line 3088 "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++){ @@ -6055,8 +6110,8 @@ case 311: List_Delete(yyvsp[0].l); ; break;} -case 312: -#line 3076 "Gmsh.y" +case 315: +#line 3098 "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++){ @@ -6067,8 +6122,8 @@ case 312: List_Delete(yyvsp[0].l); ; break;} -case 313: -#line 3086 "Gmsh.y" +case 316: +#line 3108 "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++){ @@ -6079,8 +6134,8 @@ case 313: List_Delete(yyvsp[0].l); ; break;} -case 314: -#line 3096 "Gmsh.y" +case 317: +#line 3118 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6098,8 +6153,8 @@ case 314: Free(yyvsp[-2].c); ; break;} -case 315: -#line 3113 "Gmsh.y" +case 318: +#line 3135 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6119,8 +6174,8 @@ case 315: Free(yyvsp[-2].c); ; break;} -case 316: -#line 3132 "Gmsh.y" +case 319: +#line 3154 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6145,8 +6200,8 @@ case 316: List_Delete(yyvsp[-2].l); ; break;} -case 317: -#line 3156 "Gmsh.y" +case 320: +#line 3178 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -6173,27 +6228,27 @@ case 317: List_Delete(yyvsp[-2].l); ; break;} -case 318: -#line 3185 "Gmsh.y" +case 321: +#line 3207 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 319: -#line 3190 "Gmsh.y" +case 322: +#line 3212 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 320: -#line 3194 "Gmsh.y" +case 323: +#line 3216 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 321: -#line 3198 "Gmsh.y" +case 324: +#line 3220 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ double d; @@ -6203,20 +6258,20 @@ case 321: List_Delete(yyvsp[0].l); ; break;} -case 322: -#line 3211 "Gmsh.y" +case 325: +#line 3233 "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 323: -#line 3215 "Gmsh.y" +case 326: +#line 3237 "Gmsh.y" { yyval.u = CTX.PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} -case 324: -#line 3227 "Gmsh.y" +case 327: +#line 3249 "Gmsh.y" { int flag; yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); @@ -6224,8 +6279,8 @@ case 324: Free(yyvsp[0].c); ; break;} -case 325: -#line 3234 "Gmsh.y" +case 328: +#line 3256 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -6245,14 +6300,14 @@ case 325: Free(yyvsp[-4].c); Free(yyvsp[0].c); ; break;} -case 326: -#line 3256 "Gmsh.y" +case 329: +#line 3278 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 327: -#line 3260 "Gmsh.y" +case 330: +#line 3282 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d); @@ -6265,27 +6320,27 @@ case 327: Free(yyvsp[-5].c); ; break;} -case 328: -#line 3275 "Gmsh.y" +case 331: +#line 3297 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); List_Add(yyval.l, &(yyvsp[0].u)); ; break;} -case 329: -#line 3280 "Gmsh.y" +case 332: +#line 3302 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].u)); ; break;} -case 330: -#line 3287 "Gmsh.y" +case 333: +#line 3309 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} -case 331: -#line 3291 "Gmsh.y" +case 334: +#line 3313 "Gmsh.y" { yyval.c = (char *)Malloc(32*sizeof(char)); time_t now; @@ -6294,8 +6349,8 @@ case 331: yyval.c[strlen(yyval.c) - 1] = '\0'; ; break;} -case 332: -#line 3299 "Gmsh.y" +case 335: +#line 3321 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)); strcpy(yyval.c, yyvsp[-3].c); @@ -6304,8 +6359,8 @@ case 332: Free(yyvsp[-1].c); ; break;} -case 333: -#line 3307 "Gmsh.y" +case 336: +#line 3329 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6320,8 +6375,8 @@ case 333: Free(yyvsp[-1].c); ; break;} -case 334: -#line 3321 "Gmsh.y" +case 337: +#line 3343 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -6336,14 +6391,14 @@ case 334: Free(yyvsp[-1].c); ; break;} -case 335: -#line 3335 "Gmsh.y" +case 338: +#line 3357 "Gmsh.y" { yyval.c = yyvsp[-1].c; ; break;} -case 336: -#line 3339 "Gmsh.y" +case 339: +#line 3361 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring); @@ -6363,8 +6418,8 @@ case 336: List_Delete(yyvsp[-1].l); ; break;} -case 337: -#line 3358 "Gmsh.y" +case 340: +#line 3380 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -6387,8 +6442,8 @@ case 337: } ; break;} -case 338: -#line 3380 "Gmsh.y" +case 341: +#line 3402 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -6633,7 +6688,7 @@ yyerrhandle: } return 1; } -#line 3403 "Gmsh.y" +#line 3425 "Gmsh.y" void DeleteSymbol(void *a, void *b){ diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp index 737bb28d6d9e0e58a3e38ac5ec70e83f2d88e4d5..584194736cbc5db3930a50e5ccef20a72d9d905e 100644 --- a/Parser/Gmsh.tab.hpp +++ b/Parser/Gmsh.tab.hpp @@ -16,111 +16,114 @@ typedef union { #define tPi 263 #define tMPI_Rank 264 #define tMPI_Size 265 -#define tExp 266 -#define tLog 267 -#define tLog10 268 -#define tSqrt 269 -#define tSin 270 -#define tAsin 271 -#define tCos 272 -#define tAcos 273 -#define tTan 274 -#define tRand 275 -#define tAtan 276 -#define tAtan2 277 -#define tSinh 278 -#define tCosh 279 -#define tTanh 280 -#define tFabs 281 -#define tFloor 282 -#define tCeil 283 -#define tFmod 284 -#define tModulo 285 -#define tHypot 286 -#define tPrintf 287 -#define tSprintf 288 -#define tStrCat 289 -#define tStrPrefix 290 -#define tStrRelative 291 -#define tBoundingBox 292 -#define tDraw 293 -#define tToday 294 -#define tPoint 295 -#define tCircle 296 -#define tEllipse 297 -#define tLine 298 -#define tSphere 299 -#define tSurface 300 -#define tSpline 301 -#define tVolume 302 -#define tCharacteristic 303 -#define tLength 304 -#define tParametric 305 -#define tElliptic 306 -#define tPlane 307 -#define tRuled 308 -#define tTransfinite 309 -#define tComplex 310 -#define tPhysical 311 -#define tUsing 312 -#define tBump 313 -#define tProgression 314 -#define tPlugin 315 -#define tRotate 316 -#define tTranslate 317 -#define tSymmetry 318 -#define tDilate 319 -#define tExtrude 320 -#define tDuplicata 321 -#define tLoop 322 -#define tRecombine 323 -#define tDelete 324 -#define tCoherence 325 -#define tAttractor 326 -#define tLayers 327 -#define tAlias 328 -#define tAliasWithOptions 329 -#define tText2D 330 -#define tText3D 331 -#define tInterpolationScheme 332 -#define tTime 333 -#define tGrain 334 -#define tCombine 335 -#define tBSpline 336 -#define tBezier 337 -#define tNurbs 338 -#define tOrder 339 -#define tKnots 340 -#define tColor 341 -#define tColorTable 342 -#define tFor 343 -#define tIn 344 -#define tEndFor 345 -#define tIf 346 -#define tEndIf 347 -#define tExit 348 -#define tReturn 349 -#define tCall 350 -#define tFunction 351 -#define tShow 352 -#define tHide 353 -#define tGetValue 354 -#define tGMSH_MAJOR_VERSION 355 -#define tGMSH_MINOR_VERSION 356 -#define tGMSH_PATCH_VERSION 357 -#define tAFFECTPLUS 358 -#define tAFFECTMINUS 359 -#define tAFFECTTIMES 360 -#define tAFFECTDIVIDE 361 -#define tOR 362 -#define tAND 363 -#define tEQUAL 364 -#define tNOTEQUAL 365 -#define tLESSOREQUAL 366 -#define tGREATEROREQUAL 367 -#define tPLUSPLUS 368 -#define tMINUSMINUS 369 -#define UNARYPREC 370 +#define tEuclidian 266 +#define tCoordinates 267 +#define tExp 268 +#define tLog 269 +#define tLog10 270 +#define tSqrt 271 +#define tSin 272 +#define tAsin 273 +#define tCos 274 +#define tAcos 275 +#define tTan 276 +#define tRand 277 +#define tAtan 278 +#define tAtan2 279 +#define tSinh 280 +#define tCosh 281 +#define tTanh 282 +#define tFabs 283 +#define tFloor 284 +#define tCeil 285 +#define tFmod 286 +#define tModulo 287 +#define tHypot 288 +#define tPrintf 289 +#define tSprintf 290 +#define tStrCat 291 +#define tStrPrefix 292 +#define tStrRelative 293 +#define tBoundingBox 294 +#define tDraw 295 +#define tToday 296 +#define tPoint 297 +#define tCircle 298 +#define tEllipse 299 +#define tLine 300 +#define tSphere 301 +#define tPolarSphere 302 +#define tSurface 303 +#define tSpline 304 +#define tVolume 305 +#define tCharacteristic 306 +#define tLength 307 +#define tParametric 308 +#define tElliptic 309 +#define tPlane 310 +#define tRuled 311 +#define tTransfinite 312 +#define tComplex 313 +#define tPhysical 314 +#define tUsing 315 +#define tBump 316 +#define tProgression 317 +#define tPlugin 318 +#define tRotate 319 +#define tTranslate 320 +#define tSymmetry 321 +#define tDilate 322 +#define tExtrude 323 +#define tDuplicata 324 +#define tLoop 325 +#define tRecombine 326 +#define tDelete 327 +#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 extern YYSTYPE yylval; diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index a53c91b4b505203a2ccbdf6cfa912f51110a1bdb..bc7818295d80ab8c45070aa6fe26d02aee694da4 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.y,v 1.264 2007-02-26 08:25:42 geuzaine Exp $ +// $Id: Gmsh.y,v 1.265 2007-03-02 09:20:21 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -62,6 +62,7 @@ static int ViewErrorFlags[VIEW_NB_ELEMENT_TYPES]; #define MAX_RECUR_LOOPS 100 static int ImbricatedLoop = 0; +static gmshSurface *myGmshSurface = 0; static fpos_t yyposImbricatedLoopsTab[MAX_RECUR_LOOPS]; static int yylinenoImbricatedLoopsTab[MAX_RECUR_LOOPS]; static double LoopControlVariablesTab[MAX_RECUR_LOOPS][3]; @@ -87,13 +88,13 @@ int CheckViewErrorFlags(Post_View *v); %token <d> tDOUBLE %token <c> tSTRING tBIGSTR -%token tEND tAFFECT tDOTS tPi tMPI_Rank tMPI_Size +%token tEND tAFFECT tDOTS tPi tMPI_Rank tMPI_Size tEuclidian tCoordinates %token tExp tLog tLog10 tSqrt tSin tAsin tCos tAcos tTan tRand %token tAtan tAtan2 tSinh tCosh tTanh tFabs tFloor tCeil %token tFmod tModulo tHypot %token tPrintf tSprintf tStrCat tStrPrefix tStrRelative %token tBoundingBox tDraw tToday -%token tPoint tCircle tEllipse tLine tSphere tSurface tSpline tVolume +%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 @@ -1035,32 +1036,14 @@ Shape : double y = CTX.geom.scaling_factor * $6[1]; double z = CTX.geom.scaling_factor * $6[2]; double lc = CTX.geom.scaling_factor * $6[3]; - Vertex *v = Create_Vertex(num, x, y, z, lc, 1.0); + Vertex *v; + if (!myGmshSurface) + v = Create_Vertex(num, x, y, z, lc, 1.0); + else + v = Create_Vertex(num, x, y, myGmshSurface, lc); + Tree_Add(THEM->Points, &v); - AddToTemporaryBoundingBox(x, y, z); - } - $$.Type = MSH_POINT; - $$.Num = num; - } - | tPoint '(' FExpr ')' tIn tSurface '{' FExpr '}' tAFFECT VExpr tEND - { - int num = (int)$3; - if(FindPoint(num)){ - yymsg(GERROR, "Point %d already exists", num); - } - else{ - double u = CTX.geom.scaling_factor * $11[0]; - double v = CTX.geom.scaling_factor * $11[1]; - double lc = CTX.geom.scaling_factor * $11[2]; - gmshSurface *surf = gmshSurface::surfaceByTag((int)$8); - if(!surf){ - yymsg(GERROR, "gmshSurface %d does not exist", (int)$8); - } - else{ - Vertex *vt = Create_Vertex(num, u, v, surf, lc); - Tree_Add(THEM->Points, &vt); - AddToTemporaryBoundingBox(vt->Pos.X,vt->Pos.Y,vt->Pos.Z); - } + AddToTemporaryBoundingBox(v->Pos.X,v->Pos.Y,v->Pos.Z); } $$.Type = MSH_POINT; $$.Num = num; @@ -1471,6 +1454,23 @@ Shape : $$.Type = type; $$.Num = num; } + + | tEuclidian tCoordinates tEND + { + myGmshSurface = 0; + } + + | tCoordinates tSurface FExpr tEND + { + myGmshSurface = gmshSurface :: surfaceByTag ( (int) $3); + } + + | tParametric tSurface '(' FExpr ')' tAFFECT tBIGSTR tBIGSTR tBIGSTR tEND + { + int num = (int)$4, type = 0; + myGmshSurface = gmshParametricSurface::NewParametricSurface ((int)$4,$7,$8,$9); + } + | tSphere '(' FExpr ')' tAFFECT ListOfDouble tEND { int num = (int)$3, type = 0; @@ -1486,7 +1486,29 @@ Shape : Vertex *v2 = FindPoint((int)p2); if(!v1) yymsg(GERROR, "Sphere %d : unknown point %d", num, (int)p1); if(!v2) yymsg(GERROR, "Sphere %d : unknown point %d", num, (int)p2); - gmshSurface *myGmshSurface = gmshSphere::NewSphere + myGmshSurface = gmshSphere::NewSphere + (num, v1->Pos.X, v1->Pos.Y, v1->Pos.Z, + sqrt((v2->Pos.X - v1->Pos.X) * (v2->Pos.X - v1->Pos.X) + + (v2->Pos.Y - v1->Pos.Y) * (v2->Pos.Y - v1->Pos.Y) + + (v2->Pos.Z - v1->Pos.Z) * (v2->Pos.Z - v1->Pos.Z))); + } + } + | tPolarSphere '(' FExpr ')' tAFFECT ListOfDouble tEND + { + int num = (int)$3, type = 0; + if (List_Nbr($6) != 2){ + yymsg(GERROR, "PolarSphere %d has to be defined using 2 points (center + " + "any point) and not %d", num, List_Nbr($6)); + } + else{ + double p1,p2; + List_Read($6, 0, &p1); + List_Read($6, 1, &p2); + Vertex *v1 = FindPoint((int)p1); + Vertex *v2 = FindPoint((int)p2); + if(!v1) yymsg(GERROR, "PolarSphere %d : unknown point %d", num, (int)p1); + if(!v2) yymsg(GERROR, "PolarSphere %d : unknown point %d", num, (int)p2); + myGmshSurface = gmshPolarSphere::NewPolarSphere (num, v1->Pos.X, v1->Pos.Y, v1->Pos.Z, sqrt((v2->Pos.X - v1->Pos.X) * (v2->Pos.X - v1->Pos.X) + (v2->Pos.Y - v1->Pos.Y) * (v2->Pos.Y - v1->Pos.Y) + diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 619fa59e33e52014192ff83352d45512e7d2e513..6fa793956739f8e02e3a9b3a1bb124a98e3e82d0 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.307 2007-02-27 17:15:51 remacle Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.308 2007-03-02 09:20:21 remacle Exp $ */ #define FLEX_SCANNER @@ -283,73 +283,76 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 138 -#define YY_END_OF_BUFFER 139 -static yyconst short int yy_accept[573] = +#define YY_NUM_RULES 141 +#define YY_END_OF_BUFFER 142 +static yyconst short int yy_accept[599] = { 0, - 0, 0, 139, 137, 1, 1, 137, 5, 137, 6, - 137, 137, 137, 137, 137, 132, 20, 2, 137, 15, - 137, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 137, 27, 23, 18, 24, 16, 25, - 17, 0, 134, 3, 4, 19, 133, 132, 0, 28, - 26, 29, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 81, 80, 136, 136, 136, - - 136, 136, 136, 136, 136, 136, 136, 136, 95, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 127, 128, 136, 136, 136, 136, 136, - 136, 136, 22, 21, 0, 133, 0, 0, 135, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 48, 136, 136, - 136, 136, 136, 136, 136, 61, 136, 136, 136, 136, - 72, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 86, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - - 136, 136, 109, 136, 136, 136, 136, 136, 136, 136, - 136, 123, 136, 136, 136, 136, 136, 0, 134, 0, - 0, 133, 30, 136, 136, 136, 136, 34, 36, 136, - 136, 136, 136, 42, 56, 136, 45, 136, 136, 136, - 136, 136, 136, 47, 136, 136, 60, 136, 136, 136, - 136, 68, 136, 69, 136, 71, 136, 136, 136, 136, - 78, 136, 136, 136, 136, 136, 84, 136, 85, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 106, 136, 136, 136, 136, 119, 110, 136, 136, - 136, 108, 136, 136, 136, 136, 136, 130, 122, 136, - - 136, 136, 136, 10, 9, 8, 136, 12, 14, 0, - 133, 32, 136, 136, 136, 38, 136, 136, 136, 136, - 136, 136, 136, 136, 53, 136, 136, 136, 136, 136, - 136, 136, 67, 136, 70, 136, 136, 131, 136, 79, - 136, 82, 136, 136, 87, 136, 136, 136, 92, 93, - 136, 136, 96, 136, 97, 98, 136, 136, 136, 136, - 136, 105, 136, 136, 136, 136, 136, 136, 136, 136, - 124, 136, 125, 136, 11, 136, 13, 136, 31, 35, - 37, 136, 136, 41, 136, 136, 136, 50, 136, 136, - 136, 136, 57, 58, 136, 136, 136, 66, 136, 136, - - 136, 136, 136, 136, 88, 83, 136, 136, 89, 136, - 136, 102, 101, 136, 136, 107, 104, 111, 112, 136, - 116, 136, 136, 136, 136, 136, 136, 126, 7, 136, - 39, 136, 43, 136, 136, 136, 136, 136, 46, 52, - 136, 63, 136, 136, 64, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 115, 136, 136, - 113, 136, 136, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 62, 65, 73, 136, 136, 136, 74, 136, - 90, 91, 136, 94, 136, 136, 136, 136, 114, 136, - 136, 136, 40, 136, 136, 136, 51, 136, 59, 136, - - 136, 136, 136, 136, 136, 103, 117, 136, 136, 121, - 136, 136, 55, 136, 54, 136, 136, 136, 136, 100, - 136, 136, 136, 136, 44, 136, 136, 136, 136, 136, - 99, 118, 120, 136, 136, 136, 136, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 49, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 33, 136, 136, 136, - 136, 136, 136, 136, 136, 75, 76, 77, 136, 136, - 129, 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 + } ; static yyconst int yy_ec[256] = @@ -396,141 +399,147 @@ static yyconst int yy_meta[73] = 2, 1 } ; -static yyconst short int yy_base[574] = +static yyconst short int yy_base[600] = { 0, - 0, 0, 694, 695, 695, 695, 672, 695, 686, 695, - 670, 64, 65, 63, 75, 77, 695, 695, 669, 668, - 667, 46, 48, 65, 66, 65, 79, 62, 45, 46, - 0, 628, 80, 46, 620, 622, 94, 95, 98, 150, - 620, 623, 631, 609, 695, 695, 695, 695, 695, 695, - 695, 669, 156, 695, 695, 695, 161, 176, 185, 695, - 695, 695, 0, 619, 623, 628, 621, 91, 614, 603, - 607, 614, 93, 616, 623, 606, 151, 611, 610, 619, - 604, 607, 613, 156, 614, 601, 600, 596, 599, 616, - 633, 590, 604, 592, 610, 0, 0, 591, 580, 590, - - 589, 70, 616, 596, 582, 594, 580, 572, 0, 96, - 112, 124, 582, 155, 575, 582, 578, 578, 162, 573, - 572, 571, 575, 0, 0, 597, 572, 580, 582, 573, - 570, 558, 695, 695, 219, 224, 233, 239, 244, 561, - 577, 181, 564, 563, 558, 563, 564, 559, 556, 559, - 557, 557, 550, 563, 560, 550, 170, 555, 557, 560, - 538, 548, 549, 116, 538, 0, 539, 537, 540, 549, - 0, 549, 567, 565, 551, 543, 533, 565, 526, 539, - 536, 537, 573, 525, 539, 518, 535, 531, 534, 516, - 520, 525, 518, 525, 516, 521, 523, 512, 505, 523, - - 518, 500, 513, 515, 510, 509, 498, 238, 510, 503, - 533, 505, 511, 498, 497, 489, 216, 253, 271, 280, - 285, 290, 0, 490, 493, 497, 504, 0, 535, 502, - 493, 496, 496, 0, 0, 479, 0, 497, 486, 479, - 478, 485, 482, 0, 473, 472, 0, 481, 474, 474, - 481, 0, 466, 0, 468, 0, 465, 483, 492, 480, - 0, 461, 485, 460, 460, 457, 0, 508, 0, 145, - 463, 455, 455, 459, 461, 464, 459, 448, 449, 446, - 447, 0, 451, 445, 442, 456, 0, 0, 442, 445, - 444, 0, 455, 438, 449, 452, 447, 0, 0, 427, - - 432, 442, 436, 0, 436, 0, 441, 434, 0, 295, - 300, 445, 425, 429, 428, 0, 437, 426, 421, 428, - 425, 432, 429, 428, 436, 418, 425, 424, 423, 424, - 180, 409, 0, 421, 0, 415, 236, 0, 412, 0, - 430, 0, 403, 412, 0, 418, 409, 403, 0, 0, - 411, 412, 0, 401, 0, 0, 407, 407, 409, 397, - 404, 0, 403, 402, 387, 386, 399, 392, 399, 382, - 0, 266, 0, 395, 0, 392, 0, 389, 0, 0, - 428, 377, 390, 0, 381, 382, 373, 0, 378, 389, - 384, 365, 0, 0, 386, 175, 377, 0, 380, 370, - - 241, 406, 362, 390, 0, 0, 367, 354, 0, 359, - 376, 0, 0, 358, 366, 0, 0, 0, 0, 368, - 0, 367, 371, 366, 353, 360, 367, 0, 0, 348, - 0, 352, 0, 358, 370, 358, 359, 359, 0, 0, - 341, 0, 341, 355, 0, 344, 370, 365, 358, 348, - 364, 341, 345, 332, 337, 329, 333, 0, 336, 325, - 0, 319, 329, 322, 332, 322, 360, 323, 319, 330, - 323, 332, 0, 0, 0, 341, 340, 351, 0, 352, - 0, 0, 319, 0, 318, 321, 302, 315, 0, 314, - 317, 330, 0, 306, 307, 309, 0, 312, 0, 322, - - 321, 330, 317, 309, 297, 0, 0, 289, 290, 0, - 293, 284, 0, 288, 0, 305, 304, 303, 317, 0, - 288, 295, 294, 279, 0, 278, 298, 297, 296, 302, - 0, 0, 0, 283, 282, 309, 308, 307, 297, 272, - 282, 290, 289, 288, 281, 267, 0, 284, 283, 281, - 280, 256, 288, 261, 260, 257, 0, 244, 225, 187, - 184, 160, 146, 97, 91, 0, 0, 0, 72, 74, - 0, 695, 79 + 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 + } ; -static yyconst short int yy_def[574] = +static yyconst short int yy_def[600] = { 0, - 572, 1, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 572, 572, 572, 572, 572, 572, 572, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 572, 572, 572, - 572, 572, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - - 573, 573, 573, 573, 573, 573, 573, 573, 573, 572, - 572, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, - 573, 0, 572 + 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 + } ; -static yyconst short int yy_nxt[768] = +static yyconst short int yy_nxt[794] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 17, 18, 19, @@ -540,85 +549,89 @@ static yyconst short int yy_nxt[768] = 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, 95, 54, 103, 49, 51, 55, 57, 69, 58, - 58, 58, 58, 58, 64, 56, 90, 96, 70, 93, - - 571, 91, 65, 59, 97, 104, 570, 71, 66, 67, - 68, 73, 92, 72, 94, 74, 78, 569, 75, 76, - 79, 82, 183, 83, 77, 85, 99, 59, 80, 184, - 100, 81, 568, 84, 101, 86, 87, 144, 88, 102, - 107, 113, 191, 250, 89, 114, 251, 108, 109, 150, - 110, 117, 118, 111, 115, 145, 112, 151, 119, 120, - 116, 192, 121, 122, 124, 125, 193, 123, 53, 53, - 53, 53, 53, 136, 136, 136, 136, 136, 195, 194, - 126, 567, 135, 196, 346, 347, 57, 137, 58, 58, - 58, 58, 58, 138, 138, 566, 127, 139, 139, 139, - - 139, 139, 59, 198, 155, 225, 135, 156, 157, 128, - 165, 137, 129, 565, 158, 204, 166, 242, 205, 199, - 167, 226, 227, 564, 206, 442, 59, 218, 218, 443, - 243, 219, 219, 219, 219, 219, 136, 136, 136, 136, - 136, 221, 221, 396, 397, 222, 222, 222, 222, 222, - 220, 139, 139, 139, 139, 139, 139, 139, 139, 139, - 139, 563, 293, 447, 304, 219, 219, 219, 219, 219, - 401, 448, 305, 402, 220, 294, 306, 295, 307, 308, - 562, 561, 309, 219, 219, 219, 219, 219, 310, 310, - 560, 559, 311, 311, 311, 311, 311, 222, 222, 222, - - 222, 222, 222, 222, 222, 222, 222, 311, 311, 311, - 311, 311, 311, 311, 311, 311, 311, 426, 558, 557, - 556, 555, 427, 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, 463, 462, 461, 460, 459, 458, - 457, 456, 455, 454, 453, 452, 451, 450, 449, 446, - 445, 444, 441, 440, 439, 438, 437, 436, 435, 434, - 433, 432, 431, 430, 429, 428, 425, 424, 423, 422, - 421, 420, 419, 418, 417, 416, 415, 414, 413, 412, - 411, 410, 409, 408, 407, 406, 405, 404, 403, 400, - 399, 398, 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, 356, 355, 354, 353, 352, 351, 350, 349, 348, - 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, 318, 317, 316, - 315, 314, 313, 312, 303, 302, 301, 300, 299, 298, - 297, 296, 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, 256, 255, - - 254, 253, 252, 249, 248, 247, 246, 245, 244, 241, - 240, 239, 238, 237, 236, 235, 234, 233, 232, 231, - 230, 229, 228, 224, 223, 217, 216, 215, 214, 213, - 212, 211, 210, 209, 208, 207, 203, 202, 201, 200, - 197, 190, 189, 188, 187, 186, 185, 182, 181, 180, - 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, - 169, 168, 164, 163, 162, 161, 160, 159, 154, 153, - 152, 149, 148, 147, 146, 143, 142, 141, 140, 134, - 133, 132, 131, 130, 106, 105, 98, 62, 61, 60, - 47, 46, 45, 572, 3, 572, 572, 572, 572, 572, - - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572 + 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 + } ; -static yyconst short int yy_chk[768] = +static yyconst short int yy_chk[794] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -628,82 +641,86 @@ static yyconst short int yy_chk[768] = 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, - 573, 30, 15, 34, 12, 13, 15, 16, 23, 16, + 599, 30, 15, 34, 12, 13, 15, 16, 23, 16, 16, 16, 16, 16, 22, 15, 28, 30, 23, 29, - 570, 28, 22, 16, 30, 34, 569, 23, 22, 22, - 22, 24, 28, 23, 29, 24, 25, 565, 24, 24, - 25, 26, 102, 26, 24, 27, 33, 16, 25, 102, - 33, 25, 564, 26, 33, 27, 27, 68, 27, 33, - 37, 38, 110, 164, 27, 38, 164, 37, 37, 73, - 37, 39, 39, 37, 38, 68, 37, 73, 39, 39, - 38, 110, 39, 39, 40, 40, 111, 39, 53, 53, - 53, 53, 53, 57, 57, 57, 57, 57, 112, 111, - 40, 563, 53, 112, 270, 270, 58, 57, 58, 58, - 58, 58, 58, 59, 59, 562, 40, 59, 59, 59, - - 59, 59, 58, 114, 77, 142, 53, 77, 77, 40, - 84, 57, 40, 561, 77, 119, 84, 157, 119, 114, - 84, 142, 142, 560, 119, 396, 58, 135, 135, 396, - 157, 135, 135, 135, 135, 135, 136, 136, 136, 136, - 136, 137, 137, 331, 331, 137, 137, 137, 137, 137, - 136, 138, 138, 138, 138, 138, 139, 139, 139, 139, - 139, 559, 208, 401, 217, 218, 218, 218, 218, 218, - 337, 401, 217, 337, 136, 208, 217, 208, 217, 217, - 558, 556, 217, 219, 219, 219, 219, 219, 220, 220, - 555, 554, 220, 220, 220, 220, 220, 221, 221, 221, - - 221, 221, 222, 222, 222, 222, 222, 310, 310, 310, - 310, 310, 311, 311, 311, 311, 311, 372, 553, 552, - 551, 550, 372, 549, 548, 546, 545, 544, 543, 542, - 541, 540, 539, 538, 537, 536, 535, 534, 530, 529, - 528, 527, 526, 524, 523, 522, 521, 519, 518, 517, - 516, 514, 512, 511, 509, 508, 505, 504, 503, 502, - 501, 500, 498, 496, 495, 494, 492, 491, 490, 488, - 487, 486, 485, 483, 480, 478, 477, 476, 472, 471, - 470, 469, 468, 467, 466, 465, 464, 463, 462, 460, - 459, 457, 456, 455, 454, 453, 452, 451, 450, 449, - - 448, 447, 446, 444, 443, 441, 438, 437, 436, 435, - 434, 432, 430, 427, 426, 425, 424, 423, 422, 420, - 415, 414, 411, 410, 408, 407, 404, 403, 402, 400, - 399, 397, 395, 392, 391, 390, 389, 387, 386, 385, - 383, 382, 381, 378, 376, 374, 370, 369, 368, 367, - 366, 365, 364, 363, 361, 360, 359, 358, 357, 354, - 352, 351, 348, 347, 346, 344, 343, 341, 339, 336, - 334, 332, 330, 329, 328, 327, 326, 325, 324, 323, - 322, 321, 320, 319, 318, 317, 315, 314, 313, 312, - 308, 307, 305, 303, 302, 301, 300, 297, 296, 295, - - 294, 293, 291, 290, 289, 286, 285, 284, 283, 281, - 280, 279, 278, 277, 276, 275, 274, 273, 272, 271, - 268, 266, 265, 264, 263, 262, 260, 259, 258, 257, - 255, 253, 251, 250, 249, 248, 246, 245, 243, 242, - 241, 240, 239, 238, 236, 233, 232, 231, 230, 229, - 227, 226, 225, 224, 216, 215, 214, 213, 212, 211, - 210, 209, 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, 174, 173, 172, 170, 169, - - 168, 167, 165, 163, 162, 161, 160, 159, 158, 156, - 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, - 145, 144, 143, 141, 140, 132, 131, 130, 129, 128, - 127, 126, 123, 122, 121, 120, 118, 117, 116, 115, - 113, 108, 107, 106, 105, 104, 103, 101, 100, 99, - 98, 95, 94, 93, 92, 91, 90, 89, 88, 87, - 86, 85, 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, 572, 572, 572, 572, 572, 572, - - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572 + 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 + } ; static yy_state_type yy_last_accepting_state; @@ -720,7 +737,7 @@ char *yytext; #line 1 "Gmsh.l" #define INITIAL 0 #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.307 2007-02-27 17:15:51 remacle Exp $ +// $Id: Gmsh.yy.cpp,v 1.308 2007-03-02 09:20:21 remacle Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -781,7 +798,7 @@ void skipline(void); && ferror( yyin ) ) \ Msg(FATAL, "Input in flex scanner failed"); -#line 785 "Gmsh.yy.cpp" +#line 802 "Gmsh.yy.cpp" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -935,7 +952,7 @@ YY_DECL #line 79 "Gmsh.l" -#line 939 "Gmsh.yy.cpp" +#line 956 "Gmsh.yy.cpp" if ( yy_init ) { @@ -986,13 +1003,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 >= 573 ) + if ( yy_current_state >= 599 ) 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] != 695 ); + while ( yy_base[yy_current_state] != 721 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -1291,42 +1308,42 @@ return tColorTable; case 55: YY_RULE_SETUP #line 138 "Gmsh.l" -return tSpline; +return tCoordinates; YY_BREAK case 56: YY_RULE_SETUP #line 139 "Gmsh.l" -return tCall; +return tSpline; YY_BREAK case 57: YY_RULE_SETUP -#line 141 "Gmsh.l" -return tDelete; +#line 140 "Gmsh.l" +return tCall; YY_BREAK case 58: YY_RULE_SETUP #line 142 "Gmsh.l" -return tDilate; +return tDelete; YY_BREAK case 59: YY_RULE_SETUP #line 143 "Gmsh.l" -return tDuplicata; +return tDilate; YY_BREAK case 60: YY_RULE_SETUP #line 144 "Gmsh.l" -return tDraw; +return tDuplicata; YY_BREAK case 61: YY_RULE_SETUP -#line 146 "Gmsh.l" -return tExp; +#line 145 "Gmsh.l" +return tDraw; YY_BREAK case 62: YY_RULE_SETUP #line 147 "Gmsh.l" -return tEllipse; +return tExp; YY_BREAK case 63: YY_RULE_SETUP @@ -1336,370 +1353,385 @@ return tEllipse; case 64: YY_RULE_SETUP #line 149 "Gmsh.l" -return tExtrude; +return tEllipse; YY_BREAK case 65: YY_RULE_SETUP #line 150 "Gmsh.l" -return tElliptic; +return tExtrude; YY_BREAK case 66: YY_RULE_SETUP #line 151 "Gmsh.l" -return tEndFor; +return tElliptic; YY_BREAK case 67: YY_RULE_SETUP #line 152 "Gmsh.l" -return tEndIf; +return tEndFor; YY_BREAK case 68: YY_RULE_SETUP #line 153 "Gmsh.l" -return tExit; +return tEndIf; YY_BREAK case 69: YY_RULE_SETUP -#line 155 "Gmsh.l" -return tFabs; +#line 154 "Gmsh.l" +return tEuclidian; YY_BREAK case 70: YY_RULE_SETUP -#line 156 "Gmsh.l" -return tFloor; +#line 155 "Gmsh.l" +return tExit; YY_BREAK case 71: YY_RULE_SETUP #line 157 "Gmsh.l" -return tFmod; +return tFabs; YY_BREAK case 72: YY_RULE_SETUP #line 158 "Gmsh.l" -return tFor; +return tFloor; YY_BREAK case 73: YY_RULE_SETUP #line 159 "Gmsh.l" -return tFunction; +return tFmod; YY_BREAK case 74: YY_RULE_SETUP -#line 161 "Gmsh.l" -return tGetValue; +#line 160 "Gmsh.l" +return tFor; YY_BREAK case 75: YY_RULE_SETUP -#line 162 "Gmsh.l" -return tGMSH_MAJOR_VERSION; +#line 161 "Gmsh.l" +return tFunction; YY_BREAK case 76: YY_RULE_SETUP #line 163 "Gmsh.l" -return tGMSH_MINOR_VERSION; +return tGetValue; YY_BREAK case 77: YY_RULE_SETUP #line 164 "Gmsh.l" -return tGMSH_PATCH_VERSION; +return tGMSH_MAJOR_VERSION; YY_BREAK case 78: YY_RULE_SETUP -#line 166 "Gmsh.l" -return tHide; +#line 165 "Gmsh.l" +return tGMSH_MINOR_VERSION; YY_BREAK case 79: YY_RULE_SETUP -#line 167 "Gmsh.l" -return tHypot; +#line 166 "Gmsh.l" +return tGMSH_PATCH_VERSION; YY_BREAK case 80: YY_RULE_SETUP -#line 169 "Gmsh.l" -return tIn; +#line 168 "Gmsh.l" +return tHide; YY_BREAK case 81: YY_RULE_SETUP -#line 170 "Gmsh.l" -return tIf; +#line 169 "Gmsh.l" +return tHypot; YY_BREAK case 82: YY_RULE_SETUP -#line 172 "Gmsh.l" -return tKnots; +#line 171 "Gmsh.l" +return tIn; YY_BREAK case 83: YY_RULE_SETUP -#line 174 "Gmsh.l" -return tLength; +#line 172 "Gmsh.l" +return tIf; YY_BREAK case 84: YY_RULE_SETUP -#line 175 "Gmsh.l" -return tLine; +#line 174 "Gmsh.l" +return tKnots; YY_BREAK case 85: YY_RULE_SETUP #line 176 "Gmsh.l" -return tLoop; +return tLength; YY_BREAK case 86: YY_RULE_SETUP #line 177 "Gmsh.l" -return tLog; +return tLine; YY_BREAK case 87: YY_RULE_SETUP #line 178 "Gmsh.l" -return tLog10; +return tLoop; YY_BREAK case 88: YY_RULE_SETUP #line 179 "Gmsh.l" -return tLayers; +return tLog; YY_BREAK case 89: YY_RULE_SETUP -#line 181 "Gmsh.l" -return tModulo; +#line 180 "Gmsh.l" +return tLog10; YY_BREAK case 90: YY_RULE_SETUP -#line 182 "Gmsh.l" -return tMPI_Rank; +#line 181 "Gmsh.l" +return tLayers; YY_BREAK case 91: YY_RULE_SETUP #line 183 "Gmsh.l" -return tMPI_Size; +return tModulo; YY_BREAK case 92: YY_RULE_SETUP -#line 185 "Gmsh.l" -return tNurbs; +#line 184 "Gmsh.l" +return tMPI_Rank; YY_BREAK case 93: YY_RULE_SETUP -#line 187 "Gmsh.l" -return tOrder; +#line 185 "Gmsh.l" +return tMPI_Size; YY_BREAK case 94: YY_RULE_SETUP -#line 189 "Gmsh.l" -return tPhysical; +#line 187 "Gmsh.l" +return tNurbs; YY_BREAK case 95: YY_RULE_SETUP -#line 190 "Gmsh.l" -return tPi; +#line 189 "Gmsh.l" +return tOrder; YY_BREAK case 96: YY_RULE_SETUP #line 191 "Gmsh.l" -return tPlane; +return tPhysical; YY_BREAK case 97: YY_RULE_SETUP #line 192 "Gmsh.l" -return tPoint; +return tPi; YY_BREAK case 98: YY_RULE_SETUP #line 193 "Gmsh.l" -return tProgression; +return tPlane; YY_BREAK case 99: YY_RULE_SETUP #line 194 "Gmsh.l" -return tProgression; +return tPoint; YY_BREAK case 100: YY_RULE_SETUP #line 195 "Gmsh.l" -return tParametric; +return tProgression; YY_BREAK case 101: YY_RULE_SETUP #line 196 "Gmsh.l" -return tPrintf; +return tProgression; YY_BREAK case 102: YY_RULE_SETUP #line 197 "Gmsh.l" -return tPlugin; +return tParametric; YY_BREAK case 103: YY_RULE_SETUP -#line 199 "Gmsh.l" -return tRecombine; +#line 198 "Gmsh.l" +return tPolarSphere; YY_BREAK case 104: YY_RULE_SETUP -#line 200 "Gmsh.l" -return tRotate; +#line 199 "Gmsh.l" +return tPrintf; YY_BREAK case 105: YY_RULE_SETUP -#line 201 "Gmsh.l" -return tRuled; +#line 200 "Gmsh.l" +return tPlugin; YY_BREAK case 106: YY_RULE_SETUP #line 202 "Gmsh.l" -return tRand; +return tRecombine; YY_BREAK case 107: YY_RULE_SETUP #line 203 "Gmsh.l" -return tReturn; +return tRotate; YY_BREAK case 108: YY_RULE_SETUP -#line 205 "Gmsh.l" -return tSqrt; +#line 204 "Gmsh.l" +return tRuled; YY_BREAK case 109: YY_RULE_SETUP -#line 206 "Gmsh.l" -return tSin; +#line 205 "Gmsh.l" +return tRand; YY_BREAK case 110: YY_RULE_SETUP -#line 207 "Gmsh.l" -return tSinh; +#line 206 "Gmsh.l" +return tReturn; YY_BREAK case 111: YY_RULE_SETUP #line 208 "Gmsh.l" -return tSphere; +return tSqrt; YY_BREAK case 112: YY_RULE_SETUP #line 209 "Gmsh.l" -return tSpline; +return tSin; YY_BREAK case 113: YY_RULE_SETUP #line 210 "Gmsh.l" -return tSurface; +return tSinh; YY_BREAK case 114: YY_RULE_SETUP #line 211 "Gmsh.l" -return tSymmetry; +return tSphere; YY_BREAK case 115: YY_RULE_SETUP #line 212 "Gmsh.l" -return tSprintf; +return tSpline; YY_BREAK case 116: YY_RULE_SETUP #line 213 "Gmsh.l" -return tStrCat; +return tSurface; YY_BREAK case 117: YY_RULE_SETUP #line 214 "Gmsh.l" -return tStrPrefix; +return tSymmetry; YY_BREAK case 118: YY_RULE_SETUP #line 215 "Gmsh.l" -return tStrRelative; +return tSprintf; YY_BREAK case 119: YY_RULE_SETUP #line 216 "Gmsh.l" -return tShow; +return tStrCat; YY_BREAK case 120: YY_RULE_SETUP -#line 218 "Gmsh.l" -return tTransfinite; +#line 217 "Gmsh.l" +return tStrPrefix; YY_BREAK case 121: YY_RULE_SETUP -#line 219 "Gmsh.l" -return tTranslate; +#line 218 "Gmsh.l" +return tStrRelative; YY_BREAK case 122: YY_RULE_SETUP -#line 220 "Gmsh.l" -return tTanh; +#line 219 "Gmsh.l" +return tShow; YY_BREAK case 123: YY_RULE_SETUP #line 221 "Gmsh.l" -return tTan; +return tTransfinite; YY_BREAK case 124: YY_RULE_SETUP #line 222 "Gmsh.l" -return tToday; +return tTranslate; YY_BREAK case 125: YY_RULE_SETUP -#line 224 "Gmsh.l" -return tUsing; +#line 223 "Gmsh.l" +return tTanh; YY_BREAK case 126: YY_RULE_SETUP -#line 226 "Gmsh.l" -return tVolume; +#line 224 "Gmsh.l" +return tTan; YY_BREAK case 127: YY_RULE_SETUP -#line 228 "Gmsh.l" -return tText2D; +#line 225 "Gmsh.l" +return tToday; YY_BREAK case 128: YY_RULE_SETUP -#line 229 "Gmsh.l" -return tText3D; +#line 227 "Gmsh.l" +return tUsing; YY_BREAK case 129: YY_RULE_SETUP -#line 230 "Gmsh.l" -return tInterpolationScheme; +#line 229 "Gmsh.l" +return tVolume; YY_BREAK case 130: YY_RULE_SETUP #line 231 "Gmsh.l" -return tTime; +return tText2D; YY_BREAK case 131: YY_RULE_SETUP #line 232 "Gmsh.l" -return tGrain; +return tText3D; YY_BREAK case 132: -#line 235 "Gmsh.l" +YY_RULE_SETUP +#line 233 "Gmsh.l" +return tInterpolationScheme; + YY_BREAK case 133: -#line 236 "Gmsh.l" +YY_RULE_SETUP +#line 234 "Gmsh.l" +return tTime; + YY_BREAK case 134: -#line 237 "Gmsh.l" +YY_RULE_SETUP +#line 235 "Gmsh.l" +return tGrain; + YY_BREAK case 135: +#line 238 "Gmsh.l" +case 136: +#line 239 "Gmsh.l" +case 137: +#line 240 "Gmsh.l" +case 138: YY_RULE_SETUP -#line 237 "Gmsh.l" +#line 240 "Gmsh.l" {yylval.d = atof((char *)yytext); return tDOUBLE;} YY_BREAK -case 136: +case 139: YY_RULE_SETUP -#line 239 "Gmsh.l" +#line 242 "Gmsh.l" {yylval.c = strsave((char*)yytext); return tSTRING;} YY_BREAK -case 137: +case 140: YY_RULE_SETUP -#line 241 "Gmsh.l" +#line 244 "Gmsh.l" return yytext[0]; YY_BREAK -case 138: +case 141: YY_RULE_SETUP -#line 243 "Gmsh.l" +#line 246 "Gmsh.l" ECHO; YY_BREAK -#line 1703 "Gmsh.yy.cpp" +#line 1735 "Gmsh.yy.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -1991,7 +2023,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 >= 573 ) + if ( yy_current_state >= 599 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2026,11 +2058,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 >= 573 ) + if ( yy_current_state >= 599 ) 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 == 572); + yy_is_jam = (yy_current_state == 598); return yy_is_jam ? 0 : yy_current_state; } @@ -2585,7 +2617,7 @@ int main() return 0; } #endif -#line 243 "Gmsh.l" +#line 246 "Gmsh.l" #undef yywrap diff --git a/benchmarks/2d/world.geo b/benchmarks/2d/world.geo new file mode 100755 index 0000000000000000000000000000000000000000..74d814f6cfee8092f53463ef4e97fd72d536449c --- /dev/null +++ b/benchmarks/2d/world.geo @@ -0,0 +1,197 @@ +lc = 1; +Point(1) = {0,0,0,lc}; +Point(2) = {1,0,0,lc}; +PolarSphere (1) = {1,2}; +Point(3) = {-1.55161,0.264525,0,lc}; +Point(4) = {-1.68254,0.325843,0,lc}; +Point(5) = {-1.77736,0.471397,0,lc}; +Point(6) = {-1.83961,0.661086,0,lc}; +Point(7) = {-1.98572,0.668269,0,lc}; +Point(8) = {-2.14163,0.633523,0,lc}; +Point(9) = {-2.29174,0.619054,0,lc}; +Point(10) = {-2.38039,0.796942,0,lc}; +Point(11) = {-2.19838,0.898626,0,lc}; +Point(12) = {-1.99529,1.04233,0,lc}; +Point(13) = {-1.75774,1.27551,0,lc}; +Point(14) = {-1.542,1.35947,0,lc}; +Point(15) = {-1.31037,1.45923,0,lc}; +Point(16) = {-1.15462,1.41596,0,lc}; +Point(17) = {-0.977281,1.39766,0,lc}; +Point(18) = {-1.0753,1.21389,0,lc}; +Point(19) = {-1.23101,1.04595,0,lc}; +Point(20) = {-1.17804,0.901431,0,lc}; +Point(21) = {-1.23339,0.712167,0,lc}; +Point(22) = {-1.28626,0.521158,0,lc}; +Point(23) = {-1.36557,0.337835,0,lc}; +Point(24) = {-1.3542,0.143922,0,lc}; +Point(25) = {-1.23451,0.048864,0,lc}; +Point(26) = {-1.22778,-0.13604,0,lc}; +Point(27) = {-1.08556,-0.14822,0,lc}; +Point(28) = {-1.04008,0.013532,0,lc}; +Point(29) = {-1.10675,0.163453,0,lc}; +Point(30) = {-0.964715,0.187934,0,lc}; +Point(31) = {-0.827224,0.242353,0,lc}; +Point(32) = {-0.701723,0.328778,0,lc}; +Point(33) = {-0.559485,0.36791,0,lc}; +Point(34) = {-0.48522,0.245056,0,lc}; +Point(35) = {-0.471464,0.099063,0,lc}; +Point(36) = {-0.612344,0.113911,0,lc}; +Point(37) = {-0.564529,-0.0269647,0,lc}; +Point(38) = {-0.42994,0.0186463,0,lc}; +Point(39) = {-0.290633,-0.00684787,0,lc}; +Point(40) = {-0.372028,-0.124262,0,lc}; +Point(41) = {-0.270856,-0.227492,0,lc}; +Point(42) = {-0.146459,-0.300435,0,lc}; +Point(43) = {-0.140346,-0.442437,0,lc}; +Point(44) = {-0.285962,-0.425609,0,lc}; +Point(45) = {-0.429587,-0.393738,0,lc}; +Point(46) = {-0.570829,-0.42034,0,lc}; +Point(47) = {-0.702194,-0.474829,0,lc}; +Point(48) = {-0.848656,-0.476357,0,lc}; +Point(49) = {-0.996481,-0.453136,0,lc}; +Point(50) = {-1.114,-0.331256,0,lc}; +Point(51) = {-1.24681,-0.241078,0,lc}; +Point(52) = {-1.30578,-0.0637967,0,lc}; +Point(53) = {-1.37909,0.102283,0,lc}; +Point(54) = {-1.40854,0.294098,0,lc}; +CatmullRom (4) = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 3}; +Line Loop (5) = {4}; +Physical Line (101) = {4}; +Point(55) = {1.15943,-1.06988,0,lc}; +Point(56) = {1.11442,-1.25521,0,lc}; +Point(57) = {0.953995,-1.42828,0,lc}; +Point(58) = {1.02528,-1.2485,0,lc}; +CatmullRom (6) = {55, 56, 57, 58, 55}; +Line Loop (7) = {6}; +Physical Line (107) = {6}; +Point(59) = {1.0699,-1.39895,0,lc}; +Point(60) = {1.28684,-1.3022,0,lc}; +Point(61) = {1.44755,-1.09187,0,lc}; +Point(62) = {1.63946,-0.98553,0,lc}; +Point(63) = {1.82109,-0.794121,0,lc}; +Point(64) = {1.91457,-0.920748,0,lc}; +Point(65) = {1.74896,-1.23431,0,lc}; +Point(66) = {1.52717,-1.51899,0,lc}; +Point(67) = {1.35989,-1.78316,0,lc}; +Point(68) = {1.04927,-1.89101,0,lc}; +Point(69) = {0.923534,-1.80089,0,lc}; +Point(70) = {1.02798,-1.61194,0,lc}; +Point(71) = {1.07133,-1.43329,0,lc}; +CatmullRom (8) = {59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 59}; +Line Loop (9) = {8}; +Physical Line (147) = {8}; +Point(72) = {1.13818,1.33578,0,lc}; +Point(73) = {1.13178,1.50556,0,lc}; +Point(74) = {1.10303,1.68253,0,lc}; +Point(75) = {1.0266,1.87254,0,lc}; +Point(76) = {0.722543,2.05204,0,lc}; +Point(77) = {0.539669,1.97559,0,lc}; +Point(78) = {0.422612,1.86496,0,lc}; +Point(79) = {0.421606,1.72079,0,lc}; +Point(80) = {0.313801,1.60783,0,lc}; +Point(81) = {0.237604,1.48176,0,lc}; +Point(82) = {0.0316823,1.46399,0,lc}; +Point(83) = {-0.175871,1.47858,0,lc}; +Point(84) = {-0.326223,1.36785,0,lc}; +Point(85) = {-0.357485,1.2222,0,lc}; +Point(86) = {-0.291278,1.09564,0,lc}; +Point(87) = {-0.170802,1.0025,0,lc}; +Point(88) = {-0.0185095,0.948621,0,lc}; +Point(89) = {0.141757,0.914392,0,lc}; +Point(90) = {0.279762,0.984966,0,lc}; +Point(91) = {0.437289,0.922313,0,lc}; +Point(92) = {0.573969,0.823809,0,lc}; +Point(93) = {0.417752,0.813729,0,lc}; +Point(94) = {0.265726,0.786559,0,lc}; +Point(95) = {0.108094,0.798183,0,lc}; +Point(96) = {-0.00655373,0.898529,0,lc}; +Point(97) = {-0.0247842,0.757828,0,lc}; +Point(98) = {0.0660941,0.643154,0,lc}; +Point(99) = {0.20663,0.587514,0,lc}; +Point(100) = {0.263116,0.453227,0,lc}; +Point(101) = {0.161783,0.560621,0,lc}; +Point(102) = {0.0786721,0.44496,0,lc}; +Point(103) = {0.134011,0.313157,0,lc}; +Point(104) = {0.267321,0.364833,0,lc}; +Point(105) = {0.29467,0.223294,0,lc}; +Point(106) = {0.37609,0.103516,0,lc}; +Point(107) = {0.265824,0.013853,0,lc}; +Point(108) = {0.254587,-0.128916,0,lc}; +Point(109) = {0.174515,-0.248004,0,lc}; +Point(110) = {0.06707,-0.343449,0,lc}; +Point(111) = {-0.0633952,-0.405116,0,lc}; +Point(112) = {0.0527479,-0.491389,0,lc}; +Point(113) = {0.179842,-0.56209,0,lc}; +Point(114) = {0.280741,-0.453853,0,lc}; +Point(115) = {0.426627,-0.433537,0,lc}; +Point(116) = {0.489603,-0.56124,0,lc}; +Point(117) = {0.638888,-0.538188,0,lc}; +Point(118) = {0.775822,-0.58193,0,lc}; +Point(119) = {0.777237,-0.425415,0,lc}; +Point(120) = {0.872845,-0.532308,0,lc}; +Point(121) = {1.02018,-0.534377,0,lc}; +Point(122) = {1.12872,-0.394999,0,lc}; +Point(123) = {1.26305,-0.439683,0,lc}; +Point(124) = {1.32531,-0.255236,0,lc}; +Point(125) = {1.44518,-0.341684,0,lc}; +Point(126) = {1.35237,-0.20654,0,lc}; +Point(127) = {1.24409,-0.0928109,0,lc}; +Point(128) = {1.22162,0.0899769,0,lc}; +Point(129) = {1.31012,0.228651,0,lc}; +Point(130) = {1.19983,0.368227,0,lc}; +Point(131) = {1.05854,0.443525,0,lc}; +Point(132) = {0.95778,0.588229,0,lc}; +Point(133) = {0.813402,0.671606,0,lc}; +Point(134) = {0.966948,0.626585,0,lc}; +Point(135) = {1.02547,0.765195,0,lc}; +Point(136) = {0.95609,0.935728,0,lc}; +Point(137) = {0.796074,0.929854,0,lc}; +Point(138) = {0.648403,0.891905,0,lc}; +Point(139) = {0.754538,0.987193,0,lc}; +Point(140) = {0.919743,0.985499,0,lc}; +Point(141) = {1.07525,0.868857,0,lc}; +Point(142) = {1.1039,1.02509,0,lc}; +Point(143) = {1.05823,1.20601,0,lc}; +Point(144) = {1.11324,1.3417,0,lc}; +CatmullRom (10) = {72, 73, 74, 75, 76, 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, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 72}; +Line Loop (11) = {10}; +Physical Line (150) = {10}; +Point(145) = {1.466,-0.502884,0,lc}; +Point(146) = {1.48103,-0.699689,0,lc}; +Point(147) = {1.33221,-0.693008,0,lc}; +Point(148) = {1.44852,-0.516739,0,lc}; +CatmullRom (12) = {145, 146, 147, 148, 145}; +Line Loop (13) = {12}; +Physical Line (225) = {12}; +Point(149) = {-0.0530452,0.166128,0,lc}; +Point(150) = {-0.124099,0.288587,0,lc}; +Point(151) = {-0.258305,0.337406,0,lc}; +Point(152) = {-0.25407,0.194477,0,lc}; +Point(153) = {-0.199452,0.0632463,0,lc}; +Point(154) = {-0.0607522,0.0926911,0,lc}; +CatmullRom (14) = {149, 150, 151, 152, 153, 154, 149}; +Line Loop (15) = {14}; +Physical Line (596) = {14}; +Point(155) = {-2.24778,1.45184,0,lc}; +Point(156) = {-2.46524,1.35898,0,lc}; +Point(157) = {-2.03051,2.11692,0,lc}; +Point(158) = {-0.695453,2.77686,0,lc}; +Point(159) = {0.450262,2.75776,0,lc}; +Point(160) = {1.5031,2.33977,0,lc}; +Point(161) = {2.15041,1.6681,0,lc}; +Point(162) = {2.61284,1.07682,0,lc}; +Point(163) = {2.72587,0.221453,0,lc}; +Point(164) = {2.62505,-0.74004,0,lc}; +Point(165) = {2.20726,-1.60448,0,lc}; +Point(166) = {1.51549,-2.29856,0,lc}; +Point(167) = {0.588827,-2.74658,0,lc}; +Point(168) = {-0.145308,-2.92972,0,lc}; +Point(169) = {-1.75327,-2.29734,0,lc}; +Point(170) = {-2.65734,-1.06613,0,lc}; +Point(171) = {-2.83435,0.390902,0,lc}; +Point(172) = {-2.5229,1.09589,0,lc}; +CatmullRom (16) = {155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 155}; +Line Loop (17) = {16}; +Physical Line (1031) = {16}; +Plane Surface (3) = {5, 7, 9, 11, 13, 15, 17}; +//Attractor Line (2) = {4, 6, 8, 10, 12, 14, 16};