Drizzled Public API Documentation

sql_yacc.cc
1 /* A Bison parser, made by GNU Bison 2.5. */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5  Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc.
6 
7  This program is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 
20 /* As a special exception, you may create a larger work that contains
21  part or all of the Bison parser skeleton and distribute that work
22  under terms of your choice, so long as that work isn't itself a
23  parser generator using the skeleton or a modified version thereof
24  as a parser skeleton. Alternatively, if you modify or redistribute
25  the parser skeleton itself, you may (at your option) remove this
26  special exception, which will cause the skeleton and the resulting
27  Bison output files to be licensed under the GNU General Public
28  License without this special exception.
29 
30  This special exception was added by the Free Software Foundation in
31  version 2.2 of Bison. */
32 
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34  simplifying the original so-called "semantic" parser. */
35 
36 /* All symbols defined below should begin with yy or YY, to avoid
37  infringing on user name space. This should be done even for local
38  variables, as they might otherwise be expanded by user macros.
39  There are some unavoidable exceptions within include files to
40  define necessary library symbols; they are noted "INFRINGES ON
41  USER NAME SPACE" below. */
42 
43 /* Identify Bison output. */
44 #define YYBISON 1
45 
46 /* Bison version. */
47 #define YYBISON_VERSION "2.5"
48 
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51 
52 /* Pure parsers. */
53 #define YYPURE 1
54 
55 /* Push parsers. */
56 #define YYPUSH 0
57 
58 /* Pull parsers. */
59 #define YYPULL 1
60 
61 /* Using locations. */
62 #define YYLSP_NEEDED 0
63 
64 /* Substitute the variable and function names. */
65 #define yyparse base_sql_parse
66 #define yylex base_sql_lex
67 #define yyerror base_sql_error
68 #define yylval base_sql_lval
69 #define yychar base_sql_char
70 #define yydebug base_sql_debug
71 #define yynerrs base_sql_nerrs
72 
73 
74 /* Copy the first part of user declarations. */
75 
76 /* Line 268 of yacc.c */
77 #line 25 "drizzled/sql_yacc.yy"
78 
79 /* session is passed as an argument to yyparse(), and subsequently to yylex().
80 ** The type will be void*, so it must be cast to (Session*) when used.
81 ** Use the YYSession macro for this.
82 */
83 
84 #define YYSession (session)
85 
86 #define YYENABLE_NLS 0
87 #define YYLTYPE_IS_TRIVIAL 0
88 
89 #define YYINITDEPTH 100
90 #define YYMAXDEPTH 3200 /* Because of 64K stack */
91 #define Lex (session->lex())
92 
93 #include <config.h>
94 #include <cstdio>
95 #include <drizzled/parser.h>
96 #include <drizzled/session.h>
97 #include <drizzled/alter_column.h>
98 #include <drizzled/alter_info.h>
99 #include <drizzled/message/alter_table.pb.h>
100 #include <drizzled/item/subselect.h>
101 #include <drizzled/table_ident.h>
102 #include <drizzled/var.h>
103 #include <drizzled/system_variables.h>
104 #include <drizzled/lex_input_stream.h>
105 #include <drizzled/show.h>
106 
107 int yylex(union ParserType *yylval, drizzled::Session *session);
108 
109 #define yyoverflow(A,B,C,D,E,F) \
110  { \
111  unsigned long val= *(F); \
112  if (drizzled::my_yyoverflow((B), (D), &val)) \
113  { \
114  yyerror(NULL, (A)); \
115  return 2; \
116  } \
117  else \
118  { \
119  *(F)= (YYSIZE_T)val; \
120  } \
121  }
122 
123 #define DRIZZLE_YYABORT \
124  do \
125  { \
126  YYABORT; \
127  } while (0)
128 
129 #define DRIZZLE_YYABORT_UNLESS(A) \
130  if (!(A)) \
131  { \
132  parser::my_parse_error(YYSession->m_lip);\
133  DRIZZLE_YYABORT; \
134  }
135 
136 namespace drizzled
137 {
138 
139 class Table_ident;
140 class Item;
141 class Item_num;
142 
143 namespace item
144 {
145 class Boolean;
146 class True;
147 class False;
148 }
149 
150 
171 static void base_sql_error(drizzled::Session *session, const char* s)
172 {
173  parser::errorOn(session, s);
174 }
175 
176 } /* namespace drizzled; */
177 
178 using namespace drizzled;
179 
180 
181 /* Line 268 of yacc.c */
182 #line 183 "drizzled/sql_yacc.cc"
183 
184 /* Enabling traces. */
185 #ifndef YYDEBUG
186 # define YYDEBUG 1
187 #endif
188 
189 /* Enabling verbose error messages. */
190 #ifdef YYERROR_VERBOSE
191 # undef YYERROR_VERBOSE
192 # define YYERROR_VERBOSE 1
193 #else
194 # define YYERROR_VERBOSE 0
195 #endif
196 
197 /* Enabling the token table. */
198 #ifndef YYTOKEN_TABLE
199 # define YYTOKEN_TABLE 0
200 #endif
201 
202 
203 /* Tokens. */
204 #ifndef YYTOKENTYPE
205 # define YYTOKENTYPE
206  /* Put the tokens into the symbol table, so that GDB and other debuggers
207  know about them. */
208  enum yytokentype {
209  ABORT_SYM = 258,
210  ACTION = 259,
211  ADDDATE_SYM = 260,
212  ADD_SYM = 261,
213  AFTER_SYM = 262,
214  AGGREGATE_SYM = 263,
215  ALL = 264,
216  ALTER_SYM = 265,
217  ANALYZE_SYM = 266,
218  AND_SYM = 267,
219  ANY_SYM = 268,
220  AS = 269,
221  ASC = 270,
222  ASENSITIVE_SYM = 271,
223  AT_SYM = 272,
224  AUTO_INC = 273,
225  AVG_SYM = 274,
226  BEFORE_SYM = 275,
227  BEGIN_SYM = 276,
228  BETWEEN_SYM = 277,
229  BIGINT_SYM = 278,
230  BINARY = 279,
231  BIN_NUM = 280,
232  BIT_SYM = 281,
233  BLOB_SYM = 282,
234  BOOLEAN_SYM = 283,
235  BOOL_SYM = 284,
236  BOTH = 285,
237  BTREE_SYM = 286,
238  BY = 287,
239  CALL_SYM = 288,
240  CASCADE = 289,
241  CASCADED = 290,
242  CASE_SYM = 291,
243  CAST_SYM = 292,
244  CATALOG_SYM = 293,
245  CHAIN_SYM = 294,
246  CHANGE_SYM = 295,
247  CHARSET = 296,
248  CHAR_SYM = 297,
249  CHECKSUM_SYM = 298,
250  CHECK_SYM = 299,
251  CLOSE_SYM = 300,
252  COALESCE = 301,
253  COLLATE_SYM = 302,
254  COLLATION_SYM = 303,
255  COLUMNS = 304,
256  COLUMN_SYM = 305,
257  COMMENT_SYM = 306,
258  COMMITTED_SYM = 307,
259  COMMIT_SYM = 308,
260  COMPACT_SYM = 309,
261  COMPRESSED_SYM = 310,
262  CONCURRENT = 311,
263  CONDITION_SYM = 312,
264  CONNECTION_SYM = 313,
265  CONSISTENT_SYM = 314,
266  CONSTRAINT = 315,
267  CONTAINS_SYM = 316,
268  CONVERT_SYM = 317,
269  COUNT_SYM = 318,
270  CREATE = 319,
271  CROSS = 320,
272  CUBE_SYM = 321,
273  CURDATE = 322,
274  CURTIME = 323,
275  CURRENT_USER = 324,
276  CURSOR_SYM = 325,
277  DATABASE = 326,
278  DATABASES = 327,
279  DATA_SYM = 328,
280  DATETIME_SYM = 329,
281  DATE_ADD_INTERVAL = 330,
282  DATE_SUB_INTERVAL = 331,
283  DATE_SYM = 332,
284  DAY_HOUR_SYM = 333,
285  DAY_MICROSECOND_SYM = 334,
286  DAY_MINUTE_SYM = 335,
287  DAY_SECOND_SYM = 336,
288  DAY_SYM = 337,
289  DEALLOCATE_SYM = 338,
290  DECIMAL_NUM = 339,
291  DECIMAL_SYM = 340,
292  DECLARE_SYM = 341,
293  DEFAULT = 342,
294  DEFINER = 343,
295  DELETE_SYM = 344,
296  DESC = 345,
297  DESCRIBE = 346,
298  DETERMINISTIC_SYM = 347,
299  DISABLE_SYM = 348,
300  DISCARD = 349,
301  DISTINCT = 350,
302  DIV_SYM = 351,
303  DOUBLE_SYM = 352,
304  DO_SYM = 353,
305  DROP = 354,
306  DUMPFILE = 355,
307  DUPLICATE_SYM = 356,
308  DYNAMIC_SYM = 357,
309  EACH_SYM = 358,
310  ELSE = 359,
311  ENABLE_SYM = 360,
312  ENCLOSED = 361,
313  END = 362,
314  ENDS_SYM = 363,
315  END_OF_INPUT = 364,
316  ENGINE_SYM = 365,
317  ENUM_SYM = 366,
318  EQUAL_SYM = 367,
319  ERRORS = 368,
320  ESCAPED = 369,
321  ESCAPE_SYM = 370,
322  EXCLUSIVE_SYM = 371,
323  EXECUTE_SYM = 372,
324  EXISTS = 373,
325  EXTENDED_SYM = 374,
326  EXTRACT_SYM = 375,
327  FALSE_SYM = 376,
328  FILE_SYM = 377,
329  FIRST_SYM = 378,
330  FIXED_SYM = 379,
331  FLOAT_NUM = 380,
332  FLUSH_SYM = 381,
333  FORCE_SYM = 382,
334  FOREIGN = 383,
335  FOR_SYM = 384,
336  FOUND_SYM = 385,
337  FRAC_SECOND_SYM = 386,
338  FROM = 387,
339  FULL = 388,
340  GE = 389,
341  GLOBAL_SYM = 390,
342  GROUP_CONCAT_SYM = 391,
343  GROUP_SYM = 392,
344  HASH_SYM = 393,
345  HAVING = 394,
346  HEX_NUM = 395,
347  HOUR_MICROSECOND_SYM = 396,
348  HOUR_MINUTE_SYM = 397,
349  HOUR_SECOND_SYM = 398,
350  HOUR_SYM = 399,
351  IDENT = 400,
352  IDENTIFIED_SYM = 401,
353  IDENTITY_SYM = 402,
354  IDENT_QUOTED = 403,
355  IF = 404,
356  IGNORE_SYM = 405,
357  IMPORT = 406,
358  INDEXES = 407,
359  INDEX_SYM = 408,
360  INFILE = 409,
361  INNER_SYM = 410,
362  INOUT_SYM = 411,
363  INSENSITIVE_SYM = 412,
364  INSERT = 413,
365  INTERVAL_SYM = 414,
366  INTO = 415,
367  INT_SYM = 416,
368  INVOKER = 417,
369  IN_SYM = 418,
370  IS = 419,
371  ISOLATION = 420,
372  ITERATE_SYM = 421,
373  IPV6_SYM = 422,
374  JOIN_SYM = 423,
375  KEYS = 424,
376  KEY_BLOCK_SIZE = 425,
377  KEY_SYM = 426,
378  KILL_SYM = 427,
379  LAST_SYM = 428,
380  LE = 429,
381  LEADING = 430,
382  LEFT = 431,
383  LEVEL_SYM = 432,
384  LEX_HOSTNAME = 433,
385  LIKE = 434,
386  LIMIT = 435,
387  LINES = 436,
388  LOAD = 437,
389  LOCAL_SYM = 438,
390  LOCKS_SYM = 439,
391  LOCK_SYM = 440,
392  LOGS_SYM = 441,
393  LONG_NUM = 442,
394  LONG_SYM = 443,
395  MATCH = 444,
396  MAX_SYM = 445,
397  MAX_VALUE_SYM = 446,
398  MEDIUM_SYM = 447,
399  MERGE_SYM = 448,
400  MICROSECOND_SYM = 449,
401  MINUTE_MICROSECOND_SYM = 450,
402  MINUTE_SECOND_SYM = 451,
403  MINUTE_SYM = 452,
404  MIN_SYM = 453,
405  MODE_SYM = 454,
406  MODIFIES_SYM = 455,
407  MODIFY_SYM = 456,
408  MOD_SYM = 457,
409  MONTH_SYM = 458,
410  NAMES_SYM = 459,
411  NAME_SYM = 460,
412  NATIONAL_SYM = 461,
413  NATURAL = 462,
414  NE = 463,
415  NEW_SYM = 464,
416  NEXT_SYM = 465,
417  NONE_SYM = 466,
418  NOT_SYM = 467,
419  NOW_SYM = 468,
420  NO_SYM = 469,
421  NULL_SYM = 470,
422  NUM = 471,
423  NUMERIC_SYM = 472,
424  OFFLINE_SYM = 473,
425  OFFSET_SYM = 474,
426  ON = 475,
427  ONE_SHOT_SYM = 476,
428  ONE_SYM = 477,
429  ONLINE_SYM = 478,
430  OPEN_SYM = 479,
431  OPTIMIZE = 480,
432  OPTION = 481,
433  OPTIONALLY = 482,
434  ORDER_SYM = 483,
435  OR_SYM = 484,
436  OUTER = 485,
437  OUTFILE = 486,
438  OUT_SYM = 487,
439  PARTIAL = 488,
440  POSITION_SYM = 489,
441  PRECISION = 490,
442  PREV_SYM = 491,
443  PRIMARY_SYM = 492,
444  PROCESS = 493,
445  PROCESSLIST_SYM = 494,
446  QUARTER_SYM = 495,
447  QUERY_SYM = 496,
448  RANGE_SYM = 497,
449  READS_SYM = 498,
450  READ_SYM = 499,
451  READ_WRITE_SYM = 500,
452  REAL = 501,
453  REDUNDANT_SYM = 502,
454  REFERENCES = 503,
455  REGEXP_SYM = 504,
456  RELEASE_SYM = 505,
457  RENAME = 506,
458  REPEATABLE_SYM = 507,
459  REPEAT_SYM = 508,
460  REPLACE = 509,
461  REPLICATE = 510,
462  REPLICATION = 511,
463  RESTRICT = 512,
464  RETURNS_SYM = 513,
465  RETURN_SYM = 514,
466  REVOKE = 515,
467  RIGHT = 516,
468  ROLLBACK_SYM = 517,
469  ROLLUP_SYM = 518,
470  ROUTINE_SYM = 519,
471  ROWS_SYM = 520,
472  ROW_FORMAT_SYM = 521,
473  ROW_SYM = 522,
474  SAVEPOINT_SYM = 523,
475  SECOND_MICROSECOND_SYM = 524,
476  SECOND_SYM = 525,
477  SECURITY_SYM = 526,
478  SELECT_SYM = 527,
479  SENSITIVE_SYM = 528,
480  SEPARATOR_SYM = 529,
481  SERIALIZABLE_SYM = 530,
482  SERIAL_SYM = 531,
483  SERVER_SYM = 532,
484  SESSION_SYM = 533,
485  SET_SYM = 534,
486  SET_VAR = 535,
487  SHARE_SYM = 536,
488  SHOW = 537,
489  SIGNED_SYM = 538,
490  SIMPLE_SYM = 539,
491  SNAPSHOT_SYM = 540,
492  SPECIFIC_SYM = 541,
493  SQLEXCEPTION_SYM = 542,
494  SQLSTATE_SYM = 543,
495  SQLWARNING_SYM = 544,
496  SQL_BIG_RESULT = 545,
497  SQL_BUFFER_RESULT = 546,
498  SQL_CALC_FOUND_ROWS = 547,
499  SQL_SMALL_RESULT = 548,
500  SQL_SYM = 549,
501  STARTING = 550,
502  START_SYM = 551,
503  STATUS_SYM = 552,
504  STDDEV_SAMP_SYM = 553,
505  STD_SYM = 554,
506  STOP_SYM = 555,
507  STORED_SYM = 556,
508  STRAIGHT_JOIN = 557,
509  STRING_SYM = 558,
510  SUBDATE_SYM = 559,
511  SUBJECT_SYM = 560,
512  SUBSTRING = 561,
513  SUM_SYM = 562,
514  SUSPEND_SYM = 563,
515  SYSDATE = 564,
516  TABLES = 565,
517  TABLESPACE = 566,
518  TABLE_REF_PRIORITY = 567,
519  TABLE_SYM = 568,
520  TEMPORARY_SYM = 569,
521  TERMINATED = 570,
522  TEXT_STRING = 571,
523  TEXT_SYM = 572,
524  THEN_SYM = 573,
525  TIMESTAMP_ADD = 574,
526  TIMESTAMP_DIFF = 575,
527  TIMESTAMP_SYM = 576,
528  TIME_SYM = 577,
529  TO_SYM = 578,
530  TRAILING = 579,
531  TRANSACTION_SYM = 580,
532  TRIM = 581,
533  TRUE_SYM = 582,
534  TRUNCATE_SYM = 583,
535  TYPE_SYM = 584,
536  ULONGLONG_NUM = 585,
537  UNCOMMITTED_SYM = 586,
538  UNDOFILE_SYM = 587,
539  UNDO_SYM = 588,
540  UNION_SYM = 589,
541  UNIQUE_SYM = 590,
542  UNKNOWN_SYM = 591,
543  UNLOCK_SYM = 592,
544  UNSIGNED_SYM = 593,
545  UPDATE_SYM = 594,
546  USAGE = 595,
547  USER = 596,
548  USE_SYM = 597,
549  USING = 598,
550  UTC_DATE_SYM = 599,
551  UTC_TIME_SYM = 600,
552  UTC_TIMESTAMP_SYM = 601,
553  UTF8_SYM = 602,
554  UUID_SYM = 603,
555  VALUES = 604,
556  VALUE_SYM = 605,
557  VARBINARY = 606,
558  VARCHAR_SYM = 607,
559  VARIABLES = 608,
560  VARIANCE_SYM = 609,
561  VARYING = 610,
562  VAR_SAMP_SYM = 611,
563  WAIT_SYM = 612,
564  WARNINGS = 613,
565  WEEK_SYM = 614,
566  WHEN_SYM = 615,
567  WHERE = 616,
568  WITH = 617,
569  WITH_ROLLUP_SYM = 618,
570  WORK_SYM = 619,
571  WRITE_SYM = 620,
572  XOR = 621,
573  YEAR_MONTH_SYM = 622,
574  YEAR_SYM = 623,
575  ZEROFILL_SYM = 624,
576  LESS_THAN = 625,
577  GREATER_THAN = 626,
578  CONCAT = 627,
579  SHIFT_RIGHT = 628,
580  SHIFT_LEFT = 629,
581  UMINUS = 630
582  };
583 #endif
584 /* Tokens. */
585 #define ABORT_SYM 258
586 #define ACTION 259
587 #define ADDDATE_SYM 260
588 #define ADD_SYM 261
589 #define AFTER_SYM 262
590 #define AGGREGATE_SYM 263
591 #define ALL 264
592 #define ALTER_SYM 265
593 #define ANALYZE_SYM 266
594 #define AND_SYM 267
595 #define ANY_SYM 268
596 #define AS 269
597 #define ASC 270
598 #define ASENSITIVE_SYM 271
599 #define AT_SYM 272
600 #define AUTO_INC 273
601 #define AVG_SYM 274
602 #define BEFORE_SYM 275
603 #define BEGIN_SYM 276
604 #define BETWEEN_SYM 277
605 #define BIGINT_SYM 278
606 #define BINARY 279
607 #define BIN_NUM 280
608 #define BIT_SYM 281
609 #define BLOB_SYM 282
610 #define BOOLEAN_SYM 283
611 #define BOOL_SYM 284
612 #define BOTH 285
613 #define BTREE_SYM 286
614 #define BY 287
615 #define CALL_SYM 288
616 #define CASCADE 289
617 #define CASCADED 290
618 #define CASE_SYM 291
619 #define CAST_SYM 292
620 #define CATALOG_SYM 293
621 #define CHAIN_SYM 294
622 #define CHANGE_SYM 295
623 #define CHARSET 296
624 #define CHAR_SYM 297
625 #define CHECKSUM_SYM 298
626 #define CHECK_SYM 299
627 #define CLOSE_SYM 300
628 #define COALESCE 301
629 #define COLLATE_SYM 302
630 #define COLLATION_SYM 303
631 #define COLUMNS 304
632 #define COLUMN_SYM 305
633 #define COMMENT_SYM 306
634 #define COMMITTED_SYM 307
635 #define COMMIT_SYM 308
636 #define COMPACT_SYM 309
637 #define COMPRESSED_SYM 310
638 #define CONCURRENT 311
639 #define CONDITION_SYM 312
640 #define CONNECTION_SYM 313
641 #define CONSISTENT_SYM 314
642 #define CONSTRAINT 315
643 #define CONTAINS_SYM 316
644 #define CONVERT_SYM 317
645 #define COUNT_SYM 318
646 #define CREATE 319
647 #define CROSS 320
648 #define CUBE_SYM 321
649 #define CURDATE 322
650 #define CURTIME 323
651 #define CURRENT_USER 324
652 #define CURSOR_SYM 325
653 #define DATABASE 326
654 #define DATABASES 327
655 #define DATA_SYM 328
656 #define DATETIME_SYM 329
657 #define DATE_ADD_INTERVAL 330
658 #define DATE_SUB_INTERVAL 331
659 #define DATE_SYM 332
660 #define DAY_HOUR_SYM 333
661 #define DAY_MICROSECOND_SYM 334
662 #define DAY_MINUTE_SYM 335
663 #define DAY_SECOND_SYM 336
664 #define DAY_SYM 337
665 #define DEALLOCATE_SYM 338
666 #define DECIMAL_NUM 339
667 #define DECIMAL_SYM 340
668 #define DECLARE_SYM 341
669 #define DEFAULT 342
670 #define DEFINER 343
671 #define DELETE_SYM 344
672 #define DESC 345
673 #define DESCRIBE 346
674 #define DETERMINISTIC_SYM 347
675 #define DISABLE_SYM 348
676 #define DISCARD 349
677 #define DISTINCT 350
678 #define DIV_SYM 351
679 #define DOUBLE_SYM 352
680 #define DO_SYM 353
681 #define DROP 354
682 #define DUMPFILE 355
683 #define DUPLICATE_SYM 356
684 #define DYNAMIC_SYM 357
685 #define EACH_SYM 358
686 #define ELSE 359
687 #define ENABLE_SYM 360
688 #define ENCLOSED 361
689 #define END 362
690 #define ENDS_SYM 363
691 #define END_OF_INPUT 364
692 #define ENGINE_SYM 365
693 #define ENUM_SYM 366
694 #define EQUAL_SYM 367
695 #define ERRORS 368
696 #define ESCAPED 369
697 #define ESCAPE_SYM 370
698 #define EXCLUSIVE_SYM 371
699 #define EXECUTE_SYM 372
700 #define EXISTS 373
701 #define EXTENDED_SYM 374
702 #define EXTRACT_SYM 375
703 #define FALSE_SYM 376
704 #define FILE_SYM 377
705 #define FIRST_SYM 378
706 #define FIXED_SYM 379
707 #define FLOAT_NUM 380
708 #define FLUSH_SYM 381
709 #define FORCE_SYM 382
710 #define FOREIGN 383
711 #define FOR_SYM 384
712 #define FOUND_SYM 385
713 #define FRAC_SECOND_SYM 386
714 #define FROM 387
715 #define FULL 388
716 #define GE 389
717 #define GLOBAL_SYM 390
718 #define GROUP_CONCAT_SYM 391
719 #define GROUP_SYM 392
720 #define HASH_SYM 393
721 #define HAVING 394
722 #define HEX_NUM 395
723 #define HOUR_MICROSECOND_SYM 396
724 #define HOUR_MINUTE_SYM 397
725 #define HOUR_SECOND_SYM 398
726 #define HOUR_SYM 399
727 #define IDENT 400
728 #define IDENTIFIED_SYM 401
729 #define IDENTITY_SYM 402
730 #define IDENT_QUOTED 403
731 #define IF 404
732 #define IGNORE_SYM 405
733 #define IMPORT 406
734 #define INDEXES 407
735 #define INDEX_SYM 408
736 #define INFILE 409
737 #define INNER_SYM 410
738 #define INOUT_SYM 411
739 #define INSENSITIVE_SYM 412
740 #define INSERT 413
741 #define INTERVAL_SYM 414
742 #define INTO 415
743 #define INT_SYM 416
744 #define INVOKER 417
745 #define IN_SYM 418
746 #define IS 419
747 #define ISOLATION 420
748 #define ITERATE_SYM 421
749 #define IPV6_SYM 422
750 #define JOIN_SYM 423
751 #define KEYS 424
752 #define KEY_BLOCK_SIZE 425
753 #define KEY_SYM 426
754 #define KILL_SYM 427
755 #define LAST_SYM 428
756 #define LE 429
757 #define LEADING 430
758 #define LEFT 431
759 #define LEVEL_SYM 432
760 #define LEX_HOSTNAME 433
761 #define LIKE 434
762 #define LIMIT 435
763 #define LINES 436
764 #define LOAD 437
765 #define LOCAL_SYM 438
766 #define LOCKS_SYM 439
767 #define LOCK_SYM 440
768 #define LOGS_SYM 441
769 #define LONG_NUM 442
770 #define LONG_SYM 443
771 #define MATCH 444
772 #define MAX_SYM 445
773 #define MAX_VALUE_SYM 446
774 #define MEDIUM_SYM 447
775 #define MERGE_SYM 448
776 #define MICROSECOND_SYM 449
777 #define MINUTE_MICROSECOND_SYM 450
778 #define MINUTE_SECOND_SYM 451
779 #define MINUTE_SYM 452
780 #define MIN_SYM 453
781 #define MODE_SYM 454
782 #define MODIFIES_SYM 455
783 #define MODIFY_SYM 456
784 #define MOD_SYM 457
785 #define MONTH_SYM 458
786 #define NAMES_SYM 459
787 #define NAME_SYM 460
788 #define NATIONAL_SYM 461
789 #define NATURAL 462
790 #define NE 463
791 #define NEW_SYM 464
792 #define NEXT_SYM 465
793 #define NONE_SYM 466
794 #define NOT_SYM 467
795 #define NOW_SYM 468
796 #define NO_SYM 469
797 #define NULL_SYM 470
798 #define NUM 471
799 #define NUMERIC_SYM 472
800 #define OFFLINE_SYM 473
801 #define OFFSET_SYM 474
802 #define ON 475
803 #define ONE_SHOT_SYM 476
804 #define ONE_SYM 477
805 #define ONLINE_SYM 478
806 #define OPEN_SYM 479
807 #define OPTIMIZE 480
808 #define OPTION 481
809 #define OPTIONALLY 482
810 #define ORDER_SYM 483
811 #define OR_SYM 484
812 #define OUTER 485
813 #define OUTFILE 486
814 #define OUT_SYM 487
815 #define PARTIAL 488
816 #define POSITION_SYM 489
817 #define PRECISION 490
818 #define PREV_SYM 491
819 #define PRIMARY_SYM 492
820 #define PROCESS 493
821 #define PROCESSLIST_SYM 494
822 #define QUARTER_SYM 495
823 #define QUERY_SYM 496
824 #define RANGE_SYM 497
825 #define READS_SYM 498
826 #define READ_SYM 499
827 #define READ_WRITE_SYM 500
828 #define REAL 501
829 #define REDUNDANT_SYM 502
830 #define REFERENCES 503
831 #define REGEXP_SYM 504
832 #define RELEASE_SYM 505
833 #define RENAME 506
834 #define REPEATABLE_SYM 507
835 #define REPEAT_SYM 508
836 #define REPLACE 509
837 #define REPLICATE 510
838 #define REPLICATION 511
839 #define RESTRICT 512
840 #define RETURNS_SYM 513
841 #define RETURN_SYM 514
842 #define REVOKE 515
843 #define RIGHT 516
844 #define ROLLBACK_SYM 517
845 #define ROLLUP_SYM 518
846 #define ROUTINE_SYM 519
847 #define ROWS_SYM 520
848 #define ROW_FORMAT_SYM 521
849 #define ROW_SYM 522
850 #define SAVEPOINT_SYM 523
851 #define SECOND_MICROSECOND_SYM 524
852 #define SECOND_SYM 525
853 #define SECURITY_SYM 526
854 #define SELECT_SYM 527
855 #define SENSITIVE_SYM 528
856 #define SEPARATOR_SYM 529
857 #define SERIALIZABLE_SYM 530
858 #define SERIAL_SYM 531
859 #define SERVER_SYM 532
860 #define SESSION_SYM 533
861 #define SET_SYM 534
862 #define SET_VAR 535
863 #define SHARE_SYM 536
864 #define SHOW 537
865 #define SIGNED_SYM 538
866 #define SIMPLE_SYM 539
867 #define SNAPSHOT_SYM 540
868 #define SPECIFIC_SYM 541
869 #define SQLEXCEPTION_SYM 542
870 #define SQLSTATE_SYM 543
871 #define SQLWARNING_SYM 544
872 #define SQL_BIG_RESULT 545
873 #define SQL_BUFFER_RESULT 546
874 #define SQL_CALC_FOUND_ROWS 547
875 #define SQL_SMALL_RESULT 548
876 #define SQL_SYM 549
877 #define STARTING 550
878 #define START_SYM 551
879 #define STATUS_SYM 552
880 #define STDDEV_SAMP_SYM 553
881 #define STD_SYM 554
882 #define STOP_SYM 555
883 #define STORED_SYM 556
884 #define STRAIGHT_JOIN 557
885 #define STRING_SYM 558
886 #define SUBDATE_SYM 559
887 #define SUBJECT_SYM 560
888 #define SUBSTRING 561
889 #define SUM_SYM 562
890 #define SUSPEND_SYM 563
891 #define SYSDATE 564
892 #define TABLES 565
893 #define TABLESPACE 566
894 #define TABLE_REF_PRIORITY 567
895 #define TABLE_SYM 568
896 #define TEMPORARY_SYM 569
897 #define TERMINATED 570
898 #define TEXT_STRING 571
899 #define TEXT_SYM 572
900 #define THEN_SYM 573
901 #define TIMESTAMP_ADD 574
902 #define TIMESTAMP_DIFF 575
903 #define TIMESTAMP_SYM 576
904 #define TIME_SYM 577
905 #define TO_SYM 578
906 #define TRAILING 579
907 #define TRANSACTION_SYM 580
908 #define TRIM 581
909 #define TRUE_SYM 582
910 #define TRUNCATE_SYM 583
911 #define TYPE_SYM 584
912 #define ULONGLONG_NUM 585
913 #define UNCOMMITTED_SYM 586
914 #define UNDOFILE_SYM 587
915 #define UNDO_SYM 588
916 #define UNION_SYM 589
917 #define UNIQUE_SYM 590
918 #define UNKNOWN_SYM 591
919 #define UNLOCK_SYM 592
920 #define UNSIGNED_SYM 593
921 #define UPDATE_SYM 594
922 #define USAGE 595
923 #define USER 596
924 #define USE_SYM 597
925 #define USING 598
926 #define UTC_DATE_SYM 599
927 #define UTC_TIME_SYM 600
928 #define UTC_TIMESTAMP_SYM 601
929 #define UTF8_SYM 602
930 #define UUID_SYM 603
931 #define VALUES 604
932 #define VALUE_SYM 605
933 #define VARBINARY 606
934 #define VARCHAR_SYM 607
935 #define VARIABLES 608
936 #define VARIANCE_SYM 609
937 #define VARYING 610
938 #define VAR_SAMP_SYM 611
939 #define WAIT_SYM 612
940 #define WARNINGS 613
941 #define WEEK_SYM 614
942 #define WHEN_SYM 615
943 #define WHERE 616
944 #define WITH 617
945 #define WITH_ROLLUP_SYM 618
946 #define WORK_SYM 619
947 #define WRITE_SYM 620
948 #define XOR 621
949 #define YEAR_MONTH_SYM 622
950 #define YEAR_SYM 623
951 #define ZEROFILL_SYM 624
952 #define LESS_THAN 625
953 #define GREATER_THAN 626
954 #define CONCAT 627
955 #define SHIFT_RIGHT 628
956 #define SHIFT_LEFT 629
957 #define UMINUS 630
958 
959 
960 
961 
962 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
963 typedef union
964 /* Line 293 of yacc.c */
965 #line 127 "drizzled/sql_yacc.yy"
967 {
968 
969 /* Line 293 of yacc.c */
970 #line 127 "drizzled/sql_yacc.yy"
971 
972  bool boolean;
973  int num;
974  unsigned long ulong_num;
975  uint64_t ulonglong_number;
976  int64_t longlong_number;
977  drizzled::lex_string_t lex_str;
978  drizzled::lex_string_t *lex_str_ptr;
979  drizzled::LEX_SYMBOL symbol;
980  drizzled::Table_ident *table;
981  const char* simple_string;
982  drizzled::Item *item;
983  drizzled::Item_num *item_num;
986  drizzled::String *string;
987  drizzled::Key_part_spec *key_part;
988  const drizzled::plugin::Function *udf;
989  drizzled::TableList *table_list;
990  drizzled::enum_field_types field_val;
992  drizzled::sql_var_t var_type;
993  drizzled::Key::Keytype key_type;
994  drizzled::ha_key_alg key_alg;
995  drizzled::ha_rkey_function ha_rkey_mode;
996  drizzled::enum_tx_isolation tx_isolation;
997  drizzled::Cast_target cast_type;
998  const drizzled::charset_info_st *charset;
999  drizzled::thr_lock_type lock_type;
1000  drizzled::interval_type interval, interval_time_st;
1001  drizzled::type::timestamp_t date_time_type;
1002  drizzled::Select_Lex *select_lex;
1003  drizzled::chooser_compare_func_creator boolfunc2creator;
1004  drizzled::LEX *lex;
1005  drizzled::index_hint_type index_hint;
1006  drizzled::enum_filetype filetype;
1007  drizzled::message::Table::ForeignKeyConstraint::ForeignKeyOption m_fk_option;
1008  drizzled::execute_string_t execute_string;
1009 
1010 
1011 
1012 /* Line 293 of yacc.c */
1013 #line 1014 "drizzled/sql_yacc.cc"
1014 } YYSTYPE;
1015 # define YYSTYPE_IS_TRIVIAL 1
1016 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
1017 # define YYSTYPE_IS_DECLARED 1
1018 #endif
1019 
1020 
1021 /* Copy the second part of user declarations. */
1022 
1023 /* Line 343 of yacc.c */
1024 #line 167 "drizzled/sql_yacc.yy"
1025 
1026 namespace drizzled
1027 {
1028 bool my_yyoverflow(short **a, union ParserType **b, unsigned long *yystacksize);
1029 }
1030 
1031 
1032 /* Line 343 of yacc.c */
1033 #line 1034 "drizzled/sql_yacc.cc"
1034 
1035 #ifdef short
1036 # undef short
1037 #endif
1038 
1039 #ifdef YYTYPE_UINT8
1040 typedef YYTYPE_UINT8 yytype_uint8;
1041 #else
1042 typedef unsigned char yytype_uint8;
1043 #endif
1044 
1045 #ifdef YYTYPE_INT8
1046 typedef YYTYPE_INT8 yytype_int8;
1047 #elif (defined __STDC__ || defined __C99__FUNC__ \
1048  || defined __cplusplus || defined _MSC_VER)
1049 typedef signed char yytype_int8;
1050 #else
1051 typedef short int yytype_int8;
1052 #endif
1053 
1054 #ifdef YYTYPE_UINT16
1055 typedef YYTYPE_UINT16 yytype_uint16;
1056 #else
1057 typedef unsigned short int yytype_uint16;
1058 #endif
1059 
1060 #ifdef YYTYPE_INT16
1061 typedef YYTYPE_INT16 yytype_int16;
1062 #else
1063 typedef short int yytype_int16;
1064 #endif
1065 
1066 #ifndef YYSIZE_T
1067 # ifdef __SIZE_TYPE__
1068 # define YYSIZE_T __SIZE_TYPE__
1069 # elif defined size_t
1070 # define YYSIZE_T size_t
1071 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
1072  || defined __cplusplus || defined _MSC_VER)
1073 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1074 # define YYSIZE_T size_t
1075 # else
1076 # define YYSIZE_T unsigned int
1077 # endif
1078 #endif
1079 
1080 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1081 
1082 #ifndef YY_
1083 # if defined YYENABLE_NLS && YYENABLE_NLS
1084 # if ENABLE_NLS
1085 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1086 # define YY_(msgid) dgettext ("bison-runtime", msgid)
1087 # endif
1088 # endif
1089 # ifndef YY_
1090 # define YY_(msgid) msgid
1091 # endif
1092 #endif
1093 
1094 /* Suppress unused-variable warnings by "using" E. */
1095 #if ! defined lint || defined __GNUC__
1096 # define YYUSE(e) ((void) (e))
1097 #else
1098 # define YYUSE(e) /* empty */
1099 #endif
1100 
1101 /* Identity function, used to suppress warnings about constant conditions. */
1102 #ifndef lint
1103 # define YYID(n) (n)
1104 #else
1105 #if (defined __STDC__ || defined __C99__FUNC__ \
1106  || defined __cplusplus || defined _MSC_VER)
1107 static int
1108 YYID (int yyi)
1109 #else
1110 static int
1111 YYID (yyi)
1112  int yyi;
1113 #endif
1114 {
1115  return yyi;
1116 }
1117 #endif
1118 
1119 #if ! defined yyoverflow || YYERROR_VERBOSE
1120 
1121 /* The parser invokes alloca or malloc; define the necessary symbols. */
1122 
1123 # ifdef YYSTACK_USE_ALLOCA
1124 # if YYSTACK_USE_ALLOCA
1125 # ifdef __GNUC__
1126 # define YYSTACK_ALLOC __builtin_alloca
1127 # elif defined __BUILTIN_VA_ARG_INCR
1128 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1129 # elif defined _AIX
1130 # define YYSTACK_ALLOC __alloca
1131 # elif defined _MSC_VER
1132 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1133 # define alloca _alloca
1134 # else
1135 # define YYSTACK_ALLOC alloca
1136 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1137  || defined __cplusplus || defined _MSC_VER)
1138 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1139 # ifndef EXIT_SUCCESS
1140 # define EXIT_SUCCESS 0
1141 # endif
1142 # endif
1143 # endif
1144 # endif
1145 # endif
1146 
1147 # ifdef YYSTACK_ALLOC
1148  /* Pacify GCC's `empty if-body' warning. */
1149 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
1150 # ifndef YYSTACK_ALLOC_MAXIMUM
1151  /* The OS might guarantee only one guard page at the bottom of the stack,
1152  and a page size can be as small as 4096 bytes. So we cannot safely
1153  invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
1154  to allow for a few compiler-allocated temporary stack slots. */
1155 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1156 # endif
1157 # else
1158 # define YYSTACK_ALLOC YYMALLOC
1159 # define YYSTACK_FREE YYFREE
1160 # ifndef YYSTACK_ALLOC_MAXIMUM
1161 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1162 # endif
1163 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1164  && ! ((defined YYMALLOC || defined malloc) \
1165  && (defined YYFREE || defined free)))
1166 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1167 # ifndef EXIT_SUCCESS
1168 # define EXIT_SUCCESS 0
1169 # endif
1170 # endif
1171 # ifndef YYMALLOC
1172 # define YYMALLOC malloc
1173 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1174  || defined __cplusplus || defined _MSC_VER)
1175 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1176 # endif
1177 # endif
1178 # ifndef YYFREE
1179 # define YYFREE free
1180 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1181  || defined __cplusplus || defined _MSC_VER)
1182 void free (void *); /* INFRINGES ON USER NAME SPACE */
1183 # endif
1184 # endif
1185 # endif
1186 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
1187 
1188 
1189 #if (! defined yyoverflow \
1190  && (! defined __cplusplus \
1191  || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1192 
1193 /* A type that is properly aligned for any stack member. */
1194 union yyalloc
1195 {
1196  yytype_int16 yyss_alloc;
1197  YYSTYPE yyvs_alloc;
1198 };
1199 
1200 /* The size of the maximum gap between one aligned stack and the next. */
1201 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1202 
1203 /* The size of an array large to enough to hold all stacks, each with
1204  N elements. */
1205 # define YYSTACK_BYTES(N) \
1206  ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1207  + YYSTACK_GAP_MAXIMUM)
1208 
1209 # define YYCOPY_NEEDED 1
1210 
1211 /* Relocate STACK from its old location to the new one. The
1212  local variables YYSIZE and YYSTACKSIZE give the old and new number of
1213  elements in the stack, and YYPTR gives the new location of the
1214  stack. Advance YYPTR to a properly aligned location for the next
1215  stack. */
1216 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1217  do \
1218  { \
1219  YYSIZE_T yynewbytes; \
1220  YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1221  Stack = &yyptr->Stack_alloc; \
1222  yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1223  yyptr += yynewbytes / sizeof (*yyptr); \
1224  } \
1225  while (YYID (0))
1226 
1227 #endif
1228 
1229 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1230 /* Copy COUNT objects from FROM to TO. The source and destination do
1231  not overlap. */
1232 # ifndef YYCOPY
1233 # if defined __GNUC__ && 1 < __GNUC__
1234 # define YYCOPY(To, From, Count) \
1235  __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1236 # else
1237 # define YYCOPY(To, From, Count) \
1238  do \
1239  { \
1240  YYSIZE_T yyi; \
1241  for (yyi = 0; yyi < (Count); yyi++) \
1242  (To)[yyi] = (From)[yyi]; \
1243  } \
1244  while (YYID (0))
1245 # endif
1246 # endif
1247 #endif /* !YYCOPY_NEEDED */
1248 
1249 /* YYFINAL -- State number of the termination state. */
1250 #define YYFINAL 280
1251 /* YYLAST -- Last index in YYTABLE. */
1252 #define YYLAST 15107
1253 
1254 /* YYNTOKENS -- Number of terminals. */
1255 #define YYNTOKENS 393
1256 /* YYNNTS -- Number of nonterminals. */
1257 #define YYNNTS 425
1258 /* YYNRULES -- Number of rules. */
1259 #define YYNRULES 1229
1260 /* YYNRULES -- Number of states. */
1261 #define YYNSTATES 2122
1262 
1263 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
1264 #define YYUNDEFTOK 2
1265 #define YYMAXUTOK 630
1266 
1267 #define YYTRANSLATE(YYX) \
1268  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1269 
1270 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
1271 static const yytype_uint16 yytranslate[] =
1272 {
1273  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1274  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1275  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1276  2, 2, 2, 2, 2, 2, 2, 382, 375, 2,
1277  386, 387, 380, 379, 390, 378, 391, 381, 2, 2,
1278  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1279  2, 370, 2, 2, 392, 2, 2, 2, 2, 2,
1280  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1281  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1282  2, 2, 2, 2, 383, 2, 2, 2, 2, 2,
1283  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1284  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1285  2, 2, 2, 388, 374, 389, 384, 2, 2, 2,
1286  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1287  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1288  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1289  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1290  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1291  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1292  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1293  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1294  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1295  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1296  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1297  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1298  2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1299  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1300  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1301  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1302  35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1303  45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1304  55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1305  65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1306  75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1307  85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1308  95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1309  105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1310  115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1311  125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1312  135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1313  145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1314  155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1315  165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1316  175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1317  185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1318  195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1319  205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1320  215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1321  225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1322  235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1323  245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1324  255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1325  265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1326  275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1327  285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1328  295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1329  305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1330  315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1331  325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1332  335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1333  345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1334  355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1335  365, 366, 367, 368, 369, 371, 372, 373, 376, 377,
1336  385
1337 };
1338 
1339 #if YYDEBUG
1340 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1341  YYRHS. */
1342 static const yytype_uint16 yyprhs[] =
1343 {
1344  0, 0, 3, 5, 8, 10, 12, 14, 16, 18,
1345  20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
1346  40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
1347  60, 62, 64, 68, 69, 77, 78, 92, 93, 100,
1348  106, 107, 113, 118, 121, 124, 125, 126, 131, 132,
1349  139, 142, 144, 145, 146, 153, 154, 156, 159, 163,
1350  165, 167, 170, 174, 176, 180, 184, 187, 191, 195,
1351  199, 200, 202, 203, 207, 208, 210, 212, 215, 217,
1352  220, 224, 226, 230, 234, 238, 242, 246, 249, 253,
1353  257, 261, 265, 269, 271, 273, 276, 278, 280, 282,
1354  287, 292, 297, 299, 301, 303, 305, 307, 309, 311,
1355  313, 316, 318, 322, 324, 326, 329, 332, 340, 349,
1356  358, 361, 364, 365, 367, 370, 371, 373, 376, 377,
1357  382, 385, 391, 394, 397, 400, 406, 409, 410, 417,
1358  423, 426, 429, 432, 435, 439, 443, 447, 450, 453,
1359  456, 458, 461, 463, 465, 470, 475, 478, 481, 485,
1360  486, 490, 492, 498, 499, 503, 504, 506, 508, 509,
1361  513, 514, 516, 517, 521, 523, 525, 528, 531, 533,
1362  536, 537, 540, 544, 547, 548, 551, 555, 558, 559,
1363  561, 564, 566, 568, 571, 574, 576, 577, 579, 582,
1364  584, 586, 588, 592, 595, 597, 598, 600, 603, 605,
1365  607, 611, 614, 619, 621, 622, 625, 627, 629, 631,
1366  632, 634, 635, 637, 643, 644, 648, 652, 654, 655,
1367  658, 661, 664, 665, 669, 673, 680, 687, 689, 691,
1368  694, 697, 700, 702, 705, 708, 710, 712, 713, 715,
1369  717, 719, 721, 722, 724, 725, 727, 730, 731, 733,
1370  735, 738, 741, 743, 747, 750, 752, 754, 759, 762,
1371  764, 769, 770, 772, 773, 776, 778, 782, 783, 791,
1372  792, 798, 799, 802, 805, 807, 808, 810, 812, 814,
1373  818, 821, 825, 828, 833, 834, 841, 842, 843, 852,
1374  856, 861, 865, 869, 872, 875, 882, 888, 892, 896,
1375  898, 900, 902, 903, 905, 906, 908, 909, 912, 914,
1376  915, 917, 919, 923, 924, 928, 929, 934, 935, 940,
1377  941, 946, 948, 952, 956, 958, 961, 966, 969, 973,
1378  976, 980, 981, 985, 986, 987, 994, 997, 999, 1001,
1379  1004, 1007, 1015, 1016, 1018, 1021, 1023, 1025, 1027, 1029,
1380  1031, 1033, 1035, 1037, 1039, 1041, 1042, 1045, 1050, 1054,
1381  1056, 1058, 1062, 1067, 1068, 1069, 1070, 1073, 1076, 1078,
1382  1080, 1081, 1084, 1088, 1092, 1096, 1099, 1103, 1108, 1112,
1383  1117, 1121, 1126, 1128, 1132, 1137, 1141, 1145, 1152, 1154,
1384  1160, 1167, 1173, 1181, 1188, 1197, 1203, 1210, 1215, 1221,
1385  1225, 1230, 1232, 1236, 1240, 1244, 1248, 1252, 1256, 1262,
1386  1268, 1272, 1276, 1280, 1284, 1288, 1292, 1294, 1296, 1298,
1387  1300, 1302, 1304, 1306, 1308, 1310, 1312, 1314, 1316, 1318,
1388  1320, 1324, 1326, 1328, 1330, 1334, 1337, 1340, 1343, 1347,
1389  1351, 1357, 1364, 1369, 1374, 1377, 1384, 1390, 1397, 1402,
1390  1407, 1413, 1418, 1421, 1426, 1431, 1436, 1447, 1454, 1463,
1391  1470, 1475, 1480, 1487, 1492, 1497, 1502, 1510, 1518, 1526,
1392  1533, 1540, 1547, 1554, 1558, 1563, 1570, 1579, 1582, 1585,
1393  1594, 1603, 1610, 1613, 1618, 1625, 1632, 1641, 1650, 1657,
1394  1666, 1673, 1676, 1681, 1690, 1699, 1702, 1705, 1708, 1713,
1395  1718, 1722, 1726, 1732, 1741, 1747, 1752, 1759, 1764, 1771,
1396  1780, 1787, 1792, 1796, 1800, 1807, 1808, 1814, 1815, 1817,
1397  1819, 1823, 1828, 1833, 1839, 1845, 1850, 1851, 1852, 1860,
1398  1865, 1871, 1876, 1882, 1887, 1892, 1897, 1902, 1907, 1913,
1399  1914, 1923, 1924, 1928, 1932, 1934, 1939, 1940, 1942, 1943,
1400  1946, 1947, 1949, 1950, 1954, 1957, 1959, 1961, 1964, 1966,
1401  1968, 1971, 1974, 1976, 1978, 1980, 1983, 1985, 1989, 1990,
1402  1992, 1993, 1996, 2001, 2007, 2009, 2011, 2013, 2015, 2020,
1403  2022, 2026, 2030, 2034, 2035, 2042, 2043, 2050, 2051, 2060,
1404  2065, 2066, 2075, 2076, 2087, 2094, 2095, 2104, 2105, 2116,
1405  2123, 2125, 2128, 2131, 2132, 2137, 2141, 2147, 2151, 2152,
1406  2153, 2162, 2164, 2165, 2166, 2173, 2174, 2178, 2179, 2180,
1407  2186, 2187, 2189, 2190, 2192, 2193, 2196, 2200, 2204, 2206,
1408  2208, 2209, 2217, 2218, 2226, 2228, 2231, 2232, 2233, 2236,
1409  2237, 2240, 2241, 2243, 2245, 2247, 2249, 2253, 2255, 2259,
1410  2261, 2263, 2265, 2267, 2269, 2271, 2273, 2275, 2277, 2279,
1411  2281, 2283, 2285, 2287, 2289, 2291, 2293, 2295, 2297, 2299,
1412  2301, 2303, 2305, 2306, 2308, 2309, 2312, 2313, 2315, 2316,
1413  2317, 2321, 2322, 2323, 2327, 2330, 2331, 2332, 2337, 2342,
1414  2345, 2346, 2348, 2352, 2356, 2358, 2361, 2362, 2364, 2365,
1415  2370, 2375, 2378, 2379, 2381, 2383, 2384, 2386, 2387, 2389,
1416  2392, 2394, 2398, 2402, 2404, 2406, 2408, 2409, 2412, 2414,
1417  2416, 2418, 2420, 2422, 2424, 2426, 2428, 2430, 2432, 2434,
1418  2435, 2438, 2442, 2444, 2447, 2448, 2452, 2453, 2459, 2462,
1419  2464, 2468, 2474, 2475, 2483, 2488, 2490, 2494, 2496, 2497,
1420  2500, 2501, 2503, 2509, 2511, 2514, 2515, 2519, 2520, 2522,
1421  2523, 2525, 2526, 2527, 2535, 2536, 2537, 2543, 2546, 2548,
1422  2550, 2552, 2556, 2561, 2562, 2566, 2570, 2572, 2575, 2578,
1423  2579, 2583, 2584, 2590, 2594, 2596, 2600, 2602, 2606, 2608,
1424  2610, 2611, 2613, 2614, 2619, 2620, 2622, 2626, 2628, 2630,
1425  2632, 2633, 2634, 2641, 2642, 2652, 2656, 2658, 2662, 2666,
1426  2668, 2672, 2673, 2682, 2683, 2685, 2689, 2690, 2692, 2693,
1427  2697, 2700, 2704, 2708, 2713, 2719, 2725, 2731, 2737, 2740,
1428  2743, 2747, 2750, 2754, 2756, 2760, 2765, 2766, 2769, 2771,
1429  2773, 2774, 2777, 2780, 2781, 2786, 2787, 2792, 2794, 2796,
1430  2797, 2799, 2800, 2802, 2804, 2805, 2809, 2813, 2815, 2816,
1431  2820, 2825, 2827, 2829, 2832, 2833, 2835, 2839, 2840, 2842,
1432  2844, 2847, 2848, 2849, 2850, 2851, 2870, 2872, 2873, 2875,
1433  2876, 2878, 2880, 2881, 2883, 2885, 2887, 2890, 2893, 2894,
1434  2897, 2900, 2902, 2906, 2911, 2915, 2919, 2920, 2923, 2926,
1435  2928, 2932, 2936, 2937, 2941, 2943, 2945, 2946, 2950, 2953,
1436  2957, 2959, 2961, 2964, 2965, 2968, 2970, 2973, 2975, 2977,
1437  2979, 2981, 2984, 2987, 2989, 2991, 2993, 2995, 2997, 2999,
1438  3001, 3004, 3007, 3009, 3011, 3013, 3015, 3017, 3020, 3023,
1439  3025, 3027, 3029, 3031, 3033, 3035, 3038, 3041, 3043, 3045,
1440  3047, 3049, 3051, 3053, 3055, 3059, 3065, 3067, 3069, 3071,
1441  3075, 3080, 3086, 3088, 3094, 3098, 3101, 3103, 3107, 3110,
1442  3112, 3114, 3116, 3118, 3120, 3122, 3124, 3126, 3128, 3130,
1443  3132, 3134, 3136, 3138, 3140, 3142, 3144, 3146, 3148, 3150,
1444  3152, 3154, 3156, 3158, 3160, 3162, 3164, 3166, 3168, 3170,
1445  3172, 3174, 3176, 3178, 3180, 3182, 3184, 3186, 3188, 3190,
1446  3192, 3194, 3196, 3198, 3200, 3202, 3204, 3206, 3208, 3210,
1447  3212, 3214, 3216, 3218, 3220, 3222, 3224, 3226, 3228, 3230,
1448  3232, 3234, 3236, 3238, 3240, 3242, 3244, 3246, 3248, 3250,
1449  3252, 3254, 3256, 3258, 3260, 3262, 3264, 3266, 3268, 3270,
1450  3272, 3274, 3276, 3278, 3280, 3282, 3284, 3286, 3288, 3290,
1451  3292, 3294, 3296, 3298, 3300, 3302, 3304, 3306, 3308, 3310,
1452  3312, 3314, 3316, 3318, 3320, 3322, 3324, 3326, 3328, 3330,
1453  3332, 3334, 3336, 3338, 3340, 3342, 3344, 3346, 3348, 3350,
1454  3352, 3354, 3356, 3358, 3360, 3362, 3364, 3366, 3368, 3370,
1455  3372, 3374, 3376, 3378, 3380, 3382, 3384, 3386, 3388, 3390,
1456  3392, 3394, 3396, 3398, 3400, 3402, 3404, 3406, 3408, 3410,
1457  3412, 3414, 3416, 3418, 3420, 3422, 3424, 3426, 3428, 3430,
1458  3432, 3434, 3436, 3438, 3439, 3444, 3445, 3447, 3449, 3453,
1459  3454, 3457, 3459, 3461, 3463, 3465, 3466, 3468, 3469, 3471,
1460  3473, 3475, 3476, 3479, 3482, 3485, 3487, 3490, 3495, 3501,
1461  3506, 3513, 3515, 3517, 3519, 3521, 3523, 3525, 3528, 3531,
1462  3534, 3536, 3538, 3540, 3542, 3544, 3546, 3548, 3550, 3551,
1463  3555, 3556, 3560, 3561, 3563, 3564, 3568, 3571, 3572, 3574,
1464  3577, 3578, 3580, 3585, 3590, 3596, 3599, 3603, 3605, 3606,
1465  3608, 3609, 3614, 3615, 3617, 3619, 3620, 3623, 3626, 3628,
1466  3629, 3631, 3633, 3636, 3640, 3642, 3643, 3649, 3653, 3654
1467 };
1468 
1469 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
1470 static const yytype_int16 yyrhs[] =
1471 {
1472  394, 0, -1, 109, -1, 395, 109, -1, 396, -1,
1473  793, -1, 493, -1, 510, -1, 512, -1, 799, -1,
1474  397, -1, 698, -1, 709, -1, 655, -1, 661, -1,
1475  715, -1, 666, -1, 721, -1, 724, -1, 802, -1,
1476  514, -1, 669, -1, 800, -1, 801, -1, 518, -1,
1477  772, -1, 703, -1, 508, -1, 701, -1, 791, -1,
1478  692, -1, 723, -1, 64, 38, 761, -1, -1, 64,
1479  414, 313, 415, 759, 398, 401, -1, -1, 64, 497,
1480  399, 480, 153, 766, 482, 220, 759, 386, 488, 387,
1481  483, -1, -1, 64, 71, 415, 760, 400, 411, -1,
1482  386, 429, 387, 416, 403, -1, -1, 386, 407, 387,
1483  402, 807, -1, 386, 406, 387, 416, -1, 406, 416,
1484  -1, 416, 403, -1, -1, -1, 732, 407, 404, 804,
1485  -1, -1, 732, 386, 407, 387, 405, 807, -1, 179,
1486  759, -1, 408, -1, -1, -1, 272, 409, 529, 535,
1487  410, 428, -1, -1, 425, -1, 425, 412, -1, 425,
1488  390, 412, -1, 412, -1, 413, -1, 413, 412, -1,
1489  413, 390, 412, -1, 767, -1, 255, 370, 327, -1,
1490  255, 370, 121, -1, 88, 763, -1, 88, 69, 540,
1491  -1, 767, 370, 767, -1, 767, 370, 646, -1, -1,
1492  314, -1, -1, 149, 212, 118, -1, -1, 418, -1,
1493  419, -1, 419, 417, -1, 419, -1, 419, 418, -1,
1494  419, 390, 418, -1, 420, -1, 110, 370, 767, -1,
1495  51, 684, 763, -1, 18, 684, 646, -1, 255, 370,
1496  327, -1, 255, 370, 121, -1, 88, 763, -1, 88,
1497  69, 540, -1, 266, 370, 427, -1, 122, 370, 763,
1498  -1, 767, 370, 768, -1, 767, 370, 646, -1, 423,
1499  -1, 424, -1, 42, 279, -1, 41, -1, 347, -1,
1500  87, -1, 467, 421, 684, 422, -1, 467, 47, 684,
1501  466, -1, 467, 47, 684, 466, -1, 54, -1, 55,
1502  -1, 87, -1, 102, -1, 124, -1, 247, -1, 426,
1503  -1, 640, -1, 528, 534, -1, 430, -1, 429, 390,
1504  430, -1, 431, -1, 432, -1, 437, 433, -1, 437,
1505  469, -1, 475, 490, 482, 386, 488, 387, 483, -1,
1506  435, 476, 490, 482, 386, 488, 387, 483, -1, 435,
1507  128, 171, 490, 386, 488, 387, 469, -1, 436, 433,
1508  -1, 435, 434, -1, -1, 434, -1, 44, 541, -1,
1509  -1, 436, -1, 60, 490, -1, -1, 758, 438, 439,
1510  464, -1, 321, 461, -1, 321, 386, 216, 387, 461,
1511  -1, 74, 461, -1, 442, 458, -1, 42, 455, -1,
1512  441, 386, 216, 387, 455, -1, 317, 455, -1, -1,
1513  111, 440, 386, 492, 387, 455, -1, 351, 386, 216,
1514  387, 453, -1, 443, 458, -1, 77, 453, -1, 322,
1515  453, -1, 27, 453, -1, 85, 444, 458, -1, 217,
1516  444, 458, -1, 124, 444, 458, -1, 348, 453, -1,
1517  167, 453, -1, 28, 454, -1, 276, -1, 42, 355,
1518  -1, 42, -1, 352, -1, 161, 448, 447, 449, -1,
1519  23, 448, 447, 449, -1, 246, 450, -1, 97, 450,
1520  -1, 97, 235, 450, -1, -1, 386, 216, 387, -1,
1521  445, -1, 386, 216, 390, 216, 387, -1, -1, 386,
1522  216, 387, -1, -1, 283, -1, 338, -1, -1, 386,
1523  216, 387, -1, -1, 369, -1, -1, 386, 216, 387,
1524  -1, 445, -1, 215, -1, 212, 215, -1, 468, 171,
1525  -1, 335, -1, 335, 171, -1, -1, 453, 451, -1,
1526  453, 87, 747, -1, 453, 452, -1, -1, 454, 451,
1527  -1, 454, 87, 750, -1, 454, 452, -1, -1, 456,
1528  -1, 456, 457, -1, 457, -1, 451, -1, 87, 747,
1529  -1, 47, 465, -1, 452, -1, -1, 459, -1, 459,
1530  460, -1, 460, -1, 451, -1, 18, -1, 276, 87,
1531  350, -1, 87, 749, -1, 452, -1, -1, 462, -1,
1532  462, 463, -1, 463, -1, 451, -1, 87, 213, 540,
1533  -1, 87, 751, -1, 220, 339, 213, 540, -1, 452,
1534  -1, -1, 51, 763, -1, 767, -1, 465, -1, 87,
1535  -1, -1, 87, -1, -1, 237, -1, 248, 759, 470,
1536  472, 473, -1, -1, 386, 471, 387, -1, 471, 390,
1537  766, -1, 766, -1, -1, 189, 133, -1, 189, 233,
1538  -1, 189, 284, -1, -1, 220, 339, 474, -1, 220,
1539  89, 474, -1, 220, 339, 474, 220, 89, 474, -1,
1540  220, 89, 474, 220, 339, 474, -1, 257, -1, 34,
1541  -1, 279, 215, -1, 214, 4, -1, 279, 87, -1,
1542  477, -1, 237, 171, -1, 335, 478, -1, 171, -1,
1543  153, -1, -1, 477, -1, 169, -1, 153, -1, 152,
1544  -1, -1, 335, -1, -1, 481, -1, 481, 485, -1,
1545  -1, 484, -1, 486, -1, 484, 486, -1, 343, 487,
1546  -1, 485, -1, 170, 684, 645, -1, 51, 763, -1,
1547  31, -1, 138, -1, 488, 390, 489, 638, -1, 489,
1548  638, -1, 766, -1, 766, 386, 216, 387, -1, -1,
1549  758, -1, -1, 391, 766, -1, 746, -1, 492, 390,
1550  746, -1, -1, 10, 497, 505, 313, 759, 494, 496,
1551  -1, -1, 10, 71, 760, 495, 425, -1, -1, 94,
1552  311, -1, 151, 311, -1, 498, -1, -1, 223, -1,
1553  218, -1, 500, -1, 498, 390, 500, -1, 6, 504,
1554  -1, 499, 431, 506, -1, 6, 432, -1, 499, 386,
1555  429, 387, -1, -1, 40, 504, 758, 501, 437, 506,
1556  -1, -1, -1, 201, 504, 758, 502, 439, 464, 503,
1557  506, -1, 99, 504, 758, -1, 99, 128, 171, 490,
1558  -1, 99, 237, 171, -1, 99, 477, 758, -1, 93,
1559  169, -1, 105, 169, -1, 10, 504, 758, 279, 87,
1560  747, -1, 10, 504, 758, 99, 87, -1, 251, 507,
1561  759, -1, 62, 323, 466, -1, 417, -1, 127, -1,
1562  631, -1, -1, 50, -1, -1, 150, -1, -1, 7,
1563  766, -1, 123, -1, -1, 323, -1, 14, -1, 296,
1564  325, 509, -1, -1, 362, 59, 285, -1, -1, 11,
1565  790, 511, 657, -1, -1, 44, 790, 513, 657, -1,
1566  -1, 251, 790, 515, 516, -1, 517, -1, 516, 390,
1567  517, -1, 759, 323, 759, -1, 519, -1, 272, 522,
1568  -1, 386, 520, 387, 807, -1, 272, 524, -1, 386,
1569  520, 387, -1, 272, 592, -1, 386, 521, 387, -1,
1570  -1, 524, 523, 804, -1, -1, -1, 525, 529, 535,
1571  526, 527, 534, -1, 634, 640, -1, 651, -1, 528,
1572  -1, 651, 528, -1, 528, 651, -1, 132, 574, 623,
1573  628, 625, 634, 640, -1, -1, 530, -1, 530, 533,
1574  -1, 533, -1, 95, -1, 9, -1, 293, -1, 290,
1575  -1, 302, -1, 291, -1, 532, -1, 531, -1, 292,
1576  -1, -1, 129, 339, -1, 185, 163, 281, 199, -1,
1577  535, 390, 536, -1, 536, -1, 380, -1, 537, 754,
1578  538, -1, 537, 541, 538, 539, -1, -1, -1, -1,
1579  14, 766, -1, 14, 763, -1, 766, -1, 763, -1,
1580  -1, 386, 387, -1, 541, 229, 541, -1, 541, 366,
1581  541, -1, 541, 12, 541, -1, 212, 541, -1, 542,
1582  164, 327, -1, 542, 164, 212, 327, -1, 542, 164,
1583  121, -1, 542, 164, 212, 121, -1, 542, 164, 336,
1584  -1, 542, 164, 212, 336, -1, 542, -1, 542, 164,
1585  215, -1, 542, 164, 212, 215, -1, 542, 112, 543,
1586  -1, 542, 545, 543, -1, 542, 545, 546, 386, 815,
1587  387, -1, 543, -1, 544, 163, 386, 815, 387, -1,
1588  544, 212, 163, 386, 815, 387, -1, 544, 163, 386,
1589  541, 387, -1, 544, 163, 386, 541, 390, 569, 387,
1590  -1, 544, 212, 163, 386, 541, 387, -1, 544, 212,
1591  163, 386, 541, 390, 569, 387, -1, 544, 22, 544,
1592  12, 543, -1, 544, 212, 22, 544, 12, 543, -1,
1593  544, 179, 547, 627, -1, 544, 212, 179, 547, 627,
1594  -1, 544, 249, 544, -1, 544, 212, 249, 544, -1,
1595  544, -1, 544, 374, 544, -1, 544, 375, 544, -1,
1596  544, 376, 544, -1, 544, 377, 544, -1, 544, 379,
1597  544, -1, 544, 378, 544, -1, 544, 379, 159, 541,
1598  617, -1, 544, 378, 159, 541, 617, -1, 544, 380,
1599  544, -1, 544, 381, 544, -1, 544, 382, 544, -1,
1600  544, 96, 544, -1, 544, 202, 544, -1, 544, 383,
1601  544, -1, 547, -1, 370, -1, 134, -1, 372, -1,
1602  174, -1, 371, -1, 208, -1, 9, -1, 13, -1,
1603  756, -1, 548, -1, 549, -1, 551, -1, 550, -1,
1604  547, 47, 767, -1, 748, -1, 560, -1, 556, -1,
1605  547, 373, 547, -1, 379, 547, -1, 378, 547, -1,
1606  384, 547, -1, 386, 815, 387, -1, 386, 541, 387,
1607  -1, 386, 541, 390, 569, 387, -1, 267, 386, 541,
1608  390, 569, 387, -1, 118, 386, 815, 387, -1, 388,
1609  766, 541, 389, -1, 24, 547, -1, 37, 386, 541,
1610  14, 568, 387, -1, 36, 570, 572, 571, 107, -1,
1611  62, 386, 541, 390, 568, 387, -1, 87, 386, 756,
1612  387, -1, 349, 386, 756, 387, -1, 159, 541, 617,
1613  379, 541, -1, 42, 386, 569, 387, -1, 69, 540,
1614  -1, 77, 386, 541, 387, -1, 82, 386, 541, 387,
1615  -1, 144, 386, 541, 387, -1, 158, 386, 541, 390,
1616  541, 390, 541, 390, 541, 387, -1, 159, 386, 541,
1617  390, 541, 387, -1, 159, 386, 541, 390, 541, 390,
1618  569, 387, -1, 176, 386, 541, 390, 541, 387, -1,
1619  197, 386, 541, 387, -1, 203, 386, 541, 387, -1,
1620  261, 386, 541, 390, 541, 387, -1, 270, 386, 541,
1621  387, -1, 321, 386, 541, 387, -1, 326, 386, 541,
1622  387, -1, 326, 386, 175, 541, 132, 541, 387, -1,
1623  326, 386, 324, 541, 132, 541, 387, -1, 326, 386,
1624  30, 541, 132, 541, 387, -1, 326, 386, 175, 132,
1625  541, 387, -1, 326, 386, 324, 132, 541, 387, -1,
1626  326, 386, 30, 132, 541, 387, -1, 326, 386, 541,
1627  132, 541, 387, -1, 341, 386, 387, -1, 368, 386,
1628  541, 387, -1, 5, 386, 541, 390, 541, 387, -1,
1629  5, 386, 541, 390, 159, 541, 617, 387, -1, 68,
1630  540, -1, 67, 540, -1, 75, 386, 541, 390, 159,
1631  541, 617, 387, -1, 76, 386, 541, 390, 159, 541,
1632  617, 387, -1, 120, 386, 617, 132, 541, 387, -1,
1633  213, 540, -1, 213, 386, 541, 387, -1, 234, 386,
1634  544, 163, 541, 387, -1, 304, 386, 541, 390, 541,
1635  387, -1, 304, 386, 541, 390, 159, 541, 617, 387,
1636  -1, 306, 386, 541, 390, 541, 390, 541, 387, -1,
1637  306, 386, 541, 390, 541, 387, -1, 306, 386, 541,
1638  132, 541, 129, 541, 387, -1, 306, 386, 541, 132,
1639  541, 387, -1, 309, 540, -1, 309, 386, 541, 387,
1640  -1, 319, 386, 618, 390, 541, 390, 541, 387, -1,
1641  320, 386, 618, 390, 541, 390, 541, 387, -1, 345,
1642  540, -1, 344, 540, -1, 346, 540, -1, 46, 386,
1643  569, 387, -1, 48, 386, 541, 387, -1, 71, 386,
1644  387, -1, 38, 386, 387, -1, 117, 386, 541, 387,
1645  665, -1, 149, 386, 541, 390, 541, 390, 541, 387,
1646  -1, 172, 722, 386, 541, 387, -1, 194, 386, 541,
1647  387, -1, 202, 386, 541, 390, 541, 387, -1, 240,
1648  386, 541, 387, -1, 253, 386, 541, 390, 541, 387,
1649  -1, 254, 386, 541, 390, 541, 390, 541, 387, -1,
1650  328, 386, 541, 390, 541, 387, -1, 357, 386, 541,
1651  387, -1, 348, 386, 387, -1, 167, 386, 387, -1,
1652  357, 386, 541, 390, 541, 387, -1, -1, 762, 386,
1653  552, 553, 387, -1, -1, 554, -1, 555, -1, 554,
1654  390, 555, -1, 537, 541, 538, 539, -1, 19, 386,
1655  566, 387, -1, 19, 386, 95, 566, 387, -1, 63,
1656  386, 622, 380, 387, -1, 63, 386, 566, 387, -1,
1657  -1, -1, 63, 386, 95, 557, 569, 558, 387, -1,
1658  198, 386, 566, 387, -1, 198, 386, 95, 566, 387,
1659  -1, 190, 386, 566, 387, -1, 190, 386, 95, 566,
1660  387, -1, 299, 386, 566, 387, -1, 354, 386, 566,
1661  387, -1, 298, 386, 566, 387, -1, 356, 386, 566,
1662  387, -1, 307, 386, 566, 387, -1, 307, 386, 95,
1663  566, 387, -1, -1, 136, 386, 563, 559, 569, 565,
1664  564, 387, -1, -1, 392, 561, 562, -1, 785, 280,
1665  541, -1, 785, -1, 392, 781, 785, 491, -1, -1,
1666  95, -1, -1, 274, 746, -1, -1, 635, -1, -1,
1667  622, 567, 541, -1, 24, 446, -1, 28, -1, 283,
1668  -1, 283, 161, -1, 161, -1, 338, -1, 338, 161,
1669  -1, 42, 446, -1, 77, -1, 322, -1, 74, -1,
1670  85, 444, -1, 541, -1, 569, 390, 541, -1, -1,
1671  541, -1, -1, 104, 541, -1, 360, 541, 318, 541,
1672  -1, 572, 360, 541, 318, 541, -1, 586, -1, 577,
1673  -1, 576, -1, 573, -1, 388, 766, 573, 389, -1,
1674  575, -1, 576, 390, 575, -1, 573, 585, 573, -1,
1675  573, 302, 586, -1, -1, 573, 585, 573, 220, 578,
1676  541, -1, -1, 573, 302, 586, 220, 579, 541, -1,
1677  -1, 573, 585, 573, 343, 580, 386, 616, 387, -1,
1678  573, 207, 168, 586, -1, -1, 573, 176, 602, 168,
1679  573, 220, 581, 541, -1, -1, 573, 176, 602, 168,
1680  586, 582, 343, 386, 616, 387, -1, 573, 207, 176,
1681  602, 168, 586, -1, -1, 573, 261, 602, 168, 573,
1682  220, 583, 541, -1, -1, 573, 261, 602, 168, 586,
1683  584, 343, 386, 616, 387, -1, 573, 207, 261, 602,
1684  168, 586, -1, 168, -1, 155, 168, -1, 65, 168,
1685  -1, -1, 587, 759, 621, 611, -1, 601, 600, 597,
1686  -1, 386, 600, 588, 387, 621, -1, 595, 634, 640,
1687  -1, -1, -1, 588, 334, 811, 589, 812, 590, 634,
1688  640, -1, 592, -1, -1, -1, 593, 529, 535, 594,
1689  428, 534, -1, -1, 600, 596, 576, -1, -1, -1,
1690  598, 529, 535, 599, 428, -1, -1, 272, -1, -1,
1691  230, -1, -1, 129, 168, -1, 129, 228, 32, -1,
1692  129, 137, 32, -1, 127, -1, 150, -1, -1, 604,
1693  477, 603, 606, 386, 615, 387, -1, -1, 342, 477,
1694  603, 607, 386, 613, 387, -1, 605, -1, 608, 605,
1695  -1, -1, -1, 610, 608, -1, -1, 612, 609, -1,
1696  -1, 615, -1, 766, -1, 237, -1, 614, -1, 615,
1697  390, 614, -1, 766, -1, 616, 390, 766, -1, 619,
1698  -1, 78, -1, 79, -1, 80, -1, 81, -1, 141,
1699  -1, 142, -1, 143, -1, 195, -1, 196, -1, 269,
1700  -1, 367, -1, 619, -1, 131, -1, 82, -1, 359,
1701  -1, 144, -1, 197, -1, 203, -1, 240, -1, 270,
1702  -1, 194, -1, 368, -1, -1, 14, -1, -1, 620,
1703  766, -1, -1, 9, -1, -1, -1, 361, 624, 541,
1704  -1, -1, -1, 139, 626, 541, -1, 115, 547, -1,
1705  -1, -1, 137, 32, 629, 630, -1, 629, 390, 755,
1706  638, -1, 755, 638, -1, -1, 363, -1, 228, 32,
1707  632, -1, 632, 390, 633, -1, 633, -1, 756, 638,
1708  -1, -1, 635, -1, -1, 228, 32, 636, 637, -1,
1709  637, 390, 755, 638, -1, 755, 638, -1, -1, 15,
1710  -1, 90, -1, -1, 641, -1, -1, 641, -1, 180,
1711  642, -1, 643, -1, 643, 390, 643, -1, 643, 219,
1712  643, -1, 330, -1, 187, -1, 216, -1, -1, 180,
1713  643, -1, 216, -1, 140, -1, 187, -1, 330, -1,
1714  84, -1, 125, -1, 216, -1, 330, -1, 187, -1,
1715  84, -1, 125, -1, -1, 648, 649, -1, 649, 390,
1716  650, -1, 650, -1, 392, 785, -1, -1, 160, 652,
1717  653, -1, -1, 231, 765, 654, 733, 736, -1, 100,
1718  765, -1, 647, -1, 99, 38, 761, -1, 99, 660,
1719  790, 659, 657, -1, -1, 99, 497, 153, 766, 220,
1720  759, 656, -1, 99, 71, 659, 760, -1, 658, -1,
1721  657, 390, 658, -1, 759, -1, -1, 149, 118, -1,
1722  -1, 314, -1, 117, 662, 663, 664, 665, -1, 785,
1723  -1, 392, 785, -1, -1, 362, 214, 259, -1, -1,
1724  56, -1, -1, 357, -1, -1, -1, 158, 667, 505,
1725  672, 668, 674, 690, -1, -1, -1, 254, 670, 672,
1726  671, 674, -1, 160, 673, -1, 673, -1, 658, -1,
1727  677, -1, 386, 387, 677, -1, 386, 676, 387, 677,
1728  -1, -1, 279, 675, 681, -1, 676, 390, 753, -1,
1729  753, -1, 349, 680, -1, 350, 680, -1, -1, 408,
1730  678, 804, -1, -1, 386, 408, 387, 679, 807, -1,
1731  680, 390, 685, -1, 685, -1, 681, 390, 682, -1,
1732  682, -1, 756, 683, 689, -1, 370, -1, 280, -1,
1733  -1, 370, -1, -1, 386, 686, 687, 387, -1, -1,
1734  688, -1, 688, 390, 689, -1, 689, -1, 541, -1,
1735  87, -1, -1, -1, 220, 101, 691, 171, 339, 696,
1736  -1, -1, 339, 505, 759, 279, 694, 693, 623, 634,
1737  644, -1, 694, 390, 695, -1, 695, -1, 756, 683,
1738  689, -1, 696, 390, 697, -1, 697, -1, 756, 683,
1739  689, -1, -1, 89, 700, 132, 759, 699, 623, 634,
1740  644, -1, -1, 150, -1, 328, 702, 658, -1, -1,
1741  313, -1, -1, 282, 704, 705, -1, 72, 708, -1,
1742  310, 706, 708, -1, 314, 310, 708, -1, 313, 297,
1743  706, 708, -1, 49, 707, 759, 706, 708, -1, 479,
1744  707, 759, 706, 623, -1, 63, 386, 380, 387, 358,
1745  -1, 63, 386, 380, 387, 113, -1, 358, 639, -1,
1746  113, 639, -1, 780, 297, 708, -1, 768, 297, -1,
1747  64, 313, 759, -1, 239, -1, 780, 353, 708, -1,
1748  64, 71, 415, 766, -1, -1, 707, 766, -1, 132,
1749  -1, 163, -1, -1, 179, 763, -1, 361, 541, -1,
1750  -1, 712, 759, 710, 714, -1, -1, 712, 713, 711,
1751  518, -1, 90, -1, 91, -1, -1, 119, -1, -1,
1752  746, -1, 766, -1, -1, 126, 716, 717, -1, 717,
1753  390, 718, -1, 718, -1, -1, 790, 719, 720, -1,
1754  310, 362, 244, 185, -1, 186, -1, 297, -1, 135,
1755  297, -1, -1, 657, -1, 172, 722, 541, -1, -1,
1756  58, -1, 241, -1, 342, 760, -1, -1, -1, -1,
1757  -1, 182, 729, 725, 730, 154, 765, 726, 731, 160,
1758  727, 313, 759, 728, 733, 736, 739, 741, 744, -1,
1759  73, -1, -1, 56, -1, -1, 254, -1, 150, -1,
1760  -1, 14, -1, 254, -1, 150, -1, 254, 14, -1,
1761  150, 14, -1, -1, 49, 734, -1, 734, 735, -1,
1762  735, -1, 315, 32, 746, -1, 227, 106, 32, 746,
1763  -1, 106, 32, 746, -1, 114, 32, 746, -1, -1,
1764  181, 737, -1, 737, 738, -1, 738, -1, 315, 32,
1765  746, -1, 295, 32, 746, -1, -1, 150, 216, 740,
1766  -1, 181, -1, 265, -1, -1, 386, 742, 387, -1,
1767  386, 387, -1, 742, 390, 743, -1, 743, -1, 756,
1768  -1, 392, 785, -1, -1, 279, 696, -1, 764, -1,
1769  745, 764, -1, 764, -1, 140, -1, 25, -1, 748,
1770  -1, 379, 752, -1, 378, 752, -1, 745, -1, 752,
1771  -1, 215, -1, 121, -1, 327, -1, 140, -1, 25,
1772  -1, 77, 745, -1, 321, 745, -1, 745, -1, 140,
1773  -1, 25, -1, 752, -1, 215, -1, 379, 752, -1,
1774  378, 752, -1, 215, -1, 121, -1, 327, -1, 745,
1775  -1, 215, -1, 752, -1, 77, 745, -1, 321, 745,
1776  -1, 216, -1, 187, -1, 330, -1, 84, -1, 125,
1777  -1, 756, -1, 754, -1, 766, 391, 380, -1, 766,
1778  391, 766, 391, 380, -1, 541, -1, 766, -1, 757,
1779  -1, 766, 391, 766, -1, 391, 766, 391, 766, -1,
1780  766, 391, 766, 391, 766, -1, 766, -1, 766, 391,
1781  766, 391, 766, -1, 766, 391, 766, -1, 391, 766,
1782  -1, 766, -1, 760, 391, 766, -1, 391, 766, -1,
1783  766, -1, 766, -1, 145, -1, 148, -1, 316, -1,
1784  316, -1, 316, -1, 762, -1, 770, -1, 762, -1,
1785  763, -1, 762, -1, 763, -1, 321, -1, 291, -1,
1786  147, -1, 771, -1, 21, -1, 43, -1, 45, -1,
1787  51, -1, 53, -1, 61, -1, 83, -1, 98, -1,
1788  107, -1, 126, -1, 214, -1, 224, -1, 262, -1,
1789  268, -1, 271, -1, 277, -1, 283, -1, 296, -1,
1790  300, -1, 328, -1, 4, -1, 5, -1, 7, -1,
1791  8, -1, 13, -1, 17, -1, 18, -1, 19, -1,
1792  26, -1, 29, -1, 28, -1, 31, -1, 35, -1,
1793  39, -1, 46, -1, 48, -1, 49, -1, 52, -1,
1794  54, -1, 55, -1, 56, -1, 58, -1, 59, -1,
1795  66, -1, 73, -1, 72, -1, 74, -1, 77, -1,
1796  82, -1, 93, -1, 94, -1, 100, -1, 101, -1,
1797  102, -1, 108, -1, 111, -1, 110, -1, 113, -1,
1798  115, -1, 116, -1, 119, -1, 130, -1, 105, -1,
1799  133, -1, 122, -1, 123, -1, 124, -1, 131, -1,
1800  135, -1, 138, -1, 144, -1, 146, -1, 151, -1,
1801  152, -1, 165, -1, 167, -1, 170, -1, 173, -1,
1802  177, -1, 183, -1, 184, -1, 186, -1, 191, -1,
1803  192, -1, 193, -1, 194, -1, 197, -1, 201, -1,
1804  199, -1, 203, -1, 205, -1, 204, -1, 206, -1,
1805  210, -1, 209, -1, 211, -1, 218, -1, 219, -1,
1806  221, -1, 222, -1, 223, -1, 233, -1, 236, -1,
1807  238, -1, 239, -1, 240, -1, 241, -1, 247, -1,
1808  252, -1, 258, -1, 263, -1, 264, -1, 265, -1,
1809  266, -1, 267, -1, 270, -1, 276, -1, 275, -1,
1810  278, -1, 284, -1, 281, -1, 285, -1, 297, -1,
1811  303, -1, 304, -1, 305, -1, 308, -1, 310, -1,
1812  311, -1, 314, -1, 317, -1, 325, -1, 322, -1,
1813  319, -1, 320, -1, 329, -1, 331, -1, 332, -1,
1814  336, -1, 348, -1, 341, -1, 353, -1, 350, -1,
1815  358, -1, 359, -1, 364, -1, 368, -1, -1, 279,
1816  774, 773, 775, -1, -1, 226, -1, 776, -1, 775,
1817  390, 776, -1, -1, 777, 782, -1, 779, -1, 135,
1818  -1, 183, -1, 278, -1, -1, 221, -1, -1, 135,
1819  -1, 183, -1, 278, -1, -1, 135, 391, -1, 183,
1820  391, -1, 278, 391, -1, 783, -1, 779, 784, -1,
1821  778, 787, 683, 789, -1, 778, 325, 165, 177, 788,
1822  -1, 392, 785, 683, 541, -1, 392, 392, 781, 787,
1823  683, 789, -1, 786, -1, 763, -1, 178, -1, 769,
1824  -1, 762, -1, 786, -1, 244, 331, -1, 244, 52,
1825  -1, 252, 244, -1, 275, -1, 541, -1, 87, -1,
1826  220, -1, 9, -1, 24, -1, 313, -1, 310, -1,
1827  -1, 337, 792, 790, -1, -1, 21, 794, 795, -1,
1828  -1, 364, -1, -1, 12, 214, 39, -1, 12, 39,
1829  -1, -1, 250, -1, 214, 250, -1, -1, 268, -1,
1830  53, 795, 796, 797, -1, 262, 795, 796, 797, -1,
1831  262, 795, 323, 798, 803, -1, 268, 803, -1, 250,
1832  268, 803, -1, 762, -1, -1, 805, -1, -1, 334,
1833  811, 806, 519, -1, -1, 805, -1, 808, -1, -1,
1834  809, 810, -1, 635, 639, -1, 641, -1, -1, 95,
1835  -1, 9, -1, 272, 591, -1, 386, 521, 387, -1,
1836  812, -1, -1, 813, 334, 811, 814, 812, -1, 816,
1837  813, 817, -1, -1, -1
1838 };
1839 
1840 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1841 static const yytype_uint16 yyrline[] =
1842 {
1843  0, 809, 809, 821, 825, 826, 831, 832, 833, 834,
1844  835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
1845  845, 846, 847, 848, 849, 850, 851, 852, 853, 854,
1846  855, 856, 862, 867, 866, 881, 880, 894, 893, 904,
1847  907, 906, 911, 913, 915, 920, 922, 921, 927, 926,
1848  934, 944, 954, 975, 953, 989, 990, 991, 992, 993,
1849  997, 998, 999, 1003, 1008, 1012, 1016, 1020, 1024, 1028,
1850  1035, 1036, 1040, 1041, 1044, 1046, 1050, 1051, 1055, 1056,
1851  1057, 1060, 1063, 1067, 1071, 1075, 1079, 1083, 1087, 1091,
1852  1095, 1099, 1103, 1107, 1108, 1112, 1113, 1117, 1118, 1122,
1853  1127, 1137, 1144, 1145, 1146, 1147, 1148, 1149, 1153, 1160,
1854  1161, 1165, 1166, 1170, 1171, 1175, 1176, 1183, 1187, 1192,
1855  1196, 1200, 1206, 1208, 1212, 1216, 1217, 1221, 1226, 1225,
1856  1251, 1255, 1259, 1266, 1270, 1274, 1278, 1287, 1286, 1297,
1857  1301, 1306, 1313, 1320, 1324, 1328, 1332, 1336, 1340, 1344,
1858  1348, 1355, 1357, 1359, 1364, 1368, 1375, 1379, 1383, 1391,
1859  1392, 1394, 1399, 1407, 1408, 1412, 1413, 1414, 1418, 1419,
1860  1423, 1424, 1429, 1430, 1432, 1437, 1441, 1453, 1457, 1461,
1861  1468, 1469, 1471, 1478, 1483, 1484, 1486, 1493, 1498, 1499,
1862  1503, 1504, 1508, 1510, 1517, 1530, 1535, 1536, 1540, 1541,
1863  1545, 1547, 1551, 1555, 1562, 1567, 1568, 1572, 1573, 1577,
1864  1579, 1586, 1593, 1597, 1602, 1603, 1614, 1625, 1626, 1630,
1865  1631, 1634, 1636, 1640, 1648, 1649, 1653, 1655, 1664, 1665,
1866  1667, 1669, 1675, 1679, 1684, 1689, 1695, 1704, 1705, 1706,
1867  1707, 1708, 1712, 1716, 1717, 1721, 1722, 1726, 1727, 1731,
1868  1732, 1733, 1737, 1738, 1742, 1754, 1755, 1759, 1760, 1764,
1869  1765, 1769, 1773, 1774, 1776, 1781, 1782, 1786, 1787, 1791,
1870  1792, 1804, 1805, 1809, 1810, 1814, 1815, 1823, 1822, 1839,
1871  1838, 1855, 1857, 1863, 1869, 1874, 1877, 1881, 1888, 1889,
1872  1893, 1903, 1904, 1910, 1918, 1917, 1925, 1938, 1924, 1952,
1873  1962, 1966, 1970, 1974, 1984, 1993, 2000, 2007, 2033, 2043,
1874  2049, 2055, 2064, 2065, 2069, 2070, 2074, 2075, 2079, 2086,
1875  2087, 2088, 2092, 2099, 2100, 2108, 2107, 2117, 2116, 2126,
1876  2125, 2134, 2135, 2139, 2156, 2164, 2165, 2169, 2174, 2179,
1877  2184, 2189, 2188, 2207, 2214, 2207, 2221, 2222, 2223, 2224,
1878  2225, 2229, 2238, 2240, 2245, 2246, 2250, 2260, 2273, 2283,
1879  2297, 2298, 2304, 2306, 2308, 2316, 2318, 2322, 2330, 2331,
1880  2332, 2340, 2344, 2363, 2370, 2377, 2378, 2379, 2380, 2381,
1881  2385, 2386, 2391, 2440, 2445, 2486, 2488, 2492, 2496, 2500,
1882  2504, 2508, 2512, 2516, 2520, 2524, 2528, 2532, 2536, 2540,
1883  2544, 2549, 2553, 2559, 2563, 2571, 2575, 2581, 2585, 2589,
1884  2599, 2610, 2614, 2618, 2622, 2626, 2630, 2634, 2638, 2642,
1885  2646, 2650, 2654, 2658, 2662, 2666, 2670, 2674, 2675, 2676,
1886  2677, 2678, 2679, 2683, 2684, 2688, 2689, 2690, 2691, 2692,
1887  2693, 2698, 2699, 2700, 2704, 2708, 2709, 2713, 2717, 2721,
1888  2722, 2727, 2732, 2736, 2737, 2742, 2749, 2751, 2758, 2763,
1889  2768, 2780, 2782, 2790, 2792, 2794, 2796, 2798, 2806, 2813,
1890  2815, 2817, 2819, 2821, 2823, 2825, 2827, 2829, 2831, 2833,
1891  2835, 2837, 2839, 2841, 2849, 2865, 2870, 2872, 2877, 2882,
1892  2884, 2886, 2888, 2893, 2898, 2900, 2905, 2907, 2918, 2928,
1893  2939, 2949, 2954, 2959, 2961, 2963, 2968, 2973, 2986, 2988,
1894  2990, 2998, 3006, 3021, 3025, 3040, 3042, 3044, 3046, 3048,
1895  3050, 3052, 3061, 3069, 3077, 3099, 3098, 3141, 3142, 3146,
1896  3151, 3159, 3179, 3181, 3183, 3185, 3188, 3190, 3187, 3193,
1897  3200, 3202, 3204, 3206, 3208, 3210, 3212, 3214, 3216, 3219,
1898  3218, 3234, 3233, 3242, 3247, 3252, 3266, 3267, 3272, 3275,
1899  3280, 3283, 3293, 3292, 3308, 3310, 3312, 3314, 3316, 3318,
1900  3320, 3322, 3324, 3326, 3328, 3330, 3335, 3340, 3348, 3349,
1901  3353, 3354, 3358, 3364, 3375, 3376, 3384, 3395, 3396, 3402,
1902  3403, 3423, 3428, 3434, 3432, 3449, 3447, 3464, 3462, 3469,
1903  3478, 3476, 3493, 3492, 3502, 3513, 3511, 3528, 3527, 3537,
1904  3547, 3548, 3549, 3565, 3565, 3576, 3614, 3655, 3659, 3664,
1905  3656, 3676, 3695, 3702, 3695, 3711, 3710, 3731, 3745, 3731,
1906  3752, 3756, 3774, 3775, 3780, 3783, 3784, 3785, 3789, 3790,
1907  3795, 3794, 3800, 3799, 3807, 3808, 3811, 3813, 3813, 3817,
1908  3817, 3822, 3823, 3827, 3829, 3834, 3835, 3839, 3844, 3852,
1909  3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862,
1910  3863, 3867, 3868, 3886, 3887, 3888, 3889, 3890, 3891, 3892,
1911  3893, 3894, 3897, 3899, 3903, 3904, 3910, 3912, 3916, 3918,
1912  3917, 3931, 3934, 3933, 3948, 3954, 3964, 3966, 3970, 3972,
1913  3977, 3978, 4002, 4006, 4007, 4011, 4022, 4024, 4029, 4028,
1914  4037, 4041, 4048, 4049, 4050, 4055, 4060, 4064, 4065, 4069,
1915  4073, 4080, 4087, 4097, 4098, 4099, 4104, 4107, 4116, 4117,
1916  4118, 4119, 4120, 4121, 4125, 4126, 4127, 4128, 4129, 4133,
1917  4133, 4142, 4143, 4147, 4166, 4165, 4172, 4171, 4178, 4187,
1918  4196, 4200, 4207, 4207, 4223, 4233, 4234, 4238, 4246, 4247,
1919  4251, 4252, 4260, 4267, 4271, 4277, 4278, 4282, 4283, 4287,
1920  4288, 4297, 4305, 4296, 4315, 4321, 4314, 4330, 4331, 4335,
1921  4343, 4344, 4345, 4347, 4346, 4355, 4356, 4360, 4361, 4363,
1922  4362, 4368, 4367, 4375, 4376, 4380, 4381, 4385, 4393, 4394,
1923  4398, 4399, 4404, 4403, 4414, 4415, 4419, 4423, 4430, 4431,
1924  4434, 4436, 4436, 4444, 4443, 4470, 4471, 4475, 4483, 4484,
1925  4488, 4499, 4498, 4511, 4512, 4516, 4524, 4526, 4533, 4532,
1926  4544, 4550, 4556, 4562, 4568, 4574, 4579, 4583, 4587, 4591,
1927  4595, 4600, 4605, 4610, 4615, 4620, 4627, 4628, 4632, 4633,
1928  4636, 4638, 4642, 4653, 4652, 4661, 4660, 4669, 4670, 4674,
1929  4675, 4679, 4680, 4681, 4692, 4691, 4700, 4701, 4706, 4705,
1930  4711, 4716, 4721, 4726, 4734, 4735, 4741, 4748, 4749, 4750,
1931  4756, 4767, 4775, 4782, 4787, 4766, 4802, 4805, 4806, 4813,
1932  4814, 4815, 4819, 4820, 4821, 4822, 4823, 4824, 4827, 4829,
1933  4833, 4834, 4838, 4843, 4849, 4854, 4861, 4863, 4867, 4868,
1934  4872, 4877, 4884, 4886, 4894, 4895, 4899, 4900, 4901, 4905,
1935  4907, 4912, 4913, 4918, 4919, 4925, 4929, 4936, 4940, 4949,
1936  4961, 4962, 4963, 4971, 4972, 4973, 4978, 4979, 4980, 4981,
1937  4982, 4983, 4987, 4988, 4989, 4990, 4991, 4996, 4997, 5005,
1938  5010, 5014, 5021, 5022, 5027, 5028, 5029, 5033, 5038, 5043,
1939  5045, 5053, 5068, 5069, 5073, 5077, 5084, 5088, 5092, 5096,
1940  5100, 5104, 5111, 5115, 5122, 5129, 5136, 5140, 5144, 5151,
1941  5155, 5159, 5163, 5178, 5185, 5192, 5199, 5200, 5207, 5208,
1942  5212, 5213, 5217, 5218, 5219, 5224, 5225, 5226, 5227, 5228,
1943  5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238,
1944  5239, 5240, 5241, 5242, 5243, 5244, 5254, 5255, 5256, 5257,
1945  5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267,
1946  5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277,
1947  5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287,
1948  5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297,
1949  5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307,
1950  5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317,
1951  5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327,
1952  5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337,
1953  5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347,
1954  5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357,
1955  5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367,
1956  5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377,
1957  5378, 5379, 5380, 5387, 5386, 5395, 5396, 5400, 5401, 5405,
1958  5405, 5411, 5412, 5413, 5414, 5418, 5419, 5423, 5424, 5425,
1959  5426, 5430, 5431, 5432, 5433, 5437, 5438, 5442, 5453, 5461,
1960  5465, 5472, 5473, 5474, 5478, 5482, 5486, 5501, 5502, 5503,
1961  5504, 5508, 5509, 5510, 5511, 5512, 5516, 5517, 5522, 5521,
1962  5531, 5530, 5538, 5539, 5544, 5545, 5546, 5551, 5552, 5553,
1963  5557, 5558, 5562, 5569, 5573, 5580, 5587, 5594, 5603, 5604,
1964  5609, 5608, 5624, 5625, 5626, 5630, 5630, 5651, 5652, 5656,
1965  5657, 5658, 5662, 5666, 5673, 5676, 5674, 5689, 5696, 5715
1966 };
1967 #endif
1968 
1969 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1970 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1971  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1972 static const char *const yytname[] =
1973 {
1974  "$end", "error", "$undefined", "ABORT_SYM", "ACTION", "ADDDATE_SYM",
1975  "ADD_SYM", "AFTER_SYM", "AGGREGATE_SYM", "ALL", "ALTER_SYM",
1976  "ANALYZE_SYM", "AND_SYM", "ANY_SYM", "AS", "ASC", "ASENSITIVE_SYM",
1977  "AT_SYM", "AUTO_INC", "AVG_SYM", "BEFORE_SYM", "BEGIN_SYM",
1978  "BETWEEN_SYM", "BIGINT_SYM", "BINARY", "BIN_NUM", "BIT_SYM", "BLOB_SYM",
1979  "BOOLEAN_SYM", "BOOL_SYM", "BOTH", "BTREE_SYM", "BY", "CALL_SYM",
1980  "CASCADE", "CASCADED", "CASE_SYM", "CAST_SYM", "CATALOG_SYM",
1981  "CHAIN_SYM", "CHANGE_SYM", "CHARSET", "CHAR_SYM", "CHECKSUM_SYM",
1982  "CHECK_SYM", "CLOSE_SYM", "COALESCE", "COLLATE_SYM", "COLLATION_SYM",
1983  "COLUMNS", "COLUMN_SYM", "COMMENT_SYM", "COMMITTED_SYM", "COMMIT_SYM",
1984  "COMPACT_SYM", "COMPRESSED_SYM", "CONCURRENT", "CONDITION_SYM",
1985  "CONNECTION_SYM", "CONSISTENT_SYM", "CONSTRAINT", "CONTAINS_SYM",
1986  "CONVERT_SYM", "COUNT_SYM", "CREATE", "CROSS", "CUBE_SYM", "CURDATE",
1987  "CURTIME", "CURRENT_USER", "CURSOR_SYM", "DATABASE", "DATABASES",
1988  "DATA_SYM", "DATETIME_SYM", "DATE_ADD_INTERVAL", "DATE_SUB_INTERVAL",
1989  "DATE_SYM", "DAY_HOUR_SYM", "DAY_MICROSECOND_SYM", "DAY_MINUTE_SYM",
1990  "DAY_SECOND_SYM", "DAY_SYM", "DEALLOCATE_SYM", "DECIMAL_NUM",
1991  "DECIMAL_SYM", "DECLARE_SYM", "DEFAULT", "DEFINER", "DELETE_SYM", "DESC",
1992  "DESCRIBE", "DETERMINISTIC_SYM", "DISABLE_SYM", "DISCARD", "DISTINCT",
1993  "DIV_SYM", "DOUBLE_SYM", "DO_SYM", "DROP", "DUMPFILE", "DUPLICATE_SYM",
1994  "DYNAMIC_SYM", "EACH_SYM", "ELSE", "ENABLE_SYM", "ENCLOSED", "END",
1995  "ENDS_SYM", "END_OF_INPUT", "ENGINE_SYM", "ENUM_SYM", "EQUAL_SYM",
1996  "ERRORS", "ESCAPED", "ESCAPE_SYM", "EXCLUSIVE_SYM", "EXECUTE_SYM",
1997  "EXISTS", "EXTENDED_SYM", "EXTRACT_SYM", "FALSE_SYM", "FILE_SYM",
1998  "FIRST_SYM", "FIXED_SYM", "FLOAT_NUM", "FLUSH_SYM", "FORCE_SYM",
1999  "FOREIGN", "FOR_SYM", "FOUND_SYM", "FRAC_SECOND_SYM", "FROM", "FULL",
2000  "GE", "GLOBAL_SYM", "GROUP_CONCAT_SYM", "GROUP_SYM", "HASH_SYM",
2001  "HAVING", "HEX_NUM", "HOUR_MICROSECOND_SYM", "HOUR_MINUTE_SYM",
2002  "HOUR_SECOND_SYM", "HOUR_SYM", "IDENT", "IDENTIFIED_SYM", "IDENTITY_SYM",
2003  "IDENT_QUOTED", "IF", "IGNORE_SYM", "IMPORT", "INDEXES", "INDEX_SYM",
2004  "INFILE", "INNER_SYM", "INOUT_SYM", "INSENSITIVE_SYM", "INSERT",
2005  "INTERVAL_SYM", "INTO", "INT_SYM", "INVOKER", "IN_SYM", "IS",
2006  "ISOLATION", "ITERATE_SYM", "IPV6_SYM", "JOIN_SYM", "KEYS",
2007  "KEY_BLOCK_SIZE", "KEY_SYM", "KILL_SYM", "LAST_SYM", "LE", "LEADING",
2008  "LEFT", "LEVEL_SYM", "LEX_HOSTNAME", "LIKE", "LIMIT", "LINES", "LOAD",
2009  "LOCAL_SYM", "LOCKS_SYM", "LOCK_SYM", "LOGS_SYM", "LONG_NUM", "LONG_SYM",
2010  "MATCH", "MAX_SYM", "MAX_VALUE_SYM", "MEDIUM_SYM", "MERGE_SYM",
2011  "MICROSECOND_SYM", "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM",
2012  "MINUTE_SYM", "MIN_SYM", "MODE_SYM", "MODIFIES_SYM", "MODIFY_SYM",
2013  "MOD_SYM", "MONTH_SYM", "NAMES_SYM", "NAME_SYM", "NATIONAL_SYM",
2014  "NATURAL", "NE", "NEW_SYM", "NEXT_SYM", "NONE_SYM", "NOT_SYM", "NOW_SYM",
2015  "NO_SYM", "NULL_SYM", "NUM", "NUMERIC_SYM", "OFFLINE_SYM", "OFFSET_SYM",
2016  "ON", "ONE_SHOT_SYM", "ONE_SYM", "ONLINE_SYM", "OPEN_SYM", "OPTIMIZE",
2017  "OPTION", "OPTIONALLY", "ORDER_SYM", "OR_SYM", "OUTER", "OUTFILE",
2018  "OUT_SYM", "PARTIAL", "POSITION_SYM", "PRECISION", "PREV_SYM",
2019  "PRIMARY_SYM", "PROCESS", "PROCESSLIST_SYM", "QUARTER_SYM", "QUERY_SYM",
2020  "RANGE_SYM", "READS_SYM", "READ_SYM", "READ_WRITE_SYM", "REAL",
2021  "REDUNDANT_SYM", "REFERENCES", "REGEXP_SYM", "RELEASE_SYM", "RENAME",
2022  "REPEATABLE_SYM", "REPEAT_SYM", "REPLACE", "REPLICATE", "REPLICATION",
2023  "RESTRICT", "RETURNS_SYM", "RETURN_SYM", "REVOKE", "RIGHT",
2024  "ROLLBACK_SYM", "ROLLUP_SYM", "ROUTINE_SYM", "ROWS_SYM",
2025  "ROW_FORMAT_SYM", "ROW_SYM", "SAVEPOINT_SYM", "SECOND_MICROSECOND_SYM",
2026  "SECOND_SYM", "SECURITY_SYM", "SELECT_SYM", "SENSITIVE_SYM",
2027  "SEPARATOR_SYM", "SERIALIZABLE_SYM", "SERIAL_SYM", "SERVER_SYM",
2028  "SESSION_SYM", "SET_SYM", "SET_VAR", "SHARE_SYM", "SHOW", "SIGNED_SYM",
2029  "SIMPLE_SYM", "SNAPSHOT_SYM", "SPECIFIC_SYM", "SQLEXCEPTION_SYM",
2030  "SQLSTATE_SYM", "SQLWARNING_SYM", "SQL_BIG_RESULT", "SQL_BUFFER_RESULT",
2031  "SQL_CALC_FOUND_ROWS", "SQL_SMALL_RESULT", "SQL_SYM", "STARTING",
2032  "START_SYM", "STATUS_SYM", "STDDEV_SAMP_SYM", "STD_SYM", "STOP_SYM",
2033  "STORED_SYM", "STRAIGHT_JOIN", "STRING_SYM", "SUBDATE_SYM",
2034  "SUBJECT_SYM", "SUBSTRING", "SUM_SYM", "SUSPEND_SYM", "SYSDATE",
2035  "TABLES", "TABLESPACE", "TABLE_REF_PRIORITY", "TABLE_SYM",
2036  "TEMPORARY_SYM", "TERMINATED", "TEXT_STRING", "TEXT_SYM", "THEN_SYM",
2037  "TIMESTAMP_ADD", "TIMESTAMP_DIFF", "TIMESTAMP_SYM", "TIME_SYM", "TO_SYM",
2038  "TRAILING", "TRANSACTION_SYM", "TRIM", "TRUE_SYM", "TRUNCATE_SYM",
2039  "TYPE_SYM", "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDOFILE_SYM",
2040  "UNDO_SYM", "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM", "UNLOCK_SYM",
2041  "UNSIGNED_SYM", "UPDATE_SYM", "USAGE", "USER", "USE_SYM", "USING",
2042  "UTC_DATE_SYM", "UTC_TIME_SYM", "UTC_TIMESTAMP_SYM", "UTF8_SYM",
2043  "UUID_SYM", "VALUES", "VALUE_SYM", "VARBINARY", "VARCHAR_SYM",
2044  "VARIABLES", "VARIANCE_SYM", "VARYING", "VAR_SAMP_SYM", "WAIT_SYM",
2045  "WARNINGS", "WEEK_SYM", "WHEN_SYM", "WHERE", "WITH", "WITH_ROLLUP_SYM",
2046  "WORK_SYM", "WRITE_SYM", "XOR", "YEAR_MONTH_SYM", "YEAR_SYM",
2047  "ZEROFILL_SYM", "'='", "LESS_THAN", "GREATER_THAN", "CONCAT", "'|'",
2048  "'&'", "SHIFT_RIGHT", "SHIFT_LEFT", "'-'", "'+'", "'*'", "'/'", "'%'",
2049  "'^'", "'~'", "UMINUS", "'('", "')'", "'{'", "'}'", "','", "'.'", "'@'",
2050  "$accept", "query", "verb_clause", "statement", "create", "$@1", "$@2",
2051  "$@3", "create_table_definition", "$@4", "create_select_as", "$@5",
2052  "$@6", "create_like", "create_select", "stored_select", "$@7", "$@8",
2053  "opt_create_database_options", "opt_database_custom_options",
2054  "custom_database_option", "opt_table_options", "opt_if_not_exists",
2055  "opt_create_table_options", "create_table_options_space_separated",
2056  "create_table_options", "create_table_option", "custom_engine_option",
2057  "charset", "charset_name_or_default", "default_charset",
2058  "default_collation", "default_collation_schema", "row_format",
2059  "row_format_or_text", "opt_select_from", "field_list", "field_list_item",
2060  "column_def", "key_def", "opt_check_constraint", "check_constraint",
2061  "opt_constraint", "constraint", "field_spec", "$@9", "field_def", "$@10",
2062  "varchar", "int_type", "real_type", "float_options", "precision",
2063  "opt_len", "opt_field_number_signed", "ignored_field_number_length",
2064  "opt_zerofill", "opt_precision", "opt_attribute_not_null",
2065  "opt_attribute_index", "opt_attribute", "opt_attribute_boolean",
2066  "opt_attribute_string", "opt_attribute_list_string", "attribute_string",
2067  "opt_attribute_number", "opt_attribute_list_integer",
2068  "attribute_integer", "opt_attribute_timestamp",
2069  "opt_attribute_list_timestamp", "attribute_timestamp",
2070  "opt_attribute_comment", "collation_name", "collation_name_or_default",
2071  "opt_default", "opt_primary", "references", "opt_ref_list", "ref_list",
2072  "opt_match_clause", "opt_on_update_delete", "delete_option", "key_type",
2073  "constraint_key_type", "key_or_index", "opt_key_or_index",
2074  "keys_or_index", "opt_unique", "init_key_options", "key_alg",
2075  "key_options", "key_opts", "key_using_alg", "key_opt", "btree_or_rtree",
2076  "key_list", "key_part", "opt_ident", "opt_component", "string_list",
2077  "alter", "$@11", "$@12", "alter_commands", "build_method", "alter_list",
2078  "add_column", "alter_list_item", "$@13", "$@14", "$@15", "opt_column",
2079  "opt_ignore", "opt_place", "opt_to", "start", "start_transaction_opts",
2080  "analyze", "$@16", "check", "$@17", "rename", "$@18",
2081  "table_to_table_list", "table_to_table", "select", "select_init",
2082  "select_paren", "select_paren_derived", "select_init2", "$@19",
2083  "select_part2", "$@20", "$@21", "select_into", "select_from",
2084  "select_options", "select_option_list", "select_option_distinct_or_all",
2085  "select_option_small_or_big", "select_option", "select_lock_type",
2086  "select_item_list", "select_item", "remember_name", "remember_end",
2087  "select_alias", "optional_braces", "expr", "bool_pri", "predicate",
2088  "bit_expr", "comp_op", "all_or_any", "simple_expr",
2089  "function_call_keyword", "function_call_nonkeyword",
2090  "function_call_conflict", "function_call_generic", "@22",
2091  "opt_udf_expr_list", "udf_expr_list", "udf_expr", "sum_expr", "$@23",
2092  "$@24", "$@25", "variable", "$@26", "variable_aux", "opt_distinct",
2093  "opt_gconcat_separator", "opt_gorder_clause", "in_sum_expr", "$@27",
2094  "cast_type", "expr_list", "opt_expr", "opt_else", "when_list",
2095  "table_ref", "join_table_list", "esc_table_ref", "derived_table_list",
2096  "join_table", "$@28", "$@29", "$@30", "$@31", "$@32", "$@33", "$@34",
2097  "normal_join", "table_factor", "$@35", "select_derived_union", "$@36",
2098  "$@37", "select_init2_derived", "select_part2_derived", "$@38", "$@39",
2099  "select_derived", "$@40", "select_derived2", "$@41", "$@42",
2100  "get_select_lex", "select_derived_init", "opt_outer",
2101  "index_hint_clause", "index_hint_type", "index_hint_definition", "$@43",
2102  "$@44", "index_hints_list", "opt_index_hints_list", "$@45",
2103  "opt_key_definition", "$@46", "opt_key_usage_list", "key_usage_element",
2104  "key_usage_list", "using_list", "interval", "interval_time_stamp",
2105  "interval_time_st", "table_alias", "opt_table_alias", "opt_all",
2106  "where_clause", "$@47", "having_clause", "$@48", "opt_escape",
2107  "group_clause", "group_list", "olap_opt", "alter_order_clause",
2108  "alter_order_list", "alter_order_item", "opt_order_clause",
2109  "order_clause", "$@49", "order_list", "order_dir",
2110  "opt_limit_clause_init", "opt_limit_clause", "limit_clause",
2111  "limit_options", "limit_option", "delete_limit_clause", "ulong_num",
2112  "ulonglong_num", "select_var_list_init", "$@50", "select_var_list",
2113  "select_var_ident", "into", "$@51", "into_destination", "$@52", "drop",
2114  "$@53", "table_list", "table_name", "if_exists", "opt_temporary",
2115  "execute", "execute_var_or_string", "opt_status", "opt_concurrent",
2116  "opt_wait", "insert", "$@54", "$@55", "replace", "$@56", "$@57",
2117  "insert2", "insert_table", "insert_field_spec", "$@58", "fields",
2118  "insert_values", "$@59", "$@60", "values_list", "ident_eq_list",
2119  "ident_eq_value", "equal", "opt_equal", "no_braces", "$@61",
2120  "opt_values", "values", "expr_or_default", "opt_insert_update", "$@62",
2121  "update", "$@63", "update_list", "update_elem", "insert_update_list",
2122  "insert_update_elem", "delete", "$@64", "opt_delete_option", "truncate",
2123  "opt_table_sym", "show", "$@65", "show_param", "opt_db", "from_or_in",
2124  "show_wild", "describe", "$@66", "$@67", "describe_command",
2125  "opt_extended_describe", "opt_describe_column", "flush", "$@68",
2126  "flush_options", "flush_option", "$@69", "opt_table_list", "kill",
2127  "kill_option", "use", "load", "$@70", "$@71", "$@72", "$@73",
2128  "data_file", "load_data_lock", "opt_duplicate", "opt_duplicate_as",
2129  "opt_field_term", "field_term_list", "field_term", "opt_line_term",
2130  "line_term_list", "line_term", "opt_ignore_lines", "lines_or_rows",
2131  "opt_field_or_var_spec", "fields_or_vars", "field_or_var",
2132  "opt_load_data_set_spec", "text_literal", "text_string",
2133  "signed_literal", "literal", "integer_literal", "boolean_literal",
2134  "date_literal", "NUM_literal", "insert_ident", "table_wild",
2135  "order_ident", "simple_ident", "simple_ident_q", "field_ident",
2136  "table_ident", "schema_name", "catalog_name", "IDENT_sys",
2137  "TEXT_STRING_sys", "TEXT_STRING_literal", "TEXT_STRING_filesystem",
2138  "ident", "ident_or_text", "engine_option_value",
2139  "keyword_exception_for_variable", "keyword", "keyword_sp", "set", "$@74",
2140  "opt_option", "option_value_list", "option_type_value", "$@75",
2141  "option_type", "option_type2", "opt_var_type", "opt_var_ident_type",
2142  "ext_option_value", "sys_option_value", "option_value",
2143  "user_variable_ident", "internal_variable_ident",
2144  "internal_variable_name", "isolation_types", "set_expr_or_default",
2145  "table_or_tables", "unlock", "$@76", "begin", "$@77", "opt_work",
2146  "opt_chain", "opt_release", "opt_savepoint", "commit", "rollback",
2147  "savepoint", "release", "savepoint_ident", "union_clause", "union_list",
2148  "$@78", "union_opt", "union_order_or_limit", "$@79", "order_or_limit",
2149  "union_option", "query_specification", "query_expression_body", "$@80",
2150  "subselect", "subselect_start", "subselect_end", 0
2151 };
2152 #endif
2153 
2154 # ifdef YYPRINT
2155 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
2156  token YYLEX-NUM. */
2157 static const yytype_uint16 yytoknum[] =
2158 {
2159  0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
2160  265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
2161  275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2162  285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2163  295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2164  305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2165  315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2166  325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
2167  335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2168  345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2169  355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2170  365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2171  375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
2172  385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
2173  395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
2174  405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
2175  415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
2176  425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
2177  435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
2178  445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
2179  455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
2180  465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
2181  475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
2182  485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
2183  495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
2184  505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2185  515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
2186  525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
2187  535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
2188  545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
2189  555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
2190  565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
2191  575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
2192  585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
2193  595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
2194  605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
2195  615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
2196  61, 625, 626, 627, 124, 38, 628, 629, 45, 43,
2197  42, 47, 37, 94, 126, 630, 40, 41, 123, 125,
2198  44, 46, 64
2199 };
2200 # endif
2201 
2202 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2203 static const yytype_uint16 yyr1[] =
2204 {
2205  0, 393, 394, 394, 395, 395, 396, 396, 396, 396,
2206  396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
2207  396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
2208  396, 396, 397, 398, 397, 399, 397, 400, 397, 401,
2209  402, 401, 401, 401, 401, 403, 404, 403, 405, 403,
2210  406, 407, 409, 410, 408, 411, 411, 411, 411, 411,
2211  412, 412, 412, 413, 413, 413, 413, 413, 413, 413,
2212  414, 414, 415, 415, 416, 416, 417, 417, 418, 418,
2213  418, 419, 420, 420, 420, 420, 420, 420, 420, 420,
2214  420, 420, 420, 420, 420, 421, 421, 422, 422, 423,
2215  424, 425, 426, 426, 426, 426, 426, 426, 427, 428,
2216  428, 429, 429, 430, 430, 431, 431, 432, 432, 432,
2217  432, 432, 433, 433, 434, 435, 435, 436, 438, 437,
2218  439, 439, 439, 439, 439, 439, 439, 440, 439, 439,
2219  439, 439, 439, 439, 439, 439, 439, 439, 439, 439,
2220  439, 441, 441, 441, 442, 442, 443, 443, 443, 444,
2221  444, 444, 445, 446, 446, 447, 447, 447, 448, 448,
2222  449, 449, 450, 450, 450, 451, 451, 452, 452, 452,
2223  453, 453, 453, 453, 454, 454, 454, 454, 455, 455,
2224  456, 456, 457, 457, 457, 457, 458, 458, 459, 459,
2225  460, 460, 460, 460, 460, 461, 461, 462, 462, 463,
2226  463, 463, 463, 463, 464, 464, 465, 466, 466, 467,
2227  467, 468, 468, 469, 470, 470, 471, 471, 472, 472,
2228  472, 472, 473, 473, 473, 473, 473, 474, 474, 474,
2229  474, 474, 475, 476, 476, 477, 477, 478, 478, 479,
2230  479, 479, 480, 480, 481, 482, 482, 483, 483, 484,
2231  484, 485, 486, 486, 486, 487, 487, 488, 488, 489,
2232  489, 490, 490, 491, 491, 492, 492, 494, 493, 495,
2233  493, 496, 496, 496, 496, 497, 497, 497, 498, 498,
2234  499, 500, 500, 500, 501, 500, 502, 503, 500, 500,
2235  500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
2236  500, 500, 504, 504, 505, 505, 506, 506, 506, 507,
2237  507, 507, 508, 509, 509, 511, 510, 513, 512, 515,
2238  514, 516, 516, 517, 518, 519, 519, 520, 520, 521,
2239  521, 523, 522, 525, 526, 524, 527, 527, 527, 527,
2240  527, 528, 529, 529, 530, 530, 531, 531, 532, 532,
2241  533, 533, 533, 533, 533, 534, 534, 534, 535, 535,
2242  535, 536, 536, 537, 538, 539, 539, 539, 539, 539,
2243  540, 540, 541, 541, 541, 541, 541, 541, 541, 541,
2244  541, 541, 541, 542, 542, 542, 542, 542, 542, 543,
2245  543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
2246  543, 543, 544, 544, 544, 544, 544, 544, 544, 544,
2247  544, 544, 544, 544, 544, 544, 544, 545, 545, 545,
2248  545, 545, 545, 546, 546, 547, 547, 547, 547, 547,
2249  547, 547, 547, 547, 547, 547, 547, 547, 547, 547,
2250  547, 547, 547, 547, 547, 547, 547, 547, 547, 547,
2251  547, 548, 548, 548, 548, 548, 548, 548, 548, 548,
2252  548, 548, 548, 548, 548, 548, 548, 548, 548, 548,
2253  548, 548, 548, 548, 548, 549, 549, 549, 549, 549,
2254  549, 549, 549, 549, 549, 549, 549, 549, 549, 549,
2255  549, 549, 549, 549, 549, 549, 549, 549, 550, 550,
2256  550, 550, 550, 550, 550, 550, 550, 550, 550, 550,
2257  550, 550, 550, 550, 550, 552, 551, 553, 553, 554,
2258  554, 555, 556, 556, 556, 556, 557, 558, 556, 556,
2259  556, 556, 556, 556, 556, 556, 556, 556, 556, 559,
2260  556, 561, 560, 562, 562, 562, 563, 563, 564, 564,
2261  565, 565, 567, 566, 568, 568, 568, 568, 568, 568,
2262  568, 568, 568, 568, 568, 568, 569, 569, 570, 570,
2263  571, 571, 572, 572, 573, 573, 574, 575, 575, 576,
2264  576, 577, 577, 578, 577, 579, 577, 580, 577, 577,
2265  581, 577, 582, 577, 577, 583, 577, 584, 577, 577,
2266  585, 585, 585, 587, 586, 586, 586, 588, 589, 590,
2267  588, 591, 593, 594, 592, 596, 595, 598, 599, 597,
2268  600, 601, 602, 602, 603, 603, 603, 603, 604, 604,
2269  606, 605, 607, 605, 608, 608, 609, 610, 609, 612,
2270  611, 613, 613, 614, 614, 615, 615, 616, 616, 617,
2271  617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
2272  617, 618, 618, 619, 619, 619, 619, 619, 619, 619,
2273  619, 619, 620, 620, 621, 621, 622, 622, 623, 624,
2274  623, 625, 626, 625, 627, 627, 628, 628, 629, 629,
2275  630, 630, 631, 632, 632, 633, 634, 634, 636, 635,
2276  637, 637, 638, 638, 638, 639, 639, 640, 640, 641,
2277  642, 642, 642, 643, 643, 643, 644, 644, 645, 645,
2278  645, 645, 645, 645, 646, 646, 646, 646, 646, 648,
2279  647, 649, 649, 650, 652, 651, 654, 653, 653, 653,
2280  655, 655, 656, 655, 655, 657, 657, 658, 659, 659,
2281  660, 660, 661, 662, 662, 663, 663, 664, 664, 665,
2282  665, 667, 668, 666, 670, 671, 669, 672, 672, 673,
2283  674, 674, 674, 675, 674, 676, 676, 677, 677, 678,
2284  677, 679, 677, 680, 680, 681, 681, 682, 683, 683,
2285  684, 684, 686, 685, 687, 687, 688, 688, 689, 689,
2286  690, 691, 690, 693, 692, 694, 694, 695, 696, 696,
2287  697, 699, 698, 700, 700, 701, 702, 702, 704, 703,
2288  705, 705, 705, 705, 705, 705, 705, 705, 705, 705,
2289  705, 705, 705, 705, 705, 705, 706, 706, 707, 707,
2290  708, 708, 708, 710, 709, 711, 709, 712, 712, 713,
2291  713, 714, 714, 714, 716, 715, 717, 717, 719, 718,
2292  718, 718, 718, 718, 720, 720, 721, 722, 722, 722,
2293  723, 725, 726, 727, 728, 724, 729, 730, 730, 731,
2294  731, 731, 732, 732, 732, 732, 732, 732, 733, 733,
2295  734, 734, 735, 735, 735, 735, 736, 736, 737, 737,
2296  738, 738, 739, 739, 740, 740, 741, 741, 741, 742,
2297  742, 743, 743, 744, 744, 745, 745, 746, 746, 746,
2298  747, 747, 747, 748, 748, 748, 748, 748, 748, 748,
2299  748, 748, 749, 749, 749, 749, 749, 749, 749, 750,
2300  750, 750, 751, 751, 751, 751, 751, 752, 752, 752,
2301  752, 752, 753, 753, 754, 754, 755, 756, 756, 757,
2302  757, 757, 758, 758, 758, 758, 759, 759, 759, 760,
2303  761, 762, 762, 763, 764, 765, 766, 766, 767, 767,
2304  768, 768, 769, 769, 769, 770, 770, 770, 770, 770,
2305  770, 770, 770, 770, 770, 770, 770, 770, 770, 770,
2306  770, 770, 770, 770, 770, 770, 771, 771, 771, 771,
2307  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2308  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2309  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2310  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2311  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2312  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2313  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2314  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2315  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2316  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2317  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2318  771, 771, 771, 771, 771, 771, 771, 771, 771, 771,
2319  771, 771, 771, 773, 772, 774, 774, 775, 775, 777,
2320  776, 778, 778, 778, 778, 779, 779, 780, 780, 780,
2321  780, 781, 781, 781, 781, 782, 782, 783, 783, 784,
2322  784, 785, 785, 785, 786, 786, 787, 788, 788, 788,
2323  788, 789, 789, 789, 789, 789, 790, 790, 792, 791,
2324  794, 793, 795, 795, 796, 796, 796, 797, 797, 797,
2325  798, 798, 799, 800, 800, 801, 802, 803, 804, 804,
2326  806, 805, 807, 807, 807, 809, 808, 810, 810, 811,
2327  811, 811, 812, 812, 813, 814, 813, 815, 816, 817
2328 };
2329 
2330 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
2331 static const yytype_uint8 yyr2[] =
2332 {
2333  0, 2, 1, 2, 1, 1, 1, 1, 1, 1,
2334  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2335  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2336  1, 1, 3, 0, 7, 0, 13, 0, 6, 5,
2337  0, 5, 4, 2, 2, 0, 0, 4, 0, 6,
2338  2, 1, 0, 0, 6, 0, 1, 2, 3, 1,
2339  1, 2, 3, 1, 3, 3, 2, 3, 3, 3,
2340  0, 1, 0, 3, 0, 1, 1, 2, 1, 2,
2341  3, 1, 3, 3, 3, 3, 3, 2, 3, 3,
2342  3, 3, 3, 1, 1, 2, 1, 1, 1, 4,
2343  4, 4, 1, 1, 1, 1, 1, 1, 1, 1,
2344  2, 1, 3, 1, 1, 2, 2, 7, 8, 8,
2345  2, 2, 0, 1, 2, 0, 1, 2, 0, 4,
2346  2, 5, 2, 2, 2, 5, 2, 0, 6, 5,
2347  2, 2, 2, 2, 3, 3, 3, 2, 2, 2,
2348  1, 2, 1, 1, 4, 4, 2, 2, 3, 0,
2349  3, 1, 5, 0, 3, 0, 1, 1, 0, 3,
2350  0, 1, 0, 3, 1, 1, 2, 2, 1, 2,
2351  0, 2, 3, 2, 0, 2, 3, 2, 0, 1,
2352  2, 1, 1, 2, 2, 1, 0, 1, 2, 1,
2353  1, 1, 3, 2, 1, 0, 1, 2, 1, 1,
2354  3, 2, 4, 1, 0, 2, 1, 1, 1, 0,
2355  1, 0, 1, 5, 0, 3, 3, 1, 0, 2,
2356  2, 2, 0, 3, 3, 6, 6, 1, 1, 2,
2357  2, 2, 1, 2, 2, 1, 1, 0, 1, 1,
2358  1, 1, 0, 1, 0, 1, 2, 0, 1, 1,
2359  2, 2, 1, 3, 2, 1, 1, 4, 2, 1,
2360  4, 0, 1, 0, 2, 1, 3, 0, 7, 0,
2361  5, 0, 2, 2, 1, 0, 1, 1, 1, 3,
2362  2, 3, 2, 4, 0, 6, 0, 0, 8, 3,
2363  4, 3, 3, 2, 2, 6, 5, 3, 3, 1,
2364  1, 1, 0, 1, 0, 1, 0, 2, 1, 0,
2365  1, 1, 3, 0, 3, 0, 4, 0, 4, 0,
2366  4, 1, 3, 3, 1, 2, 4, 2, 3, 2,
2367  3, 0, 3, 0, 0, 6, 2, 1, 1, 2,
2368  2, 7, 0, 1, 2, 1, 1, 1, 1, 1,
2369  1, 1, 1, 1, 1, 0, 2, 4, 3, 1,
2370  1, 3, 4, 0, 0, 0, 2, 2, 1, 1,
2371  0, 2, 3, 3, 3, 2, 3, 4, 3, 4,
2372  3, 4, 1, 3, 4, 3, 3, 6, 1, 5,
2373  6, 5, 7, 6, 8, 5, 6, 4, 5, 3,
2374  4, 1, 3, 3, 3, 3, 3, 3, 5, 5,
2375  3, 3, 3, 3, 3, 3, 1, 1, 1, 1,
2376  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2377  3, 1, 1, 1, 3, 2, 2, 2, 3, 3,
2378  5, 6, 4, 4, 2, 6, 5, 6, 4, 4,
2379  5, 4, 2, 4, 4, 4, 10, 6, 8, 6,
2380  4, 4, 6, 4, 4, 4, 7, 7, 7, 6,
2381  6, 6, 6, 3, 4, 6, 8, 2, 2, 8,
2382  8, 6, 2, 4, 6, 6, 8, 8, 6, 8,
2383  6, 2, 4, 8, 8, 2, 2, 2, 4, 4,
2384  3, 3, 5, 8, 5, 4, 6, 4, 6, 8,
2385  6, 4, 3, 3, 6, 0, 5, 0, 1, 1,
2386  3, 4, 4, 5, 5, 4, 0, 0, 7, 4,
2387  5, 4, 5, 4, 4, 4, 4, 4, 5, 0,
2388  8, 0, 3, 3, 1, 4, 0, 1, 0, 2,
2389  0, 1, 0, 3, 2, 1, 1, 2, 1, 1,
2390  2, 2, 1, 1, 1, 2, 1, 3, 0, 1,
2391  0, 2, 4, 5, 1, 1, 1, 1, 4, 1,
2392  3, 3, 3, 0, 6, 0, 6, 0, 8, 4,
2393  0, 8, 0, 10, 6, 0, 8, 0, 10, 6,
2394  1, 2, 2, 0, 4, 3, 5, 3, 0, 0,
2395  8, 1, 0, 0, 6, 0, 3, 0, 0, 5,
2396  0, 1, 0, 1, 0, 2, 3, 3, 1, 1,
2397  0, 7, 0, 7, 1, 2, 0, 0, 2, 0,
2398  2, 0, 1, 1, 1, 1, 3, 1, 3, 1,
2399  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2400  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2401  1, 1, 0, 1, 0, 2, 0, 1, 0, 0,
2402  3, 0, 0, 3, 2, 0, 0, 4, 4, 2,
2403  0, 1, 3, 3, 1, 2, 0, 1, 0, 4,
2404  4, 2, 0, 1, 1, 0, 1, 0, 1, 2,
2405  1, 3, 3, 1, 1, 1, 0, 2, 1, 1,
2406  1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
2407  2, 3, 1, 2, 0, 3, 0, 5, 2, 1,
2408  3, 5, 0, 7, 4, 1, 3, 1, 0, 2,
2409  0, 1, 5, 1, 2, 0, 3, 0, 1, 0,
2410  1, 0, 0, 7, 0, 0, 5, 2, 1, 1,
2411  1, 3, 4, 0, 3, 3, 1, 2, 2, 0,
2412  3, 0, 5, 3, 1, 3, 1, 3, 1, 1,
2413  0, 1, 0, 4, 0, 1, 3, 1, 1, 1,
2414  0, 0, 6, 0, 9, 3, 1, 3, 3, 1,
2415  3, 0, 8, 0, 1, 3, 0, 1, 0, 3,
2416  2, 3, 3, 4, 5, 5, 5, 5, 2, 2,
2417  3, 2, 3, 1, 3, 4, 0, 2, 1, 1,
2418  0, 2, 2, 0, 4, 0, 4, 1, 1, 0,
2419  1, 0, 1, 1, 0, 3, 3, 1, 0, 3,
2420  4, 1, 1, 2, 0, 1, 3, 0, 1, 1,
2421  2, 0, 0, 0, 0, 18, 1, 0, 1, 0,
2422  1, 1, 0, 1, 1, 1, 2, 2, 0, 2,
2423  2, 1, 3, 4, 3, 3, 0, 2, 2, 1,
2424  3, 3, 0, 3, 1, 1, 0, 3, 2, 3,
2425  1, 1, 2, 0, 2, 1, 2, 1, 1, 1,
2426  1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
2427  2, 2, 1, 1, 1, 1, 1, 2, 2, 1,
2428  1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
2429  1, 1, 1, 1, 3, 5, 1, 1, 1, 3,
2430  4, 5, 1, 5, 3, 2, 1, 3, 2, 1,
2431  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2432  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2433  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2434  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2435  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2436  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2437  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2438  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2439  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2440  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2441  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2442  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2443  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2444  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2445  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2446  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2447  1, 1, 1, 0, 4, 0, 1, 1, 3, 0,
2448  2, 1, 1, 1, 1, 0, 1, 0, 1, 1,
2449  1, 0, 2, 2, 2, 1, 2, 4, 5, 4,
2450  6, 1, 1, 1, 1, 1, 1, 2, 2, 2,
2451  1, 1, 1, 1, 1, 1, 1, 1, 0, 3,
2452  0, 3, 0, 1, 0, 3, 2, 0, 1, 2,
2453  0, 1, 4, 4, 5, 2, 3, 1, 0, 1,
2454  0, 4, 0, 1, 1, 0, 2, 2, 1, 0,
2455  1, 1, 2, 3, 1, 0, 5, 3, 0, 0
2456 };
2457 
2458 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
2459  Performed when YYTABLE doesn't specify something else to do. Zero
2460  means the default is an error. */
2461 static const yytype_uint16 yydefact[] =
2462 {
2463  0, 285, 0, 1190, 0, 1192, 285, 823, 857, 858,
2464  760, 2, 0, 864, 771, 877, 0, 0, 0, 774,
2465  1192, 0, 343, 1145, 828, 0, 826, 1188, 314, 0,
2466  0, 0, 0, 4, 10, 6, 27, 7, 8, 20,
2467  24, 334, 13, 14, 16, 21, 30, 11, 28, 26,
2468  12, 859, 15, 17, 31, 18, 25, 29, 5, 9,
2469  22, 23, 19, 0, 287, 286, 314, 1187, 1186, 325,
2470  1192, 327, 1193, 1194, 0, 72, 71, 0, 35, 824,
2471  0, 0, 758, 761, 0, 0, 981, 994, 982, 1173,
2472  993, 983, 992, 0, 765, 1175, 1172, 1174, 763, 1171,
2473  0, 314, 878, 879, 0, 886, 881, 0, 329, 0,
2474  1194, 1207, 1205, 335, 341, 352, 1146, 1143, 1157, 323,
2475  827, 0, 0, 315, 0, 1016, 1017, 1018, 1019, 1020,
2476  1021, 1022, 1023, 996, 1024, 1026, 1025, 1027, 1028, 1029,
2477  997, 998, 1030, 1031, 1032, 999, 1033, 1000, 1034, 1035,
2478  1036, 1037, 1038, 1001, 1039, 1041, 1040, 1042, 1043, 1044,
2479  1002, 1045, 1046, 1003, 1047, 1048, 1049, 1058, 1004, 1050,
2480  1052, 1051, 1053, 1054, 1055, 1056, 1060, 1061, 1062, 1005,
2481  1057, 1063, 1059, 1064, 1065, 1066, 1067, 1068, 1069, 1070,
2482  1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080,
2483  1081, 1082, 1084, 1083, 1085, 1087, 1086, 1088, 1090, 1089,
2484  1091, 1006, 1092, 1093, 1094, 1095, 1096, 1007, 1097, 1098,
2485  1099, 1100, 1101, 1102, 1103, 1104, 1105, 1008, 1106, 1107,
2486  1108, 1109, 1110, 1009, 1111, 1010, 1113, 1112, 1011, 1114,
2487  1116, 1012, 1115, 1117, 1013, 1118, 1014, 1119, 1120, 1121,
2488  1122, 1123, 1124, 1125, 1126, 1129, 1130, 1128, 1127, 1015,
2489  1131, 1132, 1133, 1134, 1136, 1135, 1138, 1137, 1139, 1140,
2490  1141, 1142, 880, 986, 979, 987, 995, 343, 0, 0,
2491  1, 3, 1056, 0, 855, 853, 0, 976, 279, 0,
2492  0, 1191, 0, 0, 1197, 32, 980, 0, 0, 72,
2493  252, 0, 750, 0, 0, 0, 758, 764, 0, 767,
2494  0, 871, 872, 1187, 865, 867, 868, 0, 1017, 1023,
2495  0, 939, 578, 0, 0, 0, 1030, 1031, 0, 0,
2496  380, 380, 380, 0, 0, 0, 1043, 1044, 960, 0,
2497  0, 0, 0, 936, 961, 0, 938, 1066, 0, 0,
2498  0, 1071, 877, 0, 958, 0, 1081, 1082, 0, 0,
2499  1085, 0, 380, 935, 957, 0, 1101, 0, 0, 0,
2500  1110, 1111, 0, 0, 1120, 0, 0, 380, 984, 1129,
2501  1130, 0, 0, 937, 1015, 959, 1136, 380, 380, 380,
2502  1135, 0, 0, 0, 0, 1142, 0, 0, 0, 1228,
2503  0, 0, 551, 876, 392, 398, 411, 426, 436, 437,
2504  439, 438, 443, 442, 933, 441, 934, 435, 968, 986,
2505  925, 967, 887, 1206, 0, 0, 779, 775, 778, 757,
2506  1200, 1197, 1208, 357, 356, 359, 361, 364, 358, 360,
2507  373, 353, 363, 362, 355, 1149, 0, 0, 0, 850,
2508  715, 1158, 251, 250, 249, 1159, 843, 1160, 846, 0,
2509  0, 715, 0, 829, 990, 991, 0, 0, 0, 322,
2510  825, 1189, 0, 337, 0, 1212, 978, 0, 861, 0,
2511  219, 0, 326, 755, 328, 1196, 0, 0, 1198, 1202,
2512  0, 37, 0, 253, 0, 821, 759, 754, 0, 0,
2513  0, 768, 769, 873, 0, 0, 874, 772, 0, 686,
2514  454, 579, 0, 0, 0, 0, 0, 0, 0, 686,
2515  0, 488, 487, 462, 0, 0, 0, 0, 940, 0,
2516  0, 0, 1228, 0, 556, 0, 0, 0, 1228, 0,
2517  0, 0, 0, 686, 0, 0, 686, 0, 0, 385,
2518  0, 492, 0, 0, 0, 0, 0, 0, 0, 686,
2519  686, 0, 0, 686, 0, 501, 0, 0, 0, 941,
2520  0, 0, 0, 506, 505, 507, 0, 0, 686, 686,
2521  0, 0, 446, 445, 447, 0, 0, 0, 0, 0,
2522  0, 0, 0, 0, 0, 428, 0, 430, 432, 427,
2523  431, 429, 0, 0, 0, 0, 0, 0, 0, 0,
2524  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2525  0, 0, 926, 525, 0, 888, 0, 330, 331, 0,
2526  777, 0, 1201, 0, 1203, 1219, 342, 1209, 370, 344,
2527  369, 0, 354, 1144, 1147, 1155, 848, 849, 0, 0,
2528  72, 0, 0, 0, 830, 0, 839, 716, 850, 0,
2529  846, 850, 838, 0, 841, 850, 850, 0, 0, 338,
2530  1213, 336, 1214, 0, 856, 929, 928, 854, 862, 927,
2531  863, 977, 220, 280, 0, 277, 0, 1195, 1199, 73,
2532  55, 33, 0, 688, 0, 751, 766, 770, 762, 0,
2533  866, 875, 869, 0, 0, 687, 686, 0, 562, 0,
2534  580, 0, 511, 576, 0, 0, 0, 0, 536, 0,
2535  562, 381, 510, 0, 0, 0, 0, 0, 0, 0,
2536  660, 661, 662, 663, 673, 664, 665, 666, 675, 680,
2537  667, 668, 676, 677, 678, 669, 679, 674, 670, 681,
2538  0, 659, 557, 549, 0, 0, 0, 0, 0, 523,
2539  0, 0, 686, 0, 0, 0, 686, 0, 0, 0,
2540  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2541  0, 0, 686, 0, 0, 672, 0, 671, 0, 0,
2542  0, 0, 0, 0, 0, 483, 522, 0, 0, 0,
2543  0, 0, 449, 0, 448, 622, 0, 1224, 1229, 0,
2544  0, 1161, 552, 554, 384, 382, 383, 395, 388, 0,
2545  393, 386, 390, 433, 1020, 396, 0, 0, 423, 1228,
2546  695, 424, 0, 0, 0, 0, 409, 412, 413, 414,
2547  415, 0, 417, 0, 416, 420, 421, 422, 425, 988,
2548  989, 440, 444, 373, 969, 0, 0, 0, 52, 783,
2549  0, 0, 0, 789, 776, 780, 1204, 1221, 1220, 1210,
2550  373, 706, 374, 374, 967, 1149, 1152, 1153, 1156, 1154,
2551  0, 1151, 1150, 1165, 846, 0, 0, 842, 851, 852,
2552  724, 725, 723, 719, 720, 831, 847, 850, 832, 846,
2553  840, 844, 324, 813, 816, 0, 0, 715, 1218, 1216,
2554  800, 219, 756, 0, 0, 38, 59, 60, 56, 63,
2555  74, 254, 689, 706, 752, 870, 810, 0, 0, 532,
2556  0, 0, 0, 0, 0, 0, 461, 0, 508, 509,
2557  0, 0, 535, 0, 0, 0, 463, 464, 458, 769,
2558  452, 0, 0, 465, 0, 0, 0, 0, 0, 0,
2559  0, 541, 515, 470, 0, 539, 0, 471, 493, 0,
2560  517, 0, 0, 0, 0, 473, 545, 543, 0, 0,
2561  0, 0, 547, 502, 0, 0, 474, 0, 0, 0,
2562  0, 0, 0, 0, 475, 0, 459, 544, 546, 521,
2563  0, 484, 0, 1222, 621, 352, 622, 0, 0, 1219,
2564  1227, 453, 970, 0, 0, 0, 0, 0, 389, 394,
2565  387, 391, 1228, 0, 0, 0, 0, 407, 0, 1228,
2566  695, 410, 0, 0, 0, 0, 528, 529, 0, 985,
2567  882, 332, 333, 352, 0, 802, 787, 794, 788, 0,
2568  0, 0, 786, 963, 962, 1208, 0, 368, 613, 744,
2569  365, 348, 717, 707, 347, 375, 371, 0, 1148, 0,
2570  1176, 0, 0, 1166, 850, 0, 845, 0, 0, 833,
2571  688, 0, 688, 799, 798, 0, 708, 1217, 801, 0,
2572  312, 312, 800, 312, 800, 0, 0, 0, 0, 312,
2573  0, 0, 0, 310, 0, 312, 0, 319, 0, 0,
2574  309, 219, 81, 93, 94, 0, 278, 284, 0, 288,
2575  311, 0, 380, 66, 0, 0, 61, 0, 57, 0,
2576  0, 125, 34, 219, 892, 75, 78, 255, 0, 0,
2577  726, 753, 0, 773, 0, 0, 533, 563, 0, 581,
2578  0, 456, 163, 565, 163, 574, 572, 159, 568, 566,
2579  573, 569, 0, 577, 0, 537, 534, 0, 0, 512,
2580  0, 560, 0, 0, 0, 460, 514, 0, 542, 540,
2581  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2582  548, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2583  0, 0, 450, 373, 339, 0, 1223, 1225, 1162, 1163,
2584  1164, 273, 553, 0, 405, 401, 0, 399, 694, 0,
2585  0, 0, 408, 419, 418, 374, 526, 373, 971, 889,
2586  373, 784, 796, 0, 804, 0, 0, 781, 791, 0,
2587  0, 790, 1211, 631, 630, 0, 587, 688, 589, 586,
2588  585, 584, 0, 630, 739, 0, 0, 345, 350, 346,
2589  718, 349, 0, 372, 379, 378, 964, 969, 0, 0,
2590  1161, 0, 834, 837, 836, 722, 721, 835, 815, 706,
2591  809, 808, 817, 0, 218, 217, 101, 216, 313, 271,
2592  246, 245, 292, 0, 122, 271, 242, 290, 0, 0,
2593  0, 0, 0, 380, 87, 303, 282, 0, 0, 0,
2594  0, 304, 0, 0, 283, 0, 0, 321, 320, 0,
2595  0, 0, 77, 96, 0, 800, 800, 219, 125, 0,
2596  316, 122, 128, 972, 0, 67, 65, 64, 62, 58,
2597  737, 738, 736, 734, 735, 69, 68, 50, 0, 0,
2598  51, 0, 111, 113, 114, 43, 893, 895, 894, 44,
2599  0, 219, 79, 0, 256, 0, 690, 0, 822, 811,
2600  0, 485, 582, 0, 0, 564, 571, 0, 575, 161,
2601  567, 570, 455, 457, 0, 0, 0, 491, 558, 561,
2602  0, 0, 467, 0, 469, 516, 494, 518, 0, 472,
2603  451, 0, 495, 0, 500, 498, 0, 0, 0, 481,
2604  0, 479, 0, 480, 0, 482, 520, 524, 623, 340,
2605  0, 0, 555, 397, 0, 406, 403, 0, 400, 375,
2606  530, 891, 890, 0, 53, 0, 0, 0, 805, 807,
2607  793, 1212, 782, 785, 630, 613, 0, 0, 610, 632,
2608  0, 632, 613, 613, 696, 613, 682, 627, 0, 0,
2609  749, 0, 745, 366, 0, 377, 376, 0, 0, 1184,
2610  1185, 1182, 1183, 1181, 1167, 0, 0, 726, 966, 709,
2611  712, 127, 272, 0, 0, 0, 247, 121, 271, 120,
2612  123, 254, 0, 84, 294, 83, 308, 88, 271, 301,
2613  302, 299, 82, 90, 296, 702, 704, 712, 307, 86,
2614  85, 102, 103, 104, 105, 106, 107, 108, 89, 95,
2615  0, 0, 289, 0, 975, 0, 318, 291, 0, 115,
2616  116, 0, 0, 92, 91, 219, 40, 74, 125, 897,
2617  896, 0, 46, 80, 265, 266, 261, 0, 727, 0,
2618  0, 583, 0, 0, 538, 0, 0, 0, 0, 0,
2619  0, 0, 0, 0, 0, 0, 0, 0, 478, 476,
2620  477, 717, 1226, 274, 402, 0, 531, 883, 717, 795,
2621  797, 803, 0, 792, 0, 706, 625, 0, 612, 611,
2622  633, 0, 613, 632, 632, 0, 592, 591, 0, 691,
2623  590, 683, 0, 649, 615, 352, 748, 746, 0, 740,
2624  742, 0, 965, 0, 0, 1180, 1168, 0, 1169, 814,
2625  0, 713, 714, 711, 124, 271, 243, 248, 244, 254,
2626  0, 0, 0, 0, 300, 0, 0, 705, 100, 98,
2627  97, 99, 293, 317, 224, 168, 180, 184, 188, 205,
2628  180, 159, 172, 137, 159, 168, 180, 159, 172, 150,
2629  188, 205, 180, 180, 0, 153, 214, 0, 196, 196,
2630  974, 42, 1215, 892, 112, 0, 1208, 0, 0, 486,
2631  164, 160, 0, 489, 490, 559, 550, 513, 0, 468,
2632  519, 496, 499, 497, 503, 504, 365, 365, 109, 404,
2633  0, 54, 806, 1219, 682, 717, 613, 588, 613, 599,
2634  0, 0, 613, 595, 593, 597, 0, 692, 706, 685,
2635  614, 646, 373, 898, 743, 0, 367, 1178, 1177, 1179,
2636  0, 712, 0, 0, 0, 306, 0, 316, 214, 703,
2637  0, 228, 0, 165, 143, 149, 0, 0, 0, 175,
2638  222, 178, 151, 192, 195, 134, 189, 191, 0, 0,
2639  0, 209, 213, 132, 206, 208, 141, 196, 172, 0,
2640  174, 157, 0, 196, 165, 148, 196, 156, 136, 0,
2641  130, 142, 147, 0, 0, 129, 0, 201, 0, 0,
2642  200, 204, 133, 197, 199, 140, 0, 41, 39, 48,
2643  47, 0, 712, 269, 0, 0, 0, 624, 110, 0,
2644  618, 616, 617, 626, 0, 584, 613, 613, 0, 584,
2645  0, 0, 0, 700, 712, 0, 717, 650, 0, 628,
2646  0, 906, 741, 1170, 710, 0, 0, 0, 0, 0,
2647  0, 0, 305, 930, 295, 297, 0, 227, 0, 232,
2648  0, 166, 167, 170, 0, 181, 183, 0, 185, 187,
2649  194, 193, 176, 179, 190, 177, 0, 380, 953, 0,
2650  952, 211, 954, 0, 207, 144, 158, 0, 0, 146,
2651  170, 145, 0, 0, 215, 0, 944, 943, 946, 0,
2652  0, 942, 203, 945, 0, 198, 973, 1215, 257, 0,
2653  268, 0, 812, 819, 0, 162, 466, 884, 0, 600,
2654  0, 604, 609, 605, 0, 596, 594, 0, 701, 0,
2655  697, 699, 693, 351, 638, 639, 0, 0, 644, 648,
2656  717, 0, 0, 0, 0, 899, 901, 0, 747, 0,
2657  0, 257, 932, 931, 316, 225, 0, 229, 230, 231,
2658  0, 223, 169, 171, 155, 182, 950, 949, 951, 186,
2659  955, 210, 956, 380, 173, 0, 275, 154, 205, 180,
2660  188, 948, 947, 202, 49, 0, 800, 36, 258, 262,
2661  259, 712, 0, 0, 0, 898, 619, 0, 0, 0,
2662  0, 0, 657, 712, 634, 634, 645, 629, 0, 0,
2663  0, 0, 900, 0, 0, 907, 909, 0, 257, 117,
2664  298, 226, 0, 0, 212, 188, 0, 131, 139, 135,
2665  264, 0, 260, 267, 270, 818, 820, 906, 706, 601,
2666  0, 606, 0, 598, 0, 698, 0, 642, 640, 904,
2667  905, 0, 902, 0, 0, 908, 119, 118, 238, 0,
2668  237, 0, 234, 233, 138, 276, 732, 733, 729, 730,
2669  728, 731, 263, 912, 717, 0, 0, 658, 0, 635,
2670  0, 0, 0, 903, 911, 910, 240, 241, 239, 0,
2671  0, 0, 916, 620, 603, 608, 637, 636, 651, 0,
2672  0, 0, 0, 0, 923, 654, 0, 655, 652, 653,
2673  0, 236, 235, 914, 915, 913, 918, 0, 0, 920,
2674  921, 0, 885, 643, 0, 641, 922, 917, 0, 924,
2675  656, 919
2676 };
2677 
2678 /* YYDEFGOTO[NTERM-NUM]. */
2679 static const yytype_int16 yydefgoto[] =
2680 {
2681  -1, 31, 32, 33, 34, 920, 300, 690, 1132, 1672,
2682  1359, 1676, 1897, 1133, 1349, 863, 1043, 1578, 915, 916,
2683  917, 77, 298, 1134, 1110, 1135, 1136, 1112, 1326, 1641,
2684  1113, 1114, 683, 1517, 1518, 1696, 1351, 1352, 1353, 1354,
2685  1489, 1490, 1293, 1294, 1331, 1531, 1666, 1772, 1667, 1668,
2686  1669, 1378, 1379, 1375, 1853, 1743, 1954, 1771, 1790, 1791,
2687  1744, 1745, 1755, 1756, 1757, 1792, 1793, 1794, 1763, 1764,
2688  1765, 1785, 1285, 1286, 1115, 1758, 1530, 1741, 1846, 1849,
2689  1951, 2052, 1295, 1488, 1296, 1628, 462, 494, 1137, 1138,
2690  1977, 1978, 1979, 1980, 1546, 1801, 1802, 1481, 1422, 1965,
2691  35, 911, 480, 1116, 66, 1117, 1118, 1119, 1633, 1635,
2692  1944, 1297, 124, 1527, 1319, 36, 469, 37, 290, 38,
2693  292, 39, 424, 627, 628, 40, 41, 279, 1008, 113,
2694  432, 114, 115, 871, 1060, 1697, 440, 441, 442, 443,
2695  444, 1257, 639, 640, 641, 1065, 1263, 521, 713, 404,
2696  405, 406, 602, 826, 407, 408, 409, 410, 411, 853,
2697  1035, 1036, 1037, 412, 941, 1384, 952, 413, 590, 812,
2698  753, 1558, 1388, 707, 930, 1162, 1002, 512, 934, 710,
2699  1246, 1247, 1248, 1249, 1250, 1821, 1820, 1822, 1987, 1910,
2700  1989, 1914, 1453, 1251, 1252, 1584, 1908, 2028, 1003, 1004,
2701  1005, 1571, 1585, 1706, 1604, 1605, 1930, 1444, 1253, 1591,
2702  2037, 1927, 1928, 2072, 2071, 1929, 1827, 1828, 1720, 1721,
2703  2096, 2097, 2098, 1991, 750, 786, 751, 1602, 1603, 708,
2704  923, 1139, 1718, 1825, 1027, 1599, 1823, 1920, 1120, 1505,
2705  1506, 1062, 1063, 1283, 1479, 1623, 656, 1698, 1260, 893,
2706  894, 1368, 2062, 1345, 1460, 1461, 1609, 1610, 1064, 1254,
2707  1462, 1723, 42, 1141, 482, 483, 304, 85, 43, 94,
2708  309, 502, 698, 44, 101, 703, 45, 109, 631, 427,
2709  428, 864, 1044, 1051, 865, 1055, 1441, 1046, 1231, 1232,
2710  1085, 1089, 1047, 1234, 1437, 1438, 1282, 1143, 1549, 46,
2711  1082, 903, 904, 1902, 1903, 47, 693, 80, 48, 121,
2712  49, 118, 463, 658, 659, 654, 50, 478, 477, 51,
2713  284, 677, 52, 100, 314, 315, 506, 702, 53, 104,
2714  54, 55, 422, 1229, 1700, 1985, 106, 626, 1433, 1360,
2715  1831, 1935, 1936, 1938, 2005, 2006, 2082, 2105, 2094, 2108,
2716  2109, 2112, 414, 678, 1842, 415, 1892, 1959, 1871, 416,
2717  1052, 1053, 1480, 417, 418, 1332, 429, 286, 295, 419,
2718  850, 420, 1040, 421, 1121, 466, 97, 275, 276, 56,
2719  445, 117, 643, 644, 645, 880, 881, 467, 1016, 882,
2720  883, 1073, 98, 99, 1071, 1616, 1474, 316, 57, 122,
2721  58, 70, 73, 294, 489, 633, 59, 60, 61, 62,
2722  112, 636, 670, 1056, 671, 672, 673, 909, 869, 807,
2723  808, 1420, 586, 587, 1010
2724 };
2725 
2726 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2727  STATE-NUM. */
2728 #define YYPACT_NINF -1713
2729 static const yytype_int16 yypact[] =
2730 {
2731  1079, 570, 371, -1713, 371, -152, 869, 81, -1713, -1713,
2732  865, -1713, 980, -1713, -1713, 71, 163, -18, 371, -1713,
2733  -152, 735, -1713, 185, -1713, 256, 402, -1713, 508, 14739,
2734  -105, 754, 627, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2735  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2736  -1713, 11159, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2737  -1713, -1713, -1713, 14739, -1713, -1713, 508, -1713, -1713, -1713,
2738  -152, -1713, -1713, 747, 14739, 628, -1713, 451, -1713, -1713,
2739  705, 14739, 710, -1713, 764, 371, -1713, -1713, -1713, -1713,
2740  -1713, -1713, -1713, 1818, 504, -1713, -1713, -1713, -1713, -1713,
2741  1157, 508, -1713, -1713, 5493, -1713, -1713, 735, -1713, 10435,
2742  41, -1713, -1713, -1713, -1713, 854, -1713, -1713, 2338, 565,
2743  -1713, 11517, 371, -1713, 11517, -1713, -1713, -1713, -1713, -1713,
2744  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2745  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2746  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2747  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2748  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2749  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2750  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2751  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2752  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2753  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2754  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2755  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2756  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2757  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2758  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -105, 551,
2759  -1713, -1713, -92, 14739, -1713, -1713, 557, 594, -1713, 630,
2760  11517, -1713, 11517, 93, -13, -1713, -1713, 775, 14739, 628,
2761  659, 11517, -1713, 880, 14739, 14739, 710, -1713, 789, 960,
2762  745, -1713, -1713, 700, 676, -1713, -1713, 10435, 698, 716,
2763  7827, -1713, 5493, 725, 730, 734, 743, 786, 788, 808,
2764  818, 818, 818, 820, 828, 833, -119, 839, -1713, 848,
2765  860, 871, 873, -1713, -1713, 877, -1713, 884, 887, 892,
2766  5882, 903, 71, 909, -1713, 916, 919, 920, 924, 926,
2767  928, 5493, 940, -1713, -1713, 950, 956, 970, 977, 981,
2768  982, 1003, 1005, 1020, 1024, 1028, 1029, 1034, -1713, 1039,
2769  1040, -112, 1044, -1713, 1049, -1713, 1050, 818, 818, 818,
2770  1055, 1064, 1065, 1075, 1080, 1082, 7827, 7827, 7827, 5493,
2771  14739, 14739, -1713, 617, 1111, -1713, 1018, 3, -1713, -1713,
2772  -1713, -1713, -1713, -1713, 755, -1713, -1713, -1713, -1713, 1083,
2773  -1713, 731, 1094, -1713, 11517, 11517, -1713, -1713, -1713, -1713,
2774  893, -13, 930, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2775  832, 854, -1713, -1713, -1713, -1713, 756, 1089, 67, -42,
2776  1198, -1713, -1713, -1713, -1713, -1713, -1713, -1713, 756, 1148,
2777  1074, 1198, 756, -1713, -1713, -1713, 1183, -121, 1425, -1713,
2778  -1713, -1713, 1209, -1713, 1118, -35, -1713, 353, 13307, 14739,
2779  1420, 11517, 1122, -1713, 1122, -1713, 1476, 1269, -1713, -1713,
2780  1406, -1713, 11517, -1713, 1393, -1713, -1713, -1713, 1330, 11517,
2781  1300, -1713, 1204, -1713, 1320, 1157, 11517, -1713, 5493, 159,
2782  -1713, 617, 1206, 5493, 1180, 5493, 5493, 5493, 5493, 165,
2783  1185, -1713, -1713, -1713, 1189, 5493, 5493, 5493, 755, 5493,
2784  11875, 5493, -1713, 2007, 1482, 5493, 5493, 5493, 5493, 1863,
2785  1195, 1192, 5493, 181, 5493, 5493, 182, 5493, 5493, -1713,
2786  3937, -1713, 7827, 5493, 5493, 5493, 5493, 5493, 5493, 1575,
2787  1575, 5493, 5493, 732, 3937, -1713, 1571, 1571, 5493, 755,
2788  3159, 5493, 1199, -1713, -1713, -1713, 1200, 11875, 1575, 1575,
2789  5493, 5493, -1713, -1713, -1713, 34, 1207, 394, 5493, 1194,
2790  1226, 5493, 5493, 5493, 7827, -1713, 624, -1713, -1713, -1713,
2791  -1713, -1713, 6271, 7827, 7827, 1211, 7827, 7827, 579, 7827,
2792  7827, 7827, 7827, 7827, 8216, 8605, 7827, 7827, 7827, 7827,
2793  117, 7827, -1713, -1713, 14739, -1713, 1444, 1212, -1713, 1280,
2794  -1713, 607, -1713, 735, -1713, 852, -1713, -1713, -1713, 1214,
2795  -1713, 5493, -1713, 1217, -1713, 650, -1713, -1713, 11517, 1229,
2796  628, 11517, 1295, 5493, -1713, 615, -1713, -1713, -42, 14739,
2797  756, -42, -1713, 11517, -1713, -42, -42, 1329, 11875, -1713,
2798  -1713, -1713, -1713, 28, -1713, -1713, -1713, -1713, -1713, -1713,
2799  -1713, -1713, -1713, -1713, 1569, -1713, 11517, -1713, -1713, -1713,
2800  992, -1713, 14739, 1254, 11517, 1122, -1713, -1713, -1713, 1432,
2801  -1713, 1122, -1713, 607, 87, -1713, 1575, 1236, -1713, 5493,
2802  -36, 329, -1713, 617, 572, 644, 127, 99, -1713, 1238,
2803  1246, -1713, -1713, 109, 113, 144, 150, 1240, 223, 1243,
2804  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2805  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2806  1499, -1713, -1713, -1713, 247, 118, 122, 40, 1253, -1713,
2807  5493, 154, 1575, 1247, 272, 278, 1575, 1252, 161, 321,
2808  332, 1812, 333, 166, 176, 180, 194, 345, 1256, 1258,
2809  197, 53, 1575, 1260, 348, -1713, 1261, -1713, 1264, 351,
2810  4326, 4715, 5104, 91, 202, -1713, -1713, 1263, 1272, 1277,
2811  74, 357, -1713, 5493, -1713, -1713, 418, -1713, 1333, 102,
2812  14739, 599, -1713, 1388, -1713, 76, 1657, -1713, -1713, 722,
2813  -1713, -1713, -1713, -1713, 1287, -1713, 1292, 1121, 1296, 5493,
2814  8, 1296, 7827, 1294, 7827, 7827, 2015, 2165, 2203, 1654,
2815  1654, 5882, 693, 5882, 693, 1296, 1296, 1296, 1299, -1713,
2816  -1713, -1713, 1636, 1304, 1303, 1380, 11517, 11517, -1713, -1713,
2817  1313, 1313, 10068, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2818  -1713, 750, 617, -1713, 1309, -1713, -1713, -1713, -1713, -1713,
2819  1690, 1316, -1713, -1713, 756, 1318, 14739, -1713, -1713, 617,
2820  -1713, -1713, -1713, -1713, -84, -1713, -1713, -42, -1713, 756,
2821  -1713, -1713, -1713, 1319, -1713, 453, 1679, 1198, -1713, -1713,
2822  1342, 2337, -1713, 6, 1343, -1713, -1713, 82, 495, 1344,
2823  1630, -1713, -1713, 1488, -1713, -1713, 1500, 6660, 1332, -1713,
2824  5493, 92, 5493, 5493, 1614, 1618, -1713, 5493, -1713, -1713,
2825  1618, 5493, -1713, 1340, 1572, 1578, -1713, -1713, -1713, 1204,
2826  -1713, 5493, 5493, -1713, 5493, 5493, 5493, 5493, 362, 5493,
2827  1351, -1713, -1713, -1713, 1355, -1713, 5493, -1713, -1713, 5493,
2828  -1713, 5493, 5493, 5493, 5493, -1713, -1713, -1713, 7049, 5493,
2829  5493, 1356, -1713, -1713, 5493, 5493, -1713, 5493, 107, 5493,
2830  605, 5493, 685, 5493, -1713, 5493, -1713, -1713, -1713, -1713,
2831  5493, -1713, 648, -1713, -1713, 854, -1713, 418, 1358, 852,
2832  -1713, -1713, -1713, 1350, 1357, 1360, 1818, 5493, -1713, -1713,
2833  -1713, -1713, -1713, 7827, 84, 1369, 7827, -1713, 1153, 5493,
2834  8, 2015, 1863, 1863, 5493, 1371, 1370, -1713, 14739, -1713,
2835  -1713, -1713, -1713, 854, 11875, -1713, 1376, -1713, 1376, 858,
2836  1383, 762, -1713, -1713, -1713, 930, 353, -1713, -113, -1713,
2837  614, 1587, 1198, -1713, 1639, 13665, -1713, 12591, -1713, 1608,
2838  -1713, 453, 1284, -1713, -42, -28, -1713, 615, 615, -1713,
2839  1254, 11875, 1254, -1713, -1713, 7438, -1713, -1713, -1713, 54,
2840  1047, 1726, 1342, 1726, 1342, 1458, 51, 1617, 1477, 1103,
2841  1620, 1417, 1421, -1713, 1483, 1726, 1761, 59, 1426, 1428,
2842  -1713, 937, -1713, -1713, -1713, 959, -1713, 1412, 10793, -1713,
2843  -1713, 1433, 818, -1713, 342, 736, -1713, 736, -1713, 1837,
2844  11517, 9352, -1713, 1881, 101, -1713, 1054, 1463, 1590, 5493,
2845  1627, -1713, 1711, -1713, 5882, 365, -1713, 617, 5493, 617,
2846  623, -1713, 1427, -1713, 1427, -1713, -1713, 1429, -1713, 1658,
2847  -1713, 1659, 1431, 617, 1438, 1436, -1713, 5493, 5493, -1713,
2848  380, -86, 203, 206, 119, -1713, -1713, 389, -1713, -1713,
2849  391, 403, 408, 207, 425, 767, 5882, 435, 96, 149,
2850  -1713, 209, 210, 439, 5493, 442, 5493, 552, 5493, 555,
2851  567, 578, -1713, 832, -1713, 1441, -1713, -1713, -1713, -1713,
2852  -1713, 1439, 617, 1445, -1713, -1713, 5493, -1713, 3, 7827,
2853  167, 1446, -1713, -1713, -1713, 617, -1713, -1713, -1713, 31,
2854  832, 1449, -1713, 453, 7438, 1313, 1559, -1713, -1713, 858,
2855  11875, -1713, -1713, -1713, -1713, 14739, 1176, 1254, -1713, 1450,
2856  -1713, -1713, 11517, -1713, 48, 1497, 1680, -1713, -1713, -1713,
2857  -1713, -1713, 14023, -1713, -1713, -1713, -1713, 1451, 1668, 3548,
2858  599, 453, -1713, -1713, -1713, -1713, -1713, -1713, -1713, 1488,
2859  848, 617, -1713, 5493, -1713, -1713, -1713, -1713, -1713, 12233,
2860  -1713, -1713, -1713, 58, 632, 12233, -1713, -1713, 12233, 825,
2861  12233, 1295, 54, 818, -1713, -1713, -1713, 1676, 1677, 12233,
2862  12233, -1713, 117, 1295, -1713, 12233, 11875, -1713, -1713, 11517,
2863  424, 1156, -1713, -1713, 1573, 1342, 1342, 2409, 9710, 14739,
2864  143, 138, -1713, 1459, 1837, -1713, -1713, -1713, -1713, -1713,
2865  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, 1464, 1468,
2866  -1713, 773, -1713, -1713, -1713, -1713, -1713, 1852, 1854, -1713,
2867  428, 1864, -1713, 665, -1713, 11517, 617, 615, -1713, -1713,
2868  1863, -1713, 617, 5493, 1653, -1713, -1713, 1660, -1713, -1713,
2869  -1713, -1713, -1713, -1713, 1490, 1863, 1863, -1713, 1605, -1713,
2870  5493, 5493, -1713, 5493, -1713, -1713, -1713, -1713, 5493, -1713,
2871  -1713, 1863, -1713, 5493, -1713, -1713, 5493, 5493, 5493, -1713,
2872  592, -1713, 603, -1713, 633, -1713, -1713, -1713, 1214, -1713,
2873  394, 14739, -1713, -1713, 797, -1713, -1713, 5493, -1713, 13665,
2874  -1713, -1713, -1713, 1728, 1214, 11875, 7438, 1508, 1512, -1713,
2875  -1713, -35, -1713, -1713, -1713, 455, 1741, 1742, -1713, 1682,
2876  843, 1682, 455, 455, 1776, -113, 533, -1713, 1380, 1380,
2877  -1713, 1522, -1713, -1713, 1637, -1713, -1713, 12949, 915, -1713,
2878  7827, 848, -1713, 617, -1713, 1345, 5493, 1627, 617, 1529,
2879  613, -1713, -1713, 5493, 1751, 1752, 63, -1713, 12233, -1713,
2880  -1713, -1713, 112, -1713, -1713, -1713, -1713, -1713, 12233, -1713,
2881  -1713, -1713, -1713, -1713, -1713, 1535, -1713, 613, -1713, -1713,
2882  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2883  54, 2, -1713, 826, -1713, 14739, -1713, -1713, 11517, -1713,
2884  -1713, 2087, 14739, -1713, -1713, 1881, -1713, 1712, 9710, -1713,
2885  -1713, 1559, -1713, -1713, -1713, -1713, -1713, 1540, -1713, 1760,
2886  477, 617, 1548, 849, -1713, 1550, 1551, 55, 1560, 636,
2887  216, 878, 641, 537, 643, 649, 661, 663, -1713, -1713,
2888  -1713, 545, -1713, -1713, -1713, 882, -1713, -1713, 545, -1713,
2889  -1713, -1713, 7438, -1713, -138, 1488, -1713, -4, -1713, -1713,
2890  -1713, 1785, 455, 1682, 1682, 1786, 1735, -55, 1926, 1822,
2891  -1713, -1713, 14739, -1713, -1713, 854, -1713, -1713, 1818, 1574,
2892  -1713, 1771, -1713, 22, 1732, -1713, -1713, 453, 617, -1713,
2893  5493, -1713, -1713, -1713, 617, 12233, -1713, -1713, -1713, -1713,
2894  1586, 1892, 1893, 12233, -1713, 2087, 11875, -1713, -1713, -1713,
2895  -1713, -1713, -1713, -1713, 1597, 1598, -1713, -1713, 866, 1486,
2896  -1713, 1429, -78, -1713, 1429, 1598, -1713, 1429, 1601, -1713,
2897  1175, 1473, -1713, -1713, 1606, -1713, 1942, 1611, 897, 897,
2898  1603, -1713, -8, 101, -1713, 1612, 930, 14739, 1661, -1713,
2899  -1713, -1713, 1792, -1713, -1713, -1713, -1713, -1713, 5493, -1713,
2900  -1713, -1713, -1713, -1713, -1713, -1713, 614, 614, -1713, -1713,
2901  1689, -1713, -1713, 852, 837, 1198, -113, -1713, 455, -1713,
2902  1842, 1845, 455, -1713, -1713, -1713, 5493, -1713, 1488, -1713,
2903  -1713, -3, 832, 1970, -1713, 1522, -1713, -1713, -1713, -1713,
2904  3548, 613, 1635, 1641, 14739, -1713, 1241, 143, 1942, -1713,
2905  14739, 1836, 1823, -83, 1492, 1568, 117, 1241, 1825, -1713,
2906  -1713, 1872, -1713, -1713, -1713, -1713, 1175, -1713, 1873, 1474,
2907  1707, -1713, -1713, -1713, 1486, -1713, 1492, 897, 1601, 1831,
2908  -1713, -1713, 1662, 897, -83, 1492, 897, -1713, -1713, 1833,
2909  -1713, 1492, 1492, 1834, 1295, -1713, 1835, -1713, 1354, 1965,
2910  -1713, -1713, -1713, 897, -1713, -1713, 14739, -1713, -1713, -1713,
2911  -1713, 934, 613, 1669, 11875, 1667, 667, -1713, -1713, 11517,
2912  -1713, -1713, -1713, 1450, 1609, 1713, 455, 455, 1781, 1718,
2913  5493, 5493, 1678, -137, 613, 5493, 1198, -1713, 562, 1214,
2914  741, 1882, -1713, -1713, -1713, 14739, 14739, 947, 755, 755,
2915  961, 961, -1713, -1713, -1713, -1713, 948, -1713, 7, 1847,
2916  1681, -1713, -1713, 1700, 1241, -1713, -1713, 571, -1713, -1713,
2917  -1713, -1713, -1713, -1713, -1713, -1713, 755, 818, -1713, 755,
2918  755, -1713, -1713, 1858, -1713, -1713, -1713, 967, 55, -1713,
2919  1700, -1713, 1685, 1686, -1713, 1687, -1713, -1713, -1713, 961,
2920  961, 755, -1713, -1713, 1725, -1713, -1713, -8, 19, 14739,
2921  -1713, 1868, 1701, -1713, 453, -1713, -1713, -1713, 394, -1713,
2922  1737, -1713, -1713, -1713, 1747, 617, 617, 14739, -1713, 5493,
2923  -1713, -1713, 617, -1713, -1713, -1713, 63, 63, -1713, 562,
2924  545, 2061, 2062, 1994, 2069, 741, -1713, -71, -1713, 990,
2925  998, 19, -1713, -1713, 143, -1713, 14739, -1713, -1713, -1713,
2926  1, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2927  755, -1713, 755, 818, -1713, 1015, -1713, -1713, 1486, -1713,
2928  1175, -1713, -1713, -1713, -1713, 1295, 1342, -1713, 19, -1713,
2929  -1713, 613, 1717, 11875, 7438, 1970, -1713, 5493, 1721, 5493,
2930  1722, 1021, -1713, 613, 1983, 1983, -1713, -1713, 55, 55,
2931  2081, 55, -1713, 2084, 2085, -71, -1713, 1870, 19, -1713,
2932  -1713, -1713, 44, 44, -1713, 1175, 55, -1713, 1492, -1713,
2933  -1713, 713, -1713, -1713, -1713, -1713, -1713, 1882, 1488, 617,
2934  14739, 617, 14739, -1713, 14739, -1713, 793, -1713, -1713, -1713,
2935  -1713, 55, -1713, 55, 55, -1713, -1713, -1713, -1713, 2116,
2936  -1713, 68, 1901, 1902, -1713, -1713, -1713, -1713, -1713, -1713,
2937  -1713, -1713, -1713, 1973, 1198, 1059, 1087, -1713, 2092, -1713,
2938  2093, 1745, 1749, -1713, -1713, -1713, -1713, -1713, -1713, 1798,
2939  2049, 1924, 1755, -1713, -1713, -1713, -1713, -1713, 14381, 14381,
2940  44, 44, 482, 2778, 1865, -1713, 1756, -1713, 1762, -1713,
2941  1119, -1713, -1713, -1713, -1713, -1713, -1713, 1818, 1124, -1713,
2942  -1713, 11875, -1713, -1713, 14381, -1713, -1713, -1713, 8994, 1701,
2943  -1713, -1713
2944 };
2945 
2946 /* YYPGOTO[NTERM-NUM]. */
2947 static const yytype_int16 yypgoto[] =
2948 {
2949  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2950  469, -1713, -1713, 1014, -1147, -834, -1713, -1713, -1713, -155,
2951  -1713, -1713, -251, -1089, 1035, -1003, -868, -1713, -1713, -1713,
2952  -1713, -1713, 1465, -1713, -1713, -1512, 829, 621, 1042, 1072,
2953  835, 870, -1713, -1713, 535, -1713, 534, -1713, -1713, -1713,
2954  -1713, -590, -1498, 1016, 399, 516, 294, -1063, -201, -20,
2955  -1479, -1713, -1611, -1713, 419, -538, -1713, 383, -1584, -1713,
2956  414, 443, 436, -1202, -363, -1713, 178, -1713, -1713, -1713,
2957  -1713, -905, -1713, -1713, -1078, -1713, -1713, -1713, -1713, -1342,
2958  -1712, -1713, 1046, 218, -1713, -904, 300, -673, -1713, -1713,
2959  -1713, -1713, -1713, -1713, 883, -1713, -1713, 879, -1713, -1713,
2960  -1713, 188, 151, -1630, -1713, -1713, -1713, -1713, -1713, -1713,
2961  -1713, -1713, -1713, -1713, 1349, 1723, 1151, 1930, 1202, -1713,
2962  -1713, 1937, -1713, -1713, -1713, -735, -972, -1713, -1713, -1713,
2963  1774, -1455, -1167, 1346, -793, -755, 790, -330, 1336, -1713,
2964  -567, 2011, -1713, -1713, -304, -1713, -1713, -1713, -1713, -1713,
2965  -1713, -1713, 991, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2966  -1713, -1713, -1713, 1519, -1713, 1281, -492, -1713, -1713, -1713,
2967  -1340, -1713, 765, 517, -1713, -1713, -1713, -1713, -1713, -1713,
2968  -1713, -1713, -1713, -821, -1713, -1713, -1713, -1713, -1713, 1218,
2969  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1110, -1713, -908,
2970  231, -1713, 298, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2971  -1713, 114, 145, -1055, -528, 1665, 397, -1713, 529, 1716,
2972  -936, -1713, -1713, -1713, 1210, -1713, -1713, -1713, -1713, -1713,
2973  600, -918, -642, -1713, -1713, -1470, -421, -1056, -405, -1713,
2974  -950, 760, -1713, -578, -1713, -1713, -1713, 514, 1181, -1713,
2975  -1713, -1713, -1713, -1713, 267, -79, 1935, -1713, -1713, -1713,
2976  -1713, -1713, 1297, -1713, -1713, -1713, -1713, -1713, -1713, 1927,
2977  1820, 1546, -1713, -1713, -939, -1713, -1713, 1382, -1713, 815,
2978  -1064, -1079, 1017, -1713, -1713, -1713, -1216, -1713, -1713, -1713,
2979  -1713, -1713, 1170, 142, 273, -1713, -1713, -1713, -1713, -1713,
2980  -1713, -1713, -1713, -534, 264, -582, -1713, -1713, -1713, -1713,
2981  -1713, -1713, -1713, -1713, -1713, 1750, -1713, -1713, -1713, 1905,
2982  -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713, -1713,
2983  274, -1713, 323, 233, -1713, 257, -1713, -1713, -1713, -1713,
2984  146, -1713, -317, -1503, -1041, -1045, -1713, -1713, -1713, -301,
2985  1025, 1626, -1522, -510, -1713, 50, -37, 556, 2189, -12,
2986  -2, -406, -323, 124, -608, 938, -1713, -1713, -1713, -1713,
2987  -1713, -1713, -1713, 1396, -1713, -1713, -1713, -1713, 1004, -1713,
2988  -1713, -1713, -90, -851, 800, -1713, 548, 1191, -1713, -1713,
2989  -1713, -1713, 709, 2169, 1849, -1713, -1713, -1713, -1713, -1713,
2990  -81, -1030, -428, -1713, -1400, -1713, -1713, -1713, -987, -1386,
2991  -1713, -1713, -494, -1713, -1713
2992 };
2993 
2994 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
2995  positive, shift that token. If negative, reduce the rule which
2996  number is the opposite. If YYTABLE_NINF, syntax error. */
2997 #define YYTABLE_NINF -1216
2998 static const yytype_int16 yytable[] =
2999 {
3000  95, 522, 523, 307, 637, 1140, 1259, 1269, 622, 111,
3001  96, 758, 851, 1299, 285, 1301, 510, 273, 1439, 528,
3002  727, 1309, 1207, 714, 715, 1241, 423, 817, 1050, 1070,
3003  426, 907, 551, 1203, 1572, 825, 1418, 1637, 729, 273,
3004  662, 1583, 470, 1111, 1355, 657, 591, 565, 492, 1778,
3005  620, 273, 591, 293, 1685, 620, 657, 573, 574, 575,
3006  1034, 1446, 273, 1434, 569, 591, 1701, 797, 932, 273,
3007  1975, 1230, 679, 1317, 1727, 1122, 895, 1780, 2048, 898,
3008  675, 95, 919, 900, 901, 1273, 591, 472, 591, 1639,
3009  2012, 96, 582, 583, 584, 111, 591, 273, 1731, 591,
3010  1496, -1212, 1483, 591, 591, 1587, 464, 1844, 591, 273,
3011  1237, 591, 273, 1597, 591, 1356, 465, 684, 1066, 591,
3012  1303, 591, 622, 1026, -647, 591, 897, 1275, 1276, 102,
3013  591, 591, 485, 1362, 591, 1077, 1061, 652, 650, 591,
3014  1947, 1284, 906, 1457, 1277, -1215, 1279, -647, 1458, 1630,
3015  1525, 1447, 1450, 274, 1770, 2077, 591, 1768, 905, 1243,
3016  1770, 591, 591, 622, 1448, 1714, 591, 277, 705, 1436,
3017  913, 1766, 1449, 591, 705, 287, 665, 1775, 591, 591,
3018  -860, 1431, 1483, 1781, 1782, 979, 1484, 274, 591, 1976,
3019  705, 705, 591, -1215, 1824, 676, 1703, 378, 296, 86,
3020  1851, 487, 88, 1450, 378, 296, 591, 1476, 655, 591,
3021  -45, 1631, 72, 1542, 591, 591, 1290, 289, 591, 591,
3022  1580, 591, 591, 993, 2003, 1403, 1918, 86, 591, 2009,
3023  88, 79, 666, 287, 1291, 591, 105, 488, 426, 1194,
3024  1948, 1807, 1808, 1111, 2004, 287, 1520, 1521, 287, 1704,
3025  107, 1357, 317, 1919, 706, 1852, 906, 1451, 2049, 591,
3026  718, 1834, 86, 592, 495, 88, 1526, 527, 908, 592,
3027  1770, 273, 1797, 1244, 568, 1245, 762, 766, 273, 1459,
3028  273, 278, 592, 2078, 591, 1432, 273, 1733, 1715, 273,
3029  591, 1949, 273, 273, -860, 1485, 2047, 1350, 1452, 635,
3030  1442, 2050, 830, 592, 937, 273, 1078, 486, 1769, 919,
3031  919, 1454, 103, 592, 2010, 1079, 592, 852, 1638, 653,
3032  592, 592, 91, 2051, 933, 592, 635, 684, 592, 1261,
3033  1274, 592, 1900, 591, 1586, 1025, 592, 914, 592, -647,
3034  2013, 591, 592, 935, 591, 591, 426, 592, 592, 1640,
3035  1074, 592, 1054, 1728, 1921, 1358, 592, 591, 1543, 2019,
3036  591, 1477, 1363, 591, 430, 1080, 1702, 91, 1814, 591,
3037  91, 378, 1818, 592, 591, 1966, 621, 591, 592, 592,
3038  651, 621, 1318, 592, 2017, 1707, 1528, 629, 273, 273,
3039  592, 1632, 591, 1486, 1675, 592, 592, 1993, 91, 886,
3040  593, 591, 1050, 591, 2054, 592, 593, 476, 1627, 592,
3041  1148, 116, 273, 273, 287, 591, 287, 1548, 1997, 593,
3042  591, 802, 274, 592, 803, 287, 592, 802, 274, 498,
3043  956, 592, 592, 91, 1034, 592, 592, 591, 592, 592,
3044  593, 287, 593, 980, 685, 592, 1671, 591, 1673, 1165,
3045  593, 591, 592, 593, 591, 691, 1214, 593, 593, 1111,
3046  1171, 999, 593, 1336, 1000, 593, 273, 273, 593, 273,
3047  1429, 1215, 1125, 593, 1216, 593, 592, 927, 994, 593,
3048  273, 1287, 1185, 1404, 593, 593, 1087, 273, 593, 940,
3049  2018, 1011, 1272, 593, 273, 2039, 2040, 1974, 2042, 944,
3050  813, 592, 657, 945, 1223, 1224, 1392, 592, 954, 1393,
3051  593, 2023, 955, 2055, 939, 593, 593, 919, 273, 919,
3052  593, 1346, 1986, 2035, 588, 589, 1350, 593, 1213, 1389,
3053  1030, 946, 593, 593, 1233, 1221, 1405, 947, 2073, 1406,
3054  2074, 2075, 593, 1595, 959, 1509, 593, 1601, 287, 287,
3055  592, 966, 866, 1730, 1426, 1829, 971, 1427, 592, 484,
3056  593, 592, 592, 593, 591, 273, 972, 591, 593, 593,
3057  973, 905, 593, 593, 592, 593, 593, 592, 95, 591,
3058  592, 119, 593, 913, 974, 272, 592, 978, 96, 593,
3059  591, 592, 995, 1390, 592, 1777, 1391, 1398, -684, 1407,
3060  1408, 832, 680, 681, 591, 287, 1688, 912, 849, 592,
3061  949, 884, 273, 593, 887, 591, 287, 591, 592, 288,
3062  592, 111, 1491, 287, 1070, 22, 899, 637, 1621, 591,
3063  287, 1596, 592, 1722, 953, 591, 273, 592, 593, 273,
3064  86, 63, -684, 88, 593, 591, 1800, 273, 591, 1812,
3065  888, 273, 1425, 591, 592, 591, 273, 924, 123, 962,
3066  -684, 591, -684, 2103, 592, 963, 805, 1705, 592, 1337,
3067  -684, 592, -684, 591, 273, 591, 1483, 1058, 849, 591,
3068  273, 67, 273, -684, 68, 1710, 1711, 593, -684, 1924,
3069  1006, 1843, 1956, -684, 1287, 593, 1544, 591, 593, 593,
3070  858, -684, 1843, 1622, 1502, 1876, 1861, 1350, 967, -684,
3071  648, 593, 1925, -684, 593, 120, 1810, 593, -684, 968,
3072  970, 1493, 1218, 593, 1424, 655, 663, 1243, 593, 110,
3073  1054, 593, 975, 1083, 1013, 983, 281, 1196, 986, 30,
3074  -684, 705, 833, 1255, 1001, 818, 593, 2104, 854, 1176,
3075  914, 1510, 1371, -684, 280, 593, 1533, 593, 834, 293,
3076  -126, -684, 1126, 1128, 299, 874, 695, 1387, 2026, 593,
3077  1923, 1709, 287, 701, 593, 287, 1394, 297, 1395, 291,
3078  806, 592, 1014, 896, 592, 876, 1957, 287, 64, 604,
3079  1396, 593, 1335, 65, -684, 1397, 592, 2056, 273, 1256,
3080  1826, 593, 890, 1545, 1007, 593, 1507, 592, 593, 1843,
3081  287, 91, 1399, 1955, 1541, 1629, 921, 1198, 287, 629,
3082  1042, 592, 1402, 1084, 913, 1634, 1409, 782, 835, 1411,
3083  1837, 891, 592, 877, 592, -684, 819, 301, 2057, 820,
3084  1984, 1244, 1550, 1018, 273, 273, 592, 1931, 1994, 1995,
3085  273, 1601, 592, 2058, 491, 1932, 957, 1555, 1556, 303,
3086  497, 867, 592, 433, 1679, 592, 308, -684, 95, -126,
3087  592, 878, 592, 1563, 273, -684, -684, 1015, 592, 858,
3088  86, 86, 1058, 88, 88, 1127, 859, 1815, 646, 78,
3089  592, 1819, 592, 84, -684, 607, 592, 2021, 1958, 849,
3090  2059, 1561, -684, 81, 1926, 849, 849, 74, 849, 1340,
3091  1059, 1123, 1287, 1746, 592, 1787, 957, 305, 593, 647,
3092  -684, 593, -684, -684, 1691, 1233, 1211, 468, 879, 2060,
3093  2068, 1939, 1940, 593, 1012, 1575, 82, 1019, 475, 1413,
3094  75, 1373, 1415, 481, 593, 892, -684, 868, 479, 434,
3095  1341, 821, 1732, 1747, 1416, 1092, 860, 861, 593, 936,
3096  822, 2069, 937, 787, 787, 1417, -684, -126, 1933, 593,
3097  1338, 593, 1339, 1497, -684, 2065, -684, 2066, 906, 1568,
3098  287, 287, 1271, 593, 1788, -979, 874, 490, 1094, 593,
3099  1569, 914, -684, 862, 493, 1911, 1912, -684, 496, 593,
3100  1323, 1324, 593, 500, 95, -684, 1325, 593, 2083, 593,
3101  1076, 1592, 1342, -684, 96, 593, 501, -684, -285, 1593,
3102  1570, 2070, -684, 1687, 682, 1096, 273, 593, 1690, 593,
3103  1692, 938, 273, 593, 937, 1202, 1693, -221, 937, -219,
3104  603, 1343, 503, 2061, -684, 338, -76, 1101, 1694, 1020,
3105  1695, 593, 91, 273, 1906, 273, 1934, -684, 1021, 1102,
3106  95, 1767, 504, 1264, 1773, -684, 505, 1776, -221, 273,
3107  96, 378, 1092, 616, 617, 618, 619, 849, 1748, 682,
3108  913, 1749, 86, 64, 508, 88, 344, 64, 65, 1,
3109  2, -125, 65, 1347, 1304, -219, -219, 1288, -684, 849,
3110  3, -219, 509, 1750, 1594, 1094, 273, 1289, 2053, 1748,
3111  2064, 513, 1749, 849, 604, 849, 514, 849, 273, 273,
3112  515, 849, 624, 4, 849, 86, 1507, 87, 88, 516,
3113  858, 1795, 5, 1023, 1750, 1606, 1607, 86, 1287, -684,
3114  88, 682, 1096, 6, 435, 436, 437, 438, 354, 1239,
3115  625, 679, 1240, 1288, 1400, 1344, 439, 937, 89, 1613,
3116  1537, 632, 1228, 1538, 1101, 1219, 510, 1614, 7, 8,
3117  9, -684, 517, 1789, 518, -125, 1102, 364, 10, 83,
3118  -684, 605, -70, 76, 1574, 2101, 2102, 937, 11, 1265,
3119  1615, 1267, 1108, 69, 519, 71, 12, 606, -684, 86,
3120  1290, 1751, 88, 1109, 520, 13, 524, 860, 861, 108,
3121  1511, 1512, 638, 1642, 525, 1456, 1538, 604, 1291, 526,
3122  607, 1752, 1746, 594, -684, 529, -684, -684, 273, 1875,
3123  608, 1307, 1751, 273, 530, 1879, 1681, 14, 1881, 1682,
3124  273, 1446, 1333, 1513, 1236, 595, 531, 914, 637, 604,
3125  273, 15, -152, 91, 287, 1333, 1290, 532, 1514, 533,
3126  1465, 16, 1747, 534, 635, 1689, 321, 609, 937, 1699,
3127  535, 90, 937, 536, 1291, 596, 306, 273, 537, 1298,
3128  1515, 1300, 1508, 273, -125, 597, 273, 1310, 273, 540,
3129  849, 385, 310, 1315, 1904, 542, 91, 273, 273, 1495,
3130  849, 92, 543, 273, 273, 544, 545, 273, 91, 1108,
3131  546, 1503, 547, 471, 548, 849, 273, 273, 1838, 598,
3132  1109, 1898, 464, 607, 1899, 338, 550, -76, 1547, 17,
3133  18, 1447, 465, 19, 1941, 1945, 552, 1899, 1946, 1482,
3134  1308, 20, 553, 311, 1448, 1482, -221, 21, 1492, 849,
3135  1494, 22, 1449, 273, 1964, 607, 554, 1682, 23, 1500,
3136  1501, 24, 343, 555, 874, 1504, 344, 556, 557, 1445,
3137  91, 86, 93, 87, 88, 25, 287, 2007, 655, 1886,
3138  1899, 346, -125, 1450, 661, 2008, 1466, 1748, 1899, 558,
3139  1749, 559, 610, 611, 612, 613, 614, 615, 616, 617,
3140  618, 619, 2015, 1516, 89, 2016, 560, 26, 2033, 273,
3141  561, 2034, 1750, 1333, 562, 563, 27, 273, 28, 1333,
3142  564, 29, 1333, 273, 1333, 566, 567, 1264, 354, 86,
3143  570, 87, 88, 1333, 1333, 571, 572, 1451, 338, 1333,
3144  403, 576, 1870, 287, 1361, 660, 2084, 1753, 1761, 2034,
3145  577, 578, 1333, 1524, 312, 273, 363, 364, 1872, 1753,
3146  1761, 579, 89, 95, 622, 30, 580, 313, 581, 623,
3147  68, 1891, 679, 1904, 2085, 649, 273, 2034, 1452, 344,
3148  664, 599, 600, 601, 667, 622, 273, 1893, 668, 287,
3149  86, 1644, 87, 88, 1887, 610, 611, 612, 613, 614,
3150  615, 616, 617, 618, 619, 669, 2115, 682, 849, 2114,
3151  1751, 2117, 686, 273, 2118, 687, 273, 90, 1724, 688,
3152  273, 528, 569, 849, 689, 849, 273, 610, 611, 612,
3153  613, 614, 615, 616, 617, 618, 619, 1961, 1482, 1942,
3154  1943, 354, 91, 1855, 1858, 1573, 692, 92, 1482, 1960,
3155  694, 1866, 1962, 1265, 622, 1753, 622, 378, 338, 696,
3156  1759, 697, 1839, 1761, 699, 1855, 709, 712, 383, 1888,
3157  364, 385, 721, 1759, 1855, 90, 722, 752, 760, 1854,
3158  1855, 1855, 759, 2110, 705, 810, 795, 796, 1971, 1972,
3159  273, 1228, 679, 679, 804, 679, 95, 829, 855, 344,
3160  91, 1904, 856, 857, 870, 92, 96, 875, 2110, 885,
3161  679, 91, 1333, 273, 902, 922, 910, 925, 811, 1840,
3162  1841, 273, 1333, 929, 273, 942, 943, 948, 1754, 1762,
3163  950, 951, 957, 2014, 961, 679, 90, 679, 679, 965,
3164  1754, 1762, 1152, 976, -221, 977, 1153, 982, 1092, 1643,
3165  996, 984, 287, 734, 985, 1857, 1670, -221, 511, 997,
3166  1154, 354, 1333, -221, 998, 273, 92, 1009, 1017, 591,
3167  378, -219, -219, -434, 1446, 1482, 1270, -219, 1022, 619,
3168  1029, 1094, -1216, 620, 385, 1748, 539, 1867, 1749, 1868,
3169  364, -527, 1155, 1760, 1038, 1156, 1039, 549, 1748, 1045,
3170  1067, 1749, 785, 1157, 1748, 1075, 1760, 1749, 1072, 1081,
3171  1750, 1086, 1088, 1124, 1129, 738, 906, 682, 1096, 1146,
3172  1142, 1151, 273, 1750, 1856, 1859, 1719, 1166, 273, 1750,
3173  1092, 1167, 1889, 1890, 849, 585, 1754, 1168, 1178, -221,
3174  1101, 1208, 1179, 1190, 1762, 1206, 1856, 1059, 1209, 1333,
3175  604, 1210, 1102, -219, -219, 1856, 1217, 1333, 1226, -219,
3176  1227, 1856, 1856, 1094, 1447, 739, 1235, 1761, 742, 1753,
3177  1238, 1058, 1907, 1268, 743, 86, 1288, 1448, 88, 1158,
3178  1748, 1302, 1884, 1749, 273, 1449, 1305, 1312, 1306, 1311,
3179  378, 1313, 273, 1316, 1314, 1869, 1320, 273, 1321, 682,
3180  1096, 1803, 1327, 1334, 385, 1750, 1363, 1367, 1751, 1130,
3181  1365, 744, 1369, 1374, 1753, 1377, 1450, 1855, 1382, 1380,
3182  1381, 1751, 1101, 273, 273, 1383, 937, 1751, 1419, 1909,
3183  1421, 858, 1423, 1428, 1102, 86, 1463, 87, 88, 1435,
3184  1455, 746, 1467, 1464, 704, 1468, 1446, 1498, 1499, 711,
3185  1532, 1535, 1519, 716, 717, 1536, 607, 86, 1803, 1779,
3186  88, 723, 724, 725, 1847, 726, 1539, 728, 1540, 1552,
3187  1451, 754, 755, 756, 757, 591, 1553, 1554, 761, 1557,
3188  764, 765, 1092, 768, 769, 1108, 770, 273, 1577, 772,
3189  773, 774, 775, 776, 777, 1581, 1109, 780, 781, 1092,
3190  784, 1159, 1582, 1751, 789, 273, 793, 794, 604, 1588,
3191  1589, 1452, 1590, 1598, 1608, 1094, 800, 801, 1611, 1620,
3192  1896, 1340, 1625, 1626, 809, 1636, 1677, 814, 815, 816,
3193  747, 1678, 1094, 287, 273, 1680, 1447, 1683, 1684, 749,
3194  1160, 730, 731, 732, 733, 734, 91, 1686, 1762, 1448,
3195  1754, 682, 1096, 1708, 1712, 1713, 1161, 1449, 1716, 1803,
3196  1803, 1717, 1341, 86, 1725, 87, 88, 1108, 682, 1096,
3197  1726, 273, 1734, 2020, 1101, 969, 1729, 872, 1109, 1735,
3198  1736, 90, 86, 1740, 1742, 88, 1102, 1769, 1450, 889,
3199  -74, 1101, 1783, 1784, 1796, 1754, 89, 1786, 1856, 1799,
3200  1804, 1913, 1809, 1102, 735, 736, 737, 738, 1805, 86,
3201  1816, 92, 88, 1817, 607, 1069, 1131, 2116, 273, 1830,
3202  273, 1835, 273, 1803, 1342, 1848, 86, 1836, 91, 88,
3203  -1216, -1216, 614, 615, 616, 617, 618, 619, 719, 1850,
3204  1862, 1992, 1451, 1863, 1865, 931, 1873, 1877, 1878, 1882,
3205  1883, 1885, 1894, 1343, 1905, 1901, -602, 739, 740, 741,
3206  742, -607, 763, 1937, 1917, 767, 743, 1950, 1952, 1953,
3207  2011, 1963, 1968, 1969, 1970, 1973, 273, 273, 778, 779,
3208  1988, 273, 783, 1452, 1982, 730, 731, 732, 733, 734,
3209  1990, 1983, 592, 1998, 1999, 95, 958, 798, 799, 273,
3210  2000, 2001, 273, 744, 2024, 96, 273, 2030, 2032, 90,
3211  1645, 604, 2036, 2041, 1646, 1647, 2043, 2044, 1528, 1108,
3212  2076, 2079, 2080, 2081, 2086, 2087, 988, 990, 992, 1648,
3213  1109, 2088, 745, 746, 91, 2089, 1108, 2090, 2091, 92,
3214  2092, 2093, 1798, 2113, 2111, 1348, 1322, 1109, 735, 736,
3215  737, 738, 2114, 91, 1992, 918, 1992, 1523, 2067, 1674,
3216  1330, 1649, 1292, 1487, 1650, 1024, 1529, 1344, 1737, 1738,
3217  1376, 1774, 1651, 1880, 1967, 1864, 1895, 1032, 1874, 1033,
3218  91, 1845, 1860, 1364, 1652, 2046, 610, 611, 612, 613,
3219  614, 615, 616, 617, 618, 619, 2022, 91, 1653, 1981,
3220  674, 739, 740, 741, 742, 1041, 1522, 1242, 474, 1205,
3221  743, 1654, 2099, 2099, 473, 642, 1057, 607, 1430, 1576,
3222  1600, 1164, 747, 1813, 1204, 928, 2038, 1996, 2120, 593,
3223  748, 749, 788, 1811, 2100, 720, 1739, 1619, 2099, 1832,
3224  1222, 499, 1258, 1048, 507, 630, 1169, 744, 1655, 926,
3225  1579, 1278, 1440, 2119, 1656, 700, 2025, 541, 2002, 2027,
3226  2063, 604, 2045, 1145, 2121, 1443, 1147, 873, 1149, 1150,
3227  302, 1068, 1534, 1163, 1475, 1617, 745, 746, 1833, 431,
3228  634, 960, 0, 0, 0, 964, 0, 1170, 0, 0,
3229  1172, 1173, 1174, 1175, 0, 1177, 0, 0, 0, 604,
3230  0, 981, 1180, 0, 1657, 1181, 0, 1182, 1183, 1184,
3231  0, 0, 0, 0, 1187, 1188, 1189, 0, 0, 0,
3232  1191, 1192, 0, 1193, 0, 1195, 0, 1197, 0, 1199,
3233  0, 1200, 0, 1658, 0, 0, 1201, 0, 0, 0,
3234  0, 0, 0, 1090, 0, 0, 0, 1091, 0, 0,
3235  0, 0, 0, 1212, 0, 1092, 0, 0, 0, 0,
3236  0, 0, 0, 1659, 0, 1220, 747, 607, 0, 0,
3237  1225, 0, 0, 0, 748, 749, 0, 1093, 0, 0,
3238  0, 0, 0, 0, 0, 0, 0, 446, 1094, 610,
3239  611, 612, 613, 614, 615, 616, 617, 618, 619, 1095,
3240  0, 447, 448, 0, 1660, 607, 0, 0, 1661, 1662,
3241  449, 0, 0, 0, 0, 1090, 0, 0, 0, 1091,
3242  0, 1281, 0, 0, 682, 1096, 0, 1092, 0, 0,
3243  1097, 1098, 0, 0, 0, 1663, 1099, 0, 1664, 1665,
3244  0, 0, 1100, 0, 0, 0, -281, 1101, 0, 1093,
3245  0, 450, 0, 0, 0, 0, 0, 0, 0, 1102,
3246  1094, 0, 0, 0, 1103, 0, 0, 0, 0, 0,
3247  0, 1095, 0, 451, 0, 1366, 0, 0, 0, 0,
3248  1370, 0, 86, 86, 1372, 88, 88, 0, 1104, 0,
3249  452, 453, 0, 0, 0, 0, 682, 1096, 0, 0,
3250  0, 0, 1097, 1385, 1386, 0, 0, 454, 1099, 0,
3251  0, 0, 0, 0, 1100, 0, 0, 0, 0, 1101,
3252  0, 455, 1401, 0, 0, 0, 0, 0, 0, 0,
3253  1410, 1102, 1412, 0, 1414, 0, 1103, 0, 1105, -1216,
3254  611, 612, 613, 614, 615, 616, 617, 618, 619, 0,
3255  0, 0, 0, 0, 86, 0, 0, 88, 0, 0,
3256  0, 0, 0, 771, 0, 1106, 0, 0, 0, 0,
3257  1281, 0, 0, 0, 0, 0, 0, 456, -1216, 612,
3258  613, 614, 615, 616, 617, 618, 619, 0, 1107, 0,
3259  0, 0, 1108, 0, 0, 0, 0, 0, 0, 0,
3260  0, 0, 0, 1109, 0, 1473, 0, 0, 0, 0,
3261  1105, 0, 0, 0, 827, 828, 457, 0, 831, 1478,
3262  836, 837, 838, 839, 840, 842, 844, 845, 846, 847,
3263  848, 0, 0, 0, 0, 0, 0, 1106, 0, 0,
3264  0, 0, 0, 0, 0, 0, 0, 0, 458, 0,
3265  0, 459, 460, 91, 91, 0, 0, 0, 0, 0,
3266  1107, 0, 0, 0, 1108, 0, 0, 0, 0, 0,
3267  0, 0, 0, 0, 0, 1109, 0, 0, 0, 0,
3268  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3269  0, 0, 0, 0, 0, 0, 461, 0, 0, 0,
3270  0, 0, 0, 0, 0, 0, 0, 0, 0, 1551,
3271  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3272  0, 0, 0, 0, 0, 91, 1559, 1560, 0, 0,
3273  0, 0, 0, 0, 1562, 0, 0, 0, 0, 1564,
3274  0, 0, 1565, 1566, 1567, 0, 0, 0, 0, 0,
3275  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3276  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3277  0, 0, 1281, 0, 0, 0, 0, 0, 0, 0,
3278  0, 0, 125, 126, 0, 127, 128, 0, 0, 0,
3279  0, 129, 0, 0, 0, 130, 131, 132, 0, 133,
3280  0, 0, 0, 0, 134, 0, 135, 136, 0, 137,
3281  0, 0, 1618, 138, 0, 0, 0, 139, 0, 1624,
3282  0, 140, 0, 141, 142, 0, 143, 144, 0, 145,
3283  146, 147, 148, 149, 150, 0, 151, 152, 0, 153,
3284  0, 0, 0, 1028, 154, 0, 1031, 0, 0, 0,
3285  155, 156, 157, 0, 0, 158, 0, 0, 0, 0,
3286  159, 160, 0, 0, 0, 0, 0, 0, 0, 0,
3287  0, 161, 162, 0, 0, 0, 163, 0, 164, 165,
3288  166, 0, 0, 167, 0, 168, 169, 0, 170, 171,
3289  0, 172, 0, 173, 174, 0, 0, 175, 0, 0,
3290  176, 177, 178, 0, 179, 0, 0, 0, 180, 181,
3291  0, 182, 0, 183, 0, 0, 184, 0, 1281, 0,
3292  0, 0, 185, 86, 186, 0, 88, 0, 0, 187,
3293  188, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3294  0, 0, 0, 189, 0, 190, 0, 0, 191, 0,
3295  0, 192, 0, 0, 0, 193, 1478, 0, 0, 0,
3296  0, 194, 195, 0, 196, 0, 0, 0, 0, 197,
3297  198, 199, 200, 0, 0, 201, 0, 202, 0, 203,
3298  0, 204, 205, 206, 207, 0, 0, 208, 209, 210,
3299  0, 0, 211, 0, 0, 0, 212, 213, 0, 214,
3300  215, 216, 217, 0, 0, 0, 0, 0, 0, 0,
3301  0, 218, 0, 0, 219, 0, 220, 221, 222, 223,
3302  0, 0, 0, 0, 1806, 224, 0, 0, 0, 0,
3303  225, 0, 0, 0, 0, 0, 226, 0, 0, 0,
3304  227, 228, 229, 230, 231, 232, 233, 0, 234, 235,
3305  0, 0, 1478, 236, 237, 238, 239, 0, 0, 240,
3306  0, 241, 242, 243, 0, 0, 1473, 0, 0, 0,
3307  0, 0, 0, 0, 244, 245, 0, 0, 246, 0,
3308  0, 247, 248, 249, 0, 0, 250, 0, 251, 252,
3309  0, 0, 253, 0, 0, 254, 0, 255, 256, 0,
3310  257, 0, 0, 258, 0, 0, 259, 260, 0, 261,
3311  262, 0, 0, 0, 263, 0, 0, 0, 0, 264,
3312  0, 0, 0, 0, 0, 0, 265, 0, 266, 0,
3313  0, 267, 0, 0, 0, 0, 268, 269, 0, 0,
3314  0, 0, 270, 0, 0, 0, 271, 0, 0, 0,
3315  0, 0, 0, 0, 0, 0, 1915, 1916, 0, 0,
3316  0, 1922, 0, 125, 318, 2106, 127, 128, 0, 401,
3317  2107, 0, 129, 0, 0, 0, 130, 131, 319, 0,
3318  133, 0, 0, 320, 321, 134, 0, 135, 136, 790,
3319  137, 0, 0, 0, 138, 322, 323, 324, 139, 0,
3320  0, 325, 140, 0, 141, 326, 0, 327, 144, 0,
3321  145, 146, 147, 148, 149, 150, 0, 151, 152, 0,
3322  153, 328, 329, 0, 0, 154, 330, 331, 332, 0,
3323  333, 155, 156, 157, 334, 335, 336, 0, 0, 0,
3324  0, 337, 160, 338, 0, 0, 339, 0, 0, 0,
3325  0, 0, 161, 162, 0, 1478, 0, 163, 0, 164,
3326  165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
3327  171, 0, 172, 0, 173, 174, 340, 341, 175, 342,
3328  343, 176, 177, 178, 344, 179, 0, 0, 0, 180,
3329  181, 0, 182, 0, 183, 345, 0, 184, 0, 346,
3330  0, 0, 0, 347, 86, 186, 0, 88, 348, 0,
3331  187, 188, 0, 0, 0, 0, 0, 349, 350, 0,
3332  1281, 0, 0, 2029, 189, 2031, 351, 0, 0, 191,
3333  0, 352, 192, 0, 791, 353, 193, 0, 0, 0,
3334  0, 0, 194, 195, 0, 196, 354, 0, 0, 355,
3335  197, 198, 199, 356, 0, 0, 357, 358, 202, 0,
3336  203, 359, 360, 205, 206, 207, 0, 0, 208, 209,
3337  210, 361, 362, 211, 363, 364, 0, 212, 213, 0,
3338  214, 215, 216, 217, 0, 0, 0, 0, 0, 0,
3339  0, 0, 218, 365, 0, 219, 0, 220, 221, 366,
3340  223, 0, 0, 0, 0, 0, 224, 0, 0, 0,
3341  0, 225, 367, 368, 0, 0, 0, 226, 0, 0,
3342  369, 227, 228, 229, 230, 231, 370, 233, 0, 371,
3343  235, 0, 0, 0, 236, 237, 238, 239, 0, 0,
3344  240, 0, 241, 242, 243, 0, 0, 0, 0, 0,
3345  0, 0, 0, 0, 0, 244, 245, 372, 373, 246,
3346  0, 0, 247, 374, 249, 375, 376, 250, 377, 251,
3347  252, 0, 0, 253, 0, 378, 254, 0, 379, 380,
3348  381, 257, 0, 792, 258, 382, 383, 384, 260, 385,
3349  261, 262, 0, 0, 0, 263, 0, 0, 0, 0,
3350  386, 0, 0, 387, 388, 389, 0, 390, 391, 266,
3351  0, 0, 267, 392, 0, 393, 394, 268, 269, 0,
3352  0, 0, 0, 270, 0, 0, 0, 395, 0, 0,
3353  0, 0, 0, 0, 0, 0, 0, 396, 397, 0,
3354  0, 0, 0, 398, 0, 399, 0, 400, 0, 0,
3355  401, 402, 125, 318, 0, 127, 128, 1469, 0, 0,
3356  0, 129, 0, 0, 0, 130, 131, 319, 0, 133,
3357  0, 0, 1470, 321, 134, 0, 135, 136, 0, 137,
3358  0, 0, 0, 138, 322, 323, 324, 139, 0, 0,
3359  325, 140, 0, 141, 326, 0, 327, 144, 0, 145,
3360  146, 147, 148, 149, 150, 0, 151, 152, 0, 153,
3361  328, 329, 0, 0, 154, 330, 331, 332, 0, 333,
3362  155, 156, 157, 334, 335, 336, 0, 0, 0, 0,
3363  337, 160, 338, 0, 0, 1471, 0, 0, 0, 0,
3364  0, 161, 162, 0, 0, 0, 163, 0, 164, 165,
3365  166, 0, 0, 167, 0, 168, 169, 0, 170, 171,
3366  0, 172, 0, 173, 174, 340, 341, 175, 342, 343,
3367  176, 177, 178, 344, 179, 0, 0, 0, 180, 181,
3368  0, 182, 0, 183, 345, 0, 184, 0, 346, 0,
3369  0, 0, 347, 86, 186, 0, 88, 348, 0, 187,
3370  188, 0, 0, 0, 0, 0, 349, 350, 0, 0,
3371  0, 0, 0, 189, 0, 351, 0, 0, 191, 0,
3372  352, 192, 0, 0, 353, 193, 0, 0, 0, 0,
3373  0, 194, 195, 0, 196, 354, 0, 0, 355, 197,
3374  198, 199, 356, 0, 0, 357, 358, 202, 0, 203,
3375  359, 360, 205, 206, 207, 0, 0, 208, 209, 210,
3376  361, 362, 211, 363, 364, 0, 212, 213, 1472, 214,
3377  215, 216, 217, 0, 0, 0, 0, 0, 0, 0,
3378  0, 218, 365, 0, 219, 0, 220, 221, 366, 223,
3379  0, 0, 0, 0, 0, 224, 0, 0, 0, 0,
3380  225, 367, 368, 0, 0, 0, 226, 0, 0, 369,
3381  227, 228, 229, 230, 231, 370, 233, 0, 371, 235,
3382  0, 0, 0, 236, 237, 238, 239, 0, 0, 240,
3383  0, 241, 242, 243, 0, 0, 0, 0, 0, 0,
3384  0, 0, 0, 0, 244, 245, 372, 373, 246, 0,
3385  0, 247, 374, 249, 375, 376, 250, 377, 251, 252,
3386  0, 0, 253, 0, 378, 254, 0, 379, 380, 381,
3387  257, 0, 0, 258, 382, 383, 384, 260, 385, 261,
3388  262, 0, 0, 0, 263, 0, 0, 0, 0, 386,
3389  0, 0, 387, 388, 389, 0, 390, 391, 266, 0,
3390  0, 267, 392, 0, 393, 394, 268, 269, 0, 0,
3391  0, 0, 270, 0, 0, 0, 395, 0, 0, 0,
3392  0, 0, 0, 0, 0, 0, 396, 397, 0, 0,
3393  0, 0, 398, 0, 399, 0, 400, 0, 0, 401,
3394  402, 125, 318, 0, 127, 128, 0, 0, 0, 0,
3395  129, 0, 0, 0, 130, 131, 319, 0, 133, 0,
3396  0, 320, 321, 134, 0, 135, 136, 0, 137, 0,
3397  0, 0, 138, 322, 323, 324, 139, 0, 0, 325,
3398  140, 0, 141, 326, 0, 327, 144, 0, 145, 146,
3399  147, 148, 149, 150, 0, 151, 152, 0, 153, 328,
3400  329, 0, 0, 154, 330, 331, 332, 0, 333, 155,
3401  156, 157, 334, 335, 336, 0, 0, 0, 0, 337,
3402  160, 338, 0, 0, 339, 0, 0, 0, 0, 0,
3403  161, 162, 0, 0, 0, 163, 0, 164, 165, 166,
3404  0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
3405  172, 0, 173, 174, 340, 341, 175, 342, 343, 176,
3406  177, 178, 344, 179, 0, 0, 0, 180, 181, 0,
3407  182, 0, 183, 345, 0, 184, 0, 346, 0, 0,
3408  0, 347, 86, 186, 0, 88, 348, 0, 187, 188,
3409  0, 0, 0, 0, 0, 349, 350, 0, 0, 0,
3410  0, 0, 189, 0, 351, 0, 0, 191, 0, 352,
3411  192, 0, 0, 353, 193, 0, 0, 0, 0, 0,
3412  194, 195, 0, 196, 354, 0, 0, 355, 197, 198,
3413  199, 356, 0, 0, 357, 358, 202, 0, 203, 359,
3414  360, 205, 206, 207, 0, 0, 208, 209, 210, 361,
3415  362, 211, 363, 364, 0, 212, 213, 0, 214, 215,
3416  216, 217, 0, 0, 0, 0, 0, 0, 0, 0,
3417  218, 365, 0, 219, 0, 220, 221, 366, 223, 0,
3418  0, 0, 0, 0, 224, 0, 0, 0, 0, 225,
3419  367, 368, 0, 0, 0, 226, 0, 0, 369, 227,
3420  228, 229, 230, 231, 370, 233, 0, 371, 235, 0,
3421  0, 0, 236, 237, 238, 239, 0, 0, 240, 0,
3422  241, 242, 243, 0, 0, 0, 0, 0, 0, 0,
3423  0, 0, 0, 244, 245, 372, 373, 246, 0, 0,
3424  247, 374, 249, 375, 376, 250, 377, 251, 252, 0,
3425  0, 253, 0, 378, 254, 0, 379, 380, 381, 257,
3426  0, 0, 258, 382, 383, 384, 260, 385, 261, 262,
3427  0, 0, 0, 263, 0, 0, 0, 0, 386, 0,
3428  0, 387, 388, 389, 0, 390, 391, 266, 0, 0,
3429  267, 392, 0, 393, 394, 268, 269, 0, 0, 0,
3430  0, 270, 0, 0, 0, 395, 0, 0, 0, 0,
3431  0, 0, 0, 0, 0, 396, 397, 0, 0, 0,
3432  0, 398, 0, 399, 721, 400, 0, 0, 401, 402,
3433  125, 318, 0, 127, 128, 0, 0, 0, 0, 129,
3434  0, 0, 0, 130, 131, 319, 0, 133, 0, 0,
3435  320, 321, 134, 0, 135, 136, 0, 137, 0, 0,
3436  0, 138, 322, 323, 324, 139, 0, 0, 325, 140,
3437  0, 141, 326, 0, 327, 144, 0, 145, 146, 147,
3438  148, 149, 150, 0, 151, 152, 0, 153, 328, 329,
3439  0, 0, 154, 330, 331, 332, 0, 333, 155, 156,
3440  157, 334, 335, 336, 0, 0, 0, 0, 337, 160,
3441  338, 0, 0, 339, 0, 0, 0, 0, 0, 161,
3442  162, 0, 0, 0, 163, 0, 164, 165, 166, 0,
3443  0, 167, 0, 168, 169, 0, 170, 171, 0, 172,
3444  0, 173, 174, 340, 341, 175, 342, 343, 176, 177,
3445  178, 344, 179, 0, 0, 0, 180, 181, 987, 182,
3446  0, 183, 345, 0, 184, 0, 346, 0, 0, 0,
3447  347, 86, 186, 0, 88, 348, 0, 187, 188, 0,
3448  0, 0, 0, 0, 349, 350, 0, 0, 0, 0,
3449  0, 189, 0, 351, 0, 0, 191, 0, 352, 192,
3450  0, 0, 353, 193, 0, 0, 0, 0, 0, 194,
3451  195, 0, 196, 354, 0, 0, 355, 197, 198, 199,
3452  356, 0, 0, 357, 358, 202, 0, 203, 359, 360,
3453  205, 206, 207, 0, 0, 208, 209, 210, 361, 362,
3454  211, 363, 364, 0, 212, 213, 0, 214, 215, 216,
3455  217, 0, 0, 0, 0, 0, 0, 0, 0, 218,
3456  365, 0, 219, 0, 220, 221, 366, 223, 0, 0,
3457  0, 0, 0, 224, 0, 0, 0, 0, 225, 367,
3458  368, 0, 0, 0, 226, 0, 0, 369, 227, 228,
3459  229, 230, 231, 370, 233, 0, 371, 235, 0, 0,
3460  0, 236, 237, 238, 239, 0, 0, 240, 0, 241,
3461  242, 243, 0, 0, 0, 0, 0, 0, 0, 0,
3462  0, 0, 244, 245, 372, 373, 246, 0, 0, 247,
3463  374, 249, 375, 376, 250, 377, 251, 252, 0, 0,
3464  253, 0, 378, 254, 0, 379, 380, 381, 257, 0,
3465  0, 258, 382, 383, 384, 260, 385, 261, 262, 0,
3466  0, 0, 263, 0, 0, 0, 0, 386, 0, 0,
3467  387, 388, 389, 0, 390, 391, 266, 0, 0, 267,
3468  392, 0, 393, 394, 268, 269, 0, 0, 0, 0,
3469  270, 0, 0, 0, 395, 0, 0, 0, 0, 0,
3470  0, 0, 0, 0, 396, 397, 0, 0, 0, 0,
3471  398, 0, 399, 0, 400, 0, 0, 401, 402, 125,
3472  318, 0, 127, 128, 0, 0, 0, 0, 129, 0,
3473  0, 0, 130, 131, 319, 0, 133, 0, 0, 320,
3474  321, 134, 0, 135, 136, 0, 137, 0, 0, 0,
3475  138, 322, 323, 324, 139, 0, 0, 325, 140, 0,
3476  141, 326, 0, 327, 144, 0, 145, 146, 147, 148,
3477  149, 150, 0, 151, 152, 0, 153, 328, 329, 0,
3478  0, 154, 330, 331, 332, 0, 333, 155, 156, 157,
3479  334, 335, 336, 0, 0, 0, 0, 337, 160, 338,
3480  0, 0, 339, 0, 0, 0, 0, 0, 161, 162,
3481  0, 0, 0, 163, 0, 164, 165, 166, 0, 0,
3482  167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
3483  173, 174, 340, 341, 175, 342, 343, 176, 177, 178,
3484  344, 179, 0, 0, 0, 180, 181, 989, 182, 0,
3485  183, 345, 0, 184, 0, 346, 0, 0, 0, 347,
3486  86, 186, 0, 88, 348, 0, 187, 188, 0, 0,
3487  0, 0, 0, 349, 350, 0, 0, 0, 0, 0,
3488  189, 0, 351, 0, 0, 191, 0, 352, 192, 0,
3489  0, 353, 193, 0, 0, 0, 0, 0, 194, 195,
3490  0, 196, 354, 0, 0, 355, 197, 198, 199, 356,
3491  0, 0, 357, 358, 202, 0, 203, 359, 360, 205,
3492  206, 207, 0, 0, 208, 209, 210, 361, 362, 211,
3493  363, 364, 0, 212, 213, 0, 214, 215, 216, 217,
3494  0, 0, 0, 0, 0, 0, 0, 0, 218, 365,
3495  0, 219, 0, 220, 221, 366, 223, 0, 0, 0,
3496  0, 0, 224, 0, 0, 0, 0, 225, 367, 368,
3497  0, 0, 0, 226, 0, 0, 369, 227, 228, 229,
3498  230, 231, 370, 233, 0, 371, 235, 0, 0, 0,
3499  236, 237, 238, 239, 0, 0, 240, 0, 241, 242,
3500  243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3501  0, 244, 245, 372, 373, 246, 0, 0, 247, 374,
3502  249, 375, 376, 250, 377, 251, 252, 0, 0, 253,
3503  0, 378, 254, 0, 379, 380, 381, 257, 0, 0,
3504  258, 382, 383, 384, 260, 385, 261, 262, 0, 0,
3505  0, 263, 0, 0, 0, 0, 386, 0, 0, 387,
3506  388, 389, 0, 390, 391, 266, 0, 0, 267, 392,
3507  0, 393, 394, 268, 269, 0, 0, 0, 0, 270,
3508  0, 0, 0, 395, 0, 0, 0, 0, 0, 0,
3509  0, 0, 0, 396, 397, 0, 0, 0, 0, 398,
3510  0, 399, 0, 400, 0, 0, 401, 402, 125, 318,
3511  0, 127, 128, 0, 0, 0, 0, 129, 0, 0,
3512  0, 130, 131, 319, 0, 133, 0, 0, 320, 321,
3513  134, 0, 135, 136, 0, 137, 0, 0, 0, 138,
3514  322, 323, 324, 139, 0, 0, 325, 140, 0, 141,
3515  326, 0, 327, 144, 0, 145, 146, 147, 148, 149,
3516  150, 0, 151, 152, 0, 153, 328, 329, 0, 0,
3517  154, 330, 331, 332, 0, 333, 155, 156, 157, 334,
3518  335, 336, 0, 0, 0, 0, 337, 160, 338, 0,
3519  0, 339, 0, 0, 0, 0, 0, 161, 162, 0,
3520  0, 0, 163, 0, 164, 165, 166, 0, 0, 167,
3521  0, 168, 169, 0, 170, 171, 0, 172, 0, 173,
3522  174, 340, 341, 175, 342, 343, 176, 177, 178, 344,
3523  179, 0, 0, 0, 180, 181, 991, 182, 0, 183,
3524  345, 0, 184, 0, 346, 0, 0, 0, 347, 86,
3525  186, 0, 88, 348, 0, 187, 188, 0, 0, 0,
3526  0, 0, 349, 350, 0, 0, 0, 0, 0, 189,
3527  0, 351, 0, 0, 191, 0, 352, 192, 0, 0,
3528  353, 193, 0, 0, 0, 0, 0, 194, 195, 0,
3529  196, 354, 0, 0, 355, 197, 198, 199, 356, 0,
3530  0, 357, 358, 202, 0, 203, 359, 360, 205, 206,
3531  207, 0, 0, 208, 209, 210, 361, 362, 211, 363,
3532  364, 0, 212, 213, 0, 214, 215, 216, 217, 0,
3533  0, 0, 0, 0, 0, 0, 0, 218, 365, 0,
3534  219, 0, 220, 221, 366, 223, 0, 0, 0, 0,
3535  0, 224, 0, 0, 0, 0, 225, 367, 368, 0,
3536  0, 0, 226, 0, 0, 369, 227, 228, 229, 230,
3537  231, 370, 233, 0, 371, 235, 0, 0, 0, 236,
3538  237, 238, 239, 0, 0, 240, 0, 241, 242, 243,
3539  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3540  244, 245, 372, 373, 246, 0, 0, 247, 374, 249,
3541  375, 376, 250, 377, 251, 252, 0, 0, 253, 0,
3542  378, 254, 0, 379, 380, 381, 257, 0, 0, 258,
3543  382, 383, 384, 260, 385, 261, 262, 0, 0, 0,
3544  263, 0, 0, 0, 0, 386, 0, 0, 387, 388,
3545  389, 0, 390, 391, 266, 0, 0, 267, 392, 0,
3546  393, 394, 268, 269, 0, 0, 0, 0, 270, 0,
3547  0, 0, 395, 0, 0, 0, 0, 0, 0, 0,
3548  0, 0, 396, 397, 0, 0, 0, 0, 398, 0,
3549  399, 0, 400, 0, 0, 401, 402, 125, 318, 0,
3550  127, 128, 0, 0, 0, 0, 129, 0, 0, 0,
3551  130, 131, 319, 0, 133, 0, 0, 320, 321, 134,
3552  0, 135, 136, 0, 137, 0, 0, 0, 138, 322,
3553  323, 324, 139, 0, 0, 325, 140, 0, 141, 326,
3554  0, 327, 144, 0, 145, 146, 147, 148, 149, 150,
3555  0, 151, 152, 0, 153, 328, 329, 0, 0, 154,
3556  330, 331, 332, 0, 333, 155, 156, 157, 334, 335,
3557  336, 0, 0, 0, 0, 337, 160, 338, 0, 0,
3558  339, 0, 0, 0, 0, 0, 161, 162, 0, 0,
3559  0, 163, 0, 164, 165, 166, 0, 0, 167, 0,
3560  168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
3561  340, 341, 175, 342, 343, 176, 177, 178, 344, 179,
3562  0, 0, 0, 180, 181, 0, 182, 0, 183, 345,
3563  0, 184, 0, 346, 0, 0, 0, 347, 86, 186,
3564  0, 88, 348, 0, 187, 188, 0, 0, 0, 0,
3565  0, 349, 350, 0, 0, 0, 0, 0, 189, 0,
3566  351, 0, 0, 191, 0, 352, 192, 0, 0, 353,
3567  193, 0, 0, 0, 0, 0, 194, 195, 0, 196,
3568  354, 0, 0, 355, 197, 198, 199, 356, 0, 0,
3569  357, 358, 202, 0, 203, 359, 360, 205, 206, 207,
3570  0, 0, 208, 209, 210, 361, 362, 211, 363, 364,
3571  0, 212, 213, 0, 214, 215, 216, 217, 0, 0,
3572  0, 0, 0, 0, 0, 0, 218, 365, 0, 219,
3573  0, 220, 221, 366, 223, 0, 0, 0, 0, 0,
3574  224, 0, 0, 0, 0, 225, 367, 368, 0, 0,
3575  0, 226, 0, 0, 369, 227, 228, 229, 230, 231,
3576  370, 233, 0, 371, 235, 0, 0, 0, 236, 237,
3577  238, 239, 0, 0, 240, 0, 241, 242, 243, 0,
3578  0, 0, 0, 0, 0, 0, 0, 0, 0, 244,
3579  245, 372, 373, 246, 0, 0, 247, 374, 249, 375,
3580  376, 250, 377, 251, 252, 0, 0, 253, 0, 378,
3581  254, 0, 379, 380, 381, 257, 0, 0, 258, 382,
3582  383, 384, 260, 385, 261, 262, 0, 0, 0, 263,
3583  0, 0, 0, 0, 386, 0, 0, 387, 388, 389,
3584  0, 390, 391, 266, 0, 0, 267, 392, 0, 393,
3585  394, 268, 269, 0, 0, 0, 0, 270, 0, 0,
3586  0, 395, 0, 0, 0, 0, 0, 0, 0, 0,
3587  0, 396, 397, 0, 0, 0, 0, 398, 0, 399,
3588  0, 400, 0, 0, 401, 402, 125, 318, 0, 127,
3589  128, 0, 0, 0, 0, 129, 0, 0, 0, 130,
3590  131, 319, 0, 133, 0, 0, 320, 321, 134, 0,
3591  135, 136, 0, 137, 0, 0, 0, 138, 322, 323,
3592  324, 139, 0, 0, 325, 140, 0, 141, 326, 0,
3593  327, 144, 0, 145, 146, 147, 148, 149, 150, 0,
3594  151, 152, 0, 153, 328, 329, 0, 0, 154, 330,
3595  331, 332, 0, 333, 155, 156, 157, 334, 335, 336,
3596  0, 0, 0, 0, 337, 160, 338, 0, 0, 339,
3597  0, 0, 0, 0, 0, 161, 162, 0, 0, 0,
3598  163, 0, 164, 165, 166, 0, 0, 167, 0, 168,
3599  169, 0, 170, 171, 0, 172, 0, 173, 174, 340,
3600  341, 175, 342, 343, 176, 177, 178, 344, 179, 0,
3601  0, 0, 180, 181, 0, 182, 0, 183, 345, 0,
3602  184, 0, 346, 0, 0, 0, 347, 86, 186, 0,
3603  88, 348, 0, 187, 188, 0, 0, 0, 0, 0,
3604  349, 350, 0, 0, 0, 0, 0, 189, 0, 351,
3605  0, 0, 191, 0, 352, 192, 0, 0, 353, 193,
3606  0, 0, 0, 0, 0, 194, 195, 0, 196, 354,
3607  0, 0, 355, 197, 198, 199, 356, 0, 0, 357,
3608  358, 202, 0, 203, 359, 360, 205, 206, 207, 0,
3609  0, 208, 209, 210, 361, 362, 211, 363, 364, 0,
3610  212, 213, 0, 214, 215, 216, 217, 0, 0, 0,
3611  0, 0, 0, 0, 0, 218, 365, 0, 219, 0,
3612  220, 221, 366, 223, 0, 0, 0, 0, 0, 224,
3613  0, 0, 0, 0, 225, 367, 368, 0, 0, 0,
3614  226, 0, 0, 369, 227, 228, 229, 230, 231, 370,
3615  233, 0, 371, 235, 0, 0, 0, 236, 237, 238,
3616  239, 0, 0, 240, 0, 241, 242, 243, 0, 0,
3617  0, 0, 0, 0, 0, 0, 0, 0, 244, 245,
3618  372, 373, 246, 0, 0, 247, 374, 249, 375, 376,
3619  250, 377, 251, 252, 0, 0, 253, 0, 378, 254,
3620  0, 379, 380, 381, 257, 0, 0, 258, 382, 383,
3621  384, 260, 385, 261, 262, 0, 0, 0, 263, 0,
3622  0, 0, 0, 386, 0, 0, 387, 388, 389, 0,
3623  390, 391, 266, 0, 0, 267, 392, 0, 393, 394,
3624  268, 269, 0, 0, 0, 0, 270, 0, 0, 0,
3625  395, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3626  396, 397, 0, 0, 0, 0, 398, 0, 538, 0,
3627  400, 0, 0, 401, 402, 125, 318, 0, 127, 128,
3628  823, 0, 0, 0, 824, 0, 0, 0, 130, 131,
3629  319, 0, 133, 0, 0, 320, 321, 134, 0, 135,
3630  136, 0, 137, 0, 0, 0, 138, 322, 323, 324,
3631  139, 0, 0, 325, 140, 0, 141, 326, 0, 327,
3632  144, 0, 145, 146, 147, 148, 149, 150, 0, 151,
3633  152, 0, 153, 328, 329, 0, 0, 154, 330, 331,
3634  332, 0, 333, 155, 156, 157, 334, 335, 336, 0,
3635  0, 0, 0, 337, 160, 338, 0, 0, 339, 0,
3636  0, 0, 0, 0, 161, 162, 0, 0, 0, 163,
3637  0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
3638  0, 170, 171, 0, 172, 0, 173, 174, 340, 341,
3639  175, 342, 343, 176, 177, 178, 344, 179, 0, 0,
3640  0, 180, 181, 0, 182, 0, 183, 345, 0, 184,
3641  0, 346, 0, 0, 0, 347, 86, 186, 0, 88,
3642  348, 0, 187, 188, 0, 0, 0, 0, 0, 349,
3643  350, 0, 0, 0, 0, 0, 189, 0, 351, 0,
3644  0, 191, 0, 352, 192, 0, 0, 353, 193, 0,
3645  0, 0, 0, 0, 194, 195, 0, 196, 354, 0,
3646  0, 355, 197, 198, 199, 356, 0, 0, 357, 358,
3647  202, 0, 203, 359, 360, 205, 206, 207, 0, 0,
3648  208, 209, 210, 0, 362, 211, 363, 364, 0, 212,
3649  213, 0, 214, 215, 216, 217, 0, 0, 0, 0,
3650  0, 0, 0, 0, 218, 365, 0, 219, 0, 220,
3651  221, 366, 223, 0, 0, 0, 0, 0, 224, 0,
3652  0, 0, 0, 225, 367, 368, 0, 0, 0, 226,
3653  0, 0, 369, 227, 228, 229, 230, 231, 370, 233,
3654  0, 371, 235, 0, 0, 0, 236, 237, 238, 239,
3655  0, 0, 240, 0, 241, 242, 243, 0, 0, 0,
3656  0, 0, 0, 0, 0, 0, 0, 244, 245, 372,
3657  373, 246, 0, 0, 247, 374, 249, 375, 376, 250,
3658  377, 251, 252, 0, 0, 253, 0, 378, 254, 0,
3659  379, 380, 381, 257, 0, 0, 258, 382, 383, 384,
3660  260, 385, 261, 262, 0, 0, 0, 263, 0, 0,
3661  0, 0, 386, 0, 0, 387, 388, 389, 0, 390,
3662  391, 266, 0, 0, 267, 392, 0, 393, 394, 268,
3663  269, 0, 0, 0, 0, 270, 0, 0, 0, 395,
3664  0, 0, 0, 0, 0, 0, 0, 0, 0, 396,
3665  397, 0, 0, 0, 0, 398, 0, 399, 0, 400,
3666  0, 0, 401, 402, 125, 318, 0, 127, 128, 0,
3667  0, 0, 0, 129, 0, 0, 0, 130, 131, 319,
3668  0, 133, 0, 0, 320, 321, 134, 0, 135, 136,
3669  0, 137, 0, 0, 0, 138, 322, 323, 324, 139,
3670  0, 0, 325, 140, 0, 141, 326, 0, 327, 144,
3671  0, 145, 146, 147, 148, 149, 150, 0, 151, 152,
3672  0, 153, 328, 329, 0, 0, 154, 330, 331, 332,
3673  0, 333, 155, 156, 157, 334, 335, 336, 0, 0,
3674  0, 0, 337, 160, 338, 0, 0, 339, 0, 0,
3675  0, 0, 0, 161, 162, 0, 0, 0, 163, 0,
3676  164, 165, 166, 0, 0, 167, 0, 168, 169, 0,
3677  170, 171, 0, 172, 0, 173, 174, 340, 341, 175,
3678  342, 343, 176, 177, 178, 344, 179, 0, 0, 0,
3679  180, 181, 0, 182, 0, 183, 345, 0, 184, 0,
3680  346, 0, 0, 0, 347, 86, 186, 0, 88, 348,
3681  0, 187, 188, 0, 0, 0, 0, 0, 349, 1144,
3682  0, 0, 0, 0, 0, 189, 0, 351, 0, 0,
3683  191, 0, 352, 192, 0, 0, 353, 193, 0, 0,
3684  0, 0, 0, 194, 195, 0, 196, 354, 0, 0,
3685  355, 197, 198, 199, 356, 0, 0, 357, 358, 202,
3686  0, 203, 359, 360, 205, 206, 207, 0, 0, 208,
3687  209, 210, 361, 362, 211, 363, 364, 0, 212, 213,
3688  0, 214, 215, 216, 217, 0, 0, 0, 0, 0,
3689  0, 0, 0, 218, 365, 0, 219, 0, 220, 221,
3690  366, 223, 0, 0, 0, 0, 0, 224, 0, 0,
3691  0, 0, 225, 367, 368, 0, 0, 0, 226, 0,
3692  0, 369, 227, 228, 229, 230, 231, 370, 233, 0,
3693  371, 235, 0, 0, 0, 236, 237, 238, 239, 0,
3694  0, 240, 0, 241, 242, 243, 0, 0, 0, 0,
3695  0, 0, 0, 0, 0, 0, 244, 245, 372, 373,
3696  246, 0, 0, 247, 374, 249, 375, 376, 250, 377,
3697  251, 252, 0, 0, 253, 0, 378, 254, 0, 379,
3698  380, 381, 257, 0, 0, 258, 382, 383, 384, 260,
3699  385, 261, 262, 0, 0, 0, 263, 0, 0, 0,
3700  0, 386, 0, 0, 387, 388, 389, 0, 390, 391,
3701  266, 0, 0, 267, 392, 0, 393, 394, 268, 269,
3702  0, 0, 0, 0, 270, 0, 0, 0, 395, 0,
3703  0, 0, 0, 0, 0, 0, 0, 0, 396, 397,
3704  0, 0, 0, 0, 398, 0, 399, 0, 400, 0,
3705  0, 401, 402, 125, 318, 0, 127, 128, 0, 0,
3706  0, 0, 129, 0, 0, 0, 130, 131, 319, 0,
3707  133, 0, 0, 320, 321, 134, 0, 135, 136, 0,
3708  137, 0, 0, 0, 138, 322, 323, 324, 139, 0,
3709  0, 325, 140, 0, 141, 326, 0, 327, 144, 0,
3710  145, 146, 147, 148, 149, 150, 0, 151, 152, 0,
3711  153, 328, 329, 0, 0, 154, 330, 331, 332, 0,
3712  333, 155, 156, 157, 334, 335, 336, 0, 0, 0,
3713  0, 337, 160, 338, 0, 0, 339, 0, 0, 0,
3714  0, 0, 161, 162, 0, 0, 0, 163, 0, 164,
3715  165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
3716  171, 0, 172, 0, 173, 174, 340, 341, 175, 342,
3717  343, 176, 177, 178, 344, 179, 0, 0, 0, 180,
3718  181, 0, 182, 0, 183, 345, 0, 184, 0, 346,
3719  0, 0, 0, 347, 86, 186, 0, 88, 348, 0,
3720  187, 188, 0, 0, 0, 0, 0, 349, 1186, 0,
3721  0, 0, 0, 0, 189, 0, 351, 0, 0, 191,
3722  0, 352, 192, 0, 0, 353, 193, 0, 0, 0,
3723  0, 0, 194, 195, 0, 196, 354, 0, 0, 355,
3724  197, 198, 199, 356, 0, 0, 357, 358, 202, 0,
3725  203, 359, 360, 205, 206, 207, 0, 0, 208, 209,
3726  210, 361, 362, 211, 363, 364, 0, 212, 213, 0,
3727  214, 215, 216, 217, 0, 0, 0, 0, 0, 0,
3728  0, 0, 218, 365, 0, 219, 0, 220, 221, 366,
3729  223, 0, 0, 0, 0, 0, 224, 0, 0, 0,
3730  0, 225, 367, 368, 0, 0, 0, 226, 0, 0,
3731  369, 227, 228, 229, 230, 231, 370, 233, 0, 371,
3732  235, 0, 0, 0, 236, 237, 238, 239, 0, 0,
3733  240, 0, 241, 242, 243, 0, 0, 0, 0, 0,
3734  0, 0, 0, 0, 0, 244, 245, 372, 373, 246,
3735  0, 0, 247, 374, 249, 375, 376, 250, 377, 251,
3736  252, 0, 0, 253, 0, 378, 254, 0, 379, 380,
3737  381, 257, 0, 0, 258, 382, 383, 384, 260, 385,
3738  261, 262, 0, 0, 0, 263, 0, 0, 0, 0,
3739  386, 0, 0, 387, 388, 389, 0, 390, 391, 266,
3740  0, 0, 267, 392, 0, 393, 394, 268, 269, 0,
3741  0, 0, 0, 270, 0, 0, 0, 395, 0, 0,
3742  0, 0, 0, 0, 0, 0, 0, 396, 397, 0,
3743  0, 0, 0, 398, 0, 399, 0, 400, 0, 0,
3744  401, 402, 125, 318, 0, 127, 128, 0, 0, 0,
3745  0, 129, 0, 0, 0, 130, 131, 319, 0, 133,
3746  0, 0, 320, 321, 134, 0, 135, 136, 0, 137,
3747  0, 0, 0, 138, 322, 323, 324, 139, 0, 0,
3748  325, 140, 0, 141, 326, 0, 327, 144, 0, 145,
3749  146, 147, 148, 149, 150, 0, 151, 152, 0, 153,
3750  328, 329, 0, 0, 154, 330, 331, 332, 0, 333,
3751  155, 156, 157, 334, 335, 336, 0, 0, 0, 0,
3752  337, 160, 338, 0, 0, 1280, 0, 0, 0, 0,
3753  0, 161, 162, 0, 0, 0, 163, 0, 164, 165,
3754  166, 0, 0, 167, 0, 168, 169, 0, 170, 171,
3755  0, 172, 0, 173, 174, 340, 341, 175, 342, 343,
3756  176, 177, 178, 344, 179, 0, 0, 0, 180, 181,
3757  0, 182, 0, 183, 345, 0, 184, 0, 346, 0,
3758  0, 0, 347, 86, 186, 0, 88, 348, 0, 187,
3759  188, 0, 0, 0, 0, 0, 349, 350, 0, 0,
3760  0, 0, 0, 189, 0, 351, 0, 0, 191, 0,
3761  352, 192, 0, 0, 353, 193, 0, 0, 0, 0,
3762  0, 194, 195, 0, 196, 354, 0, 0, 355, 197,
3763  198, 199, 356, 0, 0, 357, 358, 202, 0, 203,
3764  359, 360, 205, 206, 207, 0, 0, 208, 209, 210,
3765  361, 362, 211, 363, 364, 0, 212, 213, 0, 214,
3766  215, 216, 217, 0, 0, 0, 0, 0, 0, 0,
3767  0, 218, 365, 0, 219, 0, 220, 221, 366, 223,
3768  0, 0, 0, 0, 0, 224, 0, 0, 0, 0,
3769  225, 367, 368, 0, 0, 0, 226, 0, 0, 369,
3770  227, 228, 229, 230, 231, 370, 233, 0, 371, 235,
3771  0, 0, 0, 236, 237, 238, 239, 0, 0, 240,
3772  0, 241, 242, 243, 0, 0, 0, 0, 0, 0,
3773  0, 0, 0, 0, 244, 245, 372, 373, 246, 0,
3774  0, 247, 374, 249, 375, 376, 250, 377, 251, 252,
3775  0, 0, 253, 0, 378, 254, 0, 379, 380, 381,
3776  257, 0, 0, 258, 382, 383, 384, 260, 385, 261,
3777  262, 0, 0, 0, 263, 0, 0, 0, 0, 386,
3778  0, 0, 387, 388, 389, 0, 390, 391, 266, 0,
3779  0, 267, 392, 0, 393, 394, 268, 269, 0, 0,
3780  0, 0, 270, 0, 0, 0, 395, 0, 0, 0,
3781  0, 0, 0, 0, 0, 0, 396, 397, 0, 0,
3782  0, 0, 398, 0, 399, 0, 400, 0, 0, 401,
3783  402, 125, 318, 0, 127, 128, 0, 0, 0, 0,
3784  129, 0, 0, 0, 130, 131, 319, 0, 133, 0,
3785  0, 320, 321, 134, 0, 135, 136, 0, 137, 0,
3786  0, 0, 138, 322, 323, 324, 139, 0, 0, 325,
3787  140, 0, 141, 326, 0, 327, 144, 0, 145, 146,
3788  147, 148, 149, 150, 0, 151, 152, 0, 153, 328,
3789  329, 0, 0, 154, 330, 331, 332, 0, 333, 155,
3790  156, 157, 334, 335, 336, 0, 0, 0, 0, 337,
3791  160, 338, 0, 0, 339, 0, 0, 0, 0, 0,
3792  161, 162, 0, 0, 0, 163, 0, 164, 165, 166,
3793  0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
3794  172, 0, 173, 174, 340, 341, 175, 342, 343, 176,
3795  177, 178, 344, 179, 0, 0, 0, 180, 181, 0,
3796  182, 0, 183, 345, 0, 184, 0, 346, 0, 0,
3797  0, 347, 86, 186, 0, 88, 348, 0, 187, 188,
3798  0, 0, 0, 0, 0, 349, 350, 0, 0, 0,
3799  0, 0, 189, 0, 351, 0, 0, 191, 0, 352,
3800  192, 0, 0, 353, 193, 0, 0, 0, 0, 0,
3801  194, 195, 0, 196, 354, 0, 0, 355, 197, 198,
3802  199, 356, 0, 0, 357, 358, 202, 0, 203, 359,
3803  360, 205, 206, 207, 0, 0, 208, 209, 210, 0,
3804  362, 211, 363, 364, 0, 212, 213, 0, 214, 215,
3805  216, 217, 0, 0, 0, 0, 0, 0, 0, 0,
3806  218, 365, 0, 219, 0, 220, 221, 366, 223, 0,
3807  0, 0, 0, 0, 224, 0, 0, 0, 0, 225,
3808  367, 368, 0, 0, 0, 226, 0, 0, 369, 227,
3809  228, 229, 230, 231, 370, 233, 0, 371, 235, 0,
3810  0, 0, 236, 237, 238, 239, 0, 0, 240, 0,
3811  241, 242, 243, 0, 0, 0, 0, 0, 0, 0,
3812  0, 0, 0, 244, 245, 372, 373, 246, 0, 0,
3813  247, 374, 249, 375, 376, 250, 377, 251, 252, 0,
3814  0, 253, 0, 378, 254, 0, 379, 380, 381, 257,
3815  0, 0, 258, 382, 383, 384, 260, 385, 261, 262,
3816  0, 0, 0, 263, 0, 0, 0, 0, 386, 0,
3817  0, 387, 388, 389, 0, 390, 391, 266, 0, 0,
3818  267, 392, 0, 393, 394, 268, 269, 0, 0, 0,
3819  0, 270, 0, 0, 0, 395, 0, 0, 0, 0,
3820  0, 0, 0, 0, 0, 396, 397, 0, 0, 0,
3821  0, 398, 0, 399, 0, 400, 0, 0, 401, 402,
3822  125, 318, 0, 127, 128, 0, 0, 0, 0, 129,
3823  0, 0, 0, 130, 131, 319, 0, 133, 0, 0,
3824  320, 321, 134, 0, 135, 136, 0, 137, 0, 0,
3825  0, 138, 322, 323, 324, 139, 0, 0, 325, 140,
3826  0, 141, 326, 0, 327, 144, 0, 145, 146, 147,
3827  148, 149, 150, 0, 151, 152, 0, 153, 328, 329,
3828  0, 0, 154, 330, 331, 332, 0, 333, 155, 156,
3829  157, 334, 335, 336, 0, 0, 0, 0, 337, 160,
3830  338, 0, 0, 339, 0, 0, 0, 0, 0, 161,
3831  162, 0, 0, 0, 163, 0, 164, 165, 166, 0,
3832  0, 167, 0, 168, 169, 0, 170, 171, 0, 172,
3833  0, 173, 174, 340, 341, 175, 342, 343, 176, 177,
3834  178, 344, 179, 0, 0, 0, 180, 181, 0, 182,
3835  0, 183, 345, 0, 184, 0, 346, 0, 0, 0,
3836  347, 86, 186, 0, 88, 348, 0, 187, 188, 0,
3837  0, 0, 0, 0, 349, 841, 0, 0, 0, 0,
3838  0, 189, 0, 351, 0, 0, 191, 0, 352, 192,
3839  0, 0, 353, 193, 0, 0, 0, 0, 0, 194,
3840  195, 0, 196, 354, 0, 0, 355, 197, 198, 199,
3841  356, 0, 0, 357, 358, 202, 0, 203, 359, 360,
3842  205, 206, 207, 0, 0, 208, 209, 210, 0, 362,
3843  211, 363, 364, 0, 212, 213, 0, 214, 215, 216,
3844  217, 0, 0, 0, 0, 0, 0, 0, 0, 218,
3845  365, 0, 219, 0, 220, 221, 366, 223, 0, 0,
3846  0, 0, 0, 224, 0, 0, 0, 0, 225, 367,
3847  368, 0, 0, 0, 226, 0, 0, 369, 227, 228,
3848  229, 230, 231, 370, 233, 0, 371, 235, 0, 0,
3849  0, 236, 237, 238, 239, 0, 0, 240, 0, 241,
3850  242, 243, 0, 0, 0, 0, 0, 0, 0, 0,
3851  0, 0, 244, 245, 372, 373, 246, 0, 0, 247,
3852  374, 249, 375, 376, 250, 377, 251, 252, 0, 0,
3853  253, 0, 378, 254, 0, 379, 380, 381, 257, 0,
3854  0, 258, 382, 383, 384, 260, 385, 261, 262, 0,
3855  0, 0, 263, 0, 0, 0, 0, 386, 0, 0,
3856  387, 388, 389, 0, 390, 391, 266, 0, 0, 267,
3857  392, 0, 393, 394, 268, 269, 0, 0, 0, 0,
3858  270, 0, 0, 0, 395, 0, 0, 0, 0, 0,
3859  0, 0, 0, 0, 396, 397, 0, 0, 0, 0,
3860  398, 0, 399, 0, 400, 0, 0, 401, 402, 125,
3861  318, 0, 127, 128, 0, 0, 0, 0, 129, 0,
3862  0, 0, 130, 131, 319, 0, 133, 0, 0, 320,
3863  321, 134, 0, 135, 136, 0, 137, 0, 0, 0,
3864  138, 322, 323, 324, 139, 0, 0, 325, 140, 0,
3865  141, 326, 0, 327, 144, 0, 145, 146, 147, 148,
3866  149, 150, 0, 151, 152, 0, 153, 328, 329, 0,
3867  0, 154, 330, 331, 332, 0, 333, 155, 156, 157,
3868  334, 335, 336, 0, 0, 0, 0, 337, 160, 338,
3869  0, 0, 339, 0, 0, 0, 0, 0, 161, 162,
3870  0, 0, 0, 163, 0, 164, 165, 166, 0, 0,
3871  167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
3872  173, 174, 340, 341, 175, 342, 343, 176, 177, 178,
3873  344, 179, 0, 0, 0, 180, 181, 0, 182, 0,
3874  183, 345, 0, 184, 0, 346, 0, 0, 0, 347,
3875  86, 186, 0, 88, 348, 0, 187, 188, 0, 0,
3876  0, 0, 0, 349, 843, 0, 0, 0, 0, 0,
3877  189, 0, 351, 0, 0, 191, 0, 352, 192, 0,
3878  0, 353, 193, 0, 0, 0, 0, 0, 194, 195,
3879  0, 196, 354, 0, 0, 355, 197, 198, 199, 356,
3880  0, 0, 357, 358, 202, 0, 203, 359, 360, 205,
3881  206, 207, 0, 0, 208, 209, 210, 0, 362, 211,
3882  363, 364, 0, 212, 213, 0, 214, 215, 216, 217,
3883  0, 0, 0, 0, 0, 0, 0, 0, 218, 365,
3884  0, 219, 0, 220, 221, 366, 223, 0, 0, 0,
3885  0, 0, 224, 0, 0, 0, 0, 225, 367, 368,
3886  0, 0, 0, 226, 0, 0, 369, 227, 228, 229,
3887  230, 231, 370, 233, 0, 371, 235, 0, 0, 0,
3888  236, 237, 238, 239, 0, 0, 240, 0, 241, 242,
3889  243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3890  0, 244, 245, 372, 373, 246, 0, 0, 247, 374,
3891  249, 375, 376, 250, 377, 251, 252, 0, 0, 253,
3892  0, 378, 254, 0, 379, 380, 381, 257, 0, 0,
3893  258, 382, 383, 384, 260, 385, 261, 262, 0, 0,
3894  0, 263, 0, 0, 0, 0, 386, 0, 0, 387,
3895  388, 389, 0, 390, 391, 266, 0, 0, 267, 392,
3896  0, 393, 394, 268, 269, 0, 0, 0, 0, 270,
3897  0, 0, 0, 395, 0, 0, 0, 0, 0, 0,
3898  0, 0, 0, 396, 397, 0, 0, 0, 0, 398,
3899  0, 399, 0, 400, 0, 0, 401, 402, 125, 126,
3900  0, 127, 128, 0, 0, 0, 0, 129, 0, 0,
3901  0, 130, 131, 132, 0, 133, 0, 0, 0, 0,
3902  134, 0, 135, 136, 0, 137, 0, 0, 0, 138,
3903  0, 0, 0, 139, 0, 0, 0, 140, 0, 141,
3904  142, 0, 143, 144, 0, 145, 146, 147, 148, 149,
3905  150, 0, 151, 152, 0, 153, 0, 0, 0, 0,
3906  154, 0, 0, 0, 0, 0, 155, 156, 157, 0,
3907  0, 158, 0, 0, 0, 0, 159, 160, 0, 0,
3908  0, 0, 0, 0, 0, 0, 0, 161, 162, 0,
3909  0, 0, 163, 0, 164, 165, 166, 0, 0, 167,
3910  0, 168, 169, 0, 170, 171, 0, 172, 0, 173,
3911  174, 0, 0, 175, 0, 0, 176, 177, 178, 0,
3912  179, 0, 0, 0, 180, 181, 0, 182, 0, 183,
3913  0, 0, 184, 0, 0, 0, 0, 0, 185, 86,
3914  186, 0, 88, 0, 0, 187, 188, 0, 0, 0,
3915  0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
3916  0, 190, 0, 0, 191, 0, 0, 192, 0, 0,
3917  0, 193, 0, 0, 0, 0, 0, 194, 195, 0,
3918  196, 0, 0, 0, 0, 197, 198, 199, 200, 0,
3919  0, 201, 0, 202, 0, 203, 0, 204, 205, 206,
3920  207, 0, 0, 208, 209, 210, 0, 0, 211, 0,
3921  0, 0, 212, 213, 0, 214, 215, 216, 217, 0,
3922  0, 0, 0, 0, 0, 0, 0, 218, 0, 0,
3923  219, 0, 220, 221, 222, 223, 0, 0, 0, 0,
3924  0, 224, 0, 0, 0, 0, 225, 0, 0, 0,
3925  0, 0, 226, 0, 0, 0, 227, 228, 229, 230,
3926  231, 232, 233, 0, 234, 235, 0, 0, 0, 236,
3927  237, 238, 239, 0, 0, 240, 0, 241, 242, 243,
3928  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3929  244, 245, 0, 0, 246, 0, 0, 247, 248, 249,
3930  0, 0, 250, 0, 251, 252, 0, 0, 253, 0,
3931  0, 254, 0, 255, 256, 0, 257, 0, 0, 258,
3932  0, 0, 259, 260, 0, 261, 262, 0, 0, 0,
3933  263, 0, 0, 0, 0, 264, 0, 0, 0, 0,
3934  0, 0, 265, 0, 266, 0, 0, 267, 0, 0,
3935  0, 0, 268, 269, 0, 0, 125, 126, 270, 127,
3936  128, 0, 271, 0, 0, 129, 0, 0, 0, 130,
3937  131, 132, 0, 133, 0, 0, 0, 0, 134, 0,
3938  135, 136, 0, 137, 0, 401, 2107, 138, 0, 0,
3939  0, 139, 0, 0, 0, 140, 0, 141, 142, 0,
3940  143, 144, 0, 145, 146, 147, 148, 149, 150, 0,
3941  151, 152, 1289, 153, 0, 0, 0, 0, 154, 0,
3942  0, 0, 0, 0, 155, 156, 157, 0, 0, 158,
3943  0, 0, 0, 0, 159, 160, 0, 0, 0, 0,
3944  0, 0, 0, 0, 0, 161, 162, 0, 0, 0,
3945  163, 0, 164, 165, 166, 0, 0, 167, 0, 168,
3946  169, 0, 170, 171, 0, 172, 0, 173, 174, 0,
3947  0, 175, 0, 0, 176, 177, 178, 0, 179, 0,
3948  0, 0, 180, 181, 0, 182, 0, 183, 0, 0,
3949  184, 0, 0, 0, 0, 0, 185, 86, 186, 0,
3950  88, 0, 0, 187, 188, 1290, 0, 0, 0, 0,
3951  0, 0, 0, 0, 0, 0, 0, 189, 0, 190,
3952  0, 0, 191, 1291, 0, 192, 0, 0, 0, 193,
3953  0, 1130, 0, 0, 0, 194, 195, 0, 196, 0,
3954  0, 0, 0, 197, 198, 199, 200, 0, 0, 201,
3955  0, 202, 0, 203, 0, 204, 205, 206, 207, 0,
3956  0, 208, 209, 210, 0, 0, 211, 0, 0, 0,
3957  212, 213, 0, 214, 215, 216, 217, 0, 0, 0,
3958  0, 0, 0, 0, 0, 218, 0, 0, 219, 0,
3959  220, 221, 222, 223, 0, 0, 0, 0, 0, 224,
3960  0, 0, 0, 0, 225, 0, 0, 0, 0, 0,
3961  226, 0, 0, 0, 227, 228, 229, 230, 231, 232,
3962  233, 0, 234, 235, 858, 0, 0, 236, 237, 238,
3963  239, 0, 0, 240, 0, 241, 242, 243, 0, 0,
3964  0, 0, 0, 0, 0, 0, 0, 0, 244, 245,
3965  0, 0, 246, 0, 0, 247, 248, 249, 0, 0,
3966  250, 0, 251, 252, 0, 0, 253, 0, 0, 254,
3967  0, 255, 256, 0, 257, 0, 0, 258, 0, 0,
3968  259, 260, 0, 261, 262, 0, 0, 0, 263, 0,
3969  0, 0, 0, 264, 0, 0, 0, 0, 0, 0,
3970  265, 0, 266, 0, 0, 267, 0, 0, 0, 0,
3971  268, 269, 0, 0, 125, 126, 270, 127, 128, 0,
3972  271, 0, 0, 129, 0, 0, 0, 130, 131, 132,
3973  0, 133, 0, 0, 0, 0, 134, 0, 135, 136,
3974  0, 137, 0, 1329, 0, 138, 0, 0, 0, 139,
3975  0, 0, 0, 140, 0, 141, 142, 0, 143, 144,
3976  0, 145, 146, 147, 148, 149, 150, 0, 151, 152,
3977  1289, 153, 0, 0, 0, 0, 154, 0, 0, 0,
3978  0, 0, 155, 156, 157, 0, 0, 158, 0, 0,
3979  0, 0, 159, 160, 0, 0, 0, 0, 0, 0,
3980  0, 0, 0, 161, 162, 0, 0, 0, 163, 0,
3981  164, 165, 166, 0, 0, 167, 0, 168, 169, 0,
3982  170, 171, 0, 172, 0, 173, 174, 0, 0, 175,
3983  0, 0, 176, 177, 178, 0, 179, 0, 0, 0,
3984  180, 181, 0, 182, 0, 183, 0, 0, 184, 0,
3985  0, 0, 0, 0, 185, 86, 186, 0, 88, 0,
3986  0, 187, 188, 1290, 0, 0, 0, 0, 0, 0,
3987  0, 0, 0, 0, 0, 189, 0, 190, 0, 0,
3988  191, 1291, 0, 192, 0, 0, 0, 193, 0, 0,
3989  0, 0, 0, 194, 195, 0, 196, 0, 0, 0,
3990  0, 197, 198, 199, 200, 0, 0, 201, 0, 202,
3991  0, 203, 0, 204, 205, 206, 207, 0, 0, 208,
3992  209, 210, 0, 0, 211, 0, 0, 0, 212, 213,
3993  0, 214, 215, 216, 217, 0, 0, 0, 0, 0,
3994  0, 0, 0, 218, 0, 0, 219, 0, 220, 221,
3995  222, 223, 0, 0, 0, 0, 0, 224, 0, 0,
3996  0, 0, 225, 0, 0, 0, 0, 0, 226, 0,
3997  0, 0, 227, 228, 229, 230, 231, 232, 233, 0,
3998  234, 235, 0, 0, 0, 236, 237, 238, 239, 0,
3999  0, 240, 0, 241, 242, 243, 0, 0, 0, 0,
4000  0, 0, 0, 0, 0, 0, 244, 245, 0, 0,
4001  246, 0, 0, 247, 248, 249, 0, 0, 250, 0,
4002  251, 252, 0, 0, 253, 0, 0, 254, 0, 255,
4003  256, 0, 257, 0, 0, 258, 0, 0, 259, 260,
4004  0, 261, 262, 0, 0, 0, 263, 0, 0, 0,
4005  0, 264, 0, 0, 0, 0, 0, 0, 265, 0,
4006  266, 0, 0, 267, 0, 0, 0, 0, 268, 269,
4007  0, 0, 125, 126, 270, 127, 128, 0, 271, 0,
4008  0, 129, 0, 0, 0, 130, 131, 132, 0, 133,
4009  0, 0, 0, 0, 134, 0, 135, 136, 0, 137,
4010  0, 1329, 0, 138, 0, 0, 0, 139, 0, 0,
4011  0, 140, 0, 141, 142, 0, 143, 144, 0, 145,
4012  146, 147, 148, 149, 150, 0, 151, 152, 0, 153,
4013  0, 0, 0, 0, 154, 0, 0, 0, 0, 0,
4014  155, 156, 157, 0, 0, 158, 0, 0, 0, 0,
4015  159, 160, 0, 0, 0, 0, 0, 0, 0, 0,
4016  0, 161, 162, 0, 0, 0, 163, 0, 164, 165,
4017  166, 0, 0, 167, 0, 168, 169, 0, 170, 171,
4018  0, 172, 0, 173, 174, 0, 0, 175, 0, 0,
4019  176, 177, 178, 0, 179, 0, 0, 0, 180, 181,
4020  0, 182, 0, 183, 0, 0, 184, 0, 0, 0,
4021  0, 0, 185, 86, 186, 0, 88, 0, 0, 187,
4022  188, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4023  0, 0, 0, 189, 0, 190, 0, 0, 191, 0,
4024  0, 192, 0, 0, 0, 193, 0, 0, 0, 0,
4025  0, 194, 195, 0, 196, 0, 0, 0, 0, 197,
4026  198, 199, 200, 0, 0, 201, 0, 202, 0, 203,
4027  0, 204, 205, 206, 207, 0, 0, 208, 209, 210,
4028  0, 0, 211, 0, 0, 0, 212, 213, 0, 214,
4029  215, 216, 217, 0, 0, 0, 0, 0, 0, 0,
4030  0, 218, 0, 0, 219, 0, 220, 221, 222, 223,
4031  0, 0, 0, 0, 0, 224, 0, 0, 0, 0,
4032  225, 0, 0, 0, 0, 0, 226, 0, 0, 0,
4033  227, 228, 229, 230, 231, 232, 233, 0, 234, 235,
4034  858, 0, 0, 236, 237, 238, 239, 0, 0, 240,
4035  0, 241, 242, 243, 0, 0, 0, 0, 0, 0,
4036  0, 0, 0, 0, 244, 245, 0, 0, 246, 0,
4037  0, 247, 248, 249, 0, 0, 250, 0, 251, 252,
4038  0, 0, 253, 0, 0, 254, 0, 255, 256, 0,
4039  257, 0, 0, 258, 0, 0, 259, 260, 0, 261,
4040  262, 0, 0, 0, 263, 0, 0, 0, 0, 264,
4041  0, 0, 0, 0, 0, 0, 265, 0, 266, 0,
4042  0, 267, 0, 0, 0, 0, 268, 269, 0, 0,
4043  0, 0, 270, 0, 0, 0, 271, 0, 0, 125,
4044  126, 0, 127, 128, 0, 0, 0, 0, 129, 0,
4045  0, 0, 130, 131, 132, 1049, 133, 0, 0, 401,
4046  0, 134, 0, 135, 136, 0, 137, 0, 0, 0,
4047  138, 0, 0, 0, 139, 0, 0, 0, 140, 0,
4048  141, 142, 0, 143, 144, 0, 145, 146, 147, 148,
4049  149, 150, 0, 151, 152, 0, 153, 0, 0, 0,
4050  0, 154, 0, 0, 0, 0, 0, 155, 156, 157,
4051  0, 0, 158, 0, 0, 0, 0, 159, 160, 0,
4052  0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
4053  0, 0, 0, 163, 0, 164, 165, 166, 0, 0,
4054  167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
4055  173, 174, 0, 0, 175, 0, 0, 176, 177, 178,
4056  0, 179, 0, 0, 0, 180, 181, 0, 182, 0,
4057  183, 0, 0, 184, 0, 0, 0, 0, 0, 185,
4058  86, 186, 0, 88, 0, 0, 187, 188, 0, 0,
4059  0, 0, 0, 0, 0, 425, 0, 0, 0, 0,
4060  189, 0, 190, 0, 0, 191, 0, 0, 192, 0,
4061  0, 0, 193, 0, 0, 0, 0, 0, 194, 195,
4062  0, 196, 0, 0, 0, 0, 197, 198, 199, 200,
4063  0, 0, 201, 0, 202, 0, 203, 0, 204, 205,
4064  206, 207, 0, 0, 208, 209, 210, 0, 0, 211,
4065  0, 0, 0, 212, 213, 0, 214, 215, 216, 217,
4066  0, 0, 0, 0, 0, 0, 0, 0, 218, 0,
4067  0, 219, 0, 220, 221, 222, 223, 0, 0, 0,
4068  0, 0, 224, 0, 0, 0, 0, 225, 0, 0,
4069  0, 0, 0, 226, 0, 0, 0, 227, 228, 229,
4070  230, 231, 232, 233, 0, 234, 235, 0, 0, 0,
4071  236, 237, 238, 239, 0, 0, 240, 0, 241, 242,
4072  243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4073  0, 244, 245, 0, 0, 246, 0, 0, 247, 248,
4074  249, 0, 0, 250, 0, 251, 252, 0, 0, 253,
4075  0, 0, 254, 0, 255, 256, 0, 257, 0, 0,
4076  258, 0, 0, 259, 260, 0, 261, 262, 0, 0,
4077  0, 263, 0, 0, 0, 0, 264, 0, 0, 0,
4078  0, 0, 0, 265, 0, 266, 0, 0, 267, 0,
4079  0, 0, 0, 268, 269, 0, 0, 125, 126, 270,
4080  127, 128, 0, 271, 0, 0, 129, 0, 0, 0,
4081  130, 131, 132, 0, 133, 0, 0, 0, 0, 134,
4082  0, 135, 136, 0, 137, 0, 283, 0, 138, 0,
4083  0, 0, 139, 0, 0, 0, 140, 0, 141, 142,
4084  0, 143, 144, 0, 145, 146, 147, 148, 149, 150,
4085  0, 151, 152, 0, 153, 0, 0, 0, 0, 154,
4086  0, 0, 0, 0, 0, 155, 156, 157, 0, 0,
4087  158, 0, 0, 0, 0, 159, 160, 0, 0, 0,
4088  0, 0, 0, 0, 0, 0, 161, 162, 0, 0,
4089  0, 163, 0, 164, 165, 166, 0, 0, 167, 0,
4090  168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
4091  0, 0, 175, 0, 0, 176, 177, 178, 0, 179,
4092  0, 0, 0, 180, 181, 0, 182, 0, 183, 0,
4093  0, 184, 0, 0, 0, 0, 0, 185, 86, 186,
4094  0, 88, 0, 0, 187, 188, 0, 0, 0, 0,
4095  0, 0, 0, 0, 0, 0, 0, 0, 189, 0,
4096  190, 0, 0, 191, 0, 0, 192, 0, 0, 0,
4097  193, 0, 0, 0, 0, 0, 194, 195, 0, 196,
4098  0, 0, 0, 0, 197, 198, 199, 200, 0, 0,
4099  201, 0, 202, 0, 203, 0, 204, 205, 206, 207,
4100  0, 0, 208, 209, 210, 0, 0, 211, 0, 0,
4101  0, 212, 213, 0, 214, 215, 216, 217, 0, 0,
4102  0, 0, 0, 0, 0, 0, 218, 0, 0, 219,
4103  0, 220, 221, 222, 223, 0, 0, 0, 0, 0,
4104  224, 0, 0, 0, 0, 225, 0, 0, 0, 0,
4105  0, 226, 0, 0, 0, 227, 228, 229, 230, 231,
4106  232, 233, 0, 234, 235, 0, 0, 0, 236, 237,
4107  238, 239, 0, 0, 240, 0, 241, 242, 243, 0,
4108  0, 0, 0, 0, 0, 0, 0, 0, 0, 244,
4109  245, 0, 0, 246, 0, 0, 247, 248, 249, 0,
4110  0, 250, 0, 251, 252, 0, 0, 253, 0, 0,
4111  254, 0, 255, 256, 0, 257, 0, 0, 258, 0,
4112  0, 259, 260, 0, 261, 262, 0, 0, 0, 263,
4113  0, 0, 0, 0, 264, 0, 0, 0, 0, 0,
4114  0, 265, 0, 266, 0, 0, 267, 0, 0, 0,
4115  0, 268, 269, 0, 0, 0, 0, 270, 0, 0,
4116  0, 271, 0, 125, 126, 0, 127, 128, 0, 0,
4117  0, 0, 129, 0, 0, 0, 130, 131, 132, 1328,
4118  133, 0, 0, 0, 1329, 134, 0, 135, 136, 0,
4119  137, 0, 0, 0, 138, 0, 0, 0, 139, 0,
4120  0, 0, 140, 0, 141, 142, 0, 143, 144, 0,
4121  145, 146, 147, 148, 149, 150, 0, 151, 152, 0,
4122  153, 0, 0, 0, 0, 154, 0, 0, 0, 0,
4123  0, 155, 156, 157, 0, 0, 158, 0, 0, 0,
4124  0, 159, 160, 0, 0, 0, 0, 0, 0, 0,
4125  0, 0, 161, 162, 0, 0, 0, 163, 0, 164,
4126  165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
4127  171, 0, 172, 0, 173, 174, 0, 0, 282, 0,
4128  0, 176, 177, 178, 0, 179, 0, 0, 0, 180,
4129  181, 0, 182, 0, 183, 0, 0, 184, 0, 0,
4130  0, 0, 0, 185, 86, 186, 0, 88, 0, 0,
4131  187, 188, 0, 0, 0, 0, 0, 0, 0, 0,
4132  0, 0, 0, 0, 189, 0, 190, 0, 0, 191,
4133  0, 0, 192, 0, 0, 0, 193, 0, 0, 0,
4134  0, 0, 194, 195, 0, 196, 0, 0, 0, 0,
4135  197, 198, 199, 200, 0, 0, 201, 0, 202, 0,
4136  203, 0, 204, 205, 206, 207, 0, 0, 208, 209,
4137  210, 0, 0, 211, 0, 0, 0, 212, 213, 0,
4138  214, 215, 216, 217, 0, 0, 0, 0, 0, 0,
4139  0, 0, 218, 0, 0, 219, 0, 220, 221, 222,
4140  223, 0, 0, 0, 0, 0, 224, 0, 0, 0,
4141  0, 225, 0, 0, 0, 0, 0, 226, 0, 0,
4142  0, 227, 228, 229, 230, 231, 232, 233, 0, 234,
4143  235, 0, 0, 0, 236, 237, 238, 239, 0, 0,
4144  240, 0, 241, 242, 243, 0, 0, 0, 0, 0,
4145  0, 0, 0, 0, 0, 244, 245, 0, 0, 246,
4146  0, 0, 247, 248, 249, 0, 0, 250, 0, 251,
4147  252, 0, 0, 253, 0, 0, 254, 0, 255, 256,
4148  0, 257, 0, 0, 258, 0, 0, 259, 260, 0,
4149  261, 262, 0, 0, 0, 263, 0, 0, 0, 0,
4150  264, 0, 0, 0, 0, 0, 0, 265, 0, 266,
4151  0, 0, 267, 0, 0, 0, 0, 268, 269, 0,
4152  0, 125, 126, 270, 127, 128, 0, 271, 0, 0,
4153  129, 0, 0, 0, 130, 131, 132, 0, 133, 0,
4154  0, 0, 0, 134, 0, 135, 136, 0, 137, 0,
4155  283, 0, 138, 0, 0, 0, 139, 0, 0, 0,
4156  140, 0, 141, 142, 0, 143, 144, 0, 145, 146,
4157  147, 148, 149, 150, 0, 151, 152, 0, 153, 0,
4158  0, 0, 0, 154, 0, 0, 0, 0, 0, 155,
4159  156, 157, 0, 0, 158, 0, 0, 0, 0, 159,
4160  160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4161  161, 162, 0, 0, 0, 163, 0, 164, 165, 166,
4162  0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
4163  172, 0, 173, 174, 0, 0, 175, 0, 0, 176,
4164  177, 178, 0, 179, 0, 0, 0, 180, 181, 0,
4165  182, 0, 183, 0, 0, 184, 0, 0, 0, 0,
4166  0, 185, 86, 186, 0, 88, 0, 0, 187, 188,
4167  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4168  0, 0, 189, 0, 190, 0, 0, 191, 0, 0,
4169  192, 0, 0, 0, 193, 0, 0, 0, 0, 0,
4170  194, 195, 0, 196, 0, 0, 0, 0, 197, 198,
4171  199, 200, 0, 0, 201, 0, 202, 0, 203, 0,
4172  204, 205, 206, 207, 0, 0, 208, 209, 210, 0,
4173  0, 211, 0, 0, 0, 212, 213, 0, 214, 215,
4174  216, 217, 0, 0, 0, 0, 0, 0, 0, 0,
4175  218, 0, 0, 219, 0, 220, 221, 222, 223, 0,
4176  0, 0, 0, 0, 224, 0, 0, 0, 0, 225,
4177  0, 0, 0, 0, 0, 226, 0, 0, 0, 227,
4178  228, 229, 230, 231, 232, 233, 0, 234, 235, 0,
4179  0, 0, 236, 237, 238, 239, 0, 0, 240, 0,
4180  241, 242, 243, 0, 0, 0, 0, 0, 0, 0,
4181  0, 0, 0, 244, 245, 0, 0, 246, 0, 0,
4182  247, 248, 249, 0, 0, 250, 0, 251, 252, 0,
4183  0, 253, 0, 0, 254, 0, 255, 256, 0, 257,
4184  0, 0, 258, 0, 0, 259, 260, 0, 261, 262,
4185  0, 0, 0, 263, 0, 0, 0, 0, 264, 0,
4186  0, 0, 0, 0, 0, 265, 0, 266, 0, 0,
4187  267, 0, 0, 0, 0, 268, 269, 0, 0, 125,
4188  126, 270, 127, 128, 0, 271, 0, 0, 129, 0,
4189  0, 0, 130, 131, 132, 0, 133, 0, 0, 0,
4190  0, 134, 0, 135, 136, 0, 137, 0, 283, 0,
4191  138, 0, 0, 0, 139, 0, 0, 0, 140, 0,
4192  141, 142, 0, 143, 144, 0, 145, 146, 147, 148,
4193  149, 150, 0, 151, 152, 0, 153, 0, 0, 0,
4194  0, 154, 0, 0, 0, 0, 0, 155, 156, 157,
4195  0, 0, 158, 0, 0, 0, 0, 159, 160, 0,
4196  0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
4197  0, 0, 0, 163, 0, 164, 165, 166, 0, 0,
4198  167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
4199  173, 174, 0, 0, 175, 0, 0, 176, 177, 178,
4200  0, 179, 0, 0, 0, 180, 181, 0, 182, 0,
4201  183, 0, 0, 184, 0, 0, 0, 0, 0, 185,
4202  86, 186, 0, 88, 0, 0, 187, 188, 0, 0,
4203  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4204  189, 0, 190, 0, 0, 191, 0, 0, 192, 0,
4205  0, 0, 193, 0, 0, 0, 0, 0, 194, 195,
4206  0, 196, 0, 0, 0, 0, 197, 198, 199, 200,
4207  0, 0, 201, 0, 202, 0, 203, 0, 204, 205,
4208  206, 207, 0, 0, 208, 209, 210, 0, 0, 211,
4209  0, 0, 0, 212, 213, 0, 214, 215, 216, 217,
4210  0, 0, 0, 0, 0, 0, 0, 0, 218, 0,
4211  0, 219, 0, 220, 221, 222, 223, 0, 0, 0,
4212  0, 0, 224, 0, 0, 0, 0, 225, 0, 0,
4213  0, 0, 0, 226, 0, 0, 0, 227, 228, 229,
4214  230, 231, 232, 233, 0, 234, 235, 0, 0, 0,
4215  236, 237, 238, 239, 0, 0, 240, 0, 241, 242,
4216  243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4217  0, 244, 245, 0, 0, 246, 0, 0, 247, 248,
4218  249, 0, 0, 250, 0, 251, 252, 0, 0, 253,
4219  0, 0, 254, 0, 255, 256, 0, 257, 0, 0,
4220  258, 0, 0, 259, 260, 0, 261, 262, 0, 0,
4221  0, 263, 0, 0, 0, 0, 264, 0, 0, 0,
4222  0, 0, 0, 265, 0, 266, 0, 0, 267, 0,
4223  0, 0, 0, 268, 269, 0, 0, 125, 126, 270,
4224  127, 128, 0, 271, 0, 0, 129, 0, 0, 0,
4225  130, 131, 132, 0, 133, 0, 0, 0, 0, 134,
4226  0, 135, 136, 0, 137, 0, 401, 0, 138, 0,
4227  0, 0, 139, 0, 0, 0, 140, 0, 141, 142,
4228  0, 143, 144, 0, 145, 146, 147, 148, 149, 150,
4229  0, 151, 152, 0, 153, 0, 0, 0, 0, 154,
4230  0, 0, 0, 0, 0, 155, 156, 157, 0, 0,
4231  158, 0, 0, 0, 0, 159, 160, 0, 0, 0,
4232  0, 0, 0, 0, 0, 0, 161, 162, 0, 0,
4233  0, 163, 0, 164, 165, 166, 0, 0, 167, 0,
4234  168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
4235  0, 0, 175, 0, 0, 176, 177, 178, 0, 179,
4236  0, 0, 0, 180, 181, 0, 182, 0, 183, 0,
4237  0, 184, 0, 0, 0, 0, 0, 185, 86, 186,
4238  0, 88, 0, 0, 187, 188, 0, 0, 0, 0,
4239  0, 0, 0, 0, 0, 0, 0, 0, 189, 0,
4240  190, 0, 0, 191, 0, 0, 192, 0, 0, 0,
4241  193, 0, 0, 0, 0, 0, 194, 195, 0, 196,
4242  0, 0, 0, 0, 197, 198, 199, 200, 0, 0,
4243  201, 0, 202, 0, 203, 0, 204, 205, 206, 207,
4244  0, 0, 208, 209, 210, 0, 0, 211, 0, 0,
4245  0, 212, 213, 0, 214, 215, 216, 217, 0, 0,
4246  0, 0, 0, 0, 0, 0, 218, 0, 0, 219,
4247  0, 220, 221, 222, 223, 0, 0, 0, 0, 0,
4248  224, 0, 0, 0, 0, 225, 0, 0, 0, 0,
4249  0, 226, 0, 0, 0, 227, 228, 229, 230, 231,
4250  232, 233, 0, 234, 235, 0, 0, 0, 236, 237,
4251  238, 239, 0, 0, 240, 0, 241, 242, 243, 0,
4252  0, 0, 0, 0, 0, 0, 0, 0, 0, 244,
4253  245, 0, 0, 246, 0, 0, 247, 248, 249, 0,
4254  0, 250, 0, 251, 252, 0, 0, 253, 0, 0,
4255  254, 0, 255, 256, 0, 257, 0, 0, 258, 0,
4256  0, 259, 260, 0, 261, 262, 0, 0, 0, 263,
4257  0, 0, 0, 0, 264, 0, 0, 0, 0, 0,
4258  0, 265, 0, 266, 0, 0, 267, 0, 0, 0,
4259  0, 268, 269, 0, 0, 125, 126, 270, 127, 128,
4260  0, 271, 0, 0, 129, 0, 0, 0, 130, 131,
4261  132, 0, 133, 0, 0, 0, 0, 134, 0, 135,
4262  136, 0, 137, 0, 1329, 0, 138, 0, 0, 0,
4263  139, 0, 0, 0, 140, 0, 141, 142, 0, 143,
4264  144, 0, 145, 146, 147, 148, 149, 150, 0, 151,
4265  152, 0, 153, 0, 0, 0, 0, 154, 0, 0,
4266  0, 0, 0, 155, 156, 157, 0, 0, 158, 0,
4267  0, 0, 0, 159, 160, 0, 0, 0, 0, 0,
4268  0, 0, 0, 0, 161, 162, 0, 0, 0, 163,
4269  0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
4270  0, 170, 171, 0, 172, 0, 173, 174, 0, 0,
4271  175, 0, 0, 176, 177, 178, 0, 179, 0, 0,
4272  0, 180, 181, 0, 182, 0, 183, 0, 0, 184,
4273  0, 0, 0, 0, 0, 185, 86, 186, 0, 88,
4274  0, 0, 187, 188, 0, 0, 0, 0, 0, 0,
4275  0, 0, 0, 0, 0, 0, 189, 0, 190, 0,
4276  0, 191, 0, 0, 192, 0, 0, 0, 193, 0,
4277  0, 0, 0, 0, 194, 195, 0, 196, 0, 0,
4278  0, 0, 197, 198, 199, 200, 0, 0, 201, 0,
4279  202, 0, 203, 0, 204, 205, 206, 207, 0, 0,
4280  208, 209, 210, 0, 0, 211, 0, 0, 0, 212,
4281  213, 0, 214, 215, 216, 217, 0, 0, 0, 0,
4282  0, 0, 0, 0, 218, 0, 0, 219, 0, 220,
4283  221, 222, 223, 0, 0, 0, 0, 0, 224, 0,
4284  0, 0, 0, 225, 0, 0, 0, 0, 0, 226,
4285  0, 0, 0, 227, 228, 229, 230, 231, 232, 233,
4286  0, 234, 235, 0, 0, 0, 236, 237, 238, 239,
4287  0, 0, 240, 0, 241, 242, 243, 0, 0, 0,
4288  0, 0, 0, 0, 0, 0, 0, 244, 245, 0,
4289  0, 246, 0, 0, 247, 248, 249, 0, 0, 250,
4290  0, 251, 252, 0, 0, 253, 0, 0, 254, 0,
4291  255, 256, 0, 257, 0, 0, 258, 0, 0, 259,
4292  260, 0, 261, 262, 0, 0, 0, 263, 0, 0,
4293  0, 0, 264, 0, 0, 0, 0, 0, 0, 265,
4294  0, 266, 0, 0, 267, 0, 0, 0, 0, 268,
4295  269, 0, 0, 125, 126, 270, 127, 128, 0, 271,
4296  0, 0, 129, 0, 0, 0, 130, 131, 132, 0,
4297  133, 1266, 0, 0, 0, 134, 0, 135, 136, 0,
4298  137, 0, 0, 0, 138, 0, 0, 0, 139, 0,
4299  0, 0, 140, 0, 141, 142, 0, 143, 144, 0,
4300  145, 146, 147, 148, 149, 150, 0, 151, 152, 0,
4301  153, 0, 0, 0, 0, 154, 0, 0, 0, 0,
4302  0, 155, 156, 157, 0, 0, 158, 0, 0, 0,
4303  0, 159, 160, 0, 0, 0, 0, 0, 0, 0,
4304  0, 0, 161, 162, 0, 0, 0, 163, 0, 164,
4305  165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
4306  171, 0, 172, 0, 173, 174, 0, 0, 175, 0,
4307  0, 176, 177, 178, 0, 179, 0, 0, 0, 180,
4308  181, 0, 182, 0, 183, 0, 0, 184, 0, 0,
4309  0, 0, 0, 185, 86, 186, 0, 88, 0, 0,
4310  187, 188, 0, 0, 0, 0, 0, 0, 0, 0,
4311  0, 0, 0, 0, 189, 0, 190, 0, 0, 191,
4312  0, 0, 192, 0, 0, 0, 193, 0, 0, 0,
4313  0, 0, 194, 195, 0, 196, 0, 0, 0, 0,
4314  197, 198, 199, 200, 0, 0, 201, 0, 202, 0,
4315  203, 0, 204, 205, 206, 207, 0, 0, 208, 209,
4316  210, 0, 0, 211, 0, 0, 0, 212, 213, 0,
4317  214, 215, 216, 217, 0, 0, 0, 0, 0, 0,
4318  0, 0, 218, 0, 0, 219, 0, 220, 221, 222,
4319  223, 0, 0, 0, 0, 0, 224, 0, 0, 0,
4320  0, 225, 0, 0, 0, 0, 0, 226, 0, 0,
4321  0, 227, 228, 229, 230, 231, 232, 233, 0, 234,
4322  235, 0, 0, 0, 236, 237, 238, 239, 0, 0,
4323  240, 0, 241, 242, 243, 0, 0, 0, 0, 0,
4324  0, 0, 0, 0, 0, 244, 245, 0, 0, 246,
4325  0, 0, 247, 248, 249, 0, 0, 250, 0, 251,
4326  252, 0, 0, 253, 0, 0, 254, 0, 255, 256,
4327  0, 257, 0, 0, 258, 0, 0, 259, 260, 0,
4328  261, 262, 0, 0, 0, 263, 0, 0, 0, 0,
4329  264, 0, 0, 0, 0, 0, 0, 265, 0, 266,
4330  0, 0, 267, 0, 0, 0, 0, 268, 269, 0,
4331  0, 125, 126, 270, 127, 128, 0, 271, 0, 0,
4332  129, 0, 0, 0, 130, 131, 132, 0, 133, 1612,
4333  0, 0, 675, 134, 0, 135, 136, 0, 137, 0,
4334  0, 0, 138, 0, 0, 0, 139, 0, 0, 0,
4335  140, 0, 141, 142, 0, 143, 144, 0, 145, 146,
4336  147, 148, 149, 150, 0, 151, 152, 0, 153, 0,
4337  0, 0, 0, 154, 0, 0, 0, 0, 0, 155,
4338  156, 157, 0, 0, 158, 0, 0, 0, 0, 159,
4339  160, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4340  161, 162, 0, 0, 0, 163, 0, 164, 165, 166,
4341  0, 0, 167, 0, 168, 169, 0, 170, 171, 0,
4342  172, 0, 173, 174, 0, 0, 175, 0, 0, 176,
4343  177, 178, 0, 179, 0, 0, 0, 180, 181, 0,
4344  182, 0, 183, 0, 0, 184, 0, 676, 0, 0,
4345  0, 185, 86, 186, 0, 88, 0, 0, 187, 188,
4346  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4347  0, 0, 189, 0, 190, 0, 0, 191, 0, 0,
4348  192, 0, 0, 0, 193, 0, 0, 0, 0, 0,
4349  194, 195, 0, 196, 0, 0, 0, 0, 197, 198,
4350  199, 200, 0, 0, 201, 0, 202, 0, 203, 0,
4351  204, 205, 206, 207, 0, 0, 208, 209, 210, 0,
4352  0, 211, 0, 0, 0, 212, 213, 0, 214, 215,
4353  216, 217, 0, 0, 0, 0, 0, 0, 0, 0,
4354  218, 0, 0, 219, 0, 220, 221, 222, 223, 0,
4355  0, 0, 0, 0, 224, 0, 0, 0, 0, 225,
4356  0, 0, 0, 0, 0, 226, 0, 0, 0, 227,
4357  228, 229, 230, 231, 232, 233, 0, 234, 235, 0,
4358  0, 0, 236, 237, 238, 239, 0, 0, 240, 0,
4359  241, 242, 243, 0, 0, 0, 0, 0, 0, 0,
4360  0, 0, 0, 244, 245, 0, 0, 246, 0, 0,
4361  247, 248, 249, 0, 0, 250, 0, 251, 252, 0,
4362  0, 253, 0, 378, 254, 0, 255, 256, 0, 257,
4363  0, 0, 258, 0, 0, 259, 260, 0, 261, 262,
4364  0, 0, 0, 263, 0, 0, 0, 0, 264, 0,
4365  0, 0, 0, 0, 0, 265, 0, 266, 0, 0,
4366  267, 0, 0, 0, 0, 268, 269, 0, 0, 125,
4367  126, 270, 127, 128, 0, 271, 0, 0, 129, 1262,
4368  0, 0, 130, 131, 132, 0, 133, 0, 0, 0,
4369  0, 134, 0, 135, 136, 0, 137, 0, 0, 0,
4370  138, 0, 0, 0, 139, 0, 0, 0, 140, 0,
4371  141, 142, 0, 143, 144, 0, 145, 146, 147, 148,
4372  149, 150, 0, 151, 152, 0, 153, 0, 0, 0,
4373  0, 154, 0, 0, 0, 0, 0, 155, 156, 157,
4374  0, 0, 158, 0, 0, 0, 0, 159, 160, 0,
4375  0, 0, 0, 0, 0, 0, 0, 0, 161, 162,
4376  0, 0, 0, 163, 0, 164, 165, 166, 0, 0,
4377  167, 0, 168, 169, 0, 170, 171, 0, 172, 0,
4378  173, 174, 0, 0, 175, 0, 0, 176, 177, 178,
4379  0, 179, 0, 0, 0, 180, 181, 0, 182, 0,
4380  183, 0, 0, 184, 0, 0, 0, 0, 0, 185,
4381  86, 186, 0, 88, 0, 0, 187, 188, 0, 0,
4382  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4383  189, 0, 190, 0, 0, 191, 0, 0, 192, 0,
4384  0, 0, 193, 0, 0, 0, 0, 0, 194, 195,
4385  0, 196, 0, 0, 0, 0, 197, 198, 199, 200,
4386  0, 0, 201, 0, 202, 0, 203, 0, 204, 205,
4387  206, 207, 0, 0, 208, 209, 210, 0, 0, 211,
4388  0, 0, 0, 212, 213, 0, 214, 215, 216, 217,
4389  0, 0, 0, 0, 0, 0, 0, 0, 218, 0,
4390  0, 219, 0, 220, 221, 222, 223, 0, 0, 0,
4391  0, 0, 224, 0, 0, 0, 0, 225, 0, 0,
4392  0, 0, 0, 226, 0, 0, 0, 227, 228, 229,
4393  230, 231, 232, 233, 0, 234, 235, 0, 0, 0,
4394  236, 237, 238, 239, 0, 0, 240, 0, 241, 242,
4395  243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4396  0, 244, 245, 0, 0, 246, 0, 0, 247, 248,
4397  249, 0, 0, 250, 0, 251, 252, 0, 0, 253,
4398  0, 91, 254, 0, 255, 256, 0, 257, 0, 0,
4399  258, 0, 0, 259, 260, 0, 261, 262, 0, 0,
4400  0, 263, 0, 0, 0, 0, 264, 0, 0, 0,
4401  0, 0, 0, 265, 0, 266, 0, 0, 267, 0,
4402  0, 0, 0, 268, 269, 0, 0, 125, 126, 270,
4403  127, 128, 0, 271, 0, 0, 129, 0, 0, 0,
4404  130, 131, 132, 0, 133, 0, 0, 0, 0, 134,
4405  0, 135, 136, 0, 137, 0, 0, 0, 138, 0,
4406  0, 0, 139, 0, 0, 0, 140, 0, 141, 142,
4407  0, 143, 144, 0, 145, 146, 147, 148, 149, 150,
4408  0, 151, 152, 0, 153, 0, 0, 0, 0, 154,
4409  0, 0, 0, 0, 0, 155, 156, 157, 0, 0,
4410  158, 0, 0, 0, 0, 159, 160, 0, 0, 0,
4411  0, 0, 0, 0, 0, 0, 161, 162, 0, 0,
4412  0, 163, 0, 164, 165, 166, 0, 0, 167, 0,
4413  168, 169, 0, 170, 171, 0, 172, 0, 173, 174,
4414  0, 0, 175, 0, 0, 176, 177, 178, 0, 179,
4415  0, 0, 0, 180, 181, 0, 182, 0, 183, 0,
4416  0, 184, 0, 0, 0, 0, 0, 185, 86, 186,
4417  0, 88, 0, 0, 187, 188, 0, 0, 0, 0,
4418  0, 0, 0, 0, 0, 0, 0, 0, 189, 0,
4419  190, 0, 0, 191, 0, 0, 192, 0, 0, 0,
4420  193, 0, 0, 0, 0, 0, 194, 195, 0, 196,
4421  0, 0, 0, 0, 197, 198, 199, 200, 0, 0,
4422  201, 0, 202, 0, 203, 0, 204, 205, 206, 207,
4423  0, 0, 208, 209, 210, 0, 0, 211, 0, 0,
4424  0, 212, 213, 0, 214, 215, 216, 217, 0, 0,
4425  0, 0, 0, 0, 0, 0, 218, 0, 0, 219,
4426  0, 220, 221, 222, 223, 0, 0, 0, 0, 0,
4427  224, 0, 0, 0, 0, 225, 0, 0, 0, 0,
4428  0, 226, 0, 0, 0, 227, 228, 229, 230, 231,
4429  232, 233, 0, 234, 235, 0, 0, 0, 236, 237,
4430  238, 239, 0, 0, 240, 0, 241, 242, 243, 0,
4431  0, 0, 0, 0, 0, 0, 0, 0, 0, 244,
4432  245, 0, 0, 246, 0, 0, 247, 248, 249, 0,
4433  0, 250, 0, 251, 252, 0, 0, 253, 0, 91,
4434  254, 0, 255, 256, 0, 257, 0, 0, 258, 0,
4435  0, 259, 260, 0, 261, 262, 0, 0, 0, 263,
4436  0, 0, 0, 0, 264, 0, 0, 0, 0, 0,
4437  0, 265, 0, 266, 0, 0, 267, 0, 0, 0,
4438  0, 268, 269, 0, 0, 125, 126, 270, 127, 128,
4439  0, 271, 0, 0, 129, 0, 0, 0, 130, 131,
4440  132, 0, 133, 0, 0, 0, 0, 134, 0, 135,
4441  136, 0, 137, 0, 0, 0, 138, 0, 0, 0,
4442  139, 0, 0, 0, 140, 0, 141, 142, 0, 143,
4443  144, 0, 145, 146, 147, 148, 149, 150, 0, 151,
4444  152, 0, 153, 0, 0, 0, 0, 154, 0, 0,
4445  0, 0, 0, 155, 156, 157, 0, 0, 158, 0,
4446  0, 0, 0, 159, 160, 0, 0, 0, 0, 0,
4447  0, 0, 0, 0, 161, 162, 0, 0, 0, 163,
4448  0, 164, 165, 166, 0, 0, 167, 0, 168, 169,
4449  0, 170, 171, 0, 172, 0, 173, 174, 0, 0,
4450  175, 0, 0, 176, 177, 178, 0, 179, 0, 0,
4451  0, 180, 181, 0, 182, 0, 183, 0, 0, 184,
4452  0, 0, 0, 0, 0, 185, 86, 186, 0, 88,
4453  0, 0, 187, 188, 0, 0, 0, 0, 0, 0,
4454  0, 0, 0, 0, 0, 0, 189, 0, 190, 0,
4455  0, 191, 0, 0, 192, 0, 0, 0, 193, 0,
4456  0, 0, 0, 0, 194, 195, 0, 196, 0, 0,
4457  0, 0, 197, 198, 199, 200, 0, 0, 201, 0,
4458  202, 0, 203, 0, 204, 205, 206, 207, 0, 0,
4459  208, 209, 210, 0, 0, 211, 0, 0, 0, 212,
4460  213, 0, 214, 215, 216, 217, 0, 0, 0, 0,
4461  0, 0, 0, 0, 218, 0, 0, 219, 2095, 220,
4462  221, 222, 223, 0, 0, 0, 0, 0, 224, 0,
4463  0, 0, 0, 225, 0, 0, 0, 0, 0, 226,
4464  0, 0, 0, 227, 228, 229, 230, 231, 232, 233,
4465  0, 234, 235, 0, 0, 0, 236, 237, 238, 239,
4466  0, 0, 240, 0, 241, 242, 243, 0, 0, 0,
4467  0, 0, 0, 0, 0, 0, 0, 244, 245, 0,
4468  0, 246, 0, 0, 247, 248, 249, 0, 0, 250,
4469  0, 251, 252, 0, 0, 253, 0, 0, 254, 0,
4470  255, 256, 0, 257, 0, 0, 258, 0, 0, 259,
4471  260, 0, 261, 262, 0, 0, 0, 263, 0, 0,
4472  0, 0, 264, 0, 0, 0, 0, 0, 0, 265,
4473  0, 266, 0, 0, 267, 0, 0, 0, 0, 268,
4474  269, 0, 0, 125, 126, 270, 127, 128, 0, 271,
4475  0, 0, 129, 0, 0, 0, 130, 131, 132, 0,
4476  133, 0, 0, 0, 0, 134, 0, 135, 136, 0,
4477  137, 0, 0, 0, 138, 0, 0, 0, 139, 0,
4478  0, 0, 140, 0, 141, 142, 0, 143, 144, 0,
4479  145, 146, 147, 148, 149, 150, 0, 151, 152, 0,
4480  153, 0, 0, 0, 0, 154, 0, 0, 0, 0,
4481  0, 155, 156, 157, 0, 0, 158, 0, 0, 0,
4482  0, 159, 160, 0, 0, 0, 0, 0, 0, 0,
4483  0, 0, 161, 162, 0, 0, 0, 163, 0, 164,
4484  165, 166, 0, 0, 167, 0, 168, 169, 0, 170,
4485  171, 0, 172, 0, 173, 174, 0, 0, 175, 0,
4486  0, 176, 177, 178, 0, 179, 0, 0, 0, 180,
4487  181, 0, 182, 0, 183, 0, 0, 184, 0, 0,
4488  0, 0, 0, 185, 86, 186, 0, 88, 0, 0,
4489  187, 188, 0, 0, 0, 0, 0, 0, 0, 0,
4490  0, 0, 0, 0, 189, 0, 190, 0, 0, 191,
4491  0, 0, 192, 0, 0, 0, 193, 0, 0, 0,
4492  0, 0, 194, 195, 0, 196, 0, 0, 0, 0,
4493  197, 198, 199, 200, 0, 0, 201, 0, 202, 0,
4494  203, 0, 204, 205, 206, 207, 0, 0, 208, 209,
4495  210, 0, 0, 211, 0, 0, 0, 212, 213, 0,
4496  214, 215, 216, 217, 0, 0, 0, 0, 0, 0,
4497  0, 0, 218, 0, 0, 219, 0, 220, 221, 222,
4498  223, 0, 0, 0, 0, 0, 224, 0, 0, 0,
4499  0, 225, 0, 0, 0, 0, 0, 226, 0, 0,
4500  0, 227, 228, 229, 230, 231, 232, 233, 0, 234,
4501  235, 0, 0, 0, 236, 237, 238, 239, 0, 0,
4502  240, 0, 241, 242, 243, 0, 0, 0, 0, 0,
4503  0, 0, 0, 0, 0, 244, 245, 0, 0, 246,
4504  0, 0, 247, 248, 249, 0, 0, 250, 0, 251,
4505  252, 0, 0, 253, 0, 0, 254, 0, 255, 256,
4506  0, 257, 0, 0, 258, 0, 0, 259, 260, 0,
4507  261, 262, 0, 0, 0, 263, 0, 0, 0, 0,
4508  264, 0, 0, 0, 0, 0, 0, 265, 0, 266,
4509  0, 0, 267, 0, 0, 0, 0, 268, 269, 0,
4510  0, 0, 0, 270, 0, 0, 0, 271
4511 };
4512 
4513 #define yypact_value_is_default(yystate) \
4514  ((yystate) == (-1713))
4515 
4516 #define yytable_value_is_error(yytable_value) \
4517  ((yytable_value) == (-1216))
4518 
4519 static const yytype_int16 yycheck[] =
4520 {
4521  12, 331, 332, 93, 432, 923, 1062, 1071, 414, 21,
4522  12, 539, 620, 1092, 51, 1094, 320, 29, 1234, 336,
4523  530, 1099, 1009, 515, 516, 1055, 107, 594, 862, 880,
4524  109, 673, 362, 1005, 1420, 602, 1203, 1507, 532, 51,
4525  461, 1441, 121, 911, 1133, 450, 12, 377, 299, 1660,
4526  47, 63, 12, 12, 1557, 47, 461, 387, 388, 389,
4527  853, 65, 74, 1230, 381, 12, 1578, 577, 104, 81,
4528  51, 1043, 478, 14, 52, 69, 658, 1661, 34, 661,
4529  25, 93, 690, 665, 666, 113, 12, 124, 12, 87,
4530  89, 93, 396, 397, 398, 107, 12, 109, 1620, 12,
4531  1302, 109, 44, 12, 12, 1445, 118, 1737, 12, 121,
4532  1049, 12, 124, 1453, 12, 14, 118, 480, 873, 12,
4533  69, 12, 528, 115, 127, 12, 660, 1077, 1078, 58,
4534  12, 12, 39, 1136, 12, 219, 871, 179, 71, 12,
4535  133, 87, 228, 1253, 1080, 180, 1082, 150, 100, 1491,
4536  7, 155, 207, 29, 1652, 87, 12, 235, 668, 272,
4537  1658, 12, 12, 569, 168, 220, 12, 272, 9, 1233,
4538  88, 1650, 176, 12, 9, 51, 297, 1656, 12, 12,
4539  272, 150, 44, 1662, 1663, 132, 128, 63, 12, 170,
4540  9, 9, 12, 228, 1716, 140, 334, 316, 74, 145,
4541  283, 214, 148, 207, 316, 81, 12, 1271, 180, 12,
4542  109, 99, 364, 1360, 12, 12, 153, 66, 12, 12,
4543  1436, 12, 12, 132, 295, 129, 363, 145, 12, 1941,
4544  148, 150, 353, 109, 171, 12, 73, 250, 317, 132,
4545  233, 1696, 1697, 1111, 315, 121, 1325, 1326, 124, 387,
4546  268, 150, 101, 390, 95, 338, 228, 261, 214, 12,
4547  95, 1731, 145, 229, 301, 148, 123, 386, 673, 229,
4548  1768, 283, 1672, 386, 386, 388, 95, 95, 290, 231,
4549  292, 386, 229, 215, 12, 254, 298, 1629, 343, 301,
4550  12, 284, 304, 305, 386, 237, 2008, 1131, 302, 334,
4551  1239, 257, 606, 229, 390, 317, 390, 214, 386, 917,
4552  918, 1247, 241, 229, 1944, 897, 229, 621, 1520, 361,
4553  229, 229, 316, 279, 360, 229, 334, 690, 229, 1064,
4554  358, 229, 1802, 12, 1444, 829, 229, 255, 229, 342,
4555  339, 12, 229, 14, 12, 12, 425, 229, 229, 347,
4556  884, 229, 862, 331, 1824, 254, 229, 12, 1361, 1970,
4557  12, 1279, 343, 12, 323, 899, 1582, 316, 1708, 12,
4558  316, 316, 1712, 229, 12, 1878, 373, 12, 229, 229,
4559  313, 373, 323, 229, 1968, 389, 248, 424, 400, 401,
4560  229, 279, 12, 335, 1541, 229, 229, 1919, 316, 650,
4561  366, 12, 1236, 12, 2015, 229, 366, 283, 1486, 229,
4562  318, 226, 424, 425, 290, 12, 292, 1367, 1930, 366,
4563  12, 387, 298, 229, 390, 301, 229, 387, 304, 305,
4564  390, 229, 229, 316, 1227, 229, 229, 12, 229, 229,
4565  366, 317, 366, 390, 481, 229, 1535, 12, 1537, 941,
4566  366, 12, 229, 366, 12, 492, 1023, 366, 366, 1327,
4567  952, 387, 366, 121, 390, 366, 478, 479, 366, 481,
4568  1225, 387, 390, 366, 390, 366, 229, 390, 387, 366,
4569  492, 1089, 974, 387, 366, 366, 907, 499, 366, 390,
4570  1969, 389, 1074, 366, 506, 1998, 1999, 1897, 2001, 390,
4571  590, 229, 907, 390, 1032, 1033, 387, 229, 390, 390,
4572  366, 1981, 390, 2016, 387, 366, 366, 1125, 530, 1127,
4573  366, 1129, 1908, 1993, 400, 401, 1360, 366, 1022, 1171,
4574  834, 387, 366, 366, 1044, 1029, 387, 387, 2041, 390,
4575  2043, 2044, 366, 1451, 390, 121, 366, 14, 424, 425,
4576  229, 390, 633, 1617, 387, 1722, 390, 390, 229, 292,
4577  366, 229, 229, 366, 12, 577, 390, 12, 366, 366,
4578  390, 1081, 366, 366, 229, 366, 366, 229, 590, 12,
4579  229, 325, 366, 88, 390, 29, 229, 390, 590, 366,
4580  12, 229, 390, 390, 229, 1658, 390, 390, 65, 390,
4581  390, 22, 478, 479, 12, 481, 390, 686, 620, 229,
4582  387, 648, 624, 366, 651, 12, 492, 12, 229, 63,
4583  229, 633, 1295, 499, 1475, 272, 663, 1055, 15, 12,
4584  506, 1452, 229, 1605, 387, 12, 648, 229, 366, 651,
4585  145, 71, 109, 148, 366, 12, 1676, 659, 12, 1705,
4586  652, 663, 1219, 12, 229, 12, 668, 694, 150, 387,
4587  127, 12, 129, 181, 229, 387, 272, 1585, 229, 327,
4588  137, 229, 139, 12, 686, 12, 44, 132, 690, 12,
4589  692, 310, 694, 150, 313, 1593, 1594, 366, 155, 127,
4590  272, 1736, 121, 160, 1302, 366, 31, 12, 366, 366,
4591  272, 168, 1747, 90, 1312, 1768, 1747, 1541, 387, 176,
4592  446, 366, 150, 180, 366, 313, 1703, 366, 185, 387,
4593  387, 1299, 1026, 366, 1216, 180, 462, 272, 366, 20,
4594  1240, 366, 387, 280, 135, 387, 109, 132, 387, 386,
4595  207, 9, 163, 129, 387, 121, 366, 265, 624, 387,
4596  255, 327, 387, 220, 0, 366, 1334, 366, 179, 12,
4597  128, 228, 917, 918, 313, 641, 499, 387, 1984, 366,
4598  1826, 1592, 648, 506, 366, 651, 387, 149, 387, 70,
4599  386, 229, 183, 659, 229, 135, 215, 663, 218, 96,
4600  387, 366, 1122, 223, 261, 387, 229, 84, 810, 185,
4601  1718, 366, 187, 138, 386, 366, 1316, 229, 366, 1854,
4602  686, 316, 387, 1854, 386, 1488, 692, 132, 694, 856,
4603  857, 229, 387, 370, 88, 1498, 387, 95, 249, 387,
4604  1734, 216, 229, 183, 229, 302, 212, 132, 125, 215,
4605  1904, 386, 1370, 121, 856, 857, 229, 106, 1926, 1927,
4606  862, 14, 229, 140, 298, 114, 379, 1385, 1386, 149,
4607  304, 9, 229, 9, 387, 229, 362, 334, 880, 237,
4608  229, 221, 229, 1401, 886, 342, 343, 278, 229, 272,
4609  145, 145, 132, 148, 148, 390, 279, 1708, 132, 6,
4610  229, 1712, 229, 10, 361, 202, 229, 1976, 327, 911,
4611  187, 1393, 65, 38, 342, 917, 918, 38, 920, 84,
4612  160, 913, 1520, 47, 229, 18, 379, 153, 366, 163,
4613  387, 366, 389, 390, 387, 1435, 1016, 362, 278, 216,
4614  137, 1835, 1836, 366, 810, 1427, 71, 215, 387, 387,
4615  71, 318, 387, 313, 366, 330, 109, 95, 391, 95,
4616  125, 327, 1625, 87, 387, 18, 349, 350, 366, 387,
4617  336, 168, 390, 566, 567, 387, 129, 335, 227, 366,
4618  1125, 366, 1127, 1303, 137, 2030, 139, 2032, 228, 387,
4619  856, 857, 1072, 366, 87, 391, 862, 212, 51, 366,
4620  387, 255, 155, 386, 335, 1816, 1817, 160, 118, 366,
4621  41, 42, 366, 214, 1016, 168, 47, 366, 2064, 366,
4622  886, 168, 187, 176, 1016, 366, 56, 180, 153, 176,
4623  387, 228, 185, 387, 87, 88, 1038, 366, 387, 366,
4624  387, 387, 1044, 366, 390, 387, 387, 171, 390, 47,
4625  22, 216, 297, 330, 207, 84, 109, 110, 387, 327,
4626  387, 366, 316, 1065, 387, 1067, 315, 220, 336, 122,
4627  1072, 1651, 362, 1065, 1654, 228, 390, 1657, 171, 1081,
4628  1072, 316, 18, 380, 381, 382, 383, 1089, 212, 87,
4629  88, 215, 145, 218, 386, 148, 125, 218, 223, 10,
4630  11, 44, 223, 1130, 1096, 41, 42, 50, 261, 1111,
4631  21, 47, 386, 237, 261, 51, 1118, 60, 2013, 212,
4632  2028, 386, 215, 1125, 96, 1127, 386, 1129, 1130, 1131,
4633  386, 1133, 391, 44, 1136, 145, 1636, 147, 148, 386,
4634  272, 1669, 53, 12, 237, 1458, 1459, 145, 1746, 302,
4635  148, 87, 88, 64, 290, 291, 292, 293, 187, 387,
4636  56, 1557, 390, 50, 387, 330, 302, 390, 178, 244,
4637  387, 268, 1038, 390, 110, 12, 1470, 252, 89, 90,
4638  91, 334, 386, 276, 386, 128, 122, 216, 99, 314,
4639  343, 163, 313, 314, 387, 2090, 2091, 390, 109, 1065,
4640  275, 1067, 255, 2, 386, 4, 117, 179, 361, 145,
4641  153, 335, 148, 266, 386, 126, 386, 349, 350, 18,
4642  54, 55, 380, 387, 386, 1252, 390, 96, 171, 386,
4643  202, 355, 47, 112, 387, 386, 389, 390, 1240, 1767,
4644  212, 128, 335, 1245, 386, 1773, 387, 158, 1776, 390,
4645  1252, 65, 1118, 87, 386, 134, 386, 255, 1676, 96,
4646  1262, 172, 386, 316, 1130, 1131, 153, 386, 102, 386,
4647  1262, 182, 87, 386, 334, 387, 25, 249, 390, 387,
4648  386, 291, 390, 386, 171, 164, 85, 1289, 386, 1091,
4649  124, 1093, 1319, 1295, 237, 174, 1298, 1099, 1300, 386,
4650  1302, 330, 135, 1105, 1804, 386, 316, 1309, 1310, 1301,
4651  1312, 321, 386, 1315, 1316, 386, 386, 1319, 316, 255,
4652  386, 1313, 386, 122, 386, 1327, 1328, 1329, 77, 208,
4653  266, 387, 1334, 202, 390, 84, 386, 390, 1365, 250,
4654  251, 155, 1334, 254, 387, 387, 386, 390, 390, 1289,
4655  237, 262, 386, 186, 168, 1295, 171, 268, 1298, 1361,
4656  1300, 272, 176, 1365, 387, 202, 386, 390, 279, 1309,
4657  1310, 282, 121, 386, 1240, 1315, 125, 386, 386, 1245,
4658  316, 145, 392, 147, 148, 296, 1252, 387, 180, 25,
4659  390, 140, 335, 207, 310, 387, 1262, 212, 390, 386,
4660  215, 386, 374, 375, 376, 377, 378, 379, 380, 381,
4661  382, 383, 387, 247, 178, 390, 386, 328, 387, 1421,
4662  386, 390, 237, 1289, 386, 386, 337, 1429, 339, 1295,
4663  386, 342, 1298, 1435, 1300, 386, 386, 1429, 187, 145,
4664  386, 147, 148, 1309, 1310, 386, 386, 261, 84, 1315,
4665  104, 386, 1759, 1319, 390, 297, 387, 1648, 1649, 390,
4666  386, 386, 1328, 1329, 297, 1467, 215, 216, 1759, 1660,
4667  1661, 386, 178, 1475, 1870, 386, 386, 310, 386, 386,
4668  313, 1788, 1878, 1983, 387, 386, 1488, 390, 302, 125,
4669  297, 370, 371, 372, 59, 1891, 1498, 1788, 279, 1365,
4670  145, 1528, 147, 148, 140, 374, 375, 376, 377, 378,
4671  379, 380, 381, 382, 383, 387, 387, 87, 1520, 390,
4672  335, 387, 390, 1525, 390, 39, 1528, 291, 1608, 250,
4673  1532, 1838, 1839, 1535, 118, 1537, 1538, 374, 375, 376,
4674  377, 378, 379, 380, 381, 382, 383, 1867, 1488, 1840,
4675  1841, 187, 316, 1744, 1745, 1421, 153, 321, 1498, 1866,
4676  220, 77, 1869, 1429, 1960, 1756, 1962, 316, 84, 259,
4677  87, 357, 321, 1764, 244, 1766, 360, 387, 327, 215,
4678  216, 330, 387, 87, 1775, 291, 387, 95, 386, 87,
4679  1781, 1782, 387, 2093, 9, 391, 387, 387, 1889, 1890,
4680  1602, 1467, 1998, 1999, 387, 2001, 1608, 386, 154, 125,
4681  316, 2111, 390, 323, 390, 321, 1608, 390, 2118, 380,
4682  2016, 316, 1488, 1625, 285, 361, 47, 185, 392, 378,
4683  379, 1633, 1498, 387, 1636, 387, 380, 387, 1648, 1649,
4684  387, 132, 379, 1963, 387, 2041, 291, 2043, 2044, 387,
4685  1660, 1661, 24, 387, 171, 387, 28, 387, 18, 1525,
4686  387, 390, 1528, 82, 390, 87, 1532, 171, 322, 387,
4687  42, 187, 1538, 171, 387, 1677, 321, 334, 280, 12,
4688  316, 41, 42, 386, 65, 1625, 392, 47, 386, 383,
4689  386, 51, 383, 47, 330, 212, 350, 213, 215, 215,
4690  216, 387, 74, 220, 391, 77, 316, 361, 212, 386,
4691  391, 215, 131, 85, 212, 387, 220, 215, 392, 390,
4692  237, 32, 370, 370, 370, 144, 228, 87, 88, 387,
4693  220, 107, 1734, 237, 1744, 1745, 1602, 387, 1740, 237,
4694  18, 159, 378, 379, 1746, 399, 1756, 159, 387, 171,
4695  110, 391, 387, 387, 1764, 387, 1766, 160, 391, 1625,
4696  96, 391, 122, 41, 42, 1775, 387, 1633, 387, 47,
4697  390, 1781, 1782, 51, 155, 194, 390, 1968, 197, 1970,
4698  387, 132, 1809, 165, 203, 145, 50, 168, 148, 161,
4699  212, 323, 1784, 215, 1796, 176, 169, 370, 311, 169,
4700  316, 370, 1804, 32, 311, 321, 370, 1809, 370, 87,
4701  88, 1677, 390, 370, 330, 237, 343, 180, 335, 179,
4702  220, 240, 101, 386, 2015, 386, 207, 2018, 387, 161,
4703  161, 335, 110, 1835, 1836, 387, 390, 335, 387, 220,
4704  391, 272, 387, 387, 122, 145, 339, 147, 148, 390,
4705  390, 270, 391, 163, 508, 177, 65, 171, 171, 513,
4706  391, 387, 279, 517, 518, 387, 202, 145, 1734, 386,
4707  148, 525, 526, 527, 1740, 529, 14, 531, 14, 216,
4708  261, 535, 536, 537, 538, 12, 216, 387, 542, 274,
4709  544, 545, 18, 547, 548, 255, 550, 1899, 160, 553,
4710  554, 555, 556, 557, 558, 387, 266, 561, 562, 18,
4711  564, 283, 390, 335, 568, 1917, 570, 571, 96, 168,
4712  168, 302, 230, 137, 392, 51, 580, 581, 281, 390,
4713  1796, 84, 171, 171, 588, 390, 386, 591, 592, 593,
4714  359, 171, 51, 1809, 1946, 387, 155, 387, 387, 368,
4715  322, 78, 79, 80, 81, 82, 316, 387, 1968, 168,
4716  1970, 87, 88, 168, 168, 220, 338, 176, 32, 1835,
4717  1836, 139, 125, 145, 390, 147, 148, 255, 87, 88,
4718  199, 1983, 386, 1975, 110, 163, 244, 641, 266, 87,
4719  87, 291, 145, 386, 386, 148, 122, 386, 207, 653,
4720  109, 110, 386, 51, 391, 2015, 178, 386, 2018, 387,
4721  339, 220, 313, 122, 141, 142, 143, 144, 216, 145,
4722  168, 321, 148, 168, 202, 325, 386, 2107, 2030, 49,
4723  2032, 386, 2034, 1899, 187, 189, 145, 386, 316, 148,
4724  376, 377, 378, 379, 380, 381, 382, 383, 519, 216,
4725  215, 1917, 261, 171, 171, 709, 339, 216, 386, 216,
4726  216, 216, 87, 216, 387, 386, 343, 194, 195, 196,
4727  197, 343, 543, 181, 386, 546, 203, 220, 387, 369,
4728  1946, 213, 387, 387, 387, 350, 2088, 2089, 559, 560,
4729  343, 2093, 563, 302, 216, 78, 79, 80, 81, 82,
4730  343, 390, 229, 32, 32, 2107, 760, 578, 579, 2111,
4731  106, 32, 2114, 240, 387, 2107, 2118, 386, 386, 291,
4732  23, 96, 129, 32, 27, 28, 32, 32, 248, 255,
4733  4, 220, 220, 150, 32, 32, 790, 791, 792, 42,
4734  266, 386, 269, 270, 316, 386, 255, 339, 89, 321,
4735  216, 386, 1673, 387, 279, 1131, 1111, 266, 141, 142,
4736  143, 144, 390, 316, 2030, 690, 2032, 1328, 2034, 1538,
4737  1118, 74, 1090, 1293, 77, 829, 1331, 330, 1633, 1635,
4738  1154, 1655, 85, 1774, 1880, 1756, 1793, 841, 1764, 843,
4739  316, 1738, 1746, 1137, 97, 2007, 374, 375, 376, 377,
4740  378, 379, 380, 381, 382, 383, 1978, 316, 111, 1899,
4741  477, 194, 195, 196, 197, 856, 1327, 1056, 278, 1007,
4742  203, 124, 2088, 2089, 277, 441, 870, 202, 1227, 1429,
4743  1455, 940, 359, 1706, 1006, 706, 1995, 1929, 2114, 366,
4744  367, 368, 567, 1704, 2089, 519, 1636, 1477, 2114, 1725,
4745  1030, 306, 1061, 861, 317, 425, 949, 240, 161, 703,
4746  1435, 1081, 1235, 2111, 167, 505, 1983, 352, 1935, 1985,
4747  2027, 96, 2005, 927, 2118, 1240, 930, 641, 932, 933,
4748  81, 875, 1334, 937, 1270, 1475, 269, 270, 1730, 110,
4749  431, 762, -1, -1, -1, 766, -1, 951, -1, -1,
4750  954, 955, 956, 957, -1, 959, -1, -1, -1, 96,
4751  -1, 782, 966, -1, 217, 969, -1, 971, 972, 973,
4752  -1, -1, -1, -1, 978, 979, 980, -1, -1, -1,
4753  984, 985, -1, 987, -1, 989, -1, 991, -1, 993,
4754  -1, 995, -1, 246, -1, -1, 1000, -1, -1, -1,
4755  -1, -1, -1, 6, -1, -1, -1, 10, -1, -1,
4756  -1, -1, -1, 1017, -1, 18, -1, -1, -1, -1,
4757  -1, -1, -1, 276, -1, 1029, 359, 202, -1, -1,
4758  1034, -1, -1, -1, 367, 368, -1, 40, -1, -1,
4759  -1, -1, -1, -1, -1, -1, -1, 49, 51, 374,
4760  375, 376, 377, 378, 379, 380, 381, 382, 383, 62,
4761  -1, 63, 64, -1, 317, 202, -1, -1, 321, 322,
4762  72, -1, -1, -1, -1, 6, -1, -1, -1, 10,
4763  -1, 1085, -1, -1, 87, 88, -1, 18, -1, -1,
4764  93, 94, -1, -1, -1, 348, 99, -1, 351, 352,
4765  -1, -1, 105, -1, -1, -1, 109, 110, -1, 40,
4766  -1, 113, -1, -1, -1, -1, -1, -1, -1, 122,
4767  51, -1, -1, -1, 127, -1, -1, -1, -1, -1,
4768  -1, 62, -1, 135, -1, 1139, -1, -1, -1, -1,
4769  1144, -1, 145, 145, 1148, 148, 148, -1, 151, -1,
4770  152, 153, -1, -1, -1, -1, 87, 88, -1, -1,
4771  -1, -1, 93, 1167, 1168, -1, -1, 169, 99, -1,
4772  -1, -1, -1, -1, 105, -1, -1, -1, -1, 110,
4773  -1, 183, 1186, -1, -1, -1, -1, -1, -1, -1,
4774  1194, 122, 1196, -1, 1198, -1, 127, -1, 201, 374,
4775  375, 376, 377, 378, 379, 380, 381, 382, 383, -1,
4776  -1, -1, -1, -1, 145, -1, -1, 148, -1, -1,
4777  -1, -1, -1, 552, -1, 228, -1, -1, -1, -1,
4778  1234, -1, -1, -1, -1, -1, -1, 239, 375, 376,
4779  377, 378, 379, 380, 381, 382, 383, -1, 251, -1,
4780  -1, -1, 255, -1, -1, -1, -1, -1, -1, -1,
4781  -1, -1, -1, 266, -1, 1269, -1, -1, -1, -1,
4782  201, -1, -1, -1, 603, 604, 278, -1, 607, 1283,
4783  609, 610, 611, 612, 613, 614, 615, 616, 617, 618,
4784  619, -1, -1, -1, -1, -1, -1, 228, -1, -1,
4785  -1, -1, -1, -1, -1, -1, -1, -1, 310, -1,
4786  -1, 313, 314, 316, 316, -1, -1, -1, -1, -1,
4787  251, -1, -1, -1, 255, -1, -1, -1, -1, -1,
4788  -1, -1, -1, -1, -1, 266, -1, -1, -1, -1,
4789  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4790  -1, -1, -1, -1, -1, -1, 358, -1, -1, -1,
4791  -1, -1, -1, -1, -1, -1, -1, -1, -1, 1373,
4792  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4793  -1, -1, -1, -1, -1, 316, 1390, 1391, -1, -1,
4794  -1, -1, -1, -1, 1398, -1, -1, -1, -1, 1403,
4795  -1, -1, 1406, 1407, 1408, -1, -1, -1, -1, -1,
4796  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4797  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4798  -1, -1, 1436, -1, -1, -1, -1, -1, -1, -1,
4799  -1, -1, 4, 5, -1, 7, 8, -1, -1, -1,
4800  -1, 13, -1, -1, -1, 17, 18, 19, -1, 21,
4801  -1, -1, -1, -1, 26, -1, 28, 29, -1, 31,
4802  -1, -1, 1476, 35, -1, -1, -1, 39, -1, 1483,
4803  -1, 43, -1, 45, 46, -1, 48, 49, -1, 51,
4804  52, 53, 54, 55, 56, -1, 58, 59, -1, 61,
4805  -1, -1, -1, 832, 66, -1, 835, -1, -1, -1,
4806  72, 73, 74, -1, -1, 77, -1, -1, -1, -1,
4807  82, 83, -1, -1, -1, -1, -1, -1, -1, -1,
4808  -1, 93, 94, -1, -1, -1, 98, -1, 100, 101,
4809  102, -1, -1, 105, -1, 107, 108, -1, 110, 111,
4810  -1, 113, -1, 115, 116, -1, -1, 119, -1, -1,
4811  122, 123, 124, -1, 126, -1, -1, -1, 130, 131,
4812  -1, 133, -1, 135, -1, -1, 138, -1, 1582, -1,
4813  -1, -1, 144, 145, 146, -1, 148, -1, -1, 151,
4814  152, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4815  -1, -1, -1, 165, -1, 167, -1, -1, 170, -1,
4816  -1, 173, -1, -1, -1, 177, 1620, -1, -1, -1,
4817  -1, 183, 184, -1, 186, -1, -1, -1, -1, 191,
4818  192, 193, 194, -1, -1, 197, -1, 199, -1, 201,
4819  -1, 203, 204, 205, 206, -1, -1, 209, 210, 211,
4820  -1, -1, 214, -1, -1, -1, 218, 219, -1, 221,
4821  222, 223, 224, -1, -1, -1, -1, -1, -1, -1,
4822  -1, 233, -1, -1, 236, -1, 238, 239, 240, 241,
4823  -1, -1, -1, -1, 1688, 247, -1, -1, -1, -1,
4824  252, -1, -1, -1, -1, -1, 258, -1, -1, -1,
4825  262, 263, 264, 265, 266, 267, 268, -1, 270, 271,
4826  -1, -1, 1716, 275, 276, 277, 278, -1, -1, 281,
4827  -1, 283, 284, 285, -1, -1, 1730, -1, -1, -1,
4828  -1, -1, -1, -1, 296, 297, -1, -1, 300, -1,
4829  -1, 303, 304, 305, -1, -1, 308, -1, 310, 311,
4830  -1, -1, 314, -1, -1, 317, -1, 319, 320, -1,
4831  322, -1, -1, 325, -1, -1, 328, 329, -1, 331,
4832  332, -1, -1, -1, 336, -1, -1, -1, -1, 341,
4833  -1, -1, -1, -1, -1, -1, 348, -1, 350, -1,
4834  -1, 353, -1, -1, -1, -1, 358, 359, -1, -1,
4835  -1, -1, 364, -1, -1, -1, 368, -1, -1, -1,
4836  -1, -1, -1, -1, -1, -1, 1820, 1821, -1, -1,
4837  -1, 1825, -1, 4, 5, 387, 7, 8, -1, 391,
4838  392, -1, 13, -1, -1, -1, 17, 18, 19, -1,
4839  21, -1, -1, 24, 25, 26, -1, 28, 29, 30,
4840  31, -1, -1, -1, 35, 36, 37, 38, 39, -1,
4841  -1, 42, 43, -1, 45, 46, -1, 48, 49, -1,
4842  51, 52, 53, 54, 55, 56, -1, 58, 59, -1,
4843  61, 62, 63, -1, -1, 66, 67, 68, 69, -1,
4844  71, 72, 73, 74, 75, 76, 77, -1, -1, -1,
4845  -1, 82, 83, 84, -1, -1, 87, -1, -1, -1,
4846  -1, -1, 93, 94, -1, 1919, -1, 98, -1, 100,
4847  101, 102, -1, -1, 105, -1, 107, 108, -1, 110,
4848  111, -1, 113, -1, 115, 116, 117, 118, 119, 120,
4849  121, 122, 123, 124, 125, 126, -1, -1, -1, 130,
4850  131, -1, 133, -1, 135, 136, -1, 138, -1, 140,
4851  -1, -1, -1, 144, 145, 146, -1, 148, 149, -1,
4852  151, 152, -1, -1, -1, -1, -1, 158, 159, -1,
4853  1984, -1, -1, 1987, 165, 1989, 167, -1, -1, 170,
4854  -1, 172, 173, -1, 175, 176, 177, -1, -1, -1,
4855  -1, -1, 183, 184, -1, 186, 187, -1, -1, 190,
4856  191, 192, 193, 194, -1, -1, 197, 198, 199, -1,
4857  201, 202, 203, 204, 205, 206, -1, -1, 209, 210,
4858  211, 212, 213, 214, 215, 216, -1, 218, 219, -1,
4859  221, 222, 223, 224, -1, -1, -1, -1, -1, -1,
4860  -1, -1, 233, 234, -1, 236, -1, 238, 239, 240,
4861  241, -1, -1, -1, -1, -1, 247, -1, -1, -1,
4862  -1, 252, 253, 254, -1, -1, -1, 258, -1, -1,
4863  261, 262, 263, 264, 265, 266, 267, 268, -1, 270,
4864  271, -1, -1, -1, 275, 276, 277, 278, -1, -1,
4865  281, -1, 283, 284, 285, -1, -1, -1, -1, -1,
4866  -1, -1, -1, -1, -1, 296, 297, 298, 299, 300,
4867  -1, -1, 303, 304, 305, 306, 307, 308, 309, 310,
4868  311, -1, -1, 314, -1, 316, 317, -1, 319, 320,
4869  321, 322, -1, 324, 325, 326, 327, 328, 329, 330,
4870  331, 332, -1, -1, -1, 336, -1, -1, -1, -1,
4871  341, -1, -1, 344, 345, 346, -1, 348, 349, 350,
4872  -1, -1, 353, 354, -1, 356, 357, 358, 359, -1,
4873  -1, -1, -1, 364, -1, -1, -1, 368, -1, -1,
4874  -1, -1, -1, -1, -1, -1, -1, 378, 379, -1,
4875  -1, -1, -1, 384, -1, 386, -1, 388, -1, -1,
4876  391, 392, 4, 5, -1, 7, 8, 9, -1, -1,
4877  -1, 13, -1, -1, -1, 17, 18, 19, -1, 21,
4878  -1, -1, 24, 25, 26, -1, 28, 29, -1, 31,
4879  -1, -1, -1, 35, 36, 37, 38, 39, -1, -1,
4880  42, 43, -1, 45, 46, -1, 48, 49, -1, 51,
4881  52, 53, 54, 55, 56, -1, 58, 59, -1, 61,
4882  62, 63, -1, -1, 66, 67, 68, 69, -1, 71,
4883  72, 73, 74, 75, 76, 77, -1, -1, -1, -1,
4884  82, 83, 84, -1, -1, 87, -1, -1, -1, -1,
4885  -1, 93, 94, -1, -1, -1, 98, -1, 100, 101,
4886  102, -1, -1, 105, -1, 107, 108, -1, 110, 111,
4887  -1, 113, -1, 115, 116, 117, 118, 119, 120, 121,
4888  122, 123, 124, 125, 126, -1, -1, -1, 130, 131,
4889  -1, 133, -1, 135, 136, -1, 138, -1, 140, -1,
4890  -1, -1, 144, 145, 146, -1, 148, 149, -1, 151,
4891  152, -1, -1, -1, -1, -1, 158, 159, -1, -1,
4892  -1, -1, -1, 165, -1, 167, -1, -1, 170, -1,
4893  172, 173, -1, -1, 176, 177, -1, -1, -1, -1,
4894  -1, 183, 184, -1, 186, 187, -1, -1, 190, 191,
4895  192, 193, 194, -1, -1, 197, 198, 199, -1, 201,
4896  202, 203, 204, 205, 206, -1, -1, 209, 210, 211,
4897  212, 213, 214, 215, 216, -1, 218, 219, 220, 221,
4898  222, 223, 224, -1, -1, -1, -1, -1, -1, -1,
4899  -1, 233, 234, -1, 236, -1, 238, 239, 240, 241,
4900  -1, -1, -1, -1, -1, 247, -1, -1, -1, -1,
4901  252, 253, 254, -1, -1, -1, 258, -1, -1, 261,
4902  262, 263, 264, 265, 266, 267, 268, -1, 270, 271,
4903  -1, -1, -1, 275, 276, 277, 278, -1, -1, 281,
4904  -1, 283, 284, 285, -1, -1, -1, -1, -1, -1,
4905  -1, -1, -1, -1, 296, 297, 298, 299, 300, -1,
4906  -1, 303, 304, 305, 306, 307, 308, 309, 310, 311,
4907  -1, -1, 314, -1, 316, 317, -1, 319, 320, 321,
4908  322, -1, -1, 325, 326, 327, 328, 329, 330, 331,
4909  332, -1, -1, -1, 336, -1, -1, -1, -1, 341,
4910  -1, -1, 344, 345, 346, -1, 348, 349, 350, -1,
4911  -1, 353, 354, -1, 356, 357, 358, 359, -1, -1,
4912  -1, -1, 364, -1, -1, -1, 368, -1, -1, -1,
4913  -1, -1, -1, -1, -1, -1, 378, 379, -1, -1,
4914  -1, -1, 384, -1, 386, -1, 388, -1, -1, 391,
4915  392, 4, 5, -1, 7, 8, -1, -1, -1, -1,
4916  13, -1, -1, -1, 17, 18, 19, -1, 21, -1,
4917  -1, 24, 25, 26, -1, 28, 29, -1, 31, -1,
4918  -1, -1, 35, 36, 37, 38, 39, -1, -1, 42,
4919  43, -1, 45, 46, -1, 48, 49, -1, 51, 52,
4920  53, 54, 55, 56, -1, 58, 59, -1, 61, 62,
4921  63, -1, -1, 66, 67, 68, 69, -1, 71, 72,
4922  73, 74, 75, 76, 77, -1, -1, -1, -1, 82,
4923  83, 84, -1, -1, 87, -1, -1, -1, -1, -1,
4924  93, 94, -1, -1, -1, 98, -1, 100, 101, 102,
4925  -1, -1, 105, -1, 107, 108, -1, 110, 111, -1,
4926  113, -1, 115, 116, 117, 118, 119, 120, 121, 122,
4927  123, 124, 125, 126, -1, -1, -1, 130, 131, -1,
4928  133, -1, 135, 136, -1, 138, -1, 140, -1, -1,
4929  -1, 144, 145, 146, -1, 148, 149, -1, 151, 152,
4930  -1, -1, -1, -1, -1, 158, 159, -1, -1, -1,
4931  -1, -1, 165, -1, 167, -1, -1, 170, -1, 172,
4932  173, -1, -1, 176, 177, -1, -1, -1, -1, -1,
4933  183, 184, -1, 186, 187, -1, -1, 190, 191, 192,
4934  193, 194, -1, -1, 197, 198, 199, -1, 201, 202,
4935  203, 204, 205, 206, -1, -1, 209, 210, 211, 212,
4936  213, 214, 215, 216, -1, 218, 219, -1, 221, 222,
4937  223, 224, -1, -1, -1, -1, -1, -1, -1, -1,
4938  233, 234, -1, 236, -1, 238, 239, 240, 241, -1,
4939  -1, -1, -1, -1, 247, -1, -1, -1, -1, 252,
4940  253, 254, -1, -1, -1, 258, -1, -1, 261, 262,
4941  263, 264, 265, 266, 267, 268, -1, 270, 271, -1,
4942  -1, -1, 275, 276, 277, 278, -1, -1, 281, -1,
4943  283, 284, 285, -1, -1, -1, -1, -1, -1, -1,
4944  -1, -1, -1, 296, 297, 298, 299, 300, -1, -1,
4945  303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
4946  -1, 314, -1, 316, 317, -1, 319, 320, 321, 322,
4947  -1, -1, 325, 326, 327, 328, 329, 330, 331, 332,
4948  -1, -1, -1, 336, -1, -1, -1, -1, 341, -1,
4949  -1, 344, 345, 346, -1, 348, 349, 350, -1, -1,
4950  353, 354, -1, 356, 357, 358, 359, -1, -1, -1,
4951  -1, 364, -1, -1, -1, 368, -1, -1, -1, -1,
4952  -1, -1, -1, -1, -1, 378, 379, -1, -1, -1,
4953  -1, 384, -1, 386, 387, 388, -1, -1, 391, 392,
4954  4, 5, -1, 7, 8, -1, -1, -1, -1, 13,
4955  -1, -1, -1, 17, 18, 19, -1, 21, -1, -1,
4956  24, 25, 26, -1, 28, 29, -1, 31, -1, -1,
4957  -1, 35, 36, 37, 38, 39, -1, -1, 42, 43,
4958  -1, 45, 46, -1, 48, 49, -1, 51, 52, 53,
4959  54, 55, 56, -1, 58, 59, -1, 61, 62, 63,
4960  -1, -1, 66, 67, 68, 69, -1, 71, 72, 73,
4961  74, 75, 76, 77, -1, -1, -1, -1, 82, 83,
4962  84, -1, -1, 87, -1, -1, -1, -1, -1, 93,
4963  94, -1, -1, -1, 98, -1, 100, 101, 102, -1,
4964  -1, 105, -1, 107, 108, -1, 110, 111, -1, 113,
4965  -1, 115, 116, 117, 118, 119, 120, 121, 122, 123,
4966  124, 125, 126, -1, -1, -1, 130, 131, 132, 133,
4967  -1, 135, 136, -1, 138, -1, 140, -1, -1, -1,
4968  144, 145, 146, -1, 148, 149, -1, 151, 152, -1,
4969  -1, -1, -1, -1, 158, 159, -1, -1, -1, -1,
4970  -1, 165, -1, 167, -1, -1, 170, -1, 172, 173,
4971  -1, -1, 176, 177, -1, -1, -1, -1, -1, 183,
4972  184, -1, 186, 187, -1, -1, 190, 191, 192, 193,
4973  194, -1, -1, 197, 198, 199, -1, 201, 202, 203,
4974  204, 205, 206, -1, -1, 209, 210, 211, 212, 213,
4975  214, 215, 216, -1, 218, 219, -1, 221, 222, 223,
4976  224, -1, -1, -1, -1, -1, -1, -1, -1, 233,
4977  234, -1, 236, -1, 238, 239, 240, 241, -1, -1,
4978  -1, -1, -1, 247, -1, -1, -1, -1, 252, 253,
4979  254, -1, -1, -1, 258, -1, -1, 261, 262, 263,
4980  264, 265, 266, 267, 268, -1, 270, 271, -1, -1,
4981  -1, 275, 276, 277, 278, -1, -1, 281, -1, 283,
4982  284, 285, -1, -1, -1, -1, -1, -1, -1, -1,
4983  -1, -1, 296, 297, 298, 299, 300, -1, -1, 303,
4984  304, 305, 306, 307, 308, 309, 310, 311, -1, -1,
4985  314, -1, 316, 317, -1, 319, 320, 321, 322, -1,
4986  -1, 325, 326, 327, 328, 329, 330, 331, 332, -1,
4987  -1, -1, 336, -1, -1, -1, -1, 341, -1, -1,
4988  344, 345, 346, -1, 348, 349, 350, -1, -1, 353,
4989  354, -1, 356, 357, 358, 359, -1, -1, -1, -1,
4990  364, -1, -1, -1, 368, -1, -1, -1, -1, -1,
4991  -1, -1, -1, -1, 378, 379, -1, -1, -1, -1,
4992  384, -1, 386, -1, 388, -1, -1, 391, 392, 4,
4993  5, -1, 7, 8, -1, -1, -1, -1, 13, -1,
4994  -1, -1, 17, 18, 19, -1, 21, -1, -1, 24,
4995  25, 26, -1, 28, 29, -1, 31, -1, -1, -1,
4996  35, 36, 37, 38, 39, -1, -1, 42, 43, -1,
4997  45, 46, -1, 48, 49, -1, 51, 52, 53, 54,
4998  55, 56, -1, 58, 59, -1, 61, 62, 63, -1,
4999  -1, 66, 67, 68, 69, -1, 71, 72, 73, 74,
5000  75, 76, 77, -1, -1, -1, -1, 82, 83, 84,
5001  -1, -1, 87, -1, -1, -1, -1, -1, 93, 94,
5002  -1, -1, -1, 98, -1, 100, 101, 102, -1, -1,
5003  105, -1, 107, 108, -1, 110, 111, -1, 113, -1,
5004  115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
5005  125, 126, -1, -1, -1, 130, 131, 132, 133, -1,
5006  135, 136, -1, 138, -1, 140, -1, -1, -1, 144,
5007  145, 146, -1, 148, 149, -1, 151, 152, -1, -1,
5008  -1, -1, -1, 158, 159, -1, -1, -1, -1, -1,
5009  165, -1, 167, -1, -1, 170, -1, 172, 173, -1,
5010  -1, 176, 177, -1, -1, -1, -1, -1, 183, 184,
5011  -1, 186, 187, -1, -1, 190, 191, 192, 193, 194,
5012  -1, -1, 197, 198, 199, -1, 201, 202, 203, 204,
5013  205, 206, -1, -1, 209, 210, 211, 212, 213, 214,
5014  215, 216, -1, 218, 219, -1, 221, 222, 223, 224,
5015  -1, -1, -1, -1, -1, -1, -1, -1, 233, 234,
5016  -1, 236, -1, 238, 239, 240, 241, -1, -1, -1,
5017  -1, -1, 247, -1, -1, -1, -1, 252, 253, 254,
5018  -1, -1, -1, 258, -1, -1, 261, 262, 263, 264,
5019  265, 266, 267, 268, -1, 270, 271, -1, -1, -1,
5020  275, 276, 277, 278, -1, -1, 281, -1, 283, 284,
5021  285, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5022  -1, 296, 297, 298, 299, 300, -1, -1, 303, 304,
5023  305, 306, 307, 308, 309, 310, 311, -1, -1, 314,
5024  -1, 316, 317, -1, 319, 320, 321, 322, -1, -1,
5025  325, 326, 327, 328, 329, 330, 331, 332, -1, -1,
5026  -1, 336, -1, -1, -1, -1, 341, -1, -1, 344,
5027  345, 346, -1, 348, 349, 350, -1, -1, 353, 354,
5028  -1, 356, 357, 358, 359, -1, -1, -1, -1, 364,
5029  -1, -1, -1, 368, -1, -1, -1, -1, -1, -1,
5030  -1, -1, -1, 378, 379, -1, -1, -1, -1, 384,
5031  -1, 386, -1, 388, -1, -1, 391, 392, 4, 5,
5032  -1, 7, 8, -1, -1, -1, -1, 13, -1, -1,
5033  -1, 17, 18, 19, -1, 21, -1, -1, 24, 25,
5034  26, -1, 28, 29, -1, 31, -1, -1, -1, 35,
5035  36, 37, 38, 39, -1, -1, 42, 43, -1, 45,
5036  46, -1, 48, 49, -1, 51, 52, 53, 54, 55,
5037  56, -1, 58, 59, -1, 61, 62, 63, -1, -1,
5038  66, 67, 68, 69, -1, 71, 72, 73, 74, 75,
5039  76, 77, -1, -1, -1, -1, 82, 83, 84, -1,
5040  -1, 87, -1, -1, -1, -1, -1, 93, 94, -1,
5041  -1, -1, 98, -1, 100, 101, 102, -1, -1, 105,
5042  -1, 107, 108, -1, 110, 111, -1, 113, -1, 115,
5043  116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
5044  126, -1, -1, -1, 130, 131, 132, 133, -1, 135,
5045  136, -1, 138, -1, 140, -1, -1, -1, 144, 145,
5046  146, -1, 148, 149, -1, 151, 152, -1, -1, -1,
5047  -1, -1, 158, 159, -1, -1, -1, -1, -1, 165,
5048  -1, 167, -1, -1, 170, -1, 172, 173, -1, -1,
5049  176, 177, -1, -1, -1, -1, -1, 183, 184, -1,
5050  186, 187, -1, -1, 190, 191, 192, 193, 194, -1,
5051  -1, 197, 198, 199, -1, 201, 202, 203, 204, 205,
5052  206, -1, -1, 209, 210, 211, 212, 213, 214, 215,
5053  216, -1, 218, 219, -1, 221, 222, 223, 224, -1,
5054  -1, -1, -1, -1, -1, -1, -1, 233, 234, -1,
5055  236, -1, 238, 239, 240, 241, -1, -1, -1, -1,
5056  -1, 247, -1, -1, -1, -1, 252, 253, 254, -1,
5057  -1, -1, 258, -1, -1, 261, 262, 263, 264, 265,
5058  266, 267, 268, -1, 270, 271, -1, -1, -1, 275,
5059  276, 277, 278, -1, -1, 281, -1, 283, 284, 285,
5060  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5061  296, 297, 298, 299, 300, -1, -1, 303, 304, 305,
5062  306, 307, 308, 309, 310, 311, -1, -1, 314, -1,
5063  316, 317, -1, 319, 320, 321, 322, -1, -1, 325,
5064  326, 327, 328, 329, 330, 331, 332, -1, -1, -1,
5065  336, -1, -1, -1, -1, 341, -1, -1, 344, 345,
5066  346, -1, 348, 349, 350, -1, -1, 353, 354, -1,
5067  356, 357, 358, 359, -1, -1, -1, -1, 364, -1,
5068  -1, -1, 368, -1, -1, -1, -1, -1, -1, -1,
5069  -1, -1, 378, 379, -1, -1, -1, -1, 384, -1,
5070  386, -1, 388, -1, -1, 391, 392, 4, 5, -1,
5071  7, 8, -1, -1, -1, -1, 13, -1, -1, -1,
5072  17, 18, 19, -1, 21, -1, -1, 24, 25, 26,
5073  -1, 28, 29, -1, 31, -1, -1, -1, 35, 36,
5074  37, 38, 39, -1, -1, 42, 43, -1, 45, 46,
5075  -1, 48, 49, -1, 51, 52, 53, 54, 55, 56,
5076  -1, 58, 59, -1, 61, 62, 63, -1, -1, 66,
5077  67, 68, 69, -1, 71, 72, 73, 74, 75, 76,
5078  77, -1, -1, -1, -1, 82, 83, 84, -1, -1,
5079  87, -1, -1, -1, -1, -1, 93, 94, -1, -1,
5080  -1, 98, -1, 100, 101, 102, -1, -1, 105, -1,
5081  107, 108, -1, 110, 111, -1, 113, -1, 115, 116,
5082  117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
5083  -1, -1, -1, 130, 131, -1, 133, -1, 135, 136,
5084  -1, 138, -1, 140, -1, -1, -1, 144, 145, 146,
5085  -1, 148, 149, -1, 151, 152, -1, -1, -1, -1,
5086  -1, 158, 159, -1, -1, -1, -1, -1, 165, -1,
5087  167, -1, -1, 170, -1, 172, 173, -1, -1, 176,
5088  177, -1, -1, -1, -1, -1, 183, 184, -1, 186,
5089  187, -1, -1, 190, 191, 192, 193, 194, -1, -1,
5090  197, 198, 199, -1, 201, 202, 203, 204, 205, 206,
5091  -1, -1, 209, 210, 211, 212, 213, 214, 215, 216,
5092  -1, 218, 219, -1, 221, 222, 223, 224, -1, -1,
5093  -1, -1, -1, -1, -1, -1, 233, 234, -1, 236,
5094  -1, 238, 239, 240, 241, -1, -1, -1, -1, -1,
5095  247, -1, -1, -1, -1, 252, 253, 254, -1, -1,
5096  -1, 258, -1, -1, 261, 262, 263, 264, 265, 266,
5097  267, 268, -1, 270, 271, -1, -1, -1, 275, 276,
5098  277, 278, -1, -1, 281, -1, 283, 284, 285, -1,
5099  -1, -1, -1, -1, -1, -1, -1, -1, -1, 296,
5100  297, 298, 299, 300, -1, -1, 303, 304, 305, 306,
5101  307, 308, 309, 310, 311, -1, -1, 314, -1, 316,
5102  317, -1, 319, 320, 321, 322, -1, -1, 325, 326,
5103  327, 328, 329, 330, 331, 332, -1, -1, -1, 336,
5104  -1, -1, -1, -1, 341, -1, -1, 344, 345, 346,
5105  -1, 348, 349, 350, -1, -1, 353, 354, -1, 356,
5106  357, 358, 359, -1, -1, -1, -1, 364, -1, -1,
5107  -1, 368, -1, -1, -1, -1, -1, -1, -1, -1,
5108  -1, 378, 379, -1, -1, -1, -1, 384, -1, 386,
5109  -1, 388, -1, -1, 391, 392, 4, 5, -1, 7,
5110  8, -1, -1, -1, -1, 13, -1, -1, -1, 17,
5111  18, 19, -1, 21, -1, -1, 24, 25, 26, -1,
5112  28, 29, -1, 31, -1, -1, -1, 35, 36, 37,
5113  38, 39, -1, -1, 42, 43, -1, 45, 46, -1,
5114  48, 49, -1, 51, 52, 53, 54, 55, 56, -1,
5115  58, 59, -1, 61, 62, 63, -1, -1, 66, 67,
5116  68, 69, -1, 71, 72, 73, 74, 75, 76, 77,
5117  -1, -1, -1, -1, 82, 83, 84, -1, -1, 87,
5118  -1, -1, -1, -1, -1, 93, 94, -1, -1, -1,
5119  98, -1, 100, 101, 102, -1, -1, 105, -1, 107,
5120  108, -1, 110, 111, -1, 113, -1, 115, 116, 117,
5121  118, 119, 120, 121, 122, 123, 124, 125, 126, -1,
5122  -1, -1, 130, 131, -1, 133, -1, 135, 136, -1,
5123  138, -1, 140, -1, -1, -1, 144, 145, 146, -1,
5124  148, 149, -1, 151, 152, -1, -1, -1, -1, -1,
5125  158, 159, -1, -1, -1, -1, -1, 165, -1, 167,
5126  -1, -1, 170, -1, 172, 173, -1, -1, 176, 177,
5127  -1, -1, -1, -1, -1, 183, 184, -1, 186, 187,
5128  -1, -1, 190, 191, 192, 193, 194, -1, -1, 197,
5129  198, 199, -1, 201, 202, 203, 204, 205, 206, -1,
5130  -1, 209, 210, 211, 212, 213, 214, 215, 216, -1,
5131  218, 219, -1, 221, 222, 223, 224, -1, -1, -1,
5132  -1, -1, -1, -1, -1, 233, 234, -1, 236, -1,
5133  238, 239, 240, 241, -1, -1, -1, -1, -1, 247,
5134  -1, -1, -1, -1, 252, 253, 254, -1, -1, -1,
5135  258, -1, -1, 261, 262, 263, 264, 265, 266, 267,
5136  268, -1, 270, 271, -1, -1, -1, 275, 276, 277,
5137  278, -1, -1, 281, -1, 283, 284, 285, -1, -1,
5138  -1, -1, -1, -1, -1, -1, -1, -1, 296, 297,
5139  298, 299, 300, -1, -1, 303, 304, 305, 306, 307,
5140  308, 309, 310, 311, -1, -1, 314, -1, 316, 317,
5141  -1, 319, 320, 321, 322, -1, -1, 325, 326, 327,
5142  328, 329, 330, 331, 332, -1, -1, -1, 336, -1,
5143  -1, -1, -1, 341, -1, -1, 344, 345, 346, -1,
5144  348, 349, 350, -1, -1, 353, 354, -1, 356, 357,
5145  358, 359, -1, -1, -1, -1, 364, -1, -1, -1,
5146  368, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5147  378, 379, -1, -1, -1, -1, 384, -1, 386, -1,
5148  388, -1, -1, 391, 392, 4, 5, -1, 7, 8,
5149  9, -1, -1, -1, 13, -1, -1, -1, 17, 18,
5150  19, -1, 21, -1, -1, 24, 25, 26, -1, 28,
5151  29, -1, 31, -1, -1, -1, 35, 36, 37, 38,
5152  39, -1, -1, 42, 43, -1, 45, 46, -1, 48,
5153  49, -1, 51, 52, 53, 54, 55, 56, -1, 58,
5154  59, -1, 61, 62, 63, -1, -1, 66, 67, 68,
5155  69, -1, 71, 72, 73, 74, 75, 76, 77, -1,
5156  -1, -1, -1, 82, 83, 84, -1, -1, 87, -1,
5157  -1, -1, -1, -1, 93, 94, -1, -1, -1, 98,
5158  -1, 100, 101, 102, -1, -1, 105, -1, 107, 108,
5159  -1, 110, 111, -1, 113, -1, 115, 116, 117, 118,
5160  119, 120, 121, 122, 123, 124, 125, 126, -1, -1,
5161  -1, 130, 131, -1, 133, -1, 135, 136, -1, 138,
5162  -1, 140, -1, -1, -1, 144, 145, 146, -1, 148,
5163  149, -1, 151, 152, -1, -1, -1, -1, -1, 158,
5164  159, -1, -1, -1, -1, -1, 165, -1, 167, -1,
5165  -1, 170, -1, 172, 173, -1, -1, 176, 177, -1,
5166  -1, -1, -1, -1, 183, 184, -1, 186, 187, -1,
5167  -1, 190, 191, 192, 193, 194, -1, -1, 197, 198,
5168  199, -1, 201, 202, 203, 204, 205, 206, -1, -1,
5169  209, 210, 211, -1, 213, 214, 215, 216, -1, 218,
5170  219, -1, 221, 222, 223, 224, -1, -1, -1, -1,
5171  -1, -1, -1, -1, 233, 234, -1, 236, -1, 238,
5172  239, 240, 241, -1, -1, -1, -1, -1, 247, -1,
5173  -1, -1, -1, 252, 253, 254, -1, -1, -1, 258,
5174  -1, -1, 261, 262, 263, 264, 265, 266, 267, 268,
5175  -1, 270, 271, -1, -1, -1, 275, 276, 277, 278,
5176  -1, -1, 281, -1, 283, 284, 285, -1, -1, -1,
5177  -1, -1, -1, -1, -1, -1, -1, 296, 297, 298,
5178  299, 300, -1, -1, 303, 304, 305, 306, 307, 308,
5179  309, 310, 311, -1, -1, 314, -1, 316, 317, -1,
5180  319, 320, 321, 322, -1, -1, 325, 326, 327, 328,
5181  329, 330, 331, 332, -1, -1, -1, 336, -1, -1,
5182  -1, -1, 341, -1, -1, 344, 345, 346, -1, 348,
5183  349, 350, -1, -1, 353, 354, -1, 356, 357, 358,
5184  359, -1, -1, -1, -1, 364, -1, -1, -1, 368,
5185  -1, -1, -1, -1, -1, -1, -1, -1, -1, 378,
5186  379, -1, -1, -1, -1, 384, -1, 386, -1, 388,
5187  -1, -1, 391, 392, 4, 5, -1, 7, 8, -1,
5188  -1, -1, -1, 13, -1, -1, -1, 17, 18, 19,
5189  -1, 21, -1, -1, 24, 25, 26, -1, 28, 29,
5190  -1, 31, -1, -1, -1, 35, 36, 37, 38, 39,
5191  -1, -1, 42, 43, -1, 45, 46, -1, 48, 49,
5192  -1, 51, 52, 53, 54, 55, 56, -1, 58, 59,
5193  -1, 61, 62, 63, -1, -1, 66, 67, 68, 69,
5194  -1, 71, 72, 73, 74, 75, 76, 77, -1, -1,
5195  -1, -1, 82, 83, 84, -1, -1, 87, -1, -1,
5196  -1, -1, -1, 93, 94, -1, -1, -1, 98, -1,
5197  100, 101, 102, -1, -1, 105, -1, 107, 108, -1,
5198  110, 111, -1, 113, -1, 115, 116, 117, 118, 119,
5199  120, 121, 122, 123, 124, 125, 126, -1, -1, -1,
5200  130, 131, -1, 133, -1, 135, 136, -1, 138, -1,
5201  140, -1, -1, -1, 144, 145, 146, -1, 148, 149,
5202  -1, 151, 152, -1, -1, -1, -1, -1, 158, 159,
5203  -1, -1, -1, -1, -1, 165, -1, 167, -1, -1,
5204  170, -1, 172, 173, -1, -1, 176, 177, -1, -1,
5205  -1, -1, -1, 183, 184, -1, 186, 187, -1, -1,
5206  190, 191, 192, 193, 194, -1, -1, 197, 198, 199,
5207  -1, 201, 202, 203, 204, 205, 206, -1, -1, 209,
5208  210, 211, 212, 213, 214, 215, 216, -1, 218, 219,
5209  -1, 221, 222, 223, 224, -1, -1, -1, -1, -1,
5210  -1, -1, -1, 233, 234, -1, 236, -1, 238, 239,
5211  240, 241, -1, -1, -1, -1, -1, 247, -1, -1,
5212  -1, -1, 252, 253, 254, -1, -1, -1, 258, -1,
5213  -1, 261, 262, 263, 264, 265, 266, 267, 268, -1,
5214  270, 271, -1, -1, -1, 275, 276, 277, 278, -1,
5215  -1, 281, -1, 283, 284, 285, -1, -1, -1, -1,
5216  -1, -1, -1, -1, -1, -1, 296, 297, 298, 299,
5217  300, -1, -1, 303, 304, 305, 306, 307, 308, 309,
5218  310, 311, -1, -1, 314, -1, 316, 317, -1, 319,
5219  320, 321, 322, -1, -1, 325, 326, 327, 328, 329,
5220  330, 331, 332, -1, -1, -1, 336, -1, -1, -1,
5221  -1, 341, -1, -1, 344, 345, 346, -1, 348, 349,
5222  350, -1, -1, 353, 354, -1, 356, 357, 358, 359,
5223  -1, -1, -1, -1, 364, -1, -1, -1, 368, -1,
5224  -1, -1, -1, -1, -1, -1, -1, -1, 378, 379,
5225  -1, -1, -1, -1, 384, -1, 386, -1, 388, -1,
5226  -1, 391, 392, 4, 5, -1, 7, 8, -1, -1,
5227  -1, -1, 13, -1, -1, -1, 17, 18, 19, -1,
5228  21, -1, -1, 24, 25, 26, -1, 28, 29, -1,
5229  31, -1, -1, -1, 35, 36, 37, 38, 39, -1,
5230  -1, 42, 43, -1, 45, 46, -1, 48, 49, -1,
5231  51, 52, 53, 54, 55, 56, -1, 58, 59, -1,
5232  61, 62, 63, -1, -1, 66, 67, 68, 69, -1,
5233  71, 72, 73, 74, 75, 76, 77, -1, -1, -1,
5234  -1, 82, 83, 84, -1, -1, 87, -1, -1, -1,
5235  -1, -1, 93, 94, -1, -1, -1, 98, -1, 100,
5236  101, 102, -1, -1, 105, -1, 107, 108, -1, 110,
5237  111, -1, 113, -1, 115, 116, 117, 118, 119, 120,
5238  121, 122, 123, 124, 125, 126, -1, -1, -1, 130,
5239  131, -1, 133, -1, 135, 136, -1, 138, -1, 140,
5240  -1, -1, -1, 144, 145, 146, -1, 148, 149, -1,
5241  151, 152, -1, -1, -1, -1, -1, 158, 159, -1,
5242  -1, -1, -1, -1, 165, -1, 167, -1, -1, 170,
5243  -1, 172, 173, -1, -1, 176, 177, -1, -1, -1,
5244  -1, -1, 183, 184, -1, 186, 187, -1, -1, 190,
5245  191, 192, 193, 194, -1, -1, 197, 198, 199, -1,
5246  201, 202, 203, 204, 205, 206, -1, -1, 209, 210,
5247  211, 212, 213, 214, 215, 216, -1, 218, 219, -1,
5248  221, 222, 223, 224, -1, -1, -1, -1, -1, -1,
5249  -1, -1, 233, 234, -1, 236, -1, 238, 239, 240,
5250  241, -1, -1, -1, -1, -1, 247, -1, -1, -1,
5251  -1, 252, 253, 254, -1, -1, -1, 258, -1, -1,
5252  261, 262, 263, 264, 265, 266, 267, 268, -1, 270,
5253  271, -1, -1, -1, 275, 276, 277, 278, -1, -1,
5254  281, -1, 283, 284, 285, -1, -1, -1, -1, -1,
5255  -1, -1, -1, -1, -1, 296, 297, 298, 299, 300,
5256  -1, -1, 303, 304, 305, 306, 307, 308, 309, 310,
5257  311, -1, -1, 314, -1, 316, 317, -1, 319, 320,
5258  321, 322, -1, -1, 325, 326, 327, 328, 329, 330,
5259  331, 332, -1, -1, -1, 336, -1, -1, -1, -1,
5260  341, -1, -1, 344, 345, 346, -1, 348, 349, 350,
5261  -1, -1, 353, 354, -1, 356, 357, 358, 359, -1,
5262  -1, -1, -1, 364, -1, -1, -1, 368, -1, -1,
5263  -1, -1, -1, -1, -1, -1, -1, 378, 379, -1,
5264  -1, -1, -1, 384, -1, 386, -1, 388, -1, -1,
5265  391, 392, 4, 5, -1, 7, 8, -1, -1, -1,
5266  -1, 13, -1, -1, -1, 17, 18, 19, -1, 21,
5267  -1, -1, 24, 25, 26, -1, 28, 29, -1, 31,
5268  -1, -1, -1, 35, 36, 37, 38, 39, -1, -1,
5269  42, 43, -1, 45, 46, -1, 48, 49, -1, 51,
5270  52, 53, 54, 55, 56, -1, 58, 59, -1, 61,
5271  62, 63, -1, -1, 66, 67, 68, 69, -1, 71,
5272  72, 73, 74, 75, 76, 77, -1, -1, -1, -1,
5273  82, 83, 84, -1, -1, 87, -1, -1, -1, -1,
5274  -1, 93, 94, -1, -1, -1, 98, -1, 100, 101,
5275  102, -1, -1, 105, -1, 107, 108, -1, 110, 111,
5276  -1, 113, -1, 115, 116, 117, 118, 119, 120, 121,
5277  122, 123, 124, 125, 126, -1, -1, -1, 130, 131,
5278  -1, 133, -1, 135, 136, -1, 138, -1, 140, -1,
5279  -1, -1, 144, 145, 146, -1, 148, 149, -1, 151,
5280  152, -1, -1, -1, -1, -1, 158, 159, -1, -1,
5281  -1, -1, -1, 165, -1, 167, -1, -1, 170, -1,
5282  172, 173, -1, -1, 176, 177, -1, -1, -1, -1,
5283  -1, 183, 184, -1, 186, 187, -1, -1, 190, 191,
5284  192, 193, 194, -1, -1, 197, 198, 199, -1, 201,
5285  202, 203, 204, 205, 206, -1, -1, 209, 210, 211,
5286  212, 213, 214, 215, 216, -1, 218, 219, -1, 221,
5287  222, 223, 224, -1, -1, -1, -1, -1, -1, -1,
5288  -1, 233, 234, -1, 236, -1, 238, 239, 240, 241,
5289  -1, -1, -1, -1, -1, 247, -1, -1, -1, -1,
5290  252, 253, 254, -1, -1, -1, 258, -1, -1, 261,
5291  262, 263, 264, 265, 266, 267, 268, -1, 270, 271,
5292  -1, -1, -1, 275, 276, 277, 278, -1, -1, 281,
5293  -1, 283, 284, 285, -1, -1, -1, -1, -1, -1,
5294  -1, -1, -1, -1, 296, 297, 298, 299, 300, -1,
5295  -1, 303, 304, 305, 306, 307, 308, 309, 310, 311,
5296  -1, -1, 314, -1, 316, 317, -1, 319, 320, 321,
5297  322, -1, -1, 325, 326, 327, 328, 329, 330, 331,
5298  332, -1, -1, -1, 336, -1, -1, -1, -1, 341,
5299  -1, -1, 344, 345, 346, -1, 348, 349, 350, -1,
5300  -1, 353, 354, -1, 356, 357, 358, 359, -1, -1,
5301  -1, -1, 364, -1, -1, -1, 368, -1, -1, -1,
5302  -1, -1, -1, -1, -1, -1, 378, 379, -1, -1,
5303  -1, -1, 384, -1, 386, -1, 388, -1, -1, 391,
5304  392, 4, 5, -1, 7, 8, -1, -1, -1, -1,
5305  13, -1, -1, -1, 17, 18, 19, -1, 21, -1,
5306  -1, 24, 25, 26, -1, 28, 29, -1, 31, -1,
5307  -1, -1, 35, 36, 37, 38, 39, -1, -1, 42,
5308  43, -1, 45, 46, -1, 48, 49, -1, 51, 52,
5309  53, 54, 55, 56, -1, 58, 59, -1, 61, 62,
5310  63, -1, -1, 66, 67, 68, 69, -1, 71, 72,
5311  73, 74, 75, 76, 77, -1, -1, -1, -1, 82,
5312  83, 84, -1, -1, 87, -1, -1, -1, -1, -1,
5313  93, 94, -1, -1, -1, 98, -1, 100, 101, 102,
5314  -1, -1, 105, -1, 107, 108, -1, 110, 111, -1,
5315  113, -1, 115, 116, 117, 118, 119, 120, 121, 122,
5316  123, 124, 125, 126, -1, -1, -1, 130, 131, -1,
5317  133, -1, 135, 136, -1, 138, -1, 140, -1, -1,
5318  -1, 144, 145, 146, -1, 148, 149, -1, 151, 152,
5319  -1, -1, -1, -1, -1, 158, 159, -1, -1, -1,
5320  -1, -1, 165, -1, 167, -1, -1, 170, -1, 172,
5321  173, -1, -1, 176, 177, -1, -1, -1, -1, -1,
5322  183, 184, -1, 186, 187, -1, -1, 190, 191, 192,
5323  193, 194, -1, -1, 197, 198, 199, -1, 201, 202,
5324  203, 204, 205, 206, -1, -1, 209, 210, 211, -1,
5325  213, 214, 215, 216, -1, 218, 219, -1, 221, 222,
5326  223, 224, -1, -1, -1, -1, -1, -1, -1, -1,
5327  233, 234, -1, 236, -1, 238, 239, 240, 241, -1,
5328  -1, -1, -1, -1, 247, -1, -1, -1, -1, 252,
5329  253, 254, -1, -1, -1, 258, -1, -1, 261, 262,
5330  263, 264, 265, 266, 267, 268, -1, 270, 271, -1,
5331  -1, -1, 275, 276, 277, 278, -1, -1, 281, -1,
5332  283, 284, 285, -1, -1, -1, -1, -1, -1, -1,
5333  -1, -1, -1, 296, 297, 298, 299, 300, -1, -1,
5334  303, 304, 305, 306, 307, 308, 309, 310, 311, -1,
5335  -1, 314, -1, 316, 317, -1, 319, 320, 321, 322,
5336  -1, -1, 325, 326, 327, 328, 329, 330, 331, 332,
5337  -1, -1, -1, 336, -1, -1, -1, -1, 341, -1,
5338  -1, 344, 345, 346, -1, 348, 349, 350, -1, -1,
5339  353, 354, -1, 356, 357, 358, 359, -1, -1, -1,
5340  -1, 364, -1, -1, -1, 368, -1, -1, -1, -1,
5341  -1, -1, -1, -1, -1, 378, 379, -1, -1, -1,
5342  -1, 384, -1, 386, -1, 388, -1, -1, 391, 392,
5343  4, 5, -1, 7, 8, -1, -1, -1, -1, 13,
5344  -1, -1, -1, 17, 18, 19, -1, 21, -1, -1,
5345  24, 25, 26, -1, 28, 29, -1, 31, -1, -1,
5346  -1, 35, 36, 37, 38, 39, -1, -1, 42, 43,
5347  -1, 45, 46, -1, 48, 49, -1, 51, 52, 53,
5348  54, 55, 56, -1, 58, 59, -1, 61, 62, 63,
5349  -1, -1, 66, 67, 68, 69, -1, 71, 72, 73,
5350  74, 75, 76, 77, -1, -1, -1, -1, 82, 83,
5351  84, -1, -1, 87, -1, -1, -1, -1, -1, 93,
5352  94, -1, -1, -1, 98, -1, 100, 101, 102, -1,
5353  -1, 105, -1, 107, 108, -1, 110, 111, -1, 113,
5354  -1, 115, 116, 117, 118, 119, 120, 121, 122, 123,
5355  124, 125, 126, -1, -1, -1, 130, 131, -1, 133,
5356  -1, 135, 136, -1, 138, -1, 140, -1, -1, -1,
5357  144, 145, 146, -1, 148, 149, -1, 151, 152, -1,
5358  -1, -1, -1, -1, 158, 159, -1, -1, -1, -1,
5359  -1, 165, -1, 167, -1, -1, 170, -1, 172, 173,
5360  -1, -1, 176, 177, -1, -1, -1, -1, -1, 183,
5361  184, -1, 186, 187, -1, -1, 190, 191, 192, 193,
5362  194, -1, -1, 197, 198, 199, -1, 201, 202, 203,
5363  204, 205, 206, -1, -1, 209, 210, 211, -1, 213,
5364  214, 215, 216, -1, 218, 219, -1, 221, 222, 223,
5365  224, -1, -1, -1, -1, -1, -1, -1, -1, 233,
5366  234, -1, 236, -1, 238, 239, 240, 241, -1, -1,
5367  -1, -1, -1, 247, -1, -1, -1, -1, 252, 253,
5368  254, -1, -1, -1, 258, -1, -1, 261, 262, 263,
5369  264, 265, 266, 267, 268, -1, 270, 271, -1, -1,
5370  -1, 275, 276, 277, 278, -1, -1, 281, -1, 283,
5371  284, 285, -1, -1, -1, -1, -1, -1, -1, -1,
5372  -1, -1, 296, 297, 298, 299, 300, -1, -1, 303,
5373  304, 305, 306, 307, 308, 309, 310, 311, -1, -1,
5374  314, -1, 316, 317, -1, 319, 320, 321, 322, -1,
5375  -1, 325, 326, 327, 328, 329, 330, 331, 332, -1,
5376  -1, -1, 336, -1, -1, -1, -1, 341, -1, -1,
5377  344, 345, 346, -1, 348, 349, 350, -1, -1, 353,
5378  354, -1, 356, 357, 358, 359, -1, -1, -1, -1,
5379  364, -1, -1, -1, 368, -1, -1, -1, -1, -1,
5380  -1, -1, -1, -1, 378, 379, -1, -1, -1, -1,
5381  384, -1, 386, -1, 388, -1, -1, 391, 392, 4,
5382  5, -1, 7, 8, -1, -1, -1, -1, 13, -1,
5383  -1, -1, 17, 18, 19, -1, 21, -1, -1, 24,
5384  25, 26, -1, 28, 29, -1, 31, -1, -1, -1,
5385  35, 36, 37, 38, 39, -1, -1, 42, 43, -1,
5386  45, 46, -1, 48, 49, -1, 51, 52, 53, 54,
5387  55, 56, -1, 58, 59, -1, 61, 62, 63, -1,
5388  -1, 66, 67, 68, 69, -1, 71, 72, 73, 74,
5389  75, 76, 77, -1, -1, -1, -1, 82, 83, 84,
5390  -1, -1, 87, -1, -1, -1, -1, -1, 93, 94,
5391  -1, -1, -1, 98, -1, 100, 101, 102, -1, -1,
5392  105, -1, 107, 108, -1, 110, 111, -1, 113, -1,
5393  115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
5394  125, 126, -1, -1, -1, 130, 131, -1, 133, -1,
5395  135, 136, -1, 138, -1, 140, -1, -1, -1, 144,
5396  145, 146, -1, 148, 149, -1, 151, 152, -1, -1,
5397  -1, -1, -1, 158, 159, -1, -1, -1, -1, -1,
5398  165, -1, 167, -1, -1, 170, -1, 172, 173, -1,
5399  -1, 176, 177, -1, -1, -1, -1, -1, 183, 184,
5400  -1, 186, 187, -1, -1, 190, 191, 192, 193, 194,
5401  -1, -1, 197, 198, 199, -1, 201, 202, 203, 204,
5402  205, 206, -1, -1, 209, 210, 211, -1, 213, 214,
5403  215, 216, -1, 218, 219, -1, 221, 222, 223, 224,
5404  -1, -1, -1, -1, -1, -1, -1, -1, 233, 234,
5405  -1, 236, -1, 238, 239, 240, 241, -1, -1, -1,
5406  -1, -1, 247, -1, -1, -1, -1, 252, 253, 254,
5407  -1, -1, -1, 258, -1, -1, 261, 262, 263, 264,
5408  265, 266, 267, 268, -1, 270, 271, -1, -1, -1,
5409  275, 276, 277, 278, -1, -1, 281, -1, 283, 284,
5410  285, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5411  -1, 296, 297, 298, 299, 300, -1, -1, 303, 304,
5412  305, 306, 307, 308, 309, 310, 311, -1, -1, 314,
5413  -1, 316, 317, -1, 319, 320, 321, 322, -1, -1,
5414  325, 326, 327, 328, 329, 330, 331, 332, -1, -1,
5415  -1, 336, -1, -1, -1, -1, 341, -1, -1, 344,
5416  345, 346, -1, 348, 349, 350, -1, -1, 353, 354,
5417  -1, 356, 357, 358, 359, -1, -1, -1, -1, 364,
5418  -1, -1, -1, 368, -1, -1, -1, -1, -1, -1,
5419  -1, -1, -1, 378, 379, -1, -1, -1, -1, 384,
5420  -1, 386, -1, 388, -1, -1, 391, 392, 4, 5,
5421  -1, 7, 8, -1, -1, -1, -1, 13, -1, -1,
5422  -1, 17, 18, 19, -1, 21, -1, -1, -1, -1,
5423  26, -1, 28, 29, -1, 31, -1, -1, -1, 35,
5424  -1, -1, -1, 39, -1, -1, -1, 43, -1, 45,
5425  46, -1, 48, 49, -1, 51, 52, 53, 54, 55,
5426  56, -1, 58, 59, -1, 61, -1, -1, -1, -1,
5427  66, -1, -1, -1, -1, -1, 72, 73, 74, -1,
5428  -1, 77, -1, -1, -1, -1, 82, 83, -1, -1,
5429  -1, -1, -1, -1, -1, -1, -1, 93, 94, -1,
5430  -1, -1, 98, -1, 100, 101, 102, -1, -1, 105,
5431  -1, 107, 108, -1, 110, 111, -1, 113, -1, 115,
5432  116, -1, -1, 119, -1, -1, 122, 123, 124, -1,
5433  126, -1, -1, -1, 130, 131, -1, 133, -1, 135,
5434  -1, -1, 138, -1, -1, -1, -1, -1, 144, 145,
5435  146, -1, 148, -1, -1, 151, 152, -1, -1, -1,
5436  -1, -1, -1, -1, -1, -1, -1, -1, -1, 165,
5437  -1, 167, -1, -1, 170, -1, -1, 173, -1, -1,
5438  -1, 177, -1, -1, -1, -1, -1, 183, 184, -1,
5439  186, -1, -1, -1, -1, 191, 192, 193, 194, -1,
5440  -1, 197, -1, 199, -1, 201, -1, 203, 204, 205,
5441  206, -1, -1, 209, 210, 211, -1, -1, 214, -1,
5442  -1, -1, 218, 219, -1, 221, 222, 223, 224, -1,
5443  -1, -1, -1, -1, -1, -1, -1, 233, -1, -1,
5444  236, -1, 238, 239, 240, 241, -1, -1, -1, -1,
5445  -1, 247, -1, -1, -1, -1, 252, -1, -1, -1,
5446  -1, -1, 258, -1, -1, -1, 262, 263, 264, 265,
5447  266, 267, 268, -1, 270, 271, -1, -1, -1, 275,
5448  276, 277, 278, -1, -1, 281, -1, 283, 284, 285,
5449  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5450  296, 297, -1, -1, 300, -1, -1, 303, 304, 305,
5451  -1, -1, 308, -1, 310, 311, -1, -1, 314, -1,
5452  -1, 317, -1, 319, 320, -1, 322, -1, -1, 325,
5453  -1, -1, 328, 329, -1, 331, 332, -1, -1, -1,
5454  336, -1, -1, -1, -1, 341, -1, -1, -1, -1,
5455  -1, -1, 348, -1, 350, -1, -1, 353, -1, -1,
5456  -1, -1, 358, 359, -1, -1, 4, 5, 364, 7,
5457  8, -1, 368, -1, -1, 13, -1, -1, -1, 17,
5458  18, 19, -1, 21, -1, -1, -1, -1, 26, -1,
5459  28, 29, -1, 31, -1, 391, 392, 35, -1, -1,
5460  -1, 39, -1, -1, -1, 43, -1, 45, 46, -1,
5461  48, 49, -1, 51, 52, 53, 54, 55, 56, -1,
5462  58, 59, 60, 61, -1, -1, -1, -1, 66, -1,
5463  -1, -1, -1, -1, 72, 73, 74, -1, -1, 77,
5464  -1, -1, -1, -1, 82, 83, -1, -1, -1, -1,
5465  -1, -1, -1, -1, -1, 93, 94, -1, -1, -1,
5466  98, -1, 100, 101, 102, -1, -1, 105, -1, 107,
5467  108, -1, 110, 111, -1, 113, -1, 115, 116, -1,
5468  -1, 119, -1, -1, 122, 123, 124, -1, 126, -1,
5469  -1, -1, 130, 131, -1, 133, -1, 135, -1, -1,
5470  138, -1, -1, -1, -1, -1, 144, 145, 146, -1,
5471  148, -1, -1, 151, 152, 153, -1, -1, -1, -1,
5472  -1, -1, -1, -1, -1, -1, -1, 165, -1, 167,
5473  -1, -1, 170, 171, -1, 173, -1, -1, -1, 177,
5474  -1, 179, -1, -1, -1, 183, 184, -1, 186, -1,
5475  -1, -1, -1, 191, 192, 193, 194, -1, -1, 197,
5476  -1, 199, -1, 201, -1, 203, 204, 205, 206, -1,
5477  -1, 209, 210, 211, -1, -1, 214, -1, -1, -1,
5478  218, 219, -1, 221, 222, 223, 224, -1, -1, -1,
5479  -1, -1, -1, -1, -1, 233, -1, -1, 236, -1,
5480  238, 239, 240, 241, -1, -1, -1, -1, -1, 247,
5481  -1, -1, -1, -1, 252, -1, -1, -1, -1, -1,
5482  258, -1, -1, -1, 262, 263, 264, 265, 266, 267,
5483  268, -1, 270, 271, 272, -1, -1, 275, 276, 277,
5484  278, -1, -1, 281, -1, 283, 284, 285, -1, -1,
5485  -1, -1, -1, -1, -1, -1, -1, -1, 296, 297,
5486  -1, -1, 300, -1, -1, 303, 304, 305, -1, -1,
5487  308, -1, 310, 311, -1, -1, 314, -1, -1, 317,
5488  -1, 319, 320, -1, 322, -1, -1, 325, -1, -1,
5489  328, 329, -1, 331, 332, -1, -1, -1, 336, -1,
5490  -1, -1, -1, 341, -1, -1, -1, -1, -1, -1,
5491  348, -1, 350, -1, -1, 353, -1, -1, -1, -1,
5492  358, 359, -1, -1, 4, 5, 364, 7, 8, -1,
5493  368, -1, -1, 13, -1, -1, -1, 17, 18, 19,
5494  -1, 21, -1, -1, -1, -1, 26, -1, 28, 29,
5495  -1, 31, -1, 391, -1, 35, -1, -1, -1, 39,
5496  -1, -1, -1, 43, -1, 45, 46, -1, 48, 49,
5497  -1, 51, 52, 53, 54, 55, 56, -1, 58, 59,
5498  60, 61, -1, -1, -1, -1, 66, -1, -1, -1,
5499  -1, -1, 72, 73, 74, -1, -1, 77, -1, -1,
5500  -1, -1, 82, 83, -1, -1, -1, -1, -1, -1,
5501  -1, -1, -1, 93, 94, -1, -1, -1, 98, -1,
5502  100, 101, 102, -1, -1, 105, -1, 107, 108, -1,
5503  110, 111, -1, 113, -1, 115, 116, -1, -1, 119,
5504  -1, -1, 122, 123, 124, -1, 126, -1, -1, -1,
5505  130, 131, -1, 133, -1, 135, -1, -1, 138, -1,
5506  -1, -1, -1, -1, 144, 145, 146, -1, 148, -1,
5507  -1, 151, 152, 153, -1, -1, -1, -1, -1, -1,
5508  -1, -1, -1, -1, -1, 165, -1, 167, -1, -1,
5509  170, 171, -1, 173, -1, -1, -1, 177, -1, -1,
5510  -1, -1, -1, 183, 184, -1, 186, -1, -1, -1,
5511  -1, 191, 192, 193, 194, -1, -1, 197, -1, 199,
5512  -1, 201, -1, 203, 204, 205, 206, -1, -1, 209,
5513  210, 211, -1, -1, 214, -1, -1, -1, 218, 219,
5514  -1, 221, 222, 223, 224, -1, -1, -1, -1, -1,
5515  -1, -1, -1, 233, -1, -1, 236, -1, 238, 239,
5516  240, 241, -1, -1, -1, -1, -1, 247, -1, -1,
5517  -1, -1, 252, -1, -1, -1, -1, -1, 258, -1,
5518  -1, -1, 262, 263, 264, 265, 266, 267, 268, -1,
5519  270, 271, -1, -1, -1, 275, 276, 277, 278, -1,
5520  -1, 281, -1, 283, 284, 285, -1, -1, -1, -1,
5521  -1, -1, -1, -1, -1, -1, 296, 297, -1, -1,
5522  300, -1, -1, 303, 304, 305, -1, -1, 308, -1,
5523  310, 311, -1, -1, 314, -1, -1, 317, -1, 319,
5524  320, -1, 322, -1, -1, 325, -1, -1, 328, 329,
5525  -1, 331, 332, -1, -1, -1, 336, -1, -1, -1,
5526  -1, 341, -1, -1, -1, -1, -1, -1, 348, -1,
5527  350, -1, -1, 353, -1, -1, -1, -1, 358, 359,
5528  -1, -1, 4, 5, 364, 7, 8, -1, 368, -1,
5529  -1, 13, -1, -1, -1, 17, 18, 19, -1, 21,
5530  -1, -1, -1, -1, 26, -1, 28, 29, -1, 31,
5531  -1, 391, -1, 35, -1, -1, -1, 39, -1, -1,
5532  -1, 43, -1, 45, 46, -1, 48, 49, -1, 51,
5533  52, 53, 54, 55, 56, -1, 58, 59, -1, 61,
5534  -1, -1, -1, -1, 66, -1, -1, -1, -1, -1,
5535  72, 73, 74, -1, -1, 77, -1, -1, -1, -1,
5536  82, 83, -1, -1, -1, -1, -1, -1, -1, -1,
5537  -1, 93, 94, -1, -1, -1, 98, -1, 100, 101,
5538  102, -1, -1, 105, -1, 107, 108, -1, 110, 111,
5539  -1, 113, -1, 115, 116, -1, -1, 119, -1, -1,
5540  122, 123, 124, -1, 126, -1, -1, -1, 130, 131,
5541  -1, 133, -1, 135, -1, -1, 138, -1, -1, -1,
5542  -1, -1, 144, 145, 146, -1, 148, -1, -1, 151,
5543  152, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5544  -1, -1, -1, 165, -1, 167, -1, -1, 170, -1,
5545  -1, 173, -1, -1, -1, 177, -1, -1, -1, -1,
5546  -1, 183, 184, -1, 186, -1, -1, -1, -1, 191,
5547  192, 193, 194, -1, -1, 197, -1, 199, -1, 201,
5548  -1, 203, 204, 205, 206, -1, -1, 209, 210, 211,
5549  -1, -1, 214, -1, -1, -1, 218, 219, -1, 221,
5550  222, 223, 224, -1, -1, -1, -1, -1, -1, -1,
5551  -1, 233, -1, -1, 236, -1, 238, 239, 240, 241,
5552  -1, -1, -1, -1, -1, 247, -1, -1, -1, -1,
5553  252, -1, -1, -1, -1, -1, 258, -1, -1, -1,
5554  262, 263, 264, 265, 266, 267, 268, -1, 270, 271,
5555  272, -1, -1, 275, 276, 277, 278, -1, -1, 281,
5556  -1, 283, 284, 285, -1, -1, -1, -1, -1, -1,
5557  -1, -1, -1, -1, 296, 297, -1, -1, 300, -1,
5558  -1, 303, 304, 305, -1, -1, 308, -1, 310, 311,
5559  -1, -1, 314, -1, -1, 317, -1, 319, 320, -1,
5560  322, -1, -1, 325, -1, -1, 328, 329, -1, 331,
5561  332, -1, -1, -1, 336, -1, -1, -1, -1, 341,
5562  -1, -1, -1, -1, -1, -1, 348, -1, 350, -1,
5563  -1, 353, -1, -1, -1, -1, 358, 359, -1, -1,
5564  -1, -1, 364, -1, -1, -1, 368, -1, -1, 4,
5565  5, -1, 7, 8, -1, -1, -1, -1, 13, -1,
5566  -1, -1, 17, 18, 19, 387, 21, -1, -1, 391,
5567  -1, 26, -1, 28, 29, -1, 31, -1, -1, -1,
5568  35, -1, -1, -1, 39, -1, -1, -1, 43, -1,
5569  45, 46, -1, 48, 49, -1, 51, 52, 53, 54,
5570  55, 56, -1, 58, 59, -1, 61, -1, -1, -1,
5571  -1, 66, -1, -1, -1, -1, -1, 72, 73, 74,
5572  -1, -1, 77, -1, -1, -1, -1, 82, 83, -1,
5573  -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
5574  -1, -1, -1, 98, -1, 100, 101, 102, -1, -1,
5575  105, -1, 107, 108, -1, 110, 111, -1, 113, -1,
5576  115, 116, -1, -1, 119, -1, -1, 122, 123, 124,
5577  -1, 126, -1, -1, -1, 130, 131, -1, 133, -1,
5578  135, -1, -1, 138, -1, -1, -1, -1, -1, 144,
5579  145, 146, -1, 148, -1, -1, 151, 152, -1, -1,
5580  -1, -1, -1, -1, -1, 160, -1, -1, -1, -1,
5581  165, -1, 167, -1, -1, 170, -1, -1, 173, -1,
5582  -1, -1, 177, -1, -1, -1, -1, -1, 183, 184,
5583  -1, 186, -1, -1, -1, -1, 191, 192, 193, 194,
5584  -1, -1, 197, -1, 199, -1, 201, -1, 203, 204,
5585  205, 206, -1, -1, 209, 210, 211, -1, -1, 214,
5586  -1, -1, -1, 218, 219, -1, 221, 222, 223, 224,
5587  -1, -1, -1, -1, -1, -1, -1, -1, 233, -1,
5588  -1, 236, -1, 238, 239, 240, 241, -1, -1, -1,
5589  -1, -1, 247, -1, -1, -1, -1, 252, -1, -1,
5590  -1, -1, -1, 258, -1, -1, -1, 262, 263, 264,
5591  265, 266, 267, 268, -1, 270, 271, -1, -1, -1,
5592  275, 276, 277, 278, -1, -1, 281, -1, 283, 284,
5593  285, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5594  -1, 296, 297, -1, -1, 300, -1, -1, 303, 304,
5595  305, -1, -1, 308, -1, 310, 311, -1, -1, 314,
5596  -1, -1, 317, -1, 319, 320, -1, 322, -1, -1,
5597  325, -1, -1, 328, 329, -1, 331, 332, -1, -1,
5598  -1, 336, -1, -1, -1, -1, 341, -1, -1, -1,
5599  -1, -1, -1, 348, -1, 350, -1, -1, 353, -1,
5600  -1, -1, -1, 358, 359, -1, -1, 4, 5, 364,
5601  7, 8, -1, 368, -1, -1, 13, -1, -1, -1,
5602  17, 18, 19, -1, 21, -1, -1, -1, -1, 26,
5603  -1, 28, 29, -1, 31, -1, 391, -1, 35, -1,
5604  -1, -1, 39, -1, -1, -1, 43, -1, 45, 46,
5605  -1, 48, 49, -1, 51, 52, 53, 54, 55, 56,
5606  -1, 58, 59, -1, 61, -1, -1, -1, -1, 66,
5607  -1, -1, -1, -1, -1, 72, 73, 74, -1, -1,
5608  77, -1, -1, -1, -1, 82, 83, -1, -1, -1,
5609  -1, -1, -1, -1, -1, -1, 93, 94, -1, -1,
5610  -1, 98, -1, 100, 101, 102, -1, -1, 105, -1,
5611  107, 108, -1, 110, 111, -1, 113, -1, 115, 116,
5612  -1, -1, 119, -1, -1, 122, 123, 124, -1, 126,
5613  -1, -1, -1, 130, 131, -1, 133, -1, 135, -1,
5614  -1, 138, -1, -1, -1, -1, -1, 144, 145, 146,
5615  -1, 148, -1, -1, 151, 152, -1, -1, -1, -1,
5616  -1, -1, -1, -1, -1, -1, -1, -1, 165, -1,
5617  167, -1, -1, 170, -1, -1, 173, -1, -1, -1,
5618  177, -1, -1, -1, -1, -1, 183, 184, -1, 186,
5619  -1, -1, -1, -1, 191, 192, 193, 194, -1, -1,
5620  197, -1, 199, -1, 201, -1, 203, 204, 205, 206,
5621  -1, -1, 209, 210, 211, -1, -1, 214, -1, -1,
5622  -1, 218, 219, -1, 221, 222, 223, 224, -1, -1,
5623  -1, -1, -1, -1, -1, -1, 233, -1, -1, 236,
5624  -1, 238, 239, 240, 241, -1, -1, -1, -1, -1,
5625  247, -1, -1, -1, -1, 252, -1, -1, -1, -1,
5626  -1, 258, -1, -1, -1, 262, 263, 264, 265, 266,
5627  267, 268, -1, 270, 271, -1, -1, -1, 275, 276,
5628  277, 278, -1, -1, 281, -1, 283, 284, 285, -1,
5629  -1, -1, -1, -1, -1, -1, -1, -1, -1, 296,
5630  297, -1, -1, 300, -1, -1, 303, 304, 305, -1,
5631  -1, 308, -1, 310, 311, -1, -1, 314, -1, -1,
5632  317, -1, 319, 320, -1, 322, -1, -1, 325, -1,
5633  -1, 328, 329, -1, 331, 332, -1, -1, -1, 336,
5634  -1, -1, -1, -1, 341, -1, -1, -1, -1, -1,
5635  -1, 348, -1, 350, -1, -1, 353, -1, -1, -1,
5636  -1, 358, 359, -1, -1, -1, -1, 364, -1, -1,
5637  -1, 368, -1, 4, 5, -1, 7, 8, -1, -1,
5638  -1, -1, 13, -1, -1, -1, 17, 18, 19, 386,
5639  21, -1, -1, -1, 391, 26, -1, 28, 29, -1,
5640  31, -1, -1, -1, 35, -1, -1, -1, 39, -1,
5641  -1, -1, 43, -1, 45, 46, -1, 48, 49, -1,
5642  51, 52, 53, 54, 55, 56, -1, 58, 59, -1,
5643  61, -1, -1, -1, -1, 66, -1, -1, -1, -1,
5644  -1, 72, 73, 74, -1, -1, 77, -1, -1, -1,
5645  -1, 82, 83, -1, -1, -1, -1, -1, -1, -1,
5646  -1, -1, 93, 94, -1, -1, -1, 98, -1, 100,
5647  101, 102, -1, -1, 105, -1, 107, 108, -1, 110,
5648  111, -1, 113, -1, 115, 116, -1, -1, 119, -1,
5649  -1, 122, 123, 124, -1, 126, -1, -1, -1, 130,
5650  131, -1, 133, -1, 135, -1, -1, 138, -1, -1,
5651  -1, -1, -1, 144, 145, 146, -1, 148, -1, -1,
5652  151, 152, -1, -1, -1, -1, -1, -1, -1, -1,
5653  -1, -1, -1, -1, 165, -1, 167, -1, -1, 170,
5654  -1, -1, 173, -1, -1, -1, 177, -1, -1, -1,
5655  -1, -1, 183, 184, -1, 186, -1, -1, -1, -1,
5656  191, 192, 193, 194, -1, -1, 197, -1, 199, -1,
5657  201, -1, 203, 204, 205, 206, -1, -1, 209, 210,
5658  211, -1, -1, 214, -1, -1, -1, 218, 219, -1,
5659  221, 222, 223, 224, -1, -1, -1, -1, -1, -1,
5660  -1, -1, 233, -1, -1, 236, -1, 238, 239, 240,
5661  241, -1, -1, -1, -1, -1, 247, -1, -1, -1,
5662  -1, 252, -1, -1, -1, -1, -1, 258, -1, -1,
5663  -1, 262, 263, 264, 265, 266, 267, 268, -1, 270,
5664  271, -1, -1, -1, 275, 276, 277, 278, -1, -1,
5665  281, -1, 283, 284, 285, -1, -1, -1, -1, -1,
5666  -1, -1, -1, -1, -1, 296, 297, -1, -1, 300,
5667  -1, -1, 303, 304, 305, -1, -1, 308, -1, 310,
5668  311, -1, -1, 314, -1, -1, 317, -1, 319, 320,
5669  -1, 322, -1, -1, 325, -1, -1, 328, 329, -1,
5670  331, 332, -1, -1, -1, 336, -1, -1, -1, -1,
5671  341, -1, -1, -1, -1, -1, -1, 348, -1, 350,
5672  -1, -1, 353, -1, -1, -1, -1, 358, 359, -1,
5673  -1, 4, 5, 364, 7, 8, -1, 368, -1, -1,
5674  13, -1, -1, -1, 17, 18, 19, -1, 21, -1,
5675  -1, -1, -1, 26, -1, 28, 29, -1, 31, -1,
5676  391, -1, 35, -1, -1, -1, 39, -1, -1, -1,
5677  43, -1, 45, 46, -1, 48, 49, -1, 51, 52,
5678  53, 54, 55, 56, -1, 58, 59, -1, 61, -1,
5679  -1, -1, -1, 66, -1, -1, -1, -1, -1, 72,
5680  73, 74, -1, -1, 77, -1, -1, -1, -1, 82,
5681  83, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5682  93, 94, -1, -1, -1, 98, -1, 100, 101, 102,
5683  -1, -1, 105, -1, 107, 108, -1, 110, 111, -1,
5684  113, -1, 115, 116, -1, -1, 119, -1, -1, 122,
5685  123, 124, -1, 126, -1, -1, -1, 130, 131, -1,
5686  133, -1, 135, -1, -1, 138, -1, -1, -1, -1,
5687  -1, 144, 145, 146, -1, 148, -1, -1, 151, 152,
5688  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5689  -1, -1, 165, -1, 167, -1, -1, 170, -1, -1,
5690  173, -1, -1, -1, 177, -1, -1, -1, -1, -1,
5691  183, 184, -1, 186, -1, -1, -1, -1, 191, 192,
5692  193, 194, -1, -1, 197, -1, 199, -1, 201, -1,
5693  203, 204, 205, 206, -1, -1, 209, 210, 211, -1,
5694  -1, 214, -1, -1, -1, 218, 219, -1, 221, 222,
5695  223, 224, -1, -1, -1, -1, -1, -1, -1, -1,
5696  233, -1, -1, 236, -1, 238, 239, 240, 241, -1,
5697  -1, -1, -1, -1, 247, -1, -1, -1, -1, 252,
5698  -1, -1, -1, -1, -1, 258, -1, -1, -1, 262,
5699  263, 264, 265, 266, 267, 268, -1, 270, 271, -1,
5700  -1, -1, 275, 276, 277, 278, -1, -1, 281, -1,
5701  283, 284, 285, -1, -1, -1, -1, -1, -1, -1,
5702  -1, -1, -1, 296, 297, -1, -1, 300, -1, -1,
5703  303, 304, 305, -1, -1, 308, -1, 310, 311, -1,
5704  -1, 314, -1, -1, 317, -1, 319, 320, -1, 322,
5705  -1, -1, 325, -1, -1, 328, 329, -1, 331, 332,
5706  -1, -1, -1, 336, -1, -1, -1, -1, 341, -1,
5707  -1, -1, -1, -1, -1, 348, -1, 350, -1, -1,
5708  353, -1, -1, -1, -1, 358, 359, -1, -1, 4,
5709  5, 364, 7, 8, -1, 368, -1, -1, 13, -1,
5710  -1, -1, 17, 18, 19, -1, 21, -1, -1, -1,
5711  -1, 26, -1, 28, 29, -1, 31, -1, 391, -1,
5712  35, -1, -1, -1, 39, -1, -1, -1, 43, -1,
5713  45, 46, -1, 48, 49, -1, 51, 52, 53, 54,
5714  55, 56, -1, 58, 59, -1, 61, -1, -1, -1,
5715  -1, 66, -1, -1, -1, -1, -1, 72, 73, 74,
5716  -1, -1, 77, -1, -1, -1, -1, 82, 83, -1,
5717  -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
5718  -1, -1, -1, 98, -1, 100, 101, 102, -1, -1,
5719  105, -1, 107, 108, -1, 110, 111, -1, 113, -1,
5720  115, 116, -1, -1, 119, -1, -1, 122, 123, 124,
5721  -1, 126, -1, -1, -1, 130, 131, -1, 133, -1,
5722  135, -1, -1, 138, -1, -1, -1, -1, -1, 144,
5723  145, 146, -1, 148, -1, -1, 151, 152, -1, -1,
5724  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5725  165, -1, 167, -1, -1, 170, -1, -1, 173, -1,
5726  -1, -1, 177, -1, -1, -1, -1, -1, 183, 184,
5727  -1, 186, -1, -1, -1, -1, 191, 192, 193, 194,
5728  -1, -1, 197, -1, 199, -1, 201, -1, 203, 204,
5729  205, 206, -1, -1, 209, 210, 211, -1, -1, 214,
5730  -1, -1, -1, 218, 219, -1, 221, 222, 223, 224,
5731  -1, -1, -1, -1, -1, -1, -1, -1, 233, -1,
5732  -1, 236, -1, 238, 239, 240, 241, -1, -1, -1,
5733  -1, -1, 247, -1, -1, -1, -1, 252, -1, -1,
5734  -1, -1, -1, 258, -1, -1, -1, 262, 263, 264,
5735  265, 266, 267, 268, -1, 270, 271, -1, -1, -1,
5736  275, 276, 277, 278, -1, -1, 281, -1, 283, 284,
5737  285, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5738  -1, 296, 297, -1, -1, 300, -1, -1, 303, 304,
5739  305, -1, -1, 308, -1, 310, 311, -1, -1, 314,
5740  -1, -1, 317, -1, 319, 320, -1, 322, -1, -1,
5741  325, -1, -1, 328, 329, -1, 331, 332, -1, -1,
5742  -1, 336, -1, -1, -1, -1, 341, -1, -1, -1,
5743  -1, -1, -1, 348, -1, 350, -1, -1, 353, -1,
5744  -1, -1, -1, 358, 359, -1, -1, 4, 5, 364,
5745  7, 8, -1, 368, -1, -1, 13, -1, -1, -1,
5746  17, 18, 19, -1, 21, -1, -1, -1, -1, 26,
5747  -1, 28, 29, -1, 31, -1, 391, -1, 35, -1,
5748  -1, -1, 39, -1, -1, -1, 43, -1, 45, 46,
5749  -1, 48, 49, -1, 51, 52, 53, 54, 55, 56,
5750  -1, 58, 59, -1, 61, -1, -1, -1, -1, 66,
5751  -1, -1, -1, -1, -1, 72, 73, 74, -1, -1,
5752  77, -1, -1, -1, -1, 82, 83, -1, -1, -1,
5753  -1, -1, -1, -1, -1, -1, 93, 94, -1, -1,
5754  -1, 98, -1, 100, 101, 102, -1, -1, 105, -1,
5755  107, 108, -1, 110, 111, -1, 113, -1, 115, 116,
5756  -1, -1, 119, -1, -1, 122, 123, 124, -1, 126,
5757  -1, -1, -1, 130, 131, -1, 133, -1, 135, -1,
5758  -1, 138, -1, -1, -1, -1, -1, 144, 145, 146,
5759  -1, 148, -1, -1, 151, 152, -1, -1, -1, -1,
5760  -1, -1, -1, -1, -1, -1, -1, -1, 165, -1,
5761  167, -1, -1, 170, -1, -1, 173, -1, -1, -1,
5762  177, -1, -1, -1, -1, -1, 183, 184, -1, 186,
5763  -1, -1, -1, -1, 191, 192, 193, 194, -1, -1,
5764  197, -1, 199, -1, 201, -1, 203, 204, 205, 206,
5765  -1, -1, 209, 210, 211, -1, -1, 214, -1, -1,
5766  -1, 218, 219, -1, 221, 222, 223, 224, -1, -1,
5767  -1, -1, -1, -1, -1, -1, 233, -1, -1, 236,
5768  -1, 238, 239, 240, 241, -1, -1, -1, -1, -1,
5769  247, -1, -1, -1, -1, 252, -1, -1, -1, -1,
5770  -1, 258, -1, -1, -1, 262, 263, 264, 265, 266,
5771  267, 268, -1, 270, 271, -1, -1, -1, 275, 276,
5772  277, 278, -1, -1, 281, -1, 283, 284, 285, -1,
5773  -1, -1, -1, -1, -1, -1, -1, -1, -1, 296,
5774  297, -1, -1, 300, -1, -1, 303, 304, 305, -1,
5775  -1, 308, -1, 310, 311, -1, -1, 314, -1, -1,
5776  317, -1, 319, 320, -1, 322, -1, -1, 325, -1,
5777  -1, 328, 329, -1, 331, 332, -1, -1, -1, 336,
5778  -1, -1, -1, -1, 341, -1, -1, -1, -1, -1,
5779  -1, 348, -1, 350, -1, -1, 353, -1, -1, -1,
5780  -1, 358, 359, -1, -1, 4, 5, 364, 7, 8,
5781  -1, 368, -1, -1, 13, -1, -1, -1, 17, 18,
5782  19, -1, 21, -1, -1, -1, -1, 26, -1, 28,
5783  29, -1, 31, -1, 391, -1, 35, -1, -1, -1,
5784  39, -1, -1, -1, 43, -1, 45, 46, -1, 48,
5785  49, -1, 51, 52, 53, 54, 55, 56, -1, 58,
5786  59, -1, 61, -1, -1, -1, -1, 66, -1, -1,
5787  -1, -1, -1, 72, 73, 74, -1, -1, 77, -1,
5788  -1, -1, -1, 82, 83, -1, -1, -1, -1, -1,
5789  -1, -1, -1, -1, 93, 94, -1, -1, -1, 98,
5790  -1, 100, 101, 102, -1, -1, 105, -1, 107, 108,
5791  -1, 110, 111, -1, 113, -1, 115, 116, -1, -1,
5792  119, -1, -1, 122, 123, 124, -1, 126, -1, -1,
5793  -1, 130, 131, -1, 133, -1, 135, -1, -1, 138,
5794  -1, -1, -1, -1, -1, 144, 145, 146, -1, 148,
5795  -1, -1, 151, 152, -1, -1, -1, -1, -1, -1,
5796  -1, -1, -1, -1, -1, -1, 165, -1, 167, -1,
5797  -1, 170, -1, -1, 173, -1, -1, -1, 177, -1,
5798  -1, -1, -1, -1, 183, 184, -1, 186, -1, -1,
5799  -1, -1, 191, 192, 193, 194, -1, -1, 197, -1,
5800  199, -1, 201, -1, 203, 204, 205, 206, -1, -1,
5801  209, 210, 211, -1, -1, 214, -1, -1, -1, 218,
5802  219, -1, 221, 222, 223, 224, -1, -1, -1, -1,
5803  -1, -1, -1, -1, 233, -1, -1, 236, -1, 238,
5804  239, 240, 241, -1, -1, -1, -1, -1, 247, -1,
5805  -1, -1, -1, 252, -1, -1, -1, -1, -1, 258,
5806  -1, -1, -1, 262, 263, 264, 265, 266, 267, 268,
5807  -1, 270, 271, -1, -1, -1, 275, 276, 277, 278,
5808  -1, -1, 281, -1, 283, 284, 285, -1, -1, -1,
5809  -1, -1, -1, -1, -1, -1, -1, 296, 297, -1,
5810  -1, 300, -1, -1, 303, 304, 305, -1, -1, 308,
5811  -1, 310, 311, -1, -1, 314, -1, -1, 317, -1,
5812  319, 320, -1, 322, -1, -1, 325, -1, -1, 328,
5813  329, -1, 331, 332, -1, -1, -1, 336, -1, -1,
5814  -1, -1, 341, -1, -1, -1, -1, -1, -1, 348,
5815  -1, 350, -1, -1, 353, -1, -1, -1, -1, 358,
5816  359, -1, -1, 4, 5, 364, 7, 8, -1, 368,
5817  -1, -1, 13, -1, -1, -1, 17, 18, 19, -1,
5818  21, 380, -1, -1, -1, 26, -1, 28, 29, -1,
5819  31, -1, -1, -1, 35, -1, -1, -1, 39, -1,
5820  -1, -1, 43, -1, 45, 46, -1, 48, 49, -1,
5821  51, 52, 53, 54, 55, 56, -1, 58, 59, -1,
5822  61, -1, -1, -1, -1, 66, -1, -1, -1, -1,
5823  -1, 72, 73, 74, -1, -1, 77, -1, -1, -1,
5824  -1, 82, 83, -1, -1, -1, -1, -1, -1, -1,
5825  -1, -1, 93, 94, -1, -1, -1, 98, -1, 100,
5826  101, 102, -1, -1, 105, -1, 107, 108, -1, 110,
5827  111, -1, 113, -1, 115, 116, -1, -1, 119, -1,
5828  -1, 122, 123, 124, -1, 126, -1, -1, -1, 130,
5829  131, -1, 133, -1, 135, -1, -1, 138, -1, -1,
5830  -1, -1, -1, 144, 145, 146, -1, 148, -1, -1,
5831  151, 152, -1, -1, -1, -1, -1, -1, -1, -1,
5832  -1, -1, -1, -1, 165, -1, 167, -1, -1, 170,
5833  -1, -1, 173, -1, -1, -1, 177, -1, -1, -1,
5834  -1, -1, 183, 184, -1, 186, -1, -1, -1, -1,
5835  191, 192, 193, 194, -1, -1, 197, -1, 199, -1,
5836  201, -1, 203, 204, 205, 206, -1, -1, 209, 210,
5837  211, -1, -1, 214, -1, -1, -1, 218, 219, -1,
5838  221, 222, 223, 224, -1, -1, -1, -1, -1, -1,
5839  -1, -1, 233, -1, -1, 236, -1, 238, 239, 240,
5840  241, -1, -1, -1, -1, -1, 247, -1, -1, -1,
5841  -1, 252, -1, -1, -1, -1, -1, 258, -1, -1,
5842  -1, 262, 263, 264, 265, 266, 267, 268, -1, 270,
5843  271, -1, -1, -1, 275, 276, 277, 278, -1, -1,
5844  281, -1, 283, 284, 285, -1, -1, -1, -1, -1,
5845  -1, -1, -1, -1, -1, 296, 297, -1, -1, 300,
5846  -1, -1, 303, 304, 305, -1, -1, 308, -1, 310,
5847  311, -1, -1, 314, -1, -1, 317, -1, 319, 320,
5848  -1, 322, -1, -1, 325, -1, -1, 328, 329, -1,
5849  331, 332, -1, -1, -1, 336, -1, -1, -1, -1,
5850  341, -1, -1, -1, -1, -1, -1, 348, -1, 350,
5851  -1, -1, 353, -1, -1, -1, -1, 358, 359, -1,
5852  -1, 4, 5, 364, 7, 8, -1, 368, -1, -1,
5853  13, -1, -1, -1, 17, 18, 19, -1, 21, 380,
5854  -1, -1, 25, 26, -1, 28, 29, -1, 31, -1,
5855  -1, -1, 35, -1, -1, -1, 39, -1, -1, -1,
5856  43, -1, 45, 46, -1, 48, 49, -1, 51, 52,
5857  53, 54, 55, 56, -1, 58, 59, -1, 61, -1,
5858  -1, -1, -1, 66, -1, -1, -1, -1, -1, 72,
5859  73, 74, -1, -1, 77, -1, -1, -1, -1, 82,
5860  83, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5861  93, 94, -1, -1, -1, 98, -1, 100, 101, 102,
5862  -1, -1, 105, -1, 107, 108, -1, 110, 111, -1,
5863  113, -1, 115, 116, -1, -1, 119, -1, -1, 122,
5864  123, 124, -1, 126, -1, -1, -1, 130, 131, -1,
5865  133, -1, 135, -1, -1, 138, -1, 140, -1, -1,
5866  -1, 144, 145, 146, -1, 148, -1, -1, 151, 152,
5867  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5868  -1, -1, 165, -1, 167, -1, -1, 170, -1, -1,
5869  173, -1, -1, -1, 177, -1, -1, -1, -1, -1,
5870  183, 184, -1, 186, -1, -1, -1, -1, 191, 192,
5871  193, 194, -1, -1, 197, -1, 199, -1, 201, -1,
5872  203, 204, 205, 206, -1, -1, 209, 210, 211, -1,
5873  -1, 214, -1, -1, -1, 218, 219, -1, 221, 222,
5874  223, 224, -1, -1, -1, -1, -1, -1, -1, -1,
5875  233, -1, -1, 236, -1, 238, 239, 240, 241, -1,
5876  -1, -1, -1, -1, 247, -1, -1, -1, -1, 252,
5877  -1, -1, -1, -1, -1, 258, -1, -1, -1, 262,
5878  263, 264, 265, 266, 267, 268, -1, 270, 271, -1,
5879  -1, -1, 275, 276, 277, 278, -1, -1, 281, -1,
5880  283, 284, 285, -1, -1, -1, -1, -1, -1, -1,
5881  -1, -1, -1, 296, 297, -1, -1, 300, -1, -1,
5882  303, 304, 305, -1, -1, 308, -1, 310, 311, -1,
5883  -1, 314, -1, 316, 317, -1, 319, 320, -1, 322,
5884  -1, -1, 325, -1, -1, 328, 329, -1, 331, 332,
5885  -1, -1, -1, 336, -1, -1, -1, -1, 341, -1,
5886  -1, -1, -1, -1, -1, 348, -1, 350, -1, -1,
5887  353, -1, -1, -1, -1, 358, 359, -1, -1, 4,
5888  5, 364, 7, 8, -1, 368, -1, -1, 13, 14,
5889  -1, -1, 17, 18, 19, -1, 21, -1, -1, -1,
5890  -1, 26, -1, 28, 29, -1, 31, -1, -1, -1,
5891  35, -1, -1, -1, 39, -1, -1, -1, 43, -1,
5892  45, 46, -1, 48, 49, -1, 51, 52, 53, 54,
5893  55, 56, -1, 58, 59, -1, 61, -1, -1, -1,
5894  -1, 66, -1, -1, -1, -1, -1, 72, 73, 74,
5895  -1, -1, 77, -1, -1, -1, -1, 82, 83, -1,
5896  -1, -1, -1, -1, -1, -1, -1, -1, 93, 94,
5897  -1, -1, -1, 98, -1, 100, 101, 102, -1, -1,
5898  105, -1, 107, 108, -1, 110, 111, -1, 113, -1,
5899  115, 116, -1, -1, 119, -1, -1, 122, 123, 124,
5900  -1, 126, -1, -1, -1, 130, 131, -1, 133, -1,
5901  135, -1, -1, 138, -1, -1, -1, -1, -1, 144,
5902  145, 146, -1, 148, -1, -1, 151, 152, -1, -1,
5903  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5904  165, -1, 167, -1, -1, 170, -1, -1, 173, -1,
5905  -1, -1, 177, -1, -1, -1, -1, -1, 183, 184,
5906  -1, 186, -1, -1, -1, -1, 191, 192, 193, 194,
5907  -1, -1, 197, -1, 199, -1, 201, -1, 203, 204,
5908  205, 206, -1, -1, 209, 210, 211, -1, -1, 214,
5909  -1, -1, -1, 218, 219, -1, 221, 222, 223, 224,
5910  -1, -1, -1, -1, -1, -1, -1, -1, 233, -1,
5911  -1, 236, -1, 238, 239, 240, 241, -1, -1, -1,
5912  -1, -1, 247, -1, -1, -1, -1, 252, -1, -1,
5913  -1, -1, -1, 258, -1, -1, -1, 262, 263, 264,
5914  265, 266, 267, 268, -1, 270, 271, -1, -1, -1,
5915  275, 276, 277, 278, -1, -1, 281, -1, 283, 284,
5916  285, -1, -1, -1, -1, -1, -1, -1, -1, -1,
5917  -1, 296, 297, -1, -1, 300, -1, -1, 303, 304,
5918  305, -1, -1, 308, -1, 310, 311, -1, -1, 314,
5919  -1, 316, 317, -1, 319, 320, -1, 322, -1, -1,
5920  325, -1, -1, 328, 329, -1, 331, 332, -1, -1,
5921  -1, 336, -1, -1, -1, -1, 341, -1, -1, -1,
5922  -1, -1, -1, 348, -1, 350, -1, -1, 353, -1,
5923  -1, -1, -1, 358, 359, -1, -1, 4, 5, 364,
5924  7, 8, -1, 368, -1, -1, 13, -1, -1, -1,
5925  17, 18, 19, -1, 21, -1, -1, -1, -1, 26,
5926  -1, 28, 29, -1, 31, -1, -1, -1, 35, -1,
5927  -1, -1, 39, -1, -1, -1, 43, -1, 45, 46,
5928  -1, 48, 49, -1, 51, 52, 53, 54, 55, 56,
5929  -1, 58, 59, -1, 61, -1, -1, -1, -1, 66,
5930  -1, -1, -1, -1, -1, 72, 73, 74, -1, -1,
5931  77, -1, -1, -1, -1, 82, 83, -1, -1, -1,
5932  -1, -1, -1, -1, -1, -1, 93, 94, -1, -1,
5933  -1, 98, -1, 100, 101, 102, -1, -1, 105, -1,
5934  107, 108, -1, 110, 111, -1, 113, -1, 115, 116,
5935  -1, -1, 119, -1, -1, 122, 123, 124, -1, 126,
5936  -1, -1, -1, 130, 131, -1, 133, -1, 135, -1,
5937  -1, 138, -1, -1, -1, -1, -1, 144, 145, 146,
5938  -1, 148, -1, -1, 151, 152, -1, -1, -1, -1,
5939  -1, -1, -1, -1, -1, -1, -1, -1, 165, -1,
5940  167, -1, -1, 170, -1, -1, 173, -1, -1, -1,
5941  177, -1, -1, -1, -1, -1, 183, 184, -1, 186,
5942  -1, -1, -1, -1, 191, 192, 193, 194, -1, -1,
5943  197, -1, 199, -1, 201, -1, 203, 204, 205, 206,
5944  -1, -1, 209, 210, 211, -1, -1, 214, -1, -1,
5945  -1, 218, 219, -1, 221, 222, 223, 224, -1, -1,
5946  -1, -1, -1, -1, -1, -1, 233, -1, -1, 236,
5947  -1, 238, 239, 240, 241, -1, -1, -1, -1, -1,
5948  247, -1, -1, -1, -1, 252, -1, -1, -1, -1,
5949  -1, 258, -1, -1, -1, 262, 263, 264, 265, 266,
5950  267, 268, -1, 270, 271, -1, -1, -1, 275, 276,
5951  277, 278, -1, -1, 281, -1, 283, 284, 285, -1,
5952  -1, -1, -1, -1, -1, -1, -1, -1, -1, 296,
5953  297, -1, -1, 300, -1, -1, 303, 304, 305, -1,
5954  -1, 308, -1, 310, 311, -1, -1, 314, -1, 316,
5955  317, -1, 319, 320, -1, 322, -1, -1, 325, -1,
5956  -1, 328, 329, -1, 331, 332, -1, -1, -1, 336,
5957  -1, -1, -1, -1, 341, -1, -1, -1, -1, -1,
5958  -1, 348, -1, 350, -1, -1, 353, -1, -1, -1,
5959  -1, 358, 359, -1, -1, 4, 5, 364, 7, 8,
5960  -1, 368, -1, -1, 13, -1, -1, -1, 17, 18,
5961  19, -1, 21, -1, -1, -1, -1, 26, -1, 28,
5962  29, -1, 31, -1, -1, -1, 35, -1, -1, -1,
5963  39, -1, -1, -1, 43, -1, 45, 46, -1, 48,
5964  49, -1, 51, 52, 53, 54, 55, 56, -1, 58,
5965  59, -1, 61, -1, -1, -1, -1, 66, -1, -1,
5966  -1, -1, -1, 72, 73, 74, -1, -1, 77, -1,
5967  -1, -1, -1, 82, 83, -1, -1, -1, -1, -1,
5968  -1, -1, -1, -1, 93, 94, -1, -1, -1, 98,
5969  -1, 100, 101, 102, -1, -1, 105, -1, 107, 108,
5970  -1, 110, 111, -1, 113, -1, 115, 116, -1, -1,
5971  119, -1, -1, 122, 123, 124, -1, 126, -1, -1,
5972  -1, 130, 131, -1, 133, -1, 135, -1, -1, 138,
5973  -1, -1, -1, -1, -1, 144, 145, 146, -1, 148,
5974  -1, -1, 151, 152, -1, -1, -1, -1, -1, -1,
5975  -1, -1, -1, -1, -1, -1, 165, -1, 167, -1,
5976  -1, 170, -1, -1, 173, -1, -1, -1, 177, -1,
5977  -1, -1, -1, -1, 183, 184, -1, 186, -1, -1,
5978  -1, -1, 191, 192, 193, 194, -1, -1, 197, -1,
5979  199, -1, 201, -1, 203, 204, 205, 206, -1, -1,
5980  209, 210, 211, -1, -1, 214, -1, -1, -1, 218,
5981  219, -1, 221, 222, 223, 224, -1, -1, -1, -1,
5982  -1, -1, -1, -1, 233, -1, -1, 236, 237, 238,
5983  239, 240, 241, -1, -1, -1, -1, -1, 247, -1,
5984  -1, -1, -1, 252, -1, -1, -1, -1, -1, 258,
5985  -1, -1, -1, 262, 263, 264, 265, 266, 267, 268,
5986  -1, 270, 271, -1, -1, -1, 275, 276, 277, 278,
5987  -1, -1, 281, -1, 283, 284, 285, -1, -1, -1,
5988  -1, -1, -1, -1, -1, -1, -1, 296, 297, -1,
5989  -1, 300, -1, -1, 303, 304, 305, -1, -1, 308,
5990  -1, 310, 311, -1, -1, 314, -1, -1, 317, -1,
5991  319, 320, -1, 322, -1, -1, 325, -1, -1, 328,
5992  329, -1, 331, 332, -1, -1, -1, 336, -1, -1,
5993  -1, -1, 341, -1, -1, -1, -1, -1, -1, 348,
5994  -1, 350, -1, -1, 353, -1, -1, -1, -1, 358,
5995  359, -1, -1, 4, 5, 364, 7, 8, -1, 368,
5996  -1, -1, 13, -1, -1, -1, 17, 18, 19, -1,
5997  21, -1, -1, -1, -1, 26, -1, 28, 29, -1,
5998  31, -1, -1, -1, 35, -1, -1, -1, 39, -1,
5999  -1, -1, 43, -1, 45, 46, -1, 48, 49, -1,
6000  51, 52, 53, 54, 55, 56, -1, 58, 59, -1,
6001  61, -1, -1, -1, -1, 66, -1, -1, -1, -1,
6002  -1, 72, 73, 74, -1, -1, 77, -1, -1, -1,
6003  -1, 82, 83, -1, -1, -1, -1, -1, -1, -1,
6004  -1, -1, 93, 94, -1, -1, -1, 98, -1, 100,
6005  101, 102, -1, -1, 105, -1, 107, 108, -1, 110,
6006  111, -1, 113, -1, 115, 116, -1, -1, 119, -1,
6007  -1, 122, 123, 124, -1, 126, -1, -1, -1, 130,
6008  131, -1, 133, -1, 135, -1, -1, 138, -1, -1,
6009  -1, -1, -1, 144, 145, 146, -1, 148, -1, -1,
6010  151, 152, -1, -1, -1, -1, -1, -1, -1, -1,
6011  -1, -1, -1, -1, 165, -1, 167, -1, -1, 170,
6012  -1, -1, 173, -1, -1, -1, 177, -1, -1, -1,
6013  -1, -1, 183, 184, -1, 186, -1, -1, -1, -1,
6014  191, 192, 193, 194, -1, -1, 197, -1, 199, -1,
6015  201, -1, 203, 204, 205, 206, -1, -1, 209, 210,
6016  211, -1, -1, 214, -1, -1, -1, 218, 219, -1,
6017  221, 222, 223, 224, -1, -1, -1, -1, -1, -1,
6018  -1, -1, 233, -1, -1, 236, -1, 238, 239, 240,
6019  241, -1, -1, -1, -1, -1, 247, -1, -1, -1,
6020  -1, 252, -1, -1, -1, -1, -1, 258, -1, -1,
6021  -1, 262, 263, 264, 265, 266, 267, 268, -1, 270,
6022  271, -1, -1, -1, 275, 276, 277, 278, -1, -1,
6023  281, -1, 283, 284, 285, -1, -1, -1, -1, -1,
6024  -1, -1, -1, -1, -1, 296, 297, -1, -1, 300,
6025  -1, -1, 303, 304, 305, -1, -1, 308, -1, 310,
6026  311, -1, -1, 314, -1, -1, 317, -1, 319, 320,
6027  -1, 322, -1, -1, 325, -1, -1, 328, 329, -1,
6028  331, 332, -1, -1, -1, 336, -1, -1, -1, -1,
6029  341, -1, -1, -1, -1, -1, -1, 348, -1, 350,
6030  -1, -1, 353, -1, -1, -1, -1, 358, 359, -1,
6031  -1, -1, -1, 364, -1, -1, -1, 368
6032 };
6033 
6034 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
6035  symbol of state STATE-NUM. */
6036 static const yytype_uint16 yystos[] =
6037 {
6038  0, 10, 11, 21, 44, 53, 64, 89, 90, 91,
6039  99, 109, 117, 126, 158, 172, 182, 250, 251, 254,
6040  262, 268, 272, 279, 282, 296, 328, 337, 339, 342,
6041  386, 394, 395, 396, 397, 493, 508, 510, 512, 514,
6042  518, 519, 655, 661, 666, 669, 692, 698, 701, 703,
6043  709, 712, 715, 721, 723, 724, 772, 791, 793, 799,
6044  800, 801, 802, 71, 218, 223, 497, 310, 313, 790,
6045  794, 790, 364, 795, 38, 71, 314, 414, 497, 150,
6046  700, 38, 71, 314, 497, 660, 145, 147, 148, 178,
6047  291, 316, 321, 392, 662, 762, 763, 769, 785, 786,
6048  716, 667, 58, 241, 722, 73, 729, 268, 790, 670,
6049  795, 762, 803, 522, 524, 525, 226, 774, 704, 325,
6050  313, 702, 792, 150, 505, 4, 5, 7, 8, 13,
6051  17, 18, 19, 21, 26, 28, 29, 31, 35, 39,
6052  43, 45, 46, 48, 49, 51, 52, 53, 54, 55,
6053  56, 58, 59, 61, 66, 72, 73, 74, 77, 82,
6054  83, 93, 94, 98, 100, 101, 102, 105, 107, 108,
6055  110, 111, 113, 115, 116, 119, 122, 123, 124, 126,
6056  130, 131, 133, 135, 138, 144, 146, 151, 152, 165,
6057  167, 170, 173, 177, 183, 184, 186, 191, 192, 193,
6058  194, 197, 199, 201, 203, 204, 205, 206, 209, 210,
6059  211, 214, 218, 219, 221, 222, 223, 224, 233, 236,
6060  238, 239, 240, 241, 247, 252, 258, 262, 263, 264,
6061  265, 266, 267, 268, 270, 271, 275, 276, 277, 278,
6062  281, 283, 284, 285, 296, 297, 300, 303, 304, 305,
6063  308, 310, 311, 314, 317, 319, 320, 322, 325, 328,
6064  329, 331, 332, 336, 341, 348, 350, 353, 358, 359,
6065  364, 368, 760, 762, 766, 770, 771, 272, 386, 520,
6066  0, 109, 119, 391, 713, 759, 760, 766, 760, 505,
6067  511, 795, 513, 12, 796, 761, 766, 149, 415, 313,
6068  399, 132, 761, 149, 659, 153, 790, 785, 362, 663,
6069  135, 186, 297, 310, 717, 718, 790, 505, 5, 19,
6070  24, 25, 36, 37, 38, 42, 46, 48, 62, 63,
6071  67, 68, 69, 71, 75, 76, 77, 82, 84, 87,
6072  117, 118, 120, 121, 125, 136, 140, 144, 149, 158,
6073  159, 167, 172, 176, 187, 190, 194, 197, 198, 202,
6074  203, 212, 213, 215, 216, 234, 240, 253, 254, 261,
6075  267, 270, 298, 299, 304, 306, 307, 309, 316, 319,
6076  320, 321, 326, 327, 328, 330, 341, 344, 345, 346,
6077  348, 349, 354, 356, 357, 368, 378, 379, 384, 386,
6078  388, 391, 392, 541, 542, 543, 544, 547, 548, 549,
6079  550, 551, 556, 560, 745, 748, 752, 756, 757, 762,
6080  764, 766, 725, 803, 515, 160, 658, 672, 673, 759,
6081  323, 796, 523, 9, 95, 290, 291, 292, 293, 302,
6082  529, 530, 531, 532, 533, 773, 49, 63, 64, 72,
6083  113, 135, 152, 153, 169, 183, 239, 278, 310, 313,
6084  314, 358, 479, 705, 762, 763, 768, 780, 362, 509,
6085  658, 790, 759, 524, 520, 387, 766, 711, 710, 391,
6086  495, 313, 657, 658, 657, 39, 214, 214, 250, 797,
6087  212, 760, 415, 335, 480, 759, 118, 760, 766, 659,
6088  214, 56, 664, 297, 362, 390, 719, 672, 386, 386,
6089  547, 541, 570, 386, 386, 386, 386, 386, 386, 386,
6090  386, 540, 540, 540, 386, 386, 386, 386, 745, 386,
6091  386, 386, 386, 386, 386, 386, 386, 386, 386, 541,
6092  386, 722, 386, 386, 386, 386, 386, 386, 386, 541,
6093  386, 540, 386, 386, 386, 386, 386, 386, 386, 386,
6094  386, 386, 386, 386, 386, 540, 386, 386, 386, 745,
6095  386, 386, 386, 540, 540, 540, 386, 386, 386, 386,
6096  386, 386, 547, 547, 547, 541, 815, 816, 766, 766,
6097  561, 12, 229, 366, 112, 134, 164, 174, 208, 370,
6098  371, 372, 545, 22, 96, 163, 179, 202, 212, 249,
6099  374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
6100  47, 373, 764, 386, 391, 56, 730, 516, 517, 759,
6101  673, 671, 268, 798, 797, 334, 804, 805, 380, 535,
6102  536, 537, 533, 775, 776, 777, 132, 163, 707, 386,
6103  71, 313, 179, 361, 708, 180, 639, 641, 706, 707,
6104  297, 310, 639, 707, 297, 297, 353, 59, 279, 387,
6105  805, 807, 808, 809, 518, 25, 140, 714, 746, 764,
6106  766, 766, 87, 425, 467, 759, 390, 39, 250, 118,
6107  400, 759, 153, 699, 220, 657, 259, 357, 665, 244,
6108  718, 657, 720, 668, 541, 9, 95, 566, 622, 360,
6109  572, 541, 387, 541, 569, 569, 541, 541, 95, 566,
6110  622, 387, 387, 541, 541, 541, 541, 756, 541, 815,
6111  78, 79, 80, 81, 82, 141, 142, 143, 144, 194,
6112  195, 196, 197, 203, 240, 269, 270, 359, 367, 368,
6113  617, 619, 95, 563, 541, 541, 541, 541, 617, 387,
6114  386, 541, 95, 566, 541, 541, 95, 566, 541, 541,
6115  541, 544, 541, 541, 541, 541, 541, 541, 566, 566,
6116  541, 541, 95, 566, 541, 131, 618, 619, 618, 541,
6117  30, 175, 324, 541, 541, 387, 387, 756, 566, 566,
6118  541, 541, 387, 390, 387, 272, 386, 812, 813, 541,
6119  391, 392, 562, 785, 541, 541, 541, 543, 121, 212,
6120  215, 327, 336, 9, 13, 543, 546, 544, 544, 386,
6121  547, 544, 22, 163, 179, 249, 544, 544, 544, 544,
6122  544, 159, 544, 159, 544, 544, 544, 544, 544, 762,
6123  763, 767, 547, 552, 766, 154, 390, 323, 272, 279,
6124  349, 350, 386, 408, 674, 677, 803, 9, 95, 811,
6125  390, 526, 541, 754, 766, 390, 135, 183, 221, 278,
6126  778, 779, 782, 783, 759, 380, 415, 759, 763, 541,
6127  187, 216, 330, 642, 643, 708, 766, 706, 708, 759,
6128  708, 708, 285, 694, 695, 756, 228, 635, 641, 810,
6129  47, 494, 658, 88, 255, 411, 412, 413, 425, 767,
6130  398, 766, 361, 623, 759, 185, 674, 390, 566, 387,
6131  567, 541, 104, 360, 571, 14, 387, 390, 387, 387,
6132  390, 557, 387, 380, 390, 390, 387, 387, 387, 387,
6133  387, 132, 559, 387, 390, 390, 390, 379, 541, 390,
6134  566, 387, 387, 387, 566, 387, 390, 387, 387, 163,
6135  387, 390, 390, 390, 390, 387, 387, 387, 390, 132,
6136  390, 566, 387, 387, 390, 390, 387, 132, 541, 132,
6137  541, 132, 541, 132, 387, 390, 387, 387, 387, 387,
6138  390, 387, 569, 591, 592, 593, 272, 386, 521, 334,
6139  817, 389, 766, 135, 183, 278, 781, 280, 121, 215,
6140  327, 336, 386, 12, 541, 815, 115, 627, 544, 386,
6141  547, 544, 541, 541, 537, 553, 554, 555, 391, 316,
6142  765, 517, 759, 409, 675, 386, 680, 685, 680, 387,
6143  408, 676, 753, 754, 756, 678, 806, 536, 132, 160,
6144  527, 528, 634, 635, 651, 538, 538, 391, 776, 325,
6145  786, 787, 392, 784, 706, 387, 766, 219, 390, 708,
6146  706, 390, 693, 280, 370, 683, 32, 639, 370, 684,
6147  6, 10, 18, 40, 51, 62, 88, 93, 94, 99,
6148  105, 110, 122, 127, 151, 201, 228, 251, 255, 266,
6149  417, 419, 420, 423, 424, 467, 496, 498, 499, 500,
6150  631, 767, 69, 763, 370, 390, 412, 390, 412, 370,
6151  179, 386, 401, 406, 416, 418, 419, 481, 482, 624,
6152  634, 656, 220, 690, 159, 541, 387, 541, 318, 541,
6153  541, 107, 24, 28, 42, 74, 77, 85, 161, 283,
6154  322, 338, 568, 541, 568, 569, 387, 159, 159, 665,
6155  541, 569, 541, 541, 541, 541, 387, 541, 387, 387,
6156  541, 541, 541, 541, 541, 569, 159, 541, 541, 541,
6157  387, 541, 541, 541, 132, 541, 132, 541, 132, 541,
6158  541, 541, 387, 529, 592, 521, 387, 811, 391, 391,
6159  391, 785, 541, 815, 543, 387, 390, 387, 547, 12,
6160  541, 815, 627, 617, 617, 541, 387, 390, 766, 726,
6161  529, 681, 682, 756, 686, 390, 386, 677, 387, 387,
6162  390, 804, 519, 272, 386, 388, 573, 574, 575, 576,
6163  577, 586, 587, 601, 652, 129, 185, 534, 651, 640,
6164  641, 528, 14, 539, 763, 766, 380, 766, 165, 683,
6165  392, 785, 708, 113, 358, 643, 643, 623, 695, 623,
6166  87, 541, 689, 636, 87, 465, 466, 767, 50, 60,
6167  153, 171, 432, 435, 436, 475, 477, 504, 504, 684,
6168  504, 684, 323, 69, 763, 169, 311, 128, 237, 477,
6169  504, 169, 370, 370, 311, 504, 32, 14, 323, 507,
6170  370, 370, 417, 41, 42, 47, 421, 390, 386, 391,
6171  431, 437, 758, 766, 370, 540, 121, 327, 412, 412,
6172  84, 125, 187, 216, 330, 646, 767, 759, 406, 407,
6173  408, 429, 430, 431, 432, 416, 14, 150, 254, 403,
6174  732, 390, 418, 343, 485, 220, 541, 180, 644, 101,
6175  541, 387, 541, 318, 386, 446, 446, 386, 444, 445,
6176  161, 161, 387, 387, 558, 541, 541, 387, 565, 635,
6177  390, 390, 387, 390, 387, 387, 387, 387, 390, 387,
6178  387, 541, 387, 129, 387, 387, 390, 390, 390, 387,
6179  541, 387, 541, 387, 541, 387, 387, 387, 535, 387,
6180  814, 391, 491, 387, 569, 543, 387, 390, 387, 538,
6181  555, 150, 254, 731, 535, 390, 683, 687, 688, 689,
6182  685, 679, 677, 753, 600, 766, 65, 155, 168, 176,
6183  207, 261, 302, 585, 623, 390, 759, 600, 100, 231,
6184  647, 648, 653, 339, 163, 763, 766, 391, 177, 9,
6185  24, 87, 220, 541, 789, 781, 683, 634, 541, 637,
6186  755, 490, 758, 44, 128, 237, 335, 434, 476, 433,
6187  434, 490, 758, 646, 758, 763, 466, 540, 171, 171,
6188  758, 758, 767, 763, 758, 632, 633, 756, 759, 121,
6189  327, 54, 55, 87, 102, 124, 247, 426, 427, 279,
6190  684, 684, 500, 429, 766, 7, 123, 506, 248, 433,
6191  469, 438, 391, 646, 768, 387, 387, 387, 390, 14,
6192  14, 386, 407, 418, 31, 138, 487, 759, 643, 691,
6193  617, 541, 216, 216, 387, 617, 617, 274, 564, 541,
6194  541, 569, 541, 617, 541, 541, 541, 541, 387, 387,
6195  387, 594, 812, 766, 387, 569, 539, 160, 410, 682,
6196  689, 387, 390, 807, 588, 595, 600, 573, 168, 168,
6197  230, 602, 168, 176, 261, 602, 586, 573, 137, 628,
6198  575, 14, 620, 621, 597, 598, 765, 765, 392, 649,
6199  650, 281, 380, 244, 252, 275, 788, 787, 541, 644,
6200  390, 15, 90, 638, 541, 171, 171, 477, 478, 490,
6201  482, 99, 279, 501, 490, 502, 390, 638, 466, 87,
6202  347, 422, 387, 766, 759, 23, 27, 28, 42, 74,
6203  77, 85, 97, 111, 124, 161, 167, 217, 246, 276,
6204  317, 321, 322, 348, 351, 352, 439, 441, 442, 443,
6205  766, 416, 402, 416, 430, 407, 404, 386, 171, 387,
6206  387, 387, 390, 387, 387, 746, 387, 387, 390, 387,
6207  387, 387, 387, 387, 387, 387, 428, 528, 640, 387,
6208  727, 428, 689, 334, 387, 634, 596, 389, 168, 586,
6209  602, 602, 168, 220, 220, 343, 32, 139, 625, 766,
6210  611, 612, 529, 654, 785, 390, 199, 52, 331, 244,
6211  683, 755, 490, 482, 386, 87, 87, 437, 439, 633,
6212  386, 470, 386, 448, 453, 454, 47, 87, 212, 215,
6213  237, 335, 355, 451, 452, 455, 456, 457, 468, 87,
6214  220, 451, 452, 461, 462, 463, 453, 444, 235, 386,
6215  445, 450, 440, 444, 448, 453, 444, 450, 455, 386,
6216  461, 453, 453, 386, 51, 464, 386, 18, 87, 276,
6217  451, 452, 458, 459, 460, 458, 391, 807, 403, 387,
6218  804, 488, 489, 766, 339, 216, 541, 534, 534, 313,
6219  811, 621, 640, 576, 573, 586, 168, 168, 573, 586,
6220  579, 578, 580, 629, 755, 626, 634, 609, 610, 535,
6221  49, 733, 650, 789, 638, 386, 386, 488, 77, 321,
6222  378, 379, 747, 748, 506, 464, 471, 766, 189, 472,
6223  216, 283, 338, 447, 87, 451, 452, 87, 451, 452,
6224  465, 747, 215, 171, 457, 171, 77, 213, 215, 321,
6225  745, 751, 752, 339, 463, 458, 450, 216, 386, 458,
6226  447, 458, 216, 216, 763, 216, 25, 140, 215, 378,
6227  379, 745, 749, 752, 87, 460, 766, 405, 387, 390,
6228  638, 386, 696, 697, 756, 387, 387, 759, 589, 220,
6229  582, 586, 586, 220, 584, 541, 541, 386, 363, 390,
6230  630, 638, 541, 640, 127, 150, 342, 604, 605, 608,
6231  599, 106, 114, 227, 315, 734, 735, 181, 736, 488,
6232  488, 387, 752, 752, 503, 387, 390, 133, 233, 284,
6233  220, 473, 387, 369, 449, 747, 121, 215, 327, 750,
6234  745, 540, 745, 213, 387, 492, 746, 449, 387, 387,
6235  387, 752, 752, 350, 807, 51, 170, 483, 484, 485,
6236  486, 489, 216, 390, 683, 728, 812, 581, 343, 583,
6237  343, 616, 766, 755, 477, 477, 605, 428, 32, 32,
6238  106, 32, 735, 295, 315, 737, 738, 387, 387, 483,
6239  506, 766, 89, 339, 540, 387, 390, 461, 453, 455,
6240  763, 684, 486, 638, 387, 697, 689, 733, 590, 541,
6241  386, 541, 386, 387, 390, 638, 129, 603, 603, 746,
6242  746, 32, 746, 32, 32, 738, 469, 483, 34, 214,
6243  257, 279, 474, 474, 455, 746, 84, 125, 140, 187,
6244  216, 330, 645, 736, 634, 616, 616, 766, 137, 168,
6245  228, 607, 606, 746, 746, 746, 4, 87, 215, 220,
6246  220, 150, 739, 640, 387, 387, 32, 32, 386, 386,
6247  339, 89, 216, 386, 741, 237, 613, 614, 615, 766,
6248  615, 474, 474, 181, 265, 740, 387, 392, 742, 743,
6249  756, 279, 744, 387, 390, 387, 785, 387, 390, 696,
6250  614, 743
6251 };
6252 
6253 #define yyerrok (yyerrstatus = 0)
6254 #define yyclearin (yychar = YYEMPTY)
6255 #define YYEMPTY (-2)
6256 #define YYEOF 0
6257 
6258 #define YYACCEPT goto yyacceptlab
6259 #define YYABORT goto yyabortlab
6260 #define YYERROR goto yyerrorlab
6261 
6262 
6263 /* Like YYERROR except do call yyerror. This remains here temporarily
6264  to ease the transition to the new meaning of YYERROR, for GCC.
6265  Once GCC version 2 has supplanted version 1, this can go. However,
6266  YYFAIL appears to be in use. Nevertheless, it is formally deprecated
6267  in Bison 2.4.2's NEWS entry, where a plan to phase it out is
6268  discussed. */
6269 
6270 #define YYFAIL goto yyerrlab
6271 #if defined YYFAIL
6272  /* This is here to suppress warnings from the GCC cpp's
6273  -Wunused-macros. Normally we don't worry about that warning, but
6274  some users do, and we want to make it easy for users to remove
6275  YYFAIL uses, which will produce warnings from Bison 2.5. */
6276 #endif
6277 
6278 #define YYRECOVERING() (!!yyerrstatus)
6279 
6280 #define YYBACKUP(Token, Value) \
6281 do \
6282  if (yychar == YYEMPTY && yylen == 1) \
6283  { \
6284  yychar = (Token); \
6285  yylval = (Value); \
6286  YYPOPSTACK (1); \
6287  goto yybackup; \
6288  } \
6289  else \
6290  { \
6291  yyerror (session, YY_("syntax error: cannot back up")); \
6292  YYERROR; \
6293  } \
6294 while (YYID (0))
6295 
6296 
6297 #define YYTERROR 1
6298 #define YYERRCODE 256
6299 
6300 
6301 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
6302  If N is 0, then set CURRENT to the empty location which ends
6303  the previous symbol: RHS[0] (always defined). */
6304 
6305 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
6306 #ifndef YYLLOC_DEFAULT
6307 # define YYLLOC_DEFAULT(Current, Rhs, N) \
6308  do \
6309  if (YYID (N)) \
6310  { \
6311  (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
6312  (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
6313  (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
6314  (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
6315  } \
6316  else \
6317  { \
6318  (Current).first_line = (Current).last_line = \
6319  YYRHSLOC (Rhs, 0).last_line; \
6320  (Current).first_column = (Current).last_column = \
6321  YYRHSLOC (Rhs, 0).last_column; \
6322  } \
6323  while (YYID (0))
6324 #endif
6325 
6326 
6327 /* This macro is provided for backward compatibility. */
6328 
6329 #ifndef YY_LOCATION_PRINT
6330 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
6331 #endif
6332 
6333 
6334 /* YYLEX -- calling `yylex' with the right arguments. */
6335 
6336 #ifdef YYLEX_PARAM
6337 # define YYLEX yylex (&yylval, YYLEX_PARAM)
6338 #else
6339 # define YYLEX yylex (&yylval, session)
6340 #endif
6341 
6342 /* Enable debugging if requested. */
6343 #if YYDEBUG
6344 
6345 # ifndef YYFPRINTF
6346 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
6347 # define YYFPRINTF fprintf
6348 # endif
6349 
6350 # define YYDPRINTF(Args) \
6351 do { \
6352  if (yydebug) \
6353  YYFPRINTF Args; \
6354 } while (YYID (0))
6355 
6356 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
6357 do { \
6358  if (yydebug) \
6359  { \
6360  YYFPRINTF (stderr, "%s ", Title); \
6361  yy_symbol_print (stderr, \
6362  Type, Value, session); \
6363  YYFPRINTF (stderr, "\n"); \
6364  } \
6365 } while (YYID (0))
6366 
6367 
6368 /*--------------------------------.
6369 | Print this symbol on YYOUTPUT. |
6370 `--------------------------------*/
6371 
6372 /*ARGSUSED*/
6373 #if (defined __STDC__ || defined __C99__FUNC__ \
6374  || defined __cplusplus || defined _MSC_VER)
6375 static void
6376 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, drizzled::Session *session)
6377 #else
6378 static void
6379 yy_symbol_value_print (yyoutput, yytype, yyvaluep, session)
6380  FILE *yyoutput;
6381  int yytype;
6382  YYSTYPE const * const yyvaluep;
6383  drizzled::Session *session;
6384 #endif
6385 {
6386  if (!yyvaluep)
6387  return;
6388  YYUSE (session);
6389 # ifdef YYPRINT
6390  if (yytype < YYNTOKENS)
6391  YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
6392 # else
6393  YYUSE (yyoutput);
6394 # endif
6395  switch (yytype)
6396  {
6397  default:
6398  break;
6399  }
6400 }
6401 
6402 
6403 /*--------------------------------.
6404 | Print this symbol on YYOUTPUT. |
6405 `--------------------------------*/
6406 
6407 #if (defined __STDC__ || defined __C99__FUNC__ \
6408  || defined __cplusplus || defined _MSC_VER)
6409 static void
6410 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, drizzled::Session *session)
6411 #else
6412 static void
6413 yy_symbol_print (yyoutput, yytype, yyvaluep, session)
6414  FILE *yyoutput;
6415  int yytype;
6416  YYSTYPE const * const yyvaluep;
6417  drizzled::Session *session;
6418 #endif
6419 {
6420  if (yytype < YYNTOKENS)
6421  YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
6422  else
6423  YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
6424 
6425  yy_symbol_value_print (yyoutput, yytype, yyvaluep, session);
6426  YYFPRINTF (yyoutput, ")");
6427 }
6428 
6429 /*------------------------------------------------------------------.
6430 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
6431 | TOP (included). |
6432 `------------------------------------------------------------------*/
6433 
6434 #if (defined __STDC__ || defined __C99__FUNC__ \
6435  || defined __cplusplus || defined _MSC_VER)
6436 static void
6437 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
6438 #else
6439 static void
6440 yy_stack_print (yybottom, yytop)
6441  yytype_int16 *yybottom;
6442  yytype_int16 *yytop;
6443 #endif
6444 {
6445  YYFPRINTF (stderr, "Stack now");
6446  for (; yybottom <= yytop; yybottom++)
6447  {
6448  int yybot = *yybottom;
6449  YYFPRINTF (stderr, " %d", yybot);
6450  }
6451  YYFPRINTF (stderr, "\n");
6452 }
6453 
6454 # define YY_STACK_PRINT(Bottom, Top) \
6455 do { \
6456  if (yydebug) \
6457  yy_stack_print ((Bottom), (Top)); \
6458 } while (YYID (0))
6459 
6460 
6461 /*------------------------------------------------.
6462 | Report that the YYRULE is going to be reduced. |
6463 `------------------------------------------------*/
6464 
6465 #if (defined __STDC__ || defined __C99__FUNC__ \
6466  || defined __cplusplus || defined _MSC_VER)
6467 static void
6468 yy_reduce_print (YYSTYPE *yyvsp, int yyrule, drizzled::Session *session)
6469 #else
6470 static void
6471 yy_reduce_print (yyvsp, yyrule, session)
6472  YYSTYPE *yyvsp;
6473  int yyrule;
6474  drizzled::Session *session;
6475 #endif
6476 {
6477  int yynrhs = yyr2[yyrule];
6478  int yyi;
6479  unsigned long int yylno = yyrline[yyrule];
6480  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
6481  yyrule - 1, yylno);
6482  /* The symbols being reduced. */
6483  for (yyi = 0; yyi < yynrhs; yyi++)
6484  {
6485  YYFPRINTF (stderr, " $%d = ", yyi + 1);
6486  yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
6487  &(yyvsp[(yyi + 1) - (yynrhs)])
6488  , session);
6489  YYFPRINTF (stderr, "\n");
6490  }
6491 }
6492 
6493 # define YY_REDUCE_PRINT(Rule) \
6494 do { \
6495  if (yydebug) \
6496  yy_reduce_print (yyvsp, Rule, session); \
6497 } while (YYID (0))
6498 
6499 /* Nonzero means print parse trace. It is left uninitialized so that
6500  multiple parsers can coexist. */
6501 int yydebug;
6502 #else /* !YYDEBUG */
6503 # define YYDPRINTF(Args)
6504 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
6505 # define YY_STACK_PRINT(Bottom, Top)
6506 # define YY_REDUCE_PRINT(Rule)
6507 #endif /* !YYDEBUG */
6508 
6509 
6510 /* YYINITDEPTH -- initial size of the parser's stacks. */
6511 #ifndef YYINITDEPTH
6512 # define YYINITDEPTH 200
6513 #endif
6514 
6515 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
6516  if the built-in stack extension method is used).
6517 
6518  Do not make this value too large; the results are undefined if
6519  YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
6520  evaluated with infinite-precision integer arithmetic. */
6521 
6522 #ifndef YYMAXDEPTH
6523 # define YYMAXDEPTH 10000
6524 #endif
6525 
6526 
6527 #if YYERROR_VERBOSE
6528 
6529 # ifndef yystrlen
6530 # if defined __GLIBC__ && defined _STRING_H
6531 # define yystrlen strlen
6532 # else
6533 /* Return the length of YYSTR. */
6534 #if (defined __STDC__ || defined __C99__FUNC__ \
6535  || defined __cplusplus || defined _MSC_VER)
6536 static YYSIZE_T
6537 yystrlen (const char *yystr)
6538 #else
6539 static YYSIZE_T
6540 yystrlen (yystr)
6541  const char *yystr;
6542 #endif
6543 {
6544  YYSIZE_T yylen;
6545  for (yylen = 0; yystr[yylen]; yylen++)
6546  continue;
6547  return yylen;
6548 }
6549 # endif
6550 # endif
6551 
6552 # ifndef yystpcpy
6553 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
6554 # define yystpcpy stpcpy
6555 # else
6556 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
6557  YYDEST. */
6558 #if (defined __STDC__ || defined __C99__FUNC__ \
6559  || defined __cplusplus || defined _MSC_VER)
6560 static char *
6561 yystpcpy (char *yydest, const char *yysrc)
6562 #else
6563 static char *
6564 yystpcpy (yydest, yysrc)
6565  char *yydest;
6566  const char *yysrc;
6567 #endif
6568 {
6569  char *yyd = yydest;
6570  const char *yys = yysrc;
6571 
6572  while ((*yyd++ = *yys++) != '\0')
6573  continue;
6574 
6575  return yyd - 1;
6576 }
6577 # endif
6578 # endif
6579 
6580 # ifndef yytnamerr
6581 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
6582  quotes and backslashes, so that it's suitable for yyerror. The
6583  heuristic is that double-quoting is unnecessary unless the string
6584  contains an apostrophe, a comma, or backslash (other than
6585  backslash-backslash). YYSTR is taken from yytname. If YYRES is
6586  null, do not copy; instead, return the length of what the result
6587  would have been. */
6588 static YYSIZE_T
6589 yytnamerr (char *yyres, const char *yystr)
6590 {
6591  if (*yystr == '"')
6592  {
6593  YYSIZE_T yyn = 0;
6594  char const *yyp = yystr;
6595 
6596  for (;;)
6597  switch (*++yyp)
6598  {
6599  case '\'':
6600  case ',':
6601  goto do_not_strip_quotes;
6602 
6603  case '\\':
6604  if (*++yyp != '\\')
6605  goto do_not_strip_quotes;
6606  /* Fall through. */
6607  default:
6608  if (yyres)
6609  yyres[yyn] = *yyp;
6610  yyn++;
6611  break;
6612 
6613  case '"':
6614  if (yyres)
6615  yyres[yyn] = '\0';
6616  return yyn;
6617  }
6618  do_not_strip_quotes: ;
6619  }
6620 
6621  if (! yyres)
6622  return yystrlen (yystr);
6623 
6624  return yystpcpy (yyres, yystr) - yyres;
6625 }
6626 # endif
6627 
6628 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
6629  about the unexpected token YYTOKEN for the state stack whose top is
6630  YYSSP.
6631 
6632  Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
6633  not large enough to hold the message. In that case, also set
6634  *YYMSG_ALLOC to the required number of bytes. Return 2 if the
6635  required number of bytes is too large to store. */
6636 static int
6637 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
6638  yytype_int16 *yyssp, int yytoken)
6639 {
6640  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
6641  YYSIZE_T yysize = yysize0;
6642  YYSIZE_T yysize1;
6643  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
6644  /* Internationalized format string. */
6645  const char *yyformat = 0;
6646  /* Arguments of yyformat. */
6647  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
6648  /* Number of reported tokens (one for the "unexpected", one per
6649  "expected"). */
6650  int yycount = 0;
6651 
6652  /* There are many possibilities here to consider:
6653  - Assume YYFAIL is not used. It's too flawed to consider. See
6654  <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
6655  for details. YYERROR is fine as it does not invoke this
6656  function.
6657  - If this state is a consistent state with a default action, then
6658  the only way this function was invoked is if the default action
6659  is an error action. In that case, don't check for expected
6660  tokens because there are none.
6661  - The only way there can be no lookahead present (in yychar) is if
6662  this state is a consistent state with a default action. Thus,
6663  detecting the absence of a lookahead is sufficient to determine
6664  that there is no unexpected or expected token to report. In that
6665  case, just report a simple "syntax error".
6666  - Don't assume there isn't a lookahead just because this state is a
6667  consistent state with a default action. There might have been a
6668  previous inconsistent state, consistent state with a non-default
6669  action, or user semantic action that manipulated yychar.
6670  - Of course, the expected token list depends on states to have
6671  correct lookahead information, and it depends on the parser not
6672  to perform extra reductions after fetching a lookahead from the
6673  scanner and before detecting a syntax error. Thus, state merging
6674  (from LALR or IELR) and default reductions corrupt the expected
6675  token list. However, the list is correct for canonical LR with
6676  one exception: it will still contain any token that will not be
6677  accepted due to an error action in a later state.
6678  */
6679  if (yytoken != YYEMPTY)
6680  {
6681  int yyn = yypact[*yyssp];
6682  yyarg[yycount++] = yytname[yytoken];
6683  if (!yypact_value_is_default (yyn))
6684  {
6685  /* Start YYX at -YYN if negative to avoid negative indexes in
6686  YYCHECK. In other words, skip the first -YYN actions for
6687  this state because they are default actions. */
6688  int yyxbegin = yyn < 0 ? -yyn : 0;
6689  /* Stay within bounds of both yycheck and yytname. */
6690  int yychecklim = YYLAST - yyn + 1;
6691  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
6692  int yyx;
6693 
6694  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
6695  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
6696  && !yytable_value_is_error (yytable[yyx + yyn]))
6697  {
6698  if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
6699  {
6700  yycount = 1;
6701  yysize = yysize0;
6702  break;
6703  }
6704  yyarg[yycount++] = yytname[yyx];
6705  yysize1 = yysize + yytnamerr (0, yytname[yyx]);
6706  if (! (yysize <= yysize1
6707  && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
6708  return 2;
6709  yysize = yysize1;
6710  }
6711  }
6712  }
6713 
6714  switch (yycount)
6715  {
6716 # define YYCASE_(N, S) \
6717  case N: \
6718  yyformat = S; \
6719  break
6720  YYCASE_(0, YY_("syntax error"));
6721  YYCASE_(1, YY_("syntax error, unexpected %s"));
6722  YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
6723  YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
6724  YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
6725  YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
6726 # undef YYCASE_
6727  }
6728 
6729  yysize1 = yysize + yystrlen (yyformat);
6730  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
6731  return 2;
6732  yysize = yysize1;
6733 
6734  if (*yymsg_alloc < yysize)
6735  {
6736  *yymsg_alloc = 2 * yysize;
6737  if (! (yysize <= *yymsg_alloc
6738  && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
6739  *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
6740  return 1;
6741  }
6742 
6743  /* Avoid sprintf, as that infringes on the user's name space.
6744  Don't have undefined behavior even if the translation
6745  produced a string with the wrong number of "%s"s. */
6746  {
6747  char *yyp = *yymsg;
6748  int yyi = 0;
6749  while ((*yyp = *yyformat) != '\0')
6750  if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
6751  {
6752  yyp += yytnamerr (yyp, yyarg[yyi++]);
6753  yyformat += 2;
6754  }
6755  else
6756  {
6757  yyp++;
6758  yyformat++;
6759  }
6760  }
6761  return 0;
6762 }
6763 #endif /* YYERROR_VERBOSE */
6764 
6765 /*-----------------------------------------------.
6766 | Release the memory associated to this symbol. |
6767 `-----------------------------------------------*/
6768 
6769 /*ARGSUSED*/
6770 #if (defined __STDC__ || defined __C99__FUNC__ \
6771  || defined __cplusplus || defined _MSC_VER)
6772 static void
6773 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, drizzled::Session *session)
6774 #else
6775 static void
6776 yydestruct (yymsg, yytype, yyvaluep, session)
6777  const char *yymsg;
6778  int yytype;
6779  YYSTYPE *yyvaluep;
6780  drizzled::Session *session;
6781 #endif
6782 {
6783  YYUSE (yyvaluep);
6784  YYUSE (session);
6785 
6786  if (!yymsg)
6787  yymsg = "Deleting";
6788  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
6789 
6790  switch (yytype)
6791  {
6792 
6793  default:
6794  break;
6795  }
6796 }
6797 
6798 
6799 /* Prevent warnings from -Wmissing-prototypes. */
6800 #ifdef YYPARSE_PARAM
6801 #if defined __STDC__ || defined __cplusplus
6802 int yyparse (void *YYPARSE_PARAM);
6803 #else
6804 int yyparse ();
6805 #endif
6806 #else /* ! YYPARSE_PARAM */
6807 #if defined __STDC__ || defined __cplusplus
6808 int yyparse (drizzled::Session *session);
6809 #else
6810 int yyparse ();
6811 #endif
6812 #endif /* ! YYPARSE_PARAM */
6813 
6814 
6815 /*----------.
6816 | yyparse. |
6817 `----------*/
6818 
6819 #ifdef YYPARSE_PARAM
6820 #if (defined __STDC__ || defined __C99__FUNC__ \
6821  || defined __cplusplus || defined _MSC_VER)
6822 int
6823 yyparse (void *YYPARSE_PARAM)
6824 #else
6825 int
6826 yyparse (YYPARSE_PARAM)
6827  void *YYPARSE_PARAM;
6828 #endif
6829 #else /* ! YYPARSE_PARAM */
6830 #if (defined __STDC__ || defined __C99__FUNC__ \
6831  || defined __cplusplus || defined _MSC_VER)
6832 int
6833 yyparse (drizzled::Session *session)
6834 #else
6835 int
6836 yyparse (session)
6837  drizzled::Session *session;
6838 #endif
6839 #endif
6840 {
6841 /* The lookahead symbol. */
6842 int yychar;
6843 
6844 /* The semantic value of the lookahead symbol. */
6845 YYSTYPE yylval;
6846 
6847  /* Number of syntax errors so far. */
6848  int yynerrs;
6849 
6850  int yystate;
6851  /* Number of tokens to shift before error messages enabled. */
6852  int yyerrstatus;
6853 
6854  /* The stacks and their tools:
6855  `yyss': related to states.
6856  `yyvs': related to semantic values.
6857 
6858  Refer to the stacks thru separate pointers, to allow yyoverflow
6859  to reallocate them elsewhere. */
6860 
6861  /* The state stack. */
6862  yytype_int16 yyssa[YYINITDEPTH];
6863  yytype_int16 *yyss;
6864  yytype_int16 *yyssp;
6865 
6866  /* The semantic value stack. */
6867  YYSTYPE yyvsa[YYINITDEPTH];
6868  YYSTYPE *yyvs;
6869  YYSTYPE *yyvsp;
6870 
6871  YYSIZE_T yystacksize;
6872 
6873  int yyn;
6874  int yyresult;
6875  /* Lookahead token as an internal (translated) token number. */
6876  int yytoken;
6877  /* The variables used to return semantic value and location from the
6878  action routines. */
6879  YYSTYPE yyval;
6880 
6881 #if YYERROR_VERBOSE
6882  /* Buffer for error messages, and its allocated size. */
6883  char yymsgbuf[128];
6884  char *yymsg = yymsgbuf;
6885  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
6886 #endif
6887 
6888 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
6889 
6890  /* The number of symbols on the RHS of the reduced rule.
6891  Keep to zero when no symbol should be popped. */
6892  int yylen = 0;
6893 
6894  yytoken = 0;
6895  yyss = yyssa;
6896  yyvs = yyvsa;
6897  yystacksize = YYINITDEPTH;
6898 
6899  YYDPRINTF ((stderr, "Starting parse\n"));
6900 
6901  yystate = 0;
6902  yyerrstatus = 0;
6903  yynerrs = 0;
6904  yychar = YYEMPTY; /* Cause a token to be read. */
6905 
6906  /* Initialize stack pointers.
6907  Waste one element of value and location stack
6908  so that they stay on the same level as the state stack.
6909  The wasted elements are never initialized. */
6910  yyssp = yyss;
6911  yyvsp = yyvs;
6912 
6913  goto yysetstate;
6914 
6915 /*------------------------------------------------------------.
6916 | yynewstate -- Push a new state, which is found in yystate. |
6917 `------------------------------------------------------------*/
6918  yynewstate:
6919  /* In all cases, when you get here, the value and location stacks
6920  have just been pushed. So pushing a state here evens the stacks. */
6921  yyssp++;
6922 
6923  yysetstate:
6924  *yyssp = yystate;
6925 
6926  if (yyss + yystacksize - 1 <= yyssp)
6927  {
6928  /* Get the current used size of the three stacks, in elements. */
6929  YYSIZE_T yysize = yyssp - yyss + 1;
6930 
6931 #ifdef yyoverflow
6932  {
6933  /* Give user a chance to reallocate the stack. Use copies of
6934  these so that the &'s don't force the real ones into
6935  memory. */
6936  YYSTYPE *yyvs1 = yyvs;
6937  yytype_int16 *yyss1 = yyss;
6938 
6939  /* Each stack pointer address is followed by the size of the
6940  data in use in that stack, in bytes. This used to be a
6941  conditional around just the two extra args, but that might
6942  be undefined if yyoverflow is a macro. */
6943  yyoverflow (YY_("memory exhausted"),
6944  &yyss1, yysize * sizeof (*yyssp),
6945  &yyvs1, yysize * sizeof (*yyvsp),
6946  &yystacksize);
6947 
6948  yyss = yyss1;
6949  yyvs = yyvs1;
6950  }
6951 #else /* no yyoverflow */
6952 # ifndef YYSTACK_RELOCATE
6953  goto yyexhaustedlab;
6954 # else
6955  /* Extend the stack our own way. */
6956  if (YYMAXDEPTH <= yystacksize)
6957  goto yyexhaustedlab;
6958  yystacksize *= 2;
6959  if (YYMAXDEPTH < yystacksize)
6960  yystacksize = YYMAXDEPTH;
6961 
6962  {
6963  yytype_int16 *yyss1 = yyss;
6964  union yyalloc *yyptr =
6965  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
6966  if (! yyptr)
6967  goto yyexhaustedlab;
6968  YYSTACK_RELOCATE (yyss_alloc, yyss);
6969  YYSTACK_RELOCATE (yyvs_alloc, yyvs);
6970 # undef YYSTACK_RELOCATE
6971  if (yyss1 != yyssa)
6972  YYSTACK_FREE (yyss1);
6973  }
6974 # endif
6975 #endif /* no yyoverflow */
6976 
6977  yyssp = yyss + yysize - 1;
6978  yyvsp = yyvs + yysize - 1;
6979 
6980  YYDPRINTF ((stderr, "Stack size increased to %lu\n",
6981  (unsigned long int) yystacksize));
6982 
6983  if (yyss + yystacksize - 1 <= yyssp)
6984  YYABORT;
6985  }
6986 
6987  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
6988 
6989  if (yystate == YYFINAL)
6990  YYACCEPT;
6991 
6992  goto yybackup;
6993 
6994 /*-----------.
6995 | yybackup. |
6996 `-----------*/
6997 yybackup:
6998 
6999  /* Do appropriate processing given the current state. Read a
7000  lookahead token if we need one and don't already have one. */
7001 
7002  /* First try to decide what to do without reference to lookahead token. */
7003  yyn = yypact[yystate];
7004  if (yypact_value_is_default (yyn))
7005  goto yydefault;
7006 
7007  /* Not known => get a lookahead token if don't already have one. */
7008 
7009  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
7010  if (yychar == YYEMPTY)
7011  {
7012  YYDPRINTF ((stderr, "Reading a token: "));
7013  yychar = YYLEX;
7014  }
7015 
7016  if (yychar <= YYEOF)
7017  {
7018  yychar = yytoken = YYEOF;
7019  YYDPRINTF ((stderr, "Now at end of input.\n"));
7020  }
7021  else
7022  {
7023  yytoken = YYTRANSLATE (yychar);
7024  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
7025  }
7026 
7027  /* If the proper action on seeing token YYTOKEN is to reduce or to
7028  detect an error, take that action. */
7029  yyn += yytoken;
7030  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
7031  goto yydefault;
7032  yyn = yytable[yyn];
7033  if (yyn <= 0)
7034  {
7035  if (yytable_value_is_error (yyn))
7036  goto yyerrlab;
7037  yyn = -yyn;
7038  goto yyreduce;
7039  }
7040 
7041  /* Count tokens shifted since error; after three, turn off error
7042  status. */
7043  if (yyerrstatus)
7044  yyerrstatus--;
7045 
7046  /* Shift the lookahead token. */
7047  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
7048 
7049  /* Discard the shifted token. */
7050  yychar = YYEMPTY;
7051 
7052  yystate = yyn;
7053  *++yyvsp = yylval;
7054 
7055  goto yynewstate;
7056 
7057 
7058 /*-----------------------------------------------------------.
7059 | yydefault -- do the default action for the current state. |
7060 `-----------------------------------------------------------*/
7061 yydefault:
7062  yyn = yydefact[yystate];
7063  if (yyn == 0)
7064  goto yyerrlab;
7065  goto yyreduce;
7066 
7067 
7068 /*-----------------------------.
7069 | yyreduce -- Do a reduction. |
7070 `-----------------------------*/
7071 yyreduce:
7072  /* yyn is the number of a rule to reduce with. */
7073  yylen = yyr2[yyn];
7074 
7075  /* If YYLEN is nonzero, implement the default value of the action:
7076  `$$ = $1'.
7077 
7078  Otherwise, the following line sets YYVAL to garbage.
7079  This behavior is undocumented and Bison
7080  users should not rely upon it. Assigning to YYVAL
7081  unconditionally makes the parser a bit smaller, and it avoids a
7082  GCC warning that YYVAL may be used uninitialized. */
7083  yyval = yyvsp[1-yylen];
7084 
7085 
7086  YY_REDUCE_PRINT (yyn);
7087  switch (yyn)
7088  {
7089  case 2:
7090 
7091 /* Line 1806 of yacc.c */
7092 #line 810 "drizzled/sql_yacc.yy"
7093  {
7094  if (!(YYSession->lex().select_lex.options & OPTION_FOUND_COMMENT))
7095  {
7096  my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
7097  DRIZZLE_YYABORT;
7098  }
7099  else
7100  {
7101  YYSession->lex().statement= new statement::EmptyQuery(YYSession);
7102  }
7103  }
7104  break;
7105 
7106  case 3:
7107 
7108 /* Line 1806 of yacc.c */
7109 #line 821 "drizzled/sql_yacc.yy"
7110  {}
7111  break;
7112 
7113  case 32:
7114 
7115 /* Line 1806 of yacc.c */
7116 #line 863 "drizzled/sql_yacc.yy"
7117  {
7118  Lex.statement= new statement::catalog::Create(YYSession, (yyvsp[(3) - (3)].lex_str));
7119  }
7120  break;
7121 
7122  case 33:
7123 
7124 /* Line 1806 of yacc.c */
7125 #line 867 "drizzled/sql_yacc.yy"
7126  {
7127  Lex.statement= new statement::CreateTable(YYSession, (yyvsp[(5) - (5)].table), (yyvsp[(2) - (5)].num));
7128 
7129  if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(5) - (5)].table), NULL,
7130  TL_OPTION_UPDATING,
7131  TL_WRITE))
7132  DRIZZLE_YYABORT;
7133  Lex.col_list.clear();
7134  }
7135  break;
7136 
7137  case 34:
7138 
7139 /* Line 1806 of yacc.c */
7140 #line 877 "drizzled/sql_yacc.yy"
7141  {
7142  Lex.current_select= &Lex.select_lex;
7143  }
7144  break;
7145 
7146  case 35:
7147 
7148 /* Line 1806 of yacc.c */
7149 #line 881 "drizzled/sql_yacc.yy"
7150  {
7151  Lex.statement= new statement::CreateIndex(YYSession);
7152  }
7153  break;
7154 
7155  case 36:
7156 
7157 /* Line 1806 of yacc.c */
7158 #line 885 "drizzled/sql_yacc.yy"
7159  {
7160  if (not Lex.current_select->add_table_to_list(Lex.session, (yyvsp[(9) - (13)].table),
7161  NULL,
7162  TL_OPTION_UPDATING))
7163  DRIZZLE_YYABORT;
7164 
7165  parser::buildKey(&Lex, (yyvsp[(4) - (13)].key_type), (yyvsp[(6) - (13)].lex_str));
7166  }
7167  break;
7168 
7169  case 37:
7170 
7171 /* Line 1806 of yacc.c */
7172 #line 894 "drizzled/sql_yacc.yy"
7173  {
7174  Lex.statement= new statement::CreateSchema(YYSession);
7175  }
7176  break;
7177 
7178  case 38:
7179 
7180 /* Line 1806 of yacc.c */
7181 #line 898 "drizzled/sql_yacc.yy"
7182  {
7183  Lex.name= (yyvsp[(4) - (6)].lex_str);
7184  }
7185  break;
7186 
7187  case 39:
7188 
7189 /* Line 1806 of yacc.c */
7190 #line 905 "drizzled/sql_yacc.yy"
7191  { }
7192  break;
7193 
7194  case 40:
7195 
7196 /* Line 1806 of yacc.c */
7197 #line 907 "drizzled/sql_yacc.yy"
7198  {
7199  Lex.current_select->set_braces(1);
7200  }
7201  break;
7202 
7203  case 41:
7204 
7205 /* Line 1806 of yacc.c */
7206 #line 910 "drizzled/sql_yacc.yy"
7207  {}
7208  break;
7209 
7210  case 42:
7211 
7212 /* Line 1806 of yacc.c */
7213 #line 912 "drizzled/sql_yacc.yy"
7214  { }
7215  break;
7216 
7217  case 43:
7218 
7219 /* Line 1806 of yacc.c */
7220 #line 914 "drizzled/sql_yacc.yy"
7221  { }
7222  break;
7223 
7224  case 44:
7225 
7226 /* Line 1806 of yacc.c */
7227 #line 916 "drizzled/sql_yacc.yy"
7228  { }
7229  break;
7230 
7231  case 45:
7232 
7233 /* Line 1806 of yacc.c */
7234 #line 920 "drizzled/sql_yacc.yy"
7235  {}
7236  break;
7237 
7238  case 46:
7239 
7240 /* Line 1806 of yacc.c */
7241 #line 922 "drizzled/sql_yacc.yy"
7242  {
7243  Lex.current_select->set_braces(0);
7244  }
7245  break;
7246 
7247  case 47:
7248 
7249 /* Line 1806 of yacc.c */
7250 #line 925 "drizzled/sql_yacc.yy"
7251  {}
7252  break;
7253 
7254  case 48:
7255 
7256 /* Line 1806 of yacc.c */
7257 #line 927 "drizzled/sql_yacc.yy"
7258  {
7259  Lex.current_select->set_braces(1);
7260  }
7261  break;
7262 
7263  case 49:
7264 
7265 /* Line 1806 of yacc.c */
7266 #line 930 "drizzled/sql_yacc.yy"
7267  {}
7268  break;
7269 
7270  case 50:
7271 
7272 /* Line 1806 of yacc.c */
7273 #line 935 "drizzled/sql_yacc.yy"
7274  {
7275  ((statement::CreateTable *)(YYSession->lex().statement))->is_create_table_like= true;
7276 
7277  if (not YYSession->lex().select_lex.add_table_to_list(YYSession, (yyvsp[(2) - (2)].table), NULL, 0, TL_READ))
7278  DRIZZLE_YYABORT;
7279  }
7280  break;
7281 
7282  case 51:
7283 
7284 /* Line 1806 of yacc.c */
7285 #line 945 "drizzled/sql_yacc.yy"
7286  {
7287  }
7288  break;
7289 
7290  case 52:
7291 
7292 /* Line 1806 of yacc.c */
7293 #line 954 "drizzled/sql_yacc.yy"
7294  {
7295  Lex.lock_option= TL_READ;
7296  if (Lex.sql_command == SQLCOM_INSERT)
7297  {
7298  delete Lex.statement;
7299  Lex.statement= new statement::InsertSelect(YYSession);
7300  }
7301  else if (Lex.sql_command == SQLCOM_REPLACE)
7302  {
7303  delete Lex.statement;
7304  Lex.statement= new statement::ReplaceSelect(YYSession);
7305  }
7306  /*
7307  The following work only with the local list, the global list
7308  is created correctly in this case
7309  */
7310  Lex.current_select->table_list.save_and_clear(&Lex.save_list);
7311  init_select(&Lex);
7312  Lex.current_select->parsing_place= SELECT_LIST;
7313  }
7314  break;
7315 
7316  case 53:
7317 
7318 /* Line 1806 of yacc.c */
7319 #line 975 "drizzled/sql_yacc.yy"
7320  {
7321  Lex.current_select->parsing_place= NO_MATTER;
7322  }
7323  break;
7324 
7325  case 54:
7326 
7327 /* Line 1806 of yacc.c */
7328 #line 979 "drizzled/sql_yacc.yy"
7329  {
7330  /*
7331  The following work only with the local list, the global list
7332  is created correctly in this case
7333  */
7334  Lex.current_select->table_list.push_front(&Lex.save_list);
7335  }
7336  break;
7337 
7338  case 55:
7339 
7340 /* Line 1806 of yacc.c */
7341 #line 989 "drizzled/sql_yacc.yy"
7342  {}
7343  break;
7344 
7345  case 63:
7346 
7347 /* Line 1806 of yacc.c */
7348 #line 1004 "drizzled/sql_yacc.yy"
7349  {
7350  statement::CreateSchema *statement= (statement::CreateSchema *)Lex.statement;
7351  statement->schema_message.mutable_engine()->add_options()->set_name((yyvsp[(1) - (1)].lex_str).data());
7352  }
7353  break;
7354 
7355  case 64:
7356 
7357 /* Line 1806 of yacc.c */
7358 #line 1009 "drizzled/sql_yacc.yy"
7359  {
7360  parser::buildReplicationOption(&Lex, true);
7361  }
7362  break;
7363 
7364  case 65:
7365 
7366 /* Line 1806 of yacc.c */
7367 #line 1013 "drizzled/sql_yacc.yy"
7368  {
7369  parser::buildReplicationOption(&Lex, false);
7370  }
7371  break;
7372 
7373  case 66:
7374 
7375 /* Line 1806 of yacc.c */
7376 #line 1017 "drizzled/sql_yacc.yy"
7377  {
7378  parser::buildSchemaDefiner(&Lex, identifier::User((yyvsp[(2) - (2)].lex_str)));
7379  }
7380  break;
7381 
7382  case 67:
7383 
7384 /* Line 1806 of yacc.c */
7385 #line 1021 "drizzled/sql_yacc.yy"
7386  {
7387  parser::buildSchemaDefiner(&Lex, *session->user());
7388  }
7389  break;
7390 
7391  case 68:
7392 
7393 /* Line 1806 of yacc.c */
7394 #line 1025 "drizzled/sql_yacc.yy"
7395  {
7396  parser::buildSchemaOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].lex_str));
7397  }
7398  break;
7399 
7400  case 69:
7401 
7402 /* Line 1806 of yacc.c */
7403 #line 1029 "drizzled/sql_yacc.yy"
7404  {
7405  parser::buildSchemaOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].ulonglong_number));
7406  }
7407  break;
7408 
7409  case 70:
7410 
7411 /* Line 1806 of yacc.c */
7412 #line 1035 "drizzled/sql_yacc.yy"
7413  { (yyval.num)= false; }
7414  break;
7415 
7416  case 71:
7417 
7418 /* Line 1806 of yacc.c */
7419 #line 1036 "drizzled/sql_yacc.yy"
7420  { (yyval.num)= true; }
7421  break;
7422 
7423  case 72:
7424 
7425 /* Line 1806 of yacc.c */
7426 #line 1040 "drizzled/sql_yacc.yy"
7427  { (yyval.boolean)= false; }
7428  break;
7429 
7430  case 73:
7431 
7432 /* Line 1806 of yacc.c */
7433 #line 1041 "drizzled/sql_yacc.yy"
7434  { (yyval.boolean)= true; YYSession->lex().setExists(); }
7435  break;
7436 
7437  case 82:
7438 
7439 /* Line 1806 of yacc.c */
7440 #line 1064 "drizzled/sql_yacc.yy"
7441  {
7442  Lex.table()->mutable_engine()->set_name((yyvsp[(3) - (3)].lex_str).data());
7443  }
7444  break;
7445 
7446  case 83:
7447 
7448 /* Line 1806 of yacc.c */
7449 #line 1068 "drizzled/sql_yacc.yy"
7450  {
7451  Lex.table()->mutable_options()->set_comment((yyvsp[(3) - (3)].lex_str).data());
7452  }
7453  break;
7454 
7455  case 84:
7456 
7457 /* Line 1806 of yacc.c */
7458 #line 1072 "drizzled/sql_yacc.yy"
7459  {
7460  Lex.table()->mutable_options()->set_auto_increment_value((yyvsp[(3) - (3)].ulonglong_number));
7461  }
7462  break;
7463 
7464  case 85:
7465 
7466 /* Line 1806 of yacc.c */
7467 #line 1076 "drizzled/sql_yacc.yy"
7468  {
7469  message::set_is_replicated(*Lex.table(), true);
7470  }
7471  break;
7472 
7473  case 86:
7474 
7475 /* Line 1806 of yacc.c */
7476 #line 1080 "drizzled/sql_yacc.yy"
7477  {
7478  message::set_is_replicated(*Lex.table(), false);
7479  }
7480  break;
7481 
7482  case 87:
7483 
7484 /* Line 1806 of yacc.c */
7485 #line 1084 "drizzled/sql_yacc.yy"
7486  {
7487  message::set_definer(*Lex.table(), identifier::User((yyvsp[(2) - (2)].lex_str)));
7488  }
7489  break;
7490 
7491  case 88:
7492 
7493 /* Line 1806 of yacc.c */
7494 #line 1088 "drizzled/sql_yacc.yy"
7495  {
7496  message::set_definer(*Lex.table(), *session->user());
7497  }
7498  break;
7499 
7500  case 89:
7501 
7502 /* Line 1806 of yacc.c */
7503 #line 1092 "drizzled/sql_yacc.yy"
7504  {
7505  parser::buildEngineOption(&Lex, "ROW_FORMAT", (yyvsp[(3) - (3)].lex_str));
7506  }
7507  break;
7508 
7509  case 90:
7510 
7511 /* Line 1806 of yacc.c */
7512 #line 1096 "drizzled/sql_yacc.yy"
7513  {
7514  parser::buildEngineOption(&Lex, "FILE", (yyvsp[(3) - (3)].lex_str));
7515  }
7516  break;
7517 
7518  case 91:
7519 
7520 /* Line 1806 of yacc.c */
7521 #line 1100 "drizzled/sql_yacc.yy"
7522  {
7523  parser::buildEngineOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].lex_str));
7524  }
7525  break;
7526 
7527  case 92:
7528 
7529 /* Line 1806 of yacc.c */
7530 #line 1104 "drizzled/sql_yacc.yy"
7531  {
7532  parser::buildEngineOption(&Lex, (yyvsp[(1) - (3)].lex_str).data(), (yyvsp[(3) - (3)].ulonglong_number));
7533  }
7534  break;
7535 
7536  case 95:
7537 
7538 /* Line 1806 of yacc.c */
7539 #line 1112 "drizzled/sql_yacc.yy"
7540  {}
7541  break;
7542 
7543  case 96:
7544 
7545 /* Line 1806 of yacc.c */
7546 #line 1113 "drizzled/sql_yacc.yy"
7547  {}
7548  break;
7549 
7550  case 97:
7551 
7552 /* Line 1806 of yacc.c */
7553 #line 1117 "drizzled/sql_yacc.yy"
7554  { }
7555  break;
7556 
7557  case 98:
7558 
7559 /* Line 1806 of yacc.c */
7560 #line 1118 "drizzled/sql_yacc.yy"
7561  { }
7562  break;
7563 
7564  case 99:
7565 
7566 /* Line 1806 of yacc.c */
7567 #line 1123 "drizzled/sql_yacc.yy"
7568  {
7569  }
7570  break;
7571 
7572  case 100:
7573 
7574 /* Line 1806 of yacc.c */
7575 #line 1128 "drizzled/sql_yacc.yy"
7576  {
7577  if (not parser::buildCollation(&Lex, (yyvsp[(4) - (4)].charset)))
7578  {
7579  DRIZZLE_YYABORT;
7580  }
7581  }
7582  break;
7583 
7584  case 101:
7585 
7586 /* Line 1806 of yacc.c */
7587 #line 1138 "drizzled/sql_yacc.yy"
7588  {
7589  ((statement::CreateSchema *)Lex.statement)->schema_message.set_collation((yyvsp[(4) - (4)].charset)->name);
7590  }
7591  break;
7592 
7593  case 102:
7594 
7595 /* Line 1806 of yacc.c */
7596 #line 1144 "drizzled/sql_yacc.yy"
7597  {}
7598  break;
7599 
7600  case 103:
7601 
7602 /* Line 1806 of yacc.c */
7603 #line 1145 "drizzled/sql_yacc.yy"
7604  {}
7605  break;
7606 
7607  case 104:
7608 
7609 /* Line 1806 of yacc.c */
7610 #line 1146 "drizzled/sql_yacc.yy"
7611  {}
7612  break;
7613 
7614  case 105:
7615 
7616 /* Line 1806 of yacc.c */
7617 #line 1147 "drizzled/sql_yacc.yy"
7618  {}
7619  break;
7620 
7621  case 106:
7622 
7623 /* Line 1806 of yacc.c */
7624 #line 1148 "drizzled/sql_yacc.yy"
7625  {}
7626  break;
7627 
7628  case 107:
7629 
7630 /* Line 1806 of yacc.c */
7631 #line 1149 "drizzled/sql_yacc.yy"
7632  {}
7633  break;
7634 
7635  case 108:
7636 
7637 /* Line 1806 of yacc.c */
7638 #line 1154 "drizzled/sql_yacc.yy"
7639  {
7640  (yyval.lex_str).assign(YYSession->mem.strdup((yyvsp[(1) - (1)].symbol).data(), (yyvsp[(1) - (1)].symbol).length), (yyvsp[(1) - (1)].symbol).length);
7641  }
7642  break;
7643 
7644  case 109:
7645 
7646 /* Line 1806 of yacc.c */
7647 #line 1160 "drizzled/sql_yacc.yy"
7648  {}
7649  break;
7650 
7651  case 116:
7652 
7653 /* Line 1806 of yacc.c */
7654 #line 1177 "drizzled/sql_yacc.yy"
7655  {
7656  Lex.col_list.clear(); /* Alloced by memory::sql_alloc */
7657  }
7658  break;
7659 
7660  case 117:
7661 
7662 /* Line 1806 of yacc.c */
7663 #line 1184 "drizzled/sql_yacc.yy"
7664  {
7665  parser::buildKey(&Lex, (yyvsp[(1) - (7)].key_type), (yyvsp[(2) - (7)].lex_str));
7666  }
7667  break;
7668 
7669  case 118:
7670 
7671 /* Line 1806 of yacc.c */
7672 #line 1189 "drizzled/sql_yacc.yy"
7673  {
7674  parser::buildKey(&Lex, (yyvsp[(2) - (8)].key_type), (yyvsp[(3) - (8)].lex_str).data() ? (yyvsp[(3) - (8)].lex_str) : (yyvsp[(1) - (8)].lex_str));
7675  }
7676  break;
7677 
7678  case 119:
7679 
7680 /* Line 1806 of yacc.c */
7681 #line 1193 "drizzled/sql_yacc.yy"
7682  {
7683  parser::buildForeignKey(&Lex, (yyvsp[(1) - (8)].lex_str).data() ? (yyvsp[(1) - (8)].lex_str) : (yyvsp[(4) - (8)].lex_str), (yyvsp[(8) - (8)].table));
7684  }
7685  break;
7686 
7687  case 120:
7688 
7689 /* Line 1806 of yacc.c */
7690 #line 1197 "drizzled/sql_yacc.yy"
7691  {
7692  Lex.col_list.clear(); /* Alloced by memory::sql_alloc */
7693  }
7694  break;
7695 
7696  case 121:
7697 
7698 /* Line 1806 of yacc.c */
7699 #line 1201 "drizzled/sql_yacc.yy"
7700  {
7701  Lex.col_list.clear(); /* Alloced by memory::sql_alloc */
7702  }
7703  break;
7704 
7705  case 125:
7706 
7707 /* Line 1806 of yacc.c */
7708 #line 1216 "drizzled/sql_yacc.yy"
7709  { (yyval.lex_str)= null_lex_string(); }
7710  break;
7711 
7712  case 126:
7713 
7714 /* Line 1806 of yacc.c */
7715 #line 1217 "drizzled/sql_yacc.yy"
7716  { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
7717  break;
7718 
7719  case 127:
7720 
7721 /* Line 1806 of yacc.c */
7722 #line 1221 "drizzled/sql_yacc.yy"
7723  { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
7724  break;
7725 
7726  case 128:
7727 
7728 /* Line 1806 of yacc.c */
7729 #line 1226 "drizzled/sql_yacc.yy"
7730  {
7731  parser::buildCreateFieldIdent(&Lex);
7732  }
7733  break;
7734 
7735  case 129:
7736 
7737 /* Line 1806 of yacc.c */
7738 #line 1230 "drizzled/sql_yacc.yy"
7739  {
7740  statement::CreateTable *statement= (statement::CreateTable*)Lex.statement;
7741 
7742  if (Lex.field())
7743  {
7744  Lex.field()->set_name((yyvsp[(1) - (4)].lex_str).data());
7745  }
7746 
7747  if (add_field_to_list(Lex.session, (yyvsp[(1) - (4)].lex_str), (enum_field_types) (yyvsp[(3) - (4)].field_val),
7748  Lex.length, Lex.dec, Lex.type,
7749  statement->column_format,
7750  statement->default_value, statement->on_update_value,
7751  statement->comment,
7752  statement->change, &Lex.interval_list, Lex.charset))
7753  DRIZZLE_YYABORT;
7754 
7755  Lex.setField(NULL);
7756  }
7757  break;
7758 
7759  case 130:
7760 
7761 /* Line 1806 of yacc.c */
7762 #line 1252 "drizzled/sql_yacc.yy"
7763  {
7764  (yyval.field_val)=parser::buildTimestampColumn(&Lex, NULL);
7765  }
7766  break;
7767 
7768  case 131:
7769 
7770 /* Line 1806 of yacc.c */
7771 #line 1256 "drizzled/sql_yacc.yy"
7772  {
7773  (yyval.field_val)=parser::buildTimestampColumn(&Lex, (yyvsp[(3) - (5)].lex_str).data());
7774  }
7775  break;
7776 
7777  case 132:
7778 
7779 /* Line 1806 of yacc.c */
7780 #line 1260 "drizzled/sql_yacc.yy"
7781  {
7782  (yyval.field_val)=DRIZZLE_TYPE_DATETIME;
7783 
7784  if (Lex.field())
7785  Lex.field()->set_type(message::Table::Field::DATETIME);
7786  }
7787  break;
7788 
7789  case 133:
7790 
7791 /* Line 1806 of yacc.c */
7792 #line 1267 "drizzled/sql_yacc.yy"
7793  {
7794  (yyval.field_val)= (yyvsp[(1) - (2)].field_val);
7795  }
7796  break;
7797 
7798  case 134:
7799 
7800 /* Line 1806 of yacc.c */
7801 #line 1271 "drizzled/sql_yacc.yy"
7802  {
7803  (yyval.field_val)= parser::buildVarcharColumn(&Lex, "1");
7804  }
7805  break;
7806 
7807  case 135:
7808 
7809 /* Line 1806 of yacc.c */
7810 #line 1275 "drizzled/sql_yacc.yy"
7811  {
7812  (yyval.field_val)= parser::buildVarcharColumn(&Lex, (yyvsp[(3) - (5)].lex_str).data());
7813  }
7814  break;
7815 
7816  case 136:
7817 
7818 /* Line 1806 of yacc.c */
7819 #line 1279 "drizzled/sql_yacc.yy"
7820  {
7821  (yyval.field_val)=DRIZZLE_TYPE_BLOB;
7822  Lex.length= NULL; /* use default length */
7823 
7824  if (Lex.field())
7825  Lex.field()->set_type(message::Table::Field::BLOB);
7826  }
7827  break;
7828 
7829  case 137:
7830 
7831 /* Line 1806 of yacc.c */
7832 #line 1287 "drizzled/sql_yacc.yy"
7833  {
7834  Lex.interval_list.clear();
7835  }
7836  break;
7837 
7838  case 138:
7839 
7840 /* Line 1806 of yacc.c */
7841 #line 1291 "drizzled/sql_yacc.yy"
7842  {
7843  (yyval.field_val)=DRIZZLE_TYPE_ENUM;
7844 
7845  if (Lex.field())
7846  Lex.field()->set_type(message::Table::Field::ENUM);
7847  }
7848  break;
7849 
7850  case 139:
7851 
7852 /* Line 1806 of yacc.c */
7853 #line 1298 "drizzled/sql_yacc.yy"
7854  {
7855  (yyval.field_val)= parser::buildVarbinaryColumn(&Lex, (yyvsp[(3) - (5)].lex_str).data());
7856  }
7857  break;
7858 
7859  case 140:
7860 
7861 /* Line 1806 of yacc.c */
7862 #line 1302 "drizzled/sql_yacc.yy"
7863  {
7864  assert ((yyvsp[(1) - (2)].field_val) == DRIZZLE_TYPE_DOUBLE);
7865  (yyval.field_val)= parser::buildDoubleColumn(&Lex);
7866  }
7867  break;
7868 
7869  case 141:
7870 
7871 /* Line 1806 of yacc.c */
7872 #line 1307 "drizzled/sql_yacc.yy"
7873  {
7874  (yyval.field_val)=DRIZZLE_TYPE_DATE;
7875 
7876  if (Lex.field())
7877  Lex.field()->set_type(message::Table::Field::DATE);
7878  }
7879  break;
7880 
7881  case 142:
7882 
7883 /* Line 1806 of yacc.c */
7884 #line 1314 "drizzled/sql_yacc.yy"
7885  {
7886  (yyval.field_val)=DRIZZLE_TYPE_TIME;
7887 
7888  if (Lex.field())
7889  Lex.field()->set_type(message::Table::Field::TIME);
7890  }
7891  break;
7892 
7893  case 143:
7894 
7895 /* Line 1806 of yacc.c */
7896 #line 1321 "drizzled/sql_yacc.yy"
7897  {
7898  (yyval.field_val)= parser::buildBlobColumn(&Lex);
7899  }
7900  break;
7901 
7902  case 144:
7903 
7904 /* Line 1806 of yacc.c */
7905 #line 1325 "drizzled/sql_yacc.yy"
7906  {
7907  (yyval.field_val)= parser::buildDecimalColumn(&Lex);
7908  }
7909  break;
7910 
7911  case 145:
7912 
7913 /* Line 1806 of yacc.c */
7914 #line 1329 "drizzled/sql_yacc.yy"
7915  {
7916  (yyval.field_val)= parser::buildDecimalColumn(&Lex);
7917  }
7918  break;
7919 
7920  case 146:
7921 
7922 /* Line 1806 of yacc.c */
7923 #line 1333 "drizzled/sql_yacc.yy"
7924  {
7925  (yyval.field_val)= parser::buildDecimalColumn(&Lex);
7926  }
7927  break;
7928 
7929  case 147:
7930 
7931 /* Line 1806 of yacc.c */
7932 #line 1337 "drizzled/sql_yacc.yy"
7933  {
7934  (yyval.field_val)= parser::buildUuidColumn(&Lex);
7935  }
7936  break;
7937 
7938  case 148:
7939 
7940 /* Line 1806 of yacc.c */
7941 #line 1341 "drizzled/sql_yacc.yy"
7942  {
7943  (yyval.field_val)= parser::buildIPv6Column(&Lex);
7944  }
7945  break;
7946 
7947  case 149:
7948 
7949 /* Line 1806 of yacc.c */
7950 #line 1345 "drizzled/sql_yacc.yy"
7951  {
7952  (yyval.field_val)= parser::buildBooleanColumn(&Lex);
7953  }
7954  break;
7955 
7956  case 150:
7957 
7958 /* Line 1806 of yacc.c */
7959 #line 1349 "drizzled/sql_yacc.yy"
7960  {
7961  (yyval.field_val)= parser::buildSerialColumn(&Lex);
7962  }
7963  break;
7964 
7965  case 151:
7966 
7967 /* Line 1806 of yacc.c */
7968 #line 1356 "drizzled/sql_yacc.yy"
7969  { }
7970  break;
7971 
7972  case 152:
7973 
7974 /* Line 1806 of yacc.c */
7975 #line 1358 "drizzled/sql_yacc.yy"
7976  { }
7977  break;
7978 
7979  case 153:
7980 
7981 /* Line 1806 of yacc.c */
7982 #line 1360 "drizzled/sql_yacc.yy"
7983  { }
7984  break;
7985 
7986  case 154:
7987 
7988 /* Line 1806 of yacc.c */
7989 #line 1365 "drizzled/sql_yacc.yy"
7990  {
7991  (yyval.field_val)= parser::buildIntegerColumn(&Lex, DRIZZLE_TYPE_LONG, ((yyvsp[(3) - (4)].boolean) or (yyvsp[(4) - (4)].boolean)));
7992  }
7993  break;
7994 
7995  case 155:
7996 
7997 /* Line 1806 of yacc.c */
7998 #line 1369 "drizzled/sql_yacc.yy"
7999  {
8000  (yyval.field_val)= parser::buildIntegerColumn(&Lex, DRIZZLE_TYPE_LONGLONG, ((yyvsp[(3) - (4)].boolean) or (yyvsp[(4) - (4)].boolean)));
8001  }
8002  break;
8003 
8004  case 156:
8005 
8006 /* Line 1806 of yacc.c */
8007 #line 1376 "drizzled/sql_yacc.yy"
8008  {
8009  (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
8010  }
8011  break;
8012 
8013  case 157:
8014 
8015 /* Line 1806 of yacc.c */
8016 #line 1380 "drizzled/sql_yacc.yy"
8017  {
8018  (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
8019  }
8020  break;
8021 
8022  case 158:
8023 
8024 /* Line 1806 of yacc.c */
8025 #line 1384 "drizzled/sql_yacc.yy"
8026  {
8027  (yyval.field_val)= DRIZZLE_TYPE_DOUBLE;
8028  }
8029  break;
8030 
8031  case 159:
8032 
8033 /* Line 1806 of yacc.c */
8034 #line 1391 "drizzled/sql_yacc.yy"
8035  { Lex.dec=Lex.length= NULL; }
8036  break;
8037 
8038  case 160:
8039 
8040 /* Line 1806 of yacc.c */
8041 #line 1393 "drizzled/sql_yacc.yy"
8042  { Lex.length=(yyvsp[(2) - (3)].lex_str).data(); Lex.dec= NULL; }
8043  break;
8044 
8045  case 161:
8046 
8047 /* Line 1806 of yacc.c */
8048 #line 1395 "drizzled/sql_yacc.yy"
8049  {}
8050  break;
8051 
8052  case 162:
8053 
8054 /* Line 1806 of yacc.c */
8055 #line 1400 "drizzled/sql_yacc.yy"
8056  {
8057  Lex.length= (yyvsp[(2) - (5)].lex_str).data();
8058  Lex.dec= (yyvsp[(4) - (5)].lex_str).data();
8059  }
8060  break;
8061 
8062  case 163:
8063 
8064 /* Line 1806 of yacc.c */
8065 #line 1407 "drizzled/sql_yacc.yy"
8066  { Lex.length= NULL; /* use default length */ }
8067  break;
8068 
8069  case 164:
8070 
8071 /* Line 1806 of yacc.c */
8072 #line 1408 "drizzled/sql_yacc.yy"
8073  { Lex.length= (yyvsp[(2) - (3)].lex_str).data(); }
8074  break;
8075 
8076  case 165:
8077 
8078 /* Line 1806 of yacc.c */
8079 #line 1412 "drizzled/sql_yacc.yy"
8080  { (yyval.boolean)= false; }
8081  break;
8082 
8083  case 166:
8084 
8085 /* Line 1806 of yacc.c */
8086 #line 1413 "drizzled/sql_yacc.yy"
8087  { (yyval.boolean)= false; }
8088  break;
8089 
8090  case 167:
8091 
8092 /* Line 1806 of yacc.c */
8093 #line 1414 "drizzled/sql_yacc.yy"
8094  { (yyval.boolean)= true; Lex.type|= UNSIGNED_FLAG; }
8095  break;
8096 
8097  case 168:
8098 
8099 /* Line 1806 of yacc.c */
8100 #line 1418 "drizzled/sql_yacc.yy"
8101  { }
8102  break;
8103 
8104  case 169:
8105 
8106 /* Line 1806 of yacc.c */
8107 #line 1419 "drizzled/sql_yacc.yy"
8108  { }
8109  break;
8110 
8111  case 170:
8112 
8113 /* Line 1806 of yacc.c */
8114 #line 1423 "drizzled/sql_yacc.yy"
8115  { (yyval.boolean)= false; }
8116  break;
8117 
8118  case 171:
8119 
8120 /* Line 1806 of yacc.c */
8121 #line 1424 "drizzled/sql_yacc.yy"
8122  { (yyval.boolean)= true; Lex.type|= UNSIGNED_FLAG; }
8123  break;
8124 
8125  case 172:
8126 
8127 /* Line 1806 of yacc.c */
8128 #line 1429 "drizzled/sql_yacc.yy"
8129  { Lex.dec=Lex.length= NULL; }
8130  break;
8131 
8132  case 173:
8133 
8134 /* Line 1806 of yacc.c */
8135 #line 1431 "drizzled/sql_yacc.yy"
8136  { Lex.length=Lex.dec= NULL; }
8137  break;
8138 
8139  case 174:
8140 
8141 /* Line 1806 of yacc.c */
8142 #line 1433 "drizzled/sql_yacc.yy"
8143  {}
8144  break;
8145 
8146  case 175:
8147 
8148 /* Line 1806 of yacc.c */
8149 #line 1438 "drizzled/sql_yacc.yy"
8150  {
8151  Lex.type&= ~ NOT_NULL_FLAG;
8152  }
8153  break;
8154 
8155  case 176:
8156 
8157 /* Line 1806 of yacc.c */
8158 #line 1442 "drizzled/sql_yacc.yy"
8159  {
8160  Lex.type|= NOT_NULL_FLAG;
8161 
8162  if (Lex.field())
8163  {
8164  Lex.field()->mutable_constraints()->set_is_notnull(true);
8165  }
8166  }
8167  break;
8168 
8169  case 177:
8170 
8171 /* Line 1806 of yacc.c */
8172 #line 1454 "drizzled/sql_yacc.yy"
8173  {
8174  parser::buildPrimaryOnColumn(&Lex);
8175  }
8176  break;
8177 
8178  case 178:
8179 
8180 /* Line 1806 of yacc.c */
8181 #line 1458 "drizzled/sql_yacc.yy"
8182  {
8183  parser::buildKeyOnColumn(&Lex);
8184  }
8185  break;
8186 
8187  case 179:
8188 
8189 /* Line 1806 of yacc.c */
8190 #line 1462 "drizzled/sql_yacc.yy"
8191  {
8192  parser::buildKeyOnColumn(&Lex);
8193  }
8194  break;
8195 
8196  case 180:
8197 
8198 /* Line 1806 of yacc.c */
8199 #line 1468 "drizzled/sql_yacc.yy"
8200  {}
8201  break;
8202 
8203  case 181:
8204 
8205 /* Line 1806 of yacc.c */
8206 #line 1470 "drizzled/sql_yacc.yy"
8207  { }
8208  break;
8209 
8210  case 182:
8211 
8212 /* Line 1806 of yacc.c */
8213 #line 1472 "drizzled/sql_yacc.yy"
8214  {
8215  statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
8216 
8217  statement->default_value= (yyvsp[(3) - (3)].item);
8218  statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
8219  }
8220  break;
8221 
8222  case 183:
8223 
8224 /* Line 1806 of yacc.c */
8225 #line 1479 "drizzled/sql_yacc.yy"
8226  { }
8227  break;
8228 
8229  case 184:
8230 
8231 /* Line 1806 of yacc.c */
8232 #line 1483 "drizzled/sql_yacc.yy"
8233  { }
8234  break;
8235 
8236  case 185:
8237 
8238 /* Line 1806 of yacc.c */
8239 #line 1485 "drizzled/sql_yacc.yy"
8240  { }
8241  break;
8242 
8243  case 186:
8244 
8245 /* Line 1806 of yacc.c */
8246 #line 1487 "drizzled/sql_yacc.yy"
8247  {
8248  statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
8249 
8250  statement->default_value= (yyvsp[(3) - (3)].item);
8251  statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
8252  }
8253  break;
8254 
8255  case 187:
8256 
8257 /* Line 1806 of yacc.c */
8258 #line 1494 "drizzled/sql_yacc.yy"
8259  { }
8260  break;
8261 
8262  case 188:
8263 
8264 /* Line 1806 of yacc.c */
8265 #line 1498 "drizzled/sql_yacc.yy"
8266  {}
8267  break;
8268 
8269  case 189:
8270 
8271 /* Line 1806 of yacc.c */
8272 #line 1499 "drizzled/sql_yacc.yy"
8273  {}
8274  break;
8275 
8276  case 190:
8277 
8278 /* Line 1806 of yacc.c */
8279 #line 1503 "drizzled/sql_yacc.yy"
8280  {}
8281  break;
8282 
8283  case 192:
8284 
8285 /* Line 1806 of yacc.c */
8286 #line 1509 "drizzled/sql_yacc.yy"
8287  { }
8288  break;
8289 
8290  case 193:
8291 
8292 /* Line 1806 of yacc.c */
8293 #line 1511 "drizzled/sql_yacc.yy"
8294  {
8295  statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
8296 
8297  statement->default_value=(yyvsp[(2) - (2)].item);
8298  statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
8299  }
8300  break;
8301 
8302  case 194:
8303 
8304 /* Line 1806 of yacc.c */
8305 #line 1518 "drizzled/sql_yacc.yy"
8306  {
8307  if (Lex.charset && !my_charset_same(Lex.charset,(yyvsp[(2) - (2)].charset)))
8308  {
8309  my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
8310  (yyvsp[(2) - (2)].charset)->name,Lex.charset->csname);
8311  DRIZZLE_YYABORT;
8312  }
8313  else
8314  {
8315  Lex.charset=(yyvsp[(2) - (2)].charset);
8316  }
8317  }
8318  break;
8319 
8320  case 195:
8321 
8322 /* Line 1806 of yacc.c */
8323 #line 1531 "drizzled/sql_yacc.yy"
8324  { }
8325  break;
8326 
8327  case 196:
8328 
8329 /* Line 1806 of yacc.c */
8330 #line 1535 "drizzled/sql_yacc.yy"
8331  {}
8332  break;
8333 
8334  case 197:
8335 
8336 /* Line 1806 of yacc.c */
8337 #line 1536 "drizzled/sql_yacc.yy"
8338  {}
8339  break;
8340 
8341  case 198:
8342 
8343 /* Line 1806 of yacc.c */
8344 #line 1540 "drizzled/sql_yacc.yy"
8345  {}
8346  break;
8347 
8348  case 200:
8349 
8350 /* Line 1806 of yacc.c */
8351 #line 1546 "drizzled/sql_yacc.yy"
8352  { }
8353  break;
8354 
8355  case 201:
8356 
8357 /* Line 1806 of yacc.c */
8358 #line 1548 "drizzled/sql_yacc.yy"
8359  {
8360  parser::buildAutoOnColumn(&Lex);
8361  }
8362  break;
8363 
8364  case 202:
8365 
8366 /* Line 1806 of yacc.c */
8367 #line 1552 "drizzled/sql_yacc.yy"
8368  {
8369  (void)parser::buildSerialColumn(&Lex);
8370  }
8371  break;
8372 
8373  case 203:
8374 
8375 /* Line 1806 of yacc.c */
8376 #line 1556 "drizzled/sql_yacc.yy"
8377  {
8378  statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
8379 
8380  statement->default_value=(yyvsp[(2) - (2)].item);
8381  statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
8382  }
8383  break;
8384 
8385  case 204:
8386 
8387 /* Line 1806 of yacc.c */
8388 #line 1563 "drizzled/sql_yacc.yy"
8389  { }
8390  break;
8391 
8392  case 205:
8393 
8394 /* Line 1806 of yacc.c */
8395 #line 1567 "drizzled/sql_yacc.yy"
8396  {}
8397  break;
8398 
8399  case 206:
8400 
8401 /* Line 1806 of yacc.c */
8402 #line 1568 "drizzled/sql_yacc.yy"
8403  {}
8404  break;
8405 
8406  case 207:
8407 
8408 /* Line 1806 of yacc.c */
8409 #line 1572 "drizzled/sql_yacc.yy"
8410  {}
8411  break;
8412 
8413  case 209:
8414 
8415 /* Line 1806 of yacc.c */
8416 #line 1578 "drizzled/sql_yacc.yy"
8417  { }
8418  break;
8419 
8420  case 210:
8421 
8422 /* Line 1806 of yacc.c */
8423 #line 1580 "drizzled/sql_yacc.yy"
8424  {
8425  statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
8426 
8427  statement->default_value= new Item_func_now_local();
8428  statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
8429  }
8430  break;
8431 
8432  case 211:
8433 
8434 /* Line 1806 of yacc.c */
8435 #line 1587 "drizzled/sql_yacc.yy"
8436  {
8437  statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
8438 
8439  statement->default_value=(yyvsp[(2) - (2)].item);
8440  statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
8441  }
8442  break;
8443 
8444  case 212:
8445 
8446 /* Line 1806 of yacc.c */
8447 #line 1594 "drizzled/sql_yacc.yy"
8448  {
8449  ((statement::AlterTable*)Lex.statement)->on_update_value= new Item_func_now_local();
8450  }
8451  break;
8452 
8453  case 213:
8454 
8455 /* Line 1806 of yacc.c */
8456 #line 1598 "drizzled/sql_yacc.yy"
8457  { }
8458  break;
8459 
8460  case 214:
8461 
8462 /* Line 1806 of yacc.c */
8463 #line 1602 "drizzled/sql_yacc.yy"
8464  { }
8465  break;
8466 
8467  case 215:
8468 
8469 /* Line 1806 of yacc.c */
8470 #line 1604 "drizzled/sql_yacc.yy"
8471  {
8472  statement::AlterTable *statement= (statement::AlterTable*)Lex.statement;
8473  statement->comment= (yyvsp[(2) - (2)].lex_str);
8474 
8475  if (Lex.field())
8476  Lex.field()->set_comment((yyvsp[(2) - (2)].lex_str).data());
8477  }
8478  break;
8479 
8480  case 216:
8481 
8482 /* Line 1806 of yacc.c */
8483 #line 1615 "drizzled/sql_yacc.yy"
8484  {
8485  if (!((yyval.charset)=get_charset_by_name((yyvsp[(1) - (1)].lex_str).data())))
8486  {
8487  my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[(1) - (1)].lex_str).data());
8488  DRIZZLE_YYABORT;
8489  }
8490  }
8491  break;
8492 
8493  case 217:
8494 
8495 /* Line 1806 of yacc.c */
8496 #line 1625 "drizzled/sql_yacc.yy"
8497  { (yyval.charset)=(yyvsp[(1) - (1)].charset); }
8498  break;
8499 
8500  case 218:
8501 
8502 /* Line 1806 of yacc.c */
8503 #line 1626 "drizzled/sql_yacc.yy"
8504  { (yyval.charset)=NULL; }
8505  break;
8506 
8507  case 219:
8508 
8509 /* Line 1806 of yacc.c */
8510 #line 1630 "drizzled/sql_yacc.yy"
8511  {}
8512  break;
8513 
8514  case 220:
8515 
8516 /* Line 1806 of yacc.c */
8517 #line 1631 "drizzled/sql_yacc.yy"
8518  {}
8519  break;
8520 
8521  case 223:
8522 
8523 /* Line 1806 of yacc.c */
8524 #line 1641 "drizzled/sql_yacc.yy"
8525  {
8526  (yyval.table)=(yyvsp[(2) - (5)].table);
8527  }
8528  break;
8529 
8530  case 224:
8531 
8532 /* Line 1806 of yacc.c */
8533 #line 1648 "drizzled/sql_yacc.yy"
8534  { Lex.ref_list.clear(); }
8535  break;
8536 
8537  case 226:
8538 
8539 /* Line 1806 of yacc.c */
8540 #line 1654 "drizzled/sql_yacc.yy"
8541  { Lex.ref_list.push_back(new Key_part_spec((yyvsp[(3) - (3)].lex_str), 0)); }
8542  break;
8543 
8544  case 227:
8545 
8546 /* Line 1806 of yacc.c */
8547 #line 1656 "drizzled/sql_yacc.yy"
8548  {
8549  Lex.ref_list.clear();
8550  Lex.ref_list.push_back(new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0));
8551  }
8552  break;
8553 
8554  case 228:
8555 
8556 /* Line 1806 of yacc.c */
8557 #line 1664 "drizzled/sql_yacc.yy"
8558  { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_UNDEFINED; }
8559  break;
8560 
8561  case 229:
8562 
8563 /* Line 1806 of yacc.c */
8564 #line 1666 "drizzled/sql_yacc.yy"
8565  { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_FULL; }
8566  break;
8567 
8568  case 230:
8569 
8570 /* Line 1806 of yacc.c */
8571 #line 1668 "drizzled/sql_yacc.yy"
8572  { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_PARTIAL; }
8573  break;
8574 
8575  case 231:
8576 
8577 /* Line 1806 of yacc.c */
8578 #line 1670 "drizzled/sql_yacc.yy"
8579  { ((statement::CreateTable*)Lex.statement)->fk_match_option= drizzled::message::Table::ForeignKeyConstraint::MATCH_SIMPLE; }
8580  break;
8581 
8582  case 232:
8583 
8584 /* Line 1806 of yacc.c */
8585 #line 1675 "drizzled/sql_yacc.yy"
8586  {
8587  ((statement::CreateTable*)Lex.statement)->fk_update_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
8588  ((statement::CreateTable*)Lex.statement)->fk_delete_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
8589  }
8590  break;
8591 
8592  case 233:
8593 
8594 /* Line 1806 of yacc.c */
8595 #line 1680 "drizzled/sql_yacc.yy"
8596  {
8597  ((statement::CreateTable*)Lex.statement)->fk_update_opt= (yyvsp[(3) - (3)].m_fk_option);
8598  ((statement::CreateTable*)Lex.statement)->fk_delete_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
8599  }
8600  break;
8601 
8602  case 234:
8603 
8604 /* Line 1806 of yacc.c */
8605 #line 1685 "drizzled/sql_yacc.yy"
8606  {
8607  ((statement::CreateTable*)Lex.statement)->fk_update_opt= drizzled::message::Table::ForeignKeyConstraint::OPTION_UNDEF;
8608  ((statement::CreateTable*)Lex.statement)->fk_delete_opt= (yyvsp[(3) - (3)].m_fk_option);
8609  }
8610  break;
8611 
8612  case 235:
8613 
8614 /* Line 1806 of yacc.c */
8615 #line 1691 "drizzled/sql_yacc.yy"
8616  {
8617  ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(3) - (6)].m_fk_option);
8618  ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(6) - (6)].m_fk_option);
8619  }
8620  break;
8621 
8622  case 236:
8623 
8624 /* Line 1806 of yacc.c */
8625 #line 1697 "drizzled/sql_yacc.yy"
8626  {
8627  ((statement::CreateTable *)Lex.statement)->fk_update_opt= (yyvsp[(6) - (6)].m_fk_option);
8628  ((statement::CreateTable *)Lex.statement)->fk_delete_opt= (yyvsp[(3) - (6)].m_fk_option);
8629  }
8630  break;
8631 
8632  case 237:
8633 
8634 /* Line 1806 of yacc.c */
8635 #line 1704 "drizzled/sql_yacc.yy"
8636  { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_RESTRICT; }
8637  break;
8638 
8639  case 238:
8640 
8641 /* Line 1806 of yacc.c */
8642 #line 1705 "drizzled/sql_yacc.yy"
8643  { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_CASCADE; }
8644  break;
8645 
8646  case 239:
8647 
8648 /* Line 1806 of yacc.c */
8649 #line 1706 "drizzled/sql_yacc.yy"
8650  { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_SET_NULL; }
8651  break;
8652 
8653  case 240:
8654 
8655 /* Line 1806 of yacc.c */
8656 #line 1707 "drizzled/sql_yacc.yy"
8657  { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_NO_ACTION; }
8658  break;
8659 
8660  case 241:
8661 
8662 /* Line 1806 of yacc.c */
8663 #line 1708 "drizzled/sql_yacc.yy"
8664  { (yyval.m_fk_option)= drizzled::message::Table::ForeignKeyConstraint::OPTION_SET_DEFAULT; }
8665  break;
8666 
8667  case 242:
8668 
8669 /* Line 1806 of yacc.c */
8670 #line 1712 "drizzled/sql_yacc.yy"
8671  { (yyval.key_type)= Key::MULTIPLE; }
8672  break;
8673 
8674  case 243:
8675 
8676 /* Line 1806 of yacc.c */
8677 #line 1716 "drizzled/sql_yacc.yy"
8678  { (yyval.key_type)= Key::PRIMARY; }
8679  break;
8680 
8681  case 244:
8682 
8683 /* Line 1806 of yacc.c */
8684 #line 1717 "drizzled/sql_yacc.yy"
8685  { (yyval.key_type)= Key::UNIQUE; }
8686  break;
8687 
8688  case 245:
8689 
8690 /* Line 1806 of yacc.c */
8691 #line 1721 "drizzled/sql_yacc.yy"
8692  {}
8693  break;
8694 
8695  case 246:
8696 
8697 /* Line 1806 of yacc.c */
8698 #line 1722 "drizzled/sql_yacc.yy"
8699  {}
8700  break;
8701 
8702  case 247:
8703 
8704 /* Line 1806 of yacc.c */
8705 #line 1726 "drizzled/sql_yacc.yy"
8706  {}
8707  break;
8708 
8709  case 249:
8710 
8711 /* Line 1806 of yacc.c */
8712 #line 1731 "drizzled/sql_yacc.yy"
8713  {}
8714  break;
8715 
8716  case 250:
8717 
8718 /* Line 1806 of yacc.c */
8719 #line 1732 "drizzled/sql_yacc.yy"
8720  {}
8721  break;
8722 
8723  case 251:
8724 
8725 /* Line 1806 of yacc.c */
8726 #line 1733 "drizzled/sql_yacc.yy"
8727  {}
8728  break;
8729 
8730  case 252:
8731 
8732 /* Line 1806 of yacc.c */
8733 #line 1737 "drizzled/sql_yacc.yy"
8734  { (yyval.key_type)= Key::MULTIPLE; }
8735  break;
8736 
8737  case 253:
8738 
8739 /* Line 1806 of yacc.c */
8740 #line 1738 "drizzled/sql_yacc.yy"
8741  { (yyval.key_type)= Key::UNIQUE; }
8742  break;
8743 
8744  case 254:
8745 
8746 /* Line 1806 of yacc.c */
8747 #line 1742 "drizzled/sql_yacc.yy"
8748  {
8749  ((statement::CreateTable *)Lex.statement)->key_create_info= default_key_create_info;
8750  }
8751  break;
8752 
8753  case 257:
8754 
8755 /* Line 1806 of yacc.c */
8756 #line 1759 "drizzled/sql_yacc.yy"
8757  {}
8758  break;
8759 
8760  case 261:
8761 
8762 /* Line 1806 of yacc.c */
8763 #line 1769 "drizzled/sql_yacc.yy"
8764  { ((statement::CreateTable *)Lex.statement)->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
8765  break;
8766 
8767  case 263:
8768 
8769 /* Line 1806 of yacc.c */
8770 #line 1775 "drizzled/sql_yacc.yy"
8771  { ((statement::CreateTable *)Lex.statement)->key_create_info.block_size= (yyvsp[(3) - (3)].ulong_num); }
8772  break;
8773 
8774  case 264:
8775 
8776 /* Line 1806 of yacc.c */
8777 #line 1777 "drizzled/sql_yacc.yy"
8778  { ((statement::CreateTable *)Lex.statement)->key_create_info.comment= (yyvsp[(2) - (2)].lex_str); }
8779  break;
8780 
8781  case 265:
8782 
8783 /* Line 1806 of yacc.c */
8784 #line 1781 "drizzled/sql_yacc.yy"
8785  { (yyval.key_alg)= HA_KEY_ALG_BTREE; }
8786  break;
8787 
8788  case 266:
8789 
8790 /* Line 1806 of yacc.c */
8791 #line 1782 "drizzled/sql_yacc.yy"
8792  { (yyval.key_alg)= HA_KEY_ALG_HASH; }
8793  break;
8794 
8795  case 267:
8796 
8797 /* Line 1806 of yacc.c */
8798 #line 1786 "drizzled/sql_yacc.yy"
8799  { Lex.col_list.push_back((yyvsp[(3) - (4)].key_part)); }
8800  break;
8801 
8802  case 268:
8803 
8804 /* Line 1806 of yacc.c */
8805 #line 1787 "drizzled/sql_yacc.yy"
8806  { Lex.col_list.push_back((yyvsp[(1) - (2)].key_part)); }
8807  break;
8808 
8809  case 269:
8810 
8811 /* Line 1806 of yacc.c */
8812 #line 1791 "drizzled/sql_yacc.yy"
8813  { (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0); }
8814  break;
8815 
8816  case 270:
8817 
8818 /* Line 1806 of yacc.c */
8819 #line 1793 "drizzled/sql_yacc.yy"
8820  {
8821  int key_part_len= atoi((yyvsp[(3) - (4)].lex_str).data());
8822  if (!key_part_len)
8823  {
8824  my_error(ER_KEY_PART_0, MYF(0), (yyvsp[(1) - (4)].lex_str).data());
8825  }
8826  (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (4)].lex_str), (uint) key_part_len);
8827  }
8828  break;
8829 
8830  case 271:
8831 
8832 /* Line 1806 of yacc.c */
8833 #line 1804 "drizzled/sql_yacc.yy"
8834  { (yyval.lex_str)= null_lex_string(); }
8835  break;
8836 
8837  case 272:
8838 
8839 /* Line 1806 of yacc.c */
8840 #line 1805 "drizzled/sql_yacc.yy"
8841  { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
8842  break;
8843 
8844  case 273:
8845 
8846 /* Line 1806 of yacc.c */
8847 #line 1809 "drizzled/sql_yacc.yy"
8848  { (yyval.lex_str)= null_lex_string(); }
8849  break;
8850 
8851  case 274:
8852 
8853 /* Line 1806 of yacc.c */
8854 #line 1810 "drizzled/sql_yacc.yy"
8855  { (yyval.lex_str)= (yyvsp[(2) - (2)].lex_str); }
8856  break;
8857 
8858  case 275:
8859 
8860 /* Line 1806 of yacc.c */
8861 #line 1814 "drizzled/sql_yacc.yy"
8862  { Lex.interval_list.push_back((yyvsp[(1) - (1)].string)); }
8863  break;
8864 
8865  case 276:
8866 
8867 /* Line 1806 of yacc.c */
8868 #line 1815 "drizzled/sql_yacc.yy"
8869  { Lex.interval_list.push_back((yyvsp[(3) - (3)].string)); }
8870  break;
8871 
8872  case 277:
8873 
8874 /* Line 1806 of yacc.c */
8875 #line 1823 "drizzled/sql_yacc.yy"
8876  {
8877  statement::AlterTable *statement= new statement::AlterTable(YYSession, (yyvsp[(5) - (5)].table));
8878  Lex.statement= statement;
8879  Lex.duplicates= DUP_ERROR;
8880  if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(5) - (5)].table), NULL, TL_OPTION_UPDATING))
8881  {
8882  DRIZZLE_YYABORT;
8883  }
8884 
8885  Lex.col_list.clear();
8886  Lex.select_lex.init_order();
8887  Lex.select_lex.db= ((TableList*) Lex.select_lex.table_list.first)->getSchemaName();
8888  }
8889  break;
8890 
8891  case 278:
8892 
8893 /* Line 1806 of yacc.c */
8894 #line 1837 "drizzled/sql_yacc.yy"
8895  {}
8896  break;
8897 
8898  case 279:
8899 
8900 /* Line 1806 of yacc.c */
8901 #line 1839 "drizzled/sql_yacc.yy"
8902  {
8903  Lex.statement= new statement::AlterSchema(YYSession);
8904  }
8905  break;
8906 
8907  case 280:
8908 
8909 /* Line 1806 of yacc.c */
8910 #line 1843 "drizzled/sql_yacc.yy"
8911  {
8912  Lex.name= (yyvsp[(3) - (5)].lex_str);
8913  if (not Lex.name.data())
8914  {
8915  str_ref db = Lex.session->copy_db_to();
8916  if (db.empty())
8917  DRIZZLE_YYABORT;
8918  Lex.name.assign(db.data(), db.size());
8919  }
8920  }
8921  break;
8922 
8923  case 282:
8924 
8925 /* Line 1806 of yacc.c */
8926 #line 1858 "drizzled/sql_yacc.yy"
8927  {
8929  alter_operation= Lex.alter_table()->add_operations();
8930  alter_operation->set_operation(message::AlterTable::AlterTableOperation::DISCARD_TABLESPACE);
8931  }
8932  break;
8933 
8934  case 283:
8935 
8936 /* Line 1806 of yacc.c */
8937 #line 1864 "drizzled/sql_yacc.yy"
8938  {
8940  alter_operation= Lex.alter_table()->add_operations();
8941  alter_operation->set_operation(message::AlterTable::AlterTableOperation::IMPORT_TABLESPACE);
8942  }
8943  break;
8944 
8945  case 285:
8946 
8947 /* Line 1806 of yacc.c */
8948 #line 1874 "drizzled/sql_yacc.yy"
8949  {
8950  Lex.alter_table()->set_build_method(message::AlterTable::BUILD_DEFAULT);
8951  }
8952  break;
8953 
8954  case 286:
8955 
8956 /* Line 1806 of yacc.c */
8957 #line 1878 "drizzled/sql_yacc.yy"
8958  {
8959  Lex.alter_table()->set_build_method(message::AlterTable::BUILD_ONLINE);
8960  }
8961  break;
8962 
8963  case 287:
8964 
8965 /* Line 1806 of yacc.c */
8966 #line 1882 "drizzled/sql_yacc.yy"
8967  {
8968  Lex.alter_table()->set_build_method(message::AlterTable::BUILD_OFFLINE);
8969  }
8970  break;
8971 
8972  case 290:
8973 
8974 /* Line 1806 of yacc.c */
8975 #line 1894 "drizzled/sql_yacc.yy"
8976  {
8977  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
8978 
8979  statement->change=0;
8980  statement->alter_info.flags.set(ALTER_ADD_COLUMN);
8981  }
8982  break;
8983 
8984  case 291:
8985 
8986 /* Line 1806 of yacc.c */
8987 #line 1903 "drizzled/sql_yacc.yy"
8988  { }
8989  break;
8990 
8991  case 292:
8992 
8993 /* Line 1806 of yacc.c */
8994 #line 1905 "drizzled/sql_yacc.yy"
8995  {
8996  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
8997 
8998  statement->alter_info.flags.set(ALTER_ADD_INDEX);
8999  }
9000  break;
9001 
9002  case 293:
9003 
9004 /* Line 1806 of yacc.c */
9005 #line 1911 "drizzled/sql_yacc.yy"
9006  {
9007  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9008 
9009  statement->alter_info.flags.set(ALTER_ADD_COLUMN);
9010  statement->alter_info.flags.set(ALTER_ADD_INDEX);
9011  }
9012  break;
9013 
9014  case 294:
9015 
9016 /* Line 1806 of yacc.c */
9017 #line 1918 "drizzled/sql_yacc.yy"
9018  {
9019  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9020  statement->change= (yyvsp[(3) - (3)].lex_str).data();
9021  statement->alter_info.flags.set(ALTER_CHANGE_COLUMN);
9022  }
9023  break;
9024 
9025  case 296:
9026 
9027 /* Line 1806 of yacc.c */
9028 #line 1925 "drizzled/sql_yacc.yy"
9029  {
9030  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9031  Lex.length= Lex.dec=0;
9032  Lex.type= 0;
9033  statement->default_value= statement->on_update_value= 0;
9034  statement->comment= null_lex_string();
9035  Lex.charset= NULL;
9036  statement->alter_info.flags.set(ALTER_CHANGE_COLUMN);
9037  statement->column_format= COLUMN_FORMAT_TYPE_DEFAULT;
9038 
9039  Lex.setField(NULL);
9040  }
9041  break;
9042 
9043  case 297:
9044 
9045 /* Line 1806 of yacc.c */
9046 #line 1938 "drizzled/sql_yacc.yy"
9047  {
9048  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9049 
9050  if (add_field_to_list(Lex.session, (yyvsp[(3) - (6)].lex_str),
9051  (enum enum_field_types) (yyvsp[(5) - (6)].field_val),
9052  Lex.length, Lex.dec, Lex.type,
9053  statement->column_format,
9054  statement->default_value,
9055  statement->on_update_value,
9056  statement->comment,
9057  (yyvsp[(3) - (6)].lex_str).data(), &Lex.interval_list, Lex.charset))
9058  DRIZZLE_YYABORT;
9059  }
9060  break;
9061 
9062  case 299:
9063 
9064 /* Line 1806 of yacc.c */
9065 #line 1953 "drizzled/sql_yacc.yy"
9066  {
9067  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9068 
9069  statement->alter_info.flags.set(ALTER_DROP_COLUMN);
9071  operation= Lex.alter_table()->add_operations();
9072  operation->set_operation(message::AlterTable::AlterTableOperation::DROP_COLUMN);
9073  operation->set_drop_name((yyvsp[(3) - (3)].lex_str).data());
9074  }
9075  break;
9076 
9077  case 300:
9078 
9079 /* Line 1806 of yacc.c */
9080 #line 1963 "drizzled/sql_yacc.yy"
9081  {
9082  parser::buildAddAlterDropIndex(&Lex, (yyvsp[(4) - (4)].lex_str).data(), true);
9083  }
9084  break;
9085 
9086  case 301:
9087 
9088 /* Line 1806 of yacc.c */
9089 #line 1967 "drizzled/sql_yacc.yy"
9090  {
9091  parser::buildAddAlterDropIndex(&Lex, "PRIMARY");
9092  }
9093  break;
9094 
9095  case 302:
9096 
9097 /* Line 1806 of yacc.c */
9098 #line 1971 "drizzled/sql_yacc.yy"
9099  {
9100  parser::buildAddAlterDropIndex(&Lex, (yyvsp[(3) - (3)].lex_str).data());
9101  }
9102  break;
9103 
9104  case 303:
9105 
9106 /* Line 1806 of yacc.c */
9107 #line 1975 "drizzled/sql_yacc.yy"
9108  {
9109  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9110 
9111  statement->alter_info.flags.set(ALTER_KEYS_ONOFF);
9112 
9113  message::AlterTable::AlterKeysOnOff *alter_keys_operation;
9114  alter_keys_operation= Lex.alter_table()->mutable_alter_keys_onoff();
9115  alter_keys_operation->set_enable(false);
9116  }
9117  break;
9118 
9119  case 304:
9120 
9121 /* Line 1806 of yacc.c */
9122 #line 1985 "drizzled/sql_yacc.yy"
9123  {
9124  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9125 
9126  statement->alter_info.flags.set(ALTER_KEYS_ONOFF);
9127  message::AlterTable::AlterKeysOnOff *alter_keys_operation;
9128  alter_keys_operation= Lex.alter_table()->mutable_alter_keys_onoff();
9129  alter_keys_operation->set_enable(true);
9130  }
9131  break;
9132 
9133  case 305:
9134 
9135 /* Line 1806 of yacc.c */
9136 #line 1994 "drizzled/sql_yacc.yy"
9137  {
9138  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9139 
9140  statement->alter_info.alter_list.push_back(AlterColumn((yyvsp[(3) - (6)].lex_str).data(),(yyvsp[(6) - (6)].item)));
9141  statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
9142  }
9143  break;
9144 
9145  case 306:
9146 
9147 /* Line 1806 of yacc.c */
9148 #line 2001 "drizzled/sql_yacc.yy"
9149  {
9150  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9151 
9152  statement->alter_info.alter_list.push_back(AlterColumn((yyvsp[(3) - (5)].lex_str).data(), NULL));
9153  statement->alter_info.flags.set(ALTER_COLUMN_DEFAULT);
9154  }
9155  break;
9156 
9157  case 307:
9158 
9159 /* Line 1806 of yacc.c */
9160 #line 2008 "drizzled/sql_yacc.yy"
9161  {
9162  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9163  Lex.select_lex.db= (yyvsp[(3) - (3)].table)->db.data();
9164  if (not Lex.select_lex.db)
9165  {
9166  str_ref db = Lex.session->copy_db_to();
9167  if (db.empty())
9168  DRIZZLE_YYABORT;
9169  Lex.select_lex.db = db.data();
9170  }
9171 
9172  if (check_table_name((yyvsp[(3) - (3)].table)->table))
9173  {
9174  my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (3)].table)->table.data());
9175  DRIZZLE_YYABORT;
9176  }
9177 
9178  Lex.name= (yyvsp[(3) - (3)].table)->table;
9179  statement->alter_info.flags.set(ALTER_RENAME);
9180 
9181  message::AlterTable::RenameTable *rename_operation;
9182  rename_operation= Lex.alter_table()->mutable_rename();
9183  rename_operation->set_to_schema(Lex.select_lex.db);
9184  rename_operation->set_to_name(Lex.name.data());
9185  }
9186  break;
9187 
9188  case 308:
9189 
9190 /* Line 1806 of yacc.c */
9191 #line 2034 "drizzled/sql_yacc.yy"
9192  {
9193  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9194 
9195  statement->create_info().table_charset=
9196  statement->create_info().default_table_charset= (yyvsp[(3) - (3)].charset);
9197  statement->create_info().used_fields|= (HA_CREATE_USED_CHARSET |
9198  HA_CREATE_USED_DEFAULT_CHARSET);
9199  statement->alter_info.flags.set(ALTER_CONVERT);
9200  }
9201  break;
9202 
9203  case 309:
9204 
9205 /* Line 1806 of yacc.c */
9206 #line 2044 "drizzled/sql_yacc.yy"
9207  {
9208  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9209 
9210  statement->alter_info.flags.set(ALTER_OPTIONS);
9211  }
9212  break;
9213 
9214  case 310:
9215 
9216 /* Line 1806 of yacc.c */
9217 #line 2050 "drizzled/sql_yacc.yy"
9218  {
9219  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9220 
9221  statement->alter_info.flags.set(ALTER_FORCE);
9222  }
9223  break;
9224 
9225  case 311:
9226 
9227 /* Line 1806 of yacc.c */
9228 #line 2056 "drizzled/sql_yacc.yy"
9229  {
9230  statement::AlterTable *statement= (statement::AlterTable *)Lex.statement;
9231 
9232  statement->alter_info.flags.set(ALTER_ORDER);
9233  }
9234  break;
9235 
9236  case 312:
9237 
9238 /* Line 1806 of yacc.c */
9239 #line 2064 "drizzled/sql_yacc.yy"
9240  {}
9241  break;
9242 
9243  case 313:
9244 
9245 /* Line 1806 of yacc.c */
9246 #line 2065 "drizzled/sql_yacc.yy"
9247  {}
9248  break;
9249 
9250  case 314:
9251 
9252 /* Line 1806 of yacc.c */
9253 #line 2069 "drizzled/sql_yacc.yy"
9254  { Lex.ignore= 0;}
9255  break;
9256 
9257  case 315:
9258 
9259 /* Line 1806 of yacc.c */
9260 #line 2070 "drizzled/sql_yacc.yy"
9261  { Lex.ignore= 1;}
9262  break;
9263 
9264  case 316:
9265 
9266 /* Line 1806 of yacc.c */
9267 #line 2074 "drizzled/sql_yacc.yy"
9268  {}
9269  break;
9270 
9271  case 317:
9272 
9273 /* Line 1806 of yacc.c */
9274 #line 2076 "drizzled/sql_yacc.yy"
9275  {
9276  parser::storeAlterColumnPosition(&Lex, (yyvsp[(2) - (2)].lex_str).data());
9277  }
9278  break;
9279 
9280  case 318:
9281 
9282 /* Line 1806 of yacc.c */
9283 #line 2080 "drizzled/sql_yacc.yy"
9284  {
9285  parser::storeAlterColumnPosition(&Lex, first_keyword);
9286  }
9287  break;
9288 
9289  case 319:
9290 
9291 /* Line 1806 of yacc.c */
9292 #line 2086 "drizzled/sql_yacc.yy"
9293  {}
9294  break;
9295 
9296  case 320:
9297 
9298 /* Line 1806 of yacc.c */
9299 #line 2087 "drizzled/sql_yacc.yy"
9300  {}
9301  break;
9302 
9303  case 321:
9304 
9305 /* Line 1806 of yacc.c */
9306 #line 2088 "drizzled/sql_yacc.yy"
9307  {}
9308  break;
9309 
9310  case 322:
9311 
9312 /* Line 1806 of yacc.c */
9313 #line 2093 "drizzled/sql_yacc.yy"
9314  {
9315  Lex.statement= new statement::StartTransaction(YYSession, (start_transaction_option_t)(yyvsp[(3) - (3)].num));
9316  }
9317  break;
9318 
9319  case 323:
9320 
9321 /* Line 1806 of yacc.c */
9322 #line 2099 "drizzled/sql_yacc.yy"
9323  { (yyval.num) = START_TRANS_NO_OPTIONS; }
9324  break;
9325 
9326  case 324:
9327 
9328 /* Line 1806 of yacc.c */
9329 #line 2101 "drizzled/sql_yacc.yy"
9330  {
9331  (yyval.num)= START_TRANS_OPT_WITH_CONS_SNAPSHOT;
9332  }
9333  break;
9334 
9335  case 325:
9336 
9337 /* Line 1806 of yacc.c */
9338 #line 2108 "drizzled/sql_yacc.yy"
9339  {
9340  Lex.statement= new statement::Analyze(YYSession);
9341  }
9342  break;
9343 
9344  case 326:
9345 
9346 /* Line 1806 of yacc.c */
9347 #line 2112 "drizzled/sql_yacc.yy"
9348  {}
9349  break;
9350 
9351  case 327:
9352 
9353 /* Line 1806 of yacc.c */
9354 #line 2117 "drizzled/sql_yacc.yy"
9355  {
9356  Lex.statement= new statement::Check(YYSession);
9357  }
9358  break;
9359 
9360  case 328:
9361 
9362 /* Line 1806 of yacc.c */
9363 #line 2121 "drizzled/sql_yacc.yy"
9364  {}
9365  break;
9366 
9367  case 329:
9368 
9369 /* Line 1806 of yacc.c */
9370 #line 2126 "drizzled/sql_yacc.yy"
9371  {
9372  Lex.statement= new statement::RenameTable(YYSession);
9373  }
9374  break;
9375 
9376  case 330:
9377 
9378 /* Line 1806 of yacc.c */
9379 #line 2130 "drizzled/sql_yacc.yy"
9380  {}
9381  break;
9382 
9383  case 333:
9384 
9385 /* Line 1806 of yacc.c */
9386 #line 2140 "drizzled/sql_yacc.yy"
9387  {
9388  Select_Lex *sl= Lex.current_select;
9389  if (!sl->add_table_to_list(Lex.session, (yyvsp[(1) - (3)].table),NULL,TL_OPTION_UPDATING,
9390  TL_IGNORE) ||
9391  !sl->add_table_to_list(Lex.session, (yyvsp[(3) - (3)].table),NULL,TL_OPTION_UPDATING,
9392  TL_IGNORE))
9393  DRIZZLE_YYABORT;
9394  }
9395  break;
9396 
9397  case 334:
9398 
9399 /* Line 1806 of yacc.c */
9400 #line 2157 "drizzled/sql_yacc.yy"
9401  {
9402  Lex.statement= new statement::Select(YYSession);
9403  }
9404  break;
9405 
9406  case 337:
9407 
9408 /* Line 1806 of yacc.c */
9409 #line 2170 "drizzled/sql_yacc.yy"
9410  {
9411  if (parser::setup_select_in_parentheses(YYSession, &Lex))
9412  DRIZZLE_YYABORT;
9413  }
9414  break;
9415 
9416  case 339:
9417 
9418 /* Line 1806 of yacc.c */
9419 #line 2180 "drizzled/sql_yacc.yy"
9420  {
9421  if (parser::setup_select_in_parentheses(YYSession, &Lex))
9422  DRIZZLE_YYABORT;
9423  }
9424  break;
9425 
9426  case 341:
9427 
9428 /* Line 1806 of yacc.c */
9429 #line 2189 "drizzled/sql_yacc.yy"
9430  {
9431  Select_Lex * sel= Lex.current_select;
9432  if (Lex.current_select->set_braces(0))
9433  {
9434  parser::my_parse_error(YYSession->m_lip);
9435  DRIZZLE_YYABORT;
9436  }
9437  if (sel->linkage == UNION_TYPE &&
9438  sel->master_unit()->first_select()->braces)
9439  {
9440  parser::my_parse_error(YYSession->m_lip);
9441  DRIZZLE_YYABORT;
9442  }
9443  }
9444  break;
9445 
9446  case 343:
9447 
9448 /* Line 1806 of yacc.c */
9449 #line 2207 "drizzled/sql_yacc.yy"
9450  {
9451  Select_Lex *sel= Lex.current_select;
9452  if (sel->linkage != UNION_TYPE)
9453  init_select(&Lex);
9454  Lex.current_select->parsing_place= SELECT_LIST;
9455  }
9456  break;
9457 
9458  case 344:
9459 
9460 /* Line 1806 of yacc.c */
9461 #line 2214 "drizzled/sql_yacc.yy"
9462  {
9463  Lex.current_select->parsing_place= NO_MATTER;
9464  }
9465  break;
9466 
9467  case 346:
9468 
9469 /* Line 1806 of yacc.c */
9470 #line 2221 "drizzled/sql_yacc.yy"
9471  {}
9472  break;
9473 
9474  case 351:
9475 
9476 /* Line 1806 of yacc.c */
9477 #line 2231 "drizzled/sql_yacc.yy"
9478  {
9479  Lex.current_select->context.table_list=
9480  Lex.current_select->context.first_name_resolution_table=
9481  reinterpret_cast<TableList *>(Lex.current_select->table_list.first);
9482  }
9483  break;
9484 
9485  case 353:
9486 
9487 /* Line 1806 of yacc.c */
9488 #line 2241 "drizzled/sql_yacc.yy"
9489  { }
9490  break;
9491 
9492  case 356:
9493 
9494 /* Line 1806 of yacc.c */
9495 #line 2251 "drizzled/sql_yacc.yy"
9496  {
9497  Lex.current_select->options|= SELECT_DISTINCT;
9498 
9499  if (Lex.current_select->options & SELECT_DISTINCT && Lex.current_select->options & SELECT_ALL)
9500  {
9501  my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
9502  DRIZZLE_YYABORT;
9503  }
9504  }
9505  break;
9506 
9507  case 357:
9508 
9509 /* Line 1806 of yacc.c */
9510 #line 2261 "drizzled/sql_yacc.yy"
9511  {
9512  Lex.current_select->options|= SELECT_ALL;
9513 
9514  if (Lex.current_select->options & SELECT_DISTINCT && Lex.current_select->options & SELECT_ALL)
9515  {
9516  my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
9517  DRIZZLE_YYABORT;
9518  }
9519  }
9520  break;
9521 
9522  case 358:
9523 
9524 /* Line 1806 of yacc.c */
9525 #line 2274 "drizzled/sql_yacc.yy"
9526  {
9527  Lex.current_select->options|= SELECT_SMALL_RESULT;
9528 
9529  if (Lex.current_select->options & SELECT_SMALL_RESULT && Lex.current_select->options & SELECT_BIG_RESULT)
9530  {
9531  my_error(ER_WRONG_USAGE, MYF(0), "SELECT_SMALL_RESULT", "SELECT_SMALL_RESULT");
9532  DRIZZLE_YYABORT;
9533  }
9534  }
9535  break;
9536 
9537  case 359:
9538 
9539 /* Line 1806 of yacc.c */
9540 #line 2284 "drizzled/sql_yacc.yy"
9541  {
9542  Lex.current_select->options|= SELECT_BIG_RESULT;
9543 
9544  if (Lex.current_select->options & SELECT_SMALL_RESULT && Lex.current_select->options & SELECT_BIG_RESULT)
9545  {
9546  my_error(ER_WRONG_USAGE, MYF(0), "SELECT_SMALL_RESULT", "SELECT_SMALL_RESULT");
9547  DRIZZLE_YYABORT;
9548  }
9549  }
9550  break;
9551 
9552  case 360:
9553 
9554 /* Line 1806 of yacc.c */
9555 #line 2297 "drizzled/sql_yacc.yy"
9556  { Lex.current_select->options|= SELECT_STRAIGHT_JOIN; }
9557  break;
9558 
9559  case 361:
9560 
9561 /* Line 1806 of yacc.c */
9562 #line 2299 "drizzled/sql_yacc.yy"
9563  {
9564  if (check_simple_select(YYSession))
9565  DRIZZLE_YYABORT;
9566  Lex.current_select->options|= OPTION_BUFFER_RESULT;
9567  }
9568  break;
9569 
9570  case 362:
9571 
9572 /* Line 1806 of yacc.c */
9573 #line 2305 "drizzled/sql_yacc.yy"
9574  { }
9575  break;
9576 
9577  case 363:
9578 
9579 /* Line 1806 of yacc.c */
9580 #line 2307 "drizzled/sql_yacc.yy"
9581  { }
9582  break;
9583 
9584  case 364:
9585 
9586 /* Line 1806 of yacc.c */
9587 #line 2309 "drizzled/sql_yacc.yy"
9588  {
9589  if (check_simple_select(YYSession))
9590  DRIZZLE_YYABORT;
9591  Lex.current_select->options|= OPTION_FOUND_ROWS;
9592  }
9593  break;
9594 
9595  case 366:
9596 
9597 /* Line 1806 of yacc.c */
9598 #line 2319 "drizzled/sql_yacc.yy"
9599  {
9600  Lex.current_select->set_lock_for_tables(TL_WRITE);
9601  }
9602  break;
9603 
9604  case 367:
9605 
9606 /* Line 1806 of yacc.c */
9607 #line 2323 "drizzled/sql_yacc.yy"
9608  {
9609  Lex.current_select->
9610  set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
9611  }
9612  break;
9613 
9614  case 370:
9615 
9616 /* Line 1806 of yacc.c */
9617 #line 2333 "drizzled/sql_yacc.yy"
9618  {
9619  YYSession->add_item_to_list( new Item_field(&YYSession->lex().current_select->context, NULL, NULL, "*"));
9620  YYSession->lex().current_select->with_wild++;
9621  }
9622  break;
9623 
9624  case 371:
9625 
9626 /* Line 1806 of yacc.c */
9627 #line 2341 "drizzled/sql_yacc.yy"
9628  {
9629  YYSession->add_item_to_list((yyvsp[(2) - (3)].item));
9630  }
9631  break;
9632 
9633  case 372:
9634 
9635 /* Line 1806 of yacc.c */
9636 #line 2345 "drizzled/sql_yacc.yy"
9637  {
9638  assert((yyvsp[(1) - (4)].simple_string) < (yyvsp[(3) - (4)].simple_string));
9639 
9640  YYSession->add_item_to_list((yyvsp[(2) - (4)].item));
9641 
9642  if ((yyvsp[(4) - (4)].lex_str).data())
9643  {
9644  (yyvsp[(2) - (4)].item)->is_autogenerated_name= false;
9645  (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).data(), (yyvsp[(4) - (4)].lex_str).size(), system_charset_info);
9646  }
9647  else if (!(yyvsp[(2) - (4)].item)->name)
9648  {
9649  (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYSession->charset());
9650  }
9651  }
9652  break;
9653 
9654  case 373:
9655 
9656 /* Line 1806 of yacc.c */
9657 #line 2363 "drizzled/sql_yacc.yy"
9658  {
9659  Lex_input_stream *lip= YYSession->m_lip;
9660  (yyval.simple_string)= lip->get_cpp_tok_start();
9661  }
9662  break;
9663 
9664  case 374:
9665 
9666 /* Line 1806 of yacc.c */
9667 #line 2370 "drizzled/sql_yacc.yy"
9668  {
9669  Lex_input_stream *lip= YYSession->m_lip;
9670  (yyval.simple_string)= lip->get_cpp_tok_end();
9671  }
9672  break;
9673 
9674  case 375:
9675 
9676 /* Line 1806 of yacc.c */
9677 #line 2377 "drizzled/sql_yacc.yy"
9678  { (yyval.lex_str)= null_lex_string();}
9679  break;
9680 
9681  case 376:
9682 
9683 /* Line 1806 of yacc.c */
9684 #line 2378 "drizzled/sql_yacc.yy"
9685  { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
9686  break;
9687 
9688  case 377:
9689 
9690 /* Line 1806 of yacc.c */
9691 #line 2379 "drizzled/sql_yacc.yy"
9692  { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
9693  break;
9694 
9695  case 378:
9696 
9697 /* Line 1806 of yacc.c */
9698 #line 2380 "drizzled/sql_yacc.yy"
9699  { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
9700  break;
9701 
9702  case 379:
9703 
9704 /* Line 1806 of yacc.c */
9705 #line 2381 "drizzled/sql_yacc.yy"
9706  { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
9707  break;
9708 
9709  case 380:
9710 
9711 /* Line 1806 of yacc.c */
9712 #line 2385 "drizzled/sql_yacc.yy"
9713  {}
9714  break;
9715 
9716  case 381:
9717 
9718 /* Line 1806 of yacc.c */
9719 #line 2386 "drizzled/sql_yacc.yy"
9720  {}
9721  break;
9722 
9723  case 382:
9724 
9725 /* Line 1806 of yacc.c */
9726 #line 2392 "drizzled/sql_yacc.yy"
9727  {
9728  /*
9729  Design notes:
9730  Do not use a manually maintained stack like session->Lex.xxx_list,
9731  but use the internal bison stack ($$, $1 and $3) instead.
9732  Using the bison stack is:
9733  - more robust to changes in the grammar,
9734  - guaranteed to be in sync with the parser state,
9735  - better for performances (no memory allocation).
9736  */
9737  Item_cond_or *item1;
9738  Item_cond_or *item3;
9739  if (is_cond_or((yyvsp[(1) - (3)].item)))
9740  {
9741  item1= (Item_cond_or*) (yyvsp[(1) - (3)].item);
9742  if (is_cond_or((yyvsp[(3) - (3)].item)))
9743  {
9744  item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
9745  /*
9746  (X1 OR X2) OR (Y1 OR Y2) ==> OR (X1, X2, Y1, Y2)
9747  */
9748  item3->add_at_head(item1->argument_list());
9749  (yyval.item) = (yyvsp[(3) - (3)].item);
9750  }
9751  else
9752  {
9753  /*
9754  (X1 OR X2) OR Y ==> OR (X1, X2, Y)
9755  */
9756  item1->add((yyvsp[(3) - (3)].item));
9757  (yyval.item) = (yyvsp[(1) - (3)].item);
9758  }
9759  }
9760  else if (is_cond_or((yyvsp[(3) - (3)].item)))
9761  {
9762  item3= (Item_cond_or*) (yyvsp[(3) - (3)].item);
9763  /*
9764  X OR (Y1 OR Y2) ==> OR (X, Y1, Y2)
9765  */
9766  item3->add_at_head((yyvsp[(1) - (3)].item));
9767  (yyval.item) = (yyvsp[(3) - (3)].item);
9768  }
9769  else
9770  {
9771  /* X OR Y */
9772  (yyval.item) = new (YYSession->mem_root) Item_cond_or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
9773  }
9774  }
9775  break;
9776 
9777  case 383:
9778 
9779 /* Line 1806 of yacc.c */
9780 #line 2441 "drizzled/sql_yacc.yy"
9781  {
9782  /* XOR is a proprietary extension */
9783  (yyval.item) = new (YYSession->mem_root) Item_cond_xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
9784  }
9785  break;
9786 
9787  case 384:
9788 
9789 /* Line 1806 of yacc.c */
9790 #line 2446 "drizzled/sql_yacc.yy"
9791  {
9792  /* See comments in rule expr: expr or expr */
9793  Item_cond_and *item1;
9794  Item_cond_and *item3;
9795  if (is_cond_and((yyvsp[(1) - (3)].item)))
9796  {
9797  item1= (Item_cond_and*) (yyvsp[(1) - (3)].item);
9798  if (is_cond_and((yyvsp[(3) - (3)].item)))
9799  {
9800  item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
9801  /*
9802  (X1 AND X2) AND (Y1 AND Y2) ==> AND (X1, X2, Y1, Y2)
9803  */
9804  item3->add_at_head(item1->argument_list());
9805  (yyval.item) = (yyvsp[(3) - (3)].item);
9806  }
9807  else
9808  {
9809  /*
9810  (X1 AND X2) AND Y ==> AND (X1, X2, Y)
9811  */
9812  item1->add((yyvsp[(3) - (3)].item));
9813  (yyval.item) = (yyvsp[(1) - (3)].item);
9814  }
9815  }
9816  else if (is_cond_and((yyvsp[(3) - (3)].item)))
9817  {
9818  item3= (Item_cond_and*) (yyvsp[(3) - (3)].item);
9819  /*
9820  X AND (Y1 AND Y2) ==> AND (X, Y1, Y2)
9821  */
9822  item3->add_at_head((yyvsp[(1) - (3)].item));
9823  (yyval.item) = (yyvsp[(3) - (3)].item);
9824  }
9825  else
9826  {
9827  /* X AND Y */
9828  (yyval.item) = new (YYSession->mem_root) Item_cond_and((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
9829  }
9830  }
9831  break;
9832 
9833  case 385:
9834 
9835 /* Line 1806 of yacc.c */
9836 #line 2487 "drizzled/sql_yacc.yy"
9837  { (yyval.item)= negate_expression(YYSession, (yyvsp[(2) - (2)].item)); }
9838  break;
9839 
9840  case 386:
9841 
9842 /* Line 1806 of yacc.c */
9843 #line 2489 "drizzled/sql_yacc.yy"
9844  {
9845  (yyval.item)= new (YYSession->mem_root) Item_func_istrue((yyvsp[(1) - (3)].item));
9846  }
9847  break;
9848 
9849  case 387:
9850 
9851 /* Line 1806 of yacc.c */
9852 #line 2493 "drizzled/sql_yacc.yy"
9853  {
9854  (yyval.item)= new (YYSession->mem_root) Item_func_isnottrue((yyvsp[(1) - (4)].item));
9855  }
9856  break;
9857 
9858  case 388:
9859 
9860 /* Line 1806 of yacc.c */
9861 #line 2497 "drizzled/sql_yacc.yy"
9862  {
9863  (yyval.item)= new (YYSession->mem_root) Item_func_isfalse((yyvsp[(1) - (3)].item));
9864  }
9865  break;
9866 
9867  case 389:
9868 
9869 /* Line 1806 of yacc.c */
9870 #line 2501 "drizzled/sql_yacc.yy"
9871  {
9872  (yyval.item)= new (YYSession->mem_root) Item_func_isnotfalse((yyvsp[(1) - (4)].item));
9873  }
9874  break;
9875 
9876  case 390:
9877 
9878 /* Line 1806 of yacc.c */
9879 #line 2505 "drizzled/sql_yacc.yy"
9880  {
9881  (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item));
9882  }
9883  break;
9884 
9885  case 391:
9886 
9887 /* Line 1806 of yacc.c */
9888 #line 2509 "drizzled/sql_yacc.yy"
9889  {
9890  (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item));
9891  }
9892  break;
9893 
9894  case 393:
9895 
9896 /* Line 1806 of yacc.c */
9897 #line 2517 "drizzled/sql_yacc.yy"
9898  {
9899  (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item));
9900  }
9901  break;
9902 
9903  case 394:
9904 
9905 /* Line 1806 of yacc.c */
9906 #line 2521 "drizzled/sql_yacc.yy"
9907  {
9908  (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item));
9909  }
9910  break;
9911 
9912  case 395:
9913 
9914 /* Line 1806 of yacc.c */
9915 #line 2525 "drizzled/sql_yacc.yy"
9916  {
9917  (yyval.item)= new Item_func_equal((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
9918  }
9919  break;
9920 
9921  case 396:
9922 
9923 /* Line 1806 of yacc.c */
9924 #line 2529 "drizzled/sql_yacc.yy"
9925  {
9926  (yyval.item)= (*(yyvsp[(2) - (3)].boolfunc2creator))(0)->create((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
9927  }
9928  break;
9929 
9930  case 397:
9931 
9932 /* Line 1806 of yacc.c */
9933 #line 2533 "drizzled/sql_yacc.yy"
9934  {
9935  (yyval.item)= all_any_subquery_creator((yyvsp[(1) - (6)].item), (yyvsp[(2) - (6)].boolfunc2creator), (yyvsp[(3) - (6)].num), (yyvsp[(5) - (6)].select_lex));
9936  }
9937  break;
9938 
9939  case 399:
9940 
9941 /* Line 1806 of yacc.c */
9942 #line 2541 "drizzled/sql_yacc.yy"
9943  {
9944  (yyval.item)= new (YYSession->mem_root) Item_in_subselect((yyvsp[(1) - (5)].item), (yyvsp[(4) - (5)].select_lex));
9945  }
9946  break;
9947 
9948  case 400:
9949 
9950 /* Line 1806 of yacc.c */
9951 #line 2545 "drizzled/sql_yacc.yy"
9952  {
9953  Item *item= new (YYSession->mem_root) Item_in_subselect((yyvsp[(1) - (6)].item), (yyvsp[(5) - (6)].select_lex));
9954  (yyval.item)= negate_expression(YYSession, item);
9955  }
9956  break;
9957 
9958  case 401:
9959 
9960 /* Line 1806 of yacc.c */
9961 #line 2550 "drizzled/sql_yacc.yy"
9962  {
9963  (yyval.item)= parser::handle_sql2003_note184_exception(YYSession, (yyvsp[(1) - (5)].item), true, (yyvsp[(4) - (5)].item));
9964  }
9965  break;
9966 
9967  case 402:
9968 
9969 /* Line 1806 of yacc.c */
9970 #line 2554 "drizzled/sql_yacc.yy"
9971  {
9972  (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(4) - (7)].item));
9973  (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(1) - (7)].item));
9974  (yyval.item)= new (YYSession->mem_root) Item_func_in(*(yyvsp[(6) - (7)].item_list));
9975  }
9976  break;
9977 
9978  case 403:
9979 
9980 /* Line 1806 of yacc.c */
9981 #line 2560 "drizzled/sql_yacc.yy"
9982  {
9983  (yyval.item)= parser::handle_sql2003_note184_exception(YYSession, (yyvsp[(1) - (6)].item), false, (yyvsp[(5) - (6)].item));
9984  }
9985  break;
9986 
9987  case 404:
9988 
9989 /* Line 1806 of yacc.c */
9990 #line 2564 "drizzled/sql_yacc.yy"
9991  {
9992  (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
9993  (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(1) - (8)].item));
9994  Item_func_in *item = new (YYSession->mem_root) Item_func_in(*(yyvsp[(7) - (8)].item_list));
9995  item->negate();
9996  (yyval.item)= item;
9997  }
9998  break;
9999 
10000  case 405:
10001 
10002 /* Line 1806 of yacc.c */
10003 #line 2572 "drizzled/sql_yacc.yy"
10004  {
10005  (yyval.item)= new Item_func_between((yyvsp[(1) - (5)].item),(yyvsp[(3) - (5)].item),(yyvsp[(5) - (5)].item));
10006  }
10007  break;
10008 
10009  case 406:
10010 
10011 /* Line 1806 of yacc.c */
10012 #line 2576 "drizzled/sql_yacc.yy"
10013  {
10014  Item_func_between *item= new Item_func_between((yyvsp[(1) - (6)].item),(yyvsp[(4) - (6)].item),(yyvsp[(6) - (6)].item));
10015  item->negate();
10016  (yyval.item)= item;
10017  }
10018  break;
10019 
10020  case 407:
10021 
10022 /* Line 1806 of yacc.c */
10023 #line 2582 "drizzled/sql_yacc.yy"
10024  {
10025  (yyval.item)= new Item_func_like((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].item),Lex.escape_used);
10026  }
10027  break;
10028 
10029  case 408:
10030 
10031 /* Line 1806 of yacc.c */
10032 #line 2586 "drizzled/sql_yacc.yy"
10033  {
10034  (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));
10035  }
10036  break;
10037 
10038  case 409:
10039 
10040 /* Line 1806 of yacc.c */
10041 #line 2590 "drizzled/sql_yacc.yy"
10042  {
10043  List<Item> *args= new (YYSession->mem_root) List<Item>;
10044  args->push_back((yyvsp[(1) - (3)].item));
10045  args->push_back((yyvsp[(3) - (3)].item));
10046  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "regex", args)))
10047  {
10048  DRIZZLE_YYABORT;
10049  }
10050  }
10051  break;
10052 
10053  case 410:
10054 
10055 /* Line 1806 of yacc.c */
10056 #line 2600 "drizzled/sql_yacc.yy"
10057  {
10058  List<Item> *args= new (YYSession->mem_root) List<Item>;
10059  args->push_back((yyvsp[(1) - (4)].item));
10060  args->push_back((yyvsp[(4) - (4)].item));
10061  args->push_back(new (YYSession->mem_root) Item_int(1));
10062  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "regex", args)))
10063  {
10064  DRIZZLE_YYABORT;
10065  }
10066  }
10067  break;
10068 
10069  case 412:
10070 
10071 /* Line 1806 of yacc.c */
10072 #line 2615 "drizzled/sql_yacc.yy"
10073  {
10074  (yyval.item)= new function::bit::Or((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10075  }
10076  break;
10077 
10078  case 413:
10079 
10080 /* Line 1806 of yacc.c */
10081 #line 2619 "drizzled/sql_yacc.yy"
10082  {
10083  (yyval.item)= new function::bit::And((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10084  }
10085  break;
10086 
10087  case 414:
10088 
10089 /* Line 1806 of yacc.c */
10090 #line 2623 "drizzled/sql_yacc.yy"
10091  {
10092  (yyval.item)= new function::bit::ShiftRight((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10093  }
10094  break;
10095 
10096  case 415:
10097 
10098 /* Line 1806 of yacc.c */
10099 #line 2627 "drizzled/sql_yacc.yy"
10100  {
10101  (yyval.item)= new function::bit::ShiftLeft((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10102  }
10103  break;
10104 
10105  case 416:
10106 
10107 /* Line 1806 of yacc.c */
10108 #line 2631 "drizzled/sql_yacc.yy"
10109  {
10110  (yyval.item)= new Item_func_plus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10111  }
10112  break;
10113 
10114  case 417:
10115 
10116 /* Line 1806 of yacc.c */
10117 #line 2635 "drizzled/sql_yacc.yy"
10118  {
10119  (yyval.item)= new Item_func_minus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10120  }
10121  break;
10122 
10123  case 418:
10124 
10125 /* Line 1806 of yacc.c */
10126 #line 2639 "drizzled/sql_yacc.yy"
10127  {
10128  (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),0);
10129  }
10130  break;
10131 
10132  case 419:
10133 
10134 /* Line 1806 of yacc.c */
10135 #line 2643 "drizzled/sql_yacc.yy"
10136  {
10137  (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),1);
10138  }
10139  break;
10140 
10141  case 420:
10142 
10143 /* Line 1806 of yacc.c */
10144 #line 2647 "drizzled/sql_yacc.yy"
10145  {
10146  (yyval.item)= new Item_func_mul((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10147  }
10148  break;
10149 
10150  case 421:
10151 
10152 /* Line 1806 of yacc.c */
10153 #line 2651 "drizzled/sql_yacc.yy"
10154  {
10155  (yyval.item)= new Item_func_div(YYSession,(yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10156  }
10157  break;
10158 
10159  case 422:
10160 
10161 /* Line 1806 of yacc.c */
10162 #line 2655 "drizzled/sql_yacc.yy"
10163  {
10164  (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10165  }
10166  break;
10167 
10168  case 423:
10169 
10170 /* Line 1806 of yacc.c */
10171 #line 2659 "drizzled/sql_yacc.yy"
10172  {
10173  (yyval.item)= new Item_func_int_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10174  }
10175  break;
10176 
10177  case 424:
10178 
10179 /* Line 1806 of yacc.c */
10180 #line 2663 "drizzled/sql_yacc.yy"
10181  {
10182  (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
10183  }
10184  break;
10185 
10186  case 425:
10187 
10188 /* Line 1806 of yacc.c */
10189 #line 2667 "drizzled/sql_yacc.yy"
10190  {
10191  (yyval.item)= new (YYSession->mem_root) function::bit::Xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10192  }
10193  break;
10194 
10195  case 427:
10196 
10197 /* Line 1806 of yacc.c */
10198 #line 2674 "drizzled/sql_yacc.yy"
10199  { (yyval.boolfunc2creator) = &comp_eq_creator; }
10200  break;
10201 
10202  case 428:
10203 
10204 /* Line 1806 of yacc.c */
10205 #line 2675 "drizzled/sql_yacc.yy"
10206  { (yyval.boolfunc2creator) = &comp_ge_creator; }
10207  break;
10208 
10209  case 429:
10210 
10211 /* Line 1806 of yacc.c */
10212 #line 2676 "drizzled/sql_yacc.yy"
10213  { (yyval.boolfunc2creator) = &comp_gt_creator; }
10214  break;
10215 
10216  case 430:
10217 
10218 /* Line 1806 of yacc.c */
10219 #line 2677 "drizzled/sql_yacc.yy"
10220  { (yyval.boolfunc2creator) = &comp_le_creator; }
10221  break;
10222 
10223  case 431:
10224 
10225 /* Line 1806 of yacc.c */
10226 #line 2678 "drizzled/sql_yacc.yy"
10227  { (yyval.boolfunc2creator) = &comp_lt_creator; }
10228  break;
10229 
10230  case 432:
10231 
10232 /* Line 1806 of yacc.c */
10233 #line 2679 "drizzled/sql_yacc.yy"
10234  { (yyval.boolfunc2creator) = &comp_ne_creator; }
10235  break;
10236 
10237  case 433:
10238 
10239 /* Line 1806 of yacc.c */
10240 #line 2683 "drizzled/sql_yacc.yy"
10241  { (yyval.num) = 1; }
10242  break;
10243 
10244  case 434:
10245 
10246 /* Line 1806 of yacc.c */
10247 #line 2684 "drizzled/sql_yacc.yy"
10248  { (yyval.num) = 0; }
10249  break;
10250 
10251  case 440:
10252 
10253 /* Line 1806 of yacc.c */
10254 #line 2694 "drizzled/sql_yacc.yy"
10255  {
10256  Item *i1= new (YYSession->mem_root) Item_string((yyvsp[(3) - (3)].lex_str), YYSession->charset());
10257  (yyval.item)= new (YYSession->mem_root) Item_func_set_collation((yyvsp[(1) - (3)].item), i1);
10258  }
10259  break;
10260 
10261  case 443:
10262 
10263 /* Line 1806 of yacc.c */
10264 #line 2701 "drizzled/sql_yacc.yy"
10265  {
10266  Lex.setSumExprUsed();
10267  }
10268  break;
10269 
10270  case 444:
10271 
10272 /* Line 1806 of yacc.c */
10273 #line 2705 "drizzled/sql_yacc.yy"
10274  {
10275  (yyval.item)= new (YYSession->mem_root) Item_func_concat(*YYSession, (yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
10276  }
10277  break;
10278 
10279  case 445:
10280 
10281 /* Line 1806 of yacc.c */
10282 #line 2708 "drizzled/sql_yacc.yy"
10283  { (yyval.item)= (yyvsp[(2) - (2)].item); }
10284  break;
10285 
10286  case 446:
10287 
10288 /* Line 1806 of yacc.c */
10289 #line 2710 "drizzled/sql_yacc.yy"
10290  {
10291  (yyval.item)= new (YYSession->mem_root) Item_func_neg((yyvsp[(2) - (2)].item));
10292  }
10293  break;
10294 
10295  case 447:
10296 
10297 /* Line 1806 of yacc.c */
10298 #line 2714 "drizzled/sql_yacc.yy"
10299  {
10300  (yyval.item)= new (YYSession->mem_root) function::bit::Neg((yyvsp[(2) - (2)].item));
10301  }
10302  break;
10303 
10304  case 448:
10305 
10306 /* Line 1806 of yacc.c */
10307 #line 2718 "drizzled/sql_yacc.yy"
10308  {
10309  (yyval.item)= new (YYSession->mem_root) Item_singlerow_subselect((yyvsp[(2) - (3)].select_lex));
10310  }
10311  break;
10312 
10313  case 449:
10314 
10315 /* Line 1806 of yacc.c */
10316 #line 2721 "drizzled/sql_yacc.yy"
10317  { (yyval.item)= (yyvsp[(2) - (3)].item); }
10318  break;
10319 
10320  case 450:
10321 
10322 /* Line 1806 of yacc.c */
10323 #line 2723 "drizzled/sql_yacc.yy"
10324  {
10325  (yyvsp[(4) - (5)].item_list)->push_front((yyvsp[(2) - (5)].item));
10326  (yyval.item)= new (YYSession->mem_root) Item_row(*(yyvsp[(4) - (5)].item_list));
10327  }
10328  break;
10329 
10330  case 451:
10331 
10332 /* Line 1806 of yacc.c */
10333 #line 2728 "drizzled/sql_yacc.yy"
10334  {
10335  (yyvsp[(5) - (6)].item_list)->push_front((yyvsp[(3) - (6)].item));
10336  (yyval.item)= new (YYSession->mem_root) Item_row(*(yyvsp[(5) - (6)].item_list));
10337  }
10338  break;
10339 
10340  case 452:
10341 
10342 /* Line 1806 of yacc.c */
10343 #line 2733 "drizzled/sql_yacc.yy"
10344  {
10345  (yyval.item)= new (YYSession->mem_root) Item_exists_subselect((yyvsp[(3) - (4)].select_lex));
10346  }
10347  break;
10348 
10349  case 453:
10350 
10351 /* Line 1806 of yacc.c */
10352 #line 2736 "drizzled/sql_yacc.yy"
10353  { (yyval.item)= (yyvsp[(3) - (4)].item); }
10354  break;
10355 
10356  case 454:
10357 
10358 /* Line 1806 of yacc.c */
10359 #line 2738 "drizzled/sql_yacc.yy"
10360  {
10361  (yyval.item)= create_func_cast(YYSession, (yyvsp[(2) - (2)].item), ITEM_CAST_CHAR, NULL, NULL,
10362  &my_charset_bin);
10363  }
10364  break;
10365 
10366  case 455:
10367 
10368 /* Line 1806 of yacc.c */
10369 #line 2743 "drizzled/sql_yacc.yy"
10370  {
10371  (yyval.item)= create_func_cast(YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex.length, Lex.dec,
10372  Lex.charset);
10373  if (!(yyval.item))
10374  DRIZZLE_YYABORT;
10375  }
10376  break;
10377 
10378  case 456:
10379 
10380 /* Line 1806 of yacc.c */
10381 #line 2750 "drizzled/sql_yacc.yy"
10382  { (yyval.item)= new (YYSession->mem_root) Item_func_case(* (yyvsp[(3) - (5)].item_list), (yyvsp[(2) - (5)].item), (yyvsp[(4) - (5)].item) ); }
10383  break;
10384 
10385  case 457:
10386 
10387 /* Line 1806 of yacc.c */
10388 #line 2752 "drizzled/sql_yacc.yy"
10389  {
10390  (yyval.item)= create_func_cast(YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex.length, Lex.dec,
10391  Lex.charset);
10392  if (!(yyval.item))
10393  DRIZZLE_YYABORT;
10394  }
10395  break;
10396 
10397  case 458:
10398 
10399 /* Line 1806 of yacc.c */
10400 #line 2759 "drizzled/sql_yacc.yy"
10401  {
10402  (yyval.item)= new (YYSession->mem_root) Item_default_value(Lex.current_context(),
10403  (yyvsp[(3) - (4)].item));
10404  }
10405  break;
10406 
10407  case 459:
10408 
10409 /* Line 1806 of yacc.c */
10410 #line 2764 "drizzled/sql_yacc.yy"
10411  {
10412  (yyval.item)= new (YYSession->mem_root) Item_insert_value(Lex.current_context(),
10413  (yyvsp[(3) - (4)].item));
10414  }
10415  break;
10416 
10417  case 460:
10418 
10419 /* Line 1806 of yacc.c */
10420 #line 2770 "drizzled/sql_yacc.yy"
10421  { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(5) - (5)].item),(yyvsp[(2) - (5)].item),(yyvsp[(3) - (5)].interval),0); }
10422  break;
10423 
10424  case 461:
10425 
10426 /* Line 1806 of yacc.c */
10427 #line 2781 "drizzled/sql_yacc.yy"
10428  { (yyval.item)= new (YYSession->mem_root) Item_func_char(*(yyvsp[(3) - (4)].item_list)); }
10429  break;
10430 
10431  case 462:
10432 
10433 /* Line 1806 of yacc.c */
10434 #line 2783 "drizzled/sql_yacc.yy"
10435  {
10436  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "user", NULL)))
10437  {
10438  DRIZZLE_YYABORT;
10439  }
10440  Lex.setCacheable(false);
10441  }
10442  break;
10443 
10444  case 463:
10445 
10446 /* Line 1806 of yacc.c */
10447 #line 2791 "drizzled/sql_yacc.yy"
10448  { (yyval.item)= new (YYSession->mem_root) Item_date_typecast((yyvsp[(3) - (4)].item)); }
10449  break;
10450 
10451  case 464:
10452 
10453 /* Line 1806 of yacc.c */
10454 #line 2793 "drizzled/sql_yacc.yy"
10455  { (yyval.item)= new (YYSession->mem_root) Item_func_dayofmonth((yyvsp[(3) - (4)].item)); }
10456  break;
10457 
10458  case 465:
10459 
10460 /* Line 1806 of yacc.c */
10461 #line 2795 "drizzled/sql_yacc.yy"
10462  { (yyval.item)= new (YYSession->mem_root) Item_func_hour((yyvsp[(3) - (4)].item)); }
10463  break;
10464 
10465  case 466:
10466 
10467 /* Line 1806 of yacc.c */
10468 #line 2797 "drizzled/sql_yacc.yy"
10469  { (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)); }
10470  break;
10471 
10472  case 467:
10473 
10474 /* Line 1806 of yacc.c */
10475 #line 2799 "drizzled/sql_yacc.yy"
10476  {
10477  List<Item> *list= new (YYSession->mem_root) List<Item>;
10478  list->push_front((yyvsp[(5) - (6)].item));
10479  list->push_front((yyvsp[(3) - (6)].item));
10480  Item_row *item= new (YYSession->mem_root) Item_row(*list);
10481  (yyval.item)= new (YYSession->mem_root) Item_func_interval(item);
10482  }
10483  break;
10484 
10485  case 468:
10486 
10487 /* Line 1806 of yacc.c */
10488 #line 2807 "drizzled/sql_yacc.yy"
10489  {
10490  (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
10491  (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(3) - (8)].item));
10492  Item_row *item= new (YYSession->mem_root) Item_row(*(yyvsp[(7) - (8)].item_list));
10493  (yyval.item)= new (YYSession->mem_root) Item_func_interval(item);
10494  }
10495  break;
10496 
10497  case 469:
10498 
10499 /* Line 1806 of yacc.c */
10500 #line 2814 "drizzled/sql_yacc.yy"
10501  { (yyval.item)= new (YYSession->mem_root) Item_func_left((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
10502  break;
10503 
10504  case 470:
10505 
10506 /* Line 1806 of yacc.c */
10507 #line 2816 "drizzled/sql_yacc.yy"
10508  { (yyval.item)= new (YYSession->mem_root) Item_func_minute((yyvsp[(3) - (4)].item)); }
10509  break;
10510 
10511  case 471:
10512 
10513 /* Line 1806 of yacc.c */
10514 #line 2818 "drizzled/sql_yacc.yy"
10515  { (yyval.item)= new (YYSession->mem_root) Item_func_month((yyvsp[(3) - (4)].item)); }
10516  break;
10517 
10518  case 472:
10519 
10520 /* Line 1806 of yacc.c */
10521 #line 2820 "drizzled/sql_yacc.yy"
10522  { (yyval.item)= new (YYSession->mem_root) Item_func_right((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
10523  break;
10524 
10525  case 473:
10526 
10527 /* Line 1806 of yacc.c */
10528 #line 2822 "drizzled/sql_yacc.yy"
10529  { (yyval.item)= new (YYSession->mem_root) Item_func_second((yyvsp[(3) - (4)].item)); }
10530  break;
10531 
10532  case 474:
10533 
10534 /* Line 1806 of yacc.c */
10535 #line 2824 "drizzled/sql_yacc.yy"
10536  { (yyval.item)= new (YYSession->mem_root) Item_datetime_typecast((yyvsp[(3) - (4)].item)); }
10537  break;
10538 
10539  case 475:
10540 
10541 /* Line 1806 of yacc.c */
10542 #line 2826 "drizzled/sql_yacc.yy"
10543  { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(3) - (4)].item)); }
10544  break;
10545 
10546  case 476:
10547 
10548 /* Line 1806 of yacc.c */
10549 #line 2828 "drizzled/sql_yacc.yy"
10550  { (yyval.item)= new (YYSession->mem_root) Item_func_ltrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10551  break;
10552 
10553  case 477:
10554 
10555 /* Line 1806 of yacc.c */
10556 #line 2830 "drizzled/sql_yacc.yy"
10557  { (yyval.item)= new (YYSession->mem_root) Item_func_rtrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10558  break;
10559 
10560  case 478:
10561 
10562 /* Line 1806 of yacc.c */
10563 #line 2832 "drizzled/sql_yacc.yy"
10564  { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
10565  break;
10566 
10567  case 479:
10568 
10569 /* Line 1806 of yacc.c */
10570 #line 2834 "drizzled/sql_yacc.yy"
10571  { (yyval.item)= new (YYSession->mem_root) Item_func_ltrim((yyvsp[(5) - (6)].item)); }
10572  break;
10573 
10574  case 480:
10575 
10576 /* Line 1806 of yacc.c */
10577 #line 2836 "drizzled/sql_yacc.yy"
10578  { (yyval.item)= new (YYSession->mem_root) Item_func_rtrim((yyvsp[(5) - (6)].item)); }
10579  break;
10580 
10581  case 481:
10582 
10583 /* Line 1806 of yacc.c */
10584 #line 2838 "drizzled/sql_yacc.yy"
10585  { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(5) - (6)].item)); }
10586  break;
10587 
10588  case 482:
10589 
10590 /* Line 1806 of yacc.c */
10591 #line 2840 "drizzled/sql_yacc.yy"
10592  { (yyval.item)= new (YYSession->mem_root) Item_func_trim((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
10593  break;
10594 
10595  case 483:
10596 
10597 /* Line 1806 of yacc.c */
10598 #line 2842 "drizzled/sql_yacc.yy"
10599  {
10600  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "user", NULL)))
10601  {
10602  DRIZZLE_YYABORT;
10603  }
10604  Lex.setCacheable(false);
10605  }
10606  break;
10607 
10608  case 484:
10609 
10610 /* Line 1806 of yacc.c */
10611 #line 2850 "drizzled/sql_yacc.yy"
10612  { (yyval.item)= new (YYSession->mem_root) Item_func_year((yyvsp[(3) - (4)].item)); }
10613  break;
10614 
10615  case 485:
10616 
10617 /* Line 1806 of yacc.c */
10618 #line 2866 "drizzled/sql_yacc.yy"
10619  {
10620  (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
10621  INTERVAL_DAY, 0);
10622  }
10623  break;
10624 
10625  case 486:
10626 
10627 /* Line 1806 of yacc.c */
10628 #line 2871 "drizzled/sql_yacc.yy"
10629  { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 0); }
10630  break;
10631 
10632  case 487:
10633 
10634 /* Line 1806 of yacc.c */
10635 #line 2873 "drizzled/sql_yacc.yy"
10636  {
10637  (yyval.item)= new (YYSession->mem_root) Item_func_curtime_local();
10638  Lex.setCacheable(false);
10639  }
10640  break;
10641 
10642  case 488:
10643 
10644 /* Line 1806 of yacc.c */
10645 #line 2878 "drizzled/sql_yacc.yy"
10646  {
10647  (yyval.item)= new (YYSession->mem_root) Item_func_curdate_local();
10648  Lex.setCacheable(false);
10649  }
10650  break;
10651 
10652  case 489:
10653 
10654 /* Line 1806 of yacc.c */
10655 #line 2883 "drizzled/sql_yacc.yy"
10656  { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),0); }
10657  break;
10658 
10659  case 490:
10660 
10661 /* Line 1806 of yacc.c */
10662 #line 2885 "drizzled/sql_yacc.yy"
10663  { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),1); }
10664  break;
10665 
10666  case 491:
10667 
10668 /* Line 1806 of yacc.c */
10669 #line 2887 "drizzled/sql_yacc.yy"
10670  { (yyval.item)=new (YYSession->mem_root) Item_extract( (yyvsp[(3) - (6)].interval), (yyvsp[(5) - (6)].item)); }
10671  break;
10672 
10673  case 492:
10674 
10675 /* Line 1806 of yacc.c */
10676 #line 2889 "drizzled/sql_yacc.yy"
10677  {
10678  (yyval.item)= new (YYSession->mem_root) Item_func_now_local();
10679  Lex.setCacheable(false);
10680  }
10681  break;
10682 
10683  case 493:
10684 
10685 /* Line 1806 of yacc.c */
10686 #line 2894 "drizzled/sql_yacc.yy"
10687  {
10688  (yyval.item)= new (YYSession->mem_root) Item_func_now_local((yyvsp[(3) - (4)].item));
10689  Lex.setCacheable(false);
10690  }
10691  break;
10692 
10693  case 494:
10694 
10695 /* Line 1806 of yacc.c */
10696 #line 2899 "drizzled/sql_yacc.yy"
10697  { (yyval.item) = new (YYSession->mem_root) Item_func_locate((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
10698  break;
10699 
10700  case 495:
10701 
10702 /* Line 1806 of yacc.c */
10703 #line 2901 "drizzled/sql_yacc.yy"
10704  {
10705  (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
10706  INTERVAL_DAY, 1);
10707  }
10708  break;
10709 
10710  case 496:
10711 
10712 /* Line 1806 of yacc.c */
10713 #line 2906 "drizzled/sql_yacc.yy"
10714  { (yyval.item)= new (YYSession->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 1); }
10715  break;
10716 
10717  case 497:
10718 
10719 /* Line 1806 of yacc.c */
10720 #line 2908 "drizzled/sql_yacc.yy"
10721  {
10722  List<Item> *args= new (YYSession->mem_root) List<Item>;
10723  args->push_back((yyvsp[(3) - (8)].item));
10724  args->push_back((yyvsp[(5) - (8)].item));
10725  args->push_back((yyvsp[(7) - (8)].item));
10726  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10727  {
10728  DRIZZLE_YYABORT;
10729  }
10730  }
10731  break;
10732 
10733  case 498:
10734 
10735 /* Line 1806 of yacc.c */
10736 #line 2919 "drizzled/sql_yacc.yy"
10737  {
10738  List<Item> *args= new (YYSession->mem_root) List<Item>;
10739  args->push_back((yyvsp[(3) - (6)].item));
10740  args->push_back((yyvsp[(5) - (6)].item));
10741  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10742  {
10743  DRIZZLE_YYABORT;
10744  }
10745  }
10746  break;
10747 
10748  case 499:
10749 
10750 /* Line 1806 of yacc.c */
10751 #line 2929 "drizzled/sql_yacc.yy"
10752  {
10753  List<Item> *args= new (YYSession->mem_root) List<Item>;
10754  args->push_back((yyvsp[(3) - (8)].item));
10755  args->push_back((yyvsp[(5) - (8)].item));
10756  args->push_back((yyvsp[(7) - (8)].item));
10757  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10758  {
10759  DRIZZLE_YYABORT;
10760  }
10761  }
10762  break;
10763 
10764  case 500:
10765 
10766 /* Line 1806 of yacc.c */
10767 #line 2940 "drizzled/sql_yacc.yy"
10768  {
10769  List<Item> *args= new (YYSession->mem_root) List<Item>;
10770  args->push_back((yyvsp[(3) - (6)].item));
10771  args->push_back((yyvsp[(5) - (6)].item));
10772  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "substr", args)))
10773  {
10774  DRIZZLE_YYABORT;
10775  }
10776  }
10777  break;
10778 
10779  case 501:
10780 
10781 /* Line 1806 of yacc.c */
10782 #line 2950 "drizzled/sql_yacc.yy"
10783  {
10784  (yyval.item)= new (YYSession->mem_root) Item_func_sysdate_local();
10785  Lex.setCacheable(false);
10786  }
10787  break;
10788 
10789  case 502:
10790 
10791 /* Line 1806 of yacc.c */
10792 #line 2955 "drizzled/sql_yacc.yy"
10793  {
10794  (yyval.item)= new (YYSession->mem_root) Item_func_sysdate_local((yyvsp[(3) - (4)].item));
10795  Lex.setCacheable(false);
10796  }
10797  break;
10798 
10799  case 503:
10800 
10801 /* Line 1806 of yacc.c */
10802 #line 2960 "drizzled/sql_yacc.yy"
10803  { (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); }
10804  break;
10805 
10806  case 504:
10807 
10808 /* Line 1806 of yacc.c */
10809 #line 2962 "drizzled/sql_yacc.yy"
10810  { (yyval.item)= new (YYSession->mem_root) Item_func_timestamp_diff((yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item),(yyvsp[(3) - (8)].interval_time_st)); }
10811  break;
10812 
10813  case 505:
10814 
10815 /* Line 1806 of yacc.c */
10816 #line 2964 "drizzled/sql_yacc.yy"
10817  {
10818  (yyval.item)= new (YYSession->mem_root) Item_func_curtime_utc();
10819  Lex.setCacheable(false);
10820  }
10821  break;
10822 
10823  case 506:
10824 
10825 /* Line 1806 of yacc.c */
10826 #line 2969 "drizzled/sql_yacc.yy"
10827  {
10828  (yyval.item)= new (YYSession->mem_root) Item_func_curdate_utc();
10829  Lex.setCacheable(false);
10830  }
10831  break;
10832 
10833  case 507:
10834 
10835 /* Line 1806 of yacc.c */
10836 #line 2974 "drizzled/sql_yacc.yy"
10837  {
10838  (yyval.item)= new (YYSession->mem_root) Item_func_now_utc();
10839  Lex.setCacheable(false);
10840  }
10841  break;
10842 
10843  case 508:
10844 
10845 /* Line 1806 of yacc.c */
10846 #line 2987 "drizzled/sql_yacc.yy"
10847  { (yyval.item)= new (YYSession->mem_root) Item_func_coalesce(* (yyvsp[(3) - (4)].item_list)); }
10848  break;
10849 
10850  case 509:
10851 
10852 /* Line 1806 of yacc.c */
10853 #line 2989 "drizzled/sql_yacc.yy"
10854  { (yyval.item)= new (YYSession->mem_root) Item_func_collation((yyvsp[(3) - (4)].item)); }
10855  break;
10856 
10857  case 510:
10858 
10859 /* Line 1806 of yacc.c */
10860 #line 2991 "drizzled/sql_yacc.yy"
10861  {
10862  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "database", NULL)))
10863  {
10864  DRIZZLE_YYABORT;
10865  }
10866  Lex.setCacheable(false);
10867  }
10868  break;
10869 
10870  case 511:
10871 
10872 /* Line 1806 of yacc.c */
10873 #line 2999 "drizzled/sql_yacc.yy"
10874  {
10875  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "catalog", NULL)))
10876  {
10877  DRIZZLE_YYABORT;
10878  }
10879  Lex.setCacheable(false);
10880  }
10881  break;
10882 
10883  case 512:
10884 
10885 /* Line 1806 of yacc.c */
10886 #line 3007 "drizzled/sql_yacc.yy"
10887  {
10888  List<Item> *args= new (YYSession->mem_root) List<Item>;
10889  args->push_back((yyvsp[(3) - (5)].item));
10890 
10891  if ((yyvsp[(5) - (5)].boolean))
10892  {
10893  args->push_back(new (YYSession->mem_root) Item_int(1));
10894  }
10895 
10896  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "execute", args)))
10897  {
10898  DRIZZLE_YYABORT;
10899  }
10900  }
10901  break;
10902 
10903  case 513:
10904 
10905 /* Line 1806 of yacc.c */
10906 #line 3022 "drizzled/sql_yacc.yy"
10907  {
10908  (yyval.item)= new (YYSession->mem_root) Item_func_if((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
10909  }
10910  break;
10911 
10912  case 514:
10913 
10914 /* Line 1806 of yacc.c */
10915 #line 3026 "drizzled/sql_yacc.yy"
10916  {
10917  List<Item> *args= new (YYSession->mem_root) List<Item>;
10918  args->push_back((yyvsp[(4) - (5)].item));
10919 
10920  if ((yyvsp[(2) - (5)].num))
10921  {
10922  args->push_back(new (YYSession->mem_root) Item_uint(1));
10923  }
10924 
10925  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "kill", args)))
10926  {
10927  DRIZZLE_YYABORT;
10928  }
10929  }
10930  break;
10931 
10932  case 515:
10933 
10934 /* Line 1806 of yacc.c */
10935 #line 3041 "drizzled/sql_yacc.yy"
10936  { (yyval.item)= new (YYSession->mem_root) Item_func_microsecond((yyvsp[(3) - (4)].item)); }
10937  break;
10938 
10939  case 516:
10940 
10941 /* Line 1806 of yacc.c */
10942 #line 3043 "drizzled/sql_yacc.yy"
10943  { (yyval.item) = new (YYSession->mem_root) Item_func_mod( (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item)); }
10944  break;
10945 
10946  case 517:
10947 
10948 /* Line 1806 of yacc.c */
10949 #line 3045 "drizzled/sql_yacc.yy"
10950  { (yyval.item) = new (YYSession->mem_root) Item_func_quarter((yyvsp[(3) - (4)].item)); }
10951  break;
10952 
10953  case 518:
10954 
10955 /* Line 1806 of yacc.c */
10956 #line 3047 "drizzled/sql_yacc.yy"
10957  { (yyval.item)= new (YYSession->mem_root) Item_func_repeat(*YYSession, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item)); }
10958  break;
10959 
10960  case 519:
10961 
10962 /* Line 1806 of yacc.c */
10963 #line 3049 "drizzled/sql_yacc.yy"
10964  { (yyval.item)= new (YYSession->mem_root) Item_func_replace(*YYSession, (yyvsp[(3) - (8)].item), (yyvsp[(5) - (8)].item), (yyvsp[(7) - (8)].item)); }
10965  break;
10966 
10967  case 520:
10968 
10969 /* Line 1806 of yacc.c */
10970 #line 3051 "drizzled/sql_yacc.yy"
10971  { (yyval.item)= new (YYSession->mem_root) Item_func_round((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item),1); }
10972  break;
10973 
10974  case 521:
10975 
10976 /* Line 1806 of yacc.c */
10977 #line 3053 "drizzled/sql_yacc.yy"
10978  {
10979  List<Item> *args= new (YYSession->mem_root) List<Item>;
10980  args->push_back((yyvsp[(3) - (4)].item));
10981  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "wait", args)))
10982  {
10983  DRIZZLE_YYABORT;
10984  }
10985  }
10986  break;
10987 
10988  case 522:
10989 
10990 /* Line 1806 of yacc.c */
10991 #line 3062 "drizzled/sql_yacc.yy"
10992  {
10993  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "uuid", NULL)))
10994  {
10995  DRIZZLE_YYABORT;
10996  }
10997  Lex.setCacheable(false);
10998  }
10999  break;
11000 
11001  case 523:
11002 
11003 /* Line 1806 of yacc.c */
11004 #line 3070 "drizzled/sql_yacc.yy"
11005  {
11006  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "ipv6", NULL)))
11007  {
11008  DRIZZLE_YYABORT;
11009  }
11010  Lex.setCacheable(false);
11011  }
11012  break;
11013 
11014  case 524:
11015 
11016 /* Line 1806 of yacc.c */
11017 #line 3078 "drizzled/sql_yacc.yy"
11018  {
11019  List<Item> *args= new (YYSession->mem_root) List<Item>;
11020  args->push_back((yyvsp[(3) - (6)].item));
11021  args->push_back((yyvsp[(5) - (6)].item));
11022  if (! ((yyval.item)= parser::reserved_keyword_function(YYSession, "wait", args)))
11023  {
11024  DRIZZLE_YYABORT;
11025  }
11026  }
11027  break;
11028 
11029  case 525:
11030 
11031 /* Line 1806 of yacc.c */
11032 #line 3099 "drizzled/sql_yacc.yy"
11033  {
11034  const plugin::Function *udf= plugin::Function::get(to_string((yyvsp[(1) - (2)].lex_str)));
11035 
11036  /* Temporary placing the result of getFunction in $3 */
11037  (yyval.udf)= udf;
11038  }
11039  break;
11040 
11041  case 526:
11042 
11043 /* Line 1806 of yacc.c */
11044 #line 3106 "drizzled/sql_yacc.yy"
11045  {
11046  Item *item= NULL;
11047 
11048  /*
11049  Implementation note:
11050  names are resolved with the following order:
11051  - MySQL native functions,
11052  - User Defined Functions,
11053  - Stored Functions (assuming the current <use> database)
11054 
11055  This will be revised with WL#2128 (SQL PATH)
11056  */
11057  if (Create_func* builder= find_native_function_builder((yyvsp[(1) - (5)].lex_str)))
11058  {
11059  item= builder->create(YYSession, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
11060  }
11061  else if (const plugin::Function* udf= (yyvsp[(3) - (5)].udf)) /* Retrieving the result of service::Function::get */
11062  {
11063  item= Create_udf_func::s_singleton.create(YYSession, udf, (yyvsp[(4) - (5)].item_list));
11064  }
11065  else
11066  {
11067  /* fix for bug 250065, from Andrew Garner <muzazzi@gmail.com> */
11068  my_error(ER_SP_DOES_NOT_EXIST, MYF(0), "FUNCTION", (yyvsp[(1) - (5)].lex_str).data());
11069  }
11070 
11071  if (not ((yyval.item)= item))
11072  {
11073  DRIZZLE_YYABORT;
11074  }
11075  Lex.setCacheable(false);
11076  }
11077  break;
11078 
11079  case 527:
11080 
11081 /* Line 1806 of yacc.c */
11082 #line 3141 "drizzled/sql_yacc.yy"
11083  { (yyval.item_list)= NULL; }
11084  break;
11085 
11086  case 528:
11087 
11088 /* Line 1806 of yacc.c */
11089 #line 3142 "drizzled/sql_yacc.yy"
11090  { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
11091  break;
11092 
11093  case 529:
11094 
11095 /* Line 1806 of yacc.c */
11096 #line 3147 "drizzled/sql_yacc.yy"
11097  {
11098  (yyval.item_list)= new (YYSession->mem_root) List<Item>;
11099  (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
11100  }
11101  break;
11102 
11103  case 530:
11104 
11105 /* Line 1806 of yacc.c */
11106 #line 3152 "drizzled/sql_yacc.yy"
11107  {
11108  (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
11109  (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
11110  }
11111  break;
11112 
11113  case 531:
11114 
11115 /* Line 1806 of yacc.c */
11116 #line 3160 "drizzled/sql_yacc.yy"
11117  {
11118  /*
11119  Use Item::name as a storage for the attribute value of user
11120  defined function argument. It is safe to use Item::name
11121  because the syntax will not allow having an explicit name here.
11122  See WL#1017 re. udf attributes.
11123  */
11124  if ((yyvsp[(4) - (4)].lex_str).data())
11125  {
11126  (yyvsp[(2) - (4)].item)->is_autogenerated_name= false;
11127  (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).data(), (yyvsp[(4) - (4)].lex_str).size(), system_charset_info);
11128  }
11129  else
11130  (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYSession->charset());
11131  (yyval.item)= (yyvsp[(2) - (4)].item);
11132  }
11133  break;
11134 
11135  case 532:
11136 
11137 /* Line 1806 of yacc.c */
11138 #line 3180 "drizzled/sql_yacc.yy"
11139  { (yyval.item)=new Item_sum_avg((yyvsp[(3) - (4)].item)); }
11140  break;
11141 
11142  case 533:
11143 
11144 /* Line 1806 of yacc.c */
11145 #line 3182 "drizzled/sql_yacc.yy"
11146  { (yyval.item)=new Item_sum_avg_distinct((yyvsp[(4) - (5)].item)); }
11147  break;
11148 
11149  case 534:
11150 
11151 /* Line 1806 of yacc.c */
11152 #line 3184 "drizzled/sql_yacc.yy"
11153  { (yyval.item)=new Item_sum_count(new Item_int(0, 1)); }
11154  break;
11155 
11156  case 535:
11157 
11158 /* Line 1806 of yacc.c */
11159 #line 3186 "drizzled/sql_yacc.yy"
11160  { (yyval.item)=new Item_sum_count((yyvsp[(3) - (4)].item)); }
11161  break;
11162 
11163  case 536:
11164 
11165 /* Line 1806 of yacc.c */
11166 #line 3188 "drizzled/sql_yacc.yy"
11167  { Lex.current_select->in_sum_expr++; }
11168  break;
11169 
11170  case 537:
11171 
11172 /* Line 1806 of yacc.c */
11173 #line 3190 "drizzled/sql_yacc.yy"
11174  { Lex.current_select->in_sum_expr--; }
11175  break;
11176 
11177  case 538:
11178 
11179 /* Line 1806 of yacc.c */
11180 #line 3192 "drizzled/sql_yacc.yy"
11181  { (yyval.item)=new Item_sum_count_distinct(* (yyvsp[(5) - (7)].item_list)); }
11182  break;
11183 
11184  case 539:
11185 
11186 /* Line 1806 of yacc.c */
11187 #line 3194 "drizzled/sql_yacc.yy"
11188  { (yyval.item)=new Item_sum_min((yyvsp[(3) - (4)].item)); }
11189  break;
11190 
11191  case 540:
11192 
11193 /* Line 1806 of yacc.c */
11194 #line 3201 "drizzled/sql_yacc.yy"
11195  { (yyval.item)=new Item_sum_min((yyvsp[(4) - (5)].item)); }
11196  break;
11197 
11198  case 541:
11199 
11200 /* Line 1806 of yacc.c */
11201 #line 3203 "drizzled/sql_yacc.yy"
11202  { (yyval.item)=new Item_sum_max((yyvsp[(3) - (4)].item)); }
11203  break;
11204 
11205  case 542:
11206 
11207 /* Line 1806 of yacc.c */
11208 #line 3205 "drizzled/sql_yacc.yy"
11209  { (yyval.item)=new Item_sum_max((yyvsp[(4) - (5)].item)); }
11210  break;
11211 
11212  case 543:
11213 
11214 /* Line 1806 of yacc.c */
11215 #line 3207 "drizzled/sql_yacc.yy"
11216  { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 0); }
11217  break;
11218 
11219  case 544:
11220 
11221 /* Line 1806 of yacc.c */
11222 #line 3209 "drizzled/sql_yacc.yy"
11223  { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 0); }
11224  break;
11225 
11226  case 545:
11227 
11228 /* Line 1806 of yacc.c */
11229 #line 3211 "drizzled/sql_yacc.yy"
11230  { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 1); }
11231  break;
11232 
11233  case 546:
11234 
11235 /* Line 1806 of yacc.c */
11236 #line 3213 "drizzled/sql_yacc.yy"
11237  { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 1); }
11238  break;
11239 
11240  case 547:
11241 
11242 /* Line 1806 of yacc.c */
11243 #line 3215 "drizzled/sql_yacc.yy"
11244  { (yyval.item)=new Item_sum_sum((yyvsp[(3) - (4)].item)); }
11245  break;
11246 
11247  case 548:
11248 
11249 /* Line 1806 of yacc.c */
11250 #line 3217 "drizzled/sql_yacc.yy"
11251  { (yyval.item)=new Item_sum_sum_distinct((yyvsp[(4) - (5)].item)); }
11252  break;
11253 
11254  case 549:
11255 
11256 /* Line 1806 of yacc.c */
11257 #line 3219 "drizzled/sql_yacc.yy"
11258  { Lex.current_select->in_sum_expr++; }
11259  break;
11260 
11261  case 550:
11262 
11263 /* Line 1806 of yacc.c */
11264 #line 3223 "drizzled/sql_yacc.yy"
11265  {
11266  Select_Lex *sel= Lex.current_select;
11267  sel->in_sum_expr--;
11268  (yyval.item)=new Item_func_group_concat(Lex.current_context(), (yyvsp[(3) - (8)].num), (yyvsp[(5) - (8)].item_list),
11269  sel->gorder_list, (yyvsp[(7) - (8)].string));
11270  (yyvsp[(5) - (8)].item_list)->clear();
11271  }
11272  break;
11273 
11274  case 551:
11275 
11276 /* Line 1806 of yacc.c */
11277 #line 3234 "drizzled/sql_yacc.yy"
11278  { }
11279  break;
11280 
11281  case 552:
11282 
11283 /* Line 1806 of yacc.c */
11284 #line 3236 "drizzled/sql_yacc.yy"
11285  {
11286  (yyval.item)= (yyvsp[(3) - (3)].item);
11287  }
11288  break;
11289 
11290  case 553:
11291 
11292 /* Line 1806 of yacc.c */
11293 #line 3243 "drizzled/sql_yacc.yy"
11294  {
11295  (yyval.item)= new Item_func_set_user_var((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].item));
11296  Lex.setCacheable(false);
11297  }
11298  break;
11299 
11300  case 554:
11301 
11302 /* Line 1806 of yacc.c */
11303 #line 3248 "drizzled/sql_yacc.yy"
11304  {
11305  (yyval.item)= new Item_func_get_user_var(*YYSession, (yyvsp[(1) - (1)].lex_str));
11306  Lex.setCacheable(false);
11307  }
11308  break;
11309 
11310  case 555:
11311 
11312 /* Line 1806 of yacc.c */
11313 #line 3253 "drizzled/sql_yacc.yy"
11314  {
11315  /* disallow "SELECT @@global.global.variable" */
11316  if ((yyvsp[(3) - (4)].lex_str).data() && (yyvsp[(4) - (4)].lex_str).data() && parser::check_reserved_words((yyvsp[(3) - (4)].lex_str)))
11317  {
11318  parser::my_parse_error(YYSession->m_lip);
11319  DRIZZLE_YYABORT;
11320  }
11321  if (!((yyval.item)= get_system_var(YYSession, (yyvsp[(2) - (4)].var_type), (yyvsp[(3) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str))))
11322  DRIZZLE_YYABORT;
11323  }
11324  break;
11325 
11326  case 556:
11327 
11328 /* Line 1806 of yacc.c */
11329 #line 3266 "drizzled/sql_yacc.yy"
11330  { (yyval.num) = false; }
11331  break;
11332 
11333  case 557:
11334 
11335 /* Line 1806 of yacc.c */
11336 #line 3267 "drizzled/sql_yacc.yy"
11337  { (yyval.num) = true; }
11338  break;
11339 
11340  case 558:
11341 
11342 /* Line 1806 of yacc.c */
11343 #line 3272 "drizzled/sql_yacc.yy"
11344  {
11345  (yyval.string)= new (YYSession->mem_root) String(",", 1, &my_charset_utf8_general_ci);
11346  }
11347  break;
11348 
11349  case 559:
11350 
11351 /* Line 1806 of yacc.c */
11352 #line 3275 "drizzled/sql_yacc.yy"
11353  { (yyval.string) = (yyvsp[(2) - (2)].string); }
11354  break;
11355 
11356  case 560:
11357 
11358 /* Line 1806 of yacc.c */
11359 #line 3280 "drizzled/sql_yacc.yy"
11360  {
11361  Lex.current_select->gorder_list = NULL;
11362  }
11363  break;
11364 
11365  case 561:
11366 
11367 /* Line 1806 of yacc.c */
11368 #line 3284 "drizzled/sql_yacc.yy"
11369  {
11370  Select_Lex *select= Lex.current_select;
11371  select->gorder_list= (SQL_LIST*) memory::sql_memdup(&select->order_list, sizeof(SQL_LIST));
11372  select->order_list.clear();
11373  }
11374  break;
11375 
11376  case 562:
11377 
11378 /* Line 1806 of yacc.c */
11379 #line 3293 "drizzled/sql_yacc.yy"
11380  {
11381  if (Lex.current_select->inc_in_sum_expr())
11382  {
11383  parser::my_parse_error(YYSession->m_lip);
11384  DRIZZLE_YYABORT;
11385  }
11386  }
11387  break;
11388 
11389  case 563:
11390 
11391 /* Line 1806 of yacc.c */
11392 #line 3301 "drizzled/sql_yacc.yy"
11393  {
11394  Lex.current_select->in_sum_expr--;
11395  (yyval.item)= (yyvsp[(3) - (3)].item);
11396  }
11397  break;
11398 
11399  case 564:
11400 
11401 /* Line 1806 of yacc.c */
11402 #line 3309 "drizzled/sql_yacc.yy"
11403  { (yyval.cast_type)=ITEM_CAST_CHAR; Lex.charset= &my_charset_bin; Lex.dec= 0; }
11404  break;
11405 
11406  case 565:
11407 
11408 /* Line 1806 of yacc.c */
11409 #line 3311 "drizzled/sql_yacc.yy"
11410  { (yyval.cast_type)=ITEM_CAST_BOOLEAN; Lex.charset= &my_charset_bin; Lex.dec= 0; }
11411  break;
11412 
11413  case 566:
11414 
11415 /* Line 1806 of yacc.c */
11416 #line 3313 "drizzled/sql_yacc.yy"
11417  { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11418  break;
11419 
11420  case 567:
11421 
11422 /* Line 1806 of yacc.c */
11423 #line 3315 "drizzled/sql_yacc.yy"
11424  { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11425  break;
11426 
11427  case 568:
11428 
11429 /* Line 1806 of yacc.c */
11430 #line 3317 "drizzled/sql_yacc.yy"
11431  { (yyval.cast_type)=ITEM_CAST_SIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11432  break;
11433 
11434  case 569:
11435 
11436 /* Line 1806 of yacc.c */
11437 #line 3319 "drizzled/sql_yacc.yy"
11438  { (yyval.cast_type)=ITEM_CAST_UNSIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11439  break;
11440 
11441  case 570:
11442 
11443 /* Line 1806 of yacc.c */
11444 #line 3321 "drizzled/sql_yacc.yy"
11445  { (yyval.cast_type)=ITEM_CAST_UNSIGNED; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11446  break;
11447 
11448  case 571:
11449 
11450 /* Line 1806 of yacc.c */
11451 #line 3323 "drizzled/sql_yacc.yy"
11452  { (yyval.cast_type)=ITEM_CAST_CHAR; Lex.dec= 0; }
11453  break;
11454 
11455  case 572:
11456 
11457 /* Line 1806 of yacc.c */
11458 #line 3325 "drizzled/sql_yacc.yy"
11459  { (yyval.cast_type)=ITEM_CAST_DATE; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11460  break;
11461 
11462  case 573:
11463 
11464 /* Line 1806 of yacc.c */
11465 #line 3327 "drizzled/sql_yacc.yy"
11466  { (yyval.cast_type)=ITEM_CAST_TIME; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11467  break;
11468 
11469  case 574:
11470 
11471 /* Line 1806 of yacc.c */
11472 #line 3329 "drizzled/sql_yacc.yy"
11473  { (yyval.cast_type)=ITEM_CAST_DATETIME; Lex.charset= NULL; Lex.dec=Lex.length= NULL; }
11474  break;
11475 
11476  case 575:
11477 
11478 /* Line 1806 of yacc.c */
11479 #line 3331 "drizzled/sql_yacc.yy"
11480  { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex.charset= NULL; }
11481  break;
11482 
11483  case 576:
11484 
11485 /* Line 1806 of yacc.c */
11486 #line 3336 "drizzled/sql_yacc.yy"
11487  {
11488  (yyval.item_list)= new (YYSession->mem_root) List<Item>;
11489  (yyval.item_list)->push_back((yyvsp[(1) - (1)].item));
11490  }
11491  break;
11492 
11493  case 577:
11494 
11495 /* Line 1806 of yacc.c */
11496 #line 3341 "drizzled/sql_yacc.yy"
11497  {
11498  (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
11499  (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
11500  }
11501  break;
11502 
11503  case 578:
11504 
11505 /* Line 1806 of yacc.c */
11506 #line 3348 "drizzled/sql_yacc.yy"
11507  { (yyval.item)= NULL; }
11508  break;
11509 
11510  case 579:
11511 
11512 /* Line 1806 of yacc.c */
11513 #line 3349 "drizzled/sql_yacc.yy"
11514  { (yyval.item)= (yyvsp[(1) - (1)].item); }
11515  break;
11516 
11517  case 580:
11518 
11519 /* Line 1806 of yacc.c */
11520 #line 3353 "drizzled/sql_yacc.yy"
11521  { (yyval.item)= NULL; }
11522  break;
11523 
11524  case 581:
11525 
11526 /* Line 1806 of yacc.c */
11527 #line 3354 "drizzled/sql_yacc.yy"
11528  { (yyval.item)= (yyvsp[(2) - (2)].item); }
11529  break;
11530 
11531  case 582:
11532 
11533 /* Line 1806 of yacc.c */
11534 #line 3359 "drizzled/sql_yacc.yy"
11535  {
11536  (yyval.item_list)= new List<Item>;
11537  (yyval.item_list)->push_back((yyvsp[(2) - (4)].item));
11538  (yyval.item_list)->push_back((yyvsp[(4) - (4)].item));
11539  }
11540  break;
11541 
11542  case 583:
11543 
11544 /* Line 1806 of yacc.c */
11545 #line 3365 "drizzled/sql_yacc.yy"
11546  {
11547  (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(3) - (5)].item));
11548  (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(5) - (5)].item));
11549  (yyval.item_list)= (yyvsp[(1) - (5)].item_list);
11550  }
11551  break;
11552 
11553  case 584:
11554 
11555 /* Line 1806 of yacc.c */
11556 #line 3375 "drizzled/sql_yacc.yy"
11557  { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11558  break;
11559 
11560  case 585:
11561 
11562 /* Line 1806 of yacc.c */
11563 #line 3377 "drizzled/sql_yacc.yy"
11564  {
11565  if (!((yyval.table_list)= Lex.current_select->nest_last_join(Lex.session)))
11566  DRIZZLE_YYABORT;
11567  }
11568  break;
11569 
11570  case 586:
11571 
11572 /* Line 1806 of yacc.c */
11573 #line 3384 "drizzled/sql_yacc.yy"
11574  { DRIZZLE_YYABORT_UNLESS((yyval.table_list)=(yyvsp[(1) - (1)].table_list)); }
11575  break;
11576 
11577  case 587:
11578 
11579 /* Line 1806 of yacc.c */
11580 #line 3395 "drizzled/sql_yacc.yy"
11581  { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11582  break;
11583 
11584  case 588:
11585 
11586 /* Line 1806 of yacc.c */
11587 #line 3396 "drizzled/sql_yacc.yy"
11588  { (yyval.table_list)=(yyvsp[(3) - (4)].table_list); }
11589  break;
11590 
11591  case 589:
11592 
11593 /* Line 1806 of yacc.c */
11594 #line 3402 "drizzled/sql_yacc.yy"
11595  { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
11596  break;
11597 
11598  case 590:
11599 
11600 /* Line 1806 of yacc.c */
11601 #line 3404 "drizzled/sql_yacc.yy"
11602  {
11603  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
11604  }
11605  break;
11606 
11607  case 591:
11608 
11609 /* Line 1806 of yacc.c */
11610 #line 3424 "drizzled/sql_yacc.yy"
11611  {
11612  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
11613  Lex.is_cross= false;
11614  }
11615  break;
11616 
11617  case 592:
11618 
11619 /* Line 1806 of yacc.c */
11620 #line 3429 "drizzled/sql_yacc.yy"
11621  {
11622  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); (yyvsp[(3) - (3)].table_list)->straight=1;
11623  }
11624  break;
11625 
11626  case 593:
11627 
11628 /* Line 1806 of yacc.c */
11629 #line 3434 "drizzled/sql_yacc.yy"
11630  {
11631  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11632  DRIZZLE_YYABORT_UNLESS( not Lex.is_cross );
11633  /* Change the current name resolution context to a local context. */
11634  push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (4)].table_list), *(yyvsp[(3) - (4)].table_list));
11635  Lex.current_select->parsing_place= IN_ON;
11636  }
11637  break;
11638 
11639  case 594:
11640 
11641 /* Line 1806 of yacc.c */
11642 #line 3442 "drizzled/sql_yacc.yy"
11643  {
11644  add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
11645  Lex.pop_context();
11646  Lex.current_select->parsing_place= NO_MATTER;
11647  }
11648  break;
11649 
11650  case 595:
11651 
11652 /* Line 1806 of yacc.c */
11653 #line 3449 "drizzled/sql_yacc.yy"
11654  {
11655  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11656  /* Change the current name resolution context to a local context. */
11657  push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (4)].table_list), *(yyvsp[(3) - (4)].table_list));
11658  Lex.current_select->parsing_place= IN_ON;
11659  }
11660  break;
11661 
11662  case 596:
11663 
11664 /* Line 1806 of yacc.c */
11665 #line 3456 "drizzled/sql_yacc.yy"
11666  {
11667  (yyvsp[(3) - (6)].table_list)->straight=1;
11668  add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
11669  Lex.pop_context();
11670  Lex.current_select->parsing_place= NO_MATTER;
11671  }
11672  break;
11673 
11674  case 597:
11675 
11676 /* Line 1806 of yacc.c */
11677 #line 3464 "drizzled/sql_yacc.yy"
11678  {
11679  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
11680  }
11681  break;
11682 
11683  case 598:
11684 
11685 /* Line 1806 of yacc.c */
11686 #line 3468 "drizzled/sql_yacc.yy"
11687  { 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); }
11688  break;
11689 
11690  case 599:
11691 
11692 /* Line 1806 of yacc.c */
11693 #line 3470 "drizzled/sql_yacc.yy"
11694  {
11695  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && ((yyval.table_list)=(yyvsp[(4) - (4)].table_list)));
11696  add_join_natural((yyvsp[(1) - (4)].table_list),(yyvsp[(4) - (4)].table_list),NULL,Lex.current_select);
11697  }
11698  break;
11699 
11700  case 600:
11701 
11702 /* Line 1806 of yacc.c */
11703 #line 3478 "drizzled/sql_yacc.yy"
11704  {
11705  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
11706  /* Change the current name resolution context to a local context. */
11707  push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (6)].table_list), *(yyvsp[(5) - (6)].table_list));
11708  Lex.current_select->parsing_place= IN_ON;
11709  }
11710  break;
11711 
11712  case 601:
11713 
11714 /* Line 1806 of yacc.c */
11715 #line 3485 "drizzled/sql_yacc.yy"
11716  {
11717  add_join_on((yyvsp[(5) - (8)].table_list),(yyvsp[(8) - (8)].item));
11718  Lex.pop_context();
11719  (yyvsp[(5) - (8)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11720  (yyval.table_list)=(yyvsp[(5) - (8)].table_list);
11721  Lex.current_select->parsing_place= NO_MATTER;
11722  }
11723  break;
11724 
11725  case 602:
11726 
11727 /* Line 1806 of yacc.c */
11728 #line 3493 "drizzled/sql_yacc.yy"
11729  {
11730  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
11731  }
11732  break;
11733 
11734  case 603:
11735 
11736 /* Line 1806 of yacc.c */
11737 #line 3497 "drizzled/sql_yacc.yy"
11738  {
11739  add_join_natural((yyvsp[(1) - (10)].table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Lex.current_select);
11740  (yyvsp[(5) - (10)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11741  (yyval.table_list)=(yyvsp[(5) - (10)].table_list);
11742  }
11743  break;
11744 
11745  case 604:
11746 
11747 /* Line 1806 of yacc.c */
11748 #line 3503 "drizzled/sql_yacc.yy"
11749  {
11750  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
11751  add_join_natural((yyvsp[(1) - (6)].table_list),(yyvsp[(6) - (6)].table_list),NULL,Lex.current_select);
11752  (yyvsp[(6) - (6)].table_list)->outer_join|=JOIN_TYPE_LEFT;
11753  (yyval.table_list)=(yyvsp[(6) - (6)].table_list);
11754  }
11755  break;
11756 
11757  case 605:
11758 
11759 /* Line 1806 of yacc.c */
11760 #line 3513 "drizzled/sql_yacc.yy"
11761  {
11762  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
11763  /* Change the current name resolution context to a local context. */
11764  push_new_name_resolution_context(*YYSession, *(yyvsp[(1) - (6)].table_list), *(yyvsp[(5) - (6)].table_list));
11765  Lex.current_select->parsing_place= IN_ON;
11766  }
11767  break;
11768 
11769  case 606:
11770 
11771 /* Line 1806 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_on((yyval.table_list), (yyvsp[(8) - (8)].item));
11777  Lex.pop_context();
11778  Lex.current_select->parsing_place= NO_MATTER;
11779  }
11780  break;
11781 
11782  case 607:
11783 
11784 /* Line 1806 of yacc.c */
11785 #line 3528 "drizzled/sql_yacc.yy"
11786  {
11787  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
11788  }
11789  break;
11790 
11791  case 608:
11792 
11793 /* Line 1806 of yacc.c */
11794 #line 3532 "drizzled/sql_yacc.yy"
11795  {
11796  if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11797  DRIZZLE_YYABORT;
11798  add_join_natural((yyval.table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Lex.current_select);
11799  }
11800  break;
11801 
11802  case 609:
11803 
11804 /* Line 1806 of yacc.c */
11805 #line 3538 "drizzled/sql_yacc.yy"
11806  {
11807  DRIZZLE_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
11808  add_join_natural((yyvsp[(6) - (6)].table_list),(yyvsp[(1) - (6)].table_list),NULL,Lex.current_select);
11809  if (!((yyval.table_list)= Lex.current_select->convert_right_join()))
11810  DRIZZLE_YYABORT;
11811  }
11812  break;
11813 
11814  case 610:
11815 
11816 /* Line 1806 of yacc.c */
11817 #line 3547 "drizzled/sql_yacc.yy"
11818  {}
11819  break;
11820 
11821  case 611:
11822 
11823 /* Line 1806 of yacc.c */
11824 #line 3548 "drizzled/sql_yacc.yy"
11825  {}
11826  break;
11827 
11828  case 612:
11829 
11830 /* Line 1806 of yacc.c */
11831 #line 3550 "drizzled/sql_yacc.yy"
11832  {
11833  Lex.is_cross= true;
11834  Lex.current_select->is_cross= true;
11835  }
11836  break;
11837 
11838  case 613:
11839 
11840 /* Line 1806 of yacc.c */
11841 #line 3565 "drizzled/sql_yacc.yy"
11842  {
11843  }
11844  break;
11845 
11846  case 614:
11847 
11848 /* Line 1806 of yacc.c */
11849 #line 3568 "drizzled/sql_yacc.yy"
11850  {
11851  if (!((yyval.table_list)= Lex.current_select->add_table_to_list(YYSession, (yyvsp[(2) - (4)].table), (yyvsp[(3) - (4)].lex_str_ptr),
11852  0,
11853  Lex.lock_option,
11854  Lex.current_select->pop_index_hints())))
11855  DRIZZLE_YYABORT;
11856  Lex.current_select->add_joined_table((yyval.table_list));
11857  }
11858  break;
11859 
11860  case 615:
11861 
11862 /* Line 1806 of yacc.c */
11863 #line 3577 "drizzled/sql_yacc.yy"
11864  {
11865  Select_Lex *sel= Lex.current_select;
11866  if ((yyvsp[(1) - (3)].num))
11867  {
11868  if (sel->set_braces(1))
11869  {
11870  parser::my_parse_error(YYSession->m_lip);
11871  DRIZZLE_YYABORT;
11872  }
11873  /* select in braces, can't contain global parameters */
11874  if (sel->master_unit()->fake_select_lex)
11875  sel->master_unit()->global_parameters=
11876  sel->master_unit()->fake_select_lex;
11877  }
11878  (yyvsp[(2) - (3)].select_lex)->init_nested_join(*Lex.session);
11879  (yyval.table_list)= 0;
11880  /* incomplete derived tables return NULL, we must be
11881  nested in select_derived rule to be here. */
11882  }
11883  break;
11884 
11885  case 616:
11886 
11887 /* Line 1806 of yacc.c */
11888 #line 3615 "drizzled/sql_yacc.yy"
11889  {
11890  /* Use $2 instead of Lex.current_select as derived table will
11891  alter value of Lex.current_select. */
11892  if (!((yyvsp[(3) - (5)].table_list) || (yyvsp[(5) - (5)].lex_str_ptr)) && (yyvsp[(2) - (5)].select_lex)->embedding &&
11893  !(yyvsp[(2) - (5)].select_lex)->embedding->getNestedJoin()->join_list.size())
11894  {
11895  /* we have a derived table ($3 == NULL) but no alias,
11896  Since we are nested in further parentheses so we
11897  can pass NULL to the outer level parentheses
11898  Permits parsing of "((((select ...))) as xyz)" */
11899  (yyval.table_list)= 0;
11900  }
11901  else if (!(yyvsp[(3) - (5)].table_list))
11902  {
11903  /* Handle case of derived table, alias may be NULL if there
11904  are no outer parentheses, add_table_to_list() will throw
11905  error in this case */
11906  Select_Lex *sel= Lex.current_select;
11907  Select_Lex_Unit *unit= sel->master_unit();
11908  Lex.current_select= sel= unit->outer_select();
11909  if (!((yyval.table_list)= sel->add_table_to_list(Lex.session,
11910  new Table_ident(unit), (yyvsp[(5) - (5)].lex_str_ptr), 0,
11911  TL_READ)))
11912 
11913  DRIZZLE_YYABORT;
11914  sel->add_joined_table((yyval.table_list));
11915  Lex.pop_context();
11916  }
11917  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))
11918  {
11919  /* simple nested joins cannot have aliases or unions */
11920  parser::my_parse_error(YYSession->m_lip);
11921  DRIZZLE_YYABORT;
11922  }
11923  else
11924  (yyval.table_list)= (yyvsp[(3) - (5)].table_list);
11925  }
11926  break;
11927 
11928  case 618:
11929 
11930 /* Line 1806 of yacc.c */
11931 #line 3659 "drizzled/sql_yacc.yy"
11932  {
11933  if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(3) - (3)].num)))
11934  DRIZZLE_YYABORT;
11935  }
11936  break;
11937 
11938  case 619:
11939 
11940 /* Line 1806 of yacc.c */
11941 #line 3664 "drizzled/sql_yacc.yy"
11942  {
11943  /*
11944  Remove from the name resolution context stack the context of the
11945  last select in the union.
11946  */
11947  Lex.pop_context();
11948  }
11949  break;
11950 
11951  case 621:
11952 
11953 /* Line 1806 of yacc.c */
11954 #line 3677 "drizzled/sql_yacc.yy"
11955  {
11956  Select_Lex * sel= Lex.current_select;
11957  if (Lex.current_select->set_braces(0))
11958  {
11959  parser::my_parse_error(YYSession->m_lip);
11960  DRIZZLE_YYABORT;
11961  }
11962  if (sel->linkage == UNION_TYPE &&
11963  sel->master_unit()->first_select()->braces)
11964  {
11965  parser::my_parse_error(YYSession->m_lip);
11966  DRIZZLE_YYABORT;
11967  }
11968  }
11969  break;
11970 
11971  case 622:
11972 
11973 /* Line 1806 of yacc.c */
11974 #line 3695 "drizzled/sql_yacc.yy"
11975  {
11976  Select_Lex *sel= Lex.current_select;
11977  if (sel->linkage != UNION_TYPE)
11978  init_select(&Lex);
11979  Lex.current_select->parsing_place= SELECT_LIST;
11980  }
11981  break;
11982 
11983  case 623:
11984 
11985 /* Line 1806 of yacc.c */
11986 #line 3702 "drizzled/sql_yacc.yy"
11987  {
11988  Lex.current_select->parsing_place= NO_MATTER;
11989  }
11990  break;
11991 
11992  case 625:
11993 
11994 /* Line 1806 of yacc.c */
11995 #line 3711 "drizzled/sql_yacc.yy"
11996  {
11997  (yyvsp[(1) - (1)].select_lex)->init_nested_join(*Lex.session);
11998  }
11999  break;
12000 
12001  case 626:
12002 
12003 /* Line 1806 of yacc.c */
12004 #line 3715 "drizzled/sql_yacc.yy"
12005  {
12006  /* for normal joins, $3 != NULL and end_nested_join() != NULL,
12007  for derived tables, both must equal NULL */
12008 
12009  if (!((yyval.table_list)= (yyvsp[(1) - (3)].select_lex)->end_nested_join()) && (yyvsp[(3) - (3)].table_list))
12010  DRIZZLE_YYABORT;
12011 
12012  if (!(yyvsp[(3) - (3)].table_list) && (yyval.table_list))
12013  {
12014  parser::my_parse_error(YYSession->m_lip);
12015  DRIZZLE_YYABORT;
12016  }
12017  }
12018  break;
12019 
12020  case 627:
12021 
12022 /* Line 1806 of yacc.c */
12023 #line 3731 "drizzled/sql_yacc.yy"
12024  {
12025  Lex.derived_tables|= DERIVED_SUBQUERY;
12026  if (not Lex.expr_allows_subselect)
12027  {
12028  parser::my_parse_error(YYSession->m_lip);
12029  DRIZZLE_YYABORT;
12030  }
12031  if (Lex.current_select->linkage == GLOBAL_OPTIONS_TYPE || new_select(&Lex, 1))
12032  DRIZZLE_YYABORT;
12033  init_select(&Lex);
12034  Lex.current_select->linkage= DERIVED_TABLE_TYPE;
12035  Lex.current_select->parsing_place= SELECT_LIST;
12036  }
12037  break;
12038 
12039  case 628:
12040 
12041 /* Line 1806 of yacc.c */
12042 #line 3745 "drizzled/sql_yacc.yy"
12043  {
12044  Lex.current_select->parsing_place= NO_MATTER;
12045  }
12046  break;
12047 
12048  case 630:
12049 
12050 /* Line 1806 of yacc.c */
12051 #line 3752 "drizzled/sql_yacc.yy"
12052  { (yyval.select_lex)= Lex.current_select; }
12053  break;
12054 
12055  case 631:
12056 
12057 /* Line 1806 of yacc.c */
12058 #line 3757 "drizzled/sql_yacc.yy"
12059  {
12060  Select_Lex *sel= Lex.current_select;
12061  TableList *embedding;
12062  if (!sel->embedding || sel->end_nested_join())
12063  {
12064  /* we are not in parentheses */
12065  parser::my_parse_error(YYSession->m_lip);
12066  DRIZZLE_YYABORT;
12067  }
12068  embedding= Lex.current_select->embedding;
12069  (yyval.num)= embedding &&
12070  !embedding->getNestedJoin()->join_list.size();
12071  /* return true if we are deeply nested */
12072  }
12073  break;
12074 
12075  case 632:
12076 
12077 /* Line 1806 of yacc.c */
12078 #line 3774 "drizzled/sql_yacc.yy"
12079  {}
12080  break;
12081 
12082  case 633:
12083 
12084 /* Line 1806 of yacc.c */
12085 #line 3775 "drizzled/sql_yacc.yy"
12086  {}
12087  break;
12088 
12089  case 634:
12090 
12091 /* Line 1806 of yacc.c */
12092 #line 3780 "drizzled/sql_yacc.yy"
12093  {
12094  (yyval.num)= INDEX_HINT_MASK_ALL;
12095  }
12096  break;
12097 
12098  case 635:
12099 
12100 /* Line 1806 of yacc.c */
12101 #line 3783 "drizzled/sql_yacc.yy"
12102  { (yyval.num)= INDEX_HINT_MASK_JOIN; }
12103  break;
12104 
12105  case 636:
12106 
12107 /* Line 1806 of yacc.c */
12108 #line 3784 "drizzled/sql_yacc.yy"
12109  { (yyval.num)= INDEX_HINT_MASK_ORDER; }
12110  break;
12111 
12112  case 637:
12113 
12114 /* Line 1806 of yacc.c */
12115 #line 3785 "drizzled/sql_yacc.yy"
12116  { (yyval.num)= INDEX_HINT_MASK_GROUP; }
12117  break;
12118 
12119  case 638:
12120 
12121 /* Line 1806 of yacc.c */
12122 #line 3789 "drizzled/sql_yacc.yy"
12123  { (yyval.index_hint)= INDEX_HINT_FORCE; }
12124  break;
12125 
12126  case 639:
12127 
12128 /* Line 1806 of yacc.c */
12129 #line 3790 "drizzled/sql_yacc.yy"
12130  { (yyval.index_hint)= INDEX_HINT_IGNORE; }
12131  break;
12132 
12133  case 640:
12134 
12135 /* Line 1806 of yacc.c */
12136 #line 3795 "drizzled/sql_yacc.yy"
12137  {
12138  Lex.current_select->set_index_hint_type((yyvsp[(1) - (3)].index_hint), (yyvsp[(3) - (3)].num));
12139  }
12140  break;
12141 
12142  case 642:
12143 
12144 /* Line 1806 of yacc.c */
12145 #line 3800 "drizzled/sql_yacc.yy"
12146  {
12147  Lex.current_select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[(3) - (3)].num));
12148  }
12149  break;
12150 
12151  case 647:
12152 
12153 /* Line 1806 of yacc.c */
12154 #line 3813 "drizzled/sql_yacc.yy"
12155  { Lex.current_select->alloc_index_hints(YYSession); }
12156  break;
12157 
12158  case 649:
12159 
12160 /* Line 1806 of yacc.c */
12161 #line 3817 "drizzled/sql_yacc.yy"
12162  { Lex.current_select->clear_index_hints(); }
12163  break;
12164 
12165  case 651:
12166 
12167 /* Line 1806 of yacc.c */
12168 #line 3822 "drizzled/sql_yacc.yy"
12169  { Lex.current_select->add_index_hint(YYSession, NULL); }
12170  break;
12171 
12172  case 652:
12173 
12174 /* Line 1806 of yacc.c */
12175 #line 3823 "drizzled/sql_yacc.yy"
12176  {}
12177  break;
12178 
12179  case 653:
12180 
12181 /* Line 1806 of yacc.c */
12182 #line 3828 "drizzled/sql_yacc.yy"
12183  { Lex.current_select->add_index_hint(YYSession, (yyvsp[(1) - (1)].lex_str).data()); }
12184  break;
12185 
12186  case 654:
12187 
12188 /* Line 1806 of yacc.c */
12189 #line 3830 "drizzled/sql_yacc.yy"
12190  { Lex.current_select->add_index_hint(YYSession, "PRIMARY"); }
12191  break;
12192 
12193  case 657:
12194 
12195 /* Line 1806 of yacc.c */
12196 #line 3840 "drizzled/sql_yacc.yy"
12197  {
12198  (yyval.string_list)= new List<String>;
12199  (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));
12200  }
12201  break;
12202 
12203  case 658:
12204 
12205 /* Line 1806 of yacc.c */
12206 #line 3845 "drizzled/sql_yacc.yy"
12207  {
12208  (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));
12209  (yyval.string_list)= (yyvsp[(1) - (3)].string_list);
12210  }
12211  break;
12212 
12213  case 659:
12214 
12215 /* Line 1806 of yacc.c */
12216 #line 3852 "drizzled/sql_yacc.yy"
12217  {}
12218  break;
12219 
12220  case 660:
12221 
12222 /* Line 1806 of yacc.c */
12223 #line 3853 "drizzled/sql_yacc.yy"
12224  { (yyval.interval)=INTERVAL_DAY_HOUR; }
12225  break;
12226 
12227  case 661:
12228 
12229 /* Line 1806 of yacc.c */
12230 #line 3854 "drizzled/sql_yacc.yy"
12231  { (yyval.interval)=INTERVAL_DAY_MICROSECOND; }
12232  break;
12233 
12234  case 662:
12235 
12236 /* Line 1806 of yacc.c */
12237 #line 3855 "drizzled/sql_yacc.yy"
12238  { (yyval.interval)=INTERVAL_DAY_MINUTE; }
12239  break;
12240 
12241  case 663:
12242 
12243 /* Line 1806 of yacc.c */
12244 #line 3856 "drizzled/sql_yacc.yy"
12245  { (yyval.interval)=INTERVAL_DAY_SECOND; }
12246  break;
12247 
12248  case 664:
12249 
12250 /* Line 1806 of yacc.c */
12251 #line 3857 "drizzled/sql_yacc.yy"
12252  { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; }
12253  break;
12254 
12255  case 665:
12256 
12257 /* Line 1806 of yacc.c */
12258 #line 3858 "drizzled/sql_yacc.yy"
12259  { (yyval.interval)=INTERVAL_HOUR_MINUTE; }
12260  break;
12261 
12262  case 666:
12263 
12264 /* Line 1806 of yacc.c */
12265 #line 3859 "drizzled/sql_yacc.yy"
12266  { (yyval.interval)=INTERVAL_HOUR_SECOND; }
12267  break;
12268 
12269  case 667:
12270 
12271 /* Line 1806 of yacc.c */
12272 #line 3860 "drizzled/sql_yacc.yy"
12273  { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; }
12274  break;
12275 
12276  case 668:
12277 
12278 /* Line 1806 of yacc.c */
12279 #line 3861 "drizzled/sql_yacc.yy"
12280  { (yyval.interval)=INTERVAL_MINUTE_SECOND; }
12281  break;
12282 
12283  case 669:
12284 
12285 /* Line 1806 of yacc.c */
12286 #line 3862 "drizzled/sql_yacc.yy"
12287  { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; }
12288  break;
12289 
12290  case 670:
12291 
12292 /* Line 1806 of yacc.c */
12293 #line 3863 "drizzled/sql_yacc.yy"
12294  { (yyval.interval)=INTERVAL_YEAR_MONTH; }
12295  break;
12296 
12297  case 671:
12298 
12299 /* Line 1806 of yacc.c */
12300 #line 3867 "drizzled/sql_yacc.yy"
12301  {}
12302  break;
12303 
12304  case 672:
12305 
12306 /* Line 1806 of yacc.c */
12307 #line 3868 "drizzled/sql_yacc.yy"
12308  {
12309  (yyval.interval_time_st)=INTERVAL_MICROSECOND;
12310  /*
12311  FRAC_SECOND was mistakenly implemented with
12312  a wrong resolution. According to the ODBC
12313  standard it should be nanoseconds, not
12314  microseconds. Changing it to nanoseconds
12315  in MySQL would mean making TIMESTAMPDIFF
12316  and TIMESTAMPADD to return DECIMAL, since
12317  the return value would be too big for BIGINT
12318  Hence we just deprecate the incorrect
12319  implementation without changing its
12320  resolution.
12321  */
12322  }
12323  break;
12324 
12325  case 673:
12326 
12327 /* Line 1806 of yacc.c */
12328 #line 3886 "drizzled/sql_yacc.yy"
12329  { (yyval.interval_time_st)=INTERVAL_DAY; }
12330  break;
12331 
12332  case 674:
12333 
12334 /* Line 1806 of yacc.c */
12335 #line 3887 "drizzled/sql_yacc.yy"
12336  { (yyval.interval_time_st)=INTERVAL_WEEK; }
12337  break;
12338 
12339  case 675:
12340 
12341 /* Line 1806 of yacc.c */
12342 #line 3888 "drizzled/sql_yacc.yy"
12343  { (yyval.interval_time_st)=INTERVAL_HOUR; }
12344  break;
12345 
12346  case 676:
12347 
12348 /* Line 1806 of yacc.c */
12349 #line 3889 "drizzled/sql_yacc.yy"
12350  { (yyval.interval_time_st)=INTERVAL_MINUTE; }
12351  break;
12352 
12353  case 677:
12354 
12355 /* Line 1806 of yacc.c */
12356 #line 3890 "drizzled/sql_yacc.yy"
12357  { (yyval.interval_time_st)=INTERVAL_MONTH; }
12358  break;
12359 
12360  case 678:
12361 
12362 /* Line 1806 of yacc.c */
12363 #line 3891 "drizzled/sql_yacc.yy"
12364  { (yyval.interval_time_st)=INTERVAL_QUARTER; }
12365  break;
12366 
12367  case 679:
12368 
12369 /* Line 1806 of yacc.c */
12370 #line 3892 "drizzled/sql_yacc.yy"
12371  { (yyval.interval_time_st)=INTERVAL_SECOND; }
12372  break;
12373 
12374  case 680:
12375 
12376 /* Line 1806 of yacc.c */
12377 #line 3893 "drizzled/sql_yacc.yy"
12378  { (yyval.interval_time_st)=INTERVAL_MICROSECOND; }
12379  break;
12380 
12381  case 681:
12382 
12383 /* Line 1806 of yacc.c */
12384 #line 3894 "drizzled/sql_yacc.yy"
12385  { (yyval.interval_time_st)=INTERVAL_YEAR; }
12386  break;
12387 
12388  case 684:
12389 
12390 /* Line 1806 of yacc.c */
12391 #line 3903 "drizzled/sql_yacc.yy"
12392  { (yyval.lex_str_ptr)=0; }
12393  break;
12394 
12395  case 685:
12396 
12397 /* Line 1806 of yacc.c */
12398 #line 3905 "drizzled/sql_yacc.yy"
12399  {
12400  (yyval.lex_str_ptr)= (drizzled::lex_string_t*) memory::sql_memdup(&(yyvsp[(2) - (2)].lex_str),sizeof(drizzled::lex_string_t));
12401  }
12402  break;
12403 
12404  case 688:
12405 
12406 /* Line 1806 of yacc.c */
12407 #line 3916 "drizzled/sql_yacc.yy"
12408  { Lex.current_select->where= 0; }
12409  break;
12410 
12411  case 689:
12412 
12413 /* Line 1806 of yacc.c */
12414 #line 3918 "drizzled/sql_yacc.yy"
12415  {
12416  Lex.current_select->parsing_place= IN_WHERE;
12417  }
12418  break;
12419 
12420  case 690:
12421 
12422 /* Line 1806 of yacc.c */
12423 #line 3922 "drizzled/sql_yacc.yy"
12424  {
12425  Select_Lex *select= Lex.current_select;
12426  select->where= (yyvsp[(3) - (3)].item);
12427  select->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 1806 of yacc.c */
12436 #line 3934 "drizzled/sql_yacc.yy"
12437  {
12438  Lex.current_select->parsing_place= IN_HAVING;
12439  }
12440  break;
12441 
12442  case 693:
12443 
12444 /* Line 1806 of yacc.c */
12445 #line 3938 "drizzled/sql_yacc.yy"
12446  {
12447  Select_Lex *sel= Lex.current_select;
12448  sel->having= (yyvsp[(3) - (3)].item);
12449  sel->parsing_place= NO_MATTER;
12450  if ((yyvsp[(3) - (3)].item))
12451  (yyvsp[(3) - (3)].item)->top_level_item();
12452  }
12453  break;
12454 
12455  case 694:
12456 
12457 /* Line 1806 of yacc.c */
12458 #line 3949 "drizzled/sql_yacc.yy"
12459  {
12460  Lex.escape_used= true;
12461  (yyval.item)= (yyvsp[(2) - (2)].item);
12462  }
12463  break;
12464 
12465  case 695:
12466 
12467 /* Line 1806 of yacc.c */
12468 #line 3954 "drizzled/sql_yacc.yy"
12469  {
12470  Lex.escape_used= false;
12471  (yyval.item)= new Item_string(str_ref("\\"), &my_charset_utf8_general_ci);
12472  }
12473  break;
12474 
12475  case 698:
12476 
12477 /* Line 1806 of yacc.c */
12478 #line 3971 "drizzled/sql_yacc.yy"
12479  { YYSession->add_group_to_list((yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num)); }
12480  break;
12481 
12482  case 699:
12483 
12484 /* Line 1806 of yacc.c */
12485 #line 3973 "drizzled/sql_yacc.yy"
12486  { YYSession->add_group_to_list((yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num)); }
12487  break;
12488 
12489  case 700:
12490 
12491 /* Line 1806 of yacc.c */
12492 #line 3977 "drizzled/sql_yacc.yy"
12493  {}
12494  break;
12495 
12496  case 701:
12497 
12498 /* Line 1806 of yacc.c */
12499 #line 3979 "drizzled/sql_yacc.yy"
12500  {
12501  /*
12502  'WITH ROLLUP' is needed for backward compatibility,
12503  and cause LALR(2) conflicts.
12504  This syntax is not standard.
12505  MySQL syntax: GROUP BY col1, col2, col3 WITH ROLLUP
12506  SQL-2003: GROUP BY ... ROLLUP(col1, col2, col3)
12507  */
12508  if (Lex.current_select->linkage == GLOBAL_OPTIONS_TYPE)
12509  {
12510  my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
12511  "global union parameters");
12512  DRIZZLE_YYABORT;
12513  }
12514  Lex.current_select->olap= ROLLUP_TYPE;
12515  }
12516  break;
12517 
12518  case 705:
12519 
12520 /* Line 1806 of yacc.c */
12521 #line 4012 "drizzled/sql_yacc.yy"
12522  {
12523  bool ascending= (yyvsp[(2) - (2)].num) == 1;
12524  YYSession->add_order_to_list((yyvsp[(1) - (2)].item), ascending);
12525  }
12526  break;
12527 
12528  case 708:
12529 
12530 /* Line 1806 of yacc.c */
12531 #line 4029 "drizzled/sql_yacc.yy"
12532  {
12533  if (not parser::buildOrderBy(&Lex))
12534  DRIZZLE_YYABORT;
12535  }
12536  break;
12537 
12538  case 710:
12539 
12540 /* Line 1806 of yacc.c */
12541 #line 4038 "drizzled/sql_yacc.yy"
12542  {
12543  YYSession->add_order_to_list((yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num));
12544  }
12545  break;
12546 
12547  case 711:
12548 
12549 /* Line 1806 of yacc.c */
12550 #line 4042 "drizzled/sql_yacc.yy"
12551  {
12552  YYSession->add_order_to_list((yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num));
12553  }
12554  break;
12555 
12556  case 712:
12557 
12558 /* Line 1806 of yacc.c */
12559 #line 4048 "drizzled/sql_yacc.yy"
12560  { (yyval.num) = 1; }
12561  break;
12562 
12563  case 713:
12564 
12565 /* Line 1806 of yacc.c */
12566 #line 4049 "drizzled/sql_yacc.yy"
12567  { (yyval.num) =1; }
12568  break;
12569 
12570  case 714:
12571 
12572 /* Line 1806 of yacc.c */
12573 #line 4050 "drizzled/sql_yacc.yy"
12574  { (yyval.num) =0; }
12575  break;
12576 
12577  case 715:
12578 
12579 /* Line 1806 of yacc.c */
12580 #line 4055 "drizzled/sql_yacc.yy"
12581  {
12582  Select_Lex *sel= Lex.current_select;
12583  sel->offset_limit= 0;
12584  sel->select_limit= 0;
12585  }
12586  break;
12587 
12588  case 716:
12589 
12590 /* Line 1806 of yacc.c */
12591 #line 4060 "drizzled/sql_yacc.yy"
12592  {}
12593  break;
12594 
12595  case 717:
12596 
12597 /* Line 1806 of yacc.c */
12598 #line 4064 "drizzled/sql_yacc.yy"
12599  {}
12600  break;
12601 
12602  case 718:
12603 
12604 /* Line 1806 of yacc.c */
12605 #line 4065 "drizzled/sql_yacc.yy"
12606  {}
12607  break;
12608 
12609  case 719:
12610 
12611 /* Line 1806 of yacc.c */
12612 #line 4069 "drizzled/sql_yacc.yy"
12613  {}
12614  break;
12615 
12616  case 720:
12617 
12618 /* Line 1806 of yacc.c */
12619 #line 4074 "drizzled/sql_yacc.yy"
12620  {
12621  Select_Lex *sel= Lex.current_select;
12622  sel->select_limit= (yyvsp[(1) - (1)].item);
12623  sel->offset_limit= 0;
12624  sel->explicit_limit= 1;
12625  }
12626  break;
12627 
12628  case 721:
12629 
12630 /* Line 1806 of yacc.c */
12631 #line 4081 "drizzled/sql_yacc.yy"
12632  {
12633  Select_Lex *sel= Lex.current_select;
12634  sel->select_limit= (yyvsp[(3) - (3)].item);
12635  sel->offset_limit= (yyvsp[(1) - (3)].item);
12636  sel->explicit_limit= 1;
12637  }
12638  break;
12639 
12640  case 722:
12641 
12642 /* Line 1806 of yacc.c */
12643 #line 4088 "drizzled/sql_yacc.yy"
12644  {
12645  Select_Lex *sel= Lex.current_select;
12646  sel->select_limit= (yyvsp[(1) - (3)].item);
12647  sel->offset_limit= (yyvsp[(3) - (3)].item);
12648  sel->explicit_limit= 1;
12649  }
12650  break;
12651 
12652  case 723:
12653 
12654 /* Line 1806 of yacc.c */
12655 #line 4097 "drizzled/sql_yacc.yy"
12656  { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
12657  break;
12658 
12659  case 724:
12660 
12661 /* Line 1806 of yacc.c */
12662 #line 4098 "drizzled/sql_yacc.yy"
12663  { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
12664  break;
12665 
12666  case 725:
12667 
12668 /* Line 1806 of yacc.c */
12669 #line 4099 "drizzled/sql_yacc.yy"
12670  { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
12671  break;
12672 
12673  case 726:
12674 
12675 /* Line 1806 of yacc.c */
12676 #line 4104 "drizzled/sql_yacc.yy"
12677  {
12678  Lex.current_select->select_limit= 0;
12679  }
12680  break;
12681 
12682  case 727:
12683 
12684 /* Line 1806 of yacc.c */
12685 #line 4108 "drizzled/sql_yacc.yy"
12686  {
12687  Select_Lex *sel= Lex.current_select;
12688  sel->select_limit= (yyvsp[(2) - (2)].item);
12689  sel->explicit_limit= 1;
12690  }
12691  break;
12692 
12693  case 728:
12694 
12695 /* Line 1806 of yacc.c */
12696 #line 4116 "drizzled/sql_yacc.yy"
12697  { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12698  break;
12699 
12700  case 729:
12701 
12702 /* Line 1806 of yacc.c */
12703 #line 4117 "drizzled/sql_yacc.yy"
12704  { (yyval.ulong_num)= (unsigned long) strtol((yyvsp[(1) - (1)].lex_str).data(), NULL, 16); }
12705  break;
12706 
12707  case 730:
12708 
12709 /* Line 1806 of yacc.c */
12710 #line 4118 "drizzled/sql_yacc.yy"
12711  { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12712  break;
12713 
12714  case 731:
12715 
12716 /* Line 1806 of yacc.c */
12717 #line 4119 "drizzled/sql_yacc.yy"
12718  { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12719  break;
12720 
12721  case 732:
12722 
12723 /* Line 1806 of yacc.c */
12724 #line 4120 "drizzled/sql_yacc.yy"
12725  { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12726  break;
12727 
12728  case 733:
12729 
12730 /* Line 1806 of yacc.c */
12731 #line 4121 "drizzled/sql_yacc.yy"
12732  { int error; (yyval.ulong_num)= (unsigned long) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12733  break;
12734 
12735  case 734:
12736 
12737 /* Line 1806 of yacc.c */
12738 #line 4125 "drizzled/sql_yacc.yy"
12739  { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12740  break;
12741 
12742  case 735:
12743 
12744 /* Line 1806 of yacc.c */
12745 #line 4126 "drizzled/sql_yacc.yy"
12746  { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12747  break;
12748 
12749  case 736:
12750 
12751 /* Line 1806 of yacc.c */
12752 #line 4127 "drizzled/sql_yacc.yy"
12753  { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12754  break;
12755 
12756  case 737:
12757 
12758 /* Line 1806 of yacc.c */
12759 #line 4128 "drizzled/sql_yacc.yy"
12760  { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12761  break;
12762 
12763  case 738:
12764 
12765 /* Line 1806 of yacc.c */
12766 #line 4129 "drizzled/sql_yacc.yy"
12767  { int error; (yyval.ulonglong_number)= (uint64_t) internal::my_strtoll10((yyvsp[(1) - (1)].lex_str).data(), NULL, &error); }
12768  break;
12769 
12770  case 739:
12771 
12772 /* Line 1806 of yacc.c */
12773 #line 4133 "drizzled/sql_yacc.yy"
12774  {
12775  if (not Lex.describe)
12776  Lex.result= new select_dumpvar;
12777  }
12778  break;
12779 
12780  case 740:
12781 
12782 /* Line 1806 of yacc.c */
12783 #line 4138 "drizzled/sql_yacc.yy"
12784  {}
12785  break;
12786 
12787  case 742:
12788 
12789 /* Line 1806 of yacc.c */
12790 #line 4143 "drizzled/sql_yacc.yy"
12791  {}
12792  break;
12793 
12794  case 743:
12795 
12796 /* Line 1806 of yacc.c */
12797 #line 4148 "drizzled/sql_yacc.yy"
12798  {
12799  if (Lex.result)
12800  {
12801  ((select_dumpvar *)Lex.result)->var_list.push_back( new var((yyvsp[(2) - (2)].lex_str),0,0,(enum_field_types)0));
12802  }
12803  else
12804  {
12805  /*
12806  The parser won't create select_result instance only
12807  if it's an EXPLAIN.
12808  */
12809  assert(Lex.describe);
12810  }
12811  }
12812  break;
12813 
12814  case 744:
12815 
12816 /* Line 1806 of yacc.c */
12817 #line 4166 "drizzled/sql_yacc.yy"
12818  { }
12819  break;
12820 
12821  case 746:
12822 
12823 /* Line 1806 of yacc.c */
12824 #line 4172 "drizzled/sql_yacc.yy"
12825  {
12826  Lex.setCacheable(false);
12827  Lex.exchange= new file_exchange((yyvsp[(2) - (2)].lex_str).data(), 0);
12828  Lex.result= new select_export(Lex.exchange);
12829  }
12830  break;
12831 
12832  case 748:
12833 
12834 /* Line 1806 of yacc.c */
12835 #line 4179 "drizzled/sql_yacc.yy"
12836  {
12837  if (not Lex.describe)
12838  {
12839  Lex.setCacheable(false);
12840  Lex.exchange= new file_exchange((yyvsp[(2) - (2)].lex_str).data(),1);
12841  Lex.result= new select_dump(Lex.exchange);
12842  }
12843  }
12844  break;
12845 
12846  case 749:
12847 
12848 /* Line 1806 of yacc.c */
12849 #line 4188 "drizzled/sql_yacc.yy"
12850  {Lex.setCacheable(false);}
12851  break;
12852 
12853  case 750:
12854 
12855 /* Line 1806 of yacc.c */
12856 #line 4197 "drizzled/sql_yacc.yy"
12857  {
12858  Lex.statement= new statement::catalog::Drop(YYSession, (yyvsp[(3) - (3)].lex_str));
12859  }
12860  break;
12861 
12862  case 751:
12863 
12864 /* Line 1806 of yacc.c */
12865 #line 4201 "drizzled/sql_yacc.yy"
12866  {
12867  statement::DropTable *statement= new statement::DropTable(YYSession);
12868  Lex.statement= statement;
12869  statement->drop_temporary= (yyvsp[(2) - (5)].boolean);
12870  statement->drop_if_exists= (yyvsp[(4) - (5)].boolean);
12871  }
12872  break;
12873 
12874  case 752:
12875 
12876 /* Line 1806 of yacc.c */
12877 #line 4207 "drizzled/sql_yacc.yy"
12878  {}
12879  break;
12880 
12881  case 753:
12882 
12883 /* Line 1806 of yacc.c */
12884 #line 4208 "drizzled/sql_yacc.yy"
12885  {
12886  statement::DropIndex *statement= new statement::DropIndex(YYSession);
12887  Lex.statement= statement;
12888  statement->alter_info.flags.set(ALTER_DROP_INDEX);
12889 
12890  if (not Lex.current_select->add_table_to_list(Lex.session, (yyvsp[(6) - (7)].table), NULL,
12891  TL_OPTION_UPDATING))
12892  DRIZZLE_YYABORT;
12893 
12895  operation= Lex.alter_table()->add_operations();
12896  operation->set_operation(message::AlterTable::AlterTableOperation::DROP_KEY);
12897  operation->set_drop_name((yyvsp[(4) - (7)].lex_str).data());
12898 
12899  }
12900  break;
12901 
12902  case 754:
12903 
12904 /* Line 1806 of yacc.c */
12905 #line 4224 "drizzled/sql_yacc.yy"
12906  {
12907  statement::DropSchema *statement= new statement::DropSchema(YYSession);
12908  Lex.statement= statement;
12909  statement->drop_if_exists=(yyvsp[(3) - (4)].boolean);
12910  Lex.name= (yyvsp[(4) - (4)].lex_str);
12911  }
12912  break;
12913 
12914  case 757:
12915 
12916 /* Line 1806 of yacc.c */
12917 #line 4239 "drizzled/sql_yacc.yy"
12918  {
12919  if (!Lex.current_select->add_table_to_list(YYSession, (yyvsp[(1) - (1)].table), NULL, TL_OPTION_UPDATING))
12920  DRIZZLE_YYABORT;
12921  }
12922  break;
12923 
12924  case 758:
12925 
12926 /* Line 1806 of yacc.c */
12927 #line 4246 "drizzled/sql_yacc.yy"
12928  { (yyval.boolean)= false; }
12929  break;
12930 
12931  case 759:
12932 
12933 /* Line 1806 of yacc.c */
12934 #line 4247 "drizzled/sql_yacc.yy"
12935  { (yyval.boolean)= true; }
12936  break;
12937 
12938  case 760:
12939 
12940 /* Line 1806 of yacc.c */
12941 #line 4251 "drizzled/sql_yacc.yy"
12942  { (yyval.boolean)= false; }
12943  break;
12944 
12945  case 761:
12946 
12947 /* Line 1806 of yacc.c */
12948 #line 4252 "drizzled/sql_yacc.yy"
12949  { (yyval.boolean)= true; }
12950  break;
12951 
12952  case 762:
12953 
12954 /* Line 1806 of yacc.c */
12955 #line 4261 "drizzled/sql_yacc.yy"
12956  {
12957  Lex.statement= new statement::Execute(YYSession, (yyvsp[(2) - (5)].execute_string), (yyvsp[(3) - (5)].boolean), (yyvsp[(4) - (5)].boolean), (yyvsp[(5) - (5)].boolean));
12958  }
12959  break;
12960 
12961  case 763:
12962 
12963 /* Line 1806 of yacc.c */
12964 #line 4268 "drizzled/sql_yacc.yy"
12965  {
12966  (yyval.execute_string).set((yyvsp[(1) - (1)].lex_str));
12967  }
12968  break;
12969 
12970  case 764:
12971 
12972 /* Line 1806 of yacc.c */
12973 #line 4272 "drizzled/sql_yacc.yy"
12974  {
12975  (yyval.execute_string).set((yyvsp[(2) - (2)].lex_str), true);
12976  }
12977  break;
12978 
12979  case 765:
12980 
12981 /* Line 1806 of yacc.c */
12982 #line 4277 "drizzled/sql_yacc.yy"
12983  { (yyval.boolean)= false; }
12984  break;
12985 
12986  case 766:
12987 
12988 /* Line 1806 of yacc.c */
12989 #line 4278 "drizzled/sql_yacc.yy"
12990  { (yyval.boolean)= true; }
12991  break;
12992 
12993  case 767:
12994 
12995 /* Line 1806 of yacc.c */
12996 #line 4282 "drizzled/sql_yacc.yy"
12997  { (yyval.boolean)= false; }
12998  break;
12999 
13000  case 768:
13001 
13002 /* Line 1806 of yacc.c */
13003 #line 4283 "drizzled/sql_yacc.yy"
13004  { (yyval.boolean)= true; }
13005  break;
13006 
13007  case 769:
13008 
13009 /* Line 1806 of yacc.c */
13010 #line 4287 "drizzled/sql_yacc.yy"
13011  { (yyval.boolean)= false; }
13012  break;
13013 
13014  case 770:
13015 
13016 /* Line 1806 of yacc.c */
13017 #line 4288 "drizzled/sql_yacc.yy"
13018  { (yyval.boolean)= true; }
13019  break;
13020 
13021  case 771:
13022 
13023 /* Line 1806 of yacc.c */
13024 #line 4297 "drizzled/sql_yacc.yy"
13025  {
13026  Lex.statement= new statement::Insert(YYSession);
13027  Lex.duplicates= DUP_ERROR;
13028  init_select(&Lex);
13029  /* for subselects */
13030  Lex.lock_option= TL_READ;
13031  }
13032  break;
13033 
13034  case 772:
13035 
13036 /* Line 1806 of yacc.c */
13037 #line 4305 "drizzled/sql_yacc.yy"
13038  {
13039  Lex.current_select->set_lock_for_tables(TL_WRITE_CONCURRENT_INSERT);
13040  Lex.current_select= &Lex.select_lex;
13041  }
13042  break;
13043 
13044  case 773:
13045 
13046 /* Line 1806 of yacc.c */
13047 #line 4310 "drizzled/sql_yacc.yy"
13048  {}
13049  break;
13050 
13051  case 774:
13052 
13053 /* Line 1806 of yacc.c */
13054 #line 4315 "drizzled/sql_yacc.yy"
13055  {
13056  Lex.statement= new statement::Replace(YYSession);
13057  Lex.duplicates= DUP_REPLACE;
13058  init_select(&Lex);
13059  }
13060  break;
13061 
13062  case 775:
13063 
13064 /* Line 1806 of yacc.c */
13065 #line 4321 "drizzled/sql_yacc.yy"
13066  {
13067  Lex.current_select->set_lock_for_tables(TL_WRITE_DEFAULT);
13068  Lex.current_select= &Lex.select_lex;
13069  }
13070  break;
13071 
13072  case 776:
13073 
13074 /* Line 1806 of yacc.c */
13075 #line 4326 "drizzled/sql_yacc.yy"
13076  {}
13077  break;
13078 
13079  case 777:
13080 
13081 /* Line 1806 of yacc.c */
13082 #line 4330 "drizzled/sql_yacc.yy"
13083  {}
13084  break;
13085 
13086  case 778:
13087 
13088 /* Line 1806 of yacc.c */
13089 #line 4331 "drizzled/sql_yacc.yy"
13090  {}
13091  break;
13092 
13093  case 779:
13094 
13095 /* Line 1806 of yacc.c */
13096 #line 4336 "drizzled/sql_yacc.yy"
13097  {
13098  Lex.field_list.clear();
13099  Lex.many_values.clear();
13100  Lex.insert_list=0;
13101  }
13102  break;
13103 
13104  case 780:
13105 
13106 /* Line 1806 of yacc.c */
13107 #line 4343 "drizzled/sql_yacc.yy"
13108  {}
13109  break;
13110 
13111  case 781:
13112 
13113 /* Line 1806 of yacc.c */
13114 #line 4344 "drizzled/sql_yacc.yy"
13115  {}
13116  break;
13117 
13118  case 782:
13119 
13120 /* Line 1806 of yacc.c */
13121 #line 4345 "drizzled/sql_yacc.yy"
13122  {}
13123  break;
13124 
13125  case 783:
13126 
13127 /* Line 1806 of yacc.c */
13128 #line 4347 "drizzled/sql_yacc.yy"
13129  {
13130  Lex.insert_list = new List_item;
13131  Lex.many_values.push_back(Lex.insert_list);
13132  }
13133  break;
13134 
13135  case 785:
13136 
13137 /* Line 1806 of yacc.c */
13138 #line 4355 "drizzled/sql_yacc.yy"
13139  { Lex.field_list.push_back((yyvsp[(3) - (3)].item)); }
13140  break;
13141 
13142  case 786:
13143 
13144 /* Line 1806 of yacc.c */
13145 #line 4356 "drizzled/sql_yacc.yy"
13146  { Lex.field_list.push_back((yyvsp[(1) - (1)].item)); }
13147  break;
13148 
13149  case 787:
13150 
13151 /* Line 1806 of yacc.c */
13152 #line 4360 "drizzled/sql_yacc.yy"
13153  {}
13154  break;
13155 
13156  case 788:
13157 
13158 /* Line 1806 of yacc.c */
13159 #line 4361 "drizzled/sql_yacc.yy"
13160  {}
13161  break;
13162 
13163  case 789:
13164 
13165 /* Line 1806 of yacc.c */
13166 #line 4363 "drizzled/sql_yacc.yy"
13167  {
13168  Lex.current_select->set_braces(0);
13169  }
13170  break;
13171 
13172  case 790:
13173 
13174 /* Line 1806 of yacc.c */
13175 #line 4366 "drizzled/sql_yacc.yy"
13176  {}
13177  break;
13178 
13179  case 791:
13180 
13181 /* Line 1806 of yacc.c */
13182 #line 4368 "drizzled/sql_yacc.yy"
13183  {
13184  Lex.current_select->set_braces(1);
13185  }
13186  break;
13187 
13188  case 792:
13189 
13190 /* Line 1806 of yacc.c */
13191 #line 4371 "drizzled/sql_yacc.yy"
13192  {}
13193  break;
13194 
13195  case 797:
13196 
13197 /* Line 1806 of yacc.c */
13198 #line 4386 "drizzled/sql_yacc.yy"
13199  {
13200  Lex.field_list.push_back((yyvsp[(1) - (3)].item));
13201  Lex.insert_list->push_back((yyvsp[(3) - (3)].item));
13202  }
13203  break;
13204 
13205  case 798:
13206 
13207 /* Line 1806 of yacc.c */
13208 #line 4393 "drizzled/sql_yacc.yy"
13209  {}
13210  break;
13211 
13212  case 799:
13213 
13214 /* Line 1806 of yacc.c */
13215 #line 4394 "drizzled/sql_yacc.yy"
13216  {}
13217  break;
13218 
13219  case 800:
13220 
13221 /* Line 1806 of yacc.c */
13222 #line 4398 "drizzled/sql_yacc.yy"
13223  {}
13224  break;
13225 
13226  case 801:
13227 
13228 /* Line 1806 of yacc.c */
13229 #line 4399 "drizzled/sql_yacc.yy"
13230  {}
13231  break;
13232 
13233  case 802:
13234 
13235 /* Line 1806 of yacc.c */
13236 #line 4404 "drizzled/sql_yacc.yy"
13237  {
13238  Lex.insert_list = new List_item;
13239  }
13240  break;
13241 
13242  case 803:
13243 
13244 /* Line 1806 of yacc.c */
13245 #line 4408 "drizzled/sql_yacc.yy"
13246  {
13247  Lex.many_values.push_back(Lex.insert_list);
13248  }
13249  break;
13250 
13251  case 804:
13252 
13253 /* Line 1806 of yacc.c */
13254 #line 4414 "drizzled/sql_yacc.yy"
13255  {}
13256  break;
13257 
13258  case 806:
13259 
13260 /* Line 1806 of yacc.c */
13261 #line 4420 "drizzled/sql_yacc.yy"
13262  {
13263  Lex.insert_list->push_back((yyvsp[(3) - (3)].item));
13264  }
13265  break;
13266 
13267  case 807:
13268 
13269 /* Line 1806 of yacc.c */
13270 #line 4424 "drizzled/sql_yacc.yy"
13271  {
13272  Lex.insert_list->push_back((yyvsp[(1) - (1)].item));
13273  }
13274  break;
13275 
13276  case 808:
13277 
13278 /* Line 1806 of yacc.c */
13279 #line 4430 "drizzled/sql_yacc.yy"
13280  { (yyval.item)= (yyvsp[(1) - (1)].item);}
13281  break;
13282 
13283  case 809:
13284 
13285 /* Line 1806 of yacc.c */
13286 #line 4431 "drizzled/sql_yacc.yy"
13287  {(yyval.item)= new Item_default_value(Lex.current_context()); }
13288  break;
13289 
13290  case 811:
13291 
13292 /* Line 1806 of yacc.c */
13293 #line 4436 "drizzled/sql_yacc.yy"
13294  { Lex.duplicates= DUP_UPDATE; }
13295  break;
13296 
13297  case 813:
13298 
13299 /* Line 1806 of yacc.c */
13300 #line 4444 "drizzled/sql_yacc.yy"
13301  {
13302  init_select(&Lex);
13303  Lex.statement= new statement::Update(YYSession);
13304  Lex.lock_option= TL_UNLOCK; /* Will be set later */
13305  Lex.duplicates= DUP_ERROR;
13306  if (not Lex.select_lex.add_table_to_list(YYSession, (yyvsp[(3) - (5)].table), NULL,0))
13307  DRIZZLE_YYABORT;
13308 
13309  if (Lex.select_lex.get_table_list()->derived)
13310  {
13311  /* it is single table update and it is update of derived table */
13312  my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
13313  Lex.select_lex.get_table_list()->alias, "UPDATE");
13314  DRIZZLE_YYABORT;
13315  }
13316  /*
13317  In case of multi-update setting write lock for all tables may
13318  be too pessimistic. We will decrease lock level if possible in
13319  multi_update().
13320  */
13321  Lex.current_select->set_lock_for_tables(TL_WRITE_DEFAULT);
13322  }
13323  break;
13324 
13325  case 814:
13326 
13327 /* Line 1806 of yacc.c */
13328 #line 4466 "drizzled/sql_yacc.yy"
13329  {}
13330  break;
13331 
13332  case 817:
13333 
13334 /* Line 1806 of yacc.c */
13335 #line 4476 "drizzled/sql_yacc.yy"
13336  {
13337  YYSession->add_item_to_list((yyvsp[(1) - (3)].item));
13338  YYSession->add_value_to_list((yyvsp[(3) - (3)].item));
13339  }
13340  break;
13341 
13342  case 820:
13343 
13344 /* Line 1806 of yacc.c */
13345 #line 4489 "drizzled/sql_yacc.yy"
13346  {
13347  Lex.update_list.push_back((yyvsp[(1) - (3)].item));
13348  Lex.value_list.push_back((yyvsp[(3) - (3)].item));
13349  }
13350  break;
13351 
13352  case 821:
13353 
13354 /* Line 1806 of yacc.c */
13355 #line 4499 "drizzled/sql_yacc.yy"
13356  {
13357  Lex.statement= new statement::Delete(YYSession);
13358  init_select(&Lex);
13359  Lex.lock_option= TL_WRITE_DEFAULT;
13360  Lex.select_lex.init_order();
13361  Lex.current_select->add_table_to_list(YYSession, (yyvsp[(4) - (4)].table), NULL, TL_OPTION_UPDATING, Lex.lock_option);
13362  }
13363  break;
13364 
13365  case 822:
13366 
13367 /* Line 1806 of yacc.c */
13368 #line 4507 "drizzled/sql_yacc.yy"
13369  {}
13370  break;
13371 
13372  case 823:
13373 
13374 /* Line 1806 of yacc.c */
13375 #line 4511 "drizzled/sql_yacc.yy"
13376  { Lex.ignore= 0; }
13377  break;
13378 
13379  case 824:
13380 
13381 /* Line 1806 of yacc.c */
13382 #line 4512 "drizzled/sql_yacc.yy"
13383  { Lex.ignore= 1; }
13384  break;
13385 
13386  case 825:
13387 
13388 /* Line 1806 of yacc.c */
13389 #line 4517 "drizzled/sql_yacc.yy"
13390  {
13391  Lex.statement= new statement::Truncate(YYSession);
13392  Lex.select_lex.options= 0;
13393  Lex.select_lex.init_order();
13394  }
13395  break;
13396 
13397  case 828:
13398 
13399 /* Line 1806 of yacc.c */
13400 #line 4533 "drizzled/sql_yacc.yy"
13401  {
13402  Lex.lock_option= TL_READ;
13403  init_select(&Lex);
13404  Lex.current_select->parsing_place= SELECT_LIST;
13405  }
13406  break;
13407 
13408  case 829:
13409 
13410 /* Line 1806 of yacc.c */
13411 #line 4539 "drizzled/sql_yacc.yy"
13412  {}
13413  break;
13414 
13415  case 830:
13416 
13417 /* Line 1806 of yacc.c */
13418 #line 4545 "drizzled/sql_yacc.yy"
13419  {
13420  if (not show::buildSchemas(YYSession))
13421  DRIZZLE_YYABORT;
13422  }
13423  break;
13424 
13425  case 831:
13426 
13427 /* Line 1806 of yacc.c */
13428 #line 4551 "drizzled/sql_yacc.yy"
13429  {
13430  if (not show::buildTables(YYSession, (yyvsp[(2) - (3)].simple_string)))
13431  DRIZZLE_YYABORT;
13432  }
13433  break;
13434 
13435  case 832:
13436 
13437 /* Line 1806 of yacc.c */
13438 #line 4557 "drizzled/sql_yacc.yy"
13439  {
13440  if (not show::buildTemporaryTables(YYSession))
13441  DRIZZLE_YYABORT;
13442  }
13443  break;
13444 
13445  case 833:
13446 
13447 /* Line 1806 of yacc.c */
13448 #line 4563 "drizzled/sql_yacc.yy"
13449  {
13450  if (not show::buildTableStatus(YYSession, (yyvsp[(3) - (4)].simple_string)))
13451  DRIZZLE_YYABORT;
13452  }
13453  break;
13454 
13455  case 834:
13456 
13457 /* Line 1806 of yacc.c */
13458 #line 4569 "drizzled/sql_yacc.yy"
13459  {
13460  if (not show::buildColumns(YYSession, (yyvsp[(4) - (5)].simple_string), (yyvsp[(3) - (5)].table)))
13461  DRIZZLE_YYABORT;
13462  }
13463  break;
13464 
13465  case 835:
13466 
13467 /* Line 1806 of yacc.c */
13468 #line 4575 "drizzled/sql_yacc.yy"
13469  {
13470  if (not show::buildIndex(YYSession, (yyvsp[(4) - (5)].simple_string), (yyvsp[(3) - (5)].table)))
13471  DRIZZLE_YYABORT;
13472  }
13473  break;
13474 
13475  case 836:
13476 
13477 /* Line 1806 of yacc.c */
13478 #line 4580 "drizzled/sql_yacc.yy"
13479  {
13480  show::buildSelectWarning(YYSession);
13481  }
13482  break;
13483 
13484  case 837:
13485 
13486 /* Line 1806 of yacc.c */
13487 #line 4584 "drizzled/sql_yacc.yy"
13488  {
13489  show::buildSelectError(YYSession);
13490  }
13491  break;
13492 
13493  case 838:
13494 
13495 /* Line 1806 of yacc.c */
13496 #line 4588 "drizzled/sql_yacc.yy"
13497  {
13498  show::buildWarnings(YYSession);
13499  }
13500  break;
13501 
13502  case 839:
13503 
13504 /* Line 1806 of yacc.c */
13505 #line 4592 "drizzled/sql_yacc.yy"
13506  {
13507  show::buildErrors(YYSession);
13508  }
13509  break;
13510 
13511  case 840:
13512 
13513 /* Line 1806 of yacc.c */
13514 #line 4596 "drizzled/sql_yacc.yy"
13515  {
13516  if (not show::buildStatus(YYSession, (yyvsp[(1) - (3)].var_type)))
13517  DRIZZLE_YYABORT;
13518  }
13519  break;
13520 
13521  case 841:
13522 
13523 /* Line 1806 of yacc.c */
13524 #line 4601 "drizzled/sql_yacc.yy"
13525  {
13526  if (not show::buildEngineStatus(YYSession, (yyvsp[(1) - (2)].lex_str)))
13527  DRIZZLE_YYABORT;
13528  }
13529  break;
13530 
13531  case 842:
13532 
13533 /* Line 1806 of yacc.c */
13534 #line 4606 "drizzled/sql_yacc.yy"
13535  {
13536  if (not show::buildCreateTable(YYSession, (yyvsp[(3) - (3)].table)))
13537  DRIZZLE_YYABORT;
13538  }
13539  break;
13540 
13541  case 843:
13542 
13543 /* Line 1806 of yacc.c */
13544 #line 4611 "drizzled/sql_yacc.yy"
13545  {
13546  if (not show::buildProcesslist(YYSession))
13547  DRIZZLE_YYABORT;
13548  }
13549  break;
13550 
13551  case 844:
13552 
13553 /* Line 1806 of yacc.c */
13554 #line 4616 "drizzled/sql_yacc.yy"
13555  {
13556  if (not show::buildVariables(YYSession, (yyvsp[(1) - (3)].var_type)))
13557  DRIZZLE_YYABORT;
13558  }
13559  break;
13560 
13561  case 845:
13562 
13563 /* Line 1806 of yacc.c */
13564 #line 4621 "drizzled/sql_yacc.yy"
13565  {
13566  if (not show::buildCreateSchema(YYSession, (yyvsp[(4) - (4)].lex_str)))
13567  DRIZZLE_YYABORT;
13568  }
13569  break;
13570 
13571  case 846:
13572 
13573 /* Line 1806 of yacc.c */
13574 #line 4627 "drizzled/sql_yacc.yy"
13575  { (yyval.simple_string)= 0; }
13576  break;
13577 
13578  case 847:
13579 
13580 /* Line 1806 of yacc.c */
13581 #line 4628 "drizzled/sql_yacc.yy"
13582  { (yyval.simple_string)= (yyvsp[(2) - (2)].lex_str).data(); }
13583  break;
13584 
13585  case 851:
13586 
13587 /* Line 1806 of yacc.c */
13588 #line 4639 "drizzled/sql_yacc.yy"
13589  {
13590  Lex.wild= new (YYSession->mem_root) String((yyvsp[(2) - (2)].lex_str).data(), (yyvsp[(2) - (2)].lex_str).size(), system_charset_info);
13591  }
13592  break;
13593 
13594  case 852:
13595 
13596 /* Line 1806 of yacc.c */
13597 #line 4643 "drizzled/sql_yacc.yy"
13598  {
13599  Lex.current_select->where= (yyvsp[(2) - (2)].item);
13600  if ((yyvsp[(2) - (2)].item))
13601  (yyvsp[(2) - (2)].item)->top_level_item();
13602  }
13603  break;
13604 
13605  case 853:
13606 
13607 /* Line 1806 of yacc.c */
13608 #line 4653 "drizzled/sql_yacc.yy"
13609  {
13610  if (not show::buildDescribe(YYSession, (yyvsp[(2) - (2)].table)))
13611  {
13612  DRIZZLE_YYABORT;
13613  }
13614  }
13615  break;
13616 
13617  case 854:
13618 
13619 /* Line 1806 of yacc.c */
13620 #line 4659 "drizzled/sql_yacc.yy"
13621  {}
13622  break;
13623 
13624  case 855:
13625 
13626 /* Line 1806 of yacc.c */
13627 #line 4661 "drizzled/sql_yacc.yy"
13628  { Lex.describe|= DESCRIBE_NORMAL; }
13629  break;
13630 
13631  case 856:
13632 
13633 /* Line 1806 of yacc.c */
13634 #line 4663 "drizzled/sql_yacc.yy"
13635  {
13636  Lex.select_lex.options|= SELECT_DESCRIBE;
13637  }
13638  break;
13639 
13640  case 859:
13641 
13642 /* Line 1806 of yacc.c */
13643 #line 4674 "drizzled/sql_yacc.yy"
13644  {}
13645  break;
13646 
13647  case 860:
13648 
13649 /* Line 1806 of yacc.c */
13650 #line 4675 "drizzled/sql_yacc.yy"
13651  { Lex.describe|= DESCRIBE_EXTENDED; }
13652  break;
13653 
13654  case 861:
13655 
13656 /* Line 1806 of yacc.c */
13657 #line 4679 "drizzled/sql_yacc.yy"
13658  {}
13659  break;
13660 
13661  case 862:
13662 
13663 /* Line 1806 of yacc.c */
13664 #line 4680 "drizzled/sql_yacc.yy"
13665  { Lex.wild= (yyvsp[(1) - (1)].string); }
13666  break;
13667 
13668  case 863:
13669 
13670 /* Line 1806 of yacc.c */
13671 #line 4682 "drizzled/sql_yacc.yy"
13672  {
13673  Lex.wild= new (YYSession->mem_root) String((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), system_charset_info);
13674  }
13675  break;
13676 
13677  case 864:
13678 
13679 /* Line 1806 of yacc.c */
13680 #line 4692 "drizzled/sql_yacc.yy"
13681  {
13682  Lex.statement= new statement::Flush(YYSession);
13683  }
13684  break;
13685 
13686  case 865:
13687 
13688 /* Line 1806 of yacc.c */
13689 #line 4696 "drizzled/sql_yacc.yy"
13690  {}
13691  break;
13692 
13693  case 868:
13694 
13695 /* Line 1806 of yacc.c */
13696 #line 4706 "drizzled/sql_yacc.yy"
13697  {
13698  statement::Flush *statement= (statement::Flush*)Lex.statement;
13699  statement->setFlushTables(true);
13700  }
13701  break;
13702 
13703  case 869:
13704 
13705 /* Line 1806 of yacc.c */
13706 #line 4710 "drizzled/sql_yacc.yy"
13707  {}
13708  break;
13709 
13710  case 870:
13711 
13712 /* Line 1806 of yacc.c */
13713 #line 4712 "drizzled/sql_yacc.yy"
13714  {
13715  statement::Flush *statement= (statement::Flush*)Lex.statement;
13716  statement->setFlushTablesWithReadLock(true);
13717  }
13718  break;
13719 
13720  case 871:
13721 
13722 /* Line 1806 of yacc.c */
13723 #line 4717 "drizzled/sql_yacc.yy"
13724  {
13725  statement::Flush *statement= (statement::Flush*)Lex.statement;
13726  statement->setFlushLog(true);
13727  }
13728  break;
13729 
13730  case 872:
13731 
13732 /* Line 1806 of yacc.c */
13733 #line 4722 "drizzled/sql_yacc.yy"
13734  {
13735  statement::Flush *statement= (statement::Flush*)Lex.statement;
13736  statement->setFlushStatus(true);
13737  }
13738  break;
13739 
13740  case 873:
13741 
13742 /* Line 1806 of yacc.c */
13743 #line 4727 "drizzled/sql_yacc.yy"
13744  {
13745  statement::Flush *statement= (statement::Flush*)Lex.statement;
13746  statement->setFlushGlobalStatus(true);
13747  }
13748  break;
13749 
13750  case 874:
13751 
13752 /* Line 1806 of yacc.c */
13753 #line 4734 "drizzled/sql_yacc.yy"
13754  {}
13755  break;
13756 
13757  case 875:
13758 
13759 /* Line 1806 of yacc.c */
13760 #line 4735 "drizzled/sql_yacc.yy"
13761  {}
13762  break;
13763 
13764  case 876:
13765 
13766 /* Line 1806 of yacc.c */
13767 #line 4742 "drizzled/sql_yacc.yy"
13768  {
13769  Lex.statement= new statement::Kill(YYSession, (yyvsp[(3) - (3)].item), (yyvsp[(2) - (3)].num));
13770  }
13771  break;
13772 
13773  case 877:
13774 
13775 /* Line 1806 of yacc.c */
13776 #line 4748 "drizzled/sql_yacc.yy"
13777  { (yyval.num)= false; }
13778  break;
13779 
13780  case 878:
13781 
13782 /* Line 1806 of yacc.c */
13783 #line 4749 "drizzled/sql_yacc.yy"
13784  { (yyval.num)= false; }
13785  break;
13786 
13787  case 879:
13788 
13789 /* Line 1806 of yacc.c */
13790 #line 4750 "drizzled/sql_yacc.yy"
13791  { (yyval.num)= true; }
13792  break;
13793 
13794  case 880:
13795 
13796 /* Line 1806 of yacc.c */
13797 #line 4757 "drizzled/sql_yacc.yy"
13798  {
13799  Lex.statement= new statement::ChangeSchema(YYSession);
13800  Lex.select_lex.db= (yyvsp[(2) - (2)].lex_str).data();
13801  }
13802  break;
13803 
13804  case 881:
13805 
13806 /* Line 1806 of yacc.c */
13807 #line 4767 "drizzled/sql_yacc.yy"
13808  {
13809  statement::Load *statement= new statement::Load(YYSession);
13810  Lex.statement= statement;
13811 
13812  Lex_input_stream *lip= YYSession->m_lip;
13813  statement->fname_start= lip->get_ptr();
13814  }
13815  break;
13816 
13817  case 882:
13818 
13819 /* Line 1806 of yacc.c */
13820 #line 4775 "drizzled/sql_yacc.yy"
13821  {
13822  Lex.lock_option= (yyvsp[(4) - (6)].lock_type);
13823  Lex.duplicates= DUP_ERROR;
13824  Lex.ignore= 0;
13825  Lex.exchange= new file_exchange((yyvsp[(6) - (6)].lex_str).data(), 0, (yyvsp[(2) - (6)].filetype));
13826  }
13827  break;
13828 
13829  case 883:
13830 
13831 /* Line 1806 of yacc.c */
13832 #line 4782 "drizzled/sql_yacc.yy"
13833  {
13834  Lex_input_stream *lip= YYSession->m_lip;
13835  ((statement::Load *)Lex.statement)->fname_end= lip->get_ptr();
13836  }
13837  break;
13838 
13839  case 884:
13840 
13841 /* Line 1806 of yacc.c */
13842 #line 4787 "drizzled/sql_yacc.yy"
13843  {
13844  if (!Lex.current_select->add_table_to_list(YYSession,
13845  (yyvsp[(12) - (12)].table), NULL, TL_OPTION_UPDATING,
13846  Lex.lock_option))
13847  DRIZZLE_YYABORT;
13848  Lex.field_list.clear();
13849  Lex.update_list.clear();
13850  Lex.value_list.clear();
13851  }
13852  break;
13853 
13854  case 885:
13855 
13856 /* Line 1806 of yacc.c */
13857 #line 4798 "drizzled/sql_yacc.yy"
13858  {}
13859  break;
13860 
13861  case 886:
13862 
13863 /* Line 1806 of yacc.c */
13864 #line 4802 "drizzled/sql_yacc.yy"
13865  { (yyval.filetype)= FILETYPE_CSV; }
13866  break;
13867 
13868  case 887:
13869 
13870 /* Line 1806 of yacc.c */
13871 #line 4805 "drizzled/sql_yacc.yy"
13872  { (yyval.lock_type)= TL_WRITE_DEFAULT; }
13873  break;
13874 
13875  case 888:
13876 
13877 /* Line 1806 of yacc.c */
13878 #line 4807 "drizzled/sql_yacc.yy"
13879  {
13880  (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
13881  }
13882  break;
13883 
13884  case 889:
13885 
13886 /* Line 1806 of yacc.c */
13887 #line 4813 "drizzled/sql_yacc.yy"
13888  { Lex.duplicates=DUP_ERROR; }
13889  break;
13890 
13891  case 890:
13892 
13893 /* Line 1806 of yacc.c */
13894 #line 4814 "drizzled/sql_yacc.yy"
13895  { Lex.duplicates=DUP_REPLACE; }
13896  break;
13897 
13898  case 891:
13899 
13900 /* Line 1806 of yacc.c */
13901 #line 4815 "drizzled/sql_yacc.yy"
13902  { Lex.ignore= 1; }
13903  break;
13904 
13905  case 892:
13906 
13907 /* Line 1806 of yacc.c */
13908 #line 4819 "drizzled/sql_yacc.yy"
13909  { Lex.duplicates=DUP_ERROR; }
13910  break;
13911 
13912  case 893:
13913 
13914 /* Line 1806 of yacc.c */
13915 #line 4820 "drizzled/sql_yacc.yy"
13916  { Lex.duplicates=DUP_ERROR; }
13917  break;
13918 
13919  case 894:
13920 
13921 /* Line 1806 of yacc.c */
13922 #line 4821 "drizzled/sql_yacc.yy"
13923  { Lex.duplicates=DUP_REPLACE; }
13924  break;
13925 
13926  case 895:
13927 
13928 /* Line 1806 of yacc.c */
13929 #line 4822 "drizzled/sql_yacc.yy"
13930  { Lex.ignore= true; }
13931  break;
13932 
13933  case 896:
13934 
13935 /* Line 1806 of yacc.c */
13936 #line 4823 "drizzled/sql_yacc.yy"
13937  { Lex.duplicates=DUP_REPLACE; }
13938  break;
13939 
13940  case 897:
13941 
13942 /* Line 1806 of yacc.c */
13943 #line 4824 "drizzled/sql_yacc.yy"
13944  { Lex.ignore= true; }
13945  break;
13946 
13947  case 902:
13948 
13949 /* Line 1806 of yacc.c */
13950 #line 4839 "drizzled/sql_yacc.yy"
13951  {
13952  assert(Lex.exchange != 0);
13953  Lex.exchange->field_term= (yyvsp[(3) - (3)].string);
13954  }
13955  break;
13956 
13957  case 903:
13958 
13959 /* Line 1806 of yacc.c */
13960 #line 4844 "drizzled/sql_yacc.yy"
13961  {
13962  assert(Lex.exchange != 0);
13963  Lex.exchange->enclosed= (yyvsp[(4) - (4)].string);
13964  Lex.exchange->opt_enclosed= 1;
13965  }
13966  break;
13967 
13968  case 904:
13969 
13970 /* Line 1806 of yacc.c */
13971 #line 4850 "drizzled/sql_yacc.yy"
13972  {
13973  assert(Lex.exchange != 0);
13974  Lex.exchange->enclosed= (yyvsp[(3) - (3)].string);
13975  }
13976  break;
13977 
13978  case 905:
13979 
13980 /* Line 1806 of yacc.c */
13981 #line 4855 "drizzled/sql_yacc.yy"
13982  {
13983  assert(Lex.exchange != 0);
13984  Lex.exchange->escaped= (yyvsp[(3) - (3)].string);
13985  }
13986  break;
13987 
13988  case 910:
13989 
13990 /* Line 1806 of yacc.c */
13991 #line 4873 "drizzled/sql_yacc.yy"
13992  {
13993  assert(Lex.exchange != 0);
13994  Lex.exchange->line_term= (yyvsp[(3) - (3)].string);
13995  }
13996  break;
13997 
13998  case 911:
13999 
14000 /* Line 1806 of yacc.c */
14001 #line 4878 "drizzled/sql_yacc.yy"
14002  {
14003  assert(Lex.exchange != 0);
14004  Lex.exchange->line_start= (yyvsp[(3) - (3)].string);
14005  }
14006  break;
14007 
14008  case 913:
14009 
14010 /* Line 1806 of yacc.c */
14011 #line 4887 "drizzled/sql_yacc.yy"
14012  {
14013  assert(Lex.exchange != 0);
14014  Lex.exchange->skip_lines= atol((yyvsp[(2) - (3)].lex_str).data());
14015  }
14016  break;
14017 
14018  case 914:
14019 
14020 /* Line 1806 of yacc.c */
14021 #line 4894 "drizzled/sql_yacc.yy"
14022  { }
14023  break;
14024 
14025  case 915:
14026 
14027 /* Line 1806 of yacc.c */
14028 #line 4895 "drizzled/sql_yacc.yy"
14029  { }
14030  break;
14031 
14032  case 916:
14033 
14034 /* Line 1806 of yacc.c */
14035 #line 4899 "drizzled/sql_yacc.yy"
14036  {}
14037  break;
14038 
14039  case 917:
14040 
14041 /* Line 1806 of yacc.c */
14042 #line 4900 "drizzled/sql_yacc.yy"
14043  {}
14044  break;
14045 
14046  case 918:
14047 
14048 /* Line 1806 of yacc.c */
14049 #line 4901 "drizzled/sql_yacc.yy"
14050  {}
14051  break;
14052 
14053  case 919:
14054 
14055 /* Line 1806 of yacc.c */
14056 #line 4906 "drizzled/sql_yacc.yy"
14057  { Lex.field_list.push_back((yyvsp[(3) - (3)].item)); }
14058  break;
14059 
14060  case 920:
14061 
14062 /* Line 1806 of yacc.c */
14063 #line 4908 "drizzled/sql_yacc.yy"
14064  { Lex.field_list.push_back((yyvsp[(1) - (1)].item)); }
14065  break;
14066 
14067  case 921:
14068 
14069 /* Line 1806 of yacc.c */
14070 #line 4912 "drizzled/sql_yacc.yy"
14071  {(yyval.item)= (yyvsp[(1) - (1)].item);}
14072  break;
14073 
14074  case 922:
14075 
14076 /* Line 1806 of yacc.c */
14077 #line 4914 "drizzled/sql_yacc.yy"
14078  { (yyval.item)= new Item_user_var_as_out_param((yyvsp[(2) - (2)].lex_str)); }
14079  break;
14080 
14081  case 923:
14082 
14083 /* Line 1806 of yacc.c */
14084 #line 4918 "drizzled/sql_yacc.yy"
14085  {}
14086  break;
14087 
14088  case 924:
14089 
14090 /* Line 1806 of yacc.c */
14091 #line 4919 "drizzled/sql_yacc.yy"
14092  {}
14093  break;
14094 
14095  case 925:
14096 
14097 /* Line 1806 of yacc.c */
14098 #line 4926 "drizzled/sql_yacc.yy"
14099  {
14100  (yyval.item) = new Item_string((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), YYSession->variables.getCollation());
14101  }
14102  break;
14103 
14104  case 926:
14105 
14106 /* Line 1806 of yacc.c */
14107 #line 4930 "drizzled/sql_yacc.yy"
14108  {
14109  ((Item_string*) (yyvsp[(1) - (2)].item))->append((yyvsp[(2) - (2)].lex_str));
14110  }
14111  break;
14112 
14113  case 927:
14114 
14115 /* Line 1806 of yacc.c */
14116 #line 4937 "drizzled/sql_yacc.yy"
14117  {
14118  (yyval.string)= new (YYSession->mem_root) String((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), YYSession->variables.getCollation());
14119  }
14120  break;
14121 
14122  case 928:
14123 
14124 /* Line 1806 of yacc.c */
14125 #line 4941 "drizzled/sql_yacc.yy"
14126  {
14127  Item *tmp= new Item_hex_string((yyvsp[(1) - (1)].lex_str));
14128  /*
14129  it is OK only emulate fix_fields, because we need only
14130  value of constant
14131  */
14132  (yyval.string)= tmp ? tmp->quick_fix_field(), tmp->val_str(NULL) : NULL;
14133  }
14134  break;
14135 
14136  case 929:
14137 
14138 /* Line 1806 of yacc.c */
14139 #line 4950 "drizzled/sql_yacc.yy"
14140  {
14141  Item *tmp= new Item_bin_string((yyvsp[(1) - (1)].lex_str));
14142  /*
14143  it is OK only emulate fix_fields, because we need only
14144  value of constant
14145  */
14146  (yyval.string)= tmp ? tmp->quick_fix_field(), tmp->val_str(NULL) : NULL;
14147  }
14148  break;
14149 
14150  case 930:
14151 
14152 /* Line 1806 of yacc.c */
14153 #line 4961 "drizzled/sql_yacc.yy"
14154  { (yyval.item) = (yyvsp[(1) - (1)].item); }
14155  break;
14156 
14157  case 931:
14158 
14159 /* Line 1806 of yacc.c */
14160 #line 4962 "drizzled/sql_yacc.yy"
14161  { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
14162  break;
14163 
14164  case 932:
14165 
14166 /* Line 1806 of yacc.c */
14167 #line 4964 "drizzled/sql_yacc.yy"
14168  {
14169  (yyvsp[(2) - (2)].item_num)->max_length++;
14170  (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
14171  }
14172  break;
14173 
14174  case 933:
14175 
14176 /* Line 1806 of yacc.c */
14177 #line 4971 "drizzled/sql_yacc.yy"
14178  { (yyval.item) = (yyvsp[(1) - (1)].item); }
14179  break;
14180 
14181  case 934:
14182 
14183 /* Line 1806 of yacc.c */
14184 #line 4972 "drizzled/sql_yacc.yy"
14185  { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14186  break;
14187 
14188  case 935:
14189 
14190 /* Line 1806 of yacc.c */
14191 #line 4974 "drizzled/sql_yacc.yy"
14192  {
14193  (yyval.item) = new Item_null();
14194  YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14195  }
14196  break;
14197 
14198  case 936:
14199 
14200 /* Line 1806 of yacc.c */
14201 #line 4978 "drizzled/sql_yacc.yy"
14202  { (yyval.item)= new drizzled::item::False(); }
14203  break;
14204 
14205  case 937:
14206 
14207 /* Line 1806 of yacc.c */
14208 #line 4979 "drizzled/sql_yacc.yy"
14209  { (yyval.item)= new drizzled::item::True(); }
14210  break;
14211 
14212  case 938:
14213 
14214 /* Line 1806 of yacc.c */
14215 #line 4980 "drizzled/sql_yacc.yy"
14216  { (yyval.item) = new Item_hex_string((yyvsp[(1) - (1)].lex_str));}
14217  break;
14218 
14219  case 939:
14220 
14221 /* Line 1806 of yacc.c */
14222 #line 4981 "drizzled/sql_yacc.yy"
14223  { (yyval.item)= new Item_bin_string((yyvsp[(1) - (1)].lex_str)); }
14224  break;
14225 
14226  case 940:
14227 
14228 /* Line 1806 of yacc.c */
14229 #line 4982 "drizzled/sql_yacc.yy"
14230  { (yyval.item) = (yyvsp[(2) - (2)].item); }
14231  break;
14232 
14233  case 941:
14234 
14235 /* Line 1806 of yacc.c */
14236 #line 4983 "drizzled/sql_yacc.yy"
14237  { (yyval.item) = (yyvsp[(2) - (2)].item); }
14238  break;
14239 
14240  case 942:
14241 
14242 /* Line 1806 of yacc.c */
14243 #line 4987 "drizzled/sql_yacc.yy"
14244  { (yyval.item) = (yyvsp[(1) - (1)].item); }
14245  break;
14246 
14247  case 943:
14248 
14249 /* Line 1806 of yacc.c */
14250 #line 4988 "drizzled/sql_yacc.yy"
14251  { (yyval.item) = new Item_hex_string((yyvsp[(1) - (1)].lex_str));}
14252  break;
14253 
14254  case 944:
14255 
14256 /* Line 1806 of yacc.c */
14257 #line 4989 "drizzled/sql_yacc.yy"
14258  { (yyval.item)= new Item_bin_string((yyvsp[(1) - (1)].lex_str)); }
14259  break;
14260 
14261  case 945:
14262 
14263 /* Line 1806 of yacc.c */
14264 #line 4990 "drizzled/sql_yacc.yy"
14265  { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14266  break;
14267 
14268  case 946:
14269 
14270 /* Line 1806 of yacc.c */
14271 #line 4992 "drizzled/sql_yacc.yy"
14272  {
14273  (yyval.item) = new Item_null();
14274  YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14275  }
14276  break;
14277 
14278  case 947:
14279 
14280 /* Line 1806 of yacc.c */
14281 #line 4996 "drizzled/sql_yacc.yy"
14282  { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
14283  break;
14284 
14285  case 948:
14286 
14287 /* Line 1806 of yacc.c */
14288 #line 4998 "drizzled/sql_yacc.yy"
14289  {
14290  (yyvsp[(2) - (2)].item_num)->max_length++;
14291  (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
14292  }
14293  break;
14294 
14295  case 949:
14296 
14297 /* Line 1806 of yacc.c */
14298 #line 5006 "drizzled/sql_yacc.yy"
14299  {
14300  (yyval.item) = new Item_null();
14301  YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14302  }
14303  break;
14304 
14305  case 950:
14306 
14307 /* Line 1806 of yacc.c */
14308 #line 5011 "drizzled/sql_yacc.yy"
14309  {
14310  (yyval.item)= new drizzled::item::False();
14311  }
14312  break;
14313 
14314  case 951:
14315 
14316 /* Line 1806 of yacc.c */
14317 #line 5015 "drizzled/sql_yacc.yy"
14318  {
14319  (yyval.item)= new drizzled::item::True();
14320  }
14321  break;
14322 
14323  case 952:
14324 
14325 /* Line 1806 of yacc.c */
14326 #line 5021 "drizzled/sql_yacc.yy"
14327  { (yyval.item) = (yyvsp[(1) - (1)].item); }
14328  break;
14329 
14330  case 953:
14331 
14332 /* Line 1806 of yacc.c */
14333 #line 5023 "drizzled/sql_yacc.yy"
14334  {
14335  (yyval.item) = new Item_null();
14336  YYSession->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
14337  }
14338  break;
14339 
14340  case 954:
14341 
14342 /* Line 1806 of yacc.c */
14343 #line 5027 "drizzled/sql_yacc.yy"
14344  { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
14345  break;
14346 
14347  case 955:
14348 
14349 /* Line 1806 of yacc.c */
14350 #line 5028 "drizzled/sql_yacc.yy"
14351  { (yyval.item) = (yyvsp[(2) - (2)].item); }
14352  break;
14353 
14354  case 956:
14355 
14356 /* Line 1806 of yacc.c */
14357 #line 5029 "drizzled/sql_yacc.yy"
14358  { (yyval.item) = (yyvsp[(2) - (2)].item); }
14359  break;
14360 
14361  case 957:
14362 
14363 /* Line 1806 of yacc.c */
14364 #line 5034 "drizzled/sql_yacc.yy"
14365  {
14366  int error;
14367  (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());
14368  }
14369  break;
14370 
14371  case 958:
14372 
14373 /* Line 1806 of yacc.c */
14374 #line 5039 "drizzled/sql_yacc.yy"
14375  {
14376  int error;
14377  (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());
14378  }
14379  break;
14380 
14381  case 959:
14382 
14383 /* Line 1806 of yacc.c */
14384 #line 5044 "drizzled/sql_yacc.yy"
14385  { (yyval.item_num) = new Item_uint((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size()); }
14386  break;
14387 
14388  case 960:
14389 
14390 /* Line 1806 of yacc.c */
14391 #line 5046 "drizzled/sql_yacc.yy"
14392  {
14393  (yyval.item_num)= new Item_decimal((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size(), YYSession->charset());
14394  if (YYSession->is_error())
14395  {
14396  DRIZZLE_YYABORT;
14397  }
14398  }
14399  break;
14400 
14401  case 961:
14402 
14403 /* Line 1806 of yacc.c */
14404 #line 5054 "drizzled/sql_yacc.yy"
14405  {
14406  (yyval.item_num) = new Item_float((yyvsp[(1) - (1)].lex_str).data(), (yyvsp[(1) - (1)].lex_str).size());
14407  if (YYSession->is_error())
14408  {
14409  DRIZZLE_YYABORT;
14410  }
14411  }
14412  break;
14413 
14414  case 962:
14415 
14416 /* Line 1806 of yacc.c */
14417 #line 5068 "drizzled/sql_yacc.yy"
14418  { (yyval.item)=(yyvsp[(1) - (1)].item); }
14419  break;
14420 
14421  case 963:
14422 
14423 /* Line 1806 of yacc.c */
14424 #line 5069 "drizzled/sql_yacc.yy"
14425  { (yyval.item)=(yyvsp[(1) - (1)].item); }
14426  break;
14427 
14428  case 964:
14429 
14430 /* Line 1806 of yacc.c */
14431 #line 5074 "drizzled/sql_yacc.yy"
14432  {
14433  (yyval.item)= parser::buildTableWild(&Lex, null_lex_string(), (yyvsp[(1) - (3)].lex_str));
14434  }
14435  break;
14436 
14437  case 965:
14438 
14439 /* Line 1806 of yacc.c */
14440 #line 5078 "drizzled/sql_yacc.yy"
14441  {
14442  (yyval.item)= parser::buildTableWild(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str));
14443  }
14444  break;
14445 
14446  case 966:
14447 
14448 /* Line 1806 of yacc.c */
14449 #line 5084 "drizzled/sql_yacc.yy"
14450  { (yyval.item)=(yyvsp[(1) - (1)].item); }
14451  break;
14452 
14453  case 967:
14454 
14455 /* Line 1806 of yacc.c */
14456 #line 5089 "drizzled/sql_yacc.yy"
14457  {
14458  (yyval.item)= parser::buildIdent(&Lex, null_lex_string(), null_lex_string(), (yyvsp[(1) - (1)].lex_str));
14459  }
14460  break;
14461 
14462  case 968:
14463 
14464 /* Line 1806 of yacc.c */
14465 #line 5092 "drizzled/sql_yacc.yy"
14466  { (yyval.item)= (yyvsp[(1) - (1)].item); }
14467  break;
14468 
14469  case 969:
14470 
14471 /* Line 1806 of yacc.c */
14472 #line 5097 "drizzled/sql_yacc.yy"
14473  {
14474  (yyval.item)= parser::buildIdent(&Lex, null_lex_string(), (yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str));
14475  }
14476  break;
14477 
14478  case 970:
14479 
14480 /* Line 1806 of yacc.c */
14481 #line 5101 "drizzled/sql_yacc.yy"
14482  {
14483  (yyval.item)= parser::buildIdent(&Lex, null_lex_string(), (yyvsp[(2) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str));
14484  }
14485  break;
14486 
14487  case 971:
14488 
14489 /* Line 1806 of yacc.c */
14490 #line 5105 "drizzled/sql_yacc.yy"
14491  {
14492  (yyval.item)= parser::buildIdent(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str), (yyvsp[(5) - (5)].lex_str));
14493  }
14494  break;
14495 
14496  case 972:
14497 
14498 /* Line 1806 of yacc.c */
14499 #line 5112 "drizzled/sql_yacc.yy"
14500  {
14501  (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);
14502  }
14503  break;
14504 
14505  case 973:
14506 
14507 /* Line 1806 of yacc.c */
14508 #line 5116 "drizzled/sql_yacc.yy"
14509  {
14510  if (not parser::checkFieldIdent(&Lex, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str)))
14511  DRIZZLE_YYABORT;
14512 
14513  (yyval.lex_str)=(yyvsp[(5) - (5)].lex_str);
14514  }
14515  break;
14516 
14517  case 974:
14518 
14519 /* Line 1806 of yacc.c */
14520 #line 5123 "drizzled/sql_yacc.yy"
14521  {
14522  if (not parser::checkFieldIdent(&Lex, null_lex_string(), (yyvsp[(1) - (3)].lex_str)))
14523  DRIZZLE_YYABORT;
14524 
14525  (yyval.lex_str)=(yyvsp[(3) - (3)].lex_str);
14526  }
14527  break;
14528 
14529  case 975:
14530 
14531 /* Line 1806 of yacc.c */
14532 #line 5130 "drizzled/sql_yacc.yy"
14533  { /* For Delphi */
14534  (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str);
14535  }
14536  break;
14537 
14538  case 976:
14539 
14540 /* Line 1806 of yacc.c */
14541 #line 5137 "drizzled/sql_yacc.yy"
14542  {
14543  (yyval.table)= new Table_ident((yyvsp[(1) - (1)].lex_str));
14544  }
14545  break;
14546 
14547  case 977:
14548 
14549 /* Line 1806 of yacc.c */
14550 #line 5141 "drizzled/sql_yacc.yy"
14551  {
14552  (yyval.table)=new Table_ident((yyvsp[(1) - (3)].lex_str),(yyvsp[(3) - (3)].lex_str));
14553  }
14554  break;
14555 
14556  case 978:
14557 
14558 /* Line 1806 of yacc.c */
14559 #line 5145 "drizzled/sql_yacc.yy"
14560  { /* For Delphi */
14561  (yyval.table)= new Table_ident((yyvsp[(2) - (2)].lex_str));
14562  }
14563  break;
14564 
14565  case 981:
14566 
14567 /* Line 1806 of yacc.c */
14568 #line 5160 "drizzled/sql_yacc.yy"
14569  {
14570  (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14571  }
14572  break;
14573 
14574  case 982:
14575 
14576 /* Line 1806 of yacc.c */
14577 #line 5164 "drizzled/sql_yacc.yy"
14578  {
14579  const charset_info_st * const cs= system_charset_info;
14580  int dummy_error;
14581  uint32_t wlen= cs->cset->well_formed_len(*cs, (yyvsp[(1) - (1)].lex_str), (yyvsp[(1) - (1)].lex_str).size(), &dummy_error);
14582  if (wlen < (yyvsp[(1) - (1)].lex_str).size())
14583  {
14584  my_error(ER_INVALID_CHARACTER_STRING, MYF(0), cs->csname, (yyvsp[(1) - (1)].lex_str).data() + wlen);
14585  DRIZZLE_YYABORT;
14586  }
14587  (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14588  }
14589  break;
14590 
14591  case 983:
14592 
14593 /* Line 1806 of yacc.c */
14594 #line 5179 "drizzled/sql_yacc.yy"
14595  {
14596  (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14597  }
14598  break;
14599 
14600  case 984:
14601 
14602 /* Line 1806 of yacc.c */
14603 #line 5186 "drizzled/sql_yacc.yy"
14604  {
14605  (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14606  }
14607  break;
14608 
14609  case 985:
14610 
14611 /* Line 1806 of yacc.c */
14612 #line 5193 "drizzled/sql_yacc.yy"
14613  {
14614  (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
14615  }
14616  break;
14617 
14618  case 986:
14619 
14620 /* Line 1806 of yacc.c */
14621 #line 5199 "drizzled/sql_yacc.yy"
14622  { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
14623  break;
14624 
14625  case 987:
14626 
14627 /* Line 1806 of yacc.c */
14628 #line 5201 "drizzled/sql_yacc.yy"
14629  {
14630  (yyval.lex_str).assign(YYSession->mem.strdup((yyvsp[(1) - (1)].symbol).data(), (yyvsp[(1) - (1)].symbol).length), (yyvsp[(1) - (1)].symbol).length);
14631  }
14632  break;
14633 
14634  case 988:
14635 
14636 /* Line 1806 of yacc.c */
14637 #line 5207 "drizzled/sql_yacc.yy"
14638  { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14639  break;
14640 
14641  case 989:
14642 
14643 /* Line 1806 of yacc.c */
14644 #line 5208 "drizzled/sql_yacc.yy"
14645  { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14646  break;
14647 
14648  case 990:
14649 
14650 /* Line 1806 of yacc.c */
14651 #line 5212 "drizzled/sql_yacc.yy"
14652  { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14653  break;
14654 
14655  case 991:
14656 
14657 /* Line 1806 of yacc.c */
14658 #line 5213 "drizzled/sql_yacc.yy"
14659  { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
14660  break;
14661 
14662  case 992:
14663 
14664 /* Line 1806 of yacc.c */
14665 #line 5217 "drizzled/sql_yacc.yy"
14666  {}
14667  break;
14668 
14669  case 993:
14670 
14671 /* Line 1806 of yacc.c */
14672 #line 5218 "drizzled/sql_yacc.yy"
14673  {}
14674  break;
14675 
14676  case 994:
14677 
14678 /* Line 1806 of yacc.c */
14679 #line 5219 "drizzled/sql_yacc.yy"
14680  {}
14681  break;
14682 
14683  case 995:
14684 
14685 /* Line 1806 of yacc.c */
14686 #line 5224 "drizzled/sql_yacc.yy"
14687  {}
14688  break;
14689 
14690  case 996:
14691 
14692 /* Line 1806 of yacc.c */
14693 #line 5225 "drizzled/sql_yacc.yy"
14694  {}
14695  break;
14696 
14697  case 997:
14698 
14699 /* Line 1806 of yacc.c */
14700 #line 5226 "drizzled/sql_yacc.yy"
14701  {}
14702  break;
14703 
14704  case 998:
14705 
14706 /* Line 1806 of yacc.c */
14707 #line 5227 "drizzled/sql_yacc.yy"
14708  {}
14709  break;
14710 
14711  case 999:
14712 
14713 /* Line 1806 of yacc.c */
14714 #line 5228 "drizzled/sql_yacc.yy"
14715  {}
14716  break;
14717 
14718  case 1000:
14719 
14720 /* Line 1806 of yacc.c */
14721 #line 5229 "drizzled/sql_yacc.yy"
14722  {}
14723  break;
14724 
14725  case 1001:
14726 
14727 /* Line 1806 of yacc.c */
14728 #line 5230 "drizzled/sql_yacc.yy"
14729  {}
14730  break;
14731 
14732  case 1002:
14733 
14734 /* Line 1806 of yacc.c */
14735 #line 5231 "drizzled/sql_yacc.yy"
14736  {}
14737  break;
14738 
14739  case 1003:
14740 
14741 /* Line 1806 of yacc.c */
14742 #line 5232 "drizzled/sql_yacc.yy"
14743  {}
14744  break;
14745 
14746  case 1004:
14747 
14748 /* Line 1806 of yacc.c */
14749 #line 5233 "drizzled/sql_yacc.yy"
14750  {}
14751  break;
14752 
14753  case 1005:
14754 
14755 /* Line 1806 of yacc.c */
14756 #line 5234 "drizzled/sql_yacc.yy"
14757  {}
14758  break;
14759 
14760  case 1006:
14761 
14762 /* Line 1806 of yacc.c */
14763 #line 5235 "drizzled/sql_yacc.yy"
14764  {}
14765  break;
14766 
14767  case 1007:
14768 
14769 /* Line 1806 of yacc.c */
14770 #line 5236 "drizzled/sql_yacc.yy"
14771  {}
14772  break;
14773 
14774  case 1008:
14775 
14776 /* Line 1806 of yacc.c */
14777 #line 5237 "drizzled/sql_yacc.yy"
14778  {}
14779  break;
14780 
14781  case 1009:
14782 
14783 /* Line 1806 of yacc.c */
14784 #line 5238 "drizzled/sql_yacc.yy"
14785  {}
14786  break;
14787 
14788  case 1010:
14789 
14790 /* Line 1806 of yacc.c */
14791 #line 5239 "drizzled/sql_yacc.yy"
14792  {}
14793  break;
14794 
14795  case 1011:
14796 
14797 /* Line 1806 of yacc.c */
14798 #line 5240 "drizzled/sql_yacc.yy"
14799  {}
14800  break;
14801 
14802  case 1012:
14803 
14804 /* Line 1806 of yacc.c */
14805 #line 5241 "drizzled/sql_yacc.yy"
14806  {}
14807  break;
14808 
14809  case 1013:
14810 
14811 /* Line 1806 of yacc.c */
14812 #line 5242 "drizzled/sql_yacc.yy"
14813  {}
14814  break;
14815 
14816  case 1014:
14817 
14818 /* Line 1806 of yacc.c */
14819 #line 5243 "drizzled/sql_yacc.yy"
14820  {}
14821  break;
14822 
14823  case 1015:
14824 
14825 /* Line 1806 of yacc.c */
14826 #line 5244 "drizzled/sql_yacc.yy"
14827  {}
14828  break;
14829 
14830  case 1016:
14831 
14832 /* Line 1806 of yacc.c */
14833 #line 5254 "drizzled/sql_yacc.yy"
14834  {}
14835  break;
14836 
14837  case 1017:
14838 
14839 /* Line 1806 of yacc.c */
14840 #line 5255 "drizzled/sql_yacc.yy"
14841  {}
14842  break;
14843 
14844  case 1018:
14845 
14846 /* Line 1806 of yacc.c */
14847 #line 5256 "drizzled/sql_yacc.yy"
14848  {}
14849  break;
14850 
14851  case 1019:
14852 
14853 /* Line 1806 of yacc.c */
14854 #line 5257 "drizzled/sql_yacc.yy"
14855  {}
14856  break;
14857 
14858  case 1020:
14859 
14860 /* Line 1806 of yacc.c */
14861 #line 5258 "drizzled/sql_yacc.yy"
14862  {}
14863  break;
14864 
14865  case 1021:
14866 
14867 /* Line 1806 of yacc.c */
14868 #line 5259 "drizzled/sql_yacc.yy"
14869  {}
14870  break;
14871 
14872  case 1022:
14873 
14874 /* Line 1806 of yacc.c */
14875 #line 5260 "drizzled/sql_yacc.yy"
14876  {}
14877  break;
14878 
14879  case 1023:
14880 
14881 /* Line 1806 of yacc.c */
14882 #line 5261 "drizzled/sql_yacc.yy"
14883  {}
14884  break;
14885 
14886  case 1024:
14887 
14888 /* Line 1806 of yacc.c */
14889 #line 5262 "drizzled/sql_yacc.yy"
14890  {}
14891  break;
14892 
14893  case 1025:
14894 
14895 /* Line 1806 of yacc.c */
14896 #line 5263 "drizzled/sql_yacc.yy"
14897  {}
14898  break;
14899 
14900  case 1026:
14901 
14902 /* Line 1806 of yacc.c */
14903 #line 5264 "drizzled/sql_yacc.yy"
14904  {}
14905  break;
14906 
14907  case 1027:
14908 
14909 /* Line 1806 of yacc.c */
14910 #line 5265 "drizzled/sql_yacc.yy"
14911  {}
14912  break;
14913 
14914  case 1028:
14915 
14916 /* Line 1806 of yacc.c */
14917 #line 5266 "drizzled/sql_yacc.yy"
14918  {}
14919  break;
14920 
14921  case 1029:
14922 
14923 /* Line 1806 of yacc.c */
14924 #line 5267 "drizzled/sql_yacc.yy"
14925  {}
14926  break;
14927 
14928  case 1030:
14929 
14930 /* Line 1806 of yacc.c */
14931 #line 5268 "drizzled/sql_yacc.yy"
14932  {}
14933  break;
14934 
14935  case 1031:
14936 
14937 /* Line 1806 of yacc.c */
14938 #line 5269 "drizzled/sql_yacc.yy"
14939  {}
14940  break;
14941 
14942  case 1032:
14943 
14944 /* Line 1806 of yacc.c */
14945 #line 5270 "drizzled/sql_yacc.yy"
14946  {}
14947  break;
14948 
14949  case 1033:
14950 
14951 /* Line 1806 of yacc.c */
14952 #line 5271 "drizzled/sql_yacc.yy"
14953  {}
14954  break;
14955 
14956  case 1034:
14957 
14958 /* Line 1806 of yacc.c */
14959 #line 5272 "drizzled/sql_yacc.yy"
14960  {}
14961  break;
14962 
14963  case 1035:
14964 
14965 /* Line 1806 of yacc.c */
14966 #line 5273 "drizzled/sql_yacc.yy"
14967  {}
14968  break;
14969 
14970  case 1036:
14971 
14972 /* Line 1806 of yacc.c */
14973 #line 5274 "drizzled/sql_yacc.yy"
14974  {}
14975  break;
14976 
14977  case 1037:
14978 
14979 /* Line 1806 of yacc.c */
14980 #line 5275 "drizzled/sql_yacc.yy"
14981  {}
14982  break;
14983 
14984  case 1038:
14985 
14986 /* Line 1806 of yacc.c */
14987 #line 5276 "drizzled/sql_yacc.yy"
14988  {}
14989  break;
14990 
14991  case 1039:
14992 
14993 /* Line 1806 of yacc.c */
14994 #line 5277 "drizzled/sql_yacc.yy"
14995  {}
14996  break;
14997 
14998  case 1040:
14999 
15000 /* Line 1806 of yacc.c */
15001 #line 5278 "drizzled/sql_yacc.yy"
15002  {}
15003  break;
15004 
15005  case 1041:
15006 
15007 /* Line 1806 of yacc.c */
15008 #line 5279 "drizzled/sql_yacc.yy"
15009  {}
15010  break;
15011 
15012  case 1042:
15013 
15014 /* Line 1806 of yacc.c */
15015 #line 5280 "drizzled/sql_yacc.yy"
15016  {}
15017  break;
15018 
15019  case 1043:
15020 
15021 /* Line 1806 of yacc.c */
15022 #line 5281 "drizzled/sql_yacc.yy"
15023  {}
15024  break;
15025 
15026  case 1044:
15027 
15028 /* Line 1806 of yacc.c */
15029 #line 5282 "drizzled/sql_yacc.yy"
15030  {}
15031  break;
15032 
15033  case 1045:
15034 
15035 /* Line 1806 of yacc.c */
15036 #line 5283 "drizzled/sql_yacc.yy"
15037  {}
15038  break;
15039 
15040  case 1046:
15041 
15042 /* Line 1806 of yacc.c */
15043 #line 5284 "drizzled/sql_yacc.yy"
15044  {}
15045  break;
15046 
15047  case 1047:
15048 
15049 /* Line 1806 of yacc.c */
15050 #line 5285 "drizzled/sql_yacc.yy"
15051  {}
15052  break;
15053 
15054  case 1048:
15055 
15056 /* Line 1806 of yacc.c */
15057 #line 5286 "drizzled/sql_yacc.yy"
15058  {}
15059  break;
15060 
15061  case 1049:
15062 
15063 /* Line 1806 of yacc.c */
15064 #line 5287 "drizzled/sql_yacc.yy"
15065  {}
15066  break;
15067 
15068  case 1050:
15069 
15070 /* Line 1806 of yacc.c */
15071 #line 5288 "drizzled/sql_yacc.yy"
15072  {}
15073  break;
15074 
15075  case 1051:
15076 
15077 /* Line 1806 of yacc.c */
15078 #line 5289 "drizzled/sql_yacc.yy"
15079  {}
15080  break;
15081 
15082  case 1052:
15083 
15084 /* Line 1806 of yacc.c */
15085 #line 5290 "drizzled/sql_yacc.yy"
15086  {}
15087  break;
15088 
15089  case 1053:
15090 
15091 /* Line 1806 of yacc.c */
15092 #line 5291 "drizzled/sql_yacc.yy"
15093  {}
15094  break;
15095 
15096  case 1054:
15097 
15098 /* Line 1806 of yacc.c */
15099 #line 5292 "drizzled/sql_yacc.yy"
15100  {}
15101  break;
15102 
15103  case 1055:
15104 
15105 /* Line 1806 of yacc.c */
15106 #line 5293 "drizzled/sql_yacc.yy"
15107  {}
15108  break;
15109 
15110  case 1056:
15111 
15112 /* Line 1806 of yacc.c */
15113 #line 5294 "drizzled/sql_yacc.yy"
15114  {}
15115  break;
15116 
15117  case 1057:
15118 
15119 /* Line 1806 of yacc.c */
15120 #line 5295 "drizzled/sql_yacc.yy"
15121  {}
15122  break;
15123 
15124  case 1058:
15125 
15126 /* Line 1806 of yacc.c */
15127 #line 5296 "drizzled/sql_yacc.yy"
15128  {}
15129  break;
15130 
15131  case 1059:
15132 
15133 /* Line 1806 of yacc.c */
15134 #line 5297 "drizzled/sql_yacc.yy"
15135  {}
15136  break;
15137 
15138  case 1060:
15139 
15140 /* Line 1806 of yacc.c */
15141 #line 5298 "drizzled/sql_yacc.yy"
15142  {}
15143  break;
15144 
15145  case 1061:
15146 
15147 /* Line 1806 of yacc.c */
15148 #line 5299 "drizzled/sql_yacc.yy"
15149  {}
15150  break;
15151 
15152  case 1062:
15153 
15154 /* Line 1806 of yacc.c */
15155 #line 5300 "drizzled/sql_yacc.yy"
15156  {}
15157  break;
15158 
15159  case 1063:
15160 
15161 /* Line 1806 of yacc.c */
15162 #line 5301 "drizzled/sql_yacc.yy"
15163  {}
15164  break;
15165 
15166  case 1064:
15167 
15168 /* Line 1806 of yacc.c */
15169 #line 5302 "drizzled/sql_yacc.yy"
15170  {}
15171  break;
15172 
15173  case 1065:
15174 
15175 /* Line 1806 of yacc.c */
15176 #line 5303 "drizzled/sql_yacc.yy"
15177  {}
15178  break;
15179 
15180  case 1066:
15181 
15182 /* Line 1806 of yacc.c */
15183 #line 5304 "drizzled/sql_yacc.yy"
15184  {}
15185  break;
15186 
15187  case 1067:
15188 
15189 /* Line 1806 of yacc.c */
15190 #line 5305 "drizzled/sql_yacc.yy"
15191  {}
15192  break;
15193 
15194  case 1068:
15195 
15196 /* Line 1806 of yacc.c */
15197 #line 5306 "drizzled/sql_yacc.yy"
15198  {}
15199  break;
15200 
15201  case 1069:
15202 
15203 /* Line 1806 of yacc.c */
15204 #line 5307 "drizzled/sql_yacc.yy"
15205  {}
15206  break;
15207 
15208  case 1070:
15209 
15210 /* Line 1806 of yacc.c */
15211 #line 5308 "drizzled/sql_yacc.yy"
15212  {}
15213  break;
15214 
15215  case 1071:
15216 
15217 /* Line 1806 of yacc.c */
15218 #line 5309 "drizzled/sql_yacc.yy"
15219  {}
15220  break;
15221 
15222  case 1072:
15223 
15224 /* Line 1806 of yacc.c */
15225 #line 5310 "drizzled/sql_yacc.yy"
15226  {}
15227  break;
15228 
15229  case 1073:
15230 
15231 /* Line 1806 of yacc.c */
15232 #line 5311 "drizzled/sql_yacc.yy"
15233  {}
15234  break;
15235 
15236  case 1074:
15237 
15238 /* Line 1806 of yacc.c */
15239 #line 5312 "drizzled/sql_yacc.yy"
15240  {}
15241  break;
15242 
15243  case 1075:
15244 
15245 /* Line 1806 of yacc.c */
15246 #line 5313 "drizzled/sql_yacc.yy"
15247  {}
15248  break;
15249 
15250  case 1076:
15251 
15252 /* Line 1806 of yacc.c */
15253 #line 5314 "drizzled/sql_yacc.yy"
15254  {}
15255  break;
15256 
15257  case 1077:
15258 
15259 /* Line 1806 of yacc.c */
15260 #line 5315 "drizzled/sql_yacc.yy"
15261  {}
15262  break;
15263 
15264  case 1078:
15265 
15266 /* Line 1806 of yacc.c */
15267 #line 5316 "drizzled/sql_yacc.yy"
15268  {}
15269  break;
15270 
15271  case 1079:
15272 
15273 /* Line 1806 of yacc.c */
15274 #line 5317 "drizzled/sql_yacc.yy"
15275  {}
15276  break;
15277 
15278  case 1080:
15279 
15280 /* Line 1806 of yacc.c */
15281 #line 5318 "drizzled/sql_yacc.yy"
15282  {}
15283  break;
15284 
15285  case 1081:
15286 
15287 /* Line 1806 of yacc.c */
15288 #line 5319 "drizzled/sql_yacc.yy"
15289  {}
15290  break;
15291 
15292  case 1082:
15293 
15294 /* Line 1806 of yacc.c */
15295 #line 5320 "drizzled/sql_yacc.yy"
15296  {}
15297  break;
15298 
15299  case 1083:
15300 
15301 /* Line 1806 of yacc.c */
15302 #line 5321 "drizzled/sql_yacc.yy"
15303  {}
15304  break;
15305 
15306  case 1084:
15307 
15308 /* Line 1806 of yacc.c */
15309 #line 5322 "drizzled/sql_yacc.yy"
15310  {}
15311  break;
15312 
15313  case 1085:
15314 
15315 /* Line 1806 of yacc.c */
15316 #line 5323 "drizzled/sql_yacc.yy"
15317  {}
15318  break;
15319 
15320  case 1086:
15321 
15322 /* Line 1806 of yacc.c */
15323 #line 5324 "drizzled/sql_yacc.yy"
15324  {}
15325  break;
15326 
15327  case 1087:
15328 
15329 /* Line 1806 of yacc.c */
15330 #line 5325 "drizzled/sql_yacc.yy"
15331  {}
15332  break;
15333 
15334  case 1088:
15335 
15336 /* Line 1806 of yacc.c */
15337 #line 5326 "drizzled/sql_yacc.yy"
15338  {}
15339  break;
15340 
15341  case 1089:
15342 
15343 /* Line 1806 of yacc.c */
15344 #line 5327 "drizzled/sql_yacc.yy"
15345  {}
15346  break;
15347 
15348  case 1090:
15349 
15350 /* Line 1806 of yacc.c */
15351 #line 5328 "drizzled/sql_yacc.yy"
15352  {}
15353  break;
15354 
15355  case 1091:
15356 
15357 /* Line 1806 of yacc.c */
15358 #line 5329 "drizzled/sql_yacc.yy"
15359  {}
15360  break;
15361 
15362  case 1092:
15363 
15364 /* Line 1806 of yacc.c */
15365 #line 5330 "drizzled/sql_yacc.yy"
15366  {}
15367  break;
15368 
15369  case 1093:
15370 
15371 /* Line 1806 of yacc.c */
15372 #line 5331 "drizzled/sql_yacc.yy"
15373  {}
15374  break;
15375 
15376  case 1094:
15377 
15378 /* Line 1806 of yacc.c */
15379 #line 5332 "drizzled/sql_yacc.yy"
15380  {}
15381  break;
15382 
15383  case 1095:
15384 
15385 /* Line 1806 of yacc.c */
15386 #line 5333 "drizzled/sql_yacc.yy"
15387  {}
15388  break;
15389 
15390  case 1096:
15391 
15392 /* Line 1806 of yacc.c */
15393 #line 5334 "drizzled/sql_yacc.yy"
15394  {}
15395  break;
15396 
15397  case 1097:
15398 
15399 /* Line 1806 of yacc.c */
15400 #line 5335 "drizzled/sql_yacc.yy"
15401  {}
15402  break;
15403 
15404  case 1098:
15405 
15406 /* Line 1806 of yacc.c */
15407 #line 5336 "drizzled/sql_yacc.yy"
15408  {}
15409  break;
15410 
15411  case 1099:
15412 
15413 /* Line 1806 of yacc.c */
15414 #line 5337 "drizzled/sql_yacc.yy"
15415  {}
15416  break;
15417 
15418  case 1100:
15419 
15420 /* Line 1806 of yacc.c */
15421 #line 5338 "drizzled/sql_yacc.yy"
15422  {}
15423  break;
15424 
15425  case 1101:
15426 
15427 /* Line 1806 of yacc.c */
15428 #line 5339 "drizzled/sql_yacc.yy"
15429  {}
15430  break;
15431 
15432  case 1102:
15433 
15434 /* Line 1806 of yacc.c */
15435 #line 5340 "drizzled/sql_yacc.yy"
15436  {}
15437  break;
15438 
15439  case 1103:
15440 
15441 /* Line 1806 of yacc.c */
15442 #line 5341 "drizzled/sql_yacc.yy"
15443  {}
15444  break;
15445 
15446  case 1104:
15447 
15448 /* Line 1806 of yacc.c */
15449 #line 5342 "drizzled/sql_yacc.yy"
15450  {}
15451  break;
15452 
15453  case 1105:
15454 
15455 /* Line 1806 of yacc.c */
15456 #line 5343 "drizzled/sql_yacc.yy"
15457  {}
15458  break;
15459 
15460  case 1106:
15461 
15462 /* Line 1806 of yacc.c */
15463 #line 5344 "drizzled/sql_yacc.yy"
15464  {}
15465  break;
15466 
15467  case 1107:
15468 
15469 /* Line 1806 of yacc.c */
15470 #line 5345 "drizzled/sql_yacc.yy"
15471  {}
15472  break;
15473 
15474  case 1108:
15475 
15476 /* Line 1806 of yacc.c */
15477 #line 5346 "drizzled/sql_yacc.yy"
15478  {}
15479  break;
15480 
15481  case 1109:
15482 
15483 /* Line 1806 of yacc.c */
15484 #line 5347 "drizzled/sql_yacc.yy"
15485  {}
15486  break;
15487 
15488  case 1110:
15489 
15490 /* Line 1806 of yacc.c */
15491 #line 5348 "drizzled/sql_yacc.yy"
15492  {}
15493  break;
15494 
15495  case 1111:
15496 
15497 /* Line 1806 of yacc.c */
15498 #line 5349 "drizzled/sql_yacc.yy"
15499  {}
15500  break;
15501 
15502  case 1112:
15503 
15504 /* Line 1806 of yacc.c */
15505 #line 5350 "drizzled/sql_yacc.yy"
15506  {}
15507  break;
15508 
15509  case 1113:
15510 
15511 /* Line 1806 of yacc.c */
15512 #line 5351 "drizzled/sql_yacc.yy"
15513  {}
15514  break;
15515 
15516  case 1114:
15517 
15518 /* Line 1806 of yacc.c */
15519 #line 5352 "drizzled/sql_yacc.yy"
15520  {}
15521  break;
15522 
15523  case 1115:
15524 
15525 /* Line 1806 of yacc.c */
15526 #line 5353 "drizzled/sql_yacc.yy"
15527  {}
15528  break;
15529 
15530  case 1116:
15531 
15532 /* Line 1806 of yacc.c */
15533 #line 5354 "drizzled/sql_yacc.yy"
15534  {}
15535  break;
15536 
15537  case 1117:
15538 
15539 /* Line 1806 of yacc.c */
15540 #line 5355 "drizzled/sql_yacc.yy"
15541  {}
15542  break;
15543 
15544  case 1118:
15545 
15546 /* Line 1806 of yacc.c */
15547 #line 5356 "drizzled/sql_yacc.yy"
15548  {}
15549  break;
15550 
15551  case 1119:
15552 
15553 /* Line 1806 of yacc.c */
15554 #line 5357 "drizzled/sql_yacc.yy"
15555  {}
15556  break;
15557 
15558  case 1120:
15559 
15560 /* Line 1806 of yacc.c */
15561 #line 5358 "drizzled/sql_yacc.yy"
15562  {}
15563  break;
15564 
15565  case 1121:
15566 
15567 /* Line 1806 of yacc.c */
15568 #line 5359 "drizzled/sql_yacc.yy"
15569  {}
15570  break;
15571 
15572  case 1122:
15573 
15574 /* Line 1806 of yacc.c */
15575 #line 5360 "drizzled/sql_yacc.yy"
15576  {}
15577  break;
15578 
15579  case 1123:
15580 
15581 /* Line 1806 of yacc.c */
15582 #line 5361 "drizzled/sql_yacc.yy"
15583  {}
15584  break;
15585 
15586  case 1124:
15587 
15588 /* Line 1806 of yacc.c */
15589 #line 5362 "drizzled/sql_yacc.yy"
15590  {}
15591  break;
15592 
15593  case 1125:
15594 
15595 /* Line 1806 of yacc.c */
15596 #line 5363 "drizzled/sql_yacc.yy"
15597  {}
15598  break;
15599 
15600  case 1126:
15601 
15602 /* Line 1806 of yacc.c */
15603 #line 5364 "drizzled/sql_yacc.yy"
15604  {}
15605  break;
15606 
15607  case 1127:
15608 
15609 /* Line 1806 of yacc.c */
15610 #line 5365 "drizzled/sql_yacc.yy"
15611  {}
15612  break;
15613 
15614  case 1128:
15615 
15616 /* Line 1806 of yacc.c */
15617 #line 5366 "drizzled/sql_yacc.yy"
15618  {}
15619  break;
15620 
15621  case 1129:
15622 
15623 /* Line 1806 of yacc.c */
15624 #line 5367 "drizzled/sql_yacc.yy"
15625  {}
15626  break;
15627 
15628  case 1130:
15629 
15630 /* Line 1806 of yacc.c */
15631 #line 5368 "drizzled/sql_yacc.yy"
15632  {}
15633  break;
15634 
15635  case 1131:
15636 
15637 /* Line 1806 of yacc.c */
15638 #line 5369 "drizzled/sql_yacc.yy"
15639  {}
15640  break;
15641 
15642  case 1132:
15643 
15644 /* Line 1806 of yacc.c */
15645 #line 5370 "drizzled/sql_yacc.yy"
15646  {}
15647  break;
15648 
15649  case 1133:
15650 
15651 /* Line 1806 of yacc.c */
15652 #line 5371 "drizzled/sql_yacc.yy"
15653  {}
15654  break;
15655 
15656  case 1134:
15657 
15658 /* Line 1806 of yacc.c */
15659 #line 5372 "drizzled/sql_yacc.yy"
15660  {}
15661  break;
15662 
15663  case 1135:
15664 
15665 /* Line 1806 of yacc.c */
15666 #line 5373 "drizzled/sql_yacc.yy"
15667  {}
15668  break;
15669 
15670  case 1136:
15671 
15672 /* Line 1806 of yacc.c */
15673 #line 5374 "drizzled/sql_yacc.yy"
15674  {}
15675  break;
15676 
15677  case 1137:
15678 
15679 /* Line 1806 of yacc.c */
15680 #line 5375 "drizzled/sql_yacc.yy"
15681  {}
15682  break;
15683 
15684  case 1138:
15685 
15686 /* Line 1806 of yacc.c */
15687 #line 5376 "drizzled/sql_yacc.yy"
15688  {}
15689  break;
15690 
15691  case 1139:
15692 
15693 /* Line 1806 of yacc.c */
15694 #line 5377 "drizzled/sql_yacc.yy"
15695  {}
15696  break;
15697 
15698  case 1140:
15699 
15700 /* Line 1806 of yacc.c */
15701 #line 5378 "drizzled/sql_yacc.yy"
15702  {}
15703  break;
15704 
15705  case 1141:
15706 
15707 /* Line 1806 of yacc.c */
15708 #line 5379 "drizzled/sql_yacc.yy"
15709  {}
15710  break;
15711 
15712  case 1142:
15713 
15714 /* Line 1806 of yacc.c */
15715 #line 5380 "drizzled/sql_yacc.yy"
15716  {}
15717  break;
15718 
15719  case 1143:
15720 
15721 /* Line 1806 of yacc.c */
15722 #line 5387 "drizzled/sql_yacc.yy"
15723  {
15724  Lex.statement= new statement::SetOption(YYSession);
15725  }
15726  break;
15727 
15728  case 1144:
15729 
15730 /* Line 1806 of yacc.c */
15731 #line 5391 "drizzled/sql_yacc.yy"
15732  {}
15733  break;
15734 
15735  case 1145:
15736 
15737 /* Line 1806 of yacc.c */
15738 #line 5395 "drizzled/sql_yacc.yy"
15739  {}
15740  break;
15741 
15742  case 1146:
15743 
15744 /* Line 1806 of yacc.c */
15745 #line 5396 "drizzled/sql_yacc.yy"
15746  {}
15747  break;
15748 
15749  case 1149:
15750 
15751 /* Line 1806 of yacc.c */
15752 #line 5405 "drizzled/sql_yacc.yy"
15753  { }
15754  break;
15755 
15756  case 1150:
15757 
15758 /* Line 1806 of yacc.c */
15759 #line 5407 "drizzled/sql_yacc.yy"
15760  { }
15761  break;
15762 
15763  case 1151:
15764 
15765 /* Line 1806 of yacc.c */
15766 #line 5411 "drizzled/sql_yacc.yy"
15767  {}
15768  break;
15769 
15770  case 1152:
15771 
15772 /* Line 1806 of yacc.c */
15773 #line 5412 "drizzled/sql_yacc.yy"
15774  { (yyval.var_type)=OPT_GLOBAL; }
15775  break;
15776 
15777  case 1153:
15778 
15779 /* Line 1806 of yacc.c */
15780 #line 5413 "drizzled/sql_yacc.yy"
15781  { (yyval.var_type)=OPT_SESSION; }
15782  break;
15783 
15784  case 1154:
15785 
15786 /* Line 1806 of yacc.c */
15787 #line 5414 "drizzled/sql_yacc.yy"
15788  { (yyval.var_type)=OPT_SESSION; }
15789  break;
15790 
15791  case 1155:
15792 
15793 /* Line 1806 of yacc.c */
15794 #line 5418 "drizzled/sql_yacc.yy"
15795  { (yyval.num)= OPT_DEFAULT; }
15796  break;
15797 
15798  case 1156:
15799 
15800 /* Line 1806 of yacc.c */
15801 #line 5419 "drizzled/sql_yacc.yy"
15802  { ((statement::SetOption *)Lex.statement)->one_shot_set= true; (yyval.num)= OPT_SESSION; }
15803  break;
15804 
15805  case 1157:
15806 
15807 /* Line 1806 of yacc.c */
15808 #line 5423 "drizzled/sql_yacc.yy"
15809  { (yyval.var_type)=OPT_SESSION; }
15810  break;
15811 
15812  case 1158:
15813 
15814 /* Line 1806 of yacc.c */
15815 #line 5424 "drizzled/sql_yacc.yy"
15816  { (yyval.var_type)=OPT_GLOBAL; }
15817  break;
15818 
15819  case 1159:
15820 
15821 /* Line 1806 of yacc.c */
15822 #line 5425 "drizzled/sql_yacc.yy"
15823  { (yyval.var_type)=OPT_SESSION; }
15824  break;
15825 
15826  case 1160:
15827 
15828 /* Line 1806 of yacc.c */
15829 #line 5426 "drizzled/sql_yacc.yy"
15830  { (yyval.var_type)=OPT_SESSION; }
15831  break;
15832 
15833  case 1161:
15834 
15835 /* Line 1806 of yacc.c */
15836 #line 5430 "drizzled/sql_yacc.yy"
15837  { (yyval.var_type)=OPT_DEFAULT; }
15838  break;
15839 
15840  case 1162:
15841 
15842 /* Line 1806 of yacc.c */
15843 #line 5431 "drizzled/sql_yacc.yy"
15844  { (yyval.var_type)=OPT_GLOBAL; }
15845  break;
15846 
15847  case 1163:
15848 
15849 /* Line 1806 of yacc.c */
15850 #line 5432 "drizzled/sql_yacc.yy"
15851  { (yyval.var_type)=OPT_SESSION; }
15852  break;
15853 
15854  case 1164:
15855 
15856 /* Line 1806 of yacc.c */
15857 #line 5433 "drizzled/sql_yacc.yy"
15858  { (yyval.var_type)=OPT_SESSION; }
15859  break;
15860 
15861  case 1167:
15862 
15863 /* Line 1806 of yacc.c */
15864 #line 5443 "drizzled/sql_yacc.yy"
15865  {
15866  if ((yyvsp[(2) - (4)].variable).var)
15867  { /* System variable */
15868  if ((yyvsp[(1) - (4)].var_type))
15869  {
15870  Lex.option_type= (yyvsp[(1) - (4)].var_type);
15871  }
15872  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))));
15873  }
15874  }
15875  break;
15876 
15877  case 1168:
15878 
15879 /* Line 1806 of yacc.c */
15880 #line 5454 "drizzled/sql_yacc.yy"
15881  {
15882  Lex.option_type= (yyvsp[(1) - (5)].var_type);
15883  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)))));
15884  }
15885  break;
15886 
15887  case 1169:
15888 
15889 /* Line 1806 of yacc.c */
15890 #line 5462 "drizzled/sql_yacc.yy"
15891  {
15892  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)))));
15893  }
15894  break;
15895 
15896  case 1170:
15897 
15898 /* Line 1806 of yacc.c */
15899 #line 5466 "drizzled/sql_yacc.yy"
15900  {
15901  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))));
15902  }
15903  break;
15904 
15905  case 1171:
15906 
15907 /* Line 1806 of yacc.c */
15908 #line 5472 "drizzled/sql_yacc.yy"
15909  { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15910  break;
15911 
15912  case 1172:
15913 
15914 /* Line 1806 of yacc.c */
15915 #line 5473 "drizzled/sql_yacc.yy"
15916  { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15917  break;
15918 
15919  case 1173:
15920 
15921 /* Line 1806 of yacc.c */
15922 #line 5474 "drizzled/sql_yacc.yy"
15923  { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
15924  break;
15925 
15926  case 1174:
15927 
15928 /* Line 1806 of yacc.c */
15929 #line 5479 "drizzled/sql_yacc.yy"
15930  {
15931  (yyval.lex_str).assign(YYSession->mem.strdup((yyvsp[(1) - (1)].symbol).data(), (yyvsp[(1) - (1)].symbol).length), (yyvsp[(1) - (1)].symbol).length);
15932  }
15933  break;
15934 
15935  case 1175:
15936 
15937 /* Line 1806 of yacc.c */
15938 #line 5482 "drizzled/sql_yacc.yy"
15939  { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
15940  break;
15941 
15942  case 1176:
15943 
15944 /* Line 1806 of yacc.c */
15945 #line 5487 "drizzled/sql_yacc.yy"
15946  {
15947  /* We have to lookup here since local vars can shadow sysvars */
15948  {
15949  /* Not an SP local variable */
15950  sys_var *tmp= find_sys_var(to_string((yyvsp[(1) - (1)].lex_str)));
15951  if (not tmp)
15952  DRIZZLE_YYABORT;
15953  (yyval.variable).var= tmp;
15954  (yyval.variable).base_name= null_lex_string();
15955  }
15956  }
15957  break;
15958 
15959  case 1177:
15960 
15961 /* Line 1806 of yacc.c */
15962 #line 5501 "drizzled/sql_yacc.yy"
15963  { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; }
15964  break;
15965 
15966  case 1178:
15967 
15968 /* Line 1806 of yacc.c */
15969 #line 5502 "drizzled/sql_yacc.yy"
15970  { (yyval.tx_isolation)= ISO_READ_COMMITTED; }
15971  break;
15972 
15973  case 1179:
15974 
15975 /* Line 1806 of yacc.c */
15976 #line 5503 "drizzled/sql_yacc.yy"
15977  { (yyval.tx_isolation)= ISO_REPEATABLE_READ; }
15978  break;
15979 
15980  case 1180:
15981 
15982 /* Line 1806 of yacc.c */
15983 #line 5504 "drizzled/sql_yacc.yy"
15984  { (yyval.tx_isolation)= ISO_SERIALIZABLE; }
15985  break;
15986 
15987  case 1181:
15988 
15989 /* Line 1806 of yacc.c */
15990 #line 5508 "drizzled/sql_yacc.yy"
15991  { (yyval.item)=(yyvsp[(1) - (1)].item); }
15992  break;
15993 
15994  case 1182:
15995 
15996 /* Line 1806 of yacc.c */
15997 #line 5509 "drizzled/sql_yacc.yy"
15998  { (yyval.item)=0; }
15999  break;
16000 
16001  case 1183:
16002 
16003 /* Line 1806 of yacc.c */
16004 #line 5510 "drizzled/sql_yacc.yy"
16005  { (yyval.item)=new Item_string(str_ref("ON"), system_charset_info); }
16006  break;
16007 
16008  case 1184:
16009 
16010 /* Line 1806 of yacc.c */
16011 #line 5511 "drizzled/sql_yacc.yy"
16012  { (yyval.item)=new Item_string(str_ref("ALL"), system_charset_info); }
16013  break;
16014 
16015  case 1185:
16016 
16017 /* Line 1806 of yacc.c */
16018 #line 5512 "drizzled/sql_yacc.yy"
16019  { (yyval.item)=new Item_string(str_ref("binary"), system_charset_info); }
16020  break;
16021 
16022  case 1188:
16023 
16024 /* Line 1806 of yacc.c */
16025 #line 5522 "drizzled/sql_yacc.yy"
16026  {
16027  Lex.statement= new statement::UnlockTables(YYSession);
16028  }
16029  break;
16030 
16031  case 1189:
16032 
16033 /* Line 1806 of yacc.c */
16034 #line 5526 "drizzled/sql_yacc.yy"
16035  {}
16036  break;
16037 
16038  case 1190:
16039 
16040 /* Line 1806 of yacc.c */
16041 #line 5531 "drizzled/sql_yacc.yy"
16042  {
16043  Lex.statement= new statement::StartTransaction(YYSession);
16044  }
16045  break;
16046 
16047  case 1191:
16048 
16049 /* Line 1806 of yacc.c */
16050 #line 5534 "drizzled/sql_yacc.yy"
16051  {}
16052  break;
16053 
16054  case 1192:
16055 
16056 /* Line 1806 of yacc.c */
16057 #line 5538 "drizzled/sql_yacc.yy"
16058  {}
16059  break;
16060 
16061  case 1193:
16062 
16063 /* Line 1806 of yacc.c */
16064 #line 5539 "drizzled/sql_yacc.yy"
16065  {}
16066  break;
16067 
16068  case 1194:
16069 
16070 /* Line 1806 of yacc.c */
16071 #line 5544 "drizzled/sql_yacc.yy"
16072  { (yyval.num)= (YYSession->variables.completion_type == 1); }
16073  break;
16074 
16075  case 1195:
16076 
16077 /* Line 1806 of yacc.c */
16078 #line 5545 "drizzled/sql_yacc.yy"
16079  { (yyval.num)=0; }
16080  break;
16081 
16082  case 1196:
16083 
16084 /* Line 1806 of yacc.c */
16085 #line 5546 "drizzled/sql_yacc.yy"
16086  { (yyval.num)=1; }
16087  break;
16088 
16089  case 1197:
16090 
16091 /* Line 1806 of yacc.c */
16092 #line 5551 "drizzled/sql_yacc.yy"
16093  { (yyval.num)= (YYSession->variables.completion_type == 2); }
16094  break;
16095 
16096  case 1198:
16097 
16098 /* Line 1806 of yacc.c */
16099 #line 5552 "drizzled/sql_yacc.yy"
16100  { (yyval.num)=1; }
16101  break;
16102 
16103  case 1199:
16104 
16105 /* Line 1806 of yacc.c */
16106 #line 5553 "drizzled/sql_yacc.yy"
16107  { (yyval.num)=0; }
16108  break;
16109 
16110  case 1200:
16111 
16112 /* Line 1806 of yacc.c */
16113 #line 5557 "drizzled/sql_yacc.yy"
16114  {}
16115  break;
16116 
16117  case 1201:
16118 
16119 /* Line 1806 of yacc.c */
16120 #line 5558 "drizzled/sql_yacc.yy"
16121  {}
16122  break;
16123 
16124  case 1202:
16125 
16126 /* Line 1806 of yacc.c */
16127 #line 5563 "drizzled/sql_yacc.yy"
16128  {
16129  Lex.statement= new statement::Commit(YYSession, (yyvsp[(3) - (4)].num), (yyvsp[(4) - (4)].num));
16130  }
16131  break;
16132 
16133  case 1203:
16134 
16135 /* Line 1806 of yacc.c */
16136 #line 5570 "drizzled/sql_yacc.yy"
16137  {
16138  Lex.statement= new statement::Rollback(YYSession, (yyvsp[(3) - (4)].num), (yyvsp[(4) - (4)].num));
16139  }
16140  break;
16141 
16142  case 1204:
16143 
16144 /* Line 1806 of yacc.c */
16145 #line 5574 "drizzled/sql_yacc.yy"
16146  {
16147  Lex.statement= new statement::RollbackToSavepoint(YYSession, (yyvsp[(5) - (5)].lex_str));
16148  }
16149  break;
16150 
16151  case 1205:
16152 
16153 /* Line 1806 of yacc.c */
16154 #line 5581 "drizzled/sql_yacc.yy"
16155  {
16156  Lex.statement= new statement::Savepoint(YYSession, (yyvsp[(2) - (2)].lex_str));
16157  }
16158  break;
16159 
16160  case 1206:
16161 
16162 /* Line 1806 of yacc.c */
16163 #line 5588 "drizzled/sql_yacc.yy"
16164  {
16165  Lex.statement= new statement::ReleaseSavepoint(YYSession, (yyvsp[(3) - (3)].lex_str));
16166  }
16167  break;
16168 
16169  case 1208:
16170 
16171 /* Line 1806 of yacc.c */
16172 #line 5603 "drizzled/sql_yacc.yy"
16173  {}
16174  break;
16175 
16176  case 1210:
16177 
16178 /* Line 1806 of yacc.c */
16179 #line 5609 "drizzled/sql_yacc.yy"
16180  {
16181  if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(2) - (2)].num)))
16182  DRIZZLE_YYABORT;
16183  }
16184  break;
16185 
16186  case 1211:
16187 
16188 /* Line 1806 of yacc.c */
16189 #line 5614 "drizzled/sql_yacc.yy"
16190  {
16191  /*
16192  Remove from the name resolution context stack the context of the
16193  last select in the union.
16194  */
16195  Lex.pop_context();
16196  }
16197  break;
16198 
16199  case 1212:
16200 
16201 /* Line 1806 of yacc.c */
16202 #line 5624 "drizzled/sql_yacc.yy"
16203  { (yyval.num)= 0; }
16204  break;
16205 
16206  case 1213:
16207 
16208 /* Line 1806 of yacc.c */
16209 #line 5625 "drizzled/sql_yacc.yy"
16210  { (yyval.num)= 1; }
16211  break;
16212 
16213  case 1214:
16214 
16215 /* Line 1806 of yacc.c */
16216 #line 5626 "drizzled/sql_yacc.yy"
16217  { (yyval.num)= 1; }
16218  break;
16219 
16220  case 1215:
16221 
16222 /* Line 1806 of yacc.c */
16223 #line 5630 "drizzled/sql_yacc.yy"
16224  {
16225  assert(Lex.current_select->linkage != GLOBAL_OPTIONS_TYPE);
16226  Select_Lex *sel= Lex.current_select;
16227  Select_Lex_Unit *unit= sel->master_unit();
16228  Select_Lex *fake= unit->fake_select_lex;
16229  if (fake)
16230  {
16231  unit->global_parameters= fake;
16232  fake->no_table_names_allowed= 1;
16233  Lex.current_select= fake;
16234  }
16235  YYSession->setWhere("global ORDER clause");
16236  }
16237  break;
16238 
16239  case 1216:
16240 
16241 /* Line 1806 of yacc.c */
16242 #line 5644 "drizzled/sql_yacc.yy"
16243  {
16244  YYSession->lex().current_select->no_table_names_allowed= 0;
16245  YYSession->setWhere("");
16246  }
16247  break;
16248 
16249  case 1219:
16250 
16251 /* Line 1806 of yacc.c */
16252 #line 5656 "drizzled/sql_yacc.yy"
16253  { (yyval.num)=1; }
16254  break;
16255 
16256  case 1220:
16257 
16258 /* Line 1806 of yacc.c */
16259 #line 5657 "drizzled/sql_yacc.yy"
16260  { (yyval.num)=1; }
16261  break;
16262 
16263  case 1221:
16264 
16265 /* Line 1806 of yacc.c */
16266 #line 5658 "drizzled/sql_yacc.yy"
16267  { (yyval.num)=0; }
16268  break;
16269 
16270  case 1222:
16271 
16272 /* Line 1806 of yacc.c */
16273 #line 5663 "drizzled/sql_yacc.yy"
16274  {
16275  (yyval.select_lex)= Lex.current_select->master_unit()->first_select();
16276  }
16277  break;
16278 
16279  case 1223:
16280 
16281 /* Line 1806 of yacc.c */
16282 #line 5667 "drizzled/sql_yacc.yy"
16283  {
16284  (yyval.select_lex)= Lex.current_select->master_unit()->first_select();
16285  }
16286  break;
16287 
16288  case 1225:
16289 
16290 /* Line 1806 of yacc.c */
16291 #line 5676 "drizzled/sql_yacc.yy"
16292  {
16293  if (parser::add_select_to_union_list(YYSession, &Lex, (bool)(yyvsp[(3) - (3)].num)))
16294  DRIZZLE_YYABORT;
16295  }
16296  break;
16297 
16298  case 1226:
16299 
16300 /* Line 1806 of yacc.c */
16301 #line 5681 "drizzled/sql_yacc.yy"
16302  {
16303  Lex.pop_context();
16304  (yyval.select_lex)= (yyvsp[(1) - (5)].select_lex);
16305  }
16306  break;
16307 
16308  case 1227:
16309 
16310 /* Line 1806 of yacc.c */
16311 #line 5690 "drizzled/sql_yacc.yy"
16312  {
16313  (yyval.select_lex)= (yyvsp[(2) - (3)].select_lex);
16314  }
16315  break;
16316 
16317  case 1228:
16318 
16319 /* Line 1806 of yacc.c */
16320 #line 5696 "drizzled/sql_yacc.yy"
16321  {
16322  if (not Lex.expr_allows_subselect)
16323  {
16324  parser::my_parse_error(YYSession->m_lip);
16325  DRIZZLE_YYABORT;
16326  }
16327  /*
16328  we are making a "derived table" for the parenthesis
16329  as we need to have a lex level to fit the union
16330  after the parenthesis, e.g.
16331  (SELECT .. ) UNION ... becomes
16332  SELECT * FROM ((SELECT ...) UNION ...)
16333  */
16334  if (new_select(&Lex, 1))
16335  DRIZZLE_YYABORT;
16336  }
16337  break;
16338 
16339  case 1229:
16340 
16341 /* Line 1806 of yacc.c */
16342 #line 5715 "drizzled/sql_yacc.yy"
16343  {
16344  Lex.pop_context();
16345  Select_Lex *child= Lex.current_select;
16346  Lex.current_select= Lex.current_select->return_after_parsing();
16347  Lex.nest_level--;
16348  Lex.current_select->n_child_sum_items += child->n_sum_items;
16349  /*
16350  A subselect can add fields to an outer select. Reserve space for
16351  them.
16352  */
16353  Lex.current_select->select_n_where_fields+=
16354  child->select_n_where_fields;
16355  }
16356  break;
16357 
16358 
16359 
16360 /* Line 1806 of yacc.c */
16361 #line 16362 "drizzled/sql_yacc.cc"
16362  default: break;
16363  }
16364  /* User semantic actions sometimes alter yychar, and that requires
16365  that yytoken be updated with the new translation. We take the
16366  approach of translating immediately before every use of yytoken.
16367  One alternative is translating here after every semantic action,
16368  but that translation would be missed if the semantic action invokes
16369  YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
16370  if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
16371  incorrect destructor might then be invoked immediately. In the
16372  case of YYERROR or YYBACKUP, subsequent parser actions might lead
16373  to an incorrect destructor call or verbose syntax error message
16374  before the lookahead is translated. */
16375  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
16376 
16377  YYPOPSTACK (yylen);
16378  yylen = 0;
16379  YY_STACK_PRINT (yyss, yyssp);
16380 
16381  *++yyvsp = yyval;
16382 
16383  /* Now `shift' the result of the reduction. Determine what state
16384  that goes to, based on the state we popped back to and the rule
16385  number reduced by. */
16386 
16387  yyn = yyr1[yyn];
16388 
16389  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
16390  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
16391  yystate = yytable[yystate];
16392  else
16393  yystate = yydefgoto[yyn - YYNTOKENS];
16394 
16395  goto yynewstate;
16396 
16397 
16398 /*------------------------------------.
16399 | yyerrlab -- here on detecting error |
16400 `------------------------------------*/
16401 yyerrlab:
16402  /* Make sure we have latest lookahead translation. See comments at
16403  user semantic actions for why this is necessary. */
16404  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
16405 
16406  /* If not already recovering from an error, report this error. */
16407  if (!yyerrstatus)
16408  {
16409  ++yynerrs;
16410 #if ! YYERROR_VERBOSE
16411  yyerror (session, YY_("syntax error"));
16412 #else
16413 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
16414  yyssp, yytoken)
16415  {
16416  char const *yymsgp = YY_("syntax error");
16417  int yysyntax_error_status;
16418  yysyntax_error_status = YYSYNTAX_ERROR;
16419  if (yysyntax_error_status == 0)
16420  yymsgp = yymsg;
16421  else if (yysyntax_error_status == 1)
16422  {
16423  if (yymsg != yymsgbuf)
16424  YYSTACK_FREE (yymsg);
16425  yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
16426  if (!yymsg)
16427  {
16428  yymsg = yymsgbuf;
16429  yymsg_alloc = sizeof yymsgbuf;
16430  yysyntax_error_status = 2;
16431  }
16432  else
16433  {
16434  yysyntax_error_status = YYSYNTAX_ERROR;
16435  yymsgp = yymsg;
16436  }
16437  }
16438  yyerror (session, yymsgp);
16439  if (yysyntax_error_status == 2)
16440  goto yyexhaustedlab;
16441  }
16442 # undef YYSYNTAX_ERROR
16443 #endif
16444  }
16445 
16446 
16447 
16448  if (yyerrstatus == 3)
16449  {
16450  /* If just tried and failed to reuse lookahead token after an
16451  error, discard it. */
16452 
16453  if (yychar <= YYEOF)
16454  {
16455  /* Return failure if at end of input. */
16456  if (yychar == YYEOF)
16457  YYABORT;
16458  }
16459  else
16460  {
16461  yydestruct ("Error: discarding",
16462  yytoken, &yylval, session);
16463  yychar = YYEMPTY;
16464  }
16465  }
16466 
16467  /* Else will try to reuse lookahead token after shifting the error
16468  token. */
16469  goto yyerrlab1;
16470 
16471 
16472 /*---------------------------------------------------.
16473 | yyerrorlab -- error raised explicitly by YYERROR. |
16474 `---------------------------------------------------*/
16475 yyerrorlab:
16476 
16477  /* Pacify compilers like GCC when the user code never invokes
16478  YYERROR and the label yyerrorlab therefore never appears in user
16479  code. */
16480  if (/*CONSTCOND*/ 0)
16481  goto yyerrorlab;
16482 
16483  /* Do not reclaim the symbols of the rule which action triggered
16484  this YYERROR. */
16485  YYPOPSTACK (yylen);
16486  yylen = 0;
16487  YY_STACK_PRINT (yyss, yyssp);
16488  yystate = *yyssp;
16489  goto yyerrlab1;
16490 
16491 
16492 /*-------------------------------------------------------------.
16493 | yyerrlab1 -- common code for both syntax error and YYERROR. |
16494 `-------------------------------------------------------------*/
16495 yyerrlab1:
16496  yyerrstatus = 3; /* Each real token shifted decrements this. */
16497 
16498  for (;;)
16499  {
16500  yyn = yypact[yystate];
16501  if (!yypact_value_is_default (yyn))
16502  {
16503  yyn += YYTERROR;
16504  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
16505  {
16506  yyn = yytable[yyn];
16507  if (0 < yyn)
16508  break;
16509  }
16510  }
16511 
16512  /* Pop the current state because it cannot handle the error token. */
16513  if (yyssp == yyss)
16514  YYABORT;
16515 
16516 
16517  yydestruct ("Error: popping",
16518  yystos[yystate], yyvsp, session);
16519  YYPOPSTACK (1);
16520  yystate = *yyssp;
16521  YY_STACK_PRINT (yyss, yyssp);
16522  }
16523 
16524  *++yyvsp = yylval;
16525 
16526 
16527  /* Shift the error token. */
16528  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
16529 
16530  yystate = yyn;
16531  goto yynewstate;
16532 
16533 
16534 /*-------------------------------------.
16535 | yyacceptlab -- YYACCEPT comes here. |
16536 `-------------------------------------*/
16537 yyacceptlab:
16538  yyresult = 0;
16539  goto yyreturn;
16540 
16541 /*-----------------------------------.
16542 | yyabortlab -- YYABORT comes here. |
16543 `-----------------------------------*/
16544 yyabortlab:
16545  yyresult = 1;
16546  goto yyreturn;
16547 
16548 #if !defined(yyoverflow) || YYERROR_VERBOSE
16549 /*-------------------------------------------------.
16550 | yyexhaustedlab -- memory exhaustion comes here. |
16551 `-------------------------------------------------*/
16552 yyexhaustedlab:
16553  yyerror (session, YY_("memory exhausted"));
16554  yyresult = 2;
16555  /* Fall through. */
16556 #endif
16557 
16558 yyreturn:
16559  if (yychar != YYEMPTY)
16560  {
16561  /* Make sure we have latest lookahead translation. See comments at
16562  user semantic actions for why this is necessary. */
16563  yytoken = YYTRANSLATE (yychar);
16564  yydestruct ("Cleanup: discarding lookahead",
16565  yytoken, &yylval, session);
16566  }
16567  /* Do not reclaim the symbols of the rule which action triggered
16568  this YYABORT or YYACCEPT. */
16569  YYPOPSTACK (yylen);
16570  YY_STACK_PRINT (yyss, yyssp);
16571  while (yyssp != yyss)
16572  {
16573  yydestruct ("Cleanup: popping",
16574  yystos[*yyssp], yyvsp, session);
16575  YYPOPSTACK (1);
16576  }
16577 #ifndef yyoverflow
16578  if (yyss != yyssa)
16579  YYSTACK_FREE (yyss);
16580 #endif
16581 #if YYERROR_VERBOSE
16582  if (yymsg != yymsgbuf)
16583  YYSTACK_FREE (yymsg);
16584 #endif
16585  /* Make sure YYID is used. */
16586  return YYID (yyresult);
16587 }
16588 
16589 
16590 
Item * create_func_cast(Session *session, Item *a, Cast_target cast_type, const char *c_len, const char *c_dec, const charset_info_st *const cs)
Definition: create.cc:1401
A set of Session members describing the current authenticated user.
Definition: user.h:34
Item * negate_expression(Session *session, Item *expr)
Definition: sql_parse.cc:1500
const char * get_cpp_tok_end() const
const char * get_ptr() const
virtual Item * create(Session *, str_ref name, List< Item > *item_list)
Definition: create.cc:938
Item * all_any_subquery_creator(Item *left_expr, chooser_compare_func_creator cmp, bool all, Select_Lex *select_lex)
Definition: sql_parse.cc:1404
bool add_field_to_list(Session *session, str_ref field_name, enum enum_field_types type, const char *length, const char *decimal, uint32_t type_modifier, enum column_format_type column_format, Item *default_value, Item *on_update_value, str_ref comment, const char *change, List< String > *interval_list, const charset_info_st *const cs)
Definition: sql_parse.cc:792
UNIV_INTERN void yyerror(const char *s)
Definition: pars0pars.cc:1841
void add_join_natural(TableList *a, TableList *b, List< String > *using_fields, Select_Lex *lex)
Definition: sql_parse.cc:1360
void quick_fix_field()
Definition: item.h:207
bool check_simple_select(Session *session)
Definition: sql_parse.cc:1377
virtual String * val_str(String *str)=0
static void base_sql_error(drizzled::Session *session, const char *s)
Bison callback to report a syntax/OOM error.
Definition: sql_yacc.cc:171
sys_var * find_sys_var(const std::string &name)
Definition: sys_var.cc:1411
const char * get_cpp_tok_start() const
int yydebug
Definition: parser.cc:711
Create_func * find_native_function_builder(str_ref name)
Definition: create.cc:1391
static Create_udf_func s_singleton
Definition: create.h:134