diff --git a/Common/VertexArray.cpp b/Common/VertexArray.cpp index 2793c0b4b9bce4e46a903afaab386b295718be3d..f3ee4616b10c351d7094c05ba18f0811a642d22a 100644 --- a/Common/VertexArray.cpp +++ b/Common/VertexArray.cpp @@ -1,4 +1,4 @@ -// $Id: VertexArray.cpp,v 1.2 2004-05-29 20:25:28 geuzaine Exp $ +// $Id: VertexArray.cpp,v 1.3 2004-05-29 23:22:19 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -24,25 +24,31 @@ #include "Context.h" #include "Numeric.h" -triangleVertexArray::triangleVertexArray(int nb) +VertexArray::VertexArray(int numNodesPerElement, int numElements) { - num_triangles = fill = 0; - if(!nb) - nb = 1000; - vertices = List_Create(nb * 3 * 3, 9000, sizeof(float)); - normals = List_Create(nb * 3 * 3, 9000, sizeof(float)); - colors = List_Create(nb * 3 * 4, 12000, sizeof(unsigned char)); + type = numNodesPerElement; + if(type != 3 && type != 4){ + Msg(GERROR, "Vertex arrays should only contain triangles or quadrangles"); + type = 3; + } + num = fill = 0; + if(!numElements) + numElements = 1; + int nb = numElements * numNodesPerElement; + vertices = List_Create(nb * 3, 3000, sizeof(float)); + normals = List_Create(nb * 3, 3000, sizeof(float)); + colors = List_Create(nb * 4, 4000, sizeof(unsigned char)); } -triangleVertexArray::~triangleVertexArray() +VertexArray::~VertexArray() { List_Delete(vertices); List_Delete(normals); List_Delete(colors); } -void triangleVertexArray::add(float x, float y, float z, float n0, - float n1, float n2, unsigned int col) +void VertexArray::add(float x, float y, float z, + float n0, float n1, float n2, unsigned int col) { unsigned char r = UNPACK_RED(col); unsigned char g = UNPACK_GREEN(col); @@ -85,8 +91,13 @@ int compareTriEye(const void *a, const void *b) return 0; } -void triangleVertexArray::sort(double eye[3]) +void VertexArray::sort(double eye[3]) { + if(type != 3){ + Msg(GERROR, "VertexArray sort only implemented for triangles"); + return; + } + theeye[0] = eye[0]; theeye[1] = eye[1]; theeye[2] = eye[2]; @@ -95,7 +106,7 @@ void triangleVertexArray::sort(double eye[3]) float *tmp = new float[nb]; int iv = 0, in = 0, ic = 0, k = 0; - for(int i = 0; i < num_triangles; i++){ + for(int i = 0; i < num; i++){ for(int j = 0; j < 9; j++) List_Read(vertices, iv++, &tmp[k++]); for(int j = 0; j < 9; j++) @@ -111,10 +122,10 @@ void triangleVertexArray::sort(double eye[3]) List_Reset(normals); List_Reset(colors); - qsort(tmp, num_triangles, (9+9+12)*sizeof(float), compareTriEye); + qsort(tmp, num, (9+9+12)*sizeof(float), compareTriEye); k = 0; - for(int i = 0; i < num_triangles; i++){ + for(int i = 0; i < num; i++){ for(int j = 0; j < 9; j++) List_Add(vertices, &tmp[k++]); for(int j = 0; j < 9; j++) @@ -127,3 +138,4 @@ void triangleVertexArray::sort(double eye[3]) delete [] tmp; } + diff --git a/Common/VertexArray.h b/Common/VertexArray.h index 3562103cd6538cd925934d0a533fb40f241b66b8..4a2205402f60e22df0e70e2b4520892f6e51d75b 100644 --- a/Common/VertexArray.h +++ b/Common/VertexArray.h @@ -22,14 +22,14 @@ #include "List.h" -class triangleVertexArray{ +class VertexArray{ public: - int num_triangles, fill; + int type, num, fill; List_T *vertices, *normals, *colors; - triangleVertexArray(int nb); - ~triangleVertexArray(); - void add(float x, float y, float z, float n0, - float n1, float n2, unsigned int col); + VertexArray(int numNodesPerElement, int numElements); + ~VertexArray(); + void add(float x, float y, float z, + float n0, float n1, float n2, unsigned int col); void sort(double eye[3]); }; diff --git a/Common/Views.cpp b/Common/Views.cpp index 23b44fe7d6bc0fa93356094dc8d93bdaf7c5eda6..1ed255961b8818d89f1cc6a5d7456525a2bfc002 100644 --- a/Common/Views.cpp +++ b/Common/Views.cpp @@ -1,4 +1,4 @@ -// $Id: Views.cpp,v 1.120 2004-05-29 20:25:28 geuzaine Exp $ +// $Id: Views.cpp,v 1.121 2004-05-29 23:22:19 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -72,7 +72,7 @@ Post_View *BeginView(int allocate) v->Index = i; v->Dirty = 1; - v->VertexArray = NULL; + v->TriVertexArray = NULL; v->NbTimeStep = 0; v->TimeStepMin = NULL; v->TimeStepMax = NULL; @@ -594,9 +594,9 @@ void FreeView(Post_View * v) v->T2D = v->T2C = NULL; v->T3D = v->T3C = NULL; v->reset_normals(); - if(v->VertexArray) - delete v->VertexArray; - v->VertexArray = NULL; + if(v->TriVertexArray) + delete v->TriVertexArray; + v->TriVertexArray = NULL; } } diff --git a/Common/Views.h b/Common/Views.h index d343255f0b6c3a95339686367031c01f99b38832..2ce699e3c593390ac41d5fa78bf103e16f6ace30 100644 --- a/Common/Views.h +++ b/Common/Views.h @@ -61,7 +61,7 @@ class Post_View{ List_T *T2D, *T2C, *T3D, *T3C; // 2D and 3D text strings // a vertex array to draw triangles efficiently - triangleVertexArray *VertexArray; + VertexArray *TriVertexArray; // options int Type, Position[2], AutoPosition, Size[2]; diff --git a/Graphics/Draw.h b/Graphics/Draw.h index 57bcc2b60fb414b4f38c5abcc742d240a7e8d3ab..07a263e6e4b9ad8fe58ac4897a1882b36e4e6329 100644 --- a/Graphics/Draw.h +++ b/Graphics/Draw.h @@ -84,12 +84,12 @@ void Draw_Mesh_Curve(void *a, void *b); void Draw_Mesh_Point(void *a, void *b); void Draw_Mesh_Line(void *a, void *b); void Draw_Mesh_Triangle(void *a, void *b); -void Draw_Mesh_Triangle_Array(triangleVertexArray *va); void Draw_Mesh_Quadrangle(void *a, void *b); void Draw_Mesh_Tetrahedron(void *a, void *b); void Draw_Mesh_Hexahedron(void *a, void *b); void Draw_Mesh_Prism(void *a, void *b); void Draw_Mesh_Pyramid(void *a, void *b); +void Draw_Mesh_Array(VertexArray *va, int faces, int edges); void Draw_ScalarPoint(Post_View *View, int preproNormals, double ValMin, double ValMax, diff --git a/Graphics/Iso.cpp b/Graphics/Iso.cpp index 0df6b8a752253e77dc0571f9e7c8435edc416e97..ec5acf5404129d88c891ef67f704ee89da5e9ec8 100644 --- a/Graphics/Iso.cpp +++ b/Graphics/Iso.cpp @@ -1,4 +1,4 @@ -// $Id: Iso.cpp,v 1.25 2004-05-29 20:25:28 geuzaine Exp $ +// $Id: Iso.cpp,v 1.26 2004-05-29 23:22:19 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -422,21 +422,21 @@ void IsoSimplex(Post_View * View, int preproNormals, if(preproNormals) return; - if(View->VertexArray && View->VertexArray->fill){ + if(View->TriVertexArray && View->TriVertexArray->fill){ for(int i = 2; i < nb; i++){ - View->VertexArray->add(Xp[0] + View->Raise[0] * V, - Yp[0] + View->Raise[1] * V, - Zp[0] + View->Raise[2] * V, - norms[0], norms[1], norms[2], color); - View->VertexArray->add(Xp[i-1] + View->Raise[0] * V, - Yp[i-1] + View->Raise[1] * V, - Zp[i-1] + View->Raise[2] * V, - norms[3*(i-1)], norms[3*(i-1)+1], norms[3*(i-1)+2], color); - View->VertexArray->add(Xp[i] + View->Raise[0] * V, - Yp[i] + View->Raise[1] * V, - Zp[i] + View->Raise[2] * V, - norms[3*i], norms[3*i+1], norms[3*i+2], color); - View->VertexArray->num_triangles++; + View->TriVertexArray->add(Xp[0] + View->Raise[0] * V, + Yp[0] + View->Raise[1] * V, + Zp[0] + View->Raise[2] * V, + norms[0], norms[1], norms[2], color); + View->TriVertexArray->add(Xp[i-1] + View->Raise[0] * V, + Yp[i-1] + View->Raise[1] * V, + Zp[i-1] + View->Raise[2] * V, + norms[3*(i-1)], norms[3*(i-1)+1], norms[3*(i-1)+2], color); + View->TriVertexArray->add(Xp[i] + View->Raise[0] * V, + Yp[i] + View->Raise[1] * V, + Zp[i] + View->Raise[2] * V, + norms[3*i], norms[3*i+1], norms[3*i+2], color); + View->TriVertexArray->num++; } } else{ diff --git a/Graphics/Mesh.cpp b/Graphics/Mesh.cpp index ed105101d4f42bf56ae079fe3e044fe4d2bbe2b3..01c61580da686f9dd6f73afb0ef228862d2fefe8 100644 --- a/Graphics/Mesh.cpp +++ b/Graphics/Mesh.cpp @@ -1,4 +1,4 @@ -// $Id: Mesh.cpp,v 1.91 2004-05-29 20:25:28 geuzaine Exp $ +// $Id: Mesh.cpp,v 1.92 2004-05-29 23:22:19 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -231,24 +231,37 @@ void Draw_Mesh_Surface(void *a, void *b) if(CTX.mesh.vertex_arrays){ if(CTX.mesh.changed){ - Msg(DEBUG, "regenerate mesh vertex array"); - if(s->vertexArray) delete s->vertexArray; - s->vertexArray = new triangleVertexArray(Tree_Nbr(s->Simplexes)); - s->vertexArray->fill = 1; + Msg(DEBUG, "regenerate surface mesh vertex arrays"); + // triangles + if(s->TriVertexArray) delete s->TriVertexArray; + s->TriVertexArray = new VertexArray(3, Tree_Nbr(s->Simplexes)); + s->TriVertexArray->fill = 1; Tree_Action(s->Simplexes, Draw_Mesh_Triangle); - if(s->vertexArray) - s->vertexArray->fill = 0; + if(s->TriVertexArray) s->TriVertexArray->fill = 0; + // quads + if(s->QuadVertexArray) delete s->QuadVertexArray; + s->QuadVertexArray = new VertexArray(4, Tree_Nbr(s->Quadrangles)); + s->QuadVertexArray->fill = 1; + Tree_Action(s->Quadrangles, Draw_Mesh_Quadrangle); + if(s->QuadVertexArray) s->QuadVertexArray->fill = 0; } - if(s->vertexArray) - Draw_Mesh_Triangle_Array(s->vertexArray); + if(s->TriVertexArray) + Draw_Mesh_Array(s->TriVertexArray, + CTX.mesh.surfaces_faces, CTX.mesh.surfaces_edges); + if(s->QuadVertexArray) + Draw_Mesh_Array(s->QuadVertexArray, + CTX.mesh.surfaces_faces, CTX.mesh.surfaces_edges); } - if(!s->vertexArray || CTX.mesh.dual || CTX.mesh.surfaces_num || CTX.mesh.normals){ + if(!s->TriVertexArray || CTX.mesh.dual || CTX.mesh.surfaces_num || CTX.mesh.normals){ Msg(DEBUG, "classic triangle data path"); Tree_Action(s->Simplexes, Draw_Mesh_Triangle); } - Tree_Action(s->Quadrangles, Draw_Mesh_Quadrangle); + if(!s->QuadVertexArray || CTX.mesh.dual || CTX.mesh.surfaces_num || CTX.mesh.normals){ + Msg(DEBUG, "classic quadrangle data path"); + Tree_Action(s->Quadrangles, Draw_Mesh_Quadrangle); + } theSurface = NULL; } @@ -422,7 +435,6 @@ void _normal3points(double x0, double y0, double z0, n[1] = z1z0 * x2x0 - x1x0 * z2z0; n[2] = x1x0 * y2y0 - y1y0 * x2x0; norme(n); - glNormal3dv(n); } void _triFace(double x0, double y0, double z0, @@ -430,8 +442,10 @@ void _triFace(double x0, double y0, double z0, double x2, double y2, double z2) { double n[3]; - if(CTX.mesh.light) + if(CTX.mesh.light){ _normal3points(x0, y0, z0, x1, y1, z1, x2, y2, z2, n); + glNormal3dv(n); + } glVertex3d(x0, y0, z0); glVertex3d(x1, y1, z1); glVertex3d(x2, y2, z2); @@ -452,10 +466,12 @@ void _quadFace(double *x, double *y, double *z, int i0, int i1, int i2, int i3) { double n[3]; - if(CTX.mesh.light) + if(CTX.mesh.light){ _normal3points(x[i0], y[i0], z[i0], x[i1], y[i1], z[i1], x[i2], y[i2], z[i2], n); + glNormal3dv(n); + } glVertex3d(x[i0], y[i0], z[i0]); glVertex3d(x[i1], y[i1], z[i1]); glVertex3d(x[i2], y[i2], z[i2]); @@ -477,6 +493,47 @@ void _quadFace2(double *x, double *y, double *z, _triFace(x2[j3], y2[j3], z2[j3], x[i0], y[i0], z[i0], x2[j4], y2[j4], z2[j4]); } +void Draw_Mesh_Array(VertexArray *va, int faces, int edges) +{ + if(!va->num) + return; + + glVertexPointer(3, GL_FLOAT, 0, va->vertices->array); + glNormalPointer(GL_FLOAT, 0, va->normals->array); + glColorPointer(4, GL_UNSIGNED_BYTE, 0, va->colors->array); + + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + glEnableClientState(GL_NORMAL_ARRAY); + + if(faces){ + if(edges) + glEnable(GL_POLYGON_OFFSET_FILL); + if(CTX.mesh.light) + glEnable(GL_LIGHTING); + else + glDisableClientState(GL_NORMAL_ARRAY); + glDrawArrays((va->type == 3) ? GL_TRIANGLES : GL_QUADS, 0, va->type * va->num); + glDisable(GL_POLYGON_OFFSET_FILL); + glDisable(GL_LIGHTING); + } + + if(edges){ + if(faces || CTX.mesh.surfaces_faces){ + glDisableClientState(GL_COLOR_ARRAY); + glColor4ubv((GLubyte *) & CTX.color.mesh.line); + } + glDisableClientState(GL_NORMAL_ARRAY); + glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); + glDrawArrays((va->type == 3) ? GL_TRIANGLES : GL_QUADS, 0, va->type * va->num); + glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); + } + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_COLOR_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); +} + void Draw_Mesh_Triangle(void *a, void *b) { double X[3], Y[3], Z[3], X2[3], Y2[3], Z2[3]; @@ -520,10 +577,10 @@ void Draw_Mesh_Triangle(void *a, void *b) Z[i] = Zc + CTX.mesh.explode * (s->V[i]->Pos.Z - Zc); } if(s->VSUP){ - if(theSurface && theSurface->vertexArray){ + if(theSurface && theSurface->TriVertexArray){ // vertex arrays not implemented for second order elements - delete theSurface->vertexArray; - theSurface->vertexArray = NULL; + delete theSurface->TriVertexArray; + theSurface->TriVertexArray = NULL; } for(int i = 0; i < 3; i++) { X2[i] = Xc + CTX.mesh.explode * (s->VSUP[i]->Pos.X - Xc); @@ -533,32 +590,18 @@ void Draw_Mesh_Triangle(void *a, void *b) } if(CTX.mesh.normals || CTX.mesh.light || - (theSurface && theSurface->vertexArray && theSurface->vertexArray->fill)) + (theSurface && theSurface->TriVertexArray && theSurface->TriVertexArray->fill)){ _normal3points(X[0], Y[0], Z[0], X[1], Y[1], Z[1], X[2], Y[2], Z[2], n); + glNormal3dv(n); + } - if(theSurface && theSurface->vertexArray){ - if(theSurface->vertexArray->fill){ - for(int i = 0; i < 3; i++) { - float x = X[i], y = Y[i], z = Z[i]; - float n0 = n[0], n1 = n[1], n2 = n[2]; - unsigned char r = UNPACK_RED(col); - unsigned char g = UNPACK_GREEN(col); - unsigned char b = UNPACK_BLUE(col); - unsigned char a = UNPACK_ALPHA(col); - List_Add(theSurface->vertexArray->vertices, &x); - List_Add(theSurface->vertexArray->vertices, &y); - List_Add(theSurface->vertexArray->vertices, &z); - List_Add(theSurface->vertexArray->normals, &n0); - List_Add(theSurface->vertexArray->normals, &n1); - List_Add(theSurface->vertexArray->normals, &n2); - List_Add(theSurface->vertexArray->colors, &r); - List_Add(theSurface->vertexArray->colors, &g); - List_Add(theSurface->vertexArray->colors, &b); - List_Add(theSurface->vertexArray->colors, &a); - } - theSurface->vertexArray->num_triangles++; + if(theSurface && theSurface->TriVertexArray){ + if(theSurface->TriVertexArray->fill){ + for(int i = 0; i < 3; i++) + theSurface->TriVertexArray->add(X[i], Y[i], Z[i], n[0], n[1], n[2], col); + theSurface->TriVertexArray->num++; } } else{ @@ -574,6 +617,7 @@ void Draw_Mesh_Triangle(void *a, void *b) } glEnd(); } + if(CTX.mesh.surfaces_faces) { glColor4ubv((GLubyte *) & col); if(CTX.mesh.light) glEnable(GL_LIGHTING); @@ -632,47 +676,6 @@ void Draw_Mesh_Triangle(void *a, void *b) } } -void Draw_Mesh_Triangle_Array(triangleVertexArray *va) -{ - if(!va->num_triangles) - return; - - glVertexPointer(3, GL_FLOAT, 0, va->vertices->array); - glNormalPointer(GL_FLOAT, 0, va->normals->array); - glColorPointer(4, GL_UNSIGNED_BYTE, 0, va->colors->array); - - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_COLOR_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); - - if(CTX.mesh.surfaces_faces){ - if(CTX.mesh.surfaces_edges) - glEnable(GL_POLYGON_OFFSET_FILL); - if(CTX.mesh.light) - glEnable(GL_LIGHTING); - else - glDisableClientState(GL_NORMAL_ARRAY); - glDrawArrays(GL_TRIANGLES, 0, 3 * va->num_triangles); - glDisable(GL_POLYGON_OFFSET_FILL); - glDisable(GL_LIGHTING); - } - - if(CTX.mesh.surfaces_edges){ - if(CTX.mesh.surfaces_faces){ - glDisableClientState(GL_COLOR_ARRAY); - glColor4ubv((GLubyte *) & CTX.color.mesh.line); - } - glDisableClientState(GL_NORMAL_ARRAY); - glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); - glDrawArrays(GL_TRIANGLES, 0, 3 * va->num_triangles); - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - } - - glDisableClientState(GL_VERTEX_ARRAY); - glDisableClientState(GL_COLOR_ARRAY); - glDisableClientState(GL_NORMAL_ARRAY); -} - void Draw_Mesh_Quadrangle(void *a, void *b) { double X[4], Y[4], Z[4], X2[5], Y2[5], Z2[5]; @@ -716,6 +719,11 @@ void Draw_Mesh_Quadrangle(void *a, void *b) Z[i] = Zc + CTX.mesh.explode * (q->V[i]->Pos.Z - Zc); } if(q->VSUP){ + if(theSurface && theSurface->QuadVertexArray){ + // vertex arrays not implemented for second order elements + delete theSurface->QuadVertexArray; + theSurface->QuadVertexArray = NULL; + } for(int i = 0; i < 5; i++) { X2[i] = Xc + CTX.mesh.explode * (q->VSUP[i]->Pos.X - Xc); Y2[i] = Yc + CTX.mesh.explode * (q->VSUP[i]->Pos.Y - Yc); @@ -723,44 +731,55 @@ void Draw_Mesh_Quadrangle(void *a, void *b) } } - if(CTX.mesh.normals || CTX.mesh.light) + if(CTX.mesh.normals || CTX.mesh.light || + (theSurface && theSurface->QuadVertexArray && theSurface->QuadVertexArray->fill)){ _normal3points(X[0], Y[0], Z[0], X[1], Y[1], Z[1], X[2], Y[2], Z[2], n); - - if(CTX.mesh.surfaces_edges){ - if(CTX.mesh.surfaces_faces) - glColor4ubv((GLubyte *) & CTX.color.mesh.line); - else - glColor4ubv((GLubyte *) & col); - glBegin(GL_LINE_LOOP); - for(int i = 0; i < 4; i++){ - glVertex3d(X[i], Y[i], Z[i]); - if(q->VSUP) - glVertex3d(X2[i], Y2[i], Z2[i]); - } - glEnd(); + glNormal3dv(n); } - if(CTX.mesh.surfaces_faces) { - glColor4ubv((GLubyte *) & col); - if(CTX.mesh.light) glEnable(GL_LIGHTING); - glEnable(GL_POLYGON_OFFSET_FILL); - if(!q->VSUP) { - glBegin(GL_QUADS); - glVertex3d(X[0], Y[0], Z[0]); - glVertex3d(X[1], Y[1], Z[1]); - glVertex3d(X[2], Y[2], Z[2]); - glVertex3d(X[3], Y[3], Z[3]); - glEnd(); + if(theSurface && theSurface->QuadVertexArray){ + if(theSurface->QuadVertexArray->fill){ + for(int i = 0; i < 4; i++) + theSurface->QuadVertexArray->add(X[i], Y[i], Z[i], n[0], n[1], n[2], col); + theSurface->QuadVertexArray->num++; } - else { - glBegin(GL_TRIANGLES); - _quadFace2(X, Y, Z, X2, Y2, Z2, 0, 1, 2, 3, 0, 1, 2, 3, 4); + } + else{ + if(CTX.mesh.surfaces_edges){ + if(CTX.mesh.surfaces_faces) + glColor4ubv((GLubyte *) & CTX.color.mesh.line); + else + glColor4ubv((GLubyte *) & col); + glBegin(GL_LINE_LOOP); + for(int i = 0; i < 4; i++){ + glVertex3d(X[i], Y[i], Z[i]); + if(q->VSUP) glVertex3d(X2[i], Y2[i], Z2[i]); + } glEnd(); } - glDisable(GL_POLYGON_OFFSET_FILL); - glDisable(GL_LIGHTING); + + if(CTX.mesh.surfaces_faces) { + glColor4ubv((GLubyte *) & col); + if(CTX.mesh.light) glEnable(GL_LIGHTING); + glEnable(GL_POLYGON_OFFSET_FILL); + if(!q->VSUP) { + glBegin(GL_QUADS); + glVertex3d(X[0], Y[0], Z[0]); + glVertex3d(X[1], Y[1], Z[1]); + glVertex3d(X[2], Y[2], Z[2]); + glVertex3d(X[3], Y[3], Z[3]); + glEnd(); + } + else { + glBegin(GL_TRIANGLES); + _quadFace2(X, Y, Z, X2, Y2, Z2, 0, 1, 2, 3, 0, 1, 2, 3, 4); + glEnd(); + } + glDisable(GL_POLYGON_OFFSET_FILL); + glDisable(GL_LIGHTING); + } } if(CTX.mesh.dual) { diff --git a/Graphics/Post.cpp b/Graphics/Post.cpp index 2c26bf37f653e49afaca2a19d7a0216baf985ca7..0bcc12adafceb0d5fd3a70a8d949acc004412823 100644 --- a/Graphics/Post.cpp +++ b/Graphics/Post.cpp @@ -1,4 +1,4 @@ -// $Id: Post.cpp,v 1.64 2004-05-29 20:25:29 geuzaine Exp $ +// $Id: Post.cpp,v 1.65 2004-05-29 23:22:19 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -453,9 +453,9 @@ void Draw_Post(void) if(CTX.post.vertex_arrays){ if(v->Changed){ Msg(DEBUG, "regenerate View[%d] vertex array", v->Index); - if(v->VertexArray) delete v->VertexArray; - v->VertexArray = new triangleVertexArray(10000); - v->VertexArray->fill = 1; + if(v->TriVertexArray) delete v->TriVertexArray; + v->TriVertexArray = new VertexArray(3, 10000); + v->TriVertexArray->fill = 1; goto pass_0; } } @@ -463,7 +463,7 @@ void Draw_Post(void) } else{ // don't even enter the classic data path if we don't have to - if(v->VertexArray){ + if(v->TriVertexArray){ if(v->Boundary < 1 && !v->ShowElement && v->IntervalsType != DRAW_POST_NUMERIC && v->IntervalsType != DRAW_POST_ISO){ Msg(DEBUG, "Skiping 2D scalar pass alltogether!"); @@ -516,20 +516,20 @@ void Draw_Post(void) } pass_1: - if(v->VertexArray) - v->VertexArray->fill = 0; + if(v->TriVertexArray) + v->TriVertexArray->fill = 0; } - if(v->VertexArray && v->VertexArray->num_triangles){ + if(v->TriVertexArray && v->TriVertexArray->num){ if(CTX.alpha && ColorTable_IsAlpha(&v->CT) && (changedEye() || v->Changed)){ Msg(DEBUG, "Sorting for transparency (WITH vertex array)"); - v->VertexArray->sort(storedEye); + v->TriVertexArray->sort(storedEye); } - glVertexPointer(3, GL_FLOAT, 0, v->VertexArray->vertices->array); - glNormalPointer(GL_FLOAT, 0, v->VertexArray->normals->array); - glColorPointer(4, GL_UNSIGNED_BYTE, 0, v->VertexArray->colors->array); + glVertexPointer(3, GL_FLOAT, 0, v->TriVertexArray->vertices->array); + glNormalPointer(GL_FLOAT, 0, v->TriVertexArray->normals->array); + glColorPointer(4, GL_UNSIGNED_BYTE, 0, v->TriVertexArray->colors->array); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); @@ -540,7 +540,7 @@ void Draw_Post(void) else glDisableClientState(GL_NORMAL_ARRAY); glEnable(GL_POLYGON_OFFSET_FILL); - glDrawArrays(GL_TRIANGLES, 0, 3 * v->VertexArray->num_triangles); + glDrawArrays(GL_TRIANGLES, 0, 3 * v->TriVertexArray->num); glDisable(GL_POLYGON_OFFSET_FILL); glDisable(GL_LIGHTING); diff --git a/Graphics/PostElement.cpp b/Graphics/PostElement.cpp index 6b897f937cc126a9b10f1ec44388c95066ff5f65..697ebecb90a05185126498458967ee85144dcb0e 100644 --- a/Graphics/PostElement.cpp +++ b/Graphics/PostElement.cpp @@ -1,4 +1,4 @@ -// $Id: PostElement.cpp,v 1.32 2004-05-29 20:25:29 geuzaine Exp $ +// $Id: PostElement.cpp,v 1.33 2004-05-29 23:22:19 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -394,7 +394,7 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals, Raise[i][k] = View->Raise[i] * Val[k]; if(View->Light && - (!View->VertexArray || (View->VertexArray && View->VertexArray->fill))) { + (!View->TriVertexArray || (View->TriVertexArray && View->TriVertexArray->fill))) { x1x0 = (X[1] + Raise[0][1]) - (X[0] + Raise[0][0]); y1y0 = (Y[1] + Raise[1][1]) - (Y[0] + Raise[1][0]); z1z0 = (Z[1] + Raise[2][1]) - (Z[0] + Raise[2][0]); @@ -454,22 +454,22 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals, } if(View->IntervalsType == DRAW_POST_CONTINUOUS && - (!View->VertexArray || (View->VertexArray && View->VertexArray->fill))) { + (!View->TriVertexArray || (View->TriVertexArray && View->TriVertexArray->fill))) { if(Val[0] >= ValMin && Val[0] <= ValMax && Val[1] >= ValMin && Val[1] <= ValMax && Val[2] >= ValMin && Val[2] <= ValMax) { - if(View->VertexArray && View->VertexArray->fill){ + if(View->TriVertexArray && View->TriVertexArray->fill){ unsigned int col; col = PaletteContinuous(View, ValMin, ValMax, Val[0]); - View->VertexArray->add(X[0] + Raise[0][0], Y[0] + Raise[1][0], Z[0] + Raise[2][0], - norms[0], norms[1], norms[2], col); + View->TriVertexArray->add(X[0] + Raise[0][0], Y[0] + Raise[1][0], Z[0] + Raise[2][0], + norms[0], norms[1], norms[2], col); col = PaletteContinuous(View, ValMin, ValMax, Val[1]); - View->VertexArray->add(X[1] + Raise[0][1], Y[1] + Raise[1][1], Z[1] + Raise[2][1], - norms[3], norms[4], norms[5], col); + View->TriVertexArray->add(X[1] + Raise[0][1], Y[1] + Raise[1][1], Z[1] + Raise[2][1], + norms[3], norms[4], norms[5], col); col = PaletteContinuous(View, ValMin, ValMax, Val[2]); - View->VertexArray->add(X[2] + Raise[0][2], Y[2] + Raise[1][2], Z[2] + Raise[2][2], - norms[6], norms[7], norms[8], col); - View->VertexArray->num_triangles++; + View->TriVertexArray->add(X[2] + Raise[0][2], Y[2] + Raise[1][2], Z[2] + Raise[2][2], + norms[6], norms[7], norms[8], col); + View->TriVertexArray->num++; } else{ if(View->Light) glEnable(GL_LIGHTING); @@ -492,25 +492,25 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals, else { CutTriangle2D(X, Y, Z, Val, ValMin, ValMax, Xp, Yp, Zp, &nb, value); if(nb >= 3) { - if(View->VertexArray && View->VertexArray->fill){ + if(View->TriVertexArray && View->TriVertexArray->fill){ for(int i = 2; i < nb; i++) { unsigned int col; col = PaletteContinuous(View, ValMin, ValMax, value[0]); - View->VertexArray->add(Xp[0] + View->Raise[0] * value[0], - Yp[0] + View->Raise[1] * value[0], - Zp[0] + View->Raise[2] * value[0], - norms[0], norms[1], norms[2], col); + View->TriVertexArray->add(Xp[0] + View->Raise[0] * value[0], + Yp[0] + View->Raise[1] * value[0], + Zp[0] + View->Raise[2] * value[0], + norms[0], norms[1], norms[2], col); col = PaletteContinuous(View, ValMin, ValMax, value[i-1]); - View->VertexArray->add(Xp[i-1] + View->Raise[0] * value[i-1], - Yp[i-1] + View->Raise[1] * value[i-1], - Zp[i-1] + View->Raise[2] * value[i-1], - norms[0], norms[1], norms[2], col); + View->TriVertexArray->add(Xp[i-1] + View->Raise[0] * value[i-1], + Yp[i-1] + View->Raise[1] * value[i-1], + Zp[i-1] + View->Raise[2] * value[i-1], + norms[0], norms[1], norms[2], col); col = PaletteContinuous(View, ValMin, ValMax, value[i]); - View->VertexArray->add(Xp[i] + View->Raise[0] * value[i], - Yp[i] + View->Raise[1] * value[i], - Zp[i] + View->Raise[2] * value[i], - norms[0], norms[1], norms[2], col); - View->VertexArray->num_triangles++; + View->TriVertexArray->add(Xp[i] + View->Raise[0] * value[i], + Yp[i] + View->Raise[1] * value[i], + Zp[i] + View->Raise[2] * value[i], + norms[0], norms[1], norms[2], col); + View->TriVertexArray->num++; } } else{ @@ -532,7 +532,7 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals, } if(View->IntervalsType == DRAW_POST_DISCRETE && - (!View->VertexArray || (View->VertexArray && View->VertexArray->fill))) { + (!View->TriVertexArray || (View->TriVertexArray && View->TriVertexArray->fill))) { for(int k = 0; k < View->NbIso; k++) { unsigned int col = PaletteDiscrete(View, View->NbIso, k); CutTriangle2D(X, Y, Z, Val, @@ -540,21 +540,21 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals, View->GVFI(ValMin, ValMax, View->NbIso + 1, k + 1), Xp, Yp, Zp, &nb, value); if(nb >= 3) { - if(View->VertexArray && View->VertexArray->fill){ + if(View->TriVertexArray && View->TriVertexArray->fill){ for(int i = 2; i < nb; i++) { - View->VertexArray->add(Xp[0] + View->Raise[0] * value[0], - Yp[0] + View->Raise[1] * value[0], - Zp[0] + View->Raise[2] * value[0], - norms[0], norms[1], norms[2], col); - View->VertexArray->add(Xp[i-1] + View->Raise[0] * value[i-1], - Yp[i-1] + View->Raise[1] * value[i-1], - Zp[i-1] + View->Raise[2] * value[i-1], - norms[0], norms[1], norms[2], col); - View->VertexArray->add(Xp[i] + View->Raise[0] * value[i], - Yp[i] + View->Raise[1] * value[i], - Zp[i] + View->Raise[2] * value[i], - norms[0], norms[1], norms[2], col); - View->VertexArray->num_triangles++; + View->TriVertexArray->add(Xp[0] + View->Raise[0] * value[0], + Yp[0] + View->Raise[1] * value[0], + Zp[0] + View->Raise[2] * value[0], + norms[0], norms[1], norms[2], col); + View->TriVertexArray->add(Xp[i-1] + View->Raise[0] * value[i-1], + Yp[i-1] + View->Raise[1] * value[i-1], + Zp[i-1] + View->Raise[2] * value[i-1], + norms[0], norms[1], norms[2], col); + View->TriVertexArray->add(Xp[i] + View->Raise[0] * value[i], + Yp[i] + View->Raise[1] * value[i], + Zp[i] + View->Raise[2] * value[i], + norms[0], norms[1], norms[2], col); + View->TriVertexArray->num++; } } else{ @@ -646,7 +646,7 @@ void Draw_ScalarTetrahedron(Post_View * View, int preproNormals, Draw_String(Num); } } - else if(!View->VertexArray || (View->VertexArray && View->VertexArray->fill)){ + else if(!View->TriVertexArray || (View->TriVertexArray && View->TriVertexArray->fill)){ for(int k = 0; k < View->NbIso; k++) { unsigned int col = PaletteDiscrete(View, View->NbIso, k); IsoSimplex(View, preproNormals, X, Y, Z, Val, diff --git a/Mesh/Create.cpp b/Mesh/Create.cpp index 07143044cf3d4a7683730f59845c6626449d5dde..cab711cc014abb0f80e4d828376ac051c3e83378 100644 --- a/Mesh/Create.cpp +++ b/Mesh/Create.cpp @@ -1,4 +1,4 @@ -// $Id: Create.cpp,v 1.57 2004-05-28 19:22:13 geuzaine Exp $ +// $Id: Create.cpp,v 1.58 2004-05-29 23:22:19 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -669,7 +669,8 @@ Surface *Create_Surface(int Num, int Typ) pS->Edges = NULL; pS->Extrude = NULL; pS->STL = NULL; - pS->vertexArray = NULL; + pS->TriVertexArray = NULL; + pS->QuadVertexArray = NULL; return (pS); } @@ -692,8 +693,10 @@ void Free_Surface(void *a, void *b) Tree_Action(pS->Edges, Free_Edge); Tree_Delete(pS->Edges); } - if(pS->vertexArray) - delete pS->vertexArray; + if(pS->TriVertexArray) + delete pS->TriVertexArray; + if(pS->QuadVertexArray) + delete pS->QuadVertexArray; Free(pS); pS = NULL; } diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h index f9fad0f17a3248878e5cf6212f87744b63b23329..b1488d49a4da80d51ff1dfb06b20562dec82cc10 100644 --- a/Mesh/Mesh.h +++ b/Mesh/Mesh.h @@ -256,7 +256,8 @@ struct _Surf{ POLY_rep *thePolyRep; int Dirty; // flag to prevent any meshing DrawingColor Color; - triangleVertexArray * vertexArray; + VertexArray * TriVertexArray; + VertexArray * QuadVertexArray; }; typedef struct _Surf Surface; diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 41d53a4d296ecd9f21c508a73233cd2080665214..8ce2722527e3346abfa059f3796bde2429cce278 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -191,7 +191,7 @@ #line 1 "Gmsh.y" -// $Id: Gmsh.tab.cpp,v 1.192 2004-05-25 23:16:27 geuzaine Exp $ +// $Id: Gmsh.tab.cpp,v 1.193 2004-05-29 23:22:20 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -283,7 +283,7 @@ typedef union { -#define YYFINAL 2336 +#define YYFINAL 2339 #define YYFLAG -32768 #define YYNTBASE 206 @@ -362,30 +362,30 @@ static const short yyprhs[] = { 0, 1650, 1652, 1654, 1659, 1667, 1677, 1684, 1688, 1695, 1702, 1712, 1719, 1729, 1735, 1744, 1753, 1765, 1772, 1782, 1792, 1802, 1810, 1819, 1832, 1839, 1847, 1855, 1863, 1873, 1881, - 1899, 1907, 1915, 1927, 1936, 1949, 1958, 1967, 1976, 1989, - 2004, 2019, 2042, 2063, 2072, 2081, 2090, 2098, 2107, 2113, - 2125, 2131, 2141, 2143, 2145, 2147, 2148, 2151, 2158, 2165, - 2172, 2179, 2184, 2191, 2196, 2203, 2207, 2213, 2217, 2221, - 2226, 2231, 2235, 2243, 2247, 2255, 2259, 2262, 2265, 2272, - 2281, 2290, 2301, 2303, 2306, 2308, 2312, 2317, 2319, 2328, - 2341, 2356, 2357, 2370, 2371, 2388, 2389, 2408, 2417, 2430, - 2445, 2446, 2459, 2460, 2477, 2478, 2497, 2506, 2519, 2534, - 2535, 2548, 2549, 2566, 2567, 2586, 2588, 2591, 2601, 2609, - 2612, 2619, 2629, 2639, 2648, 2657, 2666, 2673, 2678, 2681, - 2684, 2686, 2688, 2690, 2692, 2694, 2696, 2700, 2703, 2706, - 2709, 2713, 2717, 2721, 2725, 2729, 2733, 2737, 2741, 2745, - 2749, 2753, 2757, 2761, 2765, 2771, 2776, 2781, 2786, 2791, - 2796, 2801, 2806, 2811, 2816, 2821, 2828, 2833, 2838, 2843, - 2848, 2853, 2858, 2865, 2872, 2879, 2884, 2889, 2894, 2899, - 2904, 2909, 2914, 2919, 2924, 2929, 2934, 2941, 2946, 2951, - 2956, 2961, 2966, 2971, 2978, 2985, 2992, 2997, 2999, 3001, - 3003, 3005, 3007, 3012, 3017, 3020, 3026, 3030, 3037, 3042, - 3050, 3052, 3055, 3058, 3062, 3066, 3078, 3088, 3096, 3104, - 3105, 3109, 3111, 3115, 3116, 3120, 3124, 3126, 3130, 3132, - 3134, 3138, 3143, 3147, 3153, 3158, 3160, 3162, 3164, 3168, - 3173, 3180, 3188, 3190, 3192, 3196, 3200, 3210, 3218, 3220, - 3226, 3230, 3237, 3239, 3243, 3245, 3252, 3257, 3262, 3269, - 3276 + 1891, 1909, 1917, 1925, 1937, 1946, 1959, 1968, 1977, 1986, + 1999, 2014, 2029, 2052, 2073, 2082, 2091, 2100, 2108, 2117, + 2123, 2135, 2141, 2151, 2153, 2155, 2157, 2158, 2161, 2168, + 2175, 2182, 2189, 2194, 2201, 2206, 2213, 2217, 2223, 2227, + 2231, 2236, 2241, 2245, 2253, 2257, 2265, 2269, 2272, 2275, + 2282, 2291, 2300, 2311, 2313, 2316, 2318, 2322, 2327, 2329, + 2338, 2351, 2366, 2367, 2380, 2381, 2398, 2399, 2418, 2427, + 2440, 2455, 2456, 2469, 2470, 2487, 2488, 2507, 2516, 2529, + 2544, 2545, 2558, 2559, 2576, 2577, 2596, 2598, 2601, 2611, + 2619, 2622, 2629, 2639, 2649, 2658, 2667, 2676, 2683, 2688, + 2691, 2694, 2696, 2698, 2700, 2702, 2704, 2706, 2710, 2713, + 2716, 2719, 2723, 2727, 2731, 2735, 2739, 2743, 2747, 2751, + 2755, 2759, 2763, 2767, 2771, 2775, 2781, 2786, 2791, 2796, + 2801, 2806, 2811, 2816, 2821, 2826, 2831, 2838, 2843, 2848, + 2853, 2858, 2863, 2868, 2875, 2882, 2889, 2894, 2899, 2904, + 2909, 2914, 2919, 2924, 2929, 2934, 2939, 2944, 2951, 2956, + 2961, 2966, 2971, 2976, 2981, 2988, 2995, 3002, 3007, 3009, + 3011, 3013, 3015, 3017, 3022, 3027, 3030, 3036, 3040, 3047, + 3052, 3060, 3062, 3065, 3068, 3072, 3076, 3088, 3098, 3106, + 3114, 3115, 3119, 3121, 3125, 3126, 3130, 3134, 3136, 3140, + 3142, 3144, 3148, 3153, 3157, 3163, 3168, 3170, 3172, 3174, + 3178, 3183, 3190, 3198, 3200, 3202, 3206, 3210, 3220, 3228, + 3230, 3236, 3240, 3247, 3249, 3253, 3255, 3262, 3267, 3272, + 3279, 3286 }; static const short yyrhs[] = { 210, @@ -577,6 +577,7 @@ static const short yyrhs[] = { 210, 7, 334, 6, 0, 39, 197, 326, 198, 7, 334, 6, 0, 39, 197, 326, 198, 7, 334, 49, 328, 6, 0, 40, 197, 326, 198, 7, 334, 6, 0, + 40, 197, 326, 198, 7, 334, 49, 328, 6, 0, 47, 197, 326, 198, 7, 204, 326, 203, 326, 203, 5, 203, 5, 203, 5, 205, 6, 0, 99, 197, 326, 198, 7, 334, 6, 0, 100, 197, 326, 198, @@ -748,30 +749,30 @@ static const short yyrline[] = { 0, 1276, 1278, 1281, 1313, 1349, 1398, 1414, 1424, 1442, 1455, 1471, 1496, 1522, 1535, 1551, 1564, 1580, 1599, 1621, 1630, 1644, 1664, 1680, 1699, 1718, 1736, 1754, 1772, 1798, 1816, - 1835, 1859, 1883, 1909, 1926, 1944, 1963, 1982, 2021, 2046, - 2068, 2084, 2103, 2122, 2138, 2157, 2174, 2191, 2211, 2217, - 2222, 2227, 2234, 2236, 2237, 2240, 2245, 2249, 2265, 2281, - 2297, 2317, 2331, 2341, 2351, 2355, 2364, 2378, 2386, 2391, - 2402, 2415, 2456, 2470, 2485, 2494, 2503, 2507, 2518, 2534, - 2548, 2573, 2598, 2625, 2631, 2636, 2641, 2645, 2653, 2667, - 2678, 2689, 2694, 2705, 2710, 2721, 2726, 2739, 2757, 2775, - 2793, 2798, 2816, 2821, 2839, 2844, 2865, 2882, 2899, 2916, - 2921, 2938, 2944, 2961, 2967, 2986, 2990, 2995, 3022, 3046, - 3054, 3073, 3091, 3109, 3136, 3162, 3188, 3202, 3220, 3225, - 3234, 3236, 3237, 3238, 3239, 3242, 3244, 3245, 3246, 3247, - 3248, 3249, 3250, 3251, 3258, 3259, 3260, 3261, 3262, 3263, - 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271, 3272, 3273, - 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, - 3284, 3285, 3286, 3287, 3288, 3289, 3291, 3292, 3293, 3294, - 3295, 3296, 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304, - 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3316, 3321, 3322, - 3323, 3327, 3339, 3358, 3371, 3383, 3405, 3422, 3439, 3456, - 3475, 3480, 3484, 3488, 3492, 3498, 3503, 3507, 3511, 3517, - 3521, 3526, 3530, 3535, 3539, 3543, 3549, 3555, 3562, 3568, - 3572, 3576, 3587, 3594, 3605, 3625, 3635, 3645, 3657, 3673, - 3691, 3714, 3741, 3747, 3751, 3755, 3767, 3772, 3784, 3790, - 3810, 3815, 3828, 3834, 3840, 3845, 3853, 3867, 3871, 3890, - 3906 + 1842, 1861, 1885, 1909, 1935, 1952, 1970, 1989, 2008, 2047, + 2072, 2094, 2110, 2129, 2148, 2164, 2183, 2200, 2217, 2237, + 2243, 2248, 2253, 2260, 2262, 2263, 2266, 2271, 2275, 2291, + 2307, 2323, 2343, 2357, 2367, 2377, 2381, 2390, 2404, 2412, + 2417, 2428, 2441, 2482, 2496, 2511, 2520, 2529, 2533, 2544, + 2560, 2574, 2599, 2624, 2651, 2657, 2662, 2667, 2671, 2679, + 2693, 2704, 2715, 2720, 2731, 2736, 2747, 2752, 2765, 2783, + 2801, 2819, 2824, 2842, 2847, 2865, 2870, 2891, 2908, 2925, + 2942, 2947, 2964, 2970, 2987, 2993, 3012, 3016, 3021, 3048, + 3072, 3080, 3099, 3117, 3135, 3162, 3188, 3214, 3228, 3246, + 3251, 3260, 3262, 3263, 3264, 3265, 3268, 3270, 3271, 3272, + 3273, 3274, 3275, 3276, 3277, 3284, 3285, 3286, 3287, 3288, + 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, + 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3308, + 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3317, 3318, 3319, + 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, + 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3342, 3347, + 3348, 3349, 3353, 3365, 3384, 3397, 3409, 3431, 3448, 3465, + 3482, 3501, 3506, 3510, 3514, 3518, 3524, 3529, 3533, 3537, + 3543, 3547, 3552, 3556, 3561, 3565, 3569, 3575, 3581, 3588, + 3594, 3598, 3602, 3613, 3620, 3631, 3651, 3661, 3671, 3683, + 3699, 3717, 3740, 3767, 3773, 3777, 3781, 3793, 3798, 3810, + 3816, 3836, 3841, 3854, 3860, 3866, 3871, 3879, 3893, 3897, + 3916, 3932 }; #endif @@ -860,29 +861,29 @@ static const short yyr1[] = { 0, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, 301, - 301, 301, 301, 301, 301, 301, 301, 301, 302, 302, - 302, 302, 303, 303, 303, 304, 304, 304, 304, 304, - 304, 305, 305, 306, 306, 306, 307, 308, 308, 308, - 308, 309, 309, 309, 309, 309, 309, 309, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 311, 311, - 311, 312, 311, 313, 311, 314, 311, 311, 311, 311, - 315, 311, 316, 311, 317, 311, 311, 311, 311, 318, - 311, 319, 311, 320, 311, 321, 321, 322, 322, 322, - 323, 323, 323, 323, 323, 323, 323, 323, 324, 324, - 325, 325, 325, 325, 325, 326, 326, 326, 326, 326, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 302, + 302, 302, 302, 303, 303, 303, 304, 304, 304, 304, + 304, 304, 305, 305, 306, 306, 306, 307, 308, 308, + 308, 308, 309, 309, 309, 309, 309, 309, 309, 310, + 310, 310, 310, 310, 310, 310, 310, 310, 310, 311, + 311, 311, 312, 311, 313, 311, 314, 311, 311, 311, + 311, 315, 311, 316, 311, 317, 311, 311, 311, 311, + 318, 311, 319, 311, 320, 311, 321, 321, 322, 322, + 322, 323, 323, 323, 323, 323, 323, 323, 323, 324, + 324, 325, 325, 325, 325, 325, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 327, 327, 327, + 326, 326, 326, 326, 326, 326, 326, 326, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, - 328, 328, 328, 328, 328, 329, 329, 329, 329, 330, - 330, 331, 331, 332, 332, 332, 333, 333, 334, 334, - 334, 334, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 336, 336, 336, 336, 337, 337, 337, 337, - 338, 338, 339, 339, 340, 340, 340, 340, 340, 340, - 340 + 327, 328, 328, 328, 328, 328, 329, 329, 329, 329, + 330, 330, 331, 331, 332, 332, 332, 333, 333, 334, + 334, 334, 334, 335, 335, 335, 335, 335, 335, 335, + 335, 335, 335, 336, 336, 336, 336, 337, 337, 337, + 337, 338, 338, 339, 339, 340, 340, 340, 340, 340, + 340, 340 }; static const short yyr2[] = { 0, @@ -909,31 +910,31 @@ static const short yyr2[] = { 0, 13, 1, 3, 0, 15, 1, 1, 1, 1, 1, 1, 1, 4, 7, 9, 6, 3, 6, 6, 9, 6, 9, 5, 8, 8, 11, 6, 9, 9, 9, - 7, 8, 12, 6, 7, 7, 7, 9, 7, 17, - 7, 7, 11, 8, 12, 8, 8, 8, 12, 14, - 14, 22, 20, 8, 8, 8, 7, 8, 5, 11, - 5, 9, 1, 1, 1, 0, 2, 6, 6, 6, - 6, 4, 6, 4, 6, 3, 5, 3, 3, 4, - 4, 3, 7, 3, 7, 3, 2, 2, 6, 8, - 8, 10, 1, 2, 1, 3, 4, 1, 8, 12, + 7, 8, 12, 6, 7, 7, 7, 9, 7, 9, + 17, 7, 7, 11, 8, 12, 8, 8, 8, 12, + 14, 14, 22, 20, 8, 8, 8, 7, 8, 5, + 11, 5, 9, 1, 1, 1, 0, 2, 6, 6, + 6, 6, 4, 6, 4, 6, 3, 5, 3, 3, + 4, 4, 3, 7, 3, 7, 3, 2, 2, 6, + 8, 8, 10, 1, 2, 1, 3, 4, 1, 8, + 12, 14, 0, 12, 0, 16, 0, 18, 8, 12, 14, 0, 12, 0, 16, 0, 18, 8, 12, 14, - 0, 12, 0, 16, 0, 18, 8, 12, 14, 0, - 12, 0, 16, 0, 18, 1, 2, 9, 7, 2, - 6, 9, 9, 8, 8, 8, 6, 4, 2, 2, - 1, 1, 1, 1, 1, 1, 3, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 5, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, - 4, 4, 6, 6, 6, 4, 4, 4, 4, 4, + 0, 12, 0, 16, 0, 18, 1, 2, 9, 7, + 2, 6, 9, 9, 8, 8, 8, 6, 4, 2, + 2, 1, 1, 1, 1, 1, 1, 3, 2, 2, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, - 4, 4, 4, 6, 6, 6, 4, 1, 1, 1, - 1, 1, 4, 4, 2, 5, 3, 6, 4, 7, - 1, 2, 2, 3, 3, 11, 9, 7, 7, 0, - 3, 1, 3, 0, 3, 3, 1, 3, 1, 1, - 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, 6, 4, 4, 6, 6, - 9 + 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, 4, 4, 2, 5, 3, 6, 4, + 7, 1, 2, 2, 3, 3, 11, 9, 7, 7, + 0, 3, 1, 3, 0, 3, 3, 1, 3, 1, + 1, 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, 6, 4, 4, 6, + 6, 9 }; static const short yydefact[] = { 0, @@ -942,494 +943,494 @@ static const short yydefact[] = { 0, 16, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 293, - 0, 298, 0, 295, 0, 0, 0, 0, 0, 56, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, + 0, 299, 0, 296, 0, 0, 0, 0, 0, 56, 58, 57, 59, 60, 61, 62, 63, 64, 65, 70, 69, 66, 67, 68, 0, 0, 17, 18, 20, 19, - 21, 430, 430, 0, 408, 412, 465, 206, 409, 410, - 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 21, 431, 431, 0, 409, 413, 466, 206, 410, 411, + 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 208, 209, 210, 0, 0, 0, 211, 212, 0, 0, 0, 0, 0, 0, - 0, 346, 0, 0, 288, 0, 0, 0, 0, 0, + 0, 347, 0, 0, 289, 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, 421, 0, 0, 0, 0, 0, - 0, 266, 0, 0, 266, 339, 340, 0, 0, 0, - 0, 0, 0, 0, 459, 0, 0, 0, 0, 0, - 287, 0, 294, 0, 465, 266, 0, 266, 0, 5, + 0, 0, 0, 0, 422, 0, 0, 0, 0, 0, + 0, 267, 0, 0, 267, 340, 341, 0, 0, 0, + 0, 0, 0, 0, 460, 0, 0, 0, 0, 0, + 288, 0, 295, 0, 466, 267, 0, 267, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 415, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 412, 349, 348, 350, + 0, 0, 0, 0, 0, 0, 413, 350, 349, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 217, - 284, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 282, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 412, 0, 0, 0, - 446, 447, 448, 439, 0, 440, 0, 0, 0, 0, + 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 283, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, + 447, 448, 449, 440, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 423, 422, 0, 0, 0, 0, 266, 266, - 0, 0, 0, 0, 0, 0, 0, 276, 0, 0, - 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, - 266, 0, 0, 0, 296, 0, 0, 278, 0, 279, + 0, 0, 424, 423, 0, 0, 0, 0, 267, 267, + 0, 0, 0, 0, 0, 0, 0, 277, 0, 0, + 0, 0, 287, 0, 0, 0, 0, 0, 0, 0, + 267, 0, 0, 0, 297, 0, 0, 279, 0, 280, 6, 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, 432, 0, 0, 0, 0, 0, 417, 0, + 0, 0, 433, 0, 0, 0, 0, 0, 418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 347, 0, - 0, 453, 454, 0, 0, 206, 0, 0, 0, 0, - 0, 213, 0, 364, 363, 361, 362, 357, 359, 358, - 360, 352, 351, 353, 354, 355, 356, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 412, + 0, 0, 0, 0, 0, 0, 0, 0, 348, 0, + 0, 454, 455, 0, 0, 206, 0, 0, 0, 0, + 0, 213, 0, 365, 364, 362, 363, 358, 360, 359, + 361, 353, 352, 354, 355, 356, 357, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 425, 424, 265, 0, 264, 263, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 272, 267, - 338, 0, 0, 274, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 297, 0, 280, 281, + 0, 0, 426, 425, 266, 0, 265, 264, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 273, 268, + 339, 0, 0, 275, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 298, 0, 281, 282, 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, 431, 0, 0, 23, 0, 413, 419, 75, 0, + 0, 432, 0, 0, 23, 0, 414, 420, 75, 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, 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, 366, 387, 367, 388, 368, 389, 369, 390, - 370, 391, 371, 392, 372, 393, 373, 394, 374, 395, - 386, 407, 375, 396, 0, 0, 377, 398, 378, 399, - 379, 400, 380, 401, 381, 402, 382, 403, 0, 0, - 0, 0, 0, 0, 0, 0, 468, 0, 0, 467, + 100, 101, 367, 388, 368, 389, 369, 390, 370, 391, + 371, 392, 372, 393, 373, 394, 374, 395, 375, 396, + 387, 408, 376, 397, 0, 0, 378, 399, 379, 400, + 380, 401, 381, 402, 382, 403, 383, 404, 0, 0, + 0, 0, 0, 0, 0, 0, 469, 0, 0, 468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 223, - 0, 0, 0, 0, 414, 0, 71, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 449, 0, 0, 0, - 0, 441, 443, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 415, 0, 71, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 450, 0, 0, 0, + 0, 442, 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 259, 261, 0, 0, 0, 0, 0, 0, + 0, 0, 260, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 277, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 433, - 0, 430, 0, 416, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 434, + 0, 431, 0, 417, 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, 73, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 413, 216, 455, 456, 0, - 0, 0, 0, 0, 218, 219, 221, 0, 0, 463, - 0, 227, 365, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 445, 450, 0, 442, 0, 234, 0, - 0, 0, 0, 0, 0, 331, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 414, 216, 456, 457, 0, + 0, 0, 0, 0, 218, 219, 221, 0, 0, 464, + 0, 227, 366, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 446, 451, 0, 443, 0, 234, 0, + 0, 0, 0, 0, 0, 332, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 273, 0, 0, 0, 0, 337, 275, 0, - 0, 0, 0, 0, 434, 0, 460, 0, 0, 0, - 289, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 274, 0, 0, 0, 0, 338, 276, 0, + 0, 0, 0, 0, 435, 0, 461, 0, 0, 0, + 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 341, 342, 343, 344, - 345, 0, 0, 0, 0, 0, 0, 0, 22, 0, - 418, 283, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 342, 343, 344, 345, + 346, 0, 0, 0, 0, 0, 0, 0, 22, 0, + 419, 284, 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, 376, - 397, 383, 404, 384, 405, 385, 406, 0, 470, 469, - 466, 0, 206, 0, 0, 0, 0, 214, 0, 0, - 0, 461, 72, 231, 237, 0, 239, 0, 235, 0, - 236, 257, 0, 0, 444, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 377, + 398, 384, 405, 385, 406, 386, 407, 0, 471, 470, + 467, 0, 206, 0, 0, 0, 0, 214, 0, 0, + 0, 462, 72, 231, 237, 0, 239, 0, 0, 235, + 0, 236, 258, 0, 0, 445, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 285, 0, 0, 0, 0, 266, 0, 302, 0, 311, - 0, 320, 0, 0, 0, 0, 0, 0, 241, 242, + 0, 286, 0, 0, 0, 0, 267, 0, 303, 0, + 312, 0, 321, 0, 0, 0, 0, 0, 0, 242, + 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 431, 421, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 430, 420, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 224, 0, 0, 225, 0, 465, + 0, 0, 245, 255, 452, 0, 0, 336, 248, 249, + 0, 0, 0, 0, 335, 337, 257, 232, 247, 256, + 259, 0, 0, 0, 430, 0, 429, 0, 0, 300, + 0, 0, 309, 0, 0, 318, 0, 269, 270, 271, + 272, 0, 0, 435, 0, 438, 0, 0, 0, 0, + 459, 0, 292, 291, 0, 0, 0, 0, 0, 25, + 0, 34, 0, 38, 0, 32, 0, 0, 37, 0, + 42, 40, 0, 0, 0, 0, 0, 0, 49, 0, + 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 225, 0, 464, 0, - 244, 254, 451, 0, 0, 335, 247, 248, 0, 0, - 0, 0, 334, 336, 256, 232, 246, 255, 258, 0, - 0, 0, 429, 0, 428, 0, 0, 299, 0, 0, - 308, 0, 0, 317, 0, 268, 269, 270, 271, 0, - 0, 434, 0, 437, 0, 0, 0, 0, 458, 0, - 291, 290, 0, 0, 0, 0, 0, 25, 0, 34, - 0, 38, 0, 32, 0, 0, 37, 0, 42, 40, - 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, - 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 215, 220, 222, 0, 228, 0, + 238, 240, 453, 0, 0, 0, 334, 333, 229, 230, + 267, 0, 263, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 437, 0, 436, 0, 0, 0, 0, 0, + 0, 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 215, 220, 222, 0, 228, 0, 238, 452, - 0, 0, 0, 333, 332, 229, 230, 266, 0, 262, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 436, - 0, 435, 0, 0, 0, 0, 0, 0, 0, 434, 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, 472, + 0, 463, 0, 0, 0, 0, 0, 428, 0, 0, + 0, 0, 0, 0, 0, 0, 327, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 439, 0, 0, 458, + 293, 0, 0, 39, 0, 0, 0, 0, 29, 0, + 35, 0, 41, 30, 43, 0, 46, 0, 50, 51, + 0, 0, 53, 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, 471, 0, 462, 0, - 0, 0, 0, 0, 427, 0, 0, 0, 0, 0, - 0, 0, 0, 326, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 438, 0, 0, 457, 292, 0, 0, - 39, 0, 0, 0, 0, 29, 0, 35, 0, 41, - 30, 43, 0, 46, 0, 50, 51, 0, 0, 53, + 0, 226, 0, 0, 0, 261, 0, 0, 305, 0, + 331, 0, 0, 328, 314, 0, 0, 323, 0, 0, + 0, 0, 0, 0, 244, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, + 108, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 200, 0, 0, 0, 0, 427, 301, + 0, 0, 0, 304, 310, 0, 0, 313, 319, 0, + 0, 322, 233, 246, 0, 0, 250, 0, 0, 0, + 0, 0, 33, 36, 44, 0, 45, 52, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, - 0, 0, 260, 0, 0, 304, 0, 330, 0, 0, - 327, 313, 0, 0, 322, 0, 0, 0, 0, 0, - 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 104, 108, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 200, 0, 0, 0, 0, 426, 300, 0, 0, 0, - 303, 309, 0, 0, 312, 318, 0, 0, 321, 233, - 245, 0, 0, 249, 0, 0, 0, 0, 0, 33, - 36, 44, 0, 45, 52, 47, 0, 0, 0, 0, + 307, 0, 0, 316, 0, 325, 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, 306, 0, 0, - 315, 0, 324, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 204, 0, 252, 251, 0, 302, 0, 0, 0, 311, + 0, 0, 320, 0, 0, 0, 0, 0, 0, 28, + 31, 0, 0, 0, 102, 0, 106, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 204, 0, 251, - 250, 0, 301, 0, 0, 0, 310, 0, 0, 319, - 0, 0, 0, 0, 0, 0, 28, 31, 0, 0, - 0, 102, 0, 106, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 0, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 305, 0, 0, - 329, 314, 0, 323, 0, 0, 0, 0, 0, 0, - 48, 24, 103, 105, 107, 109, 111, 113, 0, 0, + 306, 0, 0, 330, 315, 0, 324, 0, 0, 0, + 0, 0, 0, 48, 24, 103, 105, 107, 109, 111, + 113, 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, 199, - 201, 0, 202, 240, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 116, 120, 124, 0, 0, 0, 0, + 0, 0, 199, 201, 0, 202, 241, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 116, 120, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 307, 328, 316, 325, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 308, + 329, 317, 326, 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, 203, + 205, 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, 203, 205, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 254, 10, + 0, 0, 0, 114, 0, 118, 0, 122, 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, 253, 10, 0, 0, 0, - 114, 0, 118, 0, 122, 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, 253, 0, 26, 115, 117, 119, 121, + 123, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 132, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 252, 0, 26, 115, 117, 119, 121, 123, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 128, 132, - 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, + 0, 130, 0, 134, 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, 126, 0, 130, 0, - 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 127, 129, 131, 133, 135, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, - 129, 131, 133, 135, 137, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 140, 144, 148, 152, 156, 160, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 140, 144, 148, 152, 156, 160, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 27, 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, 138, 0, - 142, 0, 146, 0, 150, 0, 154, 0, 158, 0, + 0, 138, 0, 142, 0, 146, 0, 150, 0, 154, + 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, - 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, - 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 188, 192, 196, 0, + 0, 0, 139, 141, 143, 145, 147, 149, 151, 153, + 155, 157, 159, 161, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, + 192, 196, 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, 186, 0, 190, + 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 186, 0, 190, 0, 194, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 187, 189, 191, - 193, 195, 197, 0, 0, 0, 176, 180, 184, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 174, 0, 178, 0, 182, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 175, 177, 179, 181, 183, 185, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 164, 168, 172, 0, - 0, 0, 0, 0, 0, 0, 162, 0, 166, 0, - 170, 0, 0, 0, 0, 0, 0, 163, 165, 167, - 169, 171, 173, 0, 0, 0 + 187, 189, 191, 193, 195, 197, 0, 0, 0, 176, + 180, 184, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 174, 0, + 178, 0, 182, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 175, 177, 179, 181, 183, + 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, + 168, 172, 0, 0, 0, 0, 0, 0, 0, 162, + 0, 166, 0, 170, 0, 0, 0, 0, 0, 0, + 163, 165, 167, 169, 171, 173, 0, 0, 0 }; -static const short yydefgoto[] = { 2334, +static const short yydefgoto[] = { 2337, 212, 2, 9, 3, 19, 20, 21, 22, 4, 70, - 71, 72, 441, 1651, 657, 1558, 1653, 658, 1559, 1655, - 659, 1560, 1870, 660, 1816, 1872, 661, 1817, 1874, 662, - 1818, 2006, 663, 1968, 2008, 664, 1969, 2010, 665, 1970, - 2118, 666, 2088, 2120, 667, 2089, 2122, 668, 2090, 2124, - 669, 2091, 2126, 670, 2092, 2128, 671, 2093, 2316, 672, - 2310, 2318, 673, 2311, 2320, 674, 2312, 2265, 675, 2253, - 2267, 676, 2254, 2269, 677, 2255, 2214, 678, 2196, 2216, - 679, 2197, 2218, 680, 2198, 1678, 681, 1582, 1772, 682, - 1680, 139, 249, 73, 570, 341, 556, 557, 342, 77, - 78, 79, 80, 81, 343, 1209, 1528, 1634, 1212, 1533, - 1638, 1215, 1537, 1641, 1393, 1394, 83, 84, 992, 344, - 142, 363, 175, 244, 434, 1104, 1223, 1224, 346, 494, + 71, 72, 441, 1654, 657, 1561, 1656, 658, 1562, 1658, + 659, 1563, 1873, 660, 1819, 1875, 661, 1820, 1877, 662, + 1821, 2009, 663, 1971, 2011, 664, 1972, 2013, 665, 1973, + 2121, 666, 2091, 2123, 667, 2092, 2125, 668, 2093, 2127, + 669, 2094, 2129, 670, 2095, 2131, 671, 2096, 2319, 672, + 2313, 2321, 673, 2314, 2323, 674, 2315, 2268, 675, 2256, + 2270, 676, 2257, 2272, 677, 2258, 2217, 678, 2199, 2219, + 679, 2200, 2221, 680, 2201, 1681, 681, 1585, 1775, 682, + 1683, 139, 249, 73, 570, 341, 556, 557, 342, 77, + 78, 79, 80, 81, 343, 1211, 1531, 1637, 1214, 1536, + 1641, 1217, 1540, 1644, 1396, 1397, 83, 84, 992, 344, + 142, 363, 175, 244, 434, 1105, 1225, 1226, 346, 494, 197, 744, 901, 143 }; -static const short yypact[] = { 2959, - 66, 388, 459, 3225,-32768,-32768,-32768, -91,-32768, 99, - 135, 147, 173, 181, 198, -71, 31, 90,-32768,-32768, --32768,-32768, 2301, 107, 214, 151, 171, 209, -11, 100, - 213, 234, 298, 263, 353, 428, 439, 449, 514, 463, - 241, 320, 326, -76, -76, 349, 478, 3, 546, 5, - 559, 565, 240, 592, 421, 424, -13, 8, 17,-32768, - 466,-32768, 606,-32768, 652, 653, 633, 15, 23,-32768, +static const short yypact[] = { 2965, + 64, 334, 18, 3215,-32768,-32768,-32768, -111,-32768, 127, + 73, 135, 138, 149, 177, -30, -11, 109,-32768,-32768, +-32768,-32768, 2304, 113, 272, 117, 157, 166, -43, 307, + 239, 244, 361, 250, 411, 419, 425, 430, 517, 442, + 512, 290, 286, 161, 161, 291, 246, 8, 460, 9, + 518, 524, 81, 530, 367, 368, -13, 10, 26,-32768, + 375,-32768, 545,-32768, 589, 597, 612, 15, 23,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 21, 3089,-32768,-32768,-32768,-32768, --32768, 484, 484, 684,-32768, -103, 9,-32768,-32768,-32768, --32768, -144, -77, 124, 175, 185, 231, 280, 362, 384, - 408, 414, 417, 420, 427, 455, 456, 477, 480, 487, - 488, 491, 494, 506, 520,-32768,-32768,-32768,-32768, 1720, - 1720, 1720,-32768,-32768, 1720, 619, 52, 707, 1720, 710, - 1008,-32768, 730, 736,-32768, 1720, 1720, 1720, 568, 1720, - 574, 1720, 1720, 423, 1720, 550, 575, 589, -152, 423, - 551, 583, 594, 617, 620, 625, 658, 799, -76, -76, - -76, 1720, 1720, -52,-32768, 120, -76, 600, 661, 673, - 675,-32768, 423, 16,-32768,-32768,-32768, 423, 423, 877, - 1720, 1720, -61, 1720, 711, 1720, 699, 807, 1720, 1720, --32768, 922,-32768, 732,-32768,-32768, 924,-32768, 925,-32768, - 929, 21, 737, 741, 742, 744, 745, 751, 761, 762, - 763, 764, 765, 769, 770, 771, 772, 773, 774, 775, - 776, 777, 778, 779, 782, 783, 784, 810, 811, 812, - 813, 814, 959, 809, 815, 816, 1720, 1011,-32768, -76, --32768, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 69, 58, 58, 121, 820, 820, 820, - 1324, 1010, 1841, 856, 340, 817, 1013, 824, 1087,-32768, --32768, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720,-32768, -47, 11121, 11144, - 11167, 1720, 11190, 1720, 11213, 11236, 270, 821, 1229, 1841, --32768,-32768,-32768, 482, 1017,-32768, 11259, 1720, 1720, 1720, - 1720, 1720, 1019, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 830, -102,-32768,-32768, 1476, 3607, -76, -76, 486, 486, - -49, 1720, 1720, 1720, 1720, 2628, 460,-32768, 1720, 2650, - 1022, 1023,-32768, 11282, 11305, 927, 1720, 11328, 931, 3629, --32768, 849, 1380, 11351,-32768, 1720, 2693,-32768, 2773,-32768, --32768, 21, 1049, 1050, 1058, 1059, 1060, 1061, 1062, 1063, - 1064, 1065, 1066, 1067, 1068, 1071, 1072, 1073, 1074, 1075, - 1076, 1077, 1079, 1080, 1083, 934, 1086, 1089, 1090, 1091, - 1094, 1093,-32768, -15, 1095, 1096, 1098, 2955, 119, 159, - 3085, 11374, 10471, 11397, 10496, 11420, 10521, 11443, 10546, 11466, - 10571, 11489, 10596, 11512, 10621, 11535, 10646, 11558, 10671, 11581, - 10696, 11604, 10721, 3651, 3673, 11627, 10746, 11650, 10771, 11673, - 10796, 11696, 10821, 11719, 10846, 11742, 10871, 3695, 3717, 3739, - 3761, 3783, 3805, 386, 157, 889, 903, 1720,-32768, 423, - 2335, 482,-32768, 489, 168, 58, 1720, 1099, 1100, 14, - 909,-32768, 2423, 560, 229, 612, 612, 203, 203, 203, - 203, 233, 233, 820, 820, 820, 820, 1104, 1841, 1105, - 1107, 1108, 11765, 1109, 11788, 1111, 1112, 974, 1720, 279, - 1841, 490, 1720, 1720, 1113, 2592, 11811, 11834, 11857, 2717, - 1720, 2768, 3123, 11880, 11903, 11926, 11949, 11972, 910, -76, - 1720, 1720,-32768,-32768,-32768, 942, 2992,-32768, 943, 1720, - 3827, 3849, 3871, 10896, -129, -42, -32, -30,-32768,-32768, --32768, 1720, 10921,-32768, 945, 946, 1145, 1146, 957, 11995, - 1148, 955, 1720, 2809, 1720, 1720,-32768, 12018,-32768,-32768, - 989, 956, 960, 961, 962, 964, 965, 966, 967, 969, - 970, 972, 976, 977, 979, 980, 986, 997, 998, 1003, - 1031, 1032, 1033, 1034, 1078, 1084, 1088, 1097, 1101, 1103, - 1110,-32768, 1153, 1070,-32768, 1114, 83,-32768,-32768, 1081, - 1092, 1102, 1106, 1115, 1117, 1118, 1119, 1122, 1123, 1124, - 1125, 1127, 1128, 1130, 1157, 1158, 1159, 1160, 1162, 1163, - 1165, 1169, 1170, 1177, 1187, 1171,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 13, 2824,-32768,-32768,-32768,-32768, +-32768, 481, 481, 679,-32768, 261, 11,-32768,-32768,-32768, +-32768, -131, 123, 156, 185, 219, 238, 267, 274, 310, + 323, 386, 389, 408, 458, 459, 468, 469, 472, 473, + 477, 478, 506, 514, 520,-32768,-32768,-32768,-32768, 1723, + 1723, 1723,-32768,-32768, 1723, 974, 30, 729, 1723, 737, + 674,-32768, 748, 753,-32768, 1723, 1723, 1723, 568, 1723, + 569, 1723, 1723, 600, 1723, 567, 578, 586, -152, 600, + 599, 651, 593, 598, 624, 668, 677, 768, 161, 161, + 161, 1723, 1723, -112,-32768, -89, 161, 673, 678, 680, + 684,-32768, 600, 72,-32768,-32768,-32768, 600, 600, 880, + 1723, 1723, -77, 1723, 686, 1723, 685, 779, 1723, 1723, +-32768, 884,-32768, 694,-32768,-32768, 886,-32768, 888,-32768, + 893, 13, 701, 702, 703, 704, 705, 707, 708, 709, + 710, 711, 712, 713, 715, 719, 720, 722, 723, 724, + 728, 730, 731, 732, 733, 734, 735, 736, 741, 742, + 743, 744, 898, 739, 746, 745, 1723, 922,-32768, 161, +-32768, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 50, 55, 55, 300, 749, 749, 749, + 1327, 939, 1844, 1255, 187, 750, 940, 751, 1083,-32768, +-32768, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723,-32768, -157, 11124, 11147, + 11170, 1723, 11193, 1723, 11216, 11239, 320, 764, 1366, 1844, +-32768,-32768,-32768, 2457, 945,-32768, 11262, 1723, 1723, 1723, + 1723, 1723, 962, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 772, -92,-32768,-32768, 1479, 3585, 161, 161, 538, 538, + 182, 1723, 1723, 1723, 1723, 706, 36,-32768, 1723, 2682, + 964, 965,-32768, 11285, 11308, 870, 1723, 11331, 873, 3607, +-32768, 776, 2472, 11354,-32768, 1723, 2704,-32768, 2726,-32768, +-32768, 13, 971, 976, 1002, 1003, 1004, 1005, 1006, 1007, + 1008, 1009, 1010, 1011, 1015, 1042, 1048, 1049, 1050, 1051, + 1052, 1053, 1056, 1058, 1059, 863, 1060, 1061, 1062, 1063, + 1066, 1065,-32768, -98, 1067, 1068, 1072, 10449, 199, -69, + 3091, 11377, 10474, 11400, 10499, 11423, 10524, 11446, 10549, 11469, + 10574, 11492, 10599, 11515, 10624, 11538, 10649, 11561, 10674, 11584, + 10699, 11607, 10724, 3629, 3651, 11630, 10749, 11653, 10774, 11676, + 10799, 11699, 10824, 11722, 10849, 11745, 10874, 3673, 3695, 3717, + 3739, 3761, 3783, 480, -72, 868, 875, 1723,-32768, 600, + 2338, 2457,-32768, 482, 16, 55, 1723, 1073, 1074, 14, + 881,-32768, 2487, 243, 356, 295, 295, 256, 256, 256, + 256, 327, 327, 749, 749, 749, 749, 1076, 1844, 1078, + 1079, 1084, 11768, 1085, 11791, 1086, 1087, 1014, 1723, 332, + 1844, 485, 1723, 1723, 1088, 2380, 11814, 11837, 11860, 3044, + 1723, 3115, 3159, 11883, 11906, 11929, 11952, 11975, 879, 161, + 1723, 1723,-32768,-32768,-32768, 878, 2998,-32768, 891, 1723, + 3805, 3827, 3849, 10899, -133, -25, -12, -94,-32768,-32768, +-32768, 1723, 10924,-32768, 894, 895, 1090, 1094, 905, 11998, + 1096, 903, 1723, 2791, 1723, 1723,-32768, 12021,-32768,-32768, + 937, 907, 908, 909, 910, 912, 913, 914, 916, 917, + 918, 946, 947, 948, 949, 950, 952, 953, 954, 955, + 956, 959, 960, 966, 967, 969, 970, 972, 977, 978, + 979,-32768, 1101, 981,-32768, 982, 27,-32768,-32768, 951, + 968, 980, 987, 989, 990, 991, 992, 993, 994, 996, + 998, 999, 1000, 1001, 1013, 1016, 1018, 1020, 1022, 1023, + 1024, 1025, 1026, 1028, 1030, 1161,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 1720, 1720,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1258,-32768, 1841, 58,-32768, - 10946, 1287, 1841, 1190, 75, 1720, 1290, 1291, 1193,-32768, - 1295, 1188, 8, 1292,-32768, 1720,-32768, 300, -76, 423, - 423, 1301, 423, 1304, 423, 423,-32768, 1841, 3176, 1199, - 501,-32768, 2454, 1279, 1189, 1385, 1387, 1388, 1390, 1391, - 674, 1393, 1395, 1397, 1398, 1399, 1400, 1401, 1405, -43, - 3893, 3915,-32768,-32768, 3200, -76, -76, -76, 1404, 1841, - 1841, 1841, 1841, 1441, 1406, 1720, 1720, 423, 423, 1720, - 1407, 423, 1409, 3937,-32768, 2469, 767, 1410, 1242, 1415, - 1720, 1720, -76, 1417, 1419, 1235, 1421, 1422, 423, 423, - 1424, -76, 1425, 1426, 423, 423, 1427, 1429, 1431, 1432, - 1433, 423, 415, 423, 1434, 1435, 1436, 1439, 1440,-32768, - 1442, 484, 1445,-32768, 1446, 3111, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720,-32768, 12041, 10971, 12064, 10996, 12087, 11021, 12110, - 11046, 11071, 1240, 306, 1241, 301,-32768, 482,-32768, 20, - 350, 1244, 1444, 1609,-32768,-32768,-32768, 8, 1720,-32768, - 504,-32768, 2529, 1448, 19, 37, 1454, 423, 1464, 423, - 1465, 1466, 509,-32768,-32768, 1841,-32768, 1720,-32768, 1720, - 423, 423, 423, 1249, 1276,-32768, 444, 423, 423, 423, - 423, 423, 423, 423, 529, 1720, 1720, 1720, 1270, -116, - -106, -72,-32768, 516, 519, 522, 523,-32768,-32768, 3959, - 3981, 1470, 1492, 12133, -8, 1411,-32768, 1720, 1720, 1720, --32768, 1313, 1340, 1318, 4003, 4025, 4, 1320, 1350, 1346, - 1352, 1348, 1354, 1351, 1368, 167, 1369, 1355, 1357, 1370, - 1371, 1372, 1374, 1375, 1376, 1412,-32768,-32768,-32768,-32768, --32768, 1402, 1408, 1430, 1437, 1438, 1414, 1443,-32768, 1467, - 119,-32768, 1601, 4047, 4069, 4091, 4113, 4135, 4157, 4179, - 4201, 4223, 4245, 4267, 4289, 4311, 4333, 4355, 4377, 4399, - 4421, 4443, 4465, 4487, 4509, 4531, 4553, 4575, 4597,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 1413,-32768,-32768, --32768, 423, 58, 1720, 1602, 1605, 14,-32768, 1607, 11096, - 8,-32768,-32768,-32768,-32768, -76,-32768, 1626,-32768, 1628, --32768,-32768, 1447, 527, 2529, 4619, 1629, 1630, 1632, 1720, - 1720, 1720, 1720, 1633, 1636, 1637, 1638, 1642, 1643, 1651, --32768, 2394, 3235, 12156, 702, 486, -76, 1661, -76, 1663, - -76, 1665, 1667, 1669, 1671, 1698, 1720, 1720,-32768,-32768, - 1699, 423, 423, 1603, 423, 1961, 390, 12179, 1720, 21, - 1706, 1720, 423, 1704, 1708, 1707, 1526, 1709, 415, 1710, - 1715, 1720, 1714, 1718, 1716, 1719, 1723, 415, 1720, 1720, - 1720, 423, 1721, 1725, 415, 1720, 1750, 1751, 1749, 1720, - 484,-32768,-32768, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1754, - 1753, 1755, 1806,-32768, 1756, 1776,-32768, 1559,-32768, 24, --32768,-32768,-32768, 1562, 1720,-32768,-32768,-32768, 4641, 4663, - 1919, 2256,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2271, - 1777, 1586,-32768, 1720,-32768, 1595, -40,-32768, 1597, 85, --32768, 1598, 172,-32768, 1599,-32768,-32768,-32768,-32768, 4685, - 4707, -8, 328,-32768, 528, 1600, 1705, 1720,-32768, 1720, --32768,-32768, 4729, 21, 1608, 4751, 1606,-32768, 1610,-32768, - 1611,-32768, 1612,-32768, 1614, 12202,-32768, 1615,-32768,-32768, - 1613, 1617, 12225, 4773, 12248, 1616,-32768, 1622, 1644, 4795, - 1640, 1648,-32768, 4817, 1645, 4839, 4861, 4883, 4905, 4927, - 4949, 4971, 4993, 5015, 5037, 5059, 5081, 5103, 5125, 5147, - 5169, 5191, 5213, 5235, 5257, 5279, 5301, 5323, 5345, 5367, - 5389, 1649,-32768,-32768,-32768, 8,-32768, 1701,-32768,-32768, - 5411, 1720, 1720,-32768,-32768,-32768,-32768, 486, 2330,-32768, - 1515, 29, 1515, 29, 1515, 29, 1720, 1720, 1744,-32768, - 423,-32768, 423, 1720, 3267, 3291, 423, 21, 1869, -8, - 415, 1874, 1720, 1892, 415, 1893, 1905, 1903, 1904, 1907, - 1720, 1908, 423, 1909, 1910, 1720, 1915, 1913, 1720, 1906, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720,-32768, 1914,-32768, 1916, - 12271, 12294, 1722, 1720,-32768, 1515, 1515, 1720, 3315, 194, - 1917, 1724, -35,-32768, 3339, 199, -27, 3363, 201, -25, - 3387, 3411, 1740,-32768, 1742, 2362,-32768,-32768, 1741, 1759, --32768, 1745, 1746, 1747, 5433,-32768, 1728,-32768, 1757,-32768, --32768,-32768, 12317,-32768, 1748,-32768,-32768, 12340, 1758,-32768, - 12363, 1760, 12386, 12409, 12432, 5455, 5477, 5499, 5521, 5543, - 5565, 5587, 5609, 5631, 5653, 5675, 5697, 5719, 5741, 5763, - 5785, 5807, 5829, 5851, 5873, 5895, 12455, 5917,-32768, 1784, - 423, 423,-32768, 3435, 3579, 1941, 1720,-32768, 423, 1947, --32768, 1948, 1720, 1951, 1952, 1720, 1953, 1954, 1955, 423, - 423,-32768, 1956, 21, 415, 415, 415, 415, 1991, 1992, - 1993, 415, 1994, 1995, 1997, 1999,-32768,-32768,-32768, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, --32768, 1720, 2001, 423, 423,-32768,-32768, 1804, 3459, 1807, --32768,-32768, 1822, 3483,-32768,-32768, 1825, 3507,-32768,-32768, --32768, 1827, 1826,-32768, 21, 1829, 1831, 1837, 1838,-32768, --32768,-32768, 1834,-32768,-32768,-32768, 1836, 1840, 1842, 1843, - 5939, 5961, 5983, 6005, 6027, 6049, 6071, 6093, 6115, 6137, - 6159, 6181, 6203, 6225, 6247, 6269, 6291, 6313, 6335, 6357, - 6379, 1844, 12478, 1839, 2034, 2035, 29, 2039, 423, 29, - 2043, 29, 2044, 423, 1949, 21, 415, 415, 2046, 2047, - 415, 2049, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 58,-32768, 2059,-32768, --32768, -6,-32768, 1861, 548, -5,-32768, 1862, -4,-32768, - 1863, 1864, 1866, 1911, 1865, 1868,-32768,-32768, 1875, 1876, - 557, 2529, 558, 2529, 561, 2529, 6401, 6423, 6445, 6467, - 6489, 6511, 6533, 6555, 6577, 6599, 6621, 6643, 6665, 6687, - 6709, 6731, 6753, 6775, 6797, 6819, 6841, 573,-32768, 1871, - 1867, 2071, 29, 423, 2072, 2073, 29, 2094, 29, 2008, - 1720, 21, 415, 423, 2105, 2106, 1720, 2107, 1720, 2108, - 1720, 2111, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 58, 2113, 58, 2115,-32768, -2, 1918, --32768,-32768, 11,-32768, 12, 1921, 6863, 21, 1924, 1939, --32768,-32768, 2529,-32768, 2529,-32768, 2529,-32768, 12501, 12524, - 12547, 6885, 6907, 6929, 6951, 6973, 6995, 7017, 7039, 7061, - 7083, 7105, 7127, 7149, 7171, 7193, 7215, 7237, 7259,-32768, --32768, 576,-32768,-32768, 2146, 2147, 2148, 2149, 1720, 1720, - 21, 415, 423,-32768,-32768,-32768, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 58, 2150,-32768,-32768,-32768,-32768, - 7281, 3531, 1998, 1962, 1964, 1965, 1966, 1967, 7303, 7325, - 7347, 7369, 7391, 7413, 7435, 7457, 7479, 7501, 7523, 7545, - 7567, 7589, 7611, 7633, 7655, 7677,-32768,-32768, 1720, 2166, - 2002, 423, 415, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 3555,-32768,-32768, 1971, 1977, 577, - 2529, 580, 2529, 587, 2529, 7699, 7721, 7743, 7765, 7787, - 7809, 7831, 7853, 7875, 7897, 7919, 7941, 7963, 7985, 8007, - 8029, 8051, 8073, 2179, 423, 2180, 1720, 2181, 1720, 2182, - 1720, 2183, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, --32768, 1987,-32768, 2529,-32768, 2529,-32768, 2529,-32768, 12570, - 12593, 12616, 8095, 8117, 8139, 8161, 8183, 8205, 8227, 8249, - 8271, 8293, 8315, 8337, 8359, 8381, 8403, 423,-32768,-32768, --32768, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1988, 1989, 1990, 2000, - 8425, 8447, 8469, 8491, 8513, 8535, 8557, 8579, 8601, 8623, - 8645, 8667, 8689, 8711, 8733, 423, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 2003, 604, 2529, 607, 2529, 610, - 2529, 8755, 8777, 8799, 8821, 8843, 8865, 8887, 8909, 8931, - 8953, 8975, 8997, 9019, 9041, 9063, 415, 1720, 2186, 1720, - 2189, 1720, 2190, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 2010, 2529, --32768, 2529,-32768, 2529,-32768, 12639, 12662, 12685, 12708, 12731, - 12754, 9085, 9107, 9129, 9151, 9173, 9195, 9217, 9239, 9261, - 2203,-32768,-32768,-32768,-32768,-32768,-32768, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720,-32768, 2006, 2007, 2012, - 2015, 2016, 2020, 9283, 9305, 9327, 9349, 9371, 9393, 9415, - 9437, 9459, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 615, 2529, 663, - 2529, 666, 2529, 670, 2529, 691, 2529, 696, 2529, 9481, - 9503, 9525, 9547, 9569, 9591, 9613, 9635, 9657, 1720, 2208, - 1720, 2219, 1720, 2220, 1720, 2221, 1720, 2222, 1720, 2223, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 1720, 2529, --32768, 2529,-32768, 2529,-32768, 2529,-32768, 2529,-32768, 2529, --32768, 9679, 9701, 9723, 9745, 9767, 9789, 12777, 12800, 12823, - 1720, 1720, 1720, 1720, 1720, 1720,-32768,-32768,-32768, 9811, - 9833, 9855, 9877, 9899, 9921, 2026, 2027, 2028, 1720, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 1720, 9943, 9965, 9987, - 10009, 10031, 10053, 697, 2529, 701, 2529, 705, 2529, 1720, - 1720, 1720, 1720, 1720, 1720, 1720, 2233, 1720, 2234, 1720, - 2235, 10075, 10097, 10119, 12846, 12869, 12892, 2529,-32768, 2529, --32768, 2529,-32768, 1720, 1720, 1720,-32768,-32768,-32768, 10141, - 10163, 10185, 2038, 2040, 2041, 1720, 1720, 1720, 1720, 1720, - 1720, 10207, 10229, 10251, 706, 2529, 714, 2529, 717, 2529, - 1720, 1720, 1720, 1720, 2237, 1720, 2240, 1720, 2241, 10273, - 10295, 10317, 2529,-32768, 2529,-32768, 2529,-32768, 1720, 1720, - 1720, 10339, 10361, 10383, 1720, 1720, 1720, 10405, 10427, 10449, - 1720, 1720, 1720, 12915, 12938, 12961,-32768,-32768,-32768, 2048, - 2050, 2052, 1720, 1720, 1720, 718, 2529, 721, 2529, 722, - 2529, 1720, 2251, 1720, 2252, 1720, 2253, 2529,-32768, 2529, --32768, 2529,-32768, 2263, 2265,-32768 +-32768,-32768,-32768,-32768, 1723, 1723,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1164,-32768, 1844, 55,-32768, + 10949, 1193, 1844, 1012, 89, 1723, 1196, 1197, 1281,-32768, + 1198, 1032, 10, 1202,-32768, 1723,-32768, -5, 161, 600, + 600, 1225, 600, 1227, 600, 600,-32768, 1844, 3189, 1226, + 486,-32768, 2502, 1456, 1029, 1257, 1267, 1268, 1269, 1270, + 457, 1271, 1273, 1274, 1277, 1278, 1279, 1282, 1200, 188, + 3871, 3893,-32768,-32768, 3213, 161, 161, 161, 1284, 1844, + 1844, 1844, 1844, 1612, 1286, 1723, 1723, 600, 600, 1723, + 1287, 600, 1292, 3915,-32768, 2523, 777, 1293, 1119, 1296, + 1723, 1723, 161, 1298, 1299, 1115, 1302, 1303, 600, 600, + 1304, 161, 1306, 1308, 600, 600, 1311, 1312, 1313, 1314, + 1315, 600, 525, 600, 1316, 1317, 1318, 1321, 1322,-32768, + 1324, 481, 1323,-32768, 1351, 3117, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723,-32768, 12044, 10974, 12067, 10999, 12090, 11024, 12113, + 11049, 11074, 1122, 141, 1130, 354,-32768, 2457,-32768, 29, + 276, 1157, 1352, 1809,-32768,-32768,-32768, 10, 1723,-32768, + 489,-32768, 12987, 1354, 19, 31, 32, 600, 1355, 600, + 1356, 1357, 490,-32768,-32768, 1844,-32768, 1723,-32768, 1723, + 600, 600, 600, 1168, 1175,-32768, 118, 600, 600, 600, + 600, 600, 600, 600, 714, 1723, 1723, 1723, 1169, -104, + -99, 137,-32768, 501, 504, 509, 513,-32768,-32768, 3937, + 3959, 1368, 1393, 12136, -83, 1295,-32768, 1723, 1723, 1723, +-32768, 1199, 1236, 1201, 3981, 4003, -34, 1203, 1204, 1205, + 1207, 1206, 1209, 1208, 1211, 159, 1212, 1218, 1219, 1216, + 1217, 1221, 1222, 1224, 1233, 1223,-32768,-32768,-32768,-32768, +-32768, 1243, 1245, 1246, 1272, 1275, 1231, 1276,-32768, 1305, + 199,-32768, 1404, 4025, 4047, 4069, 4091, 4113, 4135, 4157, + 4179, 4201, 4223, 4245, 4267, 4289, 4311, 4333, 4355, 4377, + 4399, 4421, 4443, 4465, 4487, 4509, 4531, 4553, 4575,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1300,-32768,-32768, +-32768, 600, 55, 1723, 1466, 1469, 14,-32768, 1468, 11099, + 10,-32768,-32768,-32768,-32768, 161,-32768, 161, 1470,-32768, + 1513,-32768,-32768, 1320, 519, 12987, 4597, 1545, 1548, 1549, + 1723, 1723, 1723, 1723, 1550, 1551, 1553, 1554, 1555, 1556, + 1559,-32768, 2397, 3243, 12159, 1964, 538, 161, 1560, 161, + 1561, 161, 1563, 1565, 1566, 1567, 1568, 1723, 1723,-32768, +-32768, 1517, 600, 600, 1471, 600, 2670, 391, 12182, 1723, + 13, 1572, 1723, 600, 1571, 1575, 1573, 1392, 1576, 525, + 1602, 1578, 1723, 1604, 1608, 1606, 1607, 1611, 525, 1723, + 1723, 1723, 600, 1609, 1613, 525, 1723, 1614, 1617, 1615, + 1723, 481,-32768,-32768, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1618, 1620, 1621, 1922,-32768, 1616, 1622,-32768, 1423,-32768, + 21, 90,-32768,-32768,-32768, 1429, 1723,-32768,-32768,-32768, + 4619, 4641, 2259, 2274,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 2365, 1624, 1427,-32768, 1723,-32768, 1432, 201,-32768, + 1443, 203,-32768, 1445, 209,-32768, 1446,-32768,-32768,-32768, +-32768, 4663, 4685, -83, 210,-32768, 522, 1447, 1558, 1723, +-32768, 1723,-32768,-32768, 4707, 13, 1472, 4729, 1473,-32768, + 1475,-32768, 1477,-32768, 1474,-32768, 1504, 12205,-32768, 1506, +-32768,-32768, 1476, 1514, 12228, 4751, 12251, 1508,-32768, 1515, + 1516, 4773, 1520, 1519,-32768, 4795, 1521, 4817, 4839, 4861, + 4883, 4905, 4927, 4949, 4971, 4993, 5015, 5037, 5059, 5081, + 5103, 5125, 5147, 5169, 5191, 5213, 5235, 5257, 5279, 5301, + 5323, 5345, 5367, 1523,-32768,-32768,-32768, 10,-32768, 1623, +-32768,-32768,-32768, 5389, 1723, 1723,-32768,-32768,-32768,-32768, + 538, 2717,-32768, 1518, 344, 1518, 344, 1518, 344, 1723, + 1723, 1626,-32768, 600,-32768, 600, 1723, 3273, 3297, 600, + 13, 1667, -83, 525, 1713, 1723, 1712, 525, 1719, 1716, + 1722, 1750, 1751, 1723, 1752, 600, 1755, 1756, 1723, 1726, + 1757, 1723, 1759, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723,-32768, + 1760,-32768, 1780, 12274, 12297, 1581, 1723,-32768, 1518, 1518, + 1723, 3321, 211, 1787, 1599, -27,-32768, 3345, 214, 6, + 3369, 216, 67, 3393, 3417, 1600,-32768, 1562, 2424,-32768, +-32768, 1601, 1640,-32768, 1610, 1619, 1642, 5411,-32768, 1625, +-32768, 1648,-32768,-32768,-32768, 12320,-32768, 1646,-32768,-32768, + 12343, 1652,-32768, 12366, 1649, 12389, 12412, 12435, 5433, 5455, + 5477, 5499, 5521, 5543, 5565, 5587, 5609, 5631, 5653, 5675, + 5697, 5719, 5741, 5763, 5785, 5807, 5829, 5851, 5873, 12458, + 5895,-32768, 1675, 600, 600,-32768, 3441, 2957, 1801, 1723, +-32768, 600, 1803,-32768, 1804, 1723, 1805, 1806, 1723, 1808, + 1810, 1811, 600, 600,-32768, 1812, 13, 525, 525, 525, + 525, 1814, 1815, 1845, 525, 1874, 1895, 1896, 1906,-32768, +-32768,-32768, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723,-32768, 1723, 1907, 600, 600,-32768,-32768, + 1709, 3465, 1711,-32768,-32768, 1714, 3489,-32768,-32768, 1715, + 3513,-32768,-32768,-32768, 1718, 1717,-32768, 13, 1720, 1721, + 1728, 1729,-32768,-32768,-32768, 1727,-32768,-32768,-32768, 1744, + 1725, 1745, 1746, 5917, 5939, 5961, 5983, 6005, 6027, 6049, + 6071, 6093, 6115, 6137, 6159, 6181, 6203, 6225, 6247, 6269, + 6291, 6313, 6335, 6357, 1747, 12481, 1749, 1910, 1911, 344, + 1925, 600, 344, 1942, 344, 1947, 600, 1852, 13, 525, + 525, 1950, 1951, 525, 1953, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 55, +-32768, 1954,-32768,-32768, 74,-32768, 1758, 523, 76,-32768, + 1761, 77,-32768, 1762, 1785, 1796, 1795, 1798, 1799,-32768, +-32768, 1763, 1765, 526, 12987, 527, 12987, 533, 12987, 6379, + 6401, 6423, 6445, 6467, 6489, 6511, 6533, 6555, 6577, 6599, + 6621, 6643, 6665, 6687, 6709, 6731, 6753, 6775, 6797, 6819, + 536,-32768, 1800, 1802, 1958, 344, 600, 1997, 2000, 344, + 2003, 344, 1909, 1723, 13, 525, 600, 2007, 2023, 1723, + 2026, 1723, 2027, 1723, 2028, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 55, 2029, 55, 2031, +-32768, 80, 1833,-32768,-32768, 99,-32768, 116, 1835, 6841, + 13, 1837, 1839,-32768,-32768, 12987,-32768, 12987,-32768, 12987, +-32768, 12504, 12527, 12550, 6863, 6885, 6907, 6929, 6951, 6973, + 6995, 7017, 7039, 7061, 7083, 7105, 7127, 7149, 7171, 7193, + 7215, 7237,-32768,-32768, 537,-32768,-32768, 2037, 2038, 2039, + 2041, 1723, 1723, 13, 525, 600,-32768,-32768,-32768, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 55, 2042,-32768, +-32768,-32768,-32768, 7259, 3537, 1879, 1847, 1848, 1849, 1850, + 1851, 7281, 7303, 7325, 7347, 7369, 7391, 7413, 7435, 7457, + 7479, 7501, 7523, 7545, 7567, 7589, 7611, 7633, 7655,-32768, +-32768, 1723, 2046, 1885, 600, 525, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 3561,-32768,-32768, + 1854, 1869, 558, 12987, 559, 12987, 575, 12987, 7677, 7699, + 7721, 7743, 7765, 7787, 7809, 7831, 7853, 7875, 7897, 7919, + 7941, 7963, 7985, 8007, 8029, 8051, 2062, 600, 2063, 1723, + 2064, 1723, 2065, 1723, 2066, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723,-32768, 1870,-32768, 12987,-32768, 12987,-32768, + 12987,-32768, 12573, 12596, 12619, 8073, 8095, 8117, 8139, 8161, + 8183, 8205, 8227, 8249, 8271, 8293, 8315, 8337, 8359, 8381, + 600,-32768,-32768,-32768, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1871, + 1872, 1873, 1875, 8403, 8425, 8447, 8469, 8491, 8513, 8535, + 8557, 8579, 8601, 8623, 8645, 8667, 8689, 8711, 600, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1877, 576, 12987, + 579, 12987, 588, 12987, 8733, 8755, 8777, 8799, 8821, 8843, + 8865, 8887, 8909, 8931, 8953, 8975, 8997, 9019, 9041, 525, + 1723, 2069, 1723, 2072, 1723, 2075, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1884, 12987,-32768, 12987,-32768, 12987,-32768, 12642, 12665, + 12688, 12711, 12734, 12757, 9063, 9085, 9107, 9129, 9151, 9173, + 9195, 9217, 9239, 2097,-32768,-32768,-32768,-32768,-32768,-32768, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723,-32768, + 1912, 1913, 1916, 1918, 1920, 1924, 9261, 9283, 9305, 9327, + 9349, 9371, 9393, 9415, 9437, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 591, 12987, 595, 12987, 596, 12987, 605, 12987, 606, 12987, + 609, 12987, 9459, 9481, 9503, 9525, 9547, 9569, 9591, 9613, + 9635, 1723, 2107, 1723, 2108, 1723, 2109, 1723, 2120, 1723, + 2124, 1723, 2139, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 12987,-32768, 12987,-32768, 12987,-32768, 12987,-32768, + 12987,-32768, 12987,-32768, 9657, 9679, 9701, 9723, 9745, 9767, + 12780, 12803, 12826, 1723, 1723, 1723, 1723, 1723, 1723,-32768, +-32768,-32768, 9789, 9811, 9833, 9855, 9877, 9899, 1952, 1955, + 1966, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 9921, 9943, 9965, 9987, 10009, 10031, 610, 12987, 613, 12987, + 614, 12987, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 2149, + 1723, 2151, 1723, 2152, 10053, 10075, 10097, 12849, 12872, 12895, + 12987,-32768, 12987,-32768, 12987,-32768, 1723, 1723, 1723,-32768, +-32768,-32768, 10119, 10141, 10163, 1967, 1968, 1969, 1723, 1723, + 1723, 1723, 1723, 1723, 10185, 10207, 10229, 617, 12987, 663, + 12987, 666, 12987, 1723, 1723, 1723, 1723, 2162, 1723, 2168, + 1723, 2169, 10251, 10273, 10295, 12987,-32768, 12987,-32768, 12987, +-32768, 1723, 1723, 1723, 10317, 10339, 10361, 1723, 1723, 1723, + 10383, 10405, 10427, 1723, 1723, 1723, 12918, 12941, 12964,-32768, +-32768,-32768, 1972, 1973, 1974, 1723, 1723, 1723, 670, 12987, + 675, 12987, 676, 12987, 1723, 2182, 1723, 2183, 1723, 2184, + 12987,-32768, 12987,-32768, 12987,-32768, 2191, 2192,-32768 }; static const short yypgoto[] = {-32768, -177,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 1641,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 1564,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, @@ -1437,1682 +1438,1688 @@ static const short yypgoto[] = {-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, -297, -19,-32768, 2267, -3, -368, -168, 1,-32768, --32768,-32768,-32768,-32768, 2272,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, -1282, -1236,-32768,-32768, -1109, -23, --32768, -29,-32768, -90,-32768, -1185, 1166, 1462, -201, -334, - -732, 1228,-32768, -21 +-32768, -296, -19,-32768, 2190, -3, -368, -175, 1,-32768, +-32768,-32768,-32768,-32768, 2193,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, -1252, -1327,-32768,-32768, -1112, -23, +-32768, 136,-32768, -90,-32768, -1205, 1091, 1465, -201, -334, + -732, 1149,-32768, -21 }; -#define YYLAST 13159 +#define YYLAST 13183 static const short yytable[] = { 141, - 75, 559, 245, 140, 76, 532, 181, 497, 184, 1243, - 900, 195, 250, 376, 174, 176, 380, 742, 1252, 205, - 198, 378, 149, 210, 1054, 1259, 98, 205, 193, 1299, - 1391, 1397, 151, 1400, 402, 1392, 1319, 397, 1391, 399, - 1391, 386, 1055, 1392, 351, 1392, 207, 209, 123, 124, - 125, 352, 252, 149, 253, 305, 123, 124, 125, 1391, - 1391, 1391, 205, 1391, 1392, 1392, 1392, 146, 1392, 367, - 368, 5, 484, 205, 790, 85, 1391, 1391, 891, 367, - 368, 1392, 1392, 367, 368, 1056, 1087, 205, 1088, 133, - 134, 123, 124, 125, 1391, 247, 1089, 248, 1090, 1392, - 550, 493, 123, 124, 125, 86, 298, 299, 300, 170, - 171, 301, 304, 367, 368, 309, 123, 124, 125, 254, - 172, 255, 329, 330, 331, 92, 333, 173, 335, 336, - 1091, 347, 1092, 367, 368, 387, 367, 368, 493, 362, - 87, 364, 367, 368, 1412, 367, 368, 371, 365, 366, - 518, 369, 88, 560, 150, 519, 1471, 306, 307, 936, - 1471, 791, 1311, 1471, 151, 1049, 153, 384, 385, 1470, - 388, 792, 390, 793, 98, 393, 394, 1474, 89, 1477, - 892, 893, 622, 194, 748, 150, 90, 623, 1102, 367, - 368, 126, 127, 128, 129, 1103, 761, 736, 1682, 1686, - 1688, 1114, 1775, 91, 367, 368, 182, 211, 185, 367, - 368, 196, 251, 199, 379, 1777, 1778, 743, 206, 145, - 440, 1413, 584, 438, 591, 1417, 208, 93, 442, 443, + 75, 559, 245, 140, 76, 532, 376, 1245, 497, 380, + 900, 181, 184, 195, 250, 210, 1254, 742, 1322, 205, + 10, 149, 98, 1261, 1054, 386, 1301, 205, 193, 198, + 397, 205, 399, 305, 402, 98, 1055, 1057, 1394, 149, + 518, 571, 572, 1395, 351, 519, 207, 209, 123, 124, + 125, 352, 151, 484, 205, 85, 123, 124, 125, 205, + 123, 124, 125, 146, 1400, 252, 1403, 253, 1474, 5, + 790, 1394, 1474, 367, 368, 1474, 1395, 378, 87, 1056, + 1058, 367, 368, 123, 124, 125, 367, 368, 123, 124, + 125, 369, 891, 367, 368, 1302, 367, 368, 1088, 622, + 1089, 493, 153, 1090, 623, 1091, 298, 299, 300, 793, + 550, 301, 304, 1103, 370, 309, 367, 368, 188, 387, + 1104, 189, 329, 330, 331, 727, 333, 1415, 335, 336, + 728, 347, 1394, 86, 629, 306, 307, 1395, 493, 1394, + 88, 1394, 1394, 89, 1395, 1394, 1395, 1395, 365, 366, + 1395, 367, 368, 150, 90, 11, 12, 13, 14, 15, + 16, 17, 18, 1115, 1394, 1049, 92, 384, 385, 1395, + 388, 150, 390, 1073, 1074, 393, 394, 1473, 791, 174, + 176, 1394, 91, 194, 748, 93, 1395, 126, 127, 128, + 129, 792, 904, 496, 892, 893, 761, 733, 736, 211, + 126, 127, 128, 129, 367, 368, 367, 368, 133, 134, + 1477, 182, 185, 196, 251, 584, 735, 743, 206, 133, + 134, 1416, 199, 438, 591, 1420, 208, 843, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, - 367, 368, 485, 486, 487, 133, 134, 188, 164, 492, - 189, 165, 166, 843, 167, 498, 94, 1313, 503, 504, + 379, 1480, 485, 486, 487, 367, 368, 145, 1685, 492, + 1689, 1691, 1043, 178, 1778, 498, 179, 180, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 144, 1632, 367, 368, 1636, 523, 1639, - 525, 133, 134, 133, 134, 299, 492, 493, 1179, 488, - 256, 248, 257, 370, 536, 537, 538, 539, 540, 493, - 542, 543, 544, 545, 546, 547, 548, 553, 554, 126, - 127, 128, 129, 154, 367, 368, 496, 146, 561, 562, - 563, 564, 367, 368, 727, 573, 1043, 367, 368, 728, - 133, 134, 629, 580, 1123, 555, 555, 147, 735, 558, - 558, 258, 588, 259, 1315, 1546, 1547, 1548, 1549, 367, - 368, 260, 1553, 261, 367, 368, 367, 368, 321, 322, - 323, 324, 325, 884, 156, 1471, 1467, 1230, 326, 1471, - 1729, 1473, 1471, 1476, 1733, 148, 1735, 315, 316, 152, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 628, - 323, 324, 325, 913, 326, 95, 337, 262, 326, 263, - 153, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 944, 945, 946, 947, 155, - 338, 10, 133, 134, 731, 571, 572, 299, 528, 157, - 248, 133, 134, 739, 738, 737, 264, 760, 265, 248, - 158, 43, 44, 45, 46, 47, 48, 1645, 1646, 533, - 159, 1649, 1471, 133, 134, 492, 1471, 904, 1471, 1072, - 1073, 843, 733, 1040, 731, 759, 163, 492, 733, 763, - 764, 126, 127, 128, 129, 178, 168, 771, 179, 180, - 780, 126, 127, 128, 129, 1320, 493, 781, 782, 169, - 1321, 889, 133, 134, 1081, 1082, 785, 987, 988, 989, - 990, 991, 133, 134, 43, 44, 45, 46, 794, 48, - 6, 7, 177, 8, 160, 161, 493, 162, 266, 804, - 267, 806, 807, 1378, 186, 312, 313, 314, 315, 316, - 187, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 268, 1064, 269, 1739, 725, 326, 726, 183, 493, 493, - 493, 493, 1042, 1044, 1231, 190, 11, 12, 13, 14, - 15, 16, 17, 18, 270, 845, 271, 844, 130, 339, - 272, 201, 273, 274, 132, 275, 276, 191, 277, 135, - 192, 95, 297, 278, 138, 279, 340, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 280, 282, 281, 283, 202, 203, 312, 313, 314, - 315, 316, 200, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 1814, 284, 204, 285, 286, 326, 287, 926, - 243, 874, 875, 288, 290, 289, 291, 292, 246, 293, - 294, 733, 733, 734, 762, 876, 877, 878, 879, 880, - 881, 882, 295, 733, 492, 917, 1051, 885, 1052, 888, - 308, 733, 894, 1063, 493, 310, 296, 1206, 733, 905, - 1093, 733, 903, 1094, 733, 733, 1095, 1096, 927, 733, - 1321, 1184, 1322, 1869, 492, 327, 731, 314, 315, 316, - 328, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 1684, 1000, 1685, 348, 354, 326, 940, 941, 942, 1697, - 1699, 1698, 1700, 1701, 332, 1702, 492, 492, 492, 492, - 334, 349, 950, 951, 960, 1724, 954, 1725, 1805, 1897, - 1806, 1898, 1899, 967, 1900, 350, 355, 965, 966, 1901, - 356, 1902, 976, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 361, 372, 130, 131, 2028, 326, 2029, 2030, - 132, 2031, 2032, 357, 2033, 135, 358, 2139, 302, 2140, - 138, 359, 303, 1004, 1005, 1006, 1007, 1008, 1009, 1010, + 515, 516, 517, 1780, 362, 94, 364, 1474, 523, 144, + 525, 1474, 371, 146, 1474, 299, 492, 493, 1180, 254, + 1781, 255, 367, 368, 536, 537, 538, 539, 540, 493, + 542, 543, 544, 545, 546, 547, 548, 1635, 1040, 1092, + 1639, 1093, 1642, 733, 367, 368, 170, 171, 561, 562, + 563, 564, 256, 147, 257, 573, 1124, 172, 126, 127, + 128, 129, 148, 580, 173, 555, 555, 367, 368, 558, + 558, 151, 588, 367, 368, 1549, 1550, 1551, 1552, 133, + 134, 258, 1556, 259, 560, 440, 367, 368, 367, 368, + 936, 133, 134, 884, 367, 368, 367, 368, 1232, 367, + 368, 367, 368, 1314, 1474, 1316, 154, 1323, 1474, 1394, + 1474, 1318, 1324, 1470, 1395, 260, 1476, 261, 1479, 628, + 314, 315, 316, 913, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 1732, 262, 152, 263, 1736, 326, 1738, + 153, 321, 322, 323, 324, 325, 155, 126, 127, 128, + 129, 326, 156, 133, 134, 944, 945, 946, 947, 247, + 157, 248, 926, 264, 731, 265, 158, 299, 133, 134, + 266, 159, 267, 739, 738, 737, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 163, 168, 1648, 1649, 169, + 326, 1652, 133, 134, 177, 492, 6, 7, 488, 8, + 248, 183, 553, 554, 731, 759, 268, 492, 269, 763, + 764, 927, 133, 134, 323, 324, 325, 771, 528, 270, + 248, 271, 326, 186, 133, 134, 493, 781, 782, 187, + 760, 889, 248, 190, 315, 316, 785, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 133, 134, 794, 164, + 201, 326, 165, 166, 843, 167, 493, 160, 161, 804, + 162, 806, 807, 191, 192, 1381, 312, 313, 314, 315, + 316, 200, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 1065, 272, 1742, 273, 274, 326, 275, 493, 493, + 493, 493, 202, 1042, 1044, 1233, 43, 44, 45, 46, + 203, 48, 95, 337, 276, 845, 277, 844, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 312, 313, 314, 315, 316, 338, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 987, 988, 989, + 990, 991, 326, 204, 278, 280, 279, 281, 43, 44, + 45, 46, 47, 48, 282, 284, 283, 285, 286, 288, + 287, 289, 1817, 290, 292, 291, 293, 243, 725, 311, + 726, 874, 875, 246, 733, 780, 734, 733, 733, 762, + 917, 1051, 733, 1052, 1064, 876, 877, 878, 879, 880, + 881, 882, 294, 733, 492, 1094, 733, 885, 1095, 888, + 295, 733, 894, 1096, 493, 733, 296, 1097, 1208, 1082, + 1083, 733, 903, 1186, 1324, 1687, 1325, 1688, 1700, 1702, + 1701, 1703, 308, 1872, 492, 1704, 731, 1705, 1727, 1808, + 1728, 1809, 310, 565, 27, 28, 566, 567, 31, 568, + 33, 1000, 34, 327, 36, 37, 38, 328, 40, 41, + 1900, 1902, 1901, 1903, 332, 334, 492, 492, 492, 492, + 348, 361, 950, 951, 349, 53, 954, 1904, 2031, 1905, + 2032, 2033, 350, 2034, 960, 130, 339, 965, 966, 356, + 2035, 132, 2036, 2142, 357, 2143, 135, 2144, 2146, 2145, + 2147, 138, 354, 340, 55, 56, 57, 2148, 2150, 2149, + 2151, 2152, 2229, 2153, 2230, 2231, 2233, 2232, 2234, 2277, + 358, 2278, 67, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 312, - 313, 314, 315, 316, 360, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 373, 2141, 844, 2142, 2143, 326, - 2144, 1045, 2145, 375, 2146, 1050, 374, 312, 313, 314, - 315, 316, 383, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 492, 2147, 1065, 2148, 1066, 326, 2149, 2226, - 2150, 2227, 391, 2228, 1204, 2229, 1205, 2230, 2274, 2231, - 2275, 389, 1083, 1084, 1085, 392, 2276, 2049, 2277, 2278, - 2322, 2279, 2323, 2324, 2326, 2325, 2327, 395, 396, 398, - 400, 401, 1234, 403, 1106, 1107, 1108, 404, 405, 1383, - 406, 407, 312, 313, 314, 315, 316, 408, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 409, 410, 411, - 412, 413, 326, 433, 961, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 95, 297, 425, 426, - 427, 1142, 99, 100, 101, 102, 103, 104, 105, 106, + 313, 314, 315, 316, 355, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 359, 2279, 844, 2280, 2281, 326, + 2282, 1045, 2325, 360, 2326, 1050, 372, 2327, 2329, 2328, + 2330, 373, 375, 374, 905, 383, 389, 392, 391, 395, + 396, 398, 492, 400, 1066, 401, 1067, 403, 404, 405, + 406, 407, 433, 408, 409, 410, 411, 412, 413, 414, + 569, 415, 1084, 1085, 1086, 416, 417, 2052, 418, 419, + 420, 940, 941, 942, 421, 439, 422, 423, 424, 425, + 426, 427, 428, 1236, 1107, 1108, 1109, 429, 430, 431, + 432, 435, 1386, 436, 326, 490, 500, 437, 967, 501, + 499, 534, 312, 313, 314, 315, 316, 976, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 529, 541, 549, + 575, 576, 326, 579, 961, 592, 95, 297, 582, 585, + 593, 1143, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 594, 595, 596, 597, + 598, 599, 600, 601, 602, 603, 95, 297, 615, 604, + 1174, 1173, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 428, 429, 430, 431, - 432, 435, 436, 311, 439, 326, 490, 499, 437, 500, - 1173, 1172, 501, 534, 529, 541, 1180, 549, 575, 576, - 579, 312, 313, 314, 315, 316, 582, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 1189, 1190, 1191, 1192, - 1265, 326, 585, 592, 593, 495, 1328, 1207, 1200, 1210, - 1201, 1213, 594, 595, 596, 597, 598, 599, 600, 601, - 602, 603, 604, 1220, 1221, 605, 606, 607, 608, 609, - 610, 611, 555, 612, 613, 1233, 558, 614, 1236, 615, - 616, 729, 502, 617, 618, 619, 620, 621, 1246, 624, - 730, 625, 626, 741, 740, 1253, 1254, 1255, 745, 747, - 779, 749, 1260, 750, 751, 753, 1264, 755, 756, 765, - 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, - 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, - 1286, 1287, 1288, 1289, 1290, 1291, 783, 784, 796, 797, - 1410, 798, 799, 800, 802, 803, 809, 840, 810, 130, - 131, 1301, 811, 812, 813, 132, 814, 815, 816, 817, - 135, 818, 819, 757, 820, 138, 873, 758, 821, 822, - 1309, 823, 824, 312, 313, 314, 315, 316, 825, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 897, 826, - 827, 95, 297, 326, 1325, 828, 1326, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 95, 530, 829, 830, 831, 832, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 883, 312, 313, 314, 315, 316, 841, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 847, 1381, 1382, - 833, 1390, 326, 1396, 919, 1399, 834, 1389, 848, 1395, - 835, 1398, 887, 1401, 1402, 895, 896, 902, 849, 836, - 1406, 898, 850, 837, 555, 838, 1545, 908, 558, 1415, - 910, 851, 839, 852, 853, 854, 842, 1423, 855, 856, - 857, 858, 1428, 859, 860, 1431, 861, 1433, 1434, 1435, + 117, 118, 119, 120, 121, 122, 605, 1191, 1192, 1193, + 1194, 1267, 606, 607, 608, 609, 610, 611, 1331, 1202, + 612, 1203, 613, 614, 616, 617, 618, 619, 620, 621, + 729, 624, 730, 625, 1222, 1223, 626, 741, 740, 779, + 745, 747, 783, 555, 749, 750, 1235, 558, 502, 1238, + 751, 753, 755, 756, 765, 784, 798, 796, 797, 1248, + 799, 800, 802, 803, 809, 840, 1255, 1256, 1257, 810, + 811, 812, 813, 1262, 814, 815, 816, 1266, 817, 818, + 819, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, + 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, + 1287, 1288, 1289, 1290, 1291, 1292, 1293, 847, 820, 821, + 822, 823, 824, 1413, 825, 826, 827, 828, 829, 130, + 131, 830, 831, 1304, 848, 132, 873, 883, 832, 833, + 135, 834, 835, 302, 836, 138, 849, 303, 841, 837, + 838, 839, 1312, 850, 842, 851, 852, 853, 854, 855, + 856, 1181, 857, 1182, 858, 859, 860, 861, 887, 130, + 131, 895, 896, 935, 898, 132, 1328, 902, 1329, 862, + 135, 890, 863, 757, 864, 138, 865, 758, 866, 867, + 868, 869, 870, 1209, 871, 1212, 872, 1215, 95, 297, + 899, 908, 920, 910, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 312, 313, + 314, 315, 316, 921, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 922, 923, 924, 925, 928, 326, 929, + 930, 1384, 1385, 931, 932, 933, 897, 963, 934, 943, + 1392, 949, 1398, 955, 1401, 957, 1404, 1405, 964, 962, + 968, 969, 970, 1409, 971, 972, 975, 555, 977, 1548, + 978, 558, 1418, 981, 982, 983, 984, 985, 994, 1039, + 1426, 995, 996, 997, 998, 1431, 1001, 1041, 1434, 999, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, - 1456, 1457, 1458, 862, 863, 864, 865, 364, 866, 867, - 1464, 868, 298, 299, 1465, 869, 870, 1596, 312, 313, - 314, 315, 316, 871, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 872, 130, 131, 899, 586, 326, 890, - 132, 921, 920, 922, 923, 135, 924, 925, 915, 928, - 138, 929, 916, 930, 931, 932, 933, 934, 935, 943, - 963, 949, 957, 955, 130, 131, 962, 964, 1644, 968, - 132, 969, 970, 971, 972, 135, 975, 977, 978, 981, - 138, 982, 531, 983, 984, 985, 994, 1039, 1041, 995, - 996, 997, 998, 1529, 1046, 1070, 948, 999, 1001, 1534, - 1047, 1002, 1538, 1053, 312, 313, 314, 315, 316, 1057, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 1059, - 1061, 1062, 1071, 1086, 326, 1099, 1561, 1562, 1563, 1564, + 1456, 1457, 1458, 1459, 1460, 1461, 1002, 1046, 1047, 1053, + 1060, 1062, 1063, 1467, 1071, 298, 299, 1468, 95, 530, + 1599, 1072, 1087, 1100, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 1101, 1106, + 1111, 1117, 1110, 1112, 1119, 1116, 1121, 1118, 1120, 1144, + 1122, 130, 131, 1123, 1125, 1126, 1127, 132, 1128, 1129, + 1134, 1647, 135, 1130, 1131, 915, 1132, 138, 1140, 916, + 312, 313, 314, 315, 316, 1133, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 1135, 1532, 1136, 1137, 1393, + 326, 1399, 1537, 1402, 495, 1541, 312, 313, 314, 315, + 316, 919, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 1175, 1176, 1178, 1138, 1183, 326, 1139, 1141, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1573, 1574, - 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1100, 1583, 312, - 313, 314, 315, 316, 1110, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 1738, 1105, 1109, 95, 297, 326, - 1111, 489, 1115, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 1116, 1117, 1118, - 1119, 1120, 1125, 1121, 1126, 312, 313, 314, 315, 316, - 1781, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 1122, 1124, 1127, 1128, 1129, 326, 1130, 1131, 1132, 1652, - 1654, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, + 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, + 1171, 1586, 312, 313, 314, 315, 316, 1142, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 1741, 1184, 1185, + 95, 297, 326, 1224, 489, 364, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 1188, 130, 131, 1189, 1190, 1195, 1196, 132, 1197, 1198, + 1199, 1200, 135, 1784, 1201, 1210, 1213, 138, 1216, 531, + 1218, 1219, 1220, 1221, 1237, 1228, 1240, 1241, 1242, 1243, + 1247, 1244, 1655, 1657, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, - 1675, 1676, 1677, 1813, 1134, 1679, 1143, 1174, 1175, 1133, - 1135, 1139, 1177, 1170, 1048, 345, 312, 313, 314, 315, - 316, 353, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 1181, 1136, 1182, 1186, 1187, 326, 1188, 1193, 1137, - 1138, 1194, 1195, 1196, 377, 1140, 1183, 1197, 1198, 381, - 382, 312, 313, 314, 315, 316, 1199, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 1208, 1737, 1211, 1141, - 1214, 326, 1216, 1743, 1217, 1745, 1218, 1747, 551, 1749, - 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, + 1675, 1676, 1677, 1678, 1679, 1680, 1816, 1246, 1682, 1249, + 1250, 1251, 1252, 1253, 1259, 1260, 1263, 948, 345, 1264, + 1265, 1294, 1298, 1300, 353, 1295, 1296, 1299, 1303, 1310, + 1311, 312, 313, 314, 315, 316, 1313, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 1315, 377, 1317, 1319, + 1326, 326, 381, 382, 312, 313, 314, 315, 316, 1327, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 1332, + 1740, 1337, 1414, 1341, 326, 1334, 1746, 1335, 1748, 1336, + 1750, 551, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, - 1386, 1387, 1770, 1219, 1773, 1222, 132, 1226, 1235, 1238, - 1239, 1388, 1240, 1241, 1242, 1244, 138, 1245, 173, 1247, - 1248, 1249, 95, 297, 1250, 1251, 1257, 1258, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 1261, 1262, 1263, 1811, 1812, 1292, 1293, 1298, - 1294, 1300, 1296, 1819, 1820, 1821, 1822, 1823, 1824, 1825, + 1770, 1771, 1772, 1389, 1390, 1773, 1338, 1776, 1340, 132, + 1346, 1342, 1347, 1348, 1391, 1417, 1351, 1419, 1422, 138, + 1380, 173, 1350, 1353, 1421, 95, 297, 1423, 1432, 1382, + 1406, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 1424, 1425, 1427, 1814, 1815, + 1429, 1430, 1433, 1435, 1484, 1462, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, - 1836, 1297, 1307, 1837, 312, 313, 314, 315, 316, 1308, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 1310, - 1312, 1314, 1316, 1323, 326, 1329, 1324, 1379, 1331, 1334, - 1338, 1295, 1332, 1333, 1339, 1865, 1335, 1337, 1343, 1344, - 1871, 1873, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, + 1836, 1837, 1838, 1839, 1463, 1466, 1840, 312, 313, 314, + 315, 316, 1471, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 1472, 1483, 1487, 1486, 1530, 326, 1534, 1535, + 1538, 1539, 1488, 1542, 1048, 1543, 1544, 1547, 1868, 1553, + 1554, 1489, 1492, 1874, 1876, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, - 1893, 1345, 1347, 95, 337, 1348, 1377, 1350, 1403, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 1924, 1411, 1926, 1414, 1928, 338, 1930, - 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, - 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1416, 1418, 43, - 44, 45, 46, 47, 48, 130, 131, 1419, 1420, 1421, - 1432, 132, 1422, 1424, 1426, 1427, 135, 1429, 1430, 1459, - 1460, 138, 1468, 1484, 1304, 1489, 1463, 1469, 1971, 1972, - 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, - 1983, 1984, 1985, 1480, 1481, 1483, 1527, 1485, 1486, 1487, - 1492, 732, 1531, 1532, 1490, 1494, 1535, 1536, 1539, 1540, - 1541, 1544, 1496, 2007, 2009, 2011, 2012, 2013, 2014, 2015, + 1893, 1894, 1895, 1896, 1490, 1493, 95, 337, 1495, 1497, + 1555, 1499, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 1927, 1526, 1929, 1557, + 1931, 338, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, + 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, + 1558, 1559, 43, 44, 45, 46, 47, 48, 130, 131, + 1560, 1587, 1590, 1592, 132, 1633, 1634, 1593, 1595, 135, + 1597, 1598, 1600, 1601, 138, 1602, 1603, 1297, 1606, 1604, + 1636, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, + 1983, 1984, 1985, 1986, 1987, 1988, 1605, 1640, 1607, 1608, + 1630, 1632, 1643, 1646, 732, 1650, 1651, 1653, 1684, 1695, + 1698, 1686, 1699, 1731, 1690, 1692, 2010, 2012, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, - 2026, 312, 313, 314, 315, 316, 1523, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 1550, 1551, 1552, 1554, - 1555, 326, 1556, 1557, 2050, 1584, 2052, 1587, 2054, 1589, - 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, - 2066, 2067, 2068, 2069, 2070, 1590, 130, 491, 1592, 1594, - 1595, 1597, 132, 1598, 1599, 1600, 1601, 135, 1602, 1630, - 1631, 1629, 138, 1603, 1633, 1604, 1605, 1627, 1637, 1640, - 1643, 1647, 1648, 1650, 2094, 2095, 2096, 2097, 2098, 2099, - 2100, 2101, 2102, 1681, 1683, 1687, 1689, 1693, 1690, 1691, - 1694, 1727, 1695, 1696, 1726, 1692, 1728, 1731, 1732, 2119, - 2121, 2123, 2125, 2127, 2129, 2130, 2131, 2132, 2133, 2134, - 2135, 2136, 2137, 2138, 312, 313, 314, 315, 316, 1734, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 1736, - 1741, 1742, 1744, 1746, 326, 2160, 1748, 2162, 1771, 2164, - 1774, 2166, 1776, 2168, 1779, 2170, 1782, 2172, 2173, 2174, - 2175, 2176, 2177, 2178, 2179, 2180, 312, 313, 314, 315, - 316, 1783, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 1807, 1808, 1809, 1810, 1838, 326, 2190, 2191, 2192, - 2193, 2194, 2195, 1228, 1842, 1229, 1843, 1841, 1844, 1845, - 1846, 1866, 1867, 1895, 1896, 2208, 2209, 2210, 2211, 2212, - 2213, 2215, 2217, 2219, 1921, 1923, 1925, 1927, 1929, 1948, - 1986, 2051, 1987, 1988, 2053, 2055, 2232, 2233, 2234, 2235, - 2236, 2237, 2238, 1989, 2240, 2027, 2242, 2071, 2087, 2103, - 2104, 906, 907, 2161, 909, 2105, 911, 912, 2106, 2107, - 2250, 2251, 2252, 2108, 2163, 2165, 2167, 2169, 2171, 2205, - 2206, 2207, 2262, 2263, 2264, 2266, 2268, 2270, 2239, 2241, - 2243, 2259, 2284, 2260, 2261, 2286, 2288, 2280, 2281, 2282, - 2283, 2313, 2285, 2314, 2287, 2315, 2329, 2331, 2333, 952, - 953, 1305, 2335, 956, 2336, 2292, 2293, 2294, 1225, 846, - 74, 2298, 2299, 2300, 1176, 82, 1306, 2304, 2305, 2306, - 973, 974, 0, 0, 0, 0, 979, 980, 0, 2317, - 2319, 2321, 0, 986, 0, 993, 0, 0, 2328, 0, - 2330, 0, 2332, 95, 96, 97, 0, 98, 0, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 0, 123, 124, 125, 95, 530, 0, - 0, 0, 0, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 1482, 0, 1058, - 0, 1060, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1067, 1068, 1069, 0, 0, 0, 0, 1074, - 1075, 1076, 1077, 1078, 1079, 1080, 95, 297, 205, 0, - 0, 0, 99, 100, 101, 102, 103, 104, 105, 106, + 2026, 2027, 2028, 2029, 312, 313, 314, 315, 316, 1693, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 1694, + 1696, 1697, 1734, 1729, 326, 1735, 1730, 2053, 1737, 2055, + 1739, 2057, 1744, 2059, 2060, 2061, 2062, 2063, 2064, 2065, + 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 1745, 130, + 491, 1747, 1749, 1751, 1774, 132, 1777, 1779, 1782, 1785, + 135, 1786, 1810, 1811, 1812, 138, 1813, 1841, 1844, 1845, + 1846, 1869, 1847, 1848, 1849, 1870, 1898, 2097, 2098, 2099, + 2100, 2101, 2102, 2103, 2104, 2105, 1899, 1924, 1926, 1928, + 1930, 1932, 1951, 1989, 2054, 1990, 1991, 2056, 1992, 2030, + 2058, 2074, 2122, 2124, 2126, 2128, 2130, 2132, 2133, 2134, + 2135, 2136, 2137, 2138, 2139, 2140, 2141, 312, 313, 314, + 315, 316, 2090, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 2164, 2166, 2168, 2106, 2107, 326, 2163, 2108, + 2165, 2109, 2167, 2110, 2169, 2170, 2171, 2111, 2173, 2172, + 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 312, + 313, 314, 315, 316, 2174, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 2242, 2208, 2244, 2246, 2209, 326, + 2193, 2194, 2195, 2196, 2197, 2198, 1206, 2287, 1207, 2210, + 2262, 2263, 2264, 2289, 2291, 2316, 2317, 2318, 2211, 2212, + 2213, 2214, 2215, 2216, 2218, 2220, 2222, 2332, 2334, 2336, + 2338, 2339, 846, 74, 1227, 1177, 82, 0, 0, 2235, + 2236, 2237, 2238, 2239, 2240, 2241, 0, 2243, 0, 2245, + 0, 0, 0, 0, 906, 907, 0, 909, 0, 911, + 912, 0, 0, 2253, 2254, 2255, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2265, 2266, 2267, 2269, 2271, + 2273, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2283, 2284, 2285, 2286, 0, 2288, 0, 2290, 0, 0, + 0, 0, 952, 953, 1307, 0, 956, 0, 2295, 2296, + 2297, 0, 0, 0, 2301, 2302, 2303, 0, 0, 1308, + 2307, 2308, 2309, 973, 974, 0, 0, 0, 0, 979, + 980, 0, 2320, 2322, 2324, 0, 986, 0, 993, 0, + 0, 2331, 0, 2333, 0, 2335, 95, 96, 97, 0, + 98, 0, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 0, 123, 124, 125, - 746, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 312, 313, 314, 315, - 316, 326, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 918, 0, 0, 0, 0, 326, 0, 0, 0, - 0, 0, 126, 127, 128, 129, 959, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 130, 131, 0, 0, - 0, 0, 132, 133, 134, 0, 0, 135, 0, 136, - 0, 137, 138, 1171, 0, 312, 313, 314, 315, 316, - 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 130, 131, 0, 0, 0, 326, 132, 0, 0, 0, - 0, 135, 1384, 0, 1385, 0, 138, 312, 313, 314, - 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 0, 0, 0, 0, 0, 326, 0, 0, - 0, 0, 0, 0, 0, 0, 1227, 0, 0, 0, - 0, 0, 0, 0, 1237, 0, 0, 0, 0, 130, - 131, 0, 0, 0, 0, 132, 0, 0, 0, 0, - 135, 0, 0, 1256, 0, 138, 0, 0, 312, 313, - 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 312, + 95, 530, 0, 0, 0, 0, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 1309, 0, 1059, 0, 1061, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1068, 1069, 1070, 0, 0, + 0, 0, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 95, + 297, 205, 0, 0, 0, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 1485, + 123, 124, 125, 0, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 312, + 313, 314, 315, 316, 326, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 533, 0, 0, 0, 0, 326, + 0, 0, 0, 0, 0, 126, 127, 128, 129, 586, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, + 131, 0, 0, 0, 746, 132, 133, 134, 0, 0, + 135, 0, 136, 0, 137, 138, 1172, 0, 0, 918, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 130, 131, 0, 0, 0, 0, 132, + 959, 0, 0, 0, 135, 0, 0, 0, 0, 138, + 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 312, 313, 314, 315, 316, + 326, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 1229, 0, 0, 0, 0, 326, 0, 0, 1239, 0, + 0, 0, 130, 131, 766, 0, 0, 0, 132, 0, + 0, 0, 0, 135, 0, 0, 0, 1258, 138, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 312, 313, 314, 315, 316, 326, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 0, 0, 0, 326, 565, 27, 28, 566, 567, - 31, 568, 33, 0, 34, 0, 36, 37, 38, 0, - 40, 41, 0, 0, 0, 0, 0, 565, 27, 28, - 566, 567, 31, 568, 33, 0, 34, 53, 36, 37, - 38, 0, 40, 41, 312, 313, 314, 315, 316, 0, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 53, - 0, 0, 0, 0, 326, 0, 55, 56, 57, 0, - 565, 27, 28, 566, 567, 31, 568, 33, 0, 34, - 0, 36, 37, 38, 67, 40, 41, 0, 55, 56, - 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 67, 312, 313, 314, - 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 1404, 0, 1405, 0, 0, 326, 1409, 0, - 0, 55, 56, 57, 0, 0, 766, 0, 0, 0, - 0, 0, 0, 0, 1425, 0, 0, 0, 0, 67, - 565, 27, 28, 566, 567, 31, 568, 33, 0, 34, - 0, 36, 37, 38, 0, 40, 41, 0, 0, 0, - 0, 0, 569, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 565, 27, 28, 566, - 567, 31, 568, 33, 574, 34, 0, 36, 37, 38, - 0, 40, 41, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 56, 57, 0, 0, 0, 0, 53, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, - 0, 0, 312, 313, 314, 315, 316, 589, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 55, 56, 57, - 0, 0, 326, 0, 0, 0, 0, 0, 0, 0, - 0, 770, 1524, 1525, 0, 67, 0, 0, 0, 0, - 1530, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1542, 1543, 312, 313, 314, 315, 316, 0, 317, - 318, 319, 320, 321, 322, 323, 324, 325, -7, 1, - 0, -12, -55, 326, 0, 0, 0, 0, 0, 0, - 0, 0, 772, 0, 0, 0, 0, 590, 0, 0, - 0, 0, 0, 0, 0, 1585, 1586, 0, 0, 0, - 0, -55, 0, 0, 0, -55, -55, -55, -55, -55, - -55, -55, -55, -55, 0, -55, -55, -55, -55, -55, - -55, -55, -55, 805, 0, 0, -55, -55, -55, -55, - -55, -55, -55, 0, -55, -55, -55, -55, -55, 565, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 312, 313, 314, 315, 316, 0, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 312, 313, 314, + 315, 316, 326, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 312, 313, 314, 315, 316, 326, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 312, 313, 314, + 315, 316, 326, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 0, 0, 0, 0, 0, 326, 312, 313, + 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 0, 0, 0, 0, 0, 326, 565, 27, 28, 566, 567, 31, 568, 33, 0, 34, 0, 36, 37, 38, 0, 40, 41, 0, 0, 0, 0, - 1635, 0, 0, 0, 0, 1642, -55, -55, -55, -55, - 0, 53, 0, 0, -55, 0, -55, 0, -55, -55, - -55, -55, -55, -55, -55, -55, -55, -55, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 56, 57, 0, 0, 0, -12, -12, -12, -12, - -12, -12, -12, -12, 0, 0, 0, 0, 67, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -7, -7, 0, -7, 0, 0, 0, 0, 213, - 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 1730, 0, 0, 0, 0, - 326, 0, 0, 0, 627, 1740, 630, 631, 632, 633, - 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, - 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, - 654, 655, 630, 631, 632, 633, 634, 635, 636, 637, + 0, 565, 27, 28, 566, 567, 31, 568, 33, 0, + 34, 53, 36, 37, 38, 0, 40, 41, 0, 0, + 0, 0, 0, 565, 27, 28, 566, 567, 31, 568, + 33, 0, 34, 53, 36, 37, 38, 0, 40, 41, + 55, 56, 57, 0, 0, 0, 0, 0, 1407, 0, + 1408, 0, 0, 0, 1412, 53, 0, 0, 67, 0, + 0, 0, 55, 56, 57, 0, 0, 0, 0, 0, + 1428, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67, 0, 0, 0, 55, 56, 57, 0, 565, 27, + 28, 566, 567, 31, 568, 33, 0, 34, 0, 36, + 37, 38, 67, 40, 41, 312, 313, 314, 315, 316, + 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 53, 0, 0, 0, 213, 326, 0, 0, 0, 0, + 0, 0, 1230, 0, 1231, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 574, 0, 0, 55, + 56, 57, 312, 313, 314, 315, 316, 0, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 67, 589, 0, + 0, 0, 326, 0, 0, 0, 0, 0, 0, 1387, + 0, 1388, 0, 0, 0, 0, 0, 0, 1527, 1528, + 590, 0, 0, 0, 0, 0, 1533, 0, 0, 0, + 0, 0, 0, 214, 215, 216, 0, 1545, 1546, 0, + 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 0, 0, 0, -7, 1, 0, -12, -55, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 0, + 237, 238, 239, 240, 241, 242, 0, 0, 0, 0, + 0, 1588, 1589, 0, 0, 805, 0, -55, 0, 0, + 0, -55, -55, -55, -55, -55, -55, -55, -55, -55, + 0, -55, -55, -55, -55, -55, -55, -55, -55, 0, + 0, 0, -55, -55, -55, -55, -55, -55, -55, 0, + -55, -55, -55, -55, -55, 565, 27, 28, 566, 567, + 31, 568, 33, 0, 34, 0, 36, 37, 38, 0, + 40, 41, 0, 0, 0, 0, 1638, 0, 0, 0, + 0, 1645, -55, -55, -55, -55, 0, 53, 0, 0, + -55, 0, -55, 0, -55, -55, -55, -55, -55, -55, + -55, -55, -55, -55, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 55, 56, 57, 0, + 0, 0, -12, -12, -12, -12, -12, -12, -12, -12, + 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -7, -7, 0, + -7, 0, 312, 313, 314, 315, 316, 0, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, + 0, 1733, 326, 0, 489, 0, 0, 0, 0, 551, + 0, 1743, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, - 648, 649, 650, 651, 652, 653, 654, 655, 214, 215, - 216, 0, 0, 0, 0, 0, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 0, 0, 23, 0, - 0, 0, 0, 0, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 1815, 237, 238, 239, 240, 241, - 242, 0, 0, 0, 0, 0, 0, 24, 0, 0, - 0, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 648, 649, 650, 651, 652, 653, 654, 655, 630, 631, + 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, + 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, + 652, 653, 654, 655, 0, 0, 0, 0, 23, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 0, 0, 0, 0, 24, 770, 0, + 1818, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, 34, 35, 36, 37, 38, 39, 40, 41, 0, - 0, 0, 42, 43, 44, 45, 46, 47, 48, 656, - 49, 50, 51, 52, 53, 0, 0, 0, 312, 313, - 314, 315, 316, 1868, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 0, 0, 1003, 0, 0, 326, 0, - 0, 0, 54, 55, 56, 57, 0, 773, 0, 0, - 58, 0, 59, 0, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 0, 0, 0, 0, 0, 0, - 0, 312, 313, 314, 315, 316, 1922, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 312, 313, 314, 315, 316, - 914, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 0, 0, 0, 0, 0, 326, 0, 0, 0, 0, - 0, 0, 0, 0, 939, 0, 0, 0, 0, 1967, - 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, - 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 0, 0, 0, 0, 0, 0, 0, 1202, - 0, 0, 312, 313, 314, 315, 316, 2005, 317, 318, + 0, 0, 42, 43, 44, 45, 46, 47, 48, 0, + 49, 50, 51, 52, 53, 0, 0, 0, 0, 0, + 312, 313, 314, 315, 316, 656, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 0, 0, 0, 0, 1871, + 326, 0, 54, 55, 56, 57, 0, 0, 0, 772, + 58, 1003, 59, 0, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 0, 0, + 0, 0, 1925, 773, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 312, 313, + 314, 315, 316, 914, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, + 0, 0, 0, 0, 0, 1970, 0, 939, 312, 313, + 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, + 0, 0, 0, 0, 0, 0, 0, 1204, 312, 313, + 314, 315, 316, 2008, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, + 0, 0, 312, 313, 314, 315, 316, 1410, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, 312, 313, 314, 315, - 316, 1407, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1411, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 312, 313, 314, 315, 316, 1408, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1469, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 0, 0, 312, 313, 314, 315, 316, 1466, + 326, 0, 0, 0, 312, 313, 314, 315, 316, 1475, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, 312, 313, - 314, 315, 316, 1472, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1478, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 0, 0, 312, 313, 314, 315, 316, 1475, 317, 318, + 0, 0, 312, 313, 314, 315, 316, 1481, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, 312, 313, 314, 315, - 316, 1478, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1482, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 312, 313, 314, 315, 316, 1479, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1529, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 0, 0, 312, 313, 314, 315, 316, 1526, + 326, 0, 0, 0, 312, 313, 314, 315, 316, 1591, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, 312, 313, - 314, 315, 316, 1588, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1594, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 0, 0, 312, 313, 314, 315, 316, 1591, 317, 318, + 0, 0, 312, 313, 314, 315, 316, 1596, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, 312, 313, 314, 315, - 316, 1593, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1843, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 312, 313, 314, 315, 316, 1840, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1897, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 0, 0, 312, 313, 314, 315, 316, 1894, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 0, 0, 0, 326, 0, 489, 0, 0, 0, - 0, 551, 312, 313, 314, 315, 316, 0, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 552, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 552, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 583, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 583, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 705, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 705, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 706, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 706, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 719, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 719, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 720, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 720, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 721, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 721, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 722, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 722, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 723, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 723, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 724, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 724, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 786, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 786, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 787, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 787, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 788, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 788, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 937, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 937, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 938, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 938, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 958, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 958, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1098, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1097, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1099, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1098, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1113, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1112, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1114, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1113, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1145, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1144, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1146, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1145, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1147, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1146, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1148, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1147, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1149, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1148, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1150, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1149, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1151, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1150, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1152, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1151, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1153, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1152, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1154, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1153, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1155, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1154, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1156, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1155, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1157, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1156, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1158, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1157, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1159, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1158, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1160, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1159, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1161, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1160, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1162, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1161, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1163, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1162, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1164, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1163, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1165, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1164, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1166, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1165, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1167, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1166, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1168, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1167, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1169, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1168, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1170, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1169, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1187, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1185, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1305, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1302, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1306, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1303, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1320, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1317, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1321, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1318, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1330, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1327, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1333, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1330, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1344, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1341, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1349, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1346, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1352, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1349, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1354, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1351, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1355, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1352, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1356, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1353, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1357, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1354, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1358, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1355, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1359, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1356, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1360, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1357, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1361, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1358, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1362, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1359, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1363, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1360, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1364, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1361, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1365, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1362, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1366, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1363, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1367, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1364, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1368, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1365, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1369, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1366, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1370, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1367, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1371, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1368, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1372, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1369, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1373, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1370, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1374, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1371, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1375, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1372, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1376, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1373, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1377, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1374, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1378, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1375, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1379, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1376, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1383, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1380, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1491, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1488, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1503, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1500, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1504, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1501, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1505, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1502, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1506, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1503, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1507, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1504, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1508, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1505, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1509, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1506, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1510, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1507, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1511, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1508, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1512, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1509, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1513, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1510, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1514, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1511, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1515, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1512, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1516, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1513, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1517, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1514, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1518, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1515, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1519, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1516, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1520, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1517, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1521, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1518, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1522, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1519, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1523, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1520, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1525, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1522, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1609, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1606, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1610, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1607, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1611, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1608, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1612, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1609, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1613, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1610, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1614, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1611, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1615, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1612, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1616, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1613, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1617, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1614, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1618, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1615, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1619, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1616, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1620, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1617, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1621, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1618, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1622, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1619, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1623, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1620, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1624, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1621, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1625, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1622, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1626, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1623, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1627, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1624, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1628, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1625, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1629, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1626, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1706, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1703, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1707, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1704, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1708, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1705, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1709, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1706, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1710, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1707, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1711, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1708, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1712, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1709, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1713, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1710, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1714, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1711, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1715, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1712, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1716, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1713, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1717, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1714, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1718, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1715, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1719, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1716, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1720, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1717, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1721, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1718, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1722, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1719, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1723, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1720, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1724, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1721, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1725, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1722, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1726, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1723, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1783, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1780, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1790, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1787, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1791, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1788, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1792, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1789, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1793, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1790, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1794, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1791, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1795, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1792, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1796, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1793, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1797, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1794, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1798, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1795, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1799, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1796, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1800, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1797, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1801, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1798, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1802, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1799, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1803, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1800, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1804, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1801, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1805, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1802, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1806, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1803, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1807, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1804, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1842, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1839, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1850, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1847, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1851, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1848, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1852, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1849, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1853, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1850, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1854, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1851, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1855, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1852, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1856, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1853, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1857, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1854, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1858, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1855, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1859, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1856, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1860, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1857, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1861, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1858, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1862, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1859, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1863, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1860, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1864, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1861, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1865, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1862, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1866, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1863, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1867, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1864, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1906, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1903, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1907, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1904, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1908, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1905, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1909, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1906, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1910, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1907, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1911, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1908, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1912, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1909, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1913, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1910, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1914, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1911, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1915, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1912, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1916, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1913, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1917, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1914, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1918, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1915, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1919, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1916, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1920, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1917, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1921, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1918, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1922, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1919, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1923, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1920, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1955, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1952, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1956, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1953, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1957, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1954, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1958, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1955, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1959, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1956, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1960, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1957, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1961, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1958, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1962, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1959, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1963, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1960, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1964, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1961, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1965, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1962, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1966, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1963, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1967, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1964, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1968, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1965, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1969, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1966, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1993, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1990, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1994, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1991, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 1995, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1992, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 1996, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1993, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 1997, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1994, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 1998, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 1995, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 1999, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 1996, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2000, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 1997, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2001, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 1998, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2002, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 1999, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2003, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2000, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2004, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2001, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2005, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2002, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2006, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2003, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2007, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2004, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2037, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2034, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2038, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2035, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2039, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2036, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2040, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2037, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2041, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2038, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2042, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2039, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2043, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2040, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2044, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2041, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2045, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2042, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2046, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2043, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2047, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2044, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2048, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2045, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2049, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2046, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2050, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2047, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2051, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2048, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2081, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2078, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2082, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2079, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2083, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2080, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2084, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2081, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2085, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2082, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2086, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2083, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2087, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2084, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2088, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2085, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2089, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2086, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2112, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2109, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2113, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2110, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2114, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2111, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2115, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2112, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2116, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2113, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2117, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2114, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2118, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2115, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2119, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2116, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2120, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2117, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2154, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2151, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2155, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2152, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2156, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2153, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2157, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2154, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2158, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2155, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2159, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2156, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2160, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2157, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2161, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2158, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2162, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2159, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2184, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2181, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2185, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2182, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2186, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2183, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2187, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2184, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2188, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2185, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2189, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2186, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2202, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2199, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2203, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2200, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2204, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2201, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2205, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2202, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2206, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2203, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2207, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2204, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2223, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2220, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2224, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2221, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2225, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2222, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2226, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2223, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2227, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2224, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2228, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2225, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2247, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2244, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2248, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2245, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2249, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2246, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2259, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2256, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2260, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2257, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2261, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2258, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2274, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2271, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2275, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2272, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2276, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2273, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2292, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2289, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2293, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2290, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2294, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2291, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2298, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2295, 317, 318, 319, 320, 321, 322, 323, 324, + 316, 2299, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, 312, 313, - 314, 315, 316, 2296, 317, 318, 319, 320, 321, 322, + 314, 315, 316, 2300, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 312, 313, 314, 315, 316, 2297, 317, 318, 319, 320, + 312, 313, 314, 315, 316, 2304, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 312, 313, 314, 315, 316, 2301, 317, 318, + 326, 0, 312, 313, 314, 315, 316, 2305, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 312, 313, 314, 315, 316, 2302, + 0, 0, 326, 0, 312, 313, 314, 315, 316, 2306, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 0, 0, 0, 326, 0, 312, 313, 314, 315, - 316, 2303, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 684, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 686, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 688, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 690, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 692, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 694, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 696, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 698, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 700, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 702, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 704, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 708, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 710, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 712, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 714, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 716, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 718, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 789, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 795, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 886, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 1031, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 1033, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 1035, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 1037, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 0, 0, - 1038, 312, 313, 314, 315, 316, 0, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 0, 0, 1178, 312, 313, 314, 315, - 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 520, 312, + 0, 0, 0, 0, 326, 0, 0, 0, 627, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 684, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 686, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 688, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 690, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 692, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 694, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 696, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 698, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 700, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 702, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 704, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 708, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 710, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 712, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 714, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 716, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 718, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 789, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 795, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 886, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 1031, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 1033, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 1035, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 1037, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 0, 0, 1038, 312, 313, 314, 315, 316, 0, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, + 0, 0, 0, 0, 326, 0, 0, 0, 1179, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, - 0, 521, 312, 313, 314, 315, 316, 0, 317, 318, + 0, 520, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 522, 312, 313, 314, 315, 316, + 0, 0, 326, 0, 521, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 0, 0, 0, 0, 0, 326, 0, 524, 312, 313, + 0, 0, 0, 0, 0, 326, 0, 522, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 526, 312, 313, 314, 315, 316, 0, 317, 318, 319, + 524, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 527, 312, 313, 314, 315, 316, 0, + 0, 326, 0, 526, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 0, 0, 0, 326, 0, 535, 312, 313, 314, + 0, 0, 0, 0, 326, 0, 527, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 0, 0, 0, 0, 0, 326, 0, 577, + 324, 325, 0, 0, 0, 0, 0, 326, 0, 535, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 578, 312, 313, 314, 315, 316, 0, 317, + 326, 0, 577, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, - 0, 0, 0, 326, 0, 581, 312, 313, 314, 315, + 0, 0, 0, 326, 0, 578, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 587, 312, + 325, 0, 0, 0, 0, 0, 326, 0, 581, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, - 0, 683, 312, 313, 314, 315, 316, 0, 317, 318, + 0, 587, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 685, 312, 313, 314, 315, 316, + 0, 0, 326, 0, 683, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 0, 0, 0, 0, 0, 326, 0, 687, 312, 313, + 0, 0, 0, 0, 0, 326, 0, 685, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 689, 312, 313, 314, 315, 316, 0, 317, 318, 319, + 687, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 691, 312, 313, 314, 315, 316, 0, + 0, 326, 0, 689, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 0, 0, 0, 326, 0, 693, 312, 313, 314, + 0, 0, 0, 0, 326, 0, 691, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 0, 0, 0, 0, 0, 326, 0, 695, + 324, 325, 0, 0, 0, 0, 0, 326, 0, 693, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 697, 312, 313, 314, 315, 316, 0, 317, + 326, 0, 695, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, - 0, 0, 0, 326, 0, 699, 312, 313, 314, 315, + 0, 0, 0, 326, 0, 697, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 701, 312, + 325, 0, 0, 0, 0, 0, 326, 0, 699, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, - 0, 703, 312, 313, 314, 315, 316, 0, 317, 318, + 0, 701, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 707, 312, 313, 314, 315, 316, + 0, 0, 326, 0, 703, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 0, 0, 0, 0, 0, 326, 0, 709, 312, 313, + 0, 0, 0, 0, 0, 326, 0, 707, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 711, 312, 313, 314, 315, 316, 0, 317, 318, 319, + 709, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 713, 312, 313, 314, 315, 316, 0, + 0, 326, 0, 711, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 0, 0, 0, 326, 0, 715, 312, 313, 314, + 0, 0, 0, 0, 326, 0, 713, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 0, 0, 0, 0, 0, 326, 0, 717, + 324, 325, 0, 0, 0, 0, 0, 326, 0, 715, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 752, 312, 313, 314, 315, 316, 0, 317, + 326, 0, 717, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, - 0, 0, 0, 326, 0, 754, 312, 313, 314, 315, + 0, 0, 0, 326, 0, 752, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 767, 312, + 325, 0, 0, 0, 0, 0, 326, 0, 754, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, - 0, 768, 312, 313, 314, 315, 316, 0, 317, 318, + 0, 767, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 769, 312, 313, 314, 315, 316, + 0, 0, 326, 0, 768, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 0, 0, 0, 0, 0, 326, 0, 774, 312, 313, + 0, 0, 0, 0, 0, 326, 0, 769, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 775, 312, 313, 314, 315, 316, 0, 317, 318, 319, + 774, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 776, 312, 313, 314, 315, 316, 0, + 0, 326, 0, 775, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 0, 0, 0, 326, 0, 777, 312, 313, 314, + 0, 0, 0, 0, 326, 0, 776, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 0, 0, 0, 0, 0, 326, 0, 778, + 324, 325, 0, 0, 0, 0, 0, 326, 0, 777, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 801, 312, 313, 314, 315, 316, 0, 317, + 326, 0, 778, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, - 0, 0, 0, 326, 0, 808, 312, 313, 314, 315, + 0, 0, 0, 326, 0, 801, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 1030, 312, + 325, 0, 0, 0, 0, 0, 326, 0, 808, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, - 0, 1032, 312, 313, 314, 315, 316, 0, 317, 318, + 0, 1030, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 1034, 312, 313, 314, 315, 316, + 0, 0, 326, 0, 1032, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 0, 0, 0, 0, 0, 326, 0, 1036, 312, 313, + 0, 0, 0, 0, 0, 326, 0, 1034, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 1101, 312, 313, 314, 315, 316, 0, 317, 318, 319, + 1036, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 1203, 312, 313, 314, 315, 316, 0, + 0, 326, 0, 1102, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 0, 0, 0, 326, 0, 1232, 312, 313, 314, + 0, 0, 0, 0, 326, 0, 1205, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 0, 0, 0, 0, 0, 326, 0, 1336, + 324, 325, 0, 0, 0, 0, 0, 326, 0, 1234, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 1340, 312, 313, 314, 315, 316, 0, 317, + 326, 0, 1339, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, - 0, 0, 0, 326, 0, 1342, 312, 313, 314, 315, + 0, 0, 0, 326, 0, 1343, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 1461, 312, + 325, 0, 0, 0, 0, 0, 326, 0, 1345, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, - 0, 1462, 312, 313, 314, 315, 316, 0, 317, 318, + 0, 1464, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 1491, 312, 313, 314, 315, 316, + 0, 0, 326, 0, 1465, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 0, 0, 0, 0, 0, 326, 0, 1493, 312, 313, + 0, 0, 0, 0, 0, 326, 0, 1494, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 1495, 312, 313, 314, 315, 316, 0, 317, 318, 319, + 1496, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 1497, 312, 313, 314, 315, 316, 0, + 0, 326, 0, 1498, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 0, 0, 0, 326, 0, 1498, 312, 313, 314, + 0, 0, 0, 0, 326, 0, 1500, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 0, 0, 0, 0, 0, 326, 0, 1499, + 324, 325, 0, 0, 0, 0, 0, 326, 0, 1501, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 1521, 312, 313, 314, 315, 316, 0, 317, + 326, 0, 1502, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, - 0, 0, 0, 326, 0, 1628, 312, 313, 314, 315, + 0, 0, 0, 326, 0, 1524, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 1784, 312, + 325, 0, 0, 0, 0, 0, 326, 0, 1631, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, - 0, 1785, 312, 313, 314, 315, 316, 0, 317, 318, + 0, 1787, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 1786, 312, 313, 314, 315, 316, + 0, 0, 326, 0, 1788, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 0, 0, 0, 0, 0, 326, 0, 1949, 312, 313, + 0, 0, 0, 0, 0, 326, 0, 1789, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 1950, 312, 313, 314, 315, 316, 0, 317, 318, 319, + 1952, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 1951, 312, 313, 314, 315, 316, 0, + 0, 326, 0, 1953, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 0, 0, 0, 326, 0, 2072, 312, 313, 314, + 0, 0, 0, 0, 326, 0, 1954, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 0, 0, 0, 0, 0, 326, 0, 2073, + 324, 325, 0, 0, 0, 0, 0, 326, 0, 2075, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 2074, 312, 313, 314, 315, 316, 0, 317, + 326, 0, 2076, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, - 0, 0, 0, 326, 0, 2075, 312, 313, 314, 315, + 0, 0, 0, 326, 0, 2077, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 2076, 312, + 325, 0, 0, 0, 0, 0, 326, 0, 2078, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, - 0, 2077, 312, 313, 314, 315, 316, 0, 317, 318, + 0, 2079, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, - 0, 0, 326, 0, 2187, 312, 313, 314, 315, 316, + 0, 0, 326, 0, 2080, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 0, 0, 0, 0, 0, 326, 0, 2188, 312, 313, + 0, 0, 0, 0, 0, 326, 0, 2190, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, 0, - 2189, 312, 313, 314, 315, 316, 0, 317, 318, 319, + 2191, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, - 0, 326, 0, 2247, 312, 313, 314, 315, 316, 0, + 0, 326, 0, 2192, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, - 0, 0, 0, 0, 326, 0, 2248, 312, 313, 314, + 0, 0, 0, 0, 326, 0, 2250, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 0, 0, 0, 0, 0, 326, 0, 2249, + 324, 325, 0, 0, 0, 0, 0, 326, 0, 2251, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, 0, 0, - 326, 0, 2307, 312, 313, 314, 315, 316, 0, 317, + 326, 0, 2252, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, 325, 0, 0, - 0, 0, 0, 326, 0, 2308, 312, 313, 314, 315, + 0, 0, 0, 326, 0, 2310, 312, 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 0, 0, 0, 0, 0, 326, 0, 2309 + 325, 0, 0, 0, 0, 0, 326, 0, 2311, 312, + 313, 314, 315, 316, 0, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 0, 0, 0, 0, 0, 326, + 0, 2312, 312, 313, 314, 315, 316, 0, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 0, 0, 0, + 0, 0, 326 }; static const short yycheck[] = { 23, - 4, 370, 93, 23, 4, 340, 4, 305, 4, 1119, - 743, 4, 4, 182, 44, 45, 185, 4, 1128, 5, - 4, 6, 65, 3, 6, 1135, 7, 5, 42, 6, - 66, 1314, 65, 1316, 212, 71, 1222, 206, 66, 208, - 66, 103, 6, 71, 197, 71, 68, 69, 34, 35, - 36, 204, 197, 65, 199, 4, 34, 35, 36, 66, - 66, 66, 5, 66, 71, 71, 71, 197, 71, 186, - 187, 6, 4, 5, 204, 167, 66, 66, 4, 186, - 187, 71, 71, 186, 187, 49, 203, 5, 205, 193, - 194, 34, 35, 36, 66, 199, 203, 201, 205, 71, - 203, 303, 34, 35, 36, 7, 130, 131, 132, 186, - 187, 135, 136, 186, 187, 139, 34, 35, 36, 197, - 197, 199, 146, 147, 148, 197, 150, 204, 152, 153, - 203, 155, 205, 186, 187, 197, 186, 187, 340, 169, - 6, 171, 186, 187, 1330, 186, 187, 177, 172, 173, - 198, 204, 6, 203, 197, 203, 1393, 106, 107, 203, - 1397, 204, 203, 1400, 65, 898, 197, 191, 192, 205, - 194, 204, 196, 204, 7, 199, 200, 205, 6, 205, - 106, 107, 198, 197, 519, 197, 6, 203, 197, 186, - 187, 172, 173, 174, 175, 204, 531, 495, 205, 205, - 205, 198, 205, 6, 186, 187, 204, 187, 204, 186, - 187, 204, 204, 197, 199, 205, 205, 204, 204, 6, - 250, 1331, 391, 247, 402, 1335, 204, 197, 252, 253, + 4, 370, 93, 23, 4, 340, 182, 1120, 305, 185, + 743, 4, 4, 4, 4, 3, 1129, 4, 1224, 5, + 3, 65, 7, 1136, 6, 103, 6, 5, 42, 4, + 206, 5, 208, 4, 212, 7, 6, 6, 66, 65, + 198, 6, 7, 71, 197, 203, 68, 69, 34, 35, + 36, 204, 65, 4, 5, 167, 34, 35, 36, 5, + 34, 35, 36, 197, 1317, 197, 1319, 199, 1396, 6, + 204, 66, 1400, 186, 187, 1403, 71, 6, 6, 49, + 49, 186, 187, 34, 35, 36, 186, 187, 34, 35, + 36, 204, 4, 186, 187, 6, 186, 187, 203, 198, + 205, 303, 197, 203, 203, 205, 130, 131, 132, 204, + 203, 135, 136, 197, 204, 139, 186, 187, 38, 197, + 204, 41, 146, 147, 148, 198, 150, 1333, 152, 153, + 203, 155, 66, 7, 204, 106, 107, 71, 340, 66, + 6, 66, 66, 6, 71, 66, 71, 71, 172, 173, + 71, 186, 187, 197, 6, 138, 139, 140, 141, 142, + 143, 144, 145, 198, 66, 898, 197, 191, 192, 71, + 194, 197, 196, 56, 57, 199, 200, 205, 204, 44, + 45, 66, 6, 197, 519, 197, 71, 172, 173, 174, + 175, 204, 198, 7, 106, 107, 531, 203, 495, 187, + 172, 173, 174, 175, 186, 187, 186, 187, 193, 194, + 205, 204, 204, 204, 204, 391, 201, 204, 204, 193, + 194, 1334, 197, 247, 402, 1338, 204, 201, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 186, 187, 294, 295, 296, 193, 194, 38, 38, 303, - 41, 41, 42, 201, 44, 305, 197, 203, 312, 313, + 199, 205, 294, 295, 296, 186, 187, 6, 205, 303, + 205, 205, 7, 38, 205, 305, 41, 42, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 197, 1587, 186, 187, 1590, 332, 1592, - 334, 193, 194, 193, 194, 339, 340, 519, 1051, 199, - 197, 201, 199, 204, 348, 349, 350, 351, 352, 531, - 354, 355, 356, 357, 358, 359, 360, 367, 368, 172, - 173, 174, 175, 46, 186, 187, 7, 197, 372, 373, - 374, 375, 186, 187, 198, 379, 7, 186, 187, 203, - 193, 194, 204, 387, 198, 369, 370, 197, 201, 369, - 370, 197, 396, 199, 203, 1485, 1486, 1487, 1488, 186, - 187, 197, 1492, 199, 186, 187, 186, 187, 186, 187, - 188, 189, 190, 728, 42, 1632, 203, 8, 196, 1636, - 1683, 203, 1639, 203, 1687, 197, 1689, 179, 180, 197, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 439, - 188, 189, 190, 758, 196, 3, 4, 197, 196, 199, - 197, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 790, 791, 792, 793, 197, - 38, 3, 193, 194, 488, 6, 7, 491, 199, 42, - 201, 193, 194, 497, 496, 495, 197, 199, 199, 201, - 42, 59, 60, 61, 62, 63, 64, 1597, 1598, 8, - 42, 1601, 1729, 193, 194, 519, 1733, 198, 1735, 56, - 57, 201, 203, 198, 528, 529, 44, 531, 203, 533, - 534, 172, 173, 174, 175, 38, 197, 541, 41, 42, - 550, 172, 173, 174, 175, 198, 728, 551, 552, 204, - 203, 733, 193, 194, 6, 7, 560, 123, 124, 125, - 126, 127, 193, 194, 59, 60, 61, 62, 572, 64, - 163, 164, 204, 166, 41, 42, 758, 44, 197, 583, - 199, 585, 586, 1296, 6, 176, 177, 178, 179, 180, - 6, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 197, 916, 199, 1693, 199, 196, 201, 42, 790, 791, - 792, 793, 890, 891, 205, 4, 138, 139, 140, 141, - 142, 143, 144, 145, 197, 627, 199, 627, 186, 187, - 197, 6, 199, 197, 192, 199, 197, 197, 199, 197, - 197, 3, 4, 197, 202, 199, 204, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 197, 197, 199, 199, 4, 4, 176, 177, 178, - 179, 180, 197, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 1782, 197, 42, 199, 197, 196, 199, 6, - 197, 705, 706, 197, 197, 199, 199, 197, 5, 199, - 197, 203, 203, 205, 205, 719, 720, 721, 722, 723, + 324, 325, 326, 205, 169, 197, 171, 1635, 332, 197, + 334, 1639, 177, 197, 1642, 339, 340, 519, 1051, 197, + 205, 199, 186, 187, 348, 349, 350, 351, 352, 531, + 354, 355, 356, 357, 358, 359, 360, 1590, 198, 203, + 1593, 205, 1595, 203, 186, 187, 186, 187, 372, 373, + 374, 375, 197, 197, 199, 379, 198, 197, 172, 173, + 174, 175, 197, 387, 204, 369, 370, 186, 187, 369, + 370, 65, 396, 186, 187, 1488, 1489, 1490, 1491, 193, + 194, 197, 1495, 199, 203, 250, 186, 187, 186, 187, + 203, 193, 194, 728, 186, 187, 186, 187, 8, 186, + 187, 186, 187, 203, 1732, 203, 46, 198, 1736, 66, + 1738, 203, 203, 203, 71, 197, 203, 199, 203, 439, + 178, 179, 180, 758, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 1686, 197, 197, 199, 1690, 196, 1692, + 197, 186, 187, 188, 189, 190, 197, 172, 173, 174, + 175, 196, 42, 193, 194, 790, 791, 792, 793, 199, + 42, 201, 6, 197, 488, 199, 42, 491, 193, 194, + 197, 42, 199, 497, 496, 495, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 44, 197, 1600, 1601, 204, + 196, 1604, 193, 194, 204, 519, 163, 164, 199, 166, + 201, 42, 367, 368, 528, 529, 197, 531, 199, 533, + 534, 55, 193, 194, 188, 189, 190, 541, 199, 197, + 201, 199, 196, 6, 193, 194, 728, 551, 552, 6, + 199, 733, 201, 4, 179, 180, 560, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 193, 194, 572, 38, + 6, 196, 41, 42, 201, 44, 758, 41, 42, 583, + 44, 585, 586, 197, 197, 1298, 176, 177, 178, 179, + 180, 197, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 916, 197, 1696, 199, 197, 196, 199, 790, 791, + 792, 793, 4, 890, 891, 205, 59, 60, 61, 62, + 4, 64, 3, 4, 197, 627, 199, 627, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 176, 177, 178, 179, 180, 38, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 123, 124, 125, + 126, 127, 196, 42, 197, 197, 199, 199, 59, 60, + 61, 62, 63, 64, 197, 197, 199, 199, 197, 197, + 199, 199, 1785, 197, 197, 199, 199, 197, 199, 6, + 201, 705, 706, 5, 203, 550, 205, 203, 203, 205, + 205, 203, 203, 205, 205, 719, 720, 721, 722, 723, 724, 725, 197, 203, 728, 205, 203, 729, 205, 733, - 4, 203, 736, 205, 916, 6, 197, 1086, 203, 749, - 205, 203, 746, 205, 203, 203, 205, 205, 55, 203, - 203, 205, 205, 1843, 758, 6, 760, 178, 179, 180, - 5, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 203, 842, 205, 204, 204, 196, 786, 787, 788, 203, - 203, 205, 205, 203, 197, 205, 790, 791, 792, 793, - 197, 197, 796, 797, 8, 203, 800, 205, 203, 203, - 205, 205, 203, 813, 205, 197, 204, 811, 812, 203, - 197, 205, 822, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 4, 204, 186, 187, 203, 196, 205, 203, - 192, 205, 203, 197, 205, 197, 197, 203, 200, 205, - 202, 197, 204, 847, 848, 849, 850, 851, 852, 853, + 197, 203, 736, 205, 916, 203, 197, 205, 1087, 6, + 7, 203, 746, 205, 203, 203, 205, 205, 203, 203, + 205, 205, 4, 1846, 758, 203, 760, 205, 203, 203, + 205, 205, 6, 38, 39, 40, 41, 42, 43, 44, + 45, 842, 47, 6, 49, 50, 51, 5, 53, 54, + 203, 203, 205, 205, 197, 197, 790, 791, 792, 793, + 204, 4, 796, 797, 197, 70, 800, 203, 203, 205, + 205, 203, 197, 205, 8, 186, 187, 811, 812, 197, + 203, 192, 205, 203, 197, 205, 197, 203, 203, 205, + 205, 202, 204, 204, 99, 100, 101, 203, 203, 205, + 205, 203, 203, 205, 205, 203, 203, 205, 205, 203, + 197, 205, 117, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 176, - 177, 178, 179, 180, 197, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 204, 203, 886, 205, 203, 196, - 205, 891, 203, 199, 205, 899, 204, 176, 177, 178, - 179, 180, 6, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 916, 203, 918, 205, 920, 196, 203, 203, - 205, 205, 204, 203, 203, 205, 205, 203, 203, 205, - 205, 201, 936, 937, 938, 109, 203, 2027, 205, 203, - 203, 205, 205, 203, 203, 205, 205, 6, 197, 6, - 6, 3, 1110, 197, 958, 959, 960, 197, 197, 1308, - 197, 197, 176, 177, 178, 179, 180, 197, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 197, 197, 197, - 197, 197, 196, 5, 198, 197, 197, 197, 197, 197, - 197, 197, 197, 197, 197, 197, 3, 4, 197, 197, - 197, 1001, 9, 10, 11, 12, 13, 14, 15, 16, + 177, 178, 179, 180, 204, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 197, 203, 886, 205, 203, 196, + 205, 891, 203, 197, 205, 899, 204, 203, 203, 205, + 205, 204, 199, 204, 749, 6, 201, 109, 204, 6, + 197, 6, 916, 6, 918, 3, 920, 197, 197, 197, + 197, 197, 5, 197, 197, 197, 197, 197, 197, 197, + 205, 197, 936, 937, 938, 197, 197, 2030, 197, 197, + 197, 786, 787, 788, 197, 4, 197, 197, 197, 197, + 197, 197, 197, 1111, 958, 959, 960, 197, 197, 197, + 197, 203, 1311, 198, 196, 7, 7, 203, 813, 199, + 201, 7, 176, 177, 178, 179, 180, 822, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 204, 7, 198, + 7, 7, 196, 104, 198, 5, 3, 4, 106, 204, + 5, 1001, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 3, 4, 156, 5, + 1044, 1043, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 197, 197, 197, 197, - 197, 203, 198, 6, 4, 196, 7, 201, 203, 7, - 1044, 1043, 199, 7, 204, 7, 1056, 198, 7, 7, - 104, 176, 177, 178, 179, 180, 106, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 1070, 1071, 1072, 1073, - 1141, 196, 204, 5, 5, 200, 1234, 1087, 1082, 1089, - 1082, 1091, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 1097, 1098, 5, 5, 5, 5, 5, - 5, 5, 1086, 5, 5, 1109, 1086, 5, 1112, 156, - 5, 203, 6, 5, 5, 5, 3, 5, 1122, 5, - 198, 6, 5, 4, 6, 1129, 1130, 1131, 200, 6, - 201, 7, 1136, 7, 7, 7, 1140, 7, 7, 7, - 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, + 27, 28, 29, 30, 31, 32, 5, 1071, 1072, 1073, + 1074, 1142, 5, 5, 5, 5, 5, 5, 1236, 1083, + 5, 1083, 5, 5, 5, 5, 5, 5, 3, 5, + 203, 5, 198, 6, 1098, 1099, 5, 4, 6, 201, + 200, 6, 205, 1087, 7, 7, 1110, 1087, 6, 1113, + 7, 7, 7, 7, 7, 205, 7, 204, 204, 1123, + 7, 197, 7, 201, 168, 5, 1130, 1131, 1132, 203, + 203, 203, 203, 1137, 203, 203, 203, 1141, 203, 203, + 203, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, - 1164, 1165, 1166, 1167, 1168, 1169, 205, 205, 204, 204, - 1328, 7, 7, 197, 7, 201, 168, 5, 203, 186, - 187, 1185, 203, 203, 203, 192, 203, 203, 203, 203, - 197, 203, 203, 200, 203, 202, 6, 204, 203, 203, - 1204, 203, 203, 176, 177, 178, 179, 180, 203, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 6, 203, - 203, 3, 4, 196, 1228, 203, 1230, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 3, 4, 203, 203, 203, 203, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 4, 176, 177, 178, 179, 180, 198, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 197, 1302, 1303, - 203, 1311, 196, 1313, 6, 1315, 203, 1311, 197, 1313, - 203, 1315, 6, 1317, 1318, 6, 6, 6, 197, 203, - 1324, 7, 197, 203, 1308, 203, 1484, 7, 1308, 1333, - 7, 197, 203, 197, 197, 197, 203, 1341, 197, 197, - 197, 197, 1346, 197, 197, 1349, 197, 1351, 1352, 1353, + 1164, 1165, 1166, 1167, 1168, 1169, 1170, 197, 203, 203, + 203, 203, 203, 1331, 203, 203, 203, 203, 203, 186, + 187, 203, 203, 1187, 197, 192, 6, 4, 203, 203, + 197, 203, 203, 200, 203, 202, 197, 204, 198, 203, + 203, 203, 1206, 197, 203, 197, 197, 197, 197, 197, + 197, 1056, 197, 1058, 197, 197, 197, 197, 6, 186, + 187, 6, 6, 4, 7, 192, 1230, 6, 1232, 197, + 197, 200, 197, 200, 197, 202, 197, 204, 197, 197, + 197, 197, 197, 1088, 197, 1090, 197, 1092, 3, 4, + 199, 7, 204, 7, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 176, 177, + 178, 179, 180, 7, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 7, 7, 7, 7, 7, 196, 7, + 7, 1305, 1306, 7, 7, 7, 6, 169, 7, 6, + 1314, 6, 1316, 7, 1318, 4, 1320, 1321, 3, 7, + 3, 3, 188, 1327, 3, 3, 3, 1311, 3, 1487, + 3, 1311, 1336, 3, 3, 3, 3, 3, 3, 198, + 1344, 5, 5, 3, 3, 1349, 4, 198, 1352, 6, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, - 1374, 1375, 1376, 197, 197, 197, 197, 1387, 197, 197, - 1384, 197, 1386, 1387, 1388, 197, 197, 1545, 176, 177, - 178, 179, 180, 197, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 197, 186, 187, 199, 8, 196, 200, - 192, 7, 204, 7, 7, 197, 7, 7, 200, 7, - 202, 7, 204, 7, 7, 7, 7, 7, 4, 6, - 169, 6, 4, 7, 186, 187, 7, 3, 1596, 3, - 192, 3, 188, 3, 3, 197, 3, 3, 3, 3, - 202, 3, 204, 3, 3, 3, 3, 198, 198, 5, - 5, 3, 3, 1467, 201, 197, 6, 6, 4, 1473, - 7, 6, 1476, 6, 176, 177, 178, 179, 180, 6, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 6, - 6, 6, 197, 204, 196, 6, 1500, 1501, 1502, 1503, + 1374, 1375, 1376, 1377, 1378, 1379, 6, 201, 7, 6, + 6, 6, 6, 1387, 197, 1389, 1390, 1391, 3, 4, + 1548, 197, 204, 6, 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, 105, + 165, 198, 204, 203, 198, 203, 198, 203, 203, 6, + 203, 186, 187, 203, 203, 198, 198, 192, 203, 203, + 198, 1599, 197, 203, 203, 200, 203, 202, 198, 204, + 176, 177, 178, 179, 180, 203, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 203, 1470, 203, 203, 1314, + 196, 1316, 1476, 1318, 200, 1479, 176, 177, 178, 179, + 180, 6, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 6, 4, 6, 203, 6, 196, 203, 203, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, - 1514, 1515, 1516, 1517, 1518, 1519, 1520, 6, 1522, 176, - 177, 178, 179, 180, 165, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 1692, 105, 204, 3, 4, 196, - 203, 198, 203, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 198, 203, 198, - 203, 198, 198, 203, 198, 176, 177, 178, 179, 180, - 1738, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 203, 203, 203, 203, 203, 196, 203, 203, 203, 1603, - 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, + 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, + 201, 1525, 176, 177, 178, 179, 180, 203, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 1695, 6, 200, + 3, 4, 196, 7, 198, 1390, 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, 186, 187, 6, 6, 6, 6, 192, 6, 6, + 6, 6, 197, 1741, 6, 6, 6, 202, 6, 204, + 6, 6, 6, 6, 3, 105, 6, 3, 6, 188, + 3, 6, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, - 1624, 1625, 1626, 1781, 203, 1627, 6, 6, 4, 198, - 203, 198, 6, 201, 6, 154, 176, 177, 178, 179, - 180, 160, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 6, 203, 6, 6, 6, 196, 6, 6, 203, - 203, 6, 6, 6, 183, 203, 200, 6, 6, 188, - 189, 176, 177, 178, 179, 180, 6, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 6, 1691, 6, 203, - 6, 196, 6, 1697, 6, 1699, 6, 1701, 203, 1703, - 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, + 1624, 1625, 1626, 1627, 1628, 1629, 1784, 6, 1630, 6, + 3, 6, 6, 3, 6, 3, 3, 6, 154, 3, + 6, 4, 7, 201, 160, 6, 6, 6, 200, 6, + 204, 176, 177, 178, 179, 180, 205, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 204, 183, 204, 204, + 204, 196, 188, 189, 176, 177, 178, 179, 180, 102, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 198, + 1694, 198, 6, 198, 196, 203, 1700, 203, 1702, 203, + 1704, 203, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, - 186, 187, 1724, 6, 1726, 7, 192, 105, 3, 6, - 3, 197, 6, 188, 6, 6, 202, 3, 204, 6, - 3, 6, 3, 4, 6, 3, 6, 3, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 3, 3, 6, 1779, 1780, 4, 6, 201, - 6, 200, 7, 1787, 1788, 1789, 1790, 1791, 1792, 1793, + 1724, 1725, 1726, 186, 187, 1727, 203, 1729, 203, 192, + 203, 198, 198, 198, 197, 3, 198, 6, 3, 202, + 198, 204, 203, 203, 6, 3, 4, 6, 3, 107, + 105, 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, 6, 1782, 1783, + 6, 6, 6, 5, 203, 6, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, - 1804, 6, 6, 1805, 176, 177, 178, 179, 180, 204, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 205, - 204, 204, 204, 204, 196, 198, 102, 107, 203, 198, - 198, 6, 203, 203, 198, 1839, 203, 203, 203, 198, - 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, + 1804, 1805, 1806, 1807, 5, 205, 1808, 176, 177, 178, + 179, 180, 6, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 204, 204, 165, 205, 6, 196, 6, 6, + 6, 6, 203, 6, 6, 6, 6, 6, 1842, 6, + 6, 203, 198, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, - 1864, 198, 203, 3, 4, 198, 198, 203, 105, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 1897, 6, 1899, 3, 1901, 38, 1903, - 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, - 1914, 1915, 1916, 1917, 1918, 1919, 1920, 6, 6, 59, - 60, 61, 62, 63, 64, 186, 187, 3, 6, 6, - 5, 192, 6, 6, 6, 6, 197, 3, 6, 6, - 5, 202, 6, 165, 6, 198, 205, 204, 1952, 1953, - 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, - 1964, 1965, 1966, 204, 203, 205, 6, 203, 203, 203, - 203, 490, 6, 6, 198, 198, 6, 6, 6, 6, - 6, 6, 203, 1987, 1988, 1989, 1990, 1991, 1992, 1993, + 1864, 1865, 1866, 1867, 203, 198, 3, 4, 203, 198, + 6, 203, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 1900, 203, 1902, 6, + 1904, 38, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, + 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, + 6, 6, 59, 60, 61, 62, 63, 64, 186, 187, + 5, 5, 204, 203, 192, 6, 6, 204, 204, 197, + 203, 205, 203, 203, 202, 198, 198, 6, 204, 203, + 6, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, + 1964, 1965, 1966, 1967, 1968, 1969, 203, 6, 204, 204, + 204, 203, 6, 102, 490, 6, 6, 5, 5, 165, + 198, 204, 198, 6, 204, 204, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, - 2004, 176, 177, 178, 179, 180, 203, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 6, 6, 6, 6, - 6, 196, 6, 5, 2028, 5, 2030, 204, 2032, 203, - 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, - 2044, 2045, 2046, 2047, 2048, 204, 186, 187, 204, 203, - 205, 203, 192, 203, 198, 198, 203, 197, 203, 6, - 6, 203, 202, 204, 6, 204, 204, 204, 6, 6, - 102, 6, 6, 5, 2078, 2079, 2080, 2081, 2082, 2083, - 2084, 2085, 2086, 5, 204, 204, 204, 203, 205, 204, - 203, 205, 198, 198, 204, 165, 6, 6, 6, 2103, - 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, - 2114, 2115, 2116, 2117, 176, 177, 178, 179, 180, 6, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 102, - 6, 6, 6, 6, 196, 2139, 6, 2141, 6, 2143, - 6, 2145, 205, 2147, 204, 2149, 203, 2151, 2152, 2153, - 2154, 2155, 2156, 2157, 2158, 2159, 176, 177, 178, 179, - 180, 203, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 6, 6, 6, 6, 6, 196, 2181, 2182, 2183, - 2184, 2185, 2186, 203, 203, 205, 203, 170, 204, 204, - 204, 6, 171, 203, 198, 2199, 2200, 2201, 2202, 2203, - 2204, 2205, 2206, 2207, 6, 6, 6, 6, 6, 203, - 203, 6, 204, 204, 6, 6, 2220, 2221, 2222, 2223, - 2224, 2225, 2226, 204, 2228, 203, 2230, 198, 6, 204, - 204, 750, 751, 6, 753, 204, 755, 756, 204, 204, - 2244, 2245, 2246, 204, 6, 6, 6, 6, 6, 204, - 204, 204, 2256, 2257, 2258, 2259, 2260, 2261, 6, 6, - 6, 204, 6, 204, 204, 6, 6, 2271, 2272, 2273, - 2274, 204, 2276, 204, 2278, 204, 6, 6, 6, 798, - 799, 6, 0, 802, 0, 2289, 2290, 2291, 1103, 629, - 4, 2295, 2296, 2297, 1047, 4, 6, 2301, 2302, 2303, - 819, 820, -1, -1, -1, -1, 825, 826, -1, 2313, - 2314, 2315, -1, 832, -1, 834, -1, -1, 2322, -1, - 2324, -1, 2326, 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, 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, 6, -1, 908, - -1, 910, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 921, 922, 923, -1, -1, -1, -1, 928, - 929, 930, 931, 932, 933, 934, 3, 4, 5, -1, - -1, -1, 9, 10, 11, 12, 13, 14, 15, 16, + 2004, 2005, 2006, 2007, 176, 177, 178, 179, 180, 205, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 204, + 203, 203, 6, 204, 196, 6, 205, 2031, 6, 2033, + 102, 2035, 6, 2037, 2038, 2039, 2040, 2041, 2042, 2043, + 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 6, 186, + 187, 6, 6, 6, 6, 192, 6, 205, 204, 203, + 197, 203, 6, 6, 6, 202, 6, 6, 170, 203, + 203, 6, 204, 204, 204, 171, 203, 2081, 2082, 2083, + 2084, 2085, 2086, 2087, 2088, 2089, 198, 6, 6, 6, + 6, 6, 203, 203, 6, 204, 204, 6, 204, 203, + 6, 198, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, + 2114, 2115, 2116, 2117, 2118, 2119, 2120, 176, 177, 178, + 179, 180, 6, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 6, 6, 6, 204, 204, 196, 2142, 204, + 2144, 204, 2146, 204, 2148, 6, 2150, 204, 2152, 6, + 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 176, + 177, 178, 179, 180, 6, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 6, 204, 6, 6, 204, 196, + 2184, 2185, 2186, 2187, 2188, 2189, 203, 6, 205, 204, + 204, 204, 204, 6, 6, 204, 204, 204, 2202, 2203, + 2204, 2205, 2206, 2207, 2208, 2209, 2210, 6, 6, 6, + 0, 0, 629, 4, 1104, 1047, 4, -1, -1, 2223, + 2224, 2225, 2226, 2227, 2228, 2229, -1, 2231, -1, 2233, + -1, -1, -1, -1, 750, 751, -1, 753, -1, 755, + 756, -1, -1, 2247, 2248, 2249, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 2259, 2260, 2261, 2262, 2263, + 2264, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2274, 2275, 2276, 2277, -1, 2279, -1, 2281, -1, -1, + -1, -1, 798, 799, 6, -1, 802, -1, 2292, 2293, + 2294, -1, -1, -1, 2298, 2299, 2300, -1, -1, 6, + 2304, 2305, 2306, 819, 820, -1, -1, -1, -1, 825, + 826, -1, 2316, 2317, 2318, -1, 832, -1, 834, -1, + -1, 2325, -1, 2327, -1, 2329, 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, - 8, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 176, 177, 178, 179, - 180, 196, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 8, -1, -1, -1, -1, 196, -1, -1, -1, - -1, -1, 172, 173, 174, 175, 8, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 186, 187, -1, -1, - -1, -1, 192, 193, 194, -1, -1, 197, -1, 199, - -1, 201, 202, 1042, -1, 176, 177, 178, 179, 180, - -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 186, 187, -1, -1, -1, 196, 192, -1, -1, -1, - -1, 197, 203, -1, 205, -1, 202, 176, 177, 178, - 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, - 189, 190, -1, -1, -1, -1, -1, 196, -1, -1, - -1, -1, -1, -1, -1, -1, 1105, -1, -1, -1, - -1, -1, -1, -1, 1113, -1, -1, -1, -1, 186, - 187, -1, -1, -1, -1, 192, -1, -1, -1, -1, - 197, -1, -1, 1132, -1, 202, -1, -1, 176, 177, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, + 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, + 6, -1, 908, -1, 910, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 921, 922, 923, -1, -1, + -1, -1, 928, 929, 930, 931, 932, 933, 934, 3, + 4, 5, -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, 6, + 34, 35, 36, -1, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 176, + 177, 178, 179, 180, 196, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 8, -1, -1, -1, -1, 196, + -1, -1, -1, -1, -1, 172, 173, 174, 175, 8, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 186, + 187, -1, -1, -1, 8, 192, 193, 194, -1, -1, + 197, -1, 199, -1, 201, 202, 1042, -1, -1, 8, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 186, 187, -1, -1, -1, -1, 192, + 8, -1, -1, -1, 197, -1, -1, -1, -1, 202, + 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 176, 177, 178, 179, 180, + 196, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 1106, -1, -1, -1, -1, 196, -1, -1, 1114, -1, + -1, -1, 186, 187, 205, -1, -1, -1, 192, -1, + -1, -1, -1, 197, -1, -1, -1, 1133, 202, 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 176, 177, 178, 179, 180, 196, - 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, - -1, -1, -1, -1, 196, 38, 39, 40, 41, 42, - 43, 44, 45, -1, 47, -1, 49, 50, 51, -1, - 53, 54, -1, -1, -1, -1, -1, 38, 39, 40, - 41, 42, 43, 44, 45, -1, 47, 70, 49, 50, - 51, -1, 53, 54, 176, 177, 178, 179, 180, -1, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 70, - -1, -1, -1, -1, 196, -1, 99, 100, 101, -1, - 38, 39, 40, 41, 42, 43, 44, 45, -1, 47, - -1, 49, 50, 51, 117, 53, 54, -1, 99, 100, - 101, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 70, -1, -1, -1, 117, 176, 177, 178, - 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 1321, -1, 1323, -1, -1, 196, 1327, -1, - -1, 99, 100, 101, -1, -1, 205, -1, -1, -1, - -1, -1, -1, -1, 1343, -1, -1, -1, -1, 117, - 38, 39, 40, 41, 42, 43, 44, 45, -1, 47, - -1, 49, 50, 51, -1, 53, 54, -1, -1, -1, - -1, -1, 205, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 70, -1, -1, -1, 38, 39, 40, 41, - 42, 43, 44, 45, 205, 47, -1, 49, 50, 51, - -1, 53, 54, -1, -1, -1, -1, -1, -1, -1, - -1, 99, 100, 101, -1, -1, -1, -1, 70, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 117, - -1, -1, 176, 177, 178, 179, 180, 205, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 99, 100, 101, - -1, -1, 196, -1, -1, -1, -1, -1, -1, -1, - -1, 205, 1461, 1462, -1, 117, -1, -1, -1, -1, - 1469, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1480, 1481, 176, 177, 178, 179, 180, -1, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 0, 1, - -1, 3, 4, 196, -1, -1, -1, -1, -1, -1, - -1, -1, 205, -1, -1, -1, -1, 205, -1, -1, - -1, -1, -1, -1, -1, 1524, 1525, -1, -1, -1, - -1, 33, -1, -1, -1, 37, 38, 39, 40, 41, - 42, 43, 44, 45, -1, 47, 48, 49, 50, 51, - 52, 53, 54, 205, -1, -1, 58, 59, 60, 61, - 62, 63, 64, -1, 66, 67, 68, 69, 70, 38, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 176, 177, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 176, 177, 178, + 179, 180, 196, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 176, 177, 178, 179, 180, 196, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 176, 177, 178, + 179, 180, 196, 182, 183, 184, 185, 186, 187, 188, + 189, 190, -1, -1, -1, -1, -1, 196, 176, 177, + 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, 189, 190, -1, -1, -1, -1, -1, 196, 38, 39, 40, 41, 42, 43, 44, 45, -1, 47, -1, 49, 50, 51, -1, 53, 54, -1, -1, -1, -1, - 1589, -1, -1, -1, -1, 1594, 98, 99, 100, 101, - -1, 70, -1, -1, 106, -1, 108, -1, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 99, 100, 101, -1, -1, -1, 138, 139, 140, 141, - 142, 143, 144, 145, -1, -1, -1, -1, 117, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 163, 164, -1, 166, -1, -1, -1, -1, 41, - 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 1684, -1, -1, -1, -1, - 196, -1, -1, -1, 200, 1694, 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, 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, 120, 121, - 122, -1, -1, -1, -1, -1, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, -1, -1, 4, -1, - -1, -1, -1, -1, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 1783, 157, 158, 159, 160, 161, - 162, -1, -1, -1, -1, -1, -1, 33, -1, -1, + -1, 38, 39, 40, 41, 42, 43, 44, 45, -1, + 47, 70, 49, 50, 51, -1, 53, 54, -1, -1, + -1, -1, -1, 38, 39, 40, 41, 42, 43, 44, + 45, -1, 47, 70, 49, 50, 51, -1, 53, 54, + 99, 100, 101, -1, -1, -1, -1, -1, 1324, -1, + 1326, -1, -1, -1, 1330, 70, -1, -1, 117, -1, + -1, -1, 99, 100, 101, -1, -1, -1, -1, -1, + 1346, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 117, -1, -1, -1, 99, 100, 101, -1, 38, 39, + 40, 41, 42, 43, 44, 45, -1, 47, -1, 49, + 50, 51, 117, 53, 54, 176, 177, 178, 179, 180, + -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 70, -1, -1, -1, 41, 196, -1, -1, -1, -1, + -1, -1, 203, -1, 205, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 205, -1, -1, 99, + 100, 101, 176, 177, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 117, 205, -1, + -1, -1, 196, -1, -1, -1, -1, -1, -1, 203, + -1, 205, -1, -1, -1, -1, -1, -1, 1464, 1465, + 205, -1, -1, -1, -1, -1, 1472, -1, -1, -1, + -1, -1, -1, 120, 121, 122, -1, 1483, 1484, -1, + -1, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, -1, -1, -1, 0, 1, -1, 3, 4, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, + 157, 158, 159, 160, 161, 162, -1, -1, -1, -1, + -1, 1527, 1528, -1, -1, 205, -1, 33, -1, -1, -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, 47, 48, 49, 50, 51, 52, 53, 54, -1, - -1, -1, 58, 59, 60, 61, 62, 63, 64, 205, - 66, 67, 68, 69, 70, -1, -1, -1, 176, 177, - 178, 179, 180, 1842, 182, 183, 184, 185, 186, 187, - 188, 189, 190, -1, -1, 205, -1, -1, 196, -1, - -1, -1, 98, 99, 100, 101, -1, 205, -1, -1, + -1, -1, 58, 59, 60, 61, 62, 63, 64, -1, + 66, 67, 68, 69, 70, 38, 39, 40, 41, 42, + 43, 44, 45, -1, 47, -1, 49, 50, 51, -1, + 53, 54, -1, -1, -1, -1, 1592, -1, -1, -1, + -1, 1597, 98, 99, 100, 101, -1, 70, -1, -1, 106, -1, 108, -1, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, -1, -1, -1, -1, -1, - -1, 176, 177, 178, 179, 180, 1895, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 176, 177, 178, 179, 180, - 205, 182, 183, 184, 185, 186, 187, 188, 189, 190, - -1, -1, -1, -1, -1, 196, -1, -1, -1, -1, - -1, -1, -1, -1, 205, -1, -1, -1, -1, 1948, - 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, - 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, - 196, -1, -1, -1, -1, -1, -1, -1, -1, 205, - -1, -1, 176, 177, 178, 179, 180, 1986, 182, 183, + -1, -1, -1, -1, -1, -1, 99, 100, 101, -1, + -1, -1, 138, 139, 140, 141, 142, 143, 144, 145, + -1, -1, -1, -1, 117, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 163, 164, -1, + 166, -1, 176, 177, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, + -1, 1687, 196, -1, 198, -1, -1, -1, -1, 203, + -1, 1697, 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, 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, -1, -1, -1, -1, 4, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, -1, -1, -1, -1, 33, 205, -1, + 1786, 37, 38, 39, 40, 41, 42, 43, 44, 45, + -1, 47, 48, 49, 50, 51, 52, 53, 54, -1, + -1, -1, 58, 59, 60, 61, 62, 63, 64, -1, + 66, 67, 68, 69, 70, -1, -1, -1, -1, -1, + 176, 177, 178, 179, 180, 205, 182, 183, 184, 185, + 186, 187, 188, 189, 190, -1, -1, -1, -1, 1845, + 196, -1, 98, 99, 100, 101, -1, -1, -1, 205, + 106, 205, 108, -1, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, -1, -1, + -1, -1, 1898, 205, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 176, 177, + 178, 179, 180, 205, 182, 183, 184, 185, 186, 187, + 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, + -1, -1, -1, -1, -1, 1951, -1, 205, 176, 177, + 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, + -1, -1, -1, -1, -1, -1, -1, 205, 176, 177, + 178, 179, 180, 1989, 182, 183, 184, 185, 186, 187, + 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, + -1, -1, 176, 177, 178, 179, 180, 205, 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, 176, 177, 178, 179, 180, 205, 182, 183, 184, 185, 186, 187, 188, 189, @@ -3143,10 +3150,7 @@ static const short yycheck[] = { 23, 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, 176, 177, 178, 179, 180, 205, 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, - 196, -1, -1, -1, 176, 177, 178, 179, 180, 205, - 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, - -1, -1, -1, -1, 196, -1, 198, -1, -1, -1, - -1, 203, 176, 177, 178, 179, 180, -1, 182, 183, + 196, -1, 176, 177, 178, 179, 180, 203, 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, 176, 177, 178, 179, 180, 203, 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, @@ -3832,116 +3836,114 @@ static const short yycheck[] = { 23, 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, 176, 177, 178, 179, 180, 203, 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, - -1, -1, -1, -1, 196, -1, 176, 177, 178, 179, - 180, 203, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, -1, -1, - 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, 198, 176, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, - -1, 198, 176, 177, 178, 179, 180, -1, 182, 183, - 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, - -1, -1, 196, -1, 198, 176, 177, 178, 179, 180, - -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, - -1, -1, -1, -1, -1, 196, -1, 198, 176, 177, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, - 198, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, 198, 176, 177, 178, 179, 180, -1, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, - -1, -1, -1, -1, 196, -1, 198, 176, 177, 178, - 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, - 189, 190, -1, -1, -1, -1, -1, 196, -1, 198, - 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, - 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, - 196, -1, 198, 176, 177, 178, 179, 180, -1, 182, - 183, 184, 185, 186, 187, 188, 189, 190, -1, -1, - -1, -1, -1, 196, -1, 198, 176, 177, 178, 179, - 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, 198, 176, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, - -1, 198, 176, 177, 178, 179, 180, -1, 182, 183, - 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, - -1, -1, 196, -1, 198, 176, 177, 178, 179, 180, - -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, - -1, -1, -1, -1, -1, 196, -1, 198, 176, 177, - 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, - 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, - 198, 176, 177, 178, 179, 180, -1, 182, 183, 184, - 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, - -1, 196, -1, 198, 176, 177, 178, 179, 180, -1, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, - -1, -1, -1, -1, 196, -1, 198, 176, 177, 178, - 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, - 189, 190, -1, -1, -1, -1, -1, 196, -1, 198, - 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, - 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, - 196, -1, 198, 176, 177, 178, 179, 180, -1, 182, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, -1, -1, 200, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, -1, -1, 200, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, 198, 176, 177, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, + -1, -1, 196, -1, 198, 176, 177, 178, 179, 180, + -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, + -1, -1, -1, -1, -1, 196, -1, 198, 176, 177, + 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, + 198, 176, 177, 178, 179, 180, -1, 182, 183, 184, + 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, + -1, 196, -1, 198, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, 198, 176, 177, 178, + 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, + 189, 190, -1, -1, -1, -1, -1, 196, -1, 198, + 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, + 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, + 196, -1, 198, 176, 177, 178, 179, 180, -1, 182, + 183, 184, 185, 186, 187, 188, 189, 190, -1, -1, + -1, -1, -1, 196, -1, 198, 176, 177, 178, 179, + 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, + 190, -1, -1, -1, -1, -1, 196, -1, 198, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, 198, 176, 177, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, + -1, -1, 196, -1, 198, 176, 177, 178, 179, 180, + -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, + -1, -1, -1, -1, -1, 196, -1, 198, 176, 177, + 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, + 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, + 198, 176, 177, 178, 179, 180, -1, 182, 183, 184, + 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, + -1, 196, -1, 198, 176, 177, 178, 179, 180, -1, + 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, + -1, -1, -1, -1, 196, -1, 198, 176, 177, 178, + 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, + 189, 190, -1, -1, -1, -1, -1, 196, -1, 198, + 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, + 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, + 196, -1, 198, 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, 198, 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, @@ -4083,7 +4085,12 @@ static const short yycheck[] = { 23, 183, 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, -1, 198, 176, 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, 187, 188, 189, - 190, -1, -1, -1, -1, -1, 196, -1, 198 + 190, -1, -1, -1, -1, -1, 196, -1, 198, 176, + 177, 178, 179, 180, -1, 182, 183, 184, 185, 186, + 187, 188, 189, 190, -1, -1, -1, -1, -1, 196, + -1, 198, 176, 177, 178, 179, 180, -1, 182, 183, + 184, 185, 186, 187, 188, 189, 190, -1, -1, -1, + -1, -1, 196 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" @@ -6334,7 +6341,35 @@ case 239: ; break;} case 240: -#line 1818 "Gmsh.y" +#line 1817 "Gmsh.y" +{ + int num = (int)yyvsp[-6].d; + if(FindCurve(num, THEM)){ + yymsg(GERROR, "Curve %d already exists", num); + } + else{ + List_T *temp = ListOfDouble2ListOfInt(yyvsp[-3].l); + Curve *c = Create_Curve(num, MSH_SEGM_ELLI, 2, temp, NULL, + -1, -1, 0., 1.); + c->Circle.n[0] = yyvsp[-1].v[0]; + c->Circle.n[1] = yyvsp[-1].v[1]; + c->Circle.n[2] = yyvsp[-1].v[2]; + End_Curve(c); + Tree_Add(THEM->Curves, &c); + Curve *rc = CreateReversedCurve(THEM, c); + rc->Circle.n[0] = yyvsp[-1].v[0]; + rc->Circle.n[1] = yyvsp[-1].v[1]; + rc->Circle.n[2] = yyvsp[-1].v[2]; + End_Curve(c); + List_Delete(temp); + } + List_Delete(yyvsp[-3].l); + yyval.s.Type = MSH_SEGM_ELLI; + yyval.s.Num = num; + ; + break;} +case 241: +#line 1844 "Gmsh.y" { int num = (int)yyvsp[-14].d; if(FindCurve(num, THEM)){ @@ -6353,8 +6388,8 @@ case 240: yyval.s.Num = num; ; break;} -case 241: -#line 1836 "Gmsh.y" +case 242: +#line 1862 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(List_Nbr(yyvsp[-1].l) < 4){ @@ -6379,8 +6414,8 @@ case 241: yyval.s.Num = num; ; break;} -case 242: -#line 1860 "Gmsh.y" +case 243: +#line 1886 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(List_Nbr(yyvsp[-1].l) < 4){ @@ -6405,8 +6440,8 @@ case 242: yyval.s.Num = num; ; break;} -case 243: -#line 1884 "Gmsh.y" +case 244: +#line 1910 "Gmsh.y" { int num = (int)yyvsp[-8].d; if(List_Nbr(yyvsp[-5].l) + (int)yyvsp[-1].d + 1 != List_Nbr(yyvsp[-3].l)){ @@ -6433,8 +6468,8 @@ case 243: yyval.s.Num = num; ; break;} -case 244: -#line 1910 "Gmsh.y" +case 245: +#line 1936 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindEdgeLoop(num, THEM)){ @@ -6452,8 +6487,8 @@ case 244: yyval.s.Num = num; ; break;} -case 245: -#line 1927 "Gmsh.y" +case 246: +#line 1953 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-9].l); i++){ double p; @@ -6472,8 +6507,8 @@ case 245: yyval.s.Num = 0; ; break;} -case 246: -#line 1945 "Gmsh.y" +case 247: +#line 1971 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindPhysicalGroup(num, MSH_PHYSICAL_LINE, THEM)){ @@ -6490,8 +6525,8 @@ case 246: yyval.s.Num = num; ; break;} -case 247: -#line 1964 "Gmsh.y" +case 248: +#line 1990 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindSurface(num, THEM)){ @@ -6511,8 +6546,8 @@ case 247: yyval.s.Num = num; ; break;} -case 248: -#line 1983 "Gmsh.y" +case 249: +#line 2009 "Gmsh.y" { int num = (int)yyvsp[-4].d, type = 0; if(FindSurface(num, THEM)){ @@ -6552,8 +6587,8 @@ case 248: yyval.s.Num = num; ; break;} -case 249: -#line 2022 "Gmsh.y" +case 250: +#line 2048 "Gmsh.y" { int num = (int)yyvsp[-8].d; Surface *support = FindSurface((int)yyvsp[-4].d, THEM); @@ -6579,8 +6614,8 @@ case 249: yyval.s.Num = num; ; break;} -case 250: -#line 2048 "Gmsh.y" +case 251: +#line 2074 "Gmsh.y" { int num = (int)yyvsp[-10].d, type = 0; Surface *s = FindSurface(num, THEM); @@ -6600,8 +6635,8 @@ case 250: yyval.s.Num = (int)yyvsp[-10].d; ; break;} -case 251: -#line 2070 "Gmsh.y" +case 252: +#line 2096 "Gmsh.y" { int num = (int)yyvsp[-10].d, type = 0; Surface *s = FindSurface(num, THEM); @@ -6617,8 +6652,8 @@ case 251: yyval.s.Num = (int)yyvsp[-10].d; ; break;} -case 252: -#line 2087 "Gmsh.y" +case 253: +#line 2113 "Gmsh.y" { int num = (int)yyvsp[-16].d; if(FindSurface(num, THEM)){ @@ -6636,8 +6671,8 @@ case 252: yyval.s.Num = num; ; break;} -case 253: -#line 2106 "Gmsh.y" +case 254: +#line 2132 "Gmsh.y" { int num = (int)yyvsp[-16].d; if(FindSurface(num, THEM)){ @@ -6655,8 +6690,8 @@ case 253: yyval.s.Num = num; ; break;} -case 254: -#line 2123 "Gmsh.y" +case 255: +#line 2149 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindSurfaceLoop(num, THEM)){ @@ -6673,8 +6708,8 @@ case 254: yyval.s.Num = num; ; break;} -case 255: -#line 2139 "Gmsh.y" +case 256: +#line 2165 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindPhysicalGroup(num, MSH_PHYSICAL_SURFACE, THEM)){ @@ -6691,8 +6726,8 @@ case 255: yyval.s.Num = num; ; break;} -case 256: -#line 2158 "Gmsh.y" +case 257: +#line 2184 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindVolume(num, THEM)){ @@ -6710,8 +6745,8 @@ case 256: yyval.s.Num = num; ; break;} -case 257: -#line 2175 "Gmsh.y" +case 258: +#line 2201 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindVolume(num, THEM)){ @@ -6729,8 +6764,8 @@ case 257: yyval.s.Num = num; ; break;} -case 258: -#line 2192 "Gmsh.y" +case 259: +#line 2218 "Gmsh.y" { int num = (int)yyvsp[-4].d; if(FindPhysicalGroup(num, MSH_PHYSICAL_VOLUME, THEM)){ @@ -6747,60 +6782,60 @@ case 258: yyval.s.Num = num; ; break;} -case 259: -#line 2213 "Gmsh.y" +case 260: +#line 2239 "Gmsh.y" { TranslateShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-1].l, 1); yyval.l = yyvsp[-1].l; ; break;} -case 260: -#line 2218 "Gmsh.y" +case 261: +#line 2244 "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, 1); yyval.l = yyvsp[-1].l; ; break;} -case 261: -#line 2223 "Gmsh.y" +case 262: +#line 2249 "Gmsh.y" { SymmetryShapes(yyvsp[-3].v[0], yyvsp[-3].v[1], yyvsp[-3].v[2], yyvsp[-3].v[3], yyvsp[-1].l, 1); yyval.l = yyvsp[-1].l; ; break;} -case 262: -#line 2228 "Gmsh.y" +case 263: +#line 2254 "Gmsh.y" { DilatShapes(yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], yyvsp[-4].d, yyvsp[-1].l, 1); yyval.l = yyvsp[-1].l; ; break;} -case 263: -#line 2235 "Gmsh.y" -{ yyval.l = yyvsp[0].l; ; - break;} case 264: -#line 2236 "Gmsh.y" +#line 2261 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 265: -#line 2237 "Gmsh.y" +#line 2262 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} case 266: -#line 2242 "Gmsh.y" +#line 2263 "Gmsh.y" +{ yyval.l = yyvsp[0].l; ; + break;} +case 267: +#line 2268 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); ; break;} -case 267: -#line 2246 "Gmsh.y" +case 268: +#line 2272 "Gmsh.y" { List_Add(yyval.l, &yyvsp[0].s); ; break;} -case 268: -#line 2250 "Gmsh.y" +case 269: +#line 2276 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -6817,8 +6852,8 @@ case 268: } ; break;} -case 269: -#line 2266 "Gmsh.y" +case 270: +#line 2292 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -6835,8 +6870,8 @@ case 269: } ; break;} -case 270: -#line 2282 "Gmsh.y" +case 271: +#line 2308 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -6853,8 +6888,8 @@ case 270: } ; break;} -case 271: -#line 2298 "Gmsh.y" +case 272: +#line 2324 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){ double d; @@ -6871,8 +6906,8 @@ case 271: } ; break;} -case 272: -#line 2319 "Gmsh.y" +case 273: +#line 2345 "Gmsh.y" { yyval.l = List_Create(3, 3, sizeof(Shape)); for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ @@ -6886,15 +6921,15 @@ case 272: List_Delete(yyvsp[-1].l); ; break;} -case 273: -#line 2332 "Gmsh.y" +case 274: +#line 2358 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) DuplicateView((int)yyvsp[-2].d, 0); yyval.l = NULL; ; break;} -case 274: -#line 2343 "Gmsh.y" +case 275: +#line 2369 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -6904,21 +6939,21 @@ case 274: List_Delete(yyvsp[-1].l); ; break;} -case 275: -#line 2352 "Gmsh.y" +case 276: +#line 2378 "Gmsh.y" { if(!strcmp(yyvsp[-4].c, "View")) RemoveViewByIndex((int)yyvsp[-2].d); ; break;} -case 276: -#line 2356 "Gmsh.y" +case 277: +#line 2382 "Gmsh.y" { if(!strcmp(yyvsp[-1].c, "Meshes") || !strcmp(yyvsp[-1].c, "All")) Init_Mesh(THEM); ; break;} -case 277: -#line 2366 "Gmsh.y" +case 278: +#line 2392 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -6928,8 +6963,8 @@ case 277: List_Delete(yyvsp[-1].l); ; break;} -case 278: -#line 2380 "Gmsh.y" +case 279: +#line 2406 "Gmsh.y" { int m = (CTX.visibility_mode == 2) ? VIS_MESH : ((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH); @@ -6937,15 +6972,15 @@ case 278: SetVisibilityByNumber(yyvsp[-1].c, i, m); ; break;} -case 279: -#line 2387 "Gmsh.y" +case 280: +#line 2413 "Gmsh.y" { for(int i = 2; i < 6; i++) SetVisibilityByNumber(yyvsp[-1].c, i, 0); ; break;} -case 280: -#line 2392 "Gmsh.y" +case 281: +#line 2418 "Gmsh.y" { int m = (CTX.visibility_mode == 2) ? VIS_MESH : ((CTX.visibility_mode == 1) ? VIS_GEOM : VIS_GEOM|VIS_MESH); @@ -6957,8 +6992,8 @@ case 280: List_Delete(yyvsp[-1].l); ; break;} -case 281: -#line 2403 "Gmsh.y" +case 282: +#line 2429 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ Shape TheShape; @@ -6968,8 +7003,8 @@ case 281: List_Delete(yyvsp[-1].l); ; break;} -case 282: -#line 2417 "Gmsh.y" +case 283: +#line 2443 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Include")){ char tmpstring[1024]; @@ -7010,8 +7045,8 @@ case 282: } ; break;} -case 283: -#line 2457 "Gmsh.y" +case 284: +#line 2483 "Gmsh.y" { if(!strcmp(yyvsp[-6].c, "Save") && !strcmp(yyvsp[-5].c, "View")){ Post_View *v = (Post_View *)List_Pointer_Test(CTX.post.list, (int)yyvsp[-3].d); @@ -7026,8 +7061,8 @@ case 283: } ; break;} -case 284: -#line 2471 "Gmsh.y" +case 285: +#line 2497 "Gmsh.y" { if(!strcmp(yyvsp[-2].c, "Sleep")){ long sleep_time = GetTime(); @@ -7043,8 +7078,8 @@ case 284: } ; break;} -case 285: -#line 2486 "Gmsh.y" +case 286: +#line 2512 "Gmsh.y" { try { GMSH_PluginManager::instance()->action(yyvsp[-4].c, yyvsp[-1].c, 0); @@ -7054,8 +7089,8 @@ case 285: } ; break;} -case 286: -#line 2495 "Gmsh.y" +case 287: +#line 2521 "Gmsh.y" { if(!strcmp(yyvsp[-1].c, "Views")) CombineViews(1, 0); @@ -7065,14 +7100,14 @@ case 286: yymsg(GERROR, "Unknown Combine command"); ; break;} -case 287: -#line 2504 "Gmsh.y" +case 288: +#line 2530 "Gmsh.y" { exit(0); ; break;} -case 288: -#line 2508 "Gmsh.y" +case 289: +#line 2534 "Gmsh.y" { #if defined(HAVE_FLTK) if(!CTX.batch) // we're in interactive mode @@ -7080,8 +7115,8 @@ case 288: #endif ; break;} -case 289: -#line 2521 "Gmsh.y" +case 290: +#line 2547 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -7096,8 +7131,8 @@ case 289: } ; break;} -case 290: -#line 2535 "Gmsh.y" +case 291: +#line 2561 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -7112,8 +7147,8 @@ case 290: } ; break;} -case 291: -#line 2549 "Gmsh.y" +case 292: +#line 2575 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d; @@ -7139,8 +7174,8 @@ case 291: } ; break;} -case 292: -#line 2574 "Gmsh.y" +case 293: +#line 2600 "Gmsh.y" { LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d; LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d; @@ -7166,8 +7201,8 @@ case 292: } ; break;} -case 293: -#line 2599 "Gmsh.y" +case 294: +#line 2625 "Gmsh.y" { if(LoopControlVariablesTab[ImbricatedLoop-1][1] > LoopControlVariablesTab[ImbricatedLoop-1][0]){ @@ -7195,41 +7230,41 @@ case 293: } ; break;} -case 294: -#line 2626 "Gmsh.y" +case 295: +#line 2652 "Gmsh.y" { if(!FunctionManager::Instance()->createFunction(yyvsp[0].c, yyin, yyname, yylineno)) yymsg(GERROR, "Redefinition of function %s", yyvsp[0].c); skip_until(NULL, "Return"); ; break;} -case 295: -#line 2632 "Gmsh.y" +case 296: +#line 2658 "Gmsh.y" { if(!FunctionManager::Instance()->leaveFunction(&yyin, yyname, yylineno)) yymsg(GERROR, "Error while exiting function"); ; break;} -case 296: -#line 2637 "Gmsh.y" +case 297: +#line 2663 "Gmsh.y" { if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c, &yyin, yyname, yylineno)) yymsg(GERROR, "Unknown function %s", yyvsp[-1].c); ; break;} -case 297: -#line 2642 "Gmsh.y" +case 298: +#line 2668 "Gmsh.y" { if(!yyvsp[-1].d) skip_until("If", "EndIf"); ; break;} -case 298: -#line 2646 "Gmsh.y" +case 299: +#line 2672 "Gmsh.y" { ; break;} -case 299: -#line 2657 "Gmsh.y" +case 300: +#line 2683 "Gmsh.y" { Curve *pc, *prc; Shape TheShape; @@ -7241,8 +7276,8 @@ case 299: List_Add(yyval.l, &TheShape); ; break;} -case 300: -#line 2668 "Gmsh.y" +case 301: +#line 2694 "Gmsh.y" { Curve *pc, *prc; Shape TheShape; @@ -7254,8 +7289,8 @@ case 300: List_Add(yyval.l, &TheShape); ; break;} -case 301: -#line 2679 "Gmsh.y" +case 302: +#line 2705 "Gmsh.y" { Curve *pc, *prc; Shape TheShape; @@ -7267,15 +7302,15 @@ case 301: List_Add(yyval.l, &TheShape); ; break;} -case 302: -#line 2690 "Gmsh.y" +case 303: +#line 2716 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 303: -#line 2695 "Gmsh.y" +case 304: +#line 2721 "Gmsh.y" { Curve *pc, *prc; Shape TheShape; @@ -7287,15 +7322,15 @@ case 303: List_Add(yyval.l, &TheShape); ; break;} -case 304: -#line 2706 "Gmsh.y" +case 305: +#line 2732 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 305: -#line 2711 "Gmsh.y" +case 306: +#line 2737 "Gmsh.y" { Curve *pc, *prc; Shape TheShape; @@ -7307,15 +7342,15 @@ case 305: List_Add(yyval.l, &TheShape); ; break;} -case 306: -#line 2722 "Gmsh.y" +case 307: +#line 2748 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 307: -#line 2727 "Gmsh.y" +case 308: +#line 2753 "Gmsh.y" { Curve *pc, *prc; Shape TheShape; @@ -7327,8 +7362,8 @@ case 307: List_Add(yyval.l, &TheShape); ; break;} -case 308: -#line 2740 "Gmsh.y" +case 309: +#line 2766 "Gmsh.y" { Surface *ps; Shape TheShape; @@ -7347,8 +7382,8 @@ case 308: List_Add(yyval.l, &TheShape); ; break;} -case 309: -#line 2758 "Gmsh.y" +case 310: +#line 2784 "Gmsh.y" { Surface *ps; Shape TheShape; @@ -7367,8 +7402,8 @@ case 309: List_Add(yyval.l, &TheShape); ; break;} -case 310: -#line 2776 "Gmsh.y" +case 311: +#line 2802 "Gmsh.y" { Surface *ps; Shape TheShape; @@ -7387,15 +7422,15 @@ case 310: List_Add(yyval.l, &TheShape); ; break;} -case 311: -#line 2794 "Gmsh.y" +case 312: +#line 2820 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 312: -#line 2799 "Gmsh.y" +case 313: +#line 2825 "Gmsh.y" { Surface *ps; Shape TheShape; @@ -7414,15 +7449,15 @@ case 312: List_Add(yyval.l, &TheShape); ; break;} -case 313: -#line 2817 "Gmsh.y" +case 314: +#line 2843 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 314: -#line 2822 "Gmsh.y" +case 315: +#line 2848 "Gmsh.y" { Surface *ps; Shape TheShape; @@ -7441,15 +7476,15 @@ case 314: List_Add(yyval.l, &TheShape); ; break;} -case 315: -#line 2840 "Gmsh.y" +case 316: +#line 2866 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 316: -#line 2845 "Gmsh.y" +case 317: +#line 2871 "Gmsh.y" { Surface *ps; Shape TheShape; @@ -7468,8 +7503,8 @@ case 316: List_Add(yyval.l, &TheShape); ; break;} -case 317: -#line 2866 "Gmsh.y" +case 318: +#line 2892 "Gmsh.y" { Shape TheShape; TheShape.Num = Extrude_ProtudeSurface(TRANSLATE, (int)yyvsp[-4].d, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2], @@ -7487,8 +7522,8 @@ case 317: List_Add(yyval.l, &TheShape); ; break;} -case 318: -#line 2883 "Gmsh.y" +case 319: +#line 2909 "Gmsh.y" { Shape TheShape; TheShape.Num = Extrude_ProtudeSurface(ROTATE, (int)yyvsp[-8].d, 0., 0., 0., @@ -7506,8 +7541,8 @@ case 318: List_Add(yyval.l, &TheShape); ; break;} -case 319: -#line 2900 "Gmsh.y" +case 320: +#line 2926 "Gmsh.y" { Shape TheShape; TheShape.Num = Extrude_ProtudeSurface(TRANSLATE_ROTATE, (int)yyvsp[-10].d, yyvsp[-8].v[0], yyvsp[-8].v[1], yyvsp[-8].v[2], @@ -7525,15 +7560,15 @@ case 319: List_Add(yyval.l, &TheShape); ; break;} -case 320: -#line 2917 "Gmsh.y" +case 321: +#line 2943 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 321: -#line 2922 "Gmsh.y" +case 322: +#line 2948 "Gmsh.y" { Shape TheShape; TheShape.Num = Extrude_ProtudeSurface(TRANSLATE, (int)yyvsp[-8].d, yyvsp[-6].v[0], yyvsp[-6].v[1], yyvsp[-6].v[2], @@ -7551,15 +7586,15 @@ case 321: List_Add(yyval.l, &TheShape); ; break;} -case 322: -#line 2939 "Gmsh.y" +case 323: +#line 2965 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 323: -#line 2945 "Gmsh.y" +case 324: +#line 2971 "Gmsh.y" { Shape TheShape; TheShape.Num = Extrude_ProtudeSurface(ROTATE, (int)yyvsp[-12].d, 0., 0., 0., @@ -7577,15 +7612,15 @@ case 323: List_Add(yyval.l, &TheShape); ; break;} -case 324: -#line 2962 "Gmsh.y" +case 325: +#line 2988 "Gmsh.y" { extr.mesh.ExtrudeMesh = false; extr.mesh.Recombine = false; ; break;} -case 325: -#line 2968 "Gmsh.y" +case 326: +#line 2994 "Gmsh.y" { Shape TheShape; TheShape.Num = Extrude_ProtudeSurface(TRANSLATE_ROTATE, (int)yyvsp[-14].d, yyvsp[-12].v[0], yyvsp[-12].v[1], yyvsp[-12].v[2], @@ -7603,18 +7638,18 @@ case 325: List_Add(yyval.l, &TheShape); ; break;} -case 326: -#line 2988 "Gmsh.y" +case 327: +#line 3014 "Gmsh.y" { ; break;} -case 327: -#line 2991 "Gmsh.y" +case 328: +#line 3017 "Gmsh.y" { ; break;} -case 328: -#line 2997 "Gmsh.y" +case 329: +#line 3023 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -7641,8 +7676,8 @@ case 328: List_Delete(yyvsp[-2].l); ; break;} -case 329: -#line 3023 "Gmsh.y" +case 330: +#line 3049 "Gmsh.y" { double d; extr.mesh.ExtrudeMesh = true; @@ -7667,14 +7702,14 @@ case 329: List_Delete(yyvsp[-2].l); ; break;} -case 330: -#line 3047 "Gmsh.y" +case 331: +#line 3073 "Gmsh.y" { extr.mesh.Recombine = true; ; break;} -case 331: -#line 3056 "Gmsh.y" +case 332: +#line 3082 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -7693,8 +7728,8 @@ case 331: List_Delete(yyvsp[-3].l); ; break;} -case 332: -#line 3074 "Gmsh.y" +case 333: +#line 3100 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -7713,8 +7748,8 @@ case 332: List_Delete(yyvsp[-6].l); ; break;} -case 333: -#line 3092 "Gmsh.y" +case 334: +#line 3118 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-6].l); i++){ double d; @@ -7733,8 +7768,8 @@ case 333: List_Delete(yyvsp[-6].l); ; break;} -case 334: -#line 3110 "Gmsh.y" +case 335: +#line 3136 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d, THEM); if(!s) @@ -7762,8 +7797,8 @@ case 334: List_Delete(yyvsp[-1].l); ; break;} -case 335: -#line 3137 "Gmsh.y" +case 336: +#line 3163 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d, THEM); if(!s) @@ -7790,8 +7825,8 @@ case 335: List_Delete(yyvsp[-1].l); ; break;} -case 336: -#line 3163 "Gmsh.y" +case 337: +#line 3189 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d, THEM); if(!v) @@ -7818,8 +7853,8 @@ case 336: List_Delete(yyvsp[-1].l); ; break;} -case 337: -#line 3189 "Gmsh.y" +case 338: +#line 3215 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-3].l); i++){ double d; @@ -7834,8 +7869,8 @@ case 337: List_Delete(yyvsp[-3].l); ; break;} -case 338: -#line 3203 "Gmsh.y" +case 339: +#line 3229 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[-1].l); i++){ double d; @@ -7849,72 +7884,72 @@ case 338: List_Delete(yyvsp[-1].l); ; break;} -case 339: -#line 3222 "Gmsh.y" +case 340: +#line 3248 "Gmsh.y" { ReplaceAllDuplicates(THEM); ; break;} -case 340: -#line 3226 "Gmsh.y" +case 341: +#line 3252 "Gmsh.y" { IntersectAllSegmentsTogether(); ; break;} -case 341: -#line 3235 "Gmsh.y" -{yyval.i = 1;; - break;} case 342: -#line 3236 "Gmsh.y" -{yyval.i = 0;; +#line 3261 "Gmsh.y" +{yyval.i = 1;; break;} case 343: -#line 3237 "Gmsh.y" -{yyval.i = -1;; +#line 3262 "Gmsh.y" +{yyval.i = 0;; break;} case 344: -#line 3238 "Gmsh.y" +#line 3263 "Gmsh.y" {yyval.i = -1;; break;} case 345: -#line 3239 "Gmsh.y" +#line 3264 "Gmsh.y" {yyval.i = -1;; break;} case 346: -#line 3243 "Gmsh.y" -{ yyval.d = yyvsp[0].d; ; +#line 3265 "Gmsh.y" +{yyval.i = -1;; break;} case 347: -#line 3244 "Gmsh.y" -{ yyval.d = yyvsp[-1].d; ; +#line 3269 "Gmsh.y" +{ yyval.d = yyvsp[0].d; ; break;} case 348: -#line 3245 "Gmsh.y" -{ yyval.d = -yyvsp[0].d; ; +#line 3270 "Gmsh.y" +{ yyval.d = yyvsp[-1].d; ; break;} case 349: -#line 3246 "Gmsh.y" -{ yyval.d = yyvsp[0].d; ; +#line 3271 "Gmsh.y" +{ yyval.d = -yyvsp[0].d; ; break;} case 350: -#line 3247 "Gmsh.y" -{ yyval.d = !yyvsp[0].d; ; +#line 3272 "Gmsh.y" +{ yyval.d = yyvsp[0].d; ; break;} case 351: -#line 3248 "Gmsh.y" -{ yyval.d = yyvsp[-2].d - yyvsp[0].d; ; +#line 3273 "Gmsh.y" +{ yyval.d = !yyvsp[0].d; ; break;} case 352: -#line 3249 "Gmsh.y" -{ yyval.d = yyvsp[-2].d + yyvsp[0].d; ; +#line 3274 "Gmsh.y" +{ yyval.d = yyvsp[-2].d - yyvsp[0].d; ; break;} case 353: -#line 3250 "Gmsh.y" -{ yyval.d = yyvsp[-2].d * yyvsp[0].d; ; +#line 3275 "Gmsh.y" +{ yyval.d = yyvsp[-2].d + yyvsp[0].d; ; break;} case 354: -#line 3252 "Gmsh.y" +#line 3276 "Gmsh.y" +{ yyval.d = yyvsp[-2].d * yyvsp[0].d; ; + break;} +case 355: +#line 3278 "Gmsh.y" { if(!yyvsp[0].d) yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d); @@ -7922,236 +7957,236 @@ case 354: yyval.d = yyvsp[-2].d / yyvsp[0].d; ; break;} -case 355: -#line 3258 "Gmsh.y" -{ yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d; ; - break;} case 356: -#line 3259 "Gmsh.y" -{ yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ; +#line 3284 "Gmsh.y" +{ yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d; ; break;} case 357: -#line 3260 "Gmsh.y" -{ yyval.d = yyvsp[-2].d < yyvsp[0].d; ; +#line 3285 "Gmsh.y" +{ yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ; break;} case 358: -#line 3261 "Gmsh.y" -{ yyval.d = yyvsp[-2].d > yyvsp[0].d; ; +#line 3286 "Gmsh.y" +{ yyval.d = yyvsp[-2].d < yyvsp[0].d; ; break;} case 359: -#line 3262 "Gmsh.y" -{ yyval.d = yyvsp[-2].d <= yyvsp[0].d; ; +#line 3287 "Gmsh.y" +{ yyval.d = yyvsp[-2].d > yyvsp[0].d; ; break;} case 360: -#line 3263 "Gmsh.y" -{ yyval.d = yyvsp[-2].d >= yyvsp[0].d; ; +#line 3288 "Gmsh.y" +{ yyval.d = yyvsp[-2].d <= yyvsp[0].d; ; break;} case 361: -#line 3264 "Gmsh.y" -{ yyval.d = yyvsp[-2].d == yyvsp[0].d; ; +#line 3289 "Gmsh.y" +{ yyval.d = yyvsp[-2].d >= yyvsp[0].d; ; break;} case 362: -#line 3265 "Gmsh.y" -{ yyval.d = yyvsp[-2].d != yyvsp[0].d; ; +#line 3290 "Gmsh.y" +{ yyval.d = yyvsp[-2].d == yyvsp[0].d; ; break;} case 363: -#line 3266 "Gmsh.y" -{ yyval.d = yyvsp[-2].d && yyvsp[0].d; ; +#line 3291 "Gmsh.y" +{ yyval.d = yyvsp[-2].d != yyvsp[0].d; ; break;} case 364: -#line 3267 "Gmsh.y" -{ yyval.d = yyvsp[-2].d || yyvsp[0].d; ; +#line 3292 "Gmsh.y" +{ yyval.d = yyvsp[-2].d && yyvsp[0].d; ; break;} case 365: -#line 3268 "Gmsh.y" -{ yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d; ; +#line 3293 "Gmsh.y" +{ yyval.d = yyvsp[-2].d || yyvsp[0].d; ; break;} case 366: -#line 3269 "Gmsh.y" -{ yyval.d = exp(yyvsp[-1].d); ; +#line 3294 "Gmsh.y" +{ yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d; ; break;} case 367: -#line 3270 "Gmsh.y" -{ yyval.d = log(yyvsp[-1].d); ; +#line 3295 "Gmsh.y" +{ yyval.d = exp(yyvsp[-1].d); ; break;} case 368: -#line 3271 "Gmsh.y" -{ yyval.d = log10(yyvsp[-1].d); ; +#line 3296 "Gmsh.y" +{ yyval.d = log(yyvsp[-1].d); ; break;} case 369: -#line 3272 "Gmsh.y" -{ yyval.d = sqrt(yyvsp[-1].d); ; +#line 3297 "Gmsh.y" +{ yyval.d = log10(yyvsp[-1].d); ; break;} case 370: -#line 3273 "Gmsh.y" -{ yyval.d = sin(yyvsp[-1].d); ; +#line 3298 "Gmsh.y" +{ yyval.d = sqrt(yyvsp[-1].d); ; break;} case 371: -#line 3274 "Gmsh.y" -{ yyval.d = asin(yyvsp[-1].d); ; +#line 3299 "Gmsh.y" +{ yyval.d = sin(yyvsp[-1].d); ; break;} case 372: -#line 3275 "Gmsh.y" -{ yyval.d = cos(yyvsp[-1].d); ; +#line 3300 "Gmsh.y" +{ yyval.d = asin(yyvsp[-1].d); ; break;} case 373: -#line 3276 "Gmsh.y" -{ yyval.d = acos(yyvsp[-1].d); ; +#line 3301 "Gmsh.y" +{ yyval.d = cos(yyvsp[-1].d); ; break;} case 374: -#line 3277 "Gmsh.y" -{ yyval.d = tan(yyvsp[-1].d); ; +#line 3302 "Gmsh.y" +{ yyval.d = acos(yyvsp[-1].d); ; break;} case 375: -#line 3278 "Gmsh.y" -{ yyval.d = atan(yyvsp[-1].d); ; +#line 3303 "Gmsh.y" +{ yyval.d = tan(yyvsp[-1].d); ; break;} case 376: -#line 3279 "Gmsh.y" -{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; +#line 3304 "Gmsh.y" +{ yyval.d = atan(yyvsp[-1].d); ; break;} case 377: -#line 3280 "Gmsh.y" -{ yyval.d = sinh(yyvsp[-1].d); ; +#line 3305 "Gmsh.y" +{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} case 378: -#line 3281 "Gmsh.y" -{ yyval.d = cosh(yyvsp[-1].d); ; +#line 3306 "Gmsh.y" +{ yyval.d = sinh(yyvsp[-1].d); ; break;} case 379: -#line 3282 "Gmsh.y" -{ yyval.d = tanh(yyvsp[-1].d); ; +#line 3307 "Gmsh.y" +{ yyval.d = cosh(yyvsp[-1].d); ; break;} case 380: -#line 3283 "Gmsh.y" -{ yyval.d = fabs(yyvsp[-1].d); ; +#line 3308 "Gmsh.y" +{ yyval.d = tanh(yyvsp[-1].d); ; break;} case 381: -#line 3284 "Gmsh.y" -{ yyval.d = floor(yyvsp[-1].d); ; +#line 3309 "Gmsh.y" +{ yyval.d = fabs(yyvsp[-1].d); ; break;} case 382: -#line 3285 "Gmsh.y" -{ yyval.d = ceil(yyvsp[-1].d); ; +#line 3310 "Gmsh.y" +{ yyval.d = floor(yyvsp[-1].d); ; break;} case 383: -#line 3286 "Gmsh.y" -{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; +#line 3311 "Gmsh.y" +{ yyval.d = ceil(yyvsp[-1].d); ; break;} case 384: -#line 3287 "Gmsh.y" +#line 3312 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 385: -#line 3288 "Gmsh.y" -{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; +#line 3313 "Gmsh.y" +{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 386: -#line 3289 "Gmsh.y" -{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; +#line 3314 "Gmsh.y" +{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 387: -#line 3291 "Gmsh.y" -{ yyval.d = exp(yyvsp[-1].d); ; +#line 3315 "Gmsh.y" +{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} case 388: -#line 3292 "Gmsh.y" -{ yyval.d = log(yyvsp[-1].d); ; +#line 3317 "Gmsh.y" +{ yyval.d = exp(yyvsp[-1].d); ; break;} case 389: -#line 3293 "Gmsh.y" -{ yyval.d = log10(yyvsp[-1].d); ; +#line 3318 "Gmsh.y" +{ yyval.d = log(yyvsp[-1].d); ; break;} case 390: -#line 3294 "Gmsh.y" -{ yyval.d = sqrt(yyvsp[-1].d); ; +#line 3319 "Gmsh.y" +{ yyval.d = log10(yyvsp[-1].d); ; break;} case 391: -#line 3295 "Gmsh.y" -{ yyval.d = sin(yyvsp[-1].d); ; +#line 3320 "Gmsh.y" +{ yyval.d = sqrt(yyvsp[-1].d); ; break;} case 392: -#line 3296 "Gmsh.y" -{ yyval.d = asin(yyvsp[-1].d); ; +#line 3321 "Gmsh.y" +{ yyval.d = sin(yyvsp[-1].d); ; break;} case 393: -#line 3297 "Gmsh.y" -{ yyval.d = cos(yyvsp[-1].d); ; +#line 3322 "Gmsh.y" +{ yyval.d = asin(yyvsp[-1].d); ; break;} case 394: -#line 3298 "Gmsh.y" -{ yyval.d = acos(yyvsp[-1].d); ; +#line 3323 "Gmsh.y" +{ yyval.d = cos(yyvsp[-1].d); ; break;} case 395: -#line 3299 "Gmsh.y" -{ yyval.d = tan(yyvsp[-1].d); ; +#line 3324 "Gmsh.y" +{ yyval.d = acos(yyvsp[-1].d); ; break;} case 396: -#line 3300 "Gmsh.y" -{ yyval.d = atan(yyvsp[-1].d); ; +#line 3325 "Gmsh.y" +{ yyval.d = tan(yyvsp[-1].d); ; break;} case 397: -#line 3301 "Gmsh.y" -{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; +#line 3326 "Gmsh.y" +{ yyval.d = atan(yyvsp[-1].d); ; break;} case 398: -#line 3302 "Gmsh.y" -{ yyval.d = sinh(yyvsp[-1].d); ; +#line 3327 "Gmsh.y" +{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);; break;} case 399: -#line 3303 "Gmsh.y" -{ yyval.d = cosh(yyvsp[-1].d); ; +#line 3328 "Gmsh.y" +{ yyval.d = sinh(yyvsp[-1].d); ; break;} case 400: -#line 3304 "Gmsh.y" -{ yyval.d = tanh(yyvsp[-1].d); ; +#line 3329 "Gmsh.y" +{ yyval.d = cosh(yyvsp[-1].d); ; break;} case 401: -#line 3305 "Gmsh.y" -{ yyval.d = fabs(yyvsp[-1].d); ; +#line 3330 "Gmsh.y" +{ yyval.d = tanh(yyvsp[-1].d); ; break;} case 402: -#line 3306 "Gmsh.y" -{ yyval.d = floor(yyvsp[-1].d); ; +#line 3331 "Gmsh.y" +{ yyval.d = fabs(yyvsp[-1].d); ; break;} case 403: -#line 3307 "Gmsh.y" -{ yyval.d = ceil(yyvsp[-1].d); ; +#line 3332 "Gmsh.y" +{ yyval.d = floor(yyvsp[-1].d); ; break;} case 404: -#line 3308 "Gmsh.y" -{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; +#line 3333 "Gmsh.y" +{ yyval.d = ceil(yyvsp[-1].d); ; break;} case 405: -#line 3309 "Gmsh.y" +#line 3334 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 406: -#line 3310 "Gmsh.y" -{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; +#line 3335 "Gmsh.y" +{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ; break;} case 407: -#line 3311 "Gmsh.y" -{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; +#line 3336 "Gmsh.y" +{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 408: -#line 3320 "Gmsh.y" -{ yyval.d = yyvsp[0].d; ; +#line 3337 "Gmsh.y" +{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ; break;} case 409: -#line 3321 "Gmsh.y" -{ yyval.d = 3.141592653589793; ; +#line 3346 "Gmsh.y" +{ yyval.d = yyvsp[0].d; ; break;} case 410: -#line 3322 "Gmsh.y" -{ yyval.d = ParUtil::Instance()->rank(); ; +#line 3347 "Gmsh.y" +{ yyval.d = 3.141592653589793; ; break;} case 411: -#line 3323 "Gmsh.y" -{ yyval.d = ParUtil::Instance()->size(); ; +#line 3348 "Gmsh.y" +{ yyval.d = ParUtil::Instance()->rank(); ; break;} case 412: -#line 3328 "Gmsh.y" +#line 3349 "Gmsh.y" +{ yyval.d = ParUtil::Instance()->size(); ; + break;} +case 413: +#line 3354 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[0].c; @@ -8164,8 +8199,8 @@ case 412: yyval.d = *(double*)List_Pointer_Fast(pSymbol->val, 0); ; break;} -case 413: -#line 3340 "Gmsh.y" +case 414: +#line 3366 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-3].c; @@ -8185,8 +8220,8 @@ case 413: } ; break;} -case 414: -#line 3359 "Gmsh.y" +case 415: +#line 3385 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-2].c; @@ -8200,8 +8235,8 @@ case 414: } ; break;} -case 415: -#line 3372 "Gmsh.y" +case 416: +#line 3398 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-1].c; @@ -8214,8 +8249,8 @@ case 415: yyval.d = (*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[0].i); ; break;} -case 416: -#line 3384 "Gmsh.y" +case 417: +#line 3410 "Gmsh.y" { Symbol TheSymbol; TheSymbol.Name = yyvsp[-4].c; @@ -8235,8 +8270,8 @@ case 416: } ; break;} -case 417: -#line 3406 "Gmsh.y" +case 418: +#line 3432 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -8254,8 +8289,8 @@ case 417: } ; break;} -case 418: -#line 3423 "Gmsh.y" +case 419: +#line 3449 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -8273,8 +8308,8 @@ case 418: } ; break;} -case 419: -#line 3440 "Gmsh.y" +case 420: +#line 3466 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -8292,8 +8327,8 @@ case 419: } ; break;} -case 420: -#line 3457 "Gmsh.y" +case 421: +#line 3483 "Gmsh.y" { double (*pNumOpt)(int num, int action, double value); StringXNumber *pNumCat; @@ -8311,131 +8346,131 @@ case 420: } ; break;} -case 421: -#line 3477 "Gmsh.y" +case 422: +#line 3503 "Gmsh.y" { memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)); ; break;} -case 422: -#line 3481 "Gmsh.y" +case 423: +#line 3507 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = -yyvsp[0].v[i]; ; break;} -case 423: -#line 3485 "Gmsh.y" +case 424: +#line 3511 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[0].v[i]; ; break;} -case 424: -#line 3489 "Gmsh.y" +case 425: +#line 3515 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i]; ; break;} -case 425: -#line 3493 "Gmsh.y" +case 426: +#line 3519 "Gmsh.y" { for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i]; ; break;} -case 426: -#line 3500 "Gmsh.y" +case 427: +#line 3526 "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 427: -#line 3504 "Gmsh.y" +case 428: +#line 3530 "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 428: -#line 3508 "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 429: -#line 3512 "Gmsh.y" +#line 3534 "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 430: -#line 3519 "Gmsh.y" +#line 3538 "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 431: -#line 3522 "Gmsh.y" +#line 3545 "Gmsh.y" { ; break;} case 432: -#line 3528 "Gmsh.y" +#line 3548 "Gmsh.y" { ; break;} case 433: -#line 3531 "Gmsh.y" +#line 3554 "Gmsh.y" { ; break;} case 434: -#line 3537 "Gmsh.y" +#line 3557 "Gmsh.y" { ; break;} case 435: -#line 3540 "Gmsh.y" +#line 3563 "Gmsh.y" { - yyval.l = yyvsp[-1].l; ; break;} case 436: -#line 3544 "Gmsh.y" +#line 3566 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} case 437: -#line 3551 "Gmsh.y" +#line 3570 "Gmsh.y" { - yyval.l = List_Create(2, 1, sizeof(List_T*)); - List_Add(yyval.l, &(yyvsp[0].l)); + yyval.l = yyvsp[-1].l; ; break;} case 438: -#line 3556 "Gmsh.y" +#line 3577 "Gmsh.y" { + yyval.l = List_Create(2, 1, sizeof(List_T*)); List_Add(yyval.l, &(yyvsp[0].l)); ; break;} case 439: -#line 3564 "Gmsh.y" +#line 3582 "Gmsh.y" +{ + List_Add(yyval.l, &(yyvsp[0].l)); + ; + break;} +case 440: +#line 3590 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 440: -#line 3569 "Gmsh.y" +case 441: +#line 3595 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 441: -#line 3573 "Gmsh.y" +case 442: +#line 3599 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 442: -#line 3577 "Gmsh.y" +case 443: +#line 3603 "Gmsh.y" { yyval.l = yyvsp[-1].l; double *pd; @@ -8445,16 +8480,16 @@ case 442: } ; break;} -case 443: -#line 3589 "Gmsh.y" +case 444: +#line 3615 "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 444: -#line 3595 "Gmsh.y" +case 445: +#line 3621 "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)){ @@ -8466,8 +8501,8 @@ case 444: List_Add(yyval.l, &d); ; break;} -case 445: -#line 3606 "Gmsh.y" +case 446: +#line 3632 "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 @@ -8488,8 +8523,8 @@ case 445: } ; break;} -case 446: -#line 3626 "Gmsh.y" +case 447: +#line 3652 "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++){ @@ -8500,8 +8535,8 @@ case 446: List_Delete(yyvsp[0].l); ; break;} -case 447: -#line 3636 "Gmsh.y" +case 448: +#line 3662 "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++){ @@ -8512,8 +8547,8 @@ case 447: List_Delete(yyvsp[0].l); ; break;} -case 448: -#line 3646 "Gmsh.y" +case 449: +#line 3672 "Gmsh.y" { // FIXME: The syntax for this is ugly: we get double semi-colons // at the end of the line @@ -8526,8 +8561,8 @@ case 448: List_Delete(yyvsp[0].l); ; break;} -case 449: -#line 3658 "Gmsh.y" +case 450: +#line 3684 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -8544,8 +8579,8 @@ case 449: } ; break;} -case 450: -#line 3674 "Gmsh.y" +case 451: +#line 3700 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -8564,8 +8599,8 @@ case 450: } ; break;} -case 451: -#line 3692 "Gmsh.y" +case 452: +#line 3718 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -8589,8 +8624,8 @@ case 451: List_Delete(yyvsp[-2].l); ; break;} -case 452: -#line 3715 "Gmsh.y" +case 453: +#line 3741 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); Symbol TheSymbol; @@ -8616,27 +8651,27 @@ case 452: List_Delete(yyvsp[-2].l); ; break;} -case 453: -#line 3743 "Gmsh.y" +case 454: +#line 3769 "Gmsh.y" { yyval.l = List_Create(2, 1, sizeof(double)); List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 454: -#line 3748 "Gmsh.y" +case 455: +#line 3774 "Gmsh.y" { yyval.l = yyvsp[0].l; ; break;} -case 455: -#line 3752 "Gmsh.y" +case 456: +#line 3778 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].d)); ; break;} -case 456: -#line 3756 "Gmsh.y" +case 457: +#line 3782 "Gmsh.y" { for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){ double d; @@ -8646,28 +8681,28 @@ case 456: List_Delete(yyvsp[0].l); ; break;} -case 457: -#line 3769 "Gmsh.y" +case 458: +#line 3795 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d); ; break;} -case 458: -#line 3773 "Gmsh.y" +case 459: +#line 3799 "Gmsh.y" { yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255); ; break;} -case 459: -#line 3785 "Gmsh.y" +case 460: +#line 3811 "Gmsh.y" { int flag; yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag); if(flag) yymsg(GERROR, "Unknown color '%s'", yyvsp[0].c); ; break;} -case 460: -#line 3791 "Gmsh.y" +case 461: +#line 3817 "Gmsh.y" { unsigned int (*pColOpt)(int num, int action, unsigned int value); StringXColor *pColCat; @@ -8686,14 +8721,14 @@ case 460: } ; break;} -case 461: -#line 3812 "Gmsh.y" +case 462: +#line 3838 "Gmsh.y" { yyval.l = yyvsp[-1].l; ; break;} -case 462: -#line 3816 "Gmsh.y" +case 463: +#line 3842 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d); @@ -8705,27 +8740,27 @@ case 462: } ; break;} -case 463: -#line 3830 "Gmsh.y" +case 464: +#line 3856 "Gmsh.y" { yyval.l = List_Create(256, 10, sizeof(unsigned int)); List_Add(yyval.l, &(yyvsp[0].u)); ; break;} -case 464: -#line 3835 "Gmsh.y" +case 465: +#line 3861 "Gmsh.y" { List_Add(yyval.l, &(yyvsp[0].u)); ; break;} -case 465: -#line 3842 "Gmsh.y" +case 466: +#line 3868 "Gmsh.y" { yyval.c = yyvsp[0].c; ; break;} -case 466: -#line 3846 "Gmsh.y" +case 467: +#line 3872 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)); strcpy(yyval.c, yyvsp[-3].c); @@ -8734,8 +8769,8 @@ case 466: Free(yyvsp[-1].c); ; break;} -case 467: -#line 3854 "Gmsh.y" +case 468: +#line 3880 "Gmsh.y" { yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)); int i; @@ -8750,14 +8785,14 @@ case 467: Free(yyvsp[-1].c); ; break;} -case 468: -#line 3868 "Gmsh.y" +case 469: +#line 3894 "Gmsh.y" { yyval.c = yyvsp[-1].c; ; break;} -case 469: -#line 3872 "Gmsh.y" +case 470: +#line 3898 "Gmsh.y" { char tmpstring[1024]; int i = PrintListOfDouble(yyvsp[-3].c, yyvsp[-1].l, tmpstring); @@ -8777,8 +8812,8 @@ case 469: List_Delete(yyvsp[-1].l); ; break;} -case 470: -#line 3891 "Gmsh.y" +case 471: +#line 3917 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -8795,8 +8830,8 @@ case 470: } ; break;} -case 471: -#line 3907 "Gmsh.y" +case 472: +#line 3933 "Gmsh.y" { char* (*pStrOpt)(int num, int action, char *value); StringXString *pStrCat; @@ -9035,7 +9070,7 @@ yyerrhandle: } return 1; } -#line 3924 "Gmsh.y" +#line 3950 "Gmsh.y" void DeleteSymbol(void *a, void *b){ diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index f299a3a637b72f6fc753227978ab2eadb8aa6786..957080904ea65193bd6372a7861e23bb723a85ce 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.y,v 1.168 2004-05-25 23:16:32 geuzaine Exp $ +// $Id: Gmsh.y,v 1.169 2004-05-29 23:22:22 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -1813,6 +1813,32 @@ Shape : $$.Type = MSH_SEGM_ELLI; $$.Num = num; } + | tEllipse '(' FExpr ')' tAFFECT ListOfDouble tPlane VExpr tEND + { + int num = (int)$3; + if(FindCurve(num, THEM)){ + yymsg(GERROR, "Curve %d already exists", num); + } + else{ + List_T *temp = ListOfDouble2ListOfInt($6); + Curve *c = Create_Curve(num, MSH_SEGM_ELLI, 2, temp, NULL, + -1, -1, 0., 1.); + c->Circle.n[0] = $8[0]; + c->Circle.n[1] = $8[1]; + c->Circle.n[2] = $8[2]; + End_Curve(c); + Tree_Add(THEM->Curves, &c); + Curve *rc = CreateReversedCurve(THEM, c); + rc->Circle.n[0] = $8[0]; + rc->Circle.n[1] = $8[1]; + rc->Circle.n[2] = $8[2]; + End_Curve(c); + List_Delete(temp); + } + List_Delete($6); + $$.Type = MSH_SEGM_ELLI; + $$.Num = num; + } | tParametric '(' FExpr ')' tAFFECT '{' FExpr ',' FExpr ',' tBIGSTR ',' tBIGSTR ',' tBIGSTR '}' tEND { diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 1afcc7eae9a6c22457e57fda992d92fc90766853..17f76b3de688fe1668efdee8b86c7257466c8c0d 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.191 2004-05-25 23:16:32 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.192 2004-05-29 23:22:22 geuzaine Exp $ */ #define FLEX_SCANNER @@ -1014,7 +1014,7 @@ char *yytext; #line 1 "Gmsh.l" #define INITIAL 0 #line 2 "Gmsh.l" -// $Id: Gmsh.yy.cpp,v 1.191 2004-05-25 23:16:32 geuzaine Exp $ +// $Id: Gmsh.yy.cpp,v 1.192 2004-05-29 23:22:22 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle //