Drizzled Public API Documentation

sql_yacc.cc
00001 
00002 /* A Bison parser, made by GNU Bison 2.4.1.  */
00003 
00004 /* Skeleton implementation for Bison's Yacc-like parsers in C
00005    
00006       Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
00007    Free Software Foundation, Inc.
00008    
00009    This program is free software: you can redistribute it and/or modify
00010    it under the terms of the GNU General Public License as published by
00011    the Free Software Foundation, either version 3 of the License, or
00012    (at your option) any later version.
00013    
00014    This program is distributed in the hope that it will be useful,
00015    but WITHOUT ANY WARRANTY; without even the implied warranty of
00016    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017    GNU General Public License for more details.
00018    
00019    You should have received a copy of the GNU General Public License
00020    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
00021 
00022 /* As a special exception, you may create a larger work that contains
00023    part or all of the Bison parser skeleton and distribute that work
00024    under terms of your choice, so long as that work isn't itself a
00025    parser generator using the skeleton or a modified version thereof
00026    as a parser skeleton.  Alternatively, if you modify or redistribute
00027    the parser skeleton itself, you may (at your option) remove this
00028    special exception, which will cause the skeleton and the resulting
00029    Bison output files to be licensed under the GNU General Public
00030    License without this special exception.
00031    
00032    This special exception was added by the Free Software Foundation in
00033    version 2.2 of Bison.  */
00034 
00035 /* C LALR(1) parser skeleton written by Richard Stallman, by
00036    simplifying the original so-called "semantic" parser.  */
00037 
00038 /* All symbols defined below should begin with yy or YY, to avoid
00039    infringing on user name space.  This should be done even for local
00040    variables, as they might otherwise be expanded by user macros.
00041    There are some unavoidable exceptions within include files to
00042    define necessary library symbols; they are noted "INFRINGES ON
00043    USER NAME SPACE" below.  */
00044 
00045 /* Identify Bison output.  */
00046 #define YYBISON 1
00047 
00048 /* Bison version.  */
00049 #define YYBISON_VERSION "2.4.1"
00050 
00051 /* Skeleton name.  */
00052 #define YYSKELETON_NAME "yacc.c"
00053 
00054 /* Pure parsers.  */
00055 #define YYPURE 1
00056 
00057 /* Push parsers.  */
00058 #define YYPUSH 0
00059 
00060 /* Pull parsers.  */
00061 #define YYPULL 1
00062 
00063 /* Using locations.  */
00064 #define YYLSP_NEEDED 0
00065 
00066 /* Substitute the variable and function names.  */
00067 #define yyparse         base_sql_parse
00068 #define yylex           base_sql_lex
00069 #define yyerror         base_sql_error
00070 #define yylval          base_sql_lval
00071 #define yychar          base_sql_char
00072 #define yydebug         base_sql_debug
00073 #define yynerrs         base_sql_nerrs
00074 
00075 
00076 /* Copy the first part of user declarations.  */
00077 
00078 /* Line 189 of yacc.c  */
00079 #line 25 "drizzled/sql_yacc.yy"
00080 
00081 /* session is passed as an argument to yyparse(), and subsequently to yylex().
00082 ** The type will be void*, so it must be  cast to (Session*) when used.
00083 ** Use the YYSession macro for this.
00084 */
00085 
00086 #define YYSession (session)
00087 
00088 #define YYENABLE_NLS 0
00089 #define YYLTYPE_IS_TRIVIAL 0
00090 
00091 #define YYINITDEPTH 100
00092 #define YYMAXDEPTH 3200                        /* Because of 64K stack */
00093 #define Lex (session->lex())
00094 
00095 #include <config.h>
00096 #include <cstdio>
00097 #include <drizzled/parser.h>
00098 #include <drizzled/session.h>
00099 #include <drizzled/alter_column.h>
00100 #include <drizzled/alter_info.h>
00101 #include <drizzled/message/alter_table.pb.h>
00102 #include <drizzled/item/subselect.h>
00103 #include <drizzled/table_ident.h>
00104 #include <drizzled/var.h>
00105 #include <drizzled/system_variables.h>
00106 #include <drizzled/lex_input_stream.h>
00107 #include <drizzled/show.h>
00108 
00109 int yylex(union ParserType *yylval, drizzled::Session *session);
00110 
00111 #define yyoverflow(A,B,C,D,E,F)               \
00112   {                                           \
00113     unsigned long val= *(F);                          \
00114     if (drizzled::my_yyoverflow((B), (D), &val)) \
00115     {                                         \
00116       yyerror(NULL, (A));                   \
00117       return 2;                               \
00118     }                                         \
00119     else                                      \
00120     {                                         \
00121       *(F)= (YYSIZE_T)val;                    \
00122     }                                         \
00123   }
00124 
00125 #define DRIZZLE_YYABORT                         \
00126   do                                          \
00127   {                                           \
00128     YYABORT;                                  \
00129   } while (0)
00130 
00131 #define DRIZZLE_YYABORT_UNLESS(A)         \
00132   if (!(A))                             \
00133   {                                     \
00134     parser::my_parse_error(YYSession->m_lip);\
00135     DRIZZLE_YYABORT;                      \
00136   }
00137 
00138 namespace drizzled
00139 {
00140 
00141 class Table_ident;
00142 class Item;
00143 class Item_num;
00144 
00145 namespace item
00146 {
00147 class Boolean;
00148 class True;
00149 class False;
00150 }
00151 
00152 
00173 static void base_sql_error(drizzled::Session *session, const char* s)
00174 {
00175   parser::errorOn(session, s);
00176 }
00177 
00178 } /* namespace drizzled; */
00179 
00180 using namespace drizzled;
00181 
00182 
00183 /* Line 189 of yacc.c  */
00184 #line 185 "drizzled/sql_yacc.cc"
00185 
00186 /* Enabling traces.  */
00187 #ifndef YYDEBUG
00188 # define YYDEBUG 1
00189 #endif
00190 
00191 /* Enabling verbose error messages.  */
00192 #ifdef YYERROR_VERBOSE
00193 # undef YYERROR_VERBOSE
00194 # define YYERROR_VERBOSE 1
00195 #else
00196 # define YYERROR_VERBOSE 0
00197 #endif
00198 
00199 /* Enabling the token table.  */
00200 #ifndef YYTOKEN_TABLE
00201 # define YYTOKEN_TABLE 0
00202 #endif
00203 
00204 
00205 /* Tokens.  */
00206 #ifndef YYTOKENTYPE
00207 # define YYTOKENTYPE
00208    /* Put the tokens into the symbol table, so that GDB and other debuggers
00209       know about them.  */
00210    enum yytokentype {
00211      ABORT_SYM = 258,
00212      ACTION = 259,
00213      ADDDATE_SYM = 260,
00214      ADD_SYM = 261,
00215      AFTER_SYM = 262,
00216      AGGREGATE_SYM = 263,
00217      ALL = 264,
00218      ALTER_SYM = 265,
00219      ANALYZE_SYM = 266,
00220      AND_SYM = 267,
00221      ANY_SYM = 268,
00222      AS = 269,
00223      ASC = 270,
00224      ASENSITIVE_SYM = 271,
00225      AT_SYM = 272,
00226      AUTO_INC = 273,
00227      AVG_SYM = 274,
00228      BEFORE_SYM = 275,
00229      BEGIN_SYM = 276,
00230      BETWEEN_SYM = 277,
00231      BIGINT_SYM = 278,
00232      BINARY = 279,
00233      BIN_NUM = 280,
00234      BIT_SYM = 281,
00235      BLOB_SYM = 282,
00236      BOOLEAN_SYM = 283,
00237      BOOL_SYM = 284,
00238      BOTH = 285,
00239      BTREE_SYM = 286,
00240      BY = 287,
00241      CALL_SYM = 288,
00242      CASCADE = 289,
00243      CASCADED = 290,
00244      CASE_SYM = 291,
00245      CAST_SYM = 292,
00246      CATALOG_SYM = 293,
00247      CHAIN_SYM = 294,
00248      CHANGE_SYM = 295,
00249      CHARSET = 296,
00250      CHAR_SYM = 297,
00251      CHECKSUM_SYM = 298,
00252      CHECK_SYM = 299,
00253      CLOSE_SYM = 300,
00254      COALESCE = 301,
00255      COLLATE_SYM = 302,
00256      COLLATION_SYM = 303,
00257      COLUMNS = 304,
00258      COLUMN_SYM = 305,
00259      COMMENT_SYM = 306,
00260      COMMITTED_SYM = 307,
00261      COMMIT_SYM = 308,
00262      COMPACT_SYM = 309,
00263      COMPRESSED_SYM = 310,
00264      CONCURRENT = 311,
00265      CONDITION_SYM = 312,
00266      CONNECTION_SYM = 313,
00267      CONSISTENT_SYM = 314,
00268      CONSTRAINT = 315,
00269      CONTAINS_SYM = 316,
00270      CONVERT_SYM = 317,
00271      COUNT_SYM = 318,
00272      CREATE = 319,
00273      CROSS = 320,
00274      CUBE_SYM = 321,
00275      CURDATE = 322,
00276      CURRENT_USER = 323,
00277      CURSOR_SYM = 324,
00278      DATABASE = 325,
00279      DATABASES = 326,
00280      DATA_SYM = 327,
00281      DATETIME_SYM = 328,
00282      DATE_ADD_INTERVAL = 329,
00283      DATE_SUB_INTERVAL = 330,
00284      DATE_SYM = 331,
00285      DAY_HOUR_SYM = 332,
00286      DAY_MICROSECOND_SYM = 333,
00287      DAY_MINUTE_SYM = 334,
00288      DAY_SECOND_SYM = 335,
00289      DAY_SYM = 336,
00290      DEALLOCATE_SYM = 337,
00291      DECIMAL_NUM = 338,
00292      DECIMAL_SYM = 339,
00293      DECLARE_SYM = 340,
00294      DEFAULT = 341,
00295      DEFINER = 342,
00296      DELETE_SYM = 343,
00297      DESC = 344,
00298      DESCRIBE = 345,
00299      DETERMINISTIC_SYM = 346,
00300      DISABLE_SYM = 347,
00301      DISCARD = 348,
00302      DISTINCT = 349,
00303      DIV_SYM = 350,
00304      DOUBLE_SYM = 351,
00305      DO_SYM = 352,
00306      DROP = 353,
00307      DUMPFILE = 354,
00308      DUPLICATE_SYM = 355,
00309      DYNAMIC_SYM = 356,
00310      EACH_SYM = 357,
00311      ELSE = 358,
00312      ENABLE_SYM = 359,
00313      ENCLOSED = 360,
00314      END = 361,
00315      ENDS_SYM = 362,
00316      END_OF_INPUT = 363,
00317      ENGINE_SYM = 364,
00318      ENUM_SYM = 365,
00319      EQUAL_SYM = 366,
00320      ERRORS = 367,
00321      ESCAPED = 368,
00322      ESCAPE_SYM = 369,
00323      EXCLUSIVE_SYM = 370,
00324      EXECUTE_SYM = 371,
00325      EXISTS = 372,
00326      EXTENDED_SYM = 373,
00327      EXTRACT_SYM = 374,
00328      FALSE_SYM = 375,
00329      FILE_SYM = 376,
00330      FIRST_SYM = 377,
00331      FIXED_SYM = 378,
00332      FLOAT_NUM = 379,
00333      FLUSH_SYM = 380,
00334      FORCE_SYM = 381,
00335      FOREIGN = 382,
00336      FOR_SYM = 383,
00337      FOUND_SYM = 384,
00338      FRAC_SECOND_SYM = 385,
00339      FROM = 386,
00340      FULL = 387,
00341      GE = 388,
00342      GLOBAL_SYM = 389,
00343      GROUP_CONCAT_SYM = 390,
00344      GROUP_SYM = 391,
00345      HASH_SYM = 392,
00346      HAVING = 393,
00347      HEX_NUM = 394,
00348      HOUR_MICROSECOND_SYM = 395,
00349      HOUR_MINUTE_SYM = 396,
00350      HOUR_SECOND_SYM = 397,
00351      HOUR_SYM = 398,
00352      IDENT = 399,
00353      IDENTIFIED_SYM = 400,
00354      IDENTITY_SYM = 401,
00355      IDENT_QUOTED = 402,
00356      IF = 403,
00357      IGNORE_SYM = 404,
00358      IMPORT = 405,
00359      INDEXES = 406,
00360      INDEX_SYM = 407,
00361      INFILE = 408,
00362      INNER_SYM = 409,
00363      INOUT_SYM = 410,
00364      INSENSITIVE_SYM = 411,
00365      INSERT = 412,
00366      INTERVAL_SYM = 413,
00367      INTO = 414,
00368      INT_SYM = 415,
00369      INVOKER = 416,
00370      IN_SYM = 417,
00371      IS = 418,
00372      ISOLATION = 419,
00373      ITERATE_SYM = 420,
00374      IPV6_SYM = 421,
00375      JOIN_SYM = 422,
00376      KEYS = 423,
00377      KEY_BLOCK_SIZE = 424,
00378      KEY_SYM = 425,
00379      KILL_SYM = 426,
00380      LAST_SYM = 427,
00381      LE = 428,
00382      LEADING = 429,
00383      LEFT = 430,
00384      LEVEL_SYM = 431,
00385      LEX_HOSTNAME = 432,
00386      LIKE = 433,
00387      LIMIT = 434,
00388      LINES = 435,
00389      LOAD = 436,
00390      LOCAL_SYM = 437,
00391      LOCKS_SYM = 438,
00392      LOCK_SYM = 439,
00393      LOGS_SYM = 440,
00394      LONG_NUM = 441,
00395      LONG_SYM = 442,
00396      MATCH = 443,
00397      MAX_SYM = 444,
00398      MAX_VALUE_SYM = 445,
00399      MEDIUM_SYM = 446,
00400      MERGE_SYM = 447,
00401      MICROSECOND_SYM = 448,
00402      MINUTE_MICROSECOND_SYM = 449,
00403      MINUTE_SECOND_SYM = 450,
00404      MINUTE_SYM = 451,
00405      MIN_SYM = 452,
00406      MODE_SYM = 453,
00407      MODIFIES_SYM = 454,
00408      MODIFY_SYM = 455,
00409      MOD_SYM = 456,
00410      MONTH_SYM = 457,
00411      NAMES_SYM = 458,
00412      NAME_SYM = 459,
00413      NATIONAL_SYM = 460,
00414      NATURAL = 461,
00415      NE = 462,
00416      NEW_SYM = 463,
00417      NEXT_SYM = 464,
00418      NONE_SYM = 465,
00419      NOT_SYM = 466,
00420      NOW_SYM = 467,
00421      NO_SYM = 468,
00422      NULL_SYM = 469,
00423      NUM = 470,
00424      NUMERIC_SYM = 471,
00425      OFFLINE_SYM = 472,
00426      OFFSET_SYM = 473,
00427      ON = 474,
00428      ONE_SHOT_SYM = 475,
00429      ONE_SYM = 476,
00430      ONLINE_SYM = 477,
00431      OPEN_SYM = 478,
00432      OPTIMIZE = 479,
00433      OPTION = 480,
00434      OPTIONALLY = 481,
00435      ORDER_SYM = 482,
00436      OR_SYM = 483,
00437      OUTER = 484,
00438      OUTFILE = 485,
00439      OUT_SYM = 486,
00440      PARTIAL = 487,
00441      POSITION_SYM = 488,
00442      PRECISION = 489,
00443      PREV_SYM = 490,
00444      PRIMARY_SYM = 491,
00445      PROCESS = 492,
00446      PROCESSLIST_SYM = 493,
00447      QUARTER_SYM = 494,
00448      QUERY_SYM = 495,
00449      RANGE_SYM = 496,
00450      READS_SYM = 497,
00451      READ_SYM = 498,
00452      READ_WRITE_SYM = 499,
00453      REAL = 500,
00454      REDUNDANT_SYM = 501,
00455      REFERENCES = 502,
00456      REGEXP_SYM = 503,
00457      RELEASE_SYM = 504,
00458      RENAME = 505,
00459      REPEATABLE_SYM = 506,
00460      REPEAT_SYM = 507,
00461      REPLACE = 508,
00462      REPLICATE = 509,
00463      REPLICATION = 510,
00464      RESTRICT = 511,
00465      RETURNS_SYM = 512,
00466      RETURN_SYM = 513,
00467      REVOKE = 514,
00468      RIGHT = 515,
00469      ROLLBACK_SYM = 516,
00470      ROLLUP_SYM = 517,
00471      ROUTINE_SYM = 518,
00472      ROWS_SYM = 519,
00473      ROW_FORMAT_SYM = 520,
00474      ROW_SYM = 521,
00475      SAVEPOINT_SYM = 522,
00476      SECOND_MICROSECOND_SYM = 523,
00477      SECOND_SYM = 524,
00478      SECURITY_SYM = 525,
00479      SELECT_SYM = 526,
00480      SENSITIVE_SYM = 527,
00481      SEPARATOR_SYM = 528,
00482      SERIALIZABLE_SYM = 529,
00483      SERIAL_SYM = 530,
00484      SERVER_SYM = 531,
00485      SESSION_SYM = 532,
00486      SET_SYM = 533,
00487      SET_VAR = 534,
00488      SHARE_SYM = 535,
00489      SHOW = 536,
00490      SIGNED_SYM = 537,
00491      SIMPLE_SYM = 538,
00492      SNAPSHOT_SYM = 539,
00493      SPECIFIC_SYM = 540,
00494      SQLEXCEPTION_SYM = 541,
00495      SQLSTATE_SYM = 542,
00496      SQLWARNING_SYM = 543,
00497      SQL_BIG_RESULT = 544,
00498      SQL_BUFFER_RESULT = 545,
00499      SQL_CALC_FOUND_ROWS = 546,
00500      SQL_SMALL_RESULT = 547,
00501      SQL_SYM = 548,
00502      STARTING = 549,
00503      START_SYM = 550,
00504      STATUS_SYM = 551,
00505      STDDEV_SAMP_SYM = 552,
00506      STD_SYM = 553,
00507      STOP_SYM = 554,
00508      STORED_SYM = 555,
00509      STRAIGHT_JOIN = 556,
00510      STRING_SYM = 557,
00511      SUBDATE_SYM = 558,
00512      SUBJECT_SYM = 559,
00513      SUBSTRING = 560,
00514      SUM_SYM = 561,
00515      SUSPEND_SYM = 562,
00516      SYSDATE = 563,
00517      TABLES = 564,
00518      TABLESPACE = 565,
00519      TABLE_REF_PRIORITY = 566,
00520      TABLE_SYM = 567,
00521      TEMPORARY_SYM = 568,
00522      TERMINATED = 569,
00523      TEXT_STRING = 570,
00524      TEXT_SYM = 571,
00525      THEN_SYM = 572,
00526      TIMESTAMP_ADD = 573,
00527      TIMESTAMP_DIFF = 574,
00528      TIMESTAMP_SYM = 575,
00529      TIME_SYM = 576,
00530      TO_SYM = 577,
00531      TRAILING = 578,
00532      TRANSACTION_SYM = 579,
00533      TRIM = 580,
00534      TRUE_SYM = 581,
00535      TRUNCATE_SYM = 582,
00536      TYPE_SYM = 583,
00537      ULONGLONG_NUM = 584,
00538      UNCOMMITTED_SYM = 585,
00539      UNDOFILE_SYM = 586,
00540      UNDO_SYM = 587,
00541      UNION_SYM = 588,
00542      UNIQUE_SYM = 589,
00543      UNKNOWN_SYM = 590,
00544      UNLOCK_SYM = 591,
00545      UNSIGNED_SYM = 592,
00546      UPDATE_SYM = 593,
00547      USAGE = 594,
00548      USER = 595,
00549      USE_SYM = 596,
00550      USING = 597,
00551      UTC_DATE_SYM = 598,
00552      UTC_TIMESTAMP_SYM = 599,
00553      UTF8_SYM = 600,
00554      UUID_SYM = 601,
00555      VALUES = 602,
00556      VALUE_SYM = 603,
00557      VARBINARY = 604,
00558      VARCHAR_SYM = 605,
00559      VARIABLES = 606,
00560      VARIANCE_SYM = 607,
00561      VARYING = 608,
00562      VAR_SAMP_SYM = 609,
00563      WAIT_SYM = 610,
00564      WARNINGS = 611,
00565      WEEK_SYM = 612,
00566      WHEN_SYM = 613,
00567      WHERE = 614,
00568      WITH = 615,
00569      WITH_ROLLUP_SYM = 616,
00570      WORK_SYM = 617,
00571      WRITE_SYM = 618,
00572      XOR = 619,
00573      YEAR_MONTH_SYM = 620,
00574      YEAR_SYM = 621,
00575      ZEROFILL_SYM = 622,
00576      LESS_THAN = 623,
00577      GREATER_THAN = 624,
00578      CONCAT = 625,
00579      SHIFT_RIGHT = 626,
00580      SHIFT_LEFT = 627,
00581      UMINUS = 628
00582    };
00583 #endif
00584 /* Tokens.  */
00585 #define ABORT_SYM 258
00586 #define ACTION 259
00587 #define ADDDATE_SYM 260
00588 #define ADD_SYM 261
00589 #define AFTER_SYM 262
00590 #define AGGREGATE_SYM 263
00591 #define ALL 264
00592 #define ALTER_SYM 265
00593 #define ANALYZE_SYM 266
00594 #define AND_SYM 267
00595 #define ANY_SYM 268
00596 #define AS 269
00597 #define ASC 270
00598 #define ASENSITIVE_SYM 271
00599 #define AT_SYM 272
00600 #define AUTO_INC 273
00601 #define AVG_SYM 274
00602 #define BEFORE_SYM 275
00603 #define BEGIN_SYM 276
00604 #define BETWEEN_SYM 277
00605 #define BIGINT_SYM 278
00606 #define BINARY 279
00607 #define BIN_NUM 280
00608 #define BIT_SYM 281
00609 #define BLOB_SYM 282
00610 #define BOOLEAN_SYM 283
00611 #define BOOL_SYM 284
00612 #define BOTH 285
00613 #define BTREE_SYM 286
00614 #define BY 287
00615 #define CALL_SYM 288
00616 #define CASCADE 289
00617 #define CASCADED 290
00618 #define CASE_SYM 291
00619 #define CAST_SYM 292
00620 #define CATALOG_SYM 293
00621 #define CHAIN_SYM 294
00622 #define CHANGE_SYM 295
00623 #define CHARSET 296
00624 #define CHAR_SYM 297
00625 #define CHECKSUM_SYM 298
00626 #define CHECK_SYM 299
00627 #define CLOSE_SYM 300
00628 #define COALESCE 301
00629 #define COLLATE_SYM 302
00630 #define COLLATION_SYM 303
00631 #define COLUMNS 304
00632 #define COLUMN_SYM 305
00633 #define COMMENT_SYM 306
00634 #define COMMITTED_SYM 307
00635 #define COMMIT_SYM 308
00636 #define COMPACT_SYM 309
00637 #define COMPRESSED_SYM 310
00638 #define CONCURRENT 311
00639 #define CONDITION_SYM 312
00640 #define CONNECTION_SYM 313
00641 #define CONSISTENT_SYM 314
00642 #define CONSTRAINT 315
00643 #define CONTAINS_SYM 316
00644 #define CONVERT_SYM 317
00645 #define COUNT_SYM 318
00646 #define CREATE 319
00647 #define CROSS 320
00648 #define CUBE_SYM 321
00649 #define CURDATE 322
00650 #define CURRENT_USER 323
00651 #define CURSOR_SYM 324
00652 #define DATABASE 325
00653 #define DATABASES 326
00654 #define DATA_SYM 327
00655 #define DATETIME_SYM 328
00656 #define DATE_ADD_INTERVAL 329
00657 #define DATE_SUB_INTERVAL 330
00658 #define DATE_SYM 331
00659 #define DAY_HOUR_SYM 332
00660 #define DAY_MICROSECOND_SYM 333
00661 #define DAY_MINUTE_SYM 334
00662 #define DAY_SECOND_SYM 335
00663 #define DAY_SYM 336
00664 #define DEALLOCATE_SYM 337
00665 #define DECIMAL_NUM 338
00666 #define DECIMAL_SYM 339
00667 #define DECLARE_SYM 340
00668 #define DEFAULT 341
00669 #define DEFINER 342
00670 #define DELETE_SYM 343
00671 #define DESC 344
00672 #define DESCRIBE 345
00673 #define DETERMINISTIC_SYM 346
00674 #define DISABLE_SYM 347
00675 #define DISCARD 348
00676 #define DISTINCT 349
00677 #define DIV_SYM 350
00678 #define DOUBLE_SYM 351
00679 #define DO_SYM 352
00680 #define DROP 353
00681 #define DUMPFILE 354
00682 #define DUPLICATE_SYM 355
00683 #define DYNAMIC_SYM 356
00684 #define EACH_SYM 357
00685 #define ELSE 358
00686 #define ENABLE_SYM 359
00687 #define ENCLOSED 360
00688 #define END 361
00689 #define ENDS_SYM 362
00690 #define END_OF_INPUT 363
00691 #define ENGINE_SYM 364
00692 #define ENUM_SYM 365
00693 #define EQUAL_SYM 366
00694 #define ERRORS 367
00695 #define ESCAPED 368
00696 #define ESCAPE_SYM 369
00697 #define EXCLUSIVE_SYM 370
00698 #define EXECUTE_SYM 371
00699 #define EXISTS 372
00700 #define EXTENDED_SYM 373
00701 #define EXTRACT_SYM 374
00702 #define FALSE_SYM 375
00703 #define FILE_SYM 376
00704 #define FIRST_SYM 377
00705 #define FIXED_SYM 378
00706 #define FLOAT_NUM 379
00707 #define FLUSH_SYM 380
00708 #define FORCE_SYM 381
00709 #define FOREIGN 382
00710 #define FOR_SYM 383
00711 #define FOUND_SYM 384
00712 #define FRAC_SECOND_SYM 385
00713 #define FROM 386
00714 #define FULL 387
00715 #define GE 388
00716 #define GLOBAL_SYM 389
00717 #define GROUP_CONCAT_SYM 390
00718 #define GROUP_SYM 391
00719 #define HASH_SYM 392
00720 #define HAVING 393
00721 #define HEX_NUM 394
00722 #define HOUR_MICROSECOND_SYM 395
00723 #define HOUR_MINUTE_SYM 396
00724 #define HOUR_SECOND_SYM 397
00725 #define HOUR_SYM 398
00726 #define IDENT 399
00727 #define IDENTIFIED_SYM 400
00728 #define IDENTITY_SYM 401
00729 #define IDENT_QUOTED 402
00730 #define IF 403
00731 #define IGNORE_SYM 404
00732 #define IMPORT 405
00733 #define INDEXES 406
00734 #define INDEX_SYM 407
00735 #define INFILE 408
00736 #define INNER_SYM 409
00737 #define INOUT_SYM 410
00738 #define INSENSITIVE_SYM 411
00739 #define INSERT 412
00740 #define INTERVAL_SYM 413
00741 #define INTO 414
00742 #define INT_SYM 415
00743 #define INVOKER 416
00744 #define IN_SYM 417
00745 #define IS 418
00746 #define ISOLATION 419
00747 #define ITERATE_SYM 420
00748 #define IPV6_SYM 421
00749 #define JOIN_SYM 422
00750 #define KEYS 423
00751 #define KEY_BLOCK_SIZE 424
00752 #define KEY_SYM 425
00753 #define KILL_SYM 426
00754 #define LAST_SYM 427
00755 #define LE 428
00756 #define LEADING 429
00757 #define LEFT 430
00758 #define LEVEL_SYM 431
00759 #define LEX_HOSTNAME 432
00760 #define LIKE 433
00761 #define LIMIT 434
00762 #define LINES 435
00763 #define LOAD 436
00764 #define LOCAL_SYM 437
00765 #define LOCKS_SYM 438
00766 #define LOCK_SYM 439
00767 #define LOGS_SYM 440
00768 #define LONG_NUM 441
00769 #define LONG_SYM 442
00770 #define MATCH 443
00771 #define MAX_SYM 444
00772 #define MAX_VALUE_SYM 445
00773 #define MEDIUM_SYM 446
00774 #define MERGE_SYM 447
00775 #define MICROSECOND_SYM 448
00776 #define MINUTE_MICROSECOND_SYM 449
00777 #define MINUTE_SECOND_SYM 450
00778 #define MINUTE_SYM 451
00779 #define MIN_SYM 452
00780 #define MODE_SYM 453
00781 #define MODIFIES_SYM 454
00782 #define MODIFY_SYM 455
00783 #define MOD_SYM 456
00784 #define MONTH_SYM 457
00785 #define NAMES_SYM 458
00786 #define NAME_SYM 459
00787 #define NATIONAL_SYM 460
00788 #define NATURAL 461
00789 #define NE 462
00790 #define NEW_SYM 463
00791 #define NEXT_SYM 464
00792 #define NONE_SYM 465
00793 #define NOT_SYM 466
00794 #define NOW_SYM 467
00795 #define NO_SYM 468
00796 #define NULL_SYM 469
00797 #define NUM 470
00798 #define NUMERIC_SYM 471
00799 #define OFFLINE_SYM 472
00800 #define OFFSET_SYM 473
00801 #define ON 474
00802 #define ONE_SHOT_SYM 475
00803 #define ONE_SYM 476
00804 #define ONLINE_SYM 477
00805 #define OPEN_SYM 478
00806 #define OPTIMIZE 479
00807 #define OPTION 480
00808 #define OPTIONALLY 481
00809 #define ORDER_SYM 482
00810 #define OR_SYM 483
00811 #define OUTER 484
00812 #define OUTFILE 485
00813 #define OUT_SYM 486
00814 #define PARTIAL 487
00815 #define POSITION_SYM 488
00816 #define PRECISION 489
00817 #define PREV_SYM 490
00818 #define PRIMARY_SYM 491
00819 #define PROCESS 492
00820 #define PROCESSLIST_SYM 493
00821 #define QUARTER_SYM 494
00822 #define QUERY_SYM 495
00823 #define RANGE_SYM 496
00824 #define READS_SYM 497
00825 #define READ_SYM 498
00826 #define READ_WRITE_SYM 499
00827 #define REAL 500
00828 #define REDUNDANT_SYM 501
00829 #define REFERENCES 502
00830 #define REGEXP_SYM 503
00831 #define RELEASE_SYM 504
00832 #define RENAME 505
00833 #define REPEATABLE_SYM 506
00834 #define REPEAT_SYM 507
00835 #define REPLACE 508
00836 #define REPLICATE 509
00837 #define REPLICATION 510
00838 #define RESTRICT 511
00839 #define RETURNS_SYM 512
00840 #define RETURN_SYM 513
00841 #define REVOKE 514
00842 #define RIGHT 515
00843 #define ROLLBACK_SYM 516
00844 #define ROLLUP_SYM 517
00845 #define ROUTINE_SYM 518
00846 #define ROWS_SYM 519
00847 #define ROW_FORMAT_SYM 520
00848 #define ROW_SYM 521
00849 #define SAVEPOINT_SYM 522
00850 #define SECOND_MICROSECOND_SYM 523
00851 #define SECOND_SYM 524
00852 #define SECURITY_SYM 525
00853 #define SELECT_SYM 526
00854 #define SENSITIVE_SYM 527
00855 #define SEPARATOR_SYM 528
00856 #define SERIALIZABLE_SYM 529
00857 #define SERIAL_SYM 530
00858 #define SERVER_SYM 531
00859 #define SESSION_SYM 532
00860 #define SET_SYM 533
00861 #define SET_VAR 534
00862 #define SHARE_SYM 535
00863 #define SHOW 536
00864 #define SIGNED_SYM 537
00865 #define SIMPLE_SYM 538
00866 #define SNAPSHOT_SYM 539
00867 #define SPECIFIC_SYM 540
00868 #define SQLEXCEPTION_SYM 541
00869 #define SQLSTATE_SYM 542
00870 #define SQLWARNING_SYM 543
00871 #define SQL_BIG_RESULT 544
00872 #define SQL_BUFFER_RESULT 545
00873 #define SQL_CALC_FOUND_ROWS 546
00874 #define SQL_SMALL_RESULT 547
00875 #define SQL_SYM 548
00876 #define STARTING 549
00877 #define START_SYM 550
00878 #define STATUS_SYM 551
00879 #define STDDEV_SAMP_SYM 552
00880 #define STD_SYM 553
00881 #define STOP_SYM 554
00882 #define STORED_SYM 555
00883 #define STRAIGHT_JOIN 556
00884 #define STRING_SYM 557
00885 #define SUBDATE_SYM 558
00886 #define SUBJECT_SYM 559
00887 #define SUBSTRING 560
00888 #define SUM_SYM 561
00889 #define SUSPEND_SYM 562
00890 #define SYSDATE 563
00891 #define TABLES 564
00892 #define TABLESPACE 565
00893 #define TABLE_REF_PRIORITY 566
00894 #define TABLE_SYM 567
00895 #define TEMPORARY_SYM 568
00896 #define TERMINATED 569
00897 #define TEXT_STRING 570
00898 #define TEXT_SYM 571
00899 #define THEN_SYM 572
00900 #define TIMESTAMP_ADD 573
00901 #define TIMESTAMP_DIFF 574
00902 #define TIMESTAMP_SYM 575
00903 #define TIME_SYM 576
00904 #define TO_SYM 577
00905 #define TRAILING 578
00906 #define TRANSACTION_SYM 579
00907 #define TRIM 580
00908 #define TRUE_SYM 581
00909 #define TRUNCATE_SYM 582
00910 #define TYPE_SYM 583
00911 #define ULONGLONG_NUM 584
00912 #define UNCOMMITTED_SYM 585
00913 #define UNDOFILE_SYM 586
00914 #define UNDO_SYM 587
00915 #define UNION_SYM 588
00916 #define UNIQUE_SYM 589
00917 #define UNKNOWN_SYM 590
00918 #define UNLOCK_SYM 591
00919 #define UNSIGNED_SYM 592
00920 #define UPDATE_SYM 593
00921 #define USAGE 594
00922 #define USER 595
00923 #define USE_SYM 596
00924 #define USING 597
00925 #define UTC_DATE_SYM 598
00926 #define UTC_TIMESTAMP_SYM 599
00927 #define UTF8_SYM 600
00928 #define UUID_SYM 601
00929 #define VALUES 602
00930 #define VALUE_SYM 603
00931 #define VARBINARY 604
00932 #define VARCHAR_SYM 605
00933 #define VARIABLES 606
00934 #define VARIANCE_SYM 607
00935 #define VARYING 608
00936 #define VAR_SAMP_SYM 609
00937 #define WAIT_SYM 610
00938 #define WARNINGS 611
00939 #define WEEK_SYM 612
00940 #define WHEN_SYM 613
00941 #define WHERE 614
00942 #define WITH 615
00943 #define WITH_ROLLUP_SYM 616
00944 #define WORK_SYM 617
00945 #define WRITE_SYM 618
00946 #define XOR 619
00947 #define YEAR_MONTH_SYM 620
00948 #define YEAR_SYM 621
00949 #define ZEROFILL_SYM 622
00950 #define LESS_THAN 623
00951 #define GREATER_THAN 624
00952 #define CONCAT 625
00953 #define SHIFT_RIGHT 626
00954 #define SHIFT_LEFT 627
00955 #define UMINUS 628
00956 
00957 
00958 
00959 
00960 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00961 typedef union 
00962 /* Line 214 of yacc.c  */
00963 #line 127 "drizzled/sql_yacc.yy"
00964 ParserType
00965 {
00966 
00967 /* Line 214 of yacc.c  */
00968 #line 127 "drizzled/sql_yacc.yy"
00969 
00970   bool boolean;
00971   int  num;
00972   unsigned long ulong_num;
00973   uint64_t ulonglong_number;
00974   int64_t longlong_number;
00975   drizzled::lex_string_t lex_str;
00976   drizzled::lex_string_t *lex_str_ptr;
00977   drizzled::LEX_SYMBOL symbol;
00978   drizzled::Table_ident *table;
00979   const char* simple_string;
00980   drizzled::Item *item;
00981   drizzled::Item_num *item_num;
00982   drizzled::List<drizzled::Item> *item_list;
00983   drizzled::List<drizzled::String> *string_list;
00984   drizzled::String *string;
00985   drizzled::Key_part_spec *key_part;
00986   const drizzled::plugin::Function *udf;
00987   drizzled::TableList *table_list;
00988   drizzled::enum_field_types field_val;
00989   drizzled::sys_var_with_base variable;
00990   drizzled::sql_var_t var_type;
00991   drizzled::Key::Keytype key_type;
00992   drizzled::ha_key_alg key_alg;
00993   drizzled::ha_rkey_function ha_rkey_mode;
00994   drizzled::enum_tx_isolation tx_isolation;
00995   drizzled::Cast_target cast_type;
00996   const drizzled::charset_info_st *charset;
00997   drizzled::thr_lock_type lock_type;
00998   drizzled::interval_type interval, interval_time_st;
00999   drizzled::type::timestamp_t date_time_type;
01000   drizzled::Select_Lex *select_lex;
01001   drizzled::chooser_compare_func_creator boolfunc2creator;
01002   drizzled::LEX *lex;
01003   drizzled::index_hint_type index_hint;
01004   drizzled::enum_filetype filetype;
01005   drizzled::message::Table::ForeignKeyConstraint::ForeignKeyOption m_fk_option;
01006   drizzled::execute_string_t execute_string;
01007 
01008 
01009 
01010 /* Line 214 of yacc.c  */
01011 #line 1012 "drizzled/sql_yacc.cc"
01012 } YYSTYPE;
01013 # define YYSTYPE_IS_TRIVIAL 1
01014 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
01015 # define YYSTYPE_IS_DECLARED 1
01016 #endif
01017 
01018 
01019 /* Copy the second part of user declarations.  */
01020 
01021 /* Line 264 of yacc.c  */
01022 #line 167 "drizzled/sql_yacc.yy"
01023 
01024 namespace drizzled
01025 {
01026 bool my_yyoverflow(short **a, union ParserType **b, unsigned long *yystacksize);
01027 }
01028 
01029 
01030 /* Line 264 of yacc.c  */
01031 #line 1032 "drizzled/sql_yacc.cc"
01032 
01033 #ifdef short
01034 # undef short
01035 #endif
01036 
01037 #ifdef YYTYPE_UINT8
01038 typedef YYTYPE_UINT8 yytype_uint8;
01039 #else
01040 typedef unsigned char yytype_uint8;
01041 #endif
01042 
01043 #ifdef YYTYPE_INT8
01044 typedef YYTYPE_INT8 yytype_int8;
01045 #elif (defined __STDC__ || defined __C99__FUNC__ \
01046      || defined __cplusplus || defined _MSC_VER)
01047 typedef signed char yytype_int8;
01048 #else
01049 typedef short int yytype_int8;
01050 #endif
01051 
01052 #ifdef YYTYPE_UINT16
01053 typedef YYTYPE_UINT16 yytype_uint16;
01054 #else
01055 typedef unsigned short int yytype_uint16;
01056 #endif
01057 
01058 #ifdef YYTYPE_INT16
01059 typedef YYTYPE_INT16 yytype_int16;
01060 #else
01061 typedef short int yytype_int16;
01062 #endif
01063 
01064 #ifndef YYSIZE_T
01065 # ifdef __SIZE_TYPE__
01066 #  define YYSIZE_T __SIZE_TYPE__
01067 # elif defined size_t
01068 #  define YYSIZE_T size_t
01069 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
01070      || defined __cplusplus || defined _MSC_VER)
01071 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
01072 #  define YYSIZE_T size_t
01073 # else
01074 #  define YYSIZE_T unsigned int
01075 # endif
01076 #endif
01077 
01078 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
01079 
01080 #ifndef YY_
01081 # if YYENABLE_NLS
01082 #  if ENABLE_NLS
01083 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
01084 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
01085 #  endif
01086 # endif
01087 # ifndef YY_
01088 #  define YY_(msgid) msgid
01089 # endif
01090 #endif
01091 
01092 /* Suppress unused-variable warnings by "using" E.  */
01093 #if ! defined lint || defined __GNUC__
01094 # define YYUSE(e) ((void) (e))
01095 #else
01096 # define YYUSE(e) /* empty */
01097 #endif
01098 
01099 /* Identity function, used to suppress warnings about constant conditions.  */
01100 #ifndef lint
01101 # define YYID(n) (n)
01102 #else
01103 #if (defined __STDC__ || defined __C99__FUNC__ \
01104      || defined __cplusplus || defined _MSC_VER)
01105 static int
01106 YYID (int yyi)
01107 #else
01108 static int
01109 YYID (yyi)
01110     int yyi;
01111 #endif
01112 {
01113   return yyi;
01114 }
01115 #endif
01116 
01117 #if ! defined yyoverflow || YYERROR_VERBOSE
01118 
01119 /* The parser invokes alloca or malloc; define the necessary symbols.  */
01120 
01121 # ifdef YYSTACK_USE_ALLOCA
01122 #  if YYSTACK_USE_ALLOCA
01123 #   ifdef __GNUC__
01124 #    define YYSTACK_ALLOC __builtin_alloca
01125 #   elif defined __BUILTIN_VA_ARG_INCR
01126 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
01127 #   elif defined _AIX
01128 #    define YYSTACK_ALLOC __alloca
01129 #   elif defined _MSC_VER
01130 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
01131 #    define alloca _alloca
01132 #   else
01133 #    define YYSTACK_ALLOC alloca
01134 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01135      || defined __cplusplus || defined _MSC_VER)
01136 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
01137 #     ifndef _STDLIB_H
01138 #      define _STDLIB_H 1
01139 #     endif
01140 #    endif
01141 #   endif
01142 #  endif
01143 # endif
01144 
01145 # ifdef YYSTACK_ALLOC
01146    /* Pacify GCC's `empty if-body' warning.  */
01147 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
01148 #  ifndef YYSTACK_ALLOC_MAXIMUM
01149     /* The OS might guarantee only one guard page at the bottom of the stack,
01150        and a page size can be as small as 4096 bytes.  So we cannot safely
01151        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
01152        to allow for a few compiler-allocated temporary stack slots.  */
01153 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
01154 #  endif
01155 # else
01156 #  define YYSTACK_ALLOC YYMALLOC
01157 #  define YYSTACK_FREE YYFREE
01158 #  ifndef YYSTACK_ALLOC_MAXIMUM
01159 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
01160 #  endif
01161 #  if (defined __cplusplus && ! defined _STDLIB_H \
01162        && ! ((defined YYMALLOC || defined malloc) \
01163        && (defined YYFREE || defined free)))
01164 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
01165 #   ifndef _STDLIB_H
01166 #    define _STDLIB_H 1
01167 #   endif
01168 #  endif
01169 #  ifndef YYMALLOC
01170 #   define YYMALLOC malloc
01171 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01172      || defined __cplusplus || defined _MSC_VER)
01173 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
01174 #   endif
01175 #  endif
01176 #  ifndef YYFREE
01177 #   define YYFREE free
01178 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
01179      || defined __cplusplus || defined _MSC_VER)
01180 void free (void *); /* INFRINGES ON USER NAME SPACE */
01181 #   endif
01182 #  endif
01183 # endif
01184 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
01185 
01186 
01187 #if (! defined yyoverflow \
01188      && (! defined __cplusplus \
01189    || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
01190 
01191 /* A type that is properly aligned for any stack member.  */
01192 union yyalloc
01193 {
01194   yytype_int16 yyss_alloc;
01195   YYSTYPE yyvs_alloc;
01196 };
01197 
01198 /* The size of the maximum gap between one aligned stack and the next.  */
01199 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
01200 
01201 /* The size of an array large to enough to hold all stacks, each with
01202    N elements.  */
01203 # define YYSTACK_BYTES(N) \
01204      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
01205       + YYSTACK_GAP_MAXIMUM)
01206 
01207 /* Copy COUNT objects from FROM to TO.  The source and destination do
01208    not overlap.  */
01209 # ifndef YYCOPY
01210 #  if defined __GNUC__ && 1 < __GNUC__
01211 #   define YYCOPY(To, From, Count) \
01212       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
01213 #  else
01214 #   define YYCOPY(To, From, Count)    \
01215       do          \
01216   {         \
01217     YYSIZE_T yyi;       \
01218     for (yyi = 0; yyi < (Count); yyi++) \
01219       (To)[yyi] = (From)[yyi];    \
01220   }         \
01221       while (YYID (0))
01222 #  endif
01223 # endif
01224 
01225 /* Relocate STACK from its old location to the new one.  The
01226    local variables YYSIZE and YYSTACKSIZE give the old and new number of
01227    elements in the stack, and YYPTR gives the new location of the
01228    stack.  Advance YYPTR to a properly aligned location for the next
01229    stack.  */
01230 # define YYSTACK_RELOCATE(Stack_alloc, Stack)       \
01231     do                  \
01232       {                 \
01233   YYSIZE_T yynewbytes;            \
01234   YYCOPY (&yyptr->Stack_alloc, Stack, yysize);      \
01235   Stack = &yyptr->Stack_alloc;          \
01236   yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
01237   yyptr += yynewbytes / sizeof (*yyptr);        \
01238       }                 \
01239     while (YYID (0))
01240 
01241 #endif
01242 
01243 /* YYFINAL -- State number of the termination state.  */
01244 #define YYFINAL  280
01245 /* YYLAST -- Last index in YYTABLE.  */
01246 #define YYLAST   15292
01247 
01248 /* YYNTOKENS -- Number of terminals.  */
01249 #define YYNTOKENS  391
01250 /* YYNNTS -- Number of nonterminals.  */
01251 #define YYNNTS  425
01252 /* YYNRULES -- Number of rules.  */
01253 #define YYNRULES  1227
01254 /* YYNRULES -- Number of states.  */
01255 #define YYNSTATES  2118
01256 
01257 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
01258 #define YYUNDEFTOK  2
01259 #define YYMAXUTOK   628
01260 
01261 #define YYTRANSLATE(YYX)            \
01262   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
01263 
01264 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
01265 static const yytype_uint16 yytranslate[] =
01266 {
01267        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01268        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01269        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01270        2,     2,     2,     2,     2,     2,     2,   380,   373,     2,
01271      384,   385,   378,   377,   388,   376,   389,   379,     2,     2,
01272        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01273        2,   368,     2,     2,   390,     2,     2,     2,     2,     2,
01274        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01275        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01276        2,     2,     2,     2,   381,     2,     2,     2,     2,     2,
01277        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01278        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01279        2,     2,     2,   386,   372,   387,   382,     2,     2,     2,
01280        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01281        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01282        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01283        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01284        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01285        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01286        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01287        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01288        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01289        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01290        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01291        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
01292        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
01293        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
01294       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
01295       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
01296       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
01297       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
01298       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
01299       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
01300       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
01301       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
01302       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
01303      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
01304      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
01305      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
01306      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
01307      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
01308      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
01309      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
01310      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
01311      185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
01312      195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
01313      205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
01314      215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
01315      225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
01316      235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
01317      245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
01318      255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
01319      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
01320      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
01321      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
01322      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
01323      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
01324      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
01325      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
01326      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
01327      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
01328      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
01329      365,   366,   367,   369,   370,   371,   374,   375,   383
01330 };
01331 
01332 #if YYDEBUG
01333 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
01334    YYRHS.  */
01335 static const yytype_uint16 yyprhs[] =
01336 {
01337        0,     0,     3,     5,     8,    10,    12,    14,    16,    18,
01338       20,    22,    24,    26,    28,    30,    32,    34,    36,    38,
01339       40,    42,    44,    46,    48,    50,    52,    54,    56,    58,
01340       60,    62,    64,    68,    69,    77,    78,    92,    93,   100,
01341      106,   107,   113,   118,   121,   124,   125,   126,   131,   132,
01342      139,   142,   144,   145,   146,   153,   154,   156,   159,   163,
01343      165,   167,   170,   174,   176,   180,   184,   187,   191,   195,
01344      199,   200,   202,   203,   207,   208,   210,   212,   215,   217,
01345      220,   224,   226,   230,   234,   238,   242,   246,   249,   253,
01346      257,   261,   265,   269,   271,   273,   276,   278,   280,   282,
01347      287,   292,   297,   299,   301,   303,   305,   307,   309,   311,
01348      313,   316,   318,   322,   324,   326,   329,   332,   340,   349,
01349      358,   361,   364,   365,   367,   370,   371,   373,   376,   377,
01350      382,   385,   391,   394,   397,   400,   406,   409,   410,   417,
01351      423,   426,   429,   432,   435,   439,   443,   447,   450,   453,
01352      456,   458,   461,   463,   465,   470,   475,   478,   481,   485,
01353      486,   490,   492,   498,   499,   503,   504,   506,   508,   509,
01354      513,   514,   516,   517,   521,   523,   525,   528,   531,   533,
01355      536,   537,   540,   544,   547,   548,   551,   555,   558,   559,
01356      561,   564,   566,   568,   571,   574,   576,   577,   579,   582,
01357      584,   586,   588,   592,   595,   597,   598,   600,   603,   605,
01358      607,   611,   614,   619,   621,   622,   625,   627,   629,   631,
01359      632,   634,   635,   637,   643,   644,   648,   652,   654,   655,
01360      658,   661,   664,   665,   669,   673,   680,   687,   689,   691,
01361      694,   697,   700,   702,   705,   708,   710,   712,   713,   715,
01362      717,   719,   721,   722,   724,   725,   727,   730,   731,   733,
01363      735,   738,   741,   743,   747,   750,   752,   754,   759,   762,
01364      764,   769,   770,   772,   773,   776,   778,   782,   783,   791,
01365      792,   798,   799,   802,   805,   807,   808,   810,   812,   814,
01366      818,   821,   825,   828,   833,   834,   841,   842,   843,   852,
01367      856,   861,   865,   869,   872,   875,   882,   888,   892,   896,
01368      898,   900,   902,   903,   905,   906,   908,   909,   912,   914,
01369      915,   917,   919,   923,   924,   928,   929,   934,   935,   940,
01370      941,   946,   948,   952,   956,   958,   961,   966,   969,   973,
01371      976,   980,   981,   985,   986,   987,   994,   997,   999,  1001,
01372     1004,  1007,  1015,  1016,  1018,  1021,  1023,  1025,  1027,  1029,
01373     1031,  1033,  1035,  1037,  1039,  1041,  1042,  1045,  1050,  1054,
01374     1056,  1058,  1062,  1067,  1068,  1069,  1070,  1073,  1076,  1078,
01375     1080,  1081,  1084,  1088,  1092,  1096,  1099,  1103,  1108,  1112,
01376     1117,  1121,  1126,  1128,  1132,  1137,  1141,  1145,  1152,  1154,
01377     1160,  1167,  1173,  1181,  1188,  1197,  1203,  1210,  1215,  1221,
01378     1225,  1230,  1232,  1236,  1240,  1244,  1248,  1252,  1256,  1262,
01379     1268,  1272,  1276,  1280,  1284,  1288,  1292,  1294,  1296,  1298,
01380     1300,  1302,  1304,  1306,  1308,  1310,  1312,  1314,  1316,  1318,
01381     1320,  1324,  1326,  1328,  1330,  1334,  1337,  1340,  1343,  1347,
01382     1351,  1357,  1364,  1369,  1374,  1377,  1384,  1390,  1397,  1402,
01383     1407,  1413,  1418,  1421,  1426,  1431,  1436,  1447,  1454,  1463,
01384     1470,  1475,  1480,  1487,  1492,  1497,  1502,  1510,  1518,  1526,
01385     1533,  1540,  1547,  1554,  1558,  1563,  1570,  1579,  1582,  1591,
01386     1600,  1607,  1610,  1615,  1622,  1629,  1638,  1647,  1654,  1663,
01387     1670,  1673,  1678,  1687,  1696,  1699,  1702,  1707,  1712,  1716,
01388     1720,  1726,  1735,  1741,  1746,  1753,  1758,  1765,  1774,  1781,
01389     1786,  1790,  1794,  1801,  1802,  1808,  1809,  1811,  1813,  1817,
01390     1822,  1827,  1833,  1839,  1844,  1845,  1846,  1854,  1859,  1865,
01391     1870,  1876,  1881,  1886,  1891,  1896,  1901,  1907,  1908,  1917,
01392     1918,  1922,  1926,  1928,  1933,  1934,  1936,  1937,  1940,  1941,
01393     1943,  1944,  1948,  1951,  1953,  1955,  1958,  1960,  1962,  1965,
01394     1968,  1970,  1972,  1974,  1977,  1979,  1983,  1984,  1986,  1987,
01395     1990,  1995,  2001,  2003,  2005,  2007,  2009,  2014,  2016,  2020,
01396     2024,  2028,  2029,  2036,  2037,  2044,  2045,  2054,  2059,  2060,
01397     2069,  2070,  2081,  2088,  2089,  2098,  2099,  2110,  2117,  2119,
01398     2122,  2125,  2126,  2131,  2135,  2141,  2145,  2146,  2147,  2156,
01399     2158,  2159,  2160,  2167,  2168,  2172,  2173,  2174,  2180,  2181,
01400     2183,  2184,  2186,  2187,  2190,  2194,  2198,  2200,  2202,  2203,
01401     2211,  2212,  2220,  2222,  2225,  2226,  2227,  2230,  2231,  2234,
01402     2235,  2237,  2239,  2241,  2243,  2247,  2249,  2253,  2255,  2257,
01403     2259,  2261,  2263,  2265,  2267,  2269,  2271,  2273,  2275,  2277,
01404     2279,  2281,  2283,  2285,  2287,  2289,  2291,  2293,  2295,  2297,
01405     2299,  2300,  2302,  2303,  2306,  2307,  2309,  2310,  2311,  2315,
01406     2316,  2317,  2321,  2324,  2325,  2326,  2331,  2336,  2339,  2340,
01407     2342,  2346,  2350,  2352,  2355,  2356,  2358,  2359,  2364,  2369,
01408     2372,  2373,  2375,  2377,  2378,  2380,  2381,  2383,  2386,  2388,
01409     2392,  2396,  2398,  2400,  2402,  2403,  2406,  2408,  2410,  2412,
01410     2414,  2416,  2418,  2420,  2422,  2424,  2426,  2428,  2429,  2432,
01411     2436,  2438,  2441,  2442,  2446,  2447,  2453,  2456,  2458,  2462,
01412     2468,  2469,  2477,  2482,  2484,  2488,  2490,  2491,  2494,  2495,
01413     2497,  2503,  2505,  2508,  2509,  2513,  2514,  2516,  2517,  2519,
01414     2520,  2521,  2529,  2530,  2531,  2537,  2540,  2542,  2544,  2546,
01415     2550,  2555,  2556,  2560,  2564,  2566,  2569,  2572,  2573,  2577,
01416     2578,  2584,  2588,  2590,  2594,  2596,  2600,  2602,  2604,  2605,
01417     2607,  2608,  2613,  2614,  2616,  2620,  2622,  2624,  2626,  2627,
01418     2628,  2635,  2636,  2646,  2650,  2652,  2656,  2660,  2662,  2666,
01419     2667,  2676,  2677,  2679,  2683,  2684,  2686,  2687,  2691,  2694,
01420     2698,  2702,  2707,  2713,  2719,  2725,  2731,  2734,  2737,  2741,
01421     2744,  2748,  2750,  2754,  2759,  2760,  2763,  2765,  2767,  2768,
01422     2771,  2774,  2775,  2780,  2781,  2786,  2788,  2790,  2791,  2793,
01423     2794,  2796,  2798,  2799,  2803,  2807,  2809,  2810,  2814,  2819,
01424     2821,  2823,  2826,  2827,  2829,  2833,  2834,  2836,  2838,  2841,
01425     2842,  2843,  2844,  2845,  2864,  2866,  2867,  2869,  2870,  2872,
01426     2874,  2875,  2877,  2879,  2881,  2884,  2887,  2888,  2891,  2894,
01427     2896,  2900,  2905,  2909,  2913,  2914,  2917,  2920,  2922,  2926,
01428     2930,  2931,  2935,  2937,  2939,  2940,  2944,  2947,  2951,  2953,
01429     2955,  2958,  2959,  2962,  2964,  2967,  2969,  2971,  2973,  2975,
01430     2978,  2981,  2983,  2985,  2987,  2989,  2991,  2993,  2995,  2998,
01431     3001,  3003,  3005,  3007,  3009,  3011,  3014,  3017,  3019,  3021,
01432     3023,  3025,  3027,  3029,  3032,  3035,  3037,  3039,  3041,  3043,
01433     3045,  3047,  3049,  3053,  3059,  3061,  3063,  3065,  3069,  3074,
01434     3080,  3082,  3088,  3092,  3095,  3097,  3101,  3104,  3106,  3108,
01435     3110,  3112,  3114,  3116,  3118,  3120,  3122,  3124,  3126,  3128,
01436     3130,  3132,  3134,  3136,  3138,  3140,  3142,  3144,  3146,  3148,
01437     3150,  3152,  3154,  3156,  3158,  3160,  3162,  3164,  3166,  3168,
01438     3170,  3172,  3174,  3176,  3178,  3180,  3182,  3184,  3186,  3188,
01439     3190,  3192,  3194,  3196,  3198,  3200,  3202,  3204,  3206,  3208,
01440     3210,  3212,  3214,  3216,  3218,  3220,  3222,  3224,  3226,  3228,
01441     3230,  3232,  3234,  3236,  3238,  3240,  3242,  3244,  3246,  3248,
01442     3250,  3252,  3254,  3256,  3258,  3260,  3262,  3264,  3266,  3268,
01443     3270,  3272,  3274,  3276,  3278,  3280,  3282,  3284,  3286,  3288,
01444     3290,  3292,  3294,  3296,  3298,  3300,  3302,  3304,  3306,  3308,
01445     3310,  3312,  3314,  3316,  3318,  3320,  3322,  3324,  3326,  3328,
01446     3330,  3332,  3334,  3336,  3338,  3340,  3342,  3344,  3346,  3348,
01447     3350,  3352,  3354,  3356,  3358,  3360,  3362,  3364,  3366,  3368,
01448     3370,  3372,  3374,  3376,  3378,  3380,  3382,  3384,  3386,  3388,
01449     3390,  3392,  3394,  3396,  3398,  3400,  3402,  3404,  3406,  3408,
01450     3410,  3412,  3414,  3416,  3418,  3420,  3422,  3424,  3426,  3428,
01451     3430,  3432,  3433,  3438,  3439,  3441,  3443,  3447,  3448,  3451,
01452     3453,  3455,  3457,  3459,  3460,  3462,  3463,  3465,  3467,  3469,
01453     3470,  3473,  3476,  3479,  3481,  3484,  3489,  3495,  3500,  3507,
01454     3509,  3511,  3513,  3515,  3517,  3519,  3522,  3525,  3528,  3530,
01455     3532,  3534,  3536,  3538,  3540,  3542,  3544,  3545,  3549,  3550,
01456     3554,  3555,  3557,  3558,  3562,  3565,  3566,  3568,  3571,  3572,
01457     3574,  3579,  3584,  3590,  3593,  3597,  3599,  3600,  3602,  3603,
01458     3608,  3609,  3611,  3613,  3614,  3617,  3620,  3622,  3623,  3625,
01459     3627,  3630,  3634,  3636,  3637,  3643,  3647,  3648
01460 };
01461 
01462 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
01463 static const yytype_int16 yyrhs[] =
01464 {
01465      392,     0,    -1,   108,    -1,   393,   108,    -1,   394,    -1,
01466      791,    -1,   491,    -1,   508,    -1,   510,    -1,   797,    -1,
01467      395,    -1,   696,    -1,   707,    -1,   653,    -1,   659,    -1,
01468      713,    -1,   664,    -1,   719,    -1,   722,    -1,   800,    -1,
01469      512,    -1,   667,    -1,   798,    -1,   799,    -1,   516,    -1,
01470      770,    -1,   701,    -1,   506,    -1,   699,    -1,   789,    -1,
01471      690,    -1,   721,    -1,    64,    38,   759,    -1,    -1,    64,
01472      412,   312,   413,   757,   396,   399,    -1,    -1,    64,   495,
01473      397,   478,   152,   764,   480,   219,   757,   384,   486,   385,
01474      481,    -1,    -1,    64,    70,   413,   758,   398,   409,    -1,
01475      384,   427,   385,   414,   401,    -1,    -1,   384,   405,   385,
01476      400,   805,    -1,   384,   404,   385,   414,    -1,   404,   414,
01477       -1,   414,   401,    -1,    -1,    -1,   730,   405,   402,   802,
01478       -1,    -1,   730,   384,   405,   385,   403,   805,    -1,   178,
01479      757,    -1,   406,    -1,    -1,    -1,   271,   407,   527,   533,
01480      408,   426,    -1,    -1,   423,    -1,   423,   410,    -1,   423,
01481      388,   410,    -1,   410,    -1,   411,    -1,   411,   410,    -1,
01482      411,   388,   410,    -1,   765,    -1,   254,   368,   326,    -1,
01483      254,   368,   120,    -1,    87,   761,    -1,    87,    68,   538,
01484       -1,   765,   368,   765,    -1,   765,   368,   644,    -1,    -1,
01485      313,    -1,    -1,   148,   211,   117,    -1,    -1,   416,    -1,
01486      417,    -1,   417,   415,    -1,   417,    -1,   417,   416,    -1,
01487      417,   388,   416,    -1,   418,    -1,   109,   368,   765,    -1,
01488       51,   682,   761,    -1,    18,   682,   644,    -1,   254,   368,
01489      326,    -1,   254,   368,   120,    -1,    87,   761,    -1,    87,
01490       68,   538,    -1,   265,   368,   425,    -1,   121,   368,   761,
01491       -1,   765,   368,   766,    -1,   765,   368,   644,    -1,   421,
01492       -1,   422,    -1,    42,   278,    -1,    41,    -1,   345,    -1,
01493       86,    -1,   465,   419,   682,   420,    -1,   465,    47,   682,
01494      464,    -1,   465,    47,   682,   464,    -1,    54,    -1,    55,
01495       -1,    86,    -1,   101,    -1,   123,    -1,   246,    -1,   424,
01496       -1,   638,    -1,   526,   532,    -1,   428,    -1,   427,   388,
01497      428,    -1,   429,    -1,   430,    -1,   435,   431,    -1,   435,
01498      467,    -1,   473,   488,   480,   384,   486,   385,   481,    -1,
01499      433,   474,   488,   480,   384,   486,   385,   481,    -1,   433,
01500      127,   170,   488,   384,   486,   385,   467,    -1,   434,   431,
01501       -1,   433,   432,    -1,    -1,   432,    -1,    44,   539,    -1,
01502       -1,   434,    -1,    60,   488,    -1,    -1,   756,   436,   437,
01503      462,    -1,   320,   459,    -1,   320,   384,   215,   385,   459,
01504       -1,    73,   459,    -1,   440,   456,    -1,    42,   453,    -1,
01505      439,   384,   215,   385,   453,    -1,   316,   453,    -1,    -1,
01506      110,   438,   384,   490,   385,   453,    -1,   349,   384,   215,
01507      385,   451,    -1,   441,   456,    -1,    76,   451,    -1,   321,
01508      451,    -1,    27,   451,    -1,    84,   442,   456,    -1,   216,
01509      442,   456,    -1,   123,   442,   456,    -1,   346,   451,    -1,
01510      166,   451,    -1,    28,   452,    -1,   275,    -1,    42,   353,
01511       -1,    42,    -1,   350,    -1,   160,   446,   445,   447,    -1,
01512       23,   446,   445,   447,    -1,   245,   448,    -1,    96,   448,
01513       -1,    96,   234,   448,    -1,    -1,   384,   215,   385,    -1,
01514      443,    -1,   384,   215,   388,   215,   385,    -1,    -1,   384,
01515      215,   385,    -1,    -1,   282,    -1,   337,    -1,    -1,   384,
01516      215,   385,    -1,    -1,   367,    -1,    -1,   384,   215,   385,
01517       -1,   443,    -1,   214,    -1,   211,   214,    -1,   466,   170,
01518       -1,   334,    -1,   334,   170,    -1,    -1,   451,   449,    -1,
01519      451,    86,   745,    -1,   451,   450,    -1,    -1,   452,   449,
01520       -1,   452,    86,   748,    -1,   452,   450,    -1,    -1,   454,
01521       -1,   454,   455,    -1,   455,    -1,   449,    -1,    86,   745,
01522       -1,    47,   463,    -1,   450,    -1,    -1,   457,    -1,   457,
01523      458,    -1,   458,    -1,   449,    -1,    18,    -1,   275,    86,
01524      348,    -1,    86,   747,    -1,   450,    -1,    -1,   460,    -1,
01525      460,   461,    -1,   461,    -1,   449,    -1,    86,   212,   538,
01526       -1,    86,   749,    -1,   219,   338,   212,   538,    -1,   450,
01527       -1,    -1,    51,   761,    -1,   765,    -1,   463,    -1,    86,
01528       -1,    -1,    86,    -1,    -1,   236,    -1,   247,   757,   468,
01529      470,   471,    -1,    -1,   384,   469,   385,    -1,   469,   388,
01530      764,    -1,   764,    -1,    -1,   188,   132,    -1,   188,   232,
01531       -1,   188,   283,    -1,    -1,   219,   338,   472,    -1,   219,
01532       88,   472,    -1,   219,   338,   472,   219,    88,   472,    -1,
01533      219,    88,   472,   219,   338,   472,    -1,   256,    -1,    34,
01534       -1,   278,   214,    -1,   213,     4,    -1,   278,    86,    -1,
01535      475,    -1,   236,   170,    -1,   334,   476,    -1,   170,    -1,
01536      152,    -1,    -1,   475,    -1,   168,    -1,   152,    -1,   151,
01537       -1,    -1,   334,    -1,    -1,   479,    -1,   479,   483,    -1,
01538       -1,   482,    -1,   484,    -1,   482,   484,    -1,   342,   485,
01539       -1,   483,    -1,   169,   682,   643,    -1,    51,   761,    -1,
01540       31,    -1,   137,    -1,   486,   388,   487,   636,    -1,   487,
01541      636,    -1,   764,    -1,   764,   384,   215,   385,    -1,    -1,
01542      756,    -1,    -1,   389,   764,    -1,   744,    -1,   490,   388,
01543      744,    -1,    -1,    10,   495,   503,   312,   757,   492,   494,
01544       -1,    -1,    10,    70,   758,   493,   423,    -1,    -1,    93,
01545      310,    -1,   150,   310,    -1,   496,    -1,    -1,   222,    -1,
01546      217,    -1,   498,    -1,   496,   388,   498,    -1,     6,   502,
01547       -1,   497,   429,   504,    -1,     6,   430,    -1,   497,   384,
01548      427,   385,    -1,    -1,    40,   502,   756,   499,   435,   504,
01549       -1,    -1,    -1,   200,   502,   756,   500,   437,   462,   501,
01550      504,    -1,    98,   502,   756,    -1,    98,   127,   170,   488,
01551       -1,    98,   236,   170,    -1,    98,   475,   756,    -1,    92,
01552      168,    -1,   104,   168,    -1,    10,   502,   756,   278,    86,
01553      745,    -1,    10,   502,   756,    98,    86,    -1,   250,   505,
01554      757,    -1,    62,   322,   464,    -1,   415,    -1,   126,    -1,
01555      629,    -1,    -1,    50,    -1,    -1,   149,    -1,    -1,     7,
01556      764,    -1,   122,    -1,    -1,   322,    -1,    14,    -1,   295,
01557      324,   507,    -1,    -1,   360,    59,   284,    -1,    -1,    11,
01558      788,   509,   655,    -1,    -1,    44,   788,   511,   655,    -1,
01559       -1,   250,   788,   513,   514,    -1,   515,    -1,   514,   388,
01560      515,    -1,   757,   322,   757,    -1,   517,    -1,   271,   520,
01561       -1,   384,   518,   385,   805,    -1,   271,   522,    -1,   384,
01562      518,   385,    -1,   271,   590,    -1,   384,   519,   385,    -1,
01563       -1,   522,   521,   802,    -1,    -1,    -1,   523,   527,   533,
01564      524,   525,   532,    -1,   632,   638,    -1,   649,    -1,   526,
01565       -1,   649,   526,    -1,   526,   649,    -1,   131,   572,   621,
01566      626,   623,   632,   638,    -1,    -1,   528,    -1,   528,   531,
01567       -1,   531,    -1,    94,    -1,     9,    -1,   292,    -1,   289,
01568       -1,   301,    -1,   290,    -1,   530,    -1,   529,    -1,   291,
01569       -1,    -1,   128,   338,    -1,   184,   162,   280,   198,    -1,
01570      533,   388,   534,    -1,   534,    -1,   378,    -1,   535,   752,
01571      536,    -1,   535,   539,   536,   537,    -1,    -1,    -1,    -1,
01572       14,   764,    -1,    14,   761,    -1,   764,    -1,   761,    -1,
01573       -1,   384,   385,    -1,   539,   228,   539,    -1,   539,   364,
01574      539,    -1,   539,    12,   539,    -1,   211,   539,    -1,   540,
01575      163,   326,    -1,   540,   163,   211,   326,    -1,   540,   163,
01576      120,    -1,   540,   163,   211,   120,    -1,   540,   163,   335,
01577       -1,   540,   163,   211,   335,    -1,   540,    -1,   540,   163,
01578      214,    -1,   540,   163,   211,   214,    -1,   540,   111,   541,
01579       -1,   540,   543,   541,    -1,   540,   543,   544,   384,   813,
01580      385,    -1,   541,    -1,   542,   162,   384,   813,   385,    -1,
01581      542,   211,   162,   384,   813,   385,    -1,   542,   162,   384,
01582      539,   385,    -1,   542,   162,   384,   539,   388,   567,   385,
01583       -1,   542,   211,   162,   384,   539,   385,    -1,   542,   211,
01584      162,   384,   539,   388,   567,   385,    -1,   542,    22,   542,
01585       12,   541,    -1,   542,   211,    22,   542,    12,   541,    -1,
01586      542,   178,   545,   625,    -1,   542,   211,   178,   545,   625,
01587       -1,   542,   248,   542,    -1,   542,   211,   248,   542,    -1,
01588      542,    -1,   542,   372,   542,    -1,   542,   373,   542,    -1,
01589      542,   374,   542,    -1,   542,   375,   542,    -1,   542,   377,
01590      542,    -1,   542,   376,   542,    -1,   542,   377,   158,   539,
01591      615,    -1,   542,   376,   158,   539,   615,    -1,   542,   378,
01592      542,    -1,   542,   379,   542,    -1,   542,   380,   542,    -1,
01593      542,    95,   542,    -1,   542,   201,   542,    -1,   542,   381,
01594      542,    -1,   545,    -1,   368,    -1,   133,    -1,   370,    -1,
01595      173,    -1,   369,    -1,   207,    -1,     9,    -1,    13,    -1,
01596      754,    -1,   546,    -1,   547,    -1,   549,    -1,   548,    -1,
01597      545,    47,   765,    -1,   746,    -1,   558,    -1,   554,    -1,
01598      545,   371,   545,    -1,   377,   545,    -1,   376,   545,    -1,
01599      382,   545,    -1,   384,   813,   385,    -1,   384,   539,   385,
01600       -1,   384,   539,   388,   567,   385,    -1,   266,   384,   539,
01601      388,   567,   385,    -1,   117,   384,   813,   385,    -1,   386,
01602      764,   539,   387,    -1,    24,   545,    -1,    37,   384,   539,
01603       14,   566,   385,    -1,    36,   568,   570,   569,   106,    -1,
01604       62,   384,   539,   388,   566,   385,    -1,    86,   384,   754,
01605      385,    -1,   347,   384,   754,   385,    -1,   158,   539,   615,
01606      377,   539,    -1,    42,   384,   567,   385,    -1,    68,   538,
01607       -1,    76,   384,   539,   385,    -1,    81,   384,   539,   385,
01608       -1,   143,   384,   539,   385,    -1,   157,   384,   539,   388,
01609      539,   388,   539,   388,   539,   385,    -1,   158,   384,   539,
01610      388,   539,   385,    -1,   158,   384,   539,   388,   539,   388,
01611      567,   385,    -1,   175,   384,   539,   388,   539,   385,    -1,
01612      196,   384,   539,   385,    -1,   202,   384,   539,   385,    -1,
01613      260,   384,   539,   388,   539,   385,    -1,   269,   384,   539,
01614      385,    -1,   320,   384,   539,   385,    -1,   325,   384,   539,
01615      385,    -1,   325,   384,   174,   539,   131,   539,   385,    -1,
01616      325,   384,   323,   539,   131,   539,   385,    -1,   325,   384,
01617       30,   539,   131,   539,   385,    -1,   325,   384,   174,   131,
01618      539,   385,    -1,   325,   384,   323,   131,   539,   385,    -1,
01619      325,   384,    30,   131,   539,   385,    -1,   325,   384,   539,
01620      131,   539,   385,    -1,   340,   384,   385,    -1,   366,   384,
01621      539,   385,    -1,     5,   384,   539,   388,   539,   385,    -1,
01622        5,   384,   539,   388,   158,   539,   615,   385,    -1,    67,
01623      538,    -1,    74,   384,   539,   388,   158,   539,   615,   385,
01624       -1,    75,   384,   539,   388,   158,   539,   615,   385,    -1,
01625      119,   384,   615,   131,   539,   385,    -1,   212,   538,    -1,
01626      212,   384,   539,   385,    -1,   233,   384,   542,   162,   539,
01627      385,    -1,   303,   384,   539,   388,   539,   385,    -1,   303,
01628      384,   539,   388,   158,   539,   615,   385,    -1,   305,   384,
01629      539,   388,   539,   388,   539,   385,    -1,   305,   384,   539,
01630      388,   539,   385,    -1,   305,   384,   539,   131,   539,   128,
01631      539,   385,    -1,   305,   384,   539,   131,   539,   385,    -1,
01632      308,   538,    -1,   308,   384,   539,   385,    -1,   318,   384,
01633      616,   388,   539,   388,   539,   385,    -1,   319,   384,   616,
01634      388,   539,   388,   539,   385,    -1,   343,   538,    -1,   344,
01635      538,    -1,    46,   384,   567,   385,    -1,    48,   384,   539,
01636      385,    -1,    70,   384,   385,    -1,    38,   384,   385,    -1,
01637      116,   384,   539,   385,   663,    -1,   148,   384,   539,   388,
01638      539,   388,   539,   385,    -1,   171,   720,   384,   539,   385,
01639       -1,   193,   384,   539,   385,    -1,   201,   384,   539,   388,
01640      539,   385,    -1,   239,   384,   539,   385,    -1,   252,   384,
01641      539,   388,   539,   385,    -1,   253,   384,   539,   388,   539,
01642      388,   539,   385,    -1,   327,   384,   539,   388,   539,   385,
01643       -1,   355,   384,   539,   385,    -1,   346,   384,   385,    -1,
01644      166,   384,   385,    -1,   355,   384,   539,   388,   539,   385,
01645       -1,    -1,   760,   384,   550,   551,   385,    -1,    -1,   552,
01646       -1,   553,    -1,   552,   388,   553,    -1,   535,   539,   536,
01647      537,    -1,    19,   384,   564,   385,    -1,    19,   384,    94,
01648      564,   385,    -1,    63,   384,   620,   378,   385,    -1,    63,
01649      384,   564,   385,    -1,    -1,    -1,    63,   384,    94,   555,
01650      567,   556,   385,    -1,   197,   384,   564,   385,    -1,   197,
01651      384,    94,   564,   385,    -1,   189,   384,   564,   385,    -1,
01652      189,   384,    94,   564,   385,    -1,   298,   384,   564,   385,
01653       -1,   352,   384,   564,   385,    -1,   297,   384,   564,   385,
01654       -1,   354,   384,   564,   385,    -1,   306,   384,   564,   385,
01655       -1,   306,   384,    94,   564,   385,    -1,    -1,   135,   384,
01656      561,   557,   567,   563,   562,   385,    -1,    -1,   390,   559,
01657      560,    -1,   783,   279,   539,    -1,   783,    -1,   390,   779,
01658      783,   489,    -1,    -1,    94,    -1,    -1,   273,   744,    -1,
01659       -1,   633,    -1,    -1,   620,   565,   539,    -1,    24,   444,
01660       -1,    28,    -1,   282,    -1,   282,   160,    -1,   160,    -1,
01661      337,    -1,   337,   160,    -1,    42,   444,    -1,    76,    -1,
01662      321,    -1,    73,    -1,    84,   442,    -1,   539,    -1,   567,
01663      388,   539,    -1,    -1,   539,    -1,    -1,   103,   539,    -1,
01664      358,   539,   317,   539,    -1,   570,   358,   539,   317,   539,
01665       -1,   584,    -1,   575,    -1,   574,    -1,   571,    -1,   386,
01666      764,   571,   387,    -1,   573,    -1,   574,   388,   573,    -1,
01667      571,   583,   571,    -1,   571,   301,   584,    -1,    -1,   571,
01668      583,   571,   219,   576,   539,    -1,    -1,   571,   301,   584,
01669      219,   577,   539,    -1,    -1,   571,   583,   571,   342,   578,
01670      384,   614,   385,    -1,   571,   206,   167,   584,    -1,    -1,
01671      571,   175,   600,   167,   571,   219,   579,   539,    -1,    -1,
01672      571,   175,   600,   167,   584,   580,   342,   384,   614,   385,
01673       -1,   571,   206,   175,   600,   167,   584,    -1,    -1,   571,
01674      260,   600,   167,   571,   219,   581,   539,    -1,    -1,   571,
01675      260,   600,   167,   584,   582,   342,   384,   614,   385,    -1,
01676      571,   206,   260,   600,   167,   584,    -1,   167,    -1,   154,
01677      167,    -1,    65,   167,    -1,    -1,   585,   757,   619,   609,
01678       -1,   599,   598,   595,    -1,   384,   598,   586,   385,   619,
01679       -1,   593,   632,   638,    -1,    -1,    -1,   586,   333,   809,
01680      587,   810,   588,   632,   638,    -1,   590,    -1,    -1,    -1,
01681      591,   527,   533,   592,   426,   532,    -1,    -1,   598,   594,
01682      574,    -1,    -1,    -1,   596,   527,   533,   597,   426,    -1,
01683       -1,   271,    -1,    -1,   229,    -1,    -1,   128,   167,    -1,
01684      128,   227,    32,    -1,   128,   136,    32,    -1,   126,    -1,
01685      149,    -1,    -1,   602,   475,   601,   604,   384,   613,   385,
01686       -1,    -1,   341,   475,   601,   605,   384,   611,   385,    -1,
01687      603,    -1,   606,   603,    -1,    -1,    -1,   608,   606,    -1,
01688       -1,   610,   607,    -1,    -1,   613,    -1,   764,    -1,   236,
01689       -1,   612,    -1,   613,   388,   612,    -1,   764,    -1,   614,
01690      388,   764,    -1,   617,    -1,    77,    -1,    78,    -1,    79,
01691       -1,    80,    -1,   140,    -1,   141,    -1,   142,    -1,   194,
01692       -1,   195,    -1,   268,    -1,   365,    -1,   617,    -1,   130,
01693       -1,    81,    -1,   357,    -1,   143,    -1,   196,    -1,   202,
01694       -1,   239,    -1,   269,    -1,   193,    -1,   366,    -1,    -1,
01695       14,    -1,    -1,   618,   764,    -1,    -1,     9,    -1,    -1,
01696       -1,   359,   622,   539,    -1,    -1,    -1,   138,   624,   539,
01697       -1,   114,   545,    -1,    -1,    -1,   136,    32,   627,   628,
01698       -1,   627,   388,   753,   636,    -1,   753,   636,    -1,    -1,
01699      361,    -1,   227,    32,   630,    -1,   630,   388,   631,    -1,
01700      631,    -1,   754,   636,    -1,    -1,   633,    -1,    -1,   227,
01701       32,   634,   635,    -1,   635,   388,   753,   636,    -1,   753,
01702      636,    -1,    -1,    15,    -1,    89,    -1,    -1,   639,    -1,
01703       -1,   639,    -1,   179,   640,    -1,   641,    -1,   641,   388,
01704      641,    -1,   641,   218,   641,    -1,   329,    -1,   186,    -1,
01705      215,    -1,    -1,   179,   641,    -1,   215,    -1,   139,    -1,
01706      186,    -1,   329,    -1,    83,    -1,   124,    -1,   215,    -1,
01707      329,    -1,   186,    -1,    83,    -1,   124,    -1,    -1,   646,
01708      647,    -1,   647,   388,   648,    -1,   648,    -1,   390,   783,
01709       -1,    -1,   159,   650,   651,    -1,    -1,   230,   763,   652,
01710      731,   734,    -1,    99,   763,    -1,   645,    -1,    98,    38,
01711      759,    -1,    98,   658,   788,   657,   655,    -1,    -1,    98,
01712      495,   152,   764,   219,   757,   654,    -1,    98,    70,   657,
01713      758,    -1,   656,    -1,   655,   388,   656,    -1,   757,    -1,
01714       -1,   148,   117,    -1,    -1,   313,    -1,   116,   660,   661,
01715      662,   663,    -1,   783,    -1,   390,   783,    -1,    -1,   360,
01716      213,   258,    -1,    -1,    56,    -1,    -1,   355,    -1,    -1,
01717       -1,   157,   665,   503,   670,   666,   672,   688,    -1,    -1,
01718       -1,   253,   668,   670,   669,   672,    -1,   159,   671,    -1,
01719      671,    -1,   656,    -1,   675,    -1,   384,   385,   675,    -1,
01720      384,   674,   385,   675,    -1,    -1,   278,   673,   679,    -1,
01721      674,   388,   751,    -1,   751,    -1,   347,   678,    -1,   348,
01722      678,    -1,    -1,   406,   676,   802,    -1,    -1,   384,   406,
01723      385,   677,   805,    -1,   678,   388,   683,    -1,   683,    -1,
01724      679,   388,   680,    -1,   680,    -1,   754,   681,   687,    -1,
01725      368,    -1,   279,    -1,    -1,   368,    -1,    -1,   384,   684,
01726      685,   385,    -1,    -1,   686,    -1,   686,   388,   687,    -1,
01727      687,    -1,   539,    -1,    86,    -1,    -1,    -1,   219,   100,
01728      689,   170,   338,   694,    -1,    -1,   338,   503,   757,   278,
01729      692,   691,   621,   632,   642,    -1,   692,   388,   693,    -1,
01730      693,    -1,   754,   681,   687,    -1,   694,   388,   695,    -1,
01731      695,    -1,   754,   681,   687,    -1,    -1,    88,   698,   131,
01732      757,   697,   621,   632,   642,    -1,    -1,   149,    -1,   327,
01733      700,   656,    -1,    -1,   312,    -1,    -1,   281,   702,   703,
01734       -1,    71,   706,    -1,   309,   704,   706,    -1,   313,   309,
01735      706,    -1,   312,   296,   704,   706,    -1,    49,   705,   757,
01736      704,   706,    -1,   477,   705,   757,   704,   621,    -1,    63,
01737      384,   378,   385,   356,    -1,    63,   384,   378,   385,   112,
01738       -1,   356,   637,    -1,   112,   637,    -1,   778,   296,   706,
01739       -1,   766,   296,    -1,    64,   312,   757,    -1,   238,    -1,
01740      778,   351,   706,    -1,    64,    70,   413,   764,    -1,    -1,
01741      705,   764,    -1,   131,    -1,   162,    -1,    -1,   178,   761,
01742       -1,   359,   539,    -1,    -1,   710,   757,   708,   712,    -1,
01743       -1,   710,   711,   709,   516,    -1,    89,    -1,    90,    -1,
01744       -1,   118,    -1,    -1,   744,    -1,   764,    -1,    -1,   125,
01745      714,   715,    -1,   715,   388,   716,    -1,   716,    -1,    -1,
01746      788,   717,   718,    -1,   309,   360,   243,   184,    -1,   185,
01747       -1,   296,    -1,   134,   296,    -1,    -1,   655,    -1,   171,
01748      720,   539,    -1,    -1,    58,    -1,   240,    -1,   341,   758,
01749       -1,    -1,    -1,    -1,    -1,   181,   727,   723,   728,   153,
01750      763,   724,   729,   159,   725,   312,   757,   726,   731,   734,
01751      737,   739,   742,    -1,    72,    -1,    -1,    56,    -1,    -1,
01752      253,    -1,   149,    -1,    -1,    14,    -1,   253,    -1,   149,
01753       -1,   253,    14,    -1,   149,    14,    -1,    -1,    49,   732,
01754       -1,   732,   733,    -1,   733,    -1,   314,    32,   744,    -1,
01755      226,   105,    32,   744,    -1,   105,    32,   744,    -1,   113,
01756       32,   744,    -1,    -1,   180,   735,    -1,   735,   736,    -1,
01757      736,    -1,   314,    32,   744,    -1,   294,    32,   744,    -1,
01758       -1,   149,   215,   738,    -1,   180,    -1,   264,    -1,    -1,
01759      384,   740,   385,    -1,   384,   385,    -1,   740,   388,   741,
01760       -1,   741,    -1,   754,    -1,   390,   783,    -1,    -1,   278,
01761      694,    -1,   762,    -1,   743,   762,    -1,   762,    -1,   139,
01762       -1,    25,    -1,   746,    -1,   377,   750,    -1,   376,   750,
01763       -1,   743,    -1,   750,    -1,   214,    -1,   120,    -1,   326,
01764       -1,   139,    -1,    25,    -1,    76,   743,    -1,   320,   743,
01765       -1,   743,    -1,   139,    -1,    25,    -1,   750,    -1,   214,
01766       -1,   377,   750,    -1,   376,   750,    -1,   214,    -1,   120,
01767       -1,   326,    -1,   743,    -1,   214,    -1,   750,    -1,    76,
01768      743,    -1,   320,   743,    -1,   215,    -1,   186,    -1,   329,
01769       -1,    83,    -1,   124,    -1,   754,    -1,   752,    -1,   764,
01770      389,   378,    -1,   764,   389,   764,   389,   378,    -1,   539,
01771       -1,   764,    -1,   755,    -1,   764,   389,   764,    -1,   389,
01772      764,   389,   764,    -1,   764,   389,   764,   389,   764,    -1,
01773      764,    -1,   764,   389,   764,   389,   764,    -1,   764,   389,
01774      764,    -1,   389,   764,    -1,   764,    -1,   758,   389,   764,
01775       -1,   389,   764,    -1,   764,    -1,   764,    -1,   144,    -1,
01776      147,    -1,   315,    -1,   315,    -1,   315,    -1,   760,    -1,
01777      768,    -1,   760,    -1,   761,    -1,   760,    -1,   761,    -1,
01778      320,    -1,   290,    -1,   146,    -1,   769,    -1,    21,    -1,
01779       43,    -1,    45,    -1,    51,    -1,    53,    -1,    61,    -1,
01780       82,    -1,    97,    -1,   106,    -1,   125,    -1,   213,    -1,
01781      223,    -1,   261,    -1,   267,    -1,   270,    -1,   276,    -1,
01782      282,    -1,   295,    -1,   299,    -1,   327,    -1,     4,    -1,
01783        5,    -1,     7,    -1,     8,    -1,    13,    -1,    17,    -1,
01784       18,    -1,    19,    -1,    26,    -1,    29,    -1,    28,    -1,
01785       31,    -1,    35,    -1,    39,    -1,    46,    -1,    48,    -1,
01786       49,    -1,    52,    -1,    54,    -1,    55,    -1,    56,    -1,
01787       58,    -1,    59,    -1,    66,    -1,    72,    -1,    71,    -1,
01788       73,    -1,    76,    -1,    81,    -1,    92,    -1,    93,    -1,
01789       99,    -1,   100,    -1,   101,    -1,   107,    -1,   110,    -1,
01790      109,    -1,   112,    -1,   114,    -1,   115,    -1,   118,    -1,
01791      129,    -1,   104,    -1,   132,    -1,   121,    -1,   122,    -1,
01792      123,    -1,   130,    -1,   134,    -1,   137,    -1,   143,    -1,
01793      145,    -1,   150,    -1,   151,    -1,   164,    -1,   166,    -1,
01794      169,    -1,   172,    -1,   176,    -1,   182,    -1,   183,    -1,
01795      185,    -1,   190,    -1,   191,    -1,   192,    -1,   193,    -1,
01796      196,    -1,   200,    -1,   198,    -1,   202,    -1,   204,    -1,
01797      203,    -1,   205,    -1,   209,    -1,   208,    -1,   210,    -1,
01798      217,    -1,   218,    -1,   220,    -1,   221,    -1,   222,    -1,
01799      232,    -1,   235,    -1,   237,    -1,   238,    -1,   239,    -1,
01800      240,    -1,   246,    -1,   251,    -1,   257,    -1,   262,    -1,
01801      263,    -1,   264,    -1,   265,    -1,   266,    -1,   269,    -1,
01802      275,    -1,   274,    -1,   277,    -1,   283,    -1,   280,    -1,
01803      284,    -1,   296,    -1,   302,    -1,   303,    -1,   304,    -1,
01804      307,    -1,   309,    -1,   310,    -1,   313,    -1,   316,    -1,
01805      324,    -1,   321,    -1,   318,    -1,   319,    -1,   328,    -1,
01806      330,    -1,   331,    -1,   335,    -1,   346,    -1,   340,    -1,
01807      351,    -1,   348,    -1,   356,    -1,   357,    -1,   362,    -1,
01808      366,    -1,    -1,   278,   772,   771,   773,    -1,    -1,   225,
01809       -1,   774,    -1,   773,   388,   774,    -1,    -1,   775,   780,
01810       -1,   777,    -1,   134,    -1,   182,    -1,   277,    -1,    -1,
01811      220,    -1,    -1,   134,    -1,   182,    -1,   277,    -1,    -1,
01812      134,   389,    -1,   182,   389,    -1,   277,   389,    -1,   781,
01813       -1,   777,   782,    -1,   776,   785,   681,   787,    -1,   776,
01814      324,   164,   176,   786,    -1,   390,   783,   681,   539,    -1,
01815      390,   390,   779,   785,   681,   787,    -1,   784,    -1,   761,
01816       -1,   177,    -1,   767,    -1,   760,    -1,   784,    -1,   243,
01817      330,    -1,   243,    52,    -1,   251,   243,    -1,   274,    -1,
01818      539,    -1,    86,    -1,   219,    -1,     9,    -1,    24,    -1,
01819      312,    -1,   309,    -1,    -1,   336,   790,   788,    -1,    -1,
01820       21,   792,   793,    -1,    -1,   362,    -1,    -1,    12,   213,
01821       39,    -1,    12,    39,    -1,    -1,   249,    -1,   213,   249,
01822       -1,    -1,   267,    -1,    53,   793,   794,   795,    -1,   261,
01823      793,   794,   795,    -1,   261,   793,   322,   796,   801,    -1,
01824      267,   801,    -1,   249,   267,   801,    -1,   760,    -1,    -1,
01825      803,    -1,    -1,   333,   809,   804,   517,    -1,    -1,   803,
01826       -1,   806,    -1,    -1,   807,   808,    -1,   633,   637,    -1,
01827      639,    -1,    -1,    94,    -1,     9,    -1,   271,   589,    -1,
01828      384,   519,   385,    -1,   810,    -1,    -1,   811,   333,   809,
01829      812,   810,    -1,   814,   811,   815,    -1,    -1,    -1
01830 };
01831 
01832 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
01833 static const yytype_uint16 yyrline[] =
01834 {
01835        0,   807,   807,   819,   823,   824,   829,   830,   831,   832,
01836      833,   834,   835,   836,   837,   838,   839,   840,   841,   842,
01837      843,   844,   845,   846,   847,   848,   849,   850,   851,   852,
01838      853,   854,   860,   865,   864,   879,   878,   892,   891,   902,
01839      905,   904,   909,   911,   913,   918,   920,   919,   925,   924,
01840      932,   942,   952,   973,   951,   987,   988,   989,   990,   991,
01841      995,   996,   997,  1001,  1006,  1010,  1014,  1018,  1022,  1026,
01842     1033,  1034,  1038,  1039,  1042,  1044,  1048,  1049,  1053,  1054,
01843     1055,  1058,  1061,  1065,  1069,  1073,  1077,  1081,  1085,  1089,
01844     1093,  1097,  1101,  1105,  1106,  1110,  1111,  1115,  1116,  1120,
01845     1125,  1135,  1142,  1143,  1144,  1145,  1146,  1147,  1151,  1158,
01846     1159,  1163,  1164,  1168,  1169,  1173,  1174,  1181,  1185,  1190,
01847     1194,  1198,  1204,  1206,  1210,  1214,  1215,  1219,  1224,  1223,
01848     1249,  1253,  1257,  1264,  1268,  1272,  1276,  1285,  1284,  1295,
01849     1299,  1304,  1311,  1318,  1322,  1326,  1330,  1334,  1338,  1342,
01850     1346,  1353,  1355,  1357,  1362,  1366,  1373,  1377,  1381,  1389,
01851     1390,  1392,  1397,  1405,  1406,  1410,  1411,  1412,  1416,  1417,
01852     1421,  1422,  1427,  1428,  1430,  1435,  1439,  1451,  1455,  1459,
01853     1466,  1467,  1469,  1476,  1481,  1482,  1484,  1491,  1496,  1497,
01854     1501,  1502,  1506,  1508,  1515,  1528,  1533,  1534,  1538,  1539,
01855     1543,  1545,  1549,  1553,  1560,  1565,  1566,  1570,  1571,  1575,
01856     1577,  1584,  1591,  1595,  1600,  1601,  1612,  1623,  1624,  1628,
01857     1629,  1632,  1634,  1638,  1646,  1647,  1651,  1653,  1662,  1663,
01858     1665,  1667,  1673,  1677,  1682,  1687,  1693,  1702,  1703,  1704,
01859     1705,  1706,  1710,  1714,  1715,  1719,  1720,  1724,  1725,  1729,
01860     1730,  1731,  1735,  1736,  1740,  1752,  1753,  1757,  1758,  1762,
01861     1763,  1767,  1771,  1772,  1774,  1779,  1780,  1784,  1785,  1789,
01862     1790,  1802,  1803,  1807,  1808,  1812,  1813,  1821,  1820,  1837,
01863     1836,  1853,  1855,  1861,  1867,  1872,  1875,  1879,  1886,  1887,
01864     1891,  1901,  1902,  1908,  1916,  1915,  1923,  1936,  1922,  1950,
01865     1960,  1964,  1968,  1972,  1982,  1991,  1998,  2005,  2031,  2041,
01866     2047,  2053,  2062,  2063,  2067,  2068,  2072,  2073,  2077,  2084,
01867     2085,  2086,  2090,  2097,  2098,  2106,  2105,  2115,  2114,  2124,
01868     2123,  2132,  2133,  2137,  2154,  2162,  2163,  2167,  2172,  2177,
01869     2182,  2187,  2186,  2205,  2212,  2205,  2219,  2220,  2221,  2222,
01870     2223,  2227,  2236,  2238,  2243,  2244,  2248,  2258,  2271,  2281,
01871     2295,  2296,  2302,  2304,  2306,  2314,  2316,  2320,  2328,  2329,
01872     2330,  2338,  2342,  2361,  2368,  2375,  2376,  2377,  2378,  2379,
01873     2383,  2384,  2389,  2438,  2443,  2484,  2486,  2490,  2494,  2498,
01874     2502,  2506,  2510,  2514,  2518,  2522,  2526,  2530,  2534,  2538,
01875     2542,  2547,  2551,  2557,  2561,  2569,  2573,  2579,  2583,  2587,
01876     2597,  2608,  2612,  2616,  2620,  2624,  2628,  2632,  2636,  2640,
01877     2644,  2648,  2652,  2656,  2660,  2664,  2668,  2672,  2673,  2674,
01878     2675,  2676,  2677,  2681,  2682,  2686,  2687,  2688,  2689,  2690,
01879     2691,  2696,  2697,  2698,  2702,  2706,  2707,  2711,  2715,  2719,
01880     2720,  2725,  2730,  2734,  2735,  2740,  2747,  2749,  2756,  2761,
01881     2766,  2778,  2780,  2788,  2790,  2792,  2794,  2796,  2804,  2811,
01882     2813,  2815,  2817,  2819,  2821,  2823,  2825,  2827,  2829,  2831,
01883     2833,  2835,  2837,  2839,  2847,  2863,  2868,  2870,  2875,  2877,
01884     2879,  2881,  2886,  2891,  2893,  2898,  2900,  2911,  2921,  2932,
01885     2942,  2947,  2952,  2954,  2956,  2961,  2974,  2976,  2978,  2986,
01886     2994,  3009,  3013,  3028,  3030,  3032,  3034,  3036,  3038,  3040,
01887     3049,  3057,  3065,  3087,  3086,  3129,  3130,  3134,  3139,  3147,
01888     3167,  3169,  3171,  3173,  3176,  3178,  3175,  3181,  3188,  3190,
01889     3192,  3194,  3196,  3198,  3200,  3202,  3204,  3207,  3206,  3222,
01890     3221,  3230,  3235,  3240,  3254,  3255,  3260,  3263,  3268,  3271,
01891     3281,  3280,  3296,  3298,  3300,  3302,  3304,  3306,  3308,  3310,
01892     3312,  3314,  3316,  3318,  3323,  3328,  3336,  3337,  3341,  3342,
01893     3346,  3352,  3363,  3364,  3372,  3383,  3384,  3390,  3391,  3411,
01894     3416,  3422,  3420,  3437,  3435,  3452,  3450,  3457,  3466,  3464,
01895     3481,  3480,  3490,  3501,  3499,  3516,  3515,  3525,  3535,  3536,
01896     3537,  3553,  3553,  3564,  3602,  3643,  3647,  3652,  3644,  3664,
01897     3683,  3690,  3683,  3699,  3698,  3719,  3733,  3719,  3740,  3744,
01898     3762,  3763,  3768,  3771,  3772,  3773,  3777,  3778,  3783,  3782,
01899     3788,  3787,  3795,  3796,  3799,  3801,  3801,  3805,  3805,  3810,
01900     3811,  3815,  3817,  3822,  3823,  3827,  3832,  3840,  3841,  3842,
01901     3843,  3844,  3845,  3846,  3847,  3848,  3849,  3850,  3851,  3855,
01902     3856,  3874,  3875,  3876,  3877,  3878,  3879,  3880,  3881,  3882,
01903     3885,  3887,  3891,  3892,  3898,  3900,  3904,  3906,  3905,  3919,
01904     3922,  3921,  3936,  3942,  3952,  3954,  3958,  3960,  3965,  3966,
01905     3990,  3994,  3995,  3999,  4010,  4012,  4017,  4016,  4025,  4029,
01906     4036,  4037,  4038,  4043,  4048,  4052,  4053,  4057,  4061,  4068,
01907     4075,  4085,  4086,  4087,  4092,  4095,  4104,  4105,  4106,  4107,
01908     4108,  4109,  4113,  4114,  4115,  4116,  4117,  4121,  4121,  4130,
01909     4131,  4135,  4154,  4153,  4160,  4159,  4166,  4175,  4184,  4188,
01910     4195,  4195,  4211,  4221,  4222,  4226,  4234,  4235,  4239,  4240,
01911     4248,  4255,  4259,  4265,  4266,  4270,  4271,  4275,  4276,  4285,
01912     4293,  4284,  4303,  4309,  4302,  4318,  4319,  4323,  4331,  4332,
01913     4333,  4335,  4334,  4343,  4344,  4348,  4349,  4351,  4350,  4356,
01914     4355,  4363,  4364,  4368,  4369,  4373,  4381,  4382,  4386,  4387,
01915     4392,  4391,  4402,  4403,  4407,  4411,  4418,  4419,  4422,  4424,
01916     4424,  4432,  4431,  4458,  4459,  4463,  4471,  4472,  4476,  4487,
01917     4486,  4499,  4500,  4504,  4512,  4514,  4521,  4520,  4532,  4538,
01918     4544,  4550,  4556,  4562,  4567,  4571,  4575,  4579,  4583,  4588,
01919     4593,  4598,  4603,  4608,  4615,  4616,  4620,  4621,  4624,  4626,
01920     4630,  4641,  4640,  4649,  4648,  4657,  4658,  4662,  4663,  4667,
01921     4668,  4669,  4680,  4679,  4688,  4689,  4694,  4693,  4699,  4704,
01922     4709,  4714,  4722,  4723,  4729,  4736,  4737,  4738,  4744,  4755,
01923     4763,  4770,  4775,  4754,  4790,  4793,  4794,  4801,  4802,  4803,
01924     4807,  4808,  4809,  4810,  4811,  4812,  4815,  4817,  4821,  4822,
01925     4826,  4831,  4837,  4842,  4849,  4851,  4855,  4856,  4860,  4865,
01926     4872,  4874,  4882,  4883,  4887,  4888,  4889,  4893,  4895,  4900,
01927     4901,  4906,  4907,  4913,  4917,  4924,  4928,  4937,  4949,  4950,
01928     4951,  4959,  4960,  4961,  4966,  4967,  4968,  4969,  4970,  4971,
01929     4975,  4976,  4977,  4978,  4979,  4984,  4985,  4993,  4998,  5002,
01930     5009,  5010,  5015,  5016,  5017,  5021,  5026,  5031,  5033,  5041,
01931     5056,  5057,  5061,  5065,  5072,  5076,  5080,  5084,  5088,  5092,
01932     5099,  5103,  5110,  5117,  5124,  5128,  5132,  5139,  5143,  5147,
01933     5151,  5166,  5173,  5180,  5187,  5188,  5195,  5196,  5200,  5201,
01934     5205,  5206,  5207,  5212,  5213,  5214,  5215,  5216,  5217,  5218,
01935     5219,  5220,  5221,  5222,  5223,  5224,  5225,  5226,  5227,  5228,
01936     5229,  5230,  5231,  5232,  5242,  5243,  5244,  5245,  5246,  5247,
01937     5248,  5249,  5250,  5251,  5252,  5253,  5254,  5255,  5256,  5257,
01938     5258,  5259,  5260,  5261,  5262,  5263,  5264,  5265,  5266,  5267,
01939     5268,  5269,  5270,  5271,  5272,  5273,  5274,  5275,  5276,  5277,
01940     5278,  5279,  5280,  5281,  5282,  5283,  5284,  5285,  5286,  5287,
01941     5288,  5289,  5290,  5291,  5292,  5293,  5294,  5295,  5296,  5297,
01942     5298,  5299,  5300,  5301,  5302,  5303,  5304,  5305,  5306,  5307,
01943     5308,  5309,  5310,  5311,  5312,  5313,  5314,  5315,  5316,  5317,
01944     5318,  5319,  5320,  5321,  5322,  5323,  5324,  5325,  5326,  5327,
01945     5328,  5329,  5330,  5331,  5332,  5333,  5334,  5335,  5336,  5337,
01946     5338,  5339,  5340,  5341,  5342,  5343,  5344,  5345,  5346,  5347,
01947     5348,  5349,  5350,  5351,  5352,  5353,  5354,  5355,  5356,  5357,
01948     5358,  5359,  5360,  5361,  5362,  5363,  5364,  5365,  5366,  5367,
01949     5368,  5375,  5374,  5383,  5384,  5388,  5389,  5393,  5393,  5399,
01950     5400,  5401,  5402,  5406,  5407,  5411,  5412,  5413,  5414,  5418,
01951     5419,  5420,  5421,  5425,  5426,  5430,  5441,  5449,  5453,  5460,
01952     5461,  5462,  5466,  5470,  5474,  5489,  5490,  5491,  5492,  5496,
01953     5497,  5498,  5499,  5500,  5504,  5505,  5510,  5509,  5519,  5518,
01954     5526,  5527,  5532,  5533,  5534,  5539,  5540,  5541,  5545,  5546,
01955     5550,  5557,  5561,  5568,  5575,  5582,  5591,  5592,  5597,  5596,
01956     5612,  5613,  5614,  5618,  5618,  5639,  5640,  5644,  5645,  5646,
01957     5650,  5654,  5661,  5664,  5662,  5677,  5684,  5703
01958 };
01959 #endif
01960 
01961 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
01962 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
01963    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
01964 static const char *const yytname[] =
01965 {
01966   "$end", "error", "$undefined", "ABORT_SYM", "ACTION", "ADDDATE_SYM",
01967   "ADD_SYM", "AFTER_SYM", "AGGREGATE_SYM", "ALL", "ALTER_SYM",
01968   "ANALYZE_SYM", "AND_SYM", "ANY_SYM", "AS", "ASC", "ASENSITIVE_SYM",
01969   "AT_SYM", "AUTO_INC", "AVG_SYM", "BEFORE_SYM", "BEGIN_SYM",
01970   "BETWEEN_SYM", "BIGINT_SYM", "BINARY", "BIN_NUM", "BIT_SYM", "BLOB_SYM",
01971   "BOOLEAN_SYM", "BOOL_SYM", "BOTH", "BTREE_SYM", "BY", "CALL_SYM",
01972   "CASCADE", "CASCADED", "CASE_SYM", "CAST_SYM", "CATALOG_SYM",
01973   "CHAIN_SYM", "CHANGE_SYM", "CHARSET", "CHAR_SYM", "CHECKSUM_SYM",
01974   "CHECK_SYM", "CLOSE_SYM", "COALESCE", "COLLATE_SYM", "COLLATION_SYM",
01975   "COLUMNS", "COLUMN_SYM", "COMMENT_SYM", "COMMITTED_SYM", "COMMIT_SYM",
01976   "COMPACT_SYM", "COMPRESSED_SYM", "CONCURRENT", "CONDITION_SYM",
01977   "CONNECTION_SYM", "CONSISTENT_SYM", "CONSTRAINT", "CONTAINS_SYM",
01978   "CONVERT_SYM", "COUNT_SYM", "CREATE", "CROSS", "CUBE_SYM", "CURDATE",
01979   "CURRENT_USER", "CURSOR_SYM", "DATABASE", "DATABASES", "DATA_SYM",
01980   "DATETIME_SYM", "DATE_ADD_INTERVAL", "DATE_SUB_INTERVAL", "DATE_SYM",
01981   "DAY_HOUR_SYM", "DAY_MICROSECOND_SYM", "DAY_MINUTE_SYM",
01982   "DAY_SECOND_SYM", "DAY_SYM", "DEALLOCATE_SYM", "DECIMAL_NUM",
01983   "DECIMAL_SYM", "DECLARE_SYM", "DEFAULT", "DEFINER", "DELETE_SYM", "DESC",
01984   "DESCRIBE", "DETERMINISTIC_SYM", "DISABLE_SYM", "DISCARD", "DISTINCT",
01985   "DIV_SYM", "DOUBLE_SYM", "DO_SYM", "DROP", "DUMPFILE", "DUPLICATE_SYM",
01986   "DYNAMIC_SYM", "EACH_SYM", "ELSE", "ENABLE_SYM", "ENCLOSED", "END",
01987   "ENDS_SYM", "END_OF_INPUT", "ENGINE_SYM", "ENUM_SYM", "EQUAL_SYM",
01988   "ERRORS", "ESCAPED", "ESCAPE_SYM", "EXCLUSIVE_SYM", "EXECUTE_SYM",
01989   "EXISTS", "EXTENDED_SYM", "EXTRACT_SYM", "FALSE_SYM", "FILE_SYM",
01990   "FIRST_SYM", "FIXED_SYM", "FLOAT_NUM", "FLUSH_SYM", "FORCE_SYM",
01991   "FOREIGN", "FOR_SYM", "FOUND_SYM", "FRAC_SECOND_SYM", "FROM", "FULL",
01992   "GE", "GLOBAL_SYM", "GROUP_CONCAT_SYM", "GROUP_SYM", "HASH_SYM",
01993   "HAVING", "HEX_NUM", "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM",
01994   "HOUR_SECOND_SYM", "HOUR_SYM", "IDENT", "IDENTIFIED_SYM", "IDENTITY_SYM",
01995   "IDENT_QUOTED", "IF", "IGNORE_SYM", "IMPORT", "INDEXES", "INDEX_SYM",
01996   "INFILE", "INNER_SYM", "INOUT_SYM", "INSENSITIVE_SYM", "INSERT",
01997   "INTERVAL_SYM", "INTO", "INT_SYM", "INVOKER", "IN_SYM", "IS",
01998   "ISOLATION", "ITERATE_SYM", "IPV6_SYM", "JOIN_SYM", "KEYS",
01999   "KEY_BLOCK_SIZE", "KEY_SYM", "KILL_SYM", "LAST_SYM", "LE", "LEADING",
02000   "LEFT", "LEVEL_SYM", "LEX_HOSTNAME", "LIKE", "LIMIT", "LINES", "LOAD",
02001   "LOCAL_SYM", "LOCKS_SYM", "LOCK_SYM", "LOGS_SYM", "LONG_NUM", "LONG_SYM",
02002   "MATCH", "MAX_SYM", "MAX_VALUE_SYM", "MEDIUM_SYM", "MERGE_SYM",
02003   "MICROSECOND_SYM", "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM",
02004   "MINUTE_SYM", "MIN_SYM", "MODE_SYM", "MODIFIES_SYM", "MODIFY_SYM",
02005   "MOD_SYM", "MONTH_SYM", "NAMES_SYM", "NAME_SYM", "NATIONAL_SYM",
02006   "NATURAL", "NE", "NEW_SYM", "NEXT_SYM", "NONE_SYM", "NOT_SYM", "NOW_SYM",
02007   "NO_SYM", "NULL_SYM", "NUM", "NUMERIC_SYM", "OFFLINE_SYM", "OFFSET_SYM",
02008   "ON", "ONE_SHOT_SYM", "ONE_SYM", "ONLINE_SYM", "OPEN_SYM", "OPTIMIZE",
02009   "OPTION", "OPTIONALLY", "ORDER_SYM", "OR_SYM", "OUTER", "OUTFILE",
02010   "OUT_SYM", "PARTIAL", "POSITION_SYM", "PRECISION", "PREV_SYM",
02011   "PRIMARY_SYM", "PROCESS", "PROCESSLIST_SYM", "QUARTER_SYM", "QUERY_SYM",
02012   "RANGE_SYM", "READS_SYM", "READ_SYM", "READ_WRITE_SYM", "REAL",
02013   "REDUNDANT_SYM", "REFERENCES", "REGEXP_SYM", "RELEASE_SYM", "RENAME",
02014   "REPEATABLE_SYM", "REPEAT_SYM", "REPLACE", "REPLICATE", "REPLICATION",
02015   "RESTRICT", "RETURNS_SYM", "RETURN_SYM", "REVOKE", "RIGHT",
02016   "ROLLBACK_SYM", "ROLLUP_SYM", "ROUTINE_SYM", "ROWS_SYM",
02017   "ROW_FORMAT_SYM", "ROW_SYM", "SAVEPOINT_SYM", "SECOND_MICROSECOND_SYM",
02018   "SECOND_SYM", "SECURITY_SYM", "SELECT_SYM", "SENSITIVE_SYM",
02019   "SEPARATOR_SYM", "SERIALIZABLE_SYM", "SERIAL_SYM", "SERVER_SYM",
02020   "SESSION_SYM", "SET_SYM", "SET_VAR", "SHARE_SYM", "SHOW", "SIGNED_SYM",
02021   "SIMPLE_SYM", "SNAPSHOT_SYM", "SPECIFIC_SYM", "SQLEXCEPTION_SYM",
02022   "SQLSTATE_SYM", "SQLWARNING_SYM", "SQL_BIG_RESULT", "SQL_BUFFER_RESULT",
02023   "SQL_CALC_FOUND_ROWS", "SQL_SMALL_RESULT", "SQL_SYM", "STARTING",
02024   "START_SYM", "STATUS_SYM", "STDDEV_SAMP_SYM", "STD_SYM", "STOP_SYM",
02025   "STORED_SYM", "STRAIGHT_JOIN", "STRING_SYM", "SUBDATE_SYM",
02026   "SUBJECT_SYM", "SUBSTRING", "SUM_SYM", "SUSPEND_SYM", "SYSDATE",
02027   "TABLES", "TABLESPACE", "TABLE_REF_PRIORITY", "TABLE_SYM",
02028   "TEMPORARY_SYM", "TERMINATED", "TEXT_STRING", "TEXT_SYM", "THEN_SYM",
02029   "TIMESTAMP_ADD", "TIMESTAMP_DIFF", "TIMESTAMP_SYM", "TIME_SYM", "TO_SYM",
02030   "TRAILING", "TRANSACTION_SYM", "TRIM", "TRUE_SYM", "TRUNCATE_SYM",
02031   "TYPE_SYM", "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDOFILE_SYM",
02032   "UNDO_SYM", "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM", "UNLOCK_SYM",
02033   "UNSIGNED_SYM", "UPDATE_SYM", "USAGE", "USER", "USE_SYM", "USING",
02034   "UTC_DATE_SYM", "UTC_TIMESTAMP_SYM", "UTF8_SYM", "UUID_SYM", "VALUES",
02035   "VALUE_SYM", "VARBINARY", "VARCHAR_SYM", "VARIABLES", "VARIANCE_SYM",
02036   "VARYING", "VAR_SAMP_SYM", "WAIT_SYM", "WARNINGS", "WEEK_SYM",
02037   "WHEN_SYM", "WHERE", "WITH", "WITH_ROLLUP_SYM", "WORK_SYM", "WRITE_SYM",
02038   "XOR", "YEAR_MONTH_SYM", "YEAR_SYM", "ZEROFILL_SYM", "'='", "LESS_THAN",
02039   "GREATER_THAN", "CONCAT", "'|'", "'&'", "SHIFT_RIGHT", "SHIFT_LEFT",
02040   "'-'", "'+'", "'*'", "'/'", "'%'", "'^'", "'~'", "UMINUS", "'('", "')'",
02041   "'{'", "'}'", "','", "'.'", "'@'", "$accept", "query", "verb_clause",
02042   "statement", "create", "$@1", "$@2", "$@3", "create_table_definition",
02043   "$@4", "create_select_as", "$@5", "$@6", "create_like", "create_select",
02044   "stored_select", "$@7", "$@8", "opt_create_database_options",
02045   "opt_database_custom_options", "custom_database_option",
02046   "opt_table_options", "opt_if_not_exists", "opt_create_table_options",
02047   "create_table_options_space_separated", "create_table_options",
02048   "create_table_option", "custom_engine_option", "charset",
02049   "charset_name_or_default", "default_charset", "default_collation",
02050   "default_collation_schema", "row_format", "row_format_or_text",
02051   "opt_select_from", "field_list", "field_list_item", "column_def",
02052   "key_def", "opt_check_constraint", "check_constraint", "opt_constraint",
02053   "constraint", "field_spec", "$@9", "field_def", "$@10", "varchar",
02054   "int_type", "real_type", "float_options", "precision", "opt_len",
02055   "opt_field_number_signed", "ignored_field_number_length", "opt_zerofill",
02056   "opt_precision", "opt_attribute_not_null", "opt_attribute_index",
02057   "opt_attribute", "opt_attribute_boolean", "opt_attribute_string",
02058   "opt_attribute_list_string", "attribute_string", "opt_attribute_number",
02059   "opt_attribute_list_integer", "attribute_integer",
02060   "opt_attribute_timestamp", "opt_attribute_list_timestamp",
02061   "attribute_timestamp", "opt_attribute_comment", "collation_name",
02062   "collation_name_or_default", "opt_default", "opt_primary", "references",
02063   "opt_ref_list", "ref_list", "opt_match_clause", "opt_on_update_delete",
02064   "delete_option", "key_type", "constraint_key_type", "key_or_index",
02065   "opt_key_or_index", "keys_or_index", "opt_unique", "init_key_options",
02066   "key_alg", "key_options", "key_opts", "key_using_alg", "key_opt",
02067   "btree_or_rtree", "key_list", "key_part", "opt_ident", "opt_component",
02068   "string_list", "alter", "$@11", "$@12", "alter_commands", "build_method",
02069   "alter_list", "add_column", "alter_list_item", "$@13", "$@14", "$@15",
02070   "opt_column", "opt_ignore", "opt_place", "opt_to", "start",
02071   "start_transaction_opts", "analyze", "$@16", "check", "$@17", "rename",
02072   "$@18", "table_to_table_list", "table_to_table", "select", "select_init",
02073   "select_paren", "select_paren_derived", "select_init2", "$@19",
02074   "select_part2", "$@20", "$@21", "select_into", "select_from",
02075   "select_options", "select_option_list", "select_option_distinct_or_all",
02076   "select_option_small_or_big", "select_option", "select_lock_type",
02077   "select_item_list", "select_item", "remember_name", "remember_end",
02078   "select_alias", "optional_braces", "expr", "bool_pri", "predicate",
02079   "bit_expr", "comp_op", "all_or_any", "simple_expr",
02080   "function_call_keyword", "function_call_nonkeyword",
02081   "function_call_conflict", "function_call_generic", "@22",
02082   "opt_udf_expr_list", "udf_expr_list", "udf_expr", "sum_expr", "$@23",
02083   "$@24", "$@25", "variable", "$@26", "variable_aux", "opt_distinct",
02084   "opt_gconcat_separator", "opt_gorder_clause", "in_sum_expr", "$@27",
02085   "cast_type", "expr_list", "opt_expr", "opt_else", "when_list",
02086   "table_ref", "join_table_list", "esc_table_ref", "derived_table_list",
02087   "join_table", "$@28", "$@29", "$@30", "$@31", "$@32", "$@33", "$@34",
02088   "normal_join", "table_factor", "$@35", "select_derived_union", "$@36",
02089   "$@37", "select_init2_derived", "select_part2_derived", "$@38", "$@39",
02090   "select_derived", "$@40", "select_derived2", "$@41", "$@42",
02091   "get_select_lex", "select_derived_init", "opt_outer",
02092   "index_hint_clause", "index_hint_type", "index_hint_definition", "$@43",
02093   "$@44", "index_hints_list", "opt_index_hints_list", "$@45",
02094   "opt_key_definition", "$@46", "opt_key_usage_list", "key_usage_element",
02095   "key_usage_list", "using_list", "interval", "interval_time_stamp",
02096   "interval_time_st", "table_alias", "opt_table_alias", "opt_all",
02097   "where_clause", "$@47", "having_clause", "$@48", "opt_escape",
02098   "group_clause", "group_list", "olap_opt", "alter_order_clause",
02099   "alter_order_list", "alter_order_item", "opt_order_clause",
02100   "order_clause", "$@49", "order_list", "order_dir",
02101   "opt_limit_clause_init", "opt_limit_clause", "limit_clause",
02102   "limit_options", "limit_option", "delete_limit_clause", "ulong_num",
02103   "ulonglong_num", "select_var_list_init", "$@50", "select_var_list",
02104   "select_var_ident", "into", "$@51", "into_destination", "$@52", "drop",
02105   "$@53", "table_list", "table_name", "if_exists", "opt_temporary",
02106   "execute", "execute_var_or_string", "opt_status", "opt_concurrent",
02107   "opt_wait", "insert", "$@54", "$@55", "replace", "$@56", "$@57",
02108   "insert2", "insert_table", "insert_field_spec", "$@58", "fields",
02109   "insert_values", "$@59", "$@60", "values_list", "ident_eq_list",
02110   "ident_eq_value", "equal", "opt_equal", "no_braces", "$@61",
02111   "opt_values", "values", "expr_or_default", "opt_insert_update", "$@62",
02112   "update", "$@63", "update_list", "update_elem", "insert_update_list",
02113   "insert_update_elem", "delete", "$@64", "opt_delete_option", "truncate",
02114   "opt_table_sym", "show", "$@65", "show_param", "opt_db", "from_or_in",
02115   "show_wild", "describe", "$@66", "$@67", "describe_command",
02116   "opt_extended_describe", "opt_describe_column", "flush", "$@68",
02117   "flush_options", "flush_option", "$@69", "opt_table_list", "kill",
02118   "kill_option", "use", "load", "$@70", "$@71", "$@72", "$@73",
02119   "data_file", "load_data_lock", "opt_duplicate", "opt_duplicate_as",
02120   "opt_field_term", "field_term_list", "field_term", "opt_line_term",
02121   "line_term_list", "line_term", "opt_ignore_lines", "lines_or_rows",
02122   "opt_field_or_var_spec", "fields_or_vars", "field_or_var",
02123   "opt_load_data_set_spec", "text_literal", "text_string",
02124   "signed_literal", "literal", "integer_literal", "boolean_literal",
02125   "date_literal", "NUM_literal", "insert_ident", "table_wild",
02126   "order_ident", "simple_ident", "simple_ident_q", "field_ident",
02127   "table_ident", "schema_name", "catalog_name", "IDENT_sys",
02128   "TEXT_STRING_sys", "TEXT_STRING_literal", "TEXT_STRING_filesystem",
02129   "ident", "ident_or_text", "engine_option_value",
02130   "keyword_exception_for_variable", "keyword", "keyword_sp", "set", "$@74",
02131   "opt_option", "option_value_list", "option_type_value", "$@75",
02132   "option_type", "option_type2", "opt_var_type", "opt_var_ident_type",
02133   "ext_option_value", "sys_option_value", "option_value",
02134   "user_variable_ident", "internal_variable_ident",
02135   "internal_variable_name", "isolation_types", "set_expr_or_default",
02136   "table_or_tables", "unlock", "$@76", "begin", "$@77", "opt_work",
02137   "opt_chain", "opt_release", "opt_savepoint", "commit", "rollback",
02138   "savepoint", "release", "savepoint_ident", "union_clause", "union_list",
02139   "$@78", "union_opt", "union_order_or_limit", "$@79", "order_or_limit",
02140   "union_option", "query_specification", "query_expression_body", "$@80",
02141   "subselect", "subselect_start", "subselect_end", 0
02142 };
02143 #endif
02144 
02145 # ifdef YYPRINT
02146 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
02147    token YYLEX-NUM.  */
02148 static const yytype_uint16 yytoknum[] =
02149 {
02150        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
02151      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
02152      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
02153      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
02154      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
02155      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
02156      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
02157      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
02158      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
02159      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
02160      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
02161      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
02162      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
02163      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
02164      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
02165      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
02166      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
02167      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
02168      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
02169      445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
02170      455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
02171      465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
02172      475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
02173      485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
02174      495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
02175      505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
02176      515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
02177      525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
02178      535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
02179      545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
02180      555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
02181      565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
02182      575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
02183      585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
02184      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
02185      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
02186      615,   616,   617,   618,   619,   620,   621,   622,    61,   623,
02187      624,   625,   124,    38,   626,   627,    45,    43,    42,    47,
02188       37,    94,   126,   628,    40,    41,   123,   125,    44,    46,
02189       64
02190 };
02191 # endif
02192 
02193 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
02194 static const yytype_uint16 yyr1[] =
02195 {
02196        0,   391,   392,   392,   393,   393,   394,   394,   394,   394,
02197      394,   394,   394,   394,   394,   394,   394,   394,   394,   394,
02198      394,   394,   394,   394,   394,   394,   394,   394,   394,   394,
02199      394,   394,   395,   396,   395,   397,   395,   398,   395,   399,
02200      400,   399,   399,   399,   399,   401,   402,   401,   403,   401,
02201      404,   405,   407,   408,   406,   409,   409,   409,   409,   409,
02202      410,   410,   410,   411,   411,   411,   411,   411,   411,   411,
02203      412,   412,   413,   413,   414,   414,   415,   415,   416,   416,
02204      416,   417,   418,   418,   418,   418,   418,   418,   418,   418,
02205      418,   418,   418,   418,   418,   419,   419,   420,   420,   421,
02206      422,   423,   424,   424,   424,   424,   424,   424,   425,   426,
02207      426,   427,   427,   428,   428,   429,   429,   430,   430,   430,
02208      430,   430,   431,   431,   432,   433,   433,   434,   436,   435,
02209      437,   437,   437,   437,   437,   437,   437,   438,   437,   437,
02210      437,   437,   437,   437,   437,   437,   437,   437,   437,   437,
02211      437,   439,   439,   439,   440,   440,   441,   441,   441,   442,
02212      442,   442,   443,   444,   444,   445,   445,   445,   446,   446,
02213      447,   447,   448,   448,   448,   449,   449,   450,   450,   450,
02214      451,   451,   451,   451,   452,   452,   452,   452,   453,   453,
02215      454,   454,   455,   455,   455,   455,   456,   456,   457,   457,
02216      458,   458,   458,   458,   458,   459,   459,   460,   460,   461,
02217      461,   461,   461,   461,   462,   462,   463,   464,   464,   465,
02218      465,   466,   466,   467,   468,   468,   469,   469,   470,   470,
02219      470,   470,   471,   471,   471,   471,   471,   472,   472,   472,
02220      472,   472,   473,   474,   474,   475,   475,   476,   476,   477,
02221      477,   477,   478,   478,   479,   480,   480,   481,   481,   482,
02222      482,   483,   484,   484,   484,   485,   485,   486,   486,   487,
02223      487,   488,   488,   489,   489,   490,   490,   492,   491,   493,
02224      491,   494,   494,   494,   494,   495,   495,   495,   496,   496,
02225      497,   498,   498,   498,   499,   498,   500,   501,   498,   498,
02226      498,   498,   498,   498,   498,   498,   498,   498,   498,   498,
02227      498,   498,   502,   502,   503,   503,   504,   504,   504,   505,
02228      505,   505,   506,   507,   507,   509,   508,   511,   510,   513,
02229      512,   514,   514,   515,   516,   517,   517,   518,   518,   519,
02230      519,   521,   520,   523,   524,   522,   525,   525,   525,   525,
02231      525,   526,   527,   527,   528,   528,   529,   529,   530,   530,
02232      531,   531,   531,   531,   531,   532,   532,   532,   533,   533,
02233      533,   534,   534,   535,   536,   537,   537,   537,   537,   537,
02234      538,   538,   539,   539,   539,   539,   539,   539,   539,   539,
02235      539,   539,   539,   540,   540,   540,   540,   540,   540,   541,
02236      541,   541,   541,   541,   541,   541,   541,   541,   541,   541,
02237      541,   541,   542,   542,   542,   542,   542,   542,   542,   542,
02238      542,   542,   542,   542,   542,   542,   542,   543,   543,   543,
02239      543,   543,   543,   544,   544,   545,   545,   545,   545,   545,
02240      545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
02241      545,   545,   545,   545,   545,   545,   545,   545,   545,   545,
02242      545,   546,   546,   546,   546,   546,   546,   546,   546,   546,
02243      546,   546,   546,   546,   546,   546,   546,   546,   546,   546,
02244      546,   546,   546,   546,   546,   547,   547,   547,   547,   547,
02245      547,   547,   547,   547,   547,   547,   547,   547,   547,   547,
02246      547,   547,   547,   547,   547,   547,   548,   548,   548,   548,
02247      548,   548,   548,   548,   548,   548,   548,   548,   548,   548,
02248      548,   548,   548,   550,   549,   551,   551,   552,   552,   553,
02249      554,   554,   554,   554,   555,   556,   554,   554,   554,   554,
02250      554,   554,   554,   554,   554,   554,   554,   557,   554,   559,
02251      558,   560,   560,   560,   561,   561,   562,   562,   563,   563,
02252      565,   564,   566,   566,   566,   566,   566,   566,   566,   566,
02253      566,   566,   566,   566,   567,   567,   568,   568,   569,   569,
02254      570,   570,   571,   571,   572,   573,   573,   574,   574,   575,
02255      575,   576,   575,   577,   575,   578,   575,   575,   579,   575,
02256      580,   575,   575,   581,   575,   582,   575,   575,   583,   583,
02257      583,   585,   584,   584,   584,   586,   587,   588,   586,   589,
02258      591,   592,   590,   594,   593,   596,   597,   595,   598,   599,
02259      600,   600,   601,   601,   601,   601,   602,   602,   604,   603,
02260      605,   603,   606,   606,   607,   608,   607,   610,   609,   611,
02261      611,   612,   612,   613,   613,   614,   614,   615,   615,   615,
02262      615,   615,   615,   615,   615,   615,   615,   615,   615,   616,
02263      616,   617,   617,   617,   617,   617,   617,   617,   617,   617,
02264      618,   618,   619,   619,   620,   620,   621,   622,   621,   623,
02265      624,   623,   625,   625,   626,   626,   627,   627,   628,   628,
02266      629,   630,   630,   631,   632,   632,   634,   633,   635,   635,
02267      636,   636,   636,   637,   637,   638,   638,   639,   640,   640,
02268      640,   641,   641,   641,   642,   642,   643,   643,   643,   643,
02269      643,   643,   644,   644,   644,   644,   644,   646,   645,   647,
02270      647,   648,   650,   649,   652,   651,   651,   651,   653,   653,
02271      654,   653,   653,   655,   655,   656,   657,   657,   658,   658,
02272      659,   660,   660,   661,   661,   662,   662,   663,   663,   665,
02273      666,   664,   668,   669,   667,   670,   670,   671,   672,   672,
02274      672,   673,   672,   674,   674,   675,   675,   676,   675,   677,
02275      675,   678,   678,   679,   679,   680,   681,   681,   682,   682,
02276      684,   683,   685,   685,   686,   686,   687,   687,   688,   689,
02277      688,   691,   690,   692,   692,   693,   694,   694,   695,   697,
02278      696,   698,   698,   699,   700,   700,   702,   701,   703,   703,
02279      703,   703,   703,   703,   703,   703,   703,   703,   703,   703,
02280      703,   703,   703,   703,   704,   704,   705,   705,   706,   706,
02281      706,   708,   707,   709,   707,   710,   710,   711,   711,   712,
02282      712,   712,   714,   713,   715,   715,   717,   716,   716,   716,
02283      716,   716,   718,   718,   719,   720,   720,   720,   721,   723,
02284      724,   725,   726,   722,   727,   728,   728,   729,   729,   729,
02285      730,   730,   730,   730,   730,   730,   731,   731,   732,   732,
02286      733,   733,   733,   733,   734,   734,   735,   735,   736,   736,
02287      737,   737,   738,   738,   739,   739,   739,   740,   740,   741,
02288      741,   742,   742,   743,   743,   744,   744,   744,   745,   745,
02289      745,   746,   746,   746,   746,   746,   746,   746,   746,   746,
02290      747,   747,   747,   747,   747,   747,   747,   748,   748,   748,
02291      749,   749,   749,   749,   749,   750,   750,   750,   750,   750,
02292      751,   751,   752,   752,   753,   754,   754,   755,   755,   755,
02293      756,   756,   756,   756,   757,   757,   757,   758,   759,   760,
02294      760,   761,   762,   763,   764,   764,   765,   765,   766,   766,
02295      767,   767,   767,   768,   768,   768,   768,   768,   768,   768,
02296      768,   768,   768,   768,   768,   768,   768,   768,   768,   768,
02297      768,   768,   768,   768,   769,   769,   769,   769,   769,   769,
02298      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02299      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02300      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02301      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02302      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02303      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02304      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02305      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02306      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02307      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02308      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02309      769,   769,   769,   769,   769,   769,   769,   769,   769,   769,
02310      769,   771,   770,   772,   772,   773,   773,   775,   774,   776,
02311      776,   776,   776,   777,   777,   778,   778,   778,   778,   779,
02312      779,   779,   779,   780,   780,   781,   781,   782,   782,   783,
02313      783,   783,   784,   784,   785,   786,   786,   786,   786,   787,
02314      787,   787,   787,   787,   788,   788,   790,   789,   792,   791,
02315      793,   793,   794,   794,   794,   795,   795,   795,   796,   796,
02316      797,   798,   798,   799,   800,   801,   802,   802,   804,   803,
02317      805,   805,   805,   807,   806,   808,   808,   809,   809,   809,
02318      810,   810,   811,   812,   811,   813,   814,   815
02319 };
02320 
02321 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
02322 static const yytype_uint8 yyr2[] =
02323 {
02324        0,     2,     1,     2,     1,     1,     1,     1,     1,     1,
02325        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02326        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02327        1,     1,     3,     0,     7,     0,    13,     0,     6,     5,
02328        0,     5,     4,     2,     2,     0,     0,     4,     0,     6,
02329        2,     1,     0,     0,     6,     0,     1,     2,     3,     1,
02330        1,     2,     3,     1,     3,     3,     2,     3,     3,     3,
02331        0,     1,     0,     3,     0,     1,     1,     2,     1,     2,
02332        3,     1,     3,     3,     3,     3,     3,     2,     3,     3,
02333        3,     3,     3,     1,     1,     2,     1,     1,     1,     4,
02334        4,     4,     1,     1,     1,     1,     1,     1,     1,     1,
02335        2,     1,     3,     1,     1,     2,     2,     7,     8,     8,
02336        2,     2,     0,     1,     2,     0,     1,     2,     0,     4,
02337        2,     5,     2,     2,     2,     5,     2,     0,     6,     5,
02338        2,     2,     2,     2,     3,     3,     3,     2,     2,     2,
02339        1,     2,     1,     1,     4,     4,     2,     2,     3,     0,
02340        3,     1,     5,     0,     3,     0,     1,     1,     0,     3,
02341        0,     1,     0,     3,     1,     1,     2,     2,     1,     2,
02342        0,     2,     3,     2,     0,     2,     3,     2,     0,     1,
02343        2,     1,     1,     2,     2,     1,     0,     1,     2,     1,
02344        1,     1,     3,     2,     1,     0,     1,     2,     1,     1,
02345        3,     2,     4,     1,     0,     2,     1,     1,     1,     0,
02346        1,     0,     1,     5,     0,     3,     3,     1,     0,     2,
02347        2,     2,     0,     3,     3,     6,     6,     1,     1,     2,
02348        2,     2,     1,     2,     2,     1,     1,     0,     1,     1,
02349        1,     1,     0,     1,     0,     1,     2,     0,     1,     1,
02350        2,     2,     1,     3,     2,     1,     1,     4,     2,     1,
02351        4,     0,     1,     0,     2,     1,     3,     0,     7,     0,
02352        5,     0,     2,     2,     1,     0,     1,     1,     1,     3,
02353        2,     3,     2,     4,     0,     6,     0,     0,     8,     3,
02354        4,     3,     3,     2,     2,     6,     5,     3,     3,     1,
02355        1,     1,     0,     1,     0,     1,     0,     2,     1,     0,
02356        1,     1,     3,     0,     3,     0,     4,     0,     4,     0,
02357        4,     1,     3,     3,     1,     2,     4,     2,     3,     2,
02358        3,     0,     3,     0,     0,     6,     2,     1,     1,     2,
02359        2,     7,     0,     1,     2,     1,     1,     1,     1,     1,
02360        1,     1,     1,     1,     1,     0,     2,     4,     3,     1,
02361        1,     3,     4,     0,     0,     0,     2,     2,     1,     1,
02362        0,     2,     3,     3,     3,     2,     3,     4,     3,     4,
02363        3,     4,     1,     3,     4,     3,     3,     6,     1,     5,
02364        6,     5,     7,     6,     8,     5,     6,     4,     5,     3,
02365        4,     1,     3,     3,     3,     3,     3,     3,     5,     5,
02366        3,     3,     3,     3,     3,     3,     1,     1,     1,     1,
02367        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02368        3,     1,     1,     1,     3,     2,     2,     2,     3,     3,
02369        5,     6,     4,     4,     2,     6,     5,     6,     4,     4,
02370        5,     4,     2,     4,     4,     4,    10,     6,     8,     6,
02371        4,     4,     6,     4,     4,     4,     7,     7,     7,     6,
02372        6,     6,     6,     3,     4,     6,     8,     2,     8,     8,
02373        6,     2,     4,     6,     6,     8,     8,     6,     8,     6,
02374        2,     4,     8,     8,     2,     2,     4,     4,     3,     3,
02375        5,     8,     5,     4,     6,     4,     6,     8,     6,     4,
02376        3,     3,     6,     0,     5,     0,     1,     1,     3,     4,
02377        4,     5,     5,     4,     0,     0,     7,     4,     5,     4,
02378        5,     4,     4,     4,     4,     4,     5,     0,     8,     0,
02379        3,     3,     1,     4,     0,     1,     0,     2,     0,     1,
02380        0,     3,     2,     1,     1,     2,     1,     1,     2,     2,
02381        1,     1,     1,     2,     1,     3,     0,     1,     0,     2,
02382        4,     5,     1,     1,     1,     1,     4,     1,     3,     3,
02383        3,     0,     6,     0,     6,     0,     8,     4,     0,     8,
02384        0,    10,     6,     0,     8,     0,    10,     6,     1,     2,
02385        2,     0,     4,     3,     5,     3,     0,     0,     8,     1,
02386        0,     0,     6,     0,     3,     0,     0,     5,     0,     1,
02387        0,     1,     0,     2,     3,     3,     1,     1,     0,     7,
02388        0,     7,     1,     2,     0,     0,     2,     0,     2,     0,
02389        1,     1,     1,     1,     3,     1,     3,     1,     1,     1,
02390        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02391        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02392        0,     1,     0,     2,     0,     1,     0,     0,     3,     0,
02393        0,     3,     2,     0,     0,     4,     4,     2,     0,     1,
02394        3,     3,     1,     2,     0,     1,     0,     4,     4,     2,
02395        0,     1,     1,     0,     1,     0,     1,     2,     1,     3,
02396        3,     1,     1,     1,     0,     2,     1,     1,     1,     1,
02397        1,     1,     1,     1,     1,     1,     1,     0,     2,     3,
02398        1,     2,     0,     3,     0,     5,     2,     1,     3,     5,
02399        0,     7,     4,     1,     3,     1,     0,     2,     0,     1,
02400        5,     1,     2,     0,     3,     0,     1,     0,     1,     0,
02401        0,     7,     0,     0,     5,     2,     1,     1,     1,     3,
02402        4,     0,     3,     3,     1,     2,     2,     0,     3,     0,
02403        5,     3,     1,     3,     1,     3,     1,     1,     0,     1,
02404        0,     4,     0,     1,     3,     1,     1,     1,     0,     0,
02405        6,     0,     9,     3,     1,     3,     3,     1,     3,     0,
02406        8,     0,     1,     3,     0,     1,     0,     3,     2,     3,
02407        3,     4,     5,     5,     5,     5,     2,     2,     3,     2,
02408        3,     1,     3,     4,     0,     2,     1,     1,     0,     2,
02409        2,     0,     4,     0,     4,     1,     1,     0,     1,     0,
02410        1,     1,     0,     3,     3,     1,     0,     3,     4,     1,
02411        1,     2,     0,     1,     3,     0,     1,     1,     2,     0,
02412        0,     0,     0,    18,     1,     0,     1,     0,     1,     1,
02413        0,     1,     1,     1,     2,     2,     0,     2,     2,     1,
02414        3,     4,     3,     3,     0,     2,     2,     1,     3,     3,
02415        0,     3,     1,     1,     0,     3,     2,     3,     1,     1,
02416        2,     0,     2,     1,     2,     1,     1,     1,     1,     2,
02417        2,     1,     1,     1,     1,     1,     1,     1,     2,     2,
02418        1,     1,     1,     1,     1,     2,     2,     1,     1,     1,
02419        1,     1,     1,     2,     2,     1,     1,     1,     1,     1,
02420        1,     1,     3,     5,     1,     1,     1,     3,     4,     5,
02421        1,     5,     3,     2,     1,     3,     2,     1,     1,     1,
02422        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02423        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02424        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02425        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02426        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02427        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02428        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02429        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02430        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02431        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02432        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02433        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02434        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02435        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02436        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02437        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
02438        1,     0,     4,     0,     1,     1,     3,     0,     2,     1,
02439        1,     1,     1,     0,     1,     0,     1,     1,     1,     0,
02440        2,     2,     2,     1,     2,     4,     5,     4,     6,     1,
02441        1,     1,     1,     1,     1,     2,     2,     2,     1,     1,
02442        1,     1,     1,     1,     1,     1,     0,     3,     0,     3,
02443        0,     1,     0,     3,     2,     0,     1,     2,     0,     1,
02444        4,     4,     5,     2,     3,     1,     0,     1,     0,     4,
02445        0,     1,     1,     0,     2,     2,     1,     0,     1,     1,
02446        2,     3,     1,     0,     5,     3,     0,     0
02447 };
02448 
02449 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
02450    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
02451    means the default is an error.  */
02452 static const yytype_uint16 yydefact[] =
02453 {
02454        0,   285,     0,  1188,     0,  1190,   285,   821,   855,   856,
02455      758,     2,     0,   862,   769,   875,     0,     0,     0,   772,
02456     1190,     0,   343,  1143,   826,     0,   824,  1186,   314,     0,
02457        0,     0,     0,     4,    10,     6,    27,     7,     8,    20,
02458       24,   334,    13,    14,    16,    21,    30,    11,    28,    26,
02459       12,   857,    15,    17,    31,    18,    25,    29,     5,     9,
02460       22,    23,    19,     0,   287,   286,   314,  1185,  1184,   325,
02461     1190,   327,  1191,  1192,     0,    72,    71,     0,    35,   822,
02462        0,     0,   756,   759,     0,     0,   979,   992,   980,  1171,
02463      991,   981,   990,     0,   763,  1173,  1170,  1172,   761,  1169,
02464        0,   314,   876,   877,     0,   884,   879,     0,   329,     0,
02465     1192,  1205,  1203,   335,   341,   352,  1144,  1141,  1155,   323,
02466      825,     0,     0,   315,     0,  1014,  1015,  1016,  1017,  1018,
02467     1019,  1020,  1021,   994,  1022,  1024,  1023,  1025,  1026,  1027,
02468      995,   996,  1028,  1029,  1030,   997,  1031,   998,  1032,  1033,
02469     1034,  1035,  1036,   999,  1037,  1039,  1038,  1040,  1041,  1042,
02470     1000,  1043,  1044,  1001,  1045,  1046,  1047,  1056,  1002,  1048,
02471     1050,  1049,  1051,  1052,  1053,  1054,  1058,  1059,  1060,  1003,
02472     1055,  1061,  1057,  1062,  1063,  1064,  1065,  1066,  1067,  1068,
02473     1069,  1070,  1071,  1072,  1073,  1074,  1075,  1076,  1077,  1078,
02474     1079,  1080,  1082,  1081,  1083,  1085,  1084,  1086,  1088,  1087,
02475     1089,  1004,  1090,  1091,  1092,  1093,  1094,  1005,  1095,  1096,
02476     1097,  1098,  1099,  1100,  1101,  1102,  1103,  1006,  1104,  1105,
02477     1106,  1107,  1108,  1007,  1109,  1008,  1111,  1110,  1009,  1112,
02478     1114,  1010,  1113,  1115,  1011,  1116,  1012,  1117,  1118,  1119,
02479     1120,  1121,  1122,  1123,  1124,  1127,  1128,  1126,  1125,  1013,
02480     1129,  1130,  1131,  1132,  1134,  1133,  1136,  1135,  1137,  1138,
02481     1139,  1140,   878,   984,   977,   985,   993,   343,     0,     0,
02482        1,     3,  1054,     0,   853,   851,     0,   974,   279,     0,
02483        0,  1189,     0,     0,  1195,    32,   978,     0,     0,    72,
02484      252,     0,   748,     0,     0,     0,   756,   762,     0,   765,
02485        0,   869,   870,  1185,   863,   865,   866,     0,  1015,  1021,
02486        0,   937,   576,     0,     0,     0,  1028,  1029,     0,     0,
02487      380,   380,     0,     0,     0,  1041,  1042,   958,     0,     0,
02488        0,     0,   934,   959,     0,   936,  1064,     0,     0,     0,
02489     1069,   875,     0,   956,     0,  1079,  1080,     0,     0,  1083,
02490        0,   380,   933,   955,     0,  1099,     0,     0,     0,  1108,
02491     1109,     0,     0,  1118,     0,     0,   380,   982,  1127,  1128,
02492        0,     0,   935,  1013,   957,  1134,   380,   380,  1133,     0,
02493        0,     0,     0,  1140,     0,     0,     0,  1226,     0,     0,
02494      549,   874,   392,   398,   411,   426,   436,   437,   439,   438,
02495      443,   442,   931,   441,   932,   435,   966,   984,   923,   965,
02496      885,  1204,     0,     0,   777,   773,   776,   755,  1198,  1195,
02497     1206,   357,   356,   359,   361,   364,   358,   360,   373,   353,
02498      363,   362,   355,  1147,     0,     0,     0,   848,   713,  1156,
02499      251,   250,   249,  1157,   841,  1158,   844,     0,     0,   713,
02500        0,   827,   988,   989,     0,     0,     0,   322,   823,  1187,
02501        0,   337,     0,  1210,   976,     0,   859,     0,   219,     0,
02502      326,   753,   328,  1194,     0,     0,  1196,  1200,     0,    37,
02503        0,   253,     0,   819,   757,   752,     0,     0,     0,   766,
02504      767,   871,     0,     0,   872,   770,     0,   684,   454,   577,
02505        0,     0,     0,     0,     0,     0,     0,   684,     0,   487,
02506      462,     0,     0,     0,     0,   938,     0,     0,     0,  1226,
02507        0,   554,     0,     0,     0,  1226,     0,     0,     0,     0,
02508      684,     0,     0,   684,     0,     0,   385,     0,   491,     0,
02509        0,     0,     0,     0,     0,     0,   684,   684,     0,     0,
02510      684,     0,   500,     0,     0,     0,   939,     0,     0,     0,
02511      504,   505,     0,     0,   684,   684,     0,     0,   446,   445,
02512      447,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02513        0,   428,     0,   430,   432,   427,   431,   429,     0,     0,
02514        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02515        0,     0,     0,     0,     0,     0,     0,     0,   924,   523,
02516        0,   886,     0,   330,   331,     0,   775,     0,  1199,     0,
02517     1201,  1217,   342,  1207,   370,   344,   369,     0,   354,  1142,
02518     1145,  1153,   846,   847,     0,     0,    72,     0,     0,     0,
02519      828,     0,   837,   714,   848,     0,   844,   848,   836,     0,
02520      839,   848,   848,     0,     0,   338,  1211,   336,  1212,     0,
02521      854,   927,   926,   852,   860,   925,   861,   975,   220,   280,
02522        0,   277,     0,  1193,  1197,    73,    55,    33,     0,   686,
02523        0,   749,   764,   768,   760,     0,   864,   873,   867,     0,
02524        0,   685,   684,     0,   560,     0,   578,     0,   509,   574,
02525        0,     0,     0,     0,   534,     0,   560,   381,   508,     0,
02526        0,     0,     0,     0,     0,     0,   658,   659,   660,   661,
02527      671,   662,   663,   664,   673,   678,   665,   666,   674,   675,
02528      676,   667,   677,   672,   668,   679,     0,   657,   555,   547,
02529        0,     0,     0,     0,     0,   521,     0,     0,   684,     0,
02530        0,     0,   684,     0,     0,     0,     0,     0,     0,     0,
02531        0,     0,     0,     0,     0,     0,     0,     0,   684,     0,
02532        0,   670,     0,   669,     0,     0,     0,     0,     0,     0,
02533        0,   483,   520,     0,     0,     0,     0,     0,   449,     0,
02534      448,   620,     0,  1222,  1227,     0,     0,  1159,   550,   552,
02535      384,   382,   383,   395,   388,     0,   393,   386,   390,   433,
02536     1018,   396,     0,     0,   423,  1226,   693,   424,     0,     0,
02537        0,     0,   409,   412,   413,   414,   415,     0,   417,     0,
02538      416,   420,   421,   422,   425,   986,   987,   440,   444,   373,
02539      967,     0,     0,     0,    52,   781,     0,     0,     0,   787,
02540      774,   778,  1202,  1219,  1218,  1208,   373,   704,   374,   374,
02541      965,  1147,  1150,  1151,  1154,  1152,     0,  1149,  1148,  1163,
02542      844,     0,     0,   840,   849,   850,   722,   723,   721,   717,
02543      718,   829,   845,   848,   830,   844,   838,   842,   324,   811,
02544      814,     0,     0,   713,  1216,  1214,   798,   219,   754,     0,
02545        0,    38,    59,    60,    56,    63,    74,   254,   687,   704,
02546      750,   868,   808,     0,     0,   530,     0,     0,     0,     0,
02547        0,     0,   461,     0,   506,   507,     0,     0,   533,     0,
02548        0,     0,   463,   464,   458,   767,   452,     0,     0,   465,
02549        0,     0,     0,     0,     0,     0,     0,   539,   513,   470,
02550        0,   537,     0,   471,   492,     0,   515,     0,     0,     0,
02551        0,   473,   543,   541,     0,     0,     0,     0,   545,   501,
02552        0,     0,   474,     0,     0,     0,     0,     0,     0,     0,
02553      475,     0,   459,   542,   544,   519,     0,   484,     0,  1220,
02554      619,   352,   620,     0,     0,  1217,  1225,   453,   968,     0,
02555        0,     0,     0,     0,   389,   394,   387,   391,  1226,     0,
02556        0,     0,     0,   407,     0,  1226,   693,   410,     0,     0,
02557        0,     0,   526,   527,     0,   983,   880,   332,   333,   352,
02558        0,   800,   785,   792,   786,     0,     0,     0,   784,   961,
02559      960,  1206,     0,   368,   611,   742,   365,   348,   715,   705,
02560      347,   375,   371,     0,  1146,     0,  1174,     0,     0,  1164,
02561      848,     0,   843,     0,     0,   831,   686,     0,   686,   797,
02562      796,     0,   706,  1215,   799,     0,   312,   312,   798,   312,
02563      798,     0,     0,     0,     0,   312,     0,     0,     0,   310,
02564        0,   312,     0,   319,     0,     0,   309,   219,    81,    93,
02565       94,     0,   278,   284,     0,   288,   311,     0,   380,    66,
02566        0,     0,    61,     0,    57,     0,     0,   125,    34,   219,
02567      890,    75,    78,   255,     0,     0,   724,   751,     0,   771,
02568        0,     0,   531,   561,     0,   579,     0,   456,   163,   563,
02569      163,   572,   570,   159,   566,   564,   571,   567,     0,   575,
02570        0,   535,   532,     0,     0,   510,     0,   558,     0,     0,
02571        0,   460,   512,     0,   540,   538,     0,     0,     0,     0,
02572        0,     0,     0,     0,     0,     0,   546,     0,     0,     0,
02573        0,     0,     0,     0,     0,     0,     0,     0,   450,   373,
02574      339,     0,  1221,  1223,  1160,  1161,  1162,   273,   551,     0,
02575      405,   401,     0,   399,   692,     0,     0,     0,   408,   419,
02576      418,   374,   524,   373,   969,   887,   373,   782,   794,     0,
02577      802,     0,     0,   779,   789,     0,     0,   788,  1209,   629,
02578      628,     0,   585,   686,   587,   584,   583,   582,     0,   628,
02579      737,     0,     0,   345,   350,   346,   716,   349,     0,   372,
02580      379,   378,   962,   967,     0,     0,  1159,     0,   832,   835,
02581      834,   720,   719,   833,   813,   704,   807,   806,   815,     0,
02582      218,   217,   101,   216,   313,   271,   246,   245,   292,     0,
02583      122,   271,   242,   290,     0,     0,     0,     0,     0,   380,
02584       87,   303,   282,     0,     0,     0,     0,   304,     0,     0,
02585      283,     0,     0,   321,   320,     0,     0,     0,    77,    96,
02586        0,   798,   798,   219,   125,     0,   316,   122,   128,   970,
02587        0,    67,    65,    64,    62,    58,   735,   736,   734,   732,
02588      733,    69,    68,    50,     0,     0,    51,     0,   111,   113,
02589      114,    43,   891,   893,   892,    44,     0,   219,    79,     0,
02590      256,     0,   688,     0,   820,   809,     0,   485,   580,     0,
02591        0,   562,   569,     0,   573,   161,   565,   568,   455,   457,
02592        0,     0,     0,   490,   556,   559,     0,     0,   467,     0,
02593      469,   514,   493,   516,     0,   472,   451,     0,   494,     0,
02594      499,   497,     0,     0,     0,   481,     0,   479,     0,   480,
02595        0,   482,   518,   522,   621,   340,     0,     0,   553,   397,
02596        0,   406,   403,     0,   400,   375,   528,   889,   888,     0,
02597       53,     0,     0,     0,   803,   805,   791,  1210,   780,   783,
02598      628,   611,     0,     0,   608,   630,     0,   630,   611,   611,
02599      694,   611,   680,   625,     0,     0,   747,     0,   743,   366,
02600        0,   377,   376,     0,     0,  1182,  1183,  1180,  1181,  1179,
02601     1165,     0,     0,   724,   964,   707,   710,   127,   272,     0,
02602        0,     0,   247,   121,   271,   120,   123,   254,     0,    84,
02603      294,    83,   308,    88,   271,   301,   302,   299,    82,    90,
02604      296,   700,   702,   710,   307,    86,    85,   102,   103,   104,
02605      105,   106,   107,   108,    89,    95,     0,     0,   289,     0,
02606      973,     0,   318,   291,     0,   115,   116,     0,     0,    92,
02607       91,   219,    40,    74,   125,   895,   894,     0,    46,    80,
02608      265,   266,   261,     0,   725,     0,     0,   581,     0,     0,
02609      536,     0,     0,     0,     0,     0,     0,     0,     0,     0,
02610        0,     0,     0,     0,   478,   476,   477,   715,  1224,   274,
02611      402,     0,   529,   881,   715,   793,   795,   801,     0,   790,
02612        0,   704,   623,     0,   610,   609,   631,     0,   611,   630,
02613      630,     0,   590,   589,     0,   689,   588,   681,     0,   647,
02614      613,   352,   746,   744,     0,   738,   740,     0,   963,     0,
02615        0,  1178,  1166,     0,  1167,   812,     0,   711,   712,   709,
02616      124,   271,   243,   248,   244,   254,     0,     0,     0,     0,
02617      300,     0,     0,   703,   100,    98,    97,    99,   293,   317,
02618      224,   168,   180,   184,   188,   205,   180,   159,   172,   137,
02619      159,   168,   180,   159,   172,   150,   188,   205,   180,   180,
02620        0,   153,   214,     0,   196,   196,   972,    42,  1213,   890,
02621      112,     0,  1206,     0,     0,   486,   164,   160,     0,   488,
02622      489,   557,   548,   511,     0,   468,   517,   495,   498,   496,
02623      502,   503,   365,   365,   109,   404,     0,    54,   804,  1217,
02624      680,   715,   611,   586,   611,   597,     0,     0,   611,   593,
02625      591,   595,     0,   690,   704,   683,   612,   644,   373,   896,
02626      741,     0,   367,  1176,  1175,  1177,     0,   710,     0,     0,
02627        0,   306,     0,   316,   214,   701,     0,   228,     0,   165,
02628      143,   149,     0,     0,     0,   175,   222,   178,   151,   192,
02629      195,   134,   189,   191,     0,     0,     0,   209,   213,   132,
02630      206,   208,   141,   196,   172,     0,   174,   157,     0,   196,
02631      165,   148,   196,   156,   136,     0,   130,   142,   147,     0,
02632        0,   129,     0,   201,     0,     0,   200,   204,   133,   197,
02633      199,   140,     0,    41,    39,    48,    47,     0,   710,   269,
02634        0,     0,     0,   622,   110,     0,   616,   614,   615,   624,
02635        0,   582,   611,   611,     0,   582,     0,     0,     0,   698,
02636      710,     0,   715,   648,     0,   626,     0,   904,   739,  1168,
02637      708,     0,     0,     0,     0,     0,     0,     0,   305,   928,
02638      295,   297,     0,   227,     0,   232,     0,   166,   167,   170,
02639        0,   181,   183,     0,   185,   187,   194,   193,   176,   179,
02640      190,   177,     0,   380,   951,     0,   950,   211,   952,     0,
02641      207,   144,   158,     0,     0,   146,   170,   145,     0,     0,
02642      215,     0,   942,   941,   944,     0,     0,   940,   203,   943,
02643        0,   198,   971,  1213,   257,     0,   268,     0,   810,   817,
02644        0,   162,   466,   882,     0,   598,     0,   602,   607,   603,
02645        0,   594,   592,     0,   699,     0,   695,   697,   691,   351,
02646      636,   637,     0,     0,   642,   646,   715,     0,     0,     0,
02647        0,   897,   899,     0,   745,     0,     0,   257,   930,   929,
02648      316,   225,     0,   229,   230,   231,     0,   223,   169,   171,
02649      155,   182,   948,   947,   949,   186,   953,   210,   954,   380,
02650      173,     0,   275,   154,   205,   180,   188,   946,   945,   202,
02651       49,     0,   798,    36,   258,   262,   259,   710,     0,     0,
02652        0,   896,   617,     0,     0,     0,     0,     0,   655,   710,
02653      632,   632,   643,   627,     0,     0,     0,     0,   898,     0,
02654        0,   905,   907,     0,   257,   117,   298,   226,     0,     0,
02655      212,   188,     0,   131,   139,   135,   264,     0,   260,   267,
02656      270,   816,   818,   904,   704,   599,     0,   604,     0,   596,
02657        0,   696,     0,   640,   638,   902,   903,     0,   900,     0,
02658        0,   906,   119,   118,   238,     0,   237,     0,   234,   233,
02659      138,   276,   730,   731,   727,   728,   726,   729,   263,   910,
02660      715,     0,     0,   656,     0,   633,     0,     0,     0,   901,
02661      909,   908,   240,   241,   239,     0,     0,     0,   914,   618,
02662      601,   606,   635,   634,   649,     0,     0,     0,     0,     0,
02663      921,   652,     0,   653,   650,   651,     0,   236,   235,   912,
02664      913,   911,   916,     0,     0,   918,   919,     0,   883,   641,
02665        0,   639,   920,   915,     0,   922,   654,   917
02666 };
02667 
02668 /* YYDEFGOTO[NTERM-NUM].  */
02669 static const yytype_int16 yydefgoto[] =
02670 {
02671       -1,    31,    32,    33,    34,   916,   300,   686,  1128,  1668,
02672     1355,  1672,  1893,  1129,  1345,   859,  1039,  1574,   911,   912,
02673      913,    77,   298,  1130,  1106,  1131,  1132,  1108,  1322,  1637,
02674     1109,  1110,   679,  1513,  1514,  1692,  1347,  1348,  1349,  1350,
02675     1485,  1486,  1289,  1290,  1327,  1527,  1662,  1768,  1663,  1664,
02676     1665,  1374,  1375,  1371,  1849,  1739,  1950,  1767,  1786,  1787,
02677     1740,  1741,  1751,  1752,  1753,  1788,  1789,  1790,  1759,  1760,
02678     1761,  1781,  1281,  1282,  1111,  1754,  1526,  1737,  1842,  1845,
02679     1947,  2048,  1291,  1484,  1292,  1624,   460,   492,  1133,  1134,
02680     1973,  1974,  1975,  1976,  1542,  1797,  1798,  1477,  1418,  1961,
02681       35,   907,   478,  1112,    66,  1113,  1114,  1115,  1629,  1631,
02682     1940,  1293,   124,  1523,  1315,    36,   467,    37,   290,    38,
02683      292,    39,   422,   623,   624,    40,    41,   279,  1004,   113,
02684      430,   114,   115,   867,  1056,  1693,   438,   439,   440,   441,
02685      442,  1253,   635,   636,   637,  1061,  1259,   519,   709,   402,
02686      403,   404,   598,   822,   405,   406,   407,   408,   409,   849,
02687     1031,  1032,  1033,   410,   937,  1380,   948,   411,   586,   808,
02688      749,  1554,  1384,   703,   926,  1158,   998,   510,   930,   706,
02689     1242,  1243,  1244,  1245,  1246,  1817,  1816,  1818,  1983,  1906,
02690     1985,  1910,  1449,  1247,  1248,  1580,  1904,  2024,   999,  1000,
02691     1001,  1567,  1581,  1702,  1600,  1601,  1926,  1440,  1249,  1587,
02692     2033,  1923,  1924,  2068,  2067,  1925,  1823,  1824,  1716,  1717,
02693     2092,  2093,  2094,  1987,   746,   782,   747,  1598,  1599,   704,
02694      919,  1135,  1714,  1821,  1023,  1595,  1819,  1916,  1116,  1501,
02695     1502,  1058,  1059,  1279,  1475,  1619,   652,  1694,  1256,   889,
02696      890,  1364,  2058,  1341,  1456,  1457,  1605,  1606,  1060,  1250,
02697     1458,  1719,    42,  1137,   480,   481,   304,    85,    43,    94,
02698      309,   500,   694,    44,   101,   699,    45,   109,   627,   425,
02699      426,   860,  1040,  1047,   861,  1051,  1437,  1042,  1227,  1228,
02700     1081,  1085,  1043,  1230,  1433,  1434,  1278,  1139,  1545,    46,
02701     1078,   899,   900,  1898,  1899,    47,   689,    80,    48,   121,
02702       49,   118,   461,   654,   655,   650,    50,   476,   475,    51,
02703      284,   673,    52,   100,   314,   315,   504,   698,    53,   104,
02704       54,    55,   420,  1225,  1696,  1981,   106,   622,  1429,  1356,
02705     1827,  1931,  1932,  1934,  2001,  2002,  2078,  2101,  2090,  2104,
02706     2105,  2108,   412,   674,  1838,   413,  1888,  1955,  1867,   414,
02707     1048,  1049,  1476,   415,   416,  1328,   427,   286,   295,   417,
02708      846,   418,  1036,   419,  1117,   464,    97,   275,   276,    56,
02709      443,   117,   639,   640,   641,   876,   877,   465,  1012,   878,
02710      879,  1069,    98,    99,  1067,  1612,  1470,   316,    57,   122,
02711       58,    70,    73,   294,   487,   629,    59,    60,    61,    62,
02712      112,   632,   666,  1052,   667,   668,   669,   905,   865,   803,
02713      804,  1416,   582,   583,  1006
02714 };
02715 
02716 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
02717    STATE-NUM.  */
02718 #define YYPACT_NINF -1762
02719 static const yytype_int16 yypact[] =
02720 {
02721      855,   807,   468, -1762,   468,  -171,  1008,    63, -1762, -1762,
02722     1023, -1762,  1562, -1762, -1762,    69,   491,   -29,   468, -1762,
02723     -171,   780, -1762,   280, -1762,   -82,   287, -1762,   443, 14926,
02724      326,   655,   541, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02725    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02726    -1762, 11366, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02727    -1762, -1762, -1762, 14926, -1762, -1762,   443, -1762, -1762, -1762,
02728     -171, -1762, -1762,   691, 14926,   571, -1762,   359, -1762, -1762,
02729      605, 14926,   599, -1762,   679,   468, -1762, -1762, -1762, -1762,
02730    -1762, -1762, -1762,  1579,   397, -1762, -1762, -1762, -1762, -1762,
02731      584,   443, -1762, -1762,  5730, -1762, -1762,   780, -1762, 10646,
02732       54, -1762, -1762, -1762, -1762,   795, -1762, -1762,  2124,   437,
02733    -1762, 11722,   468, -1762, 11722, -1762, -1762, -1762, -1762, -1762,
02734    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02735    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02736    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02737    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02738    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02739    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02740    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02741    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02742    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02743    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02744    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02745    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02746    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02747    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02748    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,   326,   454,
02749    -1762, -1762,   355, 14926, -1762, -1762,   479,   496, -1762,   586,
02750    11722, -1762, 11722,    81,   -28, -1762, -1762,   712, 14926,   571,
02751      621, 11722, -1762,   857, 14926, 14926,   599, -1762,   721,   910,
02752      688, -1762, -1762,   630,   609, -1762, -1762, 10646,   673,   695,
02753     8052, -1762,  5730,   704,   728,   735,   741,   746,   751,   755,
02754      765,   765,   769,   786,   788,  -152,   792, -1762,   808,   838,
02755      848,   858, -1762, -1762,   864, -1762,   870,   875,   879,  6117,
02756      881,    69,   891, -1762,   897,   908,   918,   930,   947,   953,
02757     5730,   959, -1762, -1762,   963,   969,   977,   978,   983,   987,
02758     1005,  1009,  1011,  1013,  1014,  1016,  1017, -1762,  1018,  1022,
02759     -143,  1026, -1762,  1027, -1762,  1032,   765,   765,  1040,  1044,
02760     1049,  1050,  1052,  1057,  8052,  8052,  8052,  5730, 14926, 14926,
02761    -1762,    56,  1366, -1762,  1585,    17, -1762, -1762, -1762, -1762,
02762    -1762, -1762,   716, -1762, -1762, -1762, -1762,  1059, -1762,   614,
02763     1007, -1762, 11722, 11722, -1762, -1762, -1762, -1762,   940,   -28,
02764      868, -1762, -1762, -1762, -1762, -1762, -1762, -1762,   610,   795,
02765    -1762, -1762, -1762, -1762,    65,  1060,    16,   -36,  1062, -1762,
02766    -1762, -1762, -1762, -1762, -1762, -1762,    65,   991,   946,  1062,
02767       65, -1762, -1762, -1762,  1084,  -116,  1387, -1762, -1762, -1762,
02768     1172, -1762,  1067,   -25, -1762,   390, 13502, 14926,  1369, 11722,
02769     1069, -1762,  1069, -1762,  1424,  1209, -1762, -1762,  1348, -1762,
02770    11722, -1762,  1315, -1762, -1762, -1762,  1250, 11722,  1212, -1762,
02771     1120, -1762,  1236,   584, 11722, -1762,  5730,   164, -1762,    56,
02772     1128,  5730,  1095,  5730,  5730,  5730,  5730,   596,  1103, -1762,
02773    -1762,  1105,  5730,  5730,  5730,   716,  5730, 12078,  5730, -1762,
02774     2250,  1399,  5730,  5730,  5730,  5730,  1663,  1111,  1114,  5730,
02775      649,  5730,  5730,   671,  5730,  5730, -1762,  4182, -1762,  8052,
02776     5730,  5730,  5730,  5730,  5730,  5730,  1491,  1491,  5730,  5730,
02777      778,  4182, -1762,  2226,  2226,  5730,   716,  3408,  5730,  1118,
02778    -1762, -1762,  1123, 12078,  1491,  1491,  5730,  5730, -1762, -1762,
02779    -1762,    33,  1125,   438,  5730,  1124,  1879,  5730,  5730,  5730,
02780     8052, -1762,   932, -1762, -1762, -1762, -1762, -1762,  6504,  8052,
02781     8052,  1131,  8052,  8052,   537,  8052,  8052,  8052,  8052,  8052,
02782     8439,  8826,  8052,  8052,  8052,  8052,    84,  8052, -1762, -1762,
02783    14926, -1762,  1364,  1130, -1762,  1203, -1762,  -122, -1762,   780,
02784    -1762,   781, -1762, -1762, -1762,  1139, -1762,  5730, -1762,  1140,
02785    -1762,   871, -1762, -1762, 11722,  1152,   571, 11722,  1216,  5730,
02786    -1762,    36, -1762, -1762,   -36, 14926,    65,   -36, -1762, 11722,
02787    -1762,   -36,   -36,  1248, 12078, -1762, -1762, -1762, -1762,    28,
02788    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02789     1489, -1762, 11722, -1762, -1762, -1762,  1270, -1762, 14926,  1176,
02790    11722,  1069, -1762, -1762, -1762,  1354, -1762,  1069, -1762,  -122,
02791       71, -1762,  1491,  1155, -1762,  5730,   -23,   138, -1762,    56,
02792      566,   626,   133,    96, -1762,  1161,  1169, -1762, -1762,    98,
02793       99,   251,   309,  1166,   327,  1179, -1762, -1762, -1762, -1762,
02794    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02795    -1762, -1762, -1762, -1762, -1762, -1762,  1417, -1762, -1762, -1762,
02796      336,   106,   116,    42,  1188, -1762,  5730,   118,  1491,  1181,
02797      337,   338,  1491,  1183,   119,   342,   343,  1600,   352,   125,
02798      131,   139,   152,   360,  1184,  1185,   153,    48,  1491,  1187,
02799      361, -1762,  1186, -1762,  1189,   365,  4569,  4956,  5343,    53,
02800      156, -1762, -1762,  1190,  1191,  1194,    55,   367, -1762,  5730,
02801    -1762, -1762,   440, -1762,  1234,    90, 14926,   710, -1762,  1301,
02802    -1762,    87,  1569, -1762, -1762,   806, -1762, -1762, -1762, -1762,
02803     1199, -1762,  1206,   840,  1214,  5730,    12,  1214,  8052,  1217,
02804     8052,  8052,  1944,  1960,  1396,  1705,  1705,  6117,   696,  6117,
02805      696,  1214,  1214,  1214,  1223, -1762, -1762, -1762,  1551,  1220,
02806     1222,  1300, 11722, 11722, -1762, -1762,  1238,  1238, 10281, -1762,
02807    -1762, -1762, -1762, -1762, -1762, -1762, -1762,   996,    56, -1762,
02808     1239, -1762, -1762, -1762, -1762, -1762,   535,  1240, -1762, -1762,
02809       65,  1251, 14926, -1762, -1762,    56, -1762, -1762, -1762, -1762,
02810      363, -1762, -1762,   -36, -1762,    65, -1762, -1762, -1762,  1247,
02811    -1762,  -108,  1606,  1062, -1762, -1762,  1272,  2152, -1762,    30,
02812     1275, -1762, -1762,   874,   920,  1276,  1229, -1762, -1762,  1422,
02813    -1762, -1762,  1427,  6891,  1265, -1762,  5730,   456,  5730,  5730,
02814     1545,  1302, -1762,  5730, -1762, -1762,  1302,  5730, -1762,  1268,
02815     1496,  1498, -1762, -1762, -1762,  1120, -1762,  5730,  5730, -1762,
02816     5730,  5730,  5730,  5730,   370,  5730,  1277, -1762, -1762, -1762,
02817     1279, -1762,  5730, -1762, -1762,  5730, -1762,  5730,  5730,  5730,
02818     5730, -1762, -1762, -1762,  7278,  5730,  5730,  1284, -1762, -1762,
02819     5730,  5730, -1762,  5730,   165,  5730,   628,  5730,   651,  5730,
02820    -1762,  5730, -1762, -1762, -1762, -1762,  5730, -1762,   645, -1762,
02821    -1762,   795, -1762,   440,  1285,   781, -1762, -1762, -1762,  1288,
02822     1289,  1290,  1579,  5730, -1762, -1762, -1762, -1762, -1762,  8052,
02823       59,  1298,  8052, -1762,  1182,  5730,    12,  1944,  1663,  1663,
02824     5730,  1299,  1269, -1762, 14926, -1762, -1762, -1762, -1762,   795,
02825    12078, -1762,  1286, -1762,  1286,   562,  1303,   647, -1762, -1762,
02826    -1762,   868,   390, -1762,   427, -1762,    46,  1514,  1062, -1762,
02827     1555, 13858, -1762, 12790, -1762,  1525, -1762,  -108,  2069, -1762,
02828      -36,     1, -1762,    36,    36, -1762,  1176, 12078,  1176, -1762,
02829    -1762,  7665, -1762, -1762, -1762,    76,  1451,  1640,  1272,  1640,
02830     1272,  1374,    47,  1523,  1391,   898,  1529,  1336,  1342, -1762,
02831     1401,  1640,  1680,    70,  1346,  1351, -1762,  1345, -1762, -1762,
02832    -1762,  1082, -1762,  1325, 11002, -1762, -1762,  1352,   765, -1762,
02833        5,    14, -1762,    14, -1762,  2036, 11722,  9569, -1762,  1800,
02834      543, -1762,  1317,  1379,  1508,  5730,  1558, -1762,  1646, -1762,
02835     6117,   378, -1762,    56,  5730,    56,   615, -1762,  1365, -1762,
02836     1365, -1762, -1762,  1368, -1762,  1590, -1762,  1594,  1370,    56,
02837     1375,  1371, -1762,  5730,  5730, -1762,   396,   -14,   166,   170,
02838       60, -1762, -1762,   414, -1762, -1762,   422,   434,   457,   174,
02839      530,   659,  6117,   536,   205,    73, -1762,   185,   187,   548,
02840     5730,   556,  5730,   564,  5730,   565,   567,   573, -1762,   610,
02841    -1762,  1376, -1762, -1762, -1762, -1762, -1762,  1377,    56,  1380,
02842    -1762, -1762,  5730, -1762,    17,  8052,    88,  1382, -1762, -1762,
02843    -1762,    56, -1762, -1762, -1762,    44,   610,  1393, -1762,  -108,
02844     7665,  1238,  1493, -1762, -1762,   562, 12078, -1762, -1762, -1762,
02845    -1762, 14926,  2318,  1176, -1762,  1394, -1762, -1762, 11722, -1762,
02846       68,  1441,  1621, -1762, -1762, -1762, -1762, -1762, 14214, -1762,
02847    -1762, -1762, -1762,  1395,  1611,  3795,   710,  -108, -1762, -1762,
02848    -1762, -1762, -1762, -1762, -1762,  1422,   808,    56, -1762,  5730,
02849    -1762, -1762, -1762, -1762, -1762, 12434, -1762, -1762, -1762,   622,
02850      682, 12434, -1762, -1762, 12434,   956, 12434,  1216,    76,   765,
02851    -1762, -1762, -1762,  1620,  1622, 12434, 12434, -1762,    84,  1216,
02852    -1762, 12434, 12078, -1762, -1762, 11722,    15,  1419, -1762, -1762,
02853     1516,  1272,  1272,  2161,  9925, 14926,   150,    78, -1762,  1409,
02854     2036, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02855    -1762, -1762, -1762, -1762,  1423,  1425, -1762,   684, -1762, -1762,
02856    -1762, -1762, -1762,  1788,  1793, -1762,   467,  2133, -1762,   109,
02857    -1762, 11722,    56,    36, -1762, -1762,  1663, -1762,    56,  5730,
02858     1596, -1762, -1762,  1598, -1762, -1762, -1762, -1762, -1762, -1762,
02859     1430,  1663,  1663, -1762,  1536, -1762,  5730,  5730, -1762,  5730,
02860    -1762, -1762, -1762, -1762,  5730, -1762, -1762,  1663, -1762,  5730,
02861    -1762, -1762,  5730,  5730,  5730, -1762,   574, -1762,   575, -1762,
02862      600, -1762, -1762, -1762,  1139, -1762,   438, 14926, -1762, -1762,
02863      722, -1762, -1762,  5730, -1762, 13858, -1762, -1762, -1762,  1657,
02864     1139, 12078,  7665,  1432,  1435, -1762, -1762,   -25, -1762, -1762,
02865    -1762,   483,  1658,  1659, -1762,  1595,   493,  1595,   483,   483,
02866     1691,   427,  1488, -1762,  1300,  1300, -1762,  1438, -1762, -1762,
02867     1554, -1762, -1762, 13146,   -40, -1762,  8052,   808, -1762,    56,
02868    -1762,  1122,  5730,  1558,    56,  1443,   641, -1762, -1762,  5730,
02869     1668,  1669,   489, -1762, 12434, -1762, -1762, -1762,   111, -1762,
02870    -1762, -1762, -1762, -1762, 12434, -1762, -1762, -1762, -1762, -1762,
02871    -1762,  1452, -1762,   641, -1762, -1762, -1762, -1762, -1762, -1762,
02872    -1762, -1762, -1762, -1762, -1762, -1762,    76,    -7, -1762,   766,
02873    -1762, 14926, -1762, -1762, 11722, -1762, -1762,  1965, 14926, -1762,
02874    -1762,  1800, -1762,  1794,  9925, -1762, -1762,  1493, -1762, -1762,
02875    -1762, -1762, -1762,  1458, -1762,  1673,   433,    56,  1463,   774,
02876    -1762,  1464,  1465,   257,  1468,   601,   203,   775,   604,   450,
02877      606,   608,   617,   619, -1762, -1762, -1762,   507, -1762, -1762,
02878    -1762,   796, -1762, -1762,   507, -1762, -1762, -1762,  7665, -1762,
02879     -141,  1422, -1762,   707, -1762, -1762, -1762,  1688,   483,  1595,
02880     1595,  1695,  1645,   458,  1835,  1730, -1762, -1762, 14926, -1762,
02881    -1762,   795, -1762, -1762,  1579,  1482, -1762,  1674, -1762,    21,
02882     1631, -1762, -1762,  -108,    56, -1762,  5730, -1762, -1762, -1762,
02883       56, 12434, -1762, -1762, -1762, -1762,  1494,  1798,  1799, 12434,
02884    -1762,  1965, 12078, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02885     1495,  1509, -1762, -1762,   995,  1457, -1762,  1368,   -93, -1762,
02886     1368,  1509, -1762,  1368,  1511, -1762,  1163,  1087, -1762, -1762,
02887     1512, -1762,  1841,  1513,   787,   787,  1518, -1762,     9,   543,
02888    -1762,  1520,   868, 14926,  1560, -1762, -1762, -1762,  1696, -1762,
02889    -1762, -1762, -1762, -1762,  5730, -1762, -1762, -1762, -1762, -1762,
02890    -1762, -1762,    46,    46, -1762, -1762,  1601, -1762, -1762,   781,
02891      529,  1062,   427, -1762,   483, -1762,  1745,  1747,   483, -1762,
02892    -1762, -1762,  5730, -1762,  1422, -1762, -1762,   485,   610,  1868,
02893    -1762,  1438, -1762, -1762, -1762, -1762,  3795,   641,  1534,  1535,
02894    14926, -1762,  1675,   150,  1841, -1762, 14926,  1734,  1708,  -101,
02895     1211,  1652,    84,  1675,  1710, -1762, -1762,  1755, -1762, -1762,
02896    -1762, -1762,  1163, -1762,  1756,  1517,  1589, -1762, -1762, -1762,
02897     1457, -1762,  1211,   787,  1511,  1713, -1762, -1762,  1549,   787,
02898     -101,  1211,   787, -1762, -1762,  1719, -1762,  1211,  1211,  1720,
02899     1216, -1762,  1721, -1762,   823,  1853, -1762, -1762, -1762,   787,
02900    -1762, -1762, 14926, -1762, -1762, -1762, -1762,   810,   641,  1556,
02901    12078,  1557,   632, -1762, -1762, 11722, -1762, -1762, -1762,  1394,
02902     2232,  1603,   483,   483,  2307,  1604,  5730,  5730,  1559,   523,
02903      641,  5730,  1062, -1762,   546,  1139,   914,  1769, -1762, -1762,
02904    -1762, 14926, 14926,   817,   716,   716,   975,   975, -1762, -1762,
02905    -1762, -1762,   849, -1762,     7,  1731,  1566, -1762, -1762,  1586,
02906     1675, -1762, -1762,    -6, -1762, -1762, -1762, -1762, -1762, -1762,
02907    -1762, -1762,   716,   765, -1762,   716,   716, -1762, -1762,  1742,
02908    -1762, -1762, -1762,   903,   257, -1762,  1586, -1762,  1583,  1597,
02909    -1762,  1599, -1762, -1762, -1762,   975,   975,   716, -1762, -1762,
02910     1623, -1762, -1762,     9,    26, 14926, -1762,  1768,  1582, -1762,
02911     -108, -1762, -1762, -1762,   438, -1762,  1647, -1762, -1762, -1762,
02912     1649,    56,    56, 14926, -1762,  5730, -1762, -1762,    56, -1762,
02913    -1762, -1762,   489,   489, -1762,   546,   507,  1955,  1962,  1892,
02914     1964,   914, -1762,   -65, -1762,   934,   954,    26, -1762, -1762,
02915      150, -1762, 14926, -1762, -1762, -1762,     2, -1762, -1762, -1762,
02916    -1762, -1762, -1762, -1762, -1762, -1762,   716, -1762,   716,   765,
02917    -1762,   966, -1762, -1762,  1457, -1762,  1163, -1762, -1762, -1762,
02918    -1762,  1216,  1272, -1762,    26, -1762, -1762,   641,  1613, 12078,
02919     7665,  1868, -1762,  5730,  1615,  5730,  1616,   967, -1762,   641,
02920     1874,  1874, -1762, -1762,   257,   257,  1971,   257, -1762,  1973,
02921     1974,   -65, -1762,  1761,    26, -1762, -1762, -1762,   100,   100,
02922    -1762,  1163,   257, -1762,  1211, -1762, -1762,  1542, -1762, -1762,
02923    -1762, -1762, -1762,  1769,  1422,    56, 14926,    56, 14926, -1762,
02924    14926, -1762,   442, -1762, -1762, -1762, -1762,   257, -1762,   257,
02925      257, -1762, -1762, -1762, -1762,  2005, -1762,   161,  1791,  1792,
02926    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,  1863,
02927     1062,   981,   999, -1762,  1983, -1762,  1985,  1637,  1638, -1762,
02928    -1762, -1762, -1762, -1762, -1762,  1686,  1942,  1816,  1648, -1762,
02929    -1762, -1762, -1762, -1762, 14570, 14570,   100,   100,   -10,  2833,
02930     1757, -1762,  1651, -1762,  1654, -1762,  1000, -1762, -1762, -1762,
02931    -1762, -1762, -1762,  1579,  1006, -1762, -1762, 12078, -1762, -1762,
02932    14570, -1762, -1762, -1762,  9213,  1582, -1762, -1762
02933 };
02934 
02935 /* YYPGOTO[NTERM-NUM].  */
02936 static const yytype_int16 yypgoto[] =
02937 {
02938    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02939      364, -1762, -1762,   907, -1166,  -832, -1762, -1762, -1762,  -181,
02940    -1762, -1762,  -175, -1076,   933,  -999,  -857, -1762, -1762, -1762,
02941    -1762, -1762,  1357, -1762, -1762, -1451,   720,   511,   936,   960,
02942      726,   758, -1762, -1762,   428, -1762,   429, -1762, -1762, -1762,
02943    -1762,  -470, -1460,   912,   288,   412,   188, -1071,  -574,  -488,
02944    -1570, -1762, -1455, -1762,   315,  -666, -1762,   279, -1561, -1762,
02945      310,   335,   329, -1194,  -375, -1762,    75, -1762, -1762, -1762,
02946    -1762, -1320, -1762, -1762, -1073, -1762, -1762, -1762, -1762, -1340,
02947    -1761, -1762,   941,   102, -1762, -1575,   192, -1217, -1762, -1762,
02948    -1762, -1762, -1762, -1762,   200, -1762, -1762,   767, -1762, -1762,
02949    -1762,   245,   117, -1626, -1762, -1762, -1762, -1762, -1762, -1762,
02950    -1762, -1762, -1762, -1762,  1237,  1617,  1041,  1818,  1094, -1762,
02951    -1762,  1823, -1762, -1762, -1762,  -723,  -976, -1762, -1762, -1762,
02952     1666,  -592, -1165,  1241,  -791,  -733,   681,  -330,  1588, -1762,
02953     -570,  1891, -1762, -1762,  -302, -1762, -1762, -1762, -1762, -1762,
02954    -1762, -1762,   885, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02955    -1762, -1762, -1762,  1142, -1762,  1177,  -498, -1762, -1762, -1762,
02956    -1303, -1762,   666,   416, -1762, -1762, -1762, -1762, -1762, -1762,
02957    -1762, -1762, -1762,  -818, -1762, -1762, -1762, -1762, -1762,  1126,
02958    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1128, -1762, -1315,
02959      135, -1762,   209, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02960    -1762,    27,    39, -1053,  -528,  1572,   581, -1762,   444,  1642,
02961     -195, -1762, -1762, -1762,  1137, -1762, -1762, -1762, -1762, -1762,
02962      516,  -906,  -636, -1762, -1762, -1468,  -422, -1047,  -404, -1762,
02963     -767,   693, -1762, -1106, -1762, -1762, -1762,   436,  1117, -1762,
02964    -1762, -1762, -1762, -1762,  -187,   -80,  1862, -1762, -1762, -1762,
02965    -1762, -1762,  1233, -1762, -1762, -1762, -1762, -1762, -1762,  1865,
02966     1762,  1487, -1762, -1762,  -916, -1762, -1762,  1332, -1762,   759,
02967    -1063, -1069,   962, -1762, -1762, -1762, -1218, -1762, -1762, -1762,
02968    -1762, -1762,  1119,    91,   212, -1762, -1762, -1762, -1762, -1762,
02969    -1762, -1762, -1762,   -17,  -244,  -614, -1762, -1762, -1762, -1762,
02970    -1762, -1762, -1762, -1762, -1762,  1694, -1762, -1762, -1762,  1849,
02971    -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762, -1762,
02972      221, -1762,   273,   182, -1762,   206, -1762, -1762, -1762, -1762,
02973       92, -1762,  -328, -1504, -1110, -1584, -1762, -1762, -1762,  -576,
02974      982,  1574, -1376,  -495, -1762,  -251,   -37,   794,  2136,   -12,
02975       -2,  -406,  -228,   124,  -611,   894, -1762, -1762, -1762, -1762,
02976    -1762, -1762, -1762,  1350, -1762, -1762, -1762, -1762,   961, -1762,
02977    -1762, -1762,   -90,  -852,   757, -1762,   500,  1323, -1762, -1762,
02978    -1762, -1762,   199,  2119,  1801, -1762, -1762, -1762, -1762, -1762,
02979      -77, -1024,  -428, -1762, -1395, -1762, -1762, -1762,  -982, -1378,
02980    -1762, -1762,  -493, -1762, -1762
02981 };
02982 
02983 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
02984    positive, shift that token.  If negative, reduce the rule which
02985    number is the opposite.  If zero, do what YYDEFACT says.
02986    If YYTABLE_NINF, syntax error.  */
02987 #define YYTABLE_NINF -1214
02988 static const yytype_int16 yytable[] =
02989 {
02990       95,   520,   633,   307,  1265,   847,   618,   525,   754,   111,
02991       96,  1255,  1435,  1136,   285,   710,   711,   273,   508,  1295,
02992      813,  1297,  1305,  1203,  1066,  1199,  1046,  1237,   821,   424,
02993      421,   548,   723,   903,  1414,  1633,   725,   658,  1568,   273,
02994      891,   468,  1579,   894,   653,   587,   562,   896,   897,  1681,
02995     1107,   273,   566,  1351,   587,   653,   570,   571,  1030,   616,
02996      587,  1430,   273,  1226,   616,   587,   293,   587,   587,   273,
02997      675,   587,   587,  1723,  1487,   915,  1762,  1971,   793,  1635,
02998      928,    95,  1771,   587,  1313,   587,   646,   470,  1777,  1778,
02999     2008,    96,   578,   579,   580,   111,  1776,   273,  1118,   587,
03000      587,   909,   587,   680,  1492,   482,   462,  1840,   587,   273,
03001      587,   587,   273,  1269,  1952,  1299,   463, -1210,   587,   618,
03002      483,  1453,  1479,  1697,   490,  1332,  1022,   102,   587,  1233,
03003      587,   587,  1591,  1358,  2044,  1505,  1062,   587,  1583,  1943,
03004     1540,  1764,   648,   587,  1057,   587,  1593,  1626,  1839,   854,
03005      587,   587,   931,   274, -1213,  1833,   855,  1521,    86,  1839,
03006      618,    88,  1280,   377,   587,   587,  1432,  1454,   587,   901,
03007     2099,  1079,   377,   701,  1251,   287,  2005,   587,   587,   975,
03008      661,  1847,   587,   289,   989,   485,   587,   274,  1766,  1489,
03009     1538,    72,  1699,  1427,  1766,  1972,   642,   587,   296,   587,
03010      644,  1774, -1213,  1609,  1472,   296,    78,   651,  1953,  1627,
03011       84,  1610,    79,   902,  1576,   587,   659,   587,   317,   110,
03012       86,   486,   886,    88,  1529,   856,   857,   643,    86,  1999,
03013     1252,    88,   524,   287,  1611,   662,  1848,   424,   107,  1944,
03014     1727,   565,   119,  2043,  1700,   287,  1541,  2073,   287,  2000,
03015     1107,   887,  1516,  1517,  2100,   902,  1935,  1936,   702,  1830,
03016     1080,   588,   858,   587,   493,   904,  1839,  1625,   910,   291,
03017      588,   273,  1522,  1793,  1706,  1707,   588,  1630,   273,  1075,
03018      273,   588,   671,   588,   588,  1729,   273,   588,   588,   273,
03019     1945,  1765,   273,   273,   484,  1346,  1190,  1428,  1455,   588,
03020      826,   588,   915,   915,  1766,   273,  1271,  1272,   631,   103,
03021      691,   680,  1582,  2045,  2006,   848,   588,   697,   588,  1438,
03022     1954,   587,  1634,   649,   588,  1524,   588,   588,   647,    91,
03023     1896,  1333,  1021,  1399,   588,   929,  1820,  1257,  1636,   587,
03024     2009,  1506,   631,   424,   588,    91,   588,   588,   587,   587,
03025      587,  1724,  1917,   588,   587,   587,  2046,  1270,  1539,   588,
03026     1698,   588,    91,  1050,   587,   888,   588,   588,  1359,  1473,
03027     1962,  1671,   587,   587,   933,  2074,   428,   587,  2047,   587,
03028      588,   588,   587,   617,   588,   625,   273,   273,   617,  1628,
03029      587,    91,  1314,   588,   588,  2014,   672,   589,   588,    91,
03030     1046,  1810,   588,  2013,  1728,  1814,   589,   474,   587,  1623,
03031      273,   273,   589,   588,   287,   588,   287,   589,   798,   589,
03032      589,   799,   274,   589,   589,   287,   587,   798,   274,   496,
03033      952,   588,  1030,   588,   587,   589,   976,   589,   990,  1161,
03034      995,   287,   681,   996,  1211,  1388,   587,  1212,  1389,  1210,
03035     1167,   589,   589,   687,   589,  1667,  1268,  1669,  1401,   923,
03036      589,  1402,   589,   589,   273,   273,  1107,   273,   587,   587,
03037      589,   882,  1181,  1422,  1283,  1993,  1423,  1007,   273,   588,
03038      589,  1083,   589,   589,   936,   273,   940,   941,  1425,   589,
03039     2035,  2036,   273,  2038,   950,   589,   809,   589,  1970,   653,
03040     1219,  1220,   589,   589,   951,   116,   955,   962,  2051,  2019,
03041      915,  2015,   915,   967,  1342,   273,   589,   589,   935,   968,
03042      589,  2031,   584,   585,  1346,  1209,  1982,   969,  1026,   589,
03043      589,  1385,  1217,  2069,   589,  2070,  2071,   588,   589,  1989,
03044      970,   974,   587,  1597,   991,  1229,   287,   287,   587,   589,
03045     1726,   589,   862,  1825,  1386,   588,  2050,  1352,  1387,   828,
03046      587,   273,  1394,   105,   588,   588,   588,   589,   587,   589,
03047      588,   588,   377,  1403,    95,  1404,   587,   587,  2064,   587,
03048      588,  1073,   901,  1773,    96,   587,   587,   587,   588,   588,
03049     1400,  1684,   123,   588,  -682,   588,  1544,   277,   588,   120,
03050      676,   677,   908,   287,   845,   701,   588,   880,   273,  2065,
03051      883,  -645,   587,   587,   287,   589,   587,   111,   587,  1066,
03052      587,   287,   895,   633,   588,  1718,  -858,   587,   287,   587,
03053     1592,   587,   273,  1857,  -645,   273,   942,  -682,  1054,   893,
03054      587,  1286,   588,   273,   587,  1421,   884,   273,  1796,   281,
03055      588,   -45,   273,   920,  1808,   280,  1617,  -682,   701,  1287,
03056     1588,    22,   588,   587,  1446,  -682,  1479,  -682,  1589,  2066,
03057      273,   299,  1920,   589,   845,  1701,   273,  1710,   273,    86,
03058      701,    87,    88,  -682,   588,   588,   651,  1283,  -682,  2049,
03059      714,   589,  1353,  1872,   943,  1921,  -682,  1498,  1239,   829,
03060      589,   589,   589,   293,  -682,  1346,   589,   589,  -682,   801,
03061      278,  1002,   945,  -682,  1420,   830,   589,  1806,   310,   297,
03062     1214,   949,   958,   959,   589,   589,  1479,   963,   964,   589,
03063     1618,   589,  1122,  1124,   589,  -682,   301,   966,   854,  -858,
03064     1951,  1050,   589,   758,   850,   971,   979,   303,  -682,  1480,
03065      982,  1074,   997,  1590,  1239,  1172,  -682,   308,   588,  1192,
03066      589,   870,  2022,  1367,   588,   762,  2097,  2098,   287,   311,
03067     1705,   287,  1442,  1144,    30,  1919,   588,    67,   589,   892,
03068       68,  1383,  1194,   287,   588,   831,   589,   701,  1331,  -682,
03069      863,   600,   588,   588,   273,   588,  1354,   466,   589,  1390,
03070     1711,   588,   588,   588,   431,  1783,   287,  1391,  1822,  -126,
03071      953,  1240,   917,  1241,   287,   625,  1038,  1503,  1675,  1392,
03072      589,   589,   802,   272,  1003,    90,  -645,   953,   588,   588,
03073     -682,   305,   588,   854,   588,  1687,   588,  1980,  1546,   473,
03074      273,   273,  1393,   588,  1009,   588,   273,   588,  1882,  1990,
03075     1991,  1537,  1019,  1551,  1552,    92,   588,   288,  1481,  1065,
03076      588,  1443,  -682,  1070,    95,     1,     2,  1240,   477,  1559,
03077      273,  -682,   778,  1784,  1444,   864,     3,    63,  1076,   588,
03078      312,  1273,  1445,  1275,  1914,  -977,  1811,  1922,  -682,   432,
03079     1815,  1557,  1010,   313,   589,   845,    68,   603,   479,     4,
03080      589,   845,   845,  2017,   845,  1283,   337,  1119,     5,   856,
03081      857,  1915,   589,  1446,  -682,  1395,  -682,  -682,  -126,     6,
03082      589,  1398,  1207,   488,    86,  1571,  1014,    88,   589,   589,
03083     1008,   589,  1369,  1405,   498,   600,  1229,   589,   589,   589,
03084     1334,  1407,  1335,     7,     8,     9,  1232,   343,  1284,  1409,
03085     1411,   932,  1412,    10,   933,   491,  1482,  -221,  1413,  1564,
03086     1565,   909,  1883,    11,   589,   589,   499,  1447,   589,  1493,
03087      589,    12,   589,  2061,   494,  2062,   287,   287,  1267,   589,
03088       13,   589,   870,   589,   501,  1566,  1683,  1011,   634,  1686,
03089      502,  1688,   589,  1689,  1907,  1908,   589,   503,  1744,  1791,
03090       95,  1745,  1690,   620,  1691,   872,  1072,   909,  1448,   353,
03091       96,   934,    14,  2079,   933,   589,  -126,  1902,    86,  1927,
03092     1015,    88,   273,  1746,    64,  1303,    15,  1928,   273,    65,
03093     1198,   377,  1235,   933,  1478,  1236,    16,  1884,   363,  1336,
03094     1478,   603,  1742,  1488,  1396,  1490,    74,   933,  1450,   273,
03095     1286,   273,   814,   873,  1496,  1497,    95,   506,   337,  1260,
03096     1500,    81,  1785,   621,    86,   273,    96,    88,  1287,  1533,
03097     1749,  1757,  1534,   845,   612,   613,   614,   615,    75,   507,
03098     1337,  1743,  1749,  1757,   433,   434,   435,   436,   511,  1343,
03099     1300,   874,   489,    82,  1703,   845,   437,  1871,   495,   343,
03100     1803,  1804,   273,  1875,    17,    18,  1877,  1570,    19,   845,
03101      933,   845,   512,   845,   273,   273,    20,   845,  2060,   513,
03102      845,  1747,    21,  1319,  1320,   514,    22,  1054,   910,  1321,
03103      515,  1283,  1016,    23,  1304,   516,    24,  1503,   377,   517,
03104     1929,  1017,  1338,   815,   783,   783,   816,   675,   875,   518,
03105       25,  1638,   384,   521,  1534,  1055,  1750,  1758,  1224,  1677,
03106     1685,   353,  1678,   933,   508,  -221,  1851,  1854,  1750,  1758,
03107      522,  1339,   523,  1755,   910,  -285,   526,  1763,  1749,  1868,
03108     1769,  1695,    26,  1772,   933,  1261,  1757,  1263,  1851,    91,
03109      363,    27,   527,    28,  1215,  1894,    29,  1851,  1895,  1885,
03110     1886,   631,  1937,  1851,  1851,  1895,  1744,   628,  1889,  1745,
03111     1742,  1452,   606,   607,   608,   609,   610,   611,   612,   613,
03112      614,   615,   528,   902,   273,    64,  1602,  1603,  1930,   273,
03113       65,  1746,   529,  1478,  1941,    91,   273,  1942,  1329,    30,
03114       64,   651,   530,  1478,   633,    65,   273,  1088,   531,  1743,
03115      287,  1329,  1852,  1855,   532,   657,  1461,  -221,   817,   533,
03116     1938,  1939,  1121,   534,  1750,   537,    86,   818,    87,    88,
03117     -219,  -219,  1758,   273,  1852,   539,  -219,   600,  1504,   273,
03118     1090,   540,   273,  1852,   273,  1340,   845,   656,  1960,  1852,
03119     1852,  1678,   541,   273,   273,  1491,   845,  1850,  1744,   273,
03120      273,  1745,   542,   273,   384,  1900,  1756,  1499,  1123,  1967,
03121     1968,   845,   273,   273,   543,   678,  1092,  -219,   462,  2003,
03122      -70,    76,  1895,  1746,  1543,    69,  1148,    71,   463,  1747,
03123     1149,   544,  1294,  -221,  1296,  1088,    83,   545,  1097,  2004,
03124     1306,   108,  1895,   547,  1150,   845,  1311,   549,  1748,   273,
03125     1098,  2011,  2029,   550,  2012,  2030,   678,   909,  -219,  -219,
03126      870,   551,   552,  1088,  -219,  1441,  2080,   553,  1090,  2030,
03127     1478,   554,   287,    86,  1744,  1151,    88,  1745,  1152,  -152,
03128      660,  -221,  1462,   603,  2081,  2111,  1153,  2030,  2110,   555,
03129     1757,  2113,  1749,   556,  2114,   557,  1090,   558,   559,  1746,
03130      560,   561,   563,   678,  1092,   273,   564,  1126,   306,  1329,
03131      567,   568,    90,   273,    86,  1329,   569,    88,  1329,   273,
03132     1329,  1747,  1744,  1260,   572,  1745,  1097,  1866,   573,  1329,
03133     1329,   678,  1092,   574,   575,  1329,   576,  1749,  1098,   287,
03134     1851,   577,    92,   619,   645,   469,   663,  1746,  1329,  1520,
03135      664,   273,   665,   -76,  1097,   678,  1887,   682,   684,    95,
03136      618,    86,  1154,   683,    88,   685,  1098,   688,   675,   690,
03137      692,  1775,   273,  1507,  1508,   693,  1758,   590,  1750,   695,
03138      708,   618,   273,  1104,  1900,   287,   705,  1640,   717,    86,
03139      718,   600,    88,   748,  1105,  -125,   755,  1747,   756,   591,
03140      701,  1284,  1597,   791,   845,  1509,   525,   566,   792,   273,
03141      800,  1285,   273,   806,  1720,   825,   273,   851,   852,   845,
03142     1510,   845,   273,  1750,   910,   853,  1852,   866,   871,   592,
03143      881,    91,   898,  1957,  1956,   918,   906,  1958,   921,   593,
03144      925,  1569,  1511,  1755,    91,  1747,   938,   939,   947,  1261,
03145      618,   944,   618,  -682,   606,   607,   608,   609,   610,   611,
03146      612,   613,   614,   615,   946,   953,   957,  1005,   961,   972,
03147      973,  1104,   978,   594,   980,   992,   993,   981,  -125,   994,
03148     1013,   587,  1105,  -434,  1155,    91,   273,  1224,   675,   675,
03149     1018,   675,    95,  1862,  2106,   615,  -682,   603,   616,  1104,
03150      337,  1025,    96,  1286, -1214,  -525,   675,   599,  1329,   273,
03151     1105,  1034,  1900,  1127,  -682,  1035,  -682,   273,  1329,  2106,
03152      273,  1287,  1041,  1156,  -682,  2052,  -682,  -221,  1063,  2010,
03153     1068,   675,    91,   675,   675,  1077,  1071,  -682,  1082,  1157,
03154     1084,   343,  -682,  1120,  1125,  1639,  1138,  -682,   287,   902,
03155     1142,  1147,  1666,  1162,  1163,  -682,  1164,  1223,  1329,   715,
03156       91,   273,  1174,  -682,  1175,  1512,  2053,  -682,  1744,  1186,
03157     1202,  1745,  -682,  1055,  1231,   587,  1756,  1204,  1205,  1206,
03158      600,  2054,   759,  1213,  1222,   763,  1054,  -125,  1234,  1264,
03159     1284,  1301,   401,  1746,  -682,   600,  1298,  1307,   774,   775,
03160      321,  1302,   779,   353,  1308,  1357,    86,  -682,    87,    88,
03161     1309,  1310,  1312,  1323,  1316,  -682,   794,   795,   273,  1317,
03162     1330,  1359,  1715,    86,   273,    87,    88,  1361,  2055,  1863,
03163      845,  1864,   363,   -76,   595,   596,   597,  1363,  1853,    89,
03164      726,   727,   728,   729,   730,  1329,  1365,   601,  -682,  1370,
03165     1376,  1834,  1373,  1329,  1377,  1378,    89,  2056,   337,   933,
03166     1379,  1415,   965,   602,   854,  1419,  1417,  1424,  1903, -1214,
03167      608,   609,   610,   611,   612,   613,   614,   615,  1880,  1459,
03168      273,  1431,  1451,  1460,  1463,  -125,   603,  1464,   273,  -682,
03169     1494,  1747,  1495,   273,  1515,   342,   604,  1799,  1528,   343,
03170      600,   603,  1535,   731,   732,   733,   734,  1536,  1531,  1553,
03171     1532,  1548,  1088,  1549,   345,  1550,  1573,  1577,  1088,   273,
03172      273,  -682,  -221,  1578,  1586,  1584,  1585,  1594,  1604,  -682,
03173     -682,  1616,   377,   605,  1607,  -219,  -219,  1865,  1621,  1622,
03174     1632,  -219,  1673,  1674,   924,  1090,   384,  -682,  1676,  1679,
03175     1680,  1090,    90,  1682,  1799,  1704,   735,   736,   737,   738,
03176     1843,   353,  1708,  1744,  1709,   739,  1745,  1712,  1713,    90,
03177     1721,  2057,  1722,  -682,  1725,  -682,  -682,    91,  1730,  1736,
03178      678,  1092,    92,   273,  1731,  1732,   678,  1092,  1746,   362,
03179      363,   588,  1780,  1738,    91,  1765,  1779,  1782,  1800,    92,
03180      956,   273,   740,  1097,   960,  1795,   603,  1792,   -74,  1097,
03181      509,  1801,  1812,  1805,  1813,  1098,  1892,  1826,  1831,  1832,
03182      977,  1098,  1844,  1846,  1858,  1859,  1861,  1869,  1873,   287,
03183      273,   741,   742,  1874,  1878,  1879,  1881,   536,    86,  1890,
03184     1897,    88,  1901,  1913,    86,  -600,  -605,    88,   546,  1933,
03185     1946,  1948,    93,  1949,  1959,  1799,  1799,   606,   607,   608,
03186      609,   610,   611,   612,   613,   614,   615,   273,  1964,  2016,
03187     1979,  1969,   606,   607,   608,   609,   610,   611,   612,   613,
03188      614,   615,  1965,  1978,  1966,   581,  1747,  1994,  1641,  1984,
03189      377,  1986,  1642,  1643,  1995,  1835,  1997,  1996,  2020,  2026,
03190     2028,   382,  2032,  2037,   384,  2039,  2040,  1644,  1524,  2072,
03191     2075,  2076,  2077,  2112,   273,  2082,   273,  2083,   273,  1799,
03192      743,  2084,  2085,    86,  2086,    87,    88,   589,   744,   745,
03193     2087,  2088,  2089,  1794,  1344,  2107,  2109,  1988,  1645,   600,
03194     1318,  1646,  2110,   914,  1519,  1670,  1288,  1483,  1104,  1647,
03195     1326,  1836,  1837,  1525,  1104,   600,    89,  1733,  1876,  1105,
03196     1734,  1648,  1372,  1770,  1963,  1105,  2007,  1860,  1891,  1841,
03197     1870,  1856,   273,   273,  1360,  1649,  2018,   273,  2042, -1214,
03198    -1214,   610,   611,   612,   613,   614,   615,  1977,  1650,  1037,
03199     1518,    95,   670,  1238,   700,   273,   472,  1201,   273,   707,
03200      471,    96,   273,   712,   713,   638,  1572,  1053,  1426,    91,
03201      719,   720,   721,  1160,   722,    91,   724,  1596,  1809,  1336,
03202      750,   751,   752,   753,  2096,  1651,  2034,   757,  1200,   760,
03203      761,  1652,   764,   765,  1992,   766,   784,  2116,   768,   769,
03204      770,   771,   772,   773,  1807,   603,   776,   777,  1735,   780,
03205     1988,  1088,  1988,   785,  2063,   789,   790,  1828,  1086,   716,
03206     1337,   603,  1087,  1218,   796,   797,  1615,  1086,   497,    90,
03207     1088,  1087,   805,   444,  1254,   810,   811,   812,  1165,  1088,
03208       86,  1653,   505,    88,  1090,   626,   922,   445,   446,  1044,
03209     1575,  2021,  1089,  1436,    91,   447,  1274,   696,  2115,    92,
03210      538,  1089,  2023,  1090,  1998,  2059,  2117,  2041,  2095,  2095,
03211     1654,   869,  1090,    86,  1091,    87,    88,   302,  1439,   678,
03212     1092,  1064,  1338,  1091,  1530,   868,  1829,  1471,  1613,   429,
03213      630,     0,     0,     0,  2095,     0,   448,   885,   678,  1092,
03214     1655,     0,  1097,     0,  1093,  1094,    89,   678,  1092,     0,
03215     1095,  1339,     0,  1093,  1098,     0,  1096,     0,   449,  1095,
03216     -281,  1097,     0,     0,     0,  1096,     0,     0,    86,   807,
03217     1097,    88,     0,  1098,     0,   450,   451,    86,  1099,     0,
03218       88,  1656,  1098,     0,     0,  1657,  1658,  1099,     0,     0,
03219        0,     0,   452,   927,     0,     0,    86,  1442,     0,    88,
03220        0,     0,  1100,     0,     0,    86,   453,   730,    88,     0,
03221        0,  1659,     0,     0,  1660,  1661,   606,   607,   608,   609,
03222      610,   611,   612,   613,   614,   615,     0,   726,   727,   728,
03223      729,   730, -1214,   607,   608,   609,   610,   611,   612,   613,
03224      614,   615,     0,     0,   954,     0,     0,     0,     0,     0,
03225        0,    91,  1101,     0,     0,     0,   781,     0,     0,    90,
03226        0,  1101,   454,     0,     0,  1340,     0,     0,     0,   734,
03227        0,     0,  1442,     0,   984,   986,   988,     0,     0,  1102,
03228        0,     0,     0,  1442,    91,     0,  1443,  1104,  1102,    92,
03229      731,   732,   733,   734,     0,     0,     0,     0,  1105,  1444,
03230        0,   455,  1103,     0,     0,     0,  1104,  1445,     0,     0,
03231        0,  1103,     0,  1020,     0,  1104,     0,  1105,     0,   735,
03232        0,     0,   738,     0,     0,  1028,  1105,  1029,   739,     0,
03233        0,     0,     0,   456,     0,     0,   457,   458,  1446,    91,
03234      767,     0,     0,   735,   736,   737,   738,     0,    91,     0,
03235        0,  1905,   739,     0,     0,     0,     0,     0,     0,  1266,
03236        0,  1443,     0,     0,     0,   740,     0,    91,     0,     0,
03237        0,     0,  1443,     0,  1444,     0,    91,     0,     0,     0,
03238      459,     0,  1445,     0,     0,  1444,     0,     0,     0,   740,
03239      823,   824,  1447,  1445,   827,   742,   832,   833,   834,   835,
03240      836,   838,   840,   841,   842,   843,   844,     0,     0,     0,
03241        0,  1141,     0,  1446,  1143,     0,  1145,  1146,   741,   742,
03242        0,  1159,     0,     0,  1446,     0,  1909,     0,     0,     0,
03243        0,     0,     0,  1448,     0,  1166,     0,     0,  1168,  1169,
03244     1170,  1171,     0,  1173,     0,     0,     0,     0,     0,     0,
03245     1176,     0,     0,  1177,     0,  1178,  1179,  1180,     0,     0,
03246        0,     0,  1183,  1184,  1185,     0,     0,  1447,  1187,  1188,
03247        0,  1189,     0,  1191,     0,  1193,     0,  1195,  1447,  1196,
03248        0,     0,     0,   743,  1197,     0,     0,     0,     0,     0,
03249        0,     0,   745,     0,     0,     0,     0,     0,     0,     0,
03250        0,  1208,     0,     0,     0,     0,     0,   743,  1448,     0,
03251        0,     0,     0,  1216,     0,   744,   745,     0,  1221,  1448,
03252        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03253        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03254        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03255        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03256        0,     0,     0,     0,     0,     0,     0,     0,     0,  1277,
03257        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03258        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03259        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03260        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03261        0,     0,     0,     0,     0,     0,     0,     0,     0,  1024,
03262        0,     0,  1027,  1362,     0,     0,     0,     0,  1366,     0,
03263        0,     0,  1368,     0,     0,     0,     0,     0,     0,     0,
03264        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03265        0,  1381,  1382,     0,     0,     0,     0,     0,     0,     0,
03266        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03267     1397,     0,     0,     0,     0,     0,     0,     0,  1406,     0,
03268     1408,     0,  1410,     0,     0,     0,     0,     0,     0,     0,
03269        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03270        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03271        0,     0,     0,     0,     0,     0,     0,     0,  1277,     0,
03272        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03273        0,     0,     0,     0,     0,     0,     0,   125,   126,     0,
03274      127,   128,     0,     0,     0,     0,   129,     0,     0,     0,
03275      130,   131,   132,  1469,   133,     0,     0,     0,     0,   134,
03276        0,   135,   136,     0,   137,     0,     0,  1474,   138,     0,
03277        0,     0,   139,     0,     0,     0,   140,     0,   141,   142,
03278        0,   143,   144,     0,   145,   146,   147,   148,   149,   150,
03279        0,   151,   152,     0,   153,     0,     0,     0,     0,   154,
03280        0,     0,     0,     0,   155,   156,   157,     0,     0,   158,
03281        0,     0,     0,     0,   159,   160,     0,     0,     0,     0,
03282        0,     0,     0,     0,     0,   161,   162,     0,     0,     0,
03283      163,     0,   164,   165,   166,     0,     0,   167,     0,   168,
03284      169,     0,   170,   171,     0,   172,     0,   173,   174,     0,
03285        0,   175,     0,     0,   176,   177,   178,  1547,   179,     0,
03286        0,     0,   180,   181,     0,   182,     0,   183,     0,     0,
03287      184,     0,     0,     0,  1555,  1556,   185,    86,   186,     0,
03288       88,     0,  1558,   187,   188,     0,     0,  1560,     0,     0,
03289     1561,  1562,  1563,     0,     0,     0,     0,   189,     0,   190,
03290        0,     0,   191,     0,     0,   192,     0,     0,     0,   193,
03291        0,     0,     0,     0,     0,   194,   195,     0,   196,     0,
03292     1277,     0,     0,   197,   198,   199,   200,     0,     0,   201,
03293        0,   202,     0,   203,     0,   204,   205,   206,   207,     0,
03294        0,   208,   209,   210,     0,     0,   211,     0,     0,     0,
03295      212,   213,     0,   214,   215,   216,   217,     0,     0,     0,
03296     1614,     0,     0,     0,     0,   218,     0,  1620,   219,     0,
03297      220,   221,   222,   223,     0,     0,     0,     0,     0,   224,
03298        0,     0,     0,     0,   225,     0,     0,     0,     0,     0,
03299      226,     0,     0,     0,   227,   228,   229,   230,   231,   232,
03300      233,     0,   234,   235,     0,     0,     0,   236,   237,   238,
03301      239,     0,     0,   240,     0,   241,   242,   243,     0,     0,
03302        0,     0,     0,     0,     0,     0,     0,     0,   244,   245,
03303        0,     0,   246,     0,     0,   247,   248,   249,     0,     0,
03304      250,     0,   251,   252,     0,     0,   253,     0,     0,   254,
03305        0,   255,   256,     0,   257,     0,     0,   258,     0,     0,
03306      259,   260,     0,   261,   262,     0,  1277,     0,   263,     0,
03307        0,     0,     0,   264,     0,     0,     0,     0,     0,   265,
03308        0,   266,     0,     0,   267,     0,     0,     0,     0,   268,
03309      269,     0,     0,     0,     0,   270,     0,     0,     0,   271,
03310        0,     0,     0,     0,  1474,     0,     0,     0,     0,     0,
03311        0,     0,     0,     0,     0,     0,     0,     0,  2102,     0,
03312        0,     0,   399,  2103,     0,     0,     0,     0,     0,     0,
03313        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03314        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03315        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03316        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03317        0,     0,  1802,     0,     0,     0,     0,     0,     0,     0,
03318        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03319        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03320     1474,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03321        0,     0,     0,     0,  1469,     0,     0,     0,     0,     0,
03322        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03323        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03324        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03325        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03326        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03327        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03328        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03329        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03330        0,     0,     0,     0,  1911,  1912,     0,     0,     0,  1918,
03331        0,     0,   125,   318,     0,   127,   128,     0,     0,     0,
03332        0,   129,     0,     0,     0,   130,   131,   319,     0,   133,
03333        0,     0,   320,   321,   134,     0,   135,   136,   786,   137,
03334        0,     0,     0,   138,   322,   323,   324,   139,     0,     0,
03335      325,   140,     0,   141,   326,     0,   327,   144,     0,   145,
03336      146,   147,   148,   149,   150,     0,   151,   152,     0,   153,
03337      328,   329,     0,     0,   154,   330,   331,     0,   332,   155,
03338      156,   157,   333,   334,   335,     0,     0,     0,     0,   336,
03339      160,   337,     0,     0,   338,     0,     0,     0,     0,     0,
03340      161,   162,     0,  1474,     0,   163,     0,   164,   165,   166,
03341        0,     0,   167,     0,   168,   169,     0,   170,   171,     0,
03342      172,     0,   173,   174,   339,   340,   175,   341,   342,   176,
03343      177,   178,   343,   179,     0,     0,     0,   180,   181,     0,
03344      182,     0,   183,   344,     0,   184,     0,   345,     0,     0,
03345        0,   346,    86,   186,     0,    88,   347,     0,   187,   188,
03346        0,     0,     0,     0,     0,   348,   349,     0,  1277,     0,
03347        0,  2025,   189,  2027,   350,     0,     0,   191,     0,   351,
03348      192,     0,   787,   352,   193,     0,     0,     0,     0,     0,
03349      194,   195,     0,   196,   353,     0,     0,   354,   197,   198,
03350      199,   355,     0,     0,   356,   357,   202,     0,   203,   358,
03351      359,   205,   206,   207,     0,     0,   208,   209,   210,   360,
03352      361,   211,   362,   363,     0,   212,   213,     0,   214,   215,
03353      216,   217,     0,     0,     0,     0,     0,     0,     0,     0,
03354      218,   364,     0,   219,     0,   220,   221,   365,   223,     0,
03355        0,     0,     0,     0,   224,     0,     0,     0,     0,   225,
03356      366,   367,     0,     0,     0,   226,     0,     0,   368,   227,
03357      228,   229,   230,   231,   369,   233,     0,   370,   235,     0,
03358        0,     0,   236,   237,   238,   239,     0,     0,   240,     0,
03359      241,   242,   243,     0,     0,     0,     0,     0,     0,     0,
03360        0,     0,     0,   244,   245,   371,   372,   246,     0,     0,
03361      247,   373,   249,   374,   375,   250,   376,   251,   252,     0,
03362        0,   253,     0,   377,   254,     0,   378,   379,   380,   257,
03363        0,   788,   258,   381,   382,   383,   260,   384,   261,   262,
03364        0,     0,     0,   263,     0,     0,     0,     0,   385,     0,
03365        0,   386,   387,     0,   388,   389,   266,     0,     0,   267,
03366      390,     0,   391,   392,   268,   269,     0,     0,     0,     0,
03367      270,     0,     0,     0,   393,     0,     0,     0,     0,     0,
03368        0,     0,     0,     0,   394,   395,     0,     0,     0,     0,
03369      396,     0,   397,     0,   398,     0,     0,   399,   400,   125,
03370      318,     0,   127,   128,  1465,     0,     0,     0,   129,     0,
03371        0,     0,   130,   131,   319,     0,   133,     0,     0,  1466,
03372      321,   134,     0,   135,   136,     0,   137,     0,     0,     0,
03373      138,   322,   323,   324,   139,     0,     0,   325,   140,     0,
03374      141,   326,     0,   327,   144,     0,   145,   146,   147,   148,
03375      149,   150,     0,   151,   152,     0,   153,   328,   329,     0,
03376        0,   154,   330,   331,     0,   332,   155,   156,   157,   333,
03377      334,   335,     0,     0,     0,     0,   336,   160,   337,     0,
03378        0,  1467,     0,     0,     0,     0,     0,   161,   162,     0,
03379        0,     0,   163,     0,   164,   165,   166,     0,     0,   167,
03380        0,   168,   169,     0,   170,   171,     0,   172,     0,   173,
03381      174,   339,   340,   175,   341,   342,   176,   177,   178,   343,
03382      179,     0,     0,     0,   180,   181,     0,   182,     0,   183,
03383      344,     0,   184,     0,   345,     0,     0,     0,   346,    86,
03384      186,     0,    88,   347,     0,   187,   188,     0,     0,     0,
03385        0,     0,   348,   349,     0,     0,     0,     0,     0,   189,
03386        0,   350,     0,     0,   191,     0,   351,   192,     0,     0,
03387      352,   193,     0,     0,     0,     0,     0,   194,   195,     0,
03388      196,   353,     0,     0,   354,   197,   198,   199,   355,     0,
03389        0,   356,   357,   202,     0,   203,   358,   359,   205,   206,
03390      207,     0,     0,   208,   209,   210,   360,   361,   211,   362,
03391      363,     0,   212,   213,  1468,   214,   215,   216,   217,     0,
03392        0,     0,     0,     0,     0,     0,     0,   218,   364,     0,
03393      219,     0,   220,   221,   365,   223,     0,     0,     0,     0,
03394        0,   224,     0,     0,     0,     0,   225,   366,   367,     0,
03395        0,     0,   226,     0,     0,   368,   227,   228,   229,   230,
03396      231,   369,   233,     0,   370,   235,     0,     0,     0,   236,
03397      237,   238,   239,     0,     0,   240,     0,   241,   242,   243,
03398        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03399      244,   245,   371,   372,   246,     0,     0,   247,   373,   249,
03400      374,   375,   250,   376,   251,   252,     0,     0,   253,     0,
03401      377,   254,     0,   378,   379,   380,   257,     0,     0,   258,
03402      381,   382,   383,   260,   384,   261,   262,     0,     0,     0,
03403      263,     0,     0,     0,     0,   385,     0,     0,   386,   387,
03404        0,   388,   389,   266,     0,     0,   267,   390,     0,   391,
03405      392,   268,   269,     0,     0,     0,     0,   270,     0,     0,
03406        0,   393,     0,     0,     0,     0,     0,     0,     0,     0,
03407        0,   394,   395,     0,     0,     0,     0,   396,     0,   397,
03408        0,   398,     0,     0,   399,   400,   125,   318,     0,   127,
03409      128,     0,     0,     0,     0,   129,     0,     0,     0,   130,
03410      131,   319,     0,   133,     0,     0,   320,   321,   134,     0,
03411      135,   136,     0,   137,     0,     0,     0,   138,   322,   323,
03412      324,   139,     0,     0,   325,   140,     0,   141,   326,     0,
03413      327,   144,     0,   145,   146,   147,   148,   149,   150,     0,
03414      151,   152,     0,   153,   328,   329,     0,     0,   154,   330,
03415      331,     0,   332,   155,   156,   157,   333,   334,   335,     0,
03416        0,     0,     0,   336,   160,   337,     0,     0,   338,     0,
03417        0,     0,     0,     0,   161,   162,     0,     0,     0,   163,
03418        0,   164,   165,   166,     0,     0,   167,     0,   168,   169,
03419        0,   170,   171,     0,   172,     0,   173,   174,   339,   340,
03420      175,   341,   342,   176,   177,   178,   343,   179,     0,     0,
03421        0,   180,   181,     0,   182,     0,   183,   344,     0,   184,
03422        0,   345,     0,     0,     0,   346,    86,   186,     0,    88,
03423      347,     0,   187,   188,     0,     0,     0,     0,     0,   348,
03424      349,     0,     0,     0,     0,     0,   189,     0,   350,     0,
03425        0,   191,     0,   351,   192,     0,     0,   352,   193,     0,
03426        0,     0,     0,     0,   194,   195,     0,   196,   353,     0,
03427        0,   354,   197,   198,   199,   355,     0,     0,   356,   357,
03428      202,     0,   203,   358,   359,   205,   206,   207,     0,     0,
03429      208,   209,   210,   360,   361,   211,   362,   363,     0,   212,
03430      213,     0,   214,   215,   216,   217,     0,     0,     0,     0,
03431        0,     0,     0,     0,   218,   364,     0,   219,     0,   220,
03432      221,   365,   223,     0,     0,     0,     0,     0,   224,     0,
03433        0,     0,     0,   225,   366,   367,     0,     0,     0,   226,
03434        0,     0,   368,   227,   228,   229,   230,   231,   369,   233,
03435        0,   370,   235,     0,     0,     0,   236,   237,   238,   239,
03436        0,     0,   240,     0,   241,   242,   243,     0,     0,     0,
03437        0,     0,     0,     0,     0,     0,     0,   244,   245,   371,
03438      372,   246,     0,     0,   247,   373,   249,   374,   375,   250,
03439      376,   251,   252,     0,     0,   253,     0,   377,   254,     0,
03440      378,   379,   380,   257,     0,     0,   258,   381,   382,   383,
03441      260,   384,   261,   262,     0,     0,     0,   263,     0,     0,
03442        0,     0,   385,     0,     0,   386,   387,     0,   388,   389,
03443      266,     0,     0,   267,   390,     0,   391,   392,   268,   269,
03444        0,     0,     0,     0,   270,     0,     0,     0,   393,     0,
03445        0,     0,     0,     0,     0,     0,     0,     0,   394,   395,
03446        0,     0,     0,     0,   396,     0,   397,   717,   398,     0,
03447        0,   399,   400,   125,   318,     0,   127,   128,     0,     0,
03448        0,     0,   129,     0,     0,     0,   130,   131,   319,     0,
03449      133,     0,     0,   320,   321,   134,     0,   135,   136,     0,
03450      137,     0,     0,     0,   138,   322,   323,   324,   139,     0,
03451        0,   325,   140,     0,   141,   326,     0,   327,   144,     0,
03452      145,   146,   147,   148,   149,   150,     0,   151,   152,     0,
03453      153,   328,   329,     0,     0,   154,   330,   331,     0,   332,
03454      155,   156,   157,   333,   334,   335,     0,     0,     0,     0,
03455      336,   160,   337,     0,     0,   338,     0,     0,     0,     0,
03456        0,   161,   162,     0,     0,     0,   163,     0,   164,   165,
03457      166,     0,     0,   167,     0,   168,   169,     0,   170,   171,
03458        0,   172,     0,   173,   174,   339,   340,   175,   341,   342,
03459      176,   177,   178,   343,   179,     0,     0,     0,   180,   181,
03460      983,   182,     0,   183,   344,     0,   184,     0,   345,     0,
03461        0,     0,   346,    86,   186,     0,    88,   347,     0,   187,
03462      188,     0,     0,     0,     0,     0,   348,   349,     0,     0,
03463        0,     0,     0,   189,     0,   350,     0,     0,   191,     0,
03464      351,   192,     0,     0,   352,   193,     0,     0,     0,     0,
03465        0,   194,   195,     0,   196,   353,     0,     0,   354,   197,
03466      198,   199,   355,     0,     0,   356,   357,   202,     0,   203,
03467      358,   359,   205,   206,   207,     0,     0,   208,   209,   210,
03468      360,   361,   211,   362,   363,     0,   212,   213,     0,   214,
03469      215,   216,   217,     0,     0,     0,     0,     0,     0,     0,
03470        0,   218,   364,     0,   219,     0,   220,   221,   365,   223,
03471        0,     0,     0,     0,     0,   224,     0,     0,     0,     0,
03472      225,   366,   367,     0,     0,     0,   226,     0,     0,   368,
03473      227,   228,   229,   230,   231,   369,   233,     0,   370,   235,
03474        0,     0,     0,   236,   237,   238,   239,     0,     0,   240,
03475        0,   241,   242,   243,     0,     0,     0,     0,     0,     0,
03476        0,     0,     0,     0,   244,   245,   371,   372,   246,     0,
03477        0,   247,   373,   249,   374,   375,   250,   376,   251,   252,
03478        0,     0,   253,     0,   377,   254,     0,   378,   379,   380,
03479      257,     0,     0,   258,   381,   382,   383,   260,   384,   261,
03480      262,     0,     0,     0,   263,     0,     0,     0,     0,   385,
03481        0,     0,   386,   387,     0,   388,   389,   266,     0,     0,
03482      267,   390,     0,   391,   392,   268,   269,     0,     0,     0,
03483        0,   270,     0,     0,     0,   393,     0,     0,     0,     0,
03484        0,     0,     0,     0,     0,   394,   395,     0,     0,     0,
03485        0,   396,     0,   397,     0,   398,     0,     0,   399,   400,
03486      125,   318,     0,   127,   128,     0,     0,     0,     0,   129,
03487        0,     0,     0,   130,   131,   319,     0,   133,     0,     0,
03488      320,   321,   134,     0,   135,   136,     0,   137,     0,     0,
03489        0,   138,   322,   323,   324,   139,     0,     0,   325,   140,
03490        0,   141,   326,     0,   327,   144,     0,   145,   146,   147,
03491      148,   149,   150,     0,   151,   152,     0,   153,   328,   329,
03492        0,     0,   154,   330,   331,     0,   332,   155,   156,   157,
03493      333,   334,   335,     0,     0,     0,     0,   336,   160,   337,
03494        0,     0,   338,     0,     0,     0,     0,     0,   161,   162,
03495        0,     0,     0,   163,     0,   164,   165,   166,     0,     0,
03496      167,     0,   168,   169,     0,   170,   171,     0,   172,     0,
03497      173,   174,   339,   340,   175,   341,   342,   176,   177,   178,
03498      343,   179,     0,     0,     0,   180,   181,   985,   182,     0,
03499      183,   344,     0,   184,     0,   345,     0,     0,     0,   346,
03500       86,   186,     0,    88,   347,     0,   187,   188,     0,     0,
03501        0,     0,     0,   348,   349,     0,     0,     0,     0,     0,
03502      189,     0,   350,     0,     0,   191,     0,   351,   192,     0,
03503        0,   352,   193,     0,     0,     0,     0,     0,   194,   195,
03504        0,   196,   353,     0,     0,   354,   197,   198,   199,   355,
03505        0,     0,   356,   357,   202,     0,   203,   358,   359,   205,
03506      206,   207,     0,     0,   208,   209,   210,   360,   361,   211,
03507      362,   363,     0,   212,   213,     0,   214,   215,   216,   217,
03508        0,     0,     0,     0,     0,     0,     0,     0,   218,   364,
03509        0,   219,     0,   220,   221,   365,   223,     0,     0,     0,
03510        0,     0,   224,     0,     0,     0,     0,   225,   366,   367,
03511        0,     0,     0,   226,     0,     0,   368,   227,   228,   229,
03512      230,   231,   369,   233,     0,   370,   235,     0,     0,     0,
03513      236,   237,   238,   239,     0,     0,   240,     0,   241,   242,
03514      243,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03515        0,   244,   245,   371,   372,   246,     0,     0,   247,   373,
03516      249,   374,   375,   250,   376,   251,   252,     0,     0,   253,
03517        0,   377,   254,     0,   378,   379,   380,   257,     0,     0,
03518      258,   381,   382,   383,   260,   384,   261,   262,     0,     0,
03519        0,   263,     0,     0,     0,     0,   385,     0,     0,   386,
03520      387,     0,   388,   389,   266,     0,     0,   267,   390,     0,
03521      391,   392,   268,   269,     0,     0,     0,     0,   270,     0,
03522        0,     0,   393,     0,     0,     0,     0,     0,     0,     0,
03523        0,     0,   394,   395,     0,     0,     0,     0,   396,     0,
03524      397,     0,   398,     0,     0,   399,   400,   125,   318,     0,
03525      127,   128,     0,     0,     0,     0,   129,     0,     0,     0,
03526      130,   131,   319,     0,   133,     0,     0,   320,   321,   134,
03527        0,   135,   136,     0,   137,     0,     0,     0,   138,   322,
03528      323,   324,   139,     0,     0,   325,   140,     0,   141,   326,
03529        0,   327,   144,     0,   145,   146,   147,   148,   149,   150,
03530        0,   151,   152,     0,   153,   328,   329,     0,     0,   154,
03531      330,   331,     0,   332,   155,   156,   157,   333,   334,   335,
03532        0,     0,     0,     0,   336,   160,   337,     0,     0,   338,
03533        0,     0,     0,     0,     0,   161,   162,     0,     0,     0,
03534      163,     0,   164,   165,   166,     0,     0,   167,     0,   168,
03535      169,     0,   170,   171,     0,   172,     0,   173,   174,   339,
03536      340,   175,   341,   342,   176,   177,   178,   343,   179,     0,
03537        0,     0,   180,   181,   987,   182,     0,   183,   344,     0,
03538      184,     0,   345,     0,     0,     0,   346,    86,   186,     0,
03539       88,   347,     0,   187,   188,     0,     0,     0,     0,     0,
03540      348,   349,     0,     0,     0,     0,     0,   189,     0,   350,
03541        0,     0,   191,     0,   351,   192,     0,     0,   352,   193,
03542        0,     0,     0,     0,     0,   194,   195,     0,   196,   353,
03543        0,     0,   354,   197,   198,   199,   355,     0,     0,   356,
03544      357,   202,     0,   203,   358,   359,   205,   206,   207,     0,
03545        0,   208,   209,   210,   360,   361,   211,   362,   363,     0,
03546      212,   213,     0,   214,   215,   216,   217,     0,     0,     0,
03547        0,     0,     0,     0,     0,   218,   364,     0,   219,     0,
03548      220,   221,   365,   223,     0,     0,     0,     0,     0,   224,
03549        0,     0,     0,     0,   225,   366,   367,     0,     0,     0,
03550      226,     0,     0,   368,   227,   228,   229,   230,   231,   369,
03551      233,     0,   370,   235,     0,     0,     0,   236,   237,   238,
03552      239,     0,     0,   240,     0,   241,   242,   243,     0,     0,
03553        0,     0,     0,     0,     0,     0,     0,     0,   244,   245,
03554      371,   372,   246,     0,     0,   247,   373,   249,   374,   375,
03555      250,   376,   251,   252,     0,     0,   253,     0,   377,   254,
03556        0,   378,   379,   380,   257,     0,     0,   258,   381,   382,
03557      383,   260,   384,   261,   262,     0,     0,     0,   263,     0,
03558        0,     0,     0,   385,     0,     0,   386,   387,     0,   388,
03559      389,   266,     0,     0,   267,   390,     0,   391,   392,   268,
03560      269,     0,     0,     0,     0,   270,     0,     0,     0,   393,
03561        0,     0,     0,     0,     0,     0,     0,     0,     0,   394,
03562      395,     0,     0,     0,     0,   396,     0,   397,     0,   398,
03563        0,     0,   399,   400,   125,   318,     0,   127,   128,     0,
03564        0,     0,     0,   129,     0,     0,     0,   130,   131,   319,
03565        0,   133,     0,     0,   320,   321,   134,     0,   135,   136,
03566        0,   137,     0,     0,     0,   138,   322,   323,   324,   139,
03567        0,     0,   325,   140,     0,   141,   326,     0,   327,   144,
03568        0,   145,   146,   147,   148,   149,   150,     0,   151,   152,
03569        0,   153,   328,   329,     0,     0,   154,   330,   331,     0,
03570      332,   155,   156,   157,   333,   334,   335,     0,     0,     0,
03571        0,   336,   160,   337,     0,     0,   338,     0,     0,     0,
03572        0,     0,   161,   162,     0,     0,     0,   163,     0,   164,
03573      165,   166,     0,     0,   167,     0,   168,   169,     0,   170,
03574      171,     0,   172,     0,   173,   174,   339,   340,   175,   341,
03575      342,   176,   177,   178,   343,   179,     0,     0,     0,   180,
03576      181,     0,   182,     0,   183,   344,     0,   184,     0,   345,
03577        0,     0,     0,   346,    86,   186,     0,    88,   347,     0,
03578      187,   188,     0,     0,     0,     0,     0,   348,   349,     0,
03579        0,     0,     0,     0,   189,     0,   350,     0,     0,   191,
03580        0,   351,   192,     0,     0,   352,   193,     0,     0,     0,
03581        0,     0,   194,   195,     0,   196,   353,     0,     0,   354,
03582      197,   198,   199,   355,     0,     0,   356,   357,   202,     0,
03583      203,   358,   359,   205,   206,   207,     0,     0,   208,   209,
03584      210,   360,   361,   211,   362,   363,     0,   212,   213,     0,
03585      214,   215,   216,   217,     0,     0,     0,     0,     0,     0,
03586        0,     0,   218,   364,     0,   219,     0,   220,   221,   365,
03587      223,     0,     0,     0,     0,     0,   224,     0,     0,     0,
03588        0,   225,   366,   367,     0,     0,     0,   226,     0,     0,
03589      368,   227,   228,   229,   230,   231,   369,   233,     0,   370,
03590      235,     0,     0,     0,   236,   237,   238,   239,     0,     0,
03591      240,     0,   241,   242,   243,     0,     0,     0,     0,     0,
03592        0,     0,     0,     0,     0,   244,   245,   371,   372,   246,
03593        0,     0,   247,   373,   249,   374,   375,   250,   376,   251,
03594      252,     0,     0,   253,     0,   377,   254,     0,   378,   379,
03595      380,   257,     0,     0,   258,   381,   382,   383,   260,   384,
03596      261,   262,     0,     0,     0,   263,     0,     0,     0,     0,
03597      385,     0,     0,   386,   387,     0,   388,   389,   266,     0,
03598        0,   267,   390,     0,   391,   392,   268,   269,     0,     0,
03599        0,     0,   270,     0,     0,     0,   393,     0,     0,     0,
03600        0,     0,     0,     0,     0,     0,   394,   395,     0,     0,
03601        0,     0,   396,     0,   397,     0,   398,     0,     0,   399,
03602      400,   125,   318,     0,   127,   128,     0,     0,     0,     0,
03603      129,     0,     0,     0,   130,   131,   319,     0,   133,     0,
03604        0,   320,   321,   134,     0,   135,   136,     0,   137,     0,
03605        0,     0,   138,   322,   323,   324,   139,     0,     0,   325,
03606      140,     0,   141,   326,     0,   327,   144,     0,   145,   146,
03607      147,   148,   149,   150,     0,   151,   152,     0,   153,   328,
03608      329,     0,     0,   154,   330,   331,     0,   332,   155,   156,
03609      157,   333,   334,   335,     0,     0,     0,     0,   336,   160,
03610      337,     0,     0,   338,     0,     0,     0,     0,     0,   161,
03611      162,     0,     0,     0,   163,     0,   164,   165,   166,     0,
03612        0,   167,     0,   168,   169,     0,   170,   171,     0,   172,
03613        0,   173,   174,   339,   340,   175,   341,   342,   176,   177,
03614      178,   343,   179,     0,     0,     0,   180,   181,     0,   182,
03615        0,   183,   344,     0,   184,     0,   345,     0,     0,     0,
03616      346,    86,   186,     0,    88,   347,     0,   187,   188,     0,
03617        0,     0,     0,     0,   348,   349,     0,     0,     0,     0,
03618        0,   189,     0,   350,     0,     0,   191,     0,   351,   192,
03619        0,     0,   352,   193,     0,     0,     0,     0,     0,   194,
03620      195,     0,   196,   353,     0,     0,   354,   197,   198,   199,
03621      355,     0,     0,   356,   357,   202,     0,   203,   358,   359,
03622      205,   206,   207,     0,     0,   208,   209,   210,   360,   361,
03623      211,   362,   363,     0,   212,   213,     0,   214,   215,   216,
03624      217,     0,     0,     0,     0,     0,     0,     0,     0,   218,
03625      364,     0,   219,     0,   220,   221,   365,   223,     0,     0,
03626        0,     0,     0,   224,     0,     0,     0,     0,   225,   366,
03627      367,     0,     0,     0,   226,     0,     0,   368,   227,   228,
03628      229,   230,   231,   369,   233,     0,   370,   235,     0,     0,
03629        0,   236,   237,   238,   239,     0,     0,   240,     0,   241,
03630      242,   243,     0,     0,     0,     0,     0,     0,     0,     0,
03631        0,     0,   244,   245,   371,   372,   246,     0,     0,   247,
03632      373,   249,   374,   375,   250,   376,   251,   252,     0,     0,
03633      253,     0,   377,   254,     0,   378,   379,   380,   257,     0,
03634        0,   258,   381,   382,   383,   260,   384,   261,   262,     0,
03635        0,     0,   263,     0,     0,     0,     0,   385,     0,     0,
03636      386,   387,     0,   388,   389,   266,     0,     0,   267,   390,
03637        0,   391,   392,   268,   269,     0,     0,     0,     0,   270,
03638        0,     0,     0,   393,     0,     0,     0,     0,     0,     0,
03639        0,     0,     0,   394,   395,     0,     0,     0,     0,   396,
03640        0,   535,     0,   398,     0,     0,   399,   400,   125,   318,
03641        0,   127,   128,   819,     0,     0,     0,   820,     0,     0,
03642        0,   130,   131,   319,     0,   133,     0,     0,   320,   321,
03643      134,     0,   135,   136,     0,   137,     0,     0,     0,   138,
03644      322,   323,   324,   139,     0,     0,   325,   140,     0,   141,
03645      326,     0,   327,   144,     0,   145,   146,   147,   148,   149,
03646      150,     0,   151,   152,     0,   153,   328,   329,     0,     0,
03647      154,   330,   331,     0,   332,   155,   156,   157,   333,   334,
03648      335,     0,     0,     0,     0,   336,   160,   337,     0,     0,
03649      338,     0,     0,     0,     0,     0,   161,   162,     0,     0,
03650        0,   163,     0,   164,   165,   166,     0,     0,   167,     0,
03651      168,   169,     0,   170,   171,     0,   172,     0,   173,   174,
03652      339,   340,   175,   341,   342,   176,   177,   178,   343,   179,
03653        0,     0,     0,   180,   181,     0,   182,     0,   183,   344,
03654        0,   184,     0,   345,     0,     0,     0,   346,    86,   186,
03655        0,    88,   347,     0,   187,   188,     0,     0,     0,     0,
03656        0,   348,   349,     0,     0,     0,     0,     0,   189,     0,
03657      350,     0,     0,   191,     0,   351,   192,     0,     0,   352,
03658      193,     0,     0,     0,     0,     0,   194,   195,     0,   196,
03659      353,     0,     0,   354,   197,   198,   199,   355,     0,     0,
03660      356,   357,   202,     0,   203,   358,   359,   205,   206,   207,
03661        0,     0,   208,   209,   210,     0,   361,   211,   362,   363,
03662        0,   212,   213,     0,   214,   215,   216,   217,     0,     0,
03663        0,     0,     0,     0,     0,     0,   218,   364,     0,   219,
03664        0,   220,   221,   365,   223,     0,     0,     0,     0,     0,
03665      224,     0,     0,     0,     0,   225,   366,   367,     0,     0,
03666        0,   226,     0,     0,   368,   227,   228,   229,   230,   231,
03667      369,   233,     0,   370,   235,     0,     0,     0,   236,   237,
03668      238,   239,     0,     0,   240,     0,   241,   242,   243,     0,
03669        0,     0,     0,     0,     0,     0,     0,     0,     0,   244,
03670      245,   371,   372,   246,     0,     0,   247,   373,   249,   374,
03671      375,   250,   376,   251,   252,     0,     0,   253,     0,   377,
03672      254,     0,   378,   379,   380,   257,     0,     0,   258,   381,
03673      382,   383,   260,   384,   261,   262,     0,     0,     0,   263,
03674        0,     0,     0,     0,   385,     0,     0,   386,   387,     0,
03675      388,   389,   266,     0,     0,   267,   390,     0,   391,   392,
03676      268,   269,     0,     0,     0,     0,   270,     0,     0,     0,
03677      393,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03678      394,   395,     0,     0,     0,     0,   396,     0,   397,     0,
03679      398,     0,     0,   399,   400,   125,   318,     0,   127,   128,
03680        0,     0,     0,     0,   129,     0,     0,     0,   130,   131,
03681      319,     0,   133,     0,     0,   320,   321,   134,     0,   135,
03682      136,     0,   137,     0,     0,     0,   138,   322,   323,   324,
03683      139,     0,     0,   325,   140,     0,   141,   326,     0,   327,
03684      144,     0,   145,   146,   147,   148,   149,   150,     0,   151,
03685      152,     0,   153,   328,   329,     0,     0,   154,   330,   331,
03686        0,   332,   155,   156,   157,   333,   334,   335,     0,     0,
03687        0,     0,   336,   160,   337,     0,     0,   338,     0,     0,
03688        0,     0,     0,   161,   162,     0,     0,     0,   163,     0,
03689      164,   165,   166,     0,     0,   167,     0,   168,   169,     0,
03690      170,   171,     0,   172,     0,   173,   174,   339,   340,   175,
03691      341,   342,   176,   177,   178,   343,   179,     0,     0,     0,
03692      180,   181,     0,   182,     0,   183,   344,     0,   184,     0,
03693      345,     0,     0,     0,   346,    86,   186,     0,    88,   347,
03694        0,   187,   188,     0,     0,     0,     0,     0,   348,  1140,
03695        0,     0,     0,     0,     0,   189,     0,   350,     0,     0,
03696      191,     0,   351,   192,     0,     0,   352,   193,     0,     0,
03697        0,     0,     0,   194,   195,     0,   196,   353,     0,     0,
03698      354,   197,   198,   199,   355,     0,     0,   356,   357,   202,
03699        0,   203,   358,   359,   205,   206,   207,     0,     0,   208,
03700      209,   210,   360,   361,   211,   362,   363,     0,   212,   213,
03701        0,   214,   215,   216,   217,     0,     0,     0,     0,     0,
03702        0,     0,     0,   218,   364,     0,   219,     0,   220,   221,
03703      365,   223,     0,     0,     0,     0,     0,   224,     0,     0,
03704        0,     0,   225,   366,   367,     0,     0,     0,   226,     0,
03705        0,   368,   227,   228,   229,   230,   231,   369,   233,     0,
03706      370,   235,     0,     0,     0,   236,   237,   238,   239,     0,
03707        0,   240,     0,   241,   242,   243,     0,     0,     0,     0,
03708        0,     0,     0,     0,     0,     0,   244,   245,   371,   372,
03709      246,     0,     0,   247,   373,   249,   374,   375,   250,   376,
03710      251,   252,     0,     0,   253,     0,   377,   254,     0,   378,
03711      379,   380,   257,     0,     0,   258,   381,   382,   383,   260,
03712      384,   261,   262,     0,     0,     0,   263,     0,     0,     0,
03713        0,   385,     0,     0,   386,   387,     0,   388,   389,   266,
03714        0,     0,   267,   390,     0,   391,   392,   268,   269,     0,
03715        0,     0,     0,   270,     0,     0,     0,   393,     0,     0,
03716        0,     0,     0,     0,     0,     0,     0,   394,   395,     0,
03717        0,     0,     0,   396,     0,   397,     0,   398,     0,     0,
03718      399,   400,   125,   318,     0,   127,   128,     0,     0,     0,
03719        0,   129,     0,     0,     0,   130,   131,   319,     0,   133,
03720        0,     0,   320,   321,   134,     0,   135,   136,     0,   137,
03721        0,     0,     0,   138,   322,   323,   324,   139,     0,     0,
03722      325,   140,     0,   141,   326,     0,   327,   144,     0,   145,
03723      146,   147,   148,   149,   150,     0,   151,   152,     0,   153,
03724      328,   329,     0,     0,   154,   330,   331,     0,   332,   155,
03725      156,   157,   333,   334,   335,     0,     0,     0,     0,   336,
03726      160,   337,     0,     0,   338,     0,     0,     0,     0,     0,
03727      161,   162,     0,     0,     0,   163,     0,   164,   165,   166,
03728        0,     0,   167,     0,   168,   169,     0,   170,   171,     0,
03729      172,     0,   173,   174,   339,   340,   175,   341,   342,   176,
03730      177,   178,   343,   179,     0,     0,     0,   180,   181,     0,
03731      182,     0,   183,   344,     0,   184,     0,   345,     0,     0,
03732        0,   346,    86,   186,     0,    88,   347,     0,   187,   188,
03733        0,     0,     0,     0,     0,   348,  1182,     0,     0,     0,
03734        0,     0,   189,     0,   350,     0,     0,   191,     0,   351,
03735      192,     0,     0,   352,   193,     0,     0,     0,     0,     0,
03736      194,   195,     0,   196,   353,     0,     0,   354,   197,   198,
03737      199,   355,     0,     0,   356,   357,   202,     0,   203,   358,
03738      359,   205,   206,   207,     0,     0,   208,   209,   210,   360,
03739      361,   211,   362,   363,     0,   212,   213,     0,   214,   215,
03740      216,   217,     0,     0,     0,     0,     0,     0,     0,     0,
03741      218,   364,     0,   219,     0,   220,   221,   365,   223,     0,
03742        0,     0,     0,     0,   224,     0,     0,     0,     0,   225,
03743      366,   367,     0,     0,     0,   226,     0,     0,   368,   227,
03744      228,   229,   230,   231,   369,   233,     0,   370,   235,     0,
03745        0,     0,   236,   237,   238,   239,     0,     0,   240,     0,
03746      241,   242,   243,     0,     0,     0,     0,     0,     0,     0,
03747        0,     0,     0,   244,   245,   371,   372,   246,     0,     0,
03748      247,   373,   249,   374,   375,   250,   376,   251,   252,     0,
03749        0,   253,     0,   377,   254,     0,   378,   379,   380,   257,
03750        0,     0,   258,   381,   382,   383,   260,   384,   261,   262,
03751        0,     0,     0,   263,     0,     0,     0,     0,   385,     0,
03752        0,   386,   387,     0,   388,   389,   266,     0,     0,   267,
03753      390,     0,   391,   392,   268,   269,     0,     0,     0,     0,
03754      270,     0,     0,     0,   393,     0,     0,     0,     0,     0,
03755        0,     0,     0,     0,   394,   395,     0,     0,     0,     0,
03756      396,     0,   397,     0,   398,     0,     0,   399,   400,   125,
03757      318,     0,   127,   128,     0,     0,     0,     0,   129,     0,
03758        0,     0,   130,   131,   319,     0,   133,     0,     0,   320,
03759      321,   134,     0,   135,   136,     0,   137,     0,     0,     0,
03760      138,   322,   323,   324,   139,     0,     0,   325,   140,     0,
03761      141,   326,     0,   327,   144,     0,   145,   146,   147,   148,
03762      149,   150,     0,   151,   152,     0,   153,   328,   329,     0,
03763        0,   154,   330,   331,     0,   332,   155,   156,   157,   333,
03764      334,   335,     0,     0,     0,     0,   336,   160,   337,     0,
03765        0,  1276,     0,     0,     0,     0,     0,   161,   162,     0,
03766        0,     0,   163,     0,   164,   165,   166,     0,     0,   167,
03767        0,   168,   169,     0,   170,   171,     0,   172,     0,   173,
03768      174,   339,   340,   175,   341,   342,   176,   177,   178,   343,
03769      179,     0,     0,     0,   180,   181,     0,   182,     0,   183,
03770      344,     0,   184,     0,   345,     0,     0,     0,   346,    86,
03771      186,     0,    88,   347,     0,   187,   188,     0,     0,     0,
03772        0,     0,   348,   349,     0,     0,     0,     0,     0,   189,
03773        0,   350,     0,     0,   191,     0,   351,   192,     0,     0,
03774      352,   193,     0,     0,     0,     0,     0,   194,   195,     0,
03775      196,   353,     0,     0,   354,   197,   198,   199,   355,     0,
03776        0,   356,   357,   202,     0,   203,   358,   359,   205,   206,
03777      207,     0,     0,   208,   209,   210,   360,   361,   211,   362,
03778      363,     0,   212,   213,     0,   214,   215,   216,   217,     0,
03779        0,     0,     0,     0,     0,     0,     0,   218,   364,     0,
03780      219,     0,   220,   221,   365,   223,     0,     0,     0,     0,
03781        0,   224,     0,     0,     0,     0,   225,   366,   367,     0,
03782        0,     0,   226,     0,     0,   368,   227,   228,   229,   230,
03783      231,   369,   233,     0,   370,   235,     0,     0,     0,   236,
03784      237,   238,   239,     0,     0,   240,     0,   241,   242,   243,
03785        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03786      244,   245,   371,   372,   246,     0,     0,   247,   373,   249,
03787      374,   375,   250,   376,   251,   252,     0,     0,   253,     0,
03788      377,   254,     0,   378,   379,   380,   257,     0,     0,   258,
03789      381,   382,   383,   260,   384,   261,   262,     0,     0,     0,
03790      263,     0,     0,     0,     0,   385,     0,     0,   386,   387,
03791        0,   388,   389,   266,     0,     0,   267,   390,     0,   391,
03792      392,   268,   269,     0,     0,     0,     0,   270,     0,     0,
03793        0,   393,     0,     0,     0,     0,     0,     0,     0,     0,
03794        0,   394,   395,     0,     0,     0,     0,   396,     0,   397,
03795        0,   398,     0,     0,   399,   400,   125,   318,     0,   127,
03796      128,     0,     0,     0,     0,   129,     0,     0,     0,   130,
03797      131,   319,     0,   133,     0,     0,   320,   321,   134,     0,
03798      135,   136,     0,   137,     0,     0,     0,   138,   322,   323,
03799      324,   139,     0,     0,   325,   140,     0,   141,   326,     0,
03800      327,   144,     0,   145,   146,   147,   148,   149,   150,     0,
03801      151,   152,     0,   153,   328,   329,     0,     0,   154,   330,
03802      331,     0,   332,   155,   156,   157,   333,   334,   335,     0,
03803        0,     0,     0,   336,   160,   337,     0,     0,   338,     0,
03804        0,     0,     0,     0,   161,   162,     0,     0,     0,   163,
03805        0,   164,   165,   166,     0,     0,   167,     0,   168,   169,
03806        0,   170,   171,     0,   172,     0,   173,   174,   339,   340,
03807      175,   341,   342,   176,   177,   178,   343,   179,     0,     0,
03808        0,   180,   181,     0,   182,     0,   183,   344,     0,   184,
03809        0,   345,     0,     0,     0,   346,    86,   186,     0,    88,
03810      347,     0,   187,   188,     0,     0,     0,     0,     0,   348,
03811      349,     0,     0,     0,     0,     0,   189,     0,   350,     0,
03812        0,   191,     0,   351,   192,     0,     0,   352,   193,     0,
03813        0,     0,     0,     0,   194,   195,     0,   196,   353,     0,
03814        0,   354,   197,   198,   199,   355,     0,     0,   356,   357,
03815      202,     0,   203,   358,   359,   205,   206,   207,     0,     0,
03816      208,   209,   210,     0,   361,   211,   362,   363,     0,   212,
03817      213,     0,   214,   215,   216,   217,     0,     0,     0,     0,
03818        0,     0,     0,     0,   218,   364,     0,   219,     0,   220,
03819      221,   365,   223,     0,     0,     0,     0,     0,   224,     0,
03820        0,     0,     0,   225,   366,   367,     0,     0,     0,   226,
03821        0,     0,   368,   227,   228,   229,   230,   231,   369,   233,
03822        0,   370,   235,     0,     0,     0,   236,   237,   238,   239,
03823        0,     0,   240,     0,   241,   242,   243,     0,     0,     0,
03824        0,     0,     0,     0,     0,     0,     0,   244,   245,   371,
03825      372,   246,     0,     0,   247,   373,   249,   374,   375,   250,
03826      376,   251,   252,     0,     0,   253,     0,   377,   254,     0,
03827      378,   379,   380,   257,     0,     0,   258,   381,   382,   383,
03828      260,   384,   261,   262,     0,     0,     0,   263,     0,     0,
03829        0,     0,   385,     0,     0,   386,   387,     0,   388,   389,
03830      266,     0,     0,   267,   390,     0,   391,   392,   268,   269,
03831        0,     0,     0,     0,   270,     0,     0,     0,   393,     0,
03832        0,     0,     0,     0,     0,     0,     0,     0,   394,   395,
03833        0,     0,     0,     0,   396,     0,   397,     0,   398,     0,
03834        0,   399,   400,   125,   318,     0,   127,   128,     0,     0,
03835        0,     0,   129,     0,     0,     0,   130,   131,   319,     0,
03836      133,     0,     0,   320,   321,   134,     0,   135,   136,     0,
03837      137,     0,     0,     0,   138,   322,   323,   324,   139,     0,
03838        0,   325,   140,     0,   141,   326,     0,   327,   144,     0,
03839      145,   146,   147,   148,   149,   150,     0,   151,   152,     0,
03840      153,   328,   329,     0,     0,   154,   330,   331,     0,   332,
03841      155,   156,   157,   333,   334,   335,     0,     0,     0,     0,
03842      336,   160,   337,     0,     0,   338,     0,     0,     0,     0,
03843        0,   161,   162,     0,     0,     0,   163,     0,   164,   165,
03844      166,     0,     0,   167,     0,   168,   169,     0,   170,   171,
03845        0,   172,     0,   173,   174,   339,   340,   175,   341,   342,
03846      176,   177,   178,   343,   179,     0,     0,     0,   180,   181,
03847        0,   182,     0,   183,   344,     0,   184,     0,   345,     0,
03848        0,     0,   346,    86,   186,     0,    88,   347,     0,   187,
03849      188,     0,     0,     0,     0,     0,   348,   837,     0,     0,
03850        0,     0,     0,   189,     0,   350,     0,     0,   191,     0,
03851      351,   192,     0,     0,   352,   193,     0,     0,     0,     0,
03852        0,   194,   195,     0,   196,   353,     0,     0,   354,   197,
03853      198,   199,   355,     0,     0,   356,   357,   202,     0,   203,
03854      358,   359,   205,   206,   207,     0,     0,   208,   209,   210,
03855        0,   361,   211,   362,   363,     0,   212,   213,     0,   214,
03856      215,   216,   217,     0,     0,     0,     0,     0,     0,     0,
03857        0,   218,   364,     0,   219,     0,   220,   221,   365,   223,
03858        0,     0,     0,     0,     0,   224,     0,     0,     0,     0,
03859      225,   366,   367,     0,     0,     0,   226,     0,     0,   368,
03860      227,   228,   229,   230,   231,   369,   233,     0,   370,   235,
03861        0,     0,     0,   236,   237,   238,   239,     0,     0,   240,
03862        0,   241,   242,   243,     0,     0,     0,     0,     0,     0,
03863        0,     0,     0,     0,   244,   245,   371,   372,   246,     0,
03864        0,   247,   373,   249,   374,   375,   250,   376,   251,   252,
03865        0,     0,   253,     0,   377,   254,     0,   378,   379,   380,
03866      257,     0,     0,   258,   381,   382,   383,   260,   384,   261,
03867      262,     0,     0,     0,   263,     0,     0,     0,     0,   385,
03868        0,     0,   386,   387,     0,   388,   389,   266,     0,     0,
03869      267,   390,     0,   391,   392,   268,   269,     0,     0,     0,
03870        0,   270,     0,     0,     0,   393,     0,     0,     0,     0,
03871        0,     0,     0,     0,     0,   394,   395,     0,     0,     0,
03872        0,   396,     0,   397,     0,   398,     0,     0,   399,   400,
03873      125,   318,     0,   127,   128,     0,     0,     0,     0,   129,
03874        0,     0,     0,   130,   131,   319,     0,   133,     0,     0,
03875      320,   321,   134,     0,   135,   136,     0,   137,     0,     0,
03876        0,   138,   322,   323,   324,   139,     0,     0,   325,   140,
03877        0,   141,   326,     0,   327,   144,     0,   145,   146,   147,
03878      148,   149,   150,     0,   151,   152,     0,   153,   328,   329,
03879        0,     0,   154,   330,   331,     0,   332,   155,   156,   157,
03880      333,   334,   335,     0,     0,     0,     0,   336,   160,   337,
03881        0,     0,   338,     0,     0,     0,     0,     0,   161,   162,
03882        0,     0,     0,   163,     0,   164,   165,   166,     0,     0,
03883      167,     0,   168,   169,     0,   170,   171,     0,   172,     0,
03884      173,   174,   339,   340,   175,   341,   342,   176,   177,   178,
03885      343,   179,     0,     0,     0,   180,   181,     0,   182,     0,
03886      183,   344,     0,   184,     0,   345,     0,     0,     0,   346,
03887       86,   186,     0,    88,   347,     0,   187,   188,     0,     0,
03888        0,     0,     0,   348,   839,     0,     0,     0,     0,     0,
03889      189,     0,   350,     0,     0,   191,     0,   351,   192,     0,
03890        0,   352,   193,     0,     0,     0,     0,     0,   194,   195,
03891        0,   196,   353,     0,     0,   354,   197,   198,   199,   355,
03892        0,     0,   356,   357,   202,     0,   203,   358,   359,   205,
03893      206,   207,     0,     0,   208,   209,   210,     0,   361,   211,
03894      362,   363,     0,   212,   213,     0,   214,   215,   216,   217,
03895        0,     0,     0,     0,     0,     0,     0,     0,   218,   364,
03896        0,   219,     0,   220,   221,   365,   223,     0,     0,     0,
03897        0,     0,   224,     0,     0,     0,     0,   225,   366,   367,
03898        0,     0,     0,   226,     0,     0,   368,   227,   228,   229,
03899      230,   231,   369,   233,     0,   370,   235,     0,     0,     0,
03900      236,   237,   238,   239,     0,     0,   240,     0,   241,   242,
03901      243,     0,     0,     0,     0,     0,     0,     0,     0,     0,
03902        0,   244,   245,   371,   372,   246,     0,     0,   247,   373,
03903      249,   374,   375,   250,   376,   251,   252,     0,     0,   253,
03904        0,   377,   254,     0,   378,   379,   380,   257,     0,     0,
03905      258,   381,   382,   383,   260,   384,   261,   262,     0,     0,
03906        0,   263,     0,     0,     0,     0,   385,     0,     0,   386,
03907      387,     0,   388,   389,   266,     0,     0,   267,   390,     0,
03908      391,   392,   268,   269,     0,     0,     0,     0,   270,     0,
03909        0,     0,   393,     0,     0,     0,     0,     0,     0,     0,
03910        0,     0,   394,   395,     0,     0,     0,     0,   396,     0,
03911      397,     0,   398,     0,     0,   399,   400,   125,   126,     0,
03912      127,   128,     0,     0,     0,     0,   129,     0,     0,     0,
03913      130,   131,   132,     0,   133,     0,     0,     0,     0,   134,
03914        0,   135,   136,     0,   137,     0,     0,     0,   138,     0,
03915        0,     0,   139,     0,     0,     0,   140,     0,   141,   142,
03916        0,   143,   144,     0,   145,   146,   147,   148,   149,   150,
03917        0,   151,   152,     0,   153,     0,     0,     0,     0,   154,
03918        0,     0,     0,     0,   155,   156,   157,     0,     0,   158,
03919        0,     0,     0,     0,   159,   160,     0,     0,     0,     0,
03920        0,     0,     0,     0,     0,   161,   162,     0,     0,     0,
03921      163,     0,   164,   165,   166,     0,     0,   167,     0,   168,
03922      169,     0,   170,   171,     0,   172,     0,   173,   174,     0,
03923        0,   175,     0,     0,   176,   177,   178,     0,   179,     0,
03924        0,     0,   180,   181,     0,   182,     0,   183,     0,     0,
03925      184,     0,     0,     0,     0,     0,   185,    86,   186,     0,
03926       88,     0,     0,   187,   188,     0,     0,     0,     0,     0,
03927        0,     0,     0,     0,     0,     0,     0,   189,     0,   190,
03928        0,     0,   191,     0,     0,   192,     0,     0,     0,   193,
03929        0,     0,     0,     0,     0,   194,   195,     0,   196,     0,
03930        0,     0,     0,   197,   198,   199,   200,     0,     0,   201,
03931        0,   202,     0,   203,     0,   204,   205,   206,   207,     0,
03932        0,   208,   209,   210,     0,     0,   211,     0,     0,     0,
03933      212,   213,     0,   214,   215,   216,   217,     0,     0,     0,
03934        0,     0,     0,     0,     0,   218,     0,     0,   219,     0,
03935      220,   221,   222,   223,     0,     0,     0,     0,     0,   224,
03936        0,     0,     0,     0,   225,     0,     0,     0,     0,     0,
03937      226,     0,     0,     0,   227,   228,   229,   230,   231,   232,
03938      233,     0,   234,   235,     0,     0,     0,   236,   237,   238,
03939      239,     0,     0,   240,     0,   241,   242,   243,     0,     0,
03940        0,     0,     0,     0,     0,     0,     0,     0,   244,   245,
03941        0,     0,   246,     0,     0,   247,   248,   249,     0,     0,
03942      250,     0,   251,   252,     0,     0,   253,     0,     0,   254,
03943        0,   255,   256,     0,   257,     0,     0,   258,     0,     0,
03944      259,   260,     0,   261,   262,     0,     0,     0,   263,     0,
03945        0,     0,     0,   264,     0,     0,     0,     0,     0,   265,
03946        0,   266,     0,     0,   267,     0,     0,     0,     0,   268,
03947      269,     0,     0,   125,   126,   270,   127,   128,     0,   271,
03948        0,     0,   129,     0,     0,     0,   130,   131,   132,     0,
03949      133,     0,     0,     0,     0,   134,     0,   135,   136,     0,
03950      137,     0,   399,  2103,   138,     0,     0,     0,   139,     0,
03951        0,     0,   140,     0,   141,   142,     0,   143,   144,     0,
03952      145,   146,   147,   148,   149,   150,     0,   151,   152,  1285,
03953      153,     0,     0,     0,     0,   154,     0,     0,     0,     0,
03954      155,   156,   157,     0,     0,   158,     0,     0,     0,     0,
03955      159,   160,     0,     0,     0,     0,     0,     0,     0,     0,
03956        0,   161,   162,     0,     0,     0,   163,     0,   164,   165,
03957      166,     0,     0,   167,     0,   168,   169,     0,   170,   171,
03958        0,   172,     0,   173,   174,     0,     0,   175,     0,     0,
03959      176,   177,   178,     0,   179,     0,     0,     0,   180,   181,
03960        0,   182,     0,   183,     0,     0,   184,     0,     0,     0,
03961        0,     0,   185,    86,   186,     0,    88,     0,     0,   187,
03962      188,  1286,     0,     0,     0,     0,     0,     0,     0,     0,
03963        0,     0,     0,   189,     0,   190,     0,     0,   191,  1287,
03964        0,   192,     0,     0,     0,   193,     0,  1126,     0,     0,
03965        0,   194,   195,     0,   196,     0,     0,     0,     0,   197,
03966      198,   199,   200,     0,     0,   201,     0,   202,     0,   203,
03967        0,   204,   205,   206,   207,     0,     0,   208,   209,   210,
03968        0,     0,   211,     0,     0,     0,   212,   213,     0,   214,
03969      215,   216,   217,     0,     0,     0,     0,     0,     0,     0,
03970        0,   218,     0,     0,   219,     0,   220,   221,   222,   223,
03971        0,     0,     0,     0,     0,   224,     0,     0,     0,     0,
03972      225,     0,     0,     0,     0,     0,   226,     0,     0,     0,
03973      227,   228,   229,   230,   231,   232,   233,     0,   234,   235,
03974      854,     0,     0,   236,   237,   238,   239,     0,     0,   240,
03975        0,   241,   242,   243,     0,     0,     0,     0,     0,     0,
03976        0,     0,     0,     0,   244,   245,     0,     0,   246,     0,
03977        0,   247,   248,   249,     0,     0,   250,     0,   251,   252,
03978        0,     0,   253,     0,     0,   254,     0,   255,   256,     0,
03979      257,     0,     0,   258,     0,     0,   259,   260,     0,   261,
03980      262,     0,     0,     0,   263,     0,     0,     0,     0,   264,
03981        0,     0,     0,     0,     0,   265,     0,   266,     0,     0,
03982      267,     0,     0,     0,     0,   268,   269,     0,     0,   125,
03983      126,   270,   127,   128,     0,   271,     0,     0,   129,     0,
03984        0,     0,   130,   131,   132,     0,   133,     0,     0,     0,
03985        0,   134,     0,   135,   136,     0,   137,     0,  1325,     0,
03986      138,     0,     0,     0,   139,     0,     0,     0,   140,     0,
03987      141,   142,     0,   143,   144,     0,   145,   146,   147,   148,
03988      149,   150,     0,   151,   152,  1285,   153,     0,     0,     0,
03989        0,   154,     0,     0,     0,     0,   155,   156,   157,     0,
03990        0,   158,     0,     0,     0,     0,   159,   160,     0,     0,
03991        0,     0,     0,     0,     0,     0,     0,   161,   162,     0,
03992        0,     0,   163,     0,   164,   165,   166,     0,     0,   167,
03993        0,   168,   169,     0,   170,   171,     0,   172,     0,   173,
03994      174,     0,     0,   175,     0,     0,   176,   177,   178,     0,
03995      179,     0,     0,     0,   180,   181,     0,   182,     0,   183,
03996        0,     0,   184,     0,     0,     0,     0,     0,   185,    86,
03997      186,     0,    88,     0,     0,   187,   188,  1286,     0,     0,
03998        0,     0,     0,     0,     0,     0,     0,     0,     0,   189,
03999        0,   190,     0,     0,   191,  1287,     0,   192,     0,     0,
04000        0,   193,     0,     0,     0,     0,     0,   194,   195,     0,
04001      196,     0,     0,     0,     0,   197,   198,   199,   200,     0,
04002        0,   201,     0,   202,     0,   203,     0,   204,   205,   206,
04003      207,     0,     0,   208,   209,   210,     0,     0,   211,     0,
04004        0,     0,   212,   213,     0,   214,   215,   216,   217,     0,
04005        0,     0,     0,     0,     0,     0,     0,   218,     0,     0,
04006      219,     0,   220,   221,   222,   223,     0,     0,     0,     0,
04007        0,   224,     0,     0,     0,     0,   225,     0,     0,     0,
04008        0,     0,   226,     0,     0,     0,   227,   228,   229,   230,
04009      231,   232,   233,     0,   234,   235,     0,     0,     0,   236,
04010      237,   238,   239,     0,     0,   240,     0,   241,   242,   243,
04011        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04012      244,   245,     0,     0,   246,     0,     0,   247,   248,   249,
04013        0,     0,   250,     0,   251,   252,     0,     0,   253,     0,
04014        0,   254,     0,   255,   256,     0,   257,     0,     0,   258,
04015        0,     0,   259,   260,     0,   261,   262,     0,     0,     0,
04016      263,     0,     0,     0,     0,   264,     0,     0,     0,     0,
04017        0,   265,     0,   266,     0,     0,   267,     0,     0,     0,
04018        0,   268,   269,     0,     0,   125,   126,   270,   127,   128,
04019        0,   271,     0,     0,   129,     0,     0,     0,   130,   131,
04020      132,     0,   133,     0,     0,     0,     0,   134,     0,   135,
04021      136,     0,   137,     0,  1325,     0,   138,     0,     0,     0,
04022      139,     0,     0,     0,   140,     0,   141,   142,     0,   143,
04023      144,     0,   145,   146,   147,   148,   149,   150,     0,   151,
04024      152,     0,   153,     0,     0,     0,     0,   154,     0,     0,
04025        0,     0,   155,   156,   157,     0,     0,   158,     0,     0,
04026        0,     0,   159,   160,     0,     0,     0,     0,     0,     0,
04027        0,     0,     0,   161,   162,     0,     0,     0,   163,     0,
04028      164,   165,   166,     0,     0,   167,     0,   168,   169,     0,
04029      170,   171,     0,   172,     0,   173,   174,     0,     0,   175,
04030        0,     0,   176,   177,   178,     0,   179,     0,     0,     0,
04031      180,   181,     0,   182,     0,   183,     0,     0,   184,     0,
04032        0,     0,     0,     0,   185,    86,   186,     0,    88,     0,
04033        0,   187,   188,     0,     0,     0,     0,     0,     0,     0,
04034        0,     0,     0,     0,     0,   189,     0,   190,     0,     0,
04035      191,     0,     0,   192,     0,     0,     0,   193,     0,     0,
04036        0,     0,     0,   194,   195,     0,   196,     0,     0,     0,
04037        0,   197,   198,   199,   200,     0,     0,   201,     0,   202,
04038        0,   203,     0,   204,   205,   206,   207,     0,     0,   208,
04039      209,   210,     0,     0,   211,     0,     0,     0,   212,   213,
04040        0,   214,   215,   216,   217,     0,     0,     0,     0,     0,
04041        0,     0,     0,   218,     0,     0,   219,     0,   220,   221,
04042      222,   223,     0,     0,     0,     0,     0,   224,     0,     0,
04043        0,     0,   225,     0,     0,     0,     0,     0,   226,     0,
04044        0,     0,   227,   228,   229,   230,   231,   232,   233,     0,
04045      234,   235,   854,     0,     0,   236,   237,   238,   239,     0,
04046        0,   240,     0,   241,   242,   243,     0,     0,     0,     0,
04047        0,     0,     0,     0,     0,     0,   244,   245,     0,     0,
04048      246,     0,     0,   247,   248,   249,     0,     0,   250,     0,
04049      251,   252,     0,     0,   253,     0,     0,   254,     0,   255,
04050      256,     0,   257,     0,     0,   258,     0,     0,   259,   260,
04051        0,   261,   262,     0,     0,     0,   263,     0,     0,     0,
04052        0,   264,     0,     0,     0,     0,     0,   265,     0,   266,
04053        0,     0,   267,     0,     0,     0,     0,   268,   269,     0,
04054        0,     0,     0,   270,     0,     0,     0,   271,     0,     0,
04055      125,   126,     0,   127,   128,     0,     0,     0,     0,   129,
04056        0,     0,     0,   130,   131,   132,  1045,   133,     0,     0,
04057      399,     0,   134,     0,   135,   136,     0,   137,     0,     0,
04058        0,   138,     0,     0,     0,   139,     0,     0,     0,   140,
04059        0,   141,   142,     0,   143,   144,     0,   145,   146,   147,
04060      148,   149,   150,     0,   151,   152,     0,   153,     0,     0,
04061        0,     0,   154,     0,     0,     0,     0,   155,   156,   157,
04062        0,     0,   158,     0,     0,     0,     0,   159,   160,     0,
04063        0,     0,     0,     0,     0,     0,     0,     0,   161,   162,
04064        0,     0,     0,   163,     0,   164,   165,   166,     0,     0,
04065      167,     0,   168,   169,     0,   170,   171,     0,   172,     0,
04066      173,   174,     0,     0,   175,     0,     0,   176,   177,   178,
04067        0,   179,     0,     0,     0,   180,   181,     0,   182,     0,
04068      183,     0,     0,   184,     0,     0,     0,     0,     0,   185,
04069       86,   186,     0,    88,     0,     0,   187,   188,     0,     0,
04070        0,     0,     0,     0,     0,   423,     0,     0,     0,     0,
04071      189,     0,   190,     0,     0,   191,     0,     0,   192,     0,
04072        0,     0,   193,     0,     0,     0,     0,     0,   194,   195,
04073        0,   196,     0,     0,     0,     0,   197,   198,   199,   200,
04074        0,     0,   201,     0,   202,     0,   203,     0,   204,   205,
04075      206,   207,     0,     0,   208,   209,   210,     0,     0,   211,
04076        0,     0,     0,   212,   213,     0,   214,   215,   216,   217,
04077        0,     0,     0,     0,     0,     0,     0,     0,   218,     0,
04078        0,   219,     0,   220,   221,   222,   223,     0,     0,     0,
04079        0,     0,   224,     0,     0,     0,     0,   225,     0,     0,
04080        0,     0,     0,   226,     0,     0,     0,   227,   228,   229,
04081      230,   231,   232,   233,     0,   234,   235,     0,     0,     0,
04082      236,   237,   238,   239,     0,     0,   240,     0,   241,   242,
04083      243,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04084        0,   244,   245,     0,     0,   246,     0,     0,   247,   248,
04085      249,     0,     0,   250,     0,   251,   252,     0,     0,   253,
04086        0,     0,   254,     0,   255,   256,     0,   257,     0,     0,
04087      258,     0,     0,   259,   260,     0,   261,   262,     0,     0,
04088        0,   263,     0,     0,     0,     0,   264,     0,     0,     0,
04089        0,     0,   265,     0,   266,     0,     0,   267,     0,     0,
04090        0,     0,   268,   269,     0,     0,   125,   126,   270,   127,
04091      128,     0,   271,     0,     0,   129,     0,     0,     0,   130,
04092      131,   132,     0,   133,     0,     0,     0,     0,   134,     0,
04093      135,   136,     0,   137,     0,   283,     0,   138,     0,     0,
04094        0,   139,     0,     0,     0,   140,     0,   141,   142,     0,
04095      143,   144,     0,   145,   146,   147,   148,   149,   150,     0,
04096      151,   152,     0,   153,     0,     0,     0,     0,   154,     0,
04097        0,     0,     0,   155,   156,   157,     0,     0,   158,     0,
04098        0,     0,     0,   159,   160,     0,     0,     0,     0,     0,
04099        0,     0,     0,     0,   161,   162,     0,     0,     0,   163,
04100        0,   164,   165,   166,     0,     0,   167,     0,   168,   169,
04101        0,   170,   171,     0,   172,     0,   173,   174,     0,     0,
04102      175,     0,     0,   176,   177,   178,     0,   179,     0,     0,
04103        0,   180,   181,     0,   182,     0,   183,     0,     0,   184,
04104        0,     0,     0,     0,     0,   185,    86,   186,     0,    88,
04105        0,     0,   187,   188,     0,     0,     0,     0,     0,     0,
04106        0,     0,     0,     0,     0,     0,   189,     0,   190,     0,
04107        0,   191,     0,     0,   192,     0,     0,     0,   193,     0,
04108        0,     0,     0,     0,   194,   195,     0,   196,     0,     0,
04109        0,     0,   197,   198,   199,   200,     0,     0,   201,     0,
04110      202,     0,   203,     0,   204,   205,   206,   207,     0,     0,
04111      208,   209,   210,     0,     0,   211,     0,     0,     0,   212,
04112      213,     0,   214,   215,   216,   217,     0,     0,     0,     0,
04113        0,     0,     0,     0,   218,     0,     0,   219,     0,   220,
04114      221,   222,   223,     0,     0,     0,     0,     0,   224,     0,
04115        0,     0,     0,   225,     0,     0,     0,     0,     0,   226,
04116        0,     0,     0,   227,   228,   229,   230,   231,   232,   233,
04117        0,   234,   235,     0,     0,     0,   236,   237,   238,   239,
04118        0,     0,   240,     0,   241,   242,   243,     0,     0,     0,
04119        0,     0,     0,     0,     0,     0,     0,   244,   245,     0,
04120        0,   246,     0,     0,   247,   248,   249,     0,     0,   250,
04121        0,   251,   252,     0,     0,   253,     0,     0,   254,     0,
04122      255,   256,     0,   257,     0,     0,   258,     0,     0,   259,
04123      260,     0,   261,   262,     0,     0,     0,   263,     0,     0,
04124        0,     0,   264,     0,     0,     0,     0,     0,   265,     0,
04125      266,     0,     0,   267,     0,     0,     0,     0,   268,   269,
04126        0,     0,     0,     0,   270,     0,     0,     0,   271,     0,
04127      125,   126,     0,   127,   128,     0,     0,     0,     0,   129,
04128        0,     0,     0,   130,   131,   132,  1324,   133,     0,     0,
04129        0,  1325,   134,     0,   135,   136,     0,   137,     0,     0,
04130        0,   138,     0,     0,     0,   139,     0,     0,     0,   140,
04131        0,   141,   142,     0,   143,   144,     0,   145,   146,   147,
04132      148,   149,   150,     0,   151,   152,     0,   153,     0,     0,
04133        0,     0,   154,     0,     0,     0,     0,   155,   156,   157,
04134        0,     0,   158,     0,     0,     0,     0,   159,   160,     0,
04135        0,     0,     0,     0,     0,     0,     0,     0,   161,   162,
04136        0,     0,     0,   163,     0,   164,   165,   166,     0,     0,
04137      167,     0,   168,   169,     0,   170,   171,     0,   172,     0,
04138      173,   174,     0,     0,   282,     0,     0,   176,   177,   178,
04139        0,   179,     0,     0,     0,   180,   181,     0,   182,     0,
04140      183,     0,     0,   184,     0,     0,     0,     0,     0,   185,
04141       86,   186,     0,    88,     0,     0,   187,   188,     0,     0,
04142        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04143      189,     0,   190,     0,     0,   191,     0,     0,   192,     0,
04144        0,     0,   193,     0,     0,     0,     0,     0,   194,   195,
04145        0,   196,     0,     0,     0,     0,   197,   198,   199,   200,
04146        0,     0,   201,     0,   202,     0,   203,     0,   204,   205,
04147      206,   207,     0,     0,   208,   209,   210,     0,     0,   211,
04148        0,     0,     0,   212,   213,     0,   214,   215,   216,   217,
04149        0,     0,     0,     0,     0,     0,     0,     0,   218,     0,
04150        0,   219,     0,   220,   221,   222,   223,     0,     0,     0,
04151        0,     0,   224,     0,     0,     0,     0,   225,     0,     0,
04152        0,     0,     0,   226,     0,     0,     0,   227,   228,   229,
04153      230,   231,   232,   233,     0,   234,   235,     0,     0,     0,
04154      236,   237,   238,   239,     0,     0,   240,     0,   241,   242,
04155      243,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04156        0,   244,   245,     0,     0,   246,     0,     0,   247,   248,
04157      249,     0,     0,   250,     0,   251,   252,     0,     0,   253,
04158        0,     0,   254,     0,   255,   256,     0,   257,     0,     0,
04159      258,     0,     0,   259,   260,     0,   261,   262,     0,     0,
04160        0,   263,     0,     0,     0,     0,   264,     0,     0,     0,
04161        0,     0,   265,     0,   266,     0,     0,   267,     0,     0,
04162        0,     0,   268,   269,     0,     0,   125,   126,   270,   127,
04163      128,     0,   271,     0,     0,   129,     0,     0,     0,   130,
04164      131,   132,     0,   133,     0,     0,     0,     0,   134,     0,
04165      135,   136,     0,   137,     0,   283,     0,   138,     0,     0,
04166        0,   139,     0,     0,     0,   140,     0,   141,   142,     0,
04167      143,   144,     0,   145,   146,   147,   148,   149,   150,     0,
04168      151,   152,     0,   153,     0,     0,     0,     0,   154,     0,
04169        0,     0,     0,   155,   156,   157,     0,     0,   158,     0,
04170        0,     0,     0,   159,   160,     0,     0,     0,     0,     0,
04171        0,     0,     0,     0,   161,   162,     0,     0,     0,   163,
04172        0,   164,   165,   166,     0,     0,   167,     0,   168,   169,
04173        0,   170,   171,     0,   172,     0,   173,   174,     0,     0,
04174      175,     0,     0,   176,   177,   178,     0,   179,     0,     0,
04175        0,   180,   181,     0,   182,     0,   183,     0,     0,   184,
04176        0,     0,     0,     0,     0,   185,    86,   186,     0,    88,
04177        0,     0,   187,   188,     0,     0,     0,     0,     0,     0,
04178        0,     0,     0,     0,     0,     0,   189,     0,   190,     0,
04179        0,   191,     0,     0,   192,     0,     0,     0,   193,     0,
04180        0,     0,     0,     0,   194,   195,     0,   196,     0,     0,
04181        0,     0,   197,   198,   199,   200,     0,     0,   201,     0,
04182      202,     0,   203,     0,   204,   205,   206,   207,     0,     0,
04183      208,   209,   210,     0,     0,   211,     0,     0,     0,   212,
04184      213,     0,   214,   215,   216,   217,     0,     0,     0,     0,
04185        0,     0,     0,     0,   218,     0,     0,   219,     0,   220,
04186      221,   222,   223,     0,     0,     0,     0,     0,   224,     0,
04187        0,     0,     0,   225,     0,     0,     0,     0,     0,   226,
04188        0,     0,     0,   227,   228,   229,   230,   231,   232,   233,
04189        0,   234,   235,     0,     0,     0,   236,   237,   238,   239,
04190        0,     0,   240,     0,   241,   242,   243,     0,     0,     0,
04191        0,     0,     0,     0,     0,     0,     0,   244,   245,     0,
04192        0,   246,     0,     0,   247,   248,   249,     0,     0,   250,
04193        0,   251,   252,     0,     0,   253,     0,     0,   254,     0,
04194      255,   256,     0,   257,     0,     0,   258,     0,     0,   259,
04195      260,     0,   261,   262,     0,     0,     0,   263,     0,     0,
04196        0,     0,   264,     0,     0,     0,     0,     0,   265,     0,
04197      266,     0,     0,   267,     0,     0,     0,     0,   268,   269,
04198        0,     0,   125,   126,   270,   127,   128,     0,   271,     0,
04199        0,   129,     0,     0,     0,   130,   131,   132,     0,   133,
04200        0,     0,     0,     0,   134,     0,   135,   136,     0,   137,
04201        0,   283,     0,   138,     0,     0,     0,   139,     0,     0,
04202        0,   140,     0,   141,   142,     0,   143,   144,     0,   145,
04203      146,   147,   148,   149,   150,     0,   151,   152,     0,   153,
04204        0,     0,     0,     0,   154,     0,     0,     0,     0,   155,
04205      156,   157,     0,     0,   158,     0,     0,     0,     0,   159,
04206      160,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04207      161,   162,     0,     0,     0,   163,     0,   164,   165,   166,
04208        0,     0,   167,     0,   168,   169,     0,   170,   171,     0,
04209      172,     0,   173,   174,     0,     0,   175,     0,     0,   176,
04210      177,   178,     0,   179,     0,     0,     0,   180,   181,     0,
04211      182,     0,   183,     0,     0,   184,     0,     0,     0,     0,
04212        0,   185,    86,   186,     0,    88,     0,     0,   187,   188,
04213        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04214        0,     0,   189,     0,   190,     0,     0,   191,     0,     0,
04215      192,     0,     0,     0,   193,     0,     0,     0,     0,     0,
04216      194,   195,     0,   196,     0,     0,     0,     0,   197,   198,
04217      199,   200,     0,     0,   201,     0,   202,     0,   203,     0,
04218      204,   205,   206,   207,     0,     0,   208,   209,   210,     0,
04219        0,   211,     0,     0,     0,   212,   213,     0,   214,   215,
04220      216,   217,     0,     0,     0,     0,     0,     0,     0,     0,
04221      218,     0,     0,   219,     0,   220,   221,   222,   223,     0,
04222        0,     0,     0,     0,   224,     0,     0,     0,     0,   225,
04223        0,     0,     0,     0,     0,   226,     0,     0,     0,   227,
04224      228,   229,   230,   231,   232,   233,     0,   234,   235,     0,
04225        0,     0,   236,   237,   238,   239,     0,     0,   240,     0,
04226      241,   242,   243,     0,     0,     0,     0,     0,     0,     0,
04227        0,     0,     0,   244,   245,     0,     0,   246,     0,     0,
04228      247,   248,   249,     0,     0,   250,     0,   251,   252,     0,
04229        0,   253,     0,     0,   254,     0,   255,   256,     0,   257,
04230        0,     0,   258,     0,     0,   259,   260,     0,   261,   262,
04231        0,     0,     0,   263,     0,     0,     0,     0,   264,     0,
04232        0,     0,     0,     0,   265,     0,   266,     0,     0,   267,
04233        0,     0,     0,     0,   268,   269,     0,     0,   125,   126,
04234      270,   127,   128,     0,   271,     0,     0,   129,     0,     0,
04235        0,   130,   131,   132,     0,   133,     0,     0,     0,     0,
04236      134,     0,   135,   136,     0,   137,     0,   399,     0,   138,
04237        0,     0,     0,   139,     0,     0,     0,   140,     0,   141,
04238      142,     0,   143,   144,     0,   145,   146,   147,   148,   149,
04239      150,     0,   151,   152,     0,   153,     0,     0,     0,     0,
04240      154,     0,     0,     0,     0,   155,   156,   157,     0,     0,
04241      158,     0,     0,     0,     0,   159,   160,     0,     0,     0,
04242        0,     0,     0,     0,     0,     0,   161,   162,     0,     0,
04243        0,   163,     0,   164,   165,   166,     0,     0,   167,     0,
04244      168,   169,     0,   170,   171,     0,   172,     0,   173,   174,
04245        0,     0,   175,     0,     0,   176,   177,   178,     0,   179,
04246        0,     0,     0,   180,   181,     0,   182,     0,   183,     0,
04247        0,   184,     0,     0,     0,     0,     0,   185,    86,   186,
04248        0,    88,     0,     0,   187,   188,     0,     0,     0,     0,
04249        0,     0,     0,     0,     0,     0,     0,     0,   189,     0,
04250      190,     0,     0,   191,     0,     0,   192,     0,     0,     0,
04251      193,     0,     0,     0,     0,     0,   194,   195,     0,   196,
04252        0,     0,     0,     0,   197,   198,   199,   200,     0,     0,
04253      201,     0,   202,     0,   203,     0,   204,   205,   206,   207,
04254        0,     0,   208,   209,   210,     0,     0,   211,     0,     0,
04255        0,   212,   213,     0,   214,   215,   216,   217,     0,     0,
04256        0,     0,     0,     0,     0,     0,   218,     0,     0,   219,
04257        0,   220,   221,   222,   223,     0,     0,     0,     0,     0,
04258      224,     0,     0,     0,     0,   225,     0,     0,     0,     0,
04259        0,   226,     0,     0,     0,   227,   228,   229,   230,   231,
04260      232,   233,     0,   234,   235,     0,     0,     0,   236,   237,
04261      238,   239,     0,     0,   240,     0,   241,   242,   243,     0,
04262        0,     0,     0,     0,     0,     0,     0,     0,     0,   244,
04263      245,     0,     0,   246,     0,     0,   247,   248,   249,     0,
04264        0,   250,     0,   251,   252,     0,     0,   253,     0,     0,
04265      254,     0,   255,   256,     0,   257,     0,     0,   258,     0,
04266        0,   259,   260,     0,   261,   262,     0,     0,     0,   263,
04267        0,     0,     0,     0,   264,     0,     0,     0,     0,     0,
04268      265,     0,   266,     0,     0,   267,     0,     0,     0,     0,
04269      268,   269,     0,     0,   125,   126,   270,   127,   128,     0,
04270      271,     0,     0,   129,     0,     0,     0,   130,   131,   132,
04271        0,   133,     0,     0,     0,     0,   134,     0,   135,   136,
04272        0,   137,     0,  1325,     0,   138,     0,     0,     0,   139,
04273        0,     0,     0,   140,     0,   141,   142,     0,   143,   144,
04274        0,   145,   146,   147,   148,   149,   150,     0,   151,   152,
04275        0,   153,     0,     0,     0,     0,   154,     0,     0,     0,
04276        0,   155,   156,   157,     0,     0,   158,     0,     0,     0,
04277        0,   159,   160,     0,     0,     0,     0,     0,     0,     0,
04278        0,     0,   161,   162,     0,     0,     0,   163,     0,   164,
04279      165,   166,     0,     0,   167,     0,   168,   169,     0,   170,
04280      171,     0,   172,     0,   173,   174,     0,     0,   175,     0,
04281        0,   176,   177,   178,     0,   179,     0,     0,     0,   180,
04282      181,     0,   182,     0,   183,     0,     0,   184,     0,     0,
04283        0,     0,     0,   185,    86,   186,     0,    88,     0,     0,
04284      187,   188,     0,     0,     0,     0,     0,     0,     0,     0,
04285        0,     0,     0,     0,   189,     0,   190,     0,     0,   191,
04286        0,     0,   192,     0,     0,     0,   193,     0,     0,     0,
04287        0,     0,   194,   195,     0,   196,     0,     0,     0,     0,
04288      197,   198,   199,   200,     0,     0,   201,     0,   202,     0,
04289      203,     0,   204,   205,   206,   207,     0,     0,   208,   209,
04290      210,     0,     0,   211,     0,     0,     0,   212,   213,     0,
04291      214,   215,   216,   217,     0,     0,     0,     0,     0,     0,
04292        0,     0,   218,     0,     0,   219,     0,   220,   221,   222,
04293      223,     0,     0,     0,     0,     0,   224,     0,     0,     0,
04294        0,   225,     0,     0,     0,     0,     0,   226,     0,     0,
04295        0,   227,   228,   229,   230,   231,   232,   233,     0,   234,
04296      235,     0,     0,     0,   236,   237,   238,   239,     0,     0,
04297      240,     0,   241,   242,   243,     0,     0,     0,     0,     0,
04298        0,     0,     0,     0,     0,   244,   245,     0,     0,   246,
04299        0,     0,   247,   248,   249,     0,     0,   250,     0,   251,
04300      252,     0,     0,   253,     0,     0,   254,     0,   255,   256,
04301        0,   257,     0,     0,   258,     0,     0,   259,   260,     0,
04302      261,   262,     0,     0,     0,   263,     0,     0,     0,     0,
04303      264,     0,     0,     0,     0,     0,   265,     0,   266,     0,
04304        0,   267,     0,     0,     0,     0,   268,   269,     0,     0,
04305      125,   126,   270,   127,   128,     0,   271,     0,     0,   129,
04306        0,     0,     0,   130,   131,   132,     0,   133,  1262,     0,
04307        0,     0,   134,     0,   135,   136,     0,   137,     0,     0,
04308        0,   138,     0,     0,     0,   139,     0,     0,     0,   140,
04309        0,   141,   142,     0,   143,   144,     0,   145,   146,   147,
04310      148,   149,   150,     0,   151,   152,     0,   153,     0,     0,
04311        0,     0,   154,     0,     0,     0,     0,   155,   156,   157,
04312        0,     0,   158,     0,     0,     0,     0,   159,   160,     0,
04313        0,     0,     0,     0,     0,     0,     0,     0,   161,   162,
04314        0,     0,     0,   163,     0,   164,   165,   166,     0,     0,
04315      167,     0,   168,   169,     0,   170,   171,     0,   172,     0,
04316      173,   174,     0,     0,   175,     0,     0,   176,   177,   178,
04317        0,   179,     0,     0,     0,   180,   181,     0,   182,     0,
04318      183,     0,     0,   184,     0,     0,     0,     0,     0,   185,
04319       86,   186,     0,    88,     0,     0,   187,   188,     0,     0,
04320        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04321      189,     0,   190,     0,     0,   191,     0,     0,   192,     0,
04322        0,     0,   193,     0,     0,     0,     0,     0,   194,   195,
04323        0,   196,     0,     0,     0,     0,   197,   198,   199,   200,
04324        0,     0,   201,     0,   202,     0,   203,     0,   204,   205,
04325      206,   207,     0,     0,   208,   209,   210,     0,     0,   211,
04326        0,     0,     0,   212,   213,     0,   214,   215,   216,   217,
04327        0,     0,     0,     0,     0,     0,     0,     0,   218,     0,
04328        0,   219,     0,   220,   221,   222,   223,     0,     0,     0,
04329        0,     0,   224,     0,     0,     0,     0,   225,     0,     0,
04330        0,     0,     0,   226,     0,     0,     0,   227,   228,   229,
04331      230,   231,   232,   233,     0,   234,   235,     0,     0,     0,
04332      236,   237,   238,   239,     0,     0,   240,     0,   241,   242,
04333      243,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04334        0,   244,   245,     0,     0,   246,     0,     0,   247,   248,
04335      249,     0,     0,   250,     0,   251,   252,     0,     0,   253,
04336        0,     0,   254,     0,   255,   256,     0,   257,     0,     0,
04337      258,     0,     0,   259,   260,     0,   261,   262,     0,     0,
04338        0,   263,     0,     0,     0,     0,   264,     0,     0,     0,
04339        0,     0,   265,     0,   266,     0,     0,   267,     0,     0,
04340        0,     0,   268,   269,     0,     0,   125,   126,   270,   127,
04341      128,     0,   271,     0,     0,   129,     0,     0,     0,   130,
04342      131,   132,     0,   133,  1608,     0,     0,   671,   134,     0,
04343      135,   136,     0,   137,     0,     0,     0,   138,     0,     0,
04344        0,   139,     0,     0,     0,   140,     0,   141,   142,     0,
04345      143,   144,     0,   145,   146,   147,   148,   149,   150,     0,
04346      151,   152,     0,   153,     0,     0,     0,     0,   154,     0,
04347        0,     0,     0,   155,   156,   157,     0,     0,   158,     0,
04348        0,     0,     0,   159,   160,     0,     0,     0,     0,     0,
04349        0,     0,     0,     0,   161,   162,     0,     0,     0,   163,
04350        0,   164,   165,   166,     0,     0,   167,     0,   168,   169,
04351        0,   170,   171,     0,   172,     0,   173,   174,     0,     0,
04352      175,     0,     0,   176,   177,   178,     0,   179,     0,     0,
04353        0,   180,   181,     0,   182,     0,   183,     0,     0,   184,
04354        0,   672,     0,     0,     0,   185,    86,   186,     0,    88,
04355        0,     0,   187,   188,     0,     0,     0,     0,     0,     0,
04356        0,     0,     0,     0,     0,     0,   189,     0,   190,     0,
04357        0,   191,     0,     0,   192,     0,     0,     0,   193,     0,
04358        0,     0,     0,     0,   194,   195,     0,   196,     0,     0,
04359        0,     0,   197,   198,   199,   200,     0,     0,   201,     0,
04360      202,     0,   203,     0,   204,   205,   206,   207,     0,     0,
04361      208,   209,   210,     0,     0,   211,     0,     0,     0,   212,
04362      213,     0,   214,   215,   216,   217,     0,     0,     0,     0,
04363        0,     0,     0,     0,   218,     0,     0,   219,     0,   220,
04364      221,   222,   223,     0,     0,     0,     0,     0,   224,     0,
04365        0,     0,     0,   225,     0,     0,     0,     0,     0,   226,
04366        0,     0,     0,   227,   228,   229,   230,   231,   232,   233,
04367        0,   234,   235,     0,     0,     0,   236,   237,   238,   239,
04368        0,     0,   240,     0,   241,   242,   243,     0,     0,     0,
04369        0,     0,     0,     0,     0,     0,     0,   244,   245,     0,
04370        0,   246,     0,     0,   247,   248,   249,     0,     0,   250,
04371        0,   251,   252,     0,     0,   253,     0,   377,   254,     0,
04372      255,   256,     0,   257,     0,     0,   258,     0,     0,   259,
04373      260,     0,   261,   262,     0,     0,     0,   263,     0,     0,
04374        0,     0,   264,     0,     0,     0,     0,     0,   265,     0,
04375      266,     0,     0,   267,     0,     0,     0,     0,   268,   269,
04376        0,     0,   125,   126,   270,   127,   128,     0,   271,     0,
04377        0,   129,  1258,     0,     0,   130,   131,   132,     0,   133,
04378        0,     0,     0,     0,   134,     0,   135,   136,     0,   137,
04379        0,     0,     0,   138,     0,     0,     0,   139,     0,     0,
04380        0,   140,     0,   141,   142,     0,   143,   144,     0,   145,
04381      146,   147,   148,   149,   150,     0,   151,   152,     0,   153,
04382        0,     0,     0,     0,   154,     0,     0,     0,     0,   155,
04383      156,   157,     0,     0,   158,     0,     0,     0,     0,   159,
04384      160,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04385      161,   162,     0,     0,     0,   163,     0,   164,   165,   166,
04386        0,     0,   167,     0,   168,   169,     0,   170,   171,     0,
04387      172,     0,   173,   174,     0,     0,   175,     0,     0,   176,
04388      177,   178,     0,   179,     0,     0,     0,   180,   181,     0,
04389      182,     0,   183,     0,     0,   184,     0,     0,     0,     0,
04390        0,   185,    86,   186,     0,    88,     0,     0,   187,   188,
04391        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04392        0,     0,   189,     0,   190,     0,     0,   191,     0,     0,
04393      192,     0,     0,     0,   193,     0,     0,     0,     0,     0,
04394      194,   195,     0,   196,     0,     0,     0,     0,   197,   198,
04395      199,   200,     0,     0,   201,     0,   202,     0,   203,     0,
04396      204,   205,   206,   207,     0,     0,   208,   209,   210,     0,
04397        0,   211,     0,     0,     0,   212,   213,     0,   214,   215,
04398      216,   217,     0,     0,     0,     0,     0,     0,     0,     0,
04399      218,     0,     0,   219,     0,   220,   221,   222,   223,     0,
04400        0,     0,     0,     0,   224,     0,     0,     0,     0,   225,
04401        0,     0,     0,     0,     0,   226,     0,     0,     0,   227,
04402      228,   229,   230,   231,   232,   233,     0,   234,   235,     0,
04403        0,     0,   236,   237,   238,   239,     0,     0,   240,     0,
04404      241,   242,   243,     0,     0,     0,     0,     0,     0,     0,
04405        0,     0,     0,   244,   245,     0,     0,   246,     0,     0,
04406      247,   248,   249,     0,     0,   250,     0,   251,   252,     0,
04407        0,   253,     0,    91,   254,     0,   255,   256,     0,   257,
04408        0,     0,   258,     0,     0,   259,   260,     0,   261,   262,
04409        0,     0,     0,   263,     0,     0,     0,     0,   264,     0,
04410        0,     0,     0,     0,   265,     0,   266,     0,     0,   267,
04411        0,     0,     0,     0,   268,   269,     0,     0,   125,   126,
04412      270,   127,   128,     0,   271,     0,     0,   129,     0,     0,
04413        0,   130,   131,   132,     0,   133,     0,     0,     0,     0,
04414      134,     0,   135,   136,     0,   137,     0,     0,     0,   138,
04415        0,     0,     0,   139,     0,     0,     0,   140,     0,   141,
04416      142,     0,   143,   144,     0,   145,   146,   147,   148,   149,
04417      150,     0,   151,   152,     0,   153,     0,     0,     0,     0,
04418      154,     0,     0,     0,     0,   155,   156,   157,     0,     0,
04419      158,     0,     0,     0,     0,   159,   160,     0,     0,     0,
04420        0,     0,     0,     0,     0,     0,   161,   162,     0,     0,
04421        0,   163,     0,   164,   165,   166,     0,     0,   167,     0,
04422      168,   169,     0,   170,   171,     0,   172,     0,   173,   174,
04423        0,     0,   175,     0,     0,   176,   177,   178,     0,   179,
04424        0,     0,     0,   180,   181,     0,   182,     0,   183,     0,
04425        0,   184,     0,     0,     0,     0,     0,   185,    86,   186,
04426        0,    88,     0,     0,   187,   188,     0,     0,     0,     0,
04427        0,     0,     0,     0,     0,     0,     0,     0,   189,     0,
04428      190,     0,     0,   191,     0,     0,   192,     0,     0,     0,
04429      193,     0,     0,     0,     0,     0,   194,   195,     0,   196,
04430        0,     0,     0,     0,   197,   198,   199,   200,     0,     0,
04431      201,     0,   202,     0,   203,     0,   204,   205,   206,   207,
04432        0,     0,   208,   209,   210,     0,     0,   211,     0,     0,
04433        0,   212,   213,     0,   214,   215,   216,   217,     0,     0,
04434        0,     0,     0,     0,     0,     0,   218,     0,     0,   219,
04435        0,   220,   221,   222,   223,     0,     0,     0,     0,     0,
04436      224,     0,     0,     0,     0,   225,     0,     0,     0,     0,
04437        0,   226,     0,     0,     0,   227,   228,   229,   230,   231,
04438      232,   233,     0,   234,   235,     0,     0,     0,   236,   237,
04439      238,   239,     0,     0,   240,     0,   241,   242,   243,     0,
04440        0,     0,     0,     0,     0,     0,     0,     0,     0,   244,
04441      245,     0,     0,   246,     0,     0,   247,   248,   249,     0,
04442        0,   250,     0,   251,   252,     0,     0,   253,     0,    91,
04443      254,     0,   255,   256,     0,   257,     0,     0,   258,     0,
04444        0,   259,   260,     0,   261,   262,     0,     0,     0,   263,
04445        0,     0,     0,     0,   264,     0,     0,     0,     0,     0,
04446      265,     0,   266,     0,     0,   267,     0,     0,     0,     0,
04447      268,   269,     0,     0,   125,   126,   270,   127,   128,     0,
04448      271,     0,     0,   129,     0,     0,     0,   130,   131,   132,
04449        0,   133,     0,     0,     0,     0,   134,     0,   135,   136,
04450        0,   137,     0,     0,     0,   138,     0,     0,     0,   139,
04451        0,     0,     0,   140,     0,   141,   142,     0,   143,   144,
04452        0,   145,   146,   147,   148,   149,   150,     0,   151,   152,
04453        0,   153,     0,     0,     0,     0,   154,     0,     0,     0,
04454        0,   155,   156,   157,     0,     0,   158,     0,     0,     0,
04455        0,   159,   160,     0,     0,     0,     0,     0,     0,     0,
04456        0,     0,   161,   162,     0,     0,     0,   163,     0,   164,
04457      165,   166,     0,     0,   167,     0,   168,   169,     0,   170,
04458      171,     0,   172,     0,   173,   174,     0,     0,   175,     0,
04459        0,   176,   177,   178,     0,   179,     0,     0,     0,   180,
04460      181,     0,   182,     0,   183,     0,     0,   184,     0,     0,
04461        0,     0,     0,   185,    86,   186,     0,    88,     0,     0,
04462      187,   188,     0,     0,     0,     0,     0,     0,     0,     0,
04463        0,     0,     0,     0,   189,     0,   190,     0,     0,   191,
04464        0,     0,   192,     0,     0,     0,   193,     0,     0,     0,
04465        0,     0,   194,   195,     0,   196,     0,     0,     0,     0,
04466      197,   198,   199,   200,     0,     0,   201,     0,   202,     0,
04467      203,     0,   204,   205,   206,   207,     0,     0,   208,   209,
04468      210,     0,     0,   211,     0,     0,     0,   212,   213,     0,
04469      214,   215,   216,   217,     0,     0,     0,     0,     0,     0,
04470        0,     0,   218,     0,     0,   219,  2091,   220,   221,   222,
04471      223,     0,     0,     0,     0,     0,   224,     0,     0,     0,
04472        0,   225,     0,     0,     0,     0,     0,   226,     0,     0,
04473        0,   227,   228,   229,   230,   231,   232,   233,     0,   234,
04474      235,     0,     0,     0,   236,   237,   238,   239,     0,     0,
04475      240,     0,   241,   242,   243,     0,     0,     0,     0,     0,
04476        0,     0,     0,     0,     0,   244,   245,     0,     0,   246,
04477        0,     0,   247,   248,   249,     0,     0,   250,     0,   251,
04478      252,     0,     0,   253,     0,     0,   254,     0,   255,   256,
04479        0,   257,     0,     0,   258,     0,     0,   259,   260,     0,
04480      261,   262,     0,     0,     0,   263,     0,     0,     0,     0,
04481      264,     0,     0,     0,     0,     0,   265,     0,   266,     0,
04482        0,   267,     0,     0,     0,     0,   268,   269,     0,     0,
04483      125,   126,   270,   127,   128,     0,   271,     0,     0,   129,
04484        0,     0,     0,   130,   131,   132,     0,   133,     0,     0,
04485        0,     0,   134,     0,   135,   136,     0,   137,     0,     0,
04486        0,   138,     0,     0,     0,   139,     0,     0,     0,   140,
04487        0,   141,   142,     0,   143,   144,     0,   145,   146,   147,
04488      148,   149,   150,     0,   151,   152,     0,   153,     0,     0,
04489        0,     0,   154,     0,     0,     0,     0,   155,   156,   157,
04490        0,     0,   158,     0,     0,     0,     0,   159,   160,     0,
04491        0,     0,     0,     0,     0,     0,     0,     0,   161,   162,
04492        0,     0,     0,   163,     0,   164,   165,   166,     0,     0,
04493      167,     0,   168,   169,     0,   170,   171,     0,   172,     0,
04494      173,   174,     0,     0,   175,     0,     0,   176,   177,   178,
04495        0,   179,     0,     0,     0,   180,   181,     0,   182,     0,
04496      183,     0,     0,   184,     0,     0,     0,     0,     0,   185,
04497       86,   186,     0,    88,     0,     0,   187,   188,     0,     0,
04498        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04499      189,     0,   190,     0,     0,   191,     0,     0,   192,     0,
04500        0,     0,   193,     0,     0,     0,     0,     0,   194,   195,
04501        0,   196,     0,     0,     0,     0,   197,   198,   199,   200,
04502        0,     0,   201,     0,   202,     0,   203,     0,   204,   205,
04503      206,   207,     0,     0,   208,   209,   210,     0,     0,   211,
04504        0,     0,     0,   212,   213,     0,   214,   215,   216,   217,
04505        0,     0,     0,     0,     0,     0,     0,     0,   218,     0,
04506        0,   219,     0,   220,   221,   222,   223,     0,     0,     0,
04507        0,     0,   224,     0,     0,     0,     0,   225,     0,     0,
04508        0,     0,     0,   226,     0,     0,     0,   227,   228,   229,
04509      230,   231,   232,   233,     0,   234,   235,     0,     0,     0,
04510      236,   237,   238,   239,     0,     0,   240,     0,   241,   242,
04511      243,     0,     0,     0,     0,     0,     0,     0,     0,     0,
04512        0,   244,   245,     0,     0,   246,     0,     0,   247,   248,
04513      249,     0,     0,   250,     0,   251,   252,     0,     0,   253,
04514        0,     0,   254,     0,   255,   256,     0,   257,     0,     0,
04515      258,     0,     0,   259,   260,     0,   261,   262,     0,     0,
04516        0,   263,     0,     0,     0,     0,   264,     0,     0,     0,
04517        0,     0,   265,     0,   266,     0,     0,   267,     0,     0,
04518        0,     0,   268,   269,     0,     0,     0,     0,   270,     0,
04519        0,     0,   271
04520 };
04521 
04522 static const yytype_int16 yycheck[] =
04523 {
04524       12,   331,   430,    93,  1067,   616,   412,   335,   536,    21,
04525       12,  1058,  1230,   919,    51,   513,   514,    29,   320,  1088,
04526      590,  1090,  1095,  1005,   876,  1001,   858,  1051,   598,   109,
04527      107,   361,   527,   669,  1199,  1503,   529,   459,  1416,    51,
04528      654,   121,  1437,   657,   448,    12,   376,   661,   662,  1553,
04529      907,    63,   380,  1129,    12,   459,   386,   387,   849,    47,
04530       12,  1226,    74,  1039,    47,    12,    12,    12,    12,    81,
04531      476,    12,    12,    52,  1291,   686,  1646,    51,   573,    86,
04532      103,    93,  1652,    12,    14,    12,    70,   124,  1658,  1659,
04533       88,    93,   394,   395,   396,   107,  1657,   109,    68,    12,
04534       12,    87,    12,   478,  1298,   292,   118,  1733,    12,   121,
04535       12,    12,   124,   112,   120,    68,   118,   108,    12,   525,
04536       39,  1249,    44,  1574,   299,   120,   114,    58,    12,  1045,
04537       12,    12,  1447,  1132,    34,   120,   869,    12,  1441,   132,
04538       31,   234,   178,    12,   867,    12,  1449,  1487,  1732,   271,
04539       12,    12,    14,    29,   179,  1730,   278,     7,   144,  1743,
04540      566,   147,    86,   315,    12,    12,  1229,    99,    12,   664,
04541      180,   279,   315,     9,   128,    51,  1937,    12,    12,   131,
04542      296,   282,    12,    66,   131,   213,    12,    63,  1648,  1295,
04543     1356,   362,   333,   149,  1654,   169,   131,    12,    74,    12,
04544      444,  1656,   227,   243,  1267,    81,     6,   179,   214,    98,
04545       10,   251,   149,   227,  1432,    12,   460,    12,   101,    20,
04546      144,   249,   186,   147,  1330,   347,   348,   162,   144,   294,
04547      184,   147,   384,   109,   274,   351,   337,   317,   267,   232,
04548     1616,   384,   324,  2004,   385,   121,   137,    86,   124,   314,
04549     1107,   215,  1321,  1322,   264,   227,  1831,  1832,    94,  1727,
04550      368,   228,   384,    12,   301,   669,  1850,  1484,   254,    70,
04551      228,   283,   122,  1668,  1589,  1590,   228,  1494,   290,   893,
04552      292,   228,    25,   228,   228,  1625,   298,   228,   228,   301,
04553      283,   384,   304,   305,   213,  1127,   131,   253,   230,   228,
04554      602,   228,   913,   914,  1764,   317,  1073,  1074,   333,   240,
04555      497,   686,  1440,   213,  1940,   617,   228,   504,   228,  1235,
04556      326,    12,  1516,   359,   228,   247,   228,   228,   312,   315,
04557     1798,   326,   825,   128,   228,   358,  1712,  1060,   345,    12,
04558      338,   326,   333,   423,   228,   315,   228,   228,    12,    12,
04559       12,   330,  1820,   228,    12,    12,   256,   356,  1357,   228,
04560     1578,   228,   315,   858,    12,   329,   228,   228,   342,  1275,
04561     1874,  1537,    12,    12,   388,   214,   322,    12,   278,    12,
04562      228,   228,    12,   371,   228,   422,   398,   399,   371,   278,
04563       12,   315,   322,   228,   228,  1965,   139,   364,   228,   315,
04564     1232,  1704,   228,  1964,  1621,  1708,   364,   283,    12,  1482,
04565      422,   423,   364,   228,   290,   228,   292,   364,   385,   364,
04566      364,   388,   298,   364,   364,   301,    12,   385,   304,   305,
04567      388,   228,  1223,   228,    12,   364,   388,   364,   385,   937,
04568      385,   317,   479,   388,   385,   385,    12,   388,   388,  1019,
04569      948,   364,   364,   490,   364,  1531,  1070,  1533,   385,   388,
04570      364,   388,   364,   364,   476,   477,  1323,   479,    12,    12,
04571      364,   646,   970,   385,  1085,  1926,   388,   387,   490,   228,
04572      364,   903,   364,   364,   388,   497,   388,   388,  1221,   364,
04573     1994,  1995,   504,  1997,   388,   364,   586,   364,  1893,   903,
04574     1028,  1029,   364,   364,   388,   225,   388,   388,  2012,  1977,
04575     1121,  1966,  1123,   388,  1125,   527,   364,   364,   385,   388,
04576      364,  1989,   398,   399,  1356,  1018,  1904,   388,   830,   364,
04577      364,  1167,  1025,  2037,   364,  2039,  2040,   228,   364,  1915,
04578      388,   388,    12,    14,   388,  1040,   422,   423,    12,   364,
04579     1613,   364,   629,  1718,   388,   228,  2011,    14,   388,    22,
04580       12,   573,   388,    72,   228,   228,   228,   364,    12,   364,
04581      228,   228,   315,   388,   586,   388,    12,    12,   136,    12,
04582      228,   218,  1077,  1654,   586,    12,    12,    12,   228,   228,
04583      385,   388,   149,   228,    65,   228,  1363,   271,   228,   312,
04584      476,   477,   682,   479,   616,     9,   228,   644,   620,   167,
04585      647,   126,    12,    12,   490,   364,    12,   629,    12,  1471,
04586       12,   497,   659,  1051,   228,  1601,   271,    12,   504,    12,
04587     1448,    12,   644,  1743,   149,   647,   385,   108,   131,   656,
04588       12,   152,   228,   655,    12,  1215,   648,   659,  1672,   108,
04589      228,   108,   664,   690,  1701,     0,    15,   128,     9,   170,
04590      167,   271,   228,    12,   206,   136,    44,   138,   175,   227,
04591      682,   312,   126,   364,   686,  1581,   688,   219,   690,   144,
04592        9,   146,   147,   154,   228,   228,   179,  1298,   159,  2009,
04593       94,   364,   149,  1764,   385,   149,   167,  1308,   271,   162,
04594      364,   364,   364,    12,   175,  1537,   364,   364,   179,   271,
04595      384,   271,   385,   184,  1212,   178,   364,  1699,   134,   148,
04596     1022,   385,   385,   385,   364,   364,    44,   385,   385,   364,
04597       89,   364,   913,   914,   364,   206,   131,   385,   271,   384,
04598     1850,  1236,   364,    94,   620,   385,   385,   148,   219,   127,
04599      385,   388,   385,   260,   271,   385,   227,   360,   228,   131,
04600      364,   637,  1980,   385,   228,    94,  2086,  2087,   644,   185,
04601     1588,   647,    65,   317,   384,  1822,   228,   309,   364,   655,
04602      312,   385,   131,   659,   228,   248,   364,     9,  1118,   260,
04603        9,    95,   228,   228,   806,   228,   253,   360,   364,   385,
04604      342,   228,   228,   228,     9,    18,   682,   385,  1714,   127,
04605      377,   384,   688,   386,   690,   852,   853,  1312,   385,   385,
04606      364,   364,   384,    29,   384,   290,   341,   377,   228,   228,
04607      301,   152,   228,   271,   228,   385,   228,  1900,  1366,   385,
04608      852,   853,   385,   228,   134,   228,   858,   228,    25,  1922,
04609     1923,   384,    12,  1381,  1382,   320,   228,    63,   236,   324,
04610      228,   154,   333,   880,   876,    10,    11,   384,   389,  1397,
04611      882,   342,    94,    86,   167,    94,    21,    70,   895,   228,
04612      296,  1076,   175,  1078,   361,   389,  1704,   341,   359,    94,
04613     1708,  1389,   182,   309,   364,   907,   312,   201,   312,    44,
04614      364,   913,   914,  1972,   916,  1516,    83,   909,    53,   347,
04615      348,   388,   364,   206,   385,   385,   387,   388,   236,    64,
04616      364,   385,  1012,   211,   144,  1423,   120,   147,   364,   364,
04617      806,   364,   317,   385,   213,    95,  1431,   364,   364,   364,
04618     1121,   385,  1123,    88,    89,    90,   384,   124,    50,   385,
04619      385,   385,   385,    98,   388,   334,   334,   170,   385,   385,
04620      385,    87,   139,   108,   364,   364,    56,   260,   364,  1299,
04621      364,   116,   364,  2026,   117,  2028,   852,   853,  1068,   364,
04622      125,   364,   858,   364,   296,   385,   385,   277,   378,   385,
04623      360,   385,   364,   385,  1812,  1813,   364,   388,   211,  1665,
04624     1012,   214,   385,   389,   385,   134,   882,    87,   301,   186,
04625     1012,   385,   157,  2060,   388,   364,   334,   385,   144,   105,
04626      214,   147,  1034,   236,   217,   127,   171,   113,  1040,   222,
04627      385,   315,   385,   388,  1285,   388,   181,   214,   215,    83,
04628     1291,   201,    47,  1294,   385,  1296,    38,   388,  1243,  1061,
04629      152,  1063,   120,   182,  1305,  1306,  1068,   384,    83,  1061,
04630     1311,    38,   275,    56,   144,  1077,  1068,   147,   170,   385,
04631     1644,  1645,   388,  1085,   378,   379,   380,   381,    70,   384,
04632      124,    86,  1656,  1657,   289,   290,   291,   292,   384,  1126,
04633     1092,   220,   298,    70,   387,  1107,   301,  1763,   304,   124,
04634     1692,  1693,  1114,  1769,   249,   250,  1772,   385,   253,  1121,
04635      388,  1123,   384,  1125,  1126,  1127,   261,  1129,  2024,   384,
04636     1132,   334,   267,    41,    42,   384,   271,   131,   254,    47,
04637      384,  1742,   326,   278,   236,   384,   281,  1632,   315,   384,
04638      226,   335,   186,   211,   563,   564,   214,  1553,   277,   384,
04639      295,   385,   329,   384,   388,   159,  1644,  1645,  1034,   385,
04640      385,   186,   388,   388,  1466,   170,  1740,  1741,  1656,  1657,
04641      384,   215,   384,    86,   254,   152,   384,  1647,  1752,  1755,
04642     1650,   385,   327,  1653,   388,  1061,  1760,  1063,  1762,   315,
04643      215,   336,   384,   338,    12,   385,   341,  1771,   388,   376,
04644      377,   333,   385,  1777,  1778,   388,   211,   267,  1784,   214,
04645       47,  1248,   372,   373,   374,   375,   376,   377,   378,   379,
04646      380,   381,   384,   227,  1236,   217,  1454,  1455,   314,  1241,
04647      222,   236,   384,  1484,   385,   315,  1248,   388,  1114,   384,
04648      217,   179,   384,  1494,  1672,   222,  1258,    18,   384,    86,
04649     1126,  1127,  1740,  1741,   384,   309,  1258,   170,   326,   384,
04650     1836,  1837,   388,   384,  1752,   384,   144,   335,   146,   147,
04651       41,    42,  1760,  1285,  1762,   384,    47,    95,  1315,  1291,
04652       51,   384,  1294,  1771,  1296,   329,  1298,   296,   385,  1777,
04653     1778,   388,   384,  1305,  1306,  1297,  1308,    86,   211,  1311,
04654     1312,   214,   384,  1315,   329,  1800,   219,  1309,   388,  1885,
04655     1886,  1323,  1324,  1325,   384,    86,    87,    47,  1330,   385,
04656      312,   313,   388,   236,  1361,     2,    24,     4,  1330,   334,
04657       28,   384,  1087,   170,  1089,    18,   313,   384,   109,   385,
04658     1095,    18,   388,   384,    42,  1357,  1101,   384,   353,  1361,
04659      121,   385,   385,   384,   388,   388,    86,    87,    41,    42,
04660     1236,   384,   384,    18,    47,  1241,   385,   384,    51,   388,
04661     1621,   384,  1248,   144,   211,    73,   147,   214,    76,   384,
04662      296,   170,  1258,   201,   385,   385,    84,   388,   388,   384,
04663     1964,   385,  1966,   384,   388,   384,    51,   384,   384,   236,
04664      384,   384,   384,    86,    87,  1417,   384,   178,    85,  1285,
04665      384,   384,   290,  1425,   144,  1291,   384,   147,  1294,  1431,
04666     1296,   334,   211,  1425,   384,   214,   109,  1755,   384,  1305,
04667     1306,    86,    87,   384,   384,  1311,   384,  2011,   121,  1315,
04668     2014,   384,   320,   384,   384,   122,    59,   236,  1324,  1325,
04669      278,  1463,   385,   108,   109,    86,  1784,   388,   249,  1471,
04670     1866,   144,   160,    39,   147,   117,   121,   152,  1874,   219,
04671      258,   384,  1484,    54,    55,   355,  1964,   111,  1966,   243,
04672      385,  1887,  1494,   254,  1979,  1361,   358,  1524,   385,   144,
04673      385,    95,   147,    94,   265,    44,   385,   334,   384,   133,
04674        9,    50,    14,   385,  1516,    86,  1834,  1835,   385,  1521,
04675      385,    60,  1524,   389,  1604,   384,  1528,   153,   388,  1531,
04676      101,  1533,  1534,  2011,   254,   322,  2014,   388,   388,   163,
04677      378,   315,   284,  1863,  1862,   359,    47,  1865,   184,   173,
04678      385,  1417,   123,    86,   315,   334,   385,   378,   131,  1425,
04679     1956,   385,  1958,    65,   372,   373,   374,   375,   376,   377,
04680      378,   379,   380,   381,   385,   377,   385,   333,   385,   385,
04681      385,   254,   385,   207,   388,   385,   385,   388,   127,   385,
04682      279,    12,   265,   384,   282,   315,  1598,  1463,  1994,  1995,
04683      384,  1997,  1604,    76,  2089,   381,   108,   201,    47,   254,
04684       83,   384,  1604,   152,   381,   385,  2012,    22,  1484,  1621,
04685      265,   389,  2107,   384,   126,   315,   128,  1629,  1494,  2114,
04686     1632,   170,   384,   321,   136,    83,   138,   170,   389,  1959,
04687      390,  2037,   315,  2039,  2040,   388,   385,   149,    32,   337,
04688      368,   124,   154,   368,   368,  1521,   219,   159,  1524,   227,
04689      385,   106,  1528,   385,   158,   167,   158,   388,  1534,   517,
04690      315,  1673,   385,   175,   385,   246,   124,   179,   211,   385,
04691      385,   214,   184,   159,   388,    12,   219,   389,   389,   389,
04692       95,   139,   540,   385,   385,   543,   131,   236,   385,   164,
04693       50,   168,   104,   236,   206,    95,   322,   168,   556,   557,
04694       25,   310,   560,   186,   368,   388,   144,   219,   146,   147,
04695      368,   310,    32,   388,   368,   227,   574,   575,  1730,   368,
04696      368,   342,  1598,   144,  1736,   146,   147,   219,   186,   212,
04697     1742,   214,   215,   388,   368,   369,   370,   179,    86,   177,
04698       77,    78,    79,    80,    81,  1621,   100,   162,   260,   384,
04699      160,    76,   384,  1629,   160,   385,   177,   215,    83,   388,
04700      385,   385,   162,   178,   271,   385,   389,   385,  1805,   373,
04701      374,   375,   376,   377,   378,   379,   380,   381,  1780,   338,
04702     1792,   388,   388,   162,   389,   334,   201,   176,  1800,   301,
04703      170,   334,   170,  1805,   278,   120,   211,  1673,   389,   124,
04704       95,   201,    14,   140,   141,   142,   143,    14,   385,   273,
04705      385,   215,    18,   215,   139,   385,   159,   385,    18,  1831,
04706     1832,   333,   170,   388,   229,   167,   167,   136,   390,   341,
04707      342,   388,   315,   248,   280,    41,    42,   320,   170,   170,
04708      388,    47,   384,   170,   702,    51,   329,   359,   385,   385,
04709      385,    51,   290,   385,  1730,   167,   193,   194,   195,   196,
04710     1736,   186,   167,   211,   219,   202,   214,    32,   138,   290,
04711      388,   329,   198,   385,   243,   387,   388,   315,   384,   384,
04712       86,    87,   320,  1895,    86,    86,    86,    87,   236,   214,
04713      215,   228,    51,   384,   315,   384,   384,   384,   338,   320,
04714      758,  1913,   239,   109,   762,   385,   201,   389,   108,   109,
04715      322,   215,   167,   312,   167,   121,  1792,    49,   384,   384,
04716      778,   121,   188,   215,   214,   170,   170,   338,   215,  1805,
04717     1942,   268,   269,   384,   215,   215,   215,   349,   144,    86,
04718      384,   147,   385,   384,   144,   342,   342,   147,   360,   180,
04719      219,   385,   390,   367,   212,  1831,  1832,   372,   373,   374,
04720      375,   376,   377,   378,   379,   380,   381,  1979,   385,  1971,
04721      388,   348,   372,   373,   374,   375,   376,   377,   378,   379,
04722      380,   381,   385,   215,   385,   397,   334,    32,    23,   342,
04723      315,   342,    27,    28,    32,   320,    32,   105,   385,   384,
04724      384,   326,   128,    32,   329,    32,    32,    42,   247,     4,
04725      219,   219,   149,  2103,  2026,    32,  2028,    32,  2030,  1895,
04726      357,   384,   384,   144,   338,   146,   147,   364,   365,   366,
04727       88,   215,   384,  1669,  1127,   278,   385,  1913,    73,    95,
04728     1107,    76,   388,   686,  1324,  1534,  1086,  1289,   254,    84,
04729     1114,   376,   377,  1327,   254,    95,   177,  1629,  1770,   265,
04730     1631,    96,  1150,  1651,  1876,   265,  1942,  1752,  1789,  1734,
04731     1760,  1742,  2084,  2085,  1133,   110,  1974,  2089,  2003,   374,
04732      375,   376,   377,   378,   379,   380,   381,  1895,   123,   852,
04733     1323,  2103,   475,  1052,   506,  2107,   278,  1003,  2110,   511,
04734      277,  2103,  2114,   515,   516,   439,  1425,   866,  1223,   315,
04735      522,   523,   524,   936,   526,   315,   528,  1451,  1702,    83,
04736      532,   533,   534,   535,  2085,   160,  1991,   539,  1002,   541,
04737      542,   166,   544,   545,  1925,   547,   564,  2110,   550,   551,
04738      552,   553,   554,   555,  1700,   201,   558,   559,  1632,   561,
04739     2026,    18,  2028,   565,  2030,   567,   568,  1721,     6,   517,
04740      124,   201,    10,  1026,   576,   577,  1473,     6,   306,   290,
04741       18,    10,   584,    49,  1057,   587,   588,   589,   945,    18,
04742      144,   216,   317,   147,    51,   423,   699,    63,    64,   857,
04743     1431,  1979,    40,  1231,   315,    71,  1077,   503,  2107,   320,
04744      351,    40,  1981,    51,  1931,  2023,  2114,  2001,  2084,  2085,
04745      245,   637,    51,   144,    62,   146,   147,    81,  1236,    86,
04746       87,   871,   186,    62,  1330,   637,  1726,  1266,  1471,   110,
04747      429,    -1,    -1,    -1,  2110,    -1,   112,   649,    86,    87,
04748      275,    -1,   109,    -1,    92,    93,   177,    86,    87,    -1,
04749       98,   215,    -1,    92,   121,    -1,   104,    -1,   134,    98,
04750      108,   109,    -1,    -1,    -1,   104,    -1,    -1,   144,   390,
04751      109,   147,    -1,   121,    -1,   151,   152,   144,   126,    -1,
04752      147,   316,   121,    -1,    -1,   320,   321,   126,    -1,    -1,
04753       -1,    -1,   168,   705,    -1,    -1,   144,    65,    -1,   147,
04754       -1,    -1,   150,    -1,    -1,   144,   182,    81,   147,    -1,
04755       -1,   346,    -1,    -1,   349,   350,   372,   373,   374,   375,
04756      376,   377,   378,   379,   380,   381,    -1,    77,    78,    79,
04757       80,    81,   372,   373,   374,   375,   376,   377,   378,   379,
04758      380,   381,    -1,    -1,   756,    -1,    -1,    -1,    -1,    -1,
04759       -1,   315,   200,    -1,    -1,    -1,   130,    -1,    -1,   290,
04760       -1,   200,   238,    -1,    -1,   329,    -1,    -1,    -1,   143,
04761       -1,    -1,    65,    -1,   786,   787,   788,    -1,    -1,   227,
04762       -1,    -1,    -1,    65,   315,    -1,   154,   254,   227,   320,
04763      140,   141,   142,   143,    -1,    -1,    -1,    -1,   265,   167,
04764       -1,   277,   250,    -1,    -1,    -1,   254,   175,    -1,    -1,
04765       -1,   250,    -1,   825,    -1,   254,    -1,   265,    -1,   193,
04766       -1,    -1,   196,    -1,    -1,   837,   265,   839,   202,    -1,
04767       -1,    -1,    -1,   309,    -1,    -1,   312,   313,   206,   315,
04768      549,    -1,    -1,   193,   194,   195,   196,    -1,   315,    -1,
04769       -1,   219,   202,    -1,    -1,    -1,    -1,    -1,    -1,   390,
04770       -1,   154,    -1,    -1,    -1,   239,    -1,   315,    -1,    -1,
04771       -1,    -1,   154,    -1,   167,    -1,   315,    -1,    -1,    -1,
04772      356,    -1,   175,    -1,    -1,   167,    -1,    -1,    -1,   239,
04773      599,   600,   260,   175,   603,   269,   605,   606,   607,   608,
04774      609,   610,   611,   612,   613,   614,   615,    -1,    -1,    -1,
04775       -1,   923,    -1,   206,   926,    -1,   928,   929,   268,   269,
04776       -1,   933,    -1,    -1,   206,    -1,   219,    -1,    -1,    -1,
04777       -1,    -1,    -1,   301,    -1,   947,    -1,    -1,   950,   951,
04778      952,   953,    -1,   955,    -1,    -1,    -1,    -1,    -1,    -1,
04779      962,    -1,    -1,   965,    -1,   967,   968,   969,    -1,    -1,
04780       -1,    -1,   974,   975,   976,    -1,    -1,   260,   980,   981,
04781       -1,   983,    -1,   985,    -1,   987,    -1,   989,   260,   991,
04782       -1,    -1,    -1,   357,   996,    -1,    -1,    -1,    -1,    -1,
04783       -1,    -1,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04784       -1,  1013,    -1,    -1,    -1,    -1,    -1,   357,   301,    -1,
04785       -1,    -1,    -1,  1025,    -1,   365,   366,    -1,  1030,   301,
04786       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04787       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04788       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04789       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04790       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1081,
04791       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04792       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04793       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04794       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04795       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   828,
04796       -1,    -1,   831,  1135,    -1,    -1,    -1,    -1,  1140,    -1,
04797       -1,    -1,  1144,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04798       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04799       -1,  1163,  1164,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04800       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04801     1182,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1190,    -1,
04802     1192,    -1,  1194,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04803       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04804       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04805       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1230,    -1,
04806       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04807       -1,    -1,    -1,    -1,    -1,    -1,    -1,     4,     5,    -1,
04808        7,     8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,
04809       17,    18,    19,  1265,    21,    -1,    -1,    -1,    -1,    26,
04810       -1,    28,    29,    -1,    31,    -1,    -1,  1279,    35,    -1,
04811       -1,    -1,    39,    -1,    -1,    -1,    43,    -1,    45,    46,
04812       -1,    48,    49,    -1,    51,    52,    53,    54,    55,    56,
04813       -1,    58,    59,    -1,    61,    -1,    -1,    -1,    -1,    66,
04814       -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,    76,
04815       -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,
04816       -1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    -1,
04817       97,    -1,    99,   100,   101,    -1,    -1,   104,    -1,   106,
04818      107,    -1,   109,   110,    -1,   112,    -1,   114,   115,    -1,
04819       -1,   118,    -1,    -1,   121,   122,   123,  1369,   125,    -1,
04820       -1,    -1,   129,   130,    -1,   132,    -1,   134,    -1,    -1,
04821      137,    -1,    -1,    -1,  1386,  1387,   143,   144,   145,    -1,
04822      147,    -1,  1394,   150,   151,    -1,    -1,  1399,    -1,    -1,
04823     1402,  1403,  1404,    -1,    -1,    -1,    -1,   164,    -1,   166,
04824       -1,    -1,   169,    -1,    -1,   172,    -1,    -1,    -1,   176,
04825       -1,    -1,    -1,    -1,    -1,   182,   183,    -1,   185,    -1,
04826     1432,    -1,    -1,   190,   191,   192,   193,    -1,    -1,   196,
04827       -1,   198,    -1,   200,    -1,   202,   203,   204,   205,    -1,
04828       -1,   208,   209,   210,    -1,    -1,   213,    -1,    -1,    -1,
04829      217,   218,    -1,   220,   221,   222,   223,    -1,    -1,    -1,
04830     1472,    -1,    -1,    -1,    -1,   232,    -1,  1479,   235,    -1,
04831      237,   238,   239,   240,    -1,    -1,    -1,    -1,    -1,   246,
04832       -1,    -1,    -1,    -1,   251,    -1,    -1,    -1,    -1,    -1,
04833      257,    -1,    -1,    -1,   261,   262,   263,   264,   265,   266,
04834      267,    -1,   269,   270,    -1,    -1,    -1,   274,   275,   276,
04835      277,    -1,    -1,   280,    -1,   282,   283,   284,    -1,    -1,
04836       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,   296,
04837       -1,    -1,   299,    -1,    -1,   302,   303,   304,    -1,    -1,
04838      307,    -1,   309,   310,    -1,    -1,   313,    -1,    -1,   316,
04839       -1,   318,   319,    -1,   321,    -1,    -1,   324,    -1,    -1,
04840      327,   328,    -1,   330,   331,    -1,  1578,    -1,   335,    -1,
04841       -1,    -1,    -1,   340,    -1,    -1,    -1,    -1,    -1,   346,
04842       -1,   348,    -1,    -1,   351,    -1,    -1,    -1,    -1,   356,
04843      357,    -1,    -1,    -1,    -1,   362,    -1,    -1,    -1,   366,
04844       -1,    -1,    -1,    -1,  1616,    -1,    -1,    -1,    -1,    -1,
04845       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   385,    -1,
04846       -1,    -1,   389,   390,    -1,    -1,    -1,    -1,    -1,    -1,
04847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04848       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04849       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04850       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04851       -1,    -1,  1684,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04852       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04853       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04854     1712,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04855       -1,    -1,    -1,    -1,  1726,    -1,    -1,    -1,    -1,    -1,
04856       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04857       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04858       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04859       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04860       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04861       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04862       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04863       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04864       -1,    -1,    -1,    -1,  1816,  1817,    -1,    -1,    -1,  1821,
04865       -1,    -1,     4,     5,    -1,     7,     8,    -1,    -1,    -1,
04866       -1,    13,    -1,    -1,    -1,    17,    18,    19,    -1,    21,
04867       -1,    -1,    24,    25,    26,    -1,    28,    29,    30,    31,
04868       -1,    -1,    -1,    35,    36,    37,    38,    39,    -1,    -1,
04869       42,    43,    -1,    45,    46,    -1,    48,    49,    -1,    51,
04870       52,    53,    54,    55,    56,    -1,    58,    59,    -1,    61,
04871       62,    63,    -1,    -1,    66,    67,    68,    -1,    70,    71,
04872       72,    73,    74,    75,    76,    -1,    -1,    -1,    -1,    81,
04873       82,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,
04874       92,    93,    -1,  1915,    -1,    97,    -1,    99,   100,   101,
04875       -1,    -1,   104,    -1,   106,   107,    -1,   109,   110,    -1,
04876      112,    -1,   114,   115,   116,   117,   118,   119,   120,   121,
04877      122,   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,
04878      132,    -1,   134,   135,    -1,   137,    -1,   139,    -1,    -1,
04879       -1,   143,   144,   145,    -1,   147,   148,    -1,   150,   151,
04880       -1,    -1,    -1,    -1,    -1,   157,   158,    -1,  1980,    -1,
04881       -1,  1983,   164,  1985,   166,    -1,    -1,   169,    -1,   171,
04882      172,    -1,   174,   175,   176,    -1,    -1,    -1,    -1,    -1,
04883      182,   183,    -1,   185,   186,    -1,    -1,   189,   190,   191,
04884      192,   193,    -1,    -1,   196,   197,   198,    -1,   200,   201,
04885      202,   203,   204,   205,    -1,    -1,   208,   209,   210,   211,
04886      212,   213,   214,   215,    -1,   217,   218,    -1,   220,   221,
04887      222,   223,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04888      232,   233,    -1,   235,    -1,   237,   238,   239,   240,    -1,
04889       -1,    -1,    -1,    -1,   246,    -1,    -1,    -1,    -1,   251,
04890      252,   253,    -1,    -1,    -1,   257,    -1,    -1,   260,   261,
04891      262,   263,   264,   265,   266,   267,    -1,   269,   270,    -1,
04892       -1,    -1,   274,   275,   276,   277,    -1,    -1,   280,    -1,
04893      282,   283,   284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04894       -1,    -1,    -1,   295,   296,   297,   298,   299,    -1,    -1,
04895      302,   303,   304,   305,   306,   307,   308,   309,   310,    -1,
04896       -1,   313,    -1,   315,   316,    -1,   318,   319,   320,   321,
04897       -1,   323,   324,   325,   326,   327,   328,   329,   330,   331,
04898       -1,    -1,    -1,   335,    -1,    -1,    -1,    -1,   340,    -1,
04899       -1,   343,   344,    -1,   346,   347,   348,    -1,    -1,   351,
04900      352,    -1,   354,   355,   356,   357,    -1,    -1,    -1,    -1,
04901      362,    -1,    -1,    -1,   366,    -1,    -1,    -1,    -1,    -1,
04902       -1,    -1,    -1,    -1,   376,   377,    -1,    -1,    -1,    -1,
04903      382,    -1,   384,    -1,   386,    -1,    -1,   389,   390,     4,
04904        5,    -1,     7,     8,     9,    -1,    -1,    -1,    13,    -1,
04905       -1,    -1,    17,    18,    19,    -1,    21,    -1,    -1,    24,
04906       25,    26,    -1,    28,    29,    -1,    31,    -1,    -1,    -1,
04907       35,    36,    37,    38,    39,    -1,    -1,    42,    43,    -1,
04908       45,    46,    -1,    48,    49,    -1,    51,    52,    53,    54,
04909       55,    56,    -1,    58,    59,    -1,    61,    62,    63,    -1,
04910       -1,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
04911       75,    76,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,
04912       -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    93,    -1,
04913       -1,    -1,    97,    -1,    99,   100,   101,    -1,    -1,   104,
04914       -1,   106,   107,    -1,   109,   110,    -1,   112,    -1,   114,
04915      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
04916      125,    -1,    -1,    -1,   129,   130,    -1,   132,    -1,   134,
04917      135,    -1,   137,    -1,   139,    -1,    -1,    -1,   143,   144,
04918      145,    -1,   147,   148,    -1,   150,   151,    -1,    -1,    -1,
04919       -1,    -1,   157,   158,    -1,    -1,    -1,    -1,    -1,   164,
04920       -1,   166,    -1,    -1,   169,    -1,   171,   172,    -1,    -1,
04921      175,   176,    -1,    -1,    -1,    -1,    -1,   182,   183,    -1,
04922      185,   186,    -1,    -1,   189,   190,   191,   192,   193,    -1,
04923       -1,   196,   197,   198,    -1,   200,   201,   202,   203,   204,
04924      205,    -1,    -1,   208,   209,   210,   211,   212,   213,   214,
04925      215,    -1,   217,   218,   219,   220,   221,   222,   223,    -1,
04926       -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,   233,    -1,
04927      235,    -1,   237,   238,   239,   240,    -1,    -1,    -1,    -1,
04928       -1,   246,    -1,    -1,    -1,    -1,   251,   252,   253,    -1,
04929       -1,    -1,   257,    -1,    -1,   260,   261,   262,   263,   264,
04930      265,   266,   267,    -1,   269,   270,    -1,    -1,    -1,   274,
04931      275,   276,   277,    -1,    -1,   280,    -1,   282,   283,   284,
04932       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04933      295,   296,   297,   298,   299,    -1,    -1,   302,   303,   304,
04934      305,   306,   307,   308,   309,   310,    -1,    -1,   313,    -1,
04935      315,   316,    -1,   318,   319,   320,   321,    -1,    -1,   324,
04936      325,   326,   327,   328,   329,   330,   331,    -1,    -1,    -1,
04937      335,    -1,    -1,    -1,    -1,   340,    -1,    -1,   343,   344,
04938       -1,   346,   347,   348,    -1,    -1,   351,   352,    -1,   354,
04939      355,   356,   357,    -1,    -1,    -1,    -1,   362,    -1,    -1,
04940       -1,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
04941       -1,   376,   377,    -1,    -1,    -1,    -1,   382,    -1,   384,
04942       -1,   386,    -1,    -1,   389,   390,     4,     5,    -1,     7,
04943        8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    17,
04944       18,    19,    -1,    21,    -1,    -1,    24,    25,    26,    -1,
04945       28,    29,    -1,    31,    -1,    -1,    -1,    35,    36,    37,
04946       38,    39,    -1,    -1,    42,    43,    -1,    45,    46,    -1,
04947       48,    49,    -1,    51,    52,    53,    54,    55,    56,    -1,
04948       58,    59,    -1,    61,    62,    63,    -1,    -1,    66,    67,
04949       68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
04950       -1,    -1,    -1,    81,    82,    83,    -1,    -1,    86,    -1,
04951       -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    97,
04952       -1,    99,   100,   101,    -1,    -1,   104,    -1,   106,   107,
04953       -1,   109,   110,    -1,   112,    -1,   114,   115,   116,   117,
04954      118,   119,   120,   121,   122,   123,   124,   125,    -1,    -1,
04955       -1,   129,   130,    -1,   132,    -1,   134,   135,    -1,   137,
04956       -1,   139,    -1,    -1,    -1,   143,   144,   145,    -1,   147,
04957      148,    -1,   150,   151,    -1,    -1,    -1,    -1,    -1,   157,
04958      158,    -1,    -1,    -1,    -1,    -1,   164,    -1,   166,    -1,
04959       -1,   169,    -1,   171,   172,    -1,    -1,   175,   176,    -1,
04960       -1,    -1,    -1,    -1,   182,   183,    -1,   185,   186,    -1,
04961       -1,   189,   190,   191,   192,   193,    -1,    -1,   196,   197,
04962      198,    -1,   200,   201,   202,   203,   204,   205,    -1,    -1,
04963      208,   209,   210,   211,   212,   213,   214,   215,    -1,   217,
04964      218,    -1,   220,   221,   222,   223,    -1,    -1,    -1,    -1,
04965       -1,    -1,    -1,    -1,   232,   233,    -1,   235,    -1,   237,
04966      238,   239,   240,    -1,    -1,    -1,    -1,    -1,   246,    -1,
04967       -1,    -1,    -1,   251,   252,   253,    -1,    -1,    -1,   257,
04968       -1,    -1,   260,   261,   262,   263,   264,   265,   266,   267,
04969       -1,   269,   270,    -1,    -1,    -1,   274,   275,   276,   277,
04970       -1,    -1,   280,    -1,   282,   283,   284,    -1,    -1,    -1,
04971       -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,   296,   297,
04972      298,   299,    -1,    -1,   302,   303,   304,   305,   306,   307,
04973      308,   309,   310,    -1,    -1,   313,    -1,   315,   316,    -1,
04974      318,   319,   320,   321,    -1,    -1,   324,   325,   326,   327,
04975      328,   329,   330,   331,    -1,    -1,    -1,   335,    -1,    -1,
04976       -1,    -1,   340,    -1,    -1,   343,   344,    -1,   346,   347,
04977      348,    -1,    -1,   351,   352,    -1,   354,   355,   356,   357,
04978       -1,    -1,    -1,    -1,   362,    -1,    -1,    -1,   366,    -1,
04979       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   376,   377,
04980       -1,    -1,    -1,    -1,   382,    -1,   384,   385,   386,    -1,
04981       -1,   389,   390,     4,     5,    -1,     7,     8,    -1,    -1,
04982       -1,    -1,    13,    -1,    -1,    -1,    17,    18,    19,    -1,
04983       21,    -1,    -1,    24,    25,    26,    -1,    28,    29,    -1,
04984       31,    -1,    -1,    -1,    35,    36,    37,    38,    39,    -1,
04985       -1,    42,    43,    -1,    45,    46,    -1,    48,    49,    -1,
04986       51,    52,    53,    54,    55,    56,    -1,    58,    59,    -1,
04987       61,    62,    63,    -1,    -1,    66,    67,    68,    -1,    70,
04988       71,    72,    73,    74,    75,    76,    -1,    -1,    -1,    -1,
04989       81,    82,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,
04990       -1,    92,    93,    -1,    -1,    -1,    97,    -1,    99,   100,
04991      101,    -1,    -1,   104,    -1,   106,   107,    -1,   109,   110,
04992       -1,   112,    -1,   114,   115,   116,   117,   118,   119,   120,
04993      121,   122,   123,   124,   125,    -1,    -1,    -1,   129,   130,
04994      131,   132,    -1,   134,   135,    -1,   137,    -1,   139,    -1,
04995       -1,    -1,   143,   144,   145,    -1,   147,   148,    -1,   150,
04996      151,    -1,    -1,    -1,    -1,    -1,   157,   158,    -1,    -1,
04997       -1,    -1,    -1,   164,    -1,   166,    -1,    -1,   169,    -1,
04998      171,   172,    -1,    -1,   175,   176,    -1,    -1,    -1,    -1,
04999       -1,   182,   183,    -1,   185,   186,    -1,    -1,   189,   190,
05000      191,   192,   193,    -1,    -1,   196,   197,   198,    -1,   200,
05001      201,   202,   203,   204,   205,    -1,    -1,   208,   209,   210,
05002      211,   212,   213,   214,   215,    -1,   217,   218,    -1,   220,
05003      221,   222,   223,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05004       -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
05005       -1,    -1,    -1,    -1,    -1,   246,    -1,    -1,    -1,    -1,
05006      251,   252,   253,    -1,    -1,    -1,   257,    -1,    -1,   260,
05007      261,   262,   263,   264,   265,   266,   267,    -1,   269,   270,
05008       -1,    -1,    -1,   274,   275,   276,   277,    -1,    -1,   280,
05009       -1,   282,   283,   284,    -1,    -1,    -1,    -1,    -1,    -1,
05010       -1,    -1,    -1,    -1,   295,   296,   297,   298,   299,    -1,
05011       -1,   302,   303,   304,   305,   306,   307,   308,   309,   310,
05012       -1,    -1,   313,    -1,   315,   316,    -1,   318,   319,   320,
05013      321,    -1,    -1,   324,   325,   326,   327,   328,   329,   330,
05014      331,    -1,    -1,    -1,   335,    -1,    -1,    -1,    -1,   340,
05015       -1,    -1,   343,   344,    -1,   346,   347,   348,    -1,    -1,
05016      351,   352,    -1,   354,   355,   356,   357,    -1,    -1,    -1,
05017       -1,   362,    -1,    -1,    -1,   366,    -1,    -1,    -1,    -1,
05018       -1,    -1,    -1,    -1,    -1,   376,   377,    -1,    -1,    -1,
05019       -1,   382,    -1,   384,    -1,   386,    -1,    -1,   389,   390,
05020        4,     5,    -1,     7,     8,    -1,    -1,    -1,    -1,    13,
05021       -1,    -1,    -1,    17,    18,    19,    -1,    21,    -1,    -1,
05022       24,    25,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
05023       -1,    35,    36,    37,    38,    39,    -1,    -1,    42,    43,
05024       -1,    45,    46,    -1,    48,    49,    -1,    51,    52,    53,
05025       54,    55,    56,    -1,    58,    59,    -1,    61,    62,    63,
05026       -1,    -1,    66,    67,    68,    -1,    70,    71,    72,    73,
05027       74,    75,    76,    -1,    -1,    -1,    -1,    81,    82,    83,
05028       -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    93,
05029       -1,    -1,    -1,    97,    -1,    99,   100,   101,    -1,    -1,
05030      104,    -1,   106,   107,    -1,   109,   110,    -1,   112,    -1,
05031      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
05032      124,   125,    -1,    -1,    -1,   129,   130,   131,   132,    -1,
05033      134,   135,    -1,   137,    -1,   139,    -1,    -1,    -1,   143,
05034      144,   145,    -1,   147,   148,    -1,   150,   151,    -1,    -1,
05035       -1,    -1,    -1,   157,   158,    -1,    -1,    -1,    -1,    -1,
05036      164,    -1,   166,    -1,    -1,   169,    -1,   171,   172,    -1,
05037       -1,   175,   176,    -1,    -1,    -1,    -1,    -1,   182,   183,
05038       -1,   185,   186,    -1,    -1,   189,   190,   191,   192,   193,
05039       -1,    -1,   196,   197,   198,    -1,   200,   201,   202,   203,
05040      204,   205,    -1,    -1,   208,   209,   210,   211,   212,   213,
05041      214,   215,    -1,   217,   218,    -1,   220,   221,   222,   223,
05042       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,   233,
05043       -1,   235,    -1,   237,   238,   239,   240,    -1,    -1,    -1,
05044       -1,    -1,   246,    -1,    -1,    -1,    -1,   251,   252,   253,
05045       -1,    -1,    -1,   257,    -1,    -1,   260,   261,   262,   263,
05046      264,   265,   266,   267,    -1,   269,   270,    -1,    -1,    -1,
05047      274,   275,   276,   277,    -1,    -1,   280,    -1,   282,   283,
05048      284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05049       -1,   295,   296,   297,   298,   299,    -1,    -1,   302,   303,
05050      304,   305,   306,   307,   308,   309,   310,    -1,    -1,   313,
05051       -1,   315,   316,    -1,   318,   319,   320,   321,    -1,    -1,
05052      324,   325,   326,   327,   328,   329,   330,   331,    -1,    -1,
05053       -1,   335,    -1,    -1,    -1,    -1,   340,    -1,    -1,   343,
05054      344,    -1,   346,   347,   348,    -1,    -1,   351,   352,    -1,
05055      354,   355,   356,   357,    -1,    -1,    -1,    -1,   362,    -1,
05056       -1,    -1,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05057       -1,    -1,   376,   377,    -1,    -1,    -1,    -1,   382,    -1,
05058      384,    -1,   386,    -1,    -1,   389,   390,     4,     5,    -1,
05059        7,     8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,
05060       17,    18,    19,    -1,    21,    -1,    -1,    24,    25,    26,
05061       -1,    28,    29,    -1,    31,    -1,    -1,    -1,    35,    36,
05062       37,    38,    39,    -1,    -1,    42,    43,    -1,    45,    46,
05063       -1,    48,    49,    -1,    51,    52,    53,    54,    55,    56,
05064       -1,    58,    59,    -1,    61,    62,    63,    -1,    -1,    66,
05065       67,    68,    -1,    70,    71,    72,    73,    74,    75,    76,
05066       -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    86,
05067       -1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    -1,
05068       97,    -1,    99,   100,   101,    -1,    -1,   104,    -1,   106,
05069      107,    -1,   109,   110,    -1,   112,    -1,   114,   115,   116,
05070      117,   118,   119,   120,   121,   122,   123,   124,   125,    -1,
05071       -1,    -1,   129,   130,   131,   132,    -1,   134,   135,    -1,
05072      137,    -1,   139,    -1,    -1,    -1,   143,   144,   145,    -1,
05073      147,   148,    -1,   150,   151,    -1,    -1,    -1,    -1,    -1,
05074      157,   158,    -1,    -1,    -1,    -1,    -1,   164,    -1,   166,
05075       -1,    -1,   169,    -1,   171,   172,    -1,    -1,   175,   176,
05076       -1,    -1,    -1,    -1,    -1,   182,   183,    -1,   185,   186,
05077       -1,    -1,   189,   190,   191,   192,   193,    -1,    -1,   196,
05078      197,   198,    -1,   200,   201,   202,   203,   204,   205,    -1,
05079       -1,   208,   209,   210,   211,   212,   213,   214,   215,    -1,
05080      217,   218,    -1,   220,   221,   222,   223,    -1,    -1,    -1,
05081       -1,    -1,    -1,    -1,    -1,   232,   233,    -1,   235,    -1,
05082      237,   238,   239,   240,    -1,    -1,    -1,    -1,    -1,   246,
05083       -1,    -1,    -1,    -1,   251,   252,   253,    -1,    -1,    -1,
05084      257,    -1,    -1,   260,   261,   262,   263,   264,   265,   266,
05085      267,    -1,   269,   270,    -1,    -1,    -1,   274,   275,   276,
05086      277,    -1,    -1,   280,    -1,   282,   283,   284,    -1,    -1,
05087       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,   296,
05088      297,   298,   299,    -1,    -1,   302,   303,   304,   305,   306,
05089      307,   308,   309,   310,    -1,    -1,   313,    -1,   315,   316,
05090       -1,   318,   319,   320,   321,    -1,    -1,   324,   325,   326,
05091      327,   328,   329,   330,   331,    -1,    -1,    -1,   335,    -1,
05092       -1,    -1,    -1,   340,    -1,    -1,   343,   344,    -1,   346,
05093      347,   348,    -1,    -1,   351,   352,    -1,   354,   355,   356,
05094      357,    -1,    -1,    -1,    -1,   362,    -1,    -1,    -1,   366,
05095       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   376,
05096      377,    -1,    -1,    -1,    -1,   382,    -1,   384,    -1,   386,
05097       -1,    -1,   389,   390,     4,     5,    -1,     7,     8,    -1,
05098       -1,    -1,    -1,    13,    -1,    -1,    -1,    17,    18,    19,
05099       -1,    21,    -1,    -1,    24,    25,    26,    -1,    28,    29,
05100       -1,    31,    -1,    -1,    -1,    35,    36,    37,    38,    39,
05101       -1,    -1,    42,    43,    -1,    45,    46,    -1,    48,    49,
05102       -1,    51,    52,    53,    54,    55,    56,    -1,    58,    59,
05103       -1,    61,    62,    63,    -1,    -1,    66,    67,    68,    -1,
05104       70,    71,    72,    73,    74,    75,    76,    -1,    -1,    -1,
05105       -1,    81,    82,    83,    -1,    -1,    86,    -1,    -1,    -1,
05106       -1,    -1,    92,    93,    -1,    -1,    -1,    97,    -1,    99,
05107      100,   101,    -1,    -1,   104,    -1,   106,   107,    -1,   109,
05108      110,    -1,   112,    -1,   114,   115,   116,   117,   118,   119,
05109      120,   121,   122,   123,   124,   125,    -1,    -1,    -1,   129,
05110      130,    -1,   132,    -1,   134,   135,    -1,   137,    -1,   139,
05111       -1,    -1,    -1,   143,   144,   145,    -1,   147,   148,    -1,
05112      150,   151,    -1,    -1,    -1,    -1,    -1,   157,   158,    -1,
05113       -1,    -1,    -1,    -1,   164,    -1,   166,    -1,    -1,   169,
05114       -1,   171,   172,    -1,    -1,   175,   176,    -1,    -1,    -1,
05115       -1,    -1,   182,   183,    -1,   185,   186,    -1,    -1,   189,
05116      190,   191,   192,   193,    -1,    -1,   196,   197,   198,    -1,
05117      200,   201,   202,   203,   204,   205,    -1,    -1,   208,   209,
05118      210,   211,   212,   213,   214,   215,    -1,   217,   218,    -1,
05119      220,   221,   222,   223,    -1,    -1,    -1,    -1,    -1,    -1,
05120       -1,    -1,   232,   233,    -1,   235,    -1,   237,   238,   239,
05121      240,    -1,    -1,    -1,    -1,    -1,   246,    -1,    -1,    -1,
05122       -1,   251,   252,   253,    -1,    -1,    -1,   257,    -1,    -1,
05123      260,   261,   262,   263,   264,   265,   266,   267,    -1,   269,
05124      270,    -1,    -1,    -1,   274,   275,   276,   277,    -1,    -1,
05125      280,    -1,   282,   283,   284,    -1,    -1,    -1,    -1,    -1,
05126       -1,    -1,    -1,    -1,    -1,   295,   296,   297,   298,   299,
05127       -1,    -1,   302,   303,   304,   305,   306,   307,   308,   309,
05128      310,    -1,    -1,   313,    -1,   315,   316,    -1,   318,   319,
05129      320,   321,    -1,    -1,   324,   325,   326,   327,   328,   329,
05130      330,   331,    -1,    -1,    -1,   335,    -1,    -1,    -1,    -1,
05131      340,    -1,    -1,   343,   344,    -1,   346,   347,   348,    -1,
05132       -1,   351,   352,    -1,   354,   355,   356,   357,    -1,    -1,
05133       -1,    -1,   362,    -1,    -1,    -1,   366,    -1,    -1,    -1,
05134       -1,    -1,    -1,    -1,    -1,    -1,   376,   377,    -1,    -1,
05135       -1,    -1,   382,    -1,   384,    -1,   386,    -1,    -1,   389,
05136      390,     4,     5,    -1,     7,     8,    -1,    -1,    -1,    -1,
05137       13,    -1,    -1,    -1,    17,    18,    19,    -1,    21,    -1,
05138       -1,    24,    25,    26,    -1,    28,    29,    -1,    31,    -1,
05139       -1,    -1,    35,    36,    37,    38,    39,    -1,    -1,    42,
05140       43,    -1,    45,    46,    -1,    48,    49,    -1,    51,    52,
05141       53,    54,    55,    56,    -1,    58,    59,    -1,    61,    62,
05142       63,    -1,    -1,    66,    67,    68,    -1,    70,    71,    72,
05143       73,    74,    75,    76,    -1,    -1,    -1,    -1,    81,    82,
05144       83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,
05145       93,    -1,    -1,    -1,    97,    -1,    99,   100,   101,    -1,
05146       -1,   104,    -1,   106,   107,    -1,   109,   110,    -1,   112,
05147       -1,   114,   115,   116,   117,   118,   119,   120,   121,   122,
05148      123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,   132,
05149       -1,   134,   135,    -1,   137,    -1,   139,    -1,    -1,    -1,
05150      143,   144,   145,    -1,   147,   148,    -1,   150,   151,    -1,
05151       -1,    -1,    -1,    -1,   157,   158,    -1,    -1,    -1,    -1,
05152       -1,   164,    -1,   166,    -1,    -1,   169,    -1,   171,   172,
05153       -1,    -1,   175,   176,    -1,    -1,    -1,    -1,    -1,   182,
05154      183,    -1,   185,   186,    -1,    -1,   189,   190,   191,   192,
05155      193,    -1,    -1,   196,   197,   198,    -1,   200,   201,   202,
05156      203,   204,   205,    -1,    -1,   208,   209,   210,   211,   212,
05157      213,   214,   215,    -1,   217,   218,    -1,   220,   221,   222,
05158      223,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,
05159      233,    -1,   235,    -1,   237,   238,   239,   240,    -1,    -1,
05160       -1,    -1,    -1,   246,    -1,    -1,    -1,    -1,   251,   252,
05161      253,    -1,    -1,    -1,   257,    -1,    -1,   260,   261,   262,
05162      263,   264,   265,   266,   267,    -1,   269,   270,    -1,    -1,
05163       -1,   274,   275,   276,   277,    -1,    -1,   280,    -1,   282,
05164      283,   284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05165       -1,    -1,   295,   296,   297,   298,   299,    -1,    -1,   302,
05166      303,   304,   305,   306,   307,   308,   309,   310,    -1,    -1,
05167      313,    -1,   315,   316,    -1,   318,   319,   320,   321,    -1,
05168       -1,   324,   325,   326,   327,   328,   329,   330,   331,    -1,
05169       -1,    -1,   335,    -1,    -1,    -1,    -1,   340,    -1,    -1,
05170      343,   344,    -1,   346,   347,   348,    -1,    -1,   351,   352,
05171       -1,   354,   355,   356,   357,    -1,    -1,    -1,    -1,   362,
05172       -1,    -1,    -1,   366,    -1,    -1,    -1,    -1,    -1,    -1,
05173       -1,    -1,    -1,   376,   377,    -1,    -1,    -1,    -1,   382,
05174       -1,   384,    -1,   386,    -1,    -1,   389,   390,     4,     5,
05175       -1,     7,     8,     9,    -1,    -1,    -1,    13,    -1,    -1,
05176       -1,    17,    18,    19,    -1,    21,    -1,    -1,    24,    25,
05177       26,    -1,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
05178       36,    37,    38,    39,    -1,    -1,    42,    43,    -1,    45,
05179       46,    -1,    48,    49,    -1,    51,    52,    53,    54,    55,
05180       56,    -1,    58,    59,    -1,    61,    62,    63,    -1,    -1,
05181       66,    67,    68,    -1,    70,    71,    72,    73,    74,    75,
05182       76,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,
05183       86,    -1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,
05184       -1,    97,    -1,    99,   100,   101,    -1,    -1,   104,    -1,
05185      106,   107,    -1,   109,   110,    -1,   112,    -1,   114,   115,
05186      116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
05187       -1,    -1,    -1,   129,   130,    -1,   132,    -1,   134,   135,
05188       -1,   137,    -1,   139,    -1,    -1,    -1,   143,   144,   145,
05189       -1,   147,   148,    -1,   150,   151,    -1,    -1,    -1,    -1,
05190       -1,   157,   158,    -1,    -1,    -1,    -1,    -1,   164,    -1,
05191      166,    -1,    -1,   169,    -1,   171,   172,    -1,    -1,   175,
05192      176,    -1,    -1,    -1,    -1,    -1,   182,   183,    -1,   185,
05193      186,    -1,    -1,   189,   190,   191,   192,   193,    -1,    -1,
05194      196,   197,   198,    -1,   200,   201,   202,   203,   204,   205,
05195       -1,    -1,   208,   209,   210,    -1,   212,   213,   214,   215,
05196       -1,   217,   218,    -1,   220,   221,   222,   223,    -1,    -1,
05197       -1,    -1,    -1,    -1,    -1,    -1,   232,   233,    -1,   235,
05198       -1,   237,   238,   239,   240,    -1,    -1,    -1,    -1,    -1,
05199      246,    -1,    -1,    -1,    -1,   251,   252,   253,    -1,    -1,
05200       -1,   257,    -1,    -1,   260,   261,   262,   263,   264,   265,
05201      266,   267,    -1,   269,   270,    -1,    -1,    -1,   274,   275,
05202      276,   277,    -1,    -1,   280,    -1,   282,   283,   284,    -1,
05203       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,
05204      296,   297,   298,   299,    -1,    -1,   302,   303,   304,   305,
05205      306,   307,   308,   309,   310,    -1,    -1,   313,    -1,   315,
05206      316,    -1,   318,   319,   320,   321,    -1,    -1,   324,   325,
05207      326,   327,   328,   329,   330,   331,    -1,    -1,    -1,   335,
05208       -1,    -1,    -1,    -1,   340,    -1,    -1,   343,   344,    -1,
05209      346,   347,   348,    -1,    -1,   351,   352,    -1,   354,   355,
05210      356,   357,    -1,    -1,    -1,    -1,   362,    -1,    -1,    -1,
05211      366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05212      376,   377,    -1,    -1,    -1,    -1,   382,    -1,   384,    -1,
05213      386,    -1,    -1,   389,   390,     4,     5,    -1,     7,     8,
05214       -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    17,    18,
05215       19,    -1,    21,    -1,    -1,    24,    25,    26,    -1,    28,
05216       29,    -1,    31,    -1,    -1,    -1,    35,    36,    37,    38,
05217       39,    -1,    -1,    42,    43,    -1,    45,    46,    -1,    48,
05218       49,    -1,    51,    52,    53,    54,    55,    56,    -1,    58,
05219       59,    -1,    61,    62,    63,    -1,    -1,    66,    67,    68,
05220       -1,    70,    71,    72,    73,    74,    75,    76,    -1,    -1,
05221       -1,    -1,    81,    82,    83,    -1,    -1,    86,    -1,    -1,
05222       -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    97,    -1,
05223       99,   100,   101,    -1,    -1,   104,    -1,   106,   107,    -1,
05224      109,   110,    -1,   112,    -1,   114,   115,   116,   117,   118,
05225      119,   120,   121,   122,   123,   124,   125,    -1,    -1,    -1,
05226      129,   130,    -1,   132,    -1,   134,   135,    -1,   137,    -1,
05227      139,    -1,    -1,    -1,   143,   144,   145,    -1,   147,   148,
05228       -1,   150,   151,    -1,    -1,    -1,    -1,    -1,   157,   158,
05229       -1,    -1,    -1,    -1,    -1,   164,    -1,   166,    -1,    -1,
05230      169,    -1,   171,   172,    -1,    -1,   175,   176,    -1,    -1,
05231       -1,    -1,    -1,   182,   183,    -1,   185,   186,    -1,    -1,
05232      189,   190,   191,   192,   193,    -1,    -1,   196,   197,   198,
05233       -1,   200,   201,   202,   203,   204,   205,    -1,    -1,   208,
05234      209,   210,   211,   212,   213,   214,   215,    -1,   217,   218,
05235       -1,   220,   221,   222,   223,    -1,    -1,    -1,    -1,    -1,
05236       -1,    -1,    -1,   232,   233,    -1,   235,    -1,   237,   238,
05237      239,   240,    -1,    -1,    -1,    -1,    -1,   246,    -1,    -1,
05238       -1,    -1,   251,   252,   253,    -1,    -1,    -1,   257,    -1,
05239       -1,   260,   261,   262,   263,   264,   265,   266,   267,    -1,
05240      269,   270,    -1,    -1,    -1,   274,   275,   276,   277,    -1,
05241       -1,   280,    -1,   282,   283,   284,    -1,    -1,    -1,    -1,
05242       -1,    -1,    -1,    -1,    -1,    -1,   295,   296,   297,   298,
05243      299,    -1,    -1,   302,   303,   304,   305,   306,   307,   308,
05244      309,   310,    -1,    -1,   313,    -1,   315,   316,    -1,   318,
05245      319,   320,   321,    -1,    -1,   324,   325,   326,   327,   328,
05246      329,   330,   331,    -1,    -1,    -1,   335,    -1,    -1,    -1,
05247       -1,   340,    -1,    -1,   343,   344,    -1,   346,   347,   348,
05248       -1,    -1,   351,   352,    -1,   354,   355,   356,   357,    -1,
05249       -1,    -1,    -1,   362,    -1,    -1,    -1,   366,    -1,    -1,
05250       -1,    -1,    -1,    -1,    -1,    -1,    -1,   376,   377,    -1,
05251       -1,    -1,    -1,   382,    -1,   384,    -1,   386,    -1,    -1,
05252      389,   390,     4,     5,    -1,     7,     8,    -1,    -1,    -1,
05253       -1,    13,    -1,    -1,    -1,    17,    18,    19,    -1,    21,
05254       -1,    -1,    24,    25,    26,    -1,    28,    29,    -1,    31,
05255       -1,    -1,    -1,    35,    36,    37,    38,    39,    -1,    -1,
05256       42,    43,    -1,    45,    46,    -1,    48,    49,    -1,    51,
05257       52,    53,    54,    55,    56,    -1,    58,    59,    -1,    61,
05258       62,    63,    -1,    -1,    66,    67,    68,    -1,    70,    71,
05259       72,    73,    74,    75,    76,    -1,    -1,    -1,    -1,    81,
05260       82,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,
05261       92,    93,    -1,    -1,    -1,    97,    -1,    99,   100,   101,
05262       -1,    -1,   104,    -1,   106,   107,    -1,   109,   110,    -1,
05263      112,    -1,   114,   115,   116,   117,   118,   119,   120,   121,
05264      122,   123,   124,   125,    -1,    -1,    -1,   129,   130,    -1,
05265      132,    -1,   134,   135,    -1,   137,    -1,   139,    -1,    -1,
05266       -1,   143,   144,   145,    -1,   147,   148,    -1,   150,   151,
05267       -1,    -1,    -1,    -1,    -1,   157,   158,    -1,    -1,    -1,
05268       -1,    -1,   164,    -1,   166,    -1,    -1,   169,    -1,   171,
05269      172,    -1,    -1,   175,   176,    -1,    -1,    -1,    -1,    -1,
05270      182,   183,    -1,   185,   186,    -1,    -1,   189,   190,   191,
05271      192,   193,    -1,    -1,   196,   197,   198,    -1,   200,   201,
05272      202,   203,   204,   205,    -1,    -1,   208,   209,   210,   211,
05273      212,   213,   214,   215,    -1,   217,   218,    -1,   220,   221,
05274      222,   223,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05275      232,   233,    -1,   235,    -1,   237,   238,   239,   240,    -1,
05276       -1,    -1,    -1,    -1,   246,    -1,    -1,    -1,    -1,   251,
05277      252,   253,    -1,    -1,    -1,   257,    -1,    -1,   260,   261,
05278      262,   263,   264,   265,   266,   267,    -1,   269,   270,    -1,
05279       -1,    -1,   274,   275,   276,   277,    -1,    -1,   280,    -1,
05280      282,   283,   284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05281       -1,    -1,    -1,   295,   296,   297,   298,   299,    -1,    -1,
05282      302,   303,   304,   305,   306,   307,   308,   309,   310,    -1,
05283       -1,   313,    -1,   315,   316,    -1,   318,   319,   320,   321,
05284       -1,    -1,   324,   325,   326,   327,   328,   329,   330,   331,
05285       -1,    -1,    -1,   335,    -1,    -1,    -1,    -1,   340,    -1,
05286       -1,   343,   344,    -1,   346,   347,   348,    -1,    -1,   351,
05287      352,    -1,   354,   355,   356,   357,    -1,    -1,    -1,    -1,
05288      362,    -1,    -1,    -1,   366,    -1,    -1,    -1,    -1,    -1,
05289       -1,    -1,    -1,    -1,   376,   377,    -1,    -1,    -1,    -1,
05290      382,    -1,   384,    -1,   386,    -1,    -1,   389,   390,     4,
05291        5,    -1,     7,     8,    -1,    -1,    -1,    -1,    13,    -1,
05292       -1,    -1,    17,    18,    19,    -1,    21,    -1,    -1,    24,
05293       25,    26,    -1,    28,    29,    -1,    31,    -1,    -1,    -1,
05294       35,    36,    37,    38,    39,    -1,    -1,    42,    43,    -1,
05295       45,    46,    -1,    48,    49,    -1,    51,    52,    53,    54,
05296       55,    56,    -1,    58,    59,    -1,    61,    62,    63,    -1,
05297       -1,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
05298       75,    76,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,
05299       -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    93,    -1,
05300       -1,    -1,    97,    -1,    99,   100,   101,    -1,    -1,   104,
05301       -1,   106,   107,    -1,   109,   110,    -1,   112,    -1,   114,
05302      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
05303      125,    -1,    -1,    -1,   129,   130,    -1,   132,    -1,   134,
05304      135,    -1,   137,    -1,   139,    -1,    -1,    -1,   143,   144,
05305      145,    -1,   147,   148,    -1,   150,   151,    -1,    -1,    -1,
05306       -1,    -1,   157,   158,    -1,    -1,    -1,    -1,    -1,   164,
05307       -1,   166,    -1,    -1,   169,    -1,   171,   172,    -1,    -1,
05308      175,   176,    -1,    -1,    -1,    -1,    -1,   182,   183,    -1,
05309      185,   186,    -1,    -1,   189,   190,   191,   192,   193,    -1,
05310       -1,   196,   197,   198,    -1,   200,   201,   202,   203,   204,
05311      205,    -1,    -1,   208,   209,   210,   211,   212,   213,   214,
05312      215,    -1,   217,   218,    -1,   220,   221,   222,   223,    -1,
05313       -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,   233,    -1,
05314      235,    -1,   237,   238,   239,   240,    -1,    -1,    -1,    -1,
05315       -1,   246,    -1,    -1,    -1,    -1,   251,   252,   253,    -1,
05316       -1,    -1,   257,    -1,    -1,   260,   261,   262,   263,   264,
05317      265,   266,   267,    -1,   269,   270,    -1,    -1,    -1,   274,
05318      275,   276,   277,    -1,    -1,   280,    -1,   282,   283,   284,
05319       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05320      295,   296,   297,   298,   299,    -1,    -1,   302,   303,   304,
05321      305,   306,   307,   308,   309,   310,    -1,    -1,   313,    -1,
05322      315,   316,    -1,   318,   319,   320,   321,    -1,    -1,   324,
05323      325,   326,   327,   328,   329,   330,   331,    -1,    -1,    -1,
05324      335,    -1,    -1,    -1,    -1,   340,    -1,    -1,   343,   344,
05325       -1,   346,   347,   348,    -1,    -1,   351,   352,    -1,   354,
05326      355,   356,   357,    -1,    -1,    -1,    -1,   362,    -1,    -1,
05327       -1,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05328       -1,   376,   377,    -1,    -1,    -1,    -1,   382,    -1,   384,
05329       -1,   386,    -1,    -1,   389,   390,     4,     5,    -1,     7,
05330        8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    17,
05331       18,    19,    -1,    21,    -1,    -1,    24,    25,    26,    -1,
05332       28,    29,    -1,    31,    -1,    -1,    -1,    35,    36,    37,
05333       38,    39,    -1,    -1,    42,    43,    -1,    45,    46,    -1,
05334       48,    49,    -1,    51,    52,    53,    54,    55,    56,    -1,
05335       58,    59,    -1,    61,    62,    63,    -1,    -1,    66,    67,
05336       68,    -1,    70,    71,    72,    73,    74,    75,    76,    -1,
05337       -1,    -1,    -1,    81,    82,    83,    -1,    -1,    86,    -1,
05338       -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    97,
05339       -1,    99,   100,   101,    -1,    -1,   104,    -1,   106,   107,
05340       -1,   109,   110,    -1,   112,    -1,   114,   115,   116,   117,
05341      118,   119,   120,   121,   122,   123,   124,   125,    -1,    -1,
05342       -1,   129,   130,    -1,   132,    -1,   134,   135,    -1,   137,
05343       -1,   139,    -1,    -1,    -1,   143,   144,   145,    -1,   147,
05344      148,    -1,   150,   151,    -1,    -1,    -1,    -1,    -1,   157,
05345      158,    -1,    -1,    -1,    -1,    -1,   164,    -1,   166,    -1,
05346       -1,   169,    -1,   171,   172,    -1,    -1,   175,   176,    -1,
05347       -1,    -1,    -1,    -1,   182,   183,    -1,   185,   186,    -1,
05348       -1,   189,   190,   191,   192,   193,    -1,    -1,   196,   197,
05349      198,    -1,   200,   201,   202,   203,   204,   205,    -1,    -1,
05350      208,   209,   210,    -1,   212,   213,   214,   215,    -1,   217,
05351      218,    -1,   220,   221,   222,   223,    -1,    -1,    -1,    -1,
05352       -1,    -1,    -1,    -1,   232,   233,    -1,   235,    -1,   237,
05353      238,   239,   240,    -1,    -1,    -1,    -1,    -1,   246,    -1,
05354       -1,    -1,    -1,   251,   252,   253,    -1,    -1,    -1,   257,
05355       -1,    -1,   260,   261,   262,   263,   264,   265,   266,   267,
05356       -1,   269,   270,    -1,    -1,    -1,   274,   275,   276,   277,
05357       -1,    -1,   280,    -1,   282,   283,   284,    -1,    -1,    -1,
05358       -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,   296,   297,
05359      298,   299,    -1,    -1,   302,   303,   304,   305,   306,   307,
05360      308,   309,   310,    -1,    -1,   313,    -1,   315,   316,    -1,
05361      318,   319,   320,   321,    -1,    -1,   324,   325,   326,   327,
05362      328,   329,   330,   331,    -1,    -1,    -1,   335,    -1,    -1,
05363       -1,    -1,   340,    -1,    -1,   343,   344,    -1,   346,   347,
05364      348,    -1,    -1,   351,   352,    -1,   354,   355,   356,   357,
05365       -1,    -1,    -1,    -1,   362,    -1,    -1,    -1,   366,    -1,
05366       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   376,   377,
05367       -1,    -1,    -1,    -1,   382,    -1,   384,    -1,   386,    -1,
05368       -1,   389,   390,     4,     5,    -1,     7,     8,    -1,    -1,
05369       -1,    -1,    13,    -1,    -1,    -1,    17,    18,    19,    -1,
05370       21,    -1,    -1,    24,    25,    26,    -1,    28,    29,    -1,
05371       31,    -1,    -1,    -1,    35,    36,    37,    38,    39,    -1,
05372       -1,    42,    43,    -1,    45,    46,    -1,    48,    49,    -1,
05373       51,    52,    53,    54,    55,    56,    -1,    58,    59,    -1,
05374       61,    62,    63,    -1,    -1,    66,    67,    68,    -1,    70,
05375       71,    72,    73,    74,    75,    76,    -1,    -1,    -1,    -1,
05376       81,    82,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,
05377       -1,    92,    93,    -1,    -1,    -1,    97,    -1,    99,   100,
05378      101,    -1,    -1,   104,    -1,   106,   107,    -1,   109,   110,
05379       -1,   112,    -1,   114,   115,   116,   117,   118,   119,   120,
05380      121,   122,   123,   124,   125,    -1,    -1,    -1,   129,   130,
05381       -1,   132,    -1,   134,   135,    -1,   137,    -1,   139,    -1,
05382       -1,    -1,   143,   144,   145,    -1,   147,   148,    -1,   150,
05383      151,    -1,    -1,    -1,    -1,    -1,   157,   158,    -1,    -1,
05384       -1,    -1,    -1,   164,    -1,   166,    -1,    -1,   169,    -1,
05385      171,   172,    -1,    -1,   175,   176,    -1,    -1,    -1,    -1,
05386       -1,   182,   183,    -1,   185,   186,    -1,    -1,   189,   190,
05387      191,   192,   193,    -1,    -1,   196,   197,   198,    -1,   200,
05388      201,   202,   203,   204,   205,    -1,    -1,   208,   209,   210,
05389       -1,   212,   213,   214,   215,    -1,   217,   218,    -1,   220,
05390      221,   222,   223,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05391       -1,   232,   233,    -1,   235,    -1,   237,   238,   239,   240,
05392       -1,    -1,    -1,    -1,    -1,   246,    -1,    -1,    -1,    -1,
05393      251,   252,   253,    -1,    -1,    -1,   257,    -1,    -1,   260,
05394      261,   262,   263,   264,   265,   266,   267,    -1,   269,   270,
05395       -1,    -1,    -1,   274,   275,   276,   277,    -1,    -1,   280,
05396       -1,   282,   283,   284,    -1,    -1,    -1,    -1,    -1,    -1,
05397       -1,    -1,    -1,    -1,   295,   296,   297,   298,   299,    -1,
05398       -1,   302,   303,   304,   305,   306,   307,   308,   309,   310,
05399       -1,    -1,   313,    -1,   315,   316,    -1,   318,   319,   320,
05400      321,    -1,    -1,   324,   325,   326,   327,   328,   329,   330,
05401      331,    -1,    -1,    -1,   335,    -1,    -1,    -1,    -1,   340,
05402       -1,    -1,   343,   344,    -1,   346,   347,   348,    -1,    -1,
05403      351,   352,    -1,   354,   355,   356,   357,    -1,    -1,    -1,
05404       -1,   362,    -1,    -1,    -1,   366,    -1,    -1,    -1,    -1,
05405       -1,    -1,    -1,    -1,    -1,   376,   377,    -1,    -1,    -1,
05406       -1,   382,    -1,   384,    -1,   386,    -1,    -1,   389,   390,
05407        4,     5,    -1,     7,     8,    -1,    -1,    -1,    -1,    13,
05408       -1,    -1,    -1,    17,    18,    19,    -1,    21,    -1,    -1,
05409       24,    25,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
05410       -1,    35,    36,    37,    38,    39,    -1,    -1,    42,    43,
05411       -1,    45,    46,    -1,    48,    49,    -1,    51,    52,    53,
05412       54,    55,    56,    -1,    58,    59,    -1,    61,    62,    63,
05413       -1,    -1,    66,    67,    68,    -1,    70,    71,    72,    73,
05414       74,    75,    76,    -1,    -1,    -1,    -1,    81,    82,    83,
05415       -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,    92,    93,
05416       -1,    -1,    -1,    97,    -1,    99,   100,   101,    -1,    -1,
05417      104,    -1,   106,   107,    -1,   109,   110,    -1,   112,    -1,
05418      114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
05419      124,   125,    -1,    -1,    -1,   129,   130,    -1,   132,    -1,
05420      134,   135,    -1,   137,    -1,   139,    -1,    -1,    -1,   143,
05421      144,   145,    -1,   147,   148,    -1,   150,   151,    -1,    -1,
05422       -1,    -1,    -1,   157,   158,    -1,    -1,    -1,    -1,    -1,
05423      164,    -1,   166,    -1,    -1,   169,    -1,   171,   172,    -1,
05424       -1,   175,   176,    -1,    -1,    -1,    -1,    -1,   182,   183,
05425       -1,   185,   186,    -1,    -1,   189,   190,   191,   192,   193,
05426       -1,    -1,   196,   197,   198,    -1,   200,   201,   202,   203,
05427      204,   205,    -1,    -1,   208,   209,   210,    -1,   212,   213,
05428      214,   215,    -1,   217,   218,    -1,   220,   221,   222,   223,
05429       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,   233,
05430       -1,   235,    -1,   237,   238,   239,   240,    -1,    -1,    -1,
05431       -1,    -1,   246,    -1,    -1,    -1,    -1,   251,   252,   253,
05432       -1,    -1,    -1,   257,    -1,    -1,   260,   261,   262,   263,
05433      264,   265,   266,   267,    -1,   269,   270,    -1,    -1,    -1,
05434      274,   275,   276,   277,    -1,    -1,   280,    -1,   282,   283,
05435      284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05436       -1,   295,   296,   297,   298,   299,    -1,    -1,   302,   303,
05437      304,   305,   306,   307,   308,   309,   310,    -1,    -1,   313,
05438       -1,   315,   316,    -1,   318,   319,   320,   321,    -1,    -1,
05439      324,   325,   326,   327,   328,   329,   330,   331,    -1,    -1,
05440       -1,   335,    -1,    -1,    -1,    -1,   340,    -1,    -1,   343,
05441      344,    -1,   346,   347,   348,    -1,    -1,   351,   352,    -1,
05442      354,   355,   356,   357,    -1,    -1,    -1,    -1,   362,    -1,
05443       -1,    -1,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05444       -1,    -1,   376,   377,    -1,    -1,    -1,    -1,   382,    -1,
05445      384,    -1,   386,    -1,    -1,   389,   390,     4,     5,    -1,
05446        7,     8,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,
05447       17,    18,    19,    -1,    21,    -1,    -1,    -1,    -1,    26,
05448       -1,    28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,
05449       -1,    -1,    39,    -1,    -1,    -1,    43,    -1,    45,    46,
05450       -1,    48,    49,    -1,    51,    52,    53,    54,    55,    56,
05451       -1,    58,    59,    -1,    61,    -1,    -1,    -1,    -1,    66,
05452       -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,    76,
05453       -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,
05454       -1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    -1,
05455       97,    -1,    99,   100,   101,    -1,    -1,   104,    -1,   106,
05456      107,    -1,   109,   110,    -1,   112,    -1,   114,   115,    -1,
05457       -1,   118,    -1,    -1,   121,   122,   123,    -1,   125,    -1,
05458       -1,    -1,   129,   130,    -1,   132,    -1,   134,    -1,    -1,
05459      137,    -1,    -1,    -1,    -1,    -1,   143,   144,   145,    -1,
05460      147,    -1,    -1,   150,   151,    -1,    -1,    -1,    -1,    -1,
05461       -1,    -1,    -1,    -1,    -1,    -1,    -1,   164,    -1,   166,
05462       -1,    -1,   169,    -1,    -1,   172,    -1,    -1,    -1,   176,
05463       -1,    -1,    -1,    -1,    -1,   182,   183,    -1,   185,    -1,
05464       -1,    -1,    -1,   190,   191,   192,   193,    -1,    -1,   196,
05465       -1,   198,    -1,   200,    -1,   202,   203,   204,   205,    -1,
05466       -1,   208,   209,   210,    -1,    -1,   213,    -1,    -1,    -1,
05467      217,   218,    -1,   220,   221,   222,   223,    -1,    -1,    -1,
05468       -1,    -1,    -1,    -1,    -1,   232,    -1,    -1,   235,    -1,
05469      237,   238,   239,   240,    -1,    -1,    -1,    -1,    -1,   246,
05470       -1,    -1,    -1,    -1,   251,    -1,    -1,    -1,    -1,    -1,
05471      257,    -1,    -1,    -1,   261,   262,   263,   264,   265,   266,
05472      267,    -1,   269,   270,    -1,    -1,    -1,   274,   275,   276,
05473      277,    -1,    -1,   280,    -1,   282,   283,   284,    -1,    -1,
05474       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,   296,
05475       -1,    -1,   299,    -1,    -1,   302,   303,   304,    -1,    -1,
05476      307,    -1,   309,   310,    -1,    -1,   313,    -1,    -1,   316,
05477       -1,   318,   319,    -1,   321,    -1,    -1,   324,    -1,    -1,
05478      327,   328,    -1,   330,   331,    -1,    -1,    -1,   335,    -1,
05479       -1,    -1,    -1,   340,    -1,    -1,    -1,    -1,    -1,   346,
05480       -1,   348,    -1,    -1,   351,    -1,    -1,    -1,    -1,   356,
05481      357,    -1,    -1,     4,     5,   362,     7,     8,    -1,   366,
05482       -1,    -1,    13,    -1,    -1,    -1,    17,    18,    19,    -1,
05483       21,    -1,    -1,    -1,    -1,    26,    -1,    28,    29,    -1,
05484       31,    -1,   389,   390,    35,    -1,    -1,    -1,    39,    -1,
05485       -1,    -1,    43,    -1,    45,    46,    -1,    48,    49,    -1,
05486       51,    52,    53,    54,    55,    56,    -1,    58,    59,    60,
05487       61,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
05488       71,    72,    73,    -1,    -1,    76,    -1,    -1,    -1,    -1,
05489       81,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05490       -1,    92,    93,    -1,    -1,    -1,    97,    -1,    99,   100,
05491      101,    -1,    -1,   104,    -1,   106,   107,    -1,   109,   110,
05492       -1,   112,    -1,   114,   115,    -1,    -1,   118,    -1,    -1,
05493      121,   122,   123,    -1,   125,    -1,    -1,    -1,   129,   130,
05494       -1,   132,    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,
05495       -1,    -1,   143,   144,   145,    -1,   147,    -1,    -1,   150,
05496      151,   152,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05497       -1,    -1,    -1,   164,    -1,   166,    -1,    -1,   169,   170,
05498       -1,   172,    -1,    -1,    -1,   176,    -1,   178,    -1,    -1,
05499       -1,   182,   183,    -1,   185,    -1,    -1,    -1,    -1,   190,
05500      191,   192,   193,    -1,    -1,   196,    -1,   198,    -1,   200,
05501       -1,   202,   203,   204,   205,    -1,    -1,   208,   209,   210,
05502       -1,    -1,   213,    -1,    -1,    -1,   217,   218,    -1,   220,
05503      221,   222,   223,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05504       -1,   232,    -1,    -1,   235,    -1,   237,   238,   239,   240,
05505       -1,    -1,    -1,    -1,    -1,   246,    -1,    -1,    -1,    -1,
05506      251,    -1,    -1,    -1,    -1,    -1,   257,    -1,    -1,    -1,
05507      261,   262,   263,   264,   265,   266,   267,    -1,   269,   270,
05508      271,    -1,    -1,   274,   275,   276,   277,    -1,    -1,   280,
05509       -1,   282,   283,   284,    -1,    -1,    -1,    -1,    -1,    -1,
05510       -1,    -1,    -1,    -1,   295,   296,    -1,    -1,   299,    -1,
05511       -1,   302,   303,   304,    -1,    -1,   307,    -1,   309,   310,
05512       -1,    -1,   313,    -1,    -1,   316,    -1,   318,   319,    -1,
05513      321,    -1,    -1,   324,    -1,    -1,   327,   328,    -1,   330,
05514      331,    -1,    -1,    -1,   335,    -1,    -1,    -1,    -1,   340,
05515       -1,    -1,    -1,    -1,    -1,   346,    -1,   348,    -1,    -1,
05516      351,    -1,    -1,    -1,    -1,   356,   357,    -1,    -1,     4,
05517        5,   362,     7,     8,    -1,   366,    -1,    -1,    13,    -1,
05518       -1,    -1,    17,    18,    19,    -1,    21,    -1,    -1,    -1,
05519       -1,    26,    -1,    28,    29,    -1,    31,    -1,   389,    -1,
05520       35,    -1,    -1,    -1,    39,    -1,    -1,    -1,    43,    -1,
05521       45,    46,    -1,    48,    49,    -1,    51,    52,    53,    54,
05522       55,    56,    -1,    58,    59,    60,    61,    -1,    -1,    -1,
05523       -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,
05524       -1,    76,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
05525       -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,    93,    -1,
05526       -1,    -1,    97,    -1,    99,   100,   101,    -1,    -1,   104,
05527       -1,   106,   107,    -1,   109,   110,    -1,   112,    -1,   114,
05528      115,    -1,    -1,   118,    -1,    -1,   121,   122,   123,    -1,
05529      125,    -1,    -1,    -1,   129,   130,    -1,   132,    -1,   134,
05530       -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,   143,   144,
05531      145,    -1,   147,    -1,    -1,   150,   151,   152,    -1,    -1,
05532       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   164,
05533       -1,   166,    -1,    -1,   169,   170,    -1,   172,    -1,    -1,
05534       -1,   176,    -1,    -1,    -1,    -1,    -1,   182,   183,    -1,
05535      185,    -1,    -1,    -1,    -1,   190,   191,   192,   193,    -1,
05536       -1,   196,    -1,   198,    -1,   200,    -1,   202,   203,   204,
05537      205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,    -1,
05538       -1,    -1,   217,   218,    -1,   220,   221,   222,   223,    -1,
05539       -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,    -1,    -1,
05540      235,    -1,   237,   238,   239,   240,    -1,    -1,    -1,    -1,
05541       -1,   246,    -1,    -1,    -1,    -1,   251,    -1,    -1,    -1,
05542       -1,    -1,   257,    -1,    -1,    -1,   261,   262,   263,   264,
05543      265,   266,   267,    -1,   269,   270,    -1,    -1,    -1,   274,
05544      275,   276,   277,    -1,    -1,   280,    -1,   282,   283,   284,
05545       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05546      295,   296,    -1,    -1,   299,    -1,    -1,   302,   303,   304,
05547       -1,    -1,   307,    -1,   309,   310,    -1,    -1,   313,    -1,
05548       -1,   316,    -1,   318,   319,    -1,   321,    -1,    -1,   324,
05549       -1,    -1,   327,   328,    -1,   330,   331,    -1,    -1,    -1,
05550      335,    -1,    -1,    -1,    -1,   340,    -1,    -1,    -1,    -1,
05551       -1,   346,    -1,   348,    -1,    -1,   351,    -1,    -1,    -1,
05552       -1,   356,   357,    -1,    -1,     4,     5,   362,     7,     8,
05553       -1,   366,    -1,    -1,    13,    -1,    -1,    -1,    17,    18,
05554       19,    -1,    21,    -1,    -1,    -1,    -1,    26,    -1,    28,
05555       29,    -1,    31,    -1,   389,    -1,    35,    -1,    -1,    -1,
05556       39,    -1,    -1,    -1,    43,    -1,    45,    46,    -1,    48,
05557       49,    -1,    51,    52,    53,    54,    55,    56,    -1,    58,
05558       59,    -1,    61,    -1,    -1,    -1,    -1,    66,    -1,    -1,
05559       -1,    -1,    71,    72,    73,    -1,    -1,    76,    -1,    -1,
05560       -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,    -1,
05561       -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    97,    -1,
05562       99,   100,   101,    -1,    -1,   104,    -1,   106,   107,    -1,
05563      109,   110,    -1,   112,    -1,   114,   115,    -1,    -1,   118,
05564       -1,    -1,   121,   122,   123,    -1,   125,    -1,    -1,    -1,
05565      129,   130,    -1,   132,    -1,   134,    -1,    -1,   137,    -1,
05566       -1,    -1,    -1,    -1,   143,   144,   145,    -1,   147,    -1,
05567       -1,   150,   151,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05568       -1,    -1,    -1,    -1,    -1,   164,    -1,   166,    -1,    -1,
05569      169,    -1,    -1,   172,    -1,    -1,    -1,   176,    -1,    -1,
05570       -1,    -1,    -1,   182,   183,    -1,   185,    -1,    -1,    -1,
05571       -1,   190,   191,   192,   193,    -1,    -1,   196,    -1,   198,
05572       -1,   200,    -1,   202,   203,   204,   205,    -1,    -1,   208,
05573      209,   210,    -1,    -1,   213,    -1,    -1,    -1,   217,   218,
05574       -1,   220,   221,   222,   223,    -1,    -1,    -1,    -1,    -1,
05575       -1,    -1,    -1,   232,    -1,    -1,   235,    -1,   237,   238,
05576      239,   240,    -1,    -1,    -1,    -1,    -1,   246,    -1,    -1,
05577       -1,    -1,   251,    -1,    -1,    -1,    -1,    -1,   257,    -1,
05578       -1,    -1,   261,   262,   263,   264,   265,   266,   267,    -1,
05579      269,   270,   271,    -1,    -1,   274,   275,   276,   277,    -1,
05580       -1,   280,    -1,   282,   283,   284,    -1,    -1,    -1,    -1,
05581       -1,    -1,    -1,    -1,    -1,    -1,   295,   296,    -1,    -1,
05582      299,    -1,    -1,   302,   303,   304,    -1,    -1,   307,    -1,
05583      309,   310,    -1,    -1,   313,    -1,    -1,   316,    -1,   318,
05584      319,    -1,   321,    -1,    -1,   324,    -1,    -1,   327,   328,
05585       -1,   330,   331,    -1,    -1,    -1,   335,    -1,    -1,    -1,
05586       -1,   340,    -1,    -1,    -1,    -1,    -1,   346,    -1,   348,
05587       -1,    -1,   351,    -1,    -1,    -1,    -1,   356,   357,    -1,
05588       -1,    -1,    -1,   362,    -1,    -1,    -1,   366,    -1,    -1,
05589        4,     5,    -1,     7,     8,    -1,    -1,    -1,    -1,    13,
05590       -1,    -1,    -1,    17,    18,    19,   385,    21,    -1,    -1,
05591      389,    -1,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
05592       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    -1,    43,
05593       -1,    45,    46,    -1,    48,    49,    -1,    51,    52,    53,
05594       54,    55,    56,    -1,    58,    59,    -1,    61,    -1,    -1,
05595       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
05596       -1,    -1,    76,    -1,    -1,    -1,    -1,    81,    82,    -1,
05597       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,    93,
05598       -1,    -1,    -1,    97,    -1,    99,   100,   101,    -1,    -1,
05599      104,    -1,   106,   107,    -1,   109,   110,    -1,   112,    -1,
05600      114,   115,    -1,    -1,   118,    -1,    -1,   121,   122,   123,
05601       -1,   125,    -1,    -1,    -1,   129,   130,    -1,   132,    -1,
05602      134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,   143,
05603      144,   145,    -1,   147,    -1,    -1,   150,   151,    -1,    -1,
05604       -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,    -1,    -1,
05605      164,    -1,   166,    -1,    -1,   169,    -1,    -1,   172,    -1,
05606       -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,   182,   183,
05607       -1,   185,    -1,    -1,    -1,    -1,   190,   191,   192,   193,
05608       -1,    -1,   196,    -1,   198,    -1,   200,    -1,   202,   203,
05609      204,   205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,
05610       -1,    -1,    -1,   217,   218,    -1,   220,   221,   222,   223,
05611       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,    -1,
05612       -1,   235,    -1,   237,   238,   239,   240,    -1,    -1,    -1,
05613       -1,    -1,   246,    -1,    -1,    -1,    -1,   251,    -1,    -1,
05614       -1,    -1,    -1,   257,    -1,    -1,    -1,   261,   262,   263,
05615      264,   265,   266,   267,    -1,   269,   270,    -1,    -1,    -1,
05616      274,   275,   276,   277,    -1,    -1,   280,    -1,   282,   283,
05617      284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05618       -1,   295,   296,    -1,    -1,   299,    -1,    -1,   302,   303,
05619      304,    -1,    -1,   307,    -1,   309,   310,    -1,    -1,   313,
05620       -1,    -1,   316,    -1,   318,   319,    -1,   321,    -1,    -1,
05621      324,    -1,    -1,   327,   328,    -1,   330,   331,    -1,    -1,
05622       -1,   335,    -1,    -1,    -1,    -1,   340,    -1,    -1,    -1,
05623       -1,    -1,   346,    -1,   348,    -1,    -1,   351,    -1,    -1,
05624       -1,    -1,   356,   357,    -1,    -1,     4,     5,   362,     7,
05625        8,    -1,   366,    -1,    -1,    13,    -1,    -1,    -1,    17,
05626       18,    19,    -1,    21,    -1,    -1,    -1,    -1,    26,    -1,
05627       28,    29,    -1,    31,    -1,   389,    -1,    35,    -1,    -1,
05628       -1,    39,    -1,    -1,    -1,    43,    -1,    45,    46,    -1,
05629       48,    49,    -1,    51,    52,    53,    54,    55,    56,    -1,
05630       58,    59,    -1,    61,    -1,    -1,    -1,    -1,    66,    -1,
05631       -1,    -1,    -1,    71,    72,    73,    -1,    -1,    76,    -1,
05632       -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
05633       -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    97,
05634       -1,    99,   100,   101,    -1,    -1,   104,    -1,   106,   107,
05635       -1,   109,   110,    -1,   112,    -1,   114,   115,    -1,    -1,
05636      118,    -1,    -1,   121,   122,   123,    -1,   125,    -1,    -1,
05637       -1,   129,   130,    -1,   132,    -1,   134,    -1,    -1,   137,
05638       -1,    -1,    -1,    -1,    -1,   143,   144,   145,    -1,   147,
05639       -1,    -1,   150,   151,    -1,    -1,    -1,    -1,    -1,    -1,
05640       -1,    -1,    -1,    -1,    -1,    -1,   164,    -1,   166,    -1,
05641       -1,   169,    -1,    -1,   172,    -1,    -1,    -1,   176,    -1,
05642       -1,    -1,    -1,    -1,   182,   183,    -1,   185,    -1,    -1,
05643       -1,    -1,   190,   191,   192,   193,    -1,    -1,   196,    -1,
05644      198,    -1,   200,    -1,   202,   203,   204,   205,    -1,    -1,
05645      208,   209,   210,    -1,    -1,   213,    -1,    -1,    -1,   217,
05646      218,    -1,   220,   221,   222,   223,    -1,    -1,    -1,    -1,
05647       -1,    -1,    -1,    -1,   232,    -1,    -1,   235,    -1,   237,
05648      238,   239,   240,    -1,    -1,    -1,    -1,    -1,   246,    -1,
05649       -1,    -1,    -1,   251,    -1,    -1,    -1,    -1,    -1,   257,
05650       -1,    -1,    -1,   261,   262,   263,   264,   265,   266,   267,
05651       -1,   269,   270,    -1,    -1,    -1,   274,   275,   276,   277,
05652       -1,    -1,   280,    -1,   282,   283,   284,    -1,    -1,    -1,
05653       -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,   296,    -1,
05654       -1,   299,    -1,    -1,   302,   303,   304,    -1,    -1,   307,
05655       -1,   309,   310,    -1,    -1,   313,    -1,    -1,   316,    -1,
05656      318,   319,    -1,   321,    -1,    -1,   324,    -1,    -1,   327,
05657      328,    -1,   330,   331,    -1,    -1,    -1,   335,    -1,    -1,
05658       -1,    -1,   340,    -1,    -1,    -1,    -1,    -1,   346,    -1,
05659      348,    -1,    -1,   351,    -1,    -1,    -1,    -1,   356,   357,
05660       -1,    -1,    -1,    -1,   362,    -1,    -1,    -1,   366,    -1,
05661        4,     5,    -1,     7,     8,    -1,    -1,    -1,    -1,    13,
05662       -1,    -1,    -1,    17,    18,    19,   384,    21,    -1,    -1,
05663       -1,   389,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
05664       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    -1,    43,
05665       -1,    45,    46,    -1,    48,    49,    -1,    51,    52,    53,
05666       54,    55,    56,    -1,    58,    59,    -1,    61,    -1,    -1,
05667       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
05668       -1,    -1,    76,    -1,    -1,    -1,    -1,    81,    82,    -1,
05669       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,    93,
05670       -1,    -1,    -1,    97,    -1,    99,   100,   101,    -1,    -1,
05671      104,    -1,   106,   107,    -1,   109,   110,    -1,   112,    -1,
05672      114,   115,    -1,    -1,   118,    -1,    -1,   121,   122,   123,
05673       -1,   125,    -1,    -1,    -1,   129,   130,    -1,   132,    -1,
05674      134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,   143,
05675      144,   145,    -1,   147,    -1,    -1,   150,   151,    -1,    -1,
05676       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05677      164,    -1,   166,    -1,    -1,   169,    -1,    -1,   172,    -1,
05678       -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,   182,   183,
05679       -1,   185,    -1,    -1,    -1,    -1,   190,   191,   192,   193,
05680       -1,    -1,   196,    -1,   198,    -1,   200,    -1,   202,   203,
05681      204,   205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,
05682       -1,    -1,    -1,   217,   218,    -1,   220,   221,   222,   223,
05683       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,    -1,
05684       -1,   235,    -1,   237,   238,   239,   240,    -1,    -1,    -1,
05685       -1,    -1,   246,    -1,    -1,    -1,    -1,   251,    -1,    -1,
05686       -1,    -1,    -1,   257,    -1,    -1,    -1,   261,   262,   263,
05687      264,   265,   266,   267,    -1,   269,   270,    -1,    -1,    -1,
05688      274,   275,   276,   277,    -1,    -1,   280,    -1,   282,   283,
05689      284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05690       -1,   295,   296,    -1,    -1,   299,    -1,    -1,   302,   303,
05691      304,    -1,    -1,   307,    -1,   309,   310,    -1,    -1,   313,
05692       -1,    -1,   316,    -1,   318,   319,    -1,   321,    -1,    -1,
05693      324,    -1,    -1,   327,   328,    -1,   330,   331,    -1,    -1,
05694       -1,   335,    -1,    -1,    -1,    -1,   340,    -1,    -1,    -1,
05695       -1,    -1,   346,    -1,   348,    -1,    -1,   351,    -1,    -1,
05696       -1,    -1,   356,   357,    -1,    -1,     4,     5,   362,     7,
05697        8,    -1,   366,    -1,    -1,    13,    -1,    -1,    -1,    17,
05698       18,    19,    -1,    21,    -1,    -1,    -1,    -1,    26,    -1,
05699       28,    29,    -1,    31,    -1,   389,    -1,    35,    -1,    -1,
05700       -1,    39,    -1,    -1,    -1,    43,    -1,    45,    46,    -1,
05701       48,    49,    -1,    51,    52,    53,    54,    55,    56,    -1,
05702       58,    59,    -1,    61,    -1,    -1,    -1,    -1,    66,    -1,
05703       -1,    -1,    -1,    71,    72,    73,    -1,    -1,    76,    -1,
05704       -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
05705       -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    97,
05706       -1,    99,   100,   101,    -1,    -1,   104,    -1,   106,   107,
05707       -1,   109,   110,    -1,   112,    -1,   114,   115,    -1,    -1,
05708      118,    -1,    -1,   121,   122,   123,    -1,   125,    -1,    -1,
05709       -1,   129,   130,    -1,   132,    -1,   134,    -1,    -1,   137,
05710       -1,    -1,    -1,    -1,    -1,   143,   144,   145,    -1,   147,
05711       -1,    -1,   150,   151,    -1,    -1,    -1,    -1,    -1,    -1,
05712       -1,    -1,    -1,    -1,    -1,    -1,   164,    -1,   166,    -1,
05713       -1,   169,    -1,    -1,   172,    -1,    -1,    -1,   176,    -1,
05714       -1,    -1,    -1,    -1,   182,   183,    -1,   185,    -1,    -1,
05715       -1,    -1,   190,   191,   192,   193,    -1,    -1,   196,    -1,
05716      198,    -1,   200,    -1,   202,   203,   204,   205,    -1,    -1,
05717      208,   209,   210,    -1,    -1,   213,    -1,    -1,    -1,   217,
05718      218,    -1,   220,   221,   222,   223,    -1,    -1,    -1,    -1,
05719       -1,    -1,    -1,    -1,   232,    -1,    -1,   235,    -1,   237,
05720      238,   239,   240,    -1,    -1,    -1,    -1,    -1,   246,    -1,
05721       -1,    -1,    -1,   251,    -1,    -1,    -1,    -1,    -1,   257,
05722       -1,    -1,    -1,   261,   262,   263,   264,   265,   266,   267,
05723       -1,   269,   270,    -1,    -1,    -1,   274,   275,   276,   277,
05724       -1,    -1,   280,    -1,   282,   283,   284,    -1,    -1,    -1,
05725       -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,   296,    -1,
05726       -1,   299,    -1,    -1,   302,   303,   304,    -1,    -1,   307,
05727       -1,   309,   310,    -1,    -1,   313,    -1,    -1,   316,    -1,
05728      318,   319,    -1,   321,    -1,    -1,   324,    -1,    -1,   327,
05729      328,    -1,   330,   331,    -1,    -1,    -1,   335,    -1,    -1,
05730       -1,    -1,   340,    -1,    -1,    -1,    -1,    -1,   346,    -1,
05731      348,    -1,    -1,   351,    -1,    -1,    -1,    -1,   356,   357,
05732       -1,    -1,     4,     5,   362,     7,     8,    -1,   366,    -1,
05733       -1,    13,    -1,    -1,    -1,    17,    18,    19,    -1,    21,
05734       -1,    -1,    -1,    -1,    26,    -1,    28,    29,    -1,    31,
05735       -1,   389,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
05736       -1,    43,    -1,    45,    46,    -1,    48,    49,    -1,    51,
05737       52,    53,    54,    55,    56,    -1,    58,    59,    -1,    61,
05738       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
05739       72,    73,    -1,    -1,    76,    -1,    -1,    -1,    -1,    81,
05740       82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05741       92,    93,    -1,    -1,    -1,    97,    -1,    99,   100,   101,
05742       -1,    -1,   104,    -1,   106,   107,    -1,   109,   110,    -1,
05743      112,    -1,   114,   115,    -1,    -1,   118,    -1,    -1,   121,
05744      122,   123,    -1,   125,    -1,    -1,    -1,   129,   130,    -1,
05745      132,    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,
05746       -1,   143,   144,   145,    -1,   147,    -1,    -1,   150,   151,
05747       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05748       -1,    -1,   164,    -1,   166,    -1,    -1,   169,    -1,    -1,
05749      172,    -1,    -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,
05750      182,   183,    -1,   185,    -1,    -1,    -1,    -1,   190,   191,
05751      192,   193,    -1,    -1,   196,    -1,   198,    -1,   200,    -1,
05752      202,   203,   204,   205,    -1,    -1,   208,   209,   210,    -1,
05753       -1,   213,    -1,    -1,    -1,   217,   218,    -1,   220,   221,
05754      222,   223,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05755      232,    -1,    -1,   235,    -1,   237,   238,   239,   240,    -1,
05756       -1,    -1,    -1,    -1,   246,    -1,    -1,    -1,    -1,   251,
05757       -1,    -1,    -1,    -1,    -1,   257,    -1,    -1,    -1,   261,
05758      262,   263,   264,   265,   266,   267,    -1,   269,   270,    -1,
05759       -1,    -1,   274,   275,   276,   277,    -1,    -1,   280,    -1,
05760      282,   283,   284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05761       -1,    -1,    -1,   295,   296,    -1,    -1,   299,    -1,    -1,
05762      302,   303,   304,    -1,    -1,   307,    -1,   309,   310,    -1,
05763       -1,   313,    -1,    -1,   316,    -1,   318,   319,    -1,   321,
05764       -1,    -1,   324,    -1,    -1,   327,   328,    -1,   330,   331,
05765       -1,    -1,    -1,   335,    -1,    -1,    -1,    -1,   340,    -1,
05766       -1,    -1,    -1,    -1,   346,    -1,   348,    -1,    -1,   351,
05767       -1,    -1,    -1,    -1,   356,   357,    -1,    -1,     4,     5,
05768      362,     7,     8,    -1,   366,    -1,    -1,    13,    -1,    -1,
05769       -1,    17,    18,    19,    -1,    21,    -1,    -1,    -1,    -1,
05770       26,    -1,    28,    29,    -1,    31,    -1,   389,    -1,    35,
05771       -1,    -1,    -1,    39,    -1,    -1,    -1,    43,    -1,    45,
05772       46,    -1,    48,    49,    -1,    51,    52,    53,    54,    55,
05773       56,    -1,    58,    59,    -1,    61,    -1,    -1,    -1,    -1,
05774       66,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,
05775       76,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,
05776       -1,    -1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,
05777       -1,    97,    -1,    99,   100,   101,    -1,    -1,   104,    -1,
05778      106,   107,    -1,   109,   110,    -1,   112,    -1,   114,   115,
05779       -1,    -1,   118,    -1,    -1,   121,   122,   123,    -1,   125,
05780       -1,    -1,    -1,   129,   130,    -1,   132,    -1,   134,    -1,
05781       -1,   137,    -1,    -1,    -1,    -1,    -1,   143,   144,   145,
05782       -1,   147,    -1,    -1,   150,   151,    -1,    -1,    -1,    -1,
05783       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   164,    -1,
05784      166,    -1,    -1,   169,    -1,    -1,   172,    -1,    -1,    -1,
05785      176,    -1,    -1,    -1,    -1,    -1,   182,   183,    -1,   185,
05786       -1,    -1,    -1,    -1,   190,   191,   192,   193,    -1,    -1,
05787      196,    -1,   198,    -1,   200,    -1,   202,   203,   204,   205,
05788       -1,    -1,   208,   209,   210,    -1,    -1,   213,    -1,    -1,
05789       -1,   217,   218,    -1,   220,   221,   222,   223,    -1,    -1,
05790       -1,    -1,    -1,    -1,    -1,    -1,   232,    -1,    -1,   235,
05791       -1,   237,   238,   239,   240,    -1,    -1,    -1,    -1,    -1,
05792      246,    -1,    -1,    -1,    -1,   251,    -1,    -1,    -1,    -1,
05793       -1,   257,    -1,    -1,    -1,   261,   262,   263,   264,   265,
05794      266,   267,    -1,   269,   270,    -1,    -1,    -1,   274,   275,
05795      276,   277,    -1,    -1,   280,    -1,   282,   283,   284,    -1,
05796       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,
05797      296,    -1,    -1,   299,    -1,    -1,   302,   303,   304,    -1,
05798       -1,   307,    -1,   309,   310,    -1,    -1,   313,    -1,    -1,
05799      316,    -1,   318,   319,    -1,   321,    -1,    -1,   324,    -1,
05800       -1,   327,   328,    -1,   330,   331,    -1,    -1,    -1,   335,
05801       -1,    -1,    -1,    -1,   340,    -1,    -1,    -1,    -1,    -1,
05802      346,    -1,   348,    -1,    -1,   351,    -1,    -1,    -1,    -1,
05803      356,   357,    -1,    -1,     4,     5,   362,     7,     8,    -1,
05804      366,    -1,    -1,    13,    -1,    -1,    -1,    17,    18,    19,
05805       -1,    21,    -1,    -1,    -1,    -1,    26,    -1,    28,    29,
05806       -1,    31,    -1,   389,    -1,    35,    -1,    -1,    -1,    39,
05807       -1,    -1,    -1,    43,    -1,    45,    46,    -1,    48,    49,
05808       -1,    51,    52,    53,    54,    55,    56,    -1,    58,    59,
05809       -1,    61,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
05810       -1,    71,    72,    73,    -1,    -1,    76,    -1,    -1,    -1,
05811       -1,    81,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05812       -1,    -1,    92,    93,    -1,    -1,    -1,    97,    -1,    99,
05813      100,   101,    -1,    -1,   104,    -1,   106,   107,    -1,   109,
05814      110,    -1,   112,    -1,   114,   115,    -1,    -1,   118,    -1,
05815       -1,   121,   122,   123,    -1,   125,    -1,    -1,    -1,   129,
05816      130,    -1,   132,    -1,   134,    -1,    -1,   137,    -1,    -1,
05817       -1,    -1,    -1,   143,   144,   145,    -1,   147,    -1,    -1,
05818      150,   151,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05819       -1,    -1,    -1,    -1,   164,    -1,   166,    -1,    -1,   169,
05820       -1,    -1,   172,    -1,    -1,    -1,   176,    -1,    -1,    -1,
05821       -1,    -1,   182,   183,    -1,   185,    -1,    -1,    -1,    -1,
05822      190,   191,   192,   193,    -1,    -1,   196,    -1,   198,    -1,
05823      200,    -1,   202,   203,   204,   205,    -1,    -1,   208,   209,
05824      210,    -1,    -1,   213,    -1,    -1,    -1,   217,   218,    -1,
05825      220,   221,   222,   223,    -1,    -1,    -1,    -1,    -1,    -1,
05826       -1,    -1,   232,    -1,    -1,   235,    -1,   237,   238,   239,
05827      240,    -1,    -1,    -1,    -1,    -1,   246,    -1,    -1,    -1,
05828       -1,   251,    -1,    -1,    -1,    -1,    -1,   257,    -1,    -1,
05829       -1,   261,   262,   263,   264,   265,   266,   267,    -1,   269,
05830      270,    -1,    -1,    -1,   274,   275,   276,   277,    -1,    -1,
05831      280,    -1,   282,   283,   284,    -1,    -1,    -1,    -1,    -1,
05832       -1,    -1,    -1,    -1,    -1,   295,   296,    -1,    -1,   299,
05833       -1,    -1,   302,   303,   304,    -1,    -1,   307,    -1,   309,
05834      310,    -1,    -1,   313,    -1,    -1,   316,    -1,   318,   319,
05835       -1,   321,    -1,    -1,   324,    -1,    -1,   327,   328,    -1,
05836      330,   331,    -1,    -1,    -1,   335,    -1,    -1,    -1,    -1,
05837      340,    -1,    -1,    -1,    -1,    -1,   346,    -1,   348,    -1,
05838       -1,   351,    -1,    -1,    -1,    -1,   356,   357,    -1,    -1,
05839        4,     5,   362,     7,     8,    -1,   366,    -1,    -1,    13,
05840       -1,    -1,    -1,    17,    18,    19,    -1,    21,   378,    -1,
05841       -1,    -1,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
05842       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    -1,    43,
05843       -1,    45,    46,    -1,    48,    49,    -1,    51,    52,    53,
05844       54,    55,    56,    -1,    58,    59,    -1,    61,    -1,    -1,
05845       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
05846       -1,    -1,    76,    -1,    -1,    -1,    -1,    81,    82,    -1,
05847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,    93,
05848       -1,    -1,    -1,    97,    -1,    99,   100,   101,    -1,    -1,
05849      104,    -1,   106,   107,    -1,   109,   110,    -1,   112,    -1,
05850      114,   115,    -1,    -1,   118,    -1,    -1,   121,   122,   123,
05851       -1,   125,    -1,    -1,    -1,   129,   130,    -1,   132,    -1,
05852      134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,   143,
05853      144,   145,    -1,   147,    -1,    -1,   150,   151,    -1,    -1,
05854       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05855      164,    -1,   166,    -1,    -1,   169,    -1,    -1,   172,    -1,
05856       -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,   182,   183,
05857       -1,   185,    -1,    -1,    -1,    -1,   190,   191,   192,   193,
05858       -1,    -1,   196,    -1,   198,    -1,   200,    -1,   202,   203,
05859      204,   205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,
05860       -1,    -1,    -1,   217,   218,    -1,   220,   221,   222,   223,
05861       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,    -1,
05862       -1,   235,    -1,   237,   238,   239,   240,    -1,    -1,    -1,
05863       -1,    -1,   246,    -1,    -1,    -1,    -1,   251,    -1,    -1,
05864       -1,    -1,    -1,   257,    -1,    -1,    -1,   261,   262,   263,
05865      264,   265,   266,   267,    -1,   269,   270,    -1,    -1,    -1,
05866      274,   275,   276,   277,    -1,    -1,   280,    -1,   282,   283,
05867      284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05868       -1,   295,   296,    -1,    -1,   299,    -1,    -1,   302,   303,
05869      304,    -1,    -1,   307,    -1,   309,   310,    -1,    -1,   313,
05870       -1,    -1,   316,    -1,   318,   319,    -1,   321,    -1,    -1,
05871      324,    -1,    -1,   327,   328,    -1,   330,   331,    -1,    -1,
05872       -1,   335,    -1,    -1,    -1,    -1,   340,    -1,    -1,    -1,
05873       -1,    -1,   346,    -1,   348,    -1,    -1,   351,    -1,    -1,
05874       -1,    -1,   356,   357,    -1,    -1,     4,     5,   362,     7,
05875        8,    -1,   366,    -1,    -1,    13,    -1,    -1,    -1,    17,
05876       18,    19,    -1,    21,   378,    -1,    -1,    25,    26,    -1,
05877       28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
05878       -1,    39,    -1,    -1,    -1,    43,    -1,    45,    46,    -1,
05879       48,    49,    -1,    51,    52,    53,    54,    55,    56,    -1,
05880       58,    59,    -1,    61,    -1,    -1,    -1,    -1,    66,    -1,
05881       -1,    -1,    -1,    71,    72,    73,    -1,    -1,    76,    -1,
05882       -1,    -1,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
05883       -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    97,
05884       -1,    99,   100,   101,    -1,    -1,   104,    -1,   106,   107,
05885       -1,   109,   110,    -1,   112,    -1,   114,   115,    -1,    -1,
05886      118,    -1,    -1,   121,   122,   123,    -1,   125,    -1,    -1,
05887       -1,   129,   130,    -1,   132,    -1,   134,    -1,    -1,   137,
05888       -1,   139,    -1,    -1,    -1,   143,   144,   145,    -1,   147,
05889       -1,    -1,   150,   151,    -1,    -1,    -1,    -1,    -1,    -1,
05890       -1,    -1,    -1,    -1,    -1,    -1,   164,    -1,   166,    -1,
05891       -1,   169,    -1,    -1,   172,    -1,    -1,    -1,   176,    -1,
05892       -1,    -1,    -1,    -1,   182,   183,    -1,   185,    -1,    -1,
05893       -1,    -1,   190,   191,   192,   193,    -1,    -1,   196,    -1,
05894      198,    -1,   200,    -1,   202,   203,   204,   205,    -1,    -1,
05895      208,   209,   210,    -1,    -1,   213,    -1,    -1,    -1,   217,
05896      218,    -1,   220,   221,   222,   223,    -1,    -1,    -1,    -1,
05897       -1,    -1,    -1,    -1,   232,    -1,    -1,   235,    -1,   237,
05898      238,   239,   240,    -1,    -1,    -1,    -1,    -1,   246,    -1,
05899       -1,    -1,    -1,   251,    -1,    -1,    -1,    -1,    -1,   257,
05900       -1,    -1,    -1,   261,   262,   263,   264,   265,   266,   267,
05901       -1,   269,   270,    -1,    -1,    -1,   274,   275,   276,   277,
05902       -1,    -1,   280,    -1,   282,   283,   284,    -1,    -1,    -1,
05903       -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,   296,    -1,
05904       -1,   299,    -1,    -1,   302,   303,   304,    -1,    -1,   307,
05905       -1,   309,   310,    -1,    -1,   313,    -1,   315,   316,    -1,
05906      318,   319,    -1,   321,    -1,    -1,   324,    -1,    -1,   327,
05907      328,    -1,   330,   331,    -1,    -1,    -1,   335,    -1,    -1,
05908       -1,    -1,   340,    -1,    -1,    -1,    -1,    -1,   346,    -1,
05909      348,    -1,    -1,   351,    -1,    -1,    -1,    -1,   356,   357,
05910       -1,    -1,     4,     5,   362,     7,     8,    -1,   366,    -1,
05911       -1,    13,    14,    -1,    -1,    17,    18,    19,    -1,    21,
05912       -1,    -1,    -1,    -1,    26,    -1,    28,    29,    -1,    31,
05913       -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
05914       -1,    43,    -1,    45,    46,    -1,    48,    49,    -1,    51,
05915       52,    53,    54,    55,    56,    -1,    58,    59,    -1,    61,
05916       -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,    71,
05917       72,    73,    -1,    -1,    76,    -1,    -1,    -1,    -1,    81,
05918       82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05919       92,    93,    -1,    -1,    -1,    97,    -1,    99,   100,   101,
05920       -1,    -1,   104,    -1,   106,   107,    -1,   109,   110,    -1,
05921      112,    -1,   114,   115,    -1,    -1,   118,    -1,    -1,   121,
05922      122,   123,    -1,   125,    -1,    -1,    -1,   129,   130,    -1,
05923      132,    -1,   134,    -1,    -1,   137,    -1,    -1,    -1,    -1,
05924       -1,   143,   144,   145,    -1,   147,    -1,    -1,   150,   151,
05925       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05926       -1,    -1,   164,    -1,   166,    -1,    -1,   169,    -1,    -1,
05927      172,    -1,    -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,
05928      182,   183,    -1,   185,    -1,    -1,    -1,    -1,   190,   191,
05929      192,   193,    -1,    -1,   196,    -1,   198,    -1,   200,    -1,
05930      202,   203,   204,   205,    -1,    -1,   208,   209,   210,    -1,
05931       -1,   213,    -1,    -1,    -1,   217,   218,    -1,   220,   221,
05932      222,   223,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05933      232,    -1,    -1,   235,    -1,   237,   238,   239,   240,    -1,
05934       -1,    -1,    -1,    -1,   246,    -1,    -1,    -1,    -1,   251,
05935       -1,    -1,    -1,    -1,    -1,   257,    -1,    -1,    -1,   261,
05936      262,   263,   264,   265,   266,   267,    -1,   269,   270,    -1,
05937       -1,    -1,   274,   275,   276,   277,    -1,    -1,   280,    -1,
05938      282,   283,   284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05939       -1,    -1,    -1,   295,   296,    -1,    -1,   299,    -1,    -1,
05940      302,   303,   304,    -1,    -1,   307,    -1,   309,   310,    -1,
05941       -1,   313,    -1,   315,   316,    -1,   318,   319,    -1,   321,
05942       -1,    -1,   324,    -1,    -1,   327,   328,    -1,   330,   331,
05943       -1,    -1,    -1,   335,    -1,    -1,    -1,    -1,   340,    -1,
05944       -1,    -1,    -1,    -1,   346,    -1,   348,    -1,    -1,   351,
05945       -1,    -1,    -1,    -1,   356,   357,    -1,    -1,     4,     5,
05946      362,     7,     8,    -1,   366,    -1,    -1,    13,    -1,    -1,
05947       -1,    17,    18,    19,    -1,    21,    -1,    -1,    -1,    -1,
05948       26,    -1,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
05949       -1,    -1,    -1,    39,    -1,    -1,    -1,    43,    -1,    45,
05950       46,    -1,    48,    49,    -1,    51,    52,    53,    54,    55,
05951       56,    -1,    58,    59,    -1,    61,    -1,    -1,    -1,    -1,
05952       66,    -1,    -1,    -1,    -1,    71,    72,    73,    -1,    -1,
05953       76,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,    -1,
05954       -1,    -1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,
05955       -1,    97,    -1,    99,   100,   101,    -1,    -1,   104,    -1,
05956      106,   107,    -1,   109,   110,    -1,   112,    -1,   114,   115,
05957       -1,    -1,   118,    -1,    -1,   121,   122,   123,    -1,   125,
05958       -1,    -1,    -1,   129,   130,    -1,   132,    -1,   134,    -1,
05959       -1,   137,    -1,    -1,    -1,    -1,    -1,   143,   144,   145,
05960       -1,   147,    -1,    -1,   150,   151,    -1,    -1,    -1,    -1,
05961       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   164,    -1,
05962      166,    -1,    -1,   169,    -1,    -1,   172,    -1,    -1,    -1,
05963      176,    -1,    -1,    -1,    -1,    -1,   182,   183,    -1,   185,
05964       -1,    -1,    -1,    -1,   190,   191,   192,   193,    -1,    -1,
05965      196,    -1,   198,    -1,   200,    -1,   202,   203,   204,   205,
05966       -1,    -1,   208,   209,   210,    -1,    -1,   213,    -1,    -1,
05967       -1,   217,   218,    -1,   220,   221,   222,   223,    -1,    -1,
05968       -1,    -1,    -1,    -1,    -1,    -1,   232,    -1,    -1,   235,
05969       -1,   237,   238,   239,   240,    -1,    -1,    -1,    -1,    -1,
05970      246,    -1,    -1,    -1,    -1,   251,    -1,    -1,    -1,    -1,
05971       -1,   257,    -1,    -1,    -1,   261,   262,   263,   264,   265,
05972      266,   267,    -1,   269,   270,    -1,    -1,    -1,   274,   275,
05973      276,   277,    -1,    -1,   280,    -1,   282,   283,   284,    -1,
05974       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,
05975      296,    -1,    -1,   299,    -1,    -1,   302,   303,   304,    -1,
05976       -1,   307,    -1,   309,   310,    -1,    -1,   313,    -1,   315,
05977      316,    -1,   318,   319,    -1,   321,    -1,    -1,   324,    -1,
05978       -1,   327,   328,    -1,   330,   331,    -1,    -1,    -1,   335,
05979       -1,    -1,    -1,    -1,   340,    -1,    -1,    -1,    -1,    -1,
05980      346,    -1,   348,    -1,    -1,   351,    -1,    -1,    -1,    -1,
05981      356,   357,    -1,    -1,     4,     5,   362,     7,     8,    -1,
05982      366,    -1,    -1,    13,    -1,    -1,    -1,    17,    18,    19,
05983       -1,    21,    -1,    -1,    -1,    -1,    26,    -1,    28,    29,
05984       -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,
05985       -1,    -1,    -1,    43,    -1,    45,    46,    -1,    48,    49,
05986       -1,    51,    52,    53,    54,    55,    56,    -1,    58,    59,
05987       -1,    61,    -1,    -1,    -1,    -1,    66,    -1,    -1,    -1,
05988       -1,    71,    72,    73,    -1,    -1,    76,    -1,    -1,    -1,
05989       -1,    81,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05990       -1,    -1,    92,    93,    -1,    -1,    -1,    97,    -1,    99,
05991      100,   101,    -1,    -1,   104,    -1,   106,   107,    -1,   109,
05992      110,    -1,   112,    -1,   114,   115,    -1,    -1,   118,    -1,
05993       -1,   121,   122,   123,    -1,   125,    -1,    -1,    -1,   129,
05994      130,    -1,   132,    -1,   134,    -1,    -1,   137,    -1,    -1,
05995       -1,    -1,    -1,   143,   144,   145,    -1,   147,    -1,    -1,
05996      150,   151,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
05997       -1,    -1,    -1,    -1,   164,    -1,   166,    -1,    -1,   169,
05998       -1,    -1,   172,    -1,    -1,    -1,   176,    -1,    -1,    -1,
05999       -1,    -1,   182,   183,    -1,   185,    -1,    -1,    -1,    -1,
06000      190,   191,   192,   193,    -1,    -1,   196,    -1,   198,    -1,
06001      200,    -1,   202,   203,   204,   205,    -1,    -1,   208,   209,
06002      210,    -1,    -1,   213,    -1,    -1,    -1,   217,   218,    -1,
06003      220,   221,   222,   223,    -1,    -1,    -1,    -1,    -1,    -1,
06004       -1,    -1,   232,    -1,    -1,   235,   236,   237,   238,   239,
06005      240,    -1,    -1,    -1,    -1,    -1,   246,    -1,    -1,    -1,
06006       -1,   251,    -1,    -1,    -1,    -1,    -1,   257,    -1,    -1,
06007       -1,   261,   262,   263,   264,   265,   266,   267,    -1,   269,
06008      270,    -1,    -1,    -1,   274,   275,   276,   277,    -1,    -1,
06009      280,    -1,   282,   283,   284,    -1,    -1,    -1,    -1,    -1,
06010       -1,    -1,    -1,    -1,    -1,   295,   296,    -1,    -1,   299,
06011       -1,    -1,   302,   303,   304,    -1,    -1,   307,    -1,   309,
06012      310,    -1,    -1,   313,    -1,    -1,   316,    -1,   318,   319,
06013       -1,   321,    -1,    -1,   324,    -1,    -1,   327,   328,    -1,
06014      330,   331,    -1,    -1,    -1,   335,    -1,    -1,    -1,    -1,
06015      340,    -1,    -1,    -1,    -1,    -1,   346,    -1,   348,    -1,
06016       -1,   351,    -1,    -1,    -1,    -1,   356,   357,    -1,    -1,
06017        4,     5,   362,     7,     8,    -1,   366,    -1,    -1,    13,
06018       -1,    -1,    -1,    17,    18,    19,    -1,    21,    -1,    -1,
06019       -1,    -1,    26,    -1,    28,    29,    -1,    31,    -1,    -1,
06020       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    -1,    43,
06021       -1,    45,    46,    -1,    48,    49,    -1,    51,    52,    53,
06022       54,    55,    56,    -1,    58,    59,    -1,    61,    -1,    -1,
06023       -1,    -1,    66,    -1,    -1,    -1,    -1,    71,    72,    73,
06024       -1,    -1,    76,    -1,    -1,    -1,    -1,    81,    82,    -1,
06025       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,    93,
06026       -1,    -1,    -1,    97,    -1,    99,   100,   101,    -1,    -1,
06027      104,    -1,   106,   107,    -1,   109,   110,    -1,   112,    -1,
06028      114,   115,    -1,    -1,   118,    -1,    -1,   121,   122,   123,
06029       -1,   125,    -1,    -1,    -1,   129,   130,    -1,   132,    -1,
06030      134,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,   143,
06031      144,   145,    -1,   147,    -1,    -1,   150,   151,    -1,    -1,
06032       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
06033      164,    -1,   166,    -1,    -1,   169,    -1,    -1,   172,    -1,
06034       -1,    -1,   176,    -1,    -1,    -1,    -1,    -1,   182,   183,
06035       -1,   185,    -1,    -1,    -1,    -1,   190,   191,   192,   193,
06036       -1,    -1,   196,    -1,   198,    -1,   200,    -1,   202,   203,
06037      204,   205,    -1,    -1,   208,   209,   210,    -1,    -1,   213,
06038       -1,    -1,    -1,   217,   218,    -1,   220,   221,   222,   223,
06039       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   232,    -1,
06040       -1,   235,    -1,   237,   238,   239,   240,    -1,    -1,    -1,
06041       -1,    -1,   246,    -1,    -1,    -1,    -1,   251,    -1,    -1,
06042       -1,    -1,    -1,   257,    -1,    -1,    -1,   261,   262,   263,
06043      264,   265,   266,   267,    -1,   269,   270,    -1,    -1,    -1,
06044      274,   275,   276,   277,    -1,    -1,   280,    -1,   282,   283,
06045      284,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
06046       -1,   295,   296,    -1,    -1,   299,    -1,    -1,   302,   303,
06047      304,    -1,    -1,   307,    -1,   309,   310,    -1,    -1,   313,
06048       -1,    -1,   316,    -1,   318,   319,    -1,   321,    -1,    -1,
06049      324,    -1,    -1,   327,   328,    -1,   330,   331,    -1,    -1,
06050       -1,   335,    -1,    -1,    -1,    -1,   340,    -1,    -1,    -1,
06051       -1,    -1,   346,    -1,   348,    -1,    -1,   351,    -1,    -1,
06052       -1,    -1,   356,   357,    -1,    -1,    -1,    -1,   362,    -1,
06053       -1,    -1,   366
06054 };
06055 
06056 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
06057    symbol of state STATE-NUM.  */
06058 static const yytype_uint16 yystos[] =
06059 {
06060        0,    10,    11,    21,    44,    53,    64,    88,    89,    90,
06061       98,   108,   116,   125,   157,   171,   181,   249,   250,   253,
06062      261,   267,   271,   278,   281,   295,   327,   336,   338,   341,
06063      384,   392,   393,   394,   395,   491,   506,   508,   510,   512,
06064      516,   517,   653,   659,   664,   667,   690,   696,   699,   701,
06065      707,   710,   713,   719,   721,   722,   770,   789,   791,   797,
06066      798,   799,   800,    70,   217,   222,   495,   309,   312,   788,
06067      792,   788,   362,   793,    38,    70,   313,   412,   495,   149,
06068      698,    38,    70,   313,   495,   658,   144,   146,   147,   177,
06069      290,   315,   320,   390,   660,   760,   761,   767,   783,   784,
06070      714,   665,    58,   240,   720,    72,   727,   267,   788,   668,
06071      793,   760,   801,   520,   522,   523,   225,   772,   702,   324,
06072      312,   700,   790,   149,   503,     4,     5,     7,     8,    13,
06073       17,    18,    19,    21,    26,    28,    29,    31,    35,    39,
06074       43,    45,    46,    48,    49,    51,    52,    53,    54,    55,
06075       56,    58,    59,    61,    66,    71,    72,    73,    76,    81,
06076       82,    92,    93,    97,    99,   100,   101,   104,   106,   107,
06077      109,   110,   112,   114,   115,   118,   121,   122,   123,   125,
06078      129,   130,   132,   134,   137,   143,   145,   150,   151,   164,
06079      166,   169,   172,   176,   182,   183,   185,   190,   191,   192,
06080      193,   196,   198,   200,   202,   203,   204,   205,   208,   209,
06081      210,   213,   217,   218,   220,   221,   222,   223,   232,   235,
06082      237,   238,   239,   240,   246,   251,   257,   261,   262,   263,
06083      264,   265,   266,   267,   269,   270,   274,   275,   276,   277,
06084      280,   282,   283,   284,   295,   296,   299,   302,   303,   304,
06085      307,   309,   310,   313,   316,   318,   319,   321,   324,   327,
06086      328,   330,   331,   335,   340,   346,   348,   351,   356,   357,
06087      362,   366,   758,   760,   764,   768,   769,   271,   384,   518,
06088        0,   108,   118,   389,   711,   757,   758,   764,   758,   503,
06089      509,   793,   511,    12,   794,   759,   764,   148,   413,   312,
06090      397,   131,   759,   148,   657,   152,   788,   783,   360,   661,
06091      134,   185,   296,   309,   715,   716,   788,   503,     5,    19,
06092       24,    25,    36,    37,    38,    42,    46,    48,    62,    63,
06093       67,    68,    70,    74,    75,    76,    81,    83,    86,   116,
06094      117,   119,   120,   124,   135,   139,   143,   148,   157,   158,
06095      166,   171,   175,   186,   189,   193,   196,   197,   201,   202,
06096      211,   212,   214,   215,   233,   239,   252,   253,   260,   266,
06097      269,   297,   298,   303,   305,   306,   308,   315,   318,   319,
06098      320,   325,   326,   327,   329,   340,   343,   344,   346,   347,
06099      352,   354,   355,   366,   376,   377,   382,   384,   386,   389,
06100      390,   539,   540,   541,   542,   545,   546,   547,   548,   549,
06101      554,   558,   743,   746,   750,   754,   755,   760,   762,   764,
06102      723,   801,   513,   159,   656,   670,   671,   757,   322,   794,
06103      521,     9,    94,   289,   290,   291,   292,   301,   527,   528,
06104      529,   530,   531,   771,    49,    63,    64,    71,   112,   134,
06105      151,   152,   168,   182,   238,   277,   309,   312,   313,   356,
06106      477,   703,   760,   761,   766,   778,   360,   507,   656,   788,
06107      757,   522,   518,   385,   764,   709,   708,   389,   493,   312,
06108      655,   656,   655,    39,   213,   213,   249,   795,   211,   758,
06109      413,   334,   478,   757,   117,   758,   764,   657,   213,    56,
06110      662,   296,   360,   388,   717,   670,   384,   384,   545,   539,
06111      568,   384,   384,   384,   384,   384,   384,   384,   384,   538,
06112      538,   384,   384,   384,   384,   743,   384,   384,   384,   384,
06113      384,   384,   384,   384,   384,   384,   539,   384,   720,   384,
06114      384,   384,   384,   384,   384,   384,   539,   384,   538,   384,
06115      384,   384,   384,   384,   384,   384,   384,   384,   384,   384,
06116      384,   384,   538,   384,   384,   384,   743,   384,   384,   384,
06117      538,   538,   384,   384,   384,   384,   384,   384,   545,   545,
06118      545,   539,   813,   814,   764,   764,   559,    12,   228,   364,
06119      111,   133,   163,   173,   207,   368,   369,   370,   543,    22,
06120       95,   162,   178,   201,   211,   248,   372,   373,   374,   375,
06121      376,   377,   378,   379,   380,   381,    47,   371,   762,   384,
06122      389,    56,   728,   514,   515,   757,   671,   669,   267,   796,
06123      795,   333,   802,   803,   378,   533,   534,   535,   531,   773,
06124      774,   775,   131,   162,   705,   384,    70,   312,   178,   359,
06125      706,   179,   637,   639,   704,   705,   296,   309,   637,   705,
06126      296,   296,   351,    59,   278,   385,   803,   805,   806,   807,
06127      516,    25,   139,   712,   744,   762,   764,   764,    86,   423,
06128      465,   757,   388,    39,   249,   117,   398,   757,   152,   697,
06129      219,   655,   258,   355,   663,   243,   716,   655,   718,   666,
06130      539,     9,    94,   564,   620,   358,   570,   539,   385,   539,
06131      567,   567,   539,   539,    94,   564,   620,   385,   385,   539,
06132      539,   539,   539,   754,   539,   813,    77,    78,    79,    80,
06133       81,   140,   141,   142,   143,   193,   194,   195,   196,   202,
06134      239,   268,   269,   357,   365,   366,   615,   617,    94,   561,
06135      539,   539,   539,   539,   615,   385,   384,   539,    94,   564,
06136      539,   539,    94,   564,   539,   539,   539,   542,   539,   539,
06137      539,   539,   539,   539,   564,   564,   539,   539,    94,   564,
06138      539,   130,   616,   617,   616,   539,    30,   174,   323,   539,
06139      539,   385,   385,   754,   564,   564,   539,   539,   385,   388,
06140      385,   271,   384,   810,   811,   539,   389,   390,   560,   783,
06141      539,   539,   539,   541,   120,   211,   214,   326,   335,     9,
06142       13,   541,   544,   542,   542,   384,   545,   542,    22,   162,
06143      178,   248,   542,   542,   542,   542,   542,   158,   542,   158,
06144      542,   542,   542,   542,   542,   760,   761,   765,   545,   550,
06145      764,   153,   388,   322,   271,   278,   347,   348,   384,   406,
06146      672,   675,   801,     9,    94,   809,   388,   524,   539,   752,
06147      764,   388,   134,   182,   220,   277,   776,   777,   780,   781,
06148      757,   378,   413,   757,   761,   539,   186,   215,   329,   640,
06149      641,   706,   764,   704,   706,   757,   706,   706,   284,   692,
06150      693,   754,   227,   633,   639,   808,    47,   492,   656,    87,
06151      254,   409,   410,   411,   423,   765,   396,   764,   359,   621,
06152      757,   184,   672,   388,   564,   385,   565,   539,   103,   358,
06153      569,    14,   385,   388,   385,   385,   388,   555,   385,   378,
06154      388,   388,   385,   385,   385,   385,   385,   131,   557,   385,
06155      388,   388,   388,   377,   539,   388,   564,   385,   385,   385,
06156      564,   385,   388,   385,   385,   162,   385,   388,   388,   388,
06157      388,   385,   385,   385,   388,   131,   388,   564,   385,   385,
06158      388,   388,   385,   131,   539,   131,   539,   131,   539,   131,
06159      385,   388,   385,   385,   385,   385,   388,   385,   567,   589,
06160      590,   591,   271,   384,   519,   333,   815,   387,   764,   134,
06161      182,   277,   779,   279,   120,   214,   326,   335,   384,    12,
06162      539,   813,   114,   625,   542,   384,   545,   542,   539,   539,
06163      535,   551,   552,   553,   389,   315,   763,   515,   757,   407,
06164      673,   384,   678,   683,   678,   385,   406,   674,   751,   752,
06165      754,   676,   804,   534,   131,   159,   525,   526,   632,   633,
06166      649,   536,   536,   389,   774,   324,   784,   785,   390,   782,
06167      704,   385,   764,   218,   388,   706,   704,   388,   691,   279,
06168      368,   681,    32,   637,   368,   682,     6,    10,    18,    40,
06169       51,    62,    87,    92,    93,    98,   104,   109,   121,   126,
06170      150,   200,   227,   250,   254,   265,   415,   417,   418,   421,
06171      422,   465,   494,   496,   497,   498,   629,   765,    68,   761,
06172      368,   388,   410,   388,   410,   368,   178,   384,   399,   404,
06173      414,   416,   417,   479,   480,   622,   632,   654,   219,   688,
06174      158,   539,   385,   539,   317,   539,   539,   106,    24,    28,
06175       42,    73,    76,    84,   160,   282,   321,   337,   566,   539,
06176      566,   567,   385,   158,   158,   663,   539,   567,   539,   539,
06177      539,   539,   385,   539,   385,   385,   539,   539,   539,   539,
06178      539,   567,   158,   539,   539,   539,   385,   539,   539,   539,
06179      131,   539,   131,   539,   131,   539,   539,   539,   385,   527,
06180      590,   519,   385,   809,   389,   389,   389,   783,   539,   813,
06181      541,   385,   388,   385,   545,    12,   539,   813,   625,   615,
06182      615,   539,   385,   388,   764,   724,   527,   679,   680,   754,
06183      684,   388,   384,   675,   385,   385,   388,   802,   517,   271,
06184      384,   386,   571,   572,   573,   574,   575,   584,   585,   599,
06185      650,   128,   184,   532,   649,   638,   639,   526,    14,   537,
06186      761,   764,   378,   764,   164,   681,   390,   783,   706,   112,
06187      356,   641,   641,   621,   693,   621,    86,   539,   687,   634,
06188       86,   463,   464,   765,    50,    60,   152,   170,   430,   433,
06189      434,   473,   475,   502,   502,   682,   502,   682,   322,    68,
06190      761,   168,   310,   127,   236,   475,   502,   168,   368,   368,
06191      310,   502,    32,    14,   322,   505,   368,   368,   415,    41,
06192       42,    47,   419,   388,   384,   389,   429,   435,   756,   764,
06193      368,   538,   120,   326,   410,   410,    83,   124,   186,   215,
06194      329,   644,   765,   757,   404,   405,   406,   427,   428,   429,
06195      430,   414,    14,   149,   253,   401,   730,   388,   416,   342,
06196      483,   219,   539,   179,   642,   100,   539,   385,   539,   317,
06197      384,   444,   444,   384,   442,   443,   160,   160,   385,   385,
06198      556,   539,   539,   385,   563,   633,   388,   388,   385,   388,
06199      385,   385,   385,   385,   388,   385,   385,   539,   385,   128,
06200      385,   385,   388,   388,   388,   385,   539,   385,   539,   385,
06201      539,   385,   385,   385,   533,   385,   812,   389,   489,   385,
06202      567,   541,   385,   388,   385,   536,   553,   149,   253,   729,
06203      533,   388,   681,   685,   686,   687,   683,   677,   675,   751,
06204      598,   764,    65,   154,   167,   175,   206,   260,   301,   583,
06205      621,   388,   757,   598,    99,   230,   645,   646,   651,   338,
06206      162,   761,   764,   389,   176,     9,    24,    86,   219,   539,
06207      787,   779,   681,   632,   539,   635,   753,   488,   756,    44,
06208      127,   236,   334,   432,   474,   431,   432,   488,   756,   644,
06209      756,   761,   464,   538,   170,   170,   756,   756,   765,   761,
06210      756,   630,   631,   754,   757,   120,   326,    54,    55,    86,
06211      101,   123,   246,   424,   425,   278,   682,   682,   498,   427,
06212      764,     7,   122,   504,   247,   431,   467,   436,   389,   644,
06213      766,   385,   385,   385,   388,    14,    14,   384,   405,   416,
06214       31,   137,   485,   757,   641,   689,   615,   539,   215,   215,
06215      385,   615,   615,   273,   562,   539,   539,   567,   539,   615,
06216      539,   539,   539,   539,   385,   385,   385,   592,   810,   764,
06217      385,   567,   537,   159,   408,   680,   687,   385,   388,   805,
06218      586,   593,   598,   571,   167,   167,   229,   600,   167,   175,
06219      260,   600,   584,   571,   136,   626,   573,    14,   618,   619,
06220      595,   596,   763,   763,   390,   647,   648,   280,   378,   243,
06221      251,   274,   786,   785,   539,   642,   388,    15,    89,   636,
06222      539,   170,   170,   475,   476,   488,   480,    98,   278,   499,
06223      488,   500,   388,   636,   464,    86,   345,   420,   385,   764,
06224      757,    23,    27,    28,    42,    73,    76,    84,    96,   110,
06225      123,   160,   166,   216,   245,   275,   316,   320,   321,   346,
06226      349,   350,   437,   439,   440,   441,   764,   414,   400,   414,
06227      428,   405,   402,   384,   170,   385,   385,   385,   388,   385,
06228      385,   744,   385,   385,   388,   385,   385,   385,   385,   385,
06229      385,   385,   426,   526,   638,   385,   725,   426,   687,   333,
06230      385,   632,   594,   387,   167,   584,   600,   600,   167,   219,
06231      219,   342,    32,   138,   623,   764,   609,   610,   527,   652,
06232      783,   388,   198,    52,   330,   243,   681,   753,   488,   480,
06233      384,    86,    86,   435,   437,   631,   384,   468,   384,   446,
06234      451,   452,    47,    86,   211,   214,   236,   334,   353,   449,
06235      450,   453,   454,   455,   466,    86,   219,   449,   450,   459,
06236      460,   461,   451,   442,   234,   384,   443,   448,   438,   442,
06237      446,   451,   442,   448,   453,   384,   459,   451,   451,   384,
06238       51,   462,   384,    18,    86,   275,   449,   450,   456,   457,
06239      458,   456,   389,   805,   401,   385,   802,   486,   487,   764,
06240      338,   215,   539,   532,   532,   312,   809,   619,   638,   574,
06241      571,   584,   167,   167,   571,   584,   577,   576,   578,   627,
06242      753,   624,   632,   607,   608,   533,    49,   731,   648,   787,
06243      636,   384,   384,   486,    76,   320,   376,   377,   745,   746,
06244      504,   462,   469,   764,   188,   470,   215,   282,   337,   445,
06245       86,   449,   450,    86,   449,   450,   463,   745,   214,   170,
06246      455,   170,    76,   212,   214,   320,   743,   749,   750,   338,
06247      461,   456,   448,   215,   384,   456,   445,   456,   215,   215,
06248      761,   215,    25,   139,   214,   376,   377,   743,   747,   750,
06249       86,   458,   764,   403,   385,   388,   636,   384,   694,   695,
06250      754,   385,   385,   757,   587,   219,   580,   584,   584,   219,
06251      582,   539,   539,   384,   361,   388,   628,   636,   539,   638,
06252      126,   149,   341,   602,   603,   606,   597,   105,   113,   226,
06253      314,   732,   733,   180,   734,   486,   486,   385,   750,   750,
06254      501,   385,   388,   132,   232,   283,   219,   471,   385,   367,
06255      447,   745,   120,   214,   326,   748,   743,   538,   743,   212,
06256      385,   490,   744,   447,   385,   385,   385,   750,   750,   348,
06257      805,    51,   169,   481,   482,   483,   484,   487,   215,   388,
06258      681,   726,   810,   579,   342,   581,   342,   614,   764,   753,
06259      475,   475,   603,   426,    32,    32,   105,    32,   733,   294,
06260      314,   735,   736,   385,   385,   481,   504,   764,    88,   338,
06261      538,   385,   388,   459,   451,   453,   761,   682,   484,   636,
06262      385,   695,   687,   731,   588,   539,   384,   539,   384,   385,
06263      388,   636,   128,   601,   601,   744,   744,    32,   744,    32,
06264       32,   736,   467,   481,    34,   213,   256,   278,   472,   472,
06265      453,   744,    83,   124,   139,   186,   215,   329,   643,   734,
06266      632,   614,   614,   764,   136,   167,   227,   605,   604,   744,
06267      744,   744,     4,    86,   214,   219,   219,   149,   737,   638,
06268      385,   385,    32,    32,   384,   384,   338,    88,   215,   384,
06269      739,   236,   611,   612,   613,   764,   613,   472,   472,   180,
06270      264,   738,   385,   390,   740,   741,   754,   278,   742,   385,
06271      388,   385,   783,   385,   388,   694,   612,   741
06272 };
06273 
06274 #define yyerrok   (yyerrstatus = 0)
06275 #define yyclearin (yychar = YYEMPTY)
06276 #define YYEMPTY   (-2)
06277 #define YYEOF   0
06278 
06279 #define YYACCEPT  goto yyacceptlab
06280 #define YYABORT   goto yyabortlab
06281 #define YYERROR   goto yyerrorlab
06282 
06283 
06284 /* Like YYERROR except do call yyerror.  This remains here temporarily
06285    to ease the transition to the new meaning of YYERROR, for GCC.
06286    Once GCC version 2 has supplanted version 1, this can go.  */
06287 
06288 #define YYFAIL    goto yyerrlab
06289 
06290 #define YYRECOVERING()  (!!yyerrstatus)
06291 
06292 #define YYBACKUP(Token, Value)          \
06293 do                \
06294   if (yychar == YYEMPTY && yylen == 1)        \
06295     {               \
06296       yychar = (Token);           \
06297       yylval = (Value);           \
06298       yytoken = YYTRANSLATE (yychar);       \
06299       YYPOPSTACK (1);           \
06300       goto yybackup;            \
06301     }               \
06302   else                \
06303     {               \
06304       yyerror (session, YY_("syntax error: cannot back up")); \
06305       YYERROR;              \
06306     }               \
06307 while (YYID (0))
06308 
06309 
06310 #define YYTERROR  1
06311 #define YYERRCODE 256
06312 
06313 
06314 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
06315    If N is 0, then set CURRENT to the empty location which ends
06316    the previous symbol: RHS[0] (always defined).  */
06317 
06318 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
06319 #ifndef YYLLOC_DEFAULT
06320 # define YYLLOC_DEFAULT(Current, Rhs, N)        \
06321     do                  \
06322       if (YYID (N))                                                    \
06323   {               \
06324     (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;  \
06325     (Current).first_column = YYRHSLOC (Rhs, 1).first_column;  \
06326     (Current).last_line    = YYRHSLOC (Rhs, N).last_line;   \
06327     (Current).last_column  = YYRHSLOC (Rhs, N).last_column; \
06328   }               \
06329       else                \
06330   {               \
06331     (Current).first_line   = (Current).last_line   =    \
06332       YYRHSLOC (Rhs, 0).last_line;        \
06333     (Current).first_column = (Current).last_column =    \
06334       YYRHSLOC (Rhs, 0).last_column;        \
06335   }               \
06336     while (YYID (0))
06337 #endif
06338 
06339 
06340 /* YY_LOCATION_PRINT -- Print the location on the stream.
06341    This macro was not mandated originally: define only if we know
06342    we won't break user code: when these are the locations we know.  */
06343 
06344 #ifndef YY_LOCATION_PRINT
06345 # if YYLTYPE_IS_TRIVIAL
06346 #  define YY_LOCATION_PRINT(File, Loc)      \
06347      fprintf (File, "%d.%d-%d.%d",      \
06348         (Loc).first_line, (Loc).first_column, \
06349         (Loc).last_line,  (Loc).last_column)
06350 # else
06351 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
06352 # endif
06353 #endif
06354 
06355 
06356 /* YYLEX -- calling `yylex' with the right arguments.  */
06357 
06358 #ifdef YYLEX_PARAM
06359 # define YYLEX yylex (&yylval, YYLEX_PARAM)
06360 #else
06361 # define YYLEX yylex (&yylval, session)
06362 #endif
06363 
06364 /* Enable debugging if requested.  */
06365 #if YYDEBUG
06366 
06367 # ifndef YYFPRINTF
06368 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
06369 #  define YYFPRINTF fprintf
06370 # endif
06371 
06372 # define YYDPRINTF(Args)      \
06373 do {            \
06374   if (yydebug)          \
06375     YYFPRINTF Args;       \
06376 } while (YYID (0))
06377 
06378 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)        \
06379 do {                    \
06380   if (yydebug)                  \
06381     {                   \
06382       YYFPRINTF (stderr, "%s ", Title);           \
06383       yy_symbol_print (stderr,              \
06384       Type, Value, session); \
06385       YYFPRINTF (stderr, "\n");             \
06386     }                   \
06387 } while (YYID (0))
06388 
06389 
06390 /*--------------------------------.
06391 | Print this symbol on YYOUTPUT.  |
06392 `--------------------------------*/
06393 
06394 /*ARGSUSED*/
06395 #if (defined __STDC__ || defined __C99__FUNC__ \
06396      || defined __cplusplus || defined _MSC_VER)
06397 static void
06398 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, drizzled::Session *session)
06399 #else
06400 static void
06401 yy_symbol_value_print (yyoutput, yytype, yyvaluep, session)
06402     FILE *yyoutput;
06403     int yytype;
06404     YYSTYPE const * const yyvaluep;
06405     drizzled::Session *session;
06406 #endif
06407 {
06408   if (!yyvaluep)
06409     return;
06410   YYUSE (session);
06411 # ifdef YYPRINT
06412   if (yytype < YYNTOKENS)
06413     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
06414 # else
06415   YYUSE (yyoutput);
06416 # endif
06417   switch (yytype)
06418     {
06419       default:
06420   break;
06421     }
06422 }
06423 
06424 
06425 /*--------------------------------.
06426 | Print this symbol on YYOUTPUT.  |
06427 `--------------------------------*/
06428 
06429 #if (defined __STDC__ || defined __C99__FUNC__ \
06430      || defined __cplusplus || defined _MSC_VER)
06431 static void
06432 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, drizzled::Session *session)
06433 #else
06434 static void
06435 yy_symbol_print (yyoutput, yytype, yyvaluep, session)
06436     FILE *yyoutput;
06437     int yytype;
06438     YYSTYPE const * const yyvaluep;
06439     drizzled::Session *session;
06440 #endif
06441 {
06442   if (yytype < YYNTOKENS)
06443     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
06444   else
06445     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
06446 
06447   yy_symbol_value_print (yyoutput, yytype, yyvaluep, session);
06448   YYFPRINTF (yyoutput, ")");
06449 }
06450 
06451 /*------------------------------------------------------------------.
06452 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
06453 | TOP (included).                                                   |
06454 `------------------------------------------------------------------*/
06455 
06456 #if (defined __STDC__ || defined __C99__FUNC__ \
06457      || defined __cplusplus || defined _MSC_VER)
06458 static void
06459 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
06460 #else
06461 static void
06462 yy_stack_print (yybottom, yytop)
06463     yytype_int16 *yybottom;
06464     yytype_int16 *yytop;
06465 #endif
06466 {
06467   YYFPRINTF (stderr, "Stack now");
06468   for (; yybottom <= yytop; yybottom++)
06469     {
06470       int yybot = *yybottom;
06471       YYFPRINTF (stderr, " %d", yybot);
06472     }
06473   YYFPRINTF (stderr, "\n");
06474 }
06475 
06476 # define YY_STACK_PRINT(Bottom, Top)        \
06477 do {                \
06478   if (yydebug)              \
06479     yy_stack_print ((Bottom), (Top));       \
06480 } while (YYID (0))
06481 
06482 
06483 /*------------------------------------------------.
06484 | Report that the YYRULE is going to be reduced.  |
06485 `------------------------------------------------*/
06486 
06487 #if (defined __STDC__ || defined __C99__FUNC__ \
06488      || defined __cplusplus || defined _MSC_VER)
06489 static void
06490 yy_reduce_print (YYSTYPE *yyvsp, int yyrule, drizzled::Session *session)
06491 #else
06492 static void
06493 yy_reduce_print (yyvsp, yyrule, session)
06494     YYSTYPE *yyvsp;
06495     int yyrule;
06496     drizzled::Session *session;
06497 #endif
06498 {
06499   int yynrhs = yyr2[yyrule];
06500   int yyi;
06501   unsigned long int yylno = yyrline[yyrule];
06502   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
06503        yyrule - 1, yylno);
06504   /* The symbols being reduced.  */
06505   for (yyi = 0; yyi < yynrhs; yyi++)
06506     {
06507       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
06508       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
06509            &(yyvsp[(yyi + 1) - (yynrhs)])
06510                      , session);
06511       YYFPRINTF (stderr, "\n");
06512     }
06513 }
06514 
06515 # define YY_REDUCE_PRINT(Rule)    \
06516 do {          \
06517   if (yydebug)        \
06518     yy_reduce_print (yyvsp, Rule, session); \
06519 } while (YYID (0))
06520 
06521 /* Nonzero means print parse trace.  It is left uninitialized so that
06522    multiple parsers can coexist.  */
06523 int yydebug;
06524 #else /* !YYDEBUG */
06525 # define YYDPRINTF(Args)
06526 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
06527 # define YY_STACK_PRINT(Bottom, Top)
06528 # define YY_REDUCE_PRINT(Rule)
06529 #endif /* !YYDEBUG */
06530 
06531 
06532 /* YYINITDEPTH -- initial size of the parser's stacks.  */
06533 #ifndef YYINITDEPTH
06534 # define YYINITDEPTH 200
06535 #endif
06536 
06537 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
06538    if the built-in stack extension method is used).
06539 
06540    Do not make this value too large; the results are undefined if
06541    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
06542    evaluated with infinite-precision integer arithmetic.  */
06543 
06544 #ifndef YYMAXDEPTH
06545 # define YYMAXDEPTH 10000
06546 #endif
06547 
06548 
06549 
06550 #if YYERROR_VERBOSE
06551 
06552 # ifndef yystrlen
06553 #  if defined __GLIBC__ && defined _STRING_H
06554 #   define yystrlen strlen
06555 #  else
06556 /* Return the length of YYSTR.  */
06557 #if (defined __STDC__ || defined __C99__FUNC__ \
06558      || defined __cplusplus || defined _MSC_VER)
06559 static YYSIZE_T
06560 yystrlen (const char *yystr)
06561 #else
06562 static YYSIZE_T
06563 yystrlen (yystr)
06564     const char *yystr;
06565 #endif
06566 {
06567   YYSIZE_T yylen;
06568   for (yylen = 0; yystr[yylen]; yylen++)
06569     continue;
06570   return yylen;
06571 }
06572 #  endif
06573 # endif
06574 
06575 # ifndef yystpcpy
06576 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
06577 #   define yystpcpy stpcpy
06578 #  else
06579 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
06580    YYDEST.  */
06581 #if (defined __STDC__ || defined __C99__FUNC__ \
06582      || defined __cplusplus || defined _MSC_VER)
06583 static char *
06584 yystpcpy (char *yydest, const char *yysrc)
06585 #else
06586 static char *
06587 yystpcpy (yydest, yysrc)
06588     char *yydest;
06589     const char *yysrc;
06590 #endif
06591 {
06592   char *yyd = yydest;
06593   const char *yys = yysrc;
06594 
06595   while ((*yyd++ = *yys++) != '\0')
06596     continue;
06597 
06598   return yyd - 1;
06599 }
06600 #  endif
06601 # endif
06602 
06603 # ifndef yytnamerr
06604 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
06605    quotes and backslashes, so that it's suitable for yyerror.  The
06606    heuristic is that double-quoting is unnecessary unless the string
06607    contains an apostrophe, a comma, or backslash (other than
06608    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
06609    null, do not copy; instead, return the length of what the result
06610    would have been.  */
06611 static YYSIZE_T
06612 yytnamerr (char *yyres, const char *yystr)
06613 {
06614   if (*yystr == '"')
06615     {
06616       YYSIZE_T yyn = 0;
06617       char const *yyp = yystr;
06618 
06619       for (;;)
06620   switch (*++yyp)
06621     {
06622     case '\'':
06623     case ',':
06624       goto do_not_strip_quotes;
06625 
06626     case '\\':
06627       if (*++yyp != '\\')
06628         goto do_not_strip_quotes;
06629       /* Fall through.  */
06630     default:
06631       if (yyres)
06632         yyres[yyn] = *yyp;
06633       yyn++;
06634       break;
06635 
06636     case '"':
06637       if (yyres)
06638         yyres[yyn] = '\0';
06639       return yyn;
06640     }
06641     do_not_strip_quotes: ;
06642     }
06643 
06644   if (! yyres)
06645     return yystrlen (yystr);
06646 
06647   return yystpcpy (yyres, yystr) - yyres;
06648 }
06649 # endif
06650 
06651 /* Copy into YYRESULT an error message about the unexpected token
06652    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
06653    including the terminating null byte.  If YYRESULT is null, do not
06654    copy anything; just return the number of bytes that would be
06655    copied.  As a special case, return 0 if an ordinary "syntax error"
06656    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
06657    size calculation.  */
06658 static YYSIZE_T
06659 yysyntax_error (char *yyresult, int yystate, int yychar)
06660 {
06661   int yyn = yypact[yystate];
06662 
06663   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
06664     return 0;
06665   else
06666     {
06667       int yytype = YYTRANSLATE (yychar);
06668       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
06669       YYSIZE_T yysize = yysize0;
06670       YYSIZE_T yysize1;
06671       int yysize_overflow = 0;
06672       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
06673       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
06674       int yyx;
06675 
06676 # if 0
06677       /* This is so xgettext sees the translatable formats that are
06678    constructed on the fly.  */
06679       YY_("syntax error, unexpected %s");
06680       YY_("syntax error, unexpected %s, expecting %s");
06681       YY_("syntax error, unexpected %s, expecting %s or %s");
06682       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
06683       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
06684 # endif
06685       char *yyfmt;
06686       char const *yyf;
06687       static char const yyunexpected[] = "syntax error, unexpected %s";
06688       static char const yyexpecting[] = ", expecting %s";
06689       static char const yyor[] = " or %s";
06690       char yyformat[sizeof yyunexpected
06691         + sizeof yyexpecting - 1
06692         + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
06693            * (sizeof yyor - 1))];
06694       char const *yyprefix = yyexpecting;
06695 
06696       /* Start YYX at -YYN if negative to avoid negative indexes in
06697    YYCHECK.  */
06698       int yyxbegin = yyn < 0 ? -yyn : 0;
06699 
06700       /* Stay within bounds of both yycheck and yytname.  */
06701       int yychecklim = YYLAST - yyn + 1;
06702       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
06703       int yycount = 1;
06704 
06705       yyarg[0] = yytname[yytype];
06706       yyfmt = yystpcpy (yyformat, yyunexpected);
06707 
06708       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
06709   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
06710     {
06711       if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
06712         {
06713     yycount = 1;
06714     yysize = yysize0;
06715     yyformat[sizeof yyunexpected - 1] = '\0';
06716     break;
06717         }
06718       yyarg[yycount++] = yytname[yyx];
06719       yysize1 = yysize + yytnamerr (0, yytname[yyx]);
06720       yysize_overflow |= (yysize1 < yysize);
06721       yysize = yysize1;
06722       yyfmt = yystpcpy (yyfmt, yyprefix);
06723       yyprefix = yyor;
06724     }
06725 
06726       yyf = YY_(yyformat);
06727       yysize1 = yysize + yystrlen (yyf);
06728       yysize_overflow |= (yysize1 < yysize);
06729       yysize = yysize1;
06730 
06731       if (yysize_overflow)
06732   return YYSIZE_MAXIMUM;
06733 
06734       if (yyresult)
06735   {
06736     /* Avoid sprintf, as that infringes on the user's name space.
06737        Don't have undefined behavior even if the translation
06738        produced a string with the wrong number of "%s"s.  */
06739     char *yyp = yyresult;
06740     int yyi = 0;
06741     while ((*yyp = *yyf) != '\0')
06742       {
06743         if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
06744     {
06745       yyp += yytnamerr (yyp, yyarg[yyi++]);
06746       yyf += 2;
06747     }
06748         else
06749     {
06750       yyp++;
06751       yyf++;
06752     }
06753       }
06754   }
06755       return yysize;
06756     }
06757 }
06758 #endif /* YYERROR_VERBOSE */
06759 
06760 
06761 /*-----------------------------------------------.
06762 | Release the memory associated to this symbol.  |
06763 `-----------------------------------------------*/
06764 
06765 /*ARGSUSED*/
06766 #if (defined __STDC__ || defined __C99__FUNC__ \
06767      || defined __cplusplus || defined _MSC_VER)
06768 static void
06769 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, drizzled::Session *session)
06770 #else
06771 static void
06772 yydestruct (yymsg, yytype, yyvaluep, session)
06773     const char *yymsg;
06774     int yytype;
06775     YYSTYPE *yyvaluep;
06776     drizzled::Session *session;
06777 #endif
06778 {
06779   YYUSE (yyvaluep);
06780   YYUSE (session);
06781 
06782   if (!yymsg)
06783     yymsg = "Deleting";
06784   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
06785 
06786   switch (yytype)
06787     {
06788 
06789       default:
06790   break;
06791     }
06792 }
06793 
06794 /* Prevent warnings from -Wmissing-prototypes.  */
06795 #ifdef YYPARSE_PARAM
06796 #if defined __STDC__ || defined __cplusplus
06797 int yyparse (void *YYPARSE_PARAM);
06798 #else
06799 int yyparse ();
06800 #endif
06801 #else /* ! YYPARSE_PARAM */
06802 #if defined __STDC__ || defined __cplusplus
06803 int yyparse (drizzled::Session *session);
06804 #else
06805 int yyparse ();
06806 #endif
06807 #endif /* ! YYPARSE_PARAM */
06808 
06809 
06810 
06811 
06812 
06813 /*-------------------------.
06814 | yyparse or yypush_parse.  |
06815 `-------------------------*/
06816 
06817 #ifdef YYPARSE_PARAM
06818 #if (defined __STDC__ || defined __C99__FUNC__ \
06819      || defined __cplusplus || defined _MSC_VER)
06820 int
06821 yyparse (void *YYPARSE_PARAM)
06822 #else
06823 int
06824 yyparse (YYPARSE_PARAM)
06825     void *YYPARSE_PARAM;
06826 #endif
06827 #else /* ! YYPARSE_PARAM */
06828 #if (defined __STDC__ || defined __C99__FUNC__ \
06829      || defined __cplusplus || defined _MSC_VER)
06830 int
06831 yyparse (drizzled::Session *session)
06832 #else
06833 int
06834 yyparse (session)
06835     drizzled::Session *session;
06836 #endif
06837 #endif
06838 {
06839 /* The lookahead symbol.  */
06840 int yychar;
06841 
06842 /* The semantic value of the lookahead symbol.  */
06843 YYSTYPE yylval;
06844 
06845     /* Number of syntax errors so far.  */
06846     int yynerrs;
06847 
06848     int yystate;
06849     /* Number of tokens to shift before error messages enabled.  */
06850     int yyerrstatus;
06851 
06852     /* The stacks and their tools:
06853        `yyss': related to states.
06854        `yyvs': related to semantic values.
06855 
06856        Refer to the stacks thru separate pointers, to allow yyoverflow
06857        to reallocate them elsewhere.  */
06858 
06859     /* The state stack.  */
06860     yytype_int16 yyssa[YYINITDEPTH];
06861     yytype_int16 *yyss;
06862     yytype_int16 *yyssp;
06863 
06864     /* The semantic value stack.  */
06865     YYSTYPE yyvsa[YYINITDEPTH];
06866     YYSTYPE *yyvs;
06867     YYSTYPE *yyvsp;
06868 
06869     YYSIZE_T yystacksize;
06870 
06871   int yyn;
06872   int yyresult;
06873   /* Lookahead token as an internal (translated) token number.  */
06874   int yytoken;
06875   /* The variables used to return semantic value and location from the
06876      action routines.  */
06877   YYSTYPE yyval;
06878 
06879 #if YYERROR_VERBOSE
06880   /* Buffer for error messages, and its allocated size.  */
06881   char yymsgbuf[128];
06882   char *yymsg = yymsgbuf;
06883   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
06884 #endif
06885 
06886 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
06887 
06888   /* The number of symbols on the RHS of the reduced rule.
06889      Keep to zero when no symbol should be popped.  */
06890   int yylen = 0;
06891 
06892   yytoken = 0;
06893   yyss = yyssa;
06894   yyvs = yyvsa;
06895   yystacksize = YYINITDEPTH;
06896 
06897   YYDPRINTF ((stderr, "Starting parse\n"));
06898 
06899   yystate = 0;
06900   yyerrstatus = 0;
06901   yynerrs = 0;
06902   yychar = YYEMPTY; /* Cause a token to be read.  */
06903 
06904   /* Initialize stack pointers.
06905      Waste one element of value and location stack
06906      so that they stay on the same level as the state stack.
06907      The wasted elements are never initialized.  */
06908   yyssp = yyss;
06909   yyvsp = yyvs;
06910 
06911   goto yysetstate;
06912 
06913 /*------------------------------------------------------------.
06914 | yynewstate -- Push a new state, which is found in yystate.  |
06915 `------------------------------------------------------------*/
06916  yynewstate:
06917   /* In all cases, when you get here, the value and location stacks
06918      have just been pushed.  So pushing a state here evens the stacks.  */
06919   yyssp++;
06920 
06921  yysetstate:
06922   *yyssp = yystate;
06923 
06924   if (yyss + yystacksize - 1 <= yyssp)
06925     {
06926       /* Get the current used size of the three stacks, in elements.  */
06927       YYSIZE_T yysize = yyssp - yyss + 1;
06928 
06929 #ifdef yyoverflow
06930       {
06931   /* Give user a chance to reallocate the stack.  Use copies of
06932      these so that the &'s don't force the real ones into
06933      memory.  */
06934   YYSTYPE *yyvs1 = yyvs;
06935   yytype_int16 *yyss1 = yyss;
06936 
06937   /* Each stack pointer address is followed by the size of the
06938      data in use in that stack, in bytes.  This used to be a
06939      conditional around just the two extra args, but that might
06940      be undefined if yyoverflow is a macro.  */
06941   yyoverflow (YY_("memory exhausted"),
06942         &yyss1, yysize * sizeof (*yyssp),
06943         &yyvs1, yysize * sizeof (*yyvsp),
06944         &yystacksize);
06945 
06946   yyss = yyss1;
06947   yyvs = yyvs1;
06948       }
06949 #else /* no yyoverflow */
06950 # ifndef YYSTACK_RELOCATE
06951       goto yyexhaustedlab;
06952 # else
06953       /* Extend the stack our own way.  */
06954       if (YYMAXDEPTH <= yystacksize)
06955   goto yyexhaustedlab;
06956       yystacksize *= 2;
06957       if (YYMAXDEPTH < yystacksize)
06958   yystacksize = YYMAXDEPTH;
06959 
06960       {
06961   yytype_int16 *yyss1 = yyss;
06962   union yyalloc *yyptr =
06963     (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
06964   if (! yyptr)
06965     goto yyexhaustedlab;
06966   YYSTACK_RELOCATE (yyss_alloc, yyss);
06967   YYSTACK_RELOCATE (yyvs_alloc, yyvs);
06968 #  undef YYSTACK_RELOCATE
06969   if (yyss1 != yyssa)
06970     YYSTACK_FREE (yyss1);
06971       }
06972 # endif
06973 #endif /* no yyoverflow */
06974 
06975       yyssp = yyss + yysize - 1;
06976       yyvsp = yyvs + yysize - 1;
06977 
06978       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
06979       (unsigned long int) yystacksize));
06980 
06981       if (yyss + yystacksize - 1 <= yyssp)
06982   YYABORT;
06983     }
06984 
06985   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
06986 
06987   if (yystate == YYFINAL)
06988     YYACCEPT;
06989 
06990   goto yybackup;
06991 
06992 /*-----------.
06993 | yybackup.  |
06994 `-----------*/
06995 yybackup:
06996 
06997   /* Do appropriate processing given the current state.  Read a
06998      lookahead token if we need one and don't already have one.  */
06999 
07000   /* First try to decide what to do without reference to lookahead token.  */
07001   yyn = yypact[yystate];
07002   if (yyn == YYPACT_NINF)
07003     goto yydefault;
07004 
07005   /* Not known => get a lookahead token if don't already have one.  */
07006 
07007   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
07008   if (yychar == YYEMPTY)
07009     {
07010       YYDPRINTF ((stderr, "Reading a token: "));
07011       yychar = YYLEX;
07012     }
07013 
07014   if (yychar <= YYEOF)
07015     {
07016       yychar = yytoken = YYEOF;
07017       YYDPRINTF ((stderr, "Now at end of input.\n"));
07018     }
07019   else
07020     {
07021       yytoken = YYTRANSLATE (yychar);
07022       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
07023     }
07024 
07025   /* If the proper action on seeing token YYTOKEN is to reduce or to
07026      detect an error, take that action.  */
07027   yyn += yytoken;
07028   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
07029     goto yydefault;
07030   yyn = yytable[yyn];
07031   if (yyn <= 0)
07032     {
07033       if (yyn == 0 || yyn == YYTABLE_NINF)
07034   goto yyerrlab;
07035       yyn = -yyn;
07036       goto yyreduce;
07037     }
07038 
07039   /* Count tokens shifted since error; after three, turn off error
07040      status.  */
07041   if (yyerrstatus)
07042     yyerrstatus--;
07043 
07044   /* Shift the lookahead token.  */
07045   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
07046 
07047   /* Discard the shifted token.  */
07048   yychar = YYEMPTY;
07049 
07050   yystate = yyn;
07051   *++yyvsp = yylval;
07052 
07053   goto yynewstate;
07054 
07055 
07056 /*-----------------------------------------------------------.
07057 | yydefault -- do the default action for the current state.  |
07058 `-----------------------------------------------------------*/
07059 yydefault:
07060   yyn = yydefact[yystate];
07061   if (yyn == 0)
07062     goto yyerrlab;
07063   goto yyreduce;
07064 
07065 
07066 /*-----------------------------.
07067 | yyreduce -- Do a reduction.  |
07068 `-----------------------------*/
07069 yyreduce:
07070   /* yyn is the number of a rule to reduce with.  */
07071   yylen = yyr2[yyn];
07072 
07073   /* If YYLEN is nonzero, implement the default value of the action:
07074      `$$ = $1'.
07075 
07076      Otherwise, the following line sets YYVAL to garbage.
07077      This behavior is undocumented and Bison
07078      users should not rely upon it.  Assigning to YYVAL
07079      unconditionally makes the parser a bit smaller, and it avoids a
07080      GCC warning that YYVAL may be used uninitialized.  */
07081   yyval = yyvsp[1-yylen];
07082 
07083 
07084   YY_REDUCE_PRINT (yyn);
07085   switch (yyn)
07086     {
07087         case 2:
07088 
07089 /* Line 1455 of yacc.c  */
07090 #line 808 "drizzled/sql_yacc.yy"
07091     {
07092             if (!(YYSession->lex().select_lex.options & OPTION_FOUND_COMMENT))
07093             {
07094               my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
07095               DRIZZLE_YYABORT;
07096             }
07097             else
07098             {
07099               YYSession->lex().statement= new statement::EmptyQuery(YYSession);
07100             }
07101           }
07102     break;
07103 
07104   case 3:
07105 
07106 /* Line 1455 of yacc.c  */
07107 #line 819 "drizzled/sql_yacc.yy"
07108     {}
07109     break;
07110 
07111   case 32:
07112 
07113 /* Line 1455 of yacc.c  */
07114 #line 861 "drizzled/sql_yacc.yy"
07115     {
07116             Lex.statement= new statement::catalog::Create(YYSession, (yyvsp[(3) - (3)].lex_str));
07117           }
07118     break;
07119 
07120   case 33:
07121 
07122 /* Line 1455 of yacc.c  */
07123 #line 865 "drizzled/sql_yacc.yy"
07124     {
07125             Lex.statement= new statement::CreateTable(YYSession, (yyvsp[(5) - (5)].table), (yyvsp[(2) - (5)].num));
07126 
07127             if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(5) - (5)].table), NULL,
07128                                                      TL_OPTION_UPDATING,
07129                                                      TL_WRITE))
07130               DRIZZLE_YYABORT;
07131             Lex.col_list.clear();
07132           }
07133     break;
07134 
07135   case 34:
07136 
07137 /* Line 1455 of yacc.c  */
07138 #line 875 "drizzled/sql_yacc.yy"
07139     {
07140             Lex.current_select= &Lex.select_lex;
07141           }
07142     break;
07143 
07144   case 35:
07145 
07146 /* Line 1455 of yacc.c  */
07147 #line 879 "drizzled/sql_yacc.yy"
07148     {
07149             Lex.statement= new statement::CreateIndex(YYSession);
07150           }
07151     break;
07152 
07153   case 36:
07154 
07155 /* Line 1455 of yacc.c  */
07156 #line 883 "drizzled/sql_yacc.yy"
07157     {
07158             if (not Lex.current_select->add_table_to_list(Lex.session, (yyvsp[(9) - (13)].table),
07159                                                             NULL,
07160                                                             TL_OPTION_UPDATING))
07161               DRIZZLE_YYABORT;
07162 
07163             parser::buildKey(&Lex, (yyvsp[(4) - (13)].key_type), (yyvsp[(6) - (13)].lex_str));
07164           }
07165     break;
07166 
07167   case 37:
07168 
07169 /* Line 1455 of yacc.c  */
07170 #line 892 "drizzled/sql_yacc.yy"
07171     {
07172             Lex.statement= new statement::CreateSchema(YYSession);
07173           }
07174     break;
07175 
07176   case 38:
07177 
07178 /* Line 1455 of yacc.c  */
07179 #line 896 "drizzled/sql_yacc.yy"
07180     {
07181             Lex.name= (yyvsp[(4) - (6)].lex_str);
07182           }
07183     break;
07184 
07185   case 39:
07186 
07187 /* Line 1455 of yacc.c  */
07188 #line 903 "drizzled/sql_yacc.yy"
07189     { }
07190     break;
07191 
07192   case 40:
07193 
07194 /* Line 1455 of yacc.c  */
07195 #line 905 "drizzled/sql_yacc.yy"
07196     {
07197              Lex.current_select->set_braces(1);
07198            }
07199     break;
07200 
07201   case 41:
07202 
07203 /* Line 1455 of yacc.c  */
07204 #line 908 "drizzled/sql_yacc.yy"
07205     {}
07206     break;
07207 
07208   case 42:
07209 
07210 /* Line 1455 of yacc.c  */
07211 #line 910 "drizzled/sql_yacc.yy"
07212     { }
07213     break;
07214 
07215   case 43:
07216 
07217 /* Line 1455 of yacc.c  */
07218 #line 912 "drizzled/sql_yacc.yy"
07219     { }
07220     break;
07221 
07222   case 44:
07223 
07224 /* Line 1455 of yacc.c  */
07225 #line 914 "drizzled/sql_yacc.yy"
07226     { }
07227     break;
07228 
07229   case 45:
07230 
07231 /* Line 1455 of yacc.c  */
07232 #line 918 "drizzled/sql_yacc.yy"
07233     {}
07234     break;
07235 
07236   case 46:
07237 
07238 /* Line 1455 of yacc.c  */
07239 #line 920 "drizzled/sql_yacc.yy"
07240     {
07241             Lex.current_select->set_braces(0);
07242           }
07243     break;
07244 
07245   case 47:
07246 
07247 /* Line 1455 of yacc.c  */
07248 #line 923 "drizzled/sql_yacc.yy"
07249     {}
07250     break;
07251 
07252   case 48:
07253 
07254 /* Line 1455 of yacc.c  */
07255 #line 925 "drizzled/sql_yacc.yy"
07256     {
07257             Lex.current_select->set_braces(1);
07258           }
07259     break;
07260 
07261   case 49:
07262 
07263 /* Line 1455 of yacc.c  */
07264 #line 928 "drizzled/sql_yacc.yy"
07265     {}
07266     break;
07267 
07268   case 50:
07269 
07270 /* Line 1455 of yacc.c  */
07271 #line 933 "drizzled/sql_yacc.yy"
07272     {
07273             ((statement::CreateTable *)(YYSession->lex().statement))->is_create_table_like= true;
07274 
07275             if (not YYSession->lex().select_lex.add_table_to_list(YYSession, (yyvsp[(2) - (2)].table), NULL, 0, TL_READ))
07276               DRIZZLE_YYABORT;
07277           }
07278     break;
07279 
07280   case 51:
07281 
07282 /* Line 1455 of yacc.c  */
07283 #line 943 "drizzled/sql_yacc.yy"
07284     {
07285           }
07286     break;
07287 
07288   case 52:
07289 
07290 /* Line 1455 of yacc.c  */
07291 #line 952 "drizzled/sql_yacc.yy"
07292     {
07293             Lex.lock_option= TL_READ;
07294             if (Lex.sql_command == SQLCOM_INSERT)
07295             {
07296               delete Lex.statement;
07297               Lex.statement= new statement::InsertSelect(YYSession);
07298             }
07299             else if (Lex.sql_command == SQLCOM_REPLACE)
07300             {
07301               delete Lex.statement;
07302               Lex.statement= new statement::ReplaceSelect(YYSession);
07303             }
07304             /*
07305               The following work only with the local list, the global list
07306               is created correctly in this case
07307             */
07308             Lex.current_select->table_list.save_and_clear(&Lex.save_list);
07309             init_select(&Lex);
07310             Lex.current_select->parsing_place= SELECT_LIST;
07311           }
07312     break;
07313 
07314   case 53:
07315 
07316 /* Line 1455 of yacc.c  */
07317 #line 973 "drizzled/sql_yacc.yy"
07318     {
07319             Lex.current_select->parsing_place= NO_MATTER;
07320           }
07321     break;
07322 
07323   case 54:
07324 
07325 /* Line 1455 of yacc.c  */
07326 #line 977 "drizzled/sql_yacc.yy"
07327     {
07328             /*
07329               The following work only with the local list, the global list
07330               is created correctly in this case
07331             */
07332             Lex.current_select->table_list.push_front(&Lex.save_list);
07333           }
07334     break;
07335 
07336   case 55:
07337 
07338 /* Line 1455 of yacc.c  */
07339 #line 987 "drizzled/sql_yacc.yy"
07340     {}
07341     break;
07342 
07343   case 63:
07344 
07345 /* Line 1455 of yacc.c  */
07346 #line 1002 "drizzled/sql_yacc.yy"
07347     {
07348             statement::CreateSchema *statement= (statement::CreateSchema *)Lex.statement;
07349             statement->schema_message.mutable_engine()->add_options()->set_name((yyvsp[(1) - (1)].lex_str).data());
07350           }
07351     break;
07352 
07353   case 64:
07354 
07355 /* Line 1455 of yacc.c  */
07356 #line 1007 "drizzled/sql_yacc.yy"
07357     {
07358             parser::buildReplicationOption(&Lex, true);
07359           }
07360     break;
07361 
07362   case 65:
07363 
07364 /* Line 1455 of yacc.c  */
07365 #line 1011 "drizzled/sql_yacc.yy"
07366     {
07367             parser::buildReplicationOption(&Lex, false);
07368           }
07369     break;
07370 
07371   case 66:
07372 
07373 /* Line 1455 of yacc.c  */
07374 #line 1015 "drizzled/sql_yacc.yy"
07375     {
07376             parser::buildSchemaDefiner(&Lex, identifier::User((yyvsp[(2) - (2)].lex_str)));
07377           }
07378     break;
07379 
07380   case 67:
07381 
07382 /* Line 1455 of yacc.c  */
07383 #line 1019 "drizzled/sql_yacc.yy"
07384     {
07385             parser::buildSchemaDefiner(&Lex, *session->user());
07386           }
07387     break;
07388 
07389   case 68:
07390 
07391 /* Line 1455 of yacc.c  */
07392 #line 1023 "drizzled/sql_yacc.yy"
07393     {
07394             parser::buildSchemaOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].lex_str));
07395           }
07396     break;
07397 
07398   case 69:
07399 
07400 /* Line 1455 of yacc.c  */
07401 #line 1027 "drizzled/sql_yacc.yy"
07402     {
07403             parser::buildSchemaOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].ulonglong_number));
07404           }
07405     break;
07406 
07407   case 70:
07408 
07409 /* Line 1455 of yacc.c  */
07410 #line 1033 "drizzled/sql_yacc.yy"
07411     { (yyval.num)= false; }
07412     break;
07413 
07414   case 71:
07415 
07416 /* Line 1455 of yacc.c  */
07417 #line 1034 "drizzled/sql_yacc.yy"
07418     { (yyval.num)= true; }
07419     break;
07420 
07421   case 72:
07422 
07423 /* Line 1455 of yacc.c  */
07424 #line 1038 "drizzled/sql_yacc.yy"
07425     { (yyval.boolean)= false; }
07426     break;
07427 
07428   case 73:
07429 
07430 /* Line 1455 of yacc.c  */
07431 #line 1039 "drizzled/sql_yacc.yy"
07432     { (yyval.boolean)= true; YYSession->lex().setExists(); }
07433     break;
07434 
07435   case 82:
07436 
07437 /* Line 1455 of yacc.c  */
07438 #line 1062 "drizzled/sql_yacc.yy"
07439     {
07440             Lex.table()->mutable_engine()->set_name((yyvsp[(3) - (3)].lex_str).data());
07441           }
07442     break;
07443 
07444   case 83:
07445 
07446 /* Line 1455 of yacc.c  */
07447 #line 1066 "drizzled/sql_yacc.yy"
07448     {
07449             Lex.table()->mutable_options()->set_comment((yyvsp[(3) - (3)].lex_str).data());
07450           }
07451     break;
07452 
07453   case 84:
07454 
07455 /* Line 1455 of yacc.c  */
07456 #line 1070 "drizzled/sql_yacc.yy"
07457     {
07458             Lex.table()->mutable_options()->set_auto_increment_value((yyvsp[(3) - (3)].ulonglong_number));
07459           }
07460     break;
07461 
07462   case 85:
07463 
07464 /* Line 1455 of yacc.c  */
07465 #line 1074 "drizzled/sql_yacc.yy"
07466     {
07467       message::set_is_replicated(*Lex.table(), true);
07468           }
07469     break;
07470 
07471   case 86:
07472 
07473 /* Line 1455 of yacc.c  */
07474 #line 1078 "drizzled/sql_yacc.yy"
07475     {
07476       message::set_is_replicated(*Lex.table(), false);
07477           }
07478     break;
07479 
07480   case 87:
07481 
07482 /* Line 1455 of yacc.c  */
07483 #line 1082 "drizzled/sql_yacc.yy"
07484     {
07485             message::set_definer(*Lex.table(), identifier::User((yyvsp[(2) - (2)].lex_str)));
07486           }
07487     break;
07488 
07489   case 88:
07490 
07491 /* Line 1455 of yacc.c  */
07492 #line 1086 "drizzled/sql_yacc.yy"
07493     {
07494             message::set_definer(*Lex.table(), *session->user());
07495           }
07496     break;
07497 
07498   case 89:
07499 
07500 /* Line 1455 of yacc.c  */
07501 #line 1090 "drizzled/sql_yacc.yy"
07502     {
07503             parser::buildEngineOption(&Lex, "ROW_FORMAT", (yyvsp[(3) - (3)].lex_str));
07504           }
07505     break;
07506 
07507   case 90:
07508 
07509 /* Line 1455 of yacc.c  */
07510 #line 1094 "drizzled/sql_yacc.yy"
07511     {
07512             parser::buildEngineOption(&Lex, "FILE", (yyvsp[(3) - (3)].lex_str));
07513           }
07514     break;
07515 
07516   case 91:
07517 
07518 /* Line 1455 of yacc.c  */
07519 #line 1098 "drizzled/sql_yacc.yy"
07520     {
07521             parser::buildEngineOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].lex_str));
07522           }
07523     break;
07524 
07525   case 92:
07526 
07527 /* Line 1455 of yacc.c  */
07528 #line 1102 "drizzled/sql_yacc.yy"
07529     {
07530             parser::buildEngineOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].ulonglong_number));
07531           }
07532     break;
07533 
07534   case 95:
07535 
07536 /* Line 1455 of yacc.c  */
07537 #line 1110 "drizzled/sql_yacc.yy"
07538     {}
07539     break;
07540 
07541   case 96:
07542 
07543 /* Line 1455 of yacc.c  */
07544 #line 1111 "drizzled/sql_yacc.yy"
07545     {}
07546     break;
07547 
07548   case 97:
07549 
07550 /* Line 1455 of yacc.c  */
07551 #line 1115 "drizzled/sql_yacc.yy"
07552     { }
07553     break;
07554 
07555   case 98:
07556 
07557 /* Line 1455 of yacc.c  */
07558 #line 1116 "drizzled/sql_yacc.yy"
07559     { }
07560     break;
07561 
07562   case 99:
07563 
07564 /* Line 1455 of yacc.c  */
07565 #line 1121 "drizzled/sql_yacc.yy"
07566     {
07567         }
07568     break;
07569 
07570   case 100:
07571 
07572 /* Line 1455 of yacc.c  */
07573 #line 1126 "drizzled/sql_yacc.yy"
07574     {
07575             if (not parser::buildCollation(&Lex, (yyvsp[(4) - (4)].charset)))
07576             {
07577               DRIZZLE_YYABORT;
07578             }
07579           }
07580     break;
07581 
07582   case 101:
07583 
07584 /* Line 1455 of yacc.c  */
07585 #line 1136 "drizzled/sql_yacc.yy"
07586     {
07587             ((statement::CreateSchema *)Lex.statement)->schema_message.set_collation((yyvsp[(4) - (4)].charset)->name);
07588           }
07589     break;
07590 
07591   case 102:
07592 
07593 /* Line 1455 of yacc.c  */
07594 #line 1142 "drizzled/sql_yacc.yy"
07595     {}
07596     break;
07597 
07598   case 103:
07599 
07600 /* Line 1455 of yacc.c  */
07601 #line 1143 "drizzled/sql_yacc.yy"
07602     {}
07603     break;
07604 
07605   case 104:
07606 
07607 /* Line 1455 of yacc.c  */
07608 #line 1144 "drizzled/sql_yacc.yy"
07609     {}
07610     break;
07611 
07612   case 105:
07613 
07614 /* Line 1455 of yacc.c  */
07615 #line 1145 "drizzled/sql_yacc.yy"
07616     {}
07617     break;
07618 
07619   case 106:
07620 
07621 /* Line 1455 of yacc.c  */
07622 #line 1146 "drizzled/sql_yacc.yy"
07623     {}
07624     break;
07625 
07626   case 107:
07627 
07628 /* Line 1455 of yacc.c  */
07629 #line 1147 "drizzled/sql_yacc.yy"
07630     {}
07631     break;
07632 
07633   case 108:
07634 
07635 /* Line 1455 of yacc.c  */
07636 #line 1152 "drizzled/sql_yacc.yy"
07637     {
07638             (yyval.lex_str).assign(YYSession->mem.strdup((yyvsp[(1) - (1)].symbol).data(), (yyvsp[(1) - (1)].symbol).length), (yyvsp[(1) - (1)].symbol).length);
07639           }
07640     break;
07641 
07642   case 109:
07643 
07644 /* Line 1455 of yacc.c  */
07645 #line 1158 "drizzled/sql_yacc.yy"
07646     {}
07647     break;
07648 
07649   case 116:
07650 
07651 /* Line 1455 of yacc.c  */
07652 #line 1175 "drizzled/sql_yacc.yy"
07653     {
07654             Lex.col_list.clear(); /* Alloced by memory::sql_alloc */
07655           }
07656     break;
07657 
07658   case 117:
07659 
07660 /* Line 1455 of yacc.c  */
07661 #line 1182 "drizzled/sql_yacc.yy"
07662     {
07663             parser::buildKey(&Lex, (yyvsp[(1) - (7)].key_type), (yyvsp[(2) - (7)].lex_str));
07664           }
07665     break;
07666 
07667   case 118:
07668 
07669 /* Line 1455 of yacc.c  */
07670 #line 1187 "drizzled/sql_yacc.yy"
07671     {
07672             parser::buildKey(&Lex, (yyvsp[(2) - (8)].key_type), (yyvsp[(3) - (8)].lex_str).data() ? (yyvsp[(3) - (8)].lex_str) : (yyvsp[(1) - (8)].lex_str));
07673           }
07674     break;
07675 
07676   case 119:
07677 
07678 /* Line 1455 of yacc.c  */
07679 #line 1191 "drizzled/sql_yacc.yy"
07680     {
07681             parser::buildForeignKey(&Lex, (yyvsp[(1) - (8)].lex_str).data() ? (yyvsp[(1) - (8)].lex_str) : (yyvsp[(4) - (8)].lex_str), (yyvsp[(8) - (8)].table));
07682           }
07683     break;
07684 
07685   case 120:
07686 
07687 /* Line 1455 of yacc.c  */
07688 #line 1195 "drizzled/sql_yacc.yy"
07689     {
07690             Lex.col_list.clear(); /* Alloced by memory::sql_alloc */
07691           }
07692     break;
07693 
07694   case 121:
07695 
07696 /* Line 1455 of yacc.c  */
07697 #line 1199 "drizzled/sql_yacc.yy"
07698     {
07699             Lex.col_list.clear(); /* Alloced by memory::sql_alloc */
07700           }
07701     break;
07702 
07703   case 125:
07704 
07705 /* Line 1455 of yacc.c  */
07706 #line 1214 "drizzled/sql_yacc.yy"
07707     { (yyval.lex_str)= null_lex_string(); }
07708     break;
07709 
07710   case 126:
07711 
07712 /* Line 1455 of yacc.c  */
07713 #line 1215 "drizzled/sql_yacc.yy"
07714     { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
07715     break;
07716 
07717   case 127:
07718 
07719 /* Line 1455 of yacc.c  */
07720 #line 1219 "drizzled/sql_yacc.yy"
07721     { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
07722     break;
07723 
07724   case 128:
07725 
07726 /* Line 1455 of yacc.c  */
07727 #line 1224 "drizzled/sql_yacc.yy"
07728     {
07729             parser::buildCreateFieldIdent(&Lex);
07730           }
07731     break;
07732 
07733   case 129:
07734 
07735 /* Line 1455 of yacc.c  */
07736 #line 1228 "drizzled/sql_yacc.yy"
07737     {
07738             statement::CreateTable *statement= (statement::CreateTable*)Lex.statement;
07739 
07740             if (Lex.field())
07741             {
07742               Lex.field()->set_name((yyvsp[(1) - (4)].lex_str).data());
07743             }
07744 
07745             if (add_field_to_list(Lex.session, (yyvsp[(1) - (4)].lex_str), (enum_field_types) (yyvsp[(3) - (4)].field_val),
07746                                   Lex.length, Lex.dec, Lex.type,
07747                                   statement->column_format,
07748                                   statement->default_value, statement->on_update_value,
07749                                   statement->comment,
07750                                   statement->change, &Lex.interval_list, Lex.charset))
07751               DRIZZLE_YYABORT;
07752 
07753             Lex.setField(NULL);
07754           }
07755     break;
07756 
07757   case 130:
07758 
07759 /* Line 1455 of yacc.c  */
07760 #line 1250 "drizzled/sql_yacc.yy"
07761     {
07762             (yyval.field_val)=parser::buildTimestampColumn(&Lex, NULL);
07763           }
07764     break;
07765 
07766   case 131:
07767 
07768 /* Line 1455 of yacc.c  */
07769 #line 1254 "drizzled/sql_yacc.yy"
07770     {
07771             (yyval.field_val)=parser::buildTimestampColumn(&Lex, (yyvsp[(3) - (5)].lex_str).data());
07772           }
07773     break;
07774 
07775   case 132:
07776 
07777 /* Line 1455 of yacc.c  */
07778 #line 1258 "drizzled/sql_yacc.yy"
07779     {
07780             (yyval.field_val)=DRIZZLE_TYPE_DATETIME;
07781 
07782             if (Lex.field())
07783               Lex.field()->set_type(message::Table::Field::DATETIME);
07784           }
07785     break;
07786 
07787   case 133:
07788 
07789 /* Line 1455 of yacc.c  */
07790 #line 1265 "drizzled/sql_yacc.yy"
07791     {
07792             (yyval.field_val)= (yyvsp[(1) - (2)].field_val);
07793           }
07794     break;
07795 
07796   case 134:
07797 
07798 /* Line 1455 of yacc.c  */
07799 #line 1269 "drizzled/sql_yacc.yy"
07800     {
07801             (yyval.field_val)= parser::buildVarcharColumn(&Lex, "1");
07802           }
07803     break;
07804 
07805   case 135:
07806 
07807 /* Line 1455 of yacc.c  */
07808 #line 1273 "drizzled/sql_yacc.yy"
07809     {
07810             (yyval.field_val)= parser::buildVarcharColumn(&Lex, (yyvsp[(3) - (5)].lex_str).data());
07811           }
07812     break;
07813 
07814   case 136:
07815 
07816 /* Line 1455 of yacc.c  */
07817 #line 1277 "drizzled/sql_yacc.yy"
07818     {
07819             (yyval.field_val)=DRIZZLE_TYPE_BLOB;
07820             Lex.length= NULL; /* use default length */
07821 
07822             if (Lex.field())
07823               Lex.field()->set_type(message::Table::Field::BLOB);
07824           }
07825     break;
07826 
07827   case 137:
07828 
07829 /* Line 1455 of yacc.c  */
07830 #line 1285 "drizzled/sql_yacc.yy"
07831     {
07832             Lex.interval_list.clear();
07833           }
07834     break;
07835 
07836   case 138:
07837 
07838 /* Line 1455 of yacc.c  */
07839 #line 1289 "drizzled/sql_yacc.yy"
07840     {
07841             (yyval.field_val)=DRIZZLE_TYPE_ENUM;
07842 
07843             if (Lex.field())
07844               Lex.field()->set_type(message::Table::Field::ENUM);
07845           }
07846     break;
07847 
07848   case 139:
07849 
07850 /* Line 1455 of yacc.c  */
07851 #line 1296 "drizzled/sql_yacc.yy"
07852     {
07853             (yyval.field_val)= parser::buildVarbinaryColumn(&Lex, (yyvsp[(3) - (5)].lex_str).data());
07854           }
07855     break;
07856 
07857   case 140:
07858 
07859 /* Line 1455 of yacc.c  */
07860 #line 1300 "drizzled/sql_yacc.yy"
07861     {
07862             assert ((yyvsp[(1) - (2)].field_val) == DRIZZLE_TYPE_DOUBLE);
07863             (yyval.field_val)= parser::buildDoubleColumn(&Lex);
07864           }
07865     break;
07866 
07867   case 141:
07868 
07869 /* Line 1455 of yacc.c  */
07870 #line 1305 "drizzled/sql_yacc.yy"
07871     {
07872             (yyval.field_val)=DRIZZLE_TYPE_DATE;
07873 
07874             if (Lex.field())
07875               Lex.field()->set_type(message::Table::Field::DATE);
07876           }
07877     break;
07878 
07879   case 142:
07880 
07881 /* Line 1455 of yacc.c  */
07882 #line 1312 "drizzled/sql_yacc.yy"
07883     {
07884             (yyval.field_val)=DRIZZLE_TYPE_TIME;
07885 
07886             if (Lex.field())
07887               Lex.field()->set_type(message::Table::Field::TIME);
07888           }
07889     break;
07890 
07891   case 143:
07892 
07893 /* Line 1455 of yacc.c  */
07894 #line 1319 "drizzled/sql_yacc.yy"
07895     {
07896             (yyval.field_val)= parser::buildBlobColumn(&Lex);
07897           }
07898     break;
07899 
07900   case 144:
07901 
07902 /* Line 1455 of yacc.c  */
07903 #line 1323 "drizzled/sql_yacc.yy"
07904     {
07905             (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07906           }
07907     break;
07908 
07909   case 145:
07910 
07911 /* Line 1455 of yacc.c  */
07912 #line 1327 "drizzled/sql_yacc.yy"
07913     {
07914             (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07915           }
07916     break;
07917 
07918   case 146:
07919 
07920 /* Line 1455 of yacc.c  */
07921 #line 1331 "drizzled/sql_yacc.yy"
07922     {
07923             (yyval.field_val)= parser::buildDecimalColumn(&Lex);
07924           }
07925     break;
07926 
07927   case 147:
07928 
07929 /* Line 1455 of yacc.c  */
07930 #line 1335 "drizzled/sql_yacc.yy"
07931     {
07932             (yyval.field_val)= parser::buildUuidColumn(&Lex);
07933           }
07934     break;
07935 
07936   case 148:
07937 
07938 /* Line 1455 of yacc.c  */
07939 #line 1339 "drizzled/sql_yacc.yy"
07940     {
07941             (yyval.field_val)= parser::buildIPv6Column(&Lex);
07942           }
07943     break;
07944 
07945   case 149:
07946 
07947 /* Line 1455 of yacc.c  */
07948 #line 1343 "drizzled/sql_yacc.yy"
07949     {
07950             (yyval.field_val)= parser::buildBooleanColumn(&Lex);
07951           }
07952     break;
07953 
07954   case 150:
07955 
07956 /* Line 1455 of yacc.c  */
07957 #line 1347 "drizzled/sql_yacc.yy"
07958     {
07959             (yyval.field_val)= parser::buildSerialColumn(&Lex);
07960           }
07961     break;
07962 
07963   case 151:
07964 
07965 /* Line 1455 of yacc.c  */
07966 #line 1354 "drizzled/sql_yacc.yy"
07967     { }
07968     break;
07969 
07970   case 152:
07971 
07972 /* Line 1455 of yacc.c  */
07973 #line 1356 "drizzled/sql_yacc.yy"
07974     { }
07975     break;
07976 
07977   case 153:
07978 
07979 /* Line 1455 of yacc.c  */
07980 #line 1358 "drizzled/sql_yacc.yy"
07981     { }
07982     break;
07983 
07984   case 154:
07985 
07986 /* Line 1455 of yacc.c  */
07987 #line 1363 "drizzled/sql_yacc.yy"
07988     {
07989             (yyval.field_val)= parser::buildIntegerColumn(&Lex, DRIZZLE_TYPE_LONG, ((yyvsp[(3) - (4)].boolean) or (yyvsp[(4) - (4)].boolean)));
07990           }
07991     break;
07992 
07993   case 155:
07994 
07995 /* Line 1455 of yacc.c  */
07996 #line 1367 "drizzled/sql_yacc.yy"
07997     {
07998             (yyval.field_val)= parser::buildIntegerColumn(&Lex, DRIZZLE_TYPE_LONGLONG, ((yyvsp[(3) - (4)].boolean) or (yyvsp[(4) - (4)].boolean)));
07999           }
08000     break;
08001 
08002   case 156:
08003 
08004 /* Line 1455 of yacc.c  */
08005 #line 1374 "drizzled/sql_yacc.yy"
08006     {
08007             (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
08008           }
08009     break;
08010 
08011   case 157:
08012 
08013 /* Line 1455 of yacc.c  */
08014 #line 1378 "drizzled/sql_yacc.yy"
08015     {
08016             (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
08017           }
08018     break;
08019 
08020   case 158:
08021 
08022 /* Line 1455 of yacc.c  */
08023 #line 1382 "drizzled/sql_yacc.yy"
08024     {
08025             (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
08026           }
08027     break;
08028 
08029   case 159:
08030 
08031 /* Line 1455 of yacc.c  */
08032 #line 1389 "drizzled/sql_yacc.yy"
08033     { Lex.dec=Lex.length= NULL; }
08034     break;
08035 
08036   case 160:
08037 
08038 /* Line 1455 of yacc.c  */
08039 #line 1391 "drizzled/sql_yacc.yy"
08040     { Lex.length=(yyvsp[(2) - (3)].lex_str).data(); Lex.dec= NULL; }
08041     break;
08042 
08043   case 161:
08044 
08045 /* Line 1455 of yacc.c  */
08046 #line 1393 "drizzled/sql_yacc.yy"
08047     {}
08048     break;
08049 
08050   case 162:
08051 
08052 /* Line 1455 of yacc.c  */
08053 #line 1398 "drizzled/sql_yacc.yy"
08054     {
08055             Lex.length= (yyvsp[(2) - (5)].lex_str).data();
08056             Lex.dec= (yyvsp[(4) - (5)].lex_str).data();
08057           }
08058     break;
08059 
08060   case 163:
08061 
08062 /* Line 1455 of yacc.c  */
08063 #line 1405 "drizzled/sql_yacc.yy"
08064     { Lex.length= NULL; /* use default length */ }
08065     break;
08066 
08067   case 164:
08068 
08069 /* Line 1455 of yacc.c  */
08070 #line 1406 "drizzled/sql_yacc.yy"
08071     { Lex.length= (yyvsp[(2) - (3)].lex_str).data(); }
08072     break;
08073 
08074   case 165:
08075 
08076 /* Line 1455 of yacc.c  */
08077 #line 1410 "drizzled/sql_yacc.yy"
08078     { (yyval.boolean)= false; }
08079     break;
08080 
08081   case 166:
08082 
08083 /* Line 1455 of yacc.c  */
08084 #line 1411 "drizzled/sql_yacc.yy"
08085     { (yyval.boolean)= false; }
08086     break;
08087 
08088   case 167:
08089 
08090 /* Line 1455 of yacc.c  */
08091 #line 1412 "drizzled/sql_yacc.yy"
08092     { (yyval.boolean)= true; Lex.type|= UNSIGNED_FLAG; }
08093     break;
08094 
08095   case 168:
08096 
08097 /* Line 1455 of yacc.c  */
08098 #line 1416 "drizzled/sql_yacc.yy"
08099     { }
08100     break;
08101 
08102   case 169:
08103 
08104 /* Line 1455 of yacc.c  */
08105 #line 1417 "drizzled/sql_yacc.yy"
08106     { }
08107     break;
08108 
08109   case 170:
08110 
08111 /* Line 1455 of yacc.c  */
08112 #line 1421 "drizzled/sql_yacc.yy"
08113     { (yyval.boolean)= false; }
08114     break;
08115 
08116   case 171:
08117 
08118 /* Line 1455 of yacc.c  */
08119 #line 1422 "drizzled/sql_yacc.yy"
08120     { (yyval.boolean)= true; Lex.type|= UNSIGNED_FLAG; }
08121     break;
08122 
08123   case 172:
08124 
08125 /* Line 1455 of yacc.c  */
08126 #line 1427 "drizzled/sql_yacc.yy"
08127     { Lex.dec=Lex.length= NULL; }
08128     break;
08129 
08130   case 173:
08131 
08132 /* Line 1455 of yacc.c  */
08133 #line 1429 "drizzled/sql_yacc.yy"
08134     { Lex.length=Lex.dec= NULL; }
08135     break;
08136 
08137   case 174:
08138 
08139 /* Line 1455 of yacc.c  */
08140 #line 1431 "drizzled/sql_yacc.yy"
08141     {}
08142     break;
08143 
08144   case 175:
08145 
08146 /* Line 1455 of yacc.c  */
08147 #line 1436 "drizzled/sql_yacc.yy"
08148     {
08149             Lex.type&= ~ NOT_NULL_FLAG;
08150           }
08151     break;
08152 
08153   case 176:
08154 
08155 /* Line 1455 of yacc.c  */
08156 #line 1440 "drizzled/sql_yacc.yy"
08157     {
08158             Lex.type|= NOT_NULL_FLAG;
08159 
08160             if (Lex.field())
08161             {
08162               Lex.field()->mutable_constraints()->set_is_notnull(true);
08163             }
08164           }
08165     break;
08166 
08167   case 177:
08168 
08169 /* Line 1455 of yacc.c  */
08170 #line 1452 "drizzled/sql_yacc.yy"
08171     {
08172             parser::buildPrimaryOnColumn(&Lex);
08173           }
08174     break;
08175 
08176   case 178:
08177 
08178 /* Line 1455 of yacc.c  */
08179 #line 1456 "drizzled/sql_yacc.yy"
08180     {
08181             parser::buildKeyOnColumn(&Lex);
08182           }
08183     break;
08184 
08185   case 179:
08186 
08187 /* Line 1455 of yacc.c  */
08188 #line 1460 "drizzled/sql_yacc.yy"
08189     {
08190             parser::buildKeyOnColumn(&Lex);
08191           }
08192     break;
08193 
08194   case 180:
08195 
08196 /* Line 1455 of yacc.c  */
08197 #line 1466 "drizzled/sql_yacc.yy"
08198     {}
08199     break;
08200 
08201   case 181:
08202 
08203 /* Line 1455 of yacc.c  */
08204 #line 1468 "drizzled/sql_yacc.yy"
08205     { }
08206     break;
08207 
08208   case 182:
08209 
08210 /* Line 1455 of yacc.c  */
08211 #line 1470 "drizzled/sql_yacc.yy"
08212     {
08213             statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08214 
08215             statement->default_value= (yyvsp[(3) - (3)].item);
08216             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08217           }
08218     break;
08219 
08220   case 183:
08221 
08222 /* Line 1455 of yacc.c  */
08223 #line 1477 "drizzled/sql_yacc.yy"
08224     { }
08225     break;
08226 
08227   case 184:
08228 
08229 /* Line 1455 of yacc.c  */
08230 #line 1481 "drizzled/sql_yacc.yy"
08231     { }
08232     break;
08233 
08234   case 185:
08235 
08236 /* Line 1455 of yacc.c  */
08237 #line 1483 "drizzled/sql_yacc.yy"
08238     { }
08239     break;
08240 
08241   case 186:
08242 
08243 /* Line 1455 of yacc.c  */
08244 #line 1485 "drizzled/sql_yacc.yy"
08245     {
08246             statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08247 
08248             statement->default_value= (yyvsp[(3) - (3)].item);
08249             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08250           }
08251     break;
08252 
08253   case 187:
08254 
08255 /* Line 1455 of yacc.c  */
08256 #line 1492 "drizzled/sql_yacc.yy"
08257     { }
08258     break;
08259 
08260   case 188:
08261 
08262 /* Line 1455 of yacc.c  */
08263 #line 1496 "drizzled/sql_yacc.yy"
08264     {}
08265     break;
08266 
08267   case 189:
08268 
08269 /* Line 1455 of yacc.c  */
08270 #line 1497 "drizzled/sql_yacc.yy"
08271     {}
08272     break;
08273 
08274   case 190:
08275 
08276 /* Line 1455 of yacc.c  */
08277 #line 1501 "drizzled/sql_yacc.yy"
08278     {}
08279     break;
08280 
08281   case 192:
08282 
08283 /* Line 1455 of yacc.c  */
08284 #line 1507 "drizzled/sql_yacc.yy"
08285     { }
08286     break;
08287 
08288   case 193:
08289 
08290 /* Line 1455 of yacc.c  */
08291 #line 1509 "drizzled/sql_yacc.yy"
08292     {
08293             statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08294 
08295             statement->default_value=(yyvsp[(2) - (2)].item);
08296             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08297           }
08298     break;
08299 
08300   case 194:
08301 
08302 /* Line 1455 of yacc.c  */
08303 #line 1516 "drizzled/sql_yacc.yy"
08304     {
08305             if (Lex.charset && !my_charset_same(Lex.charset,(yyvsp[(2) - (2)].charset)))
08306             {
08307               my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
08308                        (yyvsp[(2) - (2)].charset)->name,Lex.charset->csname);
08309               DRIZZLE_YYABORT;
08310             }
08311             else
08312             {
08313               Lex.charset=(yyvsp[(2) - (2)].charset);
08314             }
08315           }
08316     break;
08317 
08318   case 195:
08319 
08320 /* Line 1455 of yacc.c  */
08321 #line 1529 "drizzled/sql_yacc.yy"
08322     { }
08323     break;
08324 
08325   case 196:
08326 
08327 /* Line 1455 of yacc.c  */
08328 #line 1533 "drizzled/sql_yacc.yy"
08329     {}
08330     break;
08331 
08332   case 197:
08333 
08334 /* Line 1455 of yacc.c  */
08335 #line 1534 "drizzled/sql_yacc.yy"
08336     {}
08337     break;
08338 
08339   case 198:
08340 
08341 /* Line 1455 of yacc.c  */
08342 #line 1538 "drizzled/sql_yacc.yy"
08343     {}
08344     break;
08345 
08346   case 200:
08347 
08348 /* Line 1455 of yacc.c  */
08349 #line 1544 "drizzled/sql_yacc.yy"
08350     { }
08351     break;
08352 
08353   case 201:
08354 
08355 /* Line 1455 of yacc.c  */
08356 #line 1546 "drizzled/sql_yacc.yy"
08357     {
08358             parser::buildAutoOnColumn(&Lex);
08359           }
08360     break;
08361 
08362   case 202:
08363 
08364 /* Line 1455 of yacc.c  */
08365 #line 1550 "drizzled/sql_yacc.yy"
08366     {
08367             (void)parser::buildSerialColumn(&Lex);
08368           }
08369     break;
08370 
08371   case 203:
08372 
08373 /* Line 1455 of yacc.c  */
08374 #line 1554 "drizzled/sql_yacc.yy"
08375     {
08376             statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08377 
08378             statement->default_value=(yyvsp[(2) - (2)].item);
08379             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08380           }
08381     break;
08382 
08383   case 204:
08384 
08385 /* Line 1455 of yacc.c  */
08386 #line 1561 "drizzled/sql_yacc.yy"
08387     { }
08388     break;
08389 
08390   case 205:
08391 
08392 /* Line 1455 of yacc.c  */
08393 #line 1565 "drizzled/sql_yacc.yy"
08394     {}
08395     break;
08396 
08397   case 206:
08398 
08399 /* Line 1455 of yacc.c  */
08400 #line 1566 "drizzled/sql_yacc.yy"
08401     {}
08402     break;
08403 
08404   case 207:
08405 
08406 /* Line 1455 of yacc.c  */
08407 #line 1570 "drizzled/sql_yacc.yy"
08408     {}
08409     break;
08410 
08411   case 209:
08412 
08413 /* Line 1455 of yacc.c  */
08414 #line 1576 "drizzled/sql_yacc.yy"
08415     { }
08416     break;
08417 
08418   case 210:
08419 
08420 /* Line 1455 of yacc.c  */
08421 #line 1578 "drizzled/sql_yacc.yy"
08422     {
08423             statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08424 
08425             statement->default_value= new Item_func_now_local();
08426             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08427           }
08428     break;
08429 
08430   case 211:
08431 
08432 /* Line 1455 of yacc.c  */
08433 #line 1585 "drizzled/sql_yacc.yy"
08434     {
08435             statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08436 
08437             statement->default_value=(yyvsp[(2) - (2)].item);
08438             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
08439           }
08440     break;
08441 
08442   case 212:
08443 
08444 /* Line 1455 of yacc.c  */
08445 #line 1592 "drizzled/sql_yacc.yy"
08446     {
08447             ((statement::AlterTable*)Lex.statement)->on_update_value= new Item_func_now_local();
08448           }
08449     break;
08450 
08451   case 213:
08452 
08453 /* Line 1455 of yacc.c  */
08454 #line 1596 "drizzled/sql_yacc.yy"
08455     { }
08456     break;
08457 
08458   case 214:
08459 
08460 /* Line 1455 of yacc.c  */
08461 #line 1600 "drizzled/sql_yacc.yy"
08462     { }
08463     break;
08464 
08465   case 215:
08466 
08467 /* Line 1455 of yacc.c  */
08468 #line 1602 "drizzled/sql_yacc.yy"
08469     {
08470             statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
08471             statement->comment= (yyvsp[(2) - (2)].lex_str);
08472 
08473             if (Lex.field())
08474               Lex.field()->set_comment((yyvsp[(2) - (2)].lex_str).data());
08475           }
08476     break;
08477 
08478   case 216:
08479 
08480 /* Line 1455 of yacc.c  */
08481 #line 1613 "drizzled/sql_yacc.yy"
08482     {
08483             if (!((yyval.charset)=get_charset_by_name((yyvsp[(1) - (1)].lex_str).data())))
08484             {
08485               my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[(1) - (1)].lex_str).data());
08486               DRIZZLE_YYABORT;
08487             }
08488           }
08489     break;
08490 
08491   case 217:
08492 
08493 /* Line 1455 of yacc.c  */
08494 #line 1623 "drizzled/sql_yacc.yy"
08495     { (yyval.charset)=(yyvsp[(1) - (1)].charset); }
08496     break;
08497 
08498   case 218:
08499 
08500 /* Line 1455 of yacc.c  */
08501 #line 1624 "drizzled/sql_yacc.yy"
08502     { (yyval.charset)=NULL; }
08503     break;
08504 
08505   case 219:
08506 
08507 /* Line 1455 of yacc.c  */
08508 #line 1628 "drizzled/sql_yacc.yy"
08509     {}
08510     break;
08511 
08512   case 220:
08513 
08514 /* Line 1455 of yacc.c  */
08515 #line 1629 "drizzled/sql_yacc.yy"
08516     {}
08517     break;
08518 
08519   case 223:
08520 
08521 /* Line 1455 of yacc.c  */
08522 #line 1639 "drizzled/sql_yacc.yy"
08523     {
08524             (yyval.table)=(yyvsp[(2) - (5)].table);
08525           }
08526     break;
08527 
08528   case 224:
08529 
08530 /* Line 1455 of yacc.c  */
08531 #line 1646 "drizzled/sql_yacc.yy"
08532     { Lex.ref_list.clear(); }
08533     break;
08534 
08535   case 226:
08536 
08537 /* Line 1455 of yacc.c  */
08538 #line 1652 "drizzled/sql_yacc.yy"
08539     { Lex.ref_list.push_back(new Key_part_spec((yyvsp[(3) - (3)].lex_str), 0)); }
08540     break;
08541 
08542   case 227:
08543 
08544 /* Line 1455 of yacc.c  */
08545 #line 1654 "drizzled/sql_yacc.yy"
08546     {
08547             Lex.ref_list.clear();
08548             Lex.ref_list.push_back(new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0));
08549           }
08550     break;
08551 
08552   case 228:
08553 
08554 /* Line 1455 of yacc.c  */
08555 #line 1662 "drizzled/sql_yacc.yy"
08556     { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_UNDEFINED; }
08557     break;
08558 
08559   case 229:
08560 
08561 /* Line 1455 of yacc.c  */
08562 #line 1664 "drizzled/sql_yacc.yy"
08563     { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_FULL; }
08564     break;
08565 
08566   case 230:
08567 
08568 /* Line 1455 of yacc.c  */
08569 #line 1666 "drizzled/sql_yacc.yy"
08570     { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_PARTIAL; }
08571     break;
08572 
08573   case 231:
08574 
08575 /* Line 1455 of yacc.c  */
08576 #line 1668 "drizzled/sql_yacc.yy"
08577     { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_SIMPLE; }
08578     break;
08579 
08580   case 232:
08581 
08582 /* Line 1455 of yacc.c  */
08583 #line 1673 "drizzled/sql_yacc.yy"
08584     {
08585             ((statement::CreateTable*)Lex.statement)->fk_update_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08586             ((statement::CreateTable*)Lex.statement)->fk_delete_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08587           }
08588     break;
08589 
08590   case 233:
08591 
08592 /* Line 1455 of yacc.c  */
08593 #line 1678 "drizzled/sql_yacc.yy"
08594     {
08595             ((statement::CreateTable*)Lex.statement)->fk_update_opt= (yyvsp[(3) - (3)].m_fk_option);
08596             ((statement::CreateTable*)Lex.statement)->fk_delete_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08597           }
08598     break;
08599 
08600   case 234:
08601 
08602 /* Line 1455 of yacc.c  */
08603 #line 1683 "drizzled/sql_yacc.yy"
08604     {
08605             ((statement::CreateTable*)Lex.statement)->fk_update_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
08606             ((statement::CreateTable*)Lex.statement)->fk_delete_opt= (yyvsp[(3) - (3)].m_fk_option);
08607           }
08608     break;
08609 
08610   case 235:
08611 
08612 /* Line 1455 of yacc.c  */
08613 #line 1689 "drizzled/sql_yacc.yy"
08614     {
08615             ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(3) - (6)].m_fk_option);
08616             ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(6) - (6)].m_fk_option);
08617           }
08618     break;
08619 
08620   case 236:
08621 
08622 /* Line 1455 of yacc.c  */
08623 #line 1695 "drizzled/sql_yacc.yy"
08624     {
08625             ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(6) - (6)].m_fk_option);
08626             ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(3) - (6)].m_fk_option);
08627           }
08628     break;
08629 
08630   case 237:
08631 
08632 /* Line 1455 of yacc.c  */
08633 #line 1702 "drizzled/sql_yacc.yy"
08634     { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_RESTRICT; }
08635     break;
08636 
08637   case 238:
08638 
08639 /* Line 1455 of yacc.c  */
08640 #line 1703 "drizzled/sql_yacc.yy"
08641     { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_CASCADE; }
08642     break;
08643 
08644   case 239:
08645 
08646 /* Line 1455 of yacc.c  */
08647 #line 1704 "drizzled/sql_yacc.yy"
08648     { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_SET_NULL; }
08649     break;
08650 
08651   case 240:
08652 
08653 /* Line 1455 of yacc.c  */
08654 #line 1705 "drizzled/sql_yacc.yy"
08655     { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_NO_ACTION; }
08656     break;
08657 
08658   case 241:
08659 
08660 /* Line 1455 of yacc.c  */
08661 #line 1706 "drizzled/sql_yacc.yy"
08662     { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_SET_DEFAULT;  }
08663     break;
08664 
08665   case 242:
08666 
08667 /* Line 1455 of yacc.c  */
08668 #line 1710 "drizzled/sql_yacc.yy"
08669     { (yyval.key_type)= Key::MULTIPLE; }
08670     break;
08671 
08672   case 243:
08673 
08674 /* Line 1455 of yacc.c  */
08675 #line 1714 "drizzled/sql_yacc.yy"
08676     { (yyval.key_type)= Key::PRIMARY; }
08677     break;
08678 
08679   case 244:
08680 
08681 /* Line 1455 of yacc.c  */
08682 #line 1715 "drizzled/sql_yacc.yy"
08683     { (yyval.key_type)= Key::UNIQUE; }
08684     break;
08685 
08686   case 245:
08687 
08688 /* Line 1455 of yacc.c  */
08689 #line 1719 "drizzled/sql_yacc.yy"
08690     {}
08691     break;
08692 
08693   case 246:
08694 
08695 /* Line 1455 of yacc.c  */
08696 #line 1720 "drizzled/sql_yacc.yy"
08697     {}
08698     break;
08699 
08700   case 247:
08701 
08702 /* Line 1455 of yacc.c  */
08703 #line 1724 "drizzled/sql_yacc.yy"
08704     {}
08705     break;
08706 
08707   case 249:
08708 
08709 /* Line 1455 of yacc.c  */
08710 #line 1729 "drizzled/sql_yacc.yy"
08711     {}
08712     break;
08713 
08714   case 250:
08715 
08716 /* Line 1455 of yacc.c  */
08717 #line 1730 "drizzled/sql_yacc.yy"
08718     {}
08719     break;
08720 
08721   case 251:
08722 
08723 /* Line 1455 of yacc.c  */
08724 #line 1731 "drizzled/sql_yacc.yy"
08725     {}
08726     break;
08727 
08728   case 252:
08729 
08730 /* Line 1455 of yacc.c  */
08731 #line 1735 "drizzled/sql_yacc.yy"
08732     { (yyval.key_type)= Key::MULTIPLE; }
08733     break;
08734 
08735   case 253:
08736 
08737 /* Line 1455 of yacc.c  */
08738 #line 1736 "drizzled/sql_yacc.yy"
08739     { (yyval.key_type)= Key::UNIQUE; }
08740     break;
08741 
08742   case 254:
08743 
08744 /* Line 1455 of yacc.c  */
08745 #line 1740 "drizzled/sql_yacc.yy"
08746     {
08747             ((statement::CreateTable *)Lex.statement)->key_create_info= default_key_create_info;
08748           }
08749     break;
08750 
08751   case 257:
08752 
08753 /* Line 1455 of yacc.c  */
08754 #line 1757 "drizzled/sql_yacc.yy"
08755     {}
08756     break;
08757 
08758   case 261:
08759 
08760 /* Line 1455 of yacc.c  */
08761 #line 1767 "drizzled/sql_yacc.yy"
08762     { ((statement::CreateTable *)Lex.statement)->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
08763     break;
08764 
08765   case 263:
08766 
08767 /* Line 1455 of yacc.c  */
08768 #line 1773 "drizzled/sql_yacc.yy"
08769     { ((statement::CreateTable *)Lex.statement)->key_create_info.block_size= (yyvsp[(3) - (3)].ulong_num); }
08770     break;
08771 
08772   case 264:
08773 
08774 /* Line 1455 of yacc.c  */
08775 #line 1775 "drizzled/sql_yacc.yy"
08776     { ((statement::CreateTable *)Lex.statement)->key_create_info.comment= (yyvsp[(2) - (2)].lex_str); }
08777     break;
08778 
08779   case 265:
08780 
08781 /* Line 1455 of yacc.c  */
08782 #line 1779 "drizzled/sql_yacc.yy"
08783     { (yyval.key_alg)= HA_KEY_ALG_BTREE; }
08784     break;
08785 
08786   case 266:
08787 
08788 /* Line 1455 of yacc.c  */
08789 #line 1780 "drizzled/sql_yacc.yy"
08790     { (yyval.key_alg)= HA_KEY_ALG_HASH; }
08791     break;
08792 
08793   case 267:
08794 
08795 /* Line 1455 of yacc.c  */
08796 #line 1784 "drizzled/sql_yacc.yy"
08797     { Lex.col_list.push_back((yyvsp[(3) - (4)].key_part)); }
08798     break;
08799 
08800   case 268:
08801 
08802 /* Line 1455 of yacc.c  */
08803 #line 1785 "drizzled/sql_yacc.yy"
08804     { Lex.col_list.push_back((yyvsp[(1) - (2)].key_part)); }
08805     break;
08806 
08807   case 269:
08808 
08809 /* Line 1455 of yacc.c  */
08810 #line 1789 "drizzled/sql_yacc.yy"
08811     { (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0); }
08812     break;
08813 
08814   case 270:
08815 
08816 /* Line 1455 of yacc.c  */
08817 #line 1791 "drizzled/sql_yacc.yy"
08818     {
08819             int key_part_len= atoi((yyvsp[(3) - (4)].lex_str).data());
08820             if (!key_part_len)
08821             {
08822               my_error(ER_KEY_PART_0, MYF(0), (yyvsp[(1) - (4)].lex_str).data());
08823             }
08824             (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (4)].lex_str), (uint) key_part_len);
08825           }
08826     break;
08827 
08828   case 271:
08829 
08830 /* Line 1455 of yacc.c  */
08831 #line 1802 "drizzled/sql_yacc.yy"
08832     { (yyval.lex_str)= null_lex_string(); }
08833     break;
08834 
08835   case 272:
08836 
08837 /* Line 1455 of yacc.c  */
08838 #line 1803 "drizzled/sql_yacc.yy"
08839     { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
08840     break;
08841 
08842   case 273:
08843 
08844 /* Line 1455 of yacc.c  */
08845 #line 1807 "drizzled/sql_yacc.yy"
08846     { (yyval.lex_str)= null_lex_string(); }
08847     break;
08848 
08849   case 274:
08850 
08851 /* Line 1455 of yacc.c  */
08852 #line 1808 "drizzled/sql_yacc.yy"
08853     { (yyval.lex_str)= (yyvsp[(2) - (2)].lex_str); }
08854     break;
08855 
08856   case 275:
08857 
08858 /* Line 1455 of yacc.c  */
08859 #line 1812 "drizzled/sql_yacc.yy"
08860     { Lex.interval_list.push_back((yyvsp[(1) - (1)].string)); }
08861     break;
08862 
08863   case 276:
08864 
08865 /* Line 1455 of yacc.c  */
08866 #line 1813 "drizzled/sql_yacc.yy"
08867     { Lex.interval_list.push_back((yyvsp[(3) - (3)].string)); }
08868     break;
08869 
08870   case 277:
08871 
08872 /* Line 1455 of yacc.c  */
08873 #line 1821 "drizzled/sql_yacc.yy"
08874     {
08875             statement::AlterTable *statement= new statement::AlterTable(YYSession, (yyvsp[(5) - (5)].table));
08876             Lex.statement= statement;
08877             Lex.duplicates= DUP_ERROR;
08878             if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(5) - (5)].table), NULL, TL_OPTION_UPDATING))
08879             {
08880               DRIZZLE_YYABORT;
08881             }
08882 
08883             Lex.col_list.clear();
08884             Lex.select_lex.init_order();
08885             Lex.select_lex.db= ((TableList*) Lex.select_lex.table_list.first)->getSchemaName();
08886           }
08887     break;
08888 
08889   case 278:
08890 
08891 /* Line 1455 of yacc.c  */
08892 #line 1835 "drizzled/sql_yacc.yy"
08893     {}
08894     break;
08895 
08896   case 279:
08897 
08898 /* Line 1455 of yacc.c  */
08899 #line 1837 "drizzled/sql_yacc.yy"
08900     {
08901             Lex.statement= new statement::AlterSchema(YYSession);
08902           }
08903     break;
08904 
08905   case 280:
08906 
08907 /* Line 1455 of yacc.c  */
08908 #line 1841 "drizzled/sql_yacc.yy"
08909     {
08910             Lex.name= (yyvsp[(3) - (5)].lex_str);
08911             if (not Lex.name.data())
08912             {
08913               str_ref db = Lex.session->copy_db_to();
08914               if (db.empty())
08915                 DRIZZLE_YYABORT;
08916               Lex.name.assign(db.data(), db.size());
08917             }
08918           }
08919     break;
08920 
08921   case 282:
08922 
08923 /* Line 1455 of yacc.c  */
08924 #line 1856 "drizzled/sql_yacc.yy"
08925     {
08926             message::AlterTable::AlterTableOperation *alter_operation;
08927             alter_operation= Lex.alter_table()->add_operations();
08928             alter_operation->set_operation(message::AlterTable::AlterTableOperation::DISCARD_TABLESPACE);
08929           }
08930     break;
08931 
08932   case 283:
08933 
08934 /* Line 1455 of yacc.c  */
08935 #line 1862 "drizzled/sql_yacc.yy"
08936     {
08937             message::AlterTable::AlterTableOperation *alter_operation;
08938             alter_operation= Lex.alter_table()->add_operations();
08939             alter_operation->set_operation(message::AlterTable::AlterTableOperation::IMPORT_TABLESPACE);
08940           }
08941     break;
08942 
08943   case 285:
08944 
08945 /* Line 1455 of yacc.c  */
08946 #line 1872 "drizzled/sql_yacc.yy"
08947     {
08948             Lex.alter_table()->set_build_method(message::AlterTable::BUILD_DEFAULT);
08949           }
08950     break;
08951 
08952   case 286:
08953 
08954 /* Line 1455 of yacc.c  */
08955 #line 1876 "drizzled/sql_yacc.yy"
08956     {
08957             Lex.alter_table()->set_build_method(message::AlterTable::BUILD_ONLINE);
08958           }
08959     break;
08960 
08961   case 287:
08962 
08963 /* Line 1455 of yacc.c  */
08964 #line 1880 "drizzled/sql_yacc.yy"
08965     {
08966             Lex.alter_table()->set_build_method(message::AlterTable::BUILD_OFFLINE);
08967           }
08968     break;
08969 
08970   case 290:
08971 
08972 /* Line 1455 of yacc.c  */
08973 #line 1892 "drizzled/sql_yacc.yy"
08974     {
08975             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08976 
08977             statement->change=0;
08978             statement->alter_info.flags.set(ALTER_ADD_COLUMN);
08979           }
08980     break;
08981 
08982   case 291:
08983 
08984 /* Line 1455 of yacc.c  */
08985 #line 1901 "drizzled/sql_yacc.yy"
08986     { }
08987     break;
08988 
08989   case 292:
08990 
08991 /* Line 1455 of yacc.c  */
08992 #line 1903 "drizzled/sql_yacc.yy"
08993     {
08994             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
08995 
08996             statement->alter_info.flags.set(ALTER_ADD_INDEX);
08997           }
08998     break;
08999 
09000   case 293:
09001 
09002 /* Line 1455 of yacc.c  */
09003 #line 1909 "drizzled/sql_yacc.yy"
09004     {
09005             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09006 
09007             statement->alter_info.flags.set(ALTER_ADD_COLUMN);
09008             statement->alter_info.flags.set(ALTER_ADD_INDEX);
09009           }
09010     break;
09011 
09012   case 294:
09013 
09014 /* Line 1455 of yacc.c  */
09015 #line 1916 "drizzled/sql_yacc.yy"
09016     {
09017             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09018             statement->change= (yyvsp[(3) - (3)].lex_str).data();
09019             statement->alter_info.flags.set(ALTER_CHANGE_COLUMN);
09020           }
09021     break;
09022 
09023   case 296:
09024 
09025 /* Line 1455 of yacc.c  */
09026 #line 1923 "drizzled/sql_yacc.yy"
09027     {
09028             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09029             Lex.length= Lex.dec=0;
09030             Lex.type= 0;
09031             statement->default_value= statement->on_update_value= 0;
09032             statement->comment= null_lex_string();
09033             Lex.charset= NULL;
09034             statement->alter_info.flags.set(ALTER_CHANGE_COLUMN);
09035             statement->column_format= COLUMN_FORMAT_TYPE_DEFAULT;
09036 
09037             Lex.setField(NULL);
09038           }
09039     break;
09040 
09041   case 297:
09042 
09043 /* Line 1455 of yacc.c  */
09044 #line 1936 "drizzled/sql_yacc.yy"
09045     {
09046             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09047 
09048             if (add_field_to_list(Lex.session, (yyvsp[(3) - (6)].lex_str),
09049                                   (enum enum_field_types) (yyvsp[(5) - (6)].field_val),
09050                                   Lex.length, Lex.dec, Lex.type,
09051                                   statement->column_format,
09052                                   statement->default_value,
09053                                   statement->on_update_value,
09054                                   statement->comment,
09055                                   (yyvsp[(3) - (6)].lex_str).data(), &Lex.interval_list, Lex.charset))
09056               DRIZZLE_YYABORT;
09057           }
09058     break;
09059 
09060   case 299:
09061 
09062 /* Line 1455 of yacc.c  */
09063 #line 1951 "drizzled/sql_yacc.yy"
09064     {
09065             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09066 
09067             statement->alter_info.flags.set(ALTER_DROP_COLUMN);
09068             message::AlterTable::AlterTableOperation *operation;
09069             operation= Lex.alter_table()->add_operations();
09070             operation->set_operation(message::AlterTable::AlterTableOperation::DROP_COLUMN);
09071             operation->set_drop_name((yyvsp[(3) - (3)].lex_str).data());
09072           }
09073     break;
09074 
09075   case 300:
09076 
09077 /* Line 1455 of yacc.c  */
09078 #line 1961 "drizzled/sql_yacc.yy"
09079     {
09080             parser::buildAddAlterDropIndex(&Lex, (yyvsp[(4) - (4)].lex_str).data(), true);
09081           }
09082     break;
09083 
09084   case 301:
09085 
09086 /* Line 1455 of yacc.c  */
09087 #line 1965 "drizzled/sql_yacc.yy"
09088     {
09089             parser::buildAddAlterDropIndex(&Lex, "PRIMARY");
09090           }
09091     break;
09092 
09093   case 302:
09094 
09095 /* Line 1455 of yacc.c  */
09096 #line 1969 "drizzled/sql_yacc.yy"
09097     {
09098             parser::buildAddAlterDropIndex(&Lex, (yyvsp[(3) - (3)].lex_str).data());
09099           }
09100     break;
09101 
09102   case 303:
09103 
09104 /* Line 1455 of yacc.c  */
09105 #line 1973 "drizzled/sql_yacc.yy"
09106     {
09107             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09108 
09109             statement->alter_info.flags.set(ALTER_KEYS_ONOFF);
09110 
09111             message::AlterTable::AlterKeysOnOff *alter_keys_operation;
09112             alter_keys_operation= Lex.alter_table()->mutable_alter_keys_onoff();
09113             alter_keys_operation->set_enable(false);
09114           }
09115     break;
09116 
09117   case 304:
09118 
09119 /* Line 1455 of yacc.c  */
09120 #line 1983 "drizzled/sql_yacc.yy"
09121     {
09122             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09123 
09124             statement->alter_info.flags.set(ALTER_KEYS_ONOFF);
09125             message::AlterTable::AlterKeysOnOff *alter_keys_operation;
09126             alter_keys_operation= Lex.alter_table()->mutable_alter_keys_onoff();
09127             alter_keys_operation->set_enable(true);
09128           }
09129     break;
09130 
09131   case 305:
09132 
09133 /* Line 1455 of yacc.c  */
09134 #line 1992 "drizzled/sql_yacc.yy"
09135     {
09136             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09137 
09138             statement->alter_info.alter_list.push_back(AlterColumn((yyvsp[(3) - (6)].lex_str).data(),(yyvsp[(6) - (6)].item)));
09139             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
09140           }
09141     break;
09142 
09143   case 306:
09144 
09145 /* Line 1455 of yacc.c  */
09146 #line 1999 "drizzled/sql_yacc.yy"
09147     {
09148             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09149 
09150             statement->alter_info.alter_list.push_back(AlterColumn((yyvsp[(3) - (5)].lex_str).data(), NULL));
09151             statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
09152           }
09153     break;
09154 
09155   case 307:
09156 
09157 /* Line 1455 of yacc.c  */
09158 #line 2006 "drizzled/sql_yacc.yy"
09159     {
09160             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09161             Lex.select_lex.db= (yyvsp[(3) - (3)].table)->db.data();
09162             if (not Lex.select_lex.db)
09163             {
09164               str_ref db = Lex.session->copy_db_to();
09165               if (db.empty())
09166                 DRIZZLE_YYABORT;
09167               Lex.select_lex.db = db.data();
09168             }
09169 
09170             if (check_table_name((yyvsp[(3) - (3)].table)->table))
09171             {
09172               my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (3)].table)->table.data());
09173               DRIZZLE_YYABORT;
09174             }
09175 
09176             Lex.name= (yyvsp[(3) - (3)].table)->table;
09177             statement->alter_info.flags.set(ALTER_RENAME);
09178 
09179             message::AlterTable::RenameTable *rename_operation;
09180             rename_operation= Lex.alter_table()->mutable_rename();
09181             rename_operation->set_to_schema(Lex.select_lex.db);
09182             rename_operation->set_to_name(Lex.name.data());
09183           }
09184     break;
09185 
09186   case 308:
09187 
09188 /* Line 1455 of yacc.c  */
09189 #line 2032 "drizzled/sql_yacc.yy"
09190     {
09191             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09192 
09193             statement->create_info().table_charset=
09194             statement->create_info().default_table_charset= (yyvsp[(3) - (3)].charset);
09195             statement->create_info().used_fields|= (HA_CREATE_USED_CHARSET |
09196               HA_CREATE_USED_DEFAULT_CHARSET);
09197             statement->alter_info.flags.set(ALTER_CONVERT);
09198           }
09199     break;
09200 
09201   case 309:
09202 
09203 /* Line 1455 of yacc.c  */
09204 #line 2042 "drizzled/sql_yacc.yy"
09205     {
09206             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09207 
09208             statement->alter_info.flags.set(ALTER_OPTIONS);
09209           }
09210     break;
09211 
09212   case 310:
09213 
09214 /* Line 1455 of yacc.c  */
09215 #line 2048 "drizzled/sql_yacc.yy"
09216     {
09217             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09218 
09219             statement->alter_info.flags.set(ALTER_FORCE);
09220           }
09221     break;
09222 
09223   case 311:
09224 
09225 /* Line 1455 of yacc.c  */
09226 #line 2054 "drizzled/sql_yacc.yy"
09227     {
09228             statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
09229 
09230             statement->alter_info.flags.set(ALTER_ORDER);
09231           }
09232     break;
09233 
09234   case 312:
09235 
09236 /* Line 1455 of yacc.c  */
09237 #line 2062 "drizzled/sql_yacc.yy"
09238     {}
09239     break;
09240 
09241   case 313:
09242 
09243 /* Line 1455 of yacc.c  */
09244 #line 2063 "drizzled/sql_yacc.yy"
09245     {}
09246     break;
09247 
09248   case 314:
09249 
09250 /* Line 1455 of yacc.c  */
09251 #line 2067 "drizzled/sql_yacc.yy"
09252     { Lex.ignore= 0;}
09253     break;
09254 
09255   case 315:
09256 
09257 /* Line 1455 of yacc.c  */
09258 #line 2068 "drizzled/sql_yacc.yy"
09259     { Lex.ignore= 1;}
09260     break;
09261 
09262   case 316:
09263 
09264 /* Line 1455 of yacc.c  */
09265 #line 2072 "drizzled/sql_yacc.yy"
09266     {}
09267     break;
09268 
09269   case 317:
09270 
09271 /* Line 1455 of yacc.c  */
09272 #line 2074 "drizzled/sql_yacc.yy"
09273     {
09274             parser::storeAlterColumnPosition(&Lex, (yyvsp[(2) - (2)].lex_str).data());
09275           }
09276     break;
09277 
09278   case 318:
09279 
09280 /* Line 1455 of yacc.c  */
09281 #line 2078 "drizzled/sql_yacc.yy"
09282     {
09283             parser::storeAlterColumnPosition(&Lex, first_keyword);
09284           }
09285     break;
09286 
09287   case 319:
09288 
09289 /* Line 1455 of yacc.c  */
09290 #line 2084 "drizzled/sql_yacc.yy"
09291     {}
09292     break;
09293 
09294   case 320:
09295 
09296 /* Line 1455 of yacc.c  */
09297 #line 2085 "drizzled/sql_yacc.yy"
09298     {}
09299     break;
09300 
09301   case 321:
09302 
09303 /* Line 1455 of yacc.c  */
09304 #line 2086 "drizzled/sql_yacc.yy"
09305     {}
09306     break;
09307 
09308   case 322:
09309 
09310 /* Line 1455 of yacc.c  */
09311 #line 2091 "drizzled/sql_yacc.yy"
09312     {
09313             Lex.statement= new statement::StartTransaction(YYSession, (start_transaction_option_t)(yyvsp[(3) - (3)].num));
09314           }
09315     break;
09316 
09317   case 323:
09318 
09319 /* Line 1455 of yacc.c  */
09320 #line 2097 "drizzled/sql_yacc.yy"
09321     { (yyval.num) = START_TRANS_NO_OPTIONS; }
09322     break;
09323 
09324   case 324:
09325 
09326 /* Line 1455 of yacc.c  */
09327 #line 2099 "drizzled/sql_yacc.yy"
09328     {
09329             (yyval.num)= START_TRANS_OPT_WITH_CONS_SNAPSHOT;
09330           }
09331     break;
09332 
09333   case 325:
09334 
09335 /* Line 1455 of yacc.c  */
09336 #line 2106 "drizzled/sql_yacc.yy"
09337     {
09338             Lex.statement= new statement::Analyze(YYSession);
09339           }
09340     break;
09341 
09342   case 326:
09343 
09344 /* Line 1455 of yacc.c  */
09345 #line 2110 "drizzled/sql_yacc.yy"
09346     {}
09347     break;
09348 
09349   case 327:
09350 
09351 /* Line 1455 of yacc.c  */
09352 #line 2115 "drizzled/sql_yacc.yy"
09353     {
09354             Lex.statement= new statement::Check(YYSession);
09355           }
09356     break;
09357 
09358   case 328:
09359 
09360 /* Line 1455 of yacc.c  */
09361 #line 2119 "drizzled/sql_yacc.yy"
09362     {}
09363     break;
09364 
09365   case 329:
09366 
09367 /* Line 1455 of yacc.c  */
09368 #line 2124 "drizzled/sql_yacc.yy"
09369     {
09370             Lex.statement= new statement::RenameTable(YYSession);
09371           }
09372     break;
09373 
09374   case 330:
09375 
09376 /* Line 1455 of yacc.c  */
09377 #line 2128 "drizzled/sql_yacc.yy"
09378     {}
09379     break;
09380 
09381   case 333:
09382 
09383 /* Line 1455 of yacc.c  */
09384 #line 2138 "drizzled/sql_yacc.yy"
09385     {
09386             Select_Lex *sl= Lex.current_select;
09387             if (!sl->add_table_to_list(Lex.session, (yyvsp[(1) - (3)].table),NULL,TL_OPTION_UPDATING,
09388                                        TL_IGNORE) ||
09389                 !sl->add_table_to_list(Lex.session, (yyvsp[(3) - (3)].table),NULL,TL_OPTION_UPDATING,
09390                                        TL_IGNORE))
09391               DRIZZLE_YYABORT;
09392           }
09393     break;
09394 
09395   case 334:
09396 
09397 /* Line 1455 of yacc.c  */
09398 #line 2155 "drizzled/sql_yacc.yy"
09399     {
09400             Lex.statement= new statement::Select(YYSession);
09401           }
09402     break;
09403 
09404   case 337:
09405 
09406 /* Line 1455 of yacc.c  */
09407 #line 2168 "drizzled/sql_yacc.yy"
09408     {
09409             if (parser::setup_select_in_parentheses(YYSession, &Lex))
09410               DRIZZLE_YYABORT;
09411           }
09412     break;
09413 
09414   case 339:
09415 
09416 /* Line 1455 of yacc.c  */
09417 #line 2178 "drizzled/sql_yacc.yy"
09418     {
09419             if (parser::setup_select_in_parentheses(YYSession, &Lex))
09420               DRIZZLE_YYABORT;
09421           }
09422     break;
09423 
09424   case 341:
09425 
09426 /* Line 1455 of yacc.c  */
09427 #line 2187 "drizzled/sql_yacc.yy"
09428     {
09429             Select_Lex * sel= Lex.current_select;
09430             if (Lex.current_select->set_braces(0))
09431             {
09432               parser::my_parse_error(YYSession->m_lip);
09433               DRIZZLE_YYABORT;
09434             }
09435             if (sel->linkage == UNION_TYPE &&
09436                 sel->master_unit()->first_select()->braces)
09437             {
09438               parser::my_parse_error(YYSession->m_lip);
09439               DRIZZLE_YYABORT;
09440             }
09441           }
09442     break;
09443 
09444   case 343:
09445 
09446 /* Line 1455 of yacc.c  */
09447 #line 2205 "drizzled/sql_yacc.yy"
09448     {
09449             Select_Lex *sel= Lex.current_select;
09450             if (sel->linkage != UNION_TYPE)
09451               init_select(&Lex);
09452             Lex.current_select->parsing_place= SELECT_LIST;
09453           }
09454     break;
09455 
09456   case 344:
09457 
09458 /* Line 1455 of yacc.c  */
09459 #line 2212 "drizzled/sql_yacc.yy"
09460     {
09461             Lex.current_select->parsing_place= NO_MATTER;
09462           }
09463     break;
09464 
09465   case 346:
09466 
09467 /* Line 1455 of yacc.c  */
09468 #line 2219 "drizzled/sql_yacc.yy"
09469     {}
09470     break;
09471 
09472   case 351:
09473 
09474 /* Line 1455 of yacc.c  */
09475 #line 2229 "drizzled/sql_yacc.yy"
09476     {
09477             Lex.current_select->context.table_list=
09478               Lex.current_select->context.first_name_resolution_table=
09479                 reinterpret_cast<TableList *>(Lex.current_select->table_list.first);
09480           }
09481     break;
09482 
09483   case 353:
09484 
09485 /* Line 1455 of yacc.c  */
09486 #line 2239 "drizzled/sql_yacc.yy"
09487     { }
09488     break;
09489 
09490   case 356:
09491 
09492 /* Line 1455 of yacc.c  */
09493 #line 2249 "drizzled/sql_yacc.yy"
09494     {
09495             Lex.current_select->options|= SELECT_DISTINCT;
09496 
09497             if (Lex.current_select->options & SELECT_DISTINCT && Lex.current_select->options & SELECT_ALL)
09498             {
09499               my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
09500               DRIZZLE_YYABORT;
09501             }
09502           }
09503     break;
09504 
09505   case 357:
09506 
09507 /* Line 1455 of yacc.c  */
09508 #line 2259 "drizzled/sql_yacc.yy"
09509     {
09510             Lex.current_select->options|= SELECT_ALL;
09511 
09512             if (Lex.current_select->options & SELECT_DISTINCT && Lex.current_select->options & SELECT_ALL)
09513             {
09514               my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
09515               DRIZZLE_YYABORT;
09516             }
09517           }
09518     break;
09519 
09520   case 358:
09521 
09522 /* Line 1455 of yacc.c  */
09523 #line 2272 "drizzled/sql_yacc.yy"
09524     {
09525             Lex.current_select->options|= SELECT_SMALL_RESULT;
09526 
09527             if (Lex.current_select->options & SELECT_SMALL_RESULT && Lex.current_select->options & SELECT_BIG_RESULT)
09528             {
09529               my_error(ER_WRONG_USAGE, MYF(0), "SELECT_SMALL_RESULT", "SELECT_SMALL_RESULT");
09530               DRIZZLE_YYABORT;
09531             }
09532           }
09533     break;
09534 
09535   case 359:
09536 
09537 /* Line 1455 of yacc.c  */
09538 #line 2282 "drizzled/sql_yacc.yy"
09539     {
09540             Lex.current_select->options|= SELECT_BIG_RESULT;
09541 
09542             if (Lex.current_select->options & SELECT_SMALL_RESULT && Lex.current_select->options & SELECT_BIG_RESULT)
09543             {
09544               my_error(ER_WRONG_USAGE, MYF(0), "SELECT_SMALL_RESULT", "SELECT_SMALL_RESULT");
09545               DRIZZLE_YYABORT;
09546             }
09547           }
09548     break;
09549 
09550   case 360:
09551 
09552 /* Line 1455 of yacc.c  */
09553 #line 2295 "drizzled/sql_yacc.yy"
09554     { Lex.current_select->options|= SELECT_STRAIGHT_JOIN; }
09555     break;
09556 
09557   case 361:
09558 
09559 /* Line 1455 of yacc.c  */
09560 #line 2297 "drizzled/sql_yacc.yy"
09561     {
09562             if (check_simple_select(YYSession))
09563               DRIZZLE_YYABORT;
09564             Lex.current_select->options|= OPTION_BUFFER_RESULT;
09565           }
09566     break;
09567 
09568   case 362:
09569 
09570 /* Line 1455 of yacc.c  */
09571 #line 2303 "drizzled/sql_yacc.yy"
09572     { }
09573     break;
09574 
09575   case 363:
09576 
09577 /* Line 1455 of yacc.c  */
09578 #line 2305 "drizzled/sql_yacc.yy"
09579     { }
09580     break;
09581 
09582   case 364:
09583 
09584 /* Line 1455 of yacc.c  */
09585 #line 2307 "drizzled/sql_yacc.yy"
09586     {
09587             if (check_simple_select(YYSession))
09588               DRIZZLE_YYABORT;
09589             Lex.current_select->options|= OPTION_FOUND_ROWS;
09590           }
09591     break;
09592 
09593   case 366:
09594 
09595 /* Line 1455 of yacc.c  */
09596 #line 2317 "drizzled/sql_yacc.yy"
09597     {
09598             Lex.current_select->set_lock_for_tables(TL_WRITE);
09599           }
09600     break;
09601 
09602   case 367:
09603 
09604 /* Line 1455 of yacc.c  */
09605 #line 2321 "drizzled/sql_yacc.yy"
09606     {
09607             Lex.current_select->
09608               set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
09609           }
09610     break;
09611 
09612   case 370:
09613 
09614 /* Line 1455 of yacc.c  */
09615 #line 2331 "drizzled/sql_yacc.yy"
09616     {
09617             YYSession->add_item_to_list( new Item_field(&YYSession->lex().current_select->context, NULL, NULL, "*"));
09618             YYSession->lex().current_select->with_wild++;
09619           }
09620     break;
09621 
09622   case 371:
09623 
09624 /* Line 1455 of yacc.c  */
09625 #line 2339 "drizzled/sql_yacc.yy"
09626     {
09627             YYSession->add_item_to_list((yyvsp[(2) - (3)].item));
09628           }
09629     break;
09630 
09631   case 372:
09632 
09633 /* Line 1455 of yacc.c  */
09634 #line 2343 "drizzled/sql_yacc.yy"
09635     {
09636             assert((yyvsp[(1) - (4)].simple_string) < (yyvsp[(3) - (4)].simple_string));
09637 
09638             YYSession->add_item_to_list((yyvsp[(2) - (4)].item));
09639 
09640             if ((yyvsp[(4) - (4)].lex_str).data())
09641             {
09642               (yyvsp[(2) - (4)].item)->is_autogenerated_name= false;
09643               (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).data(), (yyvsp[(4) - (4)].lex_str).size(), system_charset_info);
09644             }
09645             else if (!(yyvsp[(2) - (4)].item)->name)
09646             {
09647               (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYSession->charset());
09648             }
09649           }
09650     break;
09651 
09652   case 373:
09653 
09654 /* Line 1455 of yacc.c  */
09655 #line 2361 "drizzled/sql_yacc.yy"
09656     {
09657             Lex_input_stream *lip= YYSession->m_lip;
09658             (yyval.simple_string)= lip->get_cpp_tok_start();
09659           }
09660     break;
09661 
09662   case 374:
09663 
09664 /* Line 1455 of yacc.c  */
09665 #line 2368 "drizzled/sql_yacc.yy"
09666     {
09667             Lex_input_stream *lip= YYSession->m_lip;
09668             (yyval.simple_string)= lip->get_cpp_tok_end();
09669           }
09670     break;
09671 
09672   case 375:
09673 
09674 /* Line 1455 of yacc.c  */
09675 #line 2375 "drizzled/sql_yacc.yy"
09676     { (yyval.lex_str)= null_lex_string();}
09677     break;
09678 
09679   case 376:
09680 
09681 /* Line 1455 of yacc.c  */
09682 #line 2376 "drizzled/sql_yacc.yy"
09683     { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
09684     break;
09685 
09686   case 377:
09687 
09688 /* Line 1455 of yacc.c  */
09689 #line 2377 "drizzled/sql_yacc.yy"
09690     { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
09691     break;
09692 
09693   case 378:
09694 
09695 /* Line 1455 of yacc.c  */
09696 #line 2378 "drizzled/sql_yacc.yy"
09697     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
09698     break;
09699 
09700   case 379:
09701 
09702 /* Line 1455 of yacc.c  */
09703 #line 2379 "drizzled/sql_yacc.yy"
09704     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
09705     break;
09706 
09707   case 380:
09708 
09709 /* Line 1455 of yacc.c  */
09710 #line 2383 "drizzled/sql_yacc.yy"
09711     {}
09712     break;
09713 
09714   case 381:
09715 
09716 /* Line 1455 of yacc.c  */
09717 #line 2384 "drizzled/sql_yacc.yy"
09718     {}
09719     break;
09720 
09721   case 382:
09722 
09723 /* Line 1455 of yacc.c  */
09724 #line 2390 "drizzled/sql_yacc.yy"
09725     {
09726             /*
09727               Design notes:
09728               Do not use a manually maintained stack like session->Lex.xxx_list,
09729               but use the internal bison stack ($$, $1 and $3) instead.
09730               Using the bison stack is:
09731               - more robust to changes in the grammar,
09732               - guaranteed to be in sync with the parser state,
09733               - better for performances (no memory allocation).
09734             */
09735             Item_cond_or *item1;
09736             Item_cond_or *item3;
09737             if (is_cond_or((yyvsp[(1) - (3)].item)))
09738             {
09739               item1= (Item_cond_or*) (yyvsp[(1) - (3)].item);
09740               if (is_cond_or((yyvsp[(3) - (3)].item)))
09741               {
09742                 item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
09743                 /*
09744                   (X1 OR X2) OR (Y1 OR Y2) ==> OR (X1, X2, Y1, Y2)
09745                 */
09746                 item3->add_at_head(item1->argument_list());
09747                 (yyval.item) = (yyvsp[(3) - (3)].item);
09748               }
09749               else
09750               {
09751                 /*
09752                   (X1 OR X2) OR Y ==> OR (X1, X2, Y)
09753                 */
09754                 item1->add((yyvsp[(3) - (3)].item));
09755                 (yyval.item) = (yyvsp[(1) - (3)].item);
09756               }
09757             }
09758             else if (is_cond_or((yyvsp[(3) - (3)].item)))
09759             {
09760               item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
09761               /*
09762                 X OR (Y1 OR Y2) ==> OR (X, Y1, Y2)
09763               */
09764               item3->add_at_head((yyvsp[(1) - (3)].item));
09765               (yyval.item) = (yyvsp[(3) - (3)].item);
09766             }
09767             else
09768             {
09769               /* X OR Y */
09770               (yyval.item) = new (YYSession->mem_root) Item_cond_or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09771             }
09772           }
09773     break;
09774 
09775   case 383:
09776 
09777 /* Line 1455 of yacc.c  */
09778 #line 2439 "drizzled/sql_yacc.yy"
09779     {
09780             /* XOR is a proprietary extension */
09781             (yyval.item) = new (YYSession->mem_root) Item_cond_xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09782           }
09783     break;
09784 
09785   case 384:
09786 
09787 /* Line 1455 of yacc.c  */
09788 #line 2444 "drizzled/sql_yacc.yy"
09789     {
09790             /* See comments in rule expr: expr or expr */
09791             Item_cond_and *item1;
09792             Item_cond_and *item3;
09793             if (is_cond_and((yyvsp[(1) - (3)].item)))
09794             {
09795               item1= (Item_cond_and*) (yyvsp[(1) - (3)].item);
09796               if (is_cond_and((yyvsp[(3) - (3)].item)))
09797               {
09798                 item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
09799                 /*
09800                   (X1 AND X2) AND (Y1 AND Y2) ==> AND (X1, X2, Y1, Y2)
09801                 */
09802                 item3->add_at_head(item1->argument_list());
09803                 (yyval.item) = (yyvsp[(3) - (3)].item);
09804               }
09805               else
09806               {
09807                 /*
09808                   (X1 AND X2) AND Y ==> AND (X1, X2, Y)
09809                 */
09810                 item1->add((yyvsp[(3) - (3)].item));
09811                 (yyval.item) = (yyvsp[(1) - (3)].item);
09812               }
09813             }
09814             else if (is_cond_and((yyvsp[(3) - (3)].item)))
09815             {
09816               item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
09817               /*
09818                 X AND (Y1 AND Y2) ==> AND (X, Y1, Y2)
09819               */
09820               item3->add_at_head((yyvsp[(1) - (3)].item));
09821               (yyval.item) = (yyvsp[(3) - (3)].item);
09822             }
09823             else
09824             {
09825               /* X AND Y */
09826               (yyval.item) = new (YYSession->mem_root) Item_cond_and((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
09827             }
09828           }
09829     break;
09830 
09831   case 385:
09832 
09833 /* Line 1455 of yacc.c  */
09834 #line 2485 "drizzled/sql_yacc.yy"
09835     { (yyval.item)= negate_expression(YYSession, (yyvsp[(2) - (2)].item)); }
09836     break;
09837 
09838   case 386:
09839 
09840 /* Line 1455 of yacc.c  */
09841 #line 2487 "drizzled/sql_yacc.yy"
09842     {
09843             (yyval.item)= new (YYSession->mem_root) Item_func_istrue((yyvsp[(1) - (3)].item));
09844           }
09845     break;
09846 
09847   case 387:
09848 
09849 /* Line 1455 of yacc.c  */
09850 #line 2491 "drizzled/sql_yacc.yy"
09851     {
09852             (yyval.item)= new (YYSession->mem_root) Item_func_isnottrue((yyvsp[(1) - (4)].item));
09853           }
09854     break;
09855 
09856   case 388:
09857 
09858 /* Line 1455 of yacc.c  */
09859 #line 2495 "drizzled/sql_yacc.yy"
09860     {
09861             (yyval.item)= new (YYSession->mem_root) Item_func_isfalse((yyvsp[(1) - (3)].item));
09862           }
09863     break;
09864 
09865   case 389:
09866 
09867 /* Line 1455 of yacc.c  */
09868 #line 2499 "drizzled/sql_yacc.yy"
09869     {
09870             (yyval.item)= new (YYSession->mem_root) Item_func_isnotfalse((yyvsp[(1) - (4)].item));
09871           }
09872     break;
09873 
09874   case 390:
09875 
09876 /* Line 1455 of yacc.c  */
09877 #line 2503 "drizzled/sql_yacc.yy"
09878     {
09879             (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item));
09880           }
09881     break;
09882 
09883   case 391:
09884 
09885 /* Line 1455 of yacc.c  */
09886 #line 2507 "drizzled/sql_yacc.yy"
09887     {
09888             (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item));
09889           }
09890     break;
09891 
09892   case 393:
09893 
09894 /* Line 1455 of yacc.c  */
09895 #line 2515 "drizzled/sql_yacc.yy"
09896     {
09897             (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item));
09898           }
09899     break;
09900 
09901   case 394:
09902 
09903 /* Line 1455 of yacc.c  */
09904 #line 2519 "drizzled/sql_yacc.yy"
09905     {
09906             (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item));
09907           }
09908     break;
09909 
09910   case 395:
09911 
09912 /* Line 1455 of yacc.c  */
09913 #line 2523 "drizzled/sql_yacc.yy"
09914     {
09915             (yyval.item)= new Item_func_equal((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09916           }
09917     break;
09918 
09919   case 396:
09920 
09921 /* Line 1455 of yacc.c  */
09922 #line 2527 "drizzled/sql_yacc.yy"
09923     {
09924             (yyval.item)= (*(yyvsp[(2) - (3)].boolfunc2creator))(0)->create((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
09925           }
09926     break;
09927 
09928   case 397:
09929 
09930 /* Line 1455 of yacc.c  */
09931 #line 2531 "drizzled/sql_yacc.yy"
09932     {
09933             (yyval.item)= all_any_subquery_creator((yyvsp[(1) - (6)].item), (yyvsp[(2) - (6)].boolfunc2creator), (yyvsp[(3) - (6)].num), (yyvsp[(5) - (6)].select_lex));
09934           }
09935     break;
09936 
09937   case 399:
09938 
09939 /* Line 1455 of yacc.c  */
09940 #line 2539 "drizzled/sql_yacc.yy"
09941     {
09942             (yyval.item)= new (YYSession->mem_root) Item_in_subselect((yyvsp[(1) - (5)].item), (yyvsp[(4) - (5)].select_lex));
09943           }
09944     break;
09945 
09946   case 400:
09947 
09948 /* Line 1455 of yacc.c  */
09949 #line 2543 "drizzled/sql_yacc.yy"
09950     {
09951             Item *item= new (YYSession->mem_root) Item_in_subselect((yyvsp[(1) - (6)].item), (yyvsp[(5) - (6)].select_lex));
09952             (yyval.item)= negate_expression(YYSession, item);
09953           }
09954     break;
09955 
09956   case 401:
09957 
09958 /* Line 1455 of yacc.c  */
09959 #line 2548 "drizzled/sql_yacc.yy"
09960     {
09961             (yyval.item)= parser::handle_sql2003_note184_exception(YYSession, (yyvsp[(1) - (5)].item), true, (yyvsp[(4) - (5)].item));
09962           }
09963     break;
09964 
09965   case 402:
09966 
09967 /* Line 1455 of yacc.c  */
09968 #line 2552 "drizzled/sql_yacc.yy"
09969     {
09970             (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(4) - (7)].item));
09971             (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(1) - (7)].item));
09972             (yyval.item)= new (YYSession->mem_root) Item_func_in(*(yyvsp[(6) - (7)].item_list));
09973           }
09974     break;
09975 
09976   case 403:
09977 
09978 /* Line 1455 of yacc.c  */
09979 #line 2558 "drizzled/sql_yacc.yy"
09980     {
09981             (yyval.item)= parser::handle_sql2003_note184_exception(YYSession, (yyvsp[(1) - (6)].item), false, (yyvsp[(5) - (6)].item));
09982           }
09983     break;
09984 
09985   case 404:
09986 
09987 /* Line 1455 of yacc.c  */
09988 #line 2562 "drizzled/sql_yacc.yy"
09989     {
09990             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
09991             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(1) - (8)].item));
09992             Item_func_in *item = new (YYSession->mem_root) Item_func_in(*(yyvsp[(7) - (8)].item_list));
09993             item->negate();
09994             (yyval.item)= item;
09995           }
09996     break;
09997 
09998   case 405:
09999 
10000 /* Line 1455 of yacc.c  */
10001 #line 2570 "drizzled/sql_yacc.yy"
10002     {
10003             (yyval.item)= new Item_func_between((yyvsp[(1) - (5)].item),(yyvsp[(3) - (5)].item),(yyvsp[(5) - (5)].item));
10004           }
10005     break;
10006 
10007   case 406:
10008 
10009 /* Line 1455 of yacc.c  */
10010 #line 2574 "drizzled/sql_yacc.yy"
10011     {
10012             Item_func_between *item= new Item_func_between((yyvsp[(1) - (6)].item),(yyvsp[(4) - (6)].item),(yyvsp[(6) - (6)].item));
10013             item->negate();
10014             (yyval.item)= item;
10015           }
10016     break;
10017 
10018   case 407:
10019 
10020 /* Line 1455 of yacc.c  */
10021 #line 2580 "drizzled/sql_yacc.yy"
10022     {
10023             (yyval.item)= new Item_func_like((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].item),Lex.escape_used);
10024           }
10025     break;
10026 
10027   case 408:
10028 
10029 /* Line 1455 of yacc.c  */
10030 #line 2584 "drizzled/sql_yacc.yy"
10031     {
10032             (yyval.item)= new Item_func_not(new Item_func_like((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].item), Lex.escape_used));
10033           }
10034     break;
10035 
10036   case 409:
10037 
10038 /* Line 1455 of yacc.c  */
10039 #line 2588 "drizzled/sql_yacc.yy"
10040     {
10041             List<Item> *args= new (YYSession->mem_root) List<Item>;
10042             args->push_back((yyvsp[(1) - (3)].item));
10043             args->push_back((yyvsp[(3) - (3)].item));
10044             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "regex", args)))
10045             {
10046               DRIZZLE_YYABORT;
10047             }
10048           }
10049     break;
10050 
10051   case 410:
10052 
10053 /* Line 1455 of yacc.c  */
10054 #line 2598 "drizzled/sql_yacc.yy"
10055     {
10056             List<Item> *args= new (YYSession->mem_root) List<Item>;
10057             args->push_back((yyvsp[(1) - (4)].item));
10058             args->push_back((yyvsp[(4) - (4)].item));
10059             args->push_back(new (YYSession->mem_root) Item_int(1));
10060             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "regex", args)))
10061             {
10062               DRIZZLE_YYABORT;
10063             }
10064           }
10065     break;
10066 
10067   case 412:
10068 
10069 /* Line 1455 of yacc.c  */
10070 #line 2613 "drizzled/sql_yacc.yy"
10071     {
10072             (yyval.item)= new function::bit::Or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10073           }
10074     break;
10075 
10076   case 413:
10077 
10078 /* Line 1455 of yacc.c  */
10079 #line 2617 "drizzled/sql_yacc.yy"
10080     {
10081             (yyval.item)= new function::bit::And((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10082           }
10083     break;
10084 
10085   case 414:
10086 
10087 /* Line 1455 of yacc.c  */
10088 #line 2621 "drizzled/sql_yacc.yy"
10089     {
10090             (yyval.item)= new function::bit::ShiftRight((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10091           }
10092     break;
10093 
10094   case 415:
10095 
10096 /* Line 1455 of yacc.c  */
10097 #line 2625 "drizzled/sql_yacc.yy"
10098     {
10099             (yyval.item)= new function::bit::ShiftLeft((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10100           }
10101     break;
10102 
10103   case 416:
10104 
10105 /* Line 1455 of yacc.c  */
10106 #line 2629 "drizzled/sql_yacc.yy"
10107     {
10108             (yyval.item)= new Item_func_plus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10109           }
10110     break;
10111 
10112   case 417:
10113 
10114 /* Line 1455 of yacc.c  */
10115 #line 2633 "drizzled/sql_yacc.yy"
10116     {
10117             (yyval.item)= new Item_func_minus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10118           }
10119     break;
10120 
10121   case 418:
10122 
10123 /* Line 1455 of yacc.c  */
10124 #line 2637 "drizzled/sql_yacc.yy"
10125     {
10126             (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),0);
10127           }
10128     break;
10129 
10130   case 419:
10131 
10132 /* Line 1455 of yacc.c  */
10133 #line 2641 "drizzled/sql_yacc.yy"
10134     {
10135             (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),1);
10136           }
10137     break;
10138 
10139   case 420:
10140 
10141 /* Line 1455 of yacc.c  */
10142 #line 2645 "drizzled/sql_yacc.yy"
10143     {
10144             (yyval.item)= new Item_func_mul((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10145           }
10146     break;
10147 
10148   case 421:
10149 
10150 /* Line 1455 of yacc.c  */
10151 #line 2649 "drizzled/sql_yacc.yy"
10152     {
10153             (yyval.item)= new Item_func_div(YYSession,(yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10154           }
10155     break;
10156 
10157   case 422:
10158 
10159 /* Line 1455 of yacc.c  */
10160 #line 2653 "drizzled/sql_yacc.yy"
10161     {
10162             (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10163           }
10164     break;
10165 
10166   case 423:
10167 
10168 /* Line 1455 of yacc.c  */
10169 #line 2657 "drizzled/sql_yacc.yy"
10170     {
10171             (yyval.item)= new Item_func_int_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10172           }
10173     break;
10174 
10175   case 424:
10176 
10177 /* Line 1455 of yacc.c  */
10178 #line 2661 "drizzled/sql_yacc.yy"
10179     {
10180             (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10181           }
10182     break;
10183 
10184   case 425:
10185 
10186 /* Line 1455 of yacc.c  */
10187 #line 2665 "drizzled/sql_yacc.yy"
10188     {
10189             (yyval.item)= new (YYSession->mem_root) function::bit::Xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10190           }
10191     break;
10192 
10193   case 427:
10194 
10195 /* Line 1455 of yacc.c  */
10196 #line 2672 "drizzled/sql_yacc.yy"
10197     { (yyval.boolfunc2creator) = &comp_eq_creator; }
10198     break;
10199 
10200   case 428:
10201 
10202 /* Line 1455 of yacc.c  */
10203 #line 2673 "drizzled/sql_yacc.yy"
10204     { (yyval.boolfunc2creator) = &comp_ge_creator; }
10205     break;
10206 
10207   case 429:
10208 
10209 /* Line 1455 of yacc.c  */
10210 #line 2674 "drizzled/sql_yacc.yy"
10211     { (yyval.boolfunc2creator) = &comp_gt_creator; }
10212     break;
10213 
10214   case 430:
10215 
10216 /* Line 1455 of yacc.c  */
10217 #line 2675 "drizzled/sql_yacc.yy"
10218     { (yyval.boolfunc2creator) = &comp_le_creator; }
10219     break;
10220 
10221   case 431:
10222 
10223 /* Line 1455 of yacc.c  */
10224 #line 2676 "drizzled/sql_yacc.yy"
10225     { (yyval.boolfunc2creator) = &comp_lt_creator; }
10226     break;
10227 
10228   case 432:
10229 
10230 /* Line 1455 of yacc.c  */
10231 #line 2677 "drizzled/sql_yacc.yy"
10232     { (yyval.boolfunc2creator) = &comp_ne_creator; }
10233     break;
10234 
10235   case 433:
10236 
10237 /* Line 1455 of yacc.c  */
10238 #line 2681 "drizzled/sql_yacc.yy"
10239     { (yyval.num) = 1; }
10240     break;
10241 
10242   case 434:
10243 
10244 /* Line 1455 of yacc.c  */
10245 #line 2682 "drizzled/sql_yacc.yy"
10246     { (yyval.num) = 0; }
10247     break;
10248 
10249   case 440:
10250 
10251 /* Line 1455 of yacc.c  */
10252 #line 2692 "drizzled/sql_yacc.yy"
10253     {
10254             Item *i1= new (YYSession->mem_root) Item_string((yyvsp[(3) - (3)].lex_str), YYSession->charset());
10255             (yyval.item)= new (YYSession->mem_root) Item_func_set_collation((yyvsp[(1) - (3)].item), i1);
10256           }
10257     break;
10258 
10259   case 443:
10260 
10261 /* Line 1455 of yacc.c  */
10262 #line 2699 "drizzled/sql_yacc.yy"
10263     {
10264             Lex.setSumExprUsed();
10265           }
10266     break;
10267 
10268   case 444:
10269 
10270 /* Line 1455 of yacc.c  */
10271 #line 2703 "drizzled/sql_yacc.yy"
10272     {
10273             (yyval.item)= new (YYSession->mem_root) Item_func_concat(*YYSession, (yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10274           }
10275     break;
10276 
10277   case 445:
10278 
10279 /* Line 1455 of yacc.c  */
10280 #line 2706 "drizzled/sql_yacc.yy"
10281     { (yyval.item)= (yyvsp[(2) - (2)].item); }
10282     break;
10283 
10284   case 446:
10285 
10286 /* Line 1455 of yacc.c  */
10287 #line 2708 "drizzled/sql_yacc.yy"
10288     {
10289       (yyval.item)= new (YYSession->mem_root) Item_func_neg((yyvsp[(2) - (2)].item));
10290     }
10291     break;
10292 
10293   case 447:
10294 
10295 /* Line 1455 of yacc.c  */
10296 #line 2712 "drizzled/sql_yacc.yy"
10297     {
10298             (yyval.item)= new (YYSession->mem_root) function::bit::Neg((yyvsp[(2) - (2)].item));
10299           }
10300     break;
10301 
10302   case 448:
10303 
10304 /* Line 1455 of yacc.c  */
10305 #line 2716 "drizzled/sql_yacc.yy"
10306     {
10307             (yyval.item)= new (YYSession->mem_root) Item_singlerow_subselect((yyvsp[(2) - (3)].select_lex));
10308           }
10309     break;
10310 
10311   case 449:
10312 
10313 /* Line 1455 of yacc.c  */
10314 #line 2719 "drizzled/sql_yacc.yy"
10315     { (yyval.item)= (yyvsp[(2) - (3)].item); }
10316     break;
10317 
10318   case 450:
10319 
10320 /* Line 1455 of yacc.c  */
10321 #line 2721 "drizzled/sql_yacc.yy"
10322     {
10323             (yyvsp[(4) - (5)].item_list)->push_front((yyvsp[(2) - (5)].item));
10324             (yyval.item)= new (YYSession->mem_root) Item_row(*(yyvsp[(4) - (5)].item_list));
10325           }
10326     break;
10327 
10328   case 451:
10329 
10330 /* Line 1455 of yacc.c  */
10331 #line 2726 "drizzled/sql_yacc.yy"
10332     {
10333             (yyvsp[(5) - (6)].item_list)->push_front((yyvsp[(3) - (6)].item));
10334             (yyval.item)= new (YYSession->mem_root) Item_row(*(yyvsp[(5) - (6)].item_list));
10335           }
10336     break;
10337 
10338   case 452:
10339 
10340 /* Line 1455 of yacc.c  */
10341 #line 2731 "drizzled/sql_yacc.yy"
10342     {
10343             (yyval.item)= new (YYSession->mem_root) Item_exists_subselect((yyvsp[(3) - (4)].select_lex));
10344           }
10345     break;
10346 
10347   case 453:
10348 
10349 /* Line 1455 of yacc.c  */
10350 #line 2734 "drizzled/sql_yacc.yy"
10351     { (yyval.item)= (yyvsp[(3) - (4)].item); }
10352     break;
10353 
10354   case 454:
10355 
10356 /* Line 1455 of yacc.c  */
10357 #line 2736 "drizzled/sql_yacc.yy"
10358     {
10359             (yyval.item)= create_func_cast(YYSession, (yyvsp[(2) - (2)].item), ITEM_CAST_CHAR, NULL, NULL,
10360                                  &my_charset_bin);
10361           }
10362     break;
10363 
10364   case 455:
10365 
10366 /* Line 1455 of yacc.c  */
10367 #line 2741 "drizzled/sql_yacc.yy"
10368     {
10369             (yyval.item)= create_func_cast(YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex.length, Lex.dec,
10370                                  Lex.charset);
10371             if (!(yyval.item))
10372               DRIZZLE_YYABORT;
10373           }
10374     break;
10375 
10376   case 456:
10377 
10378 /* Line 1455 of yacc.c  */
10379 #line 2748 "drizzled/sql_yacc.yy"
10380     { (yyval.item)= new (YYSession->mem_root) Item_func_case(* (yyvsp[(3) - (5)].item_list), (yyvsp[(2) - (5)].item), (yyvsp[(4) - (5)].item) ); }
10381     break;
10382 
10383   case 457:
10384 
10385 /* Line 1455 of yacc.c  */
10386 #line 2750 "drizzled/sql_yacc.yy"
10387     {
10388             (yyval.item)= create_func_cast(YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex.length, Lex.dec,
10389                                  Lex.charset);
10390             if (!(yyval.item))
10391               DRIZZLE_YYABORT;
10392           }
10393     break;
10394 
10395   case 458:
10396 
10397 /* Line 1455 of yacc.c  */
10398 #line 2757 "drizzled/sql_yacc.yy"
10399     {
10400             (yyval.item)= new (YYSession->mem_root) Item_default_value(Lex.current_context(),
10401                                                          (yyvsp[(3) - (4)].item));
10402           }
10403     break;
10404 
10405   case 459:
10406 
10407 /* Line 1455 of yacc.c  */
10408 #line 2762 "drizzled/sql_yacc.yy"
10409     {
10410             (yyval.item)= new (YYSession->mem_root) Item_insert_value(Lex.current_context(),
10411                                                         (yyvsp[(3) - (4)].item));
10412           }
10413     break;
10414 
10415   case 460:
10416 
10417 /* Line 1455 of yacc.c  */
10418 #line 2768 "drizzled/sql_yacc.yy"
10419     { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(5) - (5)].item),(yyvsp[(2) - (5)].item),(yyvsp[(3) - (5)].interval),0); }
10420     break;
10421 
10422   case 461:
10423 
10424 /* Line 1455 of yacc.c  */
10425 #line 2779 "drizzled/sql_yacc.yy"
10426     { (yyval.item)= new (YYSession->mem_root) Item_func_char(*(yyvsp[(3) - (4)].item_list)); }
10427     break;
10428 
10429   case 462:
10430 
10431 /* Line 1455 of yacc.c  */
10432 #line 2781 "drizzled/sql_yacc.yy"
10433     {
10434             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "user", NULL)))
10435             {
10436               DRIZZLE_YYABORT;
10437             }
10438             Lex.setCacheable(false);
10439           }
10440     break;
10441 
10442   case 463:
10443 
10444 /* Line 1455 of yacc.c  */
10445 #line 2789 "drizzled/sql_yacc.yy"
10446     { (yyval.item)= new (YYSession->mem_root) Item_date_typecast((yyvsp[(3) - (4)].item)); }
10447     break;
10448 
10449   case 464:
10450 
10451 /* Line 1455 of yacc.c  */
10452 #line 2791 "drizzled/sql_yacc.yy"
10453     { (yyval.item)= new (YYSession->mem_root) Item_func_dayofmonth((yyvsp[(3) - (4)].item)); }
10454     break;
10455 
10456   case 465:
10457 
10458 /* Line 1455 of yacc.c  */
10459 #line 2793 "drizzled/sql_yacc.yy"
10460     { (yyval.item)= new (YYSession->mem_root) Item_func_hour((yyvsp[(3) - (4)].item)); }
10461     break;
10462 
10463   case 466:
10464 
10465 /* Line 1455 of yacc.c  */
10466 #line 2795 "drizzled/sql_yacc.yy"
10467     { (yyval.item)= new (YYSession->mem_root) Item_func_insert(*YYSession, (yyvsp[(3) - (10)].item), (yyvsp[(5) - (10)].item), (yyvsp[(7) - (10)].item), (yyvsp[(9) - (10)].item)); }
10468     break;
10469 
10470   case 467:
10471 
10472 /* Line 1455 of yacc.c  */
10473 #line 2797 "drizzled/sql_yacc.yy"
10474     {
10475             List<Item> *list= new (YYSession->mem_root) List<Item>;
10476             list->push_front((yyvsp[(5) - (6)].item));
10477             list->push_front((yyvsp[(3) - (6)].item));
10478             Item_row *item= new (YYSession->mem_root) Item_row(*list);
10479             (yyval.item)= new (YYSession->mem_root) Item_func_interval(item);
10480           }
10481     break;
10482 
10483   case 468:
10484 
10485 /* Line 1455 of yacc.c  */
10486 #line 2805 "drizzled/sql_yacc.yy"
10487     {
10488             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
10489             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(3) - (8)].item));
10490             Item_row *item= new (YYSession->mem_root) Item_row(*(yyvsp[(7) - (8)].item_list));
10491             (yyval.item)= new (YYSession->mem_root) Item_func_interval(item);
10492           }
10493     break;
10494 
10495   case 469:
10496 
10497 /* Line 1455 of yacc.c  */
10498 #line 2812 "drizzled/sql_yacc.yy"
10499     { (yyval.item)= new (YYSession->mem_root) Item_func_left((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
10500     break;
10501 
10502   case 470:
10503 
10504 /* Line 1455 of yacc.c  */
10505 #line 2814 "drizzled/sql_yacc.yy"
10506     { (yyval.item)= new (YYSession->mem_root) Item_func_minute((yyvsp[(3) - (4)].item)); }
10507     break;
10508 
10509   case 471:
10510 
10511 /* Line 1455 of yacc.c  */
10512 #line 2816 "drizzled/sql_yacc.yy"
10513     { (yyval.item)= new (YYSession->mem_root) Item_func_month((yyvsp[(3) - (4)].item)); }
10514     break;
10515 
10516   case 472:
10517 
10518 /* Line 1455 of yacc.c  */
10519 #line 2818 "drizzled/sql_yacc.yy"
10520     { (yyval.item)= new (YYSession->mem_root) Item_func_right((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
10521     break;
10522 
10523   case 473:
10524 
10525 /* Line 1455 of yacc.c  */
10526 #line 2820 "drizzled/sql_yacc.yy"
10527     { (yyval.item)= new (YYSession->mem_root) Item_func_second((yyvsp[(3) - (4)].item)); }
10528     break;
10529 
10530   case 474:
10531 
10532 /* Line 1455 of yacc.c  */
10533 #line 2822 "drizzled/sql_yacc.yy"
10534     { (yyval.item)= new (YYSession->mem_root) Item_datetime_typecast((yyvsp[(3) - (4)].item)); }
10535     break;
10536 
10537   case 475:
10538 
10539 /* Line 1455 of yacc.c  */
10540 #line 2824 "drizzled/sql_yacc.yy"
10541     { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(3) - (4)].item)); }
10542     break;
10543 
10544   case 476:
10545 
10546 /* Line 1455 of yacc.c  */
10547 #line 2826 "drizzled/sql_yacc.yy"
10548     { (yyval.item)= new (YYSession->mem_root) Item_func_ltrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10549     break;
10550 
10551   case 477:
10552 
10553 /* Line 1455 of yacc.c  */
10554 #line 2828 "drizzled/sql_yacc.yy"
10555     { (yyval.item)= new (YYSession->mem_root) Item_func_rtrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10556     break;
10557 
10558   case 478:
10559 
10560 /* Line 1455 of yacc.c  */
10561 #line 2830 "drizzled/sql_yacc.yy"
10562     { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10563     break;
10564 
10565   case 479:
10566 
10567 /* Line 1455 of yacc.c  */
10568 #line 2832 "drizzled/sql_yacc.yy"
10569     { (yyval.item)= new (YYSession->mem_root) Item_func_ltrim((yyvsp[(5) - (6)].item)); }
10570     break;
10571 
10572   case 480:
10573 
10574 /* Line 1455 of yacc.c  */
10575 #line 2834 "drizzled/sql_yacc.yy"
10576     { (yyval.item)= new (YYSession->mem_root) Item_func_rtrim((yyvsp[(5) - (6)].item)); }
10577     break;
10578 
10579   case 481:
10580 
10581 /* Line 1455 of yacc.c  */
10582 #line 2836 "drizzled/sql_yacc.yy"
10583     { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(5) - (6)].item)); }
10584     break;
10585 
10586   case 482:
10587 
10588 /* Line 1455 of yacc.c  */
10589 #line 2838 "drizzled/sql_yacc.yy"
10590     { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
10591     break;
10592 
10593   case 483:
10594 
10595 /* Line 1455 of yacc.c  */
10596 #line 2840 "drizzled/sql_yacc.yy"
10597     {
10598             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "user", NULL)))
10599             {
10600               DRIZZLE_YYABORT;
10601             }
10602             Lex.setCacheable(false);
10603           }
10604     break;
10605 
10606   case 484:
10607 
10608 /* Line 1455 of yacc.c  */
10609 #line 2848 "drizzled/sql_yacc.yy"
10610     { (yyval.item)= new (YYSession->mem_root) Item_func_year((yyvsp[(3) - (4)].item)); }
10611     break;
10612 
10613   case 485:
10614 
10615 /* Line 1455 of yacc.c  */
10616 #line 2864 "drizzled/sql_yacc.yy"
10617     {
10618             (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
10619                                                              INTERVAL_DAY, 0);
10620           }
10621     break;
10622 
10623   case 486:
10624 
10625 /* Line 1455 of yacc.c  */
10626 #line 2869 "drizzled/sql_yacc.yy"
10627     { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 0); }
10628     break;
10629 
10630   case 487:
10631 
10632 /* Line 1455 of yacc.c  */
10633 #line 2871 "drizzled/sql_yacc.yy"
10634     {
10635             (yyval.item)= new (YYSession->mem_root) Item_func_curdate_local();
10636             Lex.setCacheable(false);
10637           }
10638     break;
10639 
10640   case 488:
10641 
10642 /* Line 1455 of yacc.c  */
10643 #line 2876 "drizzled/sql_yacc.yy"
10644     { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),0); }
10645     break;
10646 
10647   case 489:
10648 
10649 /* Line 1455 of yacc.c  */
10650 #line 2878 "drizzled/sql_yacc.yy"
10651     { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),1); }
10652     break;
10653 
10654   case 490:
10655 
10656 /* Line 1455 of yacc.c  */
10657 #line 2880 "drizzled/sql_yacc.yy"
10658     { (yyval.item)=new (YYSession->mem_root) Item_extract( (yyvsp[(3) - (6)].interval), (yyvsp[(5) - (6)].item)); }
10659     break;
10660 
10661   case 491:
10662 
10663 /* Line 1455 of yacc.c  */
10664 #line 2882 "drizzled/sql_yacc.yy"
10665     {
10666             (yyval.item)= new (YYSession->mem_root) Item_func_now_local();
10667             Lex.setCacheable(false);
10668           }
10669     break;
10670 
10671   case 492:
10672 
10673 /* Line 1455 of yacc.c  */
10674 #line 2887 "drizzled/sql_yacc.yy"
10675     {
10676             (yyval.item)= new (YYSession->mem_root) Item_func_now_local((yyvsp[(3) - (4)].item));
10677             Lex.setCacheable(false);
10678           }
10679     break;
10680 
10681   case 493:
10682 
10683 /* Line 1455 of yacc.c  */
10684 #line 2892 "drizzled/sql_yacc.yy"
10685     { (yyval.item) = new (YYSession->mem_root) Item_func_locate((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
10686     break;
10687 
10688   case 494:
10689 
10690 /* Line 1455 of yacc.c  */
10691 #line 2894 "drizzled/sql_yacc.yy"
10692     {
10693             (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
10694                                                              INTERVAL_DAY, 1);
10695           }
10696     break;
10697 
10698   case 495:
10699 
10700 /* Line 1455 of yacc.c  */
10701 #line 2899 "drizzled/sql_yacc.yy"
10702     { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 1); }
10703     break;
10704 
10705   case 496:
10706 
10707 /* Line 1455 of yacc.c  */
10708 #line 2901 "drizzled/sql_yacc.yy"
10709     {
10710             List<Item> *args= new (YYSession->mem_root) List<Item>;
10711             args->push_back((yyvsp[(3) - (8)].item));
10712             args->push_back((yyvsp[(5) - (8)].item));
10713             args->push_back((yyvsp[(7) - (8)].item));
10714             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10715             {
10716               DRIZZLE_YYABORT;
10717             }
10718           }
10719     break;
10720 
10721   case 497:
10722 
10723 /* Line 1455 of yacc.c  */
10724 #line 2912 "drizzled/sql_yacc.yy"
10725     {
10726             List<Item> *args= new (YYSession->mem_root) List<Item>;
10727             args->push_back((yyvsp[(3) - (6)].item));
10728             args->push_back((yyvsp[(5) - (6)].item));
10729             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10730             {
10731               DRIZZLE_YYABORT;
10732             }
10733           }
10734     break;
10735 
10736   case 498:
10737 
10738 /* Line 1455 of yacc.c  */
10739 #line 2922 "drizzled/sql_yacc.yy"
10740     {
10741             List<Item> *args= new (YYSession->mem_root) List<Item>;
10742             args->push_back((yyvsp[(3) - (8)].item));
10743             args->push_back((yyvsp[(5) - (8)].item));
10744             args->push_back((yyvsp[(7) - (8)].item));
10745             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10746             {
10747               DRIZZLE_YYABORT;
10748             }
10749           }
10750     break;
10751 
10752   case 499:
10753 
10754 /* Line 1455 of yacc.c  */
10755 #line 2933 "drizzled/sql_yacc.yy"
10756     {
10757             List<Item> *args= new (YYSession->mem_root) List<Item>;
10758             args->push_back((yyvsp[(3) - (6)].item));
10759             args->push_back((yyvsp[(5) - (6)].item));
10760             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10761             {
10762               DRIZZLE_YYABORT;
10763             }
10764           }
10765     break;
10766 
10767   case 500:
10768 
10769 /* Line 1455 of yacc.c  */
10770 #line 2943 "drizzled/sql_yacc.yy"
10771     {
10772             (yyval.item)= new (YYSession->mem_root) Item_func_sysdate_local();
10773             Lex.setCacheable(false);
10774           }
10775     break;
10776 
10777   case 501:
10778 
10779 /* Line 1455 of yacc.c  */
10780 #line 2948 "drizzled/sql_yacc.yy"
10781     {
10782             (yyval.item)= new (YYSession->mem_root) Item_func_sysdate_local((yyvsp[(3) - (4)].item));
10783             Lex.setCacheable(false);
10784           }
10785     break;
10786 
10787   case 502:
10788 
10789 /* Line 1455 of yacc.c  */
10790 #line 2953 "drizzled/sql_yacc.yy"
10791     { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(7) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(3) - (8)].interval_time_st),0); }
10792     break;
10793 
10794   case 503:
10795 
10796 /* Line 1455 of yacc.c  */
10797 #line 2955 "drizzled/sql_yacc.yy"
10798     { (yyval.item)= new (YYSession->mem_root) Item_func_timestamp_diff((yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item),(yyvsp[(3) - (8)].interval_time_st)); }
10799     break;
10800 
10801   case 504:
10802 
10803 /* Line 1455 of yacc.c  */
10804 #line 2957 "drizzled/sql_yacc.yy"
10805     {
10806             (yyval.item)= new (YYSession->mem_root) Item_func_curdate_utc();
10807             Lex.setCacheable(false);
10808           }
10809     break;
10810 
10811   case 505:
10812 
10813 /* Line 1455 of yacc.c  */
10814 #line 2962 "drizzled/sql_yacc.yy"
10815     {
10816             (yyval.item)= new (YYSession->mem_root) Item_func_now_utc();
10817             Lex.setCacheable(false);
10818           }
10819     break;
10820 
10821   case 506:
10822 
10823 /* Line 1455 of yacc.c  */
10824 #line 2975 "drizzled/sql_yacc.yy"
10825     { (yyval.item)= new (YYSession->mem_root) Item_func_coalesce(* (yyvsp[(3) - (4)].item_list)); }
10826     break;
10827 
10828   case 507:
10829 
10830 /* Line 1455 of yacc.c  */
10831 #line 2977 "drizzled/sql_yacc.yy"
10832     { (yyval.item)= new (YYSession->mem_root) Item_func_collation((yyvsp[(3) - (4)].item)); }
10833     break;
10834 
10835   case 508:
10836 
10837 /* Line 1455 of yacc.c  */
10838 #line 2979 "drizzled/sql_yacc.yy"
10839     {
10840             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "database", NULL)))
10841             {
10842               DRIZZLE_YYABORT;
10843             }
10844             Lex.setCacheable(false);
10845     }
10846     break;
10847 
10848   case 509:
10849 
10850 /* Line 1455 of yacc.c  */
10851 #line 2987 "drizzled/sql_yacc.yy"
10852     {
10853             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "catalog", NULL)))
10854             {
10855               DRIZZLE_YYABORT;
10856             }
10857             Lex.setCacheable(false);
10858     }
10859     break;
10860 
10861   case 510:
10862 
10863 /* Line 1455 of yacc.c  */
10864 #line 2995 "drizzled/sql_yacc.yy"
10865     {
10866             List<Item> *args= new (YYSession->mem_root) List<Item>;
10867             args->push_back((yyvsp[(3) - (5)].item));
10868 
10869             if ((yyvsp[(5) - (5)].boolean))
10870             {
10871               args->push_back(new (YYSession->mem_root) Item_int(1));
10872             }
10873 
10874             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "execute", args)))
10875             {
10876               DRIZZLE_YYABORT;
10877             }
10878           }
10879     break;
10880 
10881   case 511:
10882 
10883 /* Line 1455 of yacc.c  */
10884 #line 3010 "drizzled/sql_yacc.yy"
10885     { 
10886             (yyval.item)= new (YYSession->mem_root) Item_func_if((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
10887           }
10888     break;
10889 
10890   case 512:
10891 
10892 /* Line 1455 of yacc.c  */
10893 #line 3014 "drizzled/sql_yacc.yy"
10894     {
10895             List<Item> *args= new (YYSession->mem_root) List<Item>;
10896             args->push_back((yyvsp[(4) - (5)].item));
10897 
10898             if ((yyvsp[(2) - (5)].num))
10899             {
10900               args->push_back(new (YYSession->mem_root) Item_uint(1));
10901             }
10902 
10903             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "kill", args)))
10904             {
10905               DRIZZLE_YYABORT;
10906             }
10907           }
10908     break;
10909 
10910   case 513:
10911 
10912 /* Line 1455 of yacc.c  */
10913 #line 3029 "drizzled/sql_yacc.yy"
10914     { (yyval.item)= new (YYSession->mem_root) Item_func_microsecond((yyvsp[(3) - (4)].item)); }
10915     break;
10916 
10917   case 514:
10918 
10919 /* Line 1455 of yacc.c  */
10920 #line 3031 "drizzled/sql_yacc.yy"
10921     { (yyval.item) = new (YYSession->mem_root) Item_func_mod( (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item)); }
10922     break;
10923 
10924   case 515:
10925 
10926 /* Line 1455 of yacc.c  */
10927 #line 3033 "drizzled/sql_yacc.yy"
10928     { (yyval.item) = new (YYSession->mem_root) Item_func_quarter((yyvsp[(3) - (4)].item)); }
10929     break;
10930 
10931   case 516:
10932 
10933 /* Line 1455 of yacc.c  */
10934 #line 3035 "drizzled/sql_yacc.yy"
10935     { (yyval.item)= new (YYSession->mem_root) Item_func_repeat(*YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item)); }
10936     break;
10937 
10938   case 517:
10939 
10940 /* Line 1455 of yacc.c  */
10941 #line 3037 "drizzled/sql_yacc.yy"
10942     { (yyval.item)= new (YYSession->mem_root) Item_func_replace(*YYSession, (yyvsp[(3) - (8)].item), (yyvsp[(5) - (8)].item), (yyvsp[(7) - (8)].item)); }
10943     break;
10944 
10945   case 518:
10946 
10947 /* Line 1455 of yacc.c  */
10948 #line 3039 "drizzled/sql_yacc.yy"
10949     { (yyval.item)= new (YYSession->mem_root) Item_func_round((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item),1); }
10950     break;
10951 
10952   case 519:
10953 
10954 /* Line 1455 of yacc.c  */
10955 #line 3041 "drizzled/sql_yacc.yy"
10956     {
10957             List<Item> *args= new (YYSession->mem_root) List<Item>;
10958             args->push_back((yyvsp[(3) - (4)].item));
10959             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "wait", args)))
10960             {
10961               DRIZZLE_YYABORT;
10962             }
10963           }
10964     break;
10965 
10966   case 520:
10967 
10968 /* Line 1455 of yacc.c  */
10969 #line 3050 "drizzled/sql_yacc.yy"
10970     {
10971             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "uuid", NULL)))
10972             {
10973               DRIZZLE_YYABORT;
10974             }
10975             Lex.setCacheable(false);
10976     }
10977     break;
10978 
10979   case 521:
10980 
10981 /* Line 1455 of yacc.c  */
10982 #line 3058 "drizzled/sql_yacc.yy"
10983     {
10984             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "ipv6", NULL)))
10985             {
10986               DRIZZLE_YYABORT;
10987             }
10988             Lex.setCacheable(false);
10989     }
10990     break;
10991 
10992   case 522:
10993 
10994 /* Line 1455 of yacc.c  */
10995 #line 3066 "drizzled/sql_yacc.yy"
10996     {
10997             List<Item> *args= new (YYSession->mem_root) List<Item>;
10998             args->push_back((yyvsp[(3) - (6)].item));
10999             args->push_back((yyvsp[(5) - (6)].item));
11000             if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "wait", args)))
11001             {
11002               DRIZZLE_YYABORT;
11003             }
11004           }
11005     break;
11006 
11007   case 523:
11008 
11009 /* Line 1455 of yacc.c  */
11010 #line 3087 "drizzled/sql_yacc.yy"
11011     {
11012             const plugin::Function *udf= plugin::Function::get(to_string((yyvsp[(1) - (2)].lex_str)));
11013 
11014             /* Temporary placing the result of getFunction in $3 */
11015             (yyval.udf)= udf;
11016           }
11017     break;
11018 
11019   case 524:
11020 
11021 /* Line 1455 of yacc.c  */
11022 #line 3094 "drizzled/sql_yacc.yy"
11023     {
11024             Item *item= NULL;
11025 
11026             /*
11027               Implementation note:
11028               names are resolved with the following order:
11029               - MySQL native functions,
11030               - User Defined Functions,
11031               - Stored Functions (assuming the current <use> database)
11032 
11033               This will be revised with WL#2128 (SQL PATH)
11034             */
11035             if (Create_func* builder= find_native_function_builder((yyvsp[(1) - (5)].lex_str)))
11036             {
11037               item= builder->create(YYSession, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
11038             }
11039             else if (const plugin::Function* udf= (yyvsp[(3) - (5)].udf)) /* Retrieving the result of service::Function::get */
11040             {
11041             item= Create_udf_func::s_singleton.create(YYSession, udf, (yyvsp[(4) - (5)].item_list));
11042             } 
11043       else 
11044       {
11045               /* fix for bug 250065, from Andrew Garner <muzazzi@gmail.com> */
11046               my_error(ER_SP_DOES_NOT_EXIST, MYF(0), "FUNCTION", (yyvsp[(1) - (5)].lex_str).data());
11047             }
11048 
11049             if (not ((yyval.item)= item))
11050             {
11051               DRIZZLE_YYABORT;
11052             }
11053             Lex.setCacheable(false);
11054           }
11055     break;
11056 
11057   case 525:
11058 
11059 /* Line 1455 of yacc.c  */
11060 #line 3129 "drizzled/sql_yacc.yy"
11061     { (yyval.item_list)= NULL; }
11062     break;
11063 
11064   case 526:
11065 
11066 /* Line 1455 of yacc.c  */
11067 #line 3130 "drizzled/sql_yacc.yy"
11068     { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
11069     break;
11070 
11071   case 527:
11072 
11073 /* Line 1455 of yacc.c  */
11074 #line 3135 "drizzled/sql_yacc.yy"
11075     {
11076             (yyval.item_list)= new (YYSession->mem_root) List<Item>;
11077             (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
11078           }
11079     break;
11080 
11081   case 528:
11082 
11083 /* Line 1455 of yacc.c  */
11084 #line 3140 "drizzled/sql_yacc.yy"
11085     {
11086             (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
11087             (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
11088           }
11089     break;
11090 
11091   case 529:
11092 
11093 /* Line 1455 of yacc.c  */
11094 #line 3148 "drizzled/sql_yacc.yy"
11095     {
11096             /*
11097              Use Item::name as a storage for the attribute value of user
11098              defined function argument. It is safe to use Item::name
11099              because the syntax will not allow having an explicit name here.
11100              See WL#1017 re. udf attributes.
11101             */
11102             if ((yyvsp[(4) - (4)].lex_str).data())
11103             {
11104               (yyvsp[(2) - (4)].item)->is_autogenerated_name= false;
11105               (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).data(), (yyvsp[(4) - (4)].lex_str).size(), system_charset_info);
11106             }
11107             else
11108               (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYSession->charset());
11109             (yyval.item)= (yyvsp[(2) - (4)].item);
11110           }
11111     break;
11112 
11113   case 530:
11114 
11115 /* Line 1455 of yacc.c  */
11116 #line 3168 "drizzled/sql_yacc.yy"
11117     { (yyval.item)=new Item_sum_avg((yyvsp[(3) - (4)].item)); }
11118     break;
11119 
11120   case 531:
11121 
11122 /* Line 1455 of yacc.c  */
11123 #line 3170 "drizzled/sql_yacc.yy"
11124     { (yyval.item)=new Item_sum_avg_distinct((yyvsp[(4) - (5)].item)); }
11125     break;
11126 
11127   case 532:
11128 
11129 /* Line 1455 of yacc.c  */
11130 #line 3172 "drizzled/sql_yacc.yy"
11131     { (yyval.item)=new Item_sum_count(new Item_int(0, 1)); }
11132     break;
11133 
11134   case 533:
11135 
11136 /* Line 1455 of yacc.c  */
11137 #line 3174 "drizzled/sql_yacc.yy"
11138     { (yyval.item)=new Item_sum_count((yyvsp[(3) - (4)].item)); }
11139     break;
11140 
11141   case 534:
11142 
11143 /* Line 1455 of yacc.c  */
11144 #line 3176 "drizzled/sql_yacc.yy"
11145     { Lex.current_select->in_sum_expr++; }
11146     break;
11147 
11148   case 535:
11149 
11150 /* Line 1455 of yacc.c  */
11151 #line 3178 "drizzled/sql_yacc.yy"
11152     { Lex.current_select->in_sum_expr--; }
11153     break;
11154 
11155   case 536:
11156 
11157 /* Line 1455 of yacc.c  */
11158 #line 3180 "drizzled/sql_yacc.yy"
11159     { (yyval.item)=new Item_sum_count_distinct(* (yyvsp[(5) - (7)].item_list)); }
11160     break;
11161 
11162   case 537:
11163 
11164 /* Line 1455 of yacc.c  */
11165 #line 3182 "drizzled/sql_yacc.yy"
11166     { (yyval.item)=new Item_sum_min((yyvsp[(3) - (4)].item)); }
11167     break;
11168 
11169   case 538:
11170 
11171 /* Line 1455 of yacc.c  */
11172 #line 3189 "drizzled/sql_yacc.yy"
11173     { (yyval.item)=new Item_sum_min((yyvsp[(4) - (5)].item)); }
11174     break;
11175 
11176   case 539:
11177 
11178 /* Line 1455 of yacc.c  */
11179 #line 3191 "drizzled/sql_yacc.yy"
11180     { (yyval.item)=new Item_sum_max((yyvsp[(3) - (4)].item)); }
11181     break;
11182 
11183   case 540:
11184 
11185 /* Line 1455 of yacc.c  */
11186 #line 3193 "drizzled/sql_yacc.yy"
11187     { (yyval.item)=new Item_sum_max((yyvsp[(4) - (5)].item)); }
11188     break;
11189 
11190   case 541:
11191 
11192 /* Line 1455 of yacc.c  */
11193 #line 3195 "drizzled/sql_yacc.yy"
11194     { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 0); }
11195     break;
11196 
11197   case 542:
11198 
11199 /* Line 1455 of yacc.c  */
11200 #line 3197 "drizzled/sql_yacc.yy"
11201     { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 0); }
11202     break;
11203 
11204   case 543:
11205 
11206 /* Line 1455 of yacc.c  */
11207 #line 3199 "drizzled/sql_yacc.yy"
11208     { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 1); }
11209     break;
11210 
11211   case 544:
11212 
11213 /* Line 1455 of yacc.c  */
11214 #line 3201 "drizzled/sql_yacc.yy"
11215     { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 1); }
11216     break;
11217 
11218   case 545:
11219 
11220 /* Line 1455 of yacc.c  */
11221 #line 3203 "drizzled/sql_yacc.yy"
11222     { (yyval.item)=new Item_sum_sum((yyvsp[(3) - (4)].item)); }
11223     break;
11224 
11225   case 546:
11226 
11227 /* Line 1455 of yacc.c  */
11228 #line 3205 "drizzled/sql_yacc.yy"
11229     { (yyval.item)=new Item_sum_sum_distinct((yyvsp[(4) - (5)].item)); }
11230     break;
11231 
11232   case 547:
11233 
11234 /* Line 1455 of yacc.c  */
11235 #line 3207 "drizzled/sql_yacc.yy"
11236     { Lex.current_select->in_sum_expr++; }
11237     break;
11238 
11239   case 548:
11240 
11241 /* Line 1455 of yacc.c  */
11242 #line 3211 "drizzled/sql_yacc.yy"
11243     {
11244             Select_Lex *sel= Lex.current_select;
11245             sel->in_sum_expr--;
11246             (yyval.item)=new Item_func_group_concat(Lex.current_context(), (yyvsp[(3) - (8)].num), (yyvsp[(5) - (8)].item_list),
11247                                           sel->gorder_list, (yyvsp[(7) - (8)].string));
11248             (yyvsp[(5) - (8)].item_list)->clear();
11249           }
11250     break;
11251 
11252   case 549:
11253 
11254 /* Line 1455 of yacc.c  */
11255 #line 3222 "drizzled/sql_yacc.yy"
11256     { }
11257     break;
11258 
11259   case 550:
11260 
11261 /* Line 1455 of yacc.c  */
11262 #line 3224 "drizzled/sql_yacc.yy"
11263     {
11264             (yyval.item)= (yyvsp[(3) - (3)].item);
11265           }
11266     break;
11267 
11268   case 551:
11269 
11270 /* Line 1455 of yacc.c  */
11271 #line 3231 "drizzled/sql_yacc.yy"
11272     {
11273             (yyval.item)= new Item_func_set_user_var((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].item));
11274             Lex.setCacheable(false);
11275           }
11276     break;
11277 
11278   case 552:
11279 
11280 /* Line 1455 of yacc.c  */
11281 #line 3236 "drizzled/sql_yacc.yy"
11282     {
11283             (yyval.item)= new Item_func_get_user_var(*YYSession, (yyvsp[(1) - (1)].lex_str));
11284             Lex.setCacheable(false);
11285           }
11286     break;
11287 
11288   case 553:
11289 
11290 /* Line 1455 of yacc.c  */
11291 #line 3241 "drizzled/sql_yacc.yy"
11292     {
11293             /* disallow "SELECT @@global.global.variable" */
11294             if ((yyvsp[(3) - (4)].lex_str).data() && (yyvsp[(4) - (4)].lex_str).data() && parser::check_reserved_words((yyvsp[(3) - (4)].lex_str)))
11295             {
11296               parser::my_parse_error(YYSession->m_lip);
11297               DRIZZLE_YYABORT;
11298             }
11299             if (!((yyval.item)= get_system_var(YYSession, (yyvsp[(2) - (4)].var_type), (yyvsp[(3) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str))))
11300               DRIZZLE_YYABORT;
11301           }
11302     break;
11303 
11304   case 554:
11305 
11306 /* Line 1455 of yacc.c  */
11307 #line 3254 "drizzled/sql_yacc.yy"
11308     { (yyval.num) = false; }
11309     break;
11310 
11311   case 555:
11312 
11313 /* Line 1455 of yacc.c  */
11314 #line 3255 "drizzled/sql_yacc.yy"
11315     { (yyval.num) = true; }
11316     break;
11317 
11318   case 556:
11319 
11320 /* Line 1455 of yacc.c  */
11321 #line 3260 "drizzled/sql_yacc.yy"
11322     {
11323               (yyval.string)= new (YYSession->mem_root) String(",", 1, &my_charset_utf8_general_ci);
11324             }
11325     break;
11326 
11327   case 557:
11328 
11329 /* Line 1455 of yacc.c  */
11330 #line 3263 "drizzled/sql_yacc.yy"
11331     { (yyval.string) = (yyvsp[(2) - (2)].string); }
11332     break;
11333 
11334   case 558:
11335 
11336 /* Line 1455 of yacc.c  */
11337 #line 3268 "drizzled/sql_yacc.yy"
11338     {
11339             Lex.current_select->gorder_list = NULL;
11340           }
11341     break;
11342 
11343   case 559:
11344 
11345 /* Line 1455 of yacc.c  */
11346 #line 3272 "drizzled/sql_yacc.yy"
11347     {
11348             Select_Lex *select= Lex.current_select;
11349             select->gorder_list= (SQL_LIST*) memory::sql_memdup(&select->order_list, sizeof(SQL_LIST));
11350             select->order_list.clear();
11351           }
11352     break;
11353 
11354   case 560:
11355 
11356 /* Line 1455 of yacc.c  */
11357 #line 3281 "drizzled/sql_yacc.yy"
11358     {
11359             if (Lex.current_select->inc_in_sum_expr())
11360             {
11361               parser::my_parse_error(YYSession->m_lip);
11362               DRIZZLE_YYABORT;
11363             }
11364           }
11365     break;
11366 
11367   case 561:
11368 
11369 /* Line 1455 of yacc.c  */
11370 #line 3289 "drizzled/sql_yacc.yy"
11371     {
11372             Lex.current_select->in_sum_expr--;
11373             (yyval.item)= (yyvsp[(3) - (3)].item);
11374           }
11375     break;
11376 
11377   case 562:
11378 
11379 /* Line 1455 of yacc.c  */
11380 #line 3297 "drizzled/sql_yacc.yy"
11381     { (yyval.cast_type)=ITEM_CAST_CHAR; Lex.charset= &my_charset_bin; Lex.dec= 0; }
11382     break;
11383 
11384   case 563:
11385 
11386 /* Line 1455 of yacc.c  */
11387 #line 3299 "drizzled/sql_yacc.yy"
11388     { (yyval.cast_type)=ITEM_CAST_BOOLEAN; Lex.charset= &my_charset_bin; Lex.dec= 0; }
11389     break;
11390 
11391   case 564:
11392 
11393 /* Line 1455 of yacc.c  */
11394 #line 3301 "drizzled/sql_yacc.yy"
11395     { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11396     break;
11397 
11398   case 565:
11399 
11400 /* Line 1455 of yacc.c  */
11401 #line 3303 "drizzled/sql_yacc.yy"
11402     { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11403     break;
11404 
11405   case 566:
11406 
11407 /* Line 1455 of yacc.c  */
11408 #line 3305 "drizzled/sql_yacc.yy"
11409     { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11410     break;
11411 
11412   case 567:
11413 
11414 /* Line 1455 of yacc.c  */
11415 #line 3307 "drizzled/sql_yacc.yy"
11416     { (yyval.cast_type)=ITEM_CAST_UNSIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11417     break;
11418 
11419   case 568:
11420 
11421 /* Line 1455 of yacc.c  */
11422 #line 3309 "drizzled/sql_yacc.yy"
11423     { (yyval.cast_type)=ITEM_CAST_UNSIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11424     break;
11425 
11426   case 569:
11427 
11428 /* Line 1455 of yacc.c  */
11429 #line 3311 "drizzled/sql_yacc.yy"
11430     { (yyval.cast_type)=ITEM_CAST_CHAR; Lex.dec= 0; }
11431     break;
11432 
11433   case 570:
11434 
11435 /* Line 1455 of yacc.c  */
11436 #line 3313 "drizzled/sql_yacc.yy"
11437     { (yyval.cast_type)=ITEM_CAST_DATE; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11438     break;
11439 
11440   case 571:
11441 
11442 /* Line 1455 of yacc.c  */
11443 #line 3315 "drizzled/sql_yacc.yy"
11444     { (yyval.cast_type)=ITEM_CAST_TIME; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11445     break;
11446 
11447   case 572:
11448 
11449 /* Line 1455 of yacc.c  */
11450 #line 3317 "drizzled/sql_yacc.yy"
11451     { (yyval.cast_type)=ITEM_CAST_DATETIME; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11452     break;
11453 
11454   case 573:
11455 
11456 /* Line 1455 of yacc.c  */
11457 #line 3319 "drizzled/sql_yacc.yy"
11458     { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex.charset= NULL; }
11459     break;
11460 
11461   case 574:
11462 
11463 /* Line 1455 of yacc.c  */
11464 #line 3324 "drizzled/sql_yacc.yy"
11465     {
11466             (yyval.item_list)= new (YYSession->mem_root) List<Item>;
11467             (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
11468           }
11469     break;
11470 
11471   case 575:
11472 
11473 /* Line 1455 of yacc.c  */
11474 #line 3329 "drizzled/sql_yacc.yy"
11475     {
11476             (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
11477             (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
11478           }
11479     break;
11480 
11481   case 576:
11482 
11483 /* Line 1455 of yacc.c  */
11484 #line 3336 "drizzled/sql_yacc.yy"
11485     { (yyval.item)= NULL; }
11486     break;
11487 
11488   case 577:
11489 
11490 /* Line 1455 of yacc.c  */
11491 #line 3337 "drizzled/sql_yacc.yy"
11492     { (yyval.item)= (yyvsp[(1) - (1)].item); }
11493     break;
11494 
11495   case 578:
11496 
11497 /* Line 1455 of yacc.c  */
11498 #line 3341 "drizzled/sql_yacc.yy"
11499     { (yyval.item)= NULL; }
11500     break;
11501 
11502   case 579:
11503 
11504 /* Line 1455 of yacc.c  */
11505 #line 3342 "drizzled/sql_yacc.yy"
11506     { (yyval.item)= (yyvsp[(2) - (2)].item); }
11507     break;
11508 
11509   case 580:
11510 
11511 /* Line 1455 of yacc.c  */
11512 #line 3347 "drizzled/sql_yacc.yy"
11513     {
11514             (yyval.item_list)= new List<Item>;
11515             (yyval.item_list)->push_back((yyvsp[(2) - (4)].item));
11516             (yyval.item_list)->push_back((yyvsp[(4) - (4)].item));
11517           }
11518     break;
11519 
11520   case 581:
11521 
11522 /* Line 1455 of yacc.c  */
11523 #line 3353 "drizzled/sql_yacc.yy"
11524     {
11525             (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(3) - (5)].item));
11526             (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(5) - (5)].item));
11527             (yyval.item_list)= (yyvsp[(1) - (5)].item_list);
11528           }
11529     break;
11530 
11531   case 582:
11532 
11533 /* Line 1455 of yacc.c  */
11534 #line 3363 "drizzled/sql_yacc.yy"
11535     { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11536     break;
11537 
11538   case 583:
11539 
11540 /* Line 1455 of yacc.c  */
11541 #line 3365 "drizzled/sql_yacc.yy"
11542     {
11543             if (!((yyval.table_list)= Lex.current_select->nest_last_join(Lex.session)))
11544               DRIZZLE_YYABORT;
11545           }
11546     break;
11547 
11548   case 584:
11549 
11550 /* Line 1455 of yacc.c  */
11551 #line 3372 "drizzled/sql_yacc.yy"
11552     { DRIZZLE_YYABORT_UNLESS((yyval.table_list)=(yyvsp[(1) - (1)].table_list)); }
11553     break;
11554 
11555   case 585:
11556 
11557 /* Line 1455 of yacc.c  */
11558 #line 3383 "drizzled/sql_yacc.yy"
11559     { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11560     break;
11561 
11562   case 586:
11563 
11564 /* Line 1455 of yacc.c  */
11565 #line 3384 "drizzled/sql_yacc.yy"
11566     { (yyval.table_list)=(yyvsp[(3) - (4)].table_list); }
11567     break;
11568 
11569   case 587:
11570 
11571 /* Line 1455 of yacc.c  */
11572 #line 3390 "drizzled/sql_yacc.yy"
11573     { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11574     break;
11575 
11576   case 588:
11577 
11578 /* Line 1455 of yacc.c  */
11579 #line 3392 "drizzled/sql_yacc.yy"
11580     {
11581             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
11582           }
11583     break;
11584 
11585   case 589:
11586 
11587 /* Line 1455 of yacc.c  */
11588 #line 3412 "drizzled/sql_yacc.yy"
11589     {
11590             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
11591             Lex.is_cross= false;
11592           }
11593     break;
11594 
11595   case 590:
11596 
11597 /* Line 1455 of yacc.c  */
11598 #line 3417 "drizzled/sql_yacc.yy"
11599     {
11600             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); (yyvsp[(3) - (3)].table_list)->straight=1;
11601           }
11602     break;
11603 
11604   case 591:
11605 
11606 /* Line 1455 of yacc.c  */
11607 #line 3422 "drizzled/sql_yacc.yy"
11608     {
11609             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11610             DRIZZLE_YYABORT_UNLESS( not Lex.is_cross );
11611             /* Change the current name resolution context to a local context. */
11612             push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (4)].table_list), *(yyvsp[(3) - (4)].table_list));
11613             Lex.current_select->parsing_place= IN_ON;
11614           }
11615     break;
11616 
11617   case 592:
11618 
11619 /* Line 1455 of yacc.c  */
11620 #line 3430 "drizzled/sql_yacc.yy"
11621     {
11622             add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
11623             Lex.pop_context();
11624             Lex.current_select->parsing_place= NO_MATTER;
11625           }
11626     break;
11627 
11628   case 593:
11629 
11630 /* Line 1455 of yacc.c  */
11631 #line 3437 "drizzled/sql_yacc.yy"
11632     {
11633             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11634             /* Change the current name resolution context to a local context. */
11635             push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (4)].table_list), *(yyvsp[(3) - (4)].table_list));
11636             Lex.current_select->parsing_place= IN_ON;
11637           }
11638     break;
11639 
11640   case 594:
11641 
11642 /* Line 1455 of yacc.c  */
11643 #line 3444 "drizzled/sql_yacc.yy"
11644     {
11645             (yyvsp[(3) - (6)].table_list)->straight=1;
11646             add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
11647             Lex.pop_context();
11648             Lex.current_select->parsing_place= NO_MATTER;
11649           }
11650     break;
11651 
11652   case 595:
11653 
11654 /* Line 1455 of yacc.c  */
11655 #line 3452 "drizzled/sql_yacc.yy"
11656     {
11657             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11658           }
11659     break;
11660 
11661   case 596:
11662 
11663 /* Line 1455 of yacc.c  */
11664 #line 3456 "drizzled/sql_yacc.yy"
11665     { add_join_natural((yyvsp[(1) - (8)].table_list),(yyvsp[(3) - (8)].table_list),(yyvsp[(7) - (8)].string_list),Lex.current_select); (yyval.table_list)=(yyvsp[(3) - (8)].table_list); }
11666     break;
11667 
11668   case 597:
11669 
11670 /* Line 1455 of yacc.c  */
11671 #line 3458 "drizzled/sql_yacc.yy"
11672     {
11673             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && ((yyval.table_list)=(yyvsp[(4) - (4)].table_list)));
11674             add_join_natural((yyvsp[(1) - (4)].table_list),(yyvsp[(4) - (4)].table_list),NULL,Lex.current_select);
11675           }
11676     break;
11677 
11678   case 598:
11679 
11680 /* Line 1455 of yacc.c  */
11681 #line 3466 "drizzled/sql_yacc.yy"
11682     {
11683             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
11684             /* Change the current name resolution context to a local context. */
11685             push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (6)].table_list), *(yyvsp[(5) - (6)].table_list));
11686             Lex.current_select->parsing_place= IN_ON;
11687           }
11688     break;
11689 
11690   case 599:
11691 
11692 /* Line 1455 of yacc.c  */
11693 #line 3473 "drizzled/sql_yacc.yy"
11694     {
11695             add_join_on((yyvsp[(5) - (8)].table_list),(yyvsp[(8) - (8)].item));
11696             Lex.pop_context();
11697             (yyvsp[(5) - (8)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11698             (yyval.table_list)=(yyvsp[(5) - (8)].table_list);
11699             Lex.current_select->parsing_place= NO_MATTER;
11700           }
11701     break;
11702 
11703   case 600:
11704 
11705 /* Line 1455 of yacc.c  */
11706 #line 3481 "drizzled/sql_yacc.yy"
11707     {
11708             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
11709           }
11710     break;
11711 
11712   case 601:
11713 
11714 /* Line 1455 of yacc.c  */
11715 #line 3485 "drizzled/sql_yacc.yy"
11716     {
11717             add_join_natural((yyvsp[(1) - (10)].table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Lex.current_select);
11718             (yyvsp[(5) - (10)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11719             (yyval.table_list)=(yyvsp[(5) - (10)].table_list);
11720           }
11721     break;
11722 
11723   case 602:
11724 
11725 /* Line 1455 of yacc.c  */
11726 #line 3491 "drizzled/sql_yacc.yy"
11727     {
11728             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
11729             add_join_natural((yyvsp[(1) - (6)].table_list),(yyvsp[(6) - (6)].table_list),NULL,Lex.current_select);
11730             (yyvsp[(6) - (6)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11731             (yyval.table_list)=(yyvsp[(6) - (6)].table_list);
11732           }
11733     break;
11734 
11735   case 603:
11736 
11737 /* Line 1455 of yacc.c  */
11738 #line 3501 "drizzled/sql_yacc.yy"
11739     {
11740             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
11741             /* Change the current name resolution context to a local context. */
11742             push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (6)].table_list), *(yyvsp[(5) - (6)].table_list));
11743             Lex.current_select->parsing_place= IN_ON;
11744           }
11745     break;
11746 
11747   case 604:
11748 
11749 /* Line 1455 of yacc.c  */
11750 #line 3508 "drizzled/sql_yacc.yy"
11751     {
11752             if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11753               DRIZZLE_YYABORT;
11754             add_join_on((yyval.table_list), (yyvsp[(8) - (8)].item));
11755             Lex.pop_context();
11756             Lex.current_select->parsing_place= NO_MATTER;
11757           }
11758     break;
11759 
11760   case 605:
11761 
11762 /* Line 1455 of yacc.c  */
11763 #line 3516 "drizzled/sql_yacc.yy"
11764     {
11765             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
11766           }
11767     break;
11768 
11769   case 606:
11770 
11771 /* Line 1455 of yacc.c  */
11772 #line 3520 "drizzled/sql_yacc.yy"
11773     {
11774             if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11775               DRIZZLE_YYABORT;
11776             add_join_natural((yyval.table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Lex.current_select);
11777           }
11778     break;
11779 
11780   case 607:
11781 
11782 /* Line 1455 of yacc.c  */
11783 #line 3526 "drizzled/sql_yacc.yy"
11784     {
11785             DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
11786             add_join_natural((yyvsp[(6) - (6)].table_list),(yyvsp[(1) - (6)].table_list),NULL,Lex.current_select);
11787             if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11788               DRIZZLE_YYABORT;
11789           }
11790     break;
11791 
11792   case 608:
11793 
11794 /* Line 1455 of yacc.c  */
11795 #line 3535 "drizzled/sql_yacc.yy"
11796     {}
11797     break;
11798 
11799   case 609:
11800 
11801 /* Line 1455 of yacc.c  */
11802 #line 3536 "drizzled/sql_yacc.yy"
11803     {}
11804     break;
11805 
11806   case 610:
11807 
11808 /* Line 1455 of yacc.c  */
11809 #line 3538 "drizzled/sql_yacc.yy"
11810     {
11811             Lex.is_cross= true;
11812             Lex.current_select->is_cross= true;
11813           }
11814     break;
11815 
11816   case 611:
11817 
11818 /* Line 1455 of yacc.c  */
11819 #line 3553 "drizzled/sql_yacc.yy"
11820     {
11821           }
11822     break;
11823 
11824   case 612:
11825 
11826 /* Line 1455 of yacc.c  */
11827 #line 3556 "drizzled/sql_yacc.yy"
11828     {
11829             if (!((yyval.table_list)= Lex.current_select->add_table_to_list(YYSession, (yyvsp[(2) - (4)].table), (yyvsp[(3) - (4)].lex_str_ptr),
11830                              0,
11831                              Lex.lock_option,
11832                              Lex.current_select->pop_index_hints())))
11833               DRIZZLE_YYABORT;
11834             Lex.current_select->add_joined_table((yyval.table_list));
11835           }
11836     break;
11837 
11838   case 613:
11839 
11840 /* Line 1455 of yacc.c  */
11841 #line 3565 "drizzled/sql_yacc.yy"
11842     {
11843             Select_Lex *sel= Lex.current_select;
11844             if ((yyvsp[(1) - (3)].num))
11845             {
11846               if (sel->set_braces(1))
11847               {
11848                 parser::my_parse_error(YYSession->m_lip);
11849                 DRIZZLE_YYABORT;
11850               }
11851               /* select in braces, can't contain global parameters */
11852               if (sel->master_unit()->fake_select_lex)
11853                 sel->master_unit()->global_parameters=
11854                    sel->master_unit()->fake_select_lex;
11855             }
11856             (yyvsp[(2) - (3)].select_lex)->init_nested_join(*Lex.session);
11857             (yyval.table_list)= 0;
11858             /* incomplete derived tables return NULL, we must be
11859                nested in select_derived rule to be here. */
11860           }
11861     break;
11862 
11863   case 614:
11864 
11865 /* Line 1455 of yacc.c  */
11866 #line 3603 "drizzled/sql_yacc.yy"
11867     {
11868             /* Use $2 instead of Lex.current_select as derived table will
11869                alter value of Lex.current_select. */
11870             if (!((yyvsp[(3) - (5)].table_list) || (yyvsp[(5) - (5)].lex_str_ptr)) && (yyvsp[(2) - (5)].select_lex)->embedding &&
11871                 !(yyvsp[(2) - (5)].select_lex)->embedding->getNestedJoin()->join_list.size())
11872             {
11873               /* we have a derived table ($3 == NULL) but no alias,
11874                  Since we are nested in further parentheses so we
11875                  can pass NULL to the outer level parentheses
11876                  Permits parsing of "((((select ...))) as xyz)" */
11877               (yyval.table_list)= 0;
11878             }
11879             else if (!(yyvsp[(3) - (5)].table_list))
11880             {
11881               /* Handle case of derived table, alias may be NULL if there
11882                  are no outer parentheses, add_table_to_list() will throw
11883                  error in this case */
11884               Select_Lex *sel= Lex.current_select;
11885               Select_Lex_Unit *unit= sel->master_unit();
11886               Lex.current_select= sel= unit->outer_select();
11887               if (!((yyval.table_list)= sel->add_table_to_list(Lex.session,
11888                                                new Table_ident(unit), (yyvsp[(5) - (5)].lex_str_ptr), 0,
11889                                                TL_READ)))
11890 
11891                 DRIZZLE_YYABORT;
11892               sel->add_joined_table((yyval.table_list));
11893               Lex.pop_context();
11894             }
11895             else if (((yyvsp[(3) - (5)].table_list)->select_lex && (yyvsp[(3) - (5)].table_list)->select_lex->master_unit()->is_union()) || (yyvsp[(5) - (5)].lex_str_ptr))
11896             {
11897               /* simple nested joins cannot have aliases or unions */
11898               parser::my_parse_error(YYSession->m_lip);
11899               DRIZZLE_YYABORT;
11900             }
11901             else
11902               (yyval.table_list)= (yyvsp[(3) - (5)].table_list);
11903           }
11904     break;
11905 
11906   case 616:
11907 
11908 /* Line 1455 of yacc.c  */
11909 #line 3647 "drizzled/sql_yacc.yy"
11910     {
11911             if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(3) - (3)].num)))
11912               DRIZZLE_YYABORT;
11913           }
11914     break;
11915 
11916   case 617:
11917 
11918 /* Line 1455 of yacc.c  */
11919 #line 3652 "drizzled/sql_yacc.yy"
11920     {
11921             /*
11922               Remove from the name resolution context stack the context of the
11923               last select in the union.
11924              */
11925             Lex.pop_context();
11926           }
11927     break;
11928 
11929   case 619:
11930 
11931 /* Line 1455 of yacc.c  */
11932 #line 3665 "drizzled/sql_yacc.yy"
11933     {
11934             Select_Lex * sel= Lex.current_select;
11935             if (Lex.current_select->set_braces(0))
11936             {
11937               parser::my_parse_error(YYSession->m_lip);
11938               DRIZZLE_YYABORT;
11939             }
11940             if (sel->linkage == UNION_TYPE &&
11941                 sel->master_unit()->first_select()->braces)
11942             {
11943               parser::my_parse_error(YYSession->m_lip);
11944               DRIZZLE_YYABORT;
11945             }
11946           }
11947     break;
11948 
11949   case 620:
11950 
11951 /* Line 1455 of yacc.c  */
11952 #line 3683 "drizzled/sql_yacc.yy"
11953     {
11954             Select_Lex *sel= Lex.current_select;
11955             if (sel->linkage != UNION_TYPE)
11956               init_select(&Lex);
11957             Lex.current_select->parsing_place= SELECT_LIST;
11958           }
11959     break;
11960 
11961   case 621:
11962 
11963 /* Line 1455 of yacc.c  */
11964 #line 3690 "drizzled/sql_yacc.yy"
11965     {
11966             Lex.current_select->parsing_place= NO_MATTER;
11967           }
11968     break;
11969 
11970   case 623:
11971 
11972 /* Line 1455 of yacc.c  */
11973 #line 3699 "drizzled/sql_yacc.yy"
11974     {
11975             (yyvsp[(1) - (1)].select_lex)->init_nested_join(*Lex.session);
11976           }
11977     break;
11978 
11979   case 624:
11980 
11981 /* Line 1455 of yacc.c  */
11982 #line 3703 "drizzled/sql_yacc.yy"
11983     {
11984             /* for normal joins, $3 != NULL and end_nested_join() != NULL,
11985                for derived tables, both must equal NULL */
11986 
11987             if (!((yyval.table_list)= (yyvsp[(1) - (3)].select_lex)->end_nested_join()) && (yyvsp[(3) - (3)].table_list))
11988               DRIZZLE_YYABORT;
11989 
11990             if (!(yyvsp[(3) - (3)].table_list) && (yyval.table_list))
11991             {
11992               parser::my_parse_error(YYSession->m_lip);
11993               DRIZZLE_YYABORT;
11994             }
11995           }
11996     break;
11997 
11998   case 625:
11999 
12000 /* Line 1455 of yacc.c  */
12001 #line 3719 "drizzled/sql_yacc.yy"
12002     {
12003             Lex.derived_tables|= DERIVED_SUBQUERY;
12004             if (not Lex.expr_allows_subselect)
12005             {
12006               parser::my_parse_error(YYSession->m_lip);
12007               DRIZZLE_YYABORT;
12008             }
12009             if (Lex.current_select->linkage == GLOBAL_OPTIONS_TYPE || new_select(&Lex, 1))
12010               DRIZZLE_YYABORT;
12011             init_select(&Lex);
12012             Lex.current_select->linkage= DERIVED_TABLE_TYPE;
12013             Lex.current_select->parsing_place= SELECT_LIST;
12014           }
12015     break;
12016 
12017   case 626:
12018 
12019 /* Line 1455 of yacc.c  */
12020 #line 3733 "drizzled/sql_yacc.yy"
12021     {
12022             Lex.current_select->parsing_place= NO_MATTER;
12023           }
12024     break;
12025 
12026   case 628:
12027 
12028 /* Line 1455 of yacc.c  */
12029 #line 3740 "drizzled/sql_yacc.yy"
12030     { (yyval.select_lex)= Lex.current_select; }
12031     break;
12032 
12033   case 629:
12034 
12035 /* Line 1455 of yacc.c  */
12036 #line 3745 "drizzled/sql_yacc.yy"
12037     {
12038             Select_Lex *sel= Lex.current_select;
12039             TableList *embedding;
12040             if (!sel->embedding || sel->end_nested_join())
12041             {
12042               /* we are not in parentheses */
12043               parser::my_parse_error(YYSession->m_lip);
12044               DRIZZLE_YYABORT;
12045             }
12046             embedding= Lex.current_select->embedding;
12047             (yyval.num)= embedding &&
12048                 !embedding->getNestedJoin()->join_list.size();
12049             /* return true if we are deeply nested */
12050           }
12051     break;
12052 
12053   case 630:
12054 
12055 /* Line 1455 of yacc.c  */
12056 #line 3762 "drizzled/sql_yacc.yy"
12057     {}
12058     break;
12059 
12060   case 631:
12061 
12062 /* Line 1455 of yacc.c  */
12063 #line 3763 "drizzled/sql_yacc.yy"
12064     {}
12065     break;
12066 
12067   case 632:
12068 
12069 /* Line 1455 of yacc.c  */
12070 #line 3768 "drizzled/sql_yacc.yy"
12071     {
12072             (yyval.num)= INDEX_HINT_MASK_ALL;
12073           }
12074     break;
12075 
12076   case 633:
12077 
12078 /* Line 1455 of yacc.c  */
12079 #line 3771 "drizzled/sql_yacc.yy"
12080     { (yyval.num)= INDEX_HINT_MASK_JOIN;  }
12081     break;
12082 
12083   case 634:
12084 
12085 /* Line 1455 of yacc.c  */
12086 #line 3772 "drizzled/sql_yacc.yy"
12087     { (yyval.num)= INDEX_HINT_MASK_ORDER; }
12088     break;
12089 
12090   case 635:
12091 
12092 /* Line 1455 of yacc.c  */
12093 #line 3773 "drizzled/sql_yacc.yy"
12094     { (yyval.num)= INDEX_HINT_MASK_GROUP; }
12095     break;
12096 
12097   case 636:
12098 
12099 /* Line 1455 of yacc.c  */
12100 #line 3777 "drizzled/sql_yacc.yy"
12101     { (yyval.index_hint)= INDEX_HINT_FORCE; }
12102     break;
12103 
12104   case 637:
12105 
12106 /* Line 1455 of yacc.c  */
12107 #line 3778 "drizzled/sql_yacc.yy"
12108     { (yyval.index_hint)= INDEX_HINT_IGNORE; }
12109     break;
12110 
12111   case 638:
12112 
12113 /* Line 1455 of yacc.c  */
12114 #line 3783 "drizzled/sql_yacc.yy"
12115     {
12116             Lex.current_select->set_index_hint_type((yyvsp[(1) - (3)].index_hint), (yyvsp[(3) - (3)].num));
12117           }
12118     break;
12119 
12120   case 640:
12121 
12122 /* Line 1455 of yacc.c  */
12123 #line 3788 "drizzled/sql_yacc.yy"
12124     {
12125             Lex.current_select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[(3) - (3)].num));
12126           }
12127     break;
12128 
12129   case 645:
12130 
12131 /* Line 1455 of yacc.c  */
12132 #line 3801 "drizzled/sql_yacc.yy"
12133     { Lex.current_select->alloc_index_hints(YYSession); }
12134     break;
12135 
12136   case 647:
12137 
12138 /* Line 1455 of yacc.c  */
12139 #line 3805 "drizzled/sql_yacc.yy"
12140     {  Lex.current_select->clear_index_hints(); }
12141     break;
12142 
12143   case 649:
12144 
12145 /* Line 1455 of yacc.c  */
12146 #line 3810 "drizzled/sql_yacc.yy"
12147     { Lex.current_select->add_index_hint(YYSession, NULL); }
12148     break;
12149 
12150   case 650:
12151 
12152 /* Line 1455 of yacc.c  */
12153 #line 3811 "drizzled/sql_yacc.yy"
12154     {}
12155     break;
12156 
12157   case 651:
12158 
12159 /* Line 1455 of yacc.c  */
12160 #line 3816 "drizzled/sql_yacc.yy"
12161     { Lex.current_select->add_index_hint(YYSession, (yyvsp[(1) - (1)].lex_str).data()); }
12162     break;
12163 
12164   case 652:
12165 
12166 /* Line 1455 of yacc.c  */
12167 #line 3818 "drizzled/sql_yacc.yy"
12168     { Lex.current_select->add_index_hint(YYSession, "PRIMARY"); }
12169     break;
12170 
12171   case 655:
12172 
12173 /* Line 1455 of yacc.c  */
12174 #line 3828 "drizzled/sql_yacc.yy"
12175     {
12176             (yyval.string_list)= new List<String>;
12177             (yyval.string_list)->push_back(new (YYSession->mem_root) String((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), system_charset_info));
12178           }
12179     break;
12180 
12181   case 656:
12182 
12183 /* Line 1455 of yacc.c  */
12184 #line 3833 "drizzled/sql_yacc.yy"
12185     {
12186             (yyvsp[(1) - (3)].string_list)->push_back(new (YYSession->mem_root) String((yyvsp[(3) - (3)].lex_str).data(), (yyvsp[(3) - (3)].lex_str).size(), system_charset_info));
12187             (yyval.string_list)= (yyvsp[(1) - (3)].string_list);
12188           }
12189     break;
12190 
12191   case 657:
12192 
12193 /* Line 1455 of yacc.c  */
12194 #line 3840 "drizzled/sql_yacc.yy"
12195     {}
12196     break;
12197 
12198   case 658:
12199 
12200 /* Line 1455 of yacc.c  */
12201 #line 3841 "drizzled/sql_yacc.yy"
12202     { (yyval.interval)=INTERVAL_DAY_HOUR; }
12203     break;
12204 
12205   case 659:
12206 
12207 /* Line 1455 of yacc.c  */
12208 #line 3842 "drizzled/sql_yacc.yy"
12209     { (yyval.interval)=INTERVAL_DAY_MICROSECOND; }
12210     break;
12211 
12212   case 660:
12213 
12214 /* Line 1455 of yacc.c  */
12215 #line 3843 "drizzled/sql_yacc.yy"
12216     { (yyval.interval)=INTERVAL_DAY_MINUTE; }
12217     break;
12218 
12219   case 661:
12220 
12221 /* Line 1455 of yacc.c  */
12222 #line 3844 "drizzled/sql_yacc.yy"
12223     { (yyval.interval)=INTERVAL_DAY_SECOND; }
12224     break;
12225 
12226   case 662:
12227 
12228 /* Line 1455 of yacc.c  */
12229 #line 3845 "drizzled/sql_yacc.yy"
12230     { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; }
12231     break;
12232 
12233   case 663:
12234 
12235 /* Line 1455 of yacc.c  */
12236 #line 3846 "drizzled/sql_yacc.yy"
12237     { (yyval.interval)=INTERVAL_HOUR_MINUTE; }
12238     break;
12239 
12240   case 664:
12241 
12242 /* Line 1455 of yacc.c  */
12243 #line 3847 "drizzled/sql_yacc.yy"
12244     { (yyval.interval)=INTERVAL_HOUR_SECOND; }
12245     break;
12246 
12247   case 665:
12248 
12249 /* Line 1455 of yacc.c  */
12250 #line 3848 "drizzled/sql_yacc.yy"
12251     { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; }
12252     break;
12253 
12254   case 666:
12255 
12256 /* Line 1455 of yacc.c  */
12257 #line 3849 "drizzled/sql_yacc.yy"
12258     { (yyval.interval)=INTERVAL_MINUTE_SECOND; }
12259     break;
12260 
12261   case 667:
12262 
12263 /* Line 1455 of yacc.c  */
12264 #line 3850 "drizzled/sql_yacc.yy"
12265     { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; }
12266     break;
12267 
12268   case 668:
12269 
12270 /* Line 1455 of yacc.c  */
12271 #line 3851 "drizzled/sql_yacc.yy"
12272     { (yyval.interval)=INTERVAL_YEAR_MONTH; }
12273     break;
12274 
12275   case 669:
12276 
12277 /* Line 1455 of yacc.c  */
12278 #line 3855 "drizzled/sql_yacc.yy"
12279     {}
12280     break;
12281 
12282   case 670:
12283 
12284 /* Line 1455 of yacc.c  */
12285 #line 3856 "drizzled/sql_yacc.yy"
12286     {
12287                                   (yyval.interval_time_st)=INTERVAL_MICROSECOND;
12288                                   /*
12289                                     FRAC_SECOND was mistakenly implemented with
12290                                     a wrong resolution. According to the ODBC
12291                                     standard it should be nanoseconds, not
12292                                     microseconds. Changing it to nanoseconds
12293                                     in MySQL would mean making TIMESTAMPDIFF
12294                                     and TIMESTAMPADD to return DECIMAL, since
12295                                     the return value would be too big for BIGINT
12296                                     Hence we just deprecate the incorrect
12297                                     implementation without changing its
12298                                     resolution.
12299                                   */
12300                                 }
12301     break;
12302 
12303   case 671:
12304 
12305 /* Line 1455 of yacc.c  */
12306 #line 3874 "drizzled/sql_yacc.yy"
12307     { (yyval.interval_time_st)=INTERVAL_DAY; }
12308     break;
12309 
12310   case 672:
12311 
12312 /* Line 1455 of yacc.c  */
12313 #line 3875 "drizzled/sql_yacc.yy"
12314     { (yyval.interval_time_st)=INTERVAL_WEEK; }
12315     break;
12316 
12317   case 673:
12318 
12319 /* Line 1455 of yacc.c  */
12320 #line 3876 "drizzled/sql_yacc.yy"
12321     { (yyval.interval_time_st)=INTERVAL_HOUR; }
12322     break;
12323 
12324   case 674:
12325 
12326 /* Line 1455 of yacc.c  */
12327 #line 3877 "drizzled/sql_yacc.yy"
12328     { (yyval.interval_time_st)=INTERVAL_MINUTE; }
12329     break;
12330 
12331   case 675:
12332 
12333 /* Line 1455 of yacc.c  */
12334 #line 3878 "drizzled/sql_yacc.yy"
12335     { (yyval.interval_time_st)=INTERVAL_MONTH; }
12336     break;
12337 
12338   case 676:
12339 
12340 /* Line 1455 of yacc.c  */
12341 #line 3879 "drizzled/sql_yacc.yy"
12342     { (yyval.interval_time_st)=INTERVAL_QUARTER; }
12343     break;
12344 
12345   case 677:
12346 
12347 /* Line 1455 of yacc.c  */
12348 #line 3880 "drizzled/sql_yacc.yy"
12349     { (yyval.interval_time_st)=INTERVAL_SECOND; }
12350     break;
12351 
12352   case 678:
12353 
12354 /* Line 1455 of yacc.c  */
12355 #line 3881 "drizzled/sql_yacc.yy"
12356     { (yyval.interval_time_st)=INTERVAL_MICROSECOND; }
12357     break;
12358 
12359   case 679:
12360 
12361 /* Line 1455 of yacc.c  */
12362 #line 3882 "drizzled/sql_yacc.yy"
12363     { (yyval.interval_time_st)=INTERVAL_YEAR; }
12364     break;
12365 
12366   case 682:
12367 
12368 /* Line 1455 of yacc.c  */
12369 #line 3891 "drizzled/sql_yacc.yy"
12370     { (yyval.lex_str_ptr)=0; }
12371     break;
12372 
12373   case 683:
12374 
12375 /* Line 1455 of yacc.c  */
12376 #line 3893 "drizzled/sql_yacc.yy"
12377     {
12378             (yyval.lex_str_ptr)= (drizzled::lex_string_t*) memory::sql_memdup(&(yyvsp[(2) - (2)].lex_str),sizeof(drizzled::lex_string_t));
12379           }
12380     break;
12381 
12382   case 686:
12383 
12384 /* Line 1455 of yacc.c  */
12385 #line 3904 "drizzled/sql_yacc.yy"
12386     { Lex.current_select->where= 0; }
12387     break;
12388 
12389   case 687:
12390 
12391 /* Line 1455 of yacc.c  */
12392 #line 3906 "drizzled/sql_yacc.yy"
12393     {
12394             Lex.current_select->parsing_place= IN_WHERE;
12395           }
12396     break;
12397 
12398   case 688:
12399 
12400 /* Line 1455 of yacc.c  */
12401 #line 3910 "drizzled/sql_yacc.yy"
12402     {
12403             Select_Lex *select= Lex.current_select;
12404             select->where= (yyvsp[(3) - (3)].item);
12405             select->parsing_place= NO_MATTER;
12406             if ((yyvsp[(3) - (3)].item))
12407               (yyvsp[(3) - (3)].item)->top_level_item();
12408           }
12409     break;
12410 
12411   case 690:
12412 
12413 /* Line 1455 of yacc.c  */
12414 #line 3922 "drizzled/sql_yacc.yy"
12415     {
12416             Lex.current_select->parsing_place= IN_HAVING;
12417           }
12418     break;
12419 
12420   case 691:
12421 
12422 /* Line 1455 of yacc.c  */
12423 #line 3926 "drizzled/sql_yacc.yy"
12424     {
12425             Select_Lex *sel= Lex.current_select;
12426             sel->having= (yyvsp[(3) - (3)].item);
12427             sel->parsing_place= NO_MATTER;
12428             if ((yyvsp[(3) - (3)].item))
12429               (yyvsp[(3) - (3)].item)->top_level_item();
12430           }
12431     break;
12432 
12433   case 692:
12434 
12435 /* Line 1455 of yacc.c  */
12436 #line 3937 "drizzled/sql_yacc.yy"
12437     {
12438             Lex.escape_used= true;
12439             (yyval.item)= (yyvsp[(2) - (2)].item);
12440           }
12441     break;
12442 
12443   case 693:
12444 
12445 /* Line 1455 of yacc.c  */
12446 #line 3942 "drizzled/sql_yacc.yy"
12447     {
12448             Lex.escape_used= false;
12449             (yyval.item)= new Item_string(str_ref("\\"), &my_charset_utf8_general_ci);
12450           }
12451     break;
12452 
12453   case 696:
12454 
12455 /* Line 1455 of yacc.c  */
12456 #line 3959 "drizzled/sql_yacc.yy"
12457     { YYSession->add_group_to_list((yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num)); }
12458     break;
12459 
12460   case 697:
12461 
12462 /* Line 1455 of yacc.c  */
12463 #line 3961 "drizzled/sql_yacc.yy"
12464     { YYSession->add_group_to_list((yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num)); }
12465     break;
12466 
12467   case 698:
12468 
12469 /* Line 1455 of yacc.c  */
12470 #line 3965 "drizzled/sql_yacc.yy"
12471     {}
12472     break;
12473 
12474   case 699:
12475 
12476 /* Line 1455 of yacc.c  */
12477 #line 3967 "drizzled/sql_yacc.yy"
12478     {
12479             /*
12480               'WITH ROLLUP' is needed for backward compatibility,
12481               and cause LALR(2) conflicts.
12482               This syntax is not standard.
12483               MySQL syntax: GROUP BY col1, col2, col3 WITH ROLLUP
12484               SQL-2003: GROUP BY ... ROLLUP(col1, col2, col3)
12485             */
12486             if (Lex.current_select->linkage == GLOBAL_OPTIONS_TYPE)
12487             {
12488               my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
12489                        "global union parameters");
12490               DRIZZLE_YYABORT;
12491             }
12492             Lex.current_select->olap= ROLLUP_TYPE;
12493           }
12494     break;
12495 
12496   case 703:
12497 
12498 /* Line 1455 of yacc.c  */
12499 #line 4000 "drizzled/sql_yacc.yy"
12500     {
12501             bool ascending= (yyvsp[(2) - (2)].num) == 1;
12502             YYSession->add_order_to_list((yyvsp[(1) - (2)].item), ascending);
12503           }
12504     break;
12505 
12506   case 706:
12507 
12508 /* Line 1455 of yacc.c  */
12509 #line 4017 "drizzled/sql_yacc.yy"
12510     {
12511             if (not parser::buildOrderBy(&Lex))
12512               DRIZZLE_YYABORT;
12513           }
12514     break;
12515 
12516   case 708:
12517 
12518 /* Line 1455 of yacc.c  */
12519 #line 4026 "drizzled/sql_yacc.yy"
12520     {
12521             YYSession->add_order_to_list((yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num));
12522           }
12523     break;
12524 
12525   case 709:
12526 
12527 /* Line 1455 of yacc.c  */
12528 #line 4030 "drizzled/sql_yacc.yy"
12529     {
12530             YYSession->add_order_to_list((yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num));
12531           }
12532     break;
12533 
12534   case 710:
12535 
12536 /* Line 1455 of yacc.c  */
12537 #line 4036 "drizzled/sql_yacc.yy"
12538     { (yyval.num) =  1; }
12539     break;
12540 
12541   case 711:
12542 
12543 /* Line 1455 of yacc.c  */
12544 #line 4037 "drizzled/sql_yacc.yy"
12545     { (yyval.num) =1; }
12546     break;
12547 
12548   case 712:
12549 
12550 /* Line 1455 of yacc.c  */
12551 #line 4038 "drizzled/sql_yacc.yy"
12552     { (yyval.num) =0; }
12553     break;
12554 
12555   case 713:
12556 
12557 /* Line 1455 of yacc.c  */
12558 #line 4043 "drizzled/sql_yacc.yy"
12559     {
12560             Select_Lex *sel= Lex.current_select;
12561             sel->offset_limit= 0;
12562             sel->select_limit= 0;
12563           }
12564     break;
12565 
12566   case 714:
12567 
12568 /* Line 1455 of yacc.c  */
12569 #line 4048 "drizzled/sql_yacc.yy"
12570     {}
12571     break;
12572 
12573   case 715:
12574 
12575 /* Line 1455 of yacc.c  */
12576 #line 4052 "drizzled/sql_yacc.yy"
12577     {}
12578     break;
12579 
12580   case 716:
12581 
12582 /* Line 1455 of yacc.c  */
12583 #line 4053 "drizzled/sql_yacc.yy"
12584     {}
12585     break;
12586 
12587   case 717:
12588 
12589 /* Line 1455 of yacc.c  */
12590 #line 4057 "drizzled/sql_yacc.yy"
12591     {}
12592     break;
12593 
12594   case 718:
12595 
12596 /* Line 1455 of yacc.c  */
12597 #line 4062 "drizzled/sql_yacc.yy"
12598     {
12599             Select_Lex *sel= Lex.current_select;
12600             sel->select_limit= (yyvsp[(1) - (1)].item);
12601             sel->offset_limit= 0;
12602             sel->explicit_limit= 1;
12603           }
12604     break;
12605 
12606   case 719:
12607 
12608 /* Line 1455 of yacc.c  */
12609 #line 4069 "drizzled/sql_yacc.yy"
12610     {
12611             Select_Lex *sel= Lex.current_select;
12612             sel->select_limit= (yyvsp[(3) - (3)].item);
12613             sel->offset_limit= (yyvsp[(1) - (3)].item);
12614             sel->explicit_limit= 1;
12615           }
12616     break;
12617 
12618   case 720:
12619 
12620 /* Line 1455 of yacc.c  */
12621 #line 4076 "drizzled/sql_yacc.yy"
12622     {
12623             Select_Lex *sel= Lex.current_select;
12624             sel->select_limit= (yyvsp[(1) - (3)].item);
12625             sel->offset_limit= (yyvsp[(3) - (3)].item);
12626             sel->explicit_limit= 1;
12627           }
12628     break;
12629 
12630   case 721:
12631 
12632 /* Line 1455 of yacc.c  */
12633 #line 4085 "drizzled/sql_yacc.yy"
12634     { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
12635     break;
12636 
12637   case 722:
12638 
12639 /* Line 1455 of yacc.c  */
12640 #line 4086 "drizzled/sql_yacc.yy"
12641     { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
12642     break;
12643 
12644   case 723:
12645 
12646 /* Line 1455 of yacc.c  */
12647 #line 4087 "drizzled/sql_yacc.yy"
12648     { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
12649     break;
12650 
12651   case 724:
12652 
12653 /* Line 1455 of yacc.c  */
12654 #line 4092 "drizzled/sql_yacc.yy"
12655     {
12656             Lex.current_select->select_limit= 0;
12657           }
12658     break;
12659 
12660   case 725:
12661 
12662 /* Line 1455 of yacc.c  */
12663 #line 4096 "drizzled/sql_yacc.yy"
12664     {
12665             Select_Lex *sel= Lex.current_select;
12666             sel->select_limit= (yyvsp[(2) - (2)].item);
12667             sel->explicit_limit= 1;
12668           }
12669     break;
12670 
12671   case 726:
12672 
12673 /* Line 1455 of yacc.c  */
12674 #line 4104 "drizzled/sql_yacc.yy"
12675     { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12676     break;
12677 
12678   case 727:
12679 
12680 /* Line 1455 of yacc.c  */
12681 #line 4105 "drizzled/sql_yacc.yy"
12682     { (yyval.ulong_num)= (unsigned long) strtol((yyvsp[(1) - (1)].lex_str).data(), NULL, 16); }
12683     break;
12684 
12685   case 728:
12686 
12687 /* Line 1455 of yacc.c  */
12688 #line 4106 "drizzled/sql_yacc.yy"
12689     { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12690     break;
12691 
12692   case 729:
12693 
12694 /* Line 1455 of yacc.c  */
12695 #line 4107 "drizzled/sql_yacc.yy"
12696     { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12697     break;
12698 
12699   case 730:
12700 
12701 /* Line 1455 of yacc.c  */
12702 #line 4108 "drizzled/sql_yacc.yy"
12703     { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12704     break;
12705 
12706   case 731:
12707 
12708 /* Line 1455 of yacc.c  */
12709 #line 4109 "drizzled/sql_yacc.yy"
12710     { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12711     break;
12712 
12713   case 732:
12714 
12715 /* Line 1455 of yacc.c  */
12716 #line 4113 "drizzled/sql_yacc.yy"
12717     { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12718     break;
12719 
12720   case 733:
12721 
12722 /* Line 1455 of yacc.c  */
12723 #line 4114 "drizzled/sql_yacc.yy"
12724     { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12725     break;
12726 
12727   case 734:
12728 
12729 /* Line 1455 of yacc.c  */
12730 #line 4115 "drizzled/sql_yacc.yy"
12731     { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12732     break;
12733 
12734   case 735:
12735 
12736 /* Line 1455 of yacc.c  */
12737 #line 4116 "drizzled/sql_yacc.yy"
12738     { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12739     break;
12740 
12741   case 736:
12742 
12743 /* Line 1455 of yacc.c  */
12744 #line 4117 "drizzled/sql_yacc.yy"
12745     { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12746     break;
12747 
12748   case 737:
12749 
12750 /* Line 1455 of yacc.c  */
12751 #line 4121 "drizzled/sql_yacc.yy"
12752     {
12753             if (not Lex.describe)
12754         Lex.result= new select_dumpvar;
12755           }
12756     break;
12757 
12758   case 738:
12759 
12760 /* Line 1455 of yacc.c  */
12761 #line 4126 "drizzled/sql_yacc.yy"
12762     {}
12763     break;
12764 
12765   case 740:
12766 
12767 /* Line 1455 of yacc.c  */
12768 #line 4131 "drizzled/sql_yacc.yy"
12769     {}
12770     break;
12771 
12772   case 741:
12773 
12774 /* Line 1455 of yacc.c  */
12775 #line 4136 "drizzled/sql_yacc.yy"
12776     {
12777             if (Lex.result)
12778             {
12779               ((select_dumpvar *)Lex.result)->var_list.push_back( new var((yyvsp[(2) - (2)].lex_str),0,0,(enum_field_types)0));
12780             }
12781             else
12782             {
12783               /*
12784                 The parser won't create select_result instance only
12785                 if it's an EXPLAIN.
12786               */
12787               assert(Lex.describe);
12788             }
12789           }
12790     break;
12791 
12792   case 742:
12793 
12794 /* Line 1455 of yacc.c  */
12795 #line 4154 "drizzled/sql_yacc.yy"
12796     { }
12797     break;
12798 
12799   case 744:
12800 
12801 /* Line 1455 of yacc.c  */
12802 #line 4160 "drizzled/sql_yacc.yy"
12803     {
12804             Lex.setCacheable(false);
12805             Lex.exchange= new file_exchange((yyvsp[(2) - (2)].lex_str).data(), 0);
12806             Lex.result= new select_export(Lex.exchange);
12807           }
12808     break;
12809 
12810   case 746:
12811 
12812 /* Line 1455 of yacc.c  */
12813 #line 4167 "drizzled/sql_yacc.yy"
12814     {
12815             if (not Lex.describe)
12816             {
12817               Lex.setCacheable(false);
12818               Lex.exchange= new file_exchange((yyvsp[(2) - (2)].lex_str).data(),1);
12819               Lex.result= new select_dump(Lex.exchange);
12820             }
12821           }
12822     break;
12823 
12824   case 747:
12825 
12826 /* Line 1455 of yacc.c  */
12827 #line 4176 "drizzled/sql_yacc.yy"
12828     {Lex.setCacheable(false);}
12829     break;
12830 
12831   case 748:
12832 
12833 /* Line 1455 of yacc.c  */
12834 #line 4185 "drizzled/sql_yacc.yy"
12835     {
12836             Lex.statement= new statement::catalog::Drop(YYSession, (yyvsp[(3) - (3)].lex_str));
12837           }
12838     break;
12839 
12840   case 749:
12841 
12842 /* Line 1455 of yacc.c  */
12843 #line 4189 "drizzled/sql_yacc.yy"
12844     {
12845             statement::DropTable *statement= new statement::DropTable(YYSession);
12846             Lex.statement= statement;
12847             statement->drop_temporary= (yyvsp[(2) - (5)].boolean);
12848             statement->drop_if_exists= (yyvsp[(4) - (5)].boolean);
12849           }
12850     break;
12851 
12852   case 750:
12853 
12854 /* Line 1455 of yacc.c  */
12855 #line 4195 "drizzled/sql_yacc.yy"
12856     {}
12857     break;
12858 
12859   case 751:
12860 
12861 /* Line 1455 of yacc.c  */
12862 #line 4196 "drizzled/sql_yacc.yy"
12863     {
12864             statement::DropIndex *statement= new statement::DropIndex(YYSession);
12865             Lex.statement= statement;
12866             statement->alter_info.flags.set(ALTER_DROP_INDEX);
12867 
12868             if (not Lex.current_select->add_table_to_list(Lex.session, (yyvsp[(6) - (7)].table), NULL,
12869                                                           TL_OPTION_UPDATING))
12870               DRIZZLE_YYABORT;
12871 
12872             message::AlterTable::AlterTableOperation *operation;
12873             operation= Lex.alter_table()->add_operations();
12874             operation->set_operation(message::AlterTable::AlterTableOperation::DROP_KEY);
12875             operation->set_drop_name((yyvsp[(4) - (7)].lex_str).data());
12876 
12877           }
12878     break;
12879 
12880   case 752:
12881 
12882 /* Line 1455 of yacc.c  */
12883 #line 4212 "drizzled/sql_yacc.yy"
12884     {
12885             statement::DropSchema *statement= new statement::DropSchema(YYSession);
12886             Lex.statement= statement;
12887             statement->drop_if_exists=(yyvsp[(3) - (4)].boolean);
12888             Lex.name= (yyvsp[(4) - (4)].lex_str);
12889           }
12890     break;
12891 
12892   case 755:
12893 
12894 /* Line 1455 of yacc.c  */
12895 #line 4227 "drizzled/sql_yacc.yy"
12896     {
12897             if (!Lex.current_select->add_table_to_list(YYSession, (yyvsp[(1) - (1)].table), NULL, TL_OPTION_UPDATING))
12898               DRIZZLE_YYABORT;
12899           }
12900     break;
12901 
12902   case 756:
12903 
12904 /* Line 1455 of yacc.c  */
12905 #line 4234 "drizzled/sql_yacc.yy"
12906     { (yyval.boolean)= false; }
12907     break;
12908 
12909   case 757:
12910 
12911 /* Line 1455 of yacc.c  */
12912 #line 4235 "drizzled/sql_yacc.yy"
12913     { (yyval.boolean)= true; }
12914     break;
12915 
12916   case 758:
12917 
12918 /* Line 1455 of yacc.c  */
12919 #line 4239 "drizzled/sql_yacc.yy"
12920     { (yyval.boolean)= false; }
12921     break;
12922 
12923   case 759:
12924 
12925 /* Line 1455 of yacc.c  */
12926 #line 4240 "drizzled/sql_yacc.yy"
12927     { (yyval.boolean)= true; }
12928     break;
12929 
12930   case 760:
12931 
12932 /* Line 1455 of yacc.c  */
12933 #line 4249 "drizzled/sql_yacc.yy"
12934     {
12935           Lex.statement= new statement::Execute(YYSession, (yyvsp[(2) - (5)].execute_string), (yyvsp[(3) - (5)].boolean), (yyvsp[(4) - (5)].boolean), (yyvsp[(5) - (5)].boolean));
12936         }
12937     break;
12938 
12939   case 761:
12940 
12941 /* Line 1455 of yacc.c  */
12942 #line 4256 "drizzled/sql_yacc.yy"
12943     {
12944             (yyval.execute_string).set((yyvsp[(1) - (1)].lex_str));
12945          }
12946     break;
12947 
12948   case 762:
12949 
12950 /* Line 1455 of yacc.c  */
12951 #line 4260 "drizzled/sql_yacc.yy"
12952     {
12953             (yyval.execute_string).set((yyvsp[(2) - (2)].lex_str), true);
12954         }
12955     break;
12956 
12957   case 763:
12958 
12959 /* Line 1455 of yacc.c  */
12960 #line 4265 "drizzled/sql_yacc.yy"
12961     { (yyval.boolean)= false; }
12962     break;
12963 
12964   case 764:
12965 
12966 /* Line 1455 of yacc.c  */
12967 #line 4266 "drizzled/sql_yacc.yy"
12968     { (yyval.boolean)= true; }
12969     break;
12970 
12971   case 765:
12972 
12973 /* Line 1455 of yacc.c  */
12974 #line 4270 "drizzled/sql_yacc.yy"
12975     { (yyval.boolean)= false; }
12976     break;
12977 
12978   case 766:
12979 
12980 /* Line 1455 of yacc.c  */
12981 #line 4271 "drizzled/sql_yacc.yy"
12982     { (yyval.boolean)= true; }
12983     break;
12984 
12985   case 767:
12986 
12987 /* Line 1455 of yacc.c  */
12988 #line 4275 "drizzled/sql_yacc.yy"
12989     { (yyval.boolean)= false; }
12990     break;
12991 
12992   case 768:
12993 
12994 /* Line 1455 of yacc.c  */
12995 #line 4276 "drizzled/sql_yacc.yy"
12996     { (yyval.boolean)= true; }
12997     break;
12998 
12999   case 769:
13000 
13001 /* Line 1455 of yacc.c  */
13002 #line 4285 "drizzled/sql_yacc.yy"
13003     {
13004             Lex.statement= new statement::Insert(YYSession);
13005             Lex.duplicates= DUP_ERROR;
13006             init_select(&Lex);
13007             /* for subselects */
13008             Lex.lock_option= TL_READ;
13009           }
13010     break;
13011 
13012   case 770:
13013 
13014 /* Line 1455 of yacc.c  */
13015 #line 4293 "drizzled/sql_yacc.yy"
13016     {
13017             Lex.current_select->set_lock_for_tables(TL_WRITE_CONCURRENT_INSERT);
13018             Lex.current_select= &Lex.select_lex;
13019           }
13020     break;
13021 
13022   case 771:
13023 
13024 /* Line 1455 of yacc.c  */
13025 #line 4298 "drizzled/sql_yacc.yy"
13026     {}
13027     break;
13028 
13029   case 772:
13030 
13031 /* Line 1455 of yacc.c  */
13032 #line 4303 "drizzled/sql_yacc.yy"
13033     {
13034             Lex.statement= new statement::Replace(YYSession);
13035             Lex.duplicates= DUP_REPLACE;
13036             init_select(&Lex);
13037           }
13038     break;
13039 
13040   case 773:
13041 
13042 /* Line 1455 of yacc.c  */
13043 #line 4309 "drizzled/sql_yacc.yy"
13044     {
13045             Lex.current_select->set_lock_for_tables(TL_WRITE_DEFAULT);
13046             Lex.current_select= &Lex.select_lex;
13047           }
13048     break;
13049 
13050   case 774:
13051 
13052 /* Line 1455 of yacc.c  */
13053 #line 4314 "drizzled/sql_yacc.yy"
13054     {}
13055     break;
13056 
13057   case 775:
13058 
13059 /* Line 1455 of yacc.c  */
13060 #line 4318 "drizzled/sql_yacc.yy"
13061     {}
13062     break;
13063 
13064   case 776:
13065 
13066 /* Line 1455 of yacc.c  */
13067 #line 4319 "drizzled/sql_yacc.yy"
13068     {}
13069     break;
13070 
13071   case 777:
13072 
13073 /* Line 1455 of yacc.c  */
13074 #line 4324 "drizzled/sql_yacc.yy"
13075     {
13076             Lex.field_list.clear();
13077             Lex.many_values.clear();
13078             Lex.insert_list=0;
13079           }
13080     break;
13081 
13082   case 778:
13083 
13084 /* Line 1455 of yacc.c  */
13085 #line 4331 "drizzled/sql_yacc.yy"
13086     {}
13087     break;
13088 
13089   case 779:
13090 
13091 /* Line 1455 of yacc.c  */
13092 #line 4332 "drizzled/sql_yacc.yy"
13093     {}
13094     break;
13095 
13096   case 780:
13097 
13098 /* Line 1455 of yacc.c  */
13099 #line 4333 "drizzled/sql_yacc.yy"
13100     {}
13101     break;
13102 
13103   case 781:
13104 
13105 /* Line 1455 of yacc.c  */
13106 #line 4335 "drizzled/sql_yacc.yy"
13107     {
13108             Lex.insert_list = new List_item;
13109             Lex.many_values.push_back(Lex.insert_list);
13110           }
13111     break;
13112 
13113   case 783:
13114 
13115 /* Line 1455 of yacc.c  */
13116 #line 4343 "drizzled/sql_yacc.yy"
13117     { Lex.field_list.push_back((yyvsp[(3) - (3)].item)); }
13118     break;
13119 
13120   case 784:
13121 
13122 /* Line 1455 of yacc.c  */
13123 #line 4344 "drizzled/sql_yacc.yy"
13124     { Lex.field_list.push_back((yyvsp[(1) - (1)].item)); }
13125     break;
13126 
13127   case 785:
13128 
13129 /* Line 1455 of yacc.c  */
13130 #line 4348 "drizzled/sql_yacc.yy"
13131     {}
13132     break;
13133 
13134   case 786:
13135 
13136 /* Line 1455 of yacc.c  */
13137 #line 4349 "drizzled/sql_yacc.yy"
13138     {}
13139     break;
13140 
13141   case 787:
13142 
13143 /* Line 1455 of yacc.c  */
13144 #line 4351 "drizzled/sql_yacc.yy"
13145     {
13146             Lex.current_select->set_braces(0);
13147           }
13148     break;
13149 
13150   case 788:
13151 
13152 /* Line 1455 of yacc.c  */
13153 #line 4354 "drizzled/sql_yacc.yy"
13154     {}
13155     break;
13156 
13157   case 789:
13158 
13159 /* Line 1455 of yacc.c  */
13160 #line 4356 "drizzled/sql_yacc.yy"
13161     {
13162             Lex.current_select->set_braces(1);
13163           }
13164     break;
13165 
13166   case 790:
13167 
13168 /* Line 1455 of yacc.c  */
13169 #line 4359 "drizzled/sql_yacc.yy"
13170     {}
13171     break;
13172 
13173   case 795:
13174 
13175 /* Line 1455 of yacc.c  */
13176 #line 4374 "drizzled/sql_yacc.yy"
13177     {
13178             Lex.field_list.push_back((yyvsp[(1) - (3)].item));
13179             Lex.insert_list->push_back((yyvsp[(3) - (3)].item));
13180           }
13181     break;
13182 
13183   case 796:
13184 
13185 /* Line 1455 of yacc.c  */
13186 #line 4381 "drizzled/sql_yacc.yy"
13187     {}
13188     break;
13189 
13190   case 797:
13191 
13192 /* Line 1455 of yacc.c  */
13193 #line 4382 "drizzled/sql_yacc.yy"
13194     {}
13195     break;
13196 
13197   case 798:
13198 
13199 /* Line 1455 of yacc.c  */
13200 #line 4386 "drizzled/sql_yacc.yy"
13201     {}
13202     break;
13203 
13204   case 799:
13205 
13206 /* Line 1455 of yacc.c  */
13207 #line 4387 "drizzled/sql_yacc.yy"
13208     {}
13209     break;
13210 
13211   case 800:
13212 
13213 /* Line 1455 of yacc.c  */
13214 #line 4392 "drizzled/sql_yacc.yy"
13215     {
13216               Lex.insert_list = new List_item;
13217           }
13218     break;
13219 
13220   case 801:
13221 
13222 /* Line 1455 of yacc.c  */
13223 #line 4396 "drizzled/sql_yacc.yy"
13224     {
13225             Lex.many_values.push_back(Lex.insert_list);
13226           }
13227     break;
13228 
13229   case 802:
13230 
13231 /* Line 1455 of yacc.c  */
13232 #line 4402 "drizzled/sql_yacc.yy"
13233     {}
13234     break;
13235 
13236   case 804:
13237 
13238 /* Line 1455 of yacc.c  */
13239 #line 4408 "drizzled/sql_yacc.yy"
13240     {
13241             Lex.insert_list->push_back((yyvsp[(3) - (3)].item));
13242           }
13243     break;
13244 
13245   case 805:
13246 
13247 /* Line 1455 of yacc.c  */
13248 #line 4412 "drizzled/sql_yacc.yy"
13249     {
13250             Lex.insert_list->push_back((yyvsp[(1) - (1)].item));
13251           }
13252     break;
13253 
13254   case 806:
13255 
13256 /* Line 1455 of yacc.c  */
13257 #line 4418 "drizzled/sql_yacc.yy"
13258     { (yyval.item)= (yyvsp[(1) - (1)].item);}
13259     break;
13260 
13261   case 807:
13262 
13263 /* Line 1455 of yacc.c  */
13264 #line 4419 "drizzled/sql_yacc.yy"
13265     {(yyval.item)= new Item_default_value(Lex.current_context()); }
13266     break;
13267 
13268   case 809:
13269 
13270 /* Line 1455 of yacc.c  */
13271 #line 4424 "drizzled/sql_yacc.yy"
13272     { Lex.duplicates= DUP_UPDATE; }
13273     break;
13274 
13275   case 811:
13276 
13277 /* Line 1455 of yacc.c  */
13278 #line 4432 "drizzled/sql_yacc.yy"
13279     {
13280             init_select(&Lex);
13281             Lex.statement= new statement::Update(YYSession);
13282             Lex.lock_option= TL_UNLOCK; /* Will be set later */
13283             Lex.duplicates= DUP_ERROR;
13284             if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(3) - (5)].table), NULL,0))
13285               DRIZZLE_YYABORT;
13286 
13287             if (Lex.select_lex.get_table_list()->derived)
13288             {
13289               /* it is single table update and it is update of derived table */
13290               my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
13291                        Lex.select_lex.get_table_list()->alias, "UPDATE");
13292               DRIZZLE_YYABORT;
13293             }
13294             /*
13295               In case of multi-update setting write lock for all tables may
13296               be too pessimistic. We will decrease lock level if possible in
13297               multi_update().
13298             */
13299             Lex.current_select->set_lock_for_tables(TL_WRITE_DEFAULT);
13300           }
13301     break;
13302 
13303   case 812:
13304 
13305 /* Line 1455 of yacc.c  */
13306 #line 4454 "drizzled/sql_yacc.yy"
13307     {}
13308     break;
13309 
13310   case 815:
13311 
13312 /* Line 1455 of yacc.c  */
13313 #line 4464 "drizzled/sql_yacc.yy"
13314     {
13315             YYSession->add_item_to_list((yyvsp[(1) - (3)].item));
13316       YYSession->add_value_to_list((yyvsp[(3) - (3)].item));
13317           }
13318     break;
13319 
13320   case 818:
13321 
13322 /* Line 1455 of yacc.c  */
13323 #line 4477 "drizzled/sql_yacc.yy"
13324     {
13325       Lex.update_list.push_back((yyvsp[(1) - (3)].item));
13326             Lex.value_list.push_back((yyvsp[(3) - (3)].item));
13327           }
13328     break;
13329 
13330   case 819:
13331 
13332 /* Line 1455 of yacc.c  */
13333 #line 4487 "drizzled/sql_yacc.yy"
13334     {
13335             Lex.statement= new statement::Delete(YYSession);
13336             init_select(&Lex);
13337             Lex.lock_option= TL_WRITE_DEFAULT;
13338             Lex.select_lex.init_order();
13339             Lex.current_select->add_table_to_list(YYSession, (yyvsp[(4) - (4)].table), NULL, TL_OPTION_UPDATING, Lex.lock_option);
13340           }
13341     break;
13342 
13343   case 820:
13344 
13345 /* Line 1455 of yacc.c  */
13346 #line 4495 "drizzled/sql_yacc.yy"
13347     {}
13348     break;
13349 
13350   case 821:
13351 
13352 /* Line 1455 of yacc.c  */
13353 #line 4499 "drizzled/sql_yacc.yy"
13354     { Lex.ignore= 0; }
13355     break;
13356 
13357   case 822:
13358 
13359 /* Line 1455 of yacc.c  */
13360 #line 4500 "drizzled/sql_yacc.yy"
13361     { Lex.ignore= 1; }
13362     break;
13363 
13364   case 823:
13365 
13366 /* Line 1455 of yacc.c  */
13367 #line 4505 "drizzled/sql_yacc.yy"
13368     {
13369             Lex.statement= new statement::Truncate(YYSession);
13370             Lex.select_lex.options= 0;
13371             Lex.select_lex.init_order();
13372           }
13373     break;
13374 
13375   case 826:
13376 
13377 /* Line 1455 of yacc.c  */
13378 #line 4521 "drizzled/sql_yacc.yy"
13379     {
13380             Lex.lock_option= TL_READ;
13381             init_select(&Lex);
13382             Lex.current_select->parsing_place= SELECT_LIST;
13383           }
13384     break;
13385 
13386   case 827:
13387 
13388 /* Line 1455 of yacc.c  */
13389 #line 4527 "drizzled/sql_yacc.yy"
13390     {}
13391     break;
13392 
13393   case 828:
13394 
13395 /* Line 1455 of yacc.c  */
13396 #line 4533 "drizzled/sql_yacc.yy"
13397     {
13398              if (not show::buildSchemas(YYSession))
13399         DRIZZLE_YYABORT;
13400            }
13401     break;
13402 
13403   case 829:
13404 
13405 /* Line 1455 of yacc.c  */
13406 #line 4539 "drizzled/sql_yacc.yy"
13407     {
13408              if (not show::buildTables(YYSession, (yyvsp[(2) - (3)].simple_string)))
13409                DRIZZLE_YYABORT;
13410            }
13411     break;
13412 
13413   case 830:
13414 
13415 /* Line 1455 of yacc.c  */
13416 #line 4545 "drizzled/sql_yacc.yy"
13417     {
13418              if (not show::buildTemporaryTables(YYSession))
13419                DRIZZLE_YYABORT;
13420            }
13421     break;
13422 
13423   case 831:
13424 
13425 /* Line 1455 of yacc.c  */
13426 #line 4551 "drizzled/sql_yacc.yy"
13427     {
13428              if (not show::buildTableStatus(YYSession, (yyvsp[(3) - (4)].simple_string)))
13429                DRIZZLE_YYABORT;
13430            }
13431     break;
13432 
13433   case 832:
13434 
13435 /* Line 1455 of yacc.c  */
13436 #line 4557 "drizzled/sql_yacc.yy"
13437     {
13438              if (not show::buildColumns(YYSession, (yyvsp[(4) - (5)].simple_string), (yyvsp[(3) - (5)].table)))
13439                DRIZZLE_YYABORT;
13440            }
13441     break;
13442 
13443   case 833:
13444 
13445 /* Line 1455 of yacc.c  */
13446 #line 4563 "drizzled/sql_yacc.yy"
13447     {
13448              if (not show::buildIndex(YYSession, (yyvsp[(4) - (5)].simple_string), (yyvsp[(3) - (5)].table)))
13449                DRIZZLE_YYABORT;
13450            }
13451     break;
13452 
13453   case 834:
13454 
13455 /* Line 1455 of yacc.c  */
13456 #line 4568 "drizzled/sql_yacc.yy"
13457     {
13458             show::buildSelectWarning(YYSession);
13459           }
13460     break;
13461 
13462   case 835:
13463 
13464 /* Line 1455 of yacc.c  */
13465 #line 4572 "drizzled/sql_yacc.yy"
13466     {
13467             show::buildSelectError(YYSession);
13468           }
13469     break;
13470 
13471   case 836:
13472 
13473 /* Line 1455 of yacc.c  */
13474 #line 4576 "drizzled/sql_yacc.yy"
13475     {
13476             show::buildWarnings(YYSession);
13477           }
13478     break;
13479 
13480   case 837:
13481 
13482 /* Line 1455 of yacc.c  */
13483 #line 4580 "drizzled/sql_yacc.yy"
13484     {
13485             show::buildErrors(YYSession);
13486           }
13487     break;
13488 
13489   case 838:
13490 
13491 /* Line 1455 of yacc.c  */
13492 #line 4584 "drizzled/sql_yacc.yy"
13493     {
13494             if (not show::buildStatus(YYSession, (yyvsp[(1) - (3)].var_type)))
13495               DRIZZLE_YYABORT;
13496           }
13497     break;
13498 
13499   case 839:
13500 
13501 /* Line 1455 of yacc.c  */
13502 #line 4589 "drizzled/sql_yacc.yy"
13503     {
13504             if (not show::buildEngineStatus(YYSession, (yyvsp[(1) - (2)].lex_str)))
13505               DRIZZLE_YYABORT;
13506           }
13507     break;
13508 
13509   case 840:
13510 
13511 /* Line 1455 of yacc.c  */
13512 #line 4594 "drizzled/sql_yacc.yy"
13513     {
13514             if (not show::buildCreateTable(YYSession, (yyvsp[(3) - (3)].table)))
13515               DRIZZLE_YYABORT;
13516           }
13517     break;
13518 
13519   case 841:
13520 
13521 /* Line 1455 of yacc.c  */
13522 #line 4599 "drizzled/sql_yacc.yy"
13523     {
13524             if (not show::buildProcesslist(YYSession))
13525               DRIZZLE_YYABORT;
13526           }
13527     break;
13528 
13529   case 842:
13530 
13531 /* Line 1455 of yacc.c  */
13532 #line 4604 "drizzled/sql_yacc.yy"
13533     {
13534             if (not show::buildVariables(YYSession, (yyvsp[(1) - (3)].var_type)))
13535               DRIZZLE_YYABORT;
13536           }
13537     break;
13538 
13539   case 843:
13540 
13541 /* Line 1455 of yacc.c  */
13542 #line 4609 "drizzled/sql_yacc.yy"
13543     {
13544             if (not show::buildCreateSchema(YYSession, (yyvsp[(4) - (4)].lex_str)))
13545               DRIZZLE_YYABORT;
13546           }
13547     break;
13548 
13549   case 844:
13550 
13551 /* Line 1455 of yacc.c  */
13552 #line 4615 "drizzled/sql_yacc.yy"
13553     { (yyval.simple_string)= 0; }
13554     break;
13555 
13556   case 845:
13557 
13558 /* Line 1455 of yacc.c  */
13559 #line 4616 "drizzled/sql_yacc.yy"
13560     { (yyval.simple_string)= (yyvsp[(2) - (2)].lex_str).data(); }
13561     break;
13562 
13563   case 849:
13564 
13565 /* Line 1455 of yacc.c  */
13566 #line 4627 "drizzled/sql_yacc.yy"
13567     {
13568             Lex.wild= new (YYSession->mem_root) String((yyvsp[(2) - (2)].lex_str).data(), (yyvsp[(2) - (2)].lex_str).size(), system_charset_info);
13569           }
13570     break;
13571 
13572   case 850:
13573 
13574 /* Line 1455 of yacc.c  */
13575 #line 4631 "drizzled/sql_yacc.yy"
13576     {
13577             Lex.current_select->where= (yyvsp[(2) - (2)].item);
13578             if ((yyvsp[(2) - (2)].item))
13579               (yyvsp[(2) - (2)].item)->top_level_item();
13580           }
13581     break;
13582 
13583   case 851:
13584 
13585 /* Line 1455 of yacc.c  */
13586 #line 4641 "drizzled/sql_yacc.yy"
13587     {
13588             if (not show::buildDescribe(YYSession, (yyvsp[(2) - (2)].table)))
13589             {
13590               DRIZZLE_YYABORT;
13591             }
13592           }
13593     break;
13594 
13595   case 852:
13596 
13597 /* Line 1455 of yacc.c  */
13598 #line 4647 "drizzled/sql_yacc.yy"
13599     {}
13600     break;
13601 
13602   case 853:
13603 
13604 /* Line 1455 of yacc.c  */
13605 #line 4649 "drizzled/sql_yacc.yy"
13606     { Lex.describe|= DESCRIBE_NORMAL; }
13607     break;
13608 
13609   case 854:
13610 
13611 /* Line 1455 of yacc.c  */
13612 #line 4651 "drizzled/sql_yacc.yy"
13613     {
13614             Lex.select_lex.options|= SELECT_DESCRIBE;
13615           }
13616     break;
13617 
13618   case 857:
13619 
13620 /* Line 1455 of yacc.c  */
13621 #line 4662 "drizzled/sql_yacc.yy"
13622     {}
13623     break;
13624 
13625   case 858:
13626 
13627 /* Line 1455 of yacc.c  */
13628 #line 4663 "drizzled/sql_yacc.yy"
13629     { Lex.describe|= DESCRIBE_EXTENDED; }
13630     break;
13631 
13632   case 859:
13633 
13634 /* Line 1455 of yacc.c  */
13635 #line 4667 "drizzled/sql_yacc.yy"
13636     {}
13637     break;
13638 
13639   case 860:
13640 
13641 /* Line 1455 of yacc.c  */
13642 #line 4668 "drizzled/sql_yacc.yy"
13643     { Lex.wild= (yyvsp[(1) - (1)].string); }
13644     break;
13645 
13646   case 861:
13647 
13648 /* Line 1455 of yacc.c  */
13649 #line 4670 "drizzled/sql_yacc.yy"
13650     {
13651             Lex.wild= new (YYSession->mem_root) String((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), system_charset_info);
13652           }
13653     break;
13654 
13655   case 862:
13656 
13657 /* Line 1455 of yacc.c  */
13658 #line 4680 "drizzled/sql_yacc.yy"
13659     {
13660             Lex.statement= new statement::Flush(YYSession);
13661           }
13662     break;
13663 
13664   case 863:
13665 
13666 /* Line 1455 of yacc.c  */
13667 #line 4684 "drizzled/sql_yacc.yy"
13668     {}
13669     break;
13670 
13671   case 866:
13672 
13673 /* Line 1455 of yacc.c  */
13674 #line 4694 "drizzled/sql_yacc.yy"
13675     {
13676             statement::Flush *statement= (statement::Flush*)Lex.statement;
13677             statement->setFlushTables(true);
13678           }
13679     break;
13680 
13681   case 867:
13682 
13683 /* Line 1455 of yacc.c  */
13684 #line 4698 "drizzled/sql_yacc.yy"
13685     {}
13686     break;
13687 
13688   case 868:
13689 
13690 /* Line 1455 of yacc.c  */
13691 #line 4700 "drizzled/sql_yacc.yy"
13692     {
13693             statement::Flush *statement= (statement::Flush*)Lex.statement;
13694             statement->setFlushTablesWithReadLock(true);
13695           }
13696     break;
13697 
13698   case 869:
13699 
13700 /* Line 1455 of yacc.c  */
13701 #line 4705 "drizzled/sql_yacc.yy"
13702     {
13703             statement::Flush *statement= (statement::Flush*)Lex.statement;
13704             statement->setFlushLog(true);
13705           }
13706     break;
13707 
13708   case 870:
13709 
13710 /* Line 1455 of yacc.c  */
13711 #line 4710 "drizzled/sql_yacc.yy"
13712     {
13713             statement::Flush *statement= (statement::Flush*)Lex.statement;
13714             statement->setFlushStatus(true);
13715           }
13716     break;
13717 
13718   case 871:
13719 
13720 /* Line 1455 of yacc.c  */
13721 #line 4715 "drizzled/sql_yacc.yy"
13722     {
13723             statement::Flush *statement= (statement::Flush*)Lex.statement;
13724             statement->setFlushGlobalStatus(true);
13725           }
13726     break;
13727 
13728   case 872:
13729 
13730 /* Line 1455 of yacc.c  */
13731 #line 4722 "drizzled/sql_yacc.yy"
13732     {}
13733     break;
13734 
13735   case 873:
13736 
13737 /* Line 1455 of yacc.c  */
13738 #line 4723 "drizzled/sql_yacc.yy"
13739     {}
13740     break;
13741 
13742   case 874:
13743 
13744 /* Line 1455 of yacc.c  */
13745 #line 4730 "drizzled/sql_yacc.yy"
13746     {
13747             Lex.statement= new statement::Kill(YYSession, (yyvsp[(3) - (3)].item), (yyvsp[(2) - (3)].num));
13748           }
13749     break;
13750 
13751   case 875:
13752 
13753 /* Line 1455 of yacc.c  */
13754 #line 4736 "drizzled/sql_yacc.yy"
13755     { (yyval.num)= false; }
13756     break;
13757 
13758   case 876:
13759 
13760 /* Line 1455 of yacc.c  */
13761 #line 4737 "drizzled/sql_yacc.yy"
13762     { (yyval.num)= false; }
13763     break;
13764 
13765   case 877:
13766 
13767 /* Line 1455 of yacc.c  */
13768 #line 4738 "drizzled/sql_yacc.yy"
13769     { (yyval.num)= true; }
13770     break;
13771 
13772   case 878:
13773 
13774 /* Line 1455 of yacc.c  */
13775 #line 4745 "drizzled/sql_yacc.yy"
13776     {
13777             Lex.statement= new statement::ChangeSchema(YYSession);
13778             Lex.select_lex.db= (yyvsp[(2) - (2)].lex_str).data();
13779           }
13780     break;
13781 
13782   case 879:
13783 
13784 /* Line 1455 of yacc.c  */
13785 #line 4755 "drizzled/sql_yacc.yy"
13786     {
13787             statement::Load *statement= new statement::Load(YYSession);
13788             Lex.statement= statement;
13789 
13790             Lex_input_stream *lip= YYSession->m_lip;
13791             statement->fname_start= lip->get_ptr();
13792           }
13793     break;
13794 
13795   case 880:
13796 
13797 /* Line 1455 of yacc.c  */
13798 #line 4763 "drizzled/sql_yacc.yy"
13799     {
13800             Lex.lock_option= (yyvsp[(4) - (6)].lock_type);
13801             Lex.duplicates= DUP_ERROR;
13802             Lex.ignore= 0;
13803             Lex.exchange= new file_exchange((yyvsp[(6) - (6)].lex_str).data(), 0, (yyvsp[(2) - (6)].filetype));
13804           }
13805     break;
13806 
13807   case 881:
13808 
13809 /* Line 1455 of yacc.c  */
13810 #line 4770 "drizzled/sql_yacc.yy"
13811     {
13812             Lex_input_stream *lip= YYSession->m_lip;
13813             ((statement::Load *)Lex.statement)->fname_end= lip->get_ptr();
13814           }
13815     break;
13816 
13817   case 882:
13818 
13819 /* Line 1455 of yacc.c  */
13820 #line 4775 "drizzled/sql_yacc.yy"
13821     {
13822             if (!Lex.current_select->add_table_to_list(YYSession,
13823                     (yyvsp[(12) - (12)].table), NULL, TL_OPTION_UPDATING,
13824                     Lex.lock_option))
13825               DRIZZLE_YYABORT;
13826             Lex.field_list.clear();
13827             Lex.update_list.clear();
13828             Lex.value_list.clear();
13829           }
13830     break;
13831 
13832   case 883:
13833 
13834 /* Line 1455 of yacc.c  */
13835 #line 4786 "drizzled/sql_yacc.yy"
13836     {}
13837     break;
13838 
13839   case 884:
13840 
13841 /* Line 1455 of yacc.c  */
13842 #line 4790 "drizzled/sql_yacc.yy"
13843     { (yyval.filetype)= FILETYPE_CSV; }
13844     break;
13845 
13846   case 885:
13847 
13848 /* Line 1455 of yacc.c  */
13849 #line 4793 "drizzled/sql_yacc.yy"
13850     { (yyval.lock_type)= TL_WRITE_DEFAULT; }
13851     break;
13852 
13853   case 886:
13854 
13855 /* Line 1455 of yacc.c  */
13856 #line 4795 "drizzled/sql_yacc.yy"
13857     {
13858               (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
13859           }
13860     break;
13861 
13862   case 887:
13863 
13864 /* Line 1455 of yacc.c  */
13865 #line 4801 "drizzled/sql_yacc.yy"
13866     { Lex.duplicates=DUP_ERROR; }
13867     break;
13868 
13869   case 888:
13870 
13871 /* Line 1455 of yacc.c  */
13872 #line 4802 "drizzled/sql_yacc.yy"
13873     { Lex.duplicates=DUP_REPLACE; }
13874     break;
13875 
13876   case 889:
13877 
13878 /* Line 1455 of yacc.c  */
13879 #line 4803 "drizzled/sql_yacc.yy"
13880     { Lex.ignore= 1; }
13881     break;
13882 
13883   case 890:
13884 
13885 /* Line 1455 of yacc.c  */
13886 #line 4807 "drizzled/sql_yacc.yy"
13887     { Lex.duplicates=DUP_ERROR; }
13888     break;
13889 
13890   case 891:
13891 
13892 /* Line 1455 of yacc.c  */
13893 #line 4808 "drizzled/sql_yacc.yy"
13894     { Lex.duplicates=DUP_ERROR; }
13895     break;
13896 
13897   case 892:
13898 
13899 /* Line 1455 of yacc.c  */
13900 #line 4809 "drizzled/sql_yacc.yy"
13901     { Lex.duplicates=DUP_REPLACE; }
13902     break;
13903 
13904   case 893:
13905 
13906 /* Line 1455 of yacc.c  */
13907 #line 4810 "drizzled/sql_yacc.yy"
13908     { Lex.ignore= true; }
13909     break;
13910 
13911   case 894:
13912 
13913 /* Line 1455 of yacc.c  */
13914 #line 4811 "drizzled/sql_yacc.yy"
13915     { Lex.duplicates=DUP_REPLACE; }
13916     break;
13917 
13918   case 895:
13919 
13920 /* Line 1455 of yacc.c  */
13921 #line 4812 "drizzled/sql_yacc.yy"
13922     { Lex.ignore= true; }
13923     break;
13924 
13925   case 900:
13926 
13927 /* Line 1455 of yacc.c  */
13928 #line 4827 "drizzled/sql_yacc.yy"
13929     {
13930             assert(Lex.exchange != 0);
13931             Lex.exchange->field_term= (yyvsp[(3) - (3)].string);
13932           }
13933     break;
13934 
13935   case 901:
13936 
13937 /* Line 1455 of yacc.c  */
13938 #line 4832 "drizzled/sql_yacc.yy"
13939     {
13940             assert(Lex.exchange != 0);
13941             Lex.exchange->enclosed= (yyvsp[(4) - (4)].string);
13942             Lex.exchange->opt_enclosed= 1;
13943           }
13944     break;
13945 
13946   case 902:
13947 
13948 /* Line 1455 of yacc.c  */
13949 #line 4838 "drizzled/sql_yacc.yy"
13950     {
13951             assert(Lex.exchange != 0);
13952             Lex.exchange->enclosed= (yyvsp[(3) - (3)].string);
13953           }
13954     break;
13955 
13956   case 903:
13957 
13958 /* Line 1455 of yacc.c  */
13959 #line 4843 "drizzled/sql_yacc.yy"
13960     {
13961             assert(Lex.exchange != 0);
13962             Lex.exchange->escaped= (yyvsp[(3) - (3)].string);
13963           }
13964     break;
13965 
13966   case 908:
13967 
13968 /* Line 1455 of yacc.c  */
13969 #line 4861 "drizzled/sql_yacc.yy"
13970     {
13971             assert(Lex.exchange != 0);
13972             Lex.exchange->line_term= (yyvsp[(3) - (3)].string);
13973           }
13974     break;
13975 
13976   case 909:
13977 
13978 /* Line 1455 of yacc.c  */
13979 #line 4866 "drizzled/sql_yacc.yy"
13980     {
13981             assert(Lex.exchange != 0);
13982             Lex.exchange->line_start= (yyvsp[(3) - (3)].string);
13983           }
13984     break;
13985 
13986   case 911:
13987 
13988 /* Line 1455 of yacc.c  */
13989 #line 4875 "drizzled/sql_yacc.yy"
13990     {
13991             assert(Lex.exchange != 0);
13992             Lex.exchange->skip_lines= atol((yyvsp[(2) - (3)].lex_str).data());
13993           }
13994     break;
13995 
13996   case 912:
13997 
13998 /* Line 1455 of yacc.c  */
13999 #line 4882 "drizzled/sql_yacc.yy"
14000     { }
14001     break;
14002 
14003   case 913:
14004 
14005 /* Line 1455 of yacc.c  */
14006 #line 4883 "drizzled/sql_yacc.yy"
14007     { }
14008     break;
14009 
14010   case 914:
14011 
14012 /* Line 1455 of yacc.c  */
14013 #line 4887 "drizzled/sql_yacc.yy"
14014     {}
14015     break;
14016 
14017   case 915:
14018 
14019 /* Line 1455 of yacc.c  */
14020 #line 4888 "drizzled/sql_yacc.yy"
14021     {}
14022     break;
14023 
14024   case 916:
14025 
14026 /* Line 1455 of yacc.c  */
14027 #line 4889 "drizzled/sql_yacc.yy"
14028     {}
14029     break;
14030 
14031   case 917:
14032 
14033 /* Line 1455 of yacc.c  */
14034 #line 4894 "drizzled/sql_yacc.yy"
14035     { Lex.field_list.push_back((yyvsp[(3) - (3)].item)); }
14036     break;
14037 
14038   case 918:
14039 
14040 /* Line 1455 of yacc.c  */
14041 #line 4896 "drizzled/sql_yacc.yy"
14042     { Lex.field_list.push_back((yyvsp[(1) - (1)].item)); }
14043     break;
14044 
14045   case 919:
14046 
14047 /* Line 1455 of yacc.c  */
14048 #line 4900 "drizzled/sql_yacc.yy"
14049     {(yyval.item)= (yyvsp[(1) - (1)].item);}
14050     break;
14051 
14052   case 920:
14053 
14054 /* Line 1455 of yacc.c  */
14055 #line 4902 "drizzled/sql_yacc.yy"
14056     { (yyval.item)= new Item_user_var_as_out_param((yyvsp[(2) - (2)].lex_str)); }
14057     break;
14058 
14059   case 921:
14060 
14061 /* Line 1455 of yacc.c  */
14062 #line 4906 "drizzled/sql_yacc.yy"
14063     {}
14064     break;
14065 
14066   case 922:
14067 
14068 /* Line 1455 of yacc.c  */
14069 #line 4907 "drizzled/sql_yacc.yy"
14070     {}
14071     break;
14072 
14073   case 923:
14074 
14075 /* Line 1455 of yacc.c  */
14076 #line 4914 "drizzled/sql_yacc.yy"
14077     {
14078           (yyval.item) = new Item_string((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), YYSession->variables.getCollation());
14079         }
14080     break;
14081 
14082   case 924:
14083 
14084 /* Line 1455 of yacc.c  */
14085 #line 4918 "drizzled/sql_yacc.yy"
14086     {
14087             ((Item_string*) (yyvsp[(1) - (2)].item))->append((yyvsp[(2) - (2)].lex_str));
14088           }
14089     break;
14090 
14091   case 925:
14092 
14093 /* Line 1455 of yacc.c  */
14094 #line 4925 "drizzled/sql_yacc.yy"
14095     {
14096             (yyval.string)= new (YYSession->mem_root) String((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), YYSession->variables.getCollation());
14097           }
14098     break;
14099 
14100   case 926:
14101 
14102 /* Line 1455 of yacc.c  */
14103 #line 4929 "drizzled/sql_yacc.yy"
14104     {
14105             Item *tmp= new Item_hex_string((yyvsp[(1) - (1)].lex_str));
14106             /*
14107               it is OK only emulate fix_fields, because we need only
14108               value of constant
14109             */
14110             (yyval.string)= tmp ? tmp->quick_fix_field(), tmp->val_str(NULL) : NULL;
14111           }
14112     break;
14113 
14114   case 927:
14115 
14116 /* Line 1455 of yacc.c  */
14117 #line 4938 "drizzled/sql_yacc.yy"
14118     {
14119             Item *tmp= new Item_bin_string((yyvsp[(1) - (1)].lex_str));
14120             /*
14121               it is OK only emulate fix_fields, because we need only
14122               value of constant
14123             */
14124             (yyval.string)= tmp ? tmp->quick_fix_field(), tmp->val_str(NULL) : NULL;
14125           }
14126     break;
14127 
14128   case 928:
14129 
14130 /* Line 1455 of yacc.c  */
14131 #line 4949 "drizzled/sql_yacc.yy"
14132     { (yyval.item) = (yyvsp[(1) - (1)].item); }
14133     break;
14134 
14135   case 929:
14136 
14137 /* Line 1455 of yacc.c  */
14138 #line 4950 "drizzled/sql_yacc.yy"
14139     { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
14140     break;
14141 
14142   case 930:
14143 
14144 /* Line 1455 of yacc.c  */
14145 #line 4952 "drizzled/sql_yacc.yy"
14146     {
14147             (yyvsp[(2) - (2)].item_num)->max_length++;
14148             (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
14149           }
14150     break;
14151 
14152   case 931:
14153 
14154 /* Line 1455 of yacc.c  */
14155 #line 4959 "drizzled/sql_yacc.yy"
14156     { (yyval.item) = (yyvsp[(1) - (1)].item); }
14157     break;
14158 
14159   case 932:
14160 
14161 /* Line 1455 of yacc.c  */
14162 #line 4960 "drizzled/sql_yacc.yy"
14163     { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14164     break;
14165 
14166   case 933:
14167 
14168 /* Line 1455 of yacc.c  */
14169 #line 4962 "drizzled/sql_yacc.yy"
14170     {
14171             (yyval.item) = new Item_null();
14172             YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14173           }
14174     break;
14175 
14176   case 934:
14177 
14178 /* Line 1455 of yacc.c  */
14179 #line 4966 "drizzled/sql_yacc.yy"
14180     { (yyval.item)= new drizzled::item::False(); }
14181     break;
14182 
14183   case 935:
14184 
14185 /* Line 1455 of yacc.c  */
14186 #line 4967 "drizzled/sql_yacc.yy"
14187     { (yyval.item)= new drizzled::item::True(); }
14188     break;
14189 
14190   case 936:
14191 
14192 /* Line 1455 of yacc.c  */
14193 #line 4968 "drizzled/sql_yacc.yy"
14194     { (yyval.item) = new Item_hex_string((yyvsp[(1) - (1)].lex_str));}
14195     break;
14196 
14197   case 937:
14198 
14199 /* Line 1455 of yacc.c  */
14200 #line 4969 "drizzled/sql_yacc.yy"
14201     { (yyval.item)= new Item_bin_string((yyvsp[(1) - (1)].lex_str)); }
14202     break;
14203 
14204   case 938:
14205 
14206 /* Line 1455 of yacc.c  */
14207 #line 4970 "drizzled/sql_yacc.yy"
14208     { (yyval.item) = (yyvsp[(2) - (2)].item); }
14209     break;
14210 
14211   case 939:
14212 
14213 /* Line 1455 of yacc.c  */
14214 #line 4971 "drizzled/sql_yacc.yy"
14215     { (yyval.item) = (yyvsp[(2) - (2)].item); }
14216     break;
14217 
14218   case 940:
14219 
14220 /* Line 1455 of yacc.c  */
14221 #line 4975 "drizzled/sql_yacc.yy"
14222     { (yyval.item) = (yyvsp[(1) - (1)].item); }
14223     break;
14224 
14225   case 941:
14226 
14227 /* Line 1455 of yacc.c  */
14228 #line 4976 "drizzled/sql_yacc.yy"
14229     { (yyval.item) = new Item_hex_string((yyvsp[(1) - (1)].lex_str));}
14230     break;
14231 
14232   case 942:
14233 
14234 /* Line 1455 of yacc.c  */
14235 #line 4977 "drizzled/sql_yacc.yy"
14236     { (yyval.item)= new Item_bin_string((yyvsp[(1) - (1)].lex_str)); }
14237     break;
14238 
14239   case 943:
14240 
14241 /* Line 1455 of yacc.c  */
14242 #line 4978 "drizzled/sql_yacc.yy"
14243     { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14244     break;
14245 
14246   case 944:
14247 
14248 /* Line 1455 of yacc.c  */
14249 #line 4980 "drizzled/sql_yacc.yy"
14250     {
14251             (yyval.item) = new Item_null();
14252             YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14253           }
14254     break;
14255 
14256   case 945:
14257 
14258 /* Line 1455 of yacc.c  */
14259 #line 4984 "drizzled/sql_yacc.yy"
14260     { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
14261     break;
14262 
14263   case 946:
14264 
14265 /* Line 1455 of yacc.c  */
14266 #line 4986 "drizzled/sql_yacc.yy"
14267     {
14268             (yyvsp[(2) - (2)].item_num)->max_length++;
14269             (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
14270           }
14271     break;
14272 
14273   case 947:
14274 
14275 /* Line 1455 of yacc.c  */
14276 #line 4994 "drizzled/sql_yacc.yy"
14277     {
14278             (yyval.item) = new Item_null();
14279             YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14280           }
14281     break;
14282 
14283   case 948:
14284 
14285 /* Line 1455 of yacc.c  */
14286 #line 4999 "drizzled/sql_yacc.yy"
14287     {
14288             (yyval.item)= new drizzled::item::False();
14289           }
14290     break;
14291 
14292   case 949:
14293 
14294 /* Line 1455 of yacc.c  */
14295 #line 5003 "drizzled/sql_yacc.yy"
14296     {
14297             (yyval.item)= new drizzled::item::True();
14298           }
14299     break;
14300 
14301   case 950:
14302 
14303 /* Line 1455 of yacc.c  */
14304 #line 5009 "drizzled/sql_yacc.yy"
14305     { (yyval.item) = (yyvsp[(1) - (1)].item); }
14306     break;
14307 
14308   case 951:
14309 
14310 /* Line 1455 of yacc.c  */
14311 #line 5011 "drizzled/sql_yacc.yy"
14312     {
14313             (yyval.item) = new Item_null();
14314             YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14315           }
14316     break;
14317 
14318   case 952:
14319 
14320 /* Line 1455 of yacc.c  */
14321 #line 5015 "drizzled/sql_yacc.yy"
14322     { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14323     break;
14324 
14325   case 953:
14326 
14327 /* Line 1455 of yacc.c  */
14328 #line 5016 "drizzled/sql_yacc.yy"
14329     { (yyval.item) = (yyvsp[(2) - (2)].item); }
14330     break;
14331 
14332   case 954:
14333 
14334 /* Line 1455 of yacc.c  */
14335 #line 5017 "drizzled/sql_yacc.yy"
14336     { (yyval.item) = (yyvsp[(2) - (2)].item); }
14337     break;
14338 
14339   case 955:
14340 
14341 /* Line 1455 of yacc.c  */
14342 #line 5022 "drizzled/sql_yacc.yy"
14343     {
14344             int error;
14345             (yyval.item_num) = new Item_int((yyvsp[(1) - (1)].lex_str).data(), internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error), (yyvsp[(1) - (1)].lex_str).size());
14346           }
14347     break;
14348 
14349   case 956:
14350 
14351 /* Line 1455 of yacc.c  */
14352 #line 5027 "drizzled/sql_yacc.yy"
14353     {
14354             int error;
14355             (yyval.item_num) = new Item_int((yyvsp[(1) - (1)].lex_str).data(), internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error), (yyvsp[(1) - (1)].lex_str).size());
14356           }
14357     break;
14358 
14359   case 957:
14360 
14361 /* Line 1455 of yacc.c  */
14362 #line 5032 "drizzled/sql_yacc.yy"
14363     { (yyval.item_num) = new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
14364     break;
14365 
14366   case 958:
14367 
14368 /* Line 1455 of yacc.c  */
14369 #line 5034 "drizzled/sql_yacc.yy"
14370     {
14371             (yyval.item_num)= new Item_decimal((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), YYSession->charset());
14372             if (YYSession->is_error())
14373             {
14374               DRIZZLE_YYABORT;
14375             }
14376           }
14377     break;
14378 
14379   case 959:
14380 
14381 /* Line 1455 of yacc.c  */
14382 #line 5042 "drizzled/sql_yacc.yy"
14383     {
14384             (yyval.item_num) = new Item_float((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size());
14385             if (YYSession->is_error())
14386             {
14387               DRIZZLE_YYABORT;
14388             }
14389           }
14390     break;
14391 
14392   case 960:
14393 
14394 /* Line 1455 of yacc.c  */
14395 #line 5056 "drizzled/sql_yacc.yy"
14396     { (yyval.item)=(yyvsp[(1) - (1)].item); }
14397     break;
14398 
14399   case 961:
14400 
14401 /* Line 1455 of yacc.c  */
14402 #line 5057 "drizzled/sql_yacc.yy"
14403     { (yyval.item)=(yyvsp[(1) - (1)].item); }
14404     break;
14405 
14406   case 962:
14407 
14408 /* Line 1455 of yacc.c  */
14409 #line 5062 "drizzled/sql_yacc.yy"
14410     {
14411             (yyval.item)= parser::buildTableWild(&Lex, null_lex_string(), (yyvsp[(1) - (3)].lex_str));
14412           }
14413     break;
14414 
14415   case 963:
14416 
14417 /* Line 1455 of yacc.c  */
14418 #line 5066 "drizzled/sql_yacc.yy"
14419     {
14420             (yyval.item)= parser::buildTableWild(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str));
14421           }
14422     break;
14423 
14424   case 964:
14425 
14426 /* Line 1455 of yacc.c  */
14427 #line 5072 "drizzled/sql_yacc.yy"
14428     { (yyval.item)=(yyvsp[(1) - (1)].item); }
14429     break;
14430 
14431   case 965:
14432 
14433 /* Line 1455 of yacc.c  */
14434 #line 5077 "drizzled/sql_yacc.yy"
14435     {
14436             (yyval.item)= parser::buildIdent(&Lex, null_lex_string(), null_lex_string(), (yyvsp[(1) - (1)].lex_str));
14437           }
14438     break;
14439 
14440   case 966:
14441 
14442 /* Line 1455 of yacc.c  */
14443 #line 5080 "drizzled/sql_yacc.yy"
14444     { (yyval.item)= (yyvsp[(1) - (1)].item); }
14445     break;
14446 
14447   case 967:
14448 
14449 /* Line 1455 of yacc.c  */
14450 #line 5085 "drizzled/sql_yacc.yy"
14451     {
14452             (yyval.item)= parser::buildIdent(&Lex, null_lex_string(), (yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str));
14453           }
14454     break;
14455 
14456   case 968:
14457 
14458 /* Line 1455 of yacc.c  */
14459 #line 5089 "drizzled/sql_yacc.yy"
14460     {
14461             (yyval.item)= parser::buildIdent(&Lex, null_lex_string(), (yyvsp[(2) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str));
14462           }
14463     break;
14464 
14465   case 969:
14466 
14467 /* Line 1455 of yacc.c  */
14468 #line 5093 "drizzled/sql_yacc.yy"
14469     {
14470             (yyval.item)= parser::buildIdent(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str), (yyvsp[(5) - (5)].lex_str));
14471           }
14472     break;
14473 
14474   case 970:
14475 
14476 /* Line 1455 of yacc.c  */
14477 #line 5100 "drizzled/sql_yacc.yy"
14478     {
14479             (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);
14480           }
14481     break;
14482 
14483   case 971:
14484 
14485 /* Line 1455 of yacc.c  */
14486 #line 5104 "drizzled/sql_yacc.yy"
14487     {
14488             if (not parser::checkFieldIdent(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str)))
14489               DRIZZLE_YYABORT;
14490 
14491             (yyval.lex_str)=(yyvsp[(5) - (5)].lex_str);
14492           }
14493     break;
14494 
14495   case 972:
14496 
14497 /* Line 1455 of yacc.c  */
14498 #line 5111 "drizzled/sql_yacc.yy"
14499     {
14500             if (not parser::checkFieldIdent(&Lex, null_lex_string(), (yyvsp[(1) - (3)].lex_str)))
14501               DRIZZLE_YYABORT;
14502 
14503             (yyval.lex_str)=(yyvsp[(3) - (3)].lex_str);
14504           }
14505     break;
14506 
14507   case 973:
14508 
14509 /* Line 1455 of yacc.c  */
14510 #line 5118 "drizzled/sql_yacc.yy"
14511     { /* For Delphi */
14512             (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str);
14513           }
14514     break;
14515 
14516   case 974:
14517 
14518 /* Line 1455 of yacc.c  */
14519 #line 5125 "drizzled/sql_yacc.yy"
14520     {
14521             (yyval.table)= new Table_ident((yyvsp[(1) - (1)].lex_str));
14522           }
14523     break;
14524 
14525   case 975:
14526 
14527 /* Line 1455 of yacc.c  */
14528 #line 5129 "drizzled/sql_yacc.yy"
14529     {
14530             (yyval.table)=new Table_ident((yyvsp[(1) - (3)].lex_str),(yyvsp[(3) - (3)].lex_str));
14531           }
14532     break;
14533 
14534   case 976:
14535 
14536 /* Line 1455 of yacc.c  */
14537 #line 5133 "drizzled/sql_yacc.yy"
14538     { /* For Delphi */
14539           (yyval.table)= new Table_ident((yyvsp[(2) - (2)].lex_str));
14540         }
14541     break;
14542 
14543   case 979:
14544 
14545 /* Line 1455 of yacc.c  */
14546 #line 5148 "drizzled/sql_yacc.yy"
14547     {
14548             (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14549           }
14550     break;
14551 
14552   case 980:
14553 
14554 /* Line 1455 of yacc.c  */
14555 #line 5152 "drizzled/sql_yacc.yy"
14556     {
14557             const charset_info_st * const cs= system_charset_info;
14558             int dummy_error;
14559             uint32_t wlen= cs->cset->well_formed_len(*cs, (yyvsp[(1) - (1)].lex_str), (yyvsp[(1) - (1)].lex_str).size(), &dummy_error);
14560             if (wlen < (yyvsp[(1) - (1)].lex_str).size())
14561             {
14562               my_error(ER_INVALID_CHARACTER_STRING, MYF(0), cs->csname, (yyvsp[(1) - (1)].lex_str).data() + wlen);
14563               DRIZZLE_YYABORT;
14564             }
14565             (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14566           }
14567     break;
14568 
14569   case 981:
14570 
14571 /* Line 1455 of yacc.c  */
14572 #line 5167 "drizzled/sql_yacc.yy"
14573     {
14574             (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14575           }
14576     break;
14577 
14578   case 982:
14579 
14580 /* Line 1455 of yacc.c  */
14581 #line 5174 "drizzled/sql_yacc.yy"
14582     {
14583             (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14584           }
14585     break;
14586 
14587   case 983:
14588 
14589 /* Line 1455 of yacc.c  */
14590 #line 5181 "drizzled/sql_yacc.yy"
14591     {
14592             (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14593           }
14594     break;
14595 
14596   case 984:
14597 
14598 /* Line 1455 of yacc.c  */
14599 #line 5187 "drizzled/sql_yacc.yy"
14600     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
14601     break;
14602 
14603   case 985:
14604 
14605 /* Line 1455 of yacc.c  */
14606 #line 5189 "drizzled/sql_yacc.yy"
14607     {
14608             (yyval.lex_str).assign(YYSession->mem.strdup((yyvsp[(1) - (1)].symbol).data(), (yyvsp[(1) - (1)].symbol).length), (yyvsp[(1) - (1)].symbol).length);
14609           }
14610     break;
14611 
14612   case 986:
14613 
14614 /* Line 1455 of yacc.c  */
14615 #line 5195 "drizzled/sql_yacc.yy"
14616     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14617     break;
14618 
14619   case 987:
14620 
14621 /* Line 1455 of yacc.c  */
14622 #line 5196 "drizzled/sql_yacc.yy"
14623     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14624     break;
14625 
14626   case 988:
14627 
14628 /* Line 1455 of yacc.c  */
14629 #line 5200 "drizzled/sql_yacc.yy"
14630     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14631     break;
14632 
14633   case 989:
14634 
14635 /* Line 1455 of yacc.c  */
14636 #line 5201 "drizzled/sql_yacc.yy"
14637     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14638     break;
14639 
14640   case 990:
14641 
14642 /* Line 1455 of yacc.c  */
14643 #line 5205 "drizzled/sql_yacc.yy"
14644     {}
14645     break;
14646 
14647   case 991:
14648 
14649 /* Line 1455 of yacc.c  */
14650 #line 5206 "drizzled/sql_yacc.yy"
14651     {}
14652     break;
14653 
14654   case 992:
14655 
14656 /* Line 1455 of yacc.c  */
14657 #line 5207 "drizzled/sql_yacc.yy"
14658     {}
14659     break;
14660 
14661   case 993:
14662 
14663 /* Line 1455 of yacc.c  */
14664 #line 5212 "drizzled/sql_yacc.yy"
14665     {}
14666     break;
14667 
14668   case 994:
14669 
14670 /* Line 1455 of yacc.c  */
14671 #line 5213 "drizzled/sql_yacc.yy"
14672     {}
14673     break;
14674 
14675   case 995:
14676 
14677 /* Line 1455 of yacc.c  */
14678 #line 5214 "drizzled/sql_yacc.yy"
14679     {}
14680     break;
14681 
14682   case 996:
14683 
14684 /* Line 1455 of yacc.c  */
14685 #line 5215 "drizzled/sql_yacc.yy"
14686     {}
14687     break;
14688 
14689   case 997:
14690 
14691 /* Line 1455 of yacc.c  */
14692 #line 5216 "drizzled/sql_yacc.yy"
14693     {}
14694     break;
14695 
14696   case 998:
14697 
14698 /* Line 1455 of yacc.c  */
14699 #line 5217 "drizzled/sql_yacc.yy"
14700     {}
14701     break;
14702 
14703   case 999:
14704 
14705 /* Line 1455 of yacc.c  */
14706 #line 5218 "drizzled/sql_yacc.yy"
14707     {}
14708     break;
14709 
14710   case 1000:
14711 
14712 /* Line 1455 of yacc.c  */
14713 #line 5219 "drizzled/sql_yacc.yy"
14714     {}
14715     break;
14716 
14717   case 1001:
14718 
14719 /* Line 1455 of yacc.c  */
14720 #line 5220 "drizzled/sql_yacc.yy"
14721     {}
14722     break;
14723 
14724   case 1002:
14725 
14726 /* Line 1455 of yacc.c  */
14727 #line 5221 "drizzled/sql_yacc.yy"
14728     {}
14729     break;
14730 
14731   case 1003:
14732 
14733 /* Line 1455 of yacc.c  */
14734 #line 5222 "drizzled/sql_yacc.yy"
14735     {}
14736     break;
14737 
14738   case 1004:
14739 
14740 /* Line 1455 of yacc.c  */
14741 #line 5223 "drizzled/sql_yacc.yy"
14742     {}
14743     break;
14744 
14745   case 1005:
14746 
14747 /* Line 1455 of yacc.c  */
14748 #line 5224 "drizzled/sql_yacc.yy"
14749     {}
14750     break;
14751 
14752   case 1006:
14753 
14754 /* Line 1455 of yacc.c  */
14755 #line 5225 "drizzled/sql_yacc.yy"
14756     {}
14757     break;
14758 
14759   case 1007:
14760 
14761 /* Line 1455 of yacc.c  */
14762 #line 5226 "drizzled/sql_yacc.yy"
14763     {}
14764     break;
14765 
14766   case 1008:
14767 
14768 /* Line 1455 of yacc.c  */
14769 #line 5227 "drizzled/sql_yacc.yy"
14770     {}
14771     break;
14772 
14773   case 1009:
14774 
14775 /* Line 1455 of yacc.c  */
14776 #line 5228 "drizzled/sql_yacc.yy"
14777     {}
14778     break;
14779 
14780   case 1010:
14781 
14782 /* Line 1455 of yacc.c  */
14783 #line 5229 "drizzled/sql_yacc.yy"
14784     {}
14785     break;
14786 
14787   case 1011:
14788 
14789 /* Line 1455 of yacc.c  */
14790 #line 5230 "drizzled/sql_yacc.yy"
14791     {}
14792     break;
14793 
14794   case 1012:
14795 
14796 /* Line 1455 of yacc.c  */
14797 #line 5231 "drizzled/sql_yacc.yy"
14798     {}
14799     break;
14800 
14801   case 1013:
14802 
14803 /* Line 1455 of yacc.c  */
14804 #line 5232 "drizzled/sql_yacc.yy"
14805     {}
14806     break;
14807 
14808   case 1014:
14809 
14810 /* Line 1455 of yacc.c  */
14811 #line 5242 "drizzled/sql_yacc.yy"
14812     {}
14813     break;
14814 
14815   case 1015:
14816 
14817 /* Line 1455 of yacc.c  */
14818 #line 5243 "drizzled/sql_yacc.yy"
14819     {}
14820     break;
14821 
14822   case 1016:
14823 
14824 /* Line 1455 of yacc.c  */
14825 #line 5244 "drizzled/sql_yacc.yy"
14826     {}
14827     break;
14828 
14829   case 1017:
14830 
14831 /* Line 1455 of yacc.c  */
14832 #line 5245 "drizzled/sql_yacc.yy"
14833     {}
14834     break;
14835 
14836   case 1018:
14837 
14838 /* Line 1455 of yacc.c  */
14839 #line 5246 "drizzled/sql_yacc.yy"
14840     {}
14841     break;
14842 
14843   case 1019:
14844 
14845 /* Line 1455 of yacc.c  */
14846 #line 5247 "drizzled/sql_yacc.yy"
14847     {}
14848     break;
14849 
14850   case 1020:
14851 
14852 /* Line 1455 of yacc.c  */
14853 #line 5248 "drizzled/sql_yacc.yy"
14854     {}
14855     break;
14856 
14857   case 1021:
14858 
14859 /* Line 1455 of yacc.c  */
14860 #line 5249 "drizzled/sql_yacc.yy"
14861     {}
14862     break;
14863 
14864   case 1022:
14865 
14866 /* Line 1455 of yacc.c  */
14867 #line 5250 "drizzled/sql_yacc.yy"
14868     {}
14869     break;
14870 
14871   case 1023:
14872 
14873 /* Line 1455 of yacc.c  */
14874 #line 5251 "drizzled/sql_yacc.yy"
14875     {}
14876     break;
14877 
14878   case 1024:
14879 
14880 /* Line 1455 of yacc.c  */
14881 #line 5252 "drizzled/sql_yacc.yy"
14882     {}
14883     break;
14884 
14885   case 1025:
14886 
14887 /* Line 1455 of yacc.c  */
14888 #line 5253 "drizzled/sql_yacc.yy"
14889     {}
14890     break;
14891 
14892   case 1026:
14893 
14894 /* Line 1455 of yacc.c  */
14895 #line 5254 "drizzled/sql_yacc.yy"
14896     {}
14897     break;
14898 
14899   case 1027:
14900 
14901 /* Line 1455 of yacc.c  */
14902 #line 5255 "drizzled/sql_yacc.yy"
14903     {}
14904     break;
14905 
14906   case 1028:
14907 
14908 /* Line 1455 of yacc.c  */
14909 #line 5256 "drizzled/sql_yacc.yy"
14910     {}
14911     break;
14912 
14913   case 1029:
14914 
14915 /* Line 1455 of yacc.c  */
14916 #line 5257 "drizzled/sql_yacc.yy"
14917     {}
14918     break;
14919 
14920   case 1030:
14921 
14922 /* Line 1455 of yacc.c  */
14923 #line 5258 "drizzled/sql_yacc.yy"
14924     {}
14925     break;
14926 
14927   case 1031:
14928 
14929 /* Line 1455 of yacc.c  */
14930 #line 5259 "drizzled/sql_yacc.yy"
14931     {}
14932     break;
14933 
14934   case 1032:
14935 
14936 /* Line 1455 of yacc.c  */
14937 #line 5260 "drizzled/sql_yacc.yy"
14938     {}
14939     break;
14940 
14941   case 1033:
14942 
14943 /* Line 1455 of yacc.c  */
14944 #line 5261 "drizzled/sql_yacc.yy"
14945     {}
14946     break;
14947 
14948   case 1034:
14949 
14950 /* Line 1455 of yacc.c  */
14951 #line 5262 "drizzled/sql_yacc.yy"
14952     {}
14953     break;
14954 
14955   case 1035:
14956 
14957 /* Line 1455 of yacc.c  */
14958 #line 5263 "drizzled/sql_yacc.yy"
14959     {}
14960     break;
14961 
14962   case 1036:
14963 
14964 /* Line 1455 of yacc.c  */
14965 #line 5264 "drizzled/sql_yacc.yy"
14966     {}
14967     break;
14968 
14969   case 1037:
14970 
14971 /* Line 1455 of yacc.c  */
14972 #line 5265 "drizzled/sql_yacc.yy"
14973     {}
14974     break;
14975 
14976   case 1038:
14977 
14978 /* Line 1455 of yacc.c  */
14979 #line 5266 "drizzled/sql_yacc.yy"
14980     {}
14981     break;
14982 
14983   case 1039:
14984 
14985 /* Line 1455 of yacc.c  */
14986 #line 5267 "drizzled/sql_yacc.yy"
14987     {}
14988     break;
14989 
14990   case 1040:
14991 
14992 /* Line 1455 of yacc.c  */
14993 #line 5268 "drizzled/sql_yacc.yy"
14994     {}
14995     break;
14996 
14997   case 1041:
14998 
14999 /* Line 1455 of yacc.c  */
15000 #line 5269 "drizzled/sql_yacc.yy"
15001     {}
15002     break;
15003 
15004   case 1042:
15005 
15006 /* Line 1455 of yacc.c  */
15007 #line 5270 "drizzled/sql_yacc.yy"
15008     {}
15009     break;
15010 
15011   case 1043:
15012 
15013 /* Line 1455 of yacc.c  */
15014 #line 5271 "drizzled/sql_yacc.yy"
15015     {}
15016     break;
15017 
15018   case 1044:
15019 
15020 /* Line 1455 of yacc.c  */
15021 #line 5272 "drizzled/sql_yacc.yy"
15022     {}
15023     break;
15024 
15025   case 1045:
15026 
15027 /* Line 1455 of yacc.c  */
15028 #line 5273 "drizzled/sql_yacc.yy"
15029     {}
15030     break;
15031 
15032   case 1046:
15033 
15034 /* Line 1455 of yacc.c  */
15035 #line 5274 "drizzled/sql_yacc.yy"
15036     {}
15037     break;
15038 
15039   case 1047:
15040 
15041 /* Line 1455 of yacc.c  */
15042 #line 5275 "drizzled/sql_yacc.yy"
15043     {}
15044     break;
15045 
15046   case 1048:
15047 
15048 /* Line 1455 of yacc.c  */
15049 #line 5276 "drizzled/sql_yacc.yy"
15050     {}
15051     break;
15052 
15053   case 1049:
15054 
15055 /* Line 1455 of yacc.c  */
15056 #line 5277 "drizzled/sql_yacc.yy"
15057     {}
15058     break;
15059 
15060   case 1050:
15061 
15062 /* Line 1455 of yacc.c  */
15063 #line 5278 "drizzled/sql_yacc.yy"
15064     {}
15065     break;
15066 
15067   case 1051:
15068 
15069 /* Line 1455 of yacc.c  */
15070 #line 5279 "drizzled/sql_yacc.yy"
15071     {}
15072     break;
15073 
15074   case 1052:
15075 
15076 /* Line 1455 of yacc.c  */
15077 #line 5280 "drizzled/sql_yacc.yy"
15078     {}
15079     break;
15080 
15081   case 1053:
15082 
15083 /* Line 1455 of yacc.c  */
15084 #line 5281 "drizzled/sql_yacc.yy"
15085     {}
15086     break;
15087 
15088   case 1054:
15089 
15090 /* Line 1455 of yacc.c  */
15091 #line 5282 "drizzled/sql_yacc.yy"
15092     {}
15093     break;
15094 
15095   case 1055:
15096 
15097 /* Line 1455 of yacc.c  */
15098 #line 5283 "drizzled/sql_yacc.yy"
15099     {}
15100     break;
15101 
15102   case 1056:
15103 
15104 /* Line 1455 of yacc.c  */
15105 #line 5284 "drizzled/sql_yacc.yy"
15106     {}
15107     break;
15108 
15109   case 1057:
15110 
15111 /* Line 1455 of yacc.c  */
15112 #line 5285 "drizzled/sql_yacc.yy"
15113     {}
15114     break;
15115 
15116   case 1058:
15117 
15118 /* Line 1455 of yacc.c  */
15119 #line 5286 "drizzled/sql_yacc.yy"
15120     {}
15121     break;
15122 
15123   case 1059:
15124 
15125 /* Line 1455 of yacc.c  */
15126 #line 5287 "drizzled/sql_yacc.yy"
15127     {}
15128     break;
15129 
15130   case 1060:
15131 
15132 /* Line 1455 of yacc.c  */
15133 #line 5288 "drizzled/sql_yacc.yy"
15134     {}
15135     break;
15136 
15137   case 1061:
15138 
15139 /* Line 1455 of yacc.c  */
15140 #line 5289 "drizzled/sql_yacc.yy"
15141     {}
15142     break;
15143 
15144   case 1062:
15145 
15146 /* Line 1455 of yacc.c  */
15147 #line 5290 "drizzled/sql_yacc.yy"
15148     {}
15149     break;
15150 
15151   case 1063:
15152 
15153 /* Line 1455 of yacc.c  */
15154 #line 5291 "drizzled/sql_yacc.yy"
15155     {}
15156     break;
15157 
15158   case 1064:
15159 
15160 /* Line 1455 of yacc.c  */
15161 #line 5292 "drizzled/sql_yacc.yy"
15162     {}
15163     break;
15164 
15165   case 1065:
15166 
15167 /* Line 1455 of yacc.c  */
15168 #line 5293 "drizzled/sql_yacc.yy"
15169     {}
15170     break;
15171 
15172   case 1066:
15173 
15174 /* Line 1455 of yacc.c  */
15175 #line 5294 "drizzled/sql_yacc.yy"
15176     {}
15177     break;
15178 
15179   case 1067:
15180 
15181 /* Line 1455 of yacc.c  */
15182 #line 5295 "drizzled/sql_yacc.yy"
15183     {}
15184     break;
15185 
15186   case 1068:
15187 
15188 /* Line 1455 of yacc.c  */
15189 #line 5296 "drizzled/sql_yacc.yy"
15190     {}
15191     break;
15192 
15193   case 1069:
15194 
15195 /* Line 1455 of yacc.c  */
15196 #line 5297 "drizzled/sql_yacc.yy"
15197     {}
15198     break;
15199 
15200   case 1070:
15201 
15202 /* Line 1455 of yacc.c  */
15203 #line 5298 "drizzled/sql_yacc.yy"
15204     {}
15205     break;
15206 
15207   case 1071:
15208 
15209 /* Line 1455 of yacc.c  */
15210 #line 5299 "drizzled/sql_yacc.yy"
15211     {}
15212     break;
15213 
15214   case 1072:
15215 
15216 /* Line 1455 of yacc.c  */
15217 #line 5300 "drizzled/sql_yacc.yy"
15218     {}
15219     break;
15220 
15221   case 1073:
15222 
15223 /* Line 1455 of yacc.c  */
15224 #line 5301 "drizzled/sql_yacc.yy"
15225     {}
15226     break;
15227 
15228   case 1074:
15229 
15230 /* Line 1455 of yacc.c  */
15231 #line 5302 "drizzled/sql_yacc.yy"
15232     {}
15233     break;
15234 
15235   case 1075:
15236 
15237 /* Line 1455 of yacc.c  */
15238 #line 5303 "drizzled/sql_yacc.yy"
15239     {}
15240     break;
15241 
15242   case 1076:
15243 
15244 /* Line 1455 of yacc.c  */
15245 #line 5304 "drizzled/sql_yacc.yy"
15246     {}
15247     break;
15248 
15249   case 1077:
15250 
15251 /* Line 1455 of yacc.c  */
15252 #line 5305 "drizzled/sql_yacc.yy"
15253     {}
15254     break;
15255 
15256   case 1078:
15257 
15258 /* Line 1455 of yacc.c  */
15259 #line 5306 "drizzled/sql_yacc.yy"
15260     {}
15261     break;
15262 
15263   case 1079:
15264 
15265 /* Line 1455 of yacc.c  */
15266 #line 5307 "drizzled/sql_yacc.yy"
15267     {}
15268     break;
15269 
15270   case 1080:
15271 
15272 /* Line 1455 of yacc.c  */
15273 #line 5308 "drizzled/sql_yacc.yy"
15274     {}
15275     break;
15276 
15277   case 1081:
15278 
15279 /* Line 1455 of yacc.c  */
15280 #line 5309 "drizzled/sql_yacc.yy"
15281     {}
15282     break;
15283 
15284   case 1082:
15285 
15286 /* Line 1455 of yacc.c  */
15287 #line 5310 "drizzled/sql_yacc.yy"
15288     {}
15289     break;
15290 
15291   case 1083:
15292 
15293 /* Line 1455 of yacc.c  */
15294 #line 5311 "drizzled/sql_yacc.yy"
15295     {}
15296     break;
15297 
15298   case 1084:
15299 
15300 /* Line 1455 of yacc.c  */
15301 #line 5312 "drizzled/sql_yacc.yy"
15302     {}
15303     break;
15304 
15305   case 1085:
15306 
15307 /* Line 1455 of yacc.c  */
15308 #line 5313 "drizzled/sql_yacc.yy"
15309     {}
15310     break;
15311 
15312   case 1086:
15313 
15314 /* Line 1455 of yacc.c  */
15315 #line 5314 "drizzled/sql_yacc.yy"
15316     {}
15317     break;
15318 
15319   case 1087:
15320 
15321 /* Line 1455 of yacc.c  */
15322 #line 5315 "drizzled/sql_yacc.yy"
15323     {}
15324     break;
15325 
15326   case 1088:
15327 
15328 /* Line 1455 of yacc.c  */
15329 #line 5316 "drizzled/sql_yacc.yy"
15330     {}
15331     break;
15332 
15333   case 1089:
15334 
15335 /* Line 1455 of yacc.c  */
15336 #line 5317 "drizzled/sql_yacc.yy"
15337     {}
15338     break;
15339 
15340   case 1090:
15341 
15342 /* Line 1455 of yacc.c  */
15343 #line 5318 "drizzled/sql_yacc.yy"
15344     {}
15345     break;
15346 
15347   case 1091:
15348 
15349 /* Line 1455 of yacc.c  */
15350 #line 5319 "drizzled/sql_yacc.yy"
15351     {}
15352     break;
15353 
15354   case 1092:
15355 
15356 /* Line 1455 of yacc.c  */
15357 #line 5320 "drizzled/sql_yacc.yy"
15358     {}
15359     break;
15360 
15361   case 1093:
15362 
15363 /* Line 1455 of yacc.c  */
15364 #line 5321 "drizzled/sql_yacc.yy"
15365     {}
15366     break;
15367 
15368   case 1094:
15369 
15370 /* Line 1455 of yacc.c  */
15371 #line 5322 "drizzled/sql_yacc.yy"
15372     {}
15373     break;
15374 
15375   case 1095:
15376 
15377 /* Line 1455 of yacc.c  */
15378 #line 5323 "drizzled/sql_yacc.yy"
15379     {}
15380     break;
15381 
15382   case 1096:
15383 
15384 /* Line 1455 of yacc.c  */
15385 #line 5324 "drizzled/sql_yacc.yy"
15386     {}
15387     break;
15388 
15389   case 1097:
15390 
15391 /* Line 1455 of yacc.c  */
15392 #line 5325 "drizzled/sql_yacc.yy"
15393     {}
15394     break;
15395 
15396   case 1098:
15397 
15398 /* Line 1455 of yacc.c  */
15399 #line 5326 "drizzled/sql_yacc.yy"
15400     {}
15401     break;
15402 
15403   case 1099:
15404 
15405 /* Line 1455 of yacc.c  */
15406 #line 5327 "drizzled/sql_yacc.yy"
15407     {}
15408     break;
15409 
15410   case 1100:
15411 
15412 /* Line 1455 of yacc.c  */
15413 #line 5328 "drizzled/sql_yacc.yy"
15414     {}
15415     break;
15416 
15417   case 1101:
15418 
15419 /* Line 1455 of yacc.c  */
15420 #line 5329 "drizzled/sql_yacc.yy"
15421     {}
15422     break;
15423 
15424   case 1102:
15425 
15426 /* Line 1455 of yacc.c  */
15427 #line 5330 "drizzled/sql_yacc.yy"
15428     {}
15429     break;
15430 
15431   case 1103:
15432 
15433 /* Line 1455 of yacc.c  */
15434 #line 5331 "drizzled/sql_yacc.yy"
15435     {}
15436     break;
15437 
15438   case 1104:
15439 
15440 /* Line 1455 of yacc.c  */
15441 #line 5332 "drizzled/sql_yacc.yy"
15442     {}
15443     break;
15444 
15445   case 1105:
15446 
15447 /* Line 1455 of yacc.c  */
15448 #line 5333 "drizzled/sql_yacc.yy"
15449     {}
15450     break;
15451 
15452   case 1106:
15453 
15454 /* Line 1455 of yacc.c  */
15455 #line 5334 "drizzled/sql_yacc.yy"
15456     {}
15457     break;
15458 
15459   case 1107:
15460 
15461 /* Line 1455 of yacc.c  */
15462 #line 5335 "drizzled/sql_yacc.yy"
15463     {}
15464     break;
15465 
15466   case 1108:
15467 
15468 /* Line 1455 of yacc.c  */
15469 #line 5336 "drizzled/sql_yacc.yy"
15470     {}
15471     break;
15472 
15473   case 1109:
15474 
15475 /* Line 1455 of yacc.c  */
15476 #line 5337 "drizzled/sql_yacc.yy"
15477     {}
15478     break;
15479 
15480   case 1110:
15481 
15482 /* Line 1455 of yacc.c  */
15483 #line 5338 "drizzled/sql_yacc.yy"
15484     {}
15485     break;
15486 
15487   case 1111:
15488 
15489 /* Line 1455 of yacc.c  */
15490 #line 5339 "drizzled/sql_yacc.yy"
15491     {}
15492     break;
15493 
15494   case 1112:
15495 
15496 /* Line 1455 of yacc.c  */
15497 #line 5340 "drizzled/sql_yacc.yy"
15498     {}
15499     break;
15500 
15501   case 1113:
15502 
15503 /* Line 1455 of yacc.c  */
15504 #line 5341 "drizzled/sql_yacc.yy"
15505     {}
15506     break;
15507 
15508   case 1114:
15509 
15510 /* Line 1455 of yacc.c  */
15511 #line 5342 "drizzled/sql_yacc.yy"
15512     {}
15513     break;
15514 
15515   case 1115:
15516 
15517 /* Line 1455 of yacc.c  */
15518 #line 5343 "drizzled/sql_yacc.yy"
15519     {}
15520     break;
15521 
15522   case 1116:
15523 
15524 /* Line 1455 of yacc.c  */
15525 #line 5344 "drizzled/sql_yacc.yy"
15526     {}
15527     break;
15528 
15529   case 1117:
15530 
15531 /* Line 1455 of yacc.c  */
15532 #line 5345 "drizzled/sql_yacc.yy"
15533     {}
15534     break;
15535 
15536   case 1118:
15537 
15538 /* Line 1455 of yacc.c  */
15539 #line 5346 "drizzled/sql_yacc.yy"
15540     {}
15541     break;
15542 
15543   case 1119:
15544 
15545 /* Line 1455 of yacc.c  */
15546 #line 5347 "drizzled/sql_yacc.yy"
15547     {}
15548     break;
15549 
15550   case 1120:
15551 
15552 /* Line 1455 of yacc.c  */
15553 #line 5348 "drizzled/sql_yacc.yy"
15554     {}
15555     break;
15556 
15557   case 1121:
15558 
15559 /* Line 1455 of yacc.c  */
15560 #line 5349 "drizzled/sql_yacc.yy"
15561     {}
15562     break;
15563 
15564   case 1122:
15565 
15566 /* Line 1455 of yacc.c  */
15567 #line 5350 "drizzled/sql_yacc.yy"
15568     {}
15569     break;
15570 
15571   case 1123:
15572 
15573 /* Line 1455 of yacc.c  */
15574 #line 5351 "drizzled/sql_yacc.yy"
15575     {}
15576     break;
15577 
15578   case 1124:
15579 
15580 /* Line 1455 of yacc.c  */
15581 #line 5352 "drizzled/sql_yacc.yy"
15582     {}
15583     break;
15584 
15585   case 1125:
15586 
15587 /* Line 1455 of yacc.c  */
15588 #line 5353 "drizzled/sql_yacc.yy"
15589     {}
15590     break;
15591 
15592   case 1126:
15593 
15594 /* Line 1455 of yacc.c  */
15595 #line 5354 "drizzled/sql_yacc.yy"
15596     {}
15597     break;
15598 
15599   case 1127:
15600 
15601 /* Line 1455 of yacc.c  */
15602 #line 5355 "drizzled/sql_yacc.yy"
15603     {}
15604     break;
15605 
15606   case 1128:
15607 
15608 /* Line 1455 of yacc.c  */
15609 #line 5356 "drizzled/sql_yacc.yy"
15610     {}
15611     break;
15612 
15613   case 1129:
15614 
15615 /* Line 1455 of yacc.c  */
15616 #line 5357 "drizzled/sql_yacc.yy"
15617     {}
15618     break;
15619 
15620   case 1130:
15621 
15622 /* Line 1455 of yacc.c  */
15623 #line 5358 "drizzled/sql_yacc.yy"
15624     {}
15625     break;
15626 
15627   case 1131:
15628 
15629 /* Line 1455 of yacc.c  */
15630 #line 5359 "drizzled/sql_yacc.yy"
15631     {}
15632     break;
15633 
15634   case 1132:
15635 
15636 /* Line 1455 of yacc.c  */
15637 #line 5360 "drizzled/sql_yacc.yy"
15638     {}
15639     break;
15640 
15641   case 1133:
15642 
15643 /* Line 1455 of yacc.c  */
15644 #line 5361 "drizzled/sql_yacc.yy"
15645     {}
15646     break;
15647 
15648   case 1134:
15649 
15650 /* Line 1455 of yacc.c  */
15651 #line 5362 "drizzled/sql_yacc.yy"
15652     {}
15653     break;
15654 
15655   case 1135:
15656 
15657 /* Line 1455 of yacc.c  */
15658 #line 5363 "drizzled/sql_yacc.yy"
15659     {}
15660     break;
15661 
15662   case 1136:
15663 
15664 /* Line 1455 of yacc.c  */
15665 #line 5364 "drizzled/sql_yacc.yy"
15666     {}
15667     break;
15668 
15669   case 1137:
15670 
15671 /* Line 1455 of yacc.c  */
15672 #line 5365 "drizzled/sql_yacc.yy"
15673     {}
15674     break;
15675 
15676   case 1138:
15677 
15678 /* Line 1455 of yacc.c  */
15679 #line 5366 "drizzled/sql_yacc.yy"
15680     {}
15681     break;
15682 
15683   case 1139:
15684 
15685 /* Line 1455 of yacc.c  */
15686 #line 5367 "drizzled/sql_yacc.yy"
15687     {}
15688     break;
15689 
15690   case 1140:
15691 
15692 /* Line 1455 of yacc.c  */
15693 #line 5368 "drizzled/sql_yacc.yy"
15694     {}
15695     break;
15696 
15697   case 1141:
15698 
15699 /* Line 1455 of yacc.c  */
15700 #line 5375 "drizzled/sql_yacc.yy"
15701     {
15702             Lex.statement= new statement::SetOption(YYSession);
15703           }
15704     break;
15705 
15706   case 1142:
15707 
15708 /* Line 1455 of yacc.c  */
15709 #line 5379 "drizzled/sql_yacc.yy"
15710     {}
15711     break;
15712 
15713   case 1143:
15714 
15715 /* Line 1455 of yacc.c  */
15716 #line 5383 "drizzled/sql_yacc.yy"
15717     {}
15718     break;
15719 
15720   case 1144:
15721 
15722 /* Line 1455 of yacc.c  */
15723 #line 5384 "drizzled/sql_yacc.yy"
15724     {}
15725     break;
15726 
15727   case 1147:
15728 
15729 /* Line 1455 of yacc.c  */
15730 #line 5393 "drizzled/sql_yacc.yy"
15731     { }
15732     break;
15733 
15734   case 1148:
15735 
15736 /* Line 1455 of yacc.c  */
15737 #line 5395 "drizzled/sql_yacc.yy"
15738     { }
15739     break;
15740 
15741   case 1149:
15742 
15743 /* Line 1455 of yacc.c  */
15744 #line 5399 "drizzled/sql_yacc.yy"
15745     {}
15746     break;
15747 
15748   case 1150:
15749 
15750 /* Line 1455 of yacc.c  */
15751 #line 5400 "drizzled/sql_yacc.yy"
15752     { (yyval.var_type)=OPT_GLOBAL; }
15753     break;
15754 
15755   case 1151:
15756 
15757 /* Line 1455 of yacc.c  */
15758 #line 5401 "drizzled/sql_yacc.yy"
15759     { (yyval.var_type)=OPT_SESSION; }
15760     break;
15761 
15762   case 1152:
15763 
15764 /* Line 1455 of yacc.c  */
15765 #line 5402 "drizzled/sql_yacc.yy"
15766     { (yyval.var_type)=OPT_SESSION; }
15767     break;
15768 
15769   case 1153:
15770 
15771 /* Line 1455 of yacc.c  */
15772 #line 5406 "drizzled/sql_yacc.yy"
15773     { (yyval.num)= OPT_DEFAULT; }
15774     break;
15775 
15776   case 1154:
15777 
15778 /* Line 1455 of yacc.c  */
15779 #line 5407 "drizzled/sql_yacc.yy"
15780     { ((statement::SetOption *)Lex.statement)->one_shot_set= true; (yyval.num)= OPT_SESSION; }
15781     break;
15782 
15783   case 1155:
15784 
15785 /* Line 1455 of yacc.c  */
15786 #line 5411 "drizzled/sql_yacc.yy"
15787     { (yyval.var_type)=OPT_SESSION; }
15788     break;
15789 
15790   case 1156:
15791 
15792 /* Line 1455 of yacc.c  */
15793 #line 5412 "drizzled/sql_yacc.yy"
15794     { (yyval.var_type)=OPT_GLOBAL; }
15795     break;
15796 
15797   case 1157:
15798 
15799 /* Line 1455 of yacc.c  */
15800 #line 5413 "drizzled/sql_yacc.yy"
15801     { (yyval.var_type)=OPT_SESSION; }
15802     break;
15803 
15804   case 1158:
15805 
15806 /* Line 1455 of yacc.c  */
15807 #line 5414 "drizzled/sql_yacc.yy"
15808     { (yyval.var_type)=OPT_SESSION; }
15809     break;
15810 
15811   case 1159:
15812 
15813 /* Line 1455 of yacc.c  */
15814 #line 5418 "drizzled/sql_yacc.yy"
15815     { (yyval.var_type)=OPT_DEFAULT; }
15816     break;
15817 
15818   case 1160:
15819 
15820 /* Line 1455 of yacc.c  */
15821 #line 5419 "drizzled/sql_yacc.yy"
15822     { (yyval.var_type)=OPT_GLOBAL; }
15823     break;
15824 
15825   case 1161:
15826 
15827 /* Line 1455 of yacc.c  */
15828 #line 5420 "drizzled/sql_yacc.yy"
15829     { (yyval.var_type)=OPT_SESSION; }
15830     break;
15831 
15832   case 1162:
15833 
15834 /* Line 1455 of yacc.c  */
15835 #line 5421 "drizzled/sql_yacc.yy"
15836     { (yyval.var_type)=OPT_SESSION; }
15837     break;
15838 
15839   case 1165:
15840 
15841 /* Line 1455 of yacc.c  */
15842 #line 5431 "drizzled/sql_yacc.yy"
15843     {
15844             if ((yyvsp[(2) - (4)].variable).var)
15845             { /* System variable */
15846               if ((yyvsp[(1) - (4)].var_type))
15847               {
15848                 Lex.option_type= (yyvsp[(1) - (4)].var_type);
15849               }
15850               Lex.var_list.push_back(SetVarPtr(new set_var(Lex.option_type, (yyvsp[(2) - (4)].variable).var, (yyvsp[(2) - (4)].variable).base_name, (yyvsp[(4) - (4)].item))));
15851             }
15852           }
15853     break;
15854 
15855   case 1166:
15856 
15857 /* Line 1455 of yacc.c  */
15858 #line 5442 "drizzled/sql_yacc.yy"
15859     {
15860             Lex.option_type= (yyvsp[(1) - (5)].var_type);
15861             Lex.var_list.push_back(SetVarPtr(new set_var(Lex.option_type, find_sys_var("tx_isolation"), str_ref(), new Item_int((int32_t) (yyvsp[(5) - (5)].tx_isolation)))));
15862           }
15863     break;
15864 
15865   case 1167:
15866 
15867 /* Line 1455 of yacc.c  */
15868 #line 5450 "drizzled/sql_yacc.yy"
15869     {
15870             Lex.var_list.push_back(SetVarPtr(new set_var_user(new Item_func_set_user_var((yyvsp[(2) - (4)].lex_str),(yyvsp[(4) - (4)].item)))));
15871           }
15872     break;
15873 
15874   case 1168:
15875 
15876 /* Line 1455 of yacc.c  */
15877 #line 5454 "drizzled/sql_yacc.yy"
15878     {
15879             Lex.var_list.push_back(SetVarPtr(new set_var((yyvsp[(3) - (6)].var_type), (yyvsp[(4) - (6)].variable).var, (yyvsp[(4) - (6)].variable).base_name, (yyvsp[(6) - (6)].item))));
15880           }
15881     break;
15882 
15883   case 1169:
15884 
15885 /* Line 1455 of yacc.c  */
15886 #line 5460 "drizzled/sql_yacc.yy"
15887     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15888     break;
15889 
15890   case 1170:
15891 
15892 /* Line 1455 of yacc.c  */
15893 #line 5461 "drizzled/sql_yacc.yy"
15894     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15895     break;
15896 
15897   case 1171:
15898 
15899 /* Line 1455 of yacc.c  */
15900 #line 5462 "drizzled/sql_yacc.yy"
15901     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15902     break;
15903 
15904   case 1172:
15905 
15906 /* Line 1455 of yacc.c  */
15907 #line 5467 "drizzled/sql_yacc.yy"
15908     {
15909             (yyval.lex_str).assign(YYSession->mem.strdup((yyvsp[(1) - (1)].symbol).data(), (yyvsp[(1) - (1)].symbol).length), (yyvsp[(1) - (1)].symbol).length);
15910           }
15911     break;
15912 
15913   case 1173:
15914 
15915 /* Line 1455 of yacc.c  */
15916 #line 5470 "drizzled/sql_yacc.yy"
15917     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
15918     break;
15919 
15920   case 1174:
15921 
15922 /* Line 1455 of yacc.c  */
15923 #line 5475 "drizzled/sql_yacc.yy"
15924     {
15925             /* We have to lookup here since local vars can shadow sysvars */
15926             {
15927               /* Not an SP local variable */
15928               sys_var *tmp= find_sys_var(to_string((yyvsp[(1) - (1)].lex_str)));
15929               if (not tmp)
15930                 DRIZZLE_YYABORT;
15931               (yyval.variable).var= tmp;
15932               (yyval.variable).base_name= null_lex_string();
15933             }
15934           }
15935     break;
15936 
15937   case 1175:
15938 
15939 /* Line 1455 of yacc.c  */
15940 #line 5489 "drizzled/sql_yacc.yy"
15941     { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; }
15942     break;
15943 
15944   case 1176:
15945 
15946 /* Line 1455 of yacc.c  */
15947 #line 5490 "drizzled/sql_yacc.yy"
15948     { (yyval.tx_isolation)= ISO_READ_COMMITTED; }
15949     break;
15950 
15951   case 1177:
15952 
15953 /* Line 1455 of yacc.c  */
15954 #line 5491 "drizzled/sql_yacc.yy"
15955     { (yyval.tx_isolation)= ISO_REPEATABLE_READ; }
15956     break;
15957 
15958   case 1178:
15959 
15960 /* Line 1455 of yacc.c  */
15961 #line 5492 "drizzled/sql_yacc.yy"
15962     { (yyval.tx_isolation)= ISO_SERIALIZABLE; }
15963     break;
15964 
15965   case 1179:
15966 
15967 /* Line 1455 of yacc.c  */
15968 #line 5496 "drizzled/sql_yacc.yy"
15969     { (yyval.item)=(yyvsp[(1) - (1)].item); }
15970     break;
15971 
15972   case 1180:
15973 
15974 /* Line 1455 of yacc.c  */
15975 #line 5497 "drizzled/sql_yacc.yy"
15976     { (yyval.item)=0; }
15977     break;
15978 
15979   case 1181:
15980 
15981 /* Line 1455 of yacc.c  */
15982 #line 5498 "drizzled/sql_yacc.yy"
15983     { (yyval.item)=new Item_string(str_ref("ON"), system_charset_info); }
15984     break;
15985 
15986   case 1182:
15987 
15988 /* Line 1455 of yacc.c  */
15989 #line 5499 "drizzled/sql_yacc.yy"
15990     { (yyval.item)=new Item_string(str_ref("ALL"), system_charset_info); }
15991     break;
15992 
15993   case 1183:
15994 
15995 /* Line 1455 of yacc.c  */
15996 #line 5500 "drizzled/sql_yacc.yy"
15997     { (yyval.item)=new Item_string(str_ref("binary"), system_charset_info); }
15998     break;
15999 
16000   case 1186:
16001 
16002 /* Line 1455 of yacc.c  */
16003 #line 5510 "drizzled/sql_yacc.yy"
16004     {
16005             Lex.statement= new statement::UnlockTables(YYSession);
16006           }
16007     break;
16008 
16009   case 1187:
16010 
16011 /* Line 1455 of yacc.c  */
16012 #line 5514 "drizzled/sql_yacc.yy"
16013     {}
16014     break;
16015 
16016   case 1188:
16017 
16018 /* Line 1455 of yacc.c  */
16019 #line 5519 "drizzled/sql_yacc.yy"
16020     {
16021             Lex.statement= new statement::StartTransaction(YYSession);
16022           }
16023     break;
16024 
16025   case 1189:
16026 
16027 /* Line 1455 of yacc.c  */
16028 #line 5522 "drizzled/sql_yacc.yy"
16029     {}
16030     break;
16031 
16032   case 1190:
16033 
16034 /* Line 1455 of yacc.c  */
16035 #line 5526 "drizzled/sql_yacc.yy"
16036     {}
16037     break;
16038 
16039   case 1191:
16040 
16041 /* Line 1455 of yacc.c  */
16042 #line 5527 "drizzled/sql_yacc.yy"
16043     {}
16044     break;
16045 
16046   case 1192:
16047 
16048 /* Line 1455 of yacc.c  */
16049 #line 5532 "drizzled/sql_yacc.yy"
16050     { (yyval.num)= (YYSession->variables.completion_type == 1); }
16051     break;
16052 
16053   case 1193:
16054 
16055 /* Line 1455 of yacc.c  */
16056 #line 5533 "drizzled/sql_yacc.yy"
16057     { (yyval.num)=0; }
16058     break;
16059 
16060   case 1194:
16061 
16062 /* Line 1455 of yacc.c  */
16063 #line 5534 "drizzled/sql_yacc.yy"
16064     { (yyval.num)=1; }
16065     break;
16066 
16067   case 1195:
16068 
16069 /* Line 1455 of yacc.c  */
16070 #line 5539 "drizzled/sql_yacc.yy"
16071     { (yyval.num)= (YYSession->variables.completion_type == 2); }
16072     break;
16073 
16074   case 1196:
16075 
16076 /* Line 1455 of yacc.c  */
16077 #line 5540 "drizzled/sql_yacc.yy"
16078     { (yyval.num)=1; }
16079     break;
16080 
16081   case 1197:
16082 
16083 /* Line 1455 of yacc.c  */
16084 #line 5541 "drizzled/sql_yacc.yy"
16085     { (yyval.num)=0; }
16086     break;
16087 
16088   case 1198:
16089 
16090 /* Line 1455 of yacc.c  */
16091 #line 5545 "drizzled/sql_yacc.yy"
16092     {}
16093     break;
16094 
16095   case 1199:
16096 
16097 /* Line 1455 of yacc.c  */
16098 #line 5546 "drizzled/sql_yacc.yy"
16099     {}
16100     break;
16101 
16102   case 1200:
16103 
16104 /* Line 1455 of yacc.c  */
16105 #line 5551 "drizzled/sql_yacc.yy"
16106     {
16107             Lex.statement= new statement::Commit(YYSession, (yyvsp[(3) - (4)].num), (yyvsp[(4) - (4)].num));
16108           }
16109     break;
16110 
16111   case 1201:
16112 
16113 /* Line 1455 of yacc.c  */
16114 #line 5558 "drizzled/sql_yacc.yy"
16115     {
16116             Lex.statement= new statement::Rollback(YYSession, (yyvsp[(3) - (4)].num), (yyvsp[(4) - (4)].num));
16117           }
16118     break;
16119 
16120   case 1202:
16121 
16122 /* Line 1455 of yacc.c  */
16123 #line 5562 "drizzled/sql_yacc.yy"
16124     {
16125             Lex.statement= new statement::RollbackToSavepoint(YYSession, (yyvsp[(5) - (5)].lex_str));
16126           }
16127     break;
16128 
16129   case 1203:
16130 
16131 /* Line 1455 of yacc.c  */
16132 #line 5569 "drizzled/sql_yacc.yy"
16133     {
16134             Lex.statement= new statement::Savepoint(YYSession, (yyvsp[(2) - (2)].lex_str));
16135           }
16136     break;
16137 
16138   case 1204:
16139 
16140 /* Line 1455 of yacc.c  */
16141 #line 5576 "drizzled/sql_yacc.yy"
16142     {
16143             Lex.statement= new statement::ReleaseSavepoint(YYSession, (yyvsp[(3) - (3)].lex_str));
16144           }
16145     break;
16146 
16147   case 1206:
16148 
16149 /* Line 1455 of yacc.c  */
16150 #line 5591 "drizzled/sql_yacc.yy"
16151     {}
16152     break;
16153 
16154   case 1208:
16155 
16156 /* Line 1455 of yacc.c  */
16157 #line 5597 "drizzled/sql_yacc.yy"
16158     {
16159             if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(2) - (2)].num)))
16160               DRIZZLE_YYABORT;
16161           }
16162     break;
16163 
16164   case 1209:
16165 
16166 /* Line 1455 of yacc.c  */
16167 #line 5602 "drizzled/sql_yacc.yy"
16168     {
16169             /*
16170               Remove from the name resolution context stack the context of the
16171               last select in the union.
16172             */
16173             Lex.pop_context();
16174           }
16175     break;
16176 
16177   case 1210:
16178 
16179 /* Line 1455 of yacc.c  */
16180 #line 5612 "drizzled/sql_yacc.yy"
16181     { (yyval.num)= 0; }
16182     break;
16183 
16184   case 1211:
16185 
16186 /* Line 1455 of yacc.c  */
16187 #line 5613 "drizzled/sql_yacc.yy"
16188     { (yyval.num)= 1; }
16189     break;
16190 
16191   case 1212:
16192 
16193 /* Line 1455 of yacc.c  */
16194 #line 5614 "drizzled/sql_yacc.yy"
16195     { (yyval.num)= 1; }
16196     break;
16197 
16198   case 1213:
16199 
16200 /* Line 1455 of yacc.c  */
16201 #line 5618 "drizzled/sql_yacc.yy"
16202     {
16203             assert(Lex.current_select->linkage != GLOBAL_OPTIONS_TYPE);
16204             Select_Lex *sel= Lex.current_select;
16205             Select_Lex_Unit *unit= sel->master_unit();
16206             Select_Lex *fake= unit->fake_select_lex;
16207             if (fake)
16208             {
16209               unit->global_parameters= fake;
16210               fake->no_table_names_allowed= 1;
16211               Lex.current_select= fake;
16212             }
16213             YYSession->setWhere("global ORDER clause");
16214           }
16215     break;
16216 
16217   case 1214:
16218 
16219 /* Line 1455 of yacc.c  */
16220 #line 5632 "drizzled/sql_yacc.yy"
16221     {
16222             YYSession->lex().current_select->no_table_names_allowed= 0;
16223             YYSession->setWhere("");
16224           }
16225     break;
16226 
16227   case 1217:
16228 
16229 /* Line 1455 of yacc.c  */
16230 #line 5644 "drizzled/sql_yacc.yy"
16231     { (yyval.num)=1; }
16232     break;
16233 
16234   case 1218:
16235 
16236 /* Line 1455 of yacc.c  */
16237 #line 5645 "drizzled/sql_yacc.yy"
16238     { (yyval.num)=1; }
16239     break;
16240 
16241   case 1219:
16242 
16243 /* Line 1455 of yacc.c  */
16244 #line 5646 "drizzled/sql_yacc.yy"
16245     { (yyval.num)=0; }
16246     break;
16247 
16248   case 1220:
16249 
16250 /* Line 1455 of yacc.c  */
16251 #line 5651 "drizzled/sql_yacc.yy"
16252     {
16253             (yyval.select_lex)= Lex.current_select->master_unit()->first_select();
16254           }
16255     break;
16256 
16257   case 1221:
16258 
16259 /* Line 1455 of yacc.c  */
16260 #line 5655 "drizzled/sql_yacc.yy"
16261     {
16262             (yyval.select_lex)= Lex.current_select->master_unit()->first_select();
16263           }
16264     break;
16265 
16266   case 1223:
16267 
16268 /* Line 1455 of yacc.c  */
16269 #line 5664 "drizzled/sql_yacc.yy"
16270     {
16271             if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(3) - (3)].num)))
16272               DRIZZLE_YYABORT;
16273           }
16274     break;
16275 
16276   case 1224:
16277 
16278 /* Line 1455 of yacc.c  */
16279 #line 5669 "drizzled/sql_yacc.yy"
16280     {
16281             Lex.pop_context();
16282             (yyval.select_lex)= (yyvsp[(1) - (5)].select_lex);
16283           }
16284     break;
16285 
16286   case 1225:
16287 
16288 /* Line 1455 of yacc.c  */
16289 #line 5678 "drizzled/sql_yacc.yy"
16290     {
16291             (yyval.select_lex)= (yyvsp[(2) - (3)].select_lex);
16292           }
16293     break;
16294 
16295   case 1226:
16296 
16297 /* Line 1455 of yacc.c  */
16298 #line 5684 "drizzled/sql_yacc.yy"
16299     {
16300             if (not Lex.expr_allows_subselect)
16301             {
16302               parser::my_parse_error(YYSession->m_lip);
16303               DRIZZLE_YYABORT;
16304             }
16305             /*
16306               we are making a "derived table" for the parenthesis
16307               as we need to have a lex level to fit the union
16308               after the parenthesis, e.g.
16309               (SELECT .. ) UNION ...  becomes
16310               SELECT * FROM ((SELECT ...) UNION ...)
16311             */
16312             if (new_select(&Lex, 1))
16313               DRIZZLE_YYABORT;
16314           }
16315     break;
16316 
16317   case 1227:
16318 
16319 /* Line 1455 of yacc.c  */
16320 #line 5703 "drizzled/sql_yacc.yy"
16321     {
16322             Lex.pop_context();
16323             Select_Lex *child= Lex.current_select;
16324             Lex.current_select= Lex.current_select->return_after_parsing();
16325             Lex.nest_level--;
16326             Lex.current_select->n_child_sum_items += child->n_sum_items;
16327             /*
16328               A subselect can add fields to an outer select. Reserve space for
16329               them.
16330             */
16331             Lex.current_select->select_n_where_fields+=
16332             child->select_n_where_fields;
16333           }
16334     break;
16335 
16336 
16337 
16338 /* Line 1455 of yacc.c  */
16339 #line 16340 "drizzled/sql_yacc.cc"
16340       default: break;
16341     }
16342   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
16343 
16344   YYPOPSTACK (yylen);
16345   yylen = 0;
16346   YY_STACK_PRINT (yyss, yyssp);
16347 
16348   *++yyvsp = yyval;
16349 
16350   /* Now `shift' the result of the reduction.  Determine what state
16351      that goes to, based on the state we popped back to and the rule
16352      number reduced by.  */
16353 
16354   yyn = yyr1[yyn];
16355 
16356   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
16357   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
16358     yystate = yytable[yystate];
16359   else
16360     yystate = yydefgoto[yyn - YYNTOKENS];
16361 
16362   goto yynewstate;
16363 
16364 
16365 /*------------------------------------.
16366 | yyerrlab -- here on detecting error |
16367 `------------------------------------*/
16368 yyerrlab:
16369   /* If not already recovering from an error, report this error.  */
16370   if (!yyerrstatus)
16371     {
16372       ++yynerrs;
16373 #if ! YYERROR_VERBOSE
16374       yyerror (session, YY_("syntax error"));
16375 #else
16376       {
16377   YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
16378   if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
16379     {
16380       YYSIZE_T yyalloc = 2 * yysize;
16381       if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
16382         yyalloc = YYSTACK_ALLOC_MAXIMUM;
16383       if (yymsg != yymsgbuf)
16384         YYSTACK_FREE (yymsg);
16385       yymsg = (char *) YYSTACK_ALLOC (yyalloc);
16386       if (yymsg)
16387         yymsg_alloc = yyalloc;
16388       else
16389         {
16390     yymsg = yymsgbuf;
16391     yymsg_alloc = sizeof yymsgbuf;
16392         }
16393     }
16394 
16395   if (0 < yysize && yysize <= yymsg_alloc)
16396     {
16397       (void) yysyntax_error (yymsg, yystate, yychar);
16398       yyerror (session, yymsg);
16399     }
16400   else
16401     {
16402       yyerror (session, YY_("syntax error"));
16403       if (yysize != 0)
16404         goto yyexhaustedlab;
16405     }
16406       }
16407 #endif
16408     }
16409 
16410 
16411 
16412   if (yyerrstatus == 3)
16413     {
16414       /* If just tried and failed to reuse lookahead token after an
16415    error, discard it.  */
16416 
16417       if (yychar <= YYEOF)
16418   {
16419     /* Return failure if at end of input.  */
16420     if (yychar == YYEOF)
16421       YYABORT;
16422   }
16423       else
16424   {
16425     yydestruct ("Error: discarding",
16426           yytoken, &yylval, session);
16427     yychar = YYEMPTY;
16428   }
16429     }
16430 
16431   /* Else will try to reuse lookahead token after shifting the error
16432      token.  */
16433   goto yyerrlab1;
16434 
16435 
16436 /*---------------------------------------------------.
16437 | yyerrorlab -- error raised explicitly by YYERROR.  |
16438 `---------------------------------------------------*/
16439 yyerrorlab:
16440 
16441   /* Pacify compilers like GCC when the user code never invokes
16442      YYERROR and the label yyerrorlab therefore never appears in user
16443      code.  */
16444   if (/*CONSTCOND*/ 0)
16445      goto yyerrorlab;
16446 
16447   /* Do not reclaim the symbols of the rule which action triggered
16448      this YYERROR.  */
16449   YYPOPSTACK (yylen);
16450   yylen = 0;
16451   YY_STACK_PRINT (yyss, yyssp);
16452   yystate = *yyssp;
16453   goto yyerrlab1;
16454 
16455 
16456 /*-------------------------------------------------------------.
16457 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
16458 `-------------------------------------------------------------*/
16459 yyerrlab1:
16460   yyerrstatus = 3;  /* Each real token shifted decrements this.  */
16461 
16462   for (;;)
16463     {
16464       yyn = yypact[yystate];
16465       if (yyn != YYPACT_NINF)
16466   {
16467     yyn += YYTERROR;
16468     if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
16469       {
16470         yyn = yytable[yyn];
16471         if (0 < yyn)
16472     break;
16473       }
16474   }
16475 
16476       /* Pop the current state because it cannot handle the error token.  */
16477       if (yyssp == yyss)
16478   YYABORT;
16479 
16480 
16481       yydestruct ("Error: popping",
16482       yystos[yystate], yyvsp, session);
16483       YYPOPSTACK (1);
16484       yystate = *yyssp;
16485       YY_STACK_PRINT (yyss, yyssp);
16486     }
16487 
16488   *++yyvsp = yylval;
16489 
16490 
16491   /* Shift the error token.  */
16492   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
16493 
16494   yystate = yyn;
16495   goto yynewstate;
16496 
16497 
16498 /*-------------------------------------.
16499 | yyacceptlab -- YYACCEPT comes here.  |
16500 `-------------------------------------*/
16501 yyacceptlab:
16502   yyresult = 0;
16503   goto yyreturn;
16504 
16505 /*-----------------------------------.
16506 | yyabortlab -- YYABORT comes here.  |
16507 `-----------------------------------*/
16508 yyabortlab:
16509   yyresult = 1;
16510   goto yyreturn;
16511 
16512 #if !defined(yyoverflow) || YYERROR_VERBOSE
16513 /*-------------------------------------------------.
16514 | yyexhaustedlab -- memory exhaustion comes here.  |
16515 `-------------------------------------------------*/
16516 yyexhaustedlab:
16517   yyerror (session, YY_("memory exhausted"));
16518   yyresult = 2;
16519   /* Fall through.  */
16520 #endif
16521 
16522 yyreturn:
16523   if (yychar != YYEMPTY)
16524      yydestruct ("Cleanup: discarding lookahead",
16525      yytoken, &yylval, session);
16526   /* Do not reclaim the symbols of the rule which action triggered
16527      this YYABORT or YYACCEPT.  */
16528   YYPOPSTACK (yylen);
16529   YY_STACK_PRINT (yyss, yyssp);
16530   while (yyssp != yyss)
16531     {
16532       yydestruct ("Cleanup: popping",
16533       yystos[*yyssp], yyvsp, session);
16534       YYPOPSTACK (1);
16535     }
16536 #ifndef yyoverflow
16537   if (yyss != yyssa)
16538     YYSTACK_FREE (yyss);
16539 #endif
16540 #if YYERROR_VERBOSE
16541   if (yymsg != yymsgbuf)
16542     YYSTACK_FREE (yymsg);
16543 #endif
16544   /* Make sure YYID is used.  */
16545   return YYID (yyresult);
16546 }
16547 
16548 
16549