diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp
index 82edccd146886aa5857467a4ed49ca27f939ecad..c8eefd03e238047028e5ecbf72e796877d719c90 100644
--- a/Common/CommandLine.cpp
+++ b/Common/CommandLine.cpp
@@ -1,4 +1,4 @@
-// $Id: CommandLine.cpp,v 1.6 2003-01-23 20:19:17 geuzaine Exp $
+// $Id: CommandLine.cpp,v 1.7 2003-02-12 20:27:12 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -32,7 +32,7 @@
 #include "OpenFile.h"
 #include "Parser.h"
 
-#ifndef GMSH_MAJOR_VERSION
+#if !defined(GMSH_MAJOR_VERSION)
 #error 
 #error Common/GmshVersion.h is not up-to-date. 
 #error Please run 'make tag'.
@@ -76,7 +76,7 @@ void Print_Usage(char *name){
   Msg(DIRECT, "  -histogram            print mesh quality histogram");
   Msg(DIRECT, "  -extrude              use old extrusion mesh generator");
   Msg(DIRECT, "  -recombine            recombine meshes from old extrusion mesh generator");
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
   Msg(DIRECT, "  -interactive          display 2D mesh construction interactively");
   Msg(DIRECT, "Post-processing options:");
   Msg(DIRECT, "  -dl                   enable display lists");
@@ -94,7 +94,7 @@ void Print_Usage(char *name){
   Msg(DIRECT, "  -perspective          set projection mode to perspective");
 #endif
   Msg(DIRECT, "Other options:");      
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
   Msg(DIRECT, "  -a, -g, -m, -s, -p    start in automatic, geometry, mesh, solver or");
   Msg(DIRECT, "                        post-processing mode (default: automatic)");
 #endif
@@ -354,7 +354,7 @@ void Get_Options (int argc, char *argv[], int *nbfiles) {
         fprintf(stderr, "%s%d.%d.%d\n", gmsh_version, GMSH_MAJOR_VERSION, 
 	      GMSH_MINOR_VERSION, GMSH_PATCH_VERSION);
         fprintf(stderr, "%s\n", gmsh_os);
-#if _FLTK
+#if defined(HAVE_FLTK)
         fprintf(stderr, "%sFLTK %d.%d.%d\n", gmsh_gui, FL_MAJOR_VERSION, 
 		FL_MINOR_VERSION, FL_PATCH_VERSION);
 #else
@@ -383,7 +383,7 @@ void Get_Options (int argc, char *argv[], int *nbfiles) {
           exit(1);
         }
       }
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
       else if(!strcmp(argv[i]+1, "noterm")){ 
         CTX.terminal = 0; i++;
       }
@@ -513,11 +513,11 @@ void Get_Options (int argc, char *argv[], int *nbfiles) {
           exit(1);
         }
       }
-#endif // !_BLACKBOX
+#endif
 
 
       else{
-#ifdef __APPLE__ 
+#if defined(__APPLE__)
 	// The Mac Finder launches programs with special command line
 	// arguments: just ignore them (and don't exit!)
         fprintf(stderr, "Unknown option '%s'\n", argv[i]);
diff --git a/Common/Context.cpp b/Common/Context.cpp
index 41a6d507d6918e50086b048ddad80c4a60988906..6f5bb7f629a9e23fa90c50e1877ecb9a65e4968d 100644
--- a/Common/Context.cpp
+++ b/Common/Context.cpp
@@ -1,4 +1,4 @@
-// $Id: Context.cpp,v 1.46 2003-01-23 20:19:17 geuzaine Exp $
+// $Id: Context.cpp,v 1.47 2003-02-12 20:27:12 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -57,7 +57,7 @@ void Context_T::buildRotmatrix(void){
   if(useTrackball){
     build_rotmatrix(rot, quaternion);
 
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
     // We should reconstruct the Euler angles from the rotation
     // matrix. I'm too lazy to do it :-(
     extern void set_r(int i, double val);
diff --git a/Common/Context.h b/Common/Context.h
index 62ff4ac97c42b11e0ee3c26beb22e24efae3e564..576e698776860d80cae06da91b1102bfdfed6086 100644
--- a/Common/Context.h
+++ b/Common/Context.h
@@ -24,19 +24,19 @@
 
 // How RGBA values are packed and unpacked into/from a 4-byte integer 
 
-#  ifdef _LITTLE_ENDIAN
-#    define PACK_COLOR(R,G,B,A)   ( (A)<<24 | (B)<<16 | (G)<<8 | (R) )
-#    define UNPACK_RED(X)         ( (X) & 0xff )
-#    define UNPACK_GREEN(X)       ( ( (X) >> 8 ) & 0xff )
-#    define UNPACK_BLUE(X)        ( ( (X) >> 16 ) & 0xff )
-#    define UNPACK_ALPHA(X)       ( ( (X) >> 24 ) & 0xff )
-#  else
-#    define PACK_COLOR(R,G,B,A)   ( (R)<<24 | (G)<<16 | (B)<<8 | (A) )
-#    define UNPACK_RED(X)         ( ( (X) >> 24 ) & 0xff )
-#    define UNPACK_GREEN(X)       ( ( (X) >> 16 ) & 0xff )
-#    define UNPACK_BLUE(X)        ( ( (X) >> 8 ) & 0xff )
-#    define UNPACK_ALPHA(X)       ( (X) & 0xff )
-#  endif
+#ifdef LITTLE_ENDIAN
+#  define PACK_COLOR(R,G,B,A)   ( (A)<<24 | (B)<<16 | (G)<<8 | (R) )
+#  define UNPACK_RED(X)         ( (X) & 0xff )
+#  define UNPACK_GREEN(X)       ( ( (X) >> 8 ) & 0xff )
+#  define UNPACK_BLUE(X)        ( ( (X) >> 16 ) & 0xff )
+#  define UNPACK_ALPHA(X)       ( ( (X) >> 24 ) & 0xff )
+#else
+#  define PACK_COLOR(R,G,B,A)   ( (R)<<24 | (G)<<16 | (B)<<8 | (A) )
+#  define UNPACK_RED(X)         ( ( (X) >> 24 ) & 0xff )
+#  define UNPACK_GREEN(X)       ( ( (X) >> 16 ) & 0xff )
+#  define UNPACK_BLUE(X)        ( ( (X) >> 8 ) & 0xff )
+#  define UNPACK_ALPHA(X)       ( (X) & 0xff )
+#endif
 
 // Interface-independent context 
 
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index fadf827220b3b1cf4d1050c946b52d0e4c5e065d..21c47f314f83633be51b8d019fa02a74c9a77767 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -50,7 +50,7 @@ StringXString GeneralOptions_String[] = {
   { 0,   "SessionFileName" , opt_general_session_filename , ".gmshrc" ,
     "File into which session specific information is saved, and which is read on startup" },
 
-#ifdef WIN32
+#if defined(WIN32)
   { F|O, "TextEditor" , opt_general_editor , "notepad.exe %s" , 
 #else
   { F|O, "TextEditor" , opt_general_editor , "emacs %s &" ,
@@ -81,7 +81,7 @@ StringXString SolverOptions_String[] = {
     "Visit http://www.geuz.org/getdp/ for more info",
     "Help string for solver 0" },
   { F|O, "Executable0" , opt_solver_executable0 , 
-#ifdef WIN32
+#if defined(WIN32)
     "getdp.exe" , 
 #else
     "getdp" , 
@@ -543,7 +543,7 @@ StringXNumber GeneralOptions_Number[] = {
   { F|S, "StatisticsPositionY" , opt_general_statistics_position1 , 150. , 
     "Vertical position (in pixels) of the upper left corner of the statistic window" }, 
 
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   { F|O, "Terminal" , opt_general_terminal , 0. ,
 #else		      
   { F|O, "Terminal" , opt_general_terminal , 1. ,
diff --git a/Common/GmshUI.h b/Common/GmshUI.h
index d8f2dcffb09b3bfa043938fd0d46254a0af8c87f..9c766d8aeae275873a2d638a651f8b220b6e51cd 100644
--- a/Common/GmshUI.h
+++ b/Common/GmshUI.h
@@ -20,20 +20,20 @@
 // 
 // Please report all bugs and problems to "gmsh@geuz.org".
 
-#ifdef WIN32
-#include <windows.h>
-#include <GL/gl.h>
-#include <GL/glu.h>
+#if defined(WIN32)
+#  include <windows.h>
+#  include <GL/gl.h>
+#  include <GL/glu.h>
 #endif
 
-#ifdef _FLTK
-#include <FL/Fl.H>
-#include <FL/gl.h>
-#ifdef __APPLE__
-#include <OpenGL/glu.h>
-#else
-#include <GL/glu.h>
-#endif /* __APPLE__ */
+#if defined(HAVE_FLTK)
+#  include <FL/Fl.H>
+#  include <FL/gl.h>
+#  if defined(__APPLE__)
+#    include <OpenGL/glu.h>
+#  else
+#    include <GL/glu.h>
+#  endif
 #endif
 
 #endif
diff --git a/Common/Options.cpp b/Common/Options.cpp
index 5aa3b363ffbd3a7c9536709a3c105ee44e458cf4..c1230bd8719c9b4f5572468bfb1196f2c83957cf 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -1,4 +1,4 @@
-// $Id: Options.cpp,v 1.99 2003-01-24 23:13:34 geuzaine Exp $
+// $Id: Options.cpp,v 1.100 2003-02-12 20:27:12 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -29,10 +29,10 @@
 
 extern Context_T   CTX ;
 
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
 #include "Solvers.h"
 #include "GUI.h"
-extern GUI        *WID ;
+extern GUI *WID ;
 #endif
 
 extern Post_View  *Post_ViewReference;
@@ -492,7 +492,7 @@ char * opt_general_display(OPT_ARGS_STR){
 }
 char * opt_general_default_filename(OPT_ARGS_STR){
   if(action & GMSH_SET) CTX.default_filename = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_input[0]->value(CTX.default_filename);
 #endif
@@ -500,7 +500,7 @@ char * opt_general_default_filename(OPT_ARGS_STR){
 }
 char * opt_general_tmp_filename(OPT_ARGS_STR){
   if(action & GMSH_SET) CTX.tmp_filename = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_input[1]->value(CTX.tmp_filename);
 #endif
@@ -508,7 +508,7 @@ char * opt_general_tmp_filename(OPT_ARGS_STR){
 }
 char * opt_general_error_filename(OPT_ARGS_STR){
   if(action & GMSH_SET) CTX.error_filename = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_input[2]->value(CTX.error_filename);
 #endif
@@ -528,7 +528,7 @@ char * opt_general_options_filename(OPT_ARGS_STR){
     strcpy(CTX.optionsrc_filename, CTX.home_dir);
     strcat(CTX.optionsrc_filename, CTX.options_filename);
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_input[3]->value(CTX.options_filename);
 #endif
@@ -536,7 +536,7 @@ char * opt_general_options_filename(OPT_ARGS_STR){
 }
 char * opt_general_editor(OPT_ARGS_STR){
   if(action & GMSH_SET) CTX.editor = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_input[4]->value(CTX.editor);
 #endif
@@ -548,7 +548,7 @@ char * opt_general_theme(OPT_ARGS_STR){
 }
 
 char * opt_solver_name(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].name, val);
   if(WID && (action & GMSH_GUI))
     WID->solver[num].window->label(SINFO[num].name);
@@ -564,7 +564,7 @@ char * opt_solver_name3(OPT_ARGS_STR){ return opt_solver_name(3,action,val); }
 char * opt_solver_name4(OPT_ARGS_STR){ return opt_solver_name(4,action,val); }
 
 char * opt_solver_executable(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].executable_name, val);
   if(WID && (action & GMSH_GUI))
     WID->solver[num].input[2]->value(SINFO[num].executable_name);
@@ -580,7 +580,7 @@ char * opt_solver_executable3(OPT_ARGS_STR){ return opt_solver_executable(3,acti
 char * opt_solver_executable4(OPT_ARGS_STR){ return opt_solver_executable(4,action,val); }
 
 char * opt_solver_help(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) SINFO[num].help = val;
   return SINFO[num].help;
 #else
@@ -594,7 +594,7 @@ char * opt_solver_help3(OPT_ARGS_STR){ return opt_solver_help(3,action,val); }
 char * opt_solver_help4(OPT_ARGS_STR){ return opt_solver_help(4,action,val); }
 
 char * opt_solver_extension(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].extension, val);
   return SINFO[num].extension;
 #else
@@ -608,7 +608,7 @@ char * opt_solver_extension3(OPT_ARGS_STR){ return opt_solver_extension(3,action
 char * opt_solver_extension4(OPT_ARGS_STR){ return opt_solver_extension(4,action,val); }
 
 char * opt_solver_mesh_name(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].mesh_name, val);
   return SINFO[num].mesh_name;
 #else
@@ -622,7 +622,7 @@ char * opt_solver_mesh_name3(OPT_ARGS_STR){ return opt_solver_mesh_name(3,action
 char * opt_solver_mesh_name4(OPT_ARGS_STR){ return opt_solver_mesh_name(4,action,val); }
 
 char * opt_solver_mesh_command(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].mesh_command, val);
   if(WID && (action & GMSH_GUI))
     WID->solver[num].input[1]->value(SINFO[num].mesh_name);
@@ -638,7 +638,7 @@ char * opt_solver_mesh_command3(OPT_ARGS_STR){ return opt_solver_mesh_command(3,
 char * opt_solver_mesh_command4(OPT_ARGS_STR){ return opt_solver_mesh_command(4,action,val); }
 
 char * opt_solver_option_command(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].option_command, val);
   return SINFO[num].option_command;
 #else
@@ -652,7 +652,7 @@ char * opt_solver_option_command3(OPT_ARGS_STR){ return opt_solver_option_comman
 char * opt_solver_option_command4(OPT_ARGS_STR){ return opt_solver_option_command(4,action,val); }
 
 char * opt_solver_first_option(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].option_name[0], val);
   return SINFO[num].option_name[0];
 #else
@@ -666,7 +666,7 @@ char * opt_solver_first_option3(OPT_ARGS_STR){ return opt_solver_first_option(3,
 char * opt_solver_first_option4(OPT_ARGS_STR){ return opt_solver_first_option(4,action,val); }
 
 char * opt_solver_second_option(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].option_name[1], val);
   return SINFO[num].option_name[1];
 #else
@@ -680,7 +680,7 @@ char * opt_solver_second_option3(OPT_ARGS_STR){ return opt_solver_second_option(
 char * opt_solver_second_option4(OPT_ARGS_STR){ return opt_solver_second_option(4,action,val); }
 
 char * opt_solver_third_option(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].option_name[2], val);
   return SINFO[num].option_name[2];
 #else
@@ -694,7 +694,7 @@ char * opt_solver_third_option3(OPT_ARGS_STR){ return opt_solver_third_option(3,
 char * opt_solver_third_option4(OPT_ARGS_STR){ return opt_solver_third_option(4,action,val); }
 
 char * opt_solver_fourth_option(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].option_name[3], val);
   return SINFO[num].option_name[3];
 #else
@@ -708,7 +708,7 @@ char * opt_solver_fourth_option3(OPT_ARGS_STR){ return opt_solver_fourth_option(
 char * opt_solver_fourth_option4(OPT_ARGS_STR){ return opt_solver_fourth_option(4,action,val); }
 
 char * opt_solver_fifth_option(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].option_name[4], val);
   return SINFO[num].option_name[4];
 #else
@@ -722,7 +722,7 @@ char * opt_solver_fifth_option3(OPT_ARGS_STR){ return opt_solver_fifth_option(3,
 char * opt_solver_fifth_option4(OPT_ARGS_STR){ return opt_solver_fifth_option(4,action,val); }
 
 char * opt_solver_first_button(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].button_name[0], val);
   return SINFO[num].button_name[0];
 #else
@@ -736,7 +736,7 @@ char * opt_solver_first_button3(OPT_ARGS_STR){ return opt_solver_first_button(3,
 char * opt_solver_first_button4(OPT_ARGS_STR){ return opt_solver_first_button(4,action,val); }
 
 char * opt_solver_first_button_command(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].button_command[0], val);
   return SINFO[num].button_command[0];
 #else
@@ -750,7 +750,7 @@ char * opt_solver_first_button_command3(OPT_ARGS_STR){ return opt_solver_first_b
 char * opt_solver_first_button_command4(OPT_ARGS_STR){ return opt_solver_first_button_command(4,action,val); }
 
 char * opt_solver_second_button(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].button_name[1], val);
   return SINFO[num].button_name[1];
 #else
@@ -764,7 +764,7 @@ char * opt_solver_second_button3(OPT_ARGS_STR){ return opt_solver_second_button(
 char * opt_solver_second_button4(OPT_ARGS_STR){ return opt_solver_second_button(4,action,val); }
 
 char * opt_solver_second_button_command(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].button_command[1], val);
   return SINFO[num].button_command[1];
 #else
@@ -778,7 +778,7 @@ char * opt_solver_second_button_command3(OPT_ARGS_STR){ return opt_solver_second
 char * opt_solver_second_button_command4(OPT_ARGS_STR){ return opt_solver_second_button_command(4,action,val); }
 
 char * opt_solver_third_button(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].button_name[2], val);
   return SINFO[num].button_name[2];
 #else
@@ -792,7 +792,7 @@ char * opt_solver_third_button3(OPT_ARGS_STR){ return opt_solver_third_button(3,
 char * opt_solver_third_button4(OPT_ARGS_STR){ return opt_solver_third_button(4,action,val); }
 
 char * opt_solver_third_button_command(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].button_command[2], val);
   return SINFO[num].button_command[2];
 #else
@@ -806,7 +806,7 @@ char * opt_solver_third_button_command3(OPT_ARGS_STR){ return opt_solver_third_b
 char * opt_solver_third_button_command4(OPT_ARGS_STR){ return opt_solver_third_button_command(4,action,val); }
 
 char * opt_solver_fourth_button(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].button_name[3], val);
   return SINFO[num].button_name[3];
 #else
@@ -820,7 +820,7 @@ char * opt_solver_fourth_button3(OPT_ARGS_STR){ return opt_solver_fourth_button(
 char * opt_solver_fourth_button4(OPT_ARGS_STR){ return opt_solver_fourth_button(4,action,val); }
 
 char * opt_solver_fourth_button_command(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].button_command[3], val);
   return SINFO[num].button_command[3];
 #else
@@ -834,7 +834,7 @@ char * opt_solver_fourth_button_command3(OPT_ARGS_STR){ return opt_solver_fourth
 char * opt_solver_fourth_button_command4(OPT_ARGS_STR){ return opt_solver_fourth_button_command(4,action,val); }
 
 char * opt_solver_fifth_button(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].button_name[4], val);
   return SINFO[num].button_name[4];
 #else
@@ -848,7 +848,7 @@ char * opt_solver_fifth_button3(OPT_ARGS_STR){ return opt_solver_fifth_button(3,
 char * opt_solver_fifth_button4(OPT_ARGS_STR){ return opt_solver_fifth_button(4,action,val); }
 
 char * opt_solver_fifth_button_command(OPT_ARGS_STR){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET) strcpy(SINFO[num].button_command[4], val);
   return SINFO[num].button_command[4];
 #else
@@ -866,14 +866,14 @@ char * opt_view_name(OPT_ARGS_STR){
   GET_VIEW(NULL) ;
   if(action & GMSH_SET){
     strcpy(v->Name, val);
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
     if(WID && num<NB_BUTT_MAX){
       WID->m_toggle_butt[num]->label(v->Name);
       WID->m_toggle_butt[num]->redraw();
     }
 #endif
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     WID->view_input[0]->value(v->Name);
   }
@@ -885,7 +885,7 @@ char * opt_view_format(OPT_ARGS_STR){
   if(action & GMSH_SET){
     strcpy(v->Format, val);
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_input[1]->value(v->Format);
 #endif
@@ -895,7 +895,7 @@ char * opt_view_filename(OPT_ARGS_STR){
   GET_VIEW(NULL) ;
   if(action & GMSH_SET){
     strcpy(v->FileName, val);
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
 #if !((FL_MAJOR_VERSION == 1) && (FL_MINOR_VERSION == 0))
     if(WID && num<NB_BUTT_MAX){
       WID->m_toggle_butt[num]->tooltip(v->FileName);
@@ -910,7 +910,7 @@ char * opt_view_abscissa_name(OPT_ARGS_STR){
   if(action & GMSH_SET){
     strcpy(v->AbscissaName, val);
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_input[2]->value(v->AbscissaName);
 #endif
@@ -921,7 +921,7 @@ char * opt_view_abscissa_format(OPT_ARGS_STR){
   if(action & GMSH_SET){
     strcpy(v->AbscissaFormat, val);
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_input[3]->value(v->AbscissaFormat);
 #endif
@@ -1020,7 +1020,7 @@ double opt_general_center_windows(OPT_ARGS_NUM){
 }
 double opt_general_session_save(OPT_ARGS_NUM){
   if(action & GMSH_SET) CTX.session_save = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[8]->value(CTX.session_save);
 #endif
@@ -1028,7 +1028,7 @@ double opt_general_session_save(OPT_ARGS_NUM){
 }
 double opt_general_options_save(OPT_ARGS_NUM){
   if(action & GMSH_SET) CTX.options_save = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[9]->value(CTX.options_save);
 #endif
@@ -1036,7 +1036,7 @@ double opt_general_options_save(OPT_ARGS_NUM){
 }
 double opt_general_confirm_overwrite(OPT_ARGS_NUM){
   if(action & GMSH_SET) CTX.confirm_overwrite = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[14]->value(CTX.confirm_overwrite);
 #endif
@@ -1097,7 +1097,7 @@ double opt_general_scale2(OPT_ARGS_NUM){
 double opt_general_point_size(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.point_size = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_value[6]->value(CTX.point_size);
 #endif
@@ -1106,7 +1106,7 @@ double opt_general_point_size(OPT_ARGS_NUM){
 double opt_general_line_width(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.line_width = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_value[7]->value(CTX.line_width);
 #endif
@@ -1115,7 +1115,7 @@ double opt_general_line_width(OPT_ARGS_NUM){
 double opt_general_shine(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.shine = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_value[1]->value(CTX.shine);
 #endif
@@ -1124,7 +1124,7 @@ double opt_general_shine(OPT_ARGS_NUM){
 double opt_general_verbosity(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.verbosity = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_value[5]->value(CTX.verbosity);
 #endif
@@ -1133,7 +1133,7 @@ double opt_general_verbosity(OPT_ARGS_NUM){
 double opt_general_terminal(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.terminal = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[7]->value(CTX.terminal);
 #endif
@@ -1142,14 +1142,14 @@ double opt_general_terminal(OPT_ARGS_NUM){
 double opt_general_tooltips(OPT_ARGS_NUM){
   if(action & GMSH_SET){
     CTX.tooltips = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
 #if !((FL_MAJOR_VERSION == 1) && (FL_MINOR_VERSION == 0))
     if(CTX.tooltips) Fl_Tooltip::enable();
     else  Fl_Tooltip::disable();
 #endif
 #endif
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[13]->value(CTX.tooltips);
 #endif
@@ -1158,7 +1158,7 @@ double opt_general_tooltips(OPT_ARGS_NUM){
 double opt_general_orthographic(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.ortho = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI)){
     WID->gen_butt[10]->value(CTX.ortho);
     WID->gen_butt[11]->value(!CTX.ortho);
@@ -1169,7 +1169,7 @@ double opt_general_orthographic(OPT_ARGS_NUM){
 double opt_general_fast_redraw(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.fast = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[2]->value(CTX.fast);
 #endif
@@ -1178,7 +1178,7 @@ double opt_general_fast_redraw(OPT_ARGS_NUM){
 double opt_general_axes(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.axes = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[0]->value(CTX.axes);
 #endif
@@ -1187,7 +1187,7 @@ double opt_general_axes(OPT_ARGS_NUM){
 double opt_general_small_axes(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.small_axes = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[1]->value(CTX.small_axes);
 #endif
@@ -1211,7 +1211,7 @@ double opt_general_quadric_subdivisions(OPT_ARGS_NUM){
 double opt_general_double_buffer(OPT_ARGS_NUM){
   if(action & GMSH_SET){
     CTX.db = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
     if(WID){
       if(CTX.db){
 	Msg(INFO, "Setting OpenGL visual to double buffered");
@@ -1224,7 +1224,7 @@ double opt_general_double_buffer(OPT_ARGS_NUM){
     }
 #endif
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[3]->value(CTX.db);
 #endif
@@ -1233,7 +1233,7 @@ double opt_general_double_buffer(OPT_ARGS_NUM){
 double opt_general_alpha_blending(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.alpha = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[5]->value(CTX.alpha);
 #endif
@@ -1246,7 +1246,7 @@ double opt_general_color_scheme(OPT_ARGS_NUM){
     Set_DefaultColorOptions(0, GeneralOptions_Color, CTX.color_scheme);
     Set_ColorOptions_GUI(0, GeneralOptions_Color);
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_value[0]->value(CTX.color_scheme);
 #endif
@@ -1255,7 +1255,7 @@ double opt_general_color_scheme(OPT_ARGS_NUM){
 double opt_general_trackball(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.useTrackball = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[6]->value(CTX.useTrackball);
 #endif
@@ -1391,7 +1391,7 @@ double opt_general_clip5d(OPT_ARGS_NUM){
 }
 double opt_general_moving_light(OPT_ARGS_NUM){
   if(action & GMSH_SET) CTX.moving_light = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[12]->value(CTX.moving_light);
 #endif
@@ -1403,7 +1403,7 @@ double opt_general_light0(OPT_ARGS_NUM){
 }
 double opt_general_light00(OPT_ARGS_NUM){
   if(action & GMSH_SET) CTX.light_position[0][0] = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_value[2]->value(CTX.light_position[0][0]);
 #endif
@@ -1411,7 +1411,7 @@ double opt_general_light00(OPT_ARGS_NUM){
 }
 double opt_general_light01(OPT_ARGS_NUM){
   if(action & GMSH_SET) CTX.light_position[0][1] = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_value[3]->value(CTX.light_position[0][1]);
 #endif
@@ -1419,7 +1419,7 @@ double opt_general_light01(OPT_ARGS_NUM){
 }
 double opt_general_light02(OPT_ARGS_NUM){
   if(action & GMSH_SET) CTX.light_position[0][2] = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_value[4]->value(CTX.light_position[0][2]);
 #endif
@@ -1511,7 +1511,7 @@ double opt_general_light52(OPT_ARGS_NUM){
 double opt_geometry_auto_coherence(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.auto_coherence = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_butt[8]->value(CTX.geom.auto_coherence);
 #endif
@@ -1520,7 +1520,7 @@ double opt_geometry_auto_coherence(OPT_ARGS_NUM){
 double opt_geometry_normals(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.normals = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_value[0]->value(CTX.geom.normals);
 #endif
@@ -1529,7 +1529,7 @@ double opt_geometry_normals(OPT_ARGS_NUM){
 double opt_geometry_tangents(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.tangents = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_value[1]->value(CTX.geom.tangents);
 #endif
@@ -1538,7 +1538,7 @@ double opt_geometry_tangents(OPT_ARGS_NUM){
 double opt_geometry_points(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.points = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_butt[0]->value(CTX.geom.points);
 #endif
@@ -1547,7 +1547,7 @@ double opt_geometry_points(OPT_ARGS_NUM){
 double opt_geometry_lines(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.lines = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_butt[1]->value(CTX.geom.lines);
 #endif
@@ -1556,7 +1556,7 @@ double opt_geometry_lines(OPT_ARGS_NUM){
 double opt_geometry_surfaces(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.surfaces = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_butt[2]->value(CTX.geom.surfaces);
 #endif
@@ -1565,7 +1565,7 @@ double opt_geometry_surfaces(OPT_ARGS_NUM){
 double opt_geometry_volumes(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.volumes = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_butt[3]->value(CTX.geom.volumes);
 #endif
@@ -1574,7 +1574,7 @@ double opt_geometry_volumes(OPT_ARGS_NUM){
 double opt_geometry_points_num(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.points_num = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_butt[4]->value(CTX.geom.points_num);
 #endif
@@ -1583,7 +1583,7 @@ double opt_geometry_points_num(OPT_ARGS_NUM){
 double opt_geometry_lines_num(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.lines_num = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_butt[5]->value(CTX.geom.lines_num);
 #endif
@@ -1592,7 +1592,7 @@ double opt_geometry_lines_num(OPT_ARGS_NUM){
 double opt_geometry_surfaces_num(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.surfaces_num = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_butt[6]->value(CTX.geom.surfaces_num);
 #endif
@@ -1601,7 +1601,7 @@ double opt_geometry_surfaces_num(OPT_ARGS_NUM){
 double opt_geometry_volumes_num(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.volumes_num = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_butt[7]->value(CTX.geom.volumes_num);
 #endif
@@ -1610,7 +1610,7 @@ double opt_geometry_volumes_num(OPT_ARGS_NUM){
 double opt_geometry_point_size(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.point_size = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_value[3]->value(CTX.geom.point_size);
 #endif
@@ -1619,7 +1619,7 @@ double opt_geometry_point_size(OPT_ARGS_NUM){
 double opt_geometry_point_sel_size(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.point_sel_size = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_value[5]->value(CTX.geom.point_sel_size);
 #endif
@@ -1629,7 +1629,7 @@ double opt_geometry_point_type(OPT_ARGS_NUM){
   if(action & GMSH_SET){
     CTX.geom.point_type = (int)val;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI)){
     WID->geo_choice[0]->value(CTX.geom.point_type);
   }
@@ -1639,7 +1639,7 @@ double opt_geometry_point_type(OPT_ARGS_NUM){
 double opt_geometry_line_width(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.geom.line_width = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_value[4]->value(CTX.geom.line_width);
 #endif
@@ -1654,7 +1654,7 @@ double opt_geometry_line_type(OPT_ARGS_NUM){
   if(action & GMSH_SET){
     CTX.geom.line_type = (int)val;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI)){
     WID->geo_choice[1]->value(CTX.geom.line_type);
   }
@@ -1710,7 +1710,7 @@ double opt_geometry_color_scheme(OPT_ARGS_NUM){
     Set_DefaultColorOptions(0, GeometryOptions_Color, CTX.geom.color_scheme);
     Set_ColorOptions_GUI(0, GeometryOptions_Color);
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->geo_value[2]->value(CTX.geom.color_scheme);
 #endif
@@ -1728,7 +1728,7 @@ double opt_mesh_normals(OPT_ARGS_NUM){
     CTX.mesh.normals = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[8]->value(CTX.mesh.normals);
 #endif
@@ -1739,7 +1739,7 @@ double opt_mesh_tangents(OPT_ARGS_NUM){
     CTX.mesh.tangents = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[13]->value(CTX.mesh.tangents);
 #endif
@@ -1750,7 +1750,7 @@ double opt_mesh_explode(OPT_ARGS_NUM){
     CTX.mesh.explode = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[9]->value(CTX.mesh.explode);
 #endif
@@ -1759,7 +1759,7 @@ double opt_mesh_explode(OPT_ARGS_NUM){
 double opt_mesh_scaling_factor(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.mesh.scaling_factor = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[1]->value(CTX.mesh.scaling_factor);
 #endif
@@ -1768,7 +1768,7 @@ double opt_mesh_scaling_factor(OPT_ARGS_NUM){
 double opt_mesh_lc_factor(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.mesh.lc_factor = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[2]->value(CTX.mesh.lc_factor);
 #endif
@@ -1777,7 +1777,7 @@ double opt_mesh_lc_factor(OPT_ARGS_NUM){
 double opt_mesh_rand_factor(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.mesh.rand_factor = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[3]->value(CTX.mesh.rand_factor);
 #endif
@@ -1788,7 +1788,7 @@ double opt_mesh_gamma_inf(OPT_ARGS_NUM){
     CTX.mesh.gamma_inf = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[4]->value(CTX.mesh.gamma_inf);
 #endif
@@ -1799,7 +1799,7 @@ double opt_mesh_gamma_sup(OPT_ARGS_NUM){
     CTX.mesh.gamma_sup = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[5]->value(CTX.mesh.gamma_sup);
 #endif
@@ -1810,7 +1810,7 @@ double opt_mesh_radius_inf(OPT_ARGS_NUM){
     CTX.mesh.radius_inf = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[6]->value(CTX.mesh.radius_inf);
 #endif
@@ -1821,7 +1821,7 @@ double opt_mesh_radius_sup(OPT_ARGS_NUM){
     CTX.mesh.radius_sup = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[7]->value(CTX.mesh.radius_sup);
 #endif
@@ -1832,7 +1832,7 @@ double opt_mesh_points(OPT_ARGS_NUM){
     CTX.mesh.points = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[6]->value(CTX.mesh.points);
 #endif
@@ -1843,7 +1843,7 @@ double opt_mesh_lines(OPT_ARGS_NUM){
     CTX.mesh.lines = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[7]->value(CTX.mesh.lines);
 #endif
@@ -1854,7 +1854,7 @@ double opt_mesh_surfaces(OPT_ARGS_NUM){
     CTX.mesh.surfaces = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[8]->value(CTX.mesh.surfaces);
 #endif
@@ -1865,7 +1865,7 @@ double opt_mesh_volumes(OPT_ARGS_NUM){
     CTX.mesh.volumes = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[9]->value(CTX.mesh.volumes);
 #endif
@@ -1876,7 +1876,7 @@ double opt_mesh_points_num(OPT_ARGS_NUM){
     CTX.mesh.points_num = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[10]->value(CTX.mesh.points_num);
 #endif
@@ -1887,7 +1887,7 @@ double opt_mesh_lines_num(OPT_ARGS_NUM){
     CTX.mesh.lines_num = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[11]->value(CTX.mesh.lines_num);
 #endif
@@ -1898,7 +1898,7 @@ double opt_mesh_surfaces_num(OPT_ARGS_NUM){
     CTX.mesh.surfaces_num = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[12]->value(CTX.mesh.surfaces_num);
 #endif
@@ -1909,7 +1909,7 @@ double opt_mesh_volumes_num(OPT_ARGS_NUM){
     CTX.mesh.volumes_num = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[13]->value(CTX.mesh.volumes_num);
 #endif
@@ -1920,7 +1920,7 @@ double opt_mesh_point_size(OPT_ARGS_NUM){
     CTX.mesh.point_size = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[10]->value(CTX.mesh.point_size);
 #endif
@@ -1931,7 +1931,7 @@ double opt_mesh_point_type(OPT_ARGS_NUM){
     CTX.mesh.point_type = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI)){
     WID->mesh_choice[0]->value(CTX.mesh.point_type);
   }
@@ -1943,7 +1943,7 @@ double opt_mesh_line_width(OPT_ARGS_NUM){
     CTX.mesh.line_width = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[11]->value(CTX.mesh.line_width);
 #endif
@@ -1954,7 +1954,7 @@ double opt_mesh_line_type(OPT_ARGS_NUM){
     CTX.mesh.line_type = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI)){
     WID->mesh_choice[1]->value(CTX.mesh.line_type);
   }
@@ -1970,7 +1970,7 @@ double opt_mesh_aspect(OPT_ARGS_NUM){
     }
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI)){
     WID->mesh_butt[14]->value(!CTX.mesh.hidden && !CTX.mesh.shade);
     WID->mesh_butt[15]->value(CTX.mesh.hidden && !CTX.mesh.shade);
@@ -1989,7 +1989,7 @@ double opt_mesh_format(OPT_ARGS_NUM){
 double opt_mesh_nb_smoothing(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.mesh.nb_smoothing = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[0]->value(CTX.mesh.nb_smoothing);
 #endif
@@ -1998,7 +1998,7 @@ double opt_mesh_nb_smoothing(OPT_ARGS_NUM){
 double opt_mesh_algo(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.mesh.algo = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI)){
     WID->mesh_butt[0]->value(CTX.mesh.algo==DELAUNAY_ISO);
     WID->mesh_butt[1]->value(CTX.mesh.algo==DELAUNAY_SHEWCHUK);
@@ -2025,7 +2025,7 @@ double opt_mesh_min_circ_points(OPT_ARGS_NUM){
 double opt_mesh_constrained_bgmesh(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.mesh.constrained_bgmesh = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[5]->value(CTX.mesh.constrained_bgmesh);
 #endif
@@ -2034,7 +2034,7 @@ double opt_mesh_constrained_bgmesh(OPT_ARGS_NUM){
 double opt_mesh_degree(OPT_ARGS_NUM){
   if(action & GMSH_SET)
     CTX.mesh.degree = 1; //(int)val; // INTERDIT POUR LE MOMENT !!!
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[3]->value(CTX.mesh.degree==2);
 #endif
@@ -2050,7 +2050,7 @@ double opt_mesh_dual(OPT_ARGS_NUM){
 double opt_mesh_interactive(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.mesh.interactive = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[4]->value(CTX.mesh.interactive);
 #endif
@@ -2098,7 +2098,7 @@ double opt_mesh_color_scheme(OPT_ARGS_NUM){
     Set_DefaultColorOptions(0, MeshOptions_Color, CTX.mesh.color_scheme);
     Set_ColorOptions_GUI(0, MeshOptions_Color);
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_value[12]->value(CTX.mesh.color_scheme);
 #endif
@@ -2109,7 +2109,7 @@ double opt_mesh_color_carousel(OPT_ARGS_NUM){
     CTX.mesh.color_carousel = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->mesh_butt[17]->value(CTX.mesh.color_carousel);
 #endif
@@ -2160,7 +2160,7 @@ double opt_mesh_display_lists(OPT_ARGS_NUM){
     CTX.mesh.display_lists = (int)val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   //if(WID && (action & GMSH_GUI))
   //WID->mesh_butt[??]->value(CTX.mesh.display_lists);
 #endif
@@ -2169,7 +2169,7 @@ double opt_mesh_display_lists(OPT_ARGS_NUM){
 
 
 double opt_solver_client_server(OPT_ARGS_NUM){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET)
     SINFO[num].client_server = (int)val;
   if(WID && (action & GMSH_GUI))
@@ -2186,7 +2186,7 @@ double opt_solver_client_server3(OPT_ARGS_NUM){ return opt_solver_client_server(
 double opt_solver_client_server4(OPT_ARGS_NUM){ return opt_solver_client_server(4,action,val); }
 
 double opt_solver_popup_messages(OPT_ARGS_NUM){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET)
     SINFO[num].popup_messages = (int)val;
   if(WID && (action & GMSH_GUI))
@@ -2203,7 +2203,7 @@ double opt_solver_popup_messages3(OPT_ARGS_NUM){ return opt_solver_popup_message
 double opt_solver_popup_messages4(OPT_ARGS_NUM){ return opt_solver_popup_messages(4,action,val); }
 
 double opt_solver_merge_views(OPT_ARGS_NUM){
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(action & GMSH_SET)
     SINFO[num].merge_views = (int)val;
   if(WID && (action & GMSH_GUI))
@@ -2227,7 +2227,7 @@ double opt_post_display_lists(OPT_ARGS_NUM){
       for(i=0 ; i<List_Nbr(CTX.post.list) ; i++)
 	((Post_View*)List_Pointer_Test(CTX.post.list, i))->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->gen_butt[4]->value(CTX.post.display_lists);
 #endif
@@ -2241,7 +2241,7 @@ double opt_post_scales(OPT_ARGS_NUM){
 double opt_post_link(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.post.link = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI)){
     WID->post_butt[0]->value(CTX.post.link==0);
     WID->post_butt[1]->value(CTX.post.link==1);
@@ -2255,7 +2255,7 @@ double opt_post_link(OPT_ARGS_NUM){
 double opt_post_smooth(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.post.smooth = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->post_butt[5]->value(CTX.post.smooth);
 #endif
@@ -2264,7 +2264,7 @@ double opt_post_smooth(OPT_ARGS_NUM){
 double opt_post_anim_delay(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.post.anim_delay = (val>=0.)? val : 0. ;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->post_value[0]->value(CTX.post.anim_delay);
 #endif
@@ -2273,7 +2273,7 @@ double opt_post_anim_delay(OPT_ARGS_NUM){
 double opt_post_anim_cycle(OPT_ARGS_NUM){
   if(action & GMSH_SET) 
     CTX.post.anim_cycle = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI))
     WID->post_butt[6]->value(CTX.post.anim_cycle);
   if(WID)
@@ -2291,7 +2291,7 @@ double opt_view_nb_timestep(OPT_ARGS_NUM){
   GET_VIEW(0.) ;
   if(action & GMSH_SET) 
     v->NbTimeStep = (int)val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[50]->maximum(v->NbTimeStep-1);
   if(WID)
@@ -2309,7 +2309,7 @@ double opt_view_timestep(OPT_ARGS_NUM){
       v->TimeStep = v->NbTimeStep-1;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[50]->value(v->TimeStep);
 #endif
@@ -2337,7 +2337,7 @@ double opt_view_custom_min(OPT_ARGS_NUM){
     v->CustomMin = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     WID->view_value[31]->value(v->CustomMin);
   }
@@ -2350,7 +2350,7 @@ double opt_view_custom_max(OPT_ARGS_NUM){
     v->CustomMax = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[32]->value(v->CustomMax);
 #endif
@@ -2362,7 +2362,7 @@ double opt_view_offset0(OPT_ARGS_NUM){
     v->Offset[0] = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[40]->value(v->Offset[0]);
 #endif
@@ -2374,7 +2374,7 @@ double opt_view_offset1(OPT_ARGS_NUM){
     v->Offset[1] = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[41]->value(v->Offset[1]);
 #endif
@@ -2386,7 +2386,7 @@ double opt_view_offset2(OPT_ARGS_NUM){
     v->Offset[2] = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[42]->value(v->Offset[2]);
 #endif
@@ -2398,7 +2398,7 @@ double opt_view_raise0(OPT_ARGS_NUM){
     v->Raise[0] = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[43]->value(v->Raise[0]);
 #endif
@@ -2410,7 +2410,7 @@ double opt_view_raise1(OPT_ARGS_NUM){
     v->Raise[1] = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[44]->value(v->Raise[1]);
 #endif
@@ -2422,7 +2422,7 @@ double opt_view_raise2(OPT_ARGS_NUM){
     v->Raise[2] = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[45]->value(v->Raise[2]);
 #endif
@@ -2434,7 +2434,7 @@ double opt_view_arrow_scale(OPT_ARGS_NUM){
     v->ArrowScale = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[60]->value(v->ArrowScale);
 #endif
@@ -2446,7 +2446,7 @@ double opt_view_explode(OPT_ARGS_NUM){
     v->Explode = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[12]->value(v->Explode);
 #endif
@@ -2457,7 +2457,7 @@ double opt_view_visible(OPT_ARGS_NUM){
   if(action & GMSH_SET){
     v->Visible = (int)val;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && num<NB_BUTT_MAX)
     WID->m_toggle_butt[num]->value(v->Visible);
 #endif
@@ -2474,7 +2474,7 @@ double opt_view_intervals_type(OPT_ARGS_NUM){
     v->IntervalsType = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     switch(v->IntervalsType){
     case DRAW_POST_ISO: WID->view_choice[0]->value(0); break;
@@ -2493,7 +2493,7 @@ double opt_view_saturate_values(OPT_ARGS_NUM){
     v->SaturateValues = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     WID->view_butt[38]->value(v->SaturateValues);
   }
@@ -2507,7 +2507,7 @@ double opt_view_type(OPT_ARGS_NUM){
     v->Type = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     WID->view_butt[1]->value(v->Type==DRAW_POST_3D);
     WID->view_butt[2]->value(v->Type==DRAW_POST_2D_SPACE);
@@ -2523,7 +2523,7 @@ double opt_view_position0(OPT_ARGS_NUM){
     v->Position[0] = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[20]->value(v->Position[0]);
 #endif
@@ -2536,7 +2536,7 @@ double opt_view_position1(OPT_ARGS_NUM){
     v->Position[1] = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[21]->value(v->Position[1]);
 #endif
@@ -2549,7 +2549,7 @@ double opt_view_auto_position(OPT_ARGS_NUM){
     v->AutoPosition = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     WID->view_butt[7]->value(v->AutoPosition);
   }
@@ -2563,7 +2563,7 @@ double opt_view_size0(OPT_ARGS_NUM){
     v->Size[0] = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[22]->value(v->Size[0]);
 #endif
@@ -2576,7 +2576,7 @@ double opt_view_size1(OPT_ARGS_NUM){
     v->Size[1] = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[23]->value(v->Size[1]);
 #endif
@@ -2589,7 +2589,7 @@ double opt_view_grid(OPT_ARGS_NUM){
     v->Grid = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     WID->view_value[26]->value(v->Grid);
   }
@@ -2603,7 +2603,7 @@ double opt_view_nb_abscissa(OPT_ARGS_NUM){
     v->NbAbscissa = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     WID->view_value[25]->value(v->NbAbscissa);
   }
@@ -2617,7 +2617,7 @@ double opt_view_nb_iso(OPT_ARGS_NUM){
     v->NbIso = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[30]->value(v->NbIso);
 #endif
@@ -2629,7 +2629,7 @@ double opt_view_boundary(OPT_ARGS_NUM){
     v->Boundary = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     WID->view_value[11]->value(v->Boundary);
   }
@@ -2642,7 +2642,7 @@ double opt_view_light(OPT_ARGS_NUM){
     v->Light = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[11]->value(v->Light);
 #endif
@@ -2654,7 +2654,7 @@ double opt_view_smooth_normals(OPT_ARGS_NUM){
     v->SmoothNormals = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[12]->value(v->SmoothNormals);
 #endif
@@ -2667,7 +2667,7 @@ double opt_view_angle_smooth_normals(OPT_ARGS_NUM){
     v->AngleSmoothNormals = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[10]->value(v->AngleSmoothNormals);
 #endif
@@ -2679,7 +2679,7 @@ double opt_view_show_element(OPT_ARGS_NUM){
     v->ShowElement = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[10]->value(v->ShowElement);
 #endif
@@ -2690,7 +2690,7 @@ double opt_view_show_time(OPT_ARGS_NUM){
   if(action & GMSH_SET){
     v->ShowTime = (int)val;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[8]->value(v->ShowTime);
 #endif
@@ -2701,7 +2701,7 @@ double opt_view_show_scale(OPT_ARGS_NUM){
   if(action & GMSH_SET){
     v->ShowScale = (int)val;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[4]->value(v->ShowScale);
 #endif
@@ -2713,7 +2713,7 @@ double opt_view_draw_strings(OPT_ARGS_NUM){
     v->DrawStrings = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[5]->value(v->DrawStrings);
 #endif
@@ -2725,7 +2725,7 @@ double opt_view_draw_points(OPT_ARGS_NUM){
     v->DrawPoints = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[13]->value(v->DrawPoints);
 #endif
@@ -2737,7 +2737,7 @@ double opt_view_draw_lines(OPT_ARGS_NUM){
     v->DrawLines = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[14]->value(v->DrawLines);
 #endif
@@ -2749,7 +2749,7 @@ double opt_view_draw_triangles(OPT_ARGS_NUM){
     v->DrawTriangles = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[15]->value(v->DrawTriangles);
 #endif
@@ -2761,7 +2761,7 @@ double opt_view_draw_quadrangles(OPT_ARGS_NUM){
     v->DrawQuadrangles = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[16]->value(v->DrawQuadrangles);
 #endif
@@ -2773,7 +2773,7 @@ double opt_view_draw_tetrahedra(OPT_ARGS_NUM){
     v->DrawTetrahedra = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[17]->value(v->DrawTetrahedra);
 #endif
@@ -2785,7 +2785,7 @@ double opt_view_draw_hexahedra(OPT_ARGS_NUM){
     v->DrawHexahedra = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[18]->value(v->DrawHexahedra);
 #endif
@@ -2797,7 +2797,7 @@ double opt_view_draw_prisms(OPT_ARGS_NUM){
     v->DrawPrisms = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[19]->value(v->DrawPrisms);
 #endif
@@ -2809,7 +2809,7 @@ double opt_view_draw_pyramids(OPT_ARGS_NUM){
     v->DrawPyramids = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[20]->value(v->DrawPyramids);
 #endif
@@ -2821,7 +2821,7 @@ double opt_view_draw_scalars(OPT_ARGS_NUM){
     v->DrawScalars = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[21]->value(v->DrawScalars);
 #endif
@@ -2833,7 +2833,7 @@ double opt_view_draw_vectors(OPT_ARGS_NUM){
     v->DrawVectors = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[22]->value(v->DrawVectors);
 #endif
@@ -2845,7 +2845,7 @@ double opt_view_draw_tensors(OPT_ARGS_NUM){
     v->DrawTensors = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[23]->value(v->DrawTensors);
 #endif
@@ -2856,7 +2856,7 @@ double opt_view_transparent_scale(OPT_ARGS_NUM){
   if(action & GMSH_SET){
     v->TransparentScale = (int)val;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[6]->value(v->TransparentScale);
 #endif
@@ -2868,7 +2868,7 @@ double opt_view_scale_type(OPT_ARGS_NUM){
     v->ScaleType = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     switch(v->ScaleType){
     case DRAW_POST_LINEAR: WID->view_choice[1]->value(0); break;
@@ -2885,7 +2885,7 @@ double opt_view_range_type(OPT_ARGS_NUM){
     v->RangeType = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_butt[34]->value(v->RangeType==DRAW_POST_CUSTOM);
 #endif
@@ -2897,7 +2897,7 @@ double opt_view_tensor_type(OPT_ARGS_NUM){
     v->TensorType = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     switch(v->TensorType){
     case DRAW_POST_VONMISES: WID->view_choice[4]->value(0); break;
@@ -2913,7 +2913,7 @@ double opt_view_arrow_type(OPT_ARGS_NUM){
     v->ArrowType = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     switch(v->ArrowType){
     case DRAW_POST_SEGMENT: WID->view_choice[2]->value(0); break;
@@ -2932,7 +2932,7 @@ double opt_view_arrow_location(OPT_ARGS_NUM){
     v->ArrowLocation = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     switch(v->ArrowLocation){
     case DRAW_POST_LOCATE_COG: WID->view_choice[3]->value(0); break;
@@ -2948,7 +2948,7 @@ double opt_view_point_size(OPT_ARGS_NUM){
     v->PointSize = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[61]->value(v->PointSize);
 #endif
@@ -2960,7 +2960,7 @@ double opt_view_line_width(OPT_ARGS_NUM){
     v->LineWidth = val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number))
     WID->view_value[62]->value(v->LineWidth);
 #endif
@@ -2972,7 +2972,7 @@ double opt_view_point_type(OPT_ARGS_NUM){
     v->PointType = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     WID->view_choice[5]->value(v->PointType?1:0);
   }
@@ -2985,7 +2985,7 @@ double opt_view_line_type(OPT_ARGS_NUM){
     v->LineType = (int)val;
     v->Changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   if(WID && (action & GMSH_GUI) && (num == WID->view_number)){
     WID->view_choice[6]->value(v->LineType?1:0);
   }
@@ -3062,7 +3062,7 @@ double opt_print_gif_transparent(OPT_ARGS_NUM){
 
 // Color option routines
 
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
 
 #if (FL_MAJOR_VERSION == 1) && (FL_MINOR_VERSION == 0)
 #define fl_contrast contrast
@@ -3083,11 +3083,11 @@ double opt_print_gif_transparent(OPT_ARGS_NUM){
 unsigned int opt_general_color_background(OPT_ARGS_COL){
   if(action & GMSH_SET){
     CTX.color.bg = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
     if(WID) WID->view_colorbar_window->redraw();
 #endif
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.bg,WID->gen_col[0]);
 #endif
   return CTX.color.bg;
@@ -3095,7 +3095,7 @@ unsigned int opt_general_color_background(OPT_ARGS_COL){
 unsigned int opt_general_color_foreground(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.fg = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.fg,WID->gen_col[1]);
 #endif
   return CTX.color.fg;
@@ -3103,7 +3103,7 @@ unsigned int opt_general_color_foreground(OPT_ARGS_COL){
 unsigned int opt_general_color_text(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.text = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.text,WID->gen_col[2]);
 #endif
   return CTX.color.text;
@@ -3111,7 +3111,7 @@ unsigned int opt_general_color_text(OPT_ARGS_COL){
 unsigned int opt_general_color_axes(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.axes = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.axes,WID->gen_col[3]);
 #endif
   return CTX.color.axes;
@@ -3119,7 +3119,7 @@ unsigned int opt_general_color_axes(OPT_ARGS_COL){
 unsigned int opt_general_color_small_axes(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.small_axes = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.small_axes,WID->gen_col[4]);
 #endif
   return CTX.color.small_axes;
@@ -3127,7 +3127,7 @@ unsigned int opt_general_color_small_axes(OPT_ARGS_COL){
 unsigned int opt_geometry_color_points(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.point = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.point,WID->geo_col[0]);
 #endif
   return CTX.color.geom.point;
@@ -3135,7 +3135,7 @@ unsigned int opt_geometry_color_points(OPT_ARGS_COL){
 unsigned int opt_geometry_color_lines(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.line = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.line,WID->geo_col[1]);
 #endif
   return CTX.color.geom.line;
@@ -3143,7 +3143,7 @@ unsigned int opt_geometry_color_lines(OPT_ARGS_COL){
 unsigned int opt_geometry_color_surfaces(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.surface = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.surface,WID->geo_col[2]);
 #endif
   return CTX.color.geom.surface;
@@ -3151,7 +3151,7 @@ unsigned int opt_geometry_color_surfaces(OPT_ARGS_COL){
 unsigned int opt_geometry_color_volumes(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.volume = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.volume,WID->geo_col[3]);
 #endif
   return CTX.color.geom.volume;
@@ -3159,7 +3159,7 @@ unsigned int opt_geometry_color_volumes(OPT_ARGS_COL){
 unsigned int opt_geometry_color_points_select(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.point_sel = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.point_sel,WID->geo_col[4]);
 #endif
   return CTX.color.geom.point_sel;
@@ -3167,7 +3167,7 @@ unsigned int opt_geometry_color_points_select(OPT_ARGS_COL){
 unsigned int opt_geometry_color_lines_select(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.line_sel = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.line_sel,WID->geo_col[5]);
 #endif
   return CTX.color.geom.line_sel;
@@ -3175,7 +3175,7 @@ unsigned int opt_geometry_color_lines_select(OPT_ARGS_COL){
 unsigned int opt_geometry_color_surfaces_select(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.surface_sel = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.surface_sel,WID->geo_col[6]);
 #endif
   return CTX.color.geom.surface_sel;
@@ -3183,7 +3183,7 @@ unsigned int opt_geometry_color_surfaces_select(OPT_ARGS_COL){
 unsigned int opt_geometry_color_volumes_select(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.volume_sel = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.volume_sel,WID->geo_col[7]);
 #endif
   return CTX.color.geom.volume_sel;
@@ -3191,7 +3191,7 @@ unsigned int opt_geometry_color_volumes_select(OPT_ARGS_COL){
 unsigned int opt_geometry_color_points_highlight(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.point_hlt = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.point_hlt,WID->geo_col[8]);
 #endif
   return CTX.color.geom.point_hlt;
@@ -3199,7 +3199,7 @@ unsigned int opt_geometry_color_points_highlight(OPT_ARGS_COL){
 unsigned int opt_geometry_color_lines_highlight(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.line_hlt = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.line_hlt,WID->geo_col[9]);
 #endif
   return CTX.color.geom.line_hlt;
@@ -3207,7 +3207,7 @@ unsigned int opt_geometry_color_lines_highlight(OPT_ARGS_COL){
 unsigned int opt_geometry_color_surfaces_highlight(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.surface_hlt = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.surface_hlt,WID->geo_col[10]);
 #endif
   return CTX.color.geom.surface_hlt;
@@ -3215,7 +3215,7 @@ unsigned int opt_geometry_color_surfaces_highlight(OPT_ARGS_COL){
 unsigned int opt_geometry_color_volumes_highlight(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.volume_hlt = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.volume_hlt,WID->geo_col[11]);
 #endif
   return CTX.color.geom.volume_hlt;
@@ -3223,7 +3223,7 @@ unsigned int opt_geometry_color_volumes_highlight(OPT_ARGS_COL){
 unsigned int opt_geometry_color_tangents(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.tangents = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.tangents,WID->geo_col[12]);
 #endif
   return CTX.color.geom.tangents;
@@ -3231,7 +3231,7 @@ unsigned int opt_geometry_color_tangents(OPT_ARGS_COL){
 unsigned int opt_geometry_color_normals(OPT_ARGS_COL){
   if(action & GMSH_SET) 
     CTX.color.geom.normals = val;
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.geom.normals,WID->geo_col[13]);
 #endif
   return CTX.color.geom.normals;
@@ -3241,7 +3241,7 @@ unsigned int opt_mesh_color_points(OPT_ARGS_COL){
     CTX.color.mesh.vertex = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.vertex,WID->mesh_col[0]);
 #endif
   return CTX.color.mesh.vertex;
@@ -3251,7 +3251,7 @@ unsigned int opt_mesh_color_points_supp(OPT_ARGS_COL){
     CTX.color.mesh.vertex_supp = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.vertex_supp,WID->mesh_col[1]);
 #endif
   return CTX.color.mesh.vertex_supp;
@@ -3261,7 +3261,7 @@ unsigned int opt_mesh_color_lines(OPT_ARGS_COL){
     CTX.color.mesh.line = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.line,WID->mesh_col[2]);
 #endif
   return CTX.color.mesh.line;
@@ -3271,7 +3271,7 @@ unsigned int opt_mesh_color_triangles(OPT_ARGS_COL){
     CTX.color.mesh.triangle = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.triangle,WID->mesh_col[3]);
 #endif
   return CTX.color.mesh.triangle;
@@ -3281,7 +3281,7 @@ unsigned int opt_mesh_color_quadrangles(OPT_ARGS_COL){
     CTX.color.mesh.quadrangle = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.quadrangle,WID->mesh_col[4]);
 #endif
   return CTX.color.mesh.quadrangle;
@@ -3291,7 +3291,7 @@ unsigned int opt_mesh_color_tetrahedra(OPT_ARGS_COL){
     CTX.color.mesh.tetrahedron = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.tetrahedron,WID->mesh_col[5]);
 #endif
   return CTX.color.mesh.tetrahedron;
@@ -3301,7 +3301,7 @@ unsigned int opt_mesh_color_hexahedra(OPT_ARGS_COL){
     CTX.color.mesh.hexahedron = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.hexahedron,WID->mesh_col[6]);
 #endif
   return CTX.color.mesh.hexahedron;
@@ -3311,7 +3311,7 @@ unsigned int opt_mesh_color_prisms(OPT_ARGS_COL){
     CTX.color.mesh.prism = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.prism,WID->mesh_col[7]);
 #endif
   return CTX.color.mesh.prism;
@@ -3321,7 +3321,7 @@ unsigned int opt_mesh_color_pyramid(OPT_ARGS_COL){
     CTX.color.mesh.pyramid = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.pyramid,WID->mesh_col[8]);
 #endif
   return CTX.color.mesh.pyramid;
@@ -3331,7 +3331,7 @@ unsigned int opt_mesh_color_tangents(OPT_ARGS_COL){
     CTX.color.mesh.tangents = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.tangents,WID->mesh_col[9]);
 #endif
   return CTX.color.mesh.tangents;
@@ -3341,7 +3341,7 @@ unsigned int opt_mesh_color_normals(OPT_ARGS_COL){
     CTX.color.mesh.normals = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.normals,WID->mesh_col[10]);
 #endif
   return CTX.color.mesh.normals;
@@ -3351,7 +3351,7 @@ unsigned int opt_mesh_color_1(OPT_ARGS_COL){
     CTX.color.mesh.carousel[0] = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.carousel[0],WID->mesh_col[11]);
 #endif
   return CTX.color.mesh.carousel[0];
@@ -3361,7 +3361,7 @@ unsigned int opt_mesh_color_2(OPT_ARGS_COL){
     CTX.color.mesh.carousel[1] = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.carousel[1],WID->mesh_col[12]);
 #endif
   return CTX.color.mesh.carousel[1];
@@ -3371,7 +3371,7 @@ unsigned int opt_mesh_color_3(OPT_ARGS_COL){
     CTX.color.mesh.carousel[2] = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.carousel[2],WID->mesh_col[13]);
 #endif
   return CTX.color.mesh.carousel[2];
@@ -3381,7 +3381,7 @@ unsigned int opt_mesh_color_4(OPT_ARGS_COL){
     CTX.color.mesh.carousel[3] = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.carousel[3],WID->mesh_col[14]);
 #endif
   return CTX.color.mesh.carousel[3];
@@ -3391,7 +3391,7 @@ unsigned int opt_mesh_color_5(OPT_ARGS_COL){
     CTX.color.mesh.carousel[4] = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.carousel[4],WID->mesh_col[15]);
 #endif
   return CTX.color.mesh.carousel[4];
@@ -3401,7 +3401,7 @@ unsigned int opt_mesh_color_6(OPT_ARGS_COL){
     CTX.color.mesh.carousel[5] = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.carousel[5],WID->mesh_col[16]);
 #endif
   return CTX.color.mesh.carousel[5];
@@ -3411,7 +3411,7 @@ unsigned int opt_mesh_color_7(OPT_ARGS_COL){
     CTX.color.mesh.carousel[6] = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.carousel[6],WID->mesh_col[17]);
 #endif
   return CTX.color.mesh.carousel[6];
@@ -3421,7 +3421,7 @@ unsigned int opt_mesh_color_8(OPT_ARGS_COL){
     CTX.color.mesh.carousel[7] = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.carousel[7],WID->mesh_col[18]);
 #endif
   return CTX.color.mesh.carousel[7];
@@ -3431,7 +3431,7 @@ unsigned int opt_mesh_color_9(OPT_ARGS_COL){
     CTX.color.mesh.carousel[8] = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.carousel[8],WID->mesh_col[19]);
 #endif
   return CTX.color.mesh.carousel[8];
@@ -3441,7 +3441,7 @@ unsigned int opt_mesh_color_10(OPT_ARGS_COL){
     CTX.color.mesh.carousel[9] = val;
     CTX.mesh.changed = 1;
   }
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   CCC(CTX.color.mesh.carousel[9],WID->mesh_col[20]);
 #endif
   return CTX.color.mesh.carousel[9];
diff --git a/Common/Views.cpp b/Common/Views.cpp
index d6a1b7cf810b70cb5839f6e0aee8ff2f04ab2799..40fb518f1faabbc1062ae2461df7d1b4198c7309 100644
--- a/Common/Views.cpp
+++ b/Common/Views.cpp
@@ -1,4 +1,4 @@
-// $Id: Views.cpp,v 1.86 2003-02-05 02:05:21 geuzaine Exp $
+// $Id: Views.cpp,v 1.87 2003-02-12 20:27:12 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -307,7 +307,7 @@ void EndView(Post_View *v, int add_in_gui, char *file_name, char *name){
 
   if(CTX.post.smooth) v->smooth();
 
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
   extern int AddViewInUI(int, char *, int);
   if(!CTX.post.force_num && add_in_gui)
     AddViewInUI(List_Nbr(CTX.post.list), v->Name, v->Num);
@@ -394,7 +394,7 @@ void DuplicateView(Post_View *v1, int withoptions){
 
   if(withoptions) CopyViewOptions(v1, v2);
 
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
   extern int AddViewInUI(int, char *, int);
   AddViewInUI(List_Nbr(CTX.post.list), v2->Name, v2->Num);
 #endif
diff --git a/Graphics/Draw.cpp b/Graphics/Draw.cpp
index 82182ba278248e2128c683ac5d586cadd9c46838..51dc5e8daa97a95397e503de3de58eecd1b7926e 100644
--- a/Graphics/Draw.cpp
+++ b/Graphics/Draw.cpp
@@ -1,4 +1,4 @@
-// $Id: Draw.cpp,v 1.34 2003-01-23 20:19:20 geuzaine Exp $
+// $Id: Draw.cpp,v 1.35 2003-02-12 20:27:12 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -38,7 +38,7 @@ void Draw3d(void){
   if(CTX.alpha){
     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
     glEnable(GL_BLEND);
-#ifndef WIN32
+#if !defined(WIN32)
     // This seems to perturb the font rendering on Windows... And
     // everything seems to work fine without, so...
     glEnable(GL_ALPHA);
diff --git a/Graphics/ReadImg.cpp b/Graphics/ReadImg.cpp
index 2c120f43c9b766afb3c0b592c777a40fb9f62412..11d6f4443191c4faca52d000d44f028256e5c61f 100644
--- a/Graphics/ReadImg.cpp
+++ b/Graphics/ReadImg.cpp
@@ -1,4 +1,6 @@
-// Copyright (C) 1997 - 2002 C. Geuzaine, J.-F. Remacle
+// $Id: ReadImg.cpp,v 1.2 2003-02-12 20:27:12 geuzaine Exp $
+//
+// Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
diff --git a/Graphics/ReadImg.h b/Graphics/ReadImg.h
index 23e37cce4c1978409e0c0443192672d56d6c32a6..f41fd46527e899cefa715cbfd445b342dc371460 100644
--- a/Graphics/ReadImg.h
+++ b/Graphics/ReadImg.h
@@ -1,4 +1,25 @@
 #ifndef _READ_IMG_
 #define _READ_IMG_
+
+// Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+// 
+// Please report all bugs and problems to "gmsh@geuz.org".
+
 void read_pnm (char *name);
+
 #endif
diff --git a/Mesh/2D_Mesh_Aniso.cpp b/Mesh/2D_Mesh_Aniso.cpp
index 4487040ac90d1d76e99c851b2bc5fff688454f65..115f9403d586c416315bcc1b329df698b4325171 100644
--- a/Mesh/2D_Mesh_Aniso.cpp
+++ b/Mesh/2D_Mesh_Aniso.cpp
@@ -1,4 +1,4 @@
-// $Id: 2D_Mesh_Aniso.cpp,v 1.31 2003-02-12 09:20:41 remacle Exp $
+// $Id: 2D_Mesh_Aniso.cpp,v 1.32 2003-02-12 20:27:12 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -570,7 +570,7 @@ bool draw_simplex2d (Surface * sur, Simplex * s, bool nouv){
   z[1] = v2.Pos.Z;
   z[2] = v3.Pos.Z;
 
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
   void draw_polygon_2d (double r, double g, double b, int n, 
 			double *x, double *y, double *z);
   if (nouv)
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index f5b3accbc94461003b787315ef3291424379aa7a..4e4e58cf82fdfdfaebdf355d4e97cc703aae1b0c 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -1,428 +1,194 @@
-/* A Bison parser, made from Gmsh.y, by GNU bison 1.75.  */
+/* A Bison parser, made from Gmsh.y
+   by GNU bison 1.35.  */
+
+#define YYBISON 1  /* Identify Bison output.  */
+
+# define	tDOUBLE	257
+# define	tSTRING	258
+# define	tBIGSTR	259
+# define	tEND	260
+# define	tAFFECT	261
+# define	tDOTS	262
+# define	tPi	263
+# define	tMPI_Rank	264
+# define	tMPI_Size	265
+# define	tExp	266
+# define	tLog	267
+# define	tLog10	268
+# define	tSqrt	269
+# define	tSin	270
+# define	tAsin	271
+# define	tCos	272
+# define	tAcos	273
+# define	tTan	274
+# define	tRand	275
+# define	tAtan	276
+# define	tAtan2	277
+# define	tSinh	278
+# define	tCosh	279
+# define	tTanh	280
+# define	tFabs	281
+# define	tFloor	282
+# define	tCeil	283
+# define	tFmod	284
+# define	tModulo	285
+# define	tHypot	286
+# define	tPrintf	287
+# define	tSprintf	288
+# define	tStrCat	289
+# define	tStrPrefix	290
+# define	tDraw	291
+# define	tPoint	292
+# define	tCircle	293
+# define	tEllipse	294
+# define	tLine	295
+# define	tSurface	296
+# define	tSpline	297
+# define	tVolume	298
+# define	tCharacteristic	299
+# define	tLength	300
+# define	tParametric	301
+# define	tElliptic	302
+# define	tPlane	303
+# define	tRuled	304
+# define	tTransfinite	305
+# define	tComplex	306
+# define	tPhysical	307
+# define	tUsing	308
+# define	tBump	309
+# define	tProgression	310
+# define	tPlugin	311
+# define	tRotate	312
+# define	tTranslate	313
+# define	tSymmetry	314
+# define	tDilate	315
+# define	tExtrude	316
+# define	tDuplicata	317
+# define	tLoop	318
+# define	tRecombine	319
+# define	tDelete	320
+# define	tCoherence	321
+# define	tIntersect	322
+# define	tAttractor	323
+# define	tLayers	324
+# define	tScalarPoint	325
+# define	tVectorPoint	326
+# define	tTensorPoint	327
+# define	tScalarLine	328
+# define	tVectorLine	329
+# define	tTensorLine	330
+# define	tScalarTriangle	331
+# define	tVectorTriangle	332
+# define	tTensorTriangle	333
+# define	tScalarQuadrangle	334
+# define	tVectorQuadrangle	335
+# define	tTensorQuadrangle	336
+# define	tScalarTetrahedron	337
+# define	tVectorTetrahedron	338
+# define	tTensorTetrahedron	339
+# define	tScalarHexahedron	340
+# define	tVectorHexahedron	341
+# define	tTensorHexahedron	342
+# define	tScalarPrism	343
+# define	tVectorPrism	344
+# define	tTensorPrism	345
+# define	tScalarPyramid	346
+# define	tVectorPyramid	347
+# define	tTensorPyramid	348
+# define	tText2D	349
+# define	tText3D	350
+# define	tBSpline	351
+# define	tBezier	352
+# define	tNurbs	353
+# define	tOrder	354
+# define	tWith	355
+# define	tBounds	356
+# define	tKnots	357
+# define	tColor	358
+# define	tColorTable	359
+# define	tFor	360
+# define	tIn	361
+# define	tEndFor	362
+# define	tIf	363
+# define	tEndIf	364
+# define	tExit	365
+# define	tReturn	366
+# define	tCall	367
+# define	tFunction	368
+# define	tMesh	369
+# define	tB_SPLINE_SURFACE_WITH_KNOTS	370
+# define	tB_SPLINE_CURVE_WITH_KNOTS	371
+# define	tCARTESIAN_POINT	372
+# define	tTRUE	373
+# define	tFALSE	374
+# define	tUNSPECIFIED	375
+# define	tU	376
+# define	tV	377
+# define	tEDGE_CURVE	378
+# define	tVERTEX_POINT	379
+# define	tORIENTED_EDGE	380
+# define	tPLANE	381
+# define	tFACE_OUTER_BOUND	382
+# define	tEDGE_LOOP	383
+# define	tADVANCED_FACE	384
+# define	tVECTOR	385
+# define	tDIRECTION	386
+# define	tAXIS2_PLACEMENT_3D	387
+# define	tISO	388
+# define	tENDISO	389
+# define	tENDSEC	390
+# define	tDATA	391
+# define	tHEADER	392
+# define	tFILE_DESCRIPTION	393
+# define	tFILE_SCHEMA	394
+# define	tFILE_NAME	395
+# define	tMANIFOLD_SOLID_BREP	396
+# define	tCLOSED_SHELL	397
+# define	tADVANCED_BREP_SHAPE_REPRESENTATION	398
+# define	tFACE_BOUND	399
+# define	tCYLINDRICAL_SURFACE	400
+# define	tCONICAL_SURFACE	401
+# define	tCIRCLE	402
+# define	tTRIMMED_CURVE	403
+# define	tGEOMETRIC_SET	404
+# define	tCOMPOSITE_CURVE_SEGMENT	405
+# define	tCONTINUOUS	406
+# define	tCOMPOSITE_CURVE	407
+# define	tTOROIDAL_SURFACE	408
+# define	tPRODUCT_DEFINITION	409
+# define	tPRODUCT_DEFINITION_SHAPE	410
+# define	tSHAPE_DEFINITION_REPRESENTATION	411
+# define	tELLIPSE	412
+# define	tTrimmed	413
+# define	tSolid	414
+# define	tEndSolid	415
+# define	tVertex	416
+# define	tFacet	417
+# define	tNormal	418
+# define	tOuter	419
+# define	tLoopSTL	420
+# define	tEndLoop	421
+# define	tEndFacet	422
+# define	tAFFECTPLUS	423
+# define	tAFFECTMINUS	424
+# define	tAFFECTTIMES	425
+# define	tAFFECTDIVIDE	426
+# define	tOR	427
+# define	tAND	428
+# define	tEQUAL	429
+# define	tNOTEQUAL	430
+# define	tAPPROXEQUAL	431
+# define	tLESSOREQUAL	432
+# define	tGREATEROREQUAL	433
+# define	tCROSSPRODUCT	434
+# define	tPLUSPLUS	435
+# define	tMINUSMINUS	436
+# define	UNARYPREC	437
 
-/* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
-/* Written by Richard Stallman by simplifying the original so called
-   ``semantic'' parser.  */
-
-/* All symbols defined below should begin with yy or YY, to avoid
-   infringing on user name space.  This should be done even for local
-   variables, as they might otherwise be expanded by user macros.
-   There are some unavoidable exceptions within include files to
-   define necessary library symbols; they are noted "INFRINGES ON
-   USER NAME SPACE" below.  */
-
-/* Identify Bison output.  */
-#define YYBISON	1
-
-/* Pure parsers.  */
-#define YYPURE	0
-
-/* Using locations.  */
-#define YYLSP_NEEDED 0
-
-
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     tDOUBLE = 258,
-     tSTRING = 259,
-     tBIGSTR = 260,
-     tEND = 261,
-     tAFFECT = 262,
-     tDOTS = 263,
-     tPi = 264,
-     tMPI_Rank = 265,
-     tMPI_Size = 266,
-     tExp = 267,
-     tLog = 268,
-     tLog10 = 269,
-     tSqrt = 270,
-     tSin = 271,
-     tAsin = 272,
-     tCos = 273,
-     tAcos = 274,
-     tTan = 275,
-     tRand = 276,
-     tAtan = 277,
-     tAtan2 = 278,
-     tSinh = 279,
-     tCosh = 280,
-     tTanh = 281,
-     tFabs = 282,
-     tFloor = 283,
-     tCeil = 284,
-     tFmod = 285,
-     tModulo = 286,
-     tHypot = 287,
-     tPrintf = 288,
-     tSprintf = 289,
-     tStrCat = 290,
-     tStrPrefix = 291,
-     tDraw = 292,
-     tPoint = 293,
-     tCircle = 294,
-     tEllipse = 295,
-     tLine = 296,
-     tSurface = 297,
-     tSpline = 298,
-     tVolume = 299,
-     tCharacteristic = 300,
-     tLength = 301,
-     tParametric = 302,
-     tElliptic = 303,
-     tPlane = 304,
-     tRuled = 305,
-     tTransfinite = 306,
-     tComplex = 307,
-     tPhysical = 308,
-     tUsing = 309,
-     tBump = 310,
-     tProgression = 311,
-     tPlugin = 312,
-     tRotate = 313,
-     tTranslate = 314,
-     tSymmetry = 315,
-     tDilate = 316,
-     tExtrude = 317,
-     tDuplicata = 318,
-     tLoop = 319,
-     tRecombine = 320,
-     tDelete = 321,
-     tCoherence = 322,
-     tIntersect = 323,
-     tAttractor = 324,
-     tLayers = 325,
-     tScalarPoint = 326,
-     tVectorPoint = 327,
-     tTensorPoint = 328,
-     tScalarLine = 329,
-     tVectorLine = 330,
-     tTensorLine = 331,
-     tScalarTriangle = 332,
-     tVectorTriangle = 333,
-     tTensorTriangle = 334,
-     tScalarQuadrangle = 335,
-     tVectorQuadrangle = 336,
-     tTensorQuadrangle = 337,
-     tScalarTetrahedron = 338,
-     tVectorTetrahedron = 339,
-     tTensorTetrahedron = 340,
-     tScalarHexahedron = 341,
-     tVectorHexahedron = 342,
-     tTensorHexahedron = 343,
-     tScalarPrism = 344,
-     tVectorPrism = 345,
-     tTensorPrism = 346,
-     tScalarPyramid = 347,
-     tVectorPyramid = 348,
-     tTensorPyramid = 349,
-     tText2D = 350,
-     tText3D = 351,
-     tBSpline = 352,
-     tBezier = 353,
-     tNurbs = 354,
-     tOrder = 355,
-     tWith = 356,
-     tBounds = 357,
-     tKnots = 358,
-     tColor = 359,
-     tColorTable = 360,
-     tFor = 361,
-     tIn = 362,
-     tEndFor = 363,
-     tIf = 364,
-     tEndIf = 365,
-     tExit = 366,
-     tReturn = 367,
-     tCall = 368,
-     tFunction = 369,
-     tMesh = 370,
-     tB_SPLINE_SURFACE_WITH_KNOTS = 371,
-     tB_SPLINE_CURVE_WITH_KNOTS = 372,
-     tCARTESIAN_POINT = 373,
-     tTRUE = 374,
-     tFALSE = 375,
-     tUNSPECIFIED = 376,
-     tU = 377,
-     tV = 378,
-     tEDGE_CURVE = 379,
-     tVERTEX_POINT = 380,
-     tORIENTED_EDGE = 381,
-     tPLANE = 382,
-     tFACE_OUTER_BOUND = 383,
-     tEDGE_LOOP = 384,
-     tADVANCED_FACE = 385,
-     tVECTOR = 386,
-     tDIRECTION = 387,
-     tAXIS2_PLACEMENT_3D = 388,
-     tISO = 389,
-     tENDISO = 390,
-     tENDSEC = 391,
-     tDATA = 392,
-     tHEADER = 393,
-     tFILE_DESCRIPTION = 394,
-     tFILE_SCHEMA = 395,
-     tFILE_NAME = 396,
-     tMANIFOLD_SOLID_BREP = 397,
-     tCLOSED_SHELL = 398,
-     tADVANCED_BREP_SHAPE_REPRESENTATION = 399,
-     tFACE_BOUND = 400,
-     tCYLINDRICAL_SURFACE = 401,
-     tCONICAL_SURFACE = 402,
-     tCIRCLE = 403,
-     tTRIMMED_CURVE = 404,
-     tGEOMETRIC_SET = 405,
-     tCOMPOSITE_CURVE_SEGMENT = 406,
-     tCONTINUOUS = 407,
-     tCOMPOSITE_CURVE = 408,
-     tTOROIDAL_SURFACE = 409,
-     tPRODUCT_DEFINITION = 410,
-     tPRODUCT_DEFINITION_SHAPE = 411,
-     tSHAPE_DEFINITION_REPRESENTATION = 412,
-     tELLIPSE = 413,
-     tTrimmed = 414,
-     tSolid = 415,
-     tEndSolid = 416,
-     tVertex = 417,
-     tFacet = 418,
-     tNormal = 419,
-     tOuter = 420,
-     tLoopSTL = 421,
-     tEndLoop = 422,
-     tEndFacet = 423,
-     tAFFECTDIVIDE = 424,
-     tAFFECTTIMES = 425,
-     tAFFECTMINUS = 426,
-     tAFFECTPLUS = 427,
-     tOR = 428,
-     tAND = 429,
-     tAPPROXEQUAL = 430,
-     tNOTEQUAL = 431,
-     tEQUAL = 432,
-     tGREATEROREQUAL = 433,
-     tLESSOREQUAL = 434,
-     tCROSSPRODUCT = 435,
-     UNARYPREC = 436,
-     tMINUSMINUS = 437,
-     tPLUSPLUS = 438
-   };
-#endif
-#define tDOUBLE 258
-#define tSTRING 259
-#define tBIGSTR 260
-#define tEND 261
-#define tAFFECT 262
-#define tDOTS 263
-#define tPi 264
-#define tMPI_Rank 265
-#define tMPI_Size 266
-#define tExp 267
-#define tLog 268
-#define tLog10 269
-#define tSqrt 270
-#define tSin 271
-#define tAsin 272
-#define tCos 273
-#define tAcos 274
-#define tTan 275
-#define tRand 276
-#define tAtan 277
-#define tAtan2 278
-#define tSinh 279
-#define tCosh 280
-#define tTanh 281
-#define tFabs 282
-#define tFloor 283
-#define tCeil 284
-#define tFmod 285
-#define tModulo 286
-#define tHypot 287
-#define tPrintf 288
-#define tSprintf 289
-#define tStrCat 290
-#define tStrPrefix 291
-#define tDraw 292
-#define tPoint 293
-#define tCircle 294
-#define tEllipse 295
-#define tLine 296
-#define tSurface 297
-#define tSpline 298
-#define tVolume 299
-#define tCharacteristic 300
-#define tLength 301
-#define tParametric 302
-#define tElliptic 303
-#define tPlane 304
-#define tRuled 305
-#define tTransfinite 306
-#define tComplex 307
-#define tPhysical 308
-#define tUsing 309
-#define tBump 310
-#define tProgression 311
-#define tPlugin 312
-#define tRotate 313
-#define tTranslate 314
-#define tSymmetry 315
-#define tDilate 316
-#define tExtrude 317
-#define tDuplicata 318
-#define tLoop 319
-#define tRecombine 320
-#define tDelete 321
-#define tCoherence 322
-#define tIntersect 323
-#define tAttractor 324
-#define tLayers 325
-#define tScalarPoint 326
-#define tVectorPoint 327
-#define tTensorPoint 328
-#define tScalarLine 329
-#define tVectorLine 330
-#define tTensorLine 331
-#define tScalarTriangle 332
-#define tVectorTriangle 333
-#define tTensorTriangle 334
-#define tScalarQuadrangle 335
-#define tVectorQuadrangle 336
-#define tTensorQuadrangle 337
-#define tScalarTetrahedron 338
-#define tVectorTetrahedron 339
-#define tTensorTetrahedron 340
-#define tScalarHexahedron 341
-#define tVectorHexahedron 342
-#define tTensorHexahedron 343
-#define tScalarPrism 344
-#define tVectorPrism 345
-#define tTensorPrism 346
-#define tScalarPyramid 347
-#define tVectorPyramid 348
-#define tTensorPyramid 349
-#define tText2D 350
-#define tText3D 351
-#define tBSpline 352
-#define tBezier 353
-#define tNurbs 354
-#define tOrder 355
-#define tWith 356
-#define tBounds 357
-#define tKnots 358
-#define tColor 359
-#define tColorTable 360
-#define tFor 361
-#define tIn 362
-#define tEndFor 363
-#define tIf 364
-#define tEndIf 365
-#define tExit 366
-#define tReturn 367
-#define tCall 368
-#define tFunction 369
-#define tMesh 370
-#define tB_SPLINE_SURFACE_WITH_KNOTS 371
-#define tB_SPLINE_CURVE_WITH_KNOTS 372
-#define tCARTESIAN_POINT 373
-#define tTRUE 374
-#define tFALSE 375
-#define tUNSPECIFIED 376
-#define tU 377
-#define tV 378
-#define tEDGE_CURVE 379
-#define tVERTEX_POINT 380
-#define tORIENTED_EDGE 381
-#define tPLANE 382
-#define tFACE_OUTER_BOUND 383
-#define tEDGE_LOOP 384
-#define tADVANCED_FACE 385
-#define tVECTOR 386
-#define tDIRECTION 387
-#define tAXIS2_PLACEMENT_3D 388
-#define tISO 389
-#define tENDISO 390
-#define tENDSEC 391
-#define tDATA 392
-#define tHEADER 393
-#define tFILE_DESCRIPTION 394
-#define tFILE_SCHEMA 395
-#define tFILE_NAME 396
-#define tMANIFOLD_SOLID_BREP 397
-#define tCLOSED_SHELL 398
-#define tADVANCED_BREP_SHAPE_REPRESENTATION 399
-#define tFACE_BOUND 400
-#define tCYLINDRICAL_SURFACE 401
-#define tCONICAL_SURFACE 402
-#define tCIRCLE 403
-#define tTRIMMED_CURVE 404
-#define tGEOMETRIC_SET 405
-#define tCOMPOSITE_CURVE_SEGMENT 406
-#define tCONTINUOUS 407
-#define tCOMPOSITE_CURVE 408
-#define tTOROIDAL_SURFACE 409
-#define tPRODUCT_DEFINITION 410
-#define tPRODUCT_DEFINITION_SHAPE 411
-#define tSHAPE_DEFINITION_REPRESENTATION 412
-#define tELLIPSE 413
-#define tTrimmed 414
-#define tSolid 415
-#define tEndSolid 416
-#define tVertex 417
-#define tFacet 418
-#define tNormal 419
-#define tOuter 420
-#define tLoopSTL 421
-#define tEndLoop 422
-#define tEndFacet 423
-#define tAFFECTDIVIDE 424
-#define tAFFECTTIMES 425
-#define tAFFECTMINUS 426
-#define tAFFECTPLUS 427
-#define tOR 428
-#define tAND 429
-#define tAPPROXEQUAL 430
-#define tNOTEQUAL 431
-#define tEQUAL 432
-#define tGREATEROREQUAL 433
-#define tLESSOREQUAL 434
-#define tCROSSPRODUCT 435
-#define UNARYPREC 436
-#define tMINUSMINUS 437
-#define tPLUSPLUS 438
-
-
-
-
-/* Copy the first part of user declarations.  */
 #line 1 "Gmsh.y"
  
 
-// $Id: Gmsh.tab.cpp,v 1.148 2003-01-24 23:13:35 geuzaine Exp $
+// $Id: Gmsh.tab.cpp,v 1.149 2003-02-12 20:27:13 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -444,9 +210,7 @@
 // Please report all bugs and problems to "gmsh@geuz.org".
 
 #include <stdarg.h>
-#ifndef _NOPLUGIN
 #include "PluginManager.h"
-#endif
 #include "ParUtil.h"
 #include "Gmsh.h"
 #include "Numeric.h"
@@ -469,10 +233,6 @@
 #include "CreateFile.h"
 #include "STL.h"
 
-#ifdef __DECCXX // bug in bison
-#include <alloca.h>
-#endif
-
 List_T *Symbol_L=NULL;
 
 extern Context_T  CTX;
@@ -508,22 +268,8 @@ void  yymsg (int type, char *fmt, ...);
 void  skip_until (char *skip, char *until);
 int PrintListOfDouble(char *format, List_T *list, char *buffer);
 
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
+#line 84 "Gmsh.y"
 #ifndef YYSTYPE
-#line 90 "Gmsh.y"
 typedef union {
   char    *c;
   int      i;
@@ -533,146 +279,24 @@ typedef union {
   Shape    s;
   List_T  *l;
 } yystype;
-/* Line 193 of /usr/share/bison/yacc.c.  */
-#line 538 "Gmsh.tab.cpp"
 # define YYSTYPE yystype
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
-
-#ifndef YYLTYPE
-typedef struct yyltype
-{
-  int first_line;
-  int first_column;
-  int last_line;
-  int last_column;
-} yyltype;
-# define YYLTYPE yyltype
-# define YYLTYPE_IS_TRIVIAL 1
-#endif
-
-/* Copy the second part of user declarations.  */
-
-
-/* Line 213 of /usr/share/bison/yacc.c.  */
-#line 559 "Gmsh.tab.cpp"
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-/* The parser invokes alloca or malloc; define the necessary symbols.  */
-
-# if YYSTACK_USE_ALLOCA
-#  define YYSTACK_ALLOC alloca
-# else
-#  ifndef YYSTACK_USE_ALLOCA
-#   if defined (alloca) || defined (_ALLOCA_H)
-#    define YYSTACK_ALLOC alloca
-#   else
-#    ifdef __GNUC__
-#     define YYSTACK_ALLOC __builtin_alloca
-#    endif
-#   endif
-#  endif
-# endif
-
-# ifdef YYSTACK_ALLOC
-   /* Pacify GCC's `empty if-body' warning. */
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-#  if defined (__STDC__) || defined (__cplusplus)
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYSIZE_T size_t
-#  endif
-#  define YYSTACK_ALLOC malloc
-#  define YYSTACK_FREE free
-# endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-
-
-#if (! defined (yyoverflow) \
-     && (! defined (__cplusplus) \
-	 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
-/* A type that is properly aligned for any stack member.  */
-union yyalloc
-{
-  short yyss;
-  YYSTYPE yyvs;
-  };
-
-/* The size of the maximum gap between one aligned stack and the next.  */
-# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
-
-/* The size of an array large to enough to hold all stacks, each with
-   N elements.  */
-# define YYSTACK_BYTES(N) \
-     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
-      + YYSTACK_GAP_MAX)
-
-/* Copy COUNT objects from FROM to TO.  The source and destination do
-   not overlap.  */
-# ifndef YYCOPY
-#  if 1 < __GNUC__
-#   define YYCOPY(To, From, Count) \
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-#  else
-#   define YYCOPY(To, From, Count)		\
-      do					\
-	{					\
-	  register YYSIZE_T yyi;		\
-	  for (yyi = 0; yyi < (Count); yyi++)	\
-	    (To)[yyi] = (From)[yyi];	\
-	}					\
-      while (0)
-#  endif
-# endif
-
-/* Relocate STACK from its old location to the new one.  The
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of
-   elements in the stack, and YYPTR gives the new location of the
-   stack.  Advance YYPTR to a properly aligned location for the next
-   stack.  */
-# define YYSTACK_RELOCATE(Stack)					\
-    do									\
-      {									\
-	YYSIZE_T yynewbytes;						\
-	YYCOPY (&yyptr->Stack, Stack, yysize);				\
-	Stack = &yyptr->Stack;						\
-	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;	\
-	yyptr += yynewbytes / sizeof (*yyptr);				\
-      }									\
-    while (0)
-
-#endif
-
-#if defined (__STDC__) || defined (__cplusplus)
-   typedef signed char yysigned_char;
-#else
-   typedef short yysigned_char;
+#ifndef YYDEBUG
+# define YYDEBUG 0
 #endif
 
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL  11
-#define YYLAST   13072
 
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS  202
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  131
-/* YYNRULES -- Number of rules. */
-#define YYNRULES  449
-/* YYNRULES -- Number of states. */
-#define YYNSTATES  2257
 
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
-#define YYUNDEFTOK  2
-#define YYMAXUTOK   438
+#define	YYFINAL		2257
+#define	YYFLAG		-32768
+#define	YYNTBASE	202
 
-#define YYTRANSLATE(X) \
-  ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK)
+/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
+#define YYTRANSLATE(x) ((unsigned)(x) <= 437 ? yytranslate[x] : 332)
 
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
-static const unsigned char yytranslate[] =
+/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
+static const short yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -680,7 +304,7 @@ static const unsigned char yytranslate[] =
        2,     2,     2,   189,     2,     2,     2,   187,     2,     2,
      194,   195,   185,   183,   199,   184,   198,   186,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     179,     2,   180,   173,     2,     2,     2,     2,     2,     2,
+     179,     2,   181,   173,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,   196,     2,   197,   193,     2,     2,     2,     2,     2,
@@ -699,456 +323,456 @@ static const unsigned char yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
-      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
-      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,   171,   172,   174,   175,
-     176,   177,   178,   181,   182,   188,   190,   191,   192
+       2,     2,     2,     2,     2,     2,     1,     3,     4,     5,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
+      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
+      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
+      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
+     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
+     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
+     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
+     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
+     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+     166,   167,   168,   169,   170,   171,   172,   174,   175,   176,
+     177,   178,   180,   182,   188,   190,   191,   192
 };
 
 #if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
-   YYRHS.  */
-static const unsigned short yyprhs[] =
-{
-       0,     0,     3,     5,     7,     9,    12,    14,    17,    19,
-      41,    43,    44,    47,    49,    51,    53,    56,    59,    62,
-      65,    68,    76,    82,   100,   110,   134,   166,   182,   194,
-     206,   222,   232,   246,   256,   268,   282,   292,   302,   314,
-     324,   336,   346,   358,   372,   386,   398,   412,   430,   440,
-     452,   464,   478,   490,   500,   501,   504,   506,   508,   510,
-     512,   514,   516,   518,   520,   522,   524,   526,   528,   530,
-     536,   544,   551,   560,   561,   564,   567,   570,   573,   576,
+static const short yyprhs[] =
+{
+       0,     0,     2,     4,     6,     9,    11,    14,    16,    38,
+      40,    41,    44,    46,    48,    50,    53,    56,    59,    62,
+      65,    73,    79,    97,   107,   131,   163,   179,   191,   203,
+     219,   229,   243,   253,   265,   279,   289,   299,   311,   321,
+     333,   343,   355,   369,   383,   395,   409,   427,   437,   449,
+     461,   475,   487,   497,   498,   501,   503,   505,   507,   509,
+     511,   513,   515,   517,   519,   521,   523,   525,   527,   533,
+     541,   548,   557,   558,   561,   564,   567,   570,   573,   576,
      579,   582,   585,   588,   591,   594,   597,   600,   603,   606,
      609,   612,   615,   618,   621,   624,   627,   630,   633,   636,
-     639,   641,   645,   646,   660,   662,   666,   667,   681,   683,
-     687,   688,   702,   704,   708,   709,   729,   731,   735,   736,
-     756,   758,   762,   763,   783,   785,   789,   790,   816,   818,
-     822,   823,   849,   851,   855,   856,   882,   884,   888,   889,
-     921,   923,   927,   928,   960,   962,   966,   967,   999,  1001,
-    1005,  1006,  1038,  1040,  1044,  1045,  1077,  1079,  1083,  1084,
-    1116,  1118,  1122,  1123,  1179,  1181,  1185,  1186,  1242,  1244,
-    1248,  1249,  1305,  1307,  1311,  1312,  1356,  1358,  1362,  1363,
-    1407,  1409,  1413,  1414,  1458,  1460,  1464,  1465,  1503,  1505,
-    1509,  1510,  1548,  1550,  1554,  1555,  1593,  1595,  1599,  1600,
-    1614,  1616,  1620,  1621,  1637,  1639,  1641,  1643,  1645,  1647,
-    1649,  1651,  1656,  1664,  1674,  1681,  1685,  1692,  1699,  1709,
-    1716,  1726,  1732,  1741,  1750,  1762,  1769,  1779,  1789,  1799,
-    1807,  1816,  1829,  1836,  1844,  1852,  1865,  1873,  1881,  1891,
-    1909,  1918,  1927,  1935,  1943,  1955,  1964,  1977,  1986,  2009,
-    2030,  2039,  2048,  2057,  2065,  2074,  2080,  2092,  2098,  2108,
-    2110,  2112,  2114,  2115,  2118,  2125,  2132,  2139,  2144,  2151,
-    2156,  2163,  2167,  2173,  2177,  2181,  2189,  2192,  2195,  2202,
-    2211,  2220,  2231,  2233,  2236,  2238,  2242,  2247,  2249,  2258,
-    2271,  2286,  2295,  2308,  2323,  2324,  2337,  2338,  2355,  2356,
-    2375,  2384,  2397,  2412,  2413,  2426,  2427,  2444,  2445,  2464,
-    2466,  2469,  2479,  2487,  2490,  2497,  2507,  2517,  2526,  2535,
-    2544,  2551,  2556,  2559,  2562,  2564,  2566,  2568,  2570,  2572,
-    2574,  2578,  2581,  2584,  2587,  2591,  2595,  2599,  2603,  2607,
-    2611,  2615,  2619,  2623,  2627,  2631,  2635,  2639,  2643,  2649,
-    2654,  2659,  2664,  2669,  2674,  2679,  2684,  2689,  2694,  2699,
-    2706,  2711,  2716,  2721,  2726,  2731,  2736,  2743,  2750,  2757,
-    2762,  2767,  2772,  2777,  2782,  2787,  2792,  2797,  2802,  2807,
-    2812,  2819,  2824,  2829,  2834,  2839,  2844,  2849,  2856,  2863,
-    2870,  2875,  2877,  2879,  2881,  2883,  2885,  2890,  2893,  2899,
-    2903,  2910,  2915,  2923,  2925,  2928,  2931,  2935,  2939,  2951,
-    2961,  2969,  2977,  2978,  2982,  2984,  2988,  2989,  2993,  2997,
-    2999,  3003,  3005,  3007,  3011,  3016,  3020,  3026,  3030,  3035,
-    3042,  3050,  3052,  3054,  3058,  3062,  3072,  3080,  3082,  3088,
-    3092,  3099,  3101,  3105,  3107,  3114,  3119,  3124,  3131,  3138
+     638,   642,   643,   657,   659,   663,   664,   678,   680,   684,
+     685,   699,   701,   705,   706,   726,   728,   732,   733,   753,
+     755,   759,   760,   780,   782,   786,   787,   813,   815,   819,
+     820,   846,   848,   852,   853,   879,   881,   885,   886,   918,
+     920,   924,   925,   957,   959,   963,   964,   996,   998,  1002,
+    1003,  1035,  1037,  1041,  1042,  1074,  1076,  1080,  1081,  1113,
+    1115,  1119,  1120,  1176,  1178,  1182,  1183,  1239,  1241,  1245,
+    1246,  1302,  1304,  1308,  1309,  1353,  1355,  1359,  1360,  1404,
+    1406,  1410,  1411,  1455,  1457,  1461,  1462,  1500,  1502,  1506,
+    1507,  1545,  1547,  1551,  1552,  1590,  1592,  1596,  1597,  1611,
+    1613,  1617,  1618,  1634,  1636,  1638,  1640,  1642,  1644,  1646,
+    1648,  1653,  1661,  1671,  1678,  1682,  1689,  1696,  1706,  1713,
+    1723,  1729,  1738,  1747,  1759,  1766,  1776,  1786,  1796,  1804,
+    1813,  1826,  1833,  1841,  1849,  1862,  1870,  1878,  1888,  1906,
+    1915,  1924,  1932,  1940,  1952,  1961,  1974,  1983,  2006,  2027,
+    2036,  2045,  2054,  2062,  2071,  2077,  2089,  2095,  2105,  2107,
+    2109,  2111,  2112,  2115,  2122,  2129,  2136,  2141,  2148,  2153,
+    2160,  2164,  2170,  2174,  2178,  2186,  2189,  2192,  2199,  2208,
+    2217,  2228,  2230,  2233,  2235,  2239,  2244,  2246,  2255,  2268,
+    2283,  2292,  2305,  2320,  2321,  2334,  2335,  2352,  2353,  2372,
+    2381,  2394,  2409,  2410,  2423,  2424,  2441,  2442,  2461,  2463,
+    2466,  2476,  2484,  2487,  2494,  2504,  2514,  2523,  2532,  2541,
+    2548,  2553,  2556,  2559,  2561,  2563,  2565,  2567,  2569,  2571,
+    2575,  2578,  2581,  2584,  2588,  2592,  2596,  2600,  2604,  2608,
+    2612,  2616,  2620,  2624,  2628,  2632,  2636,  2640,  2646,  2651,
+    2656,  2661,  2666,  2671,  2676,  2681,  2686,  2691,  2696,  2703,
+    2708,  2713,  2718,  2723,  2728,  2733,  2740,  2747,  2754,  2759,
+    2764,  2769,  2774,  2779,  2784,  2789,  2794,  2799,  2804,  2809,
+    2816,  2821,  2826,  2831,  2836,  2841,  2846,  2853,  2860,  2867,
+    2872,  2874,  2876,  2878,  2880,  2882,  2887,  2890,  2896,  2900,
+    2907,  2912,  2920,  2922,  2925,  2928,  2932,  2936,  2948,  2958,
+    2966,  2974,  2975,  2979,  2981,  2985,  2986,  2990,  2994,  2996,
+    3000,  3002,  3004,  3008,  3013,  3017,  3023,  3027,  3032,  3039,
+    3047,  3049,  3051,  3055,  3059,  3069,  3077,  3079,  3085,  3089,
+    3096,  3098,  3102,  3104,  3111,  3116,  3121,  3128,  3135
 };
-
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
 static const short yyrhs[] =
 {
-     203,     0,    -1,   206,    -1,   205,    -1,   211,    -1,     1,
-       6,    -1,     3,    -1,   184,     3,    -1,   160,    -1,   163,
-     164,   204,   204,   204,   165,   166,   162,   204,   204,   204,
-     162,   204,   204,   204,   162,   204,   204,   204,   167,   168,
-      -1,   161,    -1,    -1,   206,   207,    -1,   208,    -1,   210,
-      -1,   209,    -1,   134,     6,    -1,   135,     6,    -1,   137,
-       6,    -1,   136,     6,    -1,   138,     6,    -1,   139,   194,
-     322,   199,     5,   195,     6,    -1,   140,   194,   322,   195,
-       6,    -1,   141,   194,     5,   199,     5,   199,   322,   199,
-     322,   199,     5,   199,     5,   199,     5,   195,     6,    -1,
-       3,     7,   118,   194,     5,   199,   320,   195,     6,    -1,
-       3,     7,   117,   194,     5,   199,   318,   199,   326,   199,
-     317,   199,   317,   199,   317,   199,   326,   199,   326,   199,
-     317,   195,     6,    -1,     3,     7,   116,   194,     5,   199,
-     318,   199,   318,   199,   324,   199,   317,   199,   317,   199,
-     317,   199,   317,   199,   326,   199,   326,   199,   326,   199,
-     326,   199,   317,   195,     6,    -1,     3,     7,   124,   194,
-       5,   199,     3,   199,     3,   199,     3,   199,   317,   195,
-       6,    -1,     3,     7,   128,   194,     5,   199,     3,   199,
-     317,   195,     6,    -1,     3,     7,   145,   194,     5,   199,
-       3,   199,   317,   195,     6,    -1,     3,     7,   126,   194,
-       5,   199,   185,   199,   185,   199,   318,   199,   317,   195,
-       6,    -1,     3,     7,   129,   194,     5,   199,   326,   195,
-       6,    -1,     3,     7,   130,   194,     5,   199,   326,   199,
-       3,   199,   317,   195,     6,    -1,     3,     7,   125,   194,
-       5,   199,     3,   195,     6,    -1,     3,     7,   131,   194,
-       5,   199,     3,   199,   318,   195,     6,    -1,     3,     7,
-     133,   194,     5,   199,     3,   199,     3,   199,     3,   195,
-       6,    -1,     3,     7,   132,   194,     5,   199,   320,   195,
-       6,    -1,     3,     7,   127,   194,     5,   199,     3,   195,
-       6,    -1,     3,     7,    41,   194,     5,   199,     3,   199,
-       3,   195,     6,    -1,     3,     7,   143,   194,     5,   199,
-     326,   195,     6,    -1,     3,     7,   144,   194,     5,   199,
-     326,   199,     3,   195,     6,    -1,     3,     7,   142,   194,
-       5,   199,     3,   195,     6,    -1,     3,     7,   146,   194,
-       5,   199,     3,   199,   318,   195,     6,    -1,     3,     7,
-     147,   194,     5,   199,     3,   199,   318,   199,   318,   195,
-       6,    -1,     3,     7,   154,   194,     5,   199,     3,   199,
-     318,   199,   318,   195,     6,    -1,     3,     7,   148,   194,
-       5,   199,     3,   199,   318,   195,     6,    -1,     3,     7,
-     158,   194,     5,   199,     3,   199,   318,   199,   318,   195,
-       6,    -1,     3,     7,   149,   194,     5,   199,     3,   199,
-     326,   199,   326,   199,   317,   199,   317,   195,     6,    -1,
-       3,     7,   150,   194,     5,   199,   326,   195,     6,    -1,
-       3,     7,   151,   194,   152,   199,   317,   199,     3,   195,
-       6,    -1,     3,     7,   153,   194,     5,   199,   326,   199,
-     317,   195,     6,    -1,     3,     7,   155,   194,     5,   199,
-       5,   199,     3,   199,     3,   195,     6,    -1,     3,     7,
-     156,   194,     5,   199,     5,   199,     3,   195,     6,    -1,
-       3,     7,   157,   194,     3,   199,     3,   195,     6,    -1,
-      -1,   211,   212,    -1,   214,    -1,   213,    -1,   296,    -1,
-     297,    -1,   298,    -1,   301,    -1,   302,    -1,   303,    -1,
-     306,    -1,   315,    -1,   316,    -1,   305,    -1,   304,    -1,
-      33,   194,     5,   195,     6,    -1,    33,   194,     5,   199,
-     328,   195,     6,    -1,     4,     5,   200,   215,   201,     6,
-      -1,     4,     5,     4,   320,   200,   215,   201,     6,    -1,
-      -1,   215,   217,    -1,   215,   220,    -1,   215,   223,    -1,
-     215,   226,    -1,   215,   229,    -1,   215,   232,    -1,   215,
-     235,    -1,   215,   238,    -1,   215,   241,    -1,   215,   244,
-      -1,   215,   247,    -1,   215,   250,    -1,   215,   253,    -1,
-     215,   256,    -1,   215,   259,    -1,   215,   262,    -1,   215,
-     265,    -1,   215,   268,    -1,   215,   271,    -1,   215,   274,
-      -1,   215,   277,    -1,   215,   280,    -1,   215,   283,    -1,
-     215,   286,    -1,   215,   289,    -1,   215,   292,    -1,   318,
-      -1,   216,   199,   318,    -1,    -1,    71,   194,   318,   199,
-     318,   199,   318,   195,   218,   200,   216,   201,     6,    -1,
-     318,    -1,   219,   199,   318,    -1,    -1,    72,   194,   318,
-     199,   318,   199,   318,   195,   221,   200,   219,   201,     6,
-      -1,   318,    -1,   222,   199,   318,    -1,    -1,    73,   194,
-     318,   199,   318,   199,   318,   195,   224,   200,   222,   201,
-       6,    -1,   318,    -1,   225,   199,   318,    -1,    -1,    74,
-     194,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   195,   227,   200,   225,   201,     6,    -1,   318,
-      -1,   228,   199,   318,    -1,    -1,    75,   194,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   195,
-     230,   200,   228,   201,     6,    -1,   318,    -1,   231,   199,
-     318,    -1,    -1,    76,   194,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   195,   233,   200,   231,
-     201,     6,    -1,   318,    -1,   234,   199,   318,    -1,    -1,
-      77,   194,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   195,
-     236,   200,   234,   201,     6,    -1,   318,    -1,   237,   199,
-     318,    -1,    -1,    78,   194,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   195,   239,   200,   237,   201,     6,    -1,   318,
-      -1,   240,   199,   318,    -1,    -1,    79,   194,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   195,   242,   200,   240,   201,
-       6,    -1,   318,    -1,   243,   199,   318,    -1,    -1,    80,
-     194,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   195,   245,   200,   243,   201,     6,
-      -1,   318,    -1,   246,   199,   318,    -1,    -1,    81,   194,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   195,   248,   200,   246,   201,     6,    -1,
-     318,    -1,   249,   199,   318,    -1,    -1,    82,   194,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   195,   251,   200,   249,   201,     6,    -1,   318,
-      -1,   252,   199,   318,    -1,    -1,    83,   194,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   195,   254,   200,   252,   201,     6,    -1,   318,    -1,
-     255,   199,   318,    -1,    -1,    84,   194,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     195,   257,   200,   255,   201,     6,    -1,   318,    -1,   258,
-     199,   318,    -1,    -1,    85,   194,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   195,
-     260,   200,   258,   201,     6,    -1,   318,    -1,   261,   199,
-     318,    -1,    -1,    86,   194,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   195,   263,   200,   261,   201,     6,    -1,   318,
-      -1,   264,   199,   318,    -1,    -1,    87,   194,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   195,   266,   200,   264,   201,
-       6,    -1,   318,    -1,   267,   199,   318,    -1,    -1,    88,
-     194,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   195,   269,
-     200,   267,   201,     6,    -1,   318,    -1,   270,   199,   318,
-      -1,    -1,    89,   194,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   195,
-     272,   200,   270,   201,     6,    -1,   318,    -1,   273,   199,
-     318,    -1,    -1,    90,   194,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     195,   275,   200,   273,   201,     6,    -1,   318,    -1,   276,
-     199,   318,    -1,    -1,    91,   194,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   195,   278,   200,   276,   201,     6,    -1,   318,    -1,
-     279,   199,   318,    -1,    -1,    92,   194,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   195,   281,   200,   279,
-     201,     6,    -1,   318,    -1,   282,   199,   318,    -1,    -1,
-      93,   194,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   199,
-     318,   195,   284,   200,   282,   201,     6,    -1,   318,    -1,
-     285,   199,   318,    -1,    -1,    94,   194,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   199,   318,   199,   318,
-     199,   318,   199,   318,   199,   318,   195,   287,   200,   285,
-     201,     6,    -1,   332,    -1,   288,   199,   332,    -1,    -1,
-      95,   194,   318,   199,   318,   199,   318,   195,   290,   200,
-     288,   201,     6,    -1,   332,    -1,   291,   199,   332,    -1,
-      -1,    96,   194,   318,   199,   318,   199,   318,   199,   318,
-     195,   293,   200,   291,   201,     6,    -1,     7,    -1,   172,
-      -1,   171,    -1,   170,    -1,   169,    -1,   192,    -1,   191,
-      -1,     4,   294,   318,     6,    -1,     4,   196,   318,   197,
-     294,   318,     6,    -1,     4,   196,   200,   328,   201,   197,
-     294,   326,     6,    -1,     4,   196,   197,     7,   326,     6,
-      -1,     4,   295,     6,    -1,     4,   196,   318,   197,   295,
-       6,    -1,     4,   198,     4,     7,   332,     6,    -1,     4,
-     196,   318,   197,   198,     4,     7,   332,     6,    -1,     4,
-     198,     4,   294,   318,     6,    -1,     4,   196,   318,   197,
-     198,     4,   294,   318,     6,    -1,     4,   198,     4,   295,
-       6,    -1,     4,   196,   318,   197,   198,     4,   295,     6,
-      -1,     4,   198,   104,   198,     4,     7,   329,     6,    -1,
-       4,   196,   318,   197,   198,   104,   198,     4,     7,   329,
-       6,    -1,     4,   198,   105,     7,   330,     6,    -1,     4,
-     196,   318,   197,   198,   105,     7,   330,     6,    -1,    57,
-     194,     4,   195,   198,     4,     7,   318,     6,    -1,    57,
-     194,     4,   195,   198,     4,     7,   332,     6,    -1,    38,
-     194,   318,   195,     7,   320,     6,    -1,    53,    38,   194,
-     318,   195,     7,   326,     6,    -1,    69,    38,   326,     7,
-     200,   318,   199,   318,   199,   318,   201,     6,    -1,    45,
-      46,   326,     7,   318,     6,    -1,    41,   194,   318,   195,
-       7,   326,     6,    -1,    43,   194,   318,   195,     7,   326,
-       6,    -1,    69,    41,   326,     7,   200,   318,   199,   318,
-     199,   318,   201,     6,    -1,    39,   194,   318,   195,     7,
-     326,     6,    -1,    40,   194,   318,   195,     7,   326,     6,
-      -1,    39,   194,   318,   195,     7,   326,    49,   320,     6,
-      -1,    47,   194,   318,   195,     7,   200,   318,   199,   318,
-     199,     5,   199,     5,   199,     5,   201,     6,    -1,    53,
-      41,   194,   318,   195,     7,   326,     6,    -1,    41,    64,
-     194,   318,   195,     7,   326,     6,    -1,    97,   194,   318,
-     195,     7,   326,     6,    -1,    98,   194,   318,   195,     7,
-     326,     6,    -1,    99,   194,   318,   195,     7,   326,   103,
-     326,   100,   318,     6,    -1,    49,    42,   194,   318,   195,
-       7,   326,     6,    -1,   159,    42,   194,   318,   195,     7,
-     200,   318,   199,   326,   201,     6,    -1,    50,    42,   194,
-     318,   195,     7,   326,     6,    -1,    99,    42,   101,   102,
-     194,   318,   195,     7,   324,   103,   200,   326,   199,   326,
-     201,   100,   200,   318,   199,   318,   201,     6,    -1,    99,
-      42,   194,   318,   195,     7,   324,   103,   200,   326,   199,
-     326,   201,   100,   200,   318,   199,   318,   201,     6,    -1,
-      53,    42,   194,   318,   195,     7,   326,     6,    -1,    42,
-      64,   194,   318,   195,     7,   326,     6,    -1,    52,    44,
-     194,   318,   195,     7,   326,     6,    -1,    44,   194,   318,
-     195,     7,   326,     6,    -1,    53,    44,   194,   318,   195,
-       7,   326,     6,    -1,    59,   320,   200,   299,   201,    -1,
-      58,   200,   320,   199,   320,   199,   318,   201,   200,   299,
-     201,    -1,    60,   320,   200,   299,   201,    -1,    61,   200,
-     320,   199,   318,   201,   200,   299,   201,    -1,   301,    -1,
-     300,    -1,   298,    -1,    -1,   300,   297,    -1,   300,    38,
-     200,   328,   201,     6,    -1,   300,    41,   200,   328,   201,
-       6,    -1,   300,    42,   200,   328,   201,     6,    -1,    63,
-     200,   300,   201,    -1,    63,     4,   196,   318,   197,     6,
-      -1,    66,   200,   300,   201,    -1,    66,     4,   196,   318,
-     197,     6,    -1,    66,   115,     6,    -1,   104,   329,   200,
-     300,   201,    -1,     4,   332,     6,    -1,     4,   318,     6,
-      -1,    57,   194,     4,   195,   198,     4,     6,    -1,   111,
-       6,    -1,    37,     6,    -1,   106,   194,   318,     8,   318,
-     195,    -1,   106,   194,   318,     8,   318,     8,   318,   195,
-      -1,   106,     4,   107,   200,   318,     8,   318,   201,    -1,
-     106,     4,   107,   200,   318,     8,   318,     8,   318,   201,
-      -1,   108,    -1,   114,     4,    -1,   112,    -1,   113,     4,
-       6,    -1,   109,   194,   318,   195,    -1,   110,    -1,    62,
-      38,   200,   318,   199,   320,   201,     6,    -1,    62,    38,
-     200,   318,   199,   320,   199,   320,   199,   318,   201,     6,
-      -1,    62,    38,   200,   318,   199,   320,   199,   320,   199,
-     320,   199,   318,   201,     6,    -1,    62,    41,   200,   318,
-     199,   320,   201,     6,    -1,    62,    41,   200,   318,   199,
-     320,   199,   320,   199,   318,   201,     6,    -1,    62,    41,
-     200,   318,   199,   320,   199,   320,   199,   320,   199,   318,
-     201,     6,    -1,    -1,    62,    41,   200,   318,   199,   320,
-     201,   307,   200,   313,   201,     6,    -1,    -1,    62,    41,
-     200,   318,   199,   320,   199,   320,   199,   318,   201,   308,
-     200,   313,   201,     6,    -1,    -1,    62,    41,   200,   318,
-     199,   320,   199,   320,   199,   320,   199,   318,   201,   309,
-     200,   313,   201,     6,    -1,    62,    42,   200,   318,   199,
-     320,   201,     6,    -1,    62,    42,   200,   318,   199,   320,
-     199,   320,   199,   318,   201,     6,    -1,    62,    42,   200,
-     318,   199,   320,   199,   320,   199,   320,   199,   318,   201,
-       6,    -1,    -1,    62,    42,   200,   318,   199,   320,   201,
-     310,   200,   313,   201,     6,    -1,    -1,    62,    42,   200,
-     318,   199,   320,   199,   320,   199,   318,   201,   311,   200,
-     313,   201,     6,    -1,    -1,    62,    42,   200,   318,   199,
-     320,   199,   320,   199,   320,   199,   318,   201,   312,   200,
-     313,   201,     6,    -1,   314,    -1,   313,   314,    -1,    70,
-     200,   326,   199,   326,   199,   326,   201,     6,    -1,    70,
-     200,   326,   199,   326,   201,     6,    -1,    65,     6,    -1,
-      51,    41,   326,     7,   318,     6,    -1,    51,    41,   326,
-       7,   318,    54,    56,   318,     6,    -1,    51,    41,   326,
-       7,   318,    54,    55,   318,     6,    -1,    51,    42,   200,
-     318,   201,     7,   326,     6,    -1,    48,    42,   200,   318,
-     201,     7,   326,     6,    -1,    51,    44,   200,   318,   201,
-       7,   326,     6,    -1,    65,    42,   326,     7,   318,     6,
-      -1,    65,    42,   326,     6,    -1,    67,     6,    -1,    68,
-       6,    -1,   119,    -1,   120,    -1,   121,    -1,   122,    -1,
-     123,    -1,   319,    -1,   194,   318,   195,    -1,   184,   318,
-      -1,   183,   318,    -1,   189,   318,    -1,   318,   184,   318,
-      -1,   318,   183,   318,    -1,   318,   185,   318,    -1,   318,
-     186,   318,    -1,   318,   187,   318,    -1,   318,   193,   318,
-      -1,   318,   179,   318,    -1,   318,   180,   318,    -1,   318,
-     182,   318,    -1,   318,   181,   318,    -1,   318,   178,   318,
-      -1,   318,   177,   318,    -1,   318,   175,   318,    -1,   318,
-     174,   318,    -1,   318,   173,   318,     8,   318,    -1,    12,
-     194,   318,   195,    -1,    13,   194,   318,   195,    -1,    14,
-     194,   318,   195,    -1,    15,   194,   318,   195,    -1,    16,
-     194,   318,   195,    -1,    17,   194,   318,   195,    -1,    18,
-     194,   318,   195,    -1,    19,   194,   318,   195,    -1,    20,
-     194,   318,   195,    -1,    22,   194,   318,   195,    -1,    23,
-     194,   318,   199,   318,   195,    -1,    24,   194,   318,   195,
-      -1,    25,   194,   318,   195,    -1,    26,   194,   318,   195,
-      -1,    27,   194,   318,   195,    -1,    28,   194,   318,   195,
-      -1,    29,   194,   318,   195,    -1,    30,   194,   318,   199,
-     318,   195,    -1,    31,   194,   318,   199,   318,   195,    -1,
-      32,   194,   318,   199,   318,   195,    -1,    21,   194,   318,
-     195,    -1,    12,   196,   318,   197,    -1,    13,   196,   318,
-     197,    -1,    14,   196,   318,   197,    -1,    15,   196,   318,
-     197,    -1,    16,   196,   318,   197,    -1,    17,   196,   318,
-     197,    -1,    18,   196,   318,   197,    -1,    19,   196,   318,
-     197,    -1,    20,   196,   318,   197,    -1,    22,   196,   318,
-     197,    -1,    23,   196,   318,   199,   318,   197,    -1,    24,
-     196,   318,   197,    -1,    25,   196,   318,   197,    -1,    26,
-     196,   318,   197,    -1,    27,   196,   318,   197,    -1,    28,
-     196,   318,   197,    -1,    29,   196,   318,   197,    -1,    30,
-     196,   318,   199,   318,   197,    -1,    31,   196,   318,   199,
-     318,   197,    -1,    32,   196,   318,   199,   318,   197,    -1,
-      21,   196,   318,   197,    -1,     3,    -1,     9,    -1,    10,
-      -1,    11,    -1,     4,    -1,     4,   196,   318,   197,    -1,
-       4,   295,    -1,     4,   196,   318,   197,   295,    -1,     4,
-     198,     4,    -1,     4,   196,   318,   197,   198,     4,    -1,
-       4,   198,     4,   295,    -1,     4,   196,   318,   197,   198,
-       4,   295,    -1,   321,    -1,   184,   320,    -1,   183,   320,
-      -1,   320,   184,   320,    -1,   320,   183,   320,    -1,   200,
-     318,   199,   318,   199,   318,   199,   318,   199,   318,   201,
-      -1,   200,   318,   199,   318,   199,   318,   199,   318,   201,
-      -1,   200,   318,   199,   318,   199,   318,   201,    -1,   194,
-     318,   199,   318,   199,   318,   195,    -1,    -1,   194,   323,
-     195,    -1,     5,    -1,   323,   199,     5,    -1,    -1,   200,
-     325,   201,    -1,   194,   325,   195,    -1,   326,    -1,   325,
-     199,   326,    -1,   318,    -1,   327,    -1,   200,   328,   201,
-      -1,   184,   200,   328,   201,    -1,   318,     8,   318,    -1,
-     318,     8,   318,     8,   318,    -1,     4,   196,   197,    -1,
-     184,     4,   196,   197,    -1,     4,   196,   200,   328,   201,
-     197,    -1,   184,     4,   196,   200,   328,   201,   197,    -1,
-     318,    -1,   327,    -1,   328,   199,   318,    -1,   328,   199,
-     327,    -1,   200,   318,   199,   318,   199,   318,   199,   318,
-     201,    -1,   200,   318,   199,   318,   199,   318,   201,    -1,
-       4,    -1,     4,   198,   104,   198,     4,    -1,   200,   331,
-     201,    -1,     4,   196,   318,   197,   198,   105,    -1,   329,
-      -1,   331,   199,   329,    -1,     5,    -1,    35,   194,   332,
-     199,   332,   195,    -1,    36,   194,   332,   195,    -1,    34,
-     194,   332,   195,    -1,    34,   194,   332,   199,   328,   195,
-      -1,    34,   194,     4,   198,     4,   195,    -1,    34,   194,
-       4,   196,   318,   197,   198,     4,   195,    -1
+     205,     0,   204,     0,   210,     0,     1,     6,     0,     3,
+       0,   184,     3,     0,   160,     0,   163,   164,   203,   203,
+     203,   165,   166,   162,   203,   203,   203,   162,   203,   203,
+     203,   162,   203,   203,   203,   167,   168,     0,   161,     0,
+       0,   205,   206,     0,   207,     0,   209,     0,   208,     0,
+     134,     6,     0,   135,     6,     0,   137,     6,     0,   136,
+       6,     0,   138,     6,     0,   139,   194,   321,   199,     5,
+     195,     6,     0,   140,   194,   321,   195,     6,     0,   141,
+     194,     5,   199,     5,   199,   321,   199,   321,   199,     5,
+     199,     5,   199,     5,   195,     6,     0,     3,     7,   118,
+     194,     5,   199,   319,   195,     6,     0,     3,     7,   117,
+     194,     5,   199,   317,   199,   325,   199,   316,   199,   316,
+     199,   316,   199,   325,   199,   325,   199,   316,   195,     6,
+       0,     3,     7,   116,   194,     5,   199,   317,   199,   317,
+     199,   323,   199,   316,   199,   316,   199,   316,   199,   316,
+     199,   325,   199,   325,   199,   325,   199,   325,   199,   316,
+     195,     6,     0,     3,     7,   124,   194,     5,   199,     3,
+     199,     3,   199,     3,   199,   316,   195,     6,     0,     3,
+       7,   128,   194,     5,   199,     3,   199,   316,   195,     6,
+       0,     3,     7,   145,   194,     5,   199,     3,   199,   316,
+     195,     6,     0,     3,     7,   126,   194,     5,   199,   185,
+     199,   185,   199,   317,   199,   316,   195,     6,     0,     3,
+       7,   129,   194,     5,   199,   325,   195,     6,     0,     3,
+       7,   130,   194,     5,   199,   325,   199,     3,   199,   316,
+     195,     6,     0,     3,     7,   125,   194,     5,   199,     3,
+     195,     6,     0,     3,     7,   131,   194,     5,   199,     3,
+     199,   317,   195,     6,     0,     3,     7,   133,   194,     5,
+     199,     3,   199,     3,   199,     3,   195,     6,     0,     3,
+       7,   132,   194,     5,   199,   319,   195,     6,     0,     3,
+       7,   127,   194,     5,   199,     3,   195,     6,     0,     3,
+       7,    41,   194,     5,   199,     3,   199,     3,   195,     6,
+       0,     3,     7,   143,   194,     5,   199,   325,   195,     6,
+       0,     3,     7,   144,   194,     5,   199,   325,   199,     3,
+     195,     6,     0,     3,     7,   142,   194,     5,   199,     3,
+     195,     6,     0,     3,     7,   146,   194,     5,   199,     3,
+     199,   317,   195,     6,     0,     3,     7,   147,   194,     5,
+     199,     3,   199,   317,   199,   317,   195,     6,     0,     3,
+       7,   154,   194,     5,   199,     3,   199,   317,   199,   317,
+     195,     6,     0,     3,     7,   148,   194,     5,   199,     3,
+     199,   317,   195,     6,     0,     3,     7,   158,   194,     5,
+     199,     3,   199,   317,   199,   317,   195,     6,     0,     3,
+       7,   149,   194,     5,   199,     3,   199,   325,   199,   325,
+     199,   316,   199,   316,   195,     6,     0,     3,     7,   150,
+     194,     5,   199,   325,   195,     6,     0,     3,     7,   151,
+     194,   152,   199,   316,   199,     3,   195,     6,     0,     3,
+       7,   153,   194,     5,   199,   325,   199,   316,   195,     6,
+       0,     3,     7,   155,   194,     5,   199,     5,   199,     3,
+     199,     3,   195,     6,     0,     3,     7,   156,   194,     5,
+     199,     5,   199,     3,   195,     6,     0,     3,     7,   157,
+     194,     3,   199,     3,   195,     6,     0,     0,   210,   211,
+       0,   213,     0,   212,     0,   295,     0,   296,     0,   297,
+       0,   300,     0,   301,     0,   302,     0,   305,     0,   314,
+       0,   315,     0,   304,     0,   303,     0,    33,   194,     5,
+     195,     6,     0,    33,   194,     5,   199,   327,   195,     6,
+       0,     4,     5,   200,   214,   201,     6,     0,     4,     5,
+       4,   319,   200,   214,   201,     6,     0,     0,   214,   216,
+       0,   214,   219,     0,   214,   222,     0,   214,   225,     0,
+     214,   228,     0,   214,   231,     0,   214,   234,     0,   214,
+     237,     0,   214,   240,     0,   214,   243,     0,   214,   246,
+       0,   214,   249,     0,   214,   252,     0,   214,   255,     0,
+     214,   258,     0,   214,   261,     0,   214,   264,     0,   214,
+     267,     0,   214,   270,     0,   214,   273,     0,   214,   276,
+       0,   214,   279,     0,   214,   282,     0,   214,   285,     0,
+     214,   288,     0,   214,   291,     0,   317,     0,   215,   199,
+     317,     0,     0,    71,   194,   317,   199,   317,   199,   317,
+     195,   217,   200,   215,   201,     6,     0,   317,     0,   218,
+     199,   317,     0,     0,    72,   194,   317,   199,   317,   199,
+     317,   195,   220,   200,   218,   201,     6,     0,   317,     0,
+     221,   199,   317,     0,     0,    73,   194,   317,   199,   317,
+     199,   317,   195,   223,   200,   221,   201,     6,     0,   317,
+       0,   224,   199,   317,     0,     0,    74,   194,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   195,
+     226,   200,   224,   201,     6,     0,   317,     0,   227,   199,
+     317,     0,     0,    75,   194,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   195,   229,   200,   227,
+     201,     6,     0,   317,     0,   230,   199,   317,     0,     0,
+      76,   194,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   195,   232,   200,   230,   201,     6,     0,
+     317,     0,   233,   199,   317,     0,     0,    77,   194,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   195,   235,   200,   233,
+     201,     6,     0,   317,     0,   236,   199,   317,     0,     0,
+      78,   194,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   195,
+     238,   200,   236,   201,     6,     0,   317,     0,   239,   199,
+     317,     0,     0,    79,   194,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   195,   241,   200,   239,   201,     6,     0,   317,
+       0,   242,   199,   317,     0,     0,    80,   194,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   195,   244,   200,   242,   201,     6,     0,   317,     0,
+     245,   199,   317,     0,     0,    81,   194,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     195,   247,   200,   245,   201,     6,     0,   317,     0,   248,
+     199,   317,     0,     0,    82,   194,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   195,
+     250,   200,   248,   201,     6,     0,   317,     0,   251,   199,
+     317,     0,     0,    83,   194,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   195,   253,
+     200,   251,   201,     6,     0,   317,     0,   254,   199,   317,
+       0,     0,    84,   194,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   195,   256,   200,
+     254,   201,     6,     0,   317,     0,   257,   199,   317,     0,
+       0,    85,   194,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   195,   259,   200,   257,
+     201,     6,     0,   317,     0,   260,   199,   317,     0,     0,
+      86,   194,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   195,
+     262,   200,   260,   201,     6,     0,   317,     0,   263,   199,
+     317,     0,     0,    87,   194,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   195,   265,   200,   263,   201,     6,     0,   317,
+       0,   266,   199,   317,     0,     0,    88,   194,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   195,   268,   200,   266,   201,
+       6,     0,   317,     0,   269,   199,   317,     0,     0,    89,
+     194,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   195,   271,   200,   269,
+     201,     6,     0,   317,     0,   272,   199,   317,     0,     0,
+      90,   194,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   195,   274,   200,
+     272,   201,     6,     0,   317,     0,   275,   199,   317,     0,
+       0,    91,   194,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   195,   277,
+     200,   275,   201,     6,     0,   317,     0,   278,   199,   317,
+       0,     0,    92,   194,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   195,   280,   200,   278,   201,     6,     0,
+     317,     0,   281,   199,   317,     0,     0,    93,   194,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   199,   317,   195,   283,
+     200,   281,   201,     6,     0,   317,     0,   284,   199,   317,
+       0,     0,    94,   194,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   199,   317,   199,   317,   199,   317,   199,
+     317,   199,   317,   195,   286,   200,   284,   201,     6,     0,
+     331,     0,   287,   199,   331,     0,     0,    95,   194,   317,
+     199,   317,   199,   317,   195,   289,   200,   287,   201,     6,
+       0,   331,     0,   290,   199,   331,     0,     0,    96,   194,
+     317,   199,   317,   199,   317,   199,   317,   195,   292,   200,
+     290,   201,     6,     0,     7,     0,   169,     0,   170,     0,
+     171,     0,   172,     0,   190,     0,   191,     0,     4,   293,
+     317,     6,     0,     4,   196,   317,   197,   293,   317,     6,
+       0,     4,   196,   200,   327,   201,   197,   293,   325,     6,
+       0,     4,   196,   197,     7,   325,     6,     0,     4,   294,
+       6,     0,     4,   196,   317,   197,   294,     6,     0,     4,
+     198,     4,     7,   331,     6,     0,     4,   196,   317,   197,
+     198,     4,     7,   331,     6,     0,     4,   198,     4,   293,
+     317,     6,     0,     4,   196,   317,   197,   198,     4,   293,
+     317,     6,     0,     4,   198,     4,   294,     6,     0,     4,
+     196,   317,   197,   198,     4,   294,     6,     0,     4,   198,
+     104,   198,     4,     7,   328,     6,     0,     4,   196,   317,
+     197,   198,   104,   198,     4,     7,   328,     6,     0,     4,
+     198,   105,     7,   329,     6,     0,     4,   196,   317,   197,
+     198,   105,     7,   329,     6,     0,    57,   194,     4,   195,
+     198,     4,     7,   317,     6,     0,    57,   194,     4,   195,
+     198,     4,     7,   331,     6,     0,    38,   194,   317,   195,
+       7,   319,     6,     0,    53,    38,   194,   317,   195,     7,
+     325,     6,     0,    69,    38,   325,     7,   200,   317,   199,
+     317,   199,   317,   201,     6,     0,    45,    46,   325,     7,
+     317,     6,     0,    41,   194,   317,   195,     7,   325,     6,
+       0,    43,   194,   317,   195,     7,   325,     6,     0,    69,
+      41,   325,     7,   200,   317,   199,   317,   199,   317,   201,
+       6,     0,    39,   194,   317,   195,     7,   325,     6,     0,
+      40,   194,   317,   195,     7,   325,     6,     0,    39,   194,
+     317,   195,     7,   325,    49,   319,     6,     0,    47,   194,
+     317,   195,     7,   200,   317,   199,   317,   199,     5,   199,
+       5,   199,     5,   201,     6,     0,    53,    41,   194,   317,
+     195,     7,   325,     6,     0,    41,    64,   194,   317,   195,
+       7,   325,     6,     0,    97,   194,   317,   195,     7,   325,
+       6,     0,    98,   194,   317,   195,     7,   325,     6,     0,
+      99,   194,   317,   195,     7,   325,   103,   325,   100,   317,
+       6,     0,    49,    42,   194,   317,   195,     7,   325,     6,
+       0,   159,    42,   194,   317,   195,     7,   200,   317,   199,
+     325,   201,     6,     0,    50,    42,   194,   317,   195,     7,
+     325,     6,     0,    99,    42,   101,   102,   194,   317,   195,
+       7,   323,   103,   200,   325,   199,   325,   201,   100,   200,
+     317,   199,   317,   201,     6,     0,    99,    42,   194,   317,
+     195,     7,   323,   103,   200,   325,   199,   325,   201,   100,
+     200,   317,   199,   317,   201,     6,     0,    53,    42,   194,
+     317,   195,     7,   325,     6,     0,    42,    64,   194,   317,
+     195,     7,   325,     6,     0,    52,    44,   194,   317,   195,
+       7,   325,     6,     0,    44,   194,   317,   195,     7,   325,
+       6,     0,    53,    44,   194,   317,   195,     7,   325,     6,
+       0,    59,   319,   200,   298,   201,     0,    58,   200,   319,
+     199,   319,   199,   317,   201,   200,   298,   201,     0,    60,
+     319,   200,   298,   201,     0,    61,   200,   319,   199,   317,
+     201,   200,   298,   201,     0,   300,     0,   299,     0,   297,
+       0,     0,   299,   296,     0,   299,    38,   200,   327,   201,
+       6,     0,   299,    41,   200,   327,   201,     6,     0,   299,
+      42,   200,   327,   201,     6,     0,    63,   200,   299,   201,
+       0,    63,     4,   196,   317,   197,     6,     0,    66,   200,
+     299,   201,     0,    66,     4,   196,   317,   197,     6,     0,
+      66,   115,     6,     0,   104,   328,   200,   299,   201,     0,
+       4,   331,     6,     0,     4,   317,     6,     0,    57,   194,
+       4,   195,   198,     4,     6,     0,   111,     6,     0,    37,
+       6,     0,   106,   194,   317,     8,   317,   195,     0,   106,
+     194,   317,     8,   317,     8,   317,   195,     0,   106,     4,
+     107,   200,   317,     8,   317,   201,     0,   106,     4,   107,
+     200,   317,     8,   317,     8,   317,   201,     0,   108,     0,
+     114,     4,     0,   112,     0,   113,     4,     6,     0,   109,
+     194,   317,   195,     0,   110,     0,    62,    38,   200,   317,
+     199,   319,   201,     6,     0,    62,    38,   200,   317,   199,
+     319,   199,   319,   199,   317,   201,     6,     0,    62,    38,
+     200,   317,   199,   319,   199,   319,   199,   319,   199,   317,
+     201,     6,     0,    62,    41,   200,   317,   199,   319,   201,
+       6,     0,    62,    41,   200,   317,   199,   319,   199,   319,
+     199,   317,   201,     6,     0,    62,    41,   200,   317,   199,
+     319,   199,   319,   199,   319,   199,   317,   201,     6,     0,
+       0,    62,    41,   200,   317,   199,   319,   201,   306,   200,
+     312,   201,     6,     0,     0,    62,    41,   200,   317,   199,
+     319,   199,   319,   199,   317,   201,   307,   200,   312,   201,
+       6,     0,     0,    62,    41,   200,   317,   199,   319,   199,
+     319,   199,   319,   199,   317,   201,   308,   200,   312,   201,
+       6,     0,    62,    42,   200,   317,   199,   319,   201,     6,
+       0,    62,    42,   200,   317,   199,   319,   199,   319,   199,
+     317,   201,     6,     0,    62,    42,   200,   317,   199,   319,
+     199,   319,   199,   319,   199,   317,   201,     6,     0,     0,
+      62,    42,   200,   317,   199,   319,   201,   309,   200,   312,
+     201,     6,     0,     0,    62,    42,   200,   317,   199,   319,
+     199,   319,   199,   317,   201,   310,   200,   312,   201,     6,
+       0,     0,    62,    42,   200,   317,   199,   319,   199,   319,
+     199,   319,   199,   317,   201,   311,   200,   312,   201,     6,
+       0,   313,     0,   312,   313,     0,    70,   200,   325,   199,
+     325,   199,   325,   201,     6,     0,    70,   200,   325,   199,
+     325,   201,     6,     0,    65,     6,     0,    51,    41,   325,
+       7,   317,     6,     0,    51,    41,   325,     7,   317,    54,
+      56,   317,     6,     0,    51,    41,   325,     7,   317,    54,
+      55,   317,     6,     0,    51,    42,   200,   317,   201,     7,
+     325,     6,     0,    48,    42,   200,   317,   201,     7,   325,
+       6,     0,    51,    44,   200,   317,   201,     7,   325,     6,
+       0,    65,    42,   325,     7,   317,     6,     0,    65,    42,
+     325,     6,     0,    67,     6,     0,    68,     6,     0,   119,
+       0,   120,     0,   121,     0,   122,     0,   123,     0,   318,
+       0,   194,   317,   195,     0,   184,   317,     0,   183,   317,
+       0,   189,   317,     0,   317,   184,   317,     0,   317,   183,
+     317,     0,   317,   185,   317,     0,   317,   186,   317,     0,
+     317,   187,   317,     0,   317,   193,   317,     0,   317,   179,
+     317,     0,   317,   181,   317,     0,   317,   180,   317,     0,
+     317,   182,   317,     0,   317,   176,   317,     0,   317,   177,
+     317,     0,   317,   175,   317,     0,   317,   174,   317,     0,
+     317,   173,   317,     8,   317,     0,    12,   194,   317,   195,
+       0,    13,   194,   317,   195,     0,    14,   194,   317,   195,
+       0,    15,   194,   317,   195,     0,    16,   194,   317,   195,
+       0,    17,   194,   317,   195,     0,    18,   194,   317,   195,
+       0,    19,   194,   317,   195,     0,    20,   194,   317,   195,
+       0,    22,   194,   317,   195,     0,    23,   194,   317,   199,
+     317,   195,     0,    24,   194,   317,   195,     0,    25,   194,
+     317,   195,     0,    26,   194,   317,   195,     0,    27,   194,
+     317,   195,     0,    28,   194,   317,   195,     0,    29,   194,
+     317,   195,     0,    30,   194,   317,   199,   317,   195,     0,
+      31,   194,   317,   199,   317,   195,     0,    32,   194,   317,
+     199,   317,   195,     0,    21,   194,   317,   195,     0,    12,
+     196,   317,   197,     0,    13,   196,   317,   197,     0,    14,
+     196,   317,   197,     0,    15,   196,   317,   197,     0,    16,
+     196,   317,   197,     0,    17,   196,   317,   197,     0,    18,
+     196,   317,   197,     0,    19,   196,   317,   197,     0,    20,
+     196,   317,   197,     0,    22,   196,   317,   197,     0,    23,
+     196,   317,   199,   317,   197,     0,    24,   196,   317,   197,
+       0,    25,   196,   317,   197,     0,    26,   196,   317,   197,
+       0,    27,   196,   317,   197,     0,    28,   196,   317,   197,
+       0,    29,   196,   317,   197,     0,    30,   196,   317,   199,
+     317,   197,     0,    31,   196,   317,   199,   317,   197,     0,
+      32,   196,   317,   199,   317,   197,     0,    21,   196,   317,
+     197,     0,     3,     0,     9,     0,    10,     0,    11,     0,
+       4,     0,     4,   196,   317,   197,     0,     4,   294,     0,
+       4,   196,   317,   197,   294,     0,     4,   198,     4,     0,
+       4,   196,   317,   197,   198,     4,     0,     4,   198,     4,
+     294,     0,     4,   196,   317,   197,   198,     4,   294,     0,
+     320,     0,   184,   319,     0,   183,   319,     0,   319,   184,
+     319,     0,   319,   183,   319,     0,   200,   317,   199,   317,
+     199,   317,   199,   317,   199,   317,   201,     0,   200,   317,
+     199,   317,   199,   317,   199,   317,   201,     0,   200,   317,
+     199,   317,   199,   317,   201,     0,   194,   317,   199,   317,
+     199,   317,   195,     0,     0,   194,   322,   195,     0,     5,
+       0,   322,   199,     5,     0,     0,   200,   324,   201,     0,
+     194,   324,   195,     0,   325,     0,   324,   199,   325,     0,
+     317,     0,   326,     0,   200,   327,   201,     0,   184,   200,
+     327,   201,     0,   317,     8,   317,     0,   317,     8,   317,
+       8,   317,     0,     4,   196,   197,     0,   184,     4,   196,
+     197,     0,     4,   196,   200,   327,   201,   197,     0,   184,
+       4,   196,   200,   327,   201,   197,     0,   317,     0,   326,
+       0,   327,   199,   317,     0,   327,   199,   326,     0,   200,
+     317,   199,   317,   199,   317,   199,   317,   201,     0,   200,
+     317,   199,   317,   199,   317,   201,     0,     4,     0,     4,
+     198,   104,   198,     4,     0,   200,   330,   201,     0,     4,
+     196,   317,   197,   198,   105,     0,   328,     0,   330,   199,
+     328,     0,     5,     0,    35,   194,   331,   199,   331,   195,
+       0,    36,   194,   331,   195,     0,    34,   194,   331,   195,
+       0,    34,   194,   331,   199,   327,   195,     0,    34,   194,
+       4,   198,     4,   195,     0,    34,   194,     4,   196,   317,
+     197,   198,     4,   195,     0
 };
 
-/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
-static const unsigned short yyrline[] =
-{
-       0,   175,   175,   177,   178,   179,   184,   186,   189,   197,
-     211,   221,   223,   226,   228,   229,   232,   238,   243,   244,
-     245,   248,   252,   255,   261,   266,   272,   280,   285,   289,
-     295,   300,   304,   309,   313,   316,   321,   325,   329,   333,
-     338,   342,   345,   349,   353,   357,   361,   365,   369,   372,
-     376,   379,   383,   386,   393,   397,   403,   405,   406,   407,
-     408,   409,   410,   411,   412,   413,   414,   415,   416,   419,
-     424,   439,   444,   450,   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,
-     483,   486,   492,   490,   502,   505,   511,   509,   521,   524,
-     530,   528,   540,   543,   550,   547,   561,   564,   571,   568,
-     582,   585,   592,   589,   603,   606,   614,   610,   628,   631,
-     639,   635,   653,   656,   664,   660,   678,   681,   690,   685,
-     704,   707,   716,   711,   730,   733,   742,   737,   756,   759,
-     768,   763,   782,   785,   794,   789,   808,   811,   820,   815,
-     834,   837,   850,   841,   870,   873,   886,   877,   906,   909,
-     922,   913,   942,   945,   956,   949,   973,   976,   987,   980,
-    1004,  1007,  1018,  1011,  1035,  1038,  1048,  1042,  1065,  1068,
-    1078,  1072,  1095,  1098,  1108,  1102,  1125,  1131,  1140,  1138,
-    1152,  1158,  1167,  1165,  1182,  1184,  1185,  1186,  1187,  1190,
-    1192,  1195,  1226,  1260,  1307,  1322,  1331,  1346,  1358,  1372,
-    1395,  1419,  1431,  1445,  1457,  1471,  1491,  1513,  1525,  1541,
-    1552,  1558,  1577,  1591,  1597,  1603,  1622,  1628,  1634,  1650,
-    1657,  1663,  1669,  1680,  1691,  1716,  1722,  1741,  1762,  1770,
-    1776,  1782,  1791,  1797,  1803,  1813,  1819,  1824,  1829,  1836,
-    1838,  1839,  1842,  1847,  1852,  1867,  1882,  1901,  1912,  1921,
-    1929,  1933,  1941,  1953,  2029,  2049,  2056,  2060,  2080,  2092,
-    2102,  2123,  2144,  2165,  2171,  2176,  2181,  2185,  2193,  2204,
-    2211,  2221,  2226,  2231,  2237,  2236,  2247,  2246,  2257,  2256,
-    2269,  2274,  2279,  2285,  2284,  2296,  2295,  2308,  2307,  2321,
-    2325,  2330,  2357,  2381,  2389,  2408,  2426,  2444,  2466,  2487,
-    2508,  2522,  2541,  2546,  2555,  2557,  2558,  2559,  2560,  2563,
-    2565,  2566,  2567,  2568,  2569,  2570,  2571,  2572,  2579,  2580,
-    2581,  2582,  2583,  2584,  2585,  2586,  2587,  2588,  2589,  2590,
-    2591,  2592,  2593,  2594,  2595,  2596,  2597,  2598,  2599,  2600,
-    2601,  2602,  2603,  2604,  2605,  2606,  2607,  2608,  2609,  2610,
-    2612,  2613,  2614,  2615,  2616,  2617,  2618,  2619,  2620,  2621,
-    2622,  2623,  2624,  2625,  2626,  2627,  2628,  2629,  2630,  2631,
-    2632,  2637,  2642,  2643,  2644,  2648,  2659,  2676,  2687,  2706,
-    2722,  2738,  2754,  2771,  2776,  2780,  2784,  2788,  2794,  2799,
-    2803,  2807,  2813,  2817,  2822,  2826,  2831,  2835,  2839,  2845,
-    2851,  2858,  2864,  2868,  2872,  2882,  2889,  2900,  2914,  2930,
-    2950,  2974,  2980,  2984,  2988,  2999,  3004,  3015,  3020,  3038,
-    3043,  3056,  3062,  3068,  3073,  3081,  3094,  3098,  3116,  3130
+#endif
+
+#if YYDEBUG
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const short yyrline[] =
+{
+       0,   169,   171,   172,   173,   178,   180,   183,   191,   205,
+     215,   217,   220,   222,   223,   226,   232,   237,   238,   239,
+     242,   246,   249,   255,   260,   266,   274,   279,   283,   289,
+     294,   298,   303,   307,   310,   315,   319,   323,   327,   332,
+     336,   339,   343,   347,   351,   355,   359,   363,   366,   370,
+     373,   377,   380,   387,   391,   397,   399,   400,   401,   402,
+     403,   404,   405,   406,   407,   408,   409,   410,   413,   418,
+     433,   438,   444,   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,   477,
+     480,   484,   484,   496,   499,   503,   503,   515,   518,   522,
+     522,   534,   537,   541,   541,   555,   558,   562,   562,   576,
+     579,   583,   583,   597,   600,   604,   604,   622,   625,   629,
+     629,   647,   650,   654,   654,   672,   675,   679,   679,   698,
+     701,   705,   705,   724,   727,   731,   731,   750,   753,   757,
+     757,   776,   779,   783,   783,   802,   805,   809,   809,   828,
+     831,   835,   835,   864,   867,   871,   871,   900,   903,   907,
+     907,   936,   939,   943,   943,   967,   970,   974,   974,   998,
+    1001,  1005,  1005,  1029,  1032,  1036,  1036,  1059,  1062,  1066,
+    1066,  1089,  1092,  1096,  1096,  1119,  1125,  1132,  1132,  1146,
+    1152,  1159,  1159,  1176,  1178,  1179,  1180,  1181,  1184,  1186,
+    1189,  1220,  1254,  1301,  1316,  1325,  1340,  1352,  1366,  1389,
+    1413,  1425,  1439,  1451,  1465,  1485,  1507,  1519,  1535,  1546,
+    1552,  1571,  1585,  1591,  1597,  1616,  1622,  1628,  1644,  1651,
+    1657,  1663,  1674,  1685,  1710,  1716,  1735,  1756,  1764,  1770,
+    1776,  1785,  1791,  1797,  1807,  1813,  1818,  1823,  1830,  1832,
+    1833,  1836,  1841,  1846,  1861,  1876,  1895,  1906,  1915,  1923,
+    1927,  1935,  1947,  2022,  2042,  2047,  2051,  2071,  2083,  2093,
+    2114,  2135,  2156,  2162,  2167,  2172,  2176,  2184,  2195,  2202,
+    2212,  2217,  2222,  2227,  2227,  2237,  2237,  2247,  2247,  2260,
+    2265,  2270,  2275,  2275,  2286,  2286,  2298,  2298,  2312,  2316,
+    2321,  2348,  2372,  2380,  2399,  2417,  2435,  2457,  2478,  2499,
+    2513,  2532,  2537,  2546,  2548,  2549,  2550,  2551,  2554,  2556,
+    2557,  2558,  2559,  2560,  2561,  2562,  2563,  2570,  2571,  2572,
+    2573,  2574,  2575,  2576,  2577,  2578,  2579,  2580,  2581,  2582,
+    2583,  2584,  2585,  2586,  2587,  2588,  2589,  2590,  2591,  2592,
+    2593,  2594,  2595,  2596,  2597,  2598,  2599,  2600,  2601,  2603,
+    2604,  2605,  2606,  2607,  2608,  2609,  2610,  2611,  2612,  2613,
+    2614,  2615,  2616,  2617,  2618,  2619,  2620,  2621,  2622,  2623,
+    2628,  2633,  2634,  2635,  2639,  2650,  2667,  2678,  2697,  2713,
+    2729,  2745,  2762,  2767,  2771,  2775,  2779,  2785,  2790,  2794,
+    2798,  2804,  2808,  2813,  2817,  2822,  2826,  2830,  2836,  2842,
+    2849,  2855,  2859,  2863,  2873,  2880,  2891,  2905,  2921,  2941,
+    2965,  2971,  2975,  2979,  2990,  2995,  3006,  3011,  3029,  3034,
+    3047,  3053,  3059,  3064,  3072,  3085,  3089,  3107,  3121
 };
 #endif
 
-#if YYDEBUG || YYERROR_VERBOSE
-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+
+#if (YYDEBUG) || defined YYERROR_VERBOSE
+
+/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
 static const char *const yytname[] =
 {
-  "$end", "error", "$undefined", "tDOUBLE", "tSTRING", "tBIGSTR", "tEND", 
+  "$", "error", "$undefined.", "tDOUBLE", "tSTRING", "tBIGSTR", "tEND", 
   "tAFFECT", "tDOTS", "tPi", "tMPI_Rank", "tMPI_Size", "tExp", "tLog", 
   "tLog10", "tSqrt", "tSin", "tAsin", "tCos", "tAcos", "tTan", "tRand", 
   "tAtan", "tAtan2", "tSinh", "tCosh", "tTanh", "tFabs", "tFloor", 
@@ -1183,23 +807,22 @@ static const char *const yytname[] =
   "tCOMPOSITE_CURVE", "tTOROIDAL_SURFACE", "tPRODUCT_DEFINITION", 
   "tPRODUCT_DEFINITION_SHAPE", "tSHAPE_DEFINITION_REPRESENTATION", 
   "tELLIPSE", "tTrimmed", "tSolid", "tEndSolid", "tVertex", "tFacet", 
-  "tNormal", "tOuter", "tLoopSTL", "tEndLoop", "tEndFacet", 
-  "tAFFECTDIVIDE", "tAFFECTTIMES", "tAFFECTMINUS", "tAFFECTPLUS", "'?'", 
-  "tOR", "tAND", "tAPPROXEQUAL", "tNOTEQUAL", "tEQUAL", "'<'", "'>'", 
-  "tGREATEROREQUAL", "tLESSOREQUAL", "'+'", "'-'", "'*'", "'/'", "'%'", 
-  "tCROSSPRODUCT", "'!'", "UNARYPREC", "tMINUSMINUS", "tPLUSPLUS", "'^'", 
-  "'('", "')'", "'['", "']'", "'.'", "','", "'{'", "'}'", "$accept", 
-  "All", "SignedDouble", "STLFormatItem", "StepFormatItems", 
-  "StepFormatItem", "StepSpecial", "StepHeaderItem", "StepDataItem", 
-  "GeomFormatList", "GeomFormat", "Printf", "View", "Views", 
-  "ScalarPointValues", "ScalarPoint", "@1", "VectorPointValues", 
-  "VectorPoint", "@2", "TensorPointValues", "TensorPoint", "@3", 
-  "ScalarLineValues", "ScalarLine", "@4", "VectorLineValues", 
-  "VectorLine", "@5", "TensorLineValues", "TensorLine", "@6", 
-  "ScalarTriangleValues", "ScalarTriangle", "@7", "VectorTriangleValues", 
-  "VectorTriangle", "@8", "TensorTriangleValues", "TensorTriangle", "@9", 
-  "ScalarQuadrangleValues", "ScalarQuadrangle", "@10", 
-  "VectorQuadrangleValues", "VectorQuadrangle", "@11", 
+  "tNormal", "tOuter", "tLoopSTL", "tEndLoop", "tEndFacet", "tAFFECTPLUS", 
+  "tAFFECTMINUS", "tAFFECTTIMES", "tAFFECTDIVIDE", "'?'", "tOR", "tAND", 
+  "tEQUAL", "tNOTEQUAL", "tAPPROXEQUAL", "'<'", "tLESSOREQUAL", "'>'", 
+  "tGREATEROREQUAL", "'+'", "'-'", "'*'", "'/'", "'%'", "tCROSSPRODUCT", 
+  "'!'", "tPLUSPLUS", "tMINUSMINUS", "UNARYPREC", "'^'", "'('", "')'", 
+  "'['", "']'", "'.'", "','", "'{'", "'}'", "All", "SignedDouble", 
+  "STLFormatItem", "StepFormatItems", "StepFormatItem", "StepSpecial", 
+  "StepHeaderItem", "StepDataItem", "GeomFormatList", "GeomFormat", 
+  "Printf", "View", "Views", "ScalarPointValues", "ScalarPoint", "@1", 
+  "VectorPointValues", "VectorPoint", "@2", "TensorPointValues", 
+  "TensorPoint", "@3", "ScalarLineValues", "ScalarLine", "@4", 
+  "VectorLineValues", "VectorLine", "@5", "TensorLineValues", 
+  "TensorLine", "@6", "ScalarTriangleValues", "ScalarTriangle", "@7", 
+  "VectorTriangleValues", "VectorTriangle", "@8", "TensorTriangleValues", 
+  "TensorTriangle", "@9", "ScalarQuadrangleValues", "ScalarQuadrangle", 
+  "@10", "VectorQuadrangleValues", "VectorQuadrangle", "@11", 
   "TensorQuadrangleValues", "TensorQuadrangle", "@12", 
   "ScalarTetrahedronValues", "ScalarTetrahedron", "@13", 
   "VectorTetrahedronValues", "VectorTetrahedron", "@14", 
@@ -1224,2196 +847,2104 @@ static const char *const yytname[] =
 };
 #endif
 
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
-   token YYLEX-NUM.  */
-static const unsigned short yytoknum[] =
-{
-       0,   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,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
-     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
-     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
-     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
-     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
-     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
-     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
-     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
-     425,   426,   427,    63,   428,   429,   430,   431,   432,    60,
-      62,   433,   434,    43,    45,    42,    47,    37,   435,    33,
-     436,   437,   438,    94,    40,    41,    91,    93,    46,    44,
-     123,   125
-};
-# endif
-
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
-static const unsigned short yyr1[] =
-{
-       0,   202,   203,   203,   203,   203,   204,   204,   205,   205,
-     205,   206,   206,   207,   207,   207,   208,   208,   208,   208,
-     208,   209,   209,   209,   210,   210,   210,   210,   210,   210,
-     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
-     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
-     210,   210,   210,   210,   211,   211,   212,   212,   212,   212,
-     212,   212,   212,   212,   212,   212,   212,   212,   212,   213,
-     213,   214,   214,   215,   215,   215,   215,   215,   215,   215,
-     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
-     215,   215,   215,   215,   215,   215,   215,   215,   215,   215,
-     216,   216,   218,   217,   219,   219,   221,   220,   222,   222,
-     224,   223,   225,   225,   227,   226,   228,   228,   230,   229,
-     231,   231,   233,   232,   234,   234,   236,   235,   237,   237,
-     239,   238,   240,   240,   242,   241,   243,   243,   245,   244,
-     246,   246,   248,   247,   249,   249,   251,   250,   252,   252,
-     254,   253,   255,   255,   257,   256,   258,   258,   260,   259,
-     261,   261,   263,   262,   264,   264,   266,   265,   267,   267,
-     269,   268,   270,   270,   272,   271,   273,   273,   275,   274,
-     276,   276,   278,   277,   279,   279,   281,   280,   282,   282,
-     284,   283,   285,   285,   287,   286,   288,   288,   290,   289,
-     291,   291,   293,   292,   294,   294,   294,   294,   294,   295,
-     295,   296,   296,   296,   296,   296,   296,   296,   296,   296,
-     296,   296,   296,   296,   296,   296,   296,   296,   296,   297,
-     297,   297,   297,   297,   297,   297,   297,   297,   297,   297,
-     297,   297,   297,   297,   297,   297,   297,   297,   297,   297,
-     297,   297,   297,   297,   297,   298,   298,   298,   298,   299,
-     299,   299,   300,   300,   300,   300,   300,   301,   301,   302,
-     302,   302,   303,   304,   304,   304,   304,   304,   305,   305,
-     305,   305,   305,   305,   305,   305,   305,   305,   306,   306,
-     306,   306,   306,   306,   307,   306,   308,   306,   309,   306,
-     306,   306,   306,   310,   306,   311,   306,   312,   306,   313,
-     313,   314,   314,   314,   315,   315,   315,   315,   315,   315,
-     315,   315,   316,   316,   317,   317,   317,   317,   317,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const short yyr1[] =
+{
+       0,   202,   202,   202,   202,   203,   203,   204,   204,   204,
+     205,   205,   206,   206,   206,   207,   207,   207,   207,   207,
+     208,   208,   208,   209,   209,   209,   209,   209,   209,   209,
+     209,   209,   209,   209,   209,   209,   209,   209,   209,   209,
+     209,   209,   209,   209,   209,   209,   209,   209,   209,   209,
+     209,   209,   209,   210,   210,   211,   211,   211,   211,   211,
+     211,   211,   211,   211,   211,   211,   211,   211,   212,   212,
+     213,   213,   214,   214,   214,   214,   214,   214,   214,   214,
+     214,   214,   214,   214,   214,   214,   214,   214,   214,   214,
+     214,   214,   214,   214,   214,   214,   214,   214,   214,   215,
+     215,   217,   216,   218,   218,   220,   219,   221,   221,   223,
+     222,   224,   224,   226,   225,   227,   227,   229,   228,   230,
+     230,   232,   231,   233,   233,   235,   234,   236,   236,   238,
+     237,   239,   239,   241,   240,   242,   242,   244,   243,   245,
+     245,   247,   246,   248,   248,   250,   249,   251,   251,   253,
+     252,   254,   254,   256,   255,   257,   257,   259,   258,   260,
+     260,   262,   261,   263,   263,   265,   264,   266,   266,   268,
+     267,   269,   269,   271,   270,   272,   272,   274,   273,   275,
+     275,   277,   276,   278,   278,   280,   279,   281,   281,   283,
+     282,   284,   284,   286,   285,   287,   287,   289,   288,   290,
+     290,   292,   291,   293,   293,   293,   293,   293,   294,   294,
+     295,   295,   295,   295,   295,   295,   295,   295,   295,   295,
+     295,   295,   295,   295,   295,   295,   295,   295,   296,   296,
+     296,   296,   296,   296,   296,   296,   296,   296,   296,   296,
+     296,   296,   296,   296,   296,   296,   296,   296,   296,   296,
+     296,   296,   296,   296,   297,   297,   297,   297,   298,   298,
+     298,   299,   299,   299,   299,   299,   300,   300,   301,   301,
+     301,   302,   303,   303,   303,   303,   303,   304,   304,   304,
+     304,   304,   304,   304,   304,   304,   304,   305,   305,   305,
+     305,   305,   305,   306,   305,   307,   305,   308,   305,   305,
+     305,   305,   309,   305,   310,   305,   311,   305,   312,   312,
+     313,   313,   313,   314,   314,   314,   314,   314,   314,   314,
+     314,   315,   315,   316,   316,   316,   316,   316,   317,   317,
+     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
+     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
+     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
+     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
+     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
+     317,   317,   317,   317,   317,   317,   317,   317,   317,   317,
      318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   319,   319,   319,   319,   319,   319,   319,   319,   319,
-     319,   319,   319,   320,   320,   320,   320,   320,   321,   321,
-     321,   321,   322,   322,   323,   323,   324,   324,   324,   325,
-     325,   326,   326,   326,   326,   327,   327,   327,   327,   327,
-     327,   328,   328,   328,   328,   329,   329,   329,   329,   330,
-     330,   331,   331,   332,   332,   332,   332,   332,   332,   332
+     318,   318,   319,   319,   319,   319,   319,   320,   320,   320,
+     320,   321,   321,   322,   322,   323,   323,   323,   324,   324,
+     325,   325,   325,   325,   326,   326,   326,   326,   326,   326,
+     327,   327,   327,   327,   328,   328,   328,   328,   329,   329,
+     330,   330,   331,   331,   331,   331,   331,   331,   331
 };
 
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
-static const unsigned char yyr2[] =
-{
-       0,     2,     1,     1,     1,     2,     1,     2,     1,    21,
-       1,     0,     2,     1,     1,     1,     2,     2,     2,     2,
-       2,     7,     5,    17,     9,    23,    31,    15,    11,    11,
-      15,     9,    13,     9,    11,    13,     9,     9,    11,     9,
-      11,     9,    11,    13,    13,    11,    13,    17,     9,    11,
-      11,    13,    11,     9,     0,     2,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     5,
-       7,     6,     8,     0,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const short yyr2[] =
+{
+       0,     1,     1,     1,     2,     1,     2,     1,    21,     1,
+       0,     2,     1,     1,     1,     2,     2,     2,     2,     2,
+       7,     5,    17,     9,    23,    31,    15,    11,    11,    15,
+       9,    13,     9,    11,    13,     9,     9,    11,     9,    11,
+       9,    11,    13,    13,    11,    13,    17,     9,    11,    11,
+      13,    11,     9,     0,     2,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     5,     7,
+       6,     8,     0,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       1,     3,     0,    13,     1,     3,     0,    13,     1,     3,
-       0,    13,     1,     3,     0,    19,     1,     3,     0,    19,
-       1,     3,     0,    19,     1,     3,     0,    25,     1,     3,
-       0,    25,     1,     3,     0,    25,     1,     3,     0,    31,
-       1,     3,     0,    31,     1,     3,     0,    31,     1,     3,
-       0,    31,     1,     3,     0,    31,     1,     3,     0,    31,
-       1,     3,     0,    55,     1,     3,     0,    55,     1,     3,
-       0,    55,     1,     3,     0,    43,     1,     3,     0,    43,
-       1,     3,     0,    43,     1,     3,     0,    37,     1,     3,
-       0,    37,     1,     3,     0,    37,     1,     3,     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,    12,     7,     7,     9,    17,
-       8,     8,     7,     7,    11,     8,    12,     8,    22,    20,
-       8,     8,     8,     7,     8,     5,    11,     5,     9,     1,
-       1,     1,     0,     2,     6,     6,     6,     4,     6,     4,
-       6,     3,     5,     3,     3,     7,     2,     2,     6,     8,
-       8,    10,     1,     2,     1,     3,     4,     1,     8,    12,
-      14,     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,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     1,
+       3,     0,    13,     1,     3,     0,    13,     1,     3,     0,
+      13,     1,     3,     0,    19,     1,     3,     0,    19,     1,
+       3,     0,    19,     1,     3,     0,    25,     1,     3,     0,
+      25,     1,     3,     0,    25,     1,     3,     0,    31,     1,
+       3,     0,    31,     1,     3,     0,    31,     1,     3,     0,
+      31,     1,     3,     0,    31,     1,     3,     0,    31,     1,
+       3,     0,    55,     1,     3,     0,    55,     1,     3,     0,
+      55,     1,     3,     0,    43,     1,     3,     0,    43,     1,
+       3,     0,    43,     1,     3,     0,    37,     1,     3,     0,
+      37,     1,     3,     0,    37,     1,     3,     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,    12,     7,     7,     9,    17,     8,
+       8,     7,     7,    11,     8,    12,     8,    22,    20,     8,
+       8,     8,     7,     8,     5,    11,     5,     9,     1,     1,
+       1,     0,     2,     6,     6,     6,     4,     6,     4,     6,
+       3,     5,     3,     3,     7,     2,     2,     6,     8,     8,
+      10,     1,     2,     1,     3,     4,     1,     8,    12,    14,
+       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,     4,     4,     4,     4,     4,     4,     6,
        4,     4,     4,     4,     4,     4,     6,     6,     6,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       6,     4,     4,     4,     4,     4,     4,     6,     6,     6,
-       4,     1,     1,     1,     1,     1,     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,     3,     4,     6,
-       7,     1,     1,     3,     3,     9,     7,     1,     5,     3,
-       6,     1,     3,     1,     6,     4,     4,     6,     6,     9
+       1,     1,     1,     1,     1,     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,     3,     4,     6,     7,
+       1,     1,     3,     3,     9,     7,     1,     5,     3,     6,
+       1,     3,     1,     6,     4,     4,     6,     6,     9
 };
 
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
-   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
-   means the default is an error.  */
-static const unsigned short yydefact[] =
+/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
+   doesn't specify something else to do.  Zero means the default is an
+   error. */
+static const short yydefact[] =
 {
-       0,     0,     8,    10,     0,     0,     3,     2,     4,     5,
-       0,     1,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    12,    13,    15,    14,     0,     0,     0,     0,     0,
+       0,     0,     7,     9,     0,     2,     1,     3,     4,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    11,
+      12,    14,    13,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   281,     0,
+     286,     0,   283,     0,     0,     0,    54,    56,    55,    57,
+      58,    59,    60,    61,    62,    67,    66,    63,    64,    65,
+       5,     0,     0,     0,    15,    16,    18,    17,    19,   411,
+     411,     0,   390,   394,   442,   203,   391,   392,   393,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     282,     0,   287,     0,   284,     0,     0,     0,    55,    57,
-      56,    58,    59,    60,    61,    62,    63,    68,    67,    64,
-      65,    66,     6,     0,     0,     0,    16,    17,    19,    18,
-      20,   412,   412,     0,   391,   395,   443,   204,   392,   393,
-     394,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   208,   207,   206,   205,     0,
-       0,     0,   210,   209,     0,     0,     0,     0,     0,     0,
-     329,     0,     0,   277,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   204,   205,   206,   207,     0,     0,     0,
+     208,   209,     0,     0,     0,     0,     0,     0,   328,     0,
+       0,   276,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   403,     0,     0,     0,     0,     0,     0,   262,
-       0,     0,     0,   262,   322,   323,     0,     0,     0,     0,
-       0,     0,   437,     0,     0,     0,     0,     0,   276,     0,
-     283,     0,     7,     0,     0,     0,     0,     0,     0,     0,
+     402,     0,     0,     0,     0,     0,     0,   261,     0,     0,
+       0,   261,   321,   322,     0,     0,     0,     0,     0,     0,
+     436,     0,     0,     0,     0,     0,   275,     0,   282,     0,
+       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,     0,     0,     0,     0,     0,     0,   396,     0,
+      72,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     397,     0,    73,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   331,   330,   332,     0,
+       0,     0,     0,     0,     0,     0,     0,   214,   273,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   332,   331,
-     333,     0,     0,     0,     0,     0,     0,     0,     0,   215,
-     274,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   273,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   395,     0,     0,   421,
-       0,   422,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   405,   404,     0,     0,
-       0,     0,   262,   262,     0,     0,     0,     0,     0,     0,
-       0,     0,   271,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   262,     0,     0,     0,   285,     0,     0,
+       0,     0,     0,     0,   272,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   394,     0,     0,   420,     0,   421,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   404,   403,     0,     0,     0,     0,
+     261,   261,     0,     0,     0,     0,     0,     0,     0,     0,
+     270,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   261,     0,     0,     0,   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,
-     414,     0,     0,     0,     0,     0,   399,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   413,     0,
+       0,     0,     0,     0,   398,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   443,     0,     0,     0,   330,     0,     0,   431,
-     432,     0,     0,   204,     0,     0,     0,     0,   211,     0,
-     347,   346,   345,   344,   340,   341,   343,   342,   335,   334,
-     336,   337,   338,   339,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   395,     0,     0,     0,     0,
+     442,     0,     0,     0,   329,     0,     0,   430,   431,     0,
+       0,   203,     0,     0,     0,     0,   210,     0,   346,   345,
+     343,   344,   339,   341,   340,   342,   334,   333,   335,   336,
+     337,   338,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   394,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   407,   406,   261,     0,
-     260,   259,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   267,   263,   321,     0,     0,   269,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   286,
+       0,     0,     0,     0,   406,   405,   260,     0,   259,   258,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   266,
+     262,   320,     0,     0,   268,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   285,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   413,     0,     0,    22,     0,   396,   401,    73,
+     412,     0,     0,    21,     0,   395,   400,    72,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-      97,    98,    99,   349,   370,   350,   371,   351,   372,   352,
-     373,   353,   374,   354,   375,   355,   376,   356,   377,   357,
-     378,   369,   390,   358,   379,     0,     0,   360,   381,   361,
-     382,   362,   383,   363,   384,   364,   385,   365,   386,     0,
-       0,     0,     0,     0,     0,     0,     0,   446,     0,     0,
-     445,     0,     0,     0,     0,     0,     0,     0,     0,   221,
-       0,     0,     0,     0,     0,    69,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   427,     0,     0,     0,   423,
-     425,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   255,   257,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   272,
+       0,     0,     0,     0,     0,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
+      88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
+      98,   348,   369,   349,   370,   350,   371,   351,   372,   352,
+     373,   353,   374,   354,   375,   355,   376,   356,   377,   368,
+     389,   357,   378,     0,     0,   359,   380,   360,   381,   361,
+     382,   362,   383,   363,   384,   364,   385,     0,     0,     0,
+       0,     0,     0,     0,     0,   445,     0,     0,   444,     0,
+       0,     0,     0,     0,     0,     0,     0,   220,     0,     0,
+       0,     0,     0,    68,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   426,     0,     0,     0,   422,   424,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   254,   256,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   271,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   415,     0,   412,     0,   398,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    71,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   214,
-     433,   434,     0,     0,     0,     0,     0,   216,   217,   219,
-       0,     0,   441,     0,   225,   348,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   428,     0,   424,     0,
-     232,     0,     0,     0,     0,   314,     0,     0,     0,     0,
+       0,     0,   414,     0,   411,     0,   397,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   268,     0,     0,     0,   320,   270,     0,     0,
-       0,     0,     0,   416,     0,   438,     0,     0,     0,   278,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    70,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   213,   432,   433,
+       0,     0,     0,     0,     0,   215,   216,   218,     0,     0,
+     440,     0,   224,   347,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   427,     0,   423,     0,   231,     0,
+       0,     0,     0,   313,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   324,   325,   326,   327,   328,
-       0,     0,     0,     0,     0,     0,     0,    21,     0,   400,
+     267,     0,     0,     0,   319,   269,     0,     0,     0,     0,
+       0,   415,     0,   437,     0,     0,     0,   277,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   359,   380,   366,
-     387,   367,   388,   368,   389,     0,   448,   447,   444,     0,
-     204,     0,     0,     0,     0,   212,     0,     0,     0,   439,
-      70,   229,   236,     0,   237,     0,   233,     0,   234,   253,
-       0,     0,   426,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   275,     0,     0,     0,
-       0,   262,     0,     0,     0,   294,     0,   303,     0,     0,
-       0,     0,     0,   242,   243,     0,     0,     0,     0,     0,
+       0,     0,     0,   323,   324,   325,   326,   327,     0,     0,
+       0,     0,     0,     0,     0,    20,     0,   399,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   358,   379,   365,   386,   366,
+     387,   367,   388,     0,   447,   446,   443,     0,   203,     0,
+       0,     0,     0,   211,     0,     0,     0,   438,    69,   228,
+     235,     0,   236,     0,   232,     0,   233,   252,     0,     0,
+     425,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   274,     0,     0,     0,     0,   261,
+       0,     0,     0,   293,     0,   302,     0,     0,     0,     0,
+       0,   241,   242,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   412,   402,    72,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   222,     0,
-       0,   223,     0,   442,     0,   241,   251,   429,     0,     0,
-     318,   245,   247,     0,     0,   317,   319,   252,   230,   240,
-     250,   254,     0,     0,     0,   411,     0,   410,     0,     0,
-     288,     0,   291,     0,     0,   300,     0,   264,   265,   266,
-       0,     0,   416,     0,   419,     0,     0,     0,     0,   436,
-       0,   280,   279,     0,     0,     0,     0,     0,    24,     0,
-      33,     0,    37,     0,    31,     0,     0,    36,     0,    41,
-      39,     0,     0,     0,     0,     0,     0,    48,     0,     0,
-       0,     0,     0,    53,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   411,   401,    71,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   213,   218,   220,     0,   226,     0,   238,
-     430,     0,   316,   315,   227,   228,   262,     0,   258,     0,
-       0,     0,     0,     0,     0,     0,     0,   418,     0,   417,
-       0,     0,     0,     0,     0,     0,     0,   416,     0,     0,
+       0,     0,     0,     0,     0,     0,   221,     0,     0,   222,
+       0,   441,     0,   240,   250,   428,     0,     0,   317,   244,
+     246,     0,     0,   316,   318,   251,   229,   239,   249,   253,
+       0,     0,     0,   410,     0,   409,     0,     0,   287,     0,
+     290,     0,     0,   299,     0,   263,   264,   265,     0,     0,
+     415,     0,   418,     0,     0,     0,     0,   435,     0,   279,
+     278,     0,     0,     0,     0,     0,    23,     0,    32,     0,
+      36,     0,    30,     0,     0,    35,     0,    40,    38,     0,
+       0,     0,     0,     0,     0,    47,     0,     0,     0,     0,
+       0,    52,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   212,   217,   219,     0,   225,     0,   237,   429,     0,
+     315,   314,   226,   227,   261,     0,   257,     0,     0,     0,
+       0,     0,     0,     0,     0,   417,     0,   416,     0,     0,
+       0,     0,     0,     0,     0,   415,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   449,     0,   440,     0,     0,     0,
-     409,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   309,     0,     0,     0,     0,     0,     0,   420,     0,
-       0,   435,   281,     0,     0,    38,     0,     0,     0,     0,
-      28,     0,    34,     0,    40,    29,    42,     0,    45,     0,
-      49,    50,     0,     0,    52,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   224,     0,   256,     0,     0,     0,     0,
-     296,     0,   313,     0,     0,   310,   305,     0,     0,     0,
-       0,     0,     0,   244,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   102,   106,
-     110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   448,     0,   439,     0,     0,     0,   408,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   308,
+       0,     0,     0,     0,     0,     0,   419,     0,     0,   434,
+     280,     0,     0,    37,     0,     0,     0,     0,    27,     0,
+      33,     0,    39,    28,    41,     0,    44,     0,    48,    49,
+       0,     0,    51,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   198,     0,     0,   408,   289,     0,   292,     0,
-       0,     0,   295,   301,     0,     0,   304,   231,   235,     0,
-       0,   246,     0,     0,     0,     0,     0,    32,    35,    43,
-       0,    44,    51,    46,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   223,     0,   255,     0,     0,     0,     0,   295,     0,
+     312,     0,     0,   309,   304,     0,     0,     0,     0,     0,
+       0,   243,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   101,   105,   109,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   298,     0,     0,   307,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     197,     0,     0,   407,   288,     0,   291,     0,     0,     0,
+     294,   300,     0,     0,   303,   230,   234,     0,     0,   245,
+       0,     0,     0,     0,     0,    31,    34,    42,     0,    43,
+      50,    45,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   202,     0,   290,     0,   293,     0,     0,     0,
-     302,     0,     0,     0,     0,     0,     0,    27,    30,     0,
-       0,     0,   100,     0,   104,     0,   108,     0,     0,     0,
+       0,     0,   297,     0,     0,   306,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   196,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     201,     0,   289,     0,   292,     0,     0,     0,   301,     0,
+       0,     0,     0,     0,     0,    26,    29,     0,     0,     0,
+      99,     0,   103,     0,   107,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   195,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   297,     0,     0,   312,
-     306,     0,     0,     0,     0,     0,     0,    47,    23,   101,
-     103,   105,   107,   109,   111,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   197,   199,     0,   200,
-     239,     0,     0,     0,     0,     0,     0,     0,     0,   114,
-     118,   122,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   299,   311,   308,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   296,     0,     0,   311,   305,     0,
+       0,     0,     0,     0,     0,    46,    22,   100,   102,   104,
+     106,   108,   110,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   201,   203,     0,     0,     9,     0,     0,     0,     0,
+       0,     0,     0,     0,   196,   198,     0,   199,   238,     0,
+       0,     0,     0,     0,     0,     0,     0,   113,   117,   121,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     249,     0,     0,     0,   112,     0,   116,     0,   120,     0,
+     298,   310,   307,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   200,
+     202,     0,     0,     8,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   248,     0,
+       0,     0,   111,     0,   115,     0,   119,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   248,     0,    25,   113,   115,   117,
-     119,   121,   123,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   126,   130,   134,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   247,     0,    24,   112,   114,   116,   118,   120,
+     122,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     125,   129,   133,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     124,     0,   128,     0,   132,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   123,     0,
+     127,     0,   131,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   125,   127,   129,   131,   133,   135,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   138,   142,   146,   150,   154,
-     158,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   124,   126,   128,   130,   132,   134,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   137,   141,   145,   149,   153,   157,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    25,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   136,     0,   140,     0,   144,     0,   148,     0,
-     152,     0,   156,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   137,   139,   141,   143,   145,   147,   149,
-     151,   153,   155,   157,   159,     0,     0,     0,     0,     0,
+     135,     0,   139,     0,   143,     0,   147,     0,   151,     0,
+     155,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     186,   190,   194,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   184,     0,
-     188,     0,   192,     0,     0,     0,     0,     0,     0,     0,
+       0,   136,   138,   140,   142,   144,   146,   148,   150,   152,
+     154,   156,   158,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   185,   189,
+     193,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   185,   187,   189,   191,   193,   195,     0,     0,     0,
-     174,   178,   182,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   172,
-       0,   176,     0,   180,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   173,   175,   177,   179,
-     181,   183,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   183,     0,   187,     0,
+     191,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   184,
+     186,   188,   190,   192,   194,     0,     0,     0,   173,   177,
+     181,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   171,     0,   175,
+       0,   179,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   172,   174,   176,   178,   180,   182,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     162,   166,   170,     0,     0,     0,     0,     0,     0,     0,
-     160,     0,   164,     0,   168,     0,     0,     0,     0,     0,
-       0,   161,   163,   165,   167,   169,   171
+       0,     0,     0,     0,     0,     0,     0,     0,   161,   165,
+     169,     0,     0,     0,     0,     0,     0,     0,   159,     0,
+     163,     0,   167,     0,     0,     0,     0,     0,     0,   160,
+     162,   164,   166,   168,   170,     0,     0,     0
 };
 
-/* YYDEFGOTO[NTERM-NUM]. */
 static const short yydefgoto[] =
 {
-      -1,     5,    84,     6,     7,    21,    22,    23,    24,     8,
-      68,    69,    70,   418,  1581,   627,  1495,  1583,   628,  1496,
-    1585,   629,  1497,  1793,   630,  1740,  1795,   631,  1741,  1797,
-     632,  1742,  1929,   633,  1891,  1931,   634,  1892,  1933,   635,
-    1893,  2041,   636,  2011,  2043,   637,  2012,  2045,   638,  2013,
-    2047,   639,  2014,  2049,   640,  2015,  2051,   641,  2016,  2239,
-     642,  2233,  2241,   643,  2234,  2243,   644,  2235,  2188,   645,
-    2176,  2190,   646,  2177,  2192,   647,  2178,  2137,   648,  2119,
-    2139,   649,  2120,  2141,   650,  2121,  1608,   651,  1519,  1698,
-     652,  1610,   137,   240,    71,   542,   528,   529,   530,   531,
-      75,    76,    77,    78,    79,  1163,  1469,  1567,  1166,  1474,
-    1571,  1340,  1341,    80,    81,   950,   329,   140,   346,   172,
-     235,   411,  1058,  1173,  1174,   331,   471,   194,   713,   863,
-     141
+    2255,    82,     5,     6,    19,    20,    21,    22,     7,    66,
+      67,    68,   416,  1579,   625,  1493,  1581,   626,  1494,  1583,
+     627,  1495,  1791,   628,  1738,  1793,   629,  1739,  1795,   630,
+    1740,  1927,   631,  1889,  1929,   632,  1890,  1931,   633,  1891,
+    2039,   634,  2009,  2041,   635,  2010,  2043,   636,  2011,  2045,
+     637,  2012,  2047,   638,  2013,  2049,   639,  2014,  2237,   640,
+    2231,  2239,   641,  2232,  2241,   642,  2233,  2186,   643,  2174,
+    2188,   644,  2175,  2190,   645,  2176,  2135,   646,  2117,  2137,
+     647,  2118,  2139,   648,  2119,  1606,   649,  1517,  1696,   650,
+    1608,   135,   238,    69,   540,   526,   527,   528,   529,    73,
+      74,    75,    76,    77,  1161,  1467,  1565,  1164,  1472,  1569,
+    1338,  1339,    78,    79,   948,   327,   138,   344,   170,   233,
+     409,  1056,  1171,  1172,   329,   469,   192,   711,   861,   139
 };
 
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-   STATE-NUM.  */
-#define YYPACT_NINF -1304
 static const short yypact[] =
 {
-    2658,    30, -1304, -1304,  -121,    61, -1304,   262,  2875, -1304,
-      10, -1304,    59,    69,    90,   123,   130,   141,  -124,   -80,
-     -72, -1304, -1304, -1304, -1304,  2274,   -38,   168,   -11,    -1,
-      23,   -39,   197,   117,   135,   248,   163,   309,   337,   344,
-     465,   343,   116,   226,   192,    -4,    -4,   221,   174,     4,
-     399,     3,   420,   442,   164,   257,   260,   -24,     6,    15,
-   -1304,   261, -1304,   454, -1304,   468,   472,   423, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304,   466,    10,  2983, -1304, -1304, -1304, -1304,
-   -1304,   288,   288,   493, -1304,   265,     7, -1304, -1304, -1304,
-   -1304,  -106,   212,   223,   270,   281,   300,   316,   317,   327,
-     333,   340,   341,   362,   363,   409,   430,   431,   449,   458,
-     459,   462,   291,   294,   303, -1304, -1304, -1304, -1304,  2375,
-    2375,  2375, -1304, -1304,  2375,   570,    26,  2375,   508,   734,
-   -1304,   509,   513, -1304,  2375,  2375,  2375,   328,  2375,   334,
-    2375,  2375,  1177,  2375,   331,   349,   378,  1177,   338,   404,
-     413,   414,   418,   434,   437,   640,    -4,    -4,    -4,  2375,
-    2375,  -127, -1304,  -107,    -4,   457,   463,   471,   453, -1304,
-    1177,   479,   672, -1304, -1304, -1304,  1177,  1177,  2375,  2375,
-     -70,  2375,   489,  2375,   488,   592,  2375,  2375, -1304,   711,
-   -1304,   534, -1304,    10,   539,   540,   554,   563,   571,   575,
-     582,   589,   590,   617,   621,   646,   669,   683,   684,   685,
-     686,   687,   688,   689,   690,   692,   693,   694,   695,   696,
-     700,   701,   702,   703,   713,   538,   704,   670,  2375,   894,
-   -1304,    -4, -1304,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
+    2658,    63,-32768,-32768,  -129,-32768,   324,  2803,-32768,    17,
+     109,   116,   124,   132,   211,   265,   -53,    71,   117,-32768,
+  -32768,-32768,-32768,  2274,   144,   343,   158,   188,   201,   -32,
+     346,   222,   227,   393,   251,   400,   406,   427,   329,   407,
+     365,   283,   287,   -44,   -44,   297,   113,     4,   456,     3,
+     503,   522,   259,   337,   378,   -19,     6,    15,-32768,   410,
+  -32768,   601,-32768,   506,   514,   481,-32768,-32768,-32768,-32768,
+  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+  -32768,   610,    17,  2910,-32768,-32768,-32768,-32768,-32768,   444,
+     444,   643,-32768,   295,     7,-32768,-32768,-32768,-32768,   202,
+     250,   258,   261,   272,   282,   286,   300,   319,   363,   364,
+     382,   409,   453,   458,   459,   462,   463,   466,   467,   480,
+     477,   488,   490,-32768,-32768,-32768,-32768,  2375,  2375,  2375,
+  -32768,-32768,  2375,   570,    27,  2375,   669,   435,-32768,   672,
+     682,-32768,  2375,  2375,  2375,   494,  2375,   534,  2375,  2375,
+    1177,  2375,   537,   540,   554,  1177,   565,   569,   563,   582,
+     586,   589,   617,   695,   -44,   -44,   -44,  2375,  2375,   -76,
+  -32768,   -26,   -44,   642,   662,   663,   621,-32768,  1177,   638,
+     858,-32768,-32768,-32768,  1177,  1177,  2375,  2375,   -58,  2375,
+     667,  2375,   666,   760,  2375,  2375,-32768,   862,-32768,   675,
+  -32768,    17,   679,   680,   681,   683,   684,   685,   686,   687,
+     688,   689,   690,   692,   693,   694,   696,   700,   701,   702,
+     703,   704,   705,   721,   722,   723,   724,   725,   728,   729,
+     730,   731,   871,   732,   726,   735,  2375,   885,-32768,   -44,
+  -32768,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375,  2375,  2375,  2375,    64,    67,    67,   545,   545,
-     545, 11062,   893,  2405, 10495,   253,   705,   895,   959, -1304,
-   -1304,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375,  2375,  2375,  2375,  2375, -1304,   -82, 11085, 11108,
-   11131,  2375, 11154,  2375, 11177, 11200,   282,  1463,  2405,   367,
-     897, -1304, 11223,  2375,  2375,  2375,   899,  2375,  2375,  2375,
-    2375,  2375,  2375,  2375,   706,  -120, -1304, -1304,  3342,  3365,
-      -4,    -4,   369,   369,    -7,  2375,  2375,  2375,  2375,   948,
-     101,  2375, -1304,  2690,   903,   915, 11246, 11269,   821,  2375,
-   11292,   820,  3388, -1304,   725,   664, 11315, -1304,  2375,   761,
-     923,   924,   925,   926,   931,   957,   958,   961,   962,   963,
-     964,   965,   966,   967,   968,   969,   970,   972,   973,   974,
-     975,   976,   978,   782,   979,   980,   989,   991,   996,  1000,
-   -1304,   -57,  1001,  1002,  1004, 10516,    79,   -35,  2964, 11338,
-   10537, 11361, 10558, 11384, 10579, 11407, 10600, 11430, 10621, 11453,
-   10642, 11476, 10663, 11499, 10684, 11522, 10705, 11545, 10726, 11568,
-   10747,  3411,  3434, 11591, 10768, 11614, 10789, 11637, 10810, 11660,
-   10831, 11683, 10852, 11706, 10873,  3457,  3480,  3503,  3526,  3549,
-    3572,   380, -1304,    98,   765,   812, -1304,  1177,  2495,   367,
-   -1304,   460,   154,    67,  2375,  1008,  1006,     8, -1304,  2355,
-     455,   526,   384,   384,   198,   198,   198,   198,   162,   162,
-     545,   545,   545,   545,  1010,  2405,  1011,  1012,  1013, 11729,
-    1014, 11752,  1015,  1016,   929,   295,  2405,   461,  2375,  2375,
-    1017,  1142, 11775, 11798,  2375,  2689,  2774, 11821, 11844, 11867,
-   11890, 11913,   827,    -4,  2375,  2375, -1304, -1304, -1304,   828,
-      42, -1304,   829,  2375,  3595,  3618,  3641, 10894,  -160,   -48,
-     -41, -1304, -1304, -1304,  2375, 10915, -1304,   831,   832,  1026,
-    1027,   841, 11936,  1029,   839,  2375,  2762,  2375,  2375, -1304,
-   11959,   873,   843,   845,   849,   850,   851,   853,   854,   855,
-     856,   857,   858,   862,   863,   864,   865,   867,   868,   869,
-     871,   872,   900,   901,   902,   904,   905,   906,   907,   909,
-     910,   911, -1304,  1035,   877, -1304,   912,  -139, -1304, -1304,
-     908,   921,   922,   927,   928,   930,   933,   934,   936,   941,
-     953,   960,   988,   990,  1019,  1031,  1032,  1033,  1038,  1039,
-    1042,  1044,  1047,  1048,  1049,  1050,  1111, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304,  2375,  2375, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,  2375,
-    2375,  2375,  2375,  2375,  2375,  2375,  1115, -1304,  2405,    67,
-   -1304,  1114,  2405,   986,    28,  2375,  1119,  1179,  1037, -1304,
-    1238,  1051,     6,  1242,  2375, -1304,   100,    -4,  1177,  1177,
-    1243,  1177,  1244,  1177,  1177, -1304,  2405,  1147,   475, -1304,
-    2430,  1393,  1052,  1246,  1247,  1249,   436,  1250,  1251,  1252,
-    1253,  1254,  1255,  1257,  1245,   108,  3664,  3687, -1304, -1304,
-    2817,    -4,    -4,    -4,  1259,  2405,  2405,  2405,  1591,  1260,
-    2375,  2375,  1177,  1177,  2375,  1262,  1177,  1263,  3710, -1304,
-    2447,   639,  1265,  1108,  1296,  2375,  2375,    -4,  1297,  1300,
-    1120,  1306,  1307,  1177,  1177,  1308,    -4,  1309,  1310,  1177,
-    1177,  1311,  1329,  1330,  1331,  1334,  1177,   382,  1177,  1335,
-    1337,  1340,  1336,  1343, -1304,  1342,   288,  1345, -1304,  2990,
+    2375,  2375,  2375,    42,    37,    37,   733,   733,   733, 10517,
+     920,  2405,  2556,   135,   738,   921,   450,-32768,-32768,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
+    2375,  2375,  2375,  2375,-32768,  -134, 10540, 10563, 10586,  2375,
+   10609,  2375, 10632, 10655,   316,  1463,  2405,   664,   922,-32768,
+   10678,  2375,  2375,  2375,   923,  2375,  2375,  2375,  2375,  2375,
+    2375,  2375,   767,   156,-32768,-32768,  3336,  3357,   -44,   -44,
+     581,   581,   173,  2375,  2375,  2375,  2375,   948,   141,  2375,
+  -32768,  1979,   956,   957, 10701, 10724,   864,  2375, 10747,   863,
+    3378,-32768,   768,  2052, 10770,-32768,  2375,   804,   965,   966,
+     967,   968,   969,   970,   972,   973,   974,   975,   976,   978,
+     979,   980,   989,   991,   994,  1000,  1001,  1002,  1003,  1004,
+    1005,   866,  1009,  1011,  1014,  1015,  1018,  1017,-32768,   -30,
+    1019,  1023,  1020,  9867,   138,   151,  2847, 10793,  9892, 10816,
+    9917, 10839,  9942, 10862,  9967, 10885,  9992, 10908, 10017, 10931,
+   10042, 10954, 10067, 10977, 10092, 11000, 10117, 11023, 10142,  3399,
+    3420, 11046, 10167, 11069, 10192, 11092, 10217, 11115, 10242, 11138,
+   10267, 11161, 10292,  3441,  3462,  3483,  3504,  3525,  3546,   483,
+  -32768,   -17,   824,   835,-32768,  1177,  2495,   664,-32768,   -22,
+     152,    37,  2375,  1025,  1028,     8,-32768,  2078,   -95,   243,
+     384,   384,   318,   318,   318,   318,   175,   175,   733,   733,
+     733,   733,  1027,  2405,  1029,  1030,  1032, 11184,  1033, 11207,
+    1035,  1041,   929,   331,  2405,     1,  2375,  2375,  1042,  1268,
+   11230, 11253,  2375,  2702,  2939, 11276, 11299, 11322, 11345, 11368,
+     836,   -44,  2375,  2375,-32768,-32768,-32768,   834,  2952,-32768,
+     843,  2375,  3567,  3588,  3609, 10317,  -144,   -48,   -51,-32768,
+  -32768,-32768,  2375, 10342,-32768,   850,   852,  1046,  1047,   861,
+   11391,  1049,   859,  2375,  2533,  2375,  2375,-32768, 11414,   895,
+     865,   867,   868,   869,   872,   873,   900,   901,   902,   903,
+     904,   905,   906,   907,   909,   910,   911,   912,   916,   917,
+     918,   925,   926,   928,   931,   938,   955,   983,   984,   985,
+  -32768,  1057,   875,-32768,   986,   -97,-32768,-32768,   927,   934,
+     953,  1021,  1031,  1038,  1039,  1044,  1048,  1050,  1051,  1053,
+    1054,  1055,  1056,  1058,  1059,  1060,  1062,  1063,  1064,  1065,
+    1066,  1067,  1068,  1070,  1113,-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,  2375,  2375,-32768,-32768,-32768,-32768,-32768,
+  -32768,-32768,-32768,-32768,-32768,-32768,-32768,  2375,  2375,  2375,
+    2375,  2375,  2375,  2375,  1116,-32768,  2405,    37,-32768,  1220,
+    2405,  1069,    29,  2375,  1221,  1230,   639,-32768,  1115,  1045,
+       6,  1237,  2375,-32768,    75,   -44,  1177,  1177,  1244,  1177,
+    1258,  1177,  1177,-32768,  2405,  1147,   484,-32768,  2355,   727,
+    1072,  1260,  1262,  1263,    12,  1292,  1293,  1296,  1298,  1302,
+    1303,  1304,  1308,   209,  3630,  3651,-32768,-32768,  2962,   -44,
+     -44,   -44,  1322,  2405,  2405,  2405,   959,  1323,  2375,  2375,
+    1177,  1177,  2375,  1325,  1177,  1330,  3672,-32768,  2430,   361,
+    1331,  1175,  1337,  2375,  2375,   -44,  1339,  1340,   878,  1342,
+    1343,  1177,  1177,  1345,   -44,  1346,  1347,  1177,  1177,  1348,
+    1349,  1350,  1351,  1352,  1177,   430,  1177,  1353,  1354,  1357,
+    1355,  1360,-32768,  1358,   444,  1361,-32768,  2892,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375,  2375,  2375,  2375,  2375, -1304, 11982, 10936, 12005,
-   10957, 12028, 10978, 12051, 10999, 11020,  1145,   105,  1155, -1304,
-     367, -1304,    17,   267,  1153,  1346,  1647, -1304, -1304, -1304,
-       6,  2375, -1304,   480, -1304, 12879,  1348,    14,    29,  1349,
-    1177,  1350,  1177,  1351,  1352,   483, -1304,  2405, -1304,  2375,
-   -1304,  2375,  1177,  1177,  1177, -1304,   250,  1177,  1177,  1177,
-    1177,  1177,  1177,  1177,   403,  2375,  2375,  2375,  1152,   138,
-     194,   206, -1304,   484,   492,   495, -1304, -1304,  3733,  3756,
-    1353,  1356, 12074,  -129,  1261, -1304,  2375,  2375,  2375, -1304,
-    1163,    10,  1166,  3779,  3802,   -68,  1168,  1173,  1170,  1175,
-    1174,  1180,  1181,  1182,   -33,  1183,  1184,  1188,  1186,  1189,
-    1191,  1192,  1195,  1197,  1202, -1304, -1304, -1304, -1304, -1304,
-    1199,  1201,  1203,  1204,  1205,  1206,  1207, -1304,  1208,    79,
-    1366,  3825,  3848,  3871,  3894,  3917,  3940,  3963,  3986,  4009,
-    4032,  4055,  4078,  4101,  4124,  4147,  4170,  4193,  4216,  4239,
-    4262,  4285,  4308,  4331,  4354,  4377,  4400, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304,  1176, -1304, -1304, -1304,  1177,
-      67,  2375,  1370,  1374,     8, -1304,  1381, 11041,     6, -1304,
-   -1304, -1304, -1304,    -4, -1304,  1399, -1304,  1402, -1304, -1304,
-    1212,   496, 12879,  4423,  1404,  1405,  1406,  2375,  2375,  1407,
-    1408,  1409,  1431,  1433,  1434,  1435, -1304,  2308,  2969, 12097,
-    2399,   369,    -4,  1436,    -4,  1452,    -4,  1453,  1454,  1455,
-    1456,  2375,  2375, -1304, -1304,  1457,  1177,  1177,  1365,  1177,
-    2464,   187, 12120,  2375,    10,  1467,  2375,  1177,  1490,  1494,
-    1492,  1314,  1495,   382,  1496,  1497,  2375,  1498,  1500,  1499,
-    1501,  1503,   382,  2375,  2375,  2375,  1177,  1502,  1506,   382,
-    2375,  1507,  1508,  1534,  2375,   288, -1304, -1304,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
+    2375,  2375,  2375,  2375,-32768, 11437, 10367, 11460, 10392, 11483,
+   10417, 11506, 10442, 10467,  1162,   100,  1172,-32768,   664,-32768,
+     122,   176,  1170,  1362,  1037,-32768,-32768,-32768,     6,  2375,
+  -32768,   492,-32768, 12334,  1364,    32,    30,  1366,  1177,  1367,
+    1177,  1368,  1369,   495,-32768,  2405,-32768,  2375,-32768,  2375,
+    1177,  1177,  1177,-32768,   309,  1177,  1177,  1177,  1177,  1177,
+    1177,  1177,   368,  2375,  2375,  2375,  1176,  -131,   -88,   -84,
+  -32768,   496,   499,   504,-32768,-32768,  3693,  3714,  1372,  1373,
+   11529,  -143,  1277,-32768,  2375,  2375,  2375,-32768,  1181,    17,
+    1183,  3735,  3756,  -120,  1184,  1190,  1188,  1193,  1191,  1196,
+    1195,  1197,   -81,  1198,  1203,  1205,  1202,  1204,  1206,  1207,
+    1208,  1209,  1214,-32768,-32768,-32768,-32768,-32768,  1211,  1212,
+    1213,  1215,  1216,  1218,  1238,-32768,  1240,   138,  1396,  3777,
+    3798,  3819,  3840,  3861,  3882,  3903,  3924,  3945,  3966,  3987,
+    4008,  4029,  4050,  4071,  4092,  4113,  4134,  4155,  4176,  4197,
+    4218,  4239,  4260,  4281,  4302,-32768,-32768,-32768,-32768,-32768,
+  -32768,-32768,-32768,  1242,-32768,-32768,-32768,  1177,    37,  2375,
+    1398,  1452,     8,-32768,  1451, 10492,     6,-32768,-32768,-32768,
+  -32768,   -44,-32768,  1453,-32768,  1454,-32768,-32768,  1261,   505,
+   12334,  4323,  1456,  1457,  1458,  2375,  2375,  1459,  1462,  1464,
+    1490,  1491,  1492,  1493,-32768,  2308,  2985, 11552,  2464,   581,
+     -44,  1494,   -44,  1495,   -44,  1496,  1497,  1498,  1499,  2375,
+    2375,-32768,-32768,  1500,  1177,  1177,  1403,  1177,  2629,   204,
+   11575,  2375,    17,  1505,  2375,  1177,  1503,  1507,  1534,  1326,
+    1535,   430,  1565,  1536,  2375,  1575,  1579,  1577,  1581,  1582,
+     430,  2375,  2375,  2375,  1177,  1583,  1585,   430,  2375,  1587,
+    1588,  1586,  2375,   444,-32768,-32768,  2375,  2375,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375,  2375,  2375,  1535,  1563,  1575,  1730, -1304,  1576,
-    1579, -1304,  1384, -1304,    16, -1304, -1304, -1304,  1344,  2375,
-   -1304, -1304, -1304,  1775,  1843, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304,  2052,  1581,  1388, -1304,  2375, -1304,  1389,   144,
-   -1304,   151, -1304,  1391,   157, -1304,  1392, -1304, -1304, -1304,
-    4446,  4469,  -129,   143, -1304,   499,  1395,  1489,  2375, -1304,
-    2375, -1304, -1304,  4492,    10,  1398,  4515,  1397, -1304,  1400,
-   -1304,  1428, -1304,  1403, -1304,  1430, 12143, -1304,  1432, -1304,
-   -1304,  1410,  1437, 12166,  4538, 12189,  1438, -1304,  1439,  1440,
-    4561,  1441,  1443, -1304,  4584,  1444,  4607,  4630,  4653,  4676,
-    4699,  4722,  4745,  4768,  4791,  4814,  4837,  4860,  4883,  4906,
-    4929,  4952,  4975,  4998,  5021,  5044,  5067,  5090,  5113,  5136,
-    5159,  5182,  1447, -1304, -1304, -1304,     6, -1304,  1525, -1304,
-   -1304,  5205, -1304, -1304, -1304, -1304,   369,  2655, -1304,  1533,
-    1533,   -20,  1533,   -20,  2375,  2375,  1530, -1304,  1177, -1304,
-    1177,  2375,  2994,  3023,  1177,  1477,  1595,  -129,   382,  1600,
-    2375,  1638,   382,  1639,  1645,  1643,  1644,  1648,  2375,  1649,
-    1177,  1650,  1652,  2375,  1656,  1654,  2375,  1646,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
+    2375,  2375,  1589,  1590,  1592,  1393,-32768,  1594,  1593,-32768,
+    1397,-32768,    77,-32768,-32768,-32768,  1406,  2375,-32768,-32768,
+  -32768,  1591,  1647,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+    1730,  1599,  1427,-32768,  2375,-32768,  1428,   216,-32768,   218,
+  -32768,  1430,   248,-32768,  1431,-32768,-32768,-32768,  4344,  4365,
+    -143,   142,-32768,   508,  1432,  1537,  2375,-32768,  2375,-32768,
+  -32768,  4386,    17,  1438,  4407,  1435,-32768,  1436,-32768,  1439,
+  -32768,  1444,-32768,  1441, 11598,-32768,  1443,-32768,-32768,  1448,
+    1449, 11621,  4428, 11644,  1446,-32768,  1455,  1460,  4449,  1450,
+    1461,-32768,  4470,  1466,  4491,  4512,  4533,  4554,  4575,  4596,
+    4617,  4638,  4659,  4680,  4701,  4722,  4743,  4764,  4785,  4806,
+    4827,  4848,  4869,  4890,  4911,  4932,  4953,  4974,  4995,  5016,
+    1465,-32768,-32768,-32768,     6,-32768,  1543,-32768,-32768,  5037,
+  -32768,-32768,-32768,-32768,   581,  2896,-32768,  1533,  1533,   -10,
+    1533,   -10,  2375,  2375,  1548,-32768,  1177,-32768,  1177,  2375,
+    3014,  3037,  1177,  1504,  1648,  -143,   430,  1655,  2375,  1653,
+     430,  1656,  1658,  1661,  1662,  1663,  2375,  1666,  1177,  1667,
+    1668,  2375,  1672,  1670,  2375,  1673,  2375,  2375,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375,  2375,  2375, -1304,  1655, -1304,  1657,  1464,  2375,
-   -1304,  1533,  1533,  2375,  3048,   232,  3078,   263,  1660,  1468,
-     -32, -1304,  3103,   269,   -26,  3132,  3157,  1469, -1304,  1473,
-    2079, -1304, -1304,  1466,    10, -1304,  1474,  1475,  1476,  5228,
-   -1304,  1481, -1304,  1482, -1304, -1304, -1304, 12212, -1304,  1479,
-   -1304, -1304, 12235,  1486, -1304, 12258,  1483, 12281, 12304, 12327,
-    5251,  5274,  5297,  5320,  5343,  5366,  5389,  5412,  5435,  5458,
-    5481,  5504,  5527,  5550,  5573,  5596,  5619,  5642,  5665,  5688,
-    5711, 12350,  5734, -1304,  1485, -1304,  3186,  1270,  1677,  2375,
-    1679,  2375, -1304,  1177,  1680, -1304,  1699,  2375,  1700,  1701,
-    1702,  1177,  1177, -1304,  1703,    10,   382,   382,   382,   382,
-    1704,  1705,  1706,   382,  1707,  1708,  1709,  1713, -1304, -1304,
-   -1304,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375, -1304,  2375,  1714, -1304, -1304,  3217, -1304,  1520,
-    3242,  1522, -1304, -1304,  1523,  3267, -1304, -1304, -1304,  1526,
-    1527, -1304,    10,  1531,  1532,  1529,  1537, -1304, -1304, -1304,
-    1536, -1304, -1304, -1304,  1538,  1539,  1540,  1541,  5757,  5780,
-    5803,  5826,  5849,  5872,  5895,  5918,  5941,  5964,  5987,  6010,
-    6033,  6056,  6079,  6102,  6125,  6148,  6171,  6194,  6217,  1542,
-   12373,  1568,  1720,   -20,  1723,  1177,   -20,  1728,  1177,  1682,
-    1617,   382,   382,  1774,  1777,   382,  1780,  2375,  2375,  2375,
+    2375,  2375,-32768,  1671,-32768,  1676,  1481,  2375,-32768,  1533,
+    1533,  2375,  3060,   254,  3083,   289,  1677,  1484,   -41,-32768,
+    3106,   291,   -40,  3135,  3158,  1485,-32768,  1487,  1779,-32768,
+  -32768,  1506,    17,-32768,  1509,  1510,  1511,  5058,-32768,  1516,
+  -32768,  1517,-32768,-32768,-32768, 11667,-32768,  1514,-32768,-32768,
+   11690,  1519,-32768, 11713,  1520, 11736, 11759, 11782,  5079,  5100,
+    5121,  5142,  5163,  5184,  5205,  5226,  5247,  5268,  5289,  5310,
+    5331,  5352,  5373,  5394,  5415,  5436,  5457,  5478,  5499, 11805,
+    5520,-32768,  1521,-32768,  3187,  1140,  1699,  2375,  1700,  2375,
+  -32768,  1177,  1709,-32768,  1712,  2375,  1715,  1717,  1718,  1177,
+    1177,-32768,  1719,    17,   430,   430,   430,   430,  1720,  1722,
+    1723,   430,  1724,  1725,  1726,  1729,-32768,-32768,-32768,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,    67, -1304,  1781, -1304,   -23, -1304,  1587,   515,   -19,
-   -1304,  1588,  1589,  1592,    10,  1590,  1594, -1304, -1304,  1596,
-    1599,   524, 12879,   525, 12879,   528, 12879,  6240,  6263,  6286,
-    6309,  6332,  6355,  6378,  6401,  6424,  6447,  6470,  6493,  6516,
-    6539,  6562,  6585,  6608,  6631,  6654,  6677,  6700,   543, -1304,
-    1598,  1618,  1790,   -20,  1177,  1794,  1817,   -20,  1735,  2375,
-      10,   382,  1177,  1830,  1831,  2375,  1832,  2375,  1833,  2375,
-    1835,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
+  -32768,  2375,  1732,-32768,-32768,  3221,-32768,  1539,  3244,  1541,
+  -32768,-32768,  1542,  3267,-32768,-32768,-32768,  1570,  1540,-32768,
+      17,  1580,  1584,  1595,  1596,-32768,-32768,-32768,  1597,-32768,
+  -32768,-32768,  1601,  1598,  1619,  1625,  5541,  5562,  5583,  5604,
+    5625,  5646,  5667,  5688,  5709,  5730,  5751,  5772,  5793,  5814,
+    5835,  5856,  5877,  5898,  5919,  5940,  5961,  1635, 11828,  1637,
+    1774,   -10,  1775,  1177,   -10,  1776,  1177,  1686,  1573,   430,
+     430,  1781,  1782,   430,  1784,  2375,  2375,  2375,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375,    67,  1836,    67,  1837, -1304,   -16,  1664, -1304,
-   -1304,   -10,  1666,  6723,    10,  1668,  1669, -1304, -1304, 12879,
-   -1304, 12879, -1304, 12879, -1304, 12396, 12419, 12442,  6746,  6769,
-    6792,  6815,  6838,  6861,  6884,  6907,  6930,  6953,  6976,  6999,
-    7022,  7045,  7068,  7091,  7114,  7137, -1304, -1304,   544, -1304,
-   -1304,  1838,  1839,  1840,  2375,  2375,  1681,   382,  1177, -1304,
-   -1304, -1304,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
+    2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,    37,
+  -32768,  1787,-32768,   -31,-32768,  1638,   509,   -25,-32768,  1639,
+    1636,  1641,    17,  1643,  1644,-32768,-32768,  1649,  1650,   512,
+   12334,   513, 12334,   517, 12334,  5982,  6003,  6024,  6045,  6066,
+    6087,  6108,  6129,  6150,  6171,  6192,  6213,  6234,  6255,  6276,
+    6297,  6318,  6339,  6360,  6381,  6402,   518,-32768,  1646,  1664,
+    1788,   -10,  1177,  1841,  1842,   -10,  1693,  2375,    17,   430,
+    1177,  1843,  1860,  2375,  1861,  2375,  1862,  2375,  1863,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-      67,  1841, -1304, -1304, -1304,  7160,  3292,  1710,  1670,  1671,
-    1672,  1673,  1674,  7183,  7206,  7229,  7252,  7275,  7298,  7321,
-    7344,  7367,  7390,  7413,  7436,  7459,  7482,  7505,  7528,  7551,
-    7574, -1304, -1304,  2375,  1865, -1304,  1177,   382,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  3317,
-   -1304,  1676,  1684,   548, 12879,   557, 12879,   561, 12879,  7597,
-    7620,  7643,  7666,  7689,  7712,  7735,  7758,  7781,  7804,  7827,
-    7850,  7873,  7896,  7919,  7942,  7965,  7988,  1870,  1177,  1871,
-    2375,  1874,  2375,  1875,  2375,  1876,  2375,  2375,  2375,  2375,
+      37,  1864,    37,  1865,-32768,   -21,  1674,-32768,-32768,   -11,
+    1678,  6423,    17,  1675,  1680,-32768,-32768, 12334,-32768, 12334,
+  -32768, 12334,-32768, 11851, 11874, 11897,  6444,  6465,  6486,  6507,
+    6528,  6549,  6570,  6591,  6612,  6633,  6654,  6675,  6696,  6717,
+    6738,  6759,  6780,  6801,-32768,-32768,   524,-32768,-32768,  1866,
+    1867,  1870,  2375,  2375,  1710,   430,  1177,-32768,-32768,-32768,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375,  2375,  2375, -1304,  1685, -1304, 12879, -1304, 12879,
-   -1304, 12879, -1304, 12465, 12488, 12511,  8011,  8034,  8057,  8080,
-    8103,  8126,  8149,  8172,  8195,  8218,  8241,  8264,  8287,  8310,
-    8333,  1177, -1304, -1304, -1304,  2375,  2375,  2375,  2375,  2375,
+    2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,    37,  1874,
+  -32768,-32768,-32768,  6822,  3290,  1713,  1683,  1684,  1708,  1721,
+    1727,  6843,  6864,  6885,  6906,  6927,  6948,  6969,  6990,  7011,
+    7032,  7053,  7074,  7095,  7116,  7137,  7158,  7179,  7200,-32768,
+  -32768,  2375,  1878,-32768,  1177,   430,  2375,  2375,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    1719,  1683,  1721,  1722,  8356,  8379,  8402,  8425,  8448,  8471,
-    8494,  8517,  8540,  8563,  8586,  8609,  8632,  8655,  8678,  1177,
+    2375,  2375,  2375,  2375,  2375,  2375,  2375,  3313,-32768,  1748,
+    1734,   525, 12334,   528, 12334,   539, 12334,  7221,  7242,  7263,
+    7284,  7305,  7326,  7347,  7368,  7389,  7410,  7431,  7452,  7473,
+    7494,  7515,  7536,  7557,  7578,  1912,  1177,  1913,  2375,  1914,
+    2375,  1916,  2375,  1918,  2375,  2375,  2375,  2375,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  1725,   562,
-   12879,   567, 12879,   572, 12879,  8701,  8724,  8747,  8770,  8793,
-    8816,  8839,  8862,  8885,  8908,  8931,  8954,  8977,  9000,  9023,
-     382,  2375,  1900,  2375,  1913,  2375,  1914,  2375,  2375,  2375,
+    2375,  2375,-32768,  1749,-32768, 12334,-32768, 12334,-32768, 12334,
+  -32768, 11920, 11943, 11966,  7599,  7620,  7641,  7662,  7683,  7704,
+    7725,  7746,  7767,  7788,  7809,  7830,  7851,  7872,  7893,  1177,
+  -32768,-32768,-32768,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
+    2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  1750,  1731,
+    1757,  1767,  7914,  7935,  7956,  7977,  7998,  8019,  8040,  8061,
+    8082,  8103,  8124,  8145,  8166,  8187,  8208,  1177,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375,  1732, 12879, -1304, 12879, -1304, 12879, -1304, 12534,
-   12557, 12580, 12603, 12626, 12649,  9046,  9069,  9092,  9115,  9138,
-    9161,  9184,  9207,  9230,  1919, -1304, -1304, -1304, -1304, -1304,
-   -1304,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-   -1304,  1729,  1731,  1747,  1763,  1764,  1765,  9253,  9276,  9299,
-    9322,  9345,  9368,  9391,  9414,  9437,  2375,  2375,  2375,  2375,
+    2375,  2375,  2375,  2375,  2375,  2375,  1751,   543, 12334,   544,
+   12334,   548, 12334,  8229,  8250,  8271,  8292,  8313,  8334,  8355,
+    8376,  8397,  8418,  8439,  8460,  8481,  8502,  8523,   430,  2375,
+    1919,  2375,  1962,  2375,  1963,  2375,  2375,  2375,  2375,  2375,
     2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,   573, 12879,   576, 12879,   580, 12879,   581, 12879,   628,
-   12879,   629, 12879,  9460,  9483,  9506,  9529,  9552,  9575,  9598,
-    9621,  9644,  2375,  1960,  2375,  1961,  2375,  1963,  2375,  1964,
-    2375,  1965,  2375,  1966,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  2375,  2375, 12879, -1304, 12879, -1304, 12879, -1304, 12879,
-   -1304, 12879, -1304, 12879, -1304,  9667,  9690,  9713,  9736,  9759,
-    9782, 12672, 12695, 12718,  2375,  2375,  2375,  2375,  2375,  2375,
-   -1304, -1304, -1304,  9805,  9828,  9851,  9874,  9897,  9920,  1773,
-    1785,  1786,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    2375,  9943,  9966,  9989, 10012, 10035, 10058,   634, 12879,   654,
-   12879,   659, 12879,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
-    1968,  2375,  1969,  2375,  1981, 10081, 10104, 10127, 12741, 12764,
-   12787, 12879, -1304, 12879, -1304, 12879, -1304,  2375,  2375,  2375,
-   -1304, -1304, -1304, 10150, 10173, 10196,  1788,  1789,  1791,  2375,
-    2375,  2375,  2375,  2375,  2375, 10219, 10242, 10265,   660, 12879,
-     663, 12879,   666, 12879,  2375,  2375,  2375,  2375,  1984,  2375,
-    1986,  2375,  1987, 10288, 10311, 10334, 12879, -1304, 12879, -1304,
-   12879, -1304,  2375,  2375,  2375, 10357, 10380, 10403,  2375,  2375,
-    2375, 10426, 10449, 10472,  2375,  2375,  2375, 12810, 12833, 12856,
-   -1304, -1304, -1304,  1795,  1796,  1797,  2375,  2375,  2375,   667,
-   12879,   674, 12879,   675, 12879,  2375,  1988,  2375,  1992,  2375,
-    1993, 12879, -1304, 12879, -1304, 12879, -1304
+    1778, 12334,-32768, 12334,-32768, 12334,-32768, 11989, 12012, 12035,
+   12058, 12081, 12104,  8544,  8565,  8586,  8607,  8628,  8649,  8670,
+    8691,  8712,  1964,-32768,-32768,-32768,-32768,-32768,-32768,  2375,
+    2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,-32768,  1771,
+    1785,  1786,  1789,  1790,  1791,  8733,  8754,  8775,  8796,  8817,
+    8838,  8859,  8880,  8901,  2375,  2375,  2375,  2375,  2375,  2375,
+    2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,   557,
+   12334,   561, 12334,   562, 12334,   567, 12334,   572, 12334,   573,
+   12334,  8922,  8943,  8964,  8985,  9006,  9027,  9048,  9069,  9090,
+    2375,  1968,  2375,  1969,  2375,  1981,  2375,  1982,  2375,  1986,
+    2375,  1987,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,
+    2375, 12334,-32768, 12334,-32768, 12334,-32768, 12334,-32768, 12334,
+  -32768, 12334,-32768,  9111,  9132,  9153,  9174,  9195,  9216, 12127,
+   12150, 12173,  2375,  2375,  2375,  2375,  2375,  2375,-32768,-32768,
+  -32768,  9237,  9258,  9279,  9300,  9321,  9342,  1794,  1795,  1796,
+    2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  9363,
+    9384,  9405,  9426,  9447,  9468,   576, 12334,   580, 12334,   583,
+   12334,  2375,  2375,  2375,  2375,  2375,  2375,  2375,  1991,  2375,
+    1992,  2375,  1993,  9489,  9510,  9531, 12196, 12219, 12242, 12334,
+  -32768, 12334,-32768, 12334,-32768,  2375,  2375,  2375,-32768,-32768,
+  -32768,  9552,  9573,  9594,  1800,  1816,  1825,  2375,  2375,  2375,
+    2375,  2375,  2375,  9615,  9636,  9657,   628, 12334,   629, 12334,
+     634, 12334,  2375,  2375,  2375,  2375,  2021,  2375,  2024,  2375,
+    2027,  9678,  9699,  9720, 12334,-32768, 12334,-32768, 12334,-32768,
+    2375,  2375,  2375,  9741,  9762,  9783,  2375,  2375,  2375,  9804,
+    9825,  9846,  2375,  2375,  2375, 12265, 12288, 12311,-32768,-32768,
+  -32768,  1834,  1835,  1836,  2375,  2375,  2375,   654, 12334,   659,
+   12334,   660, 12334,  2375,  2032,  2375,  2034,  2375,  2036, 12334,
+  -32768, 12334,-32768, 12334,-32768,  2044,  2046,-32768
 };
 
-/* YYPGOTO[NTERM-NUM].  */
 static const short yypgoto[] =
 {
-   -1304, -1304,   -36, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304,  1401, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1304,  -291,   -22, -1304,  2011,  2023,  -351,  -162,  2024,
-   -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304, -1304,
-   -1304, -1254, -1303, -1304, -1304, -1015,   -25, -1304,   -31, -1304,
-     -91, -1304, -1143,   977,  1484,  -231,  -322,  -707,  1034, -1304,
-    -259
+  -32768,   -34,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+  -32768,-32768,  1467,-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,-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,  -289,   -20,-32768,  2051,  2054,  -349,  -160,  2055,-32768,
+  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+   -1252, -1301,-32768,-32768, -1013,   -23,-32768,   -29,-32768,   -89,
+  -32768, -1148,  1008,  1486,  -229,  -320,  -705,  1071,-32768,  -257
 };
 
-/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
-   positive, shift that token.  If negative, reduce the rule which
-   number is the opposite.  If zero, do what YYDEFACT says.
-   If YYTABLE_NINF, parse error.  */
-#define YYTABLE_NINF -55
+
+#define	YYLAST		12527
+
+
 static const short yytable[] =
 {
-     139,   236,   532,   138,   474,   862,   507,   181,   178,  1344,
-     192,   241,   711,    82,   171,   173,   147,   359,   190,   195,
-    1011,   363,  1249,   149,    97,   147,   463,   464,   465,  1266,
-     295,   368,   853,  1338,   144,  1012,     9,  1415,  1339,  1338,
-     755,  1415,  1338,    10,  1339,  1338,  1338,  1339,   203,  1338,
-    1339,  1339,   132,   133,  1339,  1338,   350,   351,  1193,   807,
-    1339,    11,   470,   350,   351,  1056,    85,  1202,   461,   462,
-      91,  1057,   462,   352,  1209,    86,   350,   351,  1013,   523,
-     538,    29,    30,   539,   540,    33,    34,    35,   243,    36,
-     244,    38,    39,   353,    41,    42,    87,   470,   122,   123,
-     124,   122,   123,   124,   288,   289,   290,   543,   544,   291,
-     294,    54,   298,   494,    92,   350,   351,   495,   182,   318,
-     319,   320,    93,   322,   369,   324,   325,  1068,   332,    88,
-     296,   297,   854,   855,  1356,   345,    89,   347,   592,    55,
-      56,    57,   593,   354,   348,   349,   148,    90,   350,   351,
-     350,   351,   756,  1006,   161,   148,   142,   162,   163,   757,
-     164,    97,  1077,   366,   367,   599,   370,   379,   372,  1414,
-     191,   375,   376,   716,   143,  1418,   350,   351,  1612,   167,
-     168,   705,  1616,   144,   728,  1701,   125,   126,   127,   128,
-     169,  1703,   533,   145,    83,  1180,   170,   350,   351,   350,
-     351,    67,   186,   183,   179,   187,   193,   242,   712,   196,
-     417,   556,   175,   415,   707,   176,   177,   146,   419,   420,
-     421,   422,   423,   424,   425,   426,   427,   428,   429,   430,
-     431,   432,   433,   434,   435,   436,   437,   438,   439,   440,
-     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
-     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
-     473,   149,  1415,  1357,   470,    12,  1415,  1361,   469,  1565,
-     132,   133,  1569,   475,  1000,   470,   479,   480,   481,   482,
-     483,   484,   485,   486,   487,   488,   489,   490,   491,   492,
-     493,   350,   351,   697,   152,   866,   499,   698,   501,   702,
-     997,  1133,   289,   469,   702,  1027,  1028,   895,   511,   512,
-     513,   150,   515,   516,   517,   518,   519,   520,   521,   526,
-     527,   350,   351,   125,   126,   127,   128,   350,   351,   151,
-     534,   535,   536,   537,   350,   351,   545,  1042,  1267,  1043,
-     350,   351,  1268,  1259,   552,   132,   133,   312,   313,   314,
-    1260,   154,   704,   560,  1415,   315,  1262,   153,  1415,  1657,
-     301,   302,   303,  1661,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,   508,   847,   350,   351,   155,
-     315,   310,   311,   312,   313,   314,   156,   160,  1181,   350,
-     351,   315,   166,  1044,   598,  1045,    13,    14,    15,    16,
-      17,    18,    19,    20,   875,  1046,   245,  1047,   246,  1036,
-    1037,  1483,  1484,  1485,  1486,   350,   351,   247,  1490,   248,
-     165,   174,   125,   126,   127,   128,   184,    44,    45,    46,
-      47,  1409,    49,   903,   904,   905,   125,   126,   127,   128,
-     848,   180,   885,   289,   132,   133,   350,   351,   185,   708,
-     706,   188,   350,   351,   189,   197,   132,   133,   132,   133,
-     198,   238,  1411,   239,   249,   201,   250,   470,  1417,   202,
-     469,   851,   199,   132,   133,   251,   200,   252,   504,   415,
-     239,   469,   234,   730,   731,   285,   132,   133,   286,   736,
-     886,   727,   745,   239,   253,   470,   254,   287,   237,   746,
-     747,   945,   946,   947,   948,   949,   157,   158,   750,   159,
-     255,   257,   256,   258,   299,   316,  1575,  1576,   317,   758,
-    1579,   259,   321,   260,   470,   470,   470,   261,   323,   262,
-     768,   333,   770,   771,   263,   265,   264,   266,   337,  1325,
-     301,   302,   303,   334,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,  1021,   267,   269,   268,   270,
-     315,   999,  1001,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,   335,    94,    95,   808,   695,   315,   696,    98,
-      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
-     119,   120,   121,   271,   338,   272,  1665,   339,   340,   301,
-     302,   303,   341,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,   273,   275,   274,   276,   342,   315,
-     303,   343,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,   277,   344,   278,   470,   918,   315,   358,
-     837,   838,   279,   281,   280,   282,   283,   355,   284,   702,
-     702,   703,   729,   356,   839,   840,   841,   842,   843,   844,
-     845,   357,   558,   469,   702,   361,   878,   850,   362,  1008,
-     856,  1009,   702,   702,  1020,  1048,   867,   371,   373,   865,
-    1158,   702,  1738,  1049,   702,   702,  1050,  1138,  1268,   374,
-    1269,   469,   415,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,  1614,   958,  1615,   377,   410,   315,
-     899,   900,   901,  1625,  1627,  1626,  1628,  1629,   378,  1630,
-     469,   469,   469,   380,   381,   908,   909,   412,   315,   912,
-     300,  1126,  1652,  1730,  1653,  1731,   925,  1820,   382,  1821,
-     923,   924,  1792,   129,   130,   934,  1822,   383,  1823,   131,
-    1824,  1951,  1825,  1952,   134,   384,  1953,   292,  1954,   385,
-     293,  1955,  2062,  1956,  2063,  2064,   386,  2065,  1153,  2066,
-    2068,  2067,  2069,   387,   388,   961,   962,   963,   964,   965,
-     966,   967,   968,   969,   970,   971,   972,   973,   974,   975,
-     976,   977,   978,   979,   980,   981,   982,   983,   984,   985,
-     986,   389,   301,   302,   303,   390,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,  2070,  2072,  2071,
-    2073,  1002,   315,  2149,   919,  2150,  1007,   301,   302,   303,
-     391,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,   469,  2151,  1022,  2152,  1023,   315,  2153,  2197,
-    2154,  2198,  2199,   392,  2200,  2201,  2245,  2202,  2246,   414,
-    1038,  1039,  1040,  2247,  2249,  2248,  2250,   393,   394,   395,
-     396,   397,   398,   399,   400,  1064,   401,   402,   403,   404,
-     405,  1060,  1061,  1062,   406,   407,   408,   409,   416,   413,
-     467,   522,   477,   476,   509,  1328,   514,   301,   302,   303,
-     547,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,   548,   551,   554,   557,   561,   315,   562,   563,
-     564,   565,    94,    95,   585,  1972,   566,  1096,    98,    99,
+     137,   234,   530,   136,   472,   860,   505,   179,   176,  1342,
+     190,   239,   709,   147,   169,   171,   145,   357,   883,   193,
+      80,   361,  1264,   188,  1336,  1336,   461,   462,   463,  1337,
+    1337,   293,   145,   851,  1336,     9,  1010,  1413,  1009,  1337,
+    1336,  1413,   460,   366,  1336,  1337,   459,   460,   201,  1337,
+     142,  1054,   348,   349,  1336,  1336,   753,  1055,  1191,  1337,
+    1337,   492,   468,   348,   349,   493,   884,  1200,  1040,     8,
+    1041,   120,   121,   122,  1207,  1066,   120,   121,   122,  1011,
+     301,   302,   303,  1247,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,   130,   131,   348,   349,   468,   313,   348,
+     349,   805,   348,   349,   286,   287,   288,   348,   349,   289,
+     292,  1042,   296,  1043,  1075,  1044,    83,  1045,   180,   316,
+     317,   318,    84,   320,   350,   322,   323,  1354,   330,    95,
+      85,   294,   295,   852,   853,   343,   367,   345,    86,   165,
+     166,    89,   471,   352,   346,   347,   146,   541,   542,   755,
+     167,   173,   754,  1004,   174,   175,   168,   348,   349,    95,
+    1412,  1416,   146,   364,   365,   590,   368,   377,   370,   591,
+    1610,   373,   374,   714,   351,   189,  1614,   700,   695,   701,
+    1699,   703,   696,   998,   726,   299,   300,   301,   302,   303,
+    1701,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     700,    81,   727,   181,   177,   313,   191,   240,   710,   194,
+     415,   554,  1178,   413,   705,   348,   349,    87,   417,   418,
+     419,   420,   421,   422,   423,   424,   425,   426,   427,   428,
+     429,   430,   431,   432,   433,   434,   435,   436,   437,   438,
+     439,   440,   441,   442,   443,   444,   445,   446,   447,   448,
+     449,   450,   451,   452,   453,   454,   455,   456,   457,   458,
+     348,   349,  1413,  1355,   468,    90,  1413,  1359,   467,  1563,
+     864,    88,  1567,   473,   700,   468,   477,   478,   479,   480,
+     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
+     491,   123,   124,   125,   126,   995,   497,   184,   499,   700,
+     185,  1131,   287,   467,   123,   124,   125,   126,   509,   510,
+     511,    91,   513,   514,   515,   516,   517,   518,   519,   524,
+     525,   123,   124,   125,   126,   130,   131,    10,   130,   131,
+     532,   533,   534,   535,   348,   349,   543,  1265,   140,   348,
+     349,  1266,   130,   131,   550,   123,   124,   125,   126,   141,
+     702,   597,   142,   558,  1413,   521,   348,   349,  1413,  1655,
+     310,   311,   312,  1659,  1025,  1026,   130,   131,   313,   916,
+     155,   156,   531,   157,  1034,  1035,   845,   299,   300,   301,
+     302,   303,   143,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,   348,   349,   596,   144,   241,   313,   242,   348,
+     349,   348,   349,   159,   873,  1179,   160,   161,   893,   162,
+     147,  1481,  1482,  1483,  1484,  1257,   148,  1258,  1488,   302,
+     303,   149,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,   348,   349,   901,   902,   903,   313,   348,   349,   150,
+     846,   298,   152,   287,   243,   151,   244,  1260,   153,   706,
+     704,   158,   245,  1407,   246,   247,   476,   248,    11,    12,
+      13,    14,    15,    16,    17,    18,   249,   468,   250,   154,
+     467,   849,   348,   349,   348,   349,   251,   163,   252,   413,
+     253,   467,   254,   728,   729,   130,   131,   164,  1409,   734,
+    1415,   236,   743,   237,   255,   468,   256,   172,   178,   744,
+     745,   308,   309,   310,   311,   312,   130,   131,   748,   182,
+     197,   313,   502,   257,   237,   258,  1573,  1574,   198,   756,
+    1577,   130,   131,   199,   468,   468,   468,   725,   183,   237,
+     766,   186,   768,   769,   299,   300,   301,   302,   303,  1323,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,   943,
+     944,   945,   946,   947,   313,  1019,   917,   259,   261,   260,
+     262,   997,   999,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,   187,    92,    93,   806,   263,   313,   264,    96,
+      97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
+     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
+     117,   118,   119,   265,   195,   266,  1663,   196,   299,   300,
+     301,   302,   303,   200,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,   299,   300,   301,   302,   303,   313,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   232,    42,
+      43,    44,    45,   313,    47,   857,   468,   267,   235,   268,
+     835,   836,   269,   271,   270,   272,   273,   275,   274,   276,
+     277,   279,   278,   280,   837,   838,   839,   840,   841,   842,
+     843,   283,   506,   467,   281,   297,   282,   848,   314,   693,
+     854,   694,   284,   700,   285,   876,   865,   315,   319,   863,
+    1156,  1006,  1736,  1007,   700,   700,  1018,  1046,   700,   342,
+    1047,   467,   413,   700,   700,  1048,  1136,  1266,  1612,  1267,
+    1613,  1623,  1625,  1624,  1626,   956,  1627,  1650,  1628,  1651,
+     897,   898,   899,  1728,  1818,  1729,  1819,  1820,   321,  1821,
+     467,   467,   467,   878,   332,   906,   907,   331,  1822,   910,
+    1823,  1124,  1949,  1951,  1950,  1952,   923,  1953,   333,  1954,
+     921,   922,  1790,   127,   128,   932,  2060,   337,  2061,   129,
+    2062,  2064,  2063,  2065,   132,   335,  2066,   290,  2067,   336,
+     291,  2068,  2070,  2069,  2071,  2147,   338,  2148,  1151,  2149,
+     339,  2150,  2151,   340,  2152,   959,   960,   961,   962,   963,
+     964,   965,   966,   967,   968,   969,   970,   971,   972,   973,
+     974,   975,   976,   977,   978,   979,   980,   981,   982,   983,
+     984,   341,   299,   300,   301,   302,   303,   356,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,  2195,  2197,  2196,
+    2198,  1000,   313,  2199,   359,  2200,  1005,   299,   300,   301,
+     302,   303,   353,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,   467,  2243,  1020,  2244,  1021,   313,  2245,  2247,
+    2246,  2248,   354,   355,   360,   369,   371,   372,   375,   376,
+    1036,  1037,  1038,   378,   379,   380,   408,   381,   382,   383,
+     384,   385,   386,   387,   388,  1062,   389,   390,   391,   414,
+     392,  1058,  1059,  1060,   393,   394,   395,   396,   397,   398,
+     299,   300,   301,   302,   303,  1326,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,   399,   400,   401,   402,   403,
+     313,   411,   404,   405,   406,   407,   313,   465,   475,   507,
+     512,   410,    92,    93,   412,  1970,   474,  1094,    96,    97,
+      98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   520,   545,   546,   904,   549,   552,   555,   559,
+     560,   561,   562,   563,   564,   565,  1125,   566,   567,   568,
+     569,   570,  1132,   571,   572,   573,   536,    27,    28,   537,
+     538,    31,    32,    33,   574,    34,   575,    36,    37,   576,
+      39,    40,  1141,  1142,  1213,   577,   578,   579,   580,   581,
+     582,  1157,  1150,  1159,   584,  1162,   585,    52,   583,   586,
+     587,   588,   589,   697,   592,   594,  1168,  1169,  1182,   593,
+     698,   707,   708,   713,   742,   746,   715,   716,  1181,   717,
+     719,  1184,   721,  1003,   747,    53,    54,    55,   722,   730,
+     758,  1194,   759,   760,   761,   762,   764,   765,  1201,  1202,
+    1203,   771,   802,   926,   772,  1208,   773,   774,   775,  1212,
+     803,   776,   777,  1214,  1215,  1216,  1217,  1218,  1219,  1220,
+    1221,  1222,  1223,  1224,  1225,  1226,  1227,  1228,  1229,  1230,
+    1231,  1232,  1233,  1234,  1235,  1236,  1237,  1238,  1239,   778,
+     779,   780,   781,   782,   783,   784,   785,    65,   786,   787,
+     788,   789,   127,   128,  1249,   790,   791,   792,   129,   834,
+     844,   808,   858,   132,   793,   794,   723,   795,   809,   724,
+     796,  1255,   299,   300,   301,   302,   303,   797,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,   810,  1273,   539,
+      92,    93,   313,  1270,   798,  1271,    96,    97,    98,    99,
      100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
      110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     120,   121,   567,   568,   699,   478,   569,   570,   571,   572,
-     573,   574,   575,   576,   577,   578,  1127,   579,   580,   581,
-     582,   583,  1134,   584,   586,   587,   538,    29,    30,   539,
-     540,    33,    34,    35,   588,    36,   589,    38,    39,   590,
-      41,    42,  1143,  1144,  1215,   591,   594,   700,   595,   596,
-     710,  1159,  1152,  1161,   709,  1164,   715,    54,   717,   718,
-     719,   721,   723,   724,   732,   744,  1170,  1171,  1184,   748,
-     749,   760,   761,   762,   763,   764,   766,   767,  1183,   773,
-     804,  1186,   774,   859,   775,    55,    56,    57,   776,   777,
-     778,  1196,   779,   780,   781,   782,   783,   784,  1203,  1204,
-    1205,   785,   786,   787,   788,  1210,   789,   790,   791,  1214,
-     792,   793,   805,  1216,  1217,  1218,  1219,  1220,  1221,  1222,
-    1223,  1224,  1225,  1226,  1227,  1228,  1229,  1230,  1231,  1232,
-    1233,  1234,  1235,  1236,  1237,  1238,  1239,  1240,  1241,   794,
-     795,   796,   810,   797,   798,   799,   800,    67,   801,   802,
-     803,   806,   129,   130,  1251,   811,   812,   836,   131,   846,
-     849,   813,   814,   134,   815,   857,   725,   816,   817,   726,
-     818,  1257,   301,   302,   303,   819,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,   820,  1275,   541,
-      94,    95,   315,  1272,   821,  1273,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-      94,   326,   822,   852,   823,   858,    98,    99,   100,   101,
-     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-     301,   302,   303,   824,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,   825,   826,   827,  1335,  1337,
-     315,  1343,   828,   829,  1334,  1336,   830,  1342,   831,  1345,
-    1346,   832,   833,   834,   835,   860,  1350,   861,   864,   894,
-     870,   872,   881,   882,   883,  1359,   884,   887,   888,   889,
-     890,   891,   892,  1367,   893,   902,   907,   915,  1372,   913,
-     921,  1375,   920,  1377,  1378,  1379,  1380,  1381,  1382,  1383,
-    1384,  1385,  1386,  1387,  1388,  1389,  1390,  1391,  1392,  1393,
-    1394,  1395,  1396,  1397,  1398,  1399,  1400,  1401,  1402,   922,
-     926,   347,  1609,   927,  1406,   928,   288,   289,  1407,   929,
-     930,   933,   935,   936,   939,   301,   302,   303,  1425,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     129,   130,   940,   941,   942,   315,   131,   943,   952,   955,
-     996,   134,   953,   733,   876,   954,   956,   877,   957,   959,
-     998,  1003,  1041,  1004,  1010,  1014,  1016,  1018,  1019,  1053,
-     129,   327,  1054,  1063,  1059,  1065,   131,  1069,  1070,  1071,
-    1072,   134,  1097,  1073,  1124,  1074,  1128,   328,  1129,  1079,
-    1075,  1076,  1078,  1080,  1467,  1081,  1470,  1131,  1082,  1482,
-    1083,  1084,  1475,  1696,  1085,  1699,  1086,  1087,  1088,   880,
-    1089,  1093,  1090,  1091,  1092,  1135,  1094,  1095,  1136,  1137,
-    1140,  1141,  1142,  1145,  1146,  1147,  1498,  1499,  1500,  1501,
-    1502,  1503,  1504,  1505,  1506,  1507,  1508,  1509,  1510,  1511,
-    1512,  1513,  1514,  1515,  1516,  1517,  1518,  1148,  1520,  1149,
-    1150,  1151,  1160,   301,   302,   303,  1530,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,  1162,  1165,
-    1167,  1168,  1169,   315,  1172,   466,    94,   505,  1176,   524,
-    1185,  1761,    98,    99,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     116,   117,   118,   119,   120,   121,  1188,  1189,  1190,  1191,
-    1195,  1192,  1194,  1198,  1197,  1199,  1201,  1200,  1207,  1208,
-    1211,  1212,  1582,  1584,  1586,  1587,  1588,  1589,  1590,  1591,
-    1592,  1593,  1594,  1595,  1596,  1597,  1598,  1599,  1600,  1601,
-    1602,  1603,  1604,  1605,  1606,  1607,    94,    95,  1620,  1242,
-    1213,  1250,    98,    99,   100,   101,   102,   103,   104,   105,
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
-     116,   117,   118,   119,   120,   121,   301,   302,   303,  1243,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,  1244,  1248,  1246,  1664,  1247,   315,  1255,  1256,  1271,
-    1258,  1261,  1263,  1276,  1663,  1270,  1278,   906,  1281,  1279,
-    1669,  1355,  1671,  1358,  1673,  1285,  1675,  1676,  1677,  1678,
-    1679,  1680,  1681,  1682,  1683,  1684,  1685,  1686,  1687,  1688,
-    1689,  1690,  1691,  1692,  1693,  1694,  1695,  1280,  1706,  1282,
-    1326,  1284,  1286,  1347,  1291,  1292,   330,  1290,  1295,  1354,
-    1294,   336,  1324,  1297,  1360,  1362,   129,   130,  1363,  1364,
-    1365,  1376,   131,  1005,  1366,  1368,  1370,   134,  1371,  1373,
-    1374,  1403,  1404,   506,   360,  1405,  1412,  1424,  1413,  1421,
-     364,   365,  1422,  1426,  1427,  1428,  1430,  1431,  1433,  1735,
-    1736,  1435,  1437,  1466,  1464,  1468,  1472,  1743,  1744,  1745,
-    1746,  1747,  1748,  1749,  1750,  1751,  1752,  1753,  1754,  1755,
-    1756,  1757,  1758,  1759,  1760,  1473,  1476,  1477,  1478,  1481,
-    1487,  1488,  1489,  1491,  1492,  1493,  1331,  1332,  1494,  1521,
-    1523,  1525,   131,  1526,  1533,  1528,  1564,  1333,  1529,  1566,
-    1531,  1532,  1534,   170,  1570,  1535,  1245,  1536,  1789,  1537,
-    1538,  1539,  1561,  1794,  1796,  1798,  1799,  1800,  1801,  1802,
-    1803,  1804,  1805,  1806,  1807,  1808,  1809,  1810,  1811,  1812,
-    1813,  1814,  1815,  1816,   301,   302,   303,  1563,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,  1574,
-    1577,  1252,  1573,  1578,   315,  1580,  1611,  1613,  1617,  1621,
-    1618,  1623,  1619,  1622,  1624,  1847,  1656,  1849,  1654,  1851,
-    1659,  1853,  1854,  1855,  1856,  1857,  1858,  1859,  1860,  1861,
-    1862,  1863,  1864,  1865,  1866,  1867,  1868,  1869,  1870,  1655,
-     301,   302,   303,  1660,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,  1662,  1667,  1668,  1670,  1672,
-     315,  1674,  1697,  1700,  1732,  1733,  1734,  1762,  1737,  1253,
-    1894,  1895,  1896,  1897,  1898,  1899,  1900,  1901,  1902,  1903,
-    1904,  1905,  1906,  1907,  1908,  1702,  1704,  1707,  1708,  1766,
-    1767,  1790,  1768,  1769,  1770,  1818,  1844,  1846,  1765,  1819,
-    1848,  1850,  1852,  1910,  1871,  1930,  1932,  1934,  1935,  1936,
-    1937,  1938,  1939,  1940,  1941,  1942,  1943,  1944,  1945,  1946,
-    1947,  1948,  1949,   301,   302,   303,  1974,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,  1909,  1976,
-    1978,  1911,  1912,   315,  1950,  2010,  1973,  1994,  1975,  2026,
-    1977,  2027,  1979,  1980,  1981,  1982,  1983,  1984,  1985,  1986,
-    1987,  1988,  1989,  1990,  1991,  1992,  1993,  2028,   301,   302,
-     303,   701,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,  2029,  2030,  2031,  2084,  2086,   315,  2088,
-    2090,  2092,  2094,  2128,  2162,  2164,  2017,  2018,  2019,  2020,
-    2021,  2022,  2023,  2024,  2025,  2129,  2130,  2166,  2182,  2183,
-    2207,  2184,  2209,  2211,  2252,  2236,  2237,  2238,  2254,  2256,
-     809,  2042,  2044,  2046,  2048,  2050,  2052,  2053,  2054,  2055,
-    2056,  2057,  2058,  2059,  2060,  2061,   301,   302,   303,    72,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,    73,    74,     0,  1175,     0,   315,  2083,  1130,  2085,
-       0,  2087,     0,  2089,     0,  2091,     0,  2093,     0,  2095,
-    2096,  2097,  2098,  2099,  2100,  2101,  2102,  2103,  1254,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  2113,
-    2114,  2115,  2116,  2117,  2118,  1423,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  2131,  2132,  2133,
-    2134,  2135,  2136,  2138,  2140,  2142,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  2155,  2156,
-    2157,  2158,  2159,  2160,  2161,     0,  2163,     0,  2165,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  2173,  2174,  2175,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,  2185,  2186,  2187,  2189,  2191,  2193,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  2203,
-    2204,  2205,  2206,     0,  2208,     0,  2210,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  2215,  2216,  2217,
-       0,     0,     0,  2221,  2222,  2223,     0,     0,     0,  2227,
-    2228,  2229,   868,   869,     0,   871,     0,   873,   874,     0,
-       0,  2240,  2242,  2244,     0,     0,     0,     0,     0,     0,
-    2251,     0,  2253,     0,  2255,   301,   302,   303,     0,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,   910,   911,     0,     0,
-     914,     0,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,   931,   932,     0,
-       0,     0,   315,   937,   938,     0,     0,    94,    95,    96,
-     944,    97,   951,    98,    99,   100,   101,   102,   103,   104,
-     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,     0,   122,   123,
-     124,    94,    95,   462,     0,     0,     0,    98,    99,   100,
-     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
-     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
-     121,     0,   122,   123,   124,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,  1015,     0,  1017,     0,     0,     0,
-       0,     0,     0,   714,     0,     0,  1024,  1025,  1026,     0,
-       0,  1029,  1030,  1031,  1032,  1033,  1034,  1035,    94,    95,
-       0,     0,     0,     0,    98,    99,   100,   101,   102,   103,
-     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,   121,    94,   326,
-       0,     0,     0,     0,    98,    99,   100,   101,   102,   103,
+      92,   324,   799,   800,   801,   804,    96,    97,    98,    99,
+     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     299,   300,   301,   302,   303,   811,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,   812,   847,   855,  1333,  1335,
+     313,  1341,   813,   814,  1332,  1334,   856,  1340,   815,  1343,
+    1344,   859,   816,   862,   817,   818,  1348,   819,   820,   821,
+     822,   868,   823,   824,   825,  1357,   826,   827,   828,   829,
+     830,   831,   832,  1365,   833,   870,   850,   880,  1370,   881,
+     882,  1373,   879,  1375,  1376,  1377,  1378,  1379,  1380,  1381,
+    1382,  1383,  1384,  1385,  1386,  1387,  1388,  1389,  1390,  1391,
+    1392,  1393,  1394,  1395,  1396,  1397,  1398,  1399,  1400,   885,
+     886,   345,  1607,   887,  1404,   888,   286,   287,  1405,   889,
+     890,   891,   892,   299,   300,   301,   302,   303,  1423,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   900,   905,
+     127,   128,   911,   313,   913,   464,   129,   919,   918,   522,
+     920,   132,   924,   925,   874,   927,   928,   875,   931,   933,
+     934,   937,   938,   939,   940,   941,   950,   994,   953,   951,
+     127,   325,   952,   954,   955,   957,   129,   996,  1001,  1002,
+    1008,   132,  1012,  1014,  1016,  1017,  1039,   326,  1051,  1052,
+    1057,  1061,  1063,  1067,  1465,  1068,  1468,  1069,  1070,  1480,
+    1071,  1072,  1473,  1694,  1073,  1697,  1074,  1076,  1077,  1243,
+    1078,  1079,  1095,  1080,  1126,  1081,  1082,  1083,  1084,  1085,
+    1086,  1087,  1088,  1091,  1089,  1090,  1496,  1497,  1498,  1499,
+    1500,  1501,  1502,  1503,  1504,  1505,  1506,  1507,  1508,  1509,
+    1510,  1511,  1512,  1513,  1514,  1515,  1516,  1092,  1518,  1093,
+    1122,   299,   300,   301,   302,   303,  1528,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,  1127,  1129,  1135,  1133,
+    1134,   313,  1138,  1139,  1140,  1143,    92,   503,  1144,   731,
+    1145,  1759,    96,    97,    98,    99,   100,   101,   102,   103,
      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,   121,   879,     0,
-       0,     0,     0,   125,   126,   127,   128,     0,     0,     0,
-       0,     0,     0,     0,     0,   917,     0,   129,   130,     0,
-       0,     0,     0,   131,     0,   132,   133,     0,   134,     0,
-     135,     0,   136,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,  1125,     0,     0,     0,     0,     0,     0,
-       0,   129,   130,     0,     0,     0,     0,   131,    94,   505,
-       0,     0,   134,     0,    98,    99,   100,   101,   102,   103,
+     114,   115,   116,   117,   118,   119,  1146,  1147,  1148,  1149,
+    1158,  1160,  1163,  1165,  1166,  1167,  1174,  1170,  1183,  1186,
+    1187,  1189,  1580,  1582,  1584,  1585,  1586,  1587,  1588,  1589,
+    1590,  1591,  1592,  1593,  1594,  1595,  1596,  1597,  1598,  1599,
+    1600,  1601,  1602,  1603,  1604,  1605,    92,    93,  1618,  1193,
+    1188,  1190,    96,    97,    98,    99,   100,   101,   102,   103,
      104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,   121,   301,   302,
-     303,     0,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,  1177,     0,     0,     0,     0,   315,     0,
-       0,  1187,     0,     0,     0,     0,     0,     0,   129,   130,
-       0,     0,     0,     0,   131,     0,     0,     0,     0,   134,
-    1206,     0,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,   129,   468,
-       0,     0,   315,     0,   131,     0,     0,     0,  1156,   134,
-    1157,     0,     0,   301,   302,   303,     0,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-     301,   302,   303,   315,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,   301,   302,   303,
-     315,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,   -11,     1,
-       0,   -11,   -54,  1178,     0,  1179,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   129,   130,
-       0,     0,     0,     0,   131,     0,     0,     0,     0,   134,
-       0,   -54,     0,     0,     0,   -54,   -54,   -54,   -54,   -54,
-     -54,   -54,   -54,   -54,     0,   -54,   -54,   -54,   -54,   -54,
-     -54,   -54,     0,     0,     0,   -54,   -54,   -54,   -54,   -54,
-     -54,   -54,     0,   -54,   -54,   -54,   -54,   -54,   538,    29,
-      30,   539,   540,    33,    34,    35,     0,    36,     0,    38,
-      39,     0,    41,    42,     0,     0,     0,     0,     0,     0,
-       0,     0,  1348,     0,  1349,   -54,   -54,   -54,  1353,    54,
-       0,     0,   -54,     0,   -54,     0,   -54,   -54,   -54,   -54,
-     -54,   -54,   -54,     0,  1369,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    55,    56,    57,
-       0,     0,   -11,   -11,   -11,   -11,   -11,   -11,   -11,   -11,
-     538,    29,    30,   539,   540,    33,    34,    35,     0,    36,
-       0,    38,    39,     0,    41,    42,     0,   -54,     2,     3,
-       0,     4,     0,     0,     0,     0,     0,     0,   301,   302,
-     303,    54,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,    67,
-       0,     0,     0,     0,  1329,     0,  1330,     0,     0,    55,
-      56,    57,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,    25,
-       0,     0,   315,     0,     0,     0,     0,     0,     0,     0,
-     737,   546,     0,     0,     0,     0,     0,  1471,     0,     0,
-       0,     0,     0,     0,     0,  1479,  1480,     0,    26,     0,
-       0,     0,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    67,    36,    37,    38,    39,    40,    41,    42,     0,
-       0,     0,    43,    44,    45,    46,    47,    48,    49,     0,
-      50,    51,    52,    53,    54,     0,     0,   301,   302,   303,
+     114,   115,   116,   117,   118,   119,   299,   300,   301,   302,
+     303,  1192,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,  1195,  1196,  1197,  1662,  1199,   313,  1198,  1206,  1205,
+    1209,  1210,  1211,  1240,  1661,  1246,  1241,  1250,  1242,  1245,
+    1667,  1244,  1669,  1248,  1671,  1253,  1673,  1674,  1675,  1676,
+    1677,  1678,  1679,  1680,  1681,  1682,  1683,  1684,  1685,  1686,
+    1687,  1688,  1689,  1690,  1691,  1692,  1693,  1254,  1704,  1256,
+    1259,  1261,  1268,  1274,  1276,  1277,   328,  1269,  1278,  1279,
+    1280,   334,  1282,  1283,  1284,  1288,   127,   128,  1324,  1292,
+    1289,  1345,   129,  1251,  1353,  1290,  1293,   132,  1356,  1358,
+    1322,  1361,  1360,   504,   358,  1295,  1352,  1362,  1363,  1364,
+     362,   363,  1366,  1368,  1369,  1371,  1372,  1401,  1374,  1733,
+    1734,  1402,  1403,  1410,  1411,  1419,  1420,  1741,  1742,  1743,
+    1744,  1745,  1746,  1747,  1748,  1749,  1750,  1751,  1752,  1753,
+    1754,  1755,  1756,  1757,  1758,  1464,  1466,  1422,  1424,  1425,
+    1426,  1428,  1429,  1431,  1433,  1470,  1329,  1330,  1471,  1435,
+    1462,  1474,   129,  1475,  1476,  1479,  1485,  1331,  1486,  1487,
+    1489,  1490,  1491,   168,  1492,  1572,  1252,  1519,  1787,  1521,
+    1523,  1527,  1524,  1792,  1794,  1796,  1797,  1798,  1799,  1800,
+    1801,  1802,  1803,  1804,  1805,  1806,  1807,  1808,  1809,  1810,
+    1811,  1812,  1813,  1814,   299,   300,   301,   302,   303,  1526,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,  1529,
+    1562,  1564,  1568,  1530,   313,  1421,  1571,  1575,  1576,  1578,
+    1531,  1532,  1609,  1660,  1654,  1845,  1533,  1847,  1535,  1849,
+    1534,  1851,  1852,  1853,  1854,  1855,  1856,  1857,  1858,  1859,
+    1860,  1861,  1862,  1863,  1864,  1865,  1866,  1867,  1868,  1536,
+     299,   300,   301,   302,   303,  1537,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,  1559,  1561,  1616,  1611,  1615,
+     313,  1617,  1619,  1620,  1621,  1622,  1652,  1657,  1658,  1665,
+    1892,  1893,  1894,  1895,  1896,  1897,  1898,  1899,  1900,  1901,
+    1902,  1903,  1904,  1905,  1906,  1653,  1666,  1668,  1670,  1672,
+    1695,  1698,  1730,  1731,  1705,  1700,  1732,  1735,  1702,  1706,
+    1760,  1763,  1764,  1765,  1788,  1928,  1930,  1932,  1933,  1934,
+    1935,  1936,  1937,  1938,  1939,  1940,  1941,  1942,  1943,  1944,
+    1945,  1946,  1947,   299,   300,   301,   302,   303,  1766,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,  1842,  1844,
+    1846,  1767,  1848,   313,  1850,  1972,  1971,  1768,  1973,  1817,
+    1975,  1908,  1977,  1978,  1979,  1980,  1981,  1982,  1983,  1984,
+    1985,  1986,  1987,  1988,  1989,  1990,  1991,  1816,  1869,  1907,
+    1948,   699,   299,   300,   301,   302,   303,  1909,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,  1910,  1974,  1976,
+    2008,  2024,   313,  1992,  2082,  2084,  2015,  2016,  2017,  2018,
+    2019,  2020,  2021,  2022,  2023,  2025,  2026,  2086,  2088,  2027,
+    2028,  2029,  2090,  2092,  2126,  2127,  2128,  2160,  2162,  2164,
+    2180,  2040,  2042,  2044,  2046,  2048,  2050,  2051,  2052,  2053,
+    2054,  2055,  2056,  2057,  2058,  2059,  2181,   536,    27,    28,
+     537,   538,    31,    32,    33,  2182,    34,  2205,    36,    37,
+    2207,    39,    40,  2209,  2234,  2235,  2236,  2081,  2250,  2083,
+    2252,  2085,  2254,  2087,  2256,  2089,  2257,  2091,    52,  2093,
+    2094,  2095,  2096,  2097,  2098,  2099,  2100,  2101,    70,     0,
+     556,    71,    72,  1173,   807,     0,     0,     0,     0,     0,
+       0,     0,     0,  1128,     0,     0,    53,    54,    55,  2111,
+    2112,  2113,  2114,  2115,  2116,     0,   712,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,  2129,  2130,  2131,
+    2132,  2133,  2134,  2136,  2138,  2140,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,  2153,  2154,
+    2155,  2156,  2157,  2158,  2159,     0,  2161,     0,  2163,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    65,     0,
+       0,     0,  2171,  2172,  2173,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,  2183,  2184,  2185,  2187,  2189,  2191,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,  2201,
+    2202,  2203,  2204,     0,  2206,     0,  2208,     0,     0,     0,
+     544,     0,     0,     0,     0,     0,     0,  2213,  2214,  2215,
+       0,     0,     0,  2219,  2220,  2221,     0,     0,     0,  2225,
+    2226,  2227,   866,   867,     0,   869,     0,   871,   872,     0,
+       0,  2238,  2240,  2242,     0,     0,     0,     0,     0,     0,
+    2249,     0,  2251,     0,  2253,   299,   300,   301,   302,   303,
        0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,   769,     0,     0,     0,   315,     0,     0,
-       0,     0,    55,    56,    57,   738,     0,     0,     0,    58,
-       0,    59,     0,    60,    61,    62,    63,    64,    65,    66,
+       0,     0,     0,     0,     0,   313,   908,   909,     0,     0,
+     912,   299,   300,   301,   302,   303,     0,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,   929,   930,     0,
+       0,   313,     0,   935,   936,     0,     0,    92,    93,    94,
+     942,    95,   949,    96,    97,    98,    99,   100,   101,   102,
+     103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,     0,   120,   121,
+     122,    92,    93,   460,     0,     0,     0,    96,    97,    98,
+      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
+     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
+     119,     0,   120,   121,   122,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,  1013,     0,  1015,     0,     0,     0,
+       0,     0,     0,   877,     0,     0,  1022,  1023,  1024,     0,
+       0,  1027,  1028,  1029,  1030,  1031,  1032,  1033,    92,    93,
+       0,     0,     0,     0,    96,    97,    98,    99,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+     112,   113,   114,   115,   116,   117,   118,   119,    92,   324,
+       0,     0,     0,     0,    96,    97,    98,    99,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+     112,   113,   114,   115,   116,   117,   118,   119,   915,     0,
+       0,     0,     0,   123,   124,   125,   126,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   127,   128,     0,
+       0,     0,     0,   129,   130,   131,     0,     0,   132,     0,
+     133,     0,   134,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  1123,     0,     0,     0,     0,     0,     0,
+       0,   127,   128,     0,     0,     0,     0,   129,    92,   503,
+       0,     0,   132,     0,    96,    97,    98,    99,   100,   101,
+     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
+     112,   113,   114,   115,   116,   117,   118,   119,   299,   300,
      301,   302,   303,     0,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,  1568,
-     315,     0,  1572,     0,     0,     0,     0,     0,   898,     0,
-       0,     0,     0,     0,   204,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    67,   600,   601,   602,   603,   604,
-     605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
-     615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
-     625,   600,   601,   602,   603,   604,   605,   606,   607,   608,
-     609,   610,   611,   612,   613,   614,   615,   616,   617,   618,
-     619,   620,   621,   622,   623,   624,   625,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  1658,   205,
-     206,   207,     0,     0,     0,     0,  1666,   208,   209,   210,
-     211,   212,   213,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,     0,     0,   218,   219,   220,   221,   222,
-     223,   224,   225,   226,   227,     0,   228,   229,   230,   231,
-     232,   233,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   626,     0,   301,   302,   303,
-    1154,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-       0,   960,  1739,     0,     0,  1351,   301,   302,   303,     0,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,     0,
-       0,   301,   302,   303,  1352,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,     0,     0,     0,     0,     0,  1408,
-    1791,   301,   302,   303,     0,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,     0,     0,   301,   302,   303,  1410,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,     0,
-       0,     0,  1845,     0,  1416,   301,   302,   303,     0,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,     0,     0,
-     301,   302,   303,  1419,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,     0,     0,  1890,     0,     0,  1420,   301,
+     310,   311,   312,  1175,     0,     0,     0,     0,   313,     0,
+       0,  1185,     0,     0,     0,     0,     0,     0,   127,   128,
+       0,     0,     0,     0,   129,     0,     0,     0,     0,   132,
+    1204,   536,    27,    28,   537,   538,    31,    32,    33,     0,
+      34,     0,    36,    37,     0,    39,    40,     0,   127,   466,
+       0,     0,     0,     0,   129,     0,     0,     0,     0,   132,
+       0,     0,    52,   299,   300,   301,   302,   303,     0,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,     0,     0,     0,     0,     0,     0,
+      53,    54,    55,     0,     0,     0,     0,   299,   300,   301,
      302,   303,     0,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,     0,     0,     0,     0,     0,  1465,     0,     0,
-     301,   302,   303,  1928,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,     0,     0,   301,   302,   303,  1522,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,     0,     0,
-     301,   302,   303,  1524,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,     0,     0,   301,   302,   303,  1527,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,     0,     0,
-     301,   302,   303,  1764,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,     0,     0,   301,   302,   303,  1817,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,   524,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,   525,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,   555,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
-     675,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,   676,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,   689,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,   690,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,   691,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,   692,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,   693,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,   694,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,   751,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,   752,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
-     753,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
+     311,   312,     0,     0,     0,     0,     0,   313,   -10,     1,
+       0,   -10,   -53,  1154,     0,  1155,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   127,   128,
+       0,     0,     0,     0,   129,     0,     0,     0,     0,   132,
+       0,   -53,    65,     0,     0,   -53,   -53,   -53,   -53,   -53,
+     -53,   -53,   -53,   -53,     0,   -53,   -53,   -53,   -53,   -53,
+     -53,   -53,     0,     0,     0,   -53,   -53,   -53,   -53,   -53,
+     -53,   -53,     0,   -53,   -53,   -53,   -53,   -53,     0,   299,
+     300,   301,   302,   303,   767,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+       0,     0,  1346,   470,  1347,   -53,   -53,   -53,  1351,     0,
+       0,     0,   -53,     0,   -53,     0,   -53,   -53,   -53,   -53,
+     -53,   -53,   -53,     0,  1367,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   -10,   -10,   -10,   -10,   -10,   -10,   -10,   -10,
+       0,     0,   299,   300,   301,   302,   303,    23,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,   -53,     2,     3,
+       0,     4,   313,     0,     0,     0,     0,     0,  1176,     0,
+    1177,     0,     0,     0,     0,     0,    24,     0,     0,     0,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,     0,
+      34,    35,    36,    37,    38,    39,    40,     0,     0,     0,
+      41,    42,    43,    44,    45,    46,    47,     0,    48,    49,
+      50,    51,    52,     0,     0,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,  1469,     0,     0,
+      53,    54,    55,   735,     0,  1477,  1478,    56,     0,    57,
+       0,    58,    59,    60,    61,    62,    63,    64,   598,   599,
+     600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
+     610,   611,   612,   613,   614,   615,   616,   617,   618,   619,
+     620,   621,   622,   623,     0,     0,     0,     0,     0,     0,
+       0,   202,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    65,   598,   599,   600,   601,   602,   603,   604,
+     605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
+     615,   616,   617,   618,   619,   620,   621,   622,   623,     0,
+     536,    27,    28,   537,   538,    31,    32,    33,     0,    34,
+       0,    36,    37,     0,    39,    40,     0,     0,     0,  1566,
+       0,     0,  1570,     0,     0,     0,     0,     0,     0,     0,
+       0,    52,     0,     0,     0,     0,   203,   204,   205,     0,
+       0,     0,     0,     0,   206,   207,   208,   209,   210,   211,
+     212,   213,   214,   215,     0,     0,     0,     0,   624,    53,
+      54,    55,   216,   217,   218,   219,   220,   221,   222,   223,
+     224,   225,     0,   226,   227,   228,   229,   230,   231,   299,
+     300,   301,   302,   303,     0,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+       0,     0,     0,   958,     0,  1327,     0,  1328,  1656,     0,
+       0,     0,     0,     0,     0,     0,  1664,     0,     0,     0,
+       0,    65,   299,   300,   301,   302,   303,     0,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,     0,     0,   299,   300,   301,   302,   303,
+     736,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,   299,   300,
      301,   302,   303,   896,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,   897,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,   916,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1051,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1052,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1066,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1067,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1098,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1099,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,     0,
+       0,     0,     0,     0,     0,     0,  1152,   299,   300,   301,
+     302,   303,  1737,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,     0,     0,
+     299,   300,   301,   302,   303,  1349,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,   299,   300,   301,   302,   303,  1350,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+    1789,     0,     0,   313,     0,     0,   299,   300,   301,   302,
+     303,  1406,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,     0,     0,   299,
+     300,   301,   302,   303,  1408,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+       0,     0,  1843,     0,     0,     0,     0,  1414,   299,   300,
+     301,   302,   303,     0,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,     0,
+       0,   299,   300,   301,   302,   303,  1417,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,     0,     0,     0,  1888,     0,     0,     0,  1418,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,     0,     0,     0,     0,  1463,     0,
+       0,     0,     0,  1926,   299,   300,   301,   302,   303,     0,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,     0,     0,   299,   300,   301,
+     302,   303,  1520,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,     0,     0,
+     299,   300,   301,   302,   303,  1522,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,   299,   300,   301,   302,   303,  1525,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,     0,     0,   299,   300,   301,   302,
+     303,  1762,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,     0,     0,   299,
+     300,   301,   302,   303,  1815,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,   522,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,   523,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,   553,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,   673,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,   674,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
+     687,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,   688,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,   689,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,   690,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,   691,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,   692,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,   749,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,   750,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,   751,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,   894,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
+     895,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,   914,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1049,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1050,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1064,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1065,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1096,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1097,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1098,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1099,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1100,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1101,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1102,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1103,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1104,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1105,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1106,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1107,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1108,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1109,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1101,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1102,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1103,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1104,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1105,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1106,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1107,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1108,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1109,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1110,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1111,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1112,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1113,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1114,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1115,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1116,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1117,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1118,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1119,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1111,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1112,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1113,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1114,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1115,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1116,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1117,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1118,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1119,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1120,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1121,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1122,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1123,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1139,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1264,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1265,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1274,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1277,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1288,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
-    1293,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1296,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1298,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1299,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1300,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1301,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1302,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1303,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1304,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1305,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1121,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1137,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1262,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1263,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1272,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1275,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1286,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1291,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1294,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
+    1296,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1297,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1298,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1299,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1300,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1301,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1302,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1303,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1304,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1305,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1306,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1307,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1308,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1309,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1310,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1311,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1312,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1313,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1314,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1315,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1307,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1308,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1309,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1310,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1311,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1312,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1313,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1314,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1315,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1316,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1317,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1318,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1319,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1320,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1321,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1322,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1323,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1327,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1429,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1317,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1318,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1319,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1320,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1321,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1325,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1427,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1439,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1440,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1441,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1442,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1443,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1444,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1445,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1446,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1447,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1448,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1449,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1450,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1442,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1443,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1444,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1445,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1446,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1447,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1448,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1449,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1450,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1451,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1452,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1453,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1454,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1455,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1456,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1457,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1458,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1459,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1460,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
-    1461,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1463,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1540,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1541,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1542,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1543,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1544,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1545,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1546,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1547,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1452,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1453,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1454,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1455,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1456,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1457,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1458,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1459,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1461,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
+    1538,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1539,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1540,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1541,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1542,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1543,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1544,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1545,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1546,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1547,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1548,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1549,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1550,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1551,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1552,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1553,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1554,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1555,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1556,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1557,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1549,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1550,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1551,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1552,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1553,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1554,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1555,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1556,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1557,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1558,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1559,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1560,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1631,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1632,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1633,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1634,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1635,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1636,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1637,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1629,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1630,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1631,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1632,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1633,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1634,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1635,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1636,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1637,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1638,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1639,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1640,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1641,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1642,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1643,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1644,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1645,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1646,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1647,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1639,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1640,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1641,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1642,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1643,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1644,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1645,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1646,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1647,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1648,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1649,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1650,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1651,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1705,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1712,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1713,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1714,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1715,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1716,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1649,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1703,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1710,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1711,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1712,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1713,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1714,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1715,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1716,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1717,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1718,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1719,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1720,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1721,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1722,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1723,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1724,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1725,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1726,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1718,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1719,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1720,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1721,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1722,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1723,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1724,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1725,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1726,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1727,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1728,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1729,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1763,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1771,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1772,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1773,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1774,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1775,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1776,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1761,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1769,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1770,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1771,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1772,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1773,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1774,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1775,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1776,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1777,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1778,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1779,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1780,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1781,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1782,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1783,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1784,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1785,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1786,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
-    1787,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1788,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1826,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1827,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1828,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1829,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1830,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1831,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1832,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1833,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1778,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1779,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1780,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1781,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1782,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1783,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1784,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1785,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1786,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
+    1824,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1825,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1826,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1827,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1828,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1829,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1830,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1831,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1832,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1833,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1834,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1835,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1836,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1837,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1838,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1839,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1840,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1841,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1842,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1843,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1835,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1836,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1837,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1838,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1839,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1840,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1841,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1873,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1874,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1875,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1876,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1877,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1878,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1879,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1880,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1881,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1882,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1883,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1884,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1876,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1877,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1878,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1879,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1880,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1881,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1882,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1883,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1884,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1885,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1886,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1887,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1888,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1889,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1913,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1914,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1915,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1916,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1917,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1886,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1887,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1911,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1912,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1913,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1914,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1915,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1916,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1917,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1918,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1919,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1920,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1921,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1922,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1923,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1924,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1925,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1926,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1927,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1919,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1920,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1921,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1922,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1923,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1924,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1925,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1955,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1956,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1957,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1958,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1959,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1960,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1961,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  1962,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  1963,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  1964,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  1965,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  1966,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1958,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1959,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1960,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  1961,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  1962,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  1963,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  1964,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  1965,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  1966,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     1967,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  1968,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  1969,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  1970,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  1971,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  2001,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  2002,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  2003,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  2004,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  2005,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  1968,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  1969,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  1999,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  2000,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  2001,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  2002,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  2003,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  2004,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  2005,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     2006,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  2007,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  2008,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  2009,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  2032,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  2033,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  2034,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  2035,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  2036,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  2037,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  2007,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  2030,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  2031,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  2032,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  2033,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  2034,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  2035,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  2036,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  2037,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     2038,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  2039,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  2040,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  2074,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  2075,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  2076,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  2077,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  2078,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  2079,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  2080,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
-    2081,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  2082,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  2104,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  2105,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  2106,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  2107,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  2108,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  2109,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  2122,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  2123,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  2072,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  2073,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  2074,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  2075,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  2076,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  2077,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  2078,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  2079,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  2080,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
+    2102,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  2103,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  2104,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  2105,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  2106,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  2107,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  2120,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  2121,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  2122,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  2123,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     2124,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  2125,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  2126,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  2127,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  2143,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  2144,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  2145,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  2146,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  2147,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  2148,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  2125,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  2141,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  2142,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  2143,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  2144,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  2145,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  2146,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  2165,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  2166,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
     2167,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  2168,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  2169,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  2179,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  2180,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  2181,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  2194,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  2195,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-       0,   301,   302,   303,  2196,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,     0,   301,   302,   303,  2212,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,     0,   301,   302,   303,
-    2213,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,     0,
-     301,   302,   303,  2214,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,     0,   301,   302,   303,  2218,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,     0,   301,   302,   303,  2219,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,     0,   301,
-     302,   303,  2220,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,     0,   301,   302,   303,  2224,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,     0,   301,   302,   303,  2225,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,     0,   301,   302,
-     303,  2226,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,   301,
-     302,   303,   472,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-     301,   302,   303,   597,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,   301,   302,   303,   654,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,   301,   302,   303,   656,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,   301,   302,   303,   658,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,   301,   302,   303,   660,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,   301,   302,   303,   662,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,   301,   302,   303,   664,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,   301,   302,   303,
-     666,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,   301,   302,
-     303,   668,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,   301,
-     302,   303,   670,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-     301,   302,   303,   672,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,   301,   302,   303,   674,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,   301,   302,   303,   678,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,   301,   302,   303,   680,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,   301,   302,   303,   682,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,   301,   302,   303,   684,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,   301,   302,   303,   686,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,   301,   302,   303,
-     688,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,   301,   302,
-     303,   754,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,   301,
-     302,   303,   759,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-     301,   302,   303,   988,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,   301,   302,   303,   990,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,   301,   302,   303,   992,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,   301,   302,   303,   994,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,   301,   302,   303,   995,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,   301,   302,   303,  1132,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,   466,   301,   302,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  2177,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  2178,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  2179,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  2192,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  2193,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,   299,   300,   301,   302,   303,  2194,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,   299,   300,   301,   302,   303,  2210,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,   299,   300,   301,   302,   303,  2211,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,   299,   300,   301,   302,   303,  2212,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,   299,   300,   301,   302,   303,
+    2216,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,   299,   300,   301,   302,
+     303,  2217,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,     0,     0,     0,     0,     0,   313,   299,   300,   301,
+     302,   303,  2218,   304,   305,   306,   307,   308,   309,   310,
+     311,   312,     0,     0,     0,     0,     0,   313,   299,   300,
+     301,   302,   303,  2222,   304,   305,   306,   307,   308,   309,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,   299,
+     300,   301,   302,   303,  2223,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+     299,   300,   301,   302,   303,  2224,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   595,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   652,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   654,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   656,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   658,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   660,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   662,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   664,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   666,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   668,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   670,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   672,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   676,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   678,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   680,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   682,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   684,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   686,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   752,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   757,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   986,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   988,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   990,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,   992,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,     0,     0,   993,   299,   300,   301,   302,   303,
+       0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+       0,     0,     0,     0,     0,   313,     0,     0,     0,  1130,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,   464,   299,   300,   301,   302,   303,     0,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,     0,   494,   299,   300,   301,   302,
      303,     0,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-     496,   301,   302,   303,     0,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,   497,   301,   302,   303,     0,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,   498,   301,   302,   303,
+     312,     0,     0,     0,     0,     0,   313,     0,   495,   299,
+     300,   301,   302,   303,     0,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+       0,   496,   299,   300,   301,   302,   303,     0,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,     0,   498,   299,   300,   301,   302,   303,
        0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,   500,
+       0,     0,     0,     0,     0,   313,     0,   500,   299,   300,
      301,   302,   303,     0,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,   502,   301,   302,   303,     0,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,   503,   301,   302,   303,     0,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,   510,   301,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,     0,
+     501,   299,   300,   301,   302,   303,     0,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,     0,   508,   299,   300,   301,   302,   303,     0,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,     0,   547,   299,   300,   301,
      302,   303,     0,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,   549,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,   550,   301,   302,   303,     0,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,   553,   301,   302,
+     311,   312,     0,     0,     0,     0,     0,   313,     0,   548,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,   551,   299,   300,   301,   302,   303,     0,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,     0,   557,   299,   300,   301,   302,
      303,     0,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-     559,   301,   302,   303,     0,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,   653,   301,   302,   303,     0,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,   655,   301,   302,   303,
+     312,     0,     0,     0,     0,     0,   313,     0,   651,   299,
+     300,   301,   302,   303,     0,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+       0,   653,   299,   300,   301,   302,   303,     0,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,     0,   655,   299,   300,   301,   302,   303,
        0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,   657,
+       0,     0,     0,     0,     0,   313,     0,   657,   299,   300,
      301,   302,   303,     0,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,   659,   301,   302,   303,     0,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,   661,   301,   302,   303,     0,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,   663,   301,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,     0,
+     659,   299,   300,   301,   302,   303,     0,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,     0,   661,   299,   300,   301,   302,   303,     0,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,     0,   663,   299,   300,   301,
      302,   303,     0,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,   665,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,   667,   301,   302,   303,     0,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,   669,   301,   302,
+     311,   312,     0,     0,     0,     0,     0,   313,     0,   665,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,   667,   299,   300,   301,   302,   303,     0,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,     0,   669,   299,   300,   301,   302,
      303,     0,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-     671,   301,   302,   303,     0,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,   673,   301,   302,   303,     0,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,   677,   301,   302,   303,
+     312,     0,     0,     0,     0,     0,   313,     0,   671,   299,
+     300,   301,   302,   303,     0,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+       0,   675,   299,   300,   301,   302,   303,     0,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,     0,   677,   299,   300,   301,   302,   303,
        0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,   679,
+       0,     0,     0,     0,     0,   313,     0,   679,   299,   300,
      301,   302,   303,     0,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,   681,   301,   302,   303,     0,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,   683,   301,   302,   303,     0,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,   685,   301,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,     0,
+     681,   299,   300,   301,   302,   303,     0,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,     0,   683,   299,   300,   301,   302,   303,     0,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,     0,   685,   299,   300,   301,
      302,   303,     0,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,   687,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,   720,   301,   302,   303,     0,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,   722,   301,   302,
+     311,   312,     0,     0,     0,     0,     0,   313,     0,   718,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,   720,   299,   300,   301,   302,   303,     0,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,     0,   732,   299,   300,   301,   302,
      303,     0,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-     734,   301,   302,   303,     0,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,   735,   301,   302,   303,     0,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,   739,   301,   302,   303,
+     312,     0,     0,     0,     0,     0,   313,     0,   733,   299,
+     300,   301,   302,   303,     0,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+       0,   737,   299,   300,   301,   302,   303,     0,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,     0,   738,   299,   300,   301,   302,   303,
        0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,   740,
+       0,     0,     0,     0,     0,   313,     0,   739,   299,   300,
      301,   302,   303,     0,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,   741,   301,   302,   303,     0,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,   742,   301,   302,   303,     0,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,   743,   301,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,     0,
+     740,   299,   300,   301,   302,   303,     0,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,     0,   741,   299,   300,   301,   302,   303,     0,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,     0,   763,   299,   300,   301,
      302,   303,     0,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,   765,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,   772,   301,   302,   303,     0,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,   987,   301,   302,
+     311,   312,     0,     0,     0,     0,     0,   313,     0,   770,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,   985,   299,   300,   301,   302,   303,     0,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,     0,   987,   299,   300,   301,   302,
      303,     0,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-     989,   301,   302,   303,     0,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,   991,   301,   302,   303,     0,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,   993,   301,   302,   303,
+     312,     0,     0,     0,     0,     0,   313,     0,   989,   299,
+     300,   301,   302,   303,     0,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+       0,   991,   299,   300,   301,   302,   303,     0,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,     0,  1053,   299,   300,   301,   302,   303,
        0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,  1055,
+       0,     0,     0,     0,     0,   313,     0,  1153,   299,   300,
      301,   302,   303,     0,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,  1155,   301,   302,   303,     0,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,  1182,   301,   302,   303,     0,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,  1283,   301,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,     0,
+    1180,   299,   300,   301,   302,   303,     0,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,     0,  1281,   299,   300,   301,   302,   303,     0,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,     0,  1285,   299,   300,   301,
      302,   303,     0,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,  1287,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,  1289,   301,   302,   303,     0,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,  1432,   301,   302,
+     311,   312,     0,     0,     0,     0,     0,   313,     0,  1287,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,  1430,   299,   300,   301,   302,   303,     0,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,     0,  1432,   299,   300,   301,   302,
      303,     0,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-    1434,   301,   302,   303,     0,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,  1436,   301,   302,   303,     0,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,  1438,   301,   302,   303,
+     312,     0,     0,     0,     0,     0,   313,     0,  1434,   299,
+     300,   301,   302,   303,     0,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+       0,  1436,   299,   300,   301,   302,   303,     0,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,     0,  1437,   299,   300,   301,   302,   303,
        0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,  1439,
+       0,     0,     0,     0,     0,   313,     0,  1438,   299,   300,
      301,   302,   303,     0,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,  1440,   301,   302,   303,     0,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,  1462,   301,   302,   303,     0,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,  1562,   301,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,     0,
+    1460,   299,   300,   301,   302,   303,     0,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,     0,  1560,   299,   300,   301,   302,   303,     0,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,     0,  1707,   299,   300,   301,
      302,   303,     0,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,  1709,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,  1710,   301,   302,   303,     0,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,  1711,   301,   302,
+     311,   312,     0,     0,     0,     0,     0,   313,     0,  1708,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,  1709,   299,   300,   301,   302,   303,     0,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,     0,  1870,   299,   300,   301,   302,
      303,     0,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-    1872,   301,   302,   303,     0,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,  1873,   301,   302,   303,     0,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,  1874,   301,   302,   303,
+     312,     0,     0,     0,     0,     0,   313,     0,  1871,   299,
+     300,   301,   302,   303,     0,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+       0,  1872,   299,   300,   301,   302,   303,     0,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,     0,  1993,   299,   300,   301,   302,   303,
        0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,  1995,
+       0,     0,     0,     0,     0,   313,     0,  1994,   299,   300,
      301,   302,   303,     0,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,  1996,   301,   302,   303,     0,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,  1997,   301,   302,   303,     0,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,  1998,   301,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,     0,
+    1995,   299,   300,   301,   302,   303,     0,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,     0,  1996,   299,   300,   301,   302,   303,     0,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,     0,  1997,   299,   300,   301,
      302,   303,     0,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,  1999,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315,     0,  2000,   301,   302,   303,     0,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-       0,     0,     0,     0,     0,   315,     0,  2110,   301,   302,
+     311,   312,     0,     0,     0,     0,     0,   313,     0,  1998,
+     299,   300,   301,   302,   303,     0,   304,   305,   306,   307,
+     308,   309,   310,   311,   312,     0,     0,     0,     0,     0,
+     313,     0,  2108,   299,   300,   301,   302,   303,     0,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,     0,     0,
+       0,     0,     0,   313,     0,  2109,   299,   300,   301,   302,
      303,     0,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,   313,   314,     0,     0,     0,     0,     0,   315,     0,
-    2111,   301,   302,   303,     0,   304,   305,   306,   307,   308,
-     309,   310,   311,   312,   313,   314,     0,     0,     0,     0,
-       0,   315,     0,  2112,   301,   302,   303,     0,   304,   305,
-     306,   307,   308,   309,   310,   311,   312,   313,   314,     0,
-       0,     0,     0,     0,   315,     0,  2170,   301,   302,   303,
+     312,     0,     0,     0,     0,     0,   313,     0,  2110,   299,
+     300,   301,   302,   303,     0,   304,   305,   306,   307,   308,
+     309,   310,   311,   312,     0,     0,     0,     0,     0,   313,
+       0,  2168,   299,   300,   301,   302,   303,     0,   304,   305,
+     306,   307,   308,   309,   310,   311,   312,     0,     0,     0,
+       0,     0,   313,     0,  2169,   299,   300,   301,   302,   303,
        0,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,     0,     0,     0,     0,     0,   315,     0,  2171,
+       0,     0,     0,     0,     0,   313,     0,  2170,   299,   300,
      301,   302,   303,     0,   304,   305,   306,   307,   308,   309,
-     310,   311,   312,   313,   314,     0,     0,     0,     0,     0,
-     315,     0,  2172,   301,   302,   303,     0,   304,   305,   306,
-     307,   308,   309,   310,   311,   312,   313,   314,     0,     0,
-       0,     0,     0,   315,     0,  2230,   301,   302,   303,     0,
-     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
-     314,     0,     0,     0,     0,     0,   315,     0,  2231,   301,
+     310,   311,   312,     0,     0,     0,     0,     0,   313,     0,
+    2228,   299,   300,   301,   302,   303,     0,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,     0,     0,     0,     0,
+       0,   313,     0,  2229,   299,   300,   301,   302,   303,     0,
+     304,   305,   306,   307,   308,   309,   310,   311,   312,     0,
+       0,     0,     0,     0,   313,     0,  2230,   299,   300,   301,
      302,   303,     0,   304,   305,   306,   307,   308,   309,   310,
-     311,   312,   313,   314,     0,     0,     0,     0,     0,   315,
-       0,  2232,   301,   302,   303,     0,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   314,     0,     0,     0,
-       0,     0,   315
+     311,   312,     0,     0,     0,     0,     0,   313
 };
 
 static const short yycheck[] =
 {
-      25,    92,   353,    25,   295,   712,   328,     4,     4,  1263,
-       4,     4,     4,     3,    45,    46,    64,   179,    42,     4,
-       6,   183,     6,    64,     7,    64,   285,   286,   287,  1172,
-       4,   101,     4,    65,   194,     6,     6,  1340,    70,    65,
-     200,  1344,    65,   164,    70,    65,    65,    70,    84,    65,
-      70,    70,   191,   192,    70,    65,   183,   184,  1073,   198,
-      70,     0,   293,   183,   184,   194,     7,  1082,     4,     5,
-     194,   200,     5,   200,  1089,     6,   183,   184,    49,   199,
-      38,    39,    40,    41,    42,    43,    44,    45,   194,    47,
-     196,    49,    50,   200,    52,    53,     6,   328,    34,    35,
-      36,    34,    35,    36,   129,   130,   131,     6,     7,   134,
-     135,    69,   137,   195,   194,   183,   184,   199,   115,   144,
-     145,   146,   194,   148,   194,   150,   151,   195,   153,     6,
-     104,   105,   104,   105,  1277,   166,     6,   168,   195,    97,
-      98,    99,   199,   174,   169,   170,   194,     6,   183,   184,
-     183,   184,   200,   860,    38,   194,   194,    41,    42,   200,
-      44,     7,   195,   188,   189,   200,   191,   203,   193,   201,
-     194,   196,   197,   495,     6,   201,   183,   184,   201,   183,
-     184,   472,   201,   194,   506,   201,   169,   170,   171,   172,
-     194,   201,   199,   194,   184,     8,   200,   183,   184,   183,
-     184,   159,    38,   200,   200,    41,   200,   200,   200,   194,
-     241,   373,    38,   238,   473,    41,    42,   194,   243,   244,
-     245,   246,   247,   248,   249,   250,   251,   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,
-       7,    64,  1565,  1278,   495,     3,  1569,  1282,   293,  1523,
-     191,   192,  1526,   295,     7,   506,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   183,   184,   195,    46,   195,   321,   199,   323,   199,
-     195,  1008,   327,   328,   199,    55,    56,   199,   333,   334,
-     335,   194,   337,   338,   339,   340,   341,   342,   343,   350,
-     351,   183,   184,   169,   170,   171,   172,   183,   184,   194,
-     355,   356,   357,   358,   183,   184,   361,   199,   195,   201,
-     183,   184,   199,   199,   369,   191,   192,   185,   186,   187,
-     199,    42,   198,   378,  1657,   193,   199,   194,  1661,  1613,
-     173,   174,   175,  1617,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,     8,   698,   183,   184,    42,
-     193,   183,   184,   185,   186,   187,    42,    44,   201,   183,
-     184,   193,   200,   199,   416,   201,   134,   135,   136,   137,
-     138,   139,   140,   141,   726,   199,   194,   201,   196,     6,
-       7,  1426,  1427,  1428,  1429,   183,   184,   194,  1433,   196,
-     194,   200,   169,   170,   171,   172,     6,    58,    59,    60,
-      61,   199,    63,   755,   756,   757,   169,   170,   171,   172,
-     699,    42,     6,   468,   191,   192,   183,   184,     6,   474,
-     472,   194,   183,   184,   194,   194,   191,   192,   191,   192,
-       6,   196,   199,   198,   194,    42,   196,   698,   199,     3,
-     495,   702,     4,   191,   192,   194,     4,   196,   196,   504,
-     198,   506,   194,   508,   509,   194,   191,   192,   194,   514,
-      54,   196,   523,   198,   194,   726,   196,   194,     5,   524,
-     525,   119,   120,   121,   122,   123,    41,    42,   533,    44,
-     194,   194,   196,   196,     6,     6,  1531,  1532,     5,   544,
-    1535,   194,   194,   196,   755,   756,   757,   194,   194,   196,
-     555,   200,   557,   558,   194,   194,   196,   196,   200,  1246,
-     173,   174,   175,   194,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,   877,   194,   194,   196,   196,
-     193,   852,   853,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   194,     3,     4,   597,   196,   193,   198,     9,
+      23,    90,   351,    23,   293,   710,   326,     4,     4,  1261,
+       4,     4,     4,    64,    43,    44,    64,   177,     6,     4,
+       3,   181,  1170,    42,    65,    65,   283,   284,   285,    70,
+      70,     4,    64,     4,    65,   164,     6,  1338,     6,    70,
+      65,  1342,     5,   101,    65,    70,     4,     5,    82,    70,
+     194,   194,   183,   184,    65,    65,   200,   200,  1071,    70,
+      70,   195,   291,   183,   184,   199,    54,  1080,   199,     6,
+     201,    34,    35,    36,  1087,   195,    34,    35,    36,    49,
+     175,   176,   177,     6,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   190,   191,   183,   184,   326,   193,   183,
+     184,   198,   183,   184,   127,   128,   129,   183,   184,   132,
+     133,   199,   135,   201,   195,   199,     7,   201,   115,   142,
+     143,   144,     6,   146,   200,   148,   149,  1275,   151,     7,
+       6,   104,   105,   104,   105,   164,   194,   166,     6,   183,
+     184,   194,     7,   172,   167,   168,   194,     6,     7,   200,
+     194,    38,   200,   858,    41,    42,   200,   183,   184,     7,
+     201,   201,   194,   186,   187,   195,   189,   201,   191,   199,
+     201,   194,   195,   493,   200,   194,   201,   199,   195,   201,
+     201,   470,   199,     7,   504,   173,   174,   175,   176,   177,
+     201,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+     199,   184,   201,   200,   200,   193,   200,   200,   200,   194,
+     239,   371,     8,   236,   471,   183,   184,     6,   241,   242,
+     243,   244,   245,   246,   247,   248,   249,   250,   251,   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,
+     183,   184,  1563,  1276,   493,   194,  1567,  1280,   291,  1521,
+     195,     6,  1524,   293,   199,   504,   299,   300,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
+     313,   169,   170,   171,   172,   195,   319,    38,   321,   199,
+      41,  1006,   325,   326,   169,   170,   171,   172,   331,   332,
+     333,   194,   335,   336,   337,   338,   339,   340,   341,   348,
+     349,   169,   170,   171,   172,   190,   191,     3,   190,   191,
+     353,   354,   355,   356,   183,   184,   359,   195,   194,   183,
+     184,   199,   190,   191,   367,   169,   170,   171,   172,     6,
+     198,   200,   194,   376,  1655,   199,   183,   184,  1659,  1611,
+     185,   186,   187,  1615,    55,    56,   190,   191,   193,     8,
+      41,    42,   199,    44,     6,     7,   696,   173,   174,   175,
+     176,   177,   194,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,   183,   184,   414,   194,   194,   193,   196,   183,
+     184,   183,   184,    38,   724,   201,    41,    42,   199,    44,
+      64,  1424,  1425,  1426,  1427,   199,   194,   199,  1431,   176,
+     177,   194,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,   183,   184,   753,   754,   755,   193,   183,   184,    46,
+     697,     6,    42,   466,   194,   194,   196,   199,    42,   472,
+     470,    44,   194,   199,   196,   194,     6,   196,   134,   135,
+     136,   137,   138,   139,   140,   141,   194,   696,   196,    42,
+     493,   700,   183,   184,   183,   184,   194,   194,   196,   502,
+     194,   504,   196,   506,   507,   190,   191,   200,   199,   512,
+     199,   196,   521,   198,   194,   724,   196,   200,    42,   522,
+     523,   183,   184,   185,   186,   187,   190,   191,   531,     6,
+       4,   193,   196,   194,   198,   196,  1529,  1530,     4,   542,
+    1533,   190,   191,    42,   753,   754,   755,   196,     6,   198,
+     553,   194,   555,   556,   173,   174,   175,   176,   177,  1244,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,   119,
+     120,   121,   122,   123,   193,   875,   195,   194,   194,   196,
+     196,   850,   851,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,   194,     3,     4,   595,   194,   193,   196,     9,
       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,   194,   200,   196,  1621,   194,   194,   173,
-     174,   175,   194,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,   194,   194,   196,   196,   194,   193,
-     175,   194,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   194,     4,   196,   877,     8,   193,   196,
-     675,   676,   194,   194,   196,   196,   194,   200,   196,   199,
-     199,   201,   201,   200,   689,   690,   691,   692,   693,   694,
-     695,   200,     8,   698,   199,   196,   201,   702,     6,   199,
-     705,   201,   199,   199,   201,   201,   717,   198,   200,   714,
-    1041,   199,  1707,   201,   199,   199,   201,   201,   199,   107,
-     201,   726,   727,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,   199,   806,   201,     6,     5,   193,
-     751,   752,   753,   199,   199,   201,   201,   199,   194,   201,
-     755,   756,   757,   194,   194,   760,   761,   199,   193,   764,
-       6,  1000,   199,   199,   201,   201,   777,   199,   194,   201,
-     775,   776,  1767,   183,   184,   786,   199,   194,   201,   189,
-     199,   199,   201,   201,   194,   194,   199,   197,   201,   194,
-     200,   199,   199,   201,   201,   199,   194,   201,  1037,   199,
-     199,   201,   201,   194,   194,   810,   811,   812,   813,   814,
-     815,   816,   817,   818,   819,   820,   821,   822,   823,   824,
-     825,   826,   827,   828,   829,   830,   831,   832,   833,   834,
-     835,   194,   173,   174,   175,   194,   177,   178,   179,   180,
+      30,    31,    32,   194,   194,   196,  1619,     6,   173,   174,
+     175,   176,   177,     3,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,   173,   174,   175,   176,   177,   193,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,   194,    58,
+      59,    60,    61,   193,    63,     6,   875,   194,     5,   196,
+     673,   674,   194,   194,   196,   196,   194,   194,   196,   196,
+     194,   194,   196,   196,   687,   688,   689,   690,   691,   692,
+     693,   194,     8,   696,   194,     6,   196,   700,     6,   196,
+     703,   198,   194,   199,   194,   201,   715,     5,   194,   712,
+    1039,   199,  1705,   201,   199,   199,   201,   201,   199,     4,
+     201,   724,   725,   199,   199,   201,   201,   199,   199,   201,
+     201,   199,   199,   201,   201,   804,   199,   199,   201,   201,
+     749,   750,   751,   199,   199,   201,   201,   199,   194,   201,
+     753,   754,   755,     6,   194,   758,   759,   200,   199,   762,
+     201,   998,   199,   199,   201,   201,   775,   199,   194,   201,
+     773,   774,  1765,   183,   184,   784,   199,   194,   201,   189,
+     199,   199,   201,   201,   194,   200,   199,   197,   201,   200,
+     200,   199,   199,   201,   201,   199,   194,   201,  1035,   199,
+     194,   201,   199,   194,   201,   808,   809,   810,   811,   812,
+     813,   814,   815,   816,   817,   818,   819,   820,   821,   822,
+     823,   824,   825,   826,   827,   828,   829,   830,   831,   832,
+     833,   194,   173,   174,   175,   176,   177,   196,   179,   180,
      181,   182,   183,   184,   185,   186,   187,   199,   199,   201,
-     201,   853,   193,   199,   195,   201,   861,   173,   174,   175,
-     194,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,   877,   199,   879,   201,   881,   193,   199,   199,
-     201,   201,   199,   194,   201,   199,   199,   201,   201,   199,
-     895,   896,   897,   199,   199,   201,   201,   194,   194,   194,
-     194,   194,   194,   194,   194,   921,   194,   194,   194,   194,
-     194,   916,   917,   918,   194,   194,   194,   194,     4,   195,
-       7,   195,     7,   198,     7,  1256,     7,   173,   174,   175,
-       7,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,     7,   102,   104,   200,   165,   193,     5,     5,
-       5,     5,     3,     4,   152,  1950,     5,   959,     9,    10,
+     201,   851,   193,   199,   196,   201,   859,   173,   174,   175,
+     176,   177,   200,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,   875,   199,   877,   201,   879,   193,   199,   199,
+     201,   201,   200,   200,     6,   198,   200,   107,     6,   194,
+     893,   894,   895,   194,   194,   194,     5,   194,   194,   194,
+     194,   194,   194,   194,   194,   919,   194,   194,   194,     4,
+     194,   914,   915,   916,   194,   194,   194,   194,   194,   194,
+     173,   174,   175,   176,   177,  1254,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   194,   194,   194,   194,   194,
+     193,   195,   194,   194,   194,   194,   193,     7,     7,     7,
+       7,   199,     3,     4,   199,  1948,   198,   957,     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,   199,     6,     5,     5,     5,     5,
-       5,     5,     5,     5,     5,     5,  1001,     5,     5,     5,
-       5,     5,  1013,     5,     5,     5,    38,    39,    40,    41,
-      42,    43,    44,    45,     5,    47,     5,    49,    50,     3,
-      52,    53,  1027,  1028,  1095,     5,     5,   195,     6,     5,
-       4,  1042,  1037,  1044,     6,  1046,     6,    69,     7,     7,
-       7,     7,     7,     7,     7,   198,  1051,  1052,  1064,   201,
-     201,   200,   200,     7,     7,   194,     7,   198,  1063,   166,
-       5,  1066,   199,     6,   199,    97,    98,    99,   199,   199,
-     199,  1076,   199,   199,   199,   199,   199,   199,  1083,  1084,
-    1085,   199,   199,   199,   199,  1090,   199,   199,   199,  1094,
-     199,   199,   195,  1098,  1099,  1100,  1101,  1102,  1103,  1104,
-    1105,  1106,  1107,  1108,  1109,  1110,  1111,  1112,  1113,  1114,
-    1115,  1116,  1117,  1118,  1119,  1120,  1121,  1122,  1123,   199,
-     199,   199,   194,   199,   199,   199,   199,   159,   199,   199,
-     199,   199,   183,   184,  1139,   194,   194,     6,   189,     4,
-       6,   194,   194,   194,   194,     6,   197,   194,   194,   200,
-     194,  1156,   173,   174,   175,   194,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,   194,  1184,   201,
-       3,     4,   193,  1178,   194,  1180,     9,    10,    11,    12,
+      31,    32,   195,     7,     7,     6,   102,   104,   200,   165,
+       5,     5,     5,     5,     5,     5,   999,     5,     5,     5,
+       5,     5,  1011,     5,     5,     5,    38,    39,    40,    41,
+      42,    43,    44,    45,     5,    47,     5,    49,    50,     5,
+      52,    53,  1025,  1026,  1093,     5,     5,     5,     5,     5,
+       5,  1040,  1035,  1042,     5,  1044,     5,    69,   152,     5,
+       5,     3,     5,   199,     5,     5,  1049,  1050,  1062,     6,
+     195,     6,     4,     6,   198,   201,     7,     7,  1061,     7,
+       7,  1064,     7,     6,   201,    97,    98,    99,     7,     7,
+     200,  1074,   200,     7,     7,   194,     7,   198,  1081,  1082,
+    1083,   166,     5,   185,   199,  1088,   199,   199,   199,  1092,
+     195,   199,   199,  1096,  1097,  1098,  1099,  1100,  1101,  1102,
+    1103,  1104,  1105,  1106,  1107,  1108,  1109,  1110,  1111,  1112,
+    1113,  1114,  1115,  1116,  1117,  1118,  1119,  1120,  1121,   199,
+     199,   199,   199,   199,   199,   199,   199,   159,   199,   199,
+     199,   199,   183,   184,  1137,   199,   199,   199,   189,     6,
+       4,   194,     7,   194,   199,   199,   197,   199,   194,   200,
+     199,  1154,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,   194,  1182,   201,
+       3,     4,   193,  1176,   199,  1178,     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,   194,   197,   194,     6,     9,    10,    11,    12,
+       3,     4,   199,   199,   199,   199,     9,    10,    11,    12,
       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-     173,   174,   175,   194,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,   194,   194,   194,  1259,  1260,
-     193,  1262,   194,   194,  1259,  1260,   194,  1262,   194,  1264,
-    1265,   194,   194,   194,   194,     7,  1271,   196,     6,     4,
-       7,     7,   200,     7,     7,  1280,     7,     7,     7,     7,
-       7,     7,     7,  1288,     7,     6,     6,     4,  1293,     7,
-     162,  1296,     7,  1298,  1299,  1300,  1301,  1302,  1303,  1304,
-    1305,  1306,  1307,  1308,  1309,  1310,  1311,  1312,  1313,  1314,
-    1315,  1316,  1317,  1318,  1319,  1320,  1321,  1322,  1323,     3,
-       3,  1332,  1561,     3,  1329,   185,  1331,  1332,  1333,     3,
-       3,     3,     3,     3,     3,   173,   174,   175,  1354,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-     183,   184,     3,     3,     3,   193,   189,     3,     3,     3,
-     195,   194,     5,   201,   197,     5,     3,   200,     6,     4,
-     195,   198,   200,     7,     6,     6,     6,     6,     6,     6,
-     183,   184,     6,   200,   103,   199,   189,   199,   195,   199,
-     195,   194,     6,   199,   198,   195,     6,   200,     4,   195,
-     199,   199,   199,   195,  1409,   199,  1411,     6,   199,  1425,
-     199,   199,  1417,  1652,   199,  1654,   199,   195,   199,     6,
-     199,   195,   199,   199,   199,     6,   199,   199,     6,   197,
-       6,     6,     6,     6,     6,     6,  1441,  1442,  1443,  1444,
-    1445,  1446,  1447,  1448,  1449,  1450,  1451,  1452,  1453,  1454,
-    1455,  1456,  1457,  1458,  1459,  1460,  1461,     6,  1463,     6,
-       6,     6,     6,   173,   174,   175,  1482,   177,   178,   179,
+     173,   174,   175,   176,   177,   194,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   194,     6,     6,  1257,  1258,
+     193,  1260,   194,   194,  1257,  1258,     6,  1260,   194,  1262,
+    1263,   196,   194,     6,   194,   194,  1269,   194,   194,   194,
+     194,     7,   194,   194,   194,  1278,   194,   194,   194,   194,
+     194,   194,   194,  1286,   194,     7,   197,     7,  1291,     7,
+       7,  1294,   200,  1296,  1297,  1298,  1299,  1300,  1301,  1302,
+    1303,  1304,  1305,  1306,  1307,  1308,  1309,  1310,  1311,  1312,
+    1313,  1314,  1315,  1316,  1317,  1318,  1319,  1320,  1321,     7,
+       7,  1330,  1559,     7,  1327,     7,  1329,  1330,  1331,     7,
+       7,     7,     4,   173,   174,   175,   176,   177,  1352,   179,
      180,   181,   182,   183,   184,   185,   186,   187,     6,     6,
-       6,     6,     6,   193,     7,   195,     3,     4,   103,   199,
-       3,  1730,     9,    10,    11,    12,    13,    14,    15,    16,
+     183,   184,     7,   193,     4,   195,   189,   162,     7,   199,
+       3,   194,     3,     3,   197,     3,     3,   200,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,   195,     3,     5,
+     183,   184,     5,     3,     6,     4,   189,   195,   198,     7,
+       6,   194,     6,     6,     6,     6,   200,   200,     6,     6,
+     103,   200,   199,   199,  1407,   195,  1409,   199,   195,  1423,
+     199,   195,  1415,  1650,   199,  1652,   199,   199,   195,     6,
+     195,   199,     6,   199,     6,   199,   199,   199,   199,   195,
+     199,   199,   199,   195,   199,   199,  1439,  1440,  1441,  1442,
+    1443,  1444,  1445,  1446,  1447,  1448,  1449,  1450,  1451,  1452,
+    1453,  1454,  1455,  1456,  1457,  1458,  1459,   199,  1461,   199,
+     198,   173,   174,   175,   176,   177,  1480,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,     4,     6,   197,     6,
+       6,   193,     6,     6,     6,     6,     3,     4,     6,   201,
+       6,  1728,     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,     3,     6,   185,
-       3,     6,     6,     3,     6,     6,     3,     6,     6,     3,
-       3,     3,  1537,  1538,  1539,  1540,  1541,  1542,  1543,  1544,
-    1545,  1546,  1547,  1548,  1549,  1550,  1551,  1552,  1553,  1554,
-    1555,  1556,  1557,  1558,  1559,  1560,     3,     4,  1574,     4,
-       6,   197,     9,    10,    11,    12,    13,    14,    15,    16,
+      27,    28,    29,    30,    31,    32,     6,     6,     6,     6,
+       6,     6,     6,     6,     6,     6,   103,     7,     3,     6,
+       3,   185,  1535,  1536,  1537,  1538,  1539,  1540,  1541,  1542,
+    1543,  1544,  1545,  1546,  1547,  1548,  1549,  1550,  1551,  1552,
+    1553,  1554,  1555,  1556,  1557,  1558,     3,     4,  1572,     3,
+       6,     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,   173,   174,   175,     6,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,     6,   198,     7,  1620,     6,   193,     6,   200,   100,
-     201,   200,   200,   195,  1619,   200,   199,     6,   195,   199,
-    1625,     6,  1627,     3,  1629,   195,  1631,  1632,  1633,  1634,
-    1635,  1636,  1637,  1638,  1639,  1640,  1641,  1642,  1643,  1644,
-    1645,  1646,  1647,  1648,  1649,  1650,  1651,   199,  1664,   199,
-     105,   199,   195,   103,   195,   195,   152,   199,   195,   162,
-     199,   157,   195,   199,     6,     6,   183,   184,     3,     6,
-       6,     5,   189,     6,     6,     6,     6,   194,     6,     3,
-       6,     6,     5,   200,   180,   201,     6,   201,   200,   200,
-     186,   187,   199,   199,   199,   199,   195,   195,   199,  1704,
-    1705,   195,   199,     6,   199,     6,     6,  1712,  1713,  1714,
-    1715,  1716,  1717,  1718,  1719,  1720,  1721,  1722,  1723,  1724,
-    1725,  1726,  1727,  1728,  1729,     6,     6,     6,     6,     6,
-       6,     6,     6,     6,     6,     6,   183,   184,     5,     5,
-     200,   199,   189,   200,   195,   199,     6,   194,   201,     6,
-     199,   199,   195,   200,     6,   199,     6,   199,  1763,   200,
-     200,   200,   200,  1768,  1769,  1770,  1771,  1772,  1773,  1774,
-    1775,  1776,  1777,  1778,  1779,  1780,  1781,  1782,  1783,  1784,
-    1785,  1786,  1787,  1788,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,   162,
-       6,     6,   100,     6,   193,     5,     5,   200,   200,   199,
-     201,   195,   200,   199,   195,  1820,     6,  1822,   200,  1824,
-       6,  1826,  1827,  1828,  1829,  1830,  1831,  1832,  1833,  1834,
-    1835,  1836,  1837,  1838,  1839,  1840,  1841,  1842,  1843,   201,
-     173,   174,   175,     6,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,   100,     6,     6,     6,     6,
-     193,     6,     6,     6,     6,     6,     6,     6,   167,     6,
-    1875,  1876,  1877,  1878,  1879,  1880,  1881,  1882,  1883,  1884,
-    1885,  1886,  1887,  1888,  1889,   201,   200,   199,   199,   199,
-     199,     6,   200,   200,   200,   199,     6,     6,   168,   195,
-       6,     6,     6,   200,   199,  1910,  1911,  1912,  1913,  1914,
-    1915,  1916,  1917,  1918,  1919,  1920,  1921,  1922,  1923,  1924,
-    1925,  1926,  1927,   173,   174,   175,     6,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,   199,     6,
-       6,   200,   200,   193,   199,     6,  1951,   195,  1953,   200,
-    1955,   200,  1957,  1958,  1959,  1960,  1961,  1962,  1963,  1964,
-    1965,  1966,  1967,  1968,  1969,  1970,  1971,   200,   173,   174,
-     175,   467,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,   200,   200,   200,     6,     6,   193,     6,
-       6,     6,     6,   200,     6,     6,  2001,  2002,  2003,  2004,
-    2005,  2006,  2007,  2008,  2009,   200,   200,     6,   200,   200,
-       6,   200,     6,     6,     6,   200,   200,   200,     6,     6,
-     599,  2026,  2027,  2028,  2029,  2030,  2031,  2032,  2033,  2034,
-    2035,  2036,  2037,  2038,  2039,  2040,   173,   174,   175,     8,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,     8,     8,    -1,  1057,    -1,   193,  2062,  1004,  2064,
-      -1,  2066,    -1,  2068,    -1,  2070,    -1,  2072,    -1,  2074,
-    2075,  2076,  2077,  2078,  2079,  2080,  2081,  2082,     6,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2104,
-    2105,  2106,  2107,  2108,  2109,     6,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2122,  2123,  2124,
-    2125,  2126,  2127,  2128,  2129,  2130,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2143,  2144,
-    2145,  2146,  2147,  2148,  2149,    -1,  2151,    -1,  2153,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  2167,  2168,  2169,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  2179,  2180,  2181,  2182,  2183,  2184,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2194,
-    2195,  2196,  2197,    -1,  2199,    -1,  2201,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2212,  2213,  2214,
-      -1,    -1,    -1,  2218,  2219,  2220,    -1,    -1,    -1,  2224,
-    2225,  2226,   718,   719,    -1,   721,    -1,   723,   724,    -1,
-      -1,  2236,  2237,  2238,    -1,    -1,    -1,    -1,    -1,    -1,
-    2245,    -1,  2247,    -1,  2249,   173,   174,   175,    -1,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,   762,   763,    -1,    -1,
-     766,    -1,   173,   174,   175,    -1,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,   783,   784,    -1,
-      -1,    -1,   193,   789,   790,    -1,    -1,     3,     4,     5,
-     796,     7,   798,     9,    10,    11,    12,    13,    14,    15,
+      27,    28,    29,    30,    31,    32,   173,   174,   175,   176,
+     177,     6,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,     6,     3,     6,  1618,     3,   193,     6,     3,     6,
+       3,     3,     6,     4,  1617,   198,     6,     6,     6,     6,
+    1623,     7,  1625,   197,  1627,     6,  1629,  1630,  1631,  1632,
+    1633,  1634,  1635,  1636,  1637,  1638,  1639,  1640,  1641,  1642,
+    1643,  1644,  1645,  1646,  1647,  1648,  1649,   200,  1662,   201,
+     200,   200,   200,   195,   199,   199,   150,   100,   199,   195,
+     199,   155,   199,   195,   195,   199,   183,   184,   105,   199,
+     195,   103,   189,     6,     6,   195,   195,   194,     3,     6,
+     195,     3,     6,   200,   178,   199,   162,     6,     6,     6,
+     184,   185,     6,     6,     6,     3,     6,     6,     5,  1702,
+    1703,     5,   201,     6,   200,   200,   199,  1710,  1711,  1712,
+    1713,  1714,  1715,  1716,  1717,  1718,  1719,  1720,  1721,  1722,
+    1723,  1724,  1725,  1726,  1727,     6,     6,   201,   199,   199,
+     199,   195,   195,   199,   195,     6,   183,   184,     6,   199,
+     199,     6,   189,     6,     6,     6,     6,   194,     6,     6,
+       6,     6,     6,   200,     5,   162,     6,     5,  1761,   200,
+     199,   201,   200,  1766,  1767,  1768,  1769,  1770,  1771,  1772,
+    1773,  1774,  1775,  1776,  1777,  1778,  1779,  1780,  1781,  1782,
+    1783,  1784,  1785,  1786,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,   199,
+       6,     6,     6,   199,   193,     6,   100,     6,     6,     5,
+     195,   195,     5,   100,     6,  1818,   199,  1820,   200,  1822,
+     199,  1824,  1825,  1826,  1827,  1828,  1829,  1830,  1831,  1832,
+    1833,  1834,  1835,  1836,  1837,  1838,  1839,  1840,  1841,   200,
+     173,   174,   175,   176,   177,   200,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,   200,   199,   201,   200,   200,
+     193,   200,   199,   199,   195,   195,   200,     6,     6,     6,
+    1873,  1874,  1875,  1876,  1877,  1878,  1879,  1880,  1881,  1882,
+    1883,  1884,  1885,  1886,  1887,   201,     6,     6,     6,     6,
+       6,     6,     6,     6,   199,   201,     6,   167,   200,   199,
+       6,   168,   199,   199,     6,  1908,  1909,  1910,  1911,  1912,
+    1913,  1914,  1915,  1916,  1917,  1918,  1919,  1920,  1921,  1922,
+    1923,  1924,  1925,   173,   174,   175,   176,   177,   200,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,     6,     6,
+       6,   200,     6,   193,     6,     6,  1949,   200,  1951,   195,
+    1953,   200,  1955,  1956,  1957,  1958,  1959,  1960,  1961,  1962,
+    1963,  1964,  1965,  1966,  1967,  1968,  1969,   199,   199,   199,
+     199,   465,   173,   174,   175,   176,   177,   200,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,   200,     6,     6,
+       6,   200,   193,   195,     6,     6,  1999,  2000,  2001,  2002,
+    2003,  2004,  2005,  2006,  2007,   200,   200,     6,     6,   200,
+     200,   200,     6,     6,   200,   200,   200,     6,     6,     6,
+     200,  2024,  2025,  2026,  2027,  2028,  2029,  2030,  2031,  2032,
+    2033,  2034,  2035,  2036,  2037,  2038,   200,    38,    39,    40,
+      41,    42,    43,    44,    45,   200,    47,     6,    49,    50,
+       6,    52,    53,     6,   200,   200,   200,  2060,     6,  2062,
+       6,  2064,     6,  2066,     0,  2068,     0,  2070,    69,  2072,
+    2073,  2074,  2075,  2076,  2077,  2078,  2079,  2080,     7,    -1,
+       8,     7,     7,  1055,   597,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  1002,    -1,    -1,    97,    98,    99,  2102,
+    2103,  2104,  2105,  2106,  2107,    -1,     8,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2120,  2121,  2122,
+    2123,  2124,  2125,  2126,  2127,  2128,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2141,  2142,
+    2143,  2144,  2145,  2146,  2147,    -1,  2149,    -1,  2151,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   159,    -1,
+      -1,    -1,  2165,  2166,  2167,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  2177,  2178,  2179,  2180,  2181,  2182,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2192,
+    2193,  2194,  2195,    -1,  2197,    -1,  2199,    -1,    -1,    -1,
+     201,    -1,    -1,    -1,    -1,    -1,    -1,  2210,  2211,  2212,
+      -1,    -1,    -1,  2216,  2217,  2218,    -1,    -1,    -1,  2222,
+    2223,  2224,   716,   717,    -1,   719,    -1,   721,   722,    -1,
+      -1,  2234,  2235,  2236,    -1,    -1,    -1,    -1,    -1,    -1,
+    2243,    -1,  2245,    -1,  2247,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   760,   761,    -1,    -1,
+     764,   173,   174,   175,   176,   177,    -1,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,   781,   782,    -1,
+      -1,   193,    -1,   787,   788,    -1,    -1,     3,     4,     5,
+     794,     7,   796,     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,     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,    -1,    34,    35,    36,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   870,    -1,   872,    -1,    -1,    -1,
-      -1,    -1,    -1,     8,    -1,    -1,   882,   883,   884,    -1,
-      -1,   887,   888,   889,   890,   891,   892,   893,     3,     4,
+      -1,    -1,    -1,    -1,   868,    -1,   870,    -1,    -1,    -1,
+      -1,    -1,    -1,     8,    -1,    -1,   880,   881,   882,    -1,
+      -1,   885,   886,   887,   888,   889,   890,   891,     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,     3,     4,
@@ -3421,1303 +2952,1153 @@ static const short yycheck[] =
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    32,     8,    -1,
       -1,    -1,    -1,   169,   170,   171,   172,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,     8,    -1,   183,   184,    -1,
-      -1,    -1,    -1,   189,    -1,   191,   192,    -1,   194,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   183,   184,    -1,
+      -1,    -1,    -1,   189,   190,   191,    -1,    -1,   194,    -1,
      196,    -1,   198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   999,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   997,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,   183,   184,    -1,    -1,    -1,    -1,   189,     3,     4,
       -1,    -1,   194,    -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,   173,   174,
-     175,    -1,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,  1059,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,  1067,    -1,    -1,    -1,    -1,    -1,    -1,   183,   184,
+     175,   176,   177,    -1,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,  1057,    -1,    -1,    -1,    -1,   193,    -1,
+      -1,  1065,    -1,    -1,    -1,    -1,    -1,    -1,   183,   184,
       -1,    -1,    -1,    -1,   189,    -1,    -1,    -1,    -1,   194,
-    1086,    -1,   173,   174,   175,    -1,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,   183,   184,
-      -1,    -1,   193,    -1,   189,    -1,    -1,    -1,   199,   194,
-     201,    -1,    -1,   173,   174,   175,    -1,   177,   178,   179,
+    1084,    38,    39,    40,    41,    42,    43,    44,    45,    -1,
+      47,    -1,    49,    50,    -1,    52,    53,    -1,   183,   184,
+      -1,    -1,    -1,    -1,   189,    -1,    -1,    -1,    -1,   194,
+      -1,    -1,    69,   173,   174,   175,   176,   177,    -1,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-     173,   174,   175,   193,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,   173,   174,   175,
-     193,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+      -1,    -1,    -1,   193,    -1,    -1,    -1,    -1,    -1,    -1,
+      97,    98,    99,    -1,    -1,    -1,    -1,   173,   174,   175,
+     176,   177,    -1,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,     0,     1,
       -1,     3,     4,   199,    -1,   201,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   183,   184,
       -1,    -1,    -1,    -1,   189,    -1,    -1,    -1,    -1,   194,
-      -1,    33,    -1,    -1,    -1,    37,    38,    39,    40,    41,
+      -1,    33,   159,    -1,    -1,    37,    38,    39,    40,    41,
       42,    43,    44,    45,    -1,    47,    48,    49,    50,    51,
       52,    53,    -1,    -1,    -1,    57,    58,    59,    60,    61,
-      62,    63,    -1,    65,    66,    67,    68,    69,    38,    39,
-      40,    41,    42,    43,    44,    45,    -1,    47,    -1,    49,
-      50,    -1,    52,    53,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  1268,    -1,  1270,    97,    98,    99,  1274,    69,
+      62,    63,    -1,    65,    66,    67,    68,    69,    -1,   173,
+     174,   175,   176,   177,   201,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+      -1,    -1,  1266,   197,  1268,    97,    98,    99,  1272,    -1,
       -1,    -1,   104,    -1,   106,    -1,   108,   109,   110,   111,
-     112,   113,   114,    -1,  1290,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    97,    98,    99,
+     112,   113,   114,    -1,  1288,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,   134,   135,   136,   137,   138,   139,   140,   141,
+      -1,    -1,   173,   174,   175,   176,   177,     4,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,   159,   160,   161,
+      -1,   163,   193,    -1,    -1,    -1,    -1,    -1,   199,    -1,
+     201,    -1,    -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,    -1,    -1,    -1,
+      57,    58,    59,    60,    61,    62,    63,    -1,    65,    66,
+      67,    68,    69,    -1,    -1,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,  1411,    -1,    -1,
+      97,    98,    99,   201,    -1,  1419,  1420,   104,    -1,   106,
+      -1,   108,   109,   110,   111,   112,   113,   114,    71,    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,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   159,    71,    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,    -1,
       38,    39,    40,    41,    42,    43,    44,    45,    -1,    47,
-      -1,    49,    50,    -1,    52,    53,    -1,   159,   160,   161,
-      -1,   163,    -1,    -1,    -1,    -1,    -1,    -1,   173,   174,
-     175,    69,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   159,
-      -1,    -1,    -1,    -1,   199,    -1,   201,    -1,    -1,    97,
-      98,    99,   173,   174,   175,    -1,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,     4,
-      -1,    -1,   193,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     201,   201,    -1,    -1,    -1,    -1,    -1,  1413,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  1421,  1422,    -1,    33,    -1,
-      -1,    -1,    37,    38,    39,    40,    41,    42,    43,    44,
-      45,   159,    47,    48,    49,    50,    51,    52,    53,    -1,
-      -1,    -1,    57,    58,    59,    60,    61,    62,    63,    -1,
-      65,    66,    67,    68,    69,    -1,    -1,   173,   174,   175,
-      -1,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,   201,    -1,    -1,    -1,   193,    -1,    -1,
-      -1,    -1,    97,    98,    99,   201,    -1,    -1,    -1,   104,
-      -1,   106,    -1,   108,   109,   110,   111,   112,   113,   114,
-     173,   174,   175,    -1,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,  1525,
-     193,    -1,  1528,    -1,    -1,    -1,    -1,    -1,   201,    -1,
-      -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   159,    71,    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,    71,    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,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1614,   116,
-     117,   118,    -1,    -1,    -1,    -1,  1622,   124,   125,   126,
-     127,   128,   129,   130,   131,   132,   133,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   142,   143,   144,   145,   146,
-     147,   148,   149,   150,   151,    -1,   153,   154,   155,   156,
-     157,   158,   173,   174,   175,    -1,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   201,    -1,   173,   174,   175,
-     201,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-      -1,   201,  1708,    -1,    -1,   201,   173,   174,   175,    -1,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,
-      -1,   173,   174,   175,   201,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   201,
-    1766,   173,   174,   175,    -1,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,    -1,    -1,   173,   174,   175,   201,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,
-      -1,    -1,  1818,    -1,   201,   173,   174,   175,    -1,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,    -1,
-     173,   174,   175,   201,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,    -1,    -1,  1871,    -1,    -1,   201,   173,
-     174,   175,    -1,   177,   178,   179,   180,   181,   182,   183,
+      -1,    49,    50,    -1,    52,    53,    -1,    -1,    -1,  1523,
+      -1,    -1,  1526,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    69,    -1,    -1,    -1,    -1,   116,   117,   118,    -1,
+      -1,    -1,    -1,    -1,   124,   125,   126,   127,   128,   129,
+     130,   131,   132,   133,    -1,    -1,    -1,    -1,   201,    97,
+      98,    99,   142,   143,   144,   145,   146,   147,   148,   149,
+     150,   151,    -1,   153,   154,   155,   156,   157,   158,   173,
+     174,   175,   176,   177,    -1,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   201,    -1,    -1,
-     173,   174,   175,  1909,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,    -1,    -1,   173,   174,   175,   201,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,    -1,
-     173,   174,   175,   201,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,    -1,    -1,   173,   174,   175,   201,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,    -1,
-     173,   174,   175,   201,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,    -1,    -1,   173,   174,   175,   201,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,   201,    -1,   199,    -1,   201,  1612,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  1620,    -1,    -1,    -1,
+      -1,   159,   173,   174,   175,   176,   177,    -1,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,    -1,    -1,   173,   174,   175,   176,   177,
+     201,   179,   180,   181,   182,   183,   184,   185,   186,   187,
       -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
+     175,   176,   177,   201,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+      -1,    -1,    -1,    -1,    -1,    -1,   201,   173,   174,   175,
+     176,   177,  1706,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,   201,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,    -1,    -1,   173,   174,   175,   176,   177,   201,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+    1764,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   176,
+     177,   201,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,   201,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
+      -1,    -1,  1816,    -1,    -1,    -1,    -1,   201,   173,   174,
+     175,   176,   177,    -1,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+      -1,   173,   174,   175,   176,   177,   201,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,   193,    -1,    -1,    -1,  1869,    -1,    -1,    -1,   201,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   201,    -1,
+      -1,    -1,    -1,  1907,   173,   174,   175,   176,   177,    -1,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
       -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     176,   177,   201,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,   201,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,    -1,    -1,   173,   174,   175,   176,   177,   201,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   176,
+     177,   201,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,   201,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
-     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
-     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
-     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-      -1,   173,   174,   175,   199,   177,   178,   179,   180,   181,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,    -1,   173,   174,   175,   199,   177,   178,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,
-     199,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,
-     173,   174,   175,   199,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,    -1,   173,   174,   175,   199,   177,   178,   179,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
-     187,    -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,
-     174,   175,   199,   177,   178,   179,   180,   181,   182,   183,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,    -1,   173,   174,   175,   199,   177,   178,   179,   180,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,    -1,   173,   174,   175,   199,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,   173,   174,
-     175,   199,   177,   178,   179,   180,   181,   182,   183,   184,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
-     174,   175,   197,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-     173,   174,   175,   197,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,   173,   174,   175,   197,   177,   178,   179,   180,   181,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,   173,   174,   175,   197,   177,   178,   179,   180,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,   173,   174,   175,   197,   177,   178,   179,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,   173,   174,   175,   197,   177,   178,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,   173,   174,   175,   197,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   197,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
-     197,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
-     175,   197,   177,   178,   179,   180,   181,   182,   183,   184,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
-     174,   175,   197,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-     173,   174,   175,   197,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,   173,   174,   175,   197,   177,   178,   179,   180,   181,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,   173,   174,   175,   197,   177,   178,   179,   180,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,   173,   174,   175,   197,   177,   178,   179,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,   173,   174,   175,   197,   177,   178,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,   173,   174,   175,   197,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   197,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
-     197,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
-     175,   197,   177,   178,   179,   180,   181,   182,   183,   184,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
-     174,   175,   197,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-     173,   174,   175,   197,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,   173,   174,   175,   197,   177,   178,   179,   180,   181,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,   173,   174,   175,   197,   177,   178,   179,   180,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,   173,   174,   175,   197,   177,   178,   179,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,   173,   174,   175,   197,   177,   178,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,   173,   174,   175,   197,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
-      -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,
-     175,    -1,   177,   178,   179,   180,   181,   182,   183,   184,
-     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-     195,   173,   174,   175,    -1,   177,   178,   179,   180,   181,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,   173,   174,   175,   176,   177,   199,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,   195,   173,   174,   175,    -1,   177,   178,
+      -1,   193,   173,   174,   175,   176,   177,   199,   179,   180,
+     181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
+      -1,    -1,   193,   173,   174,   175,   176,   177,   199,   179,
+     180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
+      -1,    -1,    -1,   193,   173,   174,   175,   176,   177,   199,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
-      -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,
-      -1,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-     186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,
-     173,   174,   175,    -1,   177,   178,   179,   180,   181,   182,
+      -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,   177,
+     199,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,   176,
+     177,   199,   179,   180,   181,   182,   183,   184,   185,   186,
+     187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,   175,
+     176,   177,   199,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,   174,
+     175,   176,   177,   199,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,   173,
+     174,   175,   176,   177,   199,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
+     173,   174,   175,   176,   177,   199,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,   195,   173,   174,   175,    -1,   177,   178,   179,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,    -1,    -1,   197,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,    -1,    -1,   197,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
+     183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
+     193,    -1,   195,   173,   174,   175,   176,   177,    -1,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,   176,
+     177,    -1,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,
-     174,   175,    -1,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,    -1,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,   195,   173,   174,   175,    -1,   177,   178,   179,   180,
+      -1,   195,   173,   174,   175,   176,   177,    -1,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,   193,    -1,   195,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
       -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,
-     175,    -1,   177,   178,   179,   180,   181,   182,   183,   184,
+     175,   176,   177,    -1,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-     195,   173,   174,   175,    -1,   177,   178,   179,   180,   181,
+     195,   173,   174,   175,   176,   177,    -1,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,   195,   173,   174,   175,    -1,   177,   178,
+      -1,   193,    -1,   195,   173,   174,   175,   176,   177,    -1,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
       -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,
-      -1,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     176,   177,    -1,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,
-     173,   174,   175,    -1,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,   195,   173,   174,   175,    -1,   177,   178,   179,
+     193,    -1,   195,   173,   174,   175,   176,   177,    -1,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,   176,
+     177,    -1,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,
-     174,   175,    -1,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,    -1,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,   195,   173,   174,   175,    -1,   177,   178,   179,   180,
+      -1,   195,   173,   174,   175,   176,   177,    -1,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,   193,    -1,   195,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
       -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,
-     175,    -1,   177,   178,   179,   180,   181,   182,   183,   184,
+     175,   176,   177,    -1,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-     195,   173,   174,   175,    -1,   177,   178,   179,   180,   181,
+     195,   173,   174,   175,   176,   177,    -1,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,   195,   173,   174,   175,    -1,   177,   178,
+      -1,   193,    -1,   195,   173,   174,   175,   176,   177,    -1,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
       -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,
-      -1,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     176,   177,    -1,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,
-     173,   174,   175,    -1,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,   195,   173,   174,   175,    -1,   177,   178,   179,
+     193,    -1,   195,   173,   174,   175,   176,   177,    -1,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,   176,
+     177,    -1,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,
-     174,   175,    -1,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,    -1,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,   195,   173,   174,   175,    -1,   177,   178,   179,   180,
+      -1,   195,   173,   174,   175,   176,   177,    -1,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,   193,    -1,   195,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
       -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,
-     175,    -1,   177,   178,   179,   180,   181,   182,   183,   184,
+     175,   176,   177,    -1,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-     195,   173,   174,   175,    -1,   177,   178,   179,   180,   181,
+     195,   173,   174,   175,   176,   177,    -1,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,   195,   173,   174,   175,    -1,   177,   178,
+      -1,   193,    -1,   195,   173,   174,   175,   176,   177,    -1,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
       -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,
-      -1,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     176,   177,    -1,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,
-     173,   174,   175,    -1,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,   195,   173,   174,   175,    -1,   177,   178,   179,
+     193,    -1,   195,   173,   174,   175,   176,   177,    -1,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,   176,
+     177,    -1,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,
-     174,   175,    -1,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,    -1,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,   195,   173,   174,   175,    -1,   177,   178,   179,   180,
+      -1,   195,   173,   174,   175,   176,   177,    -1,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,   193,    -1,   195,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
       -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,
-     175,    -1,   177,   178,   179,   180,   181,   182,   183,   184,
+     175,   176,   177,    -1,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-     195,   173,   174,   175,    -1,   177,   178,   179,   180,   181,
+     195,   173,   174,   175,   176,   177,    -1,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,   195,   173,   174,   175,    -1,   177,   178,
+      -1,   193,    -1,   195,   173,   174,   175,   176,   177,    -1,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
       -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,
-      -1,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     176,   177,    -1,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,
-     173,   174,   175,    -1,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,   195,   173,   174,   175,    -1,   177,   178,   179,
+     193,    -1,   195,   173,   174,   175,   176,   177,    -1,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,   176,
+     177,    -1,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,
-     174,   175,    -1,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,    -1,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,   195,   173,   174,   175,    -1,   177,   178,   179,   180,
+      -1,   195,   173,   174,   175,   176,   177,    -1,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,   193,    -1,   195,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
       -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,
-     175,    -1,   177,   178,   179,   180,   181,   182,   183,   184,
+     175,   176,   177,    -1,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-     195,   173,   174,   175,    -1,   177,   178,   179,   180,   181,
+     195,   173,   174,   175,   176,   177,    -1,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,   195,   173,   174,   175,    -1,   177,   178,
+      -1,   193,    -1,   195,   173,   174,   175,   176,   177,    -1,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
       -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,
-      -1,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     176,   177,    -1,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,
-     173,   174,   175,    -1,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,   195,   173,   174,   175,    -1,   177,   178,   179,
+     193,    -1,   195,   173,   174,   175,   176,   177,    -1,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,   176,
+     177,    -1,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,
-     174,   175,    -1,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,    -1,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,   195,   173,   174,   175,    -1,   177,   178,   179,   180,
+      -1,   195,   173,   174,   175,   176,   177,    -1,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,   193,    -1,   195,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
       -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,
-     175,    -1,   177,   178,   179,   180,   181,   182,   183,   184,
+     175,   176,   177,    -1,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-     195,   173,   174,   175,    -1,   177,   178,   179,   180,   181,
+     195,   173,   174,   175,   176,   177,    -1,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,   195,   173,   174,   175,    -1,   177,   178,
+      -1,   193,    -1,   195,   173,   174,   175,   176,   177,    -1,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
       -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,
-      -1,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     176,   177,    -1,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,
-     173,   174,   175,    -1,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,   195,   173,   174,   175,    -1,   177,   178,   179,
+     193,    -1,   195,   173,   174,   175,   176,   177,    -1,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,   176,
+     177,    -1,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,
-     174,   175,    -1,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,    -1,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,   195,   173,   174,   175,    -1,   177,   178,   179,   180,
+      -1,   195,   173,   174,   175,   176,   177,    -1,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,   177,
-     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,   193,    -1,   195,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
       -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,
-     175,    -1,   177,   178,   179,   180,   181,   182,   183,   184,
+     175,   176,   177,    -1,   179,   180,   181,   182,   183,   184,
      185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
-     195,   173,   174,   175,    -1,   177,   178,   179,   180,   181,
+     195,   173,   174,   175,   176,   177,    -1,   179,   180,   181,
      182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
-      -1,   193,    -1,   195,   173,   174,   175,    -1,   177,   178,
+      -1,   193,    -1,   195,   173,   174,   175,   176,   177,    -1,
      179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
       -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,
-      -1,   177,   178,   179,   180,   181,   182,   183,   184,   185,
+     176,   177,    -1,   179,   180,   181,   182,   183,   184,   185,
      186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,
-     173,   174,   175,    -1,   177,   178,   179,   180,   181,   182,
+     173,   174,   175,   176,   177,    -1,   179,   180,   181,   182,
      183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,
-     193,    -1,   195,   173,   174,   175,    -1,   177,   178,   179,
+     193,    -1,   195,   173,   174,   175,   176,   177,    -1,   179,
      180,   181,   182,   183,   184,   185,   186,   187,    -1,    -1,
-      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,    -1,
-     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
+      -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,   176,
+     177,    -1,   179,   180,   181,   182,   183,   184,   185,   186,
      187,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,
-     174,   175,    -1,   177,   178,   179,   180,   181,   182,   183,
+     174,   175,   176,   177,    -1,   179,   180,   181,   182,   183,
      184,   185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,
-      -1,   195,   173,   174,   175,    -1,   177,   178,   179,   180,
+      -1,   195,   173,   174,   175,   176,   177,    -1,   179,   180,
      181,   182,   183,   184,   185,   186,   187,    -1,    -1,    -1,
-      -1,    -1,   193
+      -1,    -1,   193,    -1,   195,   173,   174,   175,   176,   177,
+      -1,   179,   180,   181,   182,   183,   184,   185,   186,   187,
+      -1,    -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,
+     175,   176,   177,    -1,   179,   180,   181,   182,   183,   184,
+     185,   186,   187,    -1,    -1,    -1,    -1,    -1,   193,    -1,
+     195,   173,   174,   175,   176,   177,    -1,   179,   180,   181,
+     182,   183,   184,   185,   186,   187,    -1,    -1,    -1,    -1,
+      -1,   193,    -1,   195,   173,   174,   175,   176,   177,    -1,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
+      -1,    -1,    -1,    -1,   193,    -1,   195,   173,   174,   175,
+     176,   177,    -1,   179,   180,   181,   182,   183,   184,   185,
+     186,   187,    -1,    -1,    -1,    -1,    -1,   193
 };
+/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+#line 3 "/usr/share/bison/bison.simple"
 
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-   symbol of state STATE-NUM.  */
-static const unsigned short yystos[] =
-{
-       0,     1,   160,   161,   163,   203,   205,   206,   211,     6,
-     164,     0,     3,   134,   135,   136,   137,   138,   139,   140,
-     141,   207,   208,   209,   210,     4,    33,    37,    38,    39,
-      40,    41,    42,    43,    44,    45,    47,    48,    49,    50,
-      51,    52,    53,    57,    58,    59,    60,    61,    62,    63,
-      65,    66,    67,    68,    69,    97,    98,    99,   104,   106,
-     108,   109,   110,   111,   112,   113,   114,   159,   212,   213,
-     214,   296,   297,   298,   301,   302,   303,   304,   305,   306,
-     315,   316,     3,   184,   204,     7,     6,     6,     6,     6,
-       6,   194,   194,   194,     3,     4,     5,     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,    34,    35,    36,   169,   170,   171,   172,   183,
-     184,   189,   191,   192,   194,   196,   198,   294,   295,   318,
-     319,   332,   194,     6,   194,   194,   194,    64,   194,    64,
-     194,   194,    46,   194,    42,    42,    42,    41,    42,    44,
-      44,    38,    41,    42,    44,   194,   200,   183,   184,   194,
-     200,   320,   321,   320,   200,    38,    41,    42,     4,   200,
-      42,     4,   115,   200,     6,     6,    38,    41,   194,   194,
-      42,   194,     4,   200,   329,     4,   194,   194,     6,     4,
-       4,    42,     3,   204,    41,   116,   117,   118,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   142,   143,
-     144,   145,   146,   147,   148,   149,   150,   151,   153,   154,
-     155,   156,   157,   158,   194,   322,   322,     5,   196,   198,
-     295,     4,   200,   194,   196,   194,   196,   194,   196,   194,
-     196,   194,   196,   194,   196,   194,   196,   194,   196,   194,
-     196,   194,   196,   194,   196,   194,   196,   194,   196,   194,
-     196,   194,   196,   194,   196,   194,   196,   194,   196,   194,
-     196,   194,   196,   194,   196,   194,   194,   194,   318,   318,
-     318,   318,   197,   200,   318,     4,   104,   105,   318,     6,
-       6,   173,   174,   175,   177,   178,   179,   180,   181,   182,
-     183,   184,   185,   186,   187,   193,     6,     5,   318,   318,
-     318,   194,   318,   194,   318,   318,     4,   184,   200,   318,
-     326,   327,   318,   200,   194,   194,   326,   200,   200,   194,
-     194,   194,   194,   194,     4,   320,   320,   320,   318,   318,
-     183,   184,   200,   200,   320,   200,   200,   200,   196,   300,
-     326,   196,     6,   300,   326,   326,   318,   318,   101,   194,
-     318,   198,   318,   200,   107,   318,   318,     6,   194,   204,
-     194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
-     194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
-     194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
-       5,   323,   199,   195,   199,   318,     4,   320,   215,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,     4,     5,   332,   332,   332,   195,     7,   184,   318,
-     327,   328,   197,     7,   294,   295,   198,     7,     6,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   195,   199,   195,   195,   195,   318,
-     195,   318,   195,   195,   196,     4,   200,   328,     8,     7,
-     195,   318,   318,   318,     7,   318,   318,   318,   318,   318,
-     318,   318,   195,   199,   199,   199,   320,   320,   298,   299,
-     300,   301,   299,   199,   318,   318,   318,   318,    38,    41,
-      42,   201,   297,     6,     7,   318,   201,     7,     7,   195,
-     195,   102,   318,   195,   104,   199,   300,   200,     8,   195,
-     318,   165,     5,     5,     5,     5,     5,     5,     5,     5,
-       5,     5,     5,     5,     5,     5,     5,     5,     5,     5,
-       5,     5,     5,     5,     5,   152,     5,     5,     5,     5,
-       3,     5,   195,   199,     5,     6,     5,   197,   295,   200,
-      71,    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,   201,   217,   220,   223,
-     226,   229,   232,   235,   238,   241,   244,   247,   250,   253,
-     256,   259,   262,   265,   268,   271,   274,   277,   280,   283,
-     286,   289,   292,   195,   197,   195,   197,   195,   197,   195,
-     197,   195,   197,   195,   197,   195,   197,   195,   197,   195,
-     197,   195,   197,   195,   197,   199,   199,   195,   197,   195,
-     197,   195,   197,   195,   197,   195,   197,   195,   197,   199,
-     199,   199,   199,   199,   199,   196,   198,   195,   199,   199,
-     195,   326,   199,   201,   198,   294,   295,   332,   318,     6,
-       4,     4,   200,   330,     8,     6,   328,     7,     7,     7,
-     195,     7,   195,     7,     7,   197,   200,   196,   328,   201,
-     318,   318,     7,   201,   195,   195,   318,   201,   201,   195,
-     195,   195,   195,   195,   198,   320,   318,   318,   201,   201,
-     318,   199,   199,   199,   197,   200,   200,   200,   318,   197,
-     200,   200,     7,     7,   194,   195,     7,   198,   318,   201,
-     318,   318,   195,   166,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,     5,   195,   199,   198,   295,   215,
-     194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
-     194,   194,   194,   194,   194,   194,   194,   194,   194,   194,
-     194,   194,   194,   194,   194,   194,     6,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,     4,   328,   332,     6,
-     318,   327,   197,     4,   104,   105,   318,     6,     6,     6,
-       7,   196,   329,   331,     6,   318,   195,   320,   326,   326,
-       7,   326,     7,   326,   326,   328,   197,   200,   201,     8,
-       6,   200,     7,     7,     7,     6,    54,     7,     7,     7,
-       7,     7,     7,     7,     4,   199,   199,   199,   201,   320,
-     320,   320,     6,   328,   328,   328,     6,     6,   318,   318,
-     326,   326,   318,     7,   326,     4,   199,     8,     8,   195,
-       7,   162,     3,   318,   318,   320,     3,     3,   185,     3,
-       3,   326,   326,     3,   320,     3,     3,   326,   326,     3,
-       3,     3,     3,     3,   326,   119,   120,   121,   122,   123,
-     317,   326,     3,     5,     5,     3,     3,     6,   322,     4,
-     201,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   195,   197,   195,
-     197,   195,   197,   195,   197,   197,   195,   195,   195,   294,
-       7,   294,   295,   198,     7,     6,   329,   318,   199,   201,
-       6,     6,     6,    49,     6,   326,     6,   326,     6,     6,
-     201,   328,   318,   318,   326,   326,   326,    55,    56,   326,
-     326,   326,   326,   326,   326,   326,     6,     7,   318,   318,
-     318,   200,   199,   201,   199,   201,   199,   201,   201,   201,
-     201,   199,   199,     6,     6,   195,   194,   200,   324,   103,
-     318,   318,   318,   200,   204,   199,   199,   199,   195,   199,
-     195,   199,   195,   199,   195,   199,   199,   195,   199,   195,
-     195,   199,   199,   199,   199,   199,   199,   195,   199,   199,
-     199,   199,   199,   195,   199,   199,   295,     6,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   198,   326,   332,   318,     6,     4,
-     330,     6,   197,   329,   320,     6,     6,   197,   201,   199,
-       6,     6,     6,   318,   318,     6,     6,     6,     6,     6,
-       6,     6,   318,   332,   201,   195,   199,   201,   299,   320,
-       6,   320,     6,   307,   320,     6,   310,     6,     6,     6,
-     318,   318,     7,   325,   326,   325,   103,   326,   199,   201,
-       8,   201,   195,   318,   204,     3,   318,   326,     6,     3,
-       6,   185,     6,   317,     6,     3,   318,     6,     3,     6,
-       6,     3,   317,   318,   318,   318,   326,     6,     3,   317,
-     318,     3,     3,     6,   318,   322,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,     4,     6,     6,     6,     7,     6,   198,     6,
-     197,   318,     6,     6,     6,     6,   200,   318,   201,   199,
-     199,   200,   199,   200,   199,   199,   324,   195,   199,   201,
-     200,   100,   318,   318,   199,   204,   195,   199,   199,   199,
-     199,   195,   199,   195,   199,   195,   195,   195,   199,   195,
-     199,   195,   195,   199,   199,   195,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   195,   329,   105,   199,   299,   199,
-     201,   183,   184,   194,   318,   320,   318,   320,    65,    70,
-     313,   314,   318,   320,   313,   318,   318,   103,   326,   326,
-     318,   201,   201,   326,   162,     6,   324,   317,     3,   318,
-       6,   317,     6,     3,     6,     6,     6,   318,     6,   326,
-       6,     6,   318,     3,     6,   318,     5,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,     6,     5,   201,   318,   318,   201,   199,
-     201,   199,     6,   200,   201,   314,   201,   199,   201,   201,
-     201,   200,   199,     6,   201,   204,   199,   199,   199,   199,
-     195,   195,   195,   199,   195,   195,   195,   199,   195,   195,
-     195,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   195,   199,   199,   201,     6,   318,     6,   308,
-     318,   326,     6,     6,   311,   318,     6,     6,     6,   326,
-     326,     6,   204,   317,   317,   317,   317,     6,     6,     6,
-     317,     6,     6,     6,     5,   218,   221,   224,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   290,
-     318,     5,   201,   200,   201,   199,   200,   201,   199,   201,
-     204,   199,   199,   195,   195,   199,   199,   200,   200,   200,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   200,   195,   199,     6,   313,     6,   309,   326,   313,
-       6,   312,   326,   100,   162,   317,   317,     6,     6,   317,
-       5,   216,   318,   219,   318,   222,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   288,   332,
-     293,     5,   201,   200,   199,   201,   201,   200,   201,   200,
-     204,   199,   199,   195,   195,   199,   201,   199,   201,   199,
-     201,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   201,   200,   201,     6,   313,   326,     6,
-       6,   313,   100,   318,   204,   317,   326,     6,     6,   318,
-       6,   318,     6,   318,     6,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   332,     6,   291,   332,
-       6,   201,   201,   201,   200,   199,   204,   199,   199,   195,
-     195,   195,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   201,     6,     6,     6,   318,   318,   167,   317,   326,
-     227,   230,   233,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   332,     6,   199,   201,   168,   199,   199,   200,   200,
-     200,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   318,
-       6,   326,   317,   225,   318,   228,   318,   231,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   201,   199,   195,
-     199,   201,   199,   201,   199,   201,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,     6,   326,     6,   318,     6,   318,
-       6,   318,     6,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   199,   195,   195,   195,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     326,   236,   239,   242,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   199,
-     200,   200,   200,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   326,   234,
-     318,   237,   318,   240,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     199,   199,   201,   199,   201,   199,   201,   199,   199,   199,
-     199,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   199,   317,   318,     6,   318,     6,   318,     6,   318,
-     318,   318,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   195,   195,   195,   195,   195,   195,
-     195,   199,   199,   199,   199,   199,   199,   199,   199,   199,
-       6,   245,   248,   251,   254,   257,   260,   318,   318,   318,
-     318,   318,   318,   318,   318,   318,   200,   200,   200,   200,
-     200,   200,   199,   199,   199,   199,   199,   199,   199,   199,
-     199,   243,   318,   246,   318,   249,   318,   252,   318,   255,
-     318,   258,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   199,   201,   199,   201,   199,   201,   199,   201,
-     199,   201,   199,   201,   199,   199,   199,   199,   199,   199,
-     199,   199,   199,   318,     6,   318,     6,   318,     6,   318,
-       6,   318,     6,   318,     6,   318,   318,   318,   318,   318,
-     318,   318,   318,   318,   199,   199,   199,   199,   199,   199,
-     195,   195,   195,   318,   318,   318,   318,   318,   318,   281,
-     284,   287,   199,   199,   199,   199,   199,   199,   200,   200,
-     200,   318,   318,   318,   318,   318,   318,   279,   318,   282,
-     318,   285,   318,   199,   199,   199,   199,   199,   199,   199,
-     201,   199,   201,   199,   201,   318,   318,   318,   318,   318,
-     318,   318,     6,   318,     6,   318,     6,   199,   199,   199,
-     195,   195,   195,   318,   318,   318,   272,   275,   278,   199,
-     199,   199,   200,   200,   200,   318,   318,   318,   270,   318,
-     273,   318,   276,   318,   199,   199,   199,   199,   201,   199,
-     201,   199,   201,   318,   318,   318,   318,     6,   318,     6,
-     318,     6,   199,   199,   199,   318,   318,   318,   199,   199,
-     199,   318,   318,   318,   199,   199,   199,   318,   318,   318,
-     195,   195,   195,   263,   266,   269,   200,   200,   200,   261,
-     318,   264,   318,   267,   318,   199,   201,   199,   201,   199,
-     201,   318,     6,   318,     6,   318,     6
+/* Skeleton output parser for bison,
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
+   Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* This is the parser code that is written into each bison parser when
+   the %semantic_parser declaration is not specified in the grammar.
+   It was written by Richard Stallman by simplifying the hairy parser
+   used when %semantic_parser is specified.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# if YYSTACK_USE_ALLOCA
+#  define YYSTACK_ALLOC alloca
+# else
+#  ifndef YYSTACK_USE_ALLOCA
+#   if defined (alloca) || defined (_ALLOCA_H)
+#    define YYSTACK_ALLOC alloca
+#   else
+#    ifdef __GNUC__
+#     define YYSTACK_ALLOC __builtin_alloca
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning. */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+#  if defined (__STDC__) || defined (__cplusplus)
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   define YYSIZE_T size_t
+#  endif
+#  define YYSTACK_ALLOC malloc
+#  define YYSTACK_FREE free
+# endif
+#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
+
+
+#if (! defined (yyoverflow) \
+     && (! defined (__cplusplus) \
+	 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short yyss;
+  YYSTYPE yyvs;
+# if YYLSP_NEEDED
+  YYLTYPE yyls;
+# endif
 };
 
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# if YYLSP_NEEDED
+#  define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))	\
+      + 2 * YYSTACK_GAP_MAX)
+# else
+#  define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
+      + YYSTACK_GAP_MAX)
+# endif
+
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)		\
+      do					\
+	{					\
+	  register YYSIZE_T yyi;		\
+	  for (yyi = 0; yyi < (Count); yyi++)	\
+	    (To)[yyi] = (From)[yyi];		\
+	}					\
+      while (0)
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)					\
+    do									\
+      {									\
+	YYSIZE_T yynewbytes;						\
+	YYCOPY (&yyptr->Stack, Stack, yysize);				\
+	Stack = &yyptr->Stack;						\
+	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;	\
+	yyptr += yynewbytes / sizeof (*yyptr);				\
+      }									\
+    while (0)
+
+#endif
+
+
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 # define YYSIZE_T __SIZE_TYPE__
 #endif
@@ -4738,19 +4119,14 @@ static const unsigned short yystos[] =
 #define yyclearin	(yychar = YYEMPTY)
 #define YYEMPTY		-2
 #define YYEOF		0
-
 #define YYACCEPT	goto yyacceptlab
-#define YYABORT		goto yyabortlab
+#define YYABORT 	goto yyabortlab
 #define YYERROR		goto yyerrlab1
-
 /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
-
 #define YYFAIL		goto yyerrlab
-
 #define YYRECOVERING()  (!!yyerrstatus)
-
 #define YYBACKUP(Token, Value)					\
 do								\
   if (yychar == YYEMPTY && yylen == 1)				\
@@ -4771,20 +4147,41 @@ while (0)
 #define YYTERROR	1
 #define YYERRCODE	256
 
+
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
-   are run).  */
+   are run).
+
+   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
+   first token.  By default, to implement support for ranges, extend
+   its range to the last symbol.  */
 
 #ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N)           \
-  Current.first_line   = Rhs[1].first_line;      \
-  Current.first_column = Rhs[1].first_column;    \
-  Current.last_line    = Rhs[N].last_line;       \
-  Current.last_column  = Rhs[N].last_column;
+# define YYLLOC_DEFAULT(Current, Rhs, N)       	\
+   Current.last_line   = Rhs[N].last_line;	\
+   Current.last_column = Rhs[N].last_column;
 #endif
 
+
 /* YYLEX -- calling `yylex' with the right arguments.  */
 
-#define YYLEX	yylex ()
+#if YYPURE
+# if YYLSP_NEEDED
+#  ifdef YYLEX_PARAM
+#   define YYLEX		yylex (&yylval, &yylloc, YYLEX_PARAM)
+#  else
+#   define YYLEX		yylex (&yylval, &yylloc)
+#  endif
+# else /* !YYLSP_NEEDED */
+#  ifdef YYLEX_PARAM
+#   define YYLEX		yylex (&yylval, YYLEX_PARAM)
+#  else
+#   define YYLEX		yylex (&yylval)
+#  endif
+# endif /* !YYLSP_NEEDED */
+#else /* !YYPURE */
+# define YYLEX			yylex ()
+#endif /* !YYPURE */
+
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
@@ -4799,17 +4196,11 @@ do {						\
   if (yydebug)					\
     YYFPRINTF Args;				\
 } while (0)
-# define YYDSYMPRINT(Args)			\
-do {						\
-  if (yydebug)					\
-    yysymprint Args;				\
-} while (0)
 /* Nonzero means print parse trace.  It is left uninitialized so that
    multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
 #endif /* !YYDEBUG */
 
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
@@ -4831,10 +4222,8 @@ int yydebug;
 #ifndef YYMAXDEPTH
 # define YYMAXDEPTH 10000
 #endif
-
 
-
-#if YYERROR_VERBOSE
+#ifdef YYERROR_VERBOSE
 
 # ifndef yystrlen
 #  if defined (__GLIBC__) && defined (_STRING_H)
@@ -4877,80 +4266,17 @@ yystpcpy (yydest, yysrc)
   register char *yyd = yydest;
   register const char *yys = yysrc;
 
-  while ((*yyd++ = *yys++) != '\0')
-    continue;
-
-  return yyd - 1;
-}
-#  endif
-# endif
-
-#endif /* !YYERROR_VERBOSE */
-
-
-
-#if YYDEBUG
-/*-----------------------------.
-| Print this symbol on YYOUT.  |
-`-----------------------------*/
-
-static void
-#if defined (__STDC__) || defined (__cplusplus)
-yysymprint (FILE* yyout, int yytype, YYSTYPE yyvalue)
-#else
-yysymprint (yyout, yytype, yyvalue)
-    FILE* yyout;
-    int yytype;
-    YYSTYPE yyvalue;
-#endif
-{
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvalue;
-
-  if (yytype < YYNTOKENS)
-    {
-      YYFPRINTF (yyout, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
-      YYPRINT (yyout, yytoknum[yytype], yyvalue);
-# endif
-    }
-  else
-    YYFPRINTF (yyout, "nterm %s (", yytname[yytype]);
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
 
-  switch (yytype)
-    {
-      default:
-        break;
-    }
-  YYFPRINTF (yyout, ")");
+  return yyd - 1;
 }
-#endif /* YYDEBUG. */
-
-
-/*-----------------------------------------------.
-| Release the memory associated to this symbol.  |
-`-----------------------------------------------*/
-
-static void
-#if defined (__STDC__) || defined (__cplusplus)
-yydestruct (int yytype, YYSTYPE yyvalue)
-#else
-yydestruct (yytype, yyvalue)
-    int yytype;
-    YYSTYPE yyvalue;
+#  endif
+# endif
 #endif
-{
-  /* Pacify ``unused variable'' warnings.  */
-  (void) yyvalue;
-
-  switch (yytype)
-    {
-      default:
-        break;
-    }
-}
-
 
+#line 315 "/usr/share/bison/bison.simple"
+
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -4980,22 +4306,46 @@ int yyparse (void);
 # endif
 #endif
 
+/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
+   variables are global, or local to YYPARSE.  */
+
+#define YY_DECL_NON_LSP_VARIABLES			\
+/* The lookahead symbol.  */				\
+int yychar;						\
+							\
+/* The semantic value of the lookahead symbol. */	\
+YYSTYPE yylval;						\
+							\
+/* Number of parse errors so far.  */			\
+int yynerrs;
 
-/* The lookahead symbol.  */
-int yychar;
+#if YYLSP_NEEDED
+# define YY_DECL_VARIABLES			\
+YY_DECL_NON_LSP_VARIABLES			\
+						\
+/* Location data for the lookahead symbol.  */	\
+YYLTYPE yylloc;
+#else
+# define YY_DECL_VARIABLES			\
+YY_DECL_NON_LSP_VARIABLES
+#endif
 
-/* The semantic value of the lookahead symbol.  */
-YYSTYPE yylval;
 
-/* Number of parse errors so far.  */
-int yynerrs;
+/* If nonreentrant, generate the variables here. */
 
+#if !YYPURE
+YY_DECL_VARIABLES
+#endif  /* !YYPURE */
 
 int
 yyparse (YYPARSE_PARAM_ARG)
      YYPARSE_PARAM_DECL
 {
-  
+  /* If reentrant, generate the variables here. */
+#if YYPURE
+  YY_DECL_VARIABLES
+#endif  /* !YYPURE */
+
   register int yystate;
   register int yyn;
   int yyresult;
@@ -5012,7 +4362,7 @@ yyparse (YYPARSE_PARAM_ARG)
      Refer to the stacks thru separate pointers, to allow yyoverflow
      to reallocate them elsewhere.  */
 
-  /* The state stack.  */
+  /* The state stack. */
   short	yyssa[YYINITDEPTH];
   short *yyss = yyssa;
   register short *yyssp;
@@ -5022,19 +4372,31 @@ yyparse (YYPARSE_PARAM_ARG)
   YYSTYPE *yyvs = yyvsa;
   register YYSTYPE *yyvsp;
 
+#if YYLSP_NEEDED
+  /* The location stack.  */
+  YYLTYPE yylsa[YYINITDEPTH];
+  YYLTYPE *yyls = yylsa;
+  YYLTYPE *yylsp;
+#endif
 
-
-#define YYPOPSTACK   (yyvsp--, yyssp--)
+#if YYLSP_NEEDED
+# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+#else
+# define YYPOPSTACK   (yyvsp--, yyssp--)
+#endif
 
   YYSIZE_T yystacksize = YYINITDEPTH;
 
+
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
-
+#if YYLSP_NEEDED
+  YYLTYPE yyloc;
+#endif
 
   /* When reducing, the number of symbols on the RHS of the reduced
-     rule.  */
+     rule. */
   int yylen;
 
   YYDPRINTF ((stderr, "Starting parse\n"));
@@ -5051,7 +4413,9 @@ yyparse (YYPARSE_PARAM_ARG)
 
   yyssp = yyss;
   yyvsp = yyvs;
-
+#if YYLSP_NEEDED
+  yylsp = yyls;
+#endif
   goto yysetstate;
 
 /*------------------------------------------------------------.
@@ -5079,17 +4443,24 @@ yyparse (YYPARSE_PARAM_ARG)
 	YYSTYPE *yyvs1 = yyvs;
 	short *yyss1 = yyss;
 
-
 	/* Each stack pointer address is followed by the size of the
-	   data in use in that stack, in bytes.  This used to be a
-	   conditional around just the two extra args, but that might
-	   be undefined if yyoverflow is a macro.  */
+	   data in use in that stack, in bytes.  */
+# if YYLSP_NEEDED
+	YYLTYPE *yyls1 = yyls;
+	/* This used to be a conditional around just the two extra args,
+	   but that might be undefined if yyoverflow is a macro.  */
 	yyoverflow ("parser stack overflow",
 		    &yyss1, yysize * sizeof (*yyssp),
 		    &yyvs1, yysize * sizeof (*yyvsp),
-
+		    &yyls1, yysize * sizeof (*yylsp),
 		    &yystacksize);
-
+	yyls = yyls1;
+# else
+	yyoverflow ("parser stack overflow",
+		    &yyss1, yysize * sizeof (*yyssp),
+		    &yyvs1, yysize * sizeof (*yyvsp),
+		    &yystacksize);
+# endif
 	yyss = yyss1;
 	yyvs = yyvs1;
       }
@@ -5112,8 +4483,10 @@ yyparse (YYPARSE_PARAM_ARG)
 	  goto yyoverflowlab;
 	YYSTACK_RELOCATE (yyss);
 	YYSTACK_RELOCATE (yyvs);
-
-#  undef YYSTACK_RELOCATE
+# if YYLSP_NEEDED
+	YYSTACK_RELOCATE (yyls);
+# endif
+# undef YYSTACK_RELOCATE
 	if (yyss1 != yyssa)
 	  YYSTACK_FREE (yyss1);
       }
@@ -5122,7 +4495,9 @@ yyparse (YYPARSE_PARAM_ARG)
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
-
+#if YYLSP_NEEDED
+      yylsp = yyls + yysize - 1;
+#endif
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
 		  (unsigned long int) yystacksize));
@@ -5135,6 +4510,7 @@ yyparse (YYPARSE_PARAM_ARG)
 
   goto yybackup;
 
+
 /*-----------.
 | yybackup.  |
 `-----------*/
@@ -5147,7 +4523,7 @@ yybackup:
   /* First try to decide what to do without reference to lookahead token.  */
 
   yyn = yypact[yystate];
-  if (yyn == YYPACT_NINF)
+  if (yyn == YYFLAG)
     goto yydefault;
 
   /* Not known => get a lookahead token if don't already have one.  */
@@ -5161,12 +4537,12 @@ yybackup:
       yychar = YYLEX;
     }
 
-  /* Convert token to internal form (in yychar1) for indexing tables with.  */
+  /* Convert token to internal form (in yychar1) for indexing tables with */
 
-  if (yychar <= 0)		/* This means end of input.  */
+  if (yychar <= 0)		/* This means end of input. */
     {
       yychar1 = 0;
-      yychar = YYEOF;		/* Don't call YYLEX any more.  */
+      yychar = YYEOF;		/* Don't call YYLEX any more */
 
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
@@ -5174,26 +4550,45 @@ yybackup:
     {
       yychar1 = YYTRANSLATE (yychar);
 
-      /* We have to keep this `#if YYDEBUG', since we use variables
-	 which are defined only if `YYDEBUG' is set.  */
-      YYDPRINTF ((stderr, "Next token is "));
-      YYDSYMPRINT ((stderr, yychar1, yylval));
-      YYDPRINTF ((stderr, "\n"));
+#if YYDEBUG
+     /* We have to keep this `#if YYDEBUG', since we use variables
+	which are defined only if `YYDEBUG' is set.  */
+      if (yydebug)
+	{
+	  YYFPRINTF (stderr, "Next token is %d (%s",
+		     yychar, yytname[yychar1]);
+	  /* Give the individual parser a way to print the precise
+	     meaning of a token, for further debugging info.  */
+# ifdef YYPRINT
+	  YYPRINT (stderr, yychar, yylval);
+# endif
+	  YYFPRINTF (stderr, ")\n");
+	}
+#endif
     }
 
-  /* If the proper action on seeing token YYCHAR1 is to reduce or to
-     detect an error, take that action.  */
   yyn += yychar1;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1)
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
     goto yydefault;
+
   yyn = yytable[yyn];
-  if (yyn <= 0)
+
+  /* yyn is what to do for this token type in this state.
+     Negative => reduce, -yyn is rule number.
+     Positive => shift, yyn is new state.
+       New state is final state => don't bother to shift,
+       just return success.
+     0, or most negative number => error.  */
+
+  if (yyn < 0)
     {
-      if (yyn == 0 || yyn == YYTABLE_NINF)
+      if (yyn == YYFLAG)
 	goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
+  else if (yyn == 0)
+    goto yyerrlab;
 
   if (yyn == YYFINAL)
     YYACCEPT;
@@ -5207,7 +4602,9 @@ yybackup:
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
-
+#if YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
@@ -5238,14 +4635,19 @@ yyreduce:
   /* If YYLEN is nonzero, implement the default value of the action:
      `$$ = $1'.
 
-     Otherwise, the following line sets YYVAL to garbage.
-     This behavior is undocumented and Bison
+     Otherwise, the following line sets YYVAL to the semantic value of
+     the lookahead token.  This behavior is undocumented and Bison
      users should not rely upon it.  Assigning to YYVAL
      unconditionally makes the parser a bit smaller, and it avoids a
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
-
+#if YYLSP_NEEDED
+  /* Similarly for the default location.  Let the user run additional
+     commands if for instance locations are ranges.  */
+  yyloc = yylsp[1-yylen];
+  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
+#endif
 
 #if YYDEBUG
   /* We have to keep this `#if YYDEBUG', since we use variables which
@@ -5255,401 +4657,342 @@ yyreduce:
       int yyi;
 
       YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
-		 yyn - 1, yyrline[yyn]);
+		 yyn, yyrline[yyn]);
 
       /* Print the symbols being reduced, and their result.  */
-      for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++)
+      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
 	YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
       YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
     }
 #endif
-  switch (yyn)
-    {
-        case 5:
-#line 179 "Gmsh.y"
-    { yyerrok ; return 1; }
-    break;
 
-  case 6:
-#line 185 "Gmsh.y"
-    { yyval.d = yyvsp[0].d; }
-    break;
-
-  case 7:
-#line 186 "Gmsh.y"
-    { yyval.d = -yyvsp[0].d; }
-    break;
+  switch (yyn) {
 
-  case 8:
-#line 191 "Gmsh.y"
-    {
+case 4:
+#line 173 "Gmsh.y"
+{ yyerrok ; return 1; ;
+    break;}
+case 5:
+#line 179 "Gmsh.y"
+{ yyval.d = yyvsp[0].d; ;
+    break;}
+case 6:
+#line 180 "Gmsh.y"
+{ yyval.d = -yyvsp[0].d; ;
+    break;}
+case 7:
+#line 185 "Gmsh.y"
+{
       yymsg(INFO, "STL file format");
       STL_Surf = Create_Surface(1,MSH_SURF_STL);
       STL_Surf->STL = new STL_Data;
       return 1;
-    }
-    break;
-
-  case 9:
-#line 205 "Gmsh.y"
-    {
+    ;
+    break;}
+case 8:
+#line 199 "Gmsh.y"
+{
       STL_Surf->STL->Add_Facet( yyvsp[-12].d, yyvsp[-11].d, yyvsp[-10].d,
 				yyvsp[-8].d, yyvsp[-7].d, yyvsp[-6].d,
 				yyvsp[-4].d, yyvsp[-3].d, yyvsp[-2].d);
       return 1;
-    }
-    break;
-
-  case 10:
-#line 212 "Gmsh.y"
-    {
+    ;
+    break;}
+case 9:
+#line 206 "Gmsh.y"
+{
       yymsg(INFO, "STL file format read");
       Tree_Add(THEM->Surfaces, &STL_Surf);
       return 1;
-    }
-    break;
-
-  case 13:
-#line 227 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 14:
+    ;
+    break;}
+case 12:
+#line 221 "Gmsh.y"
+{ return 1; ;
+    break;}
+case 13:
+#line 222 "Gmsh.y"
+{ return 1; ;
+    break;}
+case 14:
+#line 223 "Gmsh.y"
+{ return 1; ;
+    break;}
+case 15:
 #line 228 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 15:
-#line 229 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 16:
-#line 234 "Gmsh.y"
-    {
+{
       yymsg(INFO, "Step Iso-10303-21 file format");
       Create_Step_Solid_BRep();
-    }
-    break;
-
-  case 17:
-#line 239 "Gmsh.y"
-    {
+    ;
+    break;}
+case 16:
+#line 233 "Gmsh.y"
+{
       yymsg(INFO, "Step Iso-10303-21 file format read");
       Resolve_BREP ();
-    }
-    break;
-
-  case 21:
-#line 250 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 22:
-#line 253 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 23:
+    ;
+    break;}
+case 20:
+#line 244 "Gmsh.y"
+{
+    ;
+    break;}
+case 21:
+#line 247 "Gmsh.y"
+{
+    ;
+    break;}
+case 22:
+#line 251 "Gmsh.y"
+{
+   ;
+    break;}
+case 23:
 #line 257 "Gmsh.y"
-    {
-   }
-    break;
-
-  case 24:
-#line 263 "Gmsh.y"
-    {
+{
         Add_Cartesian_Point((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2]);
-    }
-    break;
-
-  case 25:
-#line 269 "Gmsh.y"
-    {
+    ;
+    break;}
+case 24:
+#line 263 "Gmsh.y"
+{
        Add_BSpline_Curve_With_Knots ((int)yyvsp[-22].d, yyvsp[-18].c, (int) yyvsp[-16].d, yyvsp[-14].l,	yyvsp[-6].l, yyvsp[-4].l, 0., 1.);
-    }
-    break;
-
-  case 26:
-#line 276 "Gmsh.y"
-    {
+    ;
+    break;}
+case 25:
+#line 270 "Gmsh.y"
+{
       Add_BSpline_Surface_With_Knots ((int)yyvsp[-30].d, yyvsp[-26].c, (int) yyvsp[-24].d, (int) yyvsp[-22].d, yyvsp[-20].l, yyvsp[-10].l,
 				      yyvsp[-8].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1., 0., 1. );
-    }
-    break;
-
-  case 27:
-#line 282 "Gmsh.y"
-    {
+    ;
+    break;}
+case 26:
+#line 276 "Gmsh.y"
+{
       Add_Edge_Curve ((int)yyvsp[-14].d, yyvsp[-10].c , (int)yyvsp[-8].d , (int)yyvsp[-6].d, (int)yyvsp[-4].d);
-    }
-    break;
-
-  case 28:
-#line 286 "Gmsh.y"
-    {
+    ;
+    break;}
+case 27:
+#line 280 "Gmsh.y"
+{
       Add_Face_Outer_Bound((int)yyvsp[-10].d,yyvsp[-6].c,(int)yyvsp[-4].d,yyvsp[-2].i,1);
-    }
-    break;
-
-  case 29:
-#line 290 "Gmsh.y"
-    {
+    ;
+    break;}
+case 28:
+#line 284 "Gmsh.y"
+{
       // check the norm! Face_Bound : hole outside surface!
       yymsg(INFO, "Found a face bound");
       Add_Face_Outer_Bound((int)yyvsp[-10].d,yyvsp[-6].c,(int)yyvsp[-4].d,yyvsp[-2].i,0);
-    }
-    break;
-
-  case 30:
-#line 297 "Gmsh.y"
-    {
+    ;
+    break;}
+case 29:
+#line 291 "Gmsh.y"
+{
       Add_Oriented_Edge((int)yyvsp[-14].d,yyvsp[-10].c,(int)yyvsp[-4].d,yyvsp[-2].i);
-    }
-    break;
-
-  case 31:
-#line 301 "Gmsh.y"
-    {
+    ;
+    break;}
+case 30:
+#line 295 "Gmsh.y"
+{
       Add_Edge_Loop((int)yyvsp[-8].d,yyvsp[-4].c,yyvsp[-2].l);
-    }
-    break;
-
-  case 32:
-#line 306 "Gmsh.y"
-    {
+    ;
+    break;}
+case 31:
+#line 300 "Gmsh.y"
+{
       Add_Advanced_Face((int)yyvsp[-12].d,yyvsp[-8].c,yyvsp[-6].l,(int)yyvsp[-4].d,yyvsp[-2].i);
-    }
-    break;
-
-  case 33:
-#line 310 "Gmsh.y"
-    {
+    ;
+    break;}
+case 32:
+#line 304 "Gmsh.y"
+{
       Add_Vertex_Point((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d);
-    }
-    break;
-
-  case 34:
-#line 314 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 35:
-#line 318 "Gmsh.y"
-    {
+    ;
+    break;}
+case 33:
+#line 308 "Gmsh.y"
+{
+    ;
+    break;}
+case 34:
+#line 312 "Gmsh.y"
+{
       Add_Axis2_Placement3D  ( (int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d);
-    }
-    break;
-
-  case 36:
-#line 322 "Gmsh.y"
-    {
+    ;
+    break;}
+case 35:
+#line 316 "Gmsh.y"
+{
       Add_Direction((int)yyvsp[-8].d , yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]);
-    }
-    break;
-
-  case 37:
-#line 326 "Gmsh.y"
-    {
+    ;
+    break;}
+case 36:
+#line 320 "Gmsh.y"
+{
       Add_Plane((int)yyvsp[-8].d,yyvsp[-4].c,(int)yyvsp[-2].d);
-    }
-    break;
-
-  case 38:
-#line 330 "Gmsh.y"
-    {
+    ;
+    break;}
+case 37:
+#line 324 "Gmsh.y"
+{
       Add_Line ((int)yyvsp[-10].d, yyvsp[-6].c , (int) yyvsp[-4].d, (int)yyvsp[-2].d);
-    }
-    break;
-
-  case 39:
-#line 334 "Gmsh.y"
-    {
+    ;
+    break;}
+case 38:
+#line 328 "Gmsh.y"
+{
       yymsg(INFO, "Found a closed shell");
       Add_Closed_Shell((int)yyvsp[-8].d, yyvsp[-4].c , yyvsp[-2].l);
-    }
-    break;
-
-  case 40:
+    ;
+    break;}
+case 39:
+#line 334 "Gmsh.y"
+{
+    ;
+    break;}
+case 40:
+#line 337 "Gmsh.y"
+{
+    ;
+    break;}
+case 41:
 #line 340 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 41:
-#line 343 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 42:
-#line 346 "Gmsh.y"
-    {
+{
       Add_Cylinder ((int)yyvsp[-10].d, yyvsp[-6].c , (int)yyvsp[-4].d, yyvsp[-2].d);
-    }
-    break;
-
-  case 43:
-#line 350 "Gmsh.y"
-    {
+    ;
+    break;}
+case 42:
+#line 344 "Gmsh.y"
+{
       Add_Cone ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d);
-    }
-    break;
-
-  case 44:
-#line 354 "Gmsh.y"
-    {
+    ;
+    break;}
+case 43:
+#line 348 "Gmsh.y"
+{
       Add_Torus ((int)yyvsp[-12].d, yyvsp[-8].c , (int)yyvsp[-6].d, yyvsp[-4].d,yyvsp[-2].d);
-    }
-    break;
-
-  case 45:
-#line 358 "Gmsh.y"
-    {
+    ;
+    break;}
+case 44:
+#line 352 "Gmsh.y"
+{
       Add_Circle((int) yyvsp[-10].d, yyvsp[-6].c, (int) yyvsp[-4].d, yyvsp[-2].d);
-    }
-    break;
-
-  case 46:
-#line 362 "Gmsh.y"
-    {
+    ;
+    break;}
+case 45:
+#line 356 "Gmsh.y"
+{
       Add_Ellipse((int) yyvsp[-12].d, yyvsp[-8].c, (int) yyvsp[-6].d, yyvsp[-4].d, yyvsp[-2].d);
-    }
-    break;
-
-  case 47:
-#line 367 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 48:
-#line 370 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 49:
-#line 374 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 50:
-#line 377 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 51:
+    ;
+    break;}
+case 46:
+#line 361 "Gmsh.y"
+{
+    ;
+    break;}
+case 47:
+#line 364 "Gmsh.y"
+{
+    ;
+    break;}
+case 48:
+#line 368 "Gmsh.y"
+{
+    ;
+    break;}
+case 49:
+#line 371 "Gmsh.y"
+{
+    ;
+    break;}
+case 50:
+#line 375 "Gmsh.y"
+{
+    ;
+    break;}
+case 51:
+#line 378 "Gmsh.y"
+{
+    ;
+    break;}
+case 52:
 #line 381 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 52:
-#line 384 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 53:
-#line 387 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 54:
-#line 395 "Gmsh.y"
-    {
-  }
-    break;
-
-  case 55:
-#line 398 "Gmsh.y"
-    {
+{
+    ;
+    break;}
+case 53:
+#line 389 "Gmsh.y"
+{
+  ;
+    break;}
+case 54:
+#line 392 "Gmsh.y"
+{
       yymsg(INFO, "Gmsh file format read");
-    }
-    break;
-
-  case 56:
+    ;
+    break;}
+case 55:
+#line 398 "Gmsh.y"
+{ return 1; ;
+    break;}
+case 56:
+#line 399 "Gmsh.y"
+{ return 1; ;
+    break;}
+case 57:
+#line 400 "Gmsh.y"
+{ return 1; ;
+    break;}
+case 58:
+#line 401 "Gmsh.y"
+{ return 1; ;
+    break;}
+case 59:
+#line 402 "Gmsh.y"
+{ return 1; ;
+    break;}
+case 60:
+#line 403 "Gmsh.y"
+{ return 1; ;
+    break;}
+case 61:
 #line 404 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 57:
+{ return 1; ;
+    break;}
+case 62:
 #line 405 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 58:
+{ return 1; ;
+    break;}
+case 63:
 #line 406 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 59:
+{ return 1; ;
+    break;}
+case 64:
 #line 407 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 60:
+{ return 1; ;
+    break;}
+case 65:
 #line 408 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 61:
+{ return 1; ;
+    break;}
+case 66:
 #line 409 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 62:
+{ return 1; ;
+    break;}
+case 67:
 #line 410 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 63:
-#line 411 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 64:
-#line 412 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 65:
-#line 413 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 66:
-#line 414 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 67:
+{ return 1; ;
+    break;}
+case 68:
 #line 415 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 68:
-#line 416 "Gmsh.y"
-    { return 1; }
-    break;
-
-  case 69:
-#line 421 "Gmsh.y"
-    {
-      Msg(DIRECT, yyvsp[-2].c);
-    }
-    break;
-
-  case 70:
-#line 425 "Gmsh.y"
-    {
+{
+      Msg(DIRECT, yyvsp[-2].c);
+    ;
+    break;}
+case 69:
+#line 419 "Gmsh.y"
+{
       i = PrintListOfDouble(yyvsp[-4].c,yyvsp[-2].l,tmpstring);
       if(i<0) 
 	yymsg(GERROR, "Too few arguments in Printf");
@@ -5658,457 +5001,391 @@ yyreduce:
       else
 	Msg(DIRECT, tmpstring);
       List_Delete(yyvsp[-2].l);
-    }
-    break;
-
-  case 71:
-#line 441 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 70:
+#line 435 "Gmsh.y"
+{ 
       if(!strcmp(yyvsp[-5].c, "View")) EndView(View, 1, yyname, yyvsp[-4].c); 
-    }
-    break;
-
-  case 72:
-#line 445 "Gmsh.y"
-    {
+    ;
+    break;}
+case 71:
+#line 439 "Gmsh.y"
+{
       if(!strcmp(yyvsp[-7].c, "View")) EndView(View, 1, yyname, yyvsp[-6].c);
-    }
-    break;
-
-  case 73:
-#line 452 "Gmsh.y"
-    {
+    ;
+    break;}
+case 72:
+#line 446 "Gmsh.y"
+{
       View = BeginView(1); 
-    }
-    break;
-
-  case 100:
-#line 485 "Gmsh.y"
-    { List_Add(View->SP, &yyvsp[0].d) ; }
-    break;
-
-  case 101:
-#line 487 "Gmsh.y"
-    { List_Add(View->SP, &yyvsp[0].d) ; }
-    break;
-
-  case 102:
-#line 492 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 99:
+#line 479 "Gmsh.y"
+{ List_Add(View->SP, &yyvsp[0].d) ; ;
+    break;}
+case 100:
+#line 481 "Gmsh.y"
+{ List_Add(View->SP, &yyvsp[0].d) ; ;
+    break;}
+case 101:
+#line 486 "Gmsh.y"
+{ 
       List_Add(View->SP, &yyvsp[-5].d); List_Add(View->SP, &yyvsp[-3].d);
       List_Add(View->SP, &yyvsp[-1].d);
-    }
-    break;
-
-  case 103:
-#line 497 "Gmsh.y"
-    {
+    ;
+    break;}
+case 102:
+#line 491 "Gmsh.y"
+{
       View->NbSP++ ;
-    }
-    break;
-
-  case 104:
-#line 504 "Gmsh.y"
-    { List_Add(View->VP, &yyvsp[0].d) ; }
-    break;
-
-  case 105:
-#line 506 "Gmsh.y"
-    { List_Add(View->VP, &yyvsp[0].d) ; }
-    break;
-
-  case 106:
-#line 511 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 103:
+#line 498 "Gmsh.y"
+{ List_Add(View->VP, &yyvsp[0].d) ; ;
+    break;}
+case 104:
+#line 500 "Gmsh.y"
+{ List_Add(View->VP, &yyvsp[0].d) ; ;
+    break;}
+case 105:
+#line 505 "Gmsh.y"
+{ 
       List_Add(View->VP, &yyvsp[-5].d); List_Add(View->VP, &yyvsp[-3].d);
       List_Add(View->VP, &yyvsp[-1].d); 
-    }
-    break;
-
-  case 107:
-#line 516 "Gmsh.y"
-    {
+    ;
+    break;}
+case 106:
+#line 510 "Gmsh.y"
+{
       View->NbVP++ ;
-    }
-    break;
-
-  case 108:
-#line 523 "Gmsh.y"
-    { List_Add(View->TP, &yyvsp[0].d) ; }
-    break;
-
-  case 109:
-#line 525 "Gmsh.y"
-    { List_Add(View->TP, &yyvsp[0].d) ; }
-    break;
-
-  case 110:
-#line 530 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 107:
+#line 517 "Gmsh.y"
+{ List_Add(View->TP, &yyvsp[0].d) ; ;
+    break;}
+case 108:
+#line 519 "Gmsh.y"
+{ List_Add(View->TP, &yyvsp[0].d) ; ;
+    break;}
+case 109:
+#line 524 "Gmsh.y"
+{ 
       List_Add(View->TP, &yyvsp[-5].d); List_Add(View->TP, &yyvsp[-3].d);
       List_Add(View->TP, &yyvsp[-1].d);
-    }
-    break;
-
-  case 111:
-#line 535 "Gmsh.y"
-    {
+    ;
+    break;}
+case 110:
+#line 529 "Gmsh.y"
+{
       View->NbTP++ ;
-    }
-    break;
-
-  case 112:
-#line 542 "Gmsh.y"
-    { List_Add(View->SL, &yyvsp[0].d) ; }
-    break;
-
-  case 113:
+    ;
+    break;}
+case 111:
+#line 536 "Gmsh.y"
+{ List_Add(View->SL, &yyvsp[0].d) ; ;
+    break;}
+case 112:
+#line 538 "Gmsh.y"
+{ List_Add(View->SL, &yyvsp[0].d) ; ;
+    break;}
+case 113:
 #line 544 "Gmsh.y"
-    { List_Add(View->SL, &yyvsp[0].d) ; }
-    break;
-
-  case 114:
-#line 550 "Gmsh.y"
-    { 
+{ 
       List_Add(View->SL, &yyvsp[-11].d); List_Add(View->SL, &yyvsp[-5].d);
       List_Add(View->SL, &yyvsp[-9].d); List_Add(View->SL, &yyvsp[-3].d);
       List_Add(View->SL, &yyvsp[-7].d); List_Add(View->SL, &yyvsp[-1].d);
-    }
-    break;
-
-  case 115:
-#line 556 "Gmsh.y"
-    {
+    ;
+    break;}
+case 114:
+#line 550 "Gmsh.y"
+{
       View->NbSL++ ;
-    }
-    break;
-
-  case 116:
-#line 563 "Gmsh.y"
-    { List_Add(View->VL, &yyvsp[0].d) ; }
-    break;
-
-  case 117:
+    ;
+    break;}
+case 115:
+#line 557 "Gmsh.y"
+{ List_Add(View->VL, &yyvsp[0].d) ; ;
+    break;}
+case 116:
+#line 559 "Gmsh.y"
+{ List_Add(View->VL, &yyvsp[0].d) ; ;
+    break;}
+case 117:
 #line 565 "Gmsh.y"
-    { List_Add(View->VL, &yyvsp[0].d) ; }
-    break;
-
-  case 118:
-#line 571 "Gmsh.y"
-    { 
+{ 
       List_Add(View->VL, &yyvsp[-11].d); List_Add(View->VL, &yyvsp[-5].d);
       List_Add(View->VL, &yyvsp[-9].d); List_Add(View->VL, &yyvsp[-3].d);
       List_Add(View->VL, &yyvsp[-7].d); List_Add(View->VL, &yyvsp[-1].d);
-    }
-    break;
-
-  case 119:
-#line 577 "Gmsh.y"
-    {
+    ;
+    break;}
+case 118:
+#line 571 "Gmsh.y"
+{
       View->NbVL++ ;
-    }
-    break;
-
-  case 120:
-#line 584 "Gmsh.y"
-    { List_Add(View->TL, &yyvsp[0].d) ; }
-    break;
-
-  case 121:
+    ;
+    break;}
+case 119:
+#line 578 "Gmsh.y"
+{ List_Add(View->TL, &yyvsp[0].d) ; ;
+    break;}
+case 120:
+#line 580 "Gmsh.y"
+{ List_Add(View->TL, &yyvsp[0].d) ; ;
+    break;}
+case 121:
 #line 586 "Gmsh.y"
-    { List_Add(View->TL, &yyvsp[0].d) ; }
-    break;
-
-  case 122:
-#line 592 "Gmsh.y"
-    { 
+{ 
       List_Add(View->TL, &yyvsp[-11].d); List_Add(View->TL, &yyvsp[-5].d);
       List_Add(View->TL, &yyvsp[-9].d); List_Add(View->TL, &yyvsp[-3].d);
       List_Add(View->TL, &yyvsp[-7].d); List_Add(View->TL, &yyvsp[-1].d);
-    }
-    break;
-
-  case 123:
-#line 598 "Gmsh.y"
-    {
+    ;
+    break;}
+case 122:
+#line 592 "Gmsh.y"
+{
       View->NbTL++ ;
-    }
-    break;
-
-  case 124:
-#line 605 "Gmsh.y"
-    { List_Add(View->ST, &yyvsp[0].d) ; }
-    break;
-
-  case 125:
-#line 607 "Gmsh.y"
-    { List_Add(View->ST, &yyvsp[0].d) ; }
-    break;
-
-  case 126:
-#line 614 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 123:
+#line 599 "Gmsh.y"
+{ List_Add(View->ST, &yyvsp[0].d) ; ;
+    break;}
+case 124:
+#line 601 "Gmsh.y"
+{ List_Add(View->ST, &yyvsp[0].d) ; ;
+    break;}
+case 125:
+#line 608 "Gmsh.y"
+{ 
       List_Add(View->ST, &yyvsp[-17].d); List_Add(View->ST, &yyvsp[-11].d);
       List_Add(View->ST, &yyvsp[-5].d);
       List_Add(View->ST, &yyvsp[-15].d); List_Add(View->ST, &yyvsp[-9].d);
       List_Add(View->ST, &yyvsp[-3].d);
       List_Add(View->ST, &yyvsp[-13].d); List_Add(View->ST, &yyvsp[-7].d);
       List_Add(View->ST, &yyvsp[-1].d);
-    }
-    break;
-
-  case 127:
-#line 623 "Gmsh.y"
-    {
+    ;
+    break;}
+case 126:
+#line 617 "Gmsh.y"
+{
       View->NbST++ ;
-    }
-    break;
-
-  case 128:
-#line 630 "Gmsh.y"
-    { List_Add(View->VT, &yyvsp[0].d) ; }
-    break;
-
-  case 129:
-#line 632 "Gmsh.y"
-    { List_Add(View->VT, &yyvsp[0].d) ; }
-    break;
-
-  case 130:
-#line 639 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 127:
+#line 624 "Gmsh.y"
+{ List_Add(View->VT, &yyvsp[0].d) ; ;
+    break;}
+case 128:
+#line 626 "Gmsh.y"
+{ List_Add(View->VT, &yyvsp[0].d) ; ;
+    break;}
+case 129:
+#line 633 "Gmsh.y"
+{ 
       List_Add(View->VT, &yyvsp[-17].d); List_Add(View->VT, &yyvsp[-11].d);
       List_Add(View->VT, &yyvsp[-5].d);
       List_Add(View->VT, &yyvsp[-15].d); List_Add(View->VT, &yyvsp[-9].d);
       List_Add(View->VT, &yyvsp[-3].d);
       List_Add(View->VT, &yyvsp[-13].d); List_Add(View->VT, &yyvsp[-7].d);
       List_Add(View->VT, &yyvsp[-1].d);
-    }
-    break;
-
-  case 131:
-#line 648 "Gmsh.y"
-    {
+    ;
+    break;}
+case 130:
+#line 642 "Gmsh.y"
+{
       View->NbVT++ ;
-    }
-    break;
-
-  case 132:
-#line 655 "Gmsh.y"
-    { List_Add(View->TT, &yyvsp[0].d) ; }
-    break;
-
-  case 133:
-#line 657 "Gmsh.y"
-    { List_Add(View->TT, &yyvsp[0].d) ; }
-    break;
-
-  case 134:
-#line 664 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 131:
+#line 649 "Gmsh.y"
+{ List_Add(View->TT, &yyvsp[0].d) ; ;
+    break;}
+case 132:
+#line 651 "Gmsh.y"
+{ List_Add(View->TT, &yyvsp[0].d) ; ;
+    break;}
+case 133:
+#line 658 "Gmsh.y"
+{ 
       List_Add(View->TT, &yyvsp[-17].d); List_Add(View->TT, &yyvsp[-11].d);
       List_Add(View->TT, &yyvsp[-5].d);
       List_Add(View->TT, &yyvsp[-15].d); List_Add(View->TT, &yyvsp[-9].d);
       List_Add(View->TT, &yyvsp[-3].d);
       List_Add(View->TT, &yyvsp[-13].d); List_Add(View->TT, &yyvsp[-7].d);
       List_Add(View->TT, &yyvsp[-1].d);
-    }
-    break;
-
-  case 135:
-#line 673 "Gmsh.y"
-    {
+    ;
+    break;}
+case 134:
+#line 667 "Gmsh.y"
+{
       View->NbTT++ ;
-    }
-    break;
-
-  case 136:
-#line 680 "Gmsh.y"
-    { List_Add(View->SQ, &yyvsp[0].d) ; }
-    break;
-
-  case 137:
-#line 682 "Gmsh.y"
-    { List_Add(View->SQ, &yyvsp[0].d) ; }
-    break;
-
-  case 138:
-#line 690 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 135:
+#line 674 "Gmsh.y"
+{ List_Add(View->SQ, &yyvsp[0].d) ; ;
+    break;}
+case 136:
+#line 676 "Gmsh.y"
+{ List_Add(View->SQ, &yyvsp[0].d) ; ;
+    break;}
+case 137:
+#line 684 "Gmsh.y"
+{ 
       List_Add(View->SQ, &yyvsp[-23].d);  List_Add(View->SQ, &yyvsp[-17].d);
       List_Add(View->SQ, &yyvsp[-11].d); List_Add(View->SQ, &yyvsp[-5].d);
       List_Add(View->SQ, &yyvsp[-21].d);  List_Add(View->SQ, &yyvsp[-15].d);
       List_Add(View->SQ, &yyvsp[-9].d); List_Add(View->SQ, &yyvsp[-3].d);
       List_Add(View->SQ, &yyvsp[-19].d);  List_Add(View->SQ, &yyvsp[-13].d);
       List_Add(View->SQ, &yyvsp[-7].d); List_Add(View->SQ, &yyvsp[-1].d);
-    }
-    break;
-
-  case 139:
-#line 699 "Gmsh.y"
-    {
+    ;
+    break;}
+case 138:
+#line 693 "Gmsh.y"
+{
       View->NbSQ++ ;
-    }
-    break;
-
-  case 140:
-#line 706 "Gmsh.y"
-    { List_Add(View->VQ, &yyvsp[0].d) ; }
-    break;
-
-  case 141:
-#line 708 "Gmsh.y"
-    { List_Add(View->VQ, &yyvsp[0].d) ; }
-    break;
-
-  case 142:
-#line 716 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 139:
+#line 700 "Gmsh.y"
+{ List_Add(View->VQ, &yyvsp[0].d) ; ;
+    break;}
+case 140:
+#line 702 "Gmsh.y"
+{ List_Add(View->VQ, &yyvsp[0].d) ; ;
+    break;}
+case 141:
+#line 710 "Gmsh.y"
+{ 
       List_Add(View->VQ, &yyvsp[-23].d);  List_Add(View->VQ, &yyvsp[-17].d);
       List_Add(View->VQ, &yyvsp[-11].d); List_Add(View->VQ, &yyvsp[-5].d);
       List_Add(View->VQ, &yyvsp[-21].d);  List_Add(View->VQ, &yyvsp[-15].d);
       List_Add(View->VQ, &yyvsp[-9].d); List_Add(View->VQ, &yyvsp[-3].d);
       List_Add(View->VQ, &yyvsp[-19].d);  List_Add(View->VQ, &yyvsp[-13].d);
       List_Add(View->VQ, &yyvsp[-7].d); List_Add(View->VQ, &yyvsp[-1].d);
-    }
-    break;
-
-  case 143:
-#line 725 "Gmsh.y"
-    {
+    ;
+    break;}
+case 142:
+#line 719 "Gmsh.y"
+{
       View->NbVQ++ ;
-    }
-    break;
-
-  case 144:
-#line 732 "Gmsh.y"
-    { List_Add(View->TQ, &yyvsp[0].d) ; }
-    break;
-
-  case 145:
-#line 734 "Gmsh.y"
-    { List_Add(View->TQ, &yyvsp[0].d) ; }
-    break;
-
-  case 146:
-#line 742 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 143:
+#line 726 "Gmsh.y"
+{ List_Add(View->TQ, &yyvsp[0].d) ; ;
+    break;}
+case 144:
+#line 728 "Gmsh.y"
+{ List_Add(View->TQ, &yyvsp[0].d) ; ;
+    break;}
+case 145:
+#line 736 "Gmsh.y"
+{ 
       List_Add(View->TQ, &yyvsp[-23].d);  List_Add(View->TQ, &yyvsp[-17].d);
       List_Add(View->TQ, &yyvsp[-11].d); List_Add(View->TQ, &yyvsp[-5].d);
       List_Add(View->TQ, &yyvsp[-21].d);  List_Add(View->TQ, &yyvsp[-15].d);
       List_Add(View->TQ, &yyvsp[-9].d); List_Add(View->TQ, &yyvsp[-3].d);
       List_Add(View->TQ, &yyvsp[-19].d);  List_Add(View->TQ, &yyvsp[-13].d);
       List_Add(View->TQ, &yyvsp[-7].d); List_Add(View->TQ, &yyvsp[-1].d);
-    }
-    break;
-
-  case 147:
-#line 751 "Gmsh.y"
-    {
+    ;
+    break;}
+case 146:
+#line 745 "Gmsh.y"
+{
       View->NbTQ++ ;
-    }
-    break;
-
-  case 148:
-#line 758 "Gmsh.y"
-    { List_Add(View->SS, &yyvsp[0].d) ; }
-    break;
-
-  case 149:
-#line 760 "Gmsh.y"
-    { List_Add(View->SS, &yyvsp[0].d) ; }
-    break;
-
-  case 150:
-#line 768 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 147:
+#line 752 "Gmsh.y"
+{ List_Add(View->SS, &yyvsp[0].d) ; ;
+    break;}
+case 148:
+#line 754 "Gmsh.y"
+{ List_Add(View->SS, &yyvsp[0].d) ; ;
+    break;}
+case 149:
+#line 762 "Gmsh.y"
+{ 
       List_Add(View->SS, &yyvsp[-23].d);  List_Add(View->SS, &yyvsp[-17].d);
       List_Add(View->SS, &yyvsp[-11].d); List_Add(View->SS, &yyvsp[-5].d);
       List_Add(View->SS, &yyvsp[-21].d);  List_Add(View->SS, &yyvsp[-15].d);
       List_Add(View->SS, &yyvsp[-9].d); List_Add(View->SS, &yyvsp[-3].d);
       List_Add(View->SS, &yyvsp[-19].d);  List_Add(View->SS, &yyvsp[-13].d);
       List_Add(View->SS, &yyvsp[-7].d); List_Add(View->SS, &yyvsp[-1].d);
-    }
-    break;
-
-  case 151:
-#line 777 "Gmsh.y"
-    {
+    ;
+    break;}
+case 150:
+#line 771 "Gmsh.y"
+{
       View->NbSS++ ;
-    }
-    break;
-
-  case 152:
-#line 784 "Gmsh.y"
-    { List_Add(View->VS, &yyvsp[0].d) ; }
-    break;
-
-  case 153:
-#line 786 "Gmsh.y"
-    { List_Add(View->VS, &yyvsp[0].d) ; }
-    break;
-
-  case 154:
-#line 794 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 151:
+#line 778 "Gmsh.y"
+{ List_Add(View->VS, &yyvsp[0].d) ; ;
+    break;}
+case 152:
+#line 780 "Gmsh.y"
+{ List_Add(View->VS, &yyvsp[0].d) ; ;
+    break;}
+case 153:
+#line 788 "Gmsh.y"
+{ 
       List_Add(View->VS, &yyvsp[-23].d);  List_Add(View->VS, &yyvsp[-17].d);
       List_Add(View->VS, &yyvsp[-11].d); List_Add(View->VS, &yyvsp[-5].d);
       List_Add(View->VS, &yyvsp[-21].d);  List_Add(View->VS, &yyvsp[-15].d);
       List_Add(View->VS, &yyvsp[-9].d); List_Add(View->VS, &yyvsp[-3].d);
       List_Add(View->VS, &yyvsp[-19].d);  List_Add(View->VS, &yyvsp[-13].d);
       List_Add(View->VS, &yyvsp[-7].d); List_Add(View->VS, &yyvsp[-1].d);
-    }
-    break;
-
-  case 155:
-#line 803 "Gmsh.y"
-    {
+    ;
+    break;}
+case 154:
+#line 797 "Gmsh.y"
+{
       View->NbVS++ ;
-    }
-    break;
-
-  case 156:
-#line 810 "Gmsh.y"
-    { List_Add(View->TS, &yyvsp[0].d) ; }
-    break;
-
-  case 157:
-#line 812 "Gmsh.y"
-    { List_Add(View->TS, &yyvsp[0].d) ; }
-    break;
-
-  case 158:
-#line 820 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 155:
+#line 804 "Gmsh.y"
+{ List_Add(View->TS, &yyvsp[0].d) ; ;
+    break;}
+case 156:
+#line 806 "Gmsh.y"
+{ List_Add(View->TS, &yyvsp[0].d) ; ;
+    break;}
+case 157:
+#line 814 "Gmsh.y"
+{ 
       List_Add(View->TS, &yyvsp[-23].d);  List_Add(View->TS, &yyvsp[-17].d);
       List_Add(View->TS, &yyvsp[-11].d); List_Add(View->TS, &yyvsp[-5].d);
       List_Add(View->TS, &yyvsp[-21].d);  List_Add(View->TS, &yyvsp[-15].d);
       List_Add(View->TS, &yyvsp[-9].d); List_Add(View->TS, &yyvsp[-3].d);
       List_Add(View->TS, &yyvsp[-19].d);  List_Add(View->TS, &yyvsp[-13].d);
       List_Add(View->TS, &yyvsp[-7].d); List_Add(View->TS, &yyvsp[-1].d);
-    }
-    break;
-
-  case 159:
-#line 829 "Gmsh.y"
-    {
+    ;
+    break;}
+case 158:
+#line 823 "Gmsh.y"
+{
       View->NbTS++ ;
-    }
-    break;
-
-  case 160:
-#line 836 "Gmsh.y"
-    { List_Add(View->SH, &yyvsp[0].d) ; }
-    break;
-
-  case 161:
-#line 838 "Gmsh.y"
-    { List_Add(View->SH, &yyvsp[0].d) ; }
-    break;
-
-  case 162:
-#line 850 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 159:
+#line 830 "Gmsh.y"
+{ List_Add(View->SH, &yyvsp[0].d) ; ;
+    break;}
+case 160:
+#line 832 "Gmsh.y"
+{ List_Add(View->SH, &yyvsp[0].d) ; ;
+    break;}
+case 161:
+#line 844 "Gmsh.y"
+{ 
       List_Add(View->SH, &yyvsp[-47].d);  List_Add(View->SH, &yyvsp[-41].d);
       List_Add(View->SH, &yyvsp[-35].d); List_Add(View->SH, &yyvsp[-29].d);
       List_Add(View->SH, &yyvsp[-23].d); List_Add(View->SH, &yyvsp[-17].d);
@@ -6121,29 +5398,25 @@ yyreduce:
       List_Add(View->SH, &yyvsp[-31].d); List_Add(View->SH, &yyvsp[-25].d);
       List_Add(View->SH, &yyvsp[-19].d); List_Add(View->SH, &yyvsp[-13].d);
       List_Add(View->SH, &yyvsp[-7].d); List_Add(View->SH, &yyvsp[-1].d);
-    }
-    break;
-
-  case 163:
-#line 865 "Gmsh.y"
-    {
+    ;
+    break;}
+case 162:
+#line 859 "Gmsh.y"
+{
       View->NbSH++ ;
-    }
-    break;
-
-  case 164:
-#line 872 "Gmsh.y"
-    { List_Add(View->VH, &yyvsp[0].d) ; }
-    break;
-
-  case 165:
-#line 874 "Gmsh.y"
-    { List_Add(View->VH, &yyvsp[0].d) ; }
-    break;
-
-  case 166:
-#line 886 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 163:
+#line 866 "Gmsh.y"
+{ List_Add(View->VH, &yyvsp[0].d) ; ;
+    break;}
+case 164:
+#line 868 "Gmsh.y"
+{ List_Add(View->VH, &yyvsp[0].d) ; ;
+    break;}
+case 165:
+#line 880 "Gmsh.y"
+{ 
       List_Add(View->VH, &yyvsp[-47].d);  List_Add(View->VH, &yyvsp[-41].d);
       List_Add(View->VH, &yyvsp[-35].d); List_Add(View->VH, &yyvsp[-29].d);
       List_Add(View->VH, &yyvsp[-23].d); List_Add(View->VH, &yyvsp[-17].d);
@@ -6156,29 +5429,25 @@ yyreduce:
       List_Add(View->VH, &yyvsp[-31].d); List_Add(View->VH, &yyvsp[-25].d);
       List_Add(View->VH, &yyvsp[-19].d); List_Add(View->VH, &yyvsp[-13].d);
       List_Add(View->VH, &yyvsp[-7].d); List_Add(View->VH, &yyvsp[-1].d);
-    }
-    break;
-
-  case 167:
-#line 901 "Gmsh.y"
-    {
+    ;
+    break;}
+case 166:
+#line 895 "Gmsh.y"
+{
       View->NbVH++ ;
-    }
-    break;
-
-  case 168:
-#line 908 "Gmsh.y"
-    { List_Add(View->TH, &yyvsp[0].d) ; }
-    break;
-
-  case 169:
-#line 910 "Gmsh.y"
-    { List_Add(View->TH, &yyvsp[0].d) ; }
-    break;
-
-  case 170:
-#line 922 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 167:
+#line 902 "Gmsh.y"
+{ List_Add(View->TH, &yyvsp[0].d) ; ;
+    break;}
+case 168:
+#line 904 "Gmsh.y"
+{ List_Add(View->TH, &yyvsp[0].d) ; ;
+    break;}
+case 169:
+#line 916 "Gmsh.y"
+{ 
       List_Add(View->TH, &yyvsp[-47].d);  List_Add(View->TH, &yyvsp[-41].d);
       List_Add(View->TH, &yyvsp[-35].d); List_Add(View->TH, &yyvsp[-29].d);
       List_Add(View->TH, &yyvsp[-23].d); List_Add(View->TH, &yyvsp[-17].d);
@@ -6191,29 +5460,25 @@ yyreduce:
       List_Add(View->TH, &yyvsp[-31].d); List_Add(View->TH, &yyvsp[-25].d);
       List_Add(View->TH, &yyvsp[-19].d); List_Add(View->TH, &yyvsp[-13].d);
       List_Add(View->TH, &yyvsp[-7].d); List_Add(View->TH, &yyvsp[-1].d);
-    }
-    break;
-
-  case 171:
-#line 937 "Gmsh.y"
-    {
+    ;
+    break;}
+case 170:
+#line 931 "Gmsh.y"
+{
       View->NbTH++ ;
-    }
-    break;
-
-  case 172:
-#line 944 "Gmsh.y"
-    { List_Add(View->SI, &yyvsp[0].d) ; }
-    break;
-
-  case 173:
-#line 946 "Gmsh.y"
-    { List_Add(View->SI, &yyvsp[0].d) ; }
-    break;
-
-  case 174:
-#line 956 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 171:
+#line 938 "Gmsh.y"
+{ List_Add(View->SI, &yyvsp[0].d) ; ;
+    break;}
+case 172:
+#line 940 "Gmsh.y"
+{ List_Add(View->SI, &yyvsp[0].d) ; ;
+    break;}
+case 173:
+#line 950 "Gmsh.y"
+{ 
       List_Add(View->SI, &yyvsp[-35].d);  List_Add(View->SI, &yyvsp[-29].d);
       List_Add(View->SI, &yyvsp[-23].d); List_Add(View->SI, &yyvsp[-17].d);
       List_Add(View->SI, &yyvsp[-11].d); List_Add(View->SI, &yyvsp[-5].d);
@@ -6223,29 +5488,25 @@ yyreduce:
       List_Add(View->SI, &yyvsp[-31].d);  List_Add(View->SI, &yyvsp[-25].d);
       List_Add(View->SI, &yyvsp[-19].d); List_Add(View->SI, &yyvsp[-13].d);
       List_Add(View->SI, &yyvsp[-7].d); List_Add(View->SI, &yyvsp[-1].d);
-    }
-    break;
-
-  case 175:
-#line 968 "Gmsh.y"
-    {
+    ;
+    break;}
+case 174:
+#line 962 "Gmsh.y"
+{
       View->NbSI++ ;
-    }
-    break;
-
-  case 176:
-#line 975 "Gmsh.y"
-    { List_Add(View->VI, &yyvsp[0].d) ; }
-    break;
-
-  case 177:
-#line 977 "Gmsh.y"
-    { List_Add(View->VI, &yyvsp[0].d) ; }
-    break;
-
-  case 178:
-#line 987 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 175:
+#line 969 "Gmsh.y"
+{ List_Add(View->VI, &yyvsp[0].d) ; ;
+    break;}
+case 176:
+#line 971 "Gmsh.y"
+{ List_Add(View->VI, &yyvsp[0].d) ; ;
+    break;}
+case 177:
+#line 981 "Gmsh.y"
+{ 
       List_Add(View->VI, &yyvsp[-35].d);  List_Add(View->VI, &yyvsp[-29].d);
       List_Add(View->VI, &yyvsp[-23].d); List_Add(View->VI, &yyvsp[-17].d);
       List_Add(View->VI, &yyvsp[-11].d); List_Add(View->VI, &yyvsp[-5].d);
@@ -6255,29 +5516,25 @@ yyreduce:
       List_Add(View->VI, &yyvsp[-31].d);  List_Add(View->VI, &yyvsp[-25].d);
       List_Add(View->VI, &yyvsp[-19].d); List_Add(View->VI, &yyvsp[-13].d);
       List_Add(View->VI, &yyvsp[-7].d); List_Add(View->VI, &yyvsp[-1].d);
-    }
-    break;
-
-  case 179:
-#line 999 "Gmsh.y"
-    {
+    ;
+    break;}
+case 178:
+#line 993 "Gmsh.y"
+{
       View->NbVI++ ;
-    }
-    break;
-
-  case 180:
-#line 1006 "Gmsh.y"
-    { List_Add(View->TI, &yyvsp[0].d) ; }
-    break;
-
-  case 181:
-#line 1008 "Gmsh.y"
-    { List_Add(View->TI, &yyvsp[0].d) ; }
-    break;
-
-  case 182:
-#line 1018 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 179:
+#line 1000 "Gmsh.y"
+{ List_Add(View->TI, &yyvsp[0].d) ; ;
+    break;}
+case 180:
+#line 1002 "Gmsh.y"
+{ List_Add(View->TI, &yyvsp[0].d) ; ;
+    break;}
+case 181:
+#line 1012 "Gmsh.y"
+{ 
       List_Add(View->TI, &yyvsp[-35].d);  List_Add(View->TI, &yyvsp[-29].d);
       List_Add(View->TI, &yyvsp[-23].d); List_Add(View->TI, &yyvsp[-17].d);
       List_Add(View->TI, &yyvsp[-11].d); List_Add(View->TI, &yyvsp[-5].d);
@@ -6287,29 +5544,25 @@ yyreduce:
       List_Add(View->TI, &yyvsp[-31].d);  List_Add(View->TI, &yyvsp[-25].d);
       List_Add(View->TI, &yyvsp[-19].d); List_Add(View->TI, &yyvsp[-13].d);
       List_Add(View->TI, &yyvsp[-7].d); List_Add(View->TI, &yyvsp[-1].d);
-    }
-    break;
-
-  case 183:
-#line 1030 "Gmsh.y"
-    {
+    ;
+    break;}
+case 182:
+#line 1024 "Gmsh.y"
+{
       View->NbTI++ ;
-    }
-    break;
-
-  case 184:
-#line 1037 "Gmsh.y"
-    { List_Add(View->SY, &yyvsp[0].d) ; }
-    break;
-
-  case 185:
-#line 1039 "Gmsh.y"
-    { List_Add(View->SY, &yyvsp[0].d) ; }
-    break;
-
-  case 186:
-#line 1048 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 183:
+#line 1031 "Gmsh.y"
+{ List_Add(View->SY, &yyvsp[0].d) ; ;
+    break;}
+case 184:
+#line 1033 "Gmsh.y"
+{ List_Add(View->SY, &yyvsp[0].d) ; ;
+    break;}
+case 185:
+#line 1042 "Gmsh.y"
+{ 
       List_Add(View->SY, &yyvsp[-29].d);  List_Add(View->SY, &yyvsp[-23].d);
       List_Add(View->SY, &yyvsp[-17].d); List_Add(View->SY, &yyvsp[-11].d);
       List_Add(View->SY, &yyvsp[-5].d);
@@ -6319,29 +5572,25 @@ yyreduce:
       List_Add(View->SY, &yyvsp[-25].d);  List_Add(View->SY, &yyvsp[-19].d);
       List_Add(View->SY, &yyvsp[-13].d); List_Add(View->SY, &yyvsp[-7].d);
       List_Add(View->SY, &yyvsp[-1].d);
-    }
-    break;
-
-  case 187:
-#line 1060 "Gmsh.y"
-    {
+    ;
+    break;}
+case 186:
+#line 1054 "Gmsh.y"
+{
       View->NbSY++ ;
-    }
-    break;
-
-  case 188:
-#line 1067 "Gmsh.y"
-    { List_Add(View->VY, &yyvsp[0].d) ; }
-    break;
-
-  case 189:
-#line 1069 "Gmsh.y"
-    { List_Add(View->VY, &yyvsp[0].d) ; }
-    break;
-
-  case 190:
-#line 1078 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 187:
+#line 1061 "Gmsh.y"
+{ List_Add(View->VY, &yyvsp[0].d) ; ;
+    break;}
+case 188:
+#line 1063 "Gmsh.y"
+{ List_Add(View->VY, &yyvsp[0].d) ; ;
+    break;}
+case 189:
+#line 1072 "Gmsh.y"
+{ 
       List_Add(View->VY, &yyvsp[-29].d);  List_Add(View->VY, &yyvsp[-23].d);
       List_Add(View->VY, &yyvsp[-17].d); List_Add(View->VY, &yyvsp[-11].d);
       List_Add(View->VY, &yyvsp[-5].d);
@@ -6351,29 +5600,25 @@ yyreduce:
       List_Add(View->VY, &yyvsp[-25].d);  List_Add(View->VY, &yyvsp[-19].d);
       List_Add(View->VY, &yyvsp[-13].d); List_Add(View->VY, &yyvsp[-7].d);
       List_Add(View->VY, &yyvsp[-1].d);
-    }
-    break;
-
-  case 191:
-#line 1090 "Gmsh.y"
-    {
+    ;
+    break;}
+case 190:
+#line 1084 "Gmsh.y"
+{
       View->NbVY++ ;
-    }
-    break;
-
-  case 192:
-#line 1097 "Gmsh.y"
-    { List_Add(View->TY, &yyvsp[0].d) ; }
-    break;
-
-  case 193:
-#line 1099 "Gmsh.y"
-    { List_Add(View->TY, &yyvsp[0].d) ; }
-    break;
-
-  case 194:
-#line 1108 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 191:
+#line 1091 "Gmsh.y"
+{ List_Add(View->TY, &yyvsp[0].d) ; ;
+    break;}
+case 192:
+#line 1093 "Gmsh.y"
+{ List_Add(View->TY, &yyvsp[0].d) ; ;
+    break;}
+case 193:
+#line 1102 "Gmsh.y"
+{ 
       List_Add(View->TY, &yyvsp[-29].d);  List_Add(View->TY, &yyvsp[-23].d);
       List_Add(View->TY, &yyvsp[-17].d); List_Add(View->TY, &yyvsp[-11].d);
       List_Add(View->TY, &yyvsp[-5].d);
@@ -6383,120 +5628,103 @@ yyreduce:
       List_Add(View->TY, &yyvsp[-25].d);  List_Add(View->TY, &yyvsp[-19].d);
       List_Add(View->TY, &yyvsp[-13].d); List_Add(View->TY, &yyvsp[-7].d);
       List_Add(View->TY, &yyvsp[-1].d);
-    }
-    break;
-
-  case 195:
-#line 1120 "Gmsh.y"
-    {
+    ;
+    break;}
+case 194:
+#line 1114 "Gmsh.y"
+{
       View->NbTY++ ;
-    }
-    break;
-
-  case 196:
-#line 1127 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 195:
+#line 1121 "Gmsh.y"
+{ 
       for(i=0; i<(int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]) ; 
       Free(yyvsp[0].c);
-    }
-    break;
-
-  case 197:
-#line 1132 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 196:
+#line 1126 "Gmsh.y"
+{ 
       for(i=0; i<(int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T2C, &yyvsp[0].c[i]) ; 
       Free(yyvsp[0].c);
-    }
-    break;
-
-  case 198:
-#line 1140 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 197:
+#line 1134 "Gmsh.y"
+{ 
       List_Add(View->T2D, &yyvsp[-5].d); List_Add(View->T2D, &yyvsp[-3].d);
       List_Add(View->T2D, &yyvsp[-1].d); 
       d = List_Nbr(View->T2C);
       List_Add(View->T2D, &d); 
-    }
-    break;
-
-  case 199:
-#line 1147 "Gmsh.y"
-    {
+    ;
+    break;}
+case 198:
+#line 1141 "Gmsh.y"
+{
       View->NbT2++ ;
-    }
-    break;
-
-  case 200:
-#line 1154 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 199:
+#line 1148 "Gmsh.y"
+{ 
       for(i=0; i<(int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]) ; 
       Free(yyvsp[0].c);
-    }
-    break;
-
-  case 201:
-#line 1159 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 200:
+#line 1153 "Gmsh.y"
+{ 
       for(i=0; i<(int)strlen(yyvsp[0].c)+1; i++) List_Add(View->T3C, &yyvsp[0].c[i]) ; 
       Free(yyvsp[0].c);
-    }
-    break;
-
-  case 202:
-#line 1167 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 201:
+#line 1161 "Gmsh.y"
+{ 
       List_Add(View->T3D, &yyvsp[-7].d); List_Add(View->T3D, &yyvsp[-5].d);
       List_Add(View->T3D, &yyvsp[-3].d); List_Add(View->T3D, &yyvsp[-1].d); 
       d = List_Nbr(View->T3C);
       List_Add(View->T3D, &d); 
-    }
-    break;
-
-  case 203:
-#line 1174 "Gmsh.y"
-    {
+    ;
+    break;}
+case 202:
+#line 1168 "Gmsh.y"
+{
       View->NbT3++ ;
-    }
-    break;
-
-  case 204:
-#line 1183 "Gmsh.y"
-    { yyval.i = 0 ; }
-    break;
-
-  case 205:
-#line 1184 "Gmsh.y"
-    { yyval.i = 1 ; }
-    break;
-
-  case 206:
+    ;
+    break;}
+case 203:
+#line 1177 "Gmsh.y"
+{ yyval.i = 0 ; ;
+    break;}
+case 204:
+#line 1178 "Gmsh.y"
+{ yyval.i = 1 ; ;
+    break;}
+case 205:
+#line 1179 "Gmsh.y"
+{ yyval.i = 2 ; ;
+    break;}
+case 206:
+#line 1180 "Gmsh.y"
+{ yyval.i = 3 ; ;
+    break;}
+case 207:
+#line 1181 "Gmsh.y"
+{ yyval.i = 4 ; ;
+    break;}
+case 208:
 #line 1185 "Gmsh.y"
-    { yyval.i = 2 ; }
-    break;
-
-  case 207:
+{ yyval.i = 1 ; ;
+    break;}
+case 209:
 #line 1186 "Gmsh.y"
-    { yyval.i = 3 ; }
-    break;
-
-  case 208:
-#line 1187 "Gmsh.y"
-    { yyval.i = 4 ; }
-    break;
-
-  case 209:
-#line 1191 "Gmsh.y"
-    { yyval.i = 1 ; }
-    break;
-
-  case 210:
-#line 1192 "Gmsh.y"
-    { yyval.i = -1 ; }
-    break;
-
-  case 211:
-#line 1200 "Gmsh.y"
-    {
+{ yyval.i = -1 ; ;
+    break;}
+case 210:
+#line 1194 "Gmsh.y"
+{
       TheSymbol.Name = yyvsp[-3].c;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){
 	TheSymbol.val = List_Create(1,1,sizeof(double));
@@ -6520,12 +5748,11 @@ yyreduce:
 	  break;
 	}
       }
-    }
-    break;
-
-  case 212:
-#line 1227 "Gmsh.y"
-    {
+    ;
+    break;}
+case 211:
+#line 1221 "Gmsh.y"
+{
       TheSymbol.Name = yyvsp[-6].c;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){
 	TheSymbol.val = List_Create(5,5,sizeof(double));
@@ -6556,12 +5783,11 @@ yyreduce:
 	    yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-6].c, (int)yyvsp[-4].d) ;
 	}
       }
-    }
-    break;
-
-  case 213:
-#line 1261 "Gmsh.y"
-    {
+    ;
+    break;}
+case 212:
+#line 1255 "Gmsh.y"
+{
       if(List_Nbr(yyvsp[-5].l) != List_Nbr(yyvsp[-1].l))
 	yymsg(GERROR, "Incompatible array dimensions in affectation");
       else{
@@ -6605,12 +5831,11 @@ yyreduce:
       }
       List_Delete(yyvsp[-5].l);
       List_Delete(yyvsp[-1].l);
-    }
-    break;
-
-  case 214:
-#line 1308 "Gmsh.y"
-    {
+    ;
+    break;}
+case 213:
+#line 1302 "Gmsh.y"
+{
       TheSymbol.Name = yyvsp[-5].c;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))){
 	TheSymbol.val = List_Create(5,5,sizeof(double));
@@ -6622,23 +5847,21 @@ yyreduce:
 	List_Copy(yyvsp[-1].l, pSymbol->val);
       }
       List_Delete(yyvsp[-1].l);
-    }
-    break;
-
-  case 215:
-#line 1323 "Gmsh.y"
-    {
+    ;
+    break;}
+case 214:
+#line 1317 "Gmsh.y"
+{
       TheSymbol.Name = yyvsp[-2].c;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
 	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-2].c) ; 
       else
 	*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[-1].i; 
-    }
-    break;
-
-  case 216:
-#line 1332 "Gmsh.y"
-    {
+    ;
+    break;}
+case 215:
+#line 1326 "Gmsh.y"
+{
       TheSymbol.Name = yyvsp[-5].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols)))
 	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-5].c) ; 
@@ -6648,12 +5871,11 @@ yyreduce:
 	else
 	  yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-5].c, (int)yyvsp[-3].d) ;
       }
-    }
-    break;
-
-  case 217:
-#line 1347 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 216:
+#line 1341 "Gmsh.y"
+{ 
       if(!(pStrCat = Get_StringOptionCategory(yyvsp[-5].c)))
 	yymsg(GERROR, "Unknown string option class '%s'", yyvsp[-5].c);
       else{
@@ -6662,12 +5884,11 @@ yyreduce:
 	else
 	  pStrOpt(0,GMSH_SET|GMSH_GUI,yyvsp[-1].c) ;
       }
-    }
-    break;
-
-  case 218:
-#line 1359 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 217:
+#line 1353 "Gmsh.y"
+{ 
       if(!(pStrCat = Get_StringOptionCategory(yyvsp[-8].c)))
 	yymsg(GERROR, "Unknown string option class '%s'", yyvsp[-8].c);
       else{
@@ -6676,12 +5897,11 @@ yyreduce:
 	else
 	  pStrOpt((int)yyvsp[-6].d,GMSH_SET|GMSH_GUI,yyvsp[-1].c) ;
       }
-    }
-    break;
-
-  case 219:
-#line 1373 "Gmsh.y"
-    {
+    ;
+    break;}
+case 218:
+#line 1367 "Gmsh.y"
+{
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c)))
 	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-5].c);
       else{
@@ -6701,12 +5921,11 @@ yyreduce:
 	  pNumOpt(0,GMSH_SET|GMSH_GUI, d) ;
 	}
       }
-    }
-    break;
-
-  case 220:
-#line 1396 "Gmsh.y"
-    {
+    ;
+    break;}
+case 219:
+#line 1390 "Gmsh.y"
+{
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-8].c)))
 	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-8].c);
       else{
@@ -6727,12 +5946,11 @@ yyreduce:
 	  pNumOpt((int)yyvsp[-6].d,GMSH_SET|GMSH_GUI,d) ;
 	}
       }
-    }
-    break;
-
-  case 221:
-#line 1420 "Gmsh.y"
-    {
+    ;
+    break;}
+case 220:
+#line 1414 "Gmsh.y"
+{
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-4].c)))
 	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-4].c);
       else{
@@ -6741,12 +5959,11 @@ yyreduce:
 	else
 	  pNumOpt(0,GMSH_SET|GMSH_GUI,pNumOpt(0,GMSH_GET,0)+yyvsp[-1].i) ;
       }
-    }
-    break;
-
-  case 222:
-#line 1432 "Gmsh.y"
-    {
+    ;
+    break;}
+case 221:
+#line 1426 "Gmsh.y"
+{
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-7].c)))
 	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-7].c);
       else{
@@ -6755,12 +5972,11 @@ yyreduce:
 	else
 	  pNumOpt((int)yyvsp[-5].d,GMSH_SET|GMSH_GUI,pNumOpt((int)yyvsp[-5].d,GMSH_GET,0)+yyvsp[-1].i) ;
       }
-    }
-    break;
-
-  case 223:
-#line 1446 "Gmsh.y"
-    {
+    ;
+    break;}
+case 222:
+#line 1440 "Gmsh.y"
+{
       if(!(pColCat = Get_ColorOptionCategory(yyvsp[-7].c)))
 	yymsg(GERROR, "Unknown color option class '%s'", yyvsp[-7].c);
       else{
@@ -6769,12 +5985,11 @@ yyreduce:
 	else
 	  pColOpt(0,GMSH_SET|GMSH_GUI,yyvsp[-1].u) ;
       }
-    }
-    break;
-
-  case 224:
-#line 1458 "Gmsh.y"
-    {
+    ;
+    break;}
+case 223:
+#line 1452 "Gmsh.y"
+{
       if(!(pColCat = Get_ColorOptionCategory(yyvsp[-10].c)))
 	yymsg(GERROR, "Unknown color option class '%s'", yyvsp[-10].c);
       else{
@@ -6783,12 +5998,11 @@ yyreduce:
 	else
 	  pColOpt((int)yyvsp[-8].d,GMSH_SET|GMSH_GUI,yyvsp[-1].u) ;
       }
-    }
-    break;
-
-  case 225:
-#line 1472 "Gmsh.y"
-    {
+    ;
+    break;}
+case 224:
+#line 1466 "Gmsh.y"
+{
       GmshColorTable *ct = Get_ColorTable(0);
       if(!ct)
 	yymsg(GERROR, "View[%d] does not exist", 0);
@@ -6805,12 +6019,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-1].l);
-    }
-    break;
-
-  case 226:
-#line 1492 "Gmsh.y"
-    {
+    ;
+    break;}
+case 225:
+#line 1486 "Gmsh.y"
+{
       GmshColorTable *ct = Get_ColorTable((int)yyvsp[-6].d);
       if(!ct)
 	yymsg(GERROR, "View[%d] does not exist", (int)yyvsp[-6].d);
@@ -6827,12 +6040,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-1].l);
-    }
-    break;
-
-  case 227:
-#line 1514 "Gmsh.y"
-    {
+    ;
+    break;}
+case 226:
+#line 1508 "Gmsh.y"
+{
       if(CTX.default_plugins){
 	try {
 	  GMSH_PluginManager::Instance()->SetPluginOption(yyvsp[-6].c,yyvsp[-3].c,yyvsp[-1].d); 
@@ -6841,12 +6053,11 @@ yyreduce:
 	  yymsg(WARNING, "Unknown option '%s' or plugin '%s'",yyvsp[-3].c,yyvsp[-6].c);
 	}
       }
-    }
-    break;
-
-  case 228:
-#line 1526 "Gmsh.y"
-    {
+    ;
+    break;}
+case 227:
+#line 1520 "Gmsh.y"
+{
       if(CTX.default_plugins){
 	try {
 	  GMSH_PluginManager::Instance()->SetPluginOption(yyvsp[-6].c,yyvsp[-3].c,yyvsp[-1].c); 
@@ -6855,30 +6066,27 @@ yyreduce:
 	  yymsg(WARNING, "Unknown option '%s' or plugin '%s'",yyvsp[-3].c,yyvsp[-6].c);
 	}
       }
-    }
-    break;
-
-  case 229:
-#line 1546 "Gmsh.y"
-    {
+    ;
+    break;}
+case 228:
+#line 1540 "Gmsh.y"
+{
       Cdbpts101((int)yyvsp[-4].d,yyvsp[-1].v[0],yyvsp[-1].v[1],yyvsp[-1].v[2],yyvsp[-1].v[3],yyvsp[-1].v[4]);
       yyval.s.Type = MSH_POINT;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 230:
-#line 1553 "Gmsh.y"
-    {
+    ;
+    break;}
+case 229:
+#line 1547 "Gmsh.y"
+{
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_POINT,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_POINT;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 231:
-#line 1559 "Gmsh.y"
-    {
+    ;
+    break;}
+case 230:
+#line 1553 "Gmsh.y"
+{
       Vertex *v;
       Attractor *a;
       double p;
@@ -6895,12 +6103,11 @@ yyreduce:
 	  List_Add(THEM->Metric->Attractors,&a);
         }
       }
-    }
-    break;
-
-  case 232:
-#line 1578 "Gmsh.y"
-    {
+    ;
+    break;}
+case 231:
+#line 1572 "Gmsh.y"
+{
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
 	List_Read(yyvsp[-3].l,i,&d);
 	Vertex *v = FindPoint((int)d,THEM);
@@ -6909,30 +6116,27 @@ yyreduce:
 	else
 	  v->lc = yyvsp[-1].d;
       }
-    }
-    break;
-
-  case 233:
-#line 1592 "Gmsh.y"
-    {
+    ;
+    break;}
+case 232:
+#line 1586 "Gmsh.y"
+{
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_LINE,1,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_LINE;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 234:
-#line 1598 "Gmsh.y"
-    {
+    ;
+    break;}
+case 233:
+#line 1592 "Gmsh.y"
+{
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_SPLN,3,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_SPLN;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 235:
-#line 1604 "Gmsh.y"
-    {
+    ;
+    break;}
+case 234:
+#line 1598 "Gmsh.y"
+{
       Curve *c;
       Attractor *a;
       double p;
@@ -6949,30 +6153,27 @@ yyreduce:
 	  List_Add(THEM->Metric->Attractors,&a);
         }
       }
-    }
-    break;
-
-  case 236:
-#line 1623 "Gmsh.y"
-    {
+    ;
+    break;}
+case 235:
+#line 1617 "Gmsh.y"
+{
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_CIRC,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_CIRC ;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 237:
-#line 1629 "Gmsh.y"
-    {
+    ;
+    break;}
+case 236:
+#line 1623 "Gmsh.y"
+{
       Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_ELLI,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
       yyval.s.Type = MSH_SEGM_ELLI ;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 238:
-#line 1635 "Gmsh.y"
-    {
+    ;
+    break;}
+case 237:
+#line 1629 "Gmsh.y"
+{
       List_T *temp;
       int i,j;
       double d;
@@ -6986,39 +6187,35 @@ yyreduce:
       List_Delete(temp);
       yyval.s.Type = MSH_SEGM_CIRC ;
       yyval.s.Num  = (int)yyvsp[-6].d;
-    }
-    break;
-
-  case 239:
-#line 1652 "Gmsh.y"
-    {
+    ;
+    break;}
+case 238:
+#line 1646 "Gmsh.y"
+{
       Cdbseg101((int)yyvsp[-14].d,MSH_SEGM_PARAMETRIC,2,NULL,NULL,-1,-1,yyvsp[-10].d,yyvsp[-8].d,yyvsp[-6].c,yyvsp[-4].c,yyvsp[-2].c);
       yyval.s.Type = MSH_SEGM_PARAMETRIC ;
       yyval.s.Num  = (int)yyvsp[-14].d;
-    }
-    break;
-
-  case 240:
-#line 1658 "Gmsh.y"
-    {
+    ;
+    break;}
+case 239:
+#line 1652 "Gmsh.y"
+{
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_LINE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_LINE;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 241:
-#line 1664 "Gmsh.y"
-    {
+    ;
+    break;}
+case 240:
+#line 1658 "Gmsh.y"
+{
       yyval.s.Type = MSH_SEGM_LOOP;
       Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Num = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 242:
-#line 1670 "Gmsh.y"
-    {
+    ;
+    break;}
+case 241:
+#line 1664 "Gmsh.y"
+{
       if(List_Nbr(yyvsp[-1].l) > 3){
 	Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_BSPLN,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
 	yyval.s.Type = MSH_SEGM_BSPLN;
@@ -7027,12 +6224,11 @@ yyreduce:
       else
 	yymsg(GERROR, "Too few control points for BSpline %d (%d < 4)", (int)yyvsp[-4].d, 
 	      List_Nbr(yyvsp[-1].l));
-    }
-    break;
-
-  case 243:
-#line 1681 "Gmsh.y"
-    {
+    ;
+    break;}
+case 242:
+#line 1675 "Gmsh.y"
+{
       if(List_Nbr(yyvsp[-1].l) > 3){
 	Cdbseg101((int)yyvsp[-4].d,MSH_SEGM_BEZIER,2,yyvsp[-1].l,NULL,-1,-1,0.,1.,NULL,NULL,NULL);
 	yyval.s.Type = MSH_SEGM_BSPLN;
@@ -7041,12 +6237,11 @@ yyreduce:
       else
 	yymsg(GERROR, "Too few control points for Bezier %d (%d < 4)", (int)yyvsp[-4].d, 
 	      List_Nbr(yyvsp[-1].l));
-    }
-    break;
-
-  case 244:
-#line 1692 "Gmsh.y"
-    {
+    ;
+    break;}
+case 243:
+#line 1686 "Gmsh.y"
+{
       List_T *Temp;
       int i;
       double d;
@@ -7066,21 +6261,19 @@ yyreduce:
 	AddCurveInDataBase ((int)yyvsp[-8].d,MSH_SEGM_NURBS,(int)yyvsp[-1].d,Temp,yyvsp[-3].l,-1,-1,0.,1.);
 	List_Delete(Temp);
       }
-    }
-    break;
-
-  case 245:
-#line 1717 "Gmsh.y"
-    {
+    ;
+    break;}
+case 244:
+#line 1711 "Gmsh.y"
+{
       Cdbz101((int)yyvsp[-4].d,MSH_SURF_PLAN,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_SURF_PLAN;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 246:
-#line 1723 "Gmsh.y"
-    {
+    ;
+    break;}
+case 245:
+#line 1717 "Gmsh.y"
+{
       Surface *s,*support;
       support = FindSurface((int)yyvsp[-4].d,THEM);
       if(!support)
@@ -7097,12 +6290,11 @@ yyreduce:
 	  yyval.s.Num  = (int)yyvsp[-8].d;
 	}
       }
-    }
-    break;
-
-  case 247:
-#line 1742 "Gmsh.y"
-    {
+    ;
+    break;}
+case 246:
+#line 1736 "Gmsh.y"
+{
       List_Read(yyvsp[-1].l,0,&d);
       i = (int)d;
       EdgeLoop *el = FindEdgeLoop(i,THEM);
@@ -7121,135 +6313,118 @@ yyreduce:
 	Cdbz101((int)yyvsp[-4].d,yyval.s.Type,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
 	yyval.s.Num = (int)yyvsp[-4].d;
       }
-    }
-    break;
-
-  case 248:
-#line 1765 "Gmsh.y"
-    {
+    ;
+    break;}
+case 247:
+#line 1759 "Gmsh.y"
+{
       CreateNurbsSurface ( (int) yyvsp[-16].d , (int)yyvsp[-4].d , (int)yyvsp[-2].d  , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l);
       yyval.s.Type  = MSH_SURF_NURBS;
       yyval.s.Num = (int)yyvsp[-16].d;
-    }
-    break;
-
-  case 249:
-#line 1773 "Gmsh.y"
-    {
+    ;
+    break;}
+case 248:
+#line 1767 "Gmsh.y"
+{
       CreateNurbsSurfaceSupport ((int)yyvsp[-16].d, (int) yyvsp[-4].d , (int) yyvsp[-2].d , yyvsp[-13].l, yyvsp[-10].l, yyvsp[-8].l);
-    }
-    break;
-
-  case 250:
-#line 1777 "Gmsh.y"
-    {
+    ;
+    break;}
+case 249:
+#line 1771 "Gmsh.y"
+{
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_SURFACE,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_SURFACE;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 251:
-#line 1783 "Gmsh.y"
-    {
+    ;
+    break;}
+case 250:
+#line 1777 "Gmsh.y"
+{
       Cdbz101((int)yyvsp[-4].d,MSH_SURF_LOOP,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_SURF_LOOP;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 252:
-#line 1792 "Gmsh.y"
-    {
+    ;
+    break;}
+case 251:
+#line 1786 "Gmsh.y"
+{
       Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_VOLUME;
       yyval.s.Num  = (int)yyvsp[-4].d;      
-    }
-    break;
-
-  case 253:
-#line 1798 "Gmsh.y"
-    {
+    ;
+    break;}
+case 252:
+#line 1792 "Gmsh.y"
+{
       Cdbz101((int)yyvsp[-4].d,MSH_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_VOLUME;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 254:
-#line 1804 "Gmsh.y"
-    {
+    ;
+    break;}
+case 253:
+#line 1798 "Gmsh.y"
+{
       Cdbz101((int)yyvsp[-4].d,MSH_PHYSICAL_VOLUME,0,0,0,0,0,NULL,yyvsp[-1].l,NULL);
       yyval.s.Type = MSH_PHYSICAL_VOLUME;
       yyval.s.Num  = (int)yyvsp[-4].d;
-    }
-    break;
-
-  case 255:
-#line 1815 "Gmsh.y"
-    {
+    ;
+    break;}
+case 254:
+#line 1809 "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 256:
-#line 1820 "Gmsh.y"
-    {
+    ;
+    break;}
+case 255:
+#line 1814 "Gmsh.y"
+{
       RotateShapes(yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].d,yyvsp[-1].l);
       yyval.l = yyvsp[-1].l;
-    }
-    break;
-
-  case 257:
-#line 1825 "Gmsh.y"
-    {
+    ;
+    break;}
+case 256:
+#line 1819 "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 258:
-#line 1830 "Gmsh.y"
-    {
+    ;
+    break;}
+case 257:
+#line 1824 "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 259:
-#line 1837 "Gmsh.y"
-    { yyval.l = yyvsp[0].l; }
-    break;
-
-  case 260:
+    ;
+    break;}
+case 258:
+#line 1831 "Gmsh.y"
+{ yyval.l = yyvsp[0].l; ;
+    break;}
+case 259:
+#line 1832 "Gmsh.y"
+{ yyval.l = yyvsp[0].l; ;
+    break;}
+case 260:
+#line 1833 "Gmsh.y"
+{ yyval.l = yyvsp[0].l; ;
+    break;}
+case 261:
 #line 1838 "Gmsh.y"
-    { yyval.l = yyvsp[0].l; }
-    break;
-
-  case 261:
-#line 1839 "Gmsh.y"
-    { yyval.l = yyvsp[0].l; }
-    break;
-
-  case 262:
-#line 1844 "Gmsh.y"
-    {
+{
       yyval.l = List_Create(3,3,sizeof(Shape));
-    }
-    break;
-
-  case 263:
-#line 1848 "Gmsh.y"
-    {
+    ;
+    break;}
+case 262:
+#line 1842 "Gmsh.y"
+{
       List_Add(yyval.l,&yyvsp[0].s);
       yyval.l = yyvsp[-1].l;
-    }
-    break;
-
-  case 264:
-#line 1853 "Gmsh.y"
-    {
+    ;
+    break;}
+case 263:
+#line 1847 "Gmsh.y"
+{
       for(i=0;i<List_Nbr(yyvsp[-2].l);i++){
 	List_Read(yyvsp[-2].l, i, &d);
 	TheShape.Num = (int)d;
@@ -7262,12 +6437,11 @@ yyreduce:
 	}
       }
       yyval.l = yyvsp[-5].l;
-    }
-    break;
-
-  case 265:
-#line 1868 "Gmsh.y"
-    {
+    ;
+    break;}
+case 264:
+#line 1862 "Gmsh.y"
+{
       for(i=0;i<List_Nbr(yyvsp[-2].l);i++){
 	List_Read(yyvsp[-2].l, i, &d);
 	TheShape.Num = (int)d;
@@ -7280,12 +6454,11 @@ yyreduce:
 	}
       }
       yyval.l = yyvsp[-5].l;
-    }
-    break;
-
-  case 266:
-#line 1883 "Gmsh.y"
-    {
+    ;
+    break;}
+case 265:
+#line 1877 "Gmsh.y"
+{
       for(i=0;i<List_Nbr(yyvsp[-2].l);i++){
 	List_Read(yyvsp[-2].l, i, &d);
 	TheShape.Num = (int)d;
@@ -7298,12 +6471,11 @@ yyreduce:
 	}
       }
       yyval.l = yyvsp[-5].l;
-    }
-    break;
-
-  case 267:
-#line 1903 "Gmsh.y"
-    {
+    ;
+    break;}
+case 266:
+#line 1897 "Gmsh.y"
+{
       yyval.l = List_Create(3,3,sizeof(Shape));
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
 	List_Read (yyvsp[-1].l,i,&TheShape);
@@ -7311,53 +6483,47 @@ yyreduce:
 	TheShape.Num = j;
 	List_Add(yyval.l,&TheShape);
       }
-    }
-    break;
-
-  case 268:
-#line 1913 "Gmsh.y"
-    {
+    ;
+    break;}
+case 267:
+#line 1907 "Gmsh.y"
+{
       if(!strcmp(yyvsp[-4].c, "View")) DuplicateView((int)yyvsp[-2].d,0);
-    }
-    break;
-
-  case 269:
-#line 1923 "Gmsh.y"
-    {
+    ;
+    break;}
+case 268:
+#line 1917 "Gmsh.y"
+{
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
 	List_Read (yyvsp[-1].l,i,&TheShape);
 	DeleteShape(TheShape.Type,TheShape.Num);
       }
-    }
-    break;
-
-  case 270:
-#line 1930 "Gmsh.y"
-    {
+    ;
+    break;}
+case 269:
+#line 1924 "Gmsh.y"
+{
       if(!strcmp(yyvsp[-4].c, "View")) FreeView((int)yyvsp[-2].d);
-    }
-    break;
-
-  case 271:
-#line 1934 "Gmsh.y"
-    {
+    ;
+    break;}
+case 270:
+#line 1928 "Gmsh.y"
+{
       Init_Mesh(THEM, 1);
-    }
-    break;
-
-  case 272:
-#line 1943 "Gmsh.y"
-    {
+    ;
+    break;}
+case 271:
+#line 1937 "Gmsh.y"
+{
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
 	List_Read (yyvsp[-1].l,i,&TheShape);
 	ColorShape(TheShape.Type,TheShape.Num,yyvsp[-3].u);
       }
-    }
-    break;
-
-  case 273:
-#line 1955 "Gmsh.y"
-    {
+    ;
+    break;}
+case 272:
+#line 1949 "Gmsh.y"
+{
       if(!strcmp(yyvsp[-2].c, "Include")){
 
 	yyinTab[RecursionLevel++] = yyin;
@@ -7391,12 +6557,12 @@ yyreduce:
 
       }
       else if(!strcmp(yyvsp[-2].c, "Print")){
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
 	if(!CTX.batch) CreateOutputFile(yyvsp[-1].c, CTX.print.format);
 #endif
       }
       else if(!strcmp(yyvsp[-2].c, "Save")){
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
 	CreateOutputFile(yyvsp[-1].c, CTX.mesh.format);
 #endif
       }
@@ -7424,18 +6590,16 @@ yyreduce:
       }
       else if(!strcmp(yyvsp[-2].c, "System")){
 	
-	Msg(INFO, "Executing system call \"%s\"", yyvsp[-1].c);
 	SystemCall(yyvsp[-1].c);
 
       }
       else
 	yymsg(GERROR, "Unknown command '%s'", yyvsp[-2].c);
-    }
-    break;
-
-  case 274:
-#line 2030 "Gmsh.y"
-    {
+    ;
+    break;}
+case 273:
+#line 2023 "Gmsh.y"
+{
       if(!strcmp(yyvsp[-2].c, "Sleep")){
 
 	long sleep_time = GetTime();
@@ -7447,36 +6611,31 @@ yyreduce:
       else if(!strcmp(yyvsp[-2].c, "Mesh")){
 
 	//Maillage_Dimension_0(THEM);
-	//mai3d(THEM,(int));
+	//mai3d(THEM,(int)$2);
 	yymsg(GERROR, "Mesh directives are not (yet) allowed in scripts");
 
       }
       else
 	yymsg(GERROR, "Unknown command '%s'", yyvsp[-2].c);
-    }
-    break;
-
-  case 275:
-#line 2050 "Gmsh.y"
-    {
-#ifndef _NOPLUGIN
+    ;
+    break;}
+case 274:
+#line 2043 "Gmsh.y"
+{
     if(CTX.default_plugins)
       GMSH_PluginManager::Instance()->Action(yyvsp[-4].c,yyvsp[-1].c,0); 
-#endif
-   }
-    break;
-
-  case 276:
-#line 2057 "Gmsh.y"
-    {
-      exit(0);
-    }
-    break;
-
-  case 277:
-#line 2061 "Gmsh.y"
-    {
-#ifndef _BLACKBOX
+   ;
+    break;}
+case 275:
+#line 2048 "Gmsh.y"
+{
+      exit(0);
+    ;
+    break;}
+case 276:
+#line 2052 "Gmsh.y"
+{
+#if defined(HAVE_FLTK)
       if(!CTX.batch){ // we're in interactive mode
 	if(Tree_Nbr(THEM->Points) != Last_NumberOfPoints){
 	  Last_NumberOfPoints = Tree_Nbr(THEM->Points);
@@ -7489,12 +6648,11 @@ yyreduce:
 	}
       }
 #endif
-    }
-    break;
-
-  case 278:
-#line 2083 "Gmsh.y"
-    {
+    ;
+    break;}
+case 277:
+#line 2074 "Gmsh.y"
+{
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ;
       LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ;
@@ -7502,12 +6660,11 @@ yyreduce:
       fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
       yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
       ImbricatedLoop++;
-    }
-    break;
-
-  case 279:
-#line 2093 "Gmsh.y"
-    {
+    ;
+    break;}
+case 278:
+#line 2084 "Gmsh.y"
+{
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ;
       LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ;
@@ -7515,12 +6672,11 @@ yyreduce:
       fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
       yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
       ImbricatedLoop++;
-    }
-    break;
-
-  case 280:
-#line 2103 "Gmsh.y"
-    {
+    ;
+    break;}
+case 279:
+#line 2094 "Gmsh.y"
+{
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-3].d ;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-1].d ;
       LoopControlVariablesTab[ImbricatedLoop][2] = 1.0 ;
@@ -7539,12 +6695,11 @@ yyreduce:
       fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
       yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
       ImbricatedLoop++;
-    }
-    break;
-
-  case 281:
-#line 2124 "Gmsh.y"
-    {
+    ;
+    break;}
+case 280:
+#line 2115 "Gmsh.y"
+{
       LoopControlVariablesTab[ImbricatedLoop][0] = yyvsp[-5].d ;
       LoopControlVariablesTab[ImbricatedLoop][1] = yyvsp[-3].d ;
       LoopControlVariablesTab[ImbricatedLoop][2] = yyvsp[-1].d ;
@@ -7563,12 +6718,11 @@ yyreduce:
       fgetpos( yyin, &yyposImbricatedLoopsTab[ImbricatedLoop]);
       yylinenoImbricatedLoopsTab[ImbricatedLoop] = yylineno;
       ImbricatedLoop++;
-    }
-    break;
-
-  case 282:
-#line 2145 "Gmsh.y"
-    {
+    ;
+    break;}
+case 281:
+#line 2136 "Gmsh.y"
+{
       if(LoopControlVariablesTab[ImbricatedLoop-1][1] >  
 	 LoopControlVariablesTab[ImbricatedLoop-1][0]){
 	LoopControlVariablesTab[ImbricatedLoop-1][0] +=
@@ -7587,239 +6741,210 @@ yyreduce:
       else{
 	ImbricatedLoop--;
       }
-    }
-    break;
-
-  case 283:
-#line 2166 "Gmsh.y"
-    {
+    ;
+    break;}
+case 282:
+#line 2157 "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 284:
-#line 2172 "Gmsh.y"
-    {
+    ;
+    break;}
+case 283:
+#line 2163 "Gmsh.y"
+{
       if(!FunctionManager::Instance()->leaveFunction(&yyin,yyname,yylineno))
 	yymsg(GERROR, "Error while exiting function");
-    }
-    break;
-
-  case 285:
-#line 2177 "Gmsh.y"
-    {
+    ;
+    break;}
+case 284:
+#line 2168 "Gmsh.y"
+{
       if(!FunctionManager::Instance()->enterFunction(yyvsp[-1].c,&yyin,yyname,yylineno))
 	yymsg(GERROR, "Unknown function %s",yyvsp[-1].c);
-    }
-    break;
-
-  case 286:
-#line 2182 "Gmsh.y"
-    {
+    ;
+    break;}
+case 285:
+#line 2173 "Gmsh.y"
+{
       if(!yyvsp[-1].d) skip_until("If", "EndIf");
-    }
-    break;
-
-  case 287:
-#line 2186 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 288:
-#line 2198 "Gmsh.y"
-    {
+    ;
+    break;}
+case 286:
+#line 2177 "Gmsh.y"
+{
+    ;
+    break;}
+case 287:
+#line 2189 "Gmsh.y"
+{
       Curve *pc, *prc;
       Extrude_ProtudePoint(TRANSLATE,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],
 			   0.,0.,0.,0.,0.,0.,0.,
 			   &pc,&prc,NULL);
-    }
-    break;
-
-  case 289:
-#line 2205 "Gmsh.y"
-    {
+    ;
+    break;}
+case 288:
+#line 2196 "Gmsh.y"
+{
       Curve *pc, *prc;
       Extrude_ProtudePoint(ROTATE,(int)yyvsp[-8].d,0.,0.,0.,
 			   yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,
 			   &pc,&prc,NULL);
-    }
-    break;
-
-  case 290:
-#line 2212 "Gmsh.y"
-    {
+    ;
+    break;}
+case 289:
+#line 2203 "Gmsh.y"
+{
       Curve *pc, *prc;
       Extrude_ProtudePoint(TRANSLATE_ROTATE,(int)yyvsp[-10].d,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].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,
 			   &pc,&prc,NULL);
-    }
-    break;
-
-  case 291:
-#line 2222 "Gmsh.y"
-    {
+    ;
+    break;}
+case 290:
+#line 2213 "Gmsh.y"
+{
       Extrude_ProtudeCurve(TRANSLATE,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],
 			   0.,0.,0.,0.,0.,0.,0.,1,NULL);
-    }
-    break;
-
-  case 292:
-#line 2227 "Gmsh.y"
-    {
+    ;
+    break;}
+case 291:
+#line 2218 "Gmsh.y"
+{
       Extrude_ProtudeCurve(ROTATE,(int)yyvsp[-8].d,0.,0.,0.,
 			   yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,1,NULL);
-    }
-    break;
-
-  case 293:
-#line 2232 "Gmsh.y"
-    {
+    ;
+    break;}
+case 292:
+#line 2223 "Gmsh.y"
+{
       Extrude_ProtudeCurve(TRANSLATE_ROTATE,(int)yyvsp[-10].d,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].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,1,NULL);
-    }
-    break;
-
-  case 294:
-#line 2237 "Gmsh.y"
-    {
+    ;
+    break;}
+case 293:
+#line 2228 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    }
-    break;
-
-  case 295:
-#line 2242 "Gmsh.y"
-    {
+    ;
+    break;}
+case 294:
+#line 2233 "Gmsh.y"
+{
       Extrude_ProtudeCurve(TRANSLATE,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],
 			   0.,0.,0.,0.,0.,0.,0.,1,&extr);
-    }
-    break;
-
-  case 296:
-#line 2247 "Gmsh.y"
-    {
+    ;
+    break;}
+case 295:
+#line 2238 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    }
-    break;
-
-  case 297:
-#line 2252 "Gmsh.y"
-    {
+    ;
+    break;}
+case 296:
+#line 2243 "Gmsh.y"
+{
       Extrude_ProtudeCurve(ROTATE,(int)yyvsp[-12].d,0.,0.,0.,
 			   yyvsp[-10].v[0],yyvsp[-10].v[1],yyvsp[-10].v[2],yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].d,1,&extr);
-    }
-    break;
-
-  case 298:
-#line 2257 "Gmsh.y"
-    {
+    ;
+    break;}
+case 297:
+#line 2248 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    }
-    break;
-
-  case 299:
-#line 2262 "Gmsh.y"
-    {
+    ;
+    break;}
+case 298:
+#line 2253 "Gmsh.y"
+{
       Extrude_ProtudeCurve(TRANSLATE_ROTATE,(int)yyvsp[-14].d,yyvsp[-12].v[0],yyvsp[-12].v[1],yyvsp[-12].v[2],
 			   yyvsp[-10].v[0],yyvsp[-10].v[1],yyvsp[-10].v[2],yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].d,1,&extr);
-    }
-    break;
-
-  case 300:
-#line 2270 "Gmsh.y"
-    {
+    ;
+    break;}
+case 299:
+#line 2261 "Gmsh.y"
+{
       Extrude_ProtudeSurface(TRANSLATE,(int)yyvsp[-4].d,yyvsp[-2].v[0],yyvsp[-2].v[1],yyvsp[-2].v[2],
 			     0.,0.,0.,0.,0.,0.,0.,0,NULL);
-    }
-    break;
-
-  case 301:
-#line 2275 "Gmsh.y"
-    {
+    ;
+    break;}
+case 300:
+#line 2266 "Gmsh.y"
+{
       Extrude_ProtudeSurface(ROTATE,(int)yyvsp[-8].d,0.,0.,0.,
 			     yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL);
-    }
-    break;
-
-  case 302:
-#line 2280 "Gmsh.y"
-    {
+    ;
+    break;}
+case 301:
+#line 2271 "Gmsh.y"
+{
       Extrude_ProtudeSurface(TRANSLATE_ROTATE,(int)yyvsp[-10].d,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].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL);
-    }
-    break;
-
-  case 303:
-#line 2285 "Gmsh.y"
-    {
+    ;
+    break;}
+case 302:
+#line 2276 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    }
-    break;
-
-  case 304:
-#line 2290 "Gmsh.y"
-    {
+    ;
+    break;}
+case 303:
+#line 2281 "Gmsh.y"
+{
       int vol = NEWREG();
       Extrude_ProtudeSurface(TRANSLATE,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],
 			     0.,0.,0.,0.,0.,0.,0.,vol,&extr);
-    }
-    break;
-
-  case 305:
-#line 2296 "Gmsh.y"
-    {
+    ;
+    break;}
+case 304:
+#line 2287 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    }
-    break;
-
-  case 306:
-#line 2302 "Gmsh.y"
-    {
+    ;
+    break;}
+case 305:
+#line 2293 "Gmsh.y"
+{
       int vol = NEWREG();
       Extrude_ProtudeSurface(ROTATE,(int)yyvsp[-12].d,0.,0.,0.,
 			     yyvsp[-10].v[0],yyvsp[-10].v[1],yyvsp[-10].v[2],yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].d,vol,&extr);
-    }
-    break;
-
-  case 307:
-#line 2308 "Gmsh.y"
-    {
+    ;
+    break;}
+case 306:
+#line 2299 "Gmsh.y"
+{
       extr.mesh.ExtrudeMesh = false;
       extr.mesh.Recombine = false;
-    }
-    break;
-
-  case 308:
-#line 2314 "Gmsh.y"
-    {
+    ;
+    break;}
+case 307:
+#line 2305 "Gmsh.y"
+{
       int vol = NEWREG();
       Extrude_ProtudeSurface(TRANSLATE_ROTATE,(int)yyvsp[-14].d,yyvsp[-12].v[0],yyvsp[-12].v[1],yyvsp[-12].v[2],
 			     yyvsp[-10].v[0],yyvsp[-10].v[1],yyvsp[-10].v[2],yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].d,vol,&extr);
-    }
-    break;
-
-  case 309:
+    ;
+    break;}
+case 308:
+#line 2314 "Gmsh.y"
+{
+    ;
+    break;}
+case 309:
+#line 2317 "Gmsh.y"
+{
+    ;
+    break;}
+case 310:
 #line 2323 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 310:
-#line 2326 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 311:
-#line 2332 "Gmsh.y"
-    {
+{
       double d;
       extr.mesh.ExtrudeMesh = true;
       extr.mesh.NbLayer = List_Nbr(yyvsp[-6].l);
@@ -7843,12 +6968,11 @@ yyreduce:
       List_Delete(yyvsp[-6].l);
       List_Delete(yyvsp[-4].l);
       List_Delete(yyvsp[-2].l);
-    }
-    break;
-
-  case 312:
-#line 2358 "Gmsh.y"
-    {
+    ;
+    break;}
+case 311:
+#line 2349 "Gmsh.y"
+{
       double d;
       extr.mesh.ExtrudeMesh = true;
       extr.mesh.NbLayer = List_Nbr(yyvsp[-4].l);
@@ -7870,19 +6994,17 @@ yyreduce:
       }
       List_Delete(yyvsp[-4].l);
       List_Delete(yyvsp[-2].l);
-    }
-    break;
-
-  case 313:
-#line 2382 "Gmsh.y"
-    {
+    ;
+    break;}
+case 312:
+#line 2373 "Gmsh.y"
+{
       extr.mesh.Recombine = true;
-    }
-    break;
-
-  case 314:
-#line 2391 "Gmsh.y"
-    {
+    ;
+    break;}
+case 313:
+#line 2382 "Gmsh.y"
+{
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
 	List_Read(yyvsp[-3].l,i,&d);
@@ -7898,12 +7020,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-3].l);
-    }
-    break;
-
-  case 315:
-#line 2409 "Gmsh.y"
-    {
+    ;
+    break;}
+case 314:
+#line 2400 "Gmsh.y"
+{
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
 	List_Read(yyvsp[-6].l,i,&d);
@@ -7919,12 +7040,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-6].l);
-    }
-    break;
-
-  case 316:
-#line 2427 "Gmsh.y"
-    {
+    ;
+    break;}
+case 315:
+#line 2418 "Gmsh.y"
+{
       Curve *c;
       for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
 	List_Read(yyvsp[-6].l,i,&d);
@@ -7940,12 +7060,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-6].l);
-    }
-    break;
-
-  case 317:
-#line 2445 "Gmsh.y"
-    {
+    ;
+    break;}
+case 316:
+#line 2436 "Gmsh.y"
+{
       Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
       if(!s)
 	yymsg(WARNING, "Unknown Surface %d", (int)yyvsp[-4].d);
@@ -7965,12 +7084,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-1].l);
-    }
-    break;
-
-  case 318:
-#line 2467 "Gmsh.y"
-    {
+    ;
+    break;}
+case 317:
+#line 2458 "Gmsh.y"
+{
       Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
       if(!s)
 	yymsg(WARNING, "Unknown Surface %d", (int)yyvsp[-4].d);
@@ -7989,12 +7107,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-1].l);
-    }
-    break;
-
-  case 319:
-#line 2488 "Gmsh.y"
-    {
+    ;
+    break;}
+case 318:
+#line 2479 "Gmsh.y"
+{
       Volume *v = FindVolume((int)yyvsp[-4].d,THEM);
       if(!v)
 	yymsg(WARNING, "Unknown Volume %d", (int)yyvsp[-4].d);
@@ -8013,12 +7130,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-1].l);
-    }
-    break;
-
-  case 320:
-#line 2509 "Gmsh.y"
-    {
+    ;
+    break;}
+case 319:
+#line 2500 "Gmsh.y"
+{
       Surface *s;
       for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
 	List_Read(yyvsp[-3].l,i,&d);
@@ -8030,12 +7146,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-3].l);
-    }
-    break;
-
-  case 321:
-#line 2523 "Gmsh.y"
-    {
+    ;
+    break;}
+case 320:
+#line 2514 "Gmsh.y"
+{
       Surface *s;
       for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
 	List_Read(yyvsp[-1].l,i,&d);
@@ -8047,399 +7162,324 @@ yyreduce:
         }
       }
       List_Delete(yyvsp[-1].l);
-    }
-    break;
-
-  case 322:
-#line 2543 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 321:
+#line 2534 "Gmsh.y"
+{ 
       ReplaceAllDuplicates(THEM);
-    }
-    break;
-
-  case 323:
-#line 2547 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 322:
+#line 2538 "Gmsh.y"
+{ 
       IntersectAllSegmentsTogether();
-    }
-    break;
-
-  case 324:
+    ;
+    break;}
+case 323:
+#line 2547 "Gmsh.y"
+{yyval.i = 1;;
+    break;}
+case 324:
+#line 2548 "Gmsh.y"
+{yyval.i = 0;;
+    break;}
+case 325:
+#line 2549 "Gmsh.y"
+{yyval.i = -1;;
+    break;}
+case 326:
+#line 2550 "Gmsh.y"
+{yyval.i = -1;;
+    break;}
+case 327:
+#line 2551 "Gmsh.y"
+{yyval.i = -1;;
+    break;}
+case 328:
+#line 2555 "Gmsh.y"
+{ yyval.d = yyvsp[0].d;           ;
+    break;}
+case 329:
 #line 2556 "Gmsh.y"
-    {yyval.i = 1;}
-    break;
-
-  case 325:
+{ yyval.d = yyvsp[-1].d ;          ;
+    break;}
+case 330:
 #line 2557 "Gmsh.y"
-    {yyval.i = 0;}
-    break;
-
-  case 326:
+{ yyval.d = -yyvsp[0].d ;         ;
+    break;}
+case 331:
 #line 2558 "Gmsh.y"
-    {yyval.i = -1;}
-    break;
-
-  case 327:
+{ yyval.d = yyvsp[0].d;           ;
+    break;}
+case 332:
 #line 2559 "Gmsh.y"
-    {yyval.i = -1;}
-    break;
-
-  case 328:
+{ yyval.d = !yyvsp[0].d ;         ;
+    break;}
+case 333:
 #line 2560 "Gmsh.y"
-    {yyval.i = -1;}
-    break;
-
-  case 329:
+{ yyval.d = yyvsp[-2].d - yyvsp[0].d ;     ;
+    break;}
+case 334:
+#line 2561 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d + yyvsp[0].d ;     ;
+    break;}
+case 335:
+#line 2562 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d * yyvsp[0].d ;     ;
+    break;}
+case 336:
 #line 2564 "Gmsh.y"
-    { yyval.d = yyvsp[0].d;           }
-    break;
-
-  case 330:
-#line 2565 "Gmsh.y"
-    { yyval.d = yyvsp[-1].d ;          }
-    break;
-
-  case 331:
-#line 2566 "Gmsh.y"
-    { yyval.d = -yyvsp[0].d ;         }
-    break;
-
-  case 332:
-#line 2567 "Gmsh.y"
-    { yyval.d = yyvsp[0].d;           }
-    break;
-
-  case 333:
-#line 2568 "Gmsh.y"
-    { yyval.d = !yyvsp[0].d ;         }
-    break;
-
-  case 334:
-#line 2569 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d - yyvsp[0].d ;     }
-    break;
-
-  case 335:
-#line 2570 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d + yyvsp[0].d ;     }
-    break;
-
-  case 336:
-#line 2571 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d * yyvsp[0].d ;     }
-    break;
-
-  case 337:
-#line 2573 "Gmsh.y"
-    { 
+{ 
       if(!yyvsp[0].d)
 	yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d);
       else
 	yyval.d = yyvsp[-2].d / yyvsp[0].d ;     
-    }
-    break;
-
-  case 338:
+    ;
+    break;}
+case 337:
+#line 2570 "Gmsh.y"
+{ yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ;  ;
+    break;}
+case 338:
+#line 2571 "Gmsh.y"
+{ yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ;  ;
+    break;}
+case 339:
+#line 2572 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d < yyvsp[0].d ;     ;
+    break;}
+case 340:
+#line 2573 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d > yyvsp[0].d ;     ;
+    break;}
+case 341:
+#line 2574 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d <= yyvsp[0].d ;    ;
+    break;}
+case 342:
+#line 2575 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d >= yyvsp[0].d ;    ;
+    break;}
+case 343:
+#line 2576 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d == yyvsp[0].d ;    ;
+    break;}
+case 344:
+#line 2577 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d != yyvsp[0].d ;    ;
+    break;}
+case 345:
+#line 2578 "Gmsh.y"
+{ yyval.d = yyvsp[-2].d && yyvsp[0].d ;    ;
+    break;}
+case 346:
 #line 2579 "Gmsh.y"
-    { yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ;  }
-    break;
-
-  case 339:
+{ yyval.d = yyvsp[-2].d || yyvsp[0].d ;    ;
+    break;}
+case 347:
 #line 2580 "Gmsh.y"
-    { yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ;  }
-    break;
-
-  case 340:
+{ yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ;
+    break;}
+case 348:
 #line 2581 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d < yyvsp[0].d ;     }
-    break;
-
-  case 341:
+{ yyval.d = exp(yyvsp[-1].d);      ;
+    break;}
+case 349:
 #line 2582 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d > yyvsp[0].d ;     }
-    break;
-
-  case 342:
+{ yyval.d = log(yyvsp[-1].d);      ;
+    break;}
+case 350:
 #line 2583 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d <= yyvsp[0].d ;    }
-    break;
-
-  case 343:
+{ yyval.d = log10(yyvsp[-1].d);    ;
+    break;}
+case 351:
 #line 2584 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d >= yyvsp[0].d ;    }
-    break;
-
-  case 344:
+{ yyval.d = sqrt(yyvsp[-1].d);     ;
+    break;}
+case 352:
 #line 2585 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d == yyvsp[0].d ;    }
-    break;
-
-  case 345:
+{ yyval.d = sin(yyvsp[-1].d);      ;
+    break;}
+case 353:
 #line 2586 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d != yyvsp[0].d ;    }
-    break;
-
-  case 346:
+{ yyval.d = asin(yyvsp[-1].d);     ;
+    break;}
+case 354:
 #line 2587 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d && yyvsp[0].d ;    }
-    break;
-
-  case 347:
+{ yyval.d = cos(yyvsp[-1].d);      ;
+    break;}
+case 355:
 #line 2588 "Gmsh.y"
-    { yyval.d = yyvsp[-2].d || yyvsp[0].d ;    }
-    break;
-
-  case 348:
+{ yyval.d = acos(yyvsp[-1].d);     ;
+    break;}
+case 356:
 #line 2589 "Gmsh.y"
-    { yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; }
-    break;
-
-  case 349:
+{ yyval.d = tan(yyvsp[-1].d);      ;
+    break;}
+case 357:
 #line 2590 "Gmsh.y"
-    { yyval.d = exp(yyvsp[-1].d);      }
-    break;
-
-  case 350:
+{ yyval.d = atan(yyvsp[-1].d);     ;
+    break;}
+case 358:
 #line 2591 "Gmsh.y"
-    { yyval.d = log(yyvsp[-1].d);      }
-    break;
-
-  case 351:
+{ yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ;
+    break;}
+case 359:
 #line 2592 "Gmsh.y"
-    { yyval.d = log10(yyvsp[-1].d);    }
-    break;
-
-  case 352:
+{ yyval.d = sinh(yyvsp[-1].d);     ;
+    break;}
+case 360:
 #line 2593 "Gmsh.y"
-    { yyval.d = sqrt(yyvsp[-1].d);     }
-    break;
-
-  case 353:
+{ yyval.d = cosh(yyvsp[-1].d);     ;
+    break;}
+case 361:
 #line 2594 "Gmsh.y"
-    { yyval.d = sin(yyvsp[-1].d);      }
-    break;
-
-  case 354:
+{ yyval.d = tanh(yyvsp[-1].d);     ;
+    break;}
+case 362:
 #line 2595 "Gmsh.y"
-    { yyval.d = asin(yyvsp[-1].d);     }
-    break;
-
-  case 355:
+{ yyval.d = fabs(yyvsp[-1].d);     ;
+    break;}
+case 363:
 #line 2596 "Gmsh.y"
-    { yyval.d = cos(yyvsp[-1].d);      }
-    break;
-
-  case 356:
+{ yyval.d = floor(yyvsp[-1].d);    ;
+    break;}
+case 364:
 #line 2597 "Gmsh.y"
-    { yyval.d = acos(yyvsp[-1].d);     }
-    break;
-
-  case 357:
+{ yyval.d = ceil(yyvsp[-1].d);     ;
+    break;}
+case 365:
 #line 2598 "Gmsh.y"
-    { yyval.d = tan(yyvsp[-1].d);      }
-    break;
-
-  case 358:
+{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
+    break;}
+case 366:
 #line 2599 "Gmsh.y"
-    { yyval.d = atan(yyvsp[-1].d);     }
-    break;
-
-  case 359:
+{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
+    break;}
+case 367:
 #line 2600 "Gmsh.y"
-    { yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); }
-    break;
-
-  case 360:
+{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
+    break;}
+case 368:
 #line 2601 "Gmsh.y"
-    { yyval.d = sinh(yyvsp[-1].d);     }
-    break;
-
-  case 361:
-#line 2602 "Gmsh.y"
-    { yyval.d = cosh(yyvsp[-1].d);     }
-    break;
-
-  case 362:
+{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
+    break;}
+case 369:
 #line 2603 "Gmsh.y"
-    { yyval.d = tanh(yyvsp[-1].d);     }
-    break;
-
-  case 363:
+{ yyval.d = exp(yyvsp[-1].d);      ;
+    break;}
+case 370:
 #line 2604 "Gmsh.y"
-    { yyval.d = fabs(yyvsp[-1].d);     }
-    break;
-
-  case 364:
+{ yyval.d = log(yyvsp[-1].d);      ;
+    break;}
+case 371:
 #line 2605 "Gmsh.y"
-    { yyval.d = floor(yyvsp[-1].d);    }
-    break;
-
-  case 365:
+{ yyval.d = log10(yyvsp[-1].d);    ;
+    break;}
+case 372:
 #line 2606 "Gmsh.y"
-    { yyval.d = ceil(yyvsp[-1].d);     }
-    break;
-
-  case 366:
+{ yyval.d = sqrt(yyvsp[-1].d);     ;
+    break;}
+case 373:
 #line 2607 "Gmsh.y"
-    { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  }
-    break;
-
-  case 367:
+{ yyval.d = sin(yyvsp[-1].d);      ;
+    break;}
+case 374:
 #line 2608 "Gmsh.y"
-    { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  }
-    break;
-
-  case 368:
+{ yyval.d = asin(yyvsp[-1].d);     ;
+    break;}
+case 375:
 #line 2609 "Gmsh.y"
-    { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); }
-    break;
-
-  case 369:
+{ yyval.d = cos(yyvsp[-1].d);      ;
+    break;}
+case 376:
 #line 2610 "Gmsh.y"
-    { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; }
-    break;
-
-  case 370:
+{ yyval.d = acos(yyvsp[-1].d);     ;
+    break;}
+case 377:
+#line 2611 "Gmsh.y"
+{ yyval.d = tan(yyvsp[-1].d);      ;
+    break;}
+case 378:
 #line 2612 "Gmsh.y"
-    { yyval.d = exp(yyvsp[-1].d);      }
-    break;
-
-  case 371:
+{ yyval.d = atan(yyvsp[-1].d);     ;
+    break;}
+case 379:
 #line 2613 "Gmsh.y"
-    { yyval.d = log(yyvsp[-1].d);      }
-    break;
-
-  case 372:
+{ yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ;
+    break;}
+case 380:
 #line 2614 "Gmsh.y"
-    { yyval.d = log10(yyvsp[-1].d);    }
-    break;
-
-  case 373:
+{ yyval.d = sinh(yyvsp[-1].d);     ;
+    break;}
+case 381:
 #line 2615 "Gmsh.y"
-    { yyval.d = sqrt(yyvsp[-1].d);     }
-    break;
-
-  case 374:
+{ yyval.d = cosh(yyvsp[-1].d);     ;
+    break;}
+case 382:
 #line 2616 "Gmsh.y"
-    { yyval.d = sin(yyvsp[-1].d);      }
-    break;
-
-  case 375:
+{ yyval.d = tanh(yyvsp[-1].d);     ;
+    break;}
+case 383:
 #line 2617 "Gmsh.y"
-    { yyval.d = asin(yyvsp[-1].d);     }
-    break;
-
-  case 376:
+{ yyval.d = fabs(yyvsp[-1].d);     ;
+    break;}
+case 384:
 #line 2618 "Gmsh.y"
-    { yyval.d = cos(yyvsp[-1].d);      }
-    break;
-
-  case 377:
+{ yyval.d = floor(yyvsp[-1].d);    ;
+    break;}
+case 385:
 #line 2619 "Gmsh.y"
-    { yyval.d = acos(yyvsp[-1].d);     }
-    break;
-
-  case 378:
+{ yyval.d = ceil(yyvsp[-1].d);     ;
+    break;}
+case 386:
 #line 2620 "Gmsh.y"
-    { yyval.d = tan(yyvsp[-1].d);      }
-    break;
-
-  case 379:
+{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
+    break;}
+case 387:
 #line 2621 "Gmsh.y"
-    { yyval.d = atan(yyvsp[-1].d);     }
-    break;
-
-  case 380:
+{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  ;
+    break;}
+case 388:
 #line 2622 "Gmsh.y"
-    { yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); }
-    break;
-
-  case 381:
+{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
+    break;}
+case 389:
 #line 2623 "Gmsh.y"
-    { yyval.d = sinh(yyvsp[-1].d);     }
-    break;
-
-  case 382:
-#line 2624 "Gmsh.y"
-    { yyval.d = cosh(yyvsp[-1].d);     }
-    break;
-
-  case 383:
-#line 2625 "Gmsh.y"
-    { yyval.d = tanh(yyvsp[-1].d);     }
-    break;
-
-  case 384:
-#line 2626 "Gmsh.y"
-    { yyval.d = fabs(yyvsp[-1].d);     }
-    break;
-
-  case 385:
-#line 2627 "Gmsh.y"
-    { yyval.d = floor(yyvsp[-1].d);    }
-    break;
-
-  case 386:
-#line 2628 "Gmsh.y"
-    { yyval.d = ceil(yyvsp[-1].d);     }
-    break;
-
-  case 387:
-#line 2629 "Gmsh.y"
-    { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  }
-    break;
-
-  case 388:
-#line 2630 "Gmsh.y"
-    { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d);  }
-    break;
-
-  case 389:
-#line 2631 "Gmsh.y"
-    { yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); }
-    break;
-
-  case 390:
+{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
+    break;}
+case 390:
 #line 2632 "Gmsh.y"
-    { yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; }
-    break;
-
-  case 391:
-#line 2641 "Gmsh.y"
-    { yyval.d = yyvsp[0].d; }
-    break;
-
-  case 392:
-#line 2642 "Gmsh.y"
-    { yyval.d = 3.141592653589793; }
-    break;
-
-  case 393:
-#line 2643 "Gmsh.y"
-    { yyval.d = ParUtil::Instance()->rank(); }
-    break;
-
-  case 394:
-#line 2644 "Gmsh.y"
-    { yyval.d = ParUtil::Instance()->size(); }
-    break;
-
-  case 395:
-#line 2649 "Gmsh.y"
-    {
+{ yyval.d = yyvsp[0].d; ;
+    break;}
+case 391:
+#line 2633 "Gmsh.y"
+{ yyval.d = 3.141592653589793; ;
+    break;}
+case 392:
+#line 2634 "Gmsh.y"
+{ yyval.d = ParUtil::Instance()->rank(); ;
+    break;}
+case 393:
+#line 2635 "Gmsh.y"
+{ yyval.d = ParUtil::Instance()->size(); ;
+    break;}
+case 394:
+#line 2640 "Gmsh.y"
+{
       TheSymbol.Name = yyvsp[0].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
 	yymsg(GERROR, "Unknown variable '%s'", yyvsp[0].c) ;
 	yyval.d = 0. ;
       }
       else
-	yyval.d = *(double*)List_Pointer_Fast(pSymbol->val, 0) ;
-    }
-    break;
-
-  case 396:
-#line 2660 "Gmsh.y"
-    {
+	yyval.d = *(double*)List_Pointer_Fast(pSymbol->val, 0) ;
+    ;
+    break;}
+case 395:
+#line 2651 "Gmsh.y"
+{
       TheSymbol.Name = yyvsp[-3].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
 	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-3].c) ;
@@ -8453,12 +7493,11 @@ yyreduce:
 	  yyval.d = 0. ;
 	}
       }
-    }
-    break;
-
-  case 397:
-#line 2677 "Gmsh.y"
-    {
+    ;
+    break;}
+case 396:
+#line 2668 "Gmsh.y"
+{
       TheSymbol.Name = yyvsp[-1].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
 	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-1].c) ;
@@ -8466,12 +7505,11 @@ yyreduce:
       }
       else
 	yyval.d = (*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[0].i) ;
-    }
-    break;
-
-  case 398:
-#line 2688 "Gmsh.y"
-    {
+    ;
+    break;}
+case 397:
+#line 2679 "Gmsh.y"
+{
       TheSymbol.Name = yyvsp[-4].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
 	yymsg(GERROR, "Unknown variable '%s'", yyvsp[-4].c) ;
@@ -8485,12 +7523,11 @@ yyreduce:
 	  yyval.d = 0. ;
 	}
       }
-    }
-    break;
-
-  case 399:
-#line 2707 "Gmsh.y"
-    {
+    ;
+    break;}
+case 398:
+#line 2698 "Gmsh.y"
+{
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c))){
 	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-2].c);
 	yyval.d = 0. ;
@@ -8503,12 +7540,11 @@ yyreduce:
 	else
 	  yyval.d = pNumOpt(0, GMSH_GET, 0);
       }
-    }
-    break;
-
-  case 400:
-#line 2723 "Gmsh.y"
-    {
+    ;
+    break;}
+case 399:
+#line 2714 "Gmsh.y"
+{
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))){
 	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-5].c);
 	yyval.d = 0. ;
@@ -8521,12 +7557,11 @@ yyreduce:
 	else
 	  yyval.d = pNumOpt((int)yyvsp[-3].d, GMSH_GET, 0);
       }
-    }
-    break;
-
-  case 401:
-#line 2739 "Gmsh.y"
-    {
+    ;
+    break;}
+case 400:
+#line 2730 "Gmsh.y"
+{
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))){
 	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-3].c);
 	yyval.d = 0. ;
@@ -8539,12 +7574,11 @@ yyreduce:
 	else
 	  yyval.d = pNumOpt(0, GMSH_SET|GMSH_GUI, pNumOpt(0, GMSH_GET, 0)+yyvsp[0].i);
       }
-    }
-    break;
-
-  case 402:
-#line 2755 "Gmsh.y"
-    {
+    ;
+    break;}
+case 401:
+#line 2746 "Gmsh.y"
+{
       if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-6].c))){
 	yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-6].c);
 	yyval.d = 0. ;
@@ -8557,176 +7591,152 @@ yyreduce:
 	else
 	  yyval.d = pNumOpt((int)yyvsp[-4].d, GMSH_SET|GMSH_GUI, pNumOpt((int)yyvsp[-4].d, GMSH_GET, 0)+yyvsp[0].i);
       }
-    }
-    break;
-
-  case 403:
-#line 2773 "Gmsh.y"
-    {
+    ;
+    break;}
+case 402:
+#line 2764 "Gmsh.y"
+{
       memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)) ;
-    }
-    break;
-
-  case 404:
-#line 2777 "Gmsh.y"
-    {
+    ;
+    break;}
+case 403:
+#line 2768 "Gmsh.y"
+{
       for(i=0 ; i<5 ; i++) yyval.v[i] = -yyvsp[0].v[i] ;
-    }
-    break;
-
-  case 405:
-#line 2781 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 404:
+#line 2772 "Gmsh.y"
+{ 
       for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[0].v[i];
-    }
-    break;
-
-  case 406:
-#line 2785 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 405:
+#line 2776 "Gmsh.y"
+{ 
       for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i] ;
-    }
-    break;
-
-  case 407:
-#line 2789 "Gmsh.y"
-    {
+    ;
+    break;}
+case 406:
+#line 2780 "Gmsh.y"
+{
       for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i] ;
-    }
-    break;
-
-  case 408:
-#line 2796 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 407:
+#line 2787 "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 409:
-#line 2800 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 408:
+#line 2791 "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 410:
-#line 2804 "Gmsh.y"
-    {
+    ;
+    break;}
+case 409:
+#line 2795 "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 411:
-#line 2808 "Gmsh.y"
-    {
+    ;
+    break;}
+case 410:
+#line 2799 "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 412:
+    ;
+    break;}
+case 411:
+#line 2806 "Gmsh.y"
+{
+    ;
+    break;}
+case 412:
+#line 2809 "Gmsh.y"
+{
+    ;
+    break;}
+case 413:
 #line 2815 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 413:
+{
+    ;
+    break;}
+case 414:
 #line 2818 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 414:
+{
+    ;
+    break;}
+case 415:
 #line 2824 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 415:
+{
+    ;
+    break;}
+case 416:
 #line 2827 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 416:
-#line 2833 "Gmsh.y"
-    {
-    }
-    break;
-
-  case 417:
-#line 2836 "Gmsh.y"
-    {
+{
        yyval.l=yyvsp[-1].l;
-    }
-    break;
-
-  case 418:
-#line 2840 "Gmsh.y"
-    {
+    ;
+    break;}
+case 417:
+#line 2831 "Gmsh.y"
+{
        yyval.l=yyvsp[-1].l;
-    }
-    break;
-
-  case 419:
-#line 2847 "Gmsh.y"
-    {
+    ;
+    break;}
+case 418:
+#line 2838 "Gmsh.y"
+{
       yyval.l = List_Create(2,1,sizeof(List_T*)) ;
       List_Add(yyval.l, &(yyvsp[0].l)) ;
-    }
-    break;
-
-  case 420:
-#line 2852 "Gmsh.y"
-    {
+    ;
+    break;}
+case 419:
+#line 2843 "Gmsh.y"
+{
       List_Add(yyval.l, &(yyvsp[0].l)) ;
-    }
-    break;
-
-  case 421:
-#line 2860 "Gmsh.y"
-    {
+    ;
+    break;}
+case 420:
+#line 2851 "Gmsh.y"
+{
       yyval.l = List_Create(2,1,sizeof(double)) ;
       List_Add(yyval.l, &(yyvsp[0].d)) ;
-    }
-    break;
-
-  case 422:
-#line 2865 "Gmsh.y"
-    {
+    ;
+    break;}
+case 421:
+#line 2856 "Gmsh.y"
+{
       yyval.l = yyvsp[0].l ;
-    }
-    break;
-
-  case 423:
-#line 2869 "Gmsh.y"
-    {
+    ;
+    break;}
+case 422:
+#line 2860 "Gmsh.y"
+{
       yyval.l=yyvsp[-1].l;
-    }
-    break;
-
-  case 424:
-#line 2873 "Gmsh.y"
-    {
+    ;
+    break;}
+case 423:
+#line 2864 "Gmsh.y"
+{
       yyval.l=yyvsp[-1].l;
       for(i=0 ; i<List_Nbr(yyval.l) ; i++){
 	pd = (double*)List_Pointer(yyval.l, i);
 	(*pd) = - (*pd);
       }
-    }
-    break;
-
-  case 425:
-#line 2884 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 424:
+#line 2875 "Gmsh.y"
+{ 
       yyval.l = List_Create(2,1,sizeof(double)) ; 
       for(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 426:
-#line 2890 "Gmsh.y"
-    {
+    ;
+    break;}
+case 425:
+#line 2881 "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)){
         yymsg(GERROR, "Wrong increment in '%g:%g:%g'", yyvsp[-4].d, yyvsp[-2].d, yyvsp[0].d) ;
@@ -8735,12 +7745,11 @@ yyreduce:
       else
 	for(d=yyvsp[-4].d ; (yyvsp[0].d>0)?(d<=yyvsp[-2].d):(d>=yyvsp[-2].d) ; d+=yyvsp[0].d)
 	  List_Add(yyval.l, &d) ;
-   }
-    break;
-
-  case 427:
-#line 2901 "Gmsh.y"
-    {
+   ;
+    break;}
+case 426:
+#line 2892 "Gmsh.y"
+{
       yyval.l = List_Create(2,1,sizeof(double)) ;
       TheSymbol.Name = yyvsp[-2].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
@@ -8752,12 +7761,11 @@ yyreduce:
 	for(i = 0 ; i < List_Nbr(pSymbol->val) ; i++)
 	  List_Add(yyval.l, (double*)List_Pointer_Fast(pSymbol->val, i)) ;
       }
-    }
-    break;
-
-  case 428:
-#line 2915 "Gmsh.y"
-    {
+    ;
+    break;}
+case 427:
+#line 2906 "Gmsh.y"
+{
       yyval.l = List_Create(2,1,sizeof(double)) ;
       TheSymbol.Name = yyvsp[-2].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
@@ -8771,12 +7779,11 @@ yyreduce:
 	  List_Add(yyval.l, &d) ;
 	}
       }
-    }
-    break;
-
-  case 429:
-#line 2931 "Gmsh.y"
-    {
+    ;
+    break;}
+case 428:
+#line 2922 "Gmsh.y"
+{
       yyval.l = List_Create(2,1,sizeof(double)) ;
       TheSymbol.Name = yyvsp[-5].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
@@ -8794,12 +7801,11 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-2].l);
-    }
-    break;
-
-  case 430:
-#line 2951 "Gmsh.y"
-    {
+    ;
+    break;}
+case 429:
+#line 2942 "Gmsh.y"
+{
       yyval.l = List_Create(2,1,sizeof(double)) ;
       TheSymbol.Name = yyvsp[-5].c ;
       if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {
@@ -8819,67 +7825,59 @@ yyreduce:
 	}
       }
       List_Delete(yyvsp[-2].l);
-    }
-    break;
-
-  case 431:
-#line 2976 "Gmsh.y"
-    {
+    ;
+    break;}
+case 430:
+#line 2967 "Gmsh.y"
+{
       yyval.l = List_Create(2,1,sizeof(double)) ;
       List_Add(yyval.l, &(yyvsp[0].d)) ;
-    }
-    break;
-
-  case 432:
-#line 2981 "Gmsh.y"
-    {
+    ;
+    break;}
+case 431:
+#line 2972 "Gmsh.y"
+{
       yyval.l = yyvsp[0].l ;
-    }
-    break;
-
-  case 433:
-#line 2985 "Gmsh.y"
-    {
+    ;
+    break;}
+case 432:
+#line 2976 "Gmsh.y"
+{
       List_Add(yyval.l, &(yyvsp[0].d)) ;
-    }
-    break;
-
-  case 434:
-#line 2989 "Gmsh.y"
-    {
+    ;
+    break;}
+case 433:
+#line 2980 "Gmsh.y"
+{
       for(i=0 ; i<List_Nbr(yyvsp[0].l) ; i++){
 	List_Read(yyvsp[0].l, i, &d) ;
 	List_Add(yyval.l, &d) ;
       }
       List_Delete(yyvsp[0].l);
-    }
-    break;
-
-  case 435:
-#line 3001 "Gmsh.y"
-    {
+    ;
+    break;}
+case 434:
+#line 2992 "Gmsh.y"
+{
       yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d);
-    }
-    break;
-
-  case 436:
-#line 3005 "Gmsh.y"
-    {
+    ;
+    break;}
+case 435:
+#line 2996 "Gmsh.y"
+{
       yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255);
-    }
-    break;
-
-  case 437:
-#line 3016 "Gmsh.y"
-    {
+    ;
+    break;}
+case 436:
+#line 3007 "Gmsh.y"
+{
       yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag);
       if(flag) yymsg(GERROR, "Unknown color '%s'", yyvsp[0].c);
-    }
-    break;
-
-  case 438:
-#line 3021 "Gmsh.y"
-    {
+    ;
+    break;}
+case 437:
+#line 3012 "Gmsh.y"
+{
       if(!(pColCat = Get_ColorOptionCategory(yyvsp[-4].c))){
 	yymsg(GERROR, "Unknown color option class '%s'", yyvsp[-4].c);
 	yyval.u = 0 ;
@@ -8893,19 +7891,17 @@ yyreduce:
 	  yyval.u = pColOpt(0,GMSH_GET,0) ;
 	}
       }
-    }
-    break;
-
-  case 439:
-#line 3040 "Gmsh.y"
-    {
+    ;
+    break;}
+case 438:
+#line 3031 "Gmsh.y"
+{
       yyval.l = yyvsp[-1].l;
-    }
-    break;
-
-  case 440:
-#line 3044 "Gmsh.y"
-    {
+    ;
+    break;}
+case 439:
+#line 3035 "Gmsh.y"
+{
       yyval.l = List_Create(256,10,sizeof(unsigned int)) ;
       GmshColorTable *ct = Get_ColorTable((int)yyvsp[-3].d);
       if(!ct)
@@ -8914,45 +7910,40 @@ yyreduce:
 	for(i=0 ; i<ct->size ; i++) 
 	  List_Add(yyval.l, &ct->table[i]);
       }
-    }
-    break;
-
-  case 441:
-#line 3058 "Gmsh.y"
-    {
+    ;
+    break;}
+case 440:
+#line 3049 "Gmsh.y"
+{
       yyval.l = List_Create(256,10,sizeof(unsigned int)) ;
       List_Add(yyval.l, &(yyvsp[0].u)) ;
-    }
-    break;
-
-  case 442:
-#line 3063 "Gmsh.y"
-    {
+    ;
+    break;}
+case 441:
+#line 3054 "Gmsh.y"
+{
       List_Add(yyval.l, &(yyvsp[0].u)) ;
-    }
-    break;
-
-  case 443:
-#line 3070 "Gmsh.y"
-    {
+    ;
+    break;}
+case 442:
+#line 3061 "Gmsh.y"
+{
       yyval.c = yyvsp[0].c;
-    }
-    break;
-
-  case 444:
-#line 3074 "Gmsh.y"
-    {
+    ;
+    break;}
+case 443:
+#line 3065 "Gmsh.y"
+{
       yyval.c = (char *)Malloc((strlen(yyvsp[-3].c)+strlen(yyvsp[-1].c)+1)*sizeof(char)) ;
       strcpy(yyval.c, yyvsp[-3].c) ;  
       strcat(yyval.c, yyvsp[-1].c) ;
       Free(yyvsp[-3].c);
       Free(yyvsp[-1].c);
-    }
-    break;
-
-  case 445:
-#line 3082 "Gmsh.y"
-    {
+    ;
+    break;}
+case 444:
+#line 3073 "Gmsh.y"
+{
       yyval.c = (char *)Malloc((strlen(yyvsp[-1].c)+1)*sizeof(char)) ;
       for(i=strlen(yyvsp[-1].c)-1; i>=0; i--){
 	if(yyvsp[-1].c[i] == '.'){
@@ -8963,19 +7954,17 @@ yyreduce:
       }
       if(i<=0) strcpy(yyval.c,yyvsp[-1].c);
       Free(yyvsp[-1].c);
-    }
-    break;
-
-  case 446:
-#line 3095 "Gmsh.y"
-    {
+    ;
+    break;}
+case 445:
+#line 3086 "Gmsh.y"
+{
       yyval.c = yyvsp[-1].c;
-    }
-    break;
-
-  case 447:
-#line 3099 "Gmsh.y"
-    {
+    ;
+    break;}
+case 446:
+#line 3090 "Gmsh.y"
+{
       i = PrintListOfDouble(yyvsp[-3].c,yyvsp[-1].l,tmpstring);
       if(i<0){
 	yymsg(GERROR, "Too few arguments in Sprintf");
@@ -8991,12 +7980,11 @@ yyreduce:
 	Free(yyvsp[-3].c);
       }
       List_Delete(yyvsp[-1].l);
-    }
-    break;
-
-  case 448:
-#line 3117 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 447:
+#line 3108 "Gmsh.y"
+{ 
       if(!(pStrCat = Get_StringOptionCategory(yyvsp[-3].c)))
 	yymsg(GERROR, "Unknown string option class '%s'", yyvsp[-3].c);
       else{
@@ -9008,12 +7996,11 @@ yyreduce:
 	  strcpy(yyval.c, str);
 	}
       }
-    }
-    break;
-
-  case 449:
-#line 3131 "Gmsh.y"
-    { 
+    ;
+    break;}
+case 448:
+#line 3122 "Gmsh.y"
+{ 
       if(!(pStrCat = Get_StringOptionCategory(yyvsp[-6].c)))
 	yymsg(GERROR, "Unknown string option class '%s'", yyvsp[-6].c);
       else{
@@ -9025,18 +8012,18 @@ yyreduce:
 	  strcpy(yyval.c, str);
 	}
       }
-    }
-    break;
-
+    ;
+    break;}
+}
 
-    }
+#line 705 "/usr/share/bison/bison.simple"
 
-/* Line 1016 of /usr/share/bison/yacc.c.  */
-#line 9036 "Gmsh.tab.cpp"
 
   yyvsp -= yylen;
   yyssp -= yylen;
-
+#if YYLSP_NEEDED
+  yylsp -= yylen;
+#endif
 
 #if YYDEBUG
   if (yydebug)
@@ -9050,7 +8037,9 @@ yyreduce:
 #endif
 
   *++yyvsp = yyval;
-
+#if YYLSP_NEEDED
+  *++yylsp = yyloc;
+#endif
 
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
@@ -9058,11 +8047,11 @@ yyreduce:
 
   yyn = yyr1[yyn];
 
-  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
-  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
     yystate = yytable[yystate];
   else
-    yystate = yydefgoto[yyn - YYNTOKENS];
+    yystate = yydefgoto[yyn - YYNTBASE];
 
   goto yynewstate;
 
@@ -9075,13 +8064,13 @@ yyerrlab:
   if (!yyerrstatus)
     {
       ++yynerrs;
-#if YYERROR_VERBOSE
+
+#ifdef YYERROR_VERBOSE
       yyn = yypact[yystate];
 
-      if (YYPACT_NINF < yyn && yyn < YYLAST)
+      if (yyn > YYFLAG && yyn < YYLAST)
 	{
 	  YYSIZE_T yysize = 0;
-	  int yytype = YYTRANSLATE (yychar);
 	  char *yymsg;
 	  int yyx, yycount;
 
@@ -9090,15 +8079,15 @@ yyerrlab:
 	     YYCHECK.  */
 	  for (yyx = yyn < 0 ? -yyn : 0;
 	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
-	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+	    if (yycheck[yyx + yyn] == yyx)
 	      yysize += yystrlen (yytname[yyx]) + 15, yycount++;
 	  yysize += yystrlen ("parse error, unexpected ") + 1;
-	  yysize += yystrlen (yytname[yytype]);
+	  yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
 	  yymsg = (char *) YYSTACK_ALLOC (yysize);
 	  if (yymsg != 0)
 	    {
 	      char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
-	      yyp = yystpcpy (yyp, yytname[yytype]);
+	      yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
 
 	      if (yycount < 5)
 		{
@@ -9106,7 +8095,7 @@ yyerrlab:
 		  for (yyx = yyn < 0 ? -yyn : 0;
 		       yyx < (int) (sizeof (yytname) / sizeof (char *));
 		       yyx++)
-		    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+		    if (yycheck[yyx + yyn] == yyx)
 		      {
 			const char *yyq = ! yycount ? ", expecting " : " or ";
 			yyp = yystpcpy (yyp, yyq);
@@ -9121,90 +8110,99 @@ yyerrlab:
 	    yyerror ("parse error; also virtual memory exhausted");
 	}
       else
-#endif /* YYERROR_VERBOSE */
+#endif /* defined (YYERROR_VERBOSE) */
 	yyerror ("parse error");
     }
   goto yyerrlab1;
 
 
-/*----------------------------------------------------.
-| yyerrlab1 -- error raised explicitly by an action.  |
-`----------------------------------------------------*/
+/*--------------------------------------------------.
+| yyerrlab1 -- error raised explicitly by an action |
+`--------------------------------------------------*/
 yyerrlab1:
   if (yyerrstatus == 3)
     {
       /* If just tried and failed to reuse lookahead token after an
 	 error, discard it.  */
 
-      /* Return failure if at end of input.  */
+      /* return failure if at end of input */
       if (yychar == YYEOF)
-        {
-	  /* Pop the error token.  */
-          YYPOPSTACK;
-	  /* Pop the rest of the stack.  */
-	  while (yyssp > yyss)
-	    {
-	      YYDPRINTF ((stderr, "Error: popping "));
-	      YYDSYMPRINT ((stderr,
-			    yystos[*yyssp],
-			    *yyvsp));
-	      YYDPRINTF ((stderr, "\n"));
-	      yydestruct (yystos[*yyssp], *yyvsp);
-	      YYPOPSTACK;
-	    }
-	  YYABORT;
-        }
-
+	YYABORT;
       YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
 		  yychar, yytname[yychar1]));
-      yydestruct (yychar1, yylval);
       yychar = YYEMPTY;
     }
 
   /* Else will try to reuse lookahead token after shifting the error
      token.  */
 
-  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
+  yyerrstatus = 3;		/* Each real token shifted decrements this */
 
-  for (;;)
-    {
-      yyn = yypact[yystate];
-      if (yyn != YYPACT_NINF)
-	{
-	  yyn += YYTERROR;
-	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
-	    {
-	      yyn = yytable[yyn];
-	      if (0 < yyn)
-		break;
-	    }
-	}
+  goto yyerrhandle;
 
-      /* Pop the current state because it cannot handle the error token.  */
-      if (yyssp == yyss)
-	YYABORT;
 
-      YYDPRINTF ((stderr, "Error: popping "));
-      YYDSYMPRINT ((stderr,
-		    yystos[*yyssp], *yyvsp));
-      YYDPRINTF ((stderr, "\n"));
+/*-------------------------------------------------------------------.
+| yyerrdefault -- current state does not do anything special for the |
+| error token.                                                       |
+`-------------------------------------------------------------------*/
+yyerrdefault:
+#if 0
+  /* This is wrong; only states that explicitly want error tokens
+     should shift them.  */
+
+  /* If its default is to accept any token, ok.  Otherwise pop it.  */
+  yyn = yydefact[yystate];
+  if (yyn)
+    goto yydefault;
+#endif
 
-      yydestruct (yystos[yystate], *yyvsp);
-      yyvsp--;
-      yystate = *--yyssp;
 
+/*---------------------------------------------------------------.
+| yyerrpop -- pop the current state because it cannot handle the |
+| error token                                                    |
+`---------------------------------------------------------------*/
+yyerrpop:
+  if (yyssp == yyss)
+    YYABORT;
+  yyvsp--;
+  yystate = *--yyssp;
+#if YYLSP_NEEDED
+  yylsp--;
+#endif
 
 #if YYDEBUG
-      if (yydebug)
-	{
-	  short *yyssp1 = yyss - 1;
-	  YYFPRINTF (stderr, "Error: state stack now");
-	  while (yyssp1 != yyssp)
-	    YYFPRINTF (stderr, " %d", *++yyssp1);
-	  YYFPRINTF (stderr, "\n");
-	}
+  if (yydebug)
+    {
+      short *yyssp1 = yyss - 1;
+      YYFPRINTF (stderr, "Error: state stack now");
+      while (yyssp1 != yyssp)
+	YYFPRINTF (stderr, " %d", *++yyssp1);
+      YYFPRINTF (stderr, "\n");
+    }
 #endif
+
+/*--------------.
+| yyerrhandle.  |
+`--------------*/
+yyerrhandle:
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yyerrdefault;
+
+  yyn += YYTERROR;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+    goto yyerrdefault;
+
+  yyn = yytable[yyn];
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+	goto yyerrpop;
+      yyn = -yyn;
+      goto yyreduce;
     }
+  else if (yyn == 0)
+    goto yyerrpop;
 
   if (yyn == YYFINAL)
     YYACCEPT;
@@ -9212,7 +8210,9 @@ yyerrlab1:
   YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
-
+#if YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
 
   yystate = yyn;
   goto yynewstate;
@@ -9232,15 +8232,13 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-#ifndef yyoverflow
-/*----------------------------------------------.
-| yyoverflowlab -- parser overflow comes here.  |
-`----------------------------------------------*/
+/*---------------------------------------------.
+| yyoverflowab -- parser overflow comes here.  |
+`---------------------------------------------*/
 yyoverflowlab:
   yyerror ("parser stack overflow");
   yyresult = 2;
   /* Fall through.  */
-#endif
 
 yyreturn:
 #ifndef yyoverflow
@@ -9249,9 +8247,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-
-
-#line 3146 "Gmsh.y"
+#line 3137 "Gmsh.y"
 
 
 void InitSymbols(void){
@@ -9325,4 +8321,3 @@ void yymsg(int type, char *fmt, ...){
 }
 
 
-
diff --git a/Parser/Gmsh.tab.hpp b/Parser/Gmsh.tab.hpp
index b216ea0f653fc1525e4eec4f10e935064f5a2d44..2dd3263ec4c3ae00db0b8c84de265ea01124b04d 100644
--- a/Parser/Gmsh.tab.hpp
+++ b/Parser/Gmsh.tab.hpp
@@ -1,407 +1,7 @@
-/* A Bison parser, made from Gmsh.y, by GNU bison 1.75.  */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
-
 #ifndef BISON_GMSH_TAB_HPP
 # define BISON_GMSH_TAB_HPP
 
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     tDOUBLE = 258,
-     tSTRING = 259,
-     tBIGSTR = 260,
-     tEND = 261,
-     tAFFECT = 262,
-     tDOTS = 263,
-     tPi = 264,
-     tMPI_Rank = 265,
-     tMPI_Size = 266,
-     tExp = 267,
-     tLog = 268,
-     tLog10 = 269,
-     tSqrt = 270,
-     tSin = 271,
-     tAsin = 272,
-     tCos = 273,
-     tAcos = 274,
-     tTan = 275,
-     tRand = 276,
-     tAtan = 277,
-     tAtan2 = 278,
-     tSinh = 279,
-     tCosh = 280,
-     tTanh = 281,
-     tFabs = 282,
-     tFloor = 283,
-     tCeil = 284,
-     tFmod = 285,
-     tModulo = 286,
-     tHypot = 287,
-     tPrintf = 288,
-     tSprintf = 289,
-     tStrCat = 290,
-     tStrPrefix = 291,
-     tDraw = 292,
-     tPoint = 293,
-     tCircle = 294,
-     tEllipse = 295,
-     tLine = 296,
-     tSurface = 297,
-     tSpline = 298,
-     tVolume = 299,
-     tCharacteristic = 300,
-     tLength = 301,
-     tParametric = 302,
-     tElliptic = 303,
-     tPlane = 304,
-     tRuled = 305,
-     tTransfinite = 306,
-     tComplex = 307,
-     tPhysical = 308,
-     tUsing = 309,
-     tBump = 310,
-     tProgression = 311,
-     tPlugin = 312,
-     tRotate = 313,
-     tTranslate = 314,
-     tSymmetry = 315,
-     tDilate = 316,
-     tExtrude = 317,
-     tDuplicata = 318,
-     tLoop = 319,
-     tRecombine = 320,
-     tDelete = 321,
-     tCoherence = 322,
-     tIntersect = 323,
-     tAttractor = 324,
-     tLayers = 325,
-     tScalarPoint = 326,
-     tVectorPoint = 327,
-     tTensorPoint = 328,
-     tScalarLine = 329,
-     tVectorLine = 330,
-     tTensorLine = 331,
-     tScalarTriangle = 332,
-     tVectorTriangle = 333,
-     tTensorTriangle = 334,
-     tScalarQuadrangle = 335,
-     tVectorQuadrangle = 336,
-     tTensorQuadrangle = 337,
-     tScalarTetrahedron = 338,
-     tVectorTetrahedron = 339,
-     tTensorTetrahedron = 340,
-     tScalarHexahedron = 341,
-     tVectorHexahedron = 342,
-     tTensorHexahedron = 343,
-     tScalarPrism = 344,
-     tVectorPrism = 345,
-     tTensorPrism = 346,
-     tScalarPyramid = 347,
-     tVectorPyramid = 348,
-     tTensorPyramid = 349,
-     tText2D = 350,
-     tText3D = 351,
-     tBSpline = 352,
-     tBezier = 353,
-     tNurbs = 354,
-     tOrder = 355,
-     tWith = 356,
-     tBounds = 357,
-     tKnots = 358,
-     tColor = 359,
-     tColorTable = 360,
-     tFor = 361,
-     tIn = 362,
-     tEndFor = 363,
-     tIf = 364,
-     tEndIf = 365,
-     tExit = 366,
-     tReturn = 367,
-     tCall = 368,
-     tFunction = 369,
-     tMesh = 370,
-     tB_SPLINE_SURFACE_WITH_KNOTS = 371,
-     tB_SPLINE_CURVE_WITH_KNOTS = 372,
-     tCARTESIAN_POINT = 373,
-     tTRUE = 374,
-     tFALSE = 375,
-     tUNSPECIFIED = 376,
-     tU = 377,
-     tV = 378,
-     tEDGE_CURVE = 379,
-     tVERTEX_POINT = 380,
-     tORIENTED_EDGE = 381,
-     tPLANE = 382,
-     tFACE_OUTER_BOUND = 383,
-     tEDGE_LOOP = 384,
-     tADVANCED_FACE = 385,
-     tVECTOR = 386,
-     tDIRECTION = 387,
-     tAXIS2_PLACEMENT_3D = 388,
-     tISO = 389,
-     tENDISO = 390,
-     tENDSEC = 391,
-     tDATA = 392,
-     tHEADER = 393,
-     tFILE_DESCRIPTION = 394,
-     tFILE_SCHEMA = 395,
-     tFILE_NAME = 396,
-     tMANIFOLD_SOLID_BREP = 397,
-     tCLOSED_SHELL = 398,
-     tADVANCED_BREP_SHAPE_REPRESENTATION = 399,
-     tFACE_BOUND = 400,
-     tCYLINDRICAL_SURFACE = 401,
-     tCONICAL_SURFACE = 402,
-     tCIRCLE = 403,
-     tTRIMMED_CURVE = 404,
-     tGEOMETRIC_SET = 405,
-     tCOMPOSITE_CURVE_SEGMENT = 406,
-     tCONTINUOUS = 407,
-     tCOMPOSITE_CURVE = 408,
-     tTOROIDAL_SURFACE = 409,
-     tPRODUCT_DEFINITION = 410,
-     tPRODUCT_DEFINITION_SHAPE = 411,
-     tSHAPE_DEFINITION_REPRESENTATION = 412,
-     tELLIPSE = 413,
-     tTrimmed = 414,
-     tSolid = 415,
-     tEndSolid = 416,
-     tVertex = 417,
-     tFacet = 418,
-     tNormal = 419,
-     tOuter = 420,
-     tLoopSTL = 421,
-     tEndLoop = 422,
-     tEndFacet = 423,
-     tAFFECTDIVIDE = 424,
-     tAFFECTTIMES = 425,
-     tAFFECTMINUS = 426,
-     tAFFECTPLUS = 427,
-     tOR = 428,
-     tAND = 429,
-     tAPPROXEQUAL = 430,
-     tNOTEQUAL = 431,
-     tEQUAL = 432,
-     tGREATEROREQUAL = 433,
-     tLESSOREQUAL = 434,
-     tCROSSPRODUCT = 435,
-     UNARYPREC = 436,
-     tMINUSMINUS = 437,
-     tPLUSPLUS = 438
-   };
-#endif
-#define tDOUBLE 258
-#define tSTRING 259
-#define tBIGSTR 260
-#define tEND 261
-#define tAFFECT 262
-#define tDOTS 263
-#define tPi 264
-#define tMPI_Rank 265
-#define tMPI_Size 266
-#define tExp 267
-#define tLog 268
-#define tLog10 269
-#define tSqrt 270
-#define tSin 271
-#define tAsin 272
-#define tCos 273
-#define tAcos 274
-#define tTan 275
-#define tRand 276
-#define tAtan 277
-#define tAtan2 278
-#define tSinh 279
-#define tCosh 280
-#define tTanh 281
-#define tFabs 282
-#define tFloor 283
-#define tCeil 284
-#define tFmod 285
-#define tModulo 286
-#define tHypot 287
-#define tPrintf 288
-#define tSprintf 289
-#define tStrCat 290
-#define tStrPrefix 291
-#define tDraw 292
-#define tPoint 293
-#define tCircle 294
-#define tEllipse 295
-#define tLine 296
-#define tSurface 297
-#define tSpline 298
-#define tVolume 299
-#define tCharacteristic 300
-#define tLength 301
-#define tParametric 302
-#define tElliptic 303
-#define tPlane 304
-#define tRuled 305
-#define tTransfinite 306
-#define tComplex 307
-#define tPhysical 308
-#define tUsing 309
-#define tBump 310
-#define tProgression 311
-#define tPlugin 312
-#define tRotate 313
-#define tTranslate 314
-#define tSymmetry 315
-#define tDilate 316
-#define tExtrude 317
-#define tDuplicata 318
-#define tLoop 319
-#define tRecombine 320
-#define tDelete 321
-#define tCoherence 322
-#define tIntersect 323
-#define tAttractor 324
-#define tLayers 325
-#define tScalarPoint 326
-#define tVectorPoint 327
-#define tTensorPoint 328
-#define tScalarLine 329
-#define tVectorLine 330
-#define tTensorLine 331
-#define tScalarTriangle 332
-#define tVectorTriangle 333
-#define tTensorTriangle 334
-#define tScalarQuadrangle 335
-#define tVectorQuadrangle 336
-#define tTensorQuadrangle 337
-#define tScalarTetrahedron 338
-#define tVectorTetrahedron 339
-#define tTensorTetrahedron 340
-#define tScalarHexahedron 341
-#define tVectorHexahedron 342
-#define tTensorHexahedron 343
-#define tScalarPrism 344
-#define tVectorPrism 345
-#define tTensorPrism 346
-#define tScalarPyramid 347
-#define tVectorPyramid 348
-#define tTensorPyramid 349
-#define tText2D 350
-#define tText3D 351
-#define tBSpline 352
-#define tBezier 353
-#define tNurbs 354
-#define tOrder 355
-#define tWith 356
-#define tBounds 357
-#define tKnots 358
-#define tColor 359
-#define tColorTable 360
-#define tFor 361
-#define tIn 362
-#define tEndFor 363
-#define tIf 364
-#define tEndIf 365
-#define tExit 366
-#define tReturn 367
-#define tCall 368
-#define tFunction 369
-#define tMesh 370
-#define tB_SPLINE_SURFACE_WITH_KNOTS 371
-#define tB_SPLINE_CURVE_WITH_KNOTS 372
-#define tCARTESIAN_POINT 373
-#define tTRUE 374
-#define tFALSE 375
-#define tUNSPECIFIED 376
-#define tU 377
-#define tV 378
-#define tEDGE_CURVE 379
-#define tVERTEX_POINT 380
-#define tORIENTED_EDGE 381
-#define tPLANE 382
-#define tFACE_OUTER_BOUND 383
-#define tEDGE_LOOP 384
-#define tADVANCED_FACE 385
-#define tVECTOR 386
-#define tDIRECTION 387
-#define tAXIS2_PLACEMENT_3D 388
-#define tISO 389
-#define tENDISO 390
-#define tENDSEC 391
-#define tDATA 392
-#define tHEADER 393
-#define tFILE_DESCRIPTION 394
-#define tFILE_SCHEMA 395
-#define tFILE_NAME 396
-#define tMANIFOLD_SOLID_BREP 397
-#define tCLOSED_SHELL 398
-#define tADVANCED_BREP_SHAPE_REPRESENTATION 399
-#define tFACE_BOUND 400
-#define tCYLINDRICAL_SURFACE 401
-#define tCONICAL_SURFACE 402
-#define tCIRCLE 403
-#define tTRIMMED_CURVE 404
-#define tGEOMETRIC_SET 405
-#define tCOMPOSITE_CURVE_SEGMENT 406
-#define tCONTINUOUS 407
-#define tCOMPOSITE_CURVE 408
-#define tTOROIDAL_SURFACE 409
-#define tPRODUCT_DEFINITION 410
-#define tPRODUCT_DEFINITION_SHAPE 411
-#define tSHAPE_DEFINITION_REPRESENTATION 412
-#define tELLIPSE 413
-#define tTrimmed 414
-#define tSolid 415
-#define tEndSolid 416
-#define tVertex 417
-#define tFacet 418
-#define tNormal 419
-#define tOuter 420
-#define tLoopSTL 421
-#define tEndLoop 422
-#define tEndFacet 423
-#define tAFFECTDIVIDE 424
-#define tAFFECTTIMES 425
-#define tAFFECTMINUS 426
-#define tAFFECTPLUS 427
-#define tOR 428
-#define tAND 429
-#define tAPPROXEQUAL 430
-#define tNOTEQUAL 431
-#define tEQUAL 432
-#define tGREATEROREQUAL 433
-#define tLESSOREQUAL 434
-#define tCROSSPRODUCT 435
-#define UNARYPREC 436
-#define tMINUSMINUS 437
-#define tPLUSPLUS 438
-
-
-
-
 #ifndef YYSTYPE
-#line 90 "Gmsh.y"
 typedef union {
   char    *c;
   int      i;
@@ -411,13 +11,192 @@ typedef union {
   Shape    s;
   List_T  *l;
 } yystype;
-/* Line 1281 of /usr/share/bison/yacc.c.  */
-#line 416 "Gmsh.tab.hpp"
 # define YYSTYPE yystype
+# define YYSTYPE_IS_TRIVIAL 1
 #endif
+# define	tDOUBLE	257
+# define	tSTRING	258
+# define	tBIGSTR	259
+# define	tEND	260
+# define	tAFFECT	261
+# define	tDOTS	262
+# define	tPi	263
+# define	tMPI_Rank	264
+# define	tMPI_Size	265
+# define	tExp	266
+# define	tLog	267
+# define	tLog10	268
+# define	tSqrt	269
+# define	tSin	270
+# define	tAsin	271
+# define	tCos	272
+# define	tAcos	273
+# define	tTan	274
+# define	tRand	275
+# define	tAtan	276
+# define	tAtan2	277
+# define	tSinh	278
+# define	tCosh	279
+# define	tTanh	280
+# define	tFabs	281
+# define	tFloor	282
+# define	tCeil	283
+# define	tFmod	284
+# define	tModulo	285
+# define	tHypot	286
+# define	tPrintf	287
+# define	tSprintf	288
+# define	tStrCat	289
+# define	tStrPrefix	290
+# define	tDraw	291
+# define	tPoint	292
+# define	tCircle	293
+# define	tEllipse	294
+# define	tLine	295
+# define	tSurface	296
+# define	tSpline	297
+# define	tVolume	298
+# define	tCharacteristic	299
+# define	tLength	300
+# define	tParametric	301
+# define	tElliptic	302
+# define	tPlane	303
+# define	tRuled	304
+# define	tTransfinite	305
+# define	tComplex	306
+# define	tPhysical	307
+# define	tUsing	308
+# define	tBump	309
+# define	tProgression	310
+# define	tPlugin	311
+# define	tRotate	312
+# define	tTranslate	313
+# define	tSymmetry	314
+# define	tDilate	315
+# define	tExtrude	316
+# define	tDuplicata	317
+# define	tLoop	318
+# define	tRecombine	319
+# define	tDelete	320
+# define	tCoherence	321
+# define	tIntersect	322
+# define	tAttractor	323
+# define	tLayers	324
+# define	tScalarPoint	325
+# define	tVectorPoint	326
+# define	tTensorPoint	327
+# define	tScalarLine	328
+# define	tVectorLine	329
+# define	tTensorLine	330
+# define	tScalarTriangle	331
+# define	tVectorTriangle	332
+# define	tTensorTriangle	333
+# define	tScalarQuadrangle	334
+# define	tVectorQuadrangle	335
+# define	tTensorQuadrangle	336
+# define	tScalarTetrahedron	337
+# define	tVectorTetrahedron	338
+# define	tTensorTetrahedron	339
+# define	tScalarHexahedron	340
+# define	tVectorHexahedron	341
+# define	tTensorHexahedron	342
+# define	tScalarPrism	343
+# define	tVectorPrism	344
+# define	tTensorPrism	345
+# define	tScalarPyramid	346
+# define	tVectorPyramid	347
+# define	tTensorPyramid	348
+# define	tText2D	349
+# define	tText3D	350
+# define	tBSpline	351
+# define	tBezier	352
+# define	tNurbs	353
+# define	tOrder	354
+# define	tWith	355
+# define	tBounds	356
+# define	tKnots	357
+# define	tColor	358
+# define	tColorTable	359
+# define	tFor	360
+# define	tIn	361
+# define	tEndFor	362
+# define	tIf	363
+# define	tEndIf	364
+# define	tExit	365
+# define	tReturn	366
+# define	tCall	367
+# define	tFunction	368
+# define	tMesh	369
+# define	tB_SPLINE_SURFACE_WITH_KNOTS	370
+# define	tB_SPLINE_CURVE_WITH_KNOTS	371
+# define	tCARTESIAN_POINT	372
+# define	tTRUE	373
+# define	tFALSE	374
+# define	tUNSPECIFIED	375
+# define	tU	376
+# define	tV	377
+# define	tEDGE_CURVE	378
+# define	tVERTEX_POINT	379
+# define	tORIENTED_EDGE	380
+# define	tPLANE	381
+# define	tFACE_OUTER_BOUND	382
+# define	tEDGE_LOOP	383
+# define	tADVANCED_FACE	384
+# define	tVECTOR	385
+# define	tDIRECTION	386
+# define	tAXIS2_PLACEMENT_3D	387
+# define	tISO	388
+# define	tENDISO	389
+# define	tENDSEC	390
+# define	tDATA	391
+# define	tHEADER	392
+# define	tFILE_DESCRIPTION	393
+# define	tFILE_SCHEMA	394
+# define	tFILE_NAME	395
+# define	tMANIFOLD_SOLID_BREP	396
+# define	tCLOSED_SHELL	397
+# define	tADVANCED_BREP_SHAPE_REPRESENTATION	398
+# define	tFACE_BOUND	399
+# define	tCYLINDRICAL_SURFACE	400
+# define	tCONICAL_SURFACE	401
+# define	tCIRCLE	402
+# define	tTRIMMED_CURVE	403
+# define	tGEOMETRIC_SET	404
+# define	tCOMPOSITE_CURVE_SEGMENT	405
+# define	tCONTINUOUS	406
+# define	tCOMPOSITE_CURVE	407
+# define	tTOROIDAL_SURFACE	408
+# define	tPRODUCT_DEFINITION	409
+# define	tPRODUCT_DEFINITION_SHAPE	410
+# define	tSHAPE_DEFINITION_REPRESENTATION	411
+# define	tELLIPSE	412
+# define	tTrimmed	413
+# define	tSolid	414
+# define	tEndSolid	415
+# define	tVertex	416
+# define	tFacet	417
+# define	tNormal	418
+# define	tOuter	419
+# define	tLoopSTL	420
+# define	tEndLoop	421
+# define	tEndFacet	422
+# define	tAFFECTPLUS	423
+# define	tAFFECTMINUS	424
+# define	tAFFECTTIMES	425
+# define	tAFFECTDIVIDE	426
+# define	tOR	427
+# define	tAND	428
+# define	tEQUAL	429
+# define	tNOTEQUAL	430
+# define	tAPPROXEQUAL	431
+# define	tLESSOREQUAL	432
+# define	tGREATEROREQUAL	433
+# define	tCROSSPRODUCT	434
+# define	tPLUSPLUS	435
+# define	tMINUSMINUS	436
+# define	UNARYPREC	437
 
-extern YYSTYPE yylval;
 
+extern YYSTYPE yylval;
 
 #endif /* not BISON_GMSH_TAB_HPP */
-
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index 5a673992c256ea67caa7a14440762e9d51238322..4b57a2608893a2956a1cdc40a55979c6ade3e6ce 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,6 +1,6 @@
 %{ 
 
-// $Id: Gmsh.y,v 1.129 2003-01-24 23:13:36 geuzaine Exp $
+// $Id: Gmsh.y,v 1.130 2003-02-12 20:27:14 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -22,9 +22,7 @@
 // Please report all bugs and problems to "gmsh@geuz.org".
 
 #include <stdarg.h>
-#ifndef _NOPLUGIN
 #include "PluginManager.h"
-#endif
 #include "ParUtil.h"
 #include "Gmsh.h"
 #include "Numeric.h"
@@ -47,10 +45,6 @@
 #include "CreateFile.h"
 #include "STL.h"
 
-#ifdef __DECCXX // bug in bison
-#include <alloca.h>
-#endif
-
 List_T *Symbol_L=NULL;
 
 extern Context_T  CTX;
@@ -1986,12 +1980,12 @@ Command :
 
       }
       else if(!strcmp($1, "Print")){
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
 	if(!CTX.batch) CreateOutputFile($2, CTX.print.format);
 #endif
       }
       else if(!strcmp($1, "Save")){
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
 	CreateOutputFile($2, CTX.mesh.format);
 #endif
       }
@@ -2047,10 +2041,8 @@ Command :
     }
    | tPlugin '(' tSTRING ')' '.' tSTRING tEND
    {
-#ifndef _NOPLUGIN
     if(CTX.default_plugins)
       GMSH_PluginManager::Instance()->Action($3,$6,0); 
-#endif
    }
    | tExit tEND
     {
@@ -2058,7 +2050,7 @@ Command :
     } 
    | tDraw tEND
     {
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
       if(!CTX.batch){ // we're in interactive mode
 	if(Tree_Nbr(THEM->Points) != Last_NumberOfPoints){
 	  Last_NumberOfPoints = Tree_Nbr(THEM->Points);
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 232a970d80eba4685d936784f71ae3f79c3fc79b..7dbd0eef59bfe6d98c076333a1e938735a3240ea 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.147 2003-01-24 23:13:36 geuzaine Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.148 2003-02-12 20:27:14 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
@@ -10,6 +10,7 @@
 #define YY_FLEX_MINOR_VERSION 5
 
 #include <stdio.h>
+#include <unistd.h>
 
 
 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
@@ -23,7 +24,6 @@
 #ifdef __cplusplus
 
 #include <stdlib.h>
-#include <unistd.h>
 
 /* Use prototypes in function declarations. */
 #define YY_USE_PROTOS
@@ -1007,7 +1007,7 @@ char *yytext;
 #define INITIAL 0
 #line 2 "Gmsh.l"
 
-// $Id: Gmsh.yy.cpp,v 1.147 2003-01-24 23:13:36 geuzaine Exp $
+// $Id: Gmsh.yy.cpp,v 1.148 2003-02-12 20:27:14 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -1217,7 +1217,7 @@ YY_MALLOC_DECL
 YY_DECL
 	{
 	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
+	register char *yy_cp = NULL, *yy_bp = NULL;
 	register int yy_act;
 
 #line 82 "Gmsh.l"
@@ -2881,11 +2881,6 @@ YY_BUFFER_STATE b;
 	}
 
 
-#ifndef YY_ALWAYS_INTERACTIVE
-#ifndef YY_NEVER_INTERACTIVE
-extern int isatty YY_PROTO(( int ));
-#endif
-#endif
 
 #ifdef YY_USE_PROTOS
 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
diff --git a/Parser/OpenFile.cpp b/Parser/OpenFile.cpp
index 597ea5d591bd1f9f884c75f47f0f6b437139414b..ede8369cd876d07d56a111ee901dba4add0be37a 100644
--- a/Parser/OpenFile.cpp
+++ b/Parser/OpenFile.cpp
@@ -1,4 +1,4 @@
-// $Id: OpenFile.cpp,v 1.38 2003-02-12 09:20:41 remacle Exp $
+// $Id: OpenFile.cpp,v 1.39 2003-02-12 20:27:14 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -32,12 +32,9 @@
 #include "Visibility.h"
 #include "ReadImg.h"
 
-#ifndef _BLACKBOX
+#if defined(HAVE_FLTK)
 #include "GmshUI.h"
 #include "Draw.h"
-#endif
-
-#if _FLTK
 #include "GUI.h"
 extern GUI *WID;
 #endif
@@ -108,22 +105,26 @@ void ParseString(char *str){
 
 
 int MergeProblem(char *name){
-
   char ext[5];
 
-  strncpy (ext,&name[strlen(name)-4],5);
-  /// a jpg file is used as an inpu, we transform it onto 
-  /// a post pro file that could be used as a background mesh
+  if(strlen(name) > 4){
+    strncpy(ext,&name[strlen(name)-4],5);
+  }
+  else{
+    strcpy(ext, "");
+  }
 
-  if(!strcmp(ext,".ppm") ||!strcmp(ext,".pnm"))
-    {
-      read_pnm (name);
-      return 1;
-    }
-  else
-    {
-      return ParseFile(name,0);  
-    }
+  // a image file is used as an input, we transform it onto 
+  // a post pro file that could be used as a background mesh
+  if(!strcmp(ext,".ppm") ||!strcmp(ext,".pnm")){
+#if defined(HAVE_FLTK)
+    read_pnm (name);
+#endif
+    return 1;
+  }
+  else{
+    return ParseFile(name,0);  
+  }
 }
 
 void MergeProblemWithBoundingBox(char *name){
@@ -158,7 +159,12 @@ void OpenProblem(char *name){
   strncpy(CTX.filename,name,255);
   strncpy(CTX.base_filename,name,255);
 
-  strcpy(ext,name+(strlen(name)-4));
+  if(strlen(name) > 4){
+    strncpy(ext,&name[strlen(name)-4],5);
+  }
+  else{
+    strcpy(ext, "");
+  }
   if(!strcmp(ext,".geo") || !strcmp(ext,".GEO") ||
      !strcmp(ext,".msh") || !strcmp(ext,".MSH") ||
      !strcmp(ext,".stl") || !strcmp(ext,".STL") ||
@@ -173,14 +179,12 @@ void OpenProblem(char *name){
 
   strncpy(THEM->name, CTX.base_filename,255);
 
-#if _FLTK
+#if defined(HAVE_FLTK)
   if(!CTX.batch) WID->set_title(CTX.filename);
 #endif
 
   int nb = List_Nbr(CTX.post.list);
-
   int status = MergeProblem(CTX.filename);
-    //ParseFile(CTX.filename,0);
 
   ApplyLcFactor(THEM);
 
@@ -191,11 +195,8 @@ void OpenProblem(char *name){
     Maillage_Dimension_0(&M);
   }
 
-#if _FLTK
+#if defined(HAVE_FLTK)
   if(!CTX.batch) WID->reset_visibility();
-#endif
-
-#ifndef _BLACKBOX
   ZeroHighlight(&M); 
 #endif
 
@@ -228,7 +229,7 @@ void decygwin(char *in, char *out){
 }
 
 void SystemCall(char *command){
-#if defined(WIN32) && !defined(_BLACKBOX)
+#if defined(WIN32) && defined(HAVE_FLTK)
   STARTUPINFO		suInfo;	// Process startup information
   PROCESS_INFORMATION	prInfo;	// Process information
   
diff --git a/Plugin/Plugin.cpp b/Plugin/Plugin.cpp
index e7c6b58c5ae1278d59bc91a02df8a32c322c5005..7557ef4791c325b9b0a4bc691d10409aaf75f93d 100644
--- a/Plugin/Plugin.cpp
+++ b/Plugin/Plugin.cpp
@@ -1,4 +1,4 @@
-// $Id: Plugin.cpp,v 1.34 2003-01-25 01:32:58 geuzaine Exp $
+// $Id: Plugin.cpp,v 1.35 2003-02-12 20:27:14 geuzaine Exp $
 //
 // Copyright (C) 1997 - 2003 C. Geuzaine, J.-F. Remacle
 //
@@ -19,20 +19,19 @@
 // 
 // Please report all bugs and problems to "gmsh@geuz.org".
 
-#ifndef _NODLL
+#if !defined(NODLL)
 #include <dlfcn.h>
 #endif
 
 #include <map>
 
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
 #include <FL/Fl.H>
 #include <FL/filename.H>
 #endif
 
 #include "Plugin.h"
 #include "PluginManager.h"
-
 #include "CutMap.h"
 #include "CutPlane.h"
 #include "CutSphere.h"
@@ -135,7 +134,7 @@ void GMSH_PluginManager::RegisterDefaultPlugins(){
   allPlugins.insert(std::pair<char*,GMSH_Plugin*>("SphericalRaise",
 						  GMSH_RegisterSphericalRaisePlugin()));
 
-#ifdef _FLTK
+#if defined(HAVE_FLTK)
   struct dirent **list;
   char ext[6];
   char *homeplugins = getenv ("GMSHPLUGINSHOME");
@@ -162,7 +161,7 @@ void GMSH_PluginManager::RegisterDefaultPlugins(){
 
 void GMSH_PluginManager::AddPlugin( char *dirName, char *pluginName){
 
-#if defined(_NODLL) || !defined(_FLTK)
+#if defined(NODLL) || !defined(HAVE_FLTK)
   Msg(WARNING,"No dynamic plugin loading on this platform");
   return;
 #else
diff --git a/configure b/configure
index 4f52a5f094bcfbe645413140afca9f5caec59fe1..2235f821aa81a89ed199efc2ff7ec15cfdb7b2f0 100755
--- a/configure
+++ b/configure
@@ -1,19 +1,11 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.53.
+# Generated by GNU Autoconf 2.56.
 #
 # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
 # Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-
 ## --------------------- ##
 ## M4sh Initialization.  ##
 ## --------------------- ##
@@ -22,11 +14,13 @@ fi
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
 
-# NLS nuisances.
 # Support unset when possible.
 if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
   as_unset=unset
@@ -34,34 +28,42 @@ else
   as_unset=false
 fi
 
-(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
-    { $as_unset LANG || test "${LANG+set}" != set; } ||
-      { LANG=C; export LANG; }
-(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
-    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
-      { LC_ALL=C; export LC_ALL; }
-(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
-    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
-      { LC_TIME=C; export LC_TIME; }
-(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
-    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
-      { LC_CTYPE=C; export LC_CTYPE; }
-(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
-    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
-      { LANGUAGE=C; export LANGUAGE; }
-(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
-    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
-      { LC_COLLATE=C; export LC_COLLATE; }
-(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
-    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
-      { LC_NUMERIC=C; export LC_NUMERIC; }
-(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
-    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
-      { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
 
 
 # Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
+as_me=`$as_basename "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)$' \| \
@@ -72,6 +74,7 @@ echo X/"$0" |
   	  /^X\/\(\/\).*/{ s//\1/; q; }
   	  s/.*/./; q'`
 
+
 # PATH needs CR, and LINENO needs CR and PATH.
 # Avoid depending upon Character Ranges.
 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
@@ -82,15 +85,15 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 # The user is always right.
 if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conftest.sh
-  echo  "exit 0"   >>conftest.sh
-  chmod +x conftest.sh
-  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
     PATH_SEPARATOR=';'
   else
     PATH_SEPARATOR=:
   fi
-  rm -f conftest.sh
+  rm -f conf$$.sh
 fi
 
 
@@ -138,6 +141,8 @@ do
   as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
   test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
 	     CONFIG_SHELL=$as_dir/$as_base
 	     export CONFIG_SHELL
 	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
@@ -210,6 +215,12 @@ else
 fi
 rm -f conf$$ conf$$.exe conf$$.file
 
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  as_mkdir_p=false
+fi
+
 as_executable_p="test -f"
 
 # Sed expression to map a string onto a valid CPP name.
@@ -226,7 +237,7 @@ as_nl='
 IFS=" 	$as_nl"
 
 # CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
+$as_unset CDPATH
 
 
 # Name of the host.
@@ -240,6 +251,7 @@ exec 6>&1
 # Initializations.
 #
 ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
 cross_compiling=no
 subdirs=
 MFLAGS=
@@ -296,6 +308,8 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS UNAME CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX CPP RANLIB ac_ct_RANLIB AR FLTKCONFIG EGREP VERSION_FLAGS GUI_INCLUDE OPT_FLAGS OS_FLAGS LINKER GMSH_DIRS GMSH_LIBS POSTBUILD GSL_LIBS GSL_INCLUDE LIBOBJS LTLIBOBJS'
+ac_subst_files=''
 
 # Initialize some variables set by options.
 ac_init_help=
@@ -719,6 +733,9 @@ if test ! -r $srcdir/$ac_unique_file; then
    { (exit 1); exit 1; }; }
   fi
 fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+   { (exit 1); exit 1; }; }
 srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
 ac_env_build_alias_set=${build_alias+set}
 ac_env_build_alias_value=$build_alias
@@ -760,10 +777,6 @@ ac_env_CPP_set=${CPP+set}
 ac_env_CPP_value=$CPP
 ac_cv_env_CPP_set=${CPP+set}
 ac_cv_env_CPP_value=$CPP
-ac_env_CXXCPP_set=${CXXCPP+set}
-ac_env_CXXCPP_value=$CXXCPP
-ac_cv_env_CXXCPP_set=${CXXCPP+set}
-ac_cv_env_CXXCPP_value=$CXXCPP
 
 #
 # Report the --help message.
@@ -834,15 +847,15 @@ if test -n "$ac_init_help"; then
 Optional Features:
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-gui            build the graphical user interface (default=yes)
-  --enable-parallel       enable parallel version (default=no)
-  --enable-triangle       compile Triangle if available (default=yes)
+--enable-gui        build the graphical user interface (default=yes)
+--enable-parallel   enable parallel version (default=no)
+--enable-triangle compile Triangle if available (default=yes)
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-gsl-prefix=PFX   prefix where GSL is installed
-  --with-fltk-prefix=PFX  prefix where FLTK is installed
+--with-gsl-prefix=PFX   prefix where GSL is installed
+--with-fltk-prefix=PFX  prefix where FLTK is installed
 
 Some influential environment variables:
   CC          C compiler command
@@ -854,7 +867,6 @@ Some influential environment variables:
   CXX         C++ compiler command
   CXXFLAGS    C++ compiler flags
   CPP         C preprocessor
-  CXXCPP      C++ preprocessor
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -895,7 +907,7 @@ esac
 # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
 # absolute.
 ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
 ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
 ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
 
@@ -935,7 +947,7 @@ This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.53.  Invocation command line was
+generated by GNU Autoconf 2.56.  Invocation command line was
 
   $ $0 $@
 
@@ -987,27 +999,54 @@ _ACEOF
 
 # Keep a trace of the command line.
 # Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
 # Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
 ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
 ac_sep=
-for ac_arg
+ac_must_keep_next=false
+for ac_pass in 1 2
 do
-  case $ac_arg in
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n ) continue ;;
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    continue ;;
-  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-    ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-  esac
-  case " $ac_configure_args " in
-    *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-    *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-       ac_sep=" " ;;
-  esac
-  # Get rid of the leading space.
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+        ac_must_keep_next=false # Got value, back to normal.
+      else
+        case $ac_arg in
+          *=* | --config-cache | -C | -disable-* | --disable-* \
+          | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+          | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+          | -with-* | --with-* | -without-* | --without-* | --x)
+            case "$ac_configure_args0 " in
+              "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+            esac
+            ;;
+          -* ) ac_must_keep_next=true ;;
+        esac
+      fi
+      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+      # Get rid of the leading space.
+      ac_sep=" "
+      ;;
+    esac
+  done
 done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
 
 # When interrupted or exit'd, cleanup temporary files, and complete
 # config.log.  We remove comments because anyway the quotes in there
@@ -1018,6 +1057,7 @@ trap 'exit_status=$?
   # Save into config.log some information that might help in debugging.
   {
     echo
+
     cat <<\_ASBOX
 ## ---------------- ##
 ## Cache variables. ##
@@ -1040,6 +1080,35 @@ _ASBOX
     esac;
 }
     echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=$`echo $ac_var`
+      echo "$ac_var='"'"'$ac_val'"'"'"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=$`echo $ac_var`
+        echo "$ac_var='"'"'$ac_val'"'"'"
+      done | sort
+      echo
+    fi
+
     if test -s confdefs.h; then
       cat <<\_ASBOX
 ## ----------- ##
@@ -1047,7 +1116,7 @@ _ASBOX
 ## ----------- ##
 _ASBOX
       echo
-      sed "/^$/d" confdefs.h
+      sed "/^$/d" confdefs.h | sort
       echo
     fi
     test "$ac_signal" != 0 &&
@@ -1205,6 +1274,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
+
 
 # Check whether --with-gsl-prefix or --without-gsl-prefix was given.
 if test "${with_gsl_prefix+set}" = set; then
@@ -1247,13 +1317,6 @@ if test "x${UNAME}" = "xIRIX64"; then
 fi
 
 
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -1458,9 +1521,7 @@ if test $ac_prog_rejected = yes; then
     # However, it has the same basename, so the bogon will be chosen
     # first if we set CC to just the basename; use the full file name.
     shift
-    set dummy "$as_dir/$ac_word" ${1+"$@"}
-    shift
-    ac_cv_prog_CC="$@"
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
   fi
 fi
 fi
@@ -1565,8 +1626,10 @@ fi
 fi
 
 
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;}
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 
 # Provide some information about the compiler.
@@ -1591,14 +1654,12 @@ ac_compiler=`set X $ac_compile; echo $2`
 
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -1608,7 +1669,7 @@ main ()
 }
 _ACEOF
 ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe"
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
@@ -1627,26 +1688,39 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
 # Be careful to initialize this variable, since it used to be cached.
 # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
 ac_cv_exeext=
-for ac_file in `ls a_out.exe a.exe conftest.exe 2>/dev/null;
-                ls a.out conftest 2>/dev/null;
-                ls a.* conftest.* 2>/dev/null`; do
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+  test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb | *.xSYM ) ;;
-    a.out ) # We found the default executable, but exeext='' is most
-            # certainly right.
-            break;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-          # FIXME: I believe we export ac_cv_exeext for Libtool --akim.
-          export ac_cv_exeext
-          break;;
-    * ) break;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+        ;;
+    conftest.$ac_ext )
+        # This is the source file.
+        ;;
+    [ab].out )
+        # We found the default executable, but exeext='' is most
+        # certainly right.
+        break;;
+    *.* )
+        ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+        # FIXME: I believe we export ac_cv_exeext for Libtool,
+        # but it would be cool to find out if it's true.  Does anybody
+        # maintain Libtool? --akim.
+        export ac_cv_exeext
+        break;;
+    * )
+        break;;
   esac
 done
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables" >&5
-echo "$as_me: error: C compiler cannot create executables" >&2;}
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
    { (exit 77); exit 77; }; }
 fi
 
@@ -1673,9 +1747,11 @@ if test "$cross_compiling" != yes; then
 	cross_compiling=yes
     else
 	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&5
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
 echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'." >&2;}
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
     fi
   fi
@@ -1683,7 +1759,7 @@ fi
 echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 
-rm -f a.out a.exe conftest$ac_cv_exeext
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
 # Check the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
@@ -1703,9 +1779,10 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
 # `rm'.
-for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
           export ac_cv_exeext
           break;;
@@ -1713,8 +1790,10 @@ for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
   esac
 done
 else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;}
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
@@ -1732,14 +1811,12 @@ if test "${ac_cv_objext+set}" = set; then
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -1756,16 +1833,19 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (exit $ac_status); }; then
   for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
        break;;
   esac
 done
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;}
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
@@ -1782,14 +1862,12 @@ if test "${ac_cv_c_compiler_gnu+set}" = set; then
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -1816,7 +1894,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_compiler_gnu=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
@@ -1836,14 +1915,12 @@ if test "${ac_cv_prog_cc_g+set}" = set; then
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -1867,7 +1944,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_cv_prog_cc_g=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_prog_cc_g=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
@@ -1889,6 +1967,102 @@ else
     CFLAGS=
   fi
 fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+#line $LINENO "configure"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX 10.20 and later	-Ae
+# HP-UX older versions	-Aa -D_HPUX_SOURCE
+# SVR4			-Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
 # Some people use a C++ compiler to compile C.  Since we use `exit',
 # in C++ we need to declare it.  In case someone uses the same compiler
 # for both compiling C and C++ we need to have the C++ compiler decide
@@ -1921,15 +2095,13 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
 do
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <stdlib.h>
 $ac_declaration
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -1953,20 +2125,19 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   :
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 continue
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 $ac_declaration
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -1990,7 +2161,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   break
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 done
@@ -2003,14 +2175,15 @@ fi
 
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 ac_ext=cc
 ac_cpp='$CXXCPP $CPPFLAGS'
@@ -2132,14 +2305,12 @@ if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -2166,7 +2337,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_compiler_gnu=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_compiler_gnu=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
@@ -2186,14 +2358,12 @@ if test "${ac_cv_prog_cxx_g+set}" = set; then
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -2217,7 +2387,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_cv_prog_cxx_g=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_prog_cxx_g=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
@@ -2250,15 +2421,13 @@ for ac_declaration in \
 do
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <stdlib.h>
 $ac_declaration
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -2282,20 +2451,19 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   :
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 continue
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 $ac_declaration
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -2319,7 +2487,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   break
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 done
@@ -2330,11 +2499,11 @@ if test -n "$ac_declaration"; then
   echo '#endif'             >>confdefs.h
 fi
 
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 ac_ext=c
@@ -2364,14 +2533,18 @@ do
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <assert.h>
                      Syntax error
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
@@ -2388,7 +2561,8 @@ if test -z "$ac_cpp_err"; then
   :
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Broken: fails on valid input.
 continue
 fi
@@ -2398,13 +2572,17 @@ rm -f conftest.err conftest.$ac_ext
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
@@ -2422,7 +2600,8 @@ if test -z "$ac_cpp_err"; then
 continue
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Passes both tests.
 ac_preproc_ok=:
 break
@@ -2455,14 +2634,18 @@ do
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <assert.h>
                      Syntax error
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
@@ -2479,7 +2662,8 @@ if test -z "$ac_cpp_err"; then
   :
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Broken: fails on valid input.
 continue
 fi
@@ -2489,13 +2673,17 @@ rm -f conftest.err conftest.$ac_ext
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
@@ -2513,7 +2701,8 @@ if test -z "$ac_cpp_err"; then
 continue
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   # Passes both tests.
 ac_preproc_ok=:
 break
@@ -2526,16 +2715,18 @@ rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
@@ -2672,7 +2863,7 @@ if test "x$enable_gui" != "xno"; then
 
   GMSH_DIRS="${GMSH_DIRS} Graphics Fltk"
   GMSH_LIBS="-Llib -lGmshFltk -lGmshParser -lGmshGraphics -lGmshMesh -lGmshGeo -lGmshNumeric -lGmshCommon -lGmshDataStr -lGmshPlugin -lGmshParallel"
-  VERSION_FLAGS="-D_FLTK"
+  VERSION_FLAGS="-DHAVE_FLTK"
 
   if test "x${FLTK_PREFIX}" != "x" ; then
     # Extract the first word of "fltk-config", so it can be a program name with args.
@@ -2766,201 +2957,20 @@ echo "$as_me: error: Could not find fltk-config. Try --with-fltk-prefix?" >&2;}
   GUI_LIBS="${GUI_LIBS} `$FLTKCONFIG --use-gl --use-images --ldflags`"
   GUI_INCLUDE="${GUI_INCLUDE} `$FLTKCONFIG --use-gl --use-images --cxxflags`"
 
-    ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
-echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
-if test -z "$CXXCPP"; then
-  if test "${ac_cv_prog_CXXCPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <assert.h>
-                     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
-fi
-echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$CXXCPP" >&6
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <assert.h>
-                     Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether non-existent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-#include "confdefs.h"
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  # Broken: success on invalid input.
-continue
-else
-  echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
-   { (exit 1); exit 1; }; }
+  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi
 fi
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
 
 
 echo "$as_me:$LINENO: checking for ANSI C header files" >&5
@@ -2970,48 +2980,59 @@ if test "${ac_cv_header_stdc+set}" = set; then
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <stdlib.h>
 #include <stdarg.h>
 #include <string.h>
 #include <float.h>
 
+int
+main ()
+{
+
+  ;
+  return 0;
+}
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
   ac_cv_header_stdc=yes
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  ac_cv_header_stdc=no
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
 fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.$ac_objext conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <string.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "memchr" >/dev/null 2>&1; then
+  $EGREP "memchr" >/dev/null 2>&1; then
   :
 else
   ac_cv_header_stdc=no
@@ -3024,12 +3045,16 @@ if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <stdlib.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "free" >/dev/null 2>&1; then
+  $EGREP "free" >/dev/null 2>&1; then
   :
 else
   ac_cv_header_stdc=no
@@ -3045,13 +3070,18 @@ if test $ac_cv_header_stdc = yes; then
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <ctype.h>
 #if ((' ' & 0x0FF) == 0x020)
 # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 #else
-# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \
+# define ISLOWER(c) \
+                   (('a' <= (c) && (c) <= 'i') \
                      || ('j' <= (c) && (c) <= 'r') \
                      || ('s' <= (c) && (c) <= 'z'))
 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
@@ -3084,11 +3114,12 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 else
   echo "$as_me: program exited with status $ac_status" >&5
 echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ( exit $ac_status )
 ac_cv_header_stdc=no
 fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 fi
@@ -3123,7 +3154,11 @@ if eval "test \"\${$as_ac_Header+set}\" = set"; then
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 $ac_includes_default
 
 #include <$ac_header>
@@ -3143,7 +3178,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   eval "$as_ac_Header=yes"
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 eval "$as_ac_Header=no"
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
@@ -3174,7 +3210,11 @@ echo "$as_me:$LINENO: checking jpeglib.h usability" >&5
 echo $ECHO_N "checking jpeglib.h usability... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 $ac_includes_default
 #include <jpeglib.h>
 _ACEOF
@@ -3193,7 +3233,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_header_compiler=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
@@ -3205,19 +3246,23 @@ echo "$as_me:$LINENO: checking jpeglib.h presence" >&5
 echo $ECHO_N "checking jpeglib.h presence... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <jpeglib.h>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_c_preproc_warn_flag
   else
     ac_cpp_err=
   fi
@@ -3228,7 +3273,8 @@ if test -z "$ac_cpp_err"; then
   ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   ac_header_preproc=no
 fi
 rm -f conftest.err conftest.$ac_ext
@@ -3241,14 +3287,32 @@ case $ac_header_compiler:$ac_header_preproc in
     { echo "$as_me:$LINENO: WARNING: jpeglib.h: accepted by the compiler, rejected by the preprocessor!" >&5
 echo "$as_me: WARNING: jpeglib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
     { echo "$as_me:$LINENO: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&2;};;
+echo "$as_me: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
   no:yes )
     { echo "$as_me:$LINENO: WARNING: jpeglib.h: present but cannot be compiled" >&5
 echo "$as_me: WARNING: jpeglib.h: present but cannot be compiled" >&2;}
     { echo "$as_me:$LINENO: WARNING: jpeglib.h: check for missing prerequisite headers?" >&5
 echo "$as_me: WARNING: jpeglib.h: check for missing prerequisite headers?" >&2;}
     { echo "$as_me:$LINENO: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&2;};;
+echo "$as_me: WARNING: jpeglib.h: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
 esac
 echo "$as_me:$LINENO: checking for jpeglib.h" >&5
 echo $ECHO_N "checking for jpeglib.h... $ECHO_C" >&6
@@ -3272,7 +3336,11 @@ LIBS="-ljpeg  $LIBS"
 
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -3281,12 +3349,6 @@ extern "C"
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
 char jpeg_destroy_decompress ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -3310,7 +3372,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_cv_lib_jpeg_jpeg_destroy_decompress=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_lib_jpeg_jpeg_destroy_decompress=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
@@ -3330,7 +3393,7 @@ else
 
   GMSH_DIRS="${GMSH_DIRS} Box"
   GMSH_LIBS="-Llib -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshNumeric -lGmshPlugin -lGmshCommon -lGmshDataStr -lGmshParallel"
-  VERSION_FLAGS="-D_BLACKBOX"
+  VERSION_FLAGS=""
   GUI_LIBS=""
   GUI_INCLUDE=""
 
@@ -3393,12 +3456,12 @@ case "$UNAME" in
     ;;
 
   Darwin*)
-    OS_FLAGS="${OS_FLAGS} -D_NODLL"
+    OS_FLAGS="${OS_FLAGS} -DNODLL"
     POSTBUILD="/Developer/Tools/Rez -t APPL -o bin/gmsh Fltk/MacRes.r"
     ;;
 
   AIX*)
-    OS_FLAGS="${OS_FLAGS} -D_BSD -D_NODLL"
+    OS_FLAGS="${OS_FLAGS} -D_BSD -DNODLL"
     ;;
 
   IRIX*)
@@ -3411,12 +3474,12 @@ case "$UNAME" in
     ;;
 
   SunOS*)
-    OS_FLAGS="${OS_FLAGS} -D_NODLL"
+    OS_FLAGS="${OS_FLAGS} -DNODLL"
     GMSH_LIBS="${GMSH_LIBS} -lsocket -lnsl -ldl"
     ;;
 
   HP-UX*)
-    OS_FLAGS="-D_NODLL"
+    OS_FLAGS="-DNODLL"
     ;;
 
 esac
@@ -3429,16 +3492,14 @@ else
   # See if sys/param.h defines the BYTE_ORDER macro.
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/param.h>
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -3465,16 +3526,14 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/param.h>
 
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -3501,32 +3560,32 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_cv_c_bigendian=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_c_bigendian=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 # It does not; compile a test program.
 if test "$cross_compiling" = yes; then
-  # try to guess the endianess by grep'ing values into an object file
+  # try to guess the endianness by grepping values into an object file
   ac_cv_c_bigendian=unknown
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
 short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
 void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; }
 short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
 short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
 void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; }
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -3547,10 +3606,10 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  if fgrep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then
   ac_cv_c_bigendian=yes
 fi
-if fgrep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
   if test "$ac_cv_c_bigendian" = unknown; then
     ac_cv_c_bigendian=no
   else
@@ -3560,13 +3619,18 @@ if fgrep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
 fi
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 else
   cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 int
 main ()
 {
@@ -3595,11 +3659,12 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
 else
   echo "$as_me: program exited with status $ac_status" >&5
 echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ( exit $ac_status )
 ac_cv_c_bigendian=yes
 fi
-rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
@@ -3608,17 +3673,13 @@ echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
 echo "${ECHO_T}$ac_cv_c_bigendian" >&6
 case $ac_cv_c_bigendian in
   yes)
-
-cat >>confdefs.h <<\_ACEOF
-#define WORDS_BIGENDIAN 1
-_ACEOF
- ;;
+    "" ;;
   no)
-    OS_FLAGS="-D_LITTLE_ENDIAN ${OS_FLAGS}" ;;
+    OS_FLAGS="-DLITTLE_ENDIAN ${OS_FLAGS}" ;;
   *)
-    { { echo "$as_me:$LINENO: error: unknown endianess
+    { { echo "$as_me:$LINENO: error: unknown endianness
 presetting ac_cv_c_bigendian=no (or yes) will help" >&5
-echo "$as_me: error: unknown endianess
+echo "$as_me: error: unknown endianness
 presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
    { (exit 1); exit 1; }; } ;;
 esac
@@ -3646,7 +3707,11 @@ else
 LIBS="-lgsl  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -3655,12 +3720,6 @@ extern "C"
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
 char gsl_vector_alloc ();
-#ifdef F77_DUMMY_MAIN
-#  ifdef __cplusplus
-     extern "C"
-#  endif
-   int F77_DUMMY_MAIN() { return 1; }
-#endif
 int
 main ()
 {
@@ -3684,7 +3743,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   ac_cv_lib_gsl_gsl_vector_alloc=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_cv_lib_gsl_gsl_vector_alloc=no
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
@@ -3726,7 +3786,11 @@ echo "$as_me:$LINENO: checking $ac_header usability" >&5
 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 $ac_includes_default
 #include <$ac_header>
 _ACEOF
@@ -3745,7 +3809,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   ac_header_compiler=yes
 else
   echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
 ac_header_compiler=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
@@ -3757,19 +3822,23 @@ echo "$as_me:$LINENO: checking $ac_header presence" >&5
 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
 #line $LINENO "configure"
-#include "confdefs.h"
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
-  egrep -v '^ *\+' conftest.er1 >conftest.err
+  grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
-    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_c_preproc_warn_flag
   else
     ac_cpp_err=
   fi
@@ -3780,7 +3849,8 @@ if test -z "$ac_cpp_err"; then
   ac_header_preproc=yes
 else
   echo "$as_me: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
   ac_header_preproc=no
 fi
 rm -f conftest.err conftest.$ac_ext
@@ -3793,14 +3863,32 @@ case $ac_header_compiler:$ac_header_preproc in
     { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
   no:yes )
     { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};;
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------ ##
+## Report this to bug-autoconf@gnu.org. ##
+## ------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
 esac
 echo "$as_me:$LINENO: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
@@ -3823,7 +3911,7 @@ fi
 done
 
 
-ac_config_files="$ac_config_files variables"
+          ac_config_files="$ac_config_files variables"
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
@@ -3834,7 +3922,7 @@ cat >confcache <<\_ACEOF
 # config.status only pays attention to the cache file if you give it
 # the --recheck option to rerun configure.
 #
-# `ac_cv_env_foo' variables (set or unset) will be overriden when
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
 # loading this file, other *unset* `ac_cv_foo' will be assigned the
 # following values.
 
@@ -3869,7 +3957,7 @@ _ACEOF
      t end
      /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
      : end' >>confcache
-if cmp -s $cache_file confcache; then :; else
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
   if test -w $cache_file; then
     test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
     cat confcache >$cache_file
@@ -3931,6 +4019,21 @@ DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
 rm -f confdef2opt.sed
 
 
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_i=`echo "$ac_i" |
+         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+  # 2. Add them.
+  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
 
 : ${CONFIG_STATUS=./config.status}
 ac_clean_files_save=$ac_clean_files
@@ -3945,11 +4048,12 @@ cat >$CONFIG_STATUS <<_ACEOF
 # configure, is in config.log if it exists.
 
 debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
 SHELL=\${CONFIG_SHELL-$SHELL}
 _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF
-
 ## --------------------- ##
 ## M4sh Initialization.  ##
 ## --------------------- ##
@@ -3958,11 +4062,13 @@ cat >>$CONFIG_STATUS <<\_ACEOF
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   emulate sh
   NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
 
-# NLS nuisances.
 # Support unset when possible.
 if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
   as_unset=unset
@@ -3970,34 +4076,42 @@ else
   as_unset=false
 fi
 
-(set +x; test -n "`(LANG=C; export LANG) 2>&1`") &&
-    { $as_unset LANG || test "${LANG+set}" != set; } ||
-      { LANG=C; export LANG; }
-(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") &&
-    { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } ||
-      { LC_ALL=C; export LC_ALL; }
-(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") &&
-    { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } ||
-      { LC_TIME=C; export LC_TIME; }
-(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") &&
-    { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } ||
-      { LC_CTYPE=C; export LC_CTYPE; }
-(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") &&
-    { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } ||
-      { LANGUAGE=C; export LANGUAGE; }
-(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") &&
-    { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } ||
-      { LC_COLLATE=C; export LC_COLLATE; }
-(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") &&
-    { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } ||
-      { LC_NUMERIC=C; export LC_NUMERIC; }
-(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") &&
-    { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } ||
-      { LC_MESSAGES=C; export LC_MESSAGES; }
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
 
 
 # Name of the executable.
-as_me=`(basename "$0") 2>/dev/null ||
+as_me=`$as_basename "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)$' \| \
@@ -4008,6 +4122,7 @@ echo X/"$0" |
   	  /^X\/\(\/\).*/{ s//\1/; q; }
   	  s/.*/./; q'`
 
+
 # PATH needs CR, and LINENO needs CR and PATH.
 # Avoid depending upon Character Ranges.
 as_cr_letters='abcdefghijklmnopqrstuvwxyz'
@@ -4018,15 +4133,15 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 # The user is always right.
 if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conftest.sh
-  echo  "exit 0"   >>conftest.sh
-  chmod +x conftest.sh
-  if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
     PATH_SEPARATOR=';'
   else
     PATH_SEPARATOR=:
   fi
-  rm -f conftest.sh
+  rm -f conf$$.sh
 fi
 
 
@@ -4075,6 +4190,8 @@ do
   as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
   test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
 	     CONFIG_SHELL=$as_dir/$as_base
 	     export CONFIG_SHELL
 	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
@@ -4148,6 +4265,12 @@ else
 fi
 rm -f conf$$ conf$$.exe conf$$.file
 
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  as_mkdir_p=false
+fi
+
 as_executable_p="test -f"
 
 # Sed expression to map a string onto a valid CPP name.
@@ -4164,7 +4287,7 @@ as_nl='
 IFS=" 	$as_nl"
 
 # CDPATH.
-$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; }
+$as_unset CDPATH
 
 exec 6>&1
 
@@ -4181,7 +4304,7 @@ _ASBOX
 cat >&5 <<_CSEOF
 
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.53.  Invocation command line was
+generated by GNU Autoconf 2.56.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -4221,6 +4344,7 @@ Usage: $0 [OPTIONS] [FILE]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number, then exit
+  -q, --quiet      do not print progress messages
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
   --file=FILE[:TEMPLATE]
@@ -4235,7 +4359,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.53,
+configured by $0, generated by GNU Autoconf 2.56,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
@@ -4255,25 +4379,25 @@ do
   --*=*)
     ac_option=`expr "x$1" : 'x\([^=]*\)='`
     ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    shift
-    set dummy "$ac_option" "$ac_optarg" ${1+"$@"}
-    shift
+    ac_shift=:
+    ;;
+  -*)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
     ;;
-  -*);;
   *) # This is not an option, so the user has probably given explicit
      # arguments.
+     ac_option=$1
      ac_need_defaults=false;;
   esac
 
-  case $1 in
+  case $ac_option in
   # Handling of the options.
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion"
-    exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;;
-_ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
   --version | --vers* | -V )
     echo "$ac_cs_version"; exit 0 ;;
   --he | --h)
@@ -4288,13 +4412,16 @@ Try \`$0 --help' for more information." >&2;}
   --debug | --d* | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
-    shift
-    CONFIG_FILES="$CONFIG_FILES $1"
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
-    shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $1"
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
     ac_need_defaults=false;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
 
   # This is an error.
   -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
@@ -4309,6 +4436,20 @@ Try \`$0 --help' for more information." >&2;}
   shift
 done
 
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
 _ACEOF
 
 
@@ -4335,6 +4476,9 @@ if $ac_need_defaults; then
   test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
 fi
 
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
 # Create a temporary directory, and hook for its removal unless debugging.
 $debug ||
 {
@@ -4343,17 +4487,17 @@ $debug ||
 }
 
 # Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
+
 {
-  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` &&
+  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
   test -n "$tmp" && test -d "$tmp"
 }  ||
 {
-  tmp=$TMPDIR/cs$$-$RANDOM
+  tmp=./confstat$$-$RANDOM
   (umask 077 && mkdir $tmp)
 } ||
 {
-   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
+   echo "$me: cannot create a temporary directory in ." >&2
    { (exit 1); exit 1; }
 }
 
@@ -4417,7 +4561,7 @@ s,@RANLIB@,$RANLIB,;t t
 s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
 s,@AR@,$AR,;t t
 s,@FLTKCONFIG@,$FLTKCONFIG,;t t
-s,@CXXCPP@,$CXXCPP,;t t
+s,@EGREP@,$EGREP,;t t
 s,@VERSION_FLAGS@,$VERSION_FLAGS,;t t
 s,@GUI_INCLUDE@,$GUI_INCLUDE,;t t
 s,@OPT_FLAGS@,$OPT_FLAGS,;t t
@@ -4428,6 +4572,8 @@ s,@GMSH_LIBS@,$GMSH_LIBS,;t t
 s,@POSTBUILD@,$POSTBUILD,;t t
 s,@GSL_LIBS@,$GSL_LIBS,;t t
 s,@GSL_INCLUDE@,$GSL_INCLUDE,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 CEOF
 
 _ACEOF
@@ -4498,25 +4644,30 @@ echo X"$ac_file" |
   	  /^X\(\/\/\)$/{ s//\1/; q; }
   	  /^X\(\/\).*/{ s//\1/; q; }
   	  s/.*/./; q'`
-  { case "$ac_dir" in
-  [\\/]* | ?:[\\/]* ) as_incr_dir=;;
-  *)                      as_incr_dir=.;;
-esac
-as_dummy="$ac_dir"
-for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do
-  case $as_mkdir_dir in
-    # Skip DOS drivespec
-    ?:) as_incr_dir=$as_mkdir_dir ;;
-    *)
-      as_incr_dir=$as_incr_dir/$as_mkdir_dir
-      test -d "$as_incr_dir" ||
-        mkdir "$as_incr_dir" ||
-	{ { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }
-    ;;
-  esac
-done; }
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$as_dir" : 'X\(//\)[^/]' \| \
+         X"$as_dir" : 'X\(//\)$' \| \
+         X"$as_dir" : 'X\(/\)' \| \
+         .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
 
   ac_builddir=.
 
@@ -4546,7 +4697,7 @@ esac
 # Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
 # absolute.
 ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd`
+ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
 ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
 ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
 
@@ -4642,8 +4793,11 @@ ac_clean_files=$ac_clean_files_save
 # need to make the FD available again.
 if test "$no_create" != yes; then
   ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
   exec 5>/dev/null
-  $SHELL $CONFIG_STATUS || ac_cs_success=false
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
@@ -4655,6 +4809,7 @@ echo "*******************************************************************"
 echo "Gmsh is configured for"
 echo "- Operating system: $UNAME"
 echo "- Version flags: $VERSION_FLAGS"
+echo "- OS flags: $OS_FLAGS"
 echo "*******************************************************************"
 
 if test "x${HAVE_TRIANGLE}" = "xno"; then
diff --git a/configure.in b/configure.in
index 5263fa7845de4d320341ca63080d52a1e556393a..41d382c6686bd2a40e26de0b6679a0e98bcb79d1 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
-dnl "$Id: configure.in,v 1.12 2003-02-12 17:14:52 geuzaine Exp $"
+dnl "$Id: configure.in,v 1.13 2003-02-12 20:27:12 geuzaine Exp $"
 dnl
 dnl Machine independent configuration script for Gmsh.
 dnl
@@ -28,26 +28,21 @@ AC_INIT(Parser/Gmsh.y)
 
 dnl Parse --with command-line options
 AC_ARG_WITH(gsl-prefix,
-            AC_HELP_STRING([--with-gsl-prefix=PFX],
-                           [prefix where GSL is installed]),
+            [--with-gsl-prefix=PFX   prefix where GSL is installed],
             [GSL_PREFIX=$withval],[GSL_PREFIX="$GSL_DIR"])
 AC_ARG_WITH(fltk-prefix,
-            AC_HELP_STRING([--with-fltk-prefix=PFX],
-                           [prefix where FLTK is installed]),
+            [--with-fltk-prefix=PFX  prefix where FLTK is installed],
             [FLTK_PREFIX=$withval],[FLTK_PREFIX="$FLTK_DIR"])
 
 dnl Parse --enable command line options
 AC_ARG_ENABLE(gui,
-              AC_HELP_STRING([--enable-gui],
-                             [build the graphical user interface (default=yes)]))
+              [--enable-gui        build the graphical user interface (default=yes)])
 
 AC_ARG_ENABLE(parallel,
-              AC_HELP_STRING([--enable-parallel],
-                             [enable parallel version (default=no)]))
+              [--enable-parallel   enable parallel version (default=no)])
 
 AC_ARG_ENABLE(triangle,
-              AC_HELP_STRING([--enable-triangle],
-                             [compile Triangle if available (default=yes)]))
+              [--enable-triangle compile Triangle if available (default=yes)])
 
 dnl Get the operating system and version number
 UNAME=`uname`
@@ -57,9 +52,6 @@ if test "x${UNAME}" = "xIRIX64"; then
 fi
 AC_SUBST(UNAME)
 
-dnl Use C++ for configure tests
-AC_LANG(C++)
-
 dnl Check for default compilers
 AC_PROG_CC
 AC_PROG_CXX
@@ -86,7 +78,7 @@ if test "x$enable_gui" != "xno"; then
 
   GMSH_DIRS="${GMSH_DIRS} Graphics Fltk"
   GMSH_LIBS="-Llib -lGmshFltk -lGmshParser -lGmshGraphics -lGmshMesh -lGmshGeo -lGmshNumeric -lGmshCommon -lGmshDataStr -lGmshPlugin -lGmshParallel"
-  VERSION_FLAGS="-D_FLTK"
+  VERSION_FLAGS="-DHAVE_FLTK"
 
   if test "x${FLTK_PREFIX}" != "x" ; then
     AC_PATH_PROG(FLTKCONFIG,fltk-config,"",${FLTK_PREFIX})
@@ -112,7 +104,7 @@ else
 
   GMSH_DIRS="${GMSH_DIRS} Box"
   GMSH_LIBS="-Llib -lGmshBox -lGmshParser -lGmshMesh -lGmshGeo -lGmshNumeric -lGmshPlugin -lGmshCommon -lGmshDataStr -lGmshParallel"
-  VERSION_FLAGS="-D_BLACKBOX"
+  VERSION_FLAGS=""
   GUI_LIBS=""
   GUI_INCLUDE=""
 
@@ -158,12 +150,12 @@ case "$UNAME" in
     ;;
 
   Darwin*)
-    OS_FLAGS="${OS_FLAGS} -D_NODLL"
+    OS_FLAGS="${OS_FLAGS} -DNODLL"
     POSTBUILD="/Developer/Tools/Rez -t APPL -o bin/gmsh Fltk/MacRes.r"
     ;;
 
   AIX*)
-    OS_FLAGS="${OS_FLAGS} -D_BSD -D_NODLL"
+    OS_FLAGS="${OS_FLAGS} -D_BSD -DNODLL"
     ;;
 
   IRIX*)
@@ -176,18 +168,18 @@ case "$UNAME" in
     ;;
 
   SunOS*)
-    OS_FLAGS="${OS_FLAGS} -D_NODLL"
+    OS_FLAGS="${OS_FLAGS} -DNODLL"
     GMSH_LIBS="${GMSH_LIBS} -lsocket -lnsl -ldl"
     ;;
 
   HP-UX*)
-    OS_FLAGS="-D_NODLL"
+    OS_FLAGS="-DNODLL"
     ;;
 
 esac
 
 dnl Is the machine big or littke endian?
-AC_C_BIGENDIAN(,OS_FLAGS="-D_LITTLE_ENDIAN ${OS_FLAGS}")
+AC_C_BIGENDIAN("",OS_FLAGS="-DLITTLE_ENDIAN ${OS_FLAGS}")
 
 AC_SUBST(OPT_FLAGS)
 AC_SUBST(OS_FLAGS)
@@ -224,6 +216,7 @@ echo "*******************************************************************"
 echo "Gmsh is configured for"
 echo "- Operating system: $UNAME"
 echo "- Version flags: $VERSION_FLAGS"
+echo "- OS flags: $OS_FLAGS"
 echo "*******************************************************************"
 
 if test "x${HAVE_TRIANGLE}" = "xno"; then
diff --git a/variables.in b/variables.in
index 5da578b62e3f52e8a1df7a9a0ff2fc4d801808f0..d2ae9b49b2973806f181ad386b73cd771fd77e1b 100644
--- a/variables.in
+++ b/variables.in
@@ -8,7 +8,7 @@ LINKER=@LINKER@
 
 # Compiler flags
 OPT_FLAGS=@OPT_FLAGS@
-OS_FLAGS=@OS_FLAGS@ ${GSL_INCLUDE} 
+OS_FLAGS=@OS_FLAGS@
 VERSION_FLAGS=@VERSION_FLAGS@
 GUI_INCLUDE=@GUI_INCLUDE@