/* A Bison parser, made by GNU Bison 2.3.  */

/* Skeleton implementation for Bison's Yacc-like parsers in C

   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
   Free Software Foundation, Inc.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02110-1301, USA.  */

/* As a special exception, you may create a larger work that contains
   part or all of the Bison parser skeleton and distribute that work
   under terms of your choice, so long as that work isn't itself a
   parser generator using the skeleton or a modified version thereof
   as a parser skeleton.  Alternatively, if you modify or redistribute
   the parser skeleton itself, you may (at your option) remove this
   special exception, which will cause the skeleton and the resulting
   Bison output files to be licensed under the GNU General Public
   License without this special exception.

   This special exception was added by the Free Software Foundation in
   version 2.2 of Bison.  */

/* C LALR(1) parser skeleton written by Richard Stallman, by
   simplifying the original so-called "semantic" parser.  */

/* All symbols defined below should begin with yy or YY, to avoid
   infringing on user name space.  This should be done even for local
   variables, as they might otherwise be expanded by user macros.
   There are some unavoidable exceptions within include files to
   define necessary library symbols; they are noted "INFRINGES ON
   USER NAME SPACE" below.  */

/* Identify Bison output.  */
#define YYBISON 1

/* Bison version.  */
#define YYBISON_VERSION "2.3"

/* Skeleton name.  */
#define YYSKELETON_NAME "yacc.c"

/* Pure parsers.  */
#define YYPURE 1

/* Using locations.  */
#define YYLSP_NEEDED 0

/* Substitute the variable and function names.  */
#define yyparse MYSQLparse
#define yylex   MYSQLlex
#define yyerror MYSQLerror
#define yylval  MYSQLlval
#define yychar  MYSQLchar
#define yydebug MYSQLdebug
#define yynerrs MYSQLnerrs


/* Tokens.  */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
   /* Put the tokens into the symbol table, so that GDB and other debuggers
      know about them.  */
   enum yytokentype {
     ABORT_SYM = 258,
     ACCESSIBLE_SYM = 259,
     ACTION = 260,
     ADD = 261,
     ADDDATE_SYM = 262,
     AFTER_SYM = 263,
     AGAINST = 264,
     AGGREGATE_SYM = 265,
     ALGORITHM_SYM = 266,
     ALL = 267,
     ALTER = 268,
     ANALYZE_SYM = 269,
     AND_AND_SYM = 270,
     AND_SYM = 271,
     ANY_SYM = 272,
     AS = 273,
     ASC = 274,
     ASCII_SYM = 275,
     ASENSITIVE_SYM = 276,
     AT_SYM = 277,
     AUTHORS_SYM = 278,
     AUTOEXTEND_SIZE_SYM = 279,
     AUTO_INC = 280,
     AVG_ROW_LENGTH = 281,
     AVG_SYM = 282,
     BACKUP_SYM = 283,
     BEFORE_SYM = 284,
     BEGIN_SYM = 285,
     BETWEEN_SYM = 286,
     BIGINT = 287,
     BINARY = 288,
     BINLOG_SYM = 289,
     BIN_NUM = 290,
     BIT_AND = 291,
     BIT_OR = 292,
     BIT_SYM = 293,
     BIT_XOR = 294,
     BLOB_SYM = 295,
     BOOLEAN_SYM = 296,
     BOOL_SYM = 297,
     BOTH = 298,
     BTREE_SYM = 299,
     BY = 300,
     BYTE_SYM = 301,
     CACHE_SYM = 302,
     CALL_SYM = 303,
     CASCADE = 304,
     CASCADED = 305,
     CASE_SYM = 306,
     CAST_SYM = 307,
     CHAIN_SYM = 308,
     CHANGE = 309,
     CHANGED = 310,
     CHARSET = 311,
     CHAR_SYM = 312,
     CHECKSUM_SYM = 313,
     CHECK_SYM = 314,
     CIPHER_SYM = 315,
     CLIENT_SYM = 316,
     CLOSE_SYM = 317,
     COALESCE = 318,
     CODE_SYM = 319,
     COLLATE_SYM = 320,
     COLLATION_SYM = 321,
     COLUMNS = 322,
     COLUMN_SYM = 323,
     COMMENT_SYM = 324,
     COMMITTED_SYM = 325,
     COMMIT_SYM = 326,
     COMPACT_SYM = 327,
     COMPLETION_SYM = 328,
     COMPRESSED_SYM = 329,
     CONCURRENT = 330,
     CONDITION_SYM = 331,
     CONNECTION_SYM = 332,
     CONSISTENT_SYM = 333,
     CONSTRAINT = 334,
     CONTAINS_SYM = 335,
     CONTINUE_SYM = 336,
     CONTRIBUTORS_SYM = 337,
     CONVERT_SYM = 338,
     COUNT_SYM = 339,
     CREATE = 340,
     CROSS = 341,
     CUBE_SYM = 342,
     CURDATE = 343,
     CURRENT_USER = 344,
     CURSOR_SYM = 345,
     CURTIME = 346,
     DATABASE = 347,
     DATABASES = 348,
     DATAFILE_SYM = 349,
     DATA_SYM = 350,
     DATETIME = 351,
     DATE_ADD_INTERVAL = 352,
     DATE_SUB_INTERVAL = 353,
     DATE_SYM = 354,
     DAY_HOUR_SYM = 355,
     DAY_MICROSECOND_SYM = 356,
     DAY_MINUTE_SYM = 357,
     DAY_SECOND_SYM = 358,
     DAY_SYM = 359,
     DEALLOCATE_SYM = 360,
     DECIMAL_NUM = 361,
     DECIMAL_SYM = 362,
     DECLARE_SYM = 363,
     DEFAULT = 364,
     DEFINER_SYM = 365,
     DELAYED_SYM = 366,
     DELAY_KEY_WRITE_SYM = 367,
     DELETE_SYM = 368,
     DESC = 369,
     DESCRIBE = 370,
     DES_KEY_FILE = 371,
     DETERMINISTIC_SYM = 372,
     DIRECTORY_SYM = 373,
     DISABLE_SYM = 374,
     DISCARD = 375,
     DISK_SYM = 376,
     DISTINCT = 377,
     DIV_SYM = 378,
     DOUBLE_SYM = 379,
     DO_SYM = 380,
     DROP = 381,
     DUAL_SYM = 382,
     DUMPFILE = 383,
     DUPLICATE_SYM = 384,
     DYNAMIC_SYM = 385,
     EACH_SYM = 386,
     ELSE = 387,
     ELSEIF_SYM = 388,
     ENABLE_SYM = 389,
     ENCLOSED = 390,
     END = 391,
     ENDS_SYM = 392,
     END_OF_INPUT = 393,
     ENGINES_SYM = 394,
     ENGINE_SYM = 395,
     ENUM = 396,
     EQ = 397,
     EQUAL_SYM = 398,
     ERRORS = 399,
     ESCAPED = 400,
     ESCAPE_SYM = 401,
     EVENTS_SYM = 402,
     EVENT_SYM = 403,
     EVERY_SYM = 404,
     EXCLUSIVE_SYM = 405,
     EXECUTE_SYM = 406,
     EXISTS = 407,
     EXIT_SYM = 408,
     EXPANSION_SYM = 409,
     EXTENDED_SYM = 410,
     EXTENT_SIZE_SYM = 411,
     EXTRACT_SYM = 412,
     FALSE_SYM = 413,
     FAST_SYM = 414,
     FETCH_SYM = 415,
     COLUMN_FORMAT_SYM = 416,
     FILE_SYM = 417,
     FIRST_SYM = 418,
     FIXED_SYM = 419,
     FLOAT_NUM = 420,
     FLOAT_SYM = 421,
     FLUSH_SYM = 422,
     FORCE_SYM = 423,
     FOREIGN = 424,
     FOR_SYM = 425,
     FOUND_SYM = 426,
     FRAC_SECOND_SYM = 427,
     FROM = 428,
     FULL = 429,
     FULLTEXT_SYM = 430,
     FUNCTION_SYM = 431,
     GE = 432,
     GEOMETRYCOLLECTION = 433,
     GEOMETRY_SYM = 434,
     GET_FORMAT = 435,
     GLOBAL_SYM = 436,
     GRANT = 437,
     GRANTS = 438,
     GROUP_SYM = 439,
     GROUP_CONCAT_SYM = 440,
     GT_SYM = 441,
     HANDLER_SYM = 442,
     HASH_SYM = 443,
     HAVING = 444,
     HELP_SYM = 445,
     HEX_NUM = 446,
     HIGH_PRIORITY = 447,
     HOST_SYM = 448,
     HOSTS_SYM = 449,
     HOUR_MICROSECOND_SYM = 450,
     HOUR_MINUTE_SYM = 451,
     HOUR_SECOND_SYM = 452,
     HOUR_SYM = 453,
     IDENT = 454,
     IDENTIFIED_SYM = 455,
     IDENT_QUOTED = 456,
     IF = 457,
     IGNORE_SYM = 458,
     IMPORT = 459,
     INDEXES = 460,
     INDEX_SYM = 461,
     INFILE = 462,
     INITIAL_SIZE_SYM = 463,
     INNER_SYM = 464,
     INOUT_SYM = 465,
     INSENSITIVE_SYM = 466,
     INSERT = 467,
     INSERT_METHOD = 468,
     INSTALL_SYM = 469,
     INTERVAL_SYM = 470,
     INTO = 471,
     INT_SYM = 472,
     INVOKER_SYM = 473,
     IN_SYM = 474,
     IS = 475,
     ISOLATION = 476,
     ISSUER_SYM = 477,
     ITERATE_SYM = 478,
     JOIN_SYM = 479,
     KEYS = 480,
     KEY_BLOCK_SIZE = 481,
     KEY_SYM = 482,
     KILL_SYM = 483,
     LANGUAGE_SYM = 484,
     LAST_SYM = 485,
     LE = 486,
     LEADING = 487,
     LEAVES = 488,
     LEAVE_SYM = 489,
     LEFT = 490,
     LESS_SYM = 491,
     LEVEL_SYM = 492,
     LEX_HOSTNAME = 493,
     LIKE = 494,
     LIMIT = 495,
     LINEAR_SYM = 496,
     LINES = 497,
     LINESTRING = 498,
     LIST_SYM = 499,
     LOAD = 500,
     LOCAL_SYM = 501,
     LOCATOR_SYM = 502,
     LOCKS_SYM = 503,
     LOCK_SYM = 504,
     LOGFILE_SYM = 505,
     LOGS_SYM = 506,
     LONGBLOB = 507,
     LONGTEXT = 508,
     LONG_NUM = 509,
     LONG_SYM = 510,
     LOOP_SYM = 511,
     LOW_PRIORITY = 512,
     LT = 513,
     MASTER_CONNECT_RETRY_SYM = 514,
     MASTER_HOST_SYM = 515,
     MASTER_LOG_FILE_SYM = 516,
     MASTER_LOG_POS_SYM = 517,
     MASTER_PASSWORD_SYM = 518,
     MASTER_PORT_SYM = 519,
     MASTER_SERVER_ID_SYM = 520,
     MASTER_SSL_CAPATH_SYM = 521,
     MASTER_SSL_CA_SYM = 522,
     MASTER_SSL_CERT_SYM = 523,
     MASTER_SSL_CIPHER_SYM = 524,
     MASTER_SSL_KEY_SYM = 525,
     MASTER_SSL_SYM = 526,
     MASTER_SSL_VERIFY_SERVER_CERT_SYM = 527,
     MASTER_SYM = 528,
     MASTER_USER_SYM = 529,
     MATCH = 530,
     MAX_CONNECTIONS_PER_HOUR = 531,
     MAX_QUERIES_PER_HOUR = 532,
     MAX_ROWS = 533,
     MAX_SIZE_SYM = 534,
     MAX_SYM = 535,
     MAX_UPDATES_PER_HOUR = 536,
     MAX_USER_CONNECTIONS_SYM = 537,
     MAX_VALUE_SYM = 538,
     MEDIUMBLOB = 539,
     MEDIUMINT = 540,
     MEDIUMTEXT = 541,
     MEDIUM_SYM = 542,
     MEMORY_SYM = 543,
     MERGE_SYM = 544,
     MICROSECOND_SYM = 545,
     MIGRATE_SYM = 546,
     MINUTE_MICROSECOND_SYM = 547,
     MINUTE_SECOND_SYM = 548,
     MINUTE_SYM = 549,
     MIN_ROWS = 550,
     MIN_SYM = 551,
     MODE_SYM = 552,
     MODIFIES_SYM = 553,
     MODIFY_SYM = 554,
     MOD_SYM = 555,
     MONTH_SYM = 556,
     MULTILINESTRING = 557,
     MULTIPOINT = 558,
     MULTIPOLYGON = 559,
     MUTEX_SYM = 560,
     NAMES_SYM = 561,
     NAME_SYM = 562,
     NATIONAL_SYM = 563,
     NATURAL = 564,
     NCHAR_STRING = 565,
     NCHAR_SYM = 566,
     NDBCLUSTER_SYM = 567,
     NE = 568,
     NEG = 569,
     NEW_SYM = 570,
     NEXT_SYM = 571,
     NODEGROUP_SYM = 572,
     NONE_SYM = 573,
     NOT2_SYM = 574,
     NOT_SYM = 575,
     NOW_SYM = 576,
     NOWAIT_SYM = 577,
     NO_SYM = 578,
     NO_WAIT_SYM = 579,
     NO_WRITE_TO_BINLOG = 580,
     NULL_SYM = 581,
     NUM = 582,
     NUMERIC_SYM = 583,
     NVARCHAR_SYM = 584,
     OFFSET_SYM = 585,
     OLD_PASSWORD = 586,
     ON = 587,
     ONE_SHOT_SYM = 588,
     ONE_SYM = 589,
     OPEN_SYM = 590,
     OPTIMIZE = 591,
     OPTIONS_SYM = 592,
     OPTION = 593,
     OPTIONALLY = 594,
     OR2_SYM = 595,
     ORDER_SYM = 596,
     OR_OR_SYM = 597,
     OR_SYM = 598,
     OUTER = 599,
     OUTFILE = 600,
     OUT_SYM = 601,
     OWNER_SYM = 602,
     PACK_KEYS_SYM = 603,
     PAGE_SYM = 604,
     PARAM_MARKER = 605,
     PARSER_SYM = 606,
     PARTIAL = 607,
     PARTITIONING_SYM = 608,
     PARTITIONS_SYM = 609,
     PARTITION_SYM = 610,
     PASSWORD = 611,
     PHASE_SYM = 612,
     PLUGINS_SYM = 613,
     PLUGIN_SYM = 614,
     POINT_SYM = 615,
     POLYGON = 616,
     PORT_SYM = 617,
     POSITION_SYM = 618,
     PRECISION = 619,
     PREPARE_SYM = 620,
     PRESERVE_SYM = 621,
     PREV_SYM = 622,
     PRIMARY_SYM = 623,
     PRIVILEGES = 624,
     PROCEDURE = 625,
     PROCESS = 626,
     PROCESSLIST_SYM = 627,
     PURGE = 628,
     QUARTER_SYM = 629,
     QUERY_SYM = 630,
     QUICK = 631,
     RANGE_SYM = 632,
     READS_SYM = 633,
     READ_ONLY_SYM = 634,
     READ_SYM = 635,
     READ_WRITE_SYM = 636,
     REAL = 637,
     REBUILD_SYM = 638,
     RECOVER_SYM = 639,
     REDOFILE_SYM = 640,
     REDO_BUFFER_SIZE_SYM = 641,
     REDUNDANT_SYM = 642,
     REFERENCES = 643,
     REGEXP = 644,
     RELAY_LOG_FILE_SYM = 645,
     RELAY_LOG_POS_SYM = 646,
     RELAY_THREAD = 647,
     RELEASE_SYM = 648,
     RELOAD = 649,
     REMOVE_SYM = 650,
     RENAME = 651,
     REORGANIZE_SYM = 652,
     REPAIR = 653,
     REPEATABLE_SYM = 654,
     REPEAT_SYM = 655,
     REPLACE = 656,
     REPLICATION = 657,
     REQUIRE_SYM = 658,
     RESET_SYM = 659,
     RESOURCES = 660,
     RESTORE_SYM = 661,
     RESTRICT = 662,
     RESUME_SYM = 663,
     RETURNS_SYM = 664,
     RETURN_SYM = 665,
     REVERSE_SYM = 666,
     REVOKE = 667,
     RIGHT = 668,
     ROLLBACK_SYM = 669,
     ROLLUP_SYM = 670,
     ROUTINE_SYM = 671,
     ROWS_SYM = 672,
     ROW_FORMAT_SYM = 673,
     ROW_SYM = 674,
     RTREE_SYM = 675,
     SAVEPOINT_SYM = 676,
     SCHEDULE_SYM = 677,
     SECOND_MICROSECOND_SYM = 678,
     SECOND_SYM = 679,
     SECURITY_SYM = 680,
     SELECT_SYM = 681,
     SENSITIVE_SYM = 682,
     SEPARATOR_SYM = 683,
     SERIALIZABLE_SYM = 684,
     SERIAL_SYM = 685,
     SESSION_SYM = 686,
     SERVER_SYM = 687,
     SERVER_OPTIONS = 688,
     SET = 689,
     SET_VAR = 690,
     SHARE_SYM = 691,
     SHIFT_LEFT = 692,
     SHIFT_RIGHT = 693,
     SHOW = 694,
     SHUTDOWN = 695,
     SIGNED_SYM = 696,
     SIMPLE_SYM = 697,
     SLAVE = 698,
     SMALLINT = 699,
     SNAPSHOT_SYM = 700,
     SOCKET_SYM = 701,
     SONAME_SYM = 702,
     SOUNDS_SYM = 703,
     SPATIAL_SYM = 704,
     SPECIFIC_SYM = 705,
     SQLEXCEPTION_SYM = 706,
     SQLSTATE_SYM = 707,
     SQLWARNING_SYM = 708,
     SQL_BIG_RESULT = 709,
     SQL_BUFFER_RESULT = 710,
     SQL_CACHE_SYM = 711,
     SQL_CALC_FOUND_ROWS = 712,
     SQL_NO_CACHE_SYM = 713,
     SQL_SMALL_RESULT = 714,
     SQL_SYM = 715,
     SQL_THREAD = 716,
     SSL_SYM = 717,
     STARTING = 718,
     STARTS_SYM = 719,
     START_SYM = 720,
     STATUS_SYM = 721,
     STDDEV_SAMP_SYM = 722,
     STD_SYM = 723,
     STOP_SYM = 724,
     STORAGE_SYM = 725,
     STRAIGHT_JOIN = 726,
     STRING_SYM = 727,
     SUBDATE_SYM = 728,
     SUBJECT_SYM = 729,
     SUBPARTITIONS_SYM = 730,
     SUBPARTITION_SYM = 731,
     SUBSTRING = 732,
     SUM_SYM = 733,
     SUPER_SYM = 734,
     SUSPEND_SYM = 735,
     SYSDATE = 736,
     TABLES = 737,
     TABLESPACE = 738,
     TABLE_REF_PRIORITY = 739,
     TABLE_SYM = 740,
     TEMPORARY = 741,
     TEMPTABLE_SYM = 742,
     TERMINATED = 743,
     TEXT_STRING = 744,
     TEXT_SYM = 745,
     THAN_SYM = 746,
     THEN_SYM = 747,
     TIMESTAMP = 748,
     TIMESTAMP_ADD = 749,
     TIMESTAMP_DIFF = 750,
     TIME_SYM = 751,
     TINYBLOB = 752,
     TINYINT = 753,
     TINYTEXT = 754,
     TO_SYM = 755,
     TRAILING = 756,
     TRANSACTION_SYM = 757,
     TRANSACTIONAL_SYM = 758,
     TRIGGERS_SYM = 759,
     TRIGGER_SYM = 760,
     TRIM = 761,
     TRUE_SYM = 762,
     TRUNCATE_SYM = 763,
     TYPES_SYM = 764,
     TYPE_SYM = 765,
     UDF_RETURNS_SYM = 766,
     ULONGLONG_NUM = 767,
     UNCOMMITTED_SYM = 768,
     UNDEFINED_SYM = 769,
     UNDERSCORE_CHARSET = 770,
     UNDOFILE_SYM = 771,
     UNDO_BUFFER_SIZE_SYM = 772,
     UNDO_SYM = 773,
     UNICODE_SYM = 774,
     UNINSTALL_SYM = 775,
     UNION_SYM = 776,
     UNIQUE_SYM = 777,
     UNKNOWN_SYM = 778,
     UNLOCK_SYM = 779,
     UNSIGNED = 780,
     UNTIL_SYM = 781,
     UPDATE_SYM = 782,
     UPGRADE_SYM = 783,
     USAGE = 784,
     USER = 785,
     USE_FRM = 786,
     USE_SYM = 787,
     USING = 788,
     UTC_DATE_SYM = 789,
     UTC_TIMESTAMP_SYM = 790,
     UTC_TIME_SYM = 791,
     VALUES = 792,
     VALUE_SYM = 793,
     VARBINARY = 794,
     VARCHAR = 795,
     VARIABLES = 796,
     VARIANCE_SYM = 797,
     VARYING = 798,
     VAR_SAMP_SYM = 799,
     VIEW_SYM = 800,
     WAIT_SYM = 801,
     WARNINGS = 802,
     WEEK_SYM = 803,
     WEIGHT_STRING_SYM = 804,
     WHEN_SYM = 805,
     WHERE = 806,
     WHILE_SYM = 807,
     WITH = 808,
     WORK_SYM = 809,
     WRAPPER_SYM = 810,
     WRITE_SYM = 811,
     X509_SYM = 812,
     XA_SYM = 813,
     XML_SYM = 814,
     XOR = 815,
     YEAR_MONTH_SYM = 816,
     YEAR_SYM = 817,
     ZEROFILL = 818
   };
#endif
/* Tokens.  */
#define ABORT_SYM 258
#define ACCESSIBLE_SYM 259
#define ACTION 260
#define ADD 261
#define ADDDATE_SYM 262
#define AFTER_SYM 263
#define AGAINST 264
#define AGGREGATE_SYM 265
#define ALGORITHM_SYM 266
#define ALL 267
#define ALTER 268
#define ANALYZE_SYM 269
#define AND_AND_SYM 270
#define AND_SYM 271
#define ANY_SYM 272
#define AS 273
#define ASC 274
#define ASCII_SYM 275
#define ASENSITIVE_SYM 276
#define AT_SYM 277
#define AUTHORS_SYM 278
#define AUTOEXTEND_SIZE_SYM 279
#define AUTO_INC 280
#define AVG_ROW_LENGTH 281
#define AVG_SYM 282
#define BACKUP_SYM 283
#define BEFORE_SYM 284
#define BEGIN_SYM 285
#define BETWEEN_SYM 286
#define BIGINT 287
#define BINARY 288
#define BINLOG_SYM 289
#define BIN_NUM 290
#define BIT_AND 291
#define BIT_OR 292
#define BIT_SYM 293
#define BIT_XOR 294
#define BLOB_SYM 295
#define BOOLEAN_SYM 296
#define BOOL_SYM 297
#define BOTH 298
#define BTREE_SYM 299
#define BY 300
#define BYTE_SYM 301
#define CACHE_SYM 302
#define CALL_SYM 303
#define CASCADE 304
#define CASCADED 305
#define CASE_SYM 306
#define CAST_SYM 307
#define CHAIN_SYM 308
#define CHANGE 309
#define CHANGED 310
#define CHARSET 311
#define CHAR_SYM 312
#define CHECKSUM_SYM 313
#define CHECK_SYM 314
#define CIPHER_SYM 315
#define CLIENT_SYM 316
#define CLOSE_SYM 317
#define COALESCE 318
#define CODE_SYM 319
#define COLLATE_SYM 320
#define COLLATION_SYM 321
#define COLUMNS 322
#define COLUMN_SYM 323
#define COMMENT_SYM 324
#define COMMITTED_SYM 325
#define COMMIT_SYM 326
#define COMPACT_SYM 327
#define COMPLETION_SYM 328
#define COMPRESSED_SYM 329
#define CONCURRENT 330
#define CONDITION_SYM 331
#define CONNECTION_SYM 332
#define CONSISTENT_SYM 333
#define CONSTRAINT 334
#define CONTAINS_SYM 335
#define CONTINUE_SYM 336
#define CONTRIBUTORS_SYM 337
#define CONVERT_SYM 338
#define COUNT_SYM 339
#define CREATE 340
#define CROSS 341
#define CUBE_SYM 342
#define CURDATE 343
#define CURRENT_USER 344
#define CURSOR_SYM 345
#define CURTIME 346
#define DATABASE 347
#define DATABASES 348
#define DATAFILE_SYM 349
#define DATA_SYM 350
#define DATETIME 351
#define DATE_ADD_INTERVAL 352
#define DATE_SUB_INTERVAL 353
#define DATE_SYM 354
#define DAY_HOUR_SYM 355
#define DAY_MICROSECOND_SYM 356
#define DAY_MINUTE_SYM 357
#define DAY_SECOND_SYM 358
#define DAY_SYM 359
#define DEALLOCATE_SYM 360
#define DECIMAL_NUM 361
#define DECIMAL_SYM 362
#define DECLARE_SYM 363
#define DEFAULT 364
#define DEFINER_SYM 365
#define DELAYED_SYM 366
#define DELAY_KEY_WRITE_SYM 367
#define DELETE_SYM 368
#define DESC 369
#define DESCRIBE 370
#define DES_KEY_FILE 371
#define DETERMINISTIC_SYM 372
#define DIRECTORY_SYM 373
#define DISABLE_SYM 374
#define DISCARD 375
#define DISK_SYM 376
#define DISTINCT 377
#define DIV_SYM 378
#define DOUBLE_SYM 379
#define DO_SYM 380
#define DROP 381
#define DUAL_SYM 382
#define DUMPFILE 383
#define DUPLICATE_SYM 384
#define DYNAMIC_SYM 385
#define EACH_SYM 386
#define ELSE 387
#define ELSEIF_SYM 388
#define ENABLE_SYM 389
#define ENCLOSED 390
#define END 391
#define ENDS_SYM 392
#define END_OF_INPUT 393
#define ENGINES_SYM 394
#define ENGINE_SYM 395
#define ENUM 396
#define EQ 397
#define EQUAL_SYM 398
#define ERRORS 399
#define ESCAPED 400
#define ESCAPE_SYM 401
#define EVENTS_SYM 402
#define EVENT_SYM 403
#define EVERY_SYM 404
#define EXCLUSIVE_SYM 405
#define EXECUTE_SYM 406
#define EXISTS 407
#define EXIT_SYM 408
#define EXPANSION_SYM 409
#define EXTENDED_SYM 410
#define EXTENT_SIZE_SYM 411
#define EXTRACT_SYM 412
#define FALSE_SYM 413
#define FAST_SYM 414
#define FETCH_SYM 415
#define COLUMN_FORMAT_SYM 416
#define FILE_SYM 417
#define FIRST_SYM 418
#define FIXED_SYM 419
#define FLOAT_NUM 420
#define FLOAT_SYM 421
#define FLUSH_SYM 422
#define FORCE_SYM 423
#define FOREIGN 424
#define FOR_SYM 425
#define FOUND_SYM 426
#define FRAC_SECOND_SYM 427
#define FROM 428
#define FULL 429
#define FULLTEXT_SYM 430
#define FUNCTION_SYM 431
#define GE 432
#define GEOMETRYCOLLECTION 433
#define GEOMETRY_SYM 434
#define GET_FORMAT 435
#define GLOBAL_SYM 436
#define GRANT 437
#define GRANTS 438
#define GROUP_SYM 439
#define GROUP_CONCAT_SYM 440
#define GT_SYM 441
#define HANDLER_SYM 442
#define HASH_SYM 443
#define HAVING 444
#define HELP_SYM 445
#define HEX_NUM 446
#define HIGH_PRIORITY 447
#define HOST_SYM 448
#define HOSTS_SYM 449
#define HOUR_MICROSECOND_SYM 450
#define HOUR_MINUTE_SYM 451
#define HOUR_SECOND_SYM 452
#define HOUR_SYM 453
#define IDENT 454
#define IDENTIFIED_SYM 455
#define IDENT_QUOTED 456
#define IF 457
#define IGNORE_SYM 458
#define IMPORT 459
#define INDEXES 460
#define INDEX_SYM 461
#define INFILE 462
#define INITIAL_SIZE_SYM 463
#define INNER_SYM 464
#define INOUT_SYM 465
#define INSENSITIVE_SYM 466
#define INSERT 467
#define INSERT_METHOD 468
#define INSTALL_SYM 469
#define INTERVAL_SYM 470
#define INTO 471
#define INT_SYM 472
#define INVOKER_SYM 473
#define IN_SYM 474
#define IS 475
#define ISOLATION 476
#define ISSUER_SYM 477
#define ITERATE_SYM 478
#define JOIN_SYM 479
#define KEYS 480
#define KEY_BLOCK_SIZE 481
#define KEY_SYM 482
#define KILL_SYM 483
#define LANGUAGE_SYM 484
#define LAST_SYM 485
#define LE 486
#define LEADING 487
#define LEAVES 488
#define LEAVE_SYM 489
#define LEFT 490
#define LESS_SYM 491
#define LEVEL_SYM 492
#define LEX_HOSTNAME 493
#define LIKE 494
#define LIMIT 495
#define LINEAR_SYM 496
#define LINES 497
#define LINESTRING 498
#define LIST_SYM 499
#define LOAD 500
#define LOCAL_SYM 501
#define LOCATOR_SYM 502
#define LOCKS_SYM 503
#define LOCK_SYM 504
#define LOGFILE_SYM 505
#define LOGS_SYM 506
#define LONGBLOB 507
#define LONGTEXT 508
#define LONG_NUM 509
#define LONG_SYM 510
#define LOOP_SYM 511
#define LOW_PRIORITY 512
#define LT 513
#define MASTER_CONNECT_RETRY_SYM 514
#define MASTER_HOST_SYM 515
#define MASTER_LOG_FILE_SYM 516
#define MASTER_LOG_POS_SYM 517
#define MASTER_PASSWORD_SYM 518
#define MASTER_PORT_SYM 519
#define MASTER_SERVER_ID_SYM 520
#define MASTER_SSL_CAPATH_SYM 521
#define MASTER_SSL_CA_SYM 522
#define MASTER_SSL_CERT_SYM 523
#define MASTER_SSL_CIPHER_SYM 524
#define MASTER_SSL_KEY_SYM 525
#define MASTER_SSL_SYM 526
#define MASTER_SSL_VERIFY_SERVER_CERT_SYM 527
#define MASTER_SYM 528
#define MASTER_USER_SYM 529
#define MATCH 530
#define MAX_CONNECTIONS_PER_HOUR 531
#define MAX_QUERIES_PER_HOUR 532
#define MAX_ROWS 533
#define MAX_SIZE_SYM 534
#define MAX_SYM 535
#define MAX_UPDATES_PER_HOUR 536
#define MAX_USER_CONNECTIONS_SYM 537
#define MAX_VALUE_SYM 538
#define MEDIUMBLOB 539
#define MEDIUMINT 540
#define MEDIUMTEXT 541
#define MEDIUM_SYM 542
#define MEMORY_SYM 543
#define MERGE_SYM 544
#define MICROSECOND_SYM 545
#define MIGRATE_SYM 546
#define MINUTE_MICROSECOND_SYM 547
#define MINUTE_SECOND_SYM 548
#define MINUTE_SYM 549
#define MIN_ROWS 550
#define MIN_SYM 551
#define MODE_SYM 552
#define MODIFIES_SYM 553
#define MODIFY_SYM 554
#define MOD_SYM 555
#define MONTH_SYM 556
#define MULTILINESTRING 557
#define MULTIPOINT 558
#define MULTIPOLYGON 559
#define MUTEX_SYM 560
#define NAMES_SYM 561
#define NAME_SYM 562
#define NATIONAL_SYM 563
#define NATURAL 564
#define NCHAR_STRING 565
#define NCHAR_SYM 566
#define NDBCLUSTER_SYM 567
#define NE 568
#define NEG 569
#define NEW_SYM 570
#define NEXT_SYM 571
#define NODEGROUP_SYM 572
#define NONE_SYM 573
#define NOT2_SYM 574
#define NOT_SYM 575
#define NOW_SYM 576
#define NOWAIT_SYM 577
#define NO_SYM 578
#define NO_WAIT_SYM 579
#define NO_WRITE_TO_BINLOG 580
#define NULL_SYM 581
#define NUM 582
#define NUMERIC_SYM 583
#define NVARCHAR_SYM 584
#define OFFSET_SYM 585
#define OLD_PASSWORD 586
#define ON 587
#define ONE_SHOT_SYM 588
#define ONE_SYM 589
#define OPEN_SYM 590
#define OPTIMIZE 591
#define OPTIONS_SYM 592
#define OPTION 593
#define OPTIONALLY 594
#define OR2_SYM 595
#define ORDER_SYM 596
#define OR_OR_SYM 597
#define OR_SYM 598
#define OUTER 599
#define OUTFILE 600
#define OUT_SYM 601
#define OWNER_SYM 602
#define PACK_KEYS_SYM 603
#define PAGE_SYM 604
#define PARAM_MARKER 605
#define PARSER_SYM 606
#define PARTIAL 607
#define PARTITIONING_SYM 608
#define PARTITIONS_SYM 609
#define PARTITION_SYM 610
#define PASSWORD 611
#define PHASE_SYM 612
#define PLUGINS_SYM 613
#define PLUGIN_SYM 614
#define POINT_SYM 615
#define POLYGON 616
#define PORT_SYM 617
#define POSITION_SYM 618
#define PRECISION 619
#define PREPARE_SYM 620
#define PRESERVE_SYM 621
#define PREV_SYM 622
#define PRIMARY_SYM 623
#define PRIVILEGES 624
#define PROCEDURE 625
#define PROCESS 626
#define PROCESSLIST_SYM 627
#define PURGE 628
#define QUARTER_SYM 629
#define QUERY_SYM 630
#define QUICK 631
#define RANGE_SYM 632
#define READS_SYM 633
#define READ_ONLY_SYM 634
#define READ_SYM 635
#define READ_WRITE_SYM 636
#define REAL 637
#define REBUILD_SYM 638
#define RECOVER_SYM 639
#define REDOFILE_SYM 640
#define REDO_BUFFER_SIZE_SYM 641
#define REDUNDANT_SYM 642
#define REFERENCES 643
#define REGEXP 644
#define RELAY_LOG_FILE_SYM 645
#define RELAY_LOG_POS_SYM 646
#define RELAY_THREAD 647
#define RELEASE_SYM 648
#define RELOAD 649
#define REMOVE_SYM 650
#define RENAME 651
#define REORGANIZE_SYM 652
#define REPAIR 653
#define REPEATABLE_SYM 654
#define REPEAT_SYM 655
#define REPLACE 656
#define REPLICATION 657
#define REQUIRE_SYM 658
#define RESET_SYM 659
#define RESOURCES 660
#define RESTORE_SYM 661
#define RESTRICT 662
#define RESUME_SYM 663
#define RETURNS_SYM 664
#define RETURN_SYM 665
#define REVERSE_SYM 666
#define REVOKE 667
#define RIGHT 668
#define ROLLBACK_SYM 669
#define ROLLUP_SYM 670
#define ROUTINE_SYM 671
#define ROWS_SYM 672
#define ROW_FORMAT_SYM 673
#define ROW_SYM 674
#define RTREE_SYM 675
#define SAVEPOINT_SYM 676
#define SCHEDULE_SYM 677
#define SECOND_MICROSECOND_SYM 678
#define SECOND_SYM 679
#define SECURITY_SYM 680
#define SELECT_SYM 681
#define SENSITIVE_SYM 682
#define SEPARATOR_SYM 683
#define SERIALIZABLE_SYM 684
#define SERIAL_SYM 685
#define SESSION_SYM 686
#define SERVER_SYM 687
#define SERVER_OPTIONS 688
#define SET 689
#define SET_VAR 690
#define SHARE_SYM 691
#define SHIFT_LEFT 692
#define SHIFT_RIGHT 693
#define SHOW 694
#define SHUTDOWN 695
#define SIGNED_SYM 696
#define SIMPLE_SYM 697
#define SLAVE 698
#define SMALLINT 699
#define SNAPSHOT_SYM 700
#define SOCKET_SYM 701
#define SONAME_SYM 702
#define SOUNDS_SYM 703
#define SPATIAL_SYM 704
#define SPECIFIC_SYM 705
#define SQLEXCEPTION_SYM 706
#define SQLSTATE_SYM 707
#define SQLWARNING_SYM 708
#define SQL_BIG_RESULT 709
#define SQL_BUFFER_RESULT 710
#define SQL_CACHE_SYM 711
#define SQL_CALC_FOUND_ROWS 712
#define SQL_NO_CACHE_SYM 713
#define SQL_SMALL_RESULT 714
#define SQL_SYM 715
#define SQL_THREAD 716
#define SSL_SYM 717
#define STARTING 718
#define STARTS_SYM 719
#define START_SYM 720
#define STATUS_SYM 721
#define STDDEV_SAMP_SYM 722
#define STD_SYM 723
#define STOP_SYM 724
#define STORAGE_SYM 725
#define STRAIGHT_JOIN 726
#define STRING_SYM 727
#define SUBDATE_SYM 728
#define SUBJECT_SYM 729
#define SUBPARTITIONS_SYM 730
#define SUBPARTITION_SYM 731
#define SUBSTRING 732
#define SUM_SYM 733
#define SUPER_SYM 734
#define SUSPEND_SYM 735
#define SYSDATE 736
#define TABLES 737
#define TABLESPACE 738
#define TABLE_REF_PRIORITY 739
#define TABLE_SYM 740
#define TEMPORARY 741
#define TEMPTABLE_SYM 742
#define TERMINATED 743
#define TEXT_STRING 744
#define TEXT_SYM 745
#define THAN_SYM 746
#define THEN_SYM 747
#define TIMESTAMP 748
#define TIMESTAMP_ADD 749
#define TIMESTAMP_DIFF 750
#define TIME_SYM 751
#define TINYBLOB 752
#define TINYINT 753
#define TINYTEXT 754
#define TO_SYM 755
#define TRAILING 756
#define TRANSACTION_SYM 757
#define TRANSACTIONAL_SYM 758
#define TRIGGERS_SYM 759
#define TRIGGER_SYM 760
#define TRIM 761
#define TRUE_SYM 762
#define TRUNCATE_SYM 763
#define TYPES_SYM 764
#define TYPE_SYM 765
#define UDF_RETURNS_SYM 766
#define ULONGLONG_NUM 767
#define UNCOMMITTED_SYM 768
#define UNDEFINED_SYM 769
#define UNDERSCORE_CHARSET 770
#define UNDOFILE_SYM 771
#define UNDO_BUFFER_SIZE_SYM 772
#define UNDO_SYM 773
#define UNICODE_SYM 774
#define UNINSTALL_SYM 775
#define UNION_SYM 776
#define UNIQUE_SYM 777
#define UNKNOWN_SYM 778
#define UNLOCK_SYM 779
#define UNSIGNED 780
#define UNTIL_SYM 781
#define UPDATE_SYM 782
#define UPGRADE_SYM 783
#define USAGE 784
#define USER 785
#define USE_FRM 786
#define USE_SYM 787
#define USING 788
#define UTC_DATE_SYM 789
#define UTC_TIMESTAMP_SYM 790
#define UTC_TIME_SYM 791
#define VALUES 792
#define VALUE_SYM 793
#define VARBINARY 794
#define VARCHAR 795
#define VARIABLES 796
#define VARIANCE_SYM 797
#define VARYING 798
#define VAR_SAMP_SYM 799
#define VIEW_SYM 800
#define WAIT_SYM 801
#define WARNINGS 802
#define WEEK_SYM 803
#define WEIGHT_STRING_SYM 804
#define WHEN_SYM 805
#define WHERE 806
#define WHILE_SYM 807
#define WITH 808
#define WORK_SYM 809
#define WRAPPER_SYM 810
#define WRITE_SYM 811
#define X509_SYM 812
#define XA_SYM 813
#define XML_SYM 814
#define XOR 815
#define YEAR_MONTH_SYM 816
#define YEAR_SYM 817
#define ZEROFILL 818




/* Copy the first part of user declarations.  */
#line 23 "sql_yacc.yy"

/* thd is passed as an argument to yyparse(), and subsequently to yylex().
** The type will be void*, so it must be  cast to (THD*) when used.
** Use the YYTHD macro for this.
*/
#define YYPARSE_PARAM yythd
#define YYLEX_PARAM yythd
#define YYTHD ((THD *)yythd)

#define MYSQL_YACC
#define YYINITDEPTH 100
#define YYMAXDEPTH 3200				/* Because of 64K stack */
#define Lex (YYTHD->lex)
#define Select Lex->current_select
#include "mysql_priv.h"
#include "slave.h"
#include "lex_symbol.h"
#include "item_create.h"
#include "sp_head.h"
#include "sp_pcontext.h"
#include "sp_rcontext.h"
#include "sp.h"
#include "event_data_objects.h"
#include <myisam.h>
#include <myisammrg.h>

int yylex(void *yylval, void *yythd);

const LEX_STRING null_lex_str= {0,0};

#define yyoverflow(A,B,C,D,E,F)               \
  {                                           \
    ulong val= *(F);                          \
    if (my_yyoverflow((B), (D), &val))        \
    {                                         \
      yyerror((char*) (A));                   \
      return 2;                               \
    }                                         \
    else                                      \
    {                                         \
      *(F)= (YYSIZE_T)val;                    \
    }                                         \
  }

#define MYSQL_YYABORT                         \
  do                                          \
  {                                           \
    LEX::cleanup_lex_after_parse_error(YYTHD);\
    YYABORT;                                  \
  } while (0)

#define MYSQL_YYABORT_UNLESS(A)         \
  if (!(A))                             \
  {                                     \
    my_parse_error(ER(ER_SYNTAX_ERROR));\
    MYSQL_YYABORT;                      \
  }

/*
  Work around for broken code generated by bison 1.875.

  The code generated by bison 1.875a and later, bison 2.1 and bison 2.2 is ok.
  With bison 1.875 however, the generated code contains:
<pre>
  yyerrlab1:
  #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
    __attribute__ ((__unused__))
  #endif
</pre>
  This usage of __attribute__ is illegal, so we remove it.
  See the following references for details:
  http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00014.html
  http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14273
*/

#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
#undef __attribute__
#define __attribute__(X)
#endif


#ifndef DBUG_OFF
#define YYDEBUG 1
#else
#define YYDEBUG 0
#endif

/**
  @brief Push an error message into MySQL error stack with line
  and position information.

  This function provides semantic action implementers with a way
  to push the famous "You have a syntax error near..." error
  message into the error stack, which is normally produced only if
  a parse error is discovered internally by the Bison generated
  parser.
*/

void my_parse_error(const char *s)
{
  THD *thd= current_thd;
  Lex_input_stream *lip= thd->m_lip;

  const char *yytext= lip->get_tok_start();
  /* Push an error into the error stack */
  my_printf_error(ER_PARSE_ERROR,  ER(ER_PARSE_ERROR), MYF(0), s,
                  (yytext ? yytext : ""),
                  lip->yylineno);
}

/**
  @brief Bison callback to report a syntax/OOM error

  This function is invoked by the bison-generated parser
  when a syntax error, a parse error or an out-of-memory
  condition occurs. This function is not invoked when the
  parser is requested to abort by semantic action code
  by means of YYABORT or YYACCEPT macros. This is why these
  macros should not be used (use MYSQL_YYABORT/MYSQL_YYACCEPT
  instead).

  The parser will abort immediately after invoking this callback.

  This function is not for use in semantic actions and is internal to
  the parser, as it performs some pre-return cleanup. 
  In semantic actions, please use my_parse_error or my_error to
  push an error into the error stack and MYSQL_YYABORT
  to abort from the parser.
*/

void MYSQLerror(const char *s)
{
  THD *thd= current_thd;

  /*
    Restore the original LEX if it was replaced when parsing
    a stored procedure. We must ensure that a parsing error
    does not leave any side effects in the THD.
  */
  LEX::cleanup_lex_after_parse_error(thd);

  /* "parse error" changed into "syntax error" between bison 1.75 and 1.875 */
  if (strcmp(s,"parse error") == 0 || strcmp(s,"syntax error") == 0)
    s= ER(ER_SYNTAX_ERROR);
  my_parse_error(s);
}


#ifndef DBUG_OFF
void turn_parser_debug_on()
{
  /*
     MYSQLdebug is in sql/sql_yacc.cc, in bison generated code.
     Turning this option on is **VERY** verbose, and should be
     used when investigating a syntax error problem only.

     The syntax to run with bison traces is as follows :
     - Starting a server manually :
       mysqld --debug="d,parser_debug" ...
     - Running a test :
       mysql-test-run.pl --mysqld="--debug=d,parser_debug" ...

     The result will be in the process stderr (var/log/master.err)
   */

  extern int yydebug;
  yydebug= 1;
}
#endif

static bool is_native_function(THD *thd, const LEX_STRING *name)
{
  if (find_native_function_builder(thd, *name))
    return true;

  if (is_lex_native_function(name))
    return true;

  return false;
}


/**
  Helper action for a case statement (entering the CASE).
  This helper is used for both 'simple' and 'searched' cases.
  This helper, with the other case_stmt_action_..., is executed when
  the following SQL code is parsed:
<pre>
CREATE PROCEDURE proc_19194_simple(i int)
BEGIN
  DECLARE str CHAR(10);

  CASE i
    WHEN 1 THEN SET str="1";
    WHEN 2 THEN SET str="2";
    WHEN 3 THEN SET str="3";
    ELSE SET str="unknown";
  END CASE;

  SELECT str;
END
</pre>
  The actions are used to generate the following code:
<pre>
SHOW PROCEDURE CODE proc_19194_simple;
Pos     Instruction
0       set str@1 NULL
1       set_case_expr (12) 0 i@0
2       jump_if_not 5(12) (case_expr@0 = 1)
3       set str@1 _latin1'1'
4       jump 12
5       jump_if_not 8(12) (case_expr@0 = 2)
6       set str@1 _latin1'2'
7       jump 12
8       jump_if_not 11(12) (case_expr@0 = 3)
9       set str@1 _latin1'3'
10      jump 12
11      set str@1 _latin1'unknown'
12      stmt 0 "SELECT str"
</pre>

  @param lex the parser lex context
*/

void case_stmt_action_case(LEX *lex)
{
  lex->sphead->new_cont_backpatch(NULL);

  /*
    BACKPATCH: Creating target label for the jump to
    "case_stmt_action_end_case"
    (Instruction 12 in the example)
  */

  lex->spcont->push_label((char *)"", lex->sphead->instructions());
}

/**
  Helper action for a case expression statement (the expr in 'CASE expr').
  This helper is used for 'searched' cases only.
  @param lex the parser lex context
  @param expr the parsed expression
  @return 0 on success
*/

int case_stmt_action_expr(LEX *lex, Item* expr)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *parsing_ctx= lex->spcont;
  int case_expr_id= parsing_ctx->register_case_expr();
  sp_instr_set_case_expr *i;

  if (parsing_ctx->push_case_expr_id(case_expr_id))
    return 1;

  i= new sp_instr_set_case_expr(sp->instructions(),
                                parsing_ctx, case_expr_id, expr, lex);

  sp->add_cont_backpatch(i);
  sp->add_instr(i);

  return 0;
}

/**
  Helper action for a case when condition.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
  @param when the parsed expression for the WHEN clause
  @param simple true for simple cases, false for searched cases
*/

void case_stmt_action_when(LEX *lex, Item *when, bool simple)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *ctx= lex->spcont;
  uint ip= sp->instructions();
  sp_instr_jump_if_not *i;
  Item_case_expr *var;
  Item *expr;

  if (simple)
  {
    var= new Item_case_expr(ctx->get_current_case_expr_id());

#ifndef DBUG_OFF
    if (var)
    {
      var->m_sp= sp;
    }
#endif

    expr= new Item_func_eq(var, when);
    i= new sp_instr_jump_if_not(ip, ctx, expr, lex);
  }
  else
    i= new sp_instr_jump_if_not(ip, ctx, when, lex);

  /*
    BACKPATCH: Registering forward jump from
    "case_stmt_action_when" to "case_stmt_action_then"
    (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  */

  sp->push_backpatch(i, ctx->push_label((char *)"", 0));
  sp->add_cont_backpatch(i);
  sp->add_instr(i);
}

/**
  Helper action for a case then statements.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
*/

void case_stmt_action_then(LEX *lex)
{
  sp_head *sp= lex->sphead;
  sp_pcontext *ctx= lex->spcont;
  uint ip= sp->instructions();
  sp_instr_jump *i = new sp_instr_jump(ip, ctx);
  sp->add_instr(i);

  /*
    BACKPATCH: Resolving forward jump from
    "case_stmt_action_when" to "case_stmt_action_then"
    (jump_if_not from instruction 2 to 5, 5 to 8 ... in the example)
  */

  sp->backpatch(ctx->pop_label());

  /*
    BACKPATCH: Registering forward jump from
    "case_stmt_action_then" to "case_stmt_action_end_case"
    (jump from instruction 4 to 12, 7 to 12 ... in the example)
  */

  sp->push_backpatch(i, ctx->last_label());
}

/**
  Helper action for an end case.
  This helper is used for both 'simple' and 'searched' cases.
  @param lex the parser lex context
  @param simple true for simple cases, false for searched cases
*/

void case_stmt_action_end_case(LEX *lex, bool simple)
{
  /*
    BACKPATCH: Resolving forward jump from
    "case_stmt_action_then" to "case_stmt_action_end_case"
    (jump from instruction 4 to 12, 7 to 12 ... in the example)
  */
  lex->sphead->backpatch(lex->spcont->pop_label());

  if (simple)
    lex->spcont->pop_case_expr_id();

  lex->sphead->do_cont_backpatch();
}

/**
  Helper to resolve the SQL:2003 Syntax exception 1) in <in predicate>.
  See SQL:2003, Part 2, section 8.4 <in predicate>, Note 184, page 383.
  This function returns the proper item for the SQL expression
  <code>left [NOT] IN ( expr )</code>
  @param thd the current thread
  @param left the in predicand
  @param equal true for IN predicates, false for NOT IN predicates
  @param expr first and only expression of the in value list
  @return an expression representing the IN predicate.
*/
Item* handle_sql2003_note184_exception(THD *thd, Item* left, bool equal,
                                       Item *expr)
{
  /*
    Relevant references for this issue:
    - SQL:2003, Part 2, section 8.4 <in predicate>, page 383,
    - SQL:2003, Part 2, section 7.2 <row value expression>, page 296,
    - SQL:2003, Part 2, section 6.3 <value expression primary>, page 174,
    - SQL:2003, Part 2, section 7.15 <subquery>, page 370,
    - SQL:2003 Feature F561, "Full value expressions".

    The exception in SQL:2003 Note 184 means:
    Item_singlerow_subselect, which corresponds to a <scalar subquery>,
    should be re-interpreted as an Item_in_subselect, which corresponds
    to a <table subquery> when used inside an <in predicate>.

    Our reading of Note 184 is reccursive, so that all:
    - IN (( <subquery> ))
    - IN ((( <subquery> )))
    - IN '('^N <subquery> ')'^N
    - etc
    should be interpreted as a <table subquery>, no matter how deep in the
    expression the <subquery> is.
  */

  Item *result;

  DBUG_ENTER("handle_sql2003_note184_exception");

  if (expr->type() == Item::SUBSELECT_ITEM)
  {
    Item_subselect *expr2 = (Item_subselect*) expr;

    if (expr2->substype() == Item_subselect::SINGLEROW_SUBS)
    {
      Item_singlerow_subselect *expr3 = (Item_singlerow_subselect*) expr2;
      st_select_lex *subselect;

      /*
        Implement the mandated change, by altering the semantic tree:
          left IN Item_singlerow_subselect(subselect)
        is modified to
          left IN (subselect)
        which is represented as
          Item_in_subselect(left, subselect)
      */
      subselect= expr3->invalidate_and_restore_select_lex();
      result= new (thd->mem_root) Item_in_subselect(left, subselect);

      if (! equal)
        result = negate_expression(thd, result);

      DBUG_RETURN(result);
    }
  }

  if (equal)
    result= new (thd->mem_root) Item_func_eq(left, expr);
  else
    result= new (thd->mem_root) Item_func_ne(left, expr);

  DBUG_RETURN(result);
}



/* Enabling traces.  */
#ifndef YYDEBUG
# define YYDEBUG 0
#endif

/* Enabling verbose error messages.  */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif

/* Enabling the token table.  */
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 0
#endif

#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
#line 461 "sql_yacc.yy"
{
  int  num;
  ulong ulong_num;
  ulonglong ulonglong_number;
  longlong longlong_number;
  LEX_STRING lex_str;
  LEX_STRING *lex_str_ptr;
  LEX_SYMBOL symbol;
  Table_ident *table;
  char *simple_string;
  Item *item;
  Item_num *item_num;
  List<Item> *item_list;
  List<String> *string_list;
  String *string;
  Key_part_spec *key_part;
  TABLE_LIST *table_list;
  udf_func *udf;
  LEX_USER *lex_user;
  struct sys_var_with_base variable;
  enum enum_var_type var_type;
  Key::Keytype key_type;
  enum ha_key_alg key_alg;
  handlerton *db_type;
  enum row_type row_type;
  enum column_format_type column_format_type;
  enum ha_rkey_function ha_rkey_mode;
  enum enum_tx_isolation tx_isolation;
  enum Cast_target cast_type;
  enum Item_udftype udf_type;
  CHARSET_INFO *charset;
  thr_lock_type lock_type;
  struct st_table_lock_info table_lock_info;
  interval_type interval, interval_time_st;
  timestamp_type date_time_type;
  st_select_lex *select_lex;
  chooser_compare_func_creator boolfunc2creator;
  struct sp_cond_type *spcondtype;
  struct { int vars, conds, hndlrs, curs; } spblock;
  sp_name *spname;
  struct st_lex *lex;
  sp_head *sphead;
  struct p_elem_val *p_elem_value;
  enum index_hint_type index_hint;
  enum enum_filetype filetype;
}
/* Line 187 of yacc.c.  */
#line 1716 "sql_yacc.cc"
	YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif



/* Copy the second part of user declarations.  */
#line 508 "sql_yacc.yy"

bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);


/* Line 216 of yacc.c.  */
#line 1732 "sql_yacc.cc"

#ifdef short
# undef short
#endif

#ifdef YYTYPE_UINT8
typedef YYTYPE_UINT8 yytype_uint8;
#else
typedef unsigned char yytype_uint8;
#endif

#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
typedef signed char yytype_int8;
#else
typedef short int yytype_int8;
#endif

#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
typedef unsigned short int yytype_uint16;
#endif

#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
typedef short int yytype_int16;
#endif

#ifndef YYSIZE_T
# ifdef __SIZE_TYPE__
#  define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
#  define YYSIZE_T size_t
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
#  define YYSIZE_T size_t
# else
#  define YYSIZE_T unsigned int
# endif
#endif

#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)

#ifndef YY_
# if YYENABLE_NLS
#  if ENABLE_NLS
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
#   define YY_(msgid) dgettext ("bison-runtime", msgid)
#  endif
# endif
# ifndef YY_
#  define YY_(msgid) msgid
# endif
#endif

/* Suppress unused-variable warnings by "using" E.  */
#if ! defined lint || defined __GNUC__
# define YYUSE(e) ((void) (e))
#else
# define YYUSE(e) /* empty */
#endif

/* Identity function, used to suppress warnings about constant conditions.  */
#ifndef lint
# define YYID(n) (n)
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static int
YYID (int i)
#else
static int
YYID (i)
    int i;
#endif
{
  return i;
}
#endif

#if ! defined yyoverflow || YYERROR_VERBOSE

/* The parser invokes alloca or malloc; define the necessary symbols.  */

# ifdef YYSTACK_USE_ALLOCA
#  if YYSTACK_USE_ALLOCA
#   ifdef __GNUC__
#    define YYSTACK_ALLOC __builtin_alloca
#   elif defined __BUILTIN_VA_ARG_INCR
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
#   elif defined _AIX
#    define YYSTACK_ALLOC __alloca
#   elif defined _MSC_VER
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
#    define alloca _alloca
#   else
#    define YYSTACK_ALLOC alloca
#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#     ifndef _STDLIB_H
#      define _STDLIB_H 1
#     endif
#    endif
#   endif
#  endif
# endif

# ifdef YYSTACK_ALLOC
   /* Pacify GCC's `empty if-body' warning.  */
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
#  ifndef YYSTACK_ALLOC_MAXIMUM
    /* The OS might guarantee only one guard page at the bottom of the stack,
       and a page size can be as small as 4096 bytes.  So we cannot safely
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
       to allow for a few compiler-allocated temporary stack slots.  */
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
#  endif
# else
#  define YYSTACK_ALLOC YYMALLOC
#  define YYSTACK_FREE YYFREE
#  ifndef YYSTACK_ALLOC_MAXIMUM
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
#  endif
#  if (defined __cplusplus && ! defined _STDLIB_H \
       && ! ((defined YYMALLOC || defined malloc) \
	     && (defined YYFREE || defined free)))
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#   ifndef _STDLIB_H
#    define _STDLIB_H 1
#   endif
#  endif
#  ifndef YYMALLOC
#   define YYMALLOC malloc
#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
#  ifndef YYFREE
#   define YYFREE free
#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
#   endif
#  endif
# endif
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */


#if (! defined yyoverflow \
     && (! defined __cplusplus \
	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))

/* A type that is properly aligned for any stack member.  */
union yyalloc
{
  yytype_int16 yyss;
  YYSTYPE yyvs;
  };

/* The size of the maximum gap between one aligned stack and the next.  */
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)

/* The size of an array large to enough to hold all stacks, each with
   N elements.  */
# define YYSTACK_BYTES(N) \
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
      + YYSTACK_GAP_MAXIMUM)

/* Copy COUNT objects from FROM to TO.  The source and destination do
   not overlap.  */
# ifndef YYCOPY
#  if defined __GNUC__ && 1 < __GNUC__
#   define YYCOPY(To, From, Count) \
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
#  else
#   define YYCOPY(To, From, Count)		\
      do					\
	{					\
	  YYSIZE_T yyi;				\
	  for (yyi = 0; yyi < (Count); yyi++)	\
	    (To)[yyi] = (From)[yyi];		\
	}					\
      while (YYID (0))
#  endif
# endif

/* Relocate STACK from its old location to the new one.  The
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
   elements in the stack, and YYPTR gives the new location of the
   stack.  Advance YYPTR to a properly aligned location for the next
   stack.  */
# define YYSTACK_RELOCATE(Stack)					\
    do									\
      {									\
	YYSIZE_T yynewbytes;						\
	YYCOPY (&yyptr->Stack, Stack, yysize);				\
	Stack = &yyptr->Stack;						\
	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
	yyptr += yynewbytes / sizeof (*yyptr);				\
      }									\
    while (YYID (0))

#endif

/* YYFINAL -- State number of the termination state.  */
#define YYFINAL  542
/* YYLAST -- Last index in YYTABLE.  */
#define YYLAST   44646

/* YYNTOKENS -- Number of terminals.  */
#define YYNTOKENS  583
/* YYNNTS -- Number of nonterminals.  */
#define YYNNTS  863
/* YYNRULES -- Number of rules.  */
#define YYNRULES  2387
/* YYNRULES -- Number of states.  */
#define YYNSTATES  4067

/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
#define YYUNDEFTOK  2
#define YYMAXUTOK   818

#define YYTRANSLATE(YYX)						\
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
static const yytype_uint16 yytranslate[] =
{
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,   576,     2,     2,     2,   570,   565,     2,
     573,   574,   568,   567,   575,   566,   580,   569,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,   582,   581,
       2,     2,     2,     2,   579,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,   571,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,   577,   564,   578,   572,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563
};

#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
   YYRHS.  */
static const yytype_uint16 yyprhs[] =
{
       0,     0,     3,     5,     8,    10,    12,    14,    16,    18,
      20,    22,    24,    26,    28,    30,    32,    34,    36,    38,
      40,    42,    44,    46,    48,    50,    52,    54,    56,    58,
      60,    62,    64,    66,    68,    70,    72,    74,    76,    78,
      80,    82,    84,    86,    88,    90,    92,    94,    96,    98,
     100,   102,   104,   106,   108,   110,   112,   114,   118,   120,
     122,   127,   129,   132,   133,   138,   139,   142,   146,   148,
     151,   152,   156,   157,   163,   165,   169,   173,   177,   181,
     185,   189,   193,   197,   201,   205,   209,   213,   217,   219,
     223,   227,   231,   235,   236,   244,   245,   258,   259,   266,
     267,   271,   276,   281,   285,   288,   299,   301,   305,   308,
     311,   314,   317,   320,   323,   326,   327,   340,   341,   348,
     351,   352,   354,   358,   360,   361,   364,   365,   368,   369,
     371,   375,   380,   381,   384,   385,   388,   390,   392,   394,
     396,   398,   400,   402,   404,   406,   408,   410,   411,   415,
     417,   422,   423,   424,   425,   426,   427,   440,   441,   444,
     445,   448,   451,   454,   457,   460,   464,   468,   470,   472,
     474,   477,   481,   485,   486,   491,   492,   496,   497,   499,
     503,   505,   506,   508,   512,   514,   515,   519,   520,   522,
     526,   528,   533,   534,   536,   538,   540,   541,   545,   548,
     552,   553,   557,   558,   564,   570,   571,   579,   585,   586,
     589,   591,   593,   595,   599,   601,   603,   607,   608,   610,
     612,   614,   616,   619,   621,   623,   627,   628,   631,   633,
     635,   637,   639,   641,   643,   645,   647,   649,   651,   653,
     654,   660,   661,   664,   665,   669,   670,   673,   676,   679,
     682,   683,   690,   693,   694,   697,   699,   701,   705,   706,
     707,   708,   716,   717,   720,   723,   725,   727,   728,   729,
     738,   739,   746,   748,   751,   753,   756,   757,   758,   765,
     766,   767,   774,   775,   778,   779,   785,   786,   788,   789,
     795,   800,   801,   802,   811,   812,   820,   822,   824,   826,
     828,   830,   833,   838,   844,   845,   850,   855,   860,   864,
     868,   871,   874,   875,   878,   880,   883,   887,   889,   891,
     893,   894,   897,   899,   902,   906,   908,   910,   912,   914,
     916,   918,   920,   922,   923,   926,   928,   931,   935,   937,
     939,   941,   943,   945,   946,   949,   951,   954,   958,   960,
     962,   964,   966,   968,   970,   972,   973,   976,   978,   981,
     985,   987,   989,   991,   994,   997,  1000,  1002,  1004,  1006,
    1008,  1011,  1015,  1019,  1023,  1027,  1031,  1035,  1039,  1043,
    1048,  1049,  1051,  1053,  1055,  1057,  1059,  1062,  1063,  1068,
    1071,  1076,  1077,  1084,  1085,  1086,  1093,  1094,  1095,  1101,
    1102,  1110,  1111,  1113,  1114,  1118,  1119,  1123,  1124,  1125,
    1133,  1139,  1140,  1145,  1146,  1150,  1151,  1155,  1156,  1158,
    1159,  1161,  1163,  1167,  1169,  1175,  1181,  1182,  1185,  1186,
    1187,  1195,  1196,  1206,  1208,  1212,  1214,  1216,  1217,  1220,
    1221,  1225,  1227,  1231,  1232,  1233,  1234,  1235,  1245,  1247,
    1248,  1253,  1259,  1261,  1263,  1265,  1269,  1273,  1275,  1279,
    1281,  1283,  1284,  1288,  1290,  1294,  1295,  1300,  1302,  1303,
    1305,  1308,  1310,  1314,  1319,  1323,  1327,  1331,  1336,  1341,
    1345,  1346,  1347,  1354,  1355,  1357,  1358,  1360,  1362,  1365,
    1367,  1369,  1370,  1372,  1374,  1377,  1379,  1380,  1384,  1385,
    1387,  1389,  1392,  1394,  1397,  1401,  1405,  1409,  1413,  1417,
    1421,  1425,  1429,  1433,  1437,  1441,  1445,  1449,  1455,  1457,
    1459,  1463,  1468,  1473,  1476,  1479,  1482,  1485,  1489,  1493,
    1497,  1502,  1507,  1509,  1511,  1513,  1515,  1517,  1519,  1521,
    1523,  1525,  1527,  1529,  1531,  1533,  1535,  1537,  1539,  1542,
    1543,  1545,  1547,  1549,  1551,  1553,  1555,  1559,  1561,  1563,
    1566,  1569,  1577,  1586,  1595,  1598,  1601,  1602,  1604,  1607,
    1608,  1610,  1613,  1614,  1619,  1623,  1627,  1631,  1633,  1638,
    1640,  1642,  1648,  1651,  1657,  1660,  1665,  1667,  1673,  1679,
    1684,  1688,  1690,  1692,  1694,  1696,  1698,  1701,  1703,  1705,
    1707,  1710,  1714,  1717,  1721,  1724,  1727,  1731,  1735,  1739,
    1740,  1747,  1748,  1755,  1758,  1760,  1762,  1764,  1766,  1768,
    1770,  1772,  1774,  1776,  1778,  1780,  1783,  1786,  1788,  1791,
    1793,  1796,  1800,  1803,  1805,  1807,  1809,  1811,  1813,  1815,
    1817,  1820,  1821,  1825,  1827,  1833,  1834,  1836,  1839,  1841,
    1843,  1845,  1847,  1848,  1852,  1853,  1855,  1856,  1858,  1861,
    1863,  1865,  1868,  1871,  1874,  1877,  1880,  1883,  1888,  1890,
    1894,  1897,  1899,  1902,  1905,  1908,  1911,  1913,  1916,  1918,
    1920,  1922,  1924,  1926,  1927,  1930,  1932,  1934,  1936,  1938,
    1940,  1941,  1944,  1946,  1948,  1949,  1951,  1952,  1955,  1957,
    1960,  1964,  1967,  1968,  1970,  1971,  1973,  1975,  1978,  1979,
    1984,  1986,  1988,  1990,  1991,  1993,  1996,  1998,  2000,  2003,
    2005,  2009,  2013,  2015,  2017,  2018,  2021,  2022,  2024,  2025,
    2030,  2032,  2037,  2041,  2043,  2044,  2046,  2049,  2051,  2055,
    2059,  2062,  2065,  2068,  2070,  2072,  2075,  2078,  2081,  2083,
    2086,  2089,  2092,  2095,  2097,  2099,  2100,  2102,  2104,  2106,
    2108,  2109,  2111,  2113,  2115,  2116,  2118,  2121,  2122,  2124,
    2126,  2129,  2132,  2135,  2137,  2141,  2144,  2148,  2150,  2152,
    2154,  2159,  2162,  2164,  2169,  2170,  2172,  2173,  2176,  2178,
    2182,  2183,  2190,  2191,  2197,  2198,  2204,  2205,  2211,  2212,
    2218,  2219,  2224,  2225,  2236,  2240,  2245,  2249,  2253,  2261,
    2262,  2266,  2268,  2273,  2274,  2278,  2279,  2282,  2283,  2285,
    2286,  2289,  2292,  2295,  2298,  2300,  2302,  2304,  2308,  2313,
    2314,  2322,  2323,  2330,  2331,  2337,  2338,  2345,  2350,  2352,
    2355,  2357,  2359,  2360,  2366,  2367,  2371,  2374,  2375,  2381,
    2382,  2383,  2390,  2392,  2396,  2398,  2400,  2404,  2407,  2411,
    2414,  2419,  2420,  2427,  2428,  2429,  2438,  2443,  2448,  2452,
    2456,  2459,  2462,  2469,  2475,  2479,  2485,  2487,  2489,  2491,
    2492,  2494,  2495,  2497,  2498,  2500,  2502,  2503,  2506,  2508,
    2509,  2511,  2513,  2515,  2516,  2522,  2526,  2527,  2533,  2537,
    2541,  2542,  2546,  2547,  2550,  2552,  2556,  2557,  2559,  2561,
    2562,  2565,  2567,  2571,  2572,  2577,  2578,  2585,  2587,  2589,
    2593,  2594,  2600,  2601,  2603,  2605,  2606,  2613,  2614,  2616,
    2618,  2621,  2623,  2625,  2627,  2628,  2635,  2638,  2639,  2645,
    2646,  2648,  2650,  2653,  2655,  2657,  2659,  2661,  2663,  2666,
    2667,  2674,  2675,  2677,  2679,  2680,  2685,  2686,  2691,  2696,
    2700,  2706,  2708,  2712,  2716,  2720,  2726,  2728,  2732,  2735,
    2737,  2739,  2740,  2747,  2749,  2753,  2757,  2758,  2761,  2762,
    2767,  2768,  2771,  2773,  2776,  2781,  2784,  2788,  2789,  2793,
    2794,  2795,  2802,  2805,  2807,  2809,  2812,  2815,  2824,  2829,
    2830,  2832,  2835,  2837,  2839,  2841,  2843,  2845,  2847,  2849,
    2851,  2853,  2855,  2857,  2858,  2861,  2866,  2870,  2872,  2874,
    2879,  2880,  2881,  2883,  2885,  2886,  2889,  2892,  2894,  2896,
    2897,  2900,  2901,  2905,  2906,  2910,  2914,  2915,  2919,  2920,
    2924,  2927,  2929,  2933,  2938,  2942,  2947,  2951,  2956,  2958,
    2962,  2967,  2971,  2975,  2982,  2984,  2990,  2997,  3003,  3011,
    3018,  3027,  3033,  3040,  3045,  3050,  3056,  3060,  3065,  3067,
    3071,  3073,  3077,  3079,  3083,  3087,  3089,  3093,  3097,  3102,
    3107,  3109,  3113,  3117,  3121,  3125,  3129,  3131,  3135,  3137,
    3139,  3141,  3143,  3145,  3147,  3149,  3151,  3153,  3155,  3157,
    3159,  3161,  3163,  3165,  3167,  3169,  3172,  3174,  3176,  3178,
    3180,  3182,  3186,  3188,  3190,  3192,  3194,  3198,  3201,  3204,
    3207,  3210,  3214,  3218,  3224,  3231,  3236,  3241,  3249,  3252,
    3259,  3265,  3272,  3279,  3284,  3289,  3294,  3296,  3301,  3308,
    3311,  3316,  3321,  3326,  3337,  3344,  3349,  3354,  3361,  3366,
    3371,  3376,  3383,  3388,  3396,  3404,  3412,  3419,  3426,  3433,
    3440,  3444,  3449,  3456,  3465,  3468,  3471,  3476,  3484,  3492,
    3499,  3506,  3509,  3514,  3521,  3528,  3537,  3546,  3553,  3562,
    3569,  3572,  3577,  3586,  3595,  3598,  3601,  3604,  3609,  3614,
    3619,  3624,  3628,  3637,  3642,  3649,  3654,  3659,  3664,  3671,
    3680,  3685,  3692,  3697,  3704,  3710,  3719,  3727,  3729,  3736,
    3741,  3746,  3751,  3756,  3761,  3768,  3773,  3774,  3780,  3787,
    3790,  3794,  3795,  3800,  3801,  3805,  3806,  3808,  3809,  3812,
    3814,  3818,  3823,  3828,  3834,  3839,  3844,  3849,  3855,  3860,
    3861,  3862,  3870,  3875,  3881,  3886,  3892,  3897,  3902,  3907,
    3912,  3917,  3923,  3924,  3933,  3934,  3938,  3942,  3944,  3949,
    3950,  3952,  3953,  3956,  3957,  3959,  3960,  3964,  3967,  3971,
    3974,  3976,  3979,  3981,  3984,  3986,  3988,  3990,  3993,  3994,
    3996,  3997,  4000,  4002,  4006,  4008,  4012,  4013,  4016,  4018,
    4022,  4023,  4025,  4026,  4029,  4034,  4040,  4042,  4044,  4046,
    4048,  4052,  4056,  4060,  4061,  4068,  4069,  4076,  4077,  4086,
    4091,  4092,  4101,  4102,  4113,  4120,  4121,  4130,  4131,  4142,
    4149,  4151,  4154,  4157,  4158,  4163,  4164,  4176,  4180,  4187,
    4188,  4192,  4193,  4194,  4200,  4201,  4203,  4204,  4206,  4207,
    4210,  4214,  4218,  4220,  4222,  4223,  4231,  4232,  4240,  4242,
    4245,  4246,  4247,  4250,  4251,  4254,  4255,  4257,  4259,  4261,
    4263,  4267,  4269,  4273,  4275,  4277,  4279,  4281,  4283,  4285,
    4287,  4289,  4291,  4293,  4295,  4297,  4299,  4301,  4303,  4305,
    4307,  4309,  4311,  4313,  4315,  4317,  4319,  4321,  4323,  4325,
    4326,  4328,  4330,  4331,  4334,  4335,  4337,  4338,  4339,  4343,
    4344,  4345,  4349,  4352,  4353,  4354,  4359,  4364,  4367,  4368,
    4371,  4374,  4378,  4382,  4384,  4387,  4388,  4390,  4391,  4396,
    4401,  4404,  4405,  4407,  4409,  4410,  4412,  4413,  4415,  4418,
    4420,  4424,  4428,  4430,  4432,  4434,  4436,  4437,  4440,  4442,
    4444,  4446,  4448,  4450,  4452,  4454,  4456,  4458,  4460,  4462,
    4464,  4466,  4468,  4470,  4472,  4474,  4476,  4478,  4480,  4482,
    4484,  4486,  4487,  4488,  4495,  4496,  4498,  4502,  4504,  4508,
    4509,  4512,  4516,  4518,  4521,  4523,  4524,  4528,  4529,  4535,
    4538,  4540,  4541,  4545,  4552,  4553,  4560,  4565,  4570,  4575,
    4580,  4586,  4591,  4596,  4602,  4609,  4614,  4616,  4620,  4622,
    4623,  4626,  4627,  4629,  4630,  4631,  4640,  4641,  4642,  4649,
    4650,  4652,  4654,  4656,  4658,  4660,  4663,  4665,  4667,  4669,
    4673,  4678,  4679,  4683,  4687,  4689,  4692,  4695,  4696,  4700,
    4701,  4707,  4711,  4713,  4717,  4719,  4723,  4725,  4727,  4728,
    4730,  4731,  4736,  4737,  4739,  4743,  4745,  4747,  4749,  4750,
    4751,  4758,  4759,  4760,  4772,  4776,  4778,  4782,  4786,  4788,
    4792,  4793,  4795,  4796,  4801,  4802,  4809,  4810,  4816,  4817,
    4824,  4826,  4830,  4834,  4840,  4841,  4844,  4845,  4848,  4850,
    4852,  4854,  4858,  4859,  4861,  4862,  4866,  4869,  4874,  4879,
    4883,  4888,  4893,  4895,  4899,  4903,  4910,  4927,  4930,  4933,
    4934,  4941,  4947,  4950,  4953,  4955,  4957,  4959,  4965,  4971,
    4974,  4977,  4981,  4984,  4988,  4991,  4994,  4996,  5000,  5005,
    5009,  5013,  5016,  5019,  5023,  5027,  5031,  5035,  5039,  5043,
    5047,  5051,  5054,  5056,  5058,  5060,  5062,  5064,  5065,  5067,
    5068,  5071,  5072,  5074,  5076,  5078,  5079,  5082,  5083,  5086,
    5087,  5090,  5093,  5094,  5099,  5100,  5105,  5107,  5109,  5110,
    5112,  5114,  5115,  5117,  5119,  5120,  5125,  5129,  5131,  5132,
    5136,  5141,  5144,  5146,  5148,  5150,  5152,  5154,  5156,  5158,
    5160,  5161,  5163,  5164,  5168,  5172,  5174,  5176,  5178,  5181,
    5182,  5186,  5190,  5193,  5196,  5200,  5201,  5203,  5205,  5208,
    5209,  5210,  5211,  5212,  5213,  5236,  5238,  5240,  5241,  5243,
    5244,  5246,  5248,  5249,  5251,  5253,  5254,  5257,  5260,  5262,
    5266,  5271,  5275,  5279,  5280,  5283,  5286,  5288,  5292,  5296,
    5297,  5302,  5303,  5307,  5309,  5311,  5312,  5316,  5319,  5323,
    5325,  5327,  5330,  5331,  5334,  5336,  5338,  5341,  5344,  5346,
    5348,  5350,  5352,  5354,  5357,  5360,  5362,  5364,  5366,  5368,
    5370,  5372,  5374,  5377,  5380,  5383,  5386,  5389,  5391,  5393,
    5395,  5397,  5399,  5401,  5403,  5407,  5413,  5415,  5417,  5419,
    5421,  5423,  5427,  5432,  5438,  5440,  5446,  5450,  5453,  5455,
    5459,  5462,  5464,  5466,  5468,  5470,  5472,  5474,  5476,  5478,
    5480,  5482,  5484,  5486,  5488,  5490,  5492,  5496,  5499,  5501,
    5503,  5505,  5507,  5509,  5511,  5513,  5515,  5517,  5519,  5521,
    5523,  5525,  5527,  5529,  5531,  5533,  5535,  5537,  5539,  5541,
    5543,  5545,  5547,  5549,  5551,  5553,  5555,  5557,  5559,  5561,
    5563,  5565,  5567,  5569,  5571,  5573,  5575,  5577,  5579,  5581,
    5583,  5585,  5587,  5589,  5591,  5593,  5595,  5597,  5599,  5601,
    5603,  5605,  5607,  5609,  5611,  5613,  5615,  5617,  5619,  5621,
    5623,  5625,  5627,  5629,  5631,  5633,  5635,  5637,  5639,  5641,
    5643,  5645,  5647,  5649,  5651,  5653,  5655,  5657,  5659,  5661,
    5663,  5665,  5667,  5669,  5671,  5673,  5675,  5677,  5679,  5681,
    5683,  5685,  5687,  5689,  5691,  5693,  5695,  5697,  5699,  5701,
    5703,  5705,  5707,  5709,  5711,  5713,  5715,  5717,  5719,  5721,
    5723,  5725,  5727,  5729,  5731,  5733,  5735,  5737,  5739,  5741,
    5743,  5745,  5747,  5749,  5751,  5753,  5755,  5757,  5759,  5761,
    5763,  5765,  5767,  5769,  5771,  5773,  5775,  5777,  5779,  5781,
    5783,  5785,  5787,  5789,  5791,  5793,  5795,  5797,  5799,  5801,
    5803,  5805,  5807,  5809,  5811,  5813,  5815,  5817,  5819,  5821,
    5823,  5825,  5827,  5829,  5831,  5833,  5835,  5837,  5839,  5841,
    5843,  5845,  5847,  5849,  5851,  5853,  5855,  5857,  5859,  5861,
    5863,  5865,  5867,  5869,  5871,  5873,  5875,  5877,  5879,  5881,
    5883,  5885,  5887,  5889,  5891,  5893,  5895,  5897,  5899,  5901,
    5903,  5905,  5907,  5909,  5911,  5913,  5915,  5917,  5919,  5921,
    5923,  5925,  5927,  5929,  5931,  5933,  5935,  5937,  5939,  5941,
    5943,  5945,  5947,  5949,  5951,  5953,  5955,  5957,  5959,  5961,
    5963,  5965,  5967,  5969,  5971,  5973,  5975,  5977,  5979,  5981,
    5983,  5985,  5987,  5989,  5991,  5993,  5995,  5997,  5999,  6001,
    6003,  6005,  6007,  6009,  6011,  6013,  6015,  6017,  6019,  6021,
    6023,  6025,  6027,  6029,  6031,  6033,  6035,  6037,  6039,  6041,
    6043,  6045,  6047,  6049,  6051,  6053,  6055,  6057,  6059,  6061,
    6063,  6065,  6067,  6069,  6071,  6073,  6075,  6077,  6079,  6081,
    6083,  6085,  6087,  6089,  6091,  6093,  6095,  6097,  6099,  6101,
    6103,  6105,  6106,  6111,  6112,  6114,  6116,  6120,  6121,  6124,
    6126,  6128,  6130,  6132,  6133,  6135,  6136,  6138,  6140,  6142,
    6143,  6146,  6149,  6152,  6154,  6157,  6162,  6168,  6173,  6180,
    6183,  6187,  6191,  6195,  6201,  6203,  6207,  6211,  6214,  6217,
    6220,  6222,  6224,  6229,  6234,  6236,  6238,  6240,  6242,  6244,
    6245,  6246,  6252,  6254,  6256,  6258,  6262,  6266,  6268,  6270,
    6273,  6276,  6281,  6283,  6285,  6286,  6288,  6289,  6293,  6298,
    6302,  6303,  6311,  6313,  6316,  6318,  6320,  6322,  6324,  6326,
    6328,  6329,  6335,  6337,  6339,  6341,  6343,  6345,  6349,  6356,
    6363,  6370,  6378,  6382,  6391,  6400,  6409,  6410,  6412,  6414,
    6417,  6418,  6420,  6422,  6426,  6427,  6431,  6432,  6436,  6437,
    6441,  6442,  6446,  6448,  6450,  6452,  6454,  6456,  6458,  6460,
    6462,  6464,  6466,  6468,  6471,  6474,  6476,  6480,  6483,  6486,
    6489,  6492,  6495,  6498,  6501,  6504,  6506,  6508,  6509,  6511,
    6515,  6517,  6520,  6523,  6526,  6528,  6532,  6536,  6538,  6540,
    6544,  6546,  6550,  6555,  6561,  6563,  6564,  6568,  6572,  6574,
    6576,  6577,  6580,  6583,  6586,  6589,  6590,  6593,  6596,  6598,
    6601,  6604,  6607,  6610,  6613,  6614,  6618,  6619,  6621,  6622,
    6626,  6629,  6630,  6632,  6635,  6636,  6638,  6643,  6648,  6654,
    6657,  6661,  6662,  6664,  6665,  6670,  6671,  6673,  6675,  6676,
    6679,  6682,  6684,  6685,  6687,  6689,  6694,  6695,  6703,  6705,
    6706,  6707,  6710,  6714,  6716,  6718,  6720,  6722,  6723,  6727,
    6729,  6732,  6734,  6737,  6741,  6745,  6749,  6750,  6754,  6758,
    6759,  6760,  6769,  6770,  6774,  6776,  6780,  6781,  6785,  6788,
    6793,  6794,  6798,  6803,  6808,  6809,  6810,  6811,  6828,  6829,
    6836,  6837,  6838,  6839,  6840,  6853,  6858,  6863,  6867,  6872,
    6876,  6879,  6881,  6885,  6891,  6893,  6895,  6896,  6898,  6900,
    6901,  6904,  6905,  6906,  6910,  6911,  6914,  6920
};

/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
static const yytype_int16 yyrhs[] =
{
     584,     0,    -1,   138,    -1,   585,   138,    -1,   586,    -1,
    1387,    -1,   924,    -1,   987,    -1,   976,    -1,   989,    -1,
     637,    -1,   598,    -1,   990,    -1,   979,    -1,  1393,    -1,
     603,    -1,   587,    -1,  1228,    -1,  1254,    -1,  1184,    -1,
    1186,    -1,   591,    -1,  1260,    -1,  1362,    -1,  1353,    -1,
     596,    -1,  1192,    -1,  1444,    -1,  1274,    -1,  1277,    -1,
    1342,    -1,   995,    -1,  1005,    -1,   771,    -1,  1009,    -1,
     589,    -1,  1270,    -1,  1396,    -1,   998,    -1,   982,    -1,
    1195,    -1,  1266,    -1,   974,    -1,  1360,    -1,  1394,    -1,
    1395,    -1,  1017,    -1,  1325,    -1,  1241,    -1,   963,    -1,
     966,    -1,  1239,    -1,  1445,    -1,  1351,    -1,  1220,    -1,
    1276,    -1,  1436,    -1,   588,   365,  1319,    -1,   105,    -1,
     126,    -1,   365,  1319,   173,   590,    -1,  1316,    -1,   579,
    1321,    -1,    -1,   151,  1319,   592,   593,    -1,    -1,   533,
     594,    -1,   594,   575,   595,    -1,   595,    -1,   579,  1321,
      -1,    -1,   190,   597,  1321,    -1,    -1,    54,   273,   500,
     599,   600,    -1,   601,    -1,   600,   575,   601,    -1,   260,
     142,  1316,    -1,   274,   142,  1316,    -1,   263,   142,  1316,
      -1,   264,   142,  1165,    -1,   259,   142,  1165,    -1,   271,
     142,  1165,    -1,   267,   142,  1316,    -1,   266,   142,  1316,
      -1,   268,   142,  1316,    -1,   269,   142,  1316,    -1,   270,
     142,  1316,    -1,   272,   142,  1165,    -1,   602,    -1,   261,
     142,  1316,    -1,   262,   142,  1167,    -1,   390,   142,  1316,
      -1,   391,   142,  1165,    -1,    -1,    85,   824,   485,   827,
    1313,   604,   759,    -1,    -1,    85,   911,   206,  1319,   913,
     332,  1313,   605,   573,   919,   574,   914,    -1,    -1,    85,
      92,   827,  1319,   606,   821,    -1,    -1,    85,   607,  1410,
      -1,    85,   530,   624,  1378,    -1,    85,   250,   184,   718,
      -1,    85,   483,   715,    -1,    85,   608,    -1,   432,  1321,
     169,    95,   555,  1321,   337,   573,   609,   574,    -1,   610,
      -1,   609,   575,   610,    -1,   530,  1316,    -1,   193,  1316,
      -1,    92,  1316,    -1,   347,  1316,    -1,   356,  1316,    -1,
     446,  1316,    -1,   362,  1165,    -1,    -1,   148,   827,   625,
     612,   332,   422,   613,   618,   615,   620,   125,   621,    -1,
      -1,   149,  1038,  1137,   614,   616,   617,    -1,    22,  1038,
      -1,    -1,   134,    -1,   119,   332,   443,    -1,   119,    -1,
      -1,   464,  1038,    -1,    -1,   137,  1038,    -1,    -1,   619,
      -1,   332,    73,   366,    -1,   332,    73,   320,   366,    -1,
      -1,    69,  1316,    -1,    -1,   622,   623,    -1,   669,    -1,
     671,    -1,   667,    -1,   688,    -1,   703,    -1,   673,    -1,
     675,    -1,   676,    -1,   677,    -1,   678,    -1,   680,    -1,
      -1,  1319,   580,  1319,    -1,  1319,    -1,   409,   841,   447,
    1316,    -1,    -1,    -1,    -1,    -1,    -1,   573,   627,   642,
     574,   628,   409,   629,   852,   630,   633,   631,   666,    -1,
      -1,   632,   634,    -1,    -1,   633,   635,    -1,    69,  1316,
      -1,   229,   460,    -1,   323,   460,    -1,    80,   460,    -1,
     378,   460,    95,    -1,   298,   460,    95,    -1,   636,    -1,
     634,    -1,   117,    -1,  1056,   117,    -1,   460,   425,   110,
      -1,   460,   425,   218,    -1,    -1,    48,   625,   638,   639,
      -1,    -1,   573,   640,   574,    -1,    -1,   641,    -1,   641,
     575,  1038,    -1,  1038,    -1,    -1,   643,    -1,   643,   575,
     645,    -1,   645,    -1,    -1,  1319,   644,   852,    -1,    -1,
     647,    -1,   647,   575,   648,    -1,   648,    -1,   649,   644,
    1319,   852,    -1,    -1,   219,    -1,   346,    -1,   210,    -1,
      -1,   650,   666,   581,    -1,   666,   581,    -1,   651,   666,
     581,    -1,    -1,   652,   653,   581,    -1,    -1,   108,   664,
     654,   852,   665,    -1,   108,  1319,    76,   170,   661,    -1,
      -1,   108,   658,   187,   170,   655,   659,   666,    -1,   108,
    1319,    90,   170,   656,    -1,    -1,   657,   586,    -1,   153,
      -1,    81,    -1,   660,    -1,   659,   575,   660,    -1,   663,
      -1,  1165,    -1,   452,   662,  1317,    -1,    -1,   538,    -1,
     661,    -1,  1319,    -1,   453,    -1,  1056,   171,    -1,   451,
      -1,  1319,    -1,   664,   575,  1319,    -1,    -1,   109,  1038,
      -1,   669,    -1,   671,    -1,   667,    -1,   688,    -1,   703,
      -1,   673,    -1,   675,    -1,   676,    -1,   677,    -1,   678,
      -1,   680,    -1,    -1,   202,   668,   683,   136,   202,    -1,
      -1,   670,   586,    -1,    -1,   410,   672,  1038,    -1,    -1,
     674,   706,    -1,   234,  1320,    -1,   223,  1320,    -1,   335,
    1319,    -1,    -1,   160,   681,  1319,   216,   679,   682,    -1,
      62,  1319,    -1,    -1,   316,   173,    -1,   173,    -1,  1319,
      -1,   682,   575,  1319,    -1,    -1,    -1,    -1,   684,  1038,
     492,   685,   651,   686,   687,    -1,    -1,   133,   683,    -1,
     132,   651,    -1,   689,    -1,   692,    -1,    -1,    -1,    51,
     690,  1038,   691,   694,   702,   136,    51,    -1,    -1,    51,
     693,   695,   702,   136,    51,    -1,   696,    -1,   694,   696,
      -1,   699,    -1,   695,   699,    -1,    -1,    -1,   550,   697,
    1038,   698,   492,   651,    -1,    -1,    -1,   550,   700,  1038,
     701,   492,   651,    -1,    -1,   132,   651,    -1,    -1,  1320,
     582,   704,   706,   705,    -1,    -1,  1320,    -1,    -1,    30,
     707,   652,   650,   136,    -1,   256,   651,   136,   256,    -1,
      -1,    -1,   552,   708,  1038,   125,   709,   651,   136,   552,
      -1,    -1,   400,   651,   526,   710,  1038,   136,   400,    -1,
      29,    -1,     8,    -1,   212,    -1,   527,    -1,   113,    -1,
     744,   746,    -1,   744,    54,   741,   721,    -1,   744,     6,
     741,   716,   725,    -1,    -1,   532,   250,   184,  1319,    -1,
     744,     6,   741,   729,    -1,   744,   126,   741,   729,    -1,
     745,   720,   733,    -1,   745,   720,   737,    -1,     6,   742,
      -1,     6,   743,    -1,    -1,   722,   723,    -1,   724,    -1,
     723,   724,    -1,   723,   575,   724,    -1,   747,    -1,   748,
      -1,   749,    -1,    -1,   726,   727,    -1,   728,    -1,   727,
     728,    -1,   727,   575,   728,    -1,   747,    -1,   748,    -1,
     749,    -1,   750,    -1,   753,    -1,   755,    -1,   757,    -1,
     754,    -1,    -1,   730,   731,    -1,   732,    -1,   731,   732,
      -1,   731,   575,   732,    -1,   747,    -1,   748,    -1,   749,
      -1,   755,    -1,   757,    -1,    -1,   734,   735,    -1,   736,
      -1,   735,   736,    -1,   735,   575,   736,    -1,   747,    -1,
     751,    -1,   752,    -1,   753,    -1,   755,    -1,   757,    -1,
     754,    -1,    -1,   738,   739,    -1,   740,    -1,   739,   740,
      -1,   739,   575,   740,    -1,   747,    -1,   755,    -1,   757,
      -1,    94,  1316,    -1,   516,  1316,    -1,   385,  1316,    -1,
    1319,    -1,  1319,    -1,   379,    -1,   381,    -1,   320,     4,
      -1,   208,  1212,   758,    -1,    24,  1212,   758,    -1,   279,
    1212,   758,    -1,   156,  1212,   758,    -1,   517,  1212,   758,
      -1,   386,  1212,   758,    -1,   317,  1212,  1166,    -1,    69,
    1212,  1316,    -1,  1247,   140,  1212,   834,    -1,    -1,   757,
      -1,   546,    -1,   324,    -1,  1166,    -1,   199,    -1,   573,
     761,    -1,    -1,   828,   768,   760,   765,    -1,   239,  1313,
      -1,   573,   239,  1313,   574,    -1,    -1,   842,   574,   828,
     768,   762,   765,    -1,    -1,    -1,   768,   763,   817,   574,
     764,  1400,    -1,    -1,    -1,  1286,   820,   817,   766,  1397,
      -1,    -1,  1286,   820,   573,   817,   574,   767,  1400,    -1,
      -1,   769,    -1,    -1,   355,   770,   773,    -1,    -1,   355,
     772,   773,    -1,    -1,    -1,    45,   776,   786,   774,   787,
     775,   794,    -1,   780,   227,   573,   781,   574,    -1,    -1,
     780,   188,   777,   784,    -1,    -1,   377,   778,   784,    -1,
      -1,   244,   779,   784,    -1,    -1,   241,    -1,    -1,   782,
      -1,   783,    -1,   782,   575,   783,    -1,  1319,    -1,   573,
    1033,   792,  1034,   574,    -1,   573,  1033,   792,  1034,   574,
      -1,    -1,   354,  1166,    -1,    -1,    -1,   476,    45,   780,
     188,   785,   788,   793,    -1,    -1,   476,    45,   780,   227,
     573,   790,   574,   789,   793,    -1,   791,    -1,   790,   575,
     791,    -1,  1319,    -1,  1048,    -1,    -1,   475,  1166,    -1,
      -1,   573,   795,   574,    -1,   796,    -1,   795,   575,   796,
      -1,    -1,    -1,    -1,    -1,   355,   797,   801,   798,   802,
     799,   814,   800,   809,    -1,  1319,    -1,    -1,   537,   236,
     491,   803,    -1,   537,   219,   573,   806,   574,    -1,   804,
      -1,   805,    -1,   283,    -1,   573,   283,   574,    -1,   573,
     808,   574,    -1,   807,    -1,   806,   575,   807,    -1,   808,
      -1,  1048,    -1,    -1,   573,   810,   574,    -1,   811,    -1,
     810,   575,   811,    -1,    -1,   476,   812,   813,   814,    -1,
    1321,    -1,    -1,   815,    -1,   815,   816,    -1,   816,    -1,
     483,  1212,  1321,    -1,  1247,   140,  1212,   834,    -1,   317,
    1212,  1166,    -1,   278,  1212,  1168,    -1,   295,  1212,  1168,
      -1,    95,   118,  1212,  1316,    -1,   206,   118,  1212,  1316,
      -1,    69,  1212,  1316,    -1,    -1,    -1,   426,   818,  1027,
    1031,   819,   839,    -1,    -1,    18,    -1,    -1,   822,    -1,
     823,    -1,   822,   823,    -1,   833,    -1,   832,    -1,    -1,
     825,    -1,   826,    -1,   826,   825,    -1,   486,    -1,    -1,
     202,  1056,   152,    -1,    -1,   830,    -1,   831,    -1,   831,
     829,    -1,   831,    -1,   831,   830,    -1,   831,   575,   830,
      -1,   140,  1212,   834,    -1,   278,  1212,  1167,    -1,   295,
    1212,  1167,    -1,    26,  1212,  1165,    -1,   356,  1212,  1316,
      -1,    69,  1212,  1316,    -1,    25,  1212,  1167,    -1,   348,
    1212,  1165,    -1,   348,  1212,   109,    -1,    58,  1212,  1165,
      -1,   112,  1212,  1165,    -1,   418,  1212,   837,    -1,   521,
    1212,   573,  1188,   574,    -1,   832,    -1,   833,    -1,   213,
    1212,   838,    -1,    95,   118,  1212,  1316,    -1,   206,   118,
    1212,  1316,    -1,   483,  1319,    -1,   470,   109,    -1,   470,
     121,    -1,   470,   288,    -1,    77,  1212,  1316,    -1,   226,
    1212,  1165,    -1,   503,  1212,  1165,    -1,   882,   873,  1212,
     875,    -1,   882,    65,  1212,   881,    -1,  1321,    -1,  1321,
      -1,   109,    -1,   164,    -1,   130,    -1,   109,    -1,   164,
      -1,   130,    -1,    74,    -1,   387,    -1,    72,    -1,   349,
      -1,   323,    -1,   163,    -1,   230,    -1,  1160,    -1,  1026,
    1030,    -1,    -1,    10,    -1,   472,    -1,   382,    -1,   107,
      -1,   217,    -1,   843,    -1,   842,   575,   843,    -1,   844,
      -1,   845,    -1,   850,   846,    -1,   850,   898,    -1,   906,
     921,   913,   573,   919,   574,   914,    -1,   848,   907,   921,
     913,   573,   919,   574,   914,    -1,   848,   169,   227,   921,
     573,   919,   574,   898,    -1,   849,   846,    -1,   848,   847,
      -1,    -1,   847,    -1,    59,  1038,    -1,    -1,   849,    -1,
      79,   921,    -1,    -1,  1312,   851,   852,   869,    -1,   860,
     867,   864,    -1,   861,   868,   864,    -1,   166,   862,   864,
      -1,    38,    -1,    38,   573,   327,   574,    -1,    42,    -1,
      41,    -1,   856,   573,   327,   574,   883,    -1,   856,   883,
      -1,   857,   573,   327,   574,   884,    -1,   857,   884,    -1,
      33,   573,   327,   574,    -1,    33,    -1,   858,   573,   327,
     574,   883,    -1,   859,   573,   327,   574,   884,    -1,   539,
     573,   327,   574,    -1,   562,   867,   864,    -1,    99,    -1,
     496,    -1,   493,    -1,    96,    -1,   497,    -1,    40,   867,
      -1,   855,    -1,   284,    -1,   252,    -1,   255,   539,    -1,
     255,   858,   883,    -1,   499,   883,    -1,   490,   867,   883,
      -1,   286,   883,    -1,   253,   883,    -1,   107,   862,   864,
      -1,   328,   862,   864,    -1,   164,   862,   864,    -1,    -1,
     141,   853,   573,   923,   574,   883,    -1,    -1,   434,   854,
     573,   923,   574,   883,    -1,   255,   883,    -1,   430,    -1,
     179,    -1,   178,    -1,   360,    -1,   303,    -1,   243,    -1,
     302,    -1,   361,    -1,   304,    -1,    57,    -1,   311,    -1,
     308,    57,    -1,   856,   543,    -1,   540,    -1,   308,   540,
      -1,   329,    -1,   311,   540,    -1,   308,    57,   543,    -1,
     311,   543,    -1,   217,    -1,   498,    -1,   444,    -1,   285,
      -1,    32,    -1,   382,    -1,   124,    -1,   124,   364,    -1,
      -1,   573,   327,   574,    -1,   863,    -1,   573,   327,   575,
     327,   574,    -1,    -1,   865,    -1,   865,   866,    -1,   866,
      -1,   441,    -1,   525,    -1,   563,    -1,    -1,   573,   327,
     574,    -1,    -1,   863,    -1,    -1,   870,    -1,   870,   871,
      -1,   871,    -1,   326,    -1,  1056,   326,    -1,   470,   109,
      -1,   470,   121,    -1,   470,   288,    -1,   161,   836,    -1,
     109,   872,    -1,   332,   527,   321,  1037,    -1,    25,    -1,
     430,   109,   538,    -1,   897,   227,    -1,   522,    -1,   522,
     227,    -1,    69,  1316,    -1,    65,   879,    -1,   321,  1037,
      -1,  1303,    -1,    57,   434,    -1,    56,    -1,  1321,    -1,
      33,    -1,   874,    -1,   109,    -1,    -1,   873,   875,    -1,
    1321,    -1,    33,    -1,   877,    -1,   109,    -1,  1321,    -1,
      -1,    65,   881,    -1,   879,    -1,   109,    -1,    -1,   109,
      -1,    -1,    20,   884,    -1,    46,    -1,   519,   884,    -1,
     873,   874,   884,    -1,    33,   885,    -1,    -1,    33,    -1,
      -1,    20,    -1,   519,    -1,   873,   874,    -1,    -1,   573,
    1166,   887,   574,    -1,    19,    -1,   114,    -1,   411,    -1,
      -1,   888,    -1,   888,   889,    -1,   889,    -1,  1166,    -1,
     891,   890,    -1,   892,    -1,   893,   575,   892,    -1,   891,
     566,   891,    -1,   893,    -1,   894,    -1,    -1,   237,   895,
      -1,    -1,   368,    -1,    -1,   388,  1313,   899,   900,    -1,
     902,    -1,   573,   901,   574,   902,    -1,   901,   575,  1319,
      -1,  1319,    -1,    -1,   903,    -1,   903,   904,    -1,   904,
      -1,   332,   113,   905,    -1,   332,   527,   905,    -1,   275,
     174,    -1,   275,   352,    -1,   275,   442,    -1,   407,    -1,
      49,    -1,   434,   326,    -1,   323,     5,    -1,   434,   109,
      -1,   908,    -1,   175,   909,    -1,   449,   909,    -1,   368,
     227,    -1,   522,   909,    -1,   227,    -1,   206,    -1,    -1,
     908,    -1,   225,    -1,   206,    -1,   205,    -1,    -1,   522,
      -1,   175,    -1,   449,    -1,    -1,   912,    -1,   912,   916,
      -1,    -1,   915,    -1,   917,    -1,   915,   917,    -1,   533,
     918,    -1,   510,   918,    -1,   916,    -1,   226,  1212,  1165,
      -1,    69,  1316,    -1,   553,   351,  1315,    -1,    44,    -1,
     420,    -1,   188,    -1,   919,   575,   920,  1158,    -1,   920,
    1158,    -1,  1319,    -1,  1319,   573,   327,   574,    -1,    -1,
    1312,    -1,    -1,   580,  1319,    -1,  1301,    -1,   923,   575,
    1301,    -1,    -1,    13,   959,   485,  1313,   925,   936,    -1,
      -1,    13,    92,   935,   926,   822,    -1,    -1,    13,   370,
     625,   927,   632,    -1,    -1,    13,   176,   625,   928,   632,
      -1,    -1,    13,  1415,  1412,   929,  1417,    -1,    -1,    13,
    1412,   930,  1417,    -1,    -1,    13,  1412,   148,   625,   931,
     932,   933,   615,   620,   934,    -1,    13,   483,   717,    -1,
      13,   250,   184,   719,    -1,    13,   483,   714,    -1,    13,
     483,   713,    -1,    13,   432,  1321,   337,   573,   609,   574,
      -1,    -1,   332,   422,   613,    -1,   619,    -1,   332,   422,
     613,   619,    -1,    -1,   396,   500,   625,    -1,    -1,   125,
     621,    -1,    -1,  1319,    -1,    -1,   120,   483,    -1,   204,
     483,    -1,   952,   768,    -1,   952,   941,    -1,   941,    -1,
     769,    -1,   943,    -1,   126,   355,   950,    -1,   383,   355,
     997,   942,    -1,    -1,   336,   355,   997,   942,   937,   997,
     992,    -1,    -1,    14,   355,   997,   942,   938,   992,    -1,
      -1,    59,   355,   942,   939,   992,    -1,    -1,   398,   355,
     997,   942,   940,   984,    -1,    63,   355,   997,  1166,    -1,
     946,    -1,   395,   353,    -1,    12,    -1,   950,    -1,    -1,
       6,   355,   997,   944,   945,    -1,    -1,   573,   795,   574,
      -1,   354,  1166,    -1,    -1,   397,   355,   997,   947,   948,
      -1,    -1,    -1,   950,   949,   216,   573,   795,   574,    -1,
     951,    -1,   950,   575,   951,    -1,  1319,    -1,   954,    -1,
     952,   575,   954,    -1,     6,   958,    -1,   953,   844,   961,
      -1,     6,   845,    -1,   953,   573,   842,   574,    -1,    -1,
      54,   958,  1312,   955,   850,   961,    -1,    -1,    -1,   299,
     958,  1312,   956,   852,   869,   957,   961,    -1,   126,   958,
    1312,   960,    -1,   126,   169,   227,   921,    -1,   126,   368,
     227,    -1,   126,   908,  1312,    -1,   119,   225,    -1,   134,
     225,    -1,    13,   958,  1312,   434,   109,  1303,    -1,    13,
     958,  1312,   126,   109,    -1,   396,   962,  1313,    -1,    83,
     500,   873,   875,   880,    -1,   829,    -1,   168,    -1,  1151,
      -1,    -1,    68,    -1,    -1,   203,    -1,    -1,   407,    -1,
      49,    -1,    -1,     8,  1319,    -1,   163,    -1,    -1,   500,
      -1,   142,    -1,    18,    -1,    -1,   465,   443,   968,   964,
     972,    -1,   469,   443,   968,    -1,    -1,   443,   465,   968,
     965,   972,    -1,   443,   469,   968,    -1,   465,   502,   967,
      -1,    -1,   553,    78,   445,    -1,    -1,   969,   970,    -1,
     971,    -1,   970,   575,   971,    -1,    -1,   461,    -1,   392,
      -1,    -1,   526,   973,    -1,   602,    -1,   973,   575,   602,
      -1,    -1,   406,   975,   173,  1316,    -1,    -1,    28,    92,
     977,   978,   500,  1316,    -1,   568,    -1,  1319,    -1,   978,
     575,  1319,    -1,    -1,    58,  1345,   980,  1188,   981,    -1,
      -1,   376,    -1,   155,    -1,    -1,   398,   997,  1345,   983,
    1188,   984,    -1,    -1,   985,    -1,   986,    -1,   986,   985,
      -1,   376,    -1,   155,    -1,   531,    -1,    -1,    14,   997,
    1345,   988,  1188,   992,    -1,    34,  1316,    -1,    -1,    59,
    1345,   991,  1188,   992,    -1,    -1,   993,    -1,   994,    -1,
     994,   993,    -1,   376,    -1,   159,    -1,   287,    -1,   155,
      -1,    55,    -1,   170,   528,    -1,    -1,   336,   997,  1345,
     996,  1188,   992,    -1,    -1,   325,    -1,   246,    -1,    -1,
     396,  1345,   999,  1002,    -1,    -1,   396,    92,  1000,  1004,
      -1,   396,   530,   624,  1001,    -1,  1322,   500,  1322,    -1,
    1001,   575,  1322,   500,  1322,    -1,  1003,    -1,  1002,   575,
    1003,    -1,  1313,   500,  1313,    -1,  1319,   500,  1319,    -1,
      47,   206,  1006,   219,  1008,    -1,  1007,    -1,  1006,   575,
    1007,    -1,  1313,  1013,    -1,  1319,    -1,   109,    -1,    -1,
     245,   206,   216,    47,  1010,  1011,    -1,  1012,    -1,  1011,
     575,  1012,    -1,  1313,  1013,  1016,    -1,    -1,  1014,  1015,
      -1,    -1,   908,   573,  1133,   574,    -1,    -1,   203,   233,
      -1,  1018,    -1,   426,  1020,    -1,   573,  1019,   574,  1400,
      -1,   426,  1022,    -1,   573,  1019,   574,    -1,    -1,  1022,
    1021,  1397,    -1,    -1,    -1,  1023,  1027,  1031,  1024,  1025,
    1030,    -1,  1154,  1160,    -1,  1180,    -1,  1026,    -1,  1180,
    1026,    -1,  1026,  1180,    -1,   173,  1101,  1143,  1148,  1145,
    1154,  1160,  1171,    -1,   173,   127,  1143,  1160,    -1,    -1,
    1028,    -1,  1028,  1029,    -1,  1029,    -1,   471,    -1,   192,
      -1,   122,    -1,   459,    -1,   454,    -1,   455,    -1,   457,
      -1,   458,    -1,   456,    -1,    12,    -1,    -1,   170,   527,
      -1,   249,   219,   436,   297,    -1,  1031,   575,  1032,    -1,
    1032,    -1,   568,    -1,  1033,  1035,  1034,  1036,    -1,    -1,
      -1,  1307,    -1,  1038,    -1,    -1,    18,  1319,    -1,    18,
    1316,    -1,  1319,    -1,  1316,    -1,    -1,   573,   574,    -1,
      -1,  1041,  1039,  1040,    -1,    -1,  1040,  1054,  1041,    -1,
    1041,   560,  1041,    -1,    -1,  1044,  1042,  1043,    -1,    -1,
    1043,  1055,  1044,    -1,   320,  1044,    -1,  1045,    -1,  1046,
     220,   507,    -1,  1046,   220,  1056,   507,    -1,  1046,   220,
     158,    -1,  1046,   220,  1056,   158,    -1,  1046,   220,   523,
      -1,  1046,   220,  1056,   523,    -1,  1046,    -1,  1046,   220,
     326,    -1,  1046,   220,  1056,   326,    -1,  1046,   143,  1047,
      -1,  1046,  1058,  1047,    -1,  1046,  1058,  1059,   573,  1405,
     574,    -1,  1047,    -1,  1048,   219,   573,  1405,   574,    -1,
    1048,  1056,   219,   573,  1405,   574,    -1,  1048,   219,   573,
    1038,   574,    -1,  1048,   219,   573,  1038,   575,  1090,   574,
      -1,  1048,  1056,   219,   573,  1038,   574,    -1,  1048,  1056,
     219,   573,  1038,   575,  1090,   574,    -1,  1048,    31,  1048,
      16,  1047,    -1,  1048,  1056,    31,  1048,    16,  1047,    -1,
    1048,   448,   239,  1048,    -1,  1048,   239,  1061,  1147,    -1,
    1048,  1056,   239,  1061,  1147,    -1,  1048,   389,  1048,    -1,
    1048,  1056,   389,  1048,    -1,  1048,    -1,  1048,   564,  1049,
      -1,  1049,    -1,  1049,   565,  1050,    -1,  1050,    -1,  1050,
     437,  1051,    -1,  1050,   438,  1051,    -1,  1051,    -1,  1051,
     567,  1052,    -1,  1051,   566,  1052,    -1,  1051,   567,  1060,
    1137,    -1,  1051,   566,  1060,  1137,    -1,  1052,    -1,  1052,
     568,  1053,    -1,  1052,   569,  1053,    -1,  1052,   570,  1053,
      -1,  1052,   123,  1053,    -1,  1052,   300,  1053,    -1,  1053,
      -1,  1053,   571,  1061,    -1,  1061,    -1,   343,    -1,   340,
      -1,    16,    -1,    15,    -1,   320,    -1,   319,    -1,   576,
      -1,   319,    -1,   142,    -1,   177,    -1,   186,    -1,   231,
      -1,   258,    -1,   313,    -1,    12,    -1,    17,    -1,   215,
    1038,    -1,  1309,    -1,  1062,    -1,  1063,    -1,  1066,    -1,
    1064,    -1,  1061,    65,  1321,    -1,  1304,    -1,  1302,    -1,
    1080,    -1,  1076,    -1,  1061,   342,  1061,    -1,   567,  1061,
      -1,   566,  1061,    -1,   572,  1061,    -1,  1057,  1061,    -1,
     573,  1405,   574,    -1,   573,  1038,   574,    -1,   573,  1038,
     575,  1090,   574,    -1,   419,   573,  1038,   575,  1090,   574,
      -1,   152,   573,  1405,   574,    -1,   577,  1319,  1038,   578,
      -1,   275,  1093,     9,   573,  1048,  1068,   574,    -1,    33,
    1061,    -1,    52,   573,  1038,    18,  1088,   574,    -1,    51,
    1097,  1099,  1098,   136,    -1,    83,   573,  1038,   575,  1088,
     574,    -1,    83,   573,  1038,   533,   874,   574,    -1,   109,
     573,  1309,   574,    -1,   537,   573,  1310,   574,    -1,  1060,
    1137,   567,  1038,    -1,  1060,    -1,    57,   573,  1090,   574,
      -1,    57,   573,  1090,   533,   874,   574,    -1,    89,  1037,
      -1,    99,   573,  1038,   574,    -1,   104,   573,  1038,   574,
      -1,   198,   573,  1038,   574,    -1,   212,   573,  1038,   575,
    1038,   575,  1038,   575,  1038,   574,    -1,   235,   573,  1038,
     575,  1038,   574,    -1,   294,   573,  1038,   574,    -1,   301,
     573,  1038,   574,    -1,   413,   573,  1038,   575,  1038,   574,
      -1,   424,   573,  1038,   574,    -1,   496,   573,  1038,   574,
      -1,   493,   573,  1038,   574,    -1,   493,   573,  1038,   575,
    1038,   574,    -1,   506,   573,  1038,   574,    -1,   506,   573,
     232,  1038,   173,  1038,   574,    -1,   506,   573,   501,  1038,
     173,  1038,   574,    -1,   506,   573,    43,  1038,   173,  1038,
     574,    -1,   506,   573,   232,   173,  1038,   574,    -1,   506,
     573,   501,   173,  1038,   574,    -1,   506,   573,    43,   173,
    1038,   574,    -1,   506,   573,  1038,   173,  1038,   574,    -1,
     530,   573,   574,    -1,   562,   573,  1038,   574,    -1,     7,
     573,  1038,   575,  1038,   574,    -1,     7,   573,  1038,   575,
     215,  1038,  1137,   574,    -1,    88,  1037,    -1,    91,  1037,
      -1,    91,   573,  1038,   574,    -1,    97,   573,  1038,   575,
    1060,  1137,   574,    -1,    98,   573,  1038,   575,  1060,  1137,
     574,    -1,   157,   573,  1137,   173,  1038,   574,    -1,   180,
     573,  1139,   575,  1038,   574,    -1,   321,  1037,    -1,   321,
     573,  1038,   574,    -1,   363,   573,  1048,   219,  1038,   574,
      -1,   473,   573,  1038,   575,  1038,   574,    -1,   473,   573,
    1038,   575,   215,  1038,  1137,   574,    -1,   477,   573,  1038,
     575,  1038,   575,  1038,   574,    -1,   477,   573,  1038,   575,
    1038,   574,    -1,   477,   573,  1038,   173,  1038,   170,  1038,
     574,    -1,   477,   573,  1038,   173,  1038,   574,    -1,   481,
    1037,    -1,   481,   573,  1038,   574,    -1,   494,   573,  1138,
     575,  1038,   575,  1038,   574,    -1,   495,   573,  1138,   575,
    1038,   575,  1038,   574,    -1,   534,  1037,    -1,   536,  1037,
      -1,   535,  1037,    -1,    20,   573,  1038,   574,    -1,    56,
     573,  1038,   574,    -1,    63,   573,  1090,   574,    -1,    66,
     573,  1038,   574,    -1,    92,   573,   574,    -1,   202,   573,
    1038,   575,  1038,   575,  1038,   574,    -1,   290,   573,  1038,
     574,    -1,   300,   573,  1038,   575,  1038,   574,    -1,   331,
     573,  1038,   574,    -1,   356,   573,  1038,   574,    -1,   374,
     573,  1038,   574,    -1,   400,   573,  1038,   575,  1038,   574,
      -1,   401,   573,  1038,   575,  1038,   575,  1038,   574,    -1,
     411,   573,  1038,   574,    -1,   508,   573,  1038,   575,  1038,
     574,    -1,   548,   573,  1038,   574,    -1,   548,   573,  1038,
     575,  1038,   574,    -1,   549,   573,  1038,   896,   574,    -1,
     549,   573,  1038,    18,    57,   886,   896,   574,    -1,   549,
     573,  1038,    18,    33,   886,   574,    -1,  1065,    -1,    80,
     573,  1038,   575,  1038,   574,    -1,   178,   573,  1090,   574,
      -1,   243,   573,  1090,   574,    -1,   302,   573,  1090,   574,
      -1,   303,   573,  1090,   574,    -1,   304,   573,  1090,   574,
      -1,   360,   573,  1038,   575,  1038,   574,    -1,   361,   573,
    1090,   574,    -1,    -1,  1315,   573,  1067,  1071,   574,    -1,
    1319,   580,  1319,   573,  1089,   574,    -1,  1069,  1070,    -1,
     219,    41,   297,    -1,    -1,   219,   309,   229,   297,    -1,
      -1,   553,   375,   154,    -1,    -1,  1072,    -1,    -1,  1073,
    1074,    -1,  1075,    -1,  1074,   575,  1075,    -1,  1033,  1038,
    1034,  1036,    -1,    27,   573,  1086,   574,    -1,    27,   573,
     122,  1086,   574,    -1,    36,   573,  1086,   574,    -1,    37,
     573,  1086,   574,    -1,    39,   573,  1086,   574,    -1,    84,
     573,  1142,   568,   574,    -1,    84,   573,  1086,   574,    -1,
      -1,    -1,    84,   573,   122,  1077,  1090,  1078,   574,    -1,
     296,   573,  1086,   574,    -1,   296,   573,   122,  1086,   574,
      -1,   280,   573,  1086,   574,    -1,   280,   573,   122,  1086,
     574,    -1,   468,   573,  1086,   574,    -1,   542,   573,  1086,
     574,    -1,   467,   573,  1086,   574,    -1,   544,   573,  1086,
     574,    -1,   478,   573,  1086,   574,    -1,   478,   573,   122,
    1086,   574,    -1,    -1,   185,   573,  1083,  1079,  1090,  1085,
    1084,   574,    -1,    -1,   579,  1081,  1082,    -1,  1321,   435,
    1038,    -1,  1321,    -1,   579,  1334,  1321,   922,    -1,    -1,
     122,    -1,    -1,   428,  1301,    -1,    -1,  1155,    -1,    -1,
    1142,  1087,  1038,    -1,    33,   867,    -1,    57,   867,   883,
      -1,   311,   867,    -1,   441,    -1,   441,   217,    -1,   525,
      -1,   525,   217,    -1,    99,    -1,   496,    -1,    96,    -1,
     107,   862,    -1,    -1,  1090,    -1,    -1,  1091,  1092,    -1,
    1038,    -1,  1092,   575,  1038,    -1,  1094,    -1,   573,  1094,
     574,    -1,    -1,  1095,  1096,    -1,  1309,    -1,  1096,   575,
    1309,    -1,    -1,  1038,    -1,    -1,   132,  1038,    -1,   550,
    1038,   492,  1038,    -1,  1099,   550,  1038,   492,  1038,    -1,
    1112,    -1,  1103,    -1,  1102,    -1,  1100,    -1,  1102,   575,
    1100,    -1,  1100,  1111,  1100,    -1,  1100,   471,  1112,    -1,
      -1,  1100,  1111,  1100,   332,  1104,  1038,    -1,    -1,  1100,
     471,  1112,   332,  1105,  1038,    -1,    -1,  1100,  1111,  1100,
     533,  1106,   573,  1136,   574,    -1,  1100,   309,   224,  1112,
      -1,    -1,  1100,   235,  1122,   224,  1100,   332,  1107,  1038,
      -1,    -1,  1100,   235,  1122,   224,  1112,  1108,   533,   573,
    1136,   574,    -1,  1100,   309,   235,  1122,   224,  1112,    -1,
      -1,  1100,   413,  1122,   224,  1100,   332,  1109,  1038,    -1,
      -1,  1100,   413,  1122,   224,  1112,  1110,   533,   573,  1136,
     574,    -1,  1100,   309,   413,  1122,   224,  1112,    -1,   224,
      -1,   209,   224,    -1,    86,   224,    -1,    -1,  1113,  1313,
    1141,  1131,    -1,    -1,   577,  1319,  1100,   235,   344,   224,
    1100,   332,  1114,  1038,   578,    -1,  1121,  1120,  1117,    -1,
     573,  1120,  1115,  1400,   574,  1141,    -1,    -1,  1120,  1116,
    1102,    -1,    -1,    -1,  1118,  1027,  1031,  1119,   839,    -1,
      -1,   426,    -1,    -1,   344,    -1,    -1,   170,   224,    -1,
     170,   341,    45,    -1,   170,   184,    45,    -1,   168,    -1,
     203,    -1,    -1,  1124,   908,  1123,  1126,   573,  1135,   574,
      -1,    -1,   532,   908,  1123,  1127,   573,  1133,   574,    -1,
    1125,    -1,  1128,  1125,    -1,    -1,    -1,  1130,  1128,    -1,
      -1,  1132,  1129,    -1,    -1,  1135,    -1,  1319,    -1,   368,
      -1,  1134,    -1,  1135,   575,  1134,    -1,  1319,    -1,  1136,
     575,  1319,    -1,  1138,    -1,   100,    -1,   101,    -1,   102,
      -1,   103,    -1,   195,    -1,   196,    -1,   197,    -1,   290,
      -1,   292,    -1,   293,    -1,   423,    -1,   561,    -1,   104,
      -1,   548,    -1,   198,    -1,   172,    -1,   294,    -1,   301,
      -1,   374,    -1,   424,    -1,   562,    -1,    99,    -1,   496,
      -1,    96,    -1,   493,    -1,    -1,    18,    -1,   142,    -1,
      -1,  1140,  1319,    -1,    -1,    12,    -1,    -1,    -1,   551,
    1144,  1038,    -1,    -1,    -1,   189,  1146,  1038,    -1,   146,
    1061,    -1,    -1,    -1,   184,    45,  1149,  1150,    -1,  1149,
     575,  1308,  1158,    -1,  1308,  1158,    -1,    -1,   553,    87,
      -1,   553,   415,    -1,   341,    45,  1152,    -1,  1152,   575,
    1153,    -1,  1153,    -1,  1310,  1158,    -1,    -1,  1155,    -1,
      -1,   341,    45,  1156,  1157,    -1,  1157,   575,  1308,  1158,
      -1,  1308,  1158,    -1,    -1,    19,    -1,   114,    -1,    -1,
    1161,    -1,    -1,  1161,    -1,   240,  1162,    -1,  1163,    -1,
    1163,   575,  1163,    -1,  1163,   330,  1163,    -1,  1302,    -1,
     512,    -1,   254,    -1,   327,    -1,    -1,   240,  1163,    -1,
     327,    -1,   191,    -1,   254,    -1,   512,    -1,   106,    -1,
     165,    -1,   327,    -1,   191,    -1,   254,    -1,   512,    -1,
    1169,    -1,   327,    -1,   512,    -1,   254,    -1,   106,    -1,
     165,    -1,   327,    -1,   512,    -1,   254,    -1,  1169,    -1,
    1170,    -1,   106,    -1,   165,    -1,    -1,    -1,   370,  1319,
    1172,   573,  1173,   574,    -1,    -1,  1174,    -1,  1174,   575,
    1175,    -1,  1175,    -1,  1033,  1038,  1034,    -1,    -1,  1177,
    1178,    -1,  1178,   575,  1179,    -1,  1179,    -1,   579,  1321,
      -1,  1321,    -1,    -1,   216,  1181,  1182,    -1,    -1,   345,
    1318,  1183,  1287,  1290,    -1,   128,  1318,    -1,  1176,    -1,
      -1,   125,  1185,  1090,    -1,   126,  1191,  1345,  1190,  1188,
     960,    -1,    -1,   126,   206,  1319,   332,  1313,  1187,    -1,
     126,    92,  1190,  1319,    -1,   126,   176,  1190,   625,    -1,
     126,   370,  1190,   625,    -1,   126,   530,   624,  1377,    -1,
     126,   545,  1190,  1188,   960,    -1,   126,   148,  1190,   625,
      -1,   126,   505,  1190,   625,    -1,   126,   483,   744,   755,
     756,    -1,   126,   250,   184,   745,   755,   756,    -1,   126,
     432,  1190,  1321,    -1,  1189,    -1,  1188,   575,  1189,    -1,
    1313,    -1,    -1,   202,   152,    -1,    -1,   486,    -1,    -1,
      -1,   212,  1193,  1198,   959,  1200,  1194,  1202,  1218,    -1,
      -1,    -1,   401,  1196,  1199,  1200,  1197,  1202,    -1,    -1,
     257,    -1,   111,    -1,   192,    -1,  1227,    -1,   111,    -1,
     216,  1201,    -1,  1201,    -1,  1189,    -1,  1205,    -1,   573,
     574,  1205,    -1,   573,  1204,   574,  1205,    -1,    -1,   434,
    1203,  1209,    -1,  1204,   575,  1306,    -1,  1306,    -1,   537,
    1208,    -1,   538,  1208,    -1,    -1,   817,  1206,  1397,    -1,
      -1,   573,   817,   574,  1207,  1400,    -1,  1208,   575,  1213,
      -1,  1213,    -1,  1209,   575,  1210,    -1,  1210,    -1,  1310,
    1211,  1217,    -1,   142,    -1,   435,    -1,    -1,  1211,    -1,
      -1,   573,  1214,  1215,   574,    -1,    -1,  1216,    -1,  1216,
     575,  1217,    -1,  1217,    -1,  1038,    -1,   109,    -1,    -1,
      -1,   332,   129,  1219,   227,   527,  1225,    -1,    -1,    -1,
     527,  1221,  1227,   959,  1101,   434,  1223,  1222,  1143,  1154,
    1164,    -1,  1223,   575,  1224,    -1,  1224,    -1,  1310,  1211,
    1217,    -1,  1225,   575,  1226,    -1,  1226,    -1,  1310,  1211,
    1217,    -1,    -1,   257,    -1,    -1,   113,  1229,  1237,  1230,
      -1,    -1,   173,  1313,  1231,  1143,  1154,  1164,    -1,    -1,
    1234,  1232,   173,  1101,  1143,    -1,    -1,   173,  1234,  1233,
     533,  1101,  1143,    -1,  1235,    -1,  1234,   575,  1235,    -1,
    1319,  1236,  1141,    -1,  1319,   580,  1319,  1236,  1141,    -1,
      -1,   580,   568,    -1,    -1,  1238,  1237,    -1,   376,    -1,
     257,    -1,   203,    -1,   508,  1240,  1189,    -1,    -1,   485,
      -1,    -1,   439,  1242,  1243,    -1,    93,  1253,    -1,  1249,
     482,  1248,  1253,    -1,  1249,   504,  1248,  1253,    -1,   147,
    1248,  1253,    -1,   485,   466,  1248,  1253,    -1,   335,   482,
    1248,  1253,    -1,   358,    -1,   140,   835,  1245,    -1,   140,
      12,  1245,    -1,  1249,    67,  1250,  1313,  1248,  1253,    -1,
     315,   273,   170,   443,   553,   261,   142,  1316,    16,   262,
     142,  1167,    16,   265,   142,  1165,    -1,  1246,   251,    -1,
     443,   194,    -1,    -1,    34,   147,  1251,  1252,  1244,  1159,
      -1,   910,  1250,  1313,  1248,  1143,    -1,    68,   509,    -1,
    1247,   139,    -1,    23,    -1,    82,    -1,   369,    -1,    84,
     573,   568,   574,   547,    -1,    84,   573,   568,   574,   144,
      -1,   547,  1159,    -1,   144,  1159,    -1,  1333,   466,  1253,
      -1,  1249,   372,    -1,  1333,   541,  1253,    -1,   873,  1253,
      -1,    66,  1253,    -1,   183,    -1,   183,   170,  1322,    -1,
      85,    92,   827,  1319,    -1,    85,   485,  1313,    -1,    85,
     545,  1313,    -1,   273,   466,    -1,   443,   466,    -1,    85,
     370,   625,    -1,    85,   176,   625,    -1,    85,   505,   625,
      -1,   370,   466,  1253,    -1,   176,   466,  1253,    -1,   370,
      64,   625,    -1,   176,    64,   625,    -1,    85,   148,   625,
      -1,    28,  1316,    -1,   466,    -1,   305,    -1,   251,    -1,
     273,    -1,    33,    -1,    -1,   470,    -1,    -1,  1250,  1319,
      -1,    -1,   174,    -1,   173,    -1,   219,    -1,    -1,   219,
    1316,    -1,    -1,   173,  1167,    -1,    -1,   239,  1316,    -1,
     551,  1038,    -1,    -1,  1257,  1313,  1255,  1259,    -1,    -1,
    1257,  1258,  1256,  1017,    -1,   114,    -1,   115,    -1,    -1,
     155,    -1,   354,    -1,    -1,  1301,    -1,  1319,    -1,    -1,
     167,   997,  1261,  1262,    -1,  1262,   575,  1263,    -1,  1263,
      -1,    -1,  1345,  1264,  1265,    -1,   482,   553,   380,   249,
      -1,   375,    47,    -1,   194,    -1,   369,    -1,   251,    -1,
     466,    -1,   443,    -1,   273,    -1,   116,    -1,   405,    -1,
      -1,  1188,    -1,    -1,   404,  1267,  1268,    -1,  1268,   575,
    1269,    -1,  1269,    -1,   443,    -1,   273,    -1,   375,    47,
      -1,    -1,   373,  1271,  1272,    -1,  1246,   251,  1273,    -1,
     500,  1316,    -1,    29,  1038,    -1,   228,  1275,  1038,    -1,
      -1,    77,    -1,   375,    -1,   532,  1319,    -1,    -1,    -1,
      -1,    -1,    -1,   245,  1283,  1278,  1285,  1284,   207,  1318,
    1279,  1286,   216,  1280,   485,  1313,  1281,   876,  1282,  1293,
    1287,  1290,  1294,  1296,  1299,    -1,    95,    -1,   559,    -1,
      -1,   246,    -1,    -1,    75,    -1,   257,    -1,    -1,   401,
      -1,   203,    -1,    -1,    67,  1288,    -1,  1288,  1289,    -1,
    1289,    -1,   488,    45,  1301,    -1,   339,   135,    45,  1301,
      -1,   135,    45,  1301,    -1,   145,    45,  1301,    -1,    -1,
     242,  1291,    -1,  1291,  1292,    -1,  1292,    -1,   488,    45,
    1301,    -1,   463,    45,  1301,    -1,    -1,   417,   200,    45,
    1301,    -1,    -1,   203,   327,  1295,    -1,   242,    -1,   417,
      -1,    -1,   573,  1297,   574,    -1,   573,   574,    -1,  1297,
     575,  1298,    -1,  1298,    -1,  1310,    -1,   579,  1321,    -1,
      -1,   434,  1225,    -1,   489,    -1,   310,    -1,   515,   489,
      -1,  1300,  1317,    -1,  1317,    -1,   191,    -1,    35,    -1,
     350,    -1,  1304,    -1,   567,  1305,    -1,   566,  1305,    -1,
    1300,    -1,  1305,    -1,   326,    -1,   158,    -1,   507,    -1,
     191,    -1,    35,    -1,   515,   191,    -1,   515,    35,    -1,
      99,  1300,    -1,   496,  1300,    -1,   493,  1300,    -1,   327,
      -1,   254,    -1,   512,    -1,   106,    -1,   165,    -1,  1310,
      -1,  1307,    -1,  1319,   580,   568,    -1,  1319,   580,  1319,
     580,   568,    -1,  1038,    -1,  1319,    -1,  1311,    -1,  1319,
      -1,  1311,    -1,  1319,   580,  1319,    -1,   580,  1319,   580,
    1319,    -1,  1319,   580,  1319,   580,  1319,    -1,  1319,    -1,
    1319,   580,  1319,   580,  1319,    -1,  1319,   580,  1319,    -1,
     580,  1319,    -1,  1319,    -1,  1319,   580,  1319,    -1,   580,
    1319,    -1,  1319,    -1,   199,    -1,   201,    -1,   489,    -1,
     489,    -1,   489,    -1,  1315,    -1,   379,    -1,  1323,    -1,
    1315,    -1,  1324,    -1,  1319,    -1,  1316,    -1,   238,    -1,
    1321,    -1,  1321,   579,  1321,    -1,    89,  1037,    -1,  1324,
      -1,    20,    -1,    28,    -1,    30,    -1,    46,    -1,    47,
      -1,    56,    -1,    58,    -1,    62,    -1,    69,    -1,    71,
      -1,    80,    -1,   105,    -1,   125,    -1,   136,    -1,   151,
      -1,   167,    -1,   187,    -1,   190,    -1,   193,    -1,   214,
      -1,   229,    -1,   323,    -1,   335,    -1,   337,    -1,   347,
      -1,   351,    -1,   355,    -1,   362,    -1,   365,    -1,   395,
      -1,   398,    -1,   404,    -1,   406,    -1,   414,    -1,   421,
      -1,   425,    -1,   432,    -1,   441,    -1,   446,    -1,   443,
      -1,   447,    -1,   465,    -1,   469,    -1,   508,    -1,   519,
      -1,   520,    -1,   555,    -1,   558,    -1,   528,    -1,     5,
      -1,     7,    -1,     8,    -1,     9,    -1,    10,    -1,    11,
      -1,    17,    -1,    22,    -1,    23,    -1,    25,    -1,    24,
      -1,    26,    -1,    27,    -1,    34,    -1,    38,    -1,    42,
      -1,    41,    -1,    44,    -1,    50,    -1,    53,    -1,    55,
      -1,    60,    -1,    61,    -1,    63,    -1,    64,    -1,    66,
      -1,   161,    -1,    67,    -1,    70,    -1,    72,    -1,    73,
      -1,    74,    -1,    75,    -1,    77,    -1,    78,    -1,    82,
      -1,    87,    -1,    95,    -1,    94,    -1,    96,    -1,    99,
      -1,   104,    -1,   110,    -1,   112,    -1,   116,    -1,   118,
      -1,   119,    -1,   120,    -1,   121,    -1,   128,    -1,   129,
      -1,   130,    -1,   137,    -1,   141,    -1,   140,    -1,   139,
      -1,   144,    -1,   146,    -1,   148,    -1,   147,    -1,   149,
      -1,   150,    -1,   154,    -1,   155,    -1,   156,    -1,   159,
      -1,   171,    -1,   134,    -1,   174,    -1,   162,    -1,   163,
      -1,   164,    -1,   172,    -1,   179,    -1,   178,    -1,   180,
      -1,   183,    -1,   181,    -1,   188,    -1,   194,    -1,   198,
      -1,   200,    -1,   218,    -1,   204,    -1,   205,    -1,   208,
      -1,   221,    -1,   222,    -1,   213,    -1,   226,    -1,   230,
      -1,   233,    -1,   236,    -1,   237,    -1,   243,    -1,   244,
      -1,   246,    -1,   248,    -1,   250,    -1,   251,    -1,   278,
      -1,   273,    -1,   260,    -1,   264,    -1,   261,    -1,   262,
      -1,   274,    -1,   263,    -1,   265,    -1,   259,    -1,   271,
      -1,   267,    -1,   266,    -1,   268,    -1,   269,    -1,   270,
      -1,   276,    -1,   277,    -1,   279,    -1,   281,    -1,   282,
      -1,   283,    -1,   287,    -1,   288,    -1,   289,    -1,   290,
      -1,   291,    -1,   294,    -1,   295,    -1,   299,    -1,   297,
      -1,   301,    -1,   302,    -1,   303,    -1,   304,    -1,   305,
      -1,   307,    -1,   306,    -1,   308,    -1,   311,    -1,   312,
      -1,   316,    -1,   315,    -1,   324,    -1,   317,    -1,   318,
      -1,   322,    -1,   329,    -1,   330,    -1,   331,    -1,   333,
      -1,   334,    -1,   348,    -1,   349,    -1,   352,    -1,   353,
      -1,   354,    -1,   356,    -1,   357,    -1,   359,    -1,   358,
      -1,   360,    -1,   361,    -1,   366,    -1,   367,    -1,   369,
      -1,   371,    -1,   372,    -1,   374,    -1,   375,    -1,   376,
      -1,   383,    -1,   384,    -1,   386,    -1,   385,    -1,   387,
      -1,   390,    -1,   391,    -1,   392,    -1,   394,    -1,   397,
      -1,   399,    -1,   402,    -1,   405,    -1,   408,    -1,   409,
      -1,   411,    -1,   415,    -1,   416,    -1,   417,    -1,   418,
      -1,   419,    -1,   420,    -1,   422,    -1,   424,    -1,   430,
      -1,   429,    -1,   431,    -1,   442,    -1,   436,    -1,   440,
      -1,   445,    -1,   448,    -1,   456,    -1,   455,    -1,   458,
      -1,   461,    -1,   464,    -1,   466,    -1,   470,    -1,   472,
      -1,   473,    -1,   474,    -1,   476,    -1,   475,    -1,   479,
      -1,   480,    -1,   482,    -1,   483,    -1,   486,    -1,   487,
      -1,   490,    -1,   491,    -1,   502,    -1,   503,    -1,   504,
      -1,   493,    -1,   494,    -1,   495,    -1,   496,    -1,   509,
      -1,   510,    -1,   511,    -1,   176,    -1,   513,    -1,   514,
      -1,   517,    -1,   516,    -1,   523,    -1,   526,    -1,   530,
      -1,   531,    -1,   541,    -1,   545,    -1,   538,    -1,   547,
      -1,   546,    -1,   548,    -1,   549,    -1,   554,    -1,   557,
      -1,   559,    -1,   562,    -1,    -1,   434,  1327,  1326,  1328,
      -1,    -1,   338,    -1,  1329,    -1,  1328,   575,  1329,    -1,
      -1,  1330,  1335,    -1,  1332,    -1,   181,    -1,   246,    -1,
     431,    -1,    -1,   333,    -1,    -1,   181,    -1,   246,    -1,
     431,    -1,    -1,   181,   580,    -1,   246,   580,    -1,   431,
     580,    -1,  1336,    -1,  1332,  1337,    -1,  1331,  1338,  1211,
    1341,    -1,  1331,   502,   221,   237,  1339,    -1,   579,  1321,
    1211,  1038,    -1,   579,   579,  1334,  1338,  1211,  1341,    -1,
     873,   878,    -1,   306,  1211,  1038,    -1,   306,   875,   880,
      -1,   356,  1211,  1340,    -1,   356,   170,  1322,  1211,  1340,
      -1,  1319,    -1,  1319,   580,  1319,    -1,   109,   580,  1319,
      -1,   380,   513,    -1,   380,    70,    -1,   399,   380,    -1,
     429,    -1,   489,    -1,   356,   573,   489,   574,    -1,   331,
     573,   489,   574,    -1,  1038,    -1,   109,    -1,   332,    -1,
      12,    -1,    33,    -1,    -1,    -1,   249,  1343,  1345,  1344,
    1346,    -1,   485,    -1,   482,    -1,  1347,    -1,  1346,   575,
    1347,    -1,  1313,  1141,  1348,    -1,   380,    -1,   556,    -1,
     257,   556,    -1,   380,   246,    -1,   219,  1349,   297,  1350,
      -1,   436,    -1,   150,    -1,    -1,   322,    -1,    -1,   524,
    1352,  1345,    -1,   187,  1313,   335,  1141,    -1,   187,  1314,
      62,    -1,    -1,   187,  1314,   380,  1354,  1355,  1143,  1160,
      -1,  1356,    -1,  1319,  1357,    -1,   163,    -1,   316,    -1,
     163,    -1,   316,    -1,   367,    -1,   230,    -1,    -1,  1359,
    1358,   573,  1216,   574,    -1,   142,    -1,   177,    -1,   231,
      -1,   186,    -1,   258,    -1,   412,   624,  1361,    -1,  1365,
     332,  1364,  1376,   173,  1378,    -1,  1365,   332,   176,  1376,
     173,  1378,    -1,  1365,   332,   370,  1376,   173,  1378,    -1,
      12,  1366,   575,   182,   338,   173,  1378,    -1,   182,   624,
    1363,    -1,  1365,   332,  1364,  1376,   500,  1378,  1383,  1384,
      -1,  1365,   332,   176,  1376,   500,  1378,  1383,  1384,    -1,
    1365,   332,   370,  1376,   500,  1378,  1383,  1384,    -1,    -1,
     485,    -1,  1367,    -1,    12,  1366,    -1,    -1,   369,    -1,
    1368,    -1,  1367,   575,  1368,    -1,    -1,   426,  1369,  1380,
      -1,    -1,   212,  1370,  1380,    -1,    -1,   527,  1371,  1380,
      -1,    -1,   388,  1372,  1380,    -1,   113,    -1,   529,    -1,
     206,    -1,    13,    -1,    85,    -1,   126,    -1,   151,    -1,
     394,    -1,   440,    -1,   371,    -1,   162,    -1,   182,   338,
      -1,   439,    93,    -1,   479,    -1,    85,   486,   482,    -1,
     249,   482,    -1,   402,   443,    -1,   402,    61,    -1,    85,
     545,    -1,   439,   545,    -1,    85,   416,    -1,    13,   416,
      -1,    85,   530,    -1,   148,    -1,   505,    -1,    -1,    16,
      -1,  1375,  1373,  1374,    -1,  1375,    -1,   474,   489,    -1,
     222,   489,    -1,    60,   489,    -1,   568,    -1,  1319,   580,
     568,    -1,   568,   580,   568,    -1,  1313,    -1,  1322,    -1,
    1377,   575,  1322,    -1,  1379,    -1,  1378,   575,  1379,    -1,
    1322,   200,    45,   489,    -1,  1322,   200,    45,   356,   489,
      -1,  1322,    -1,    -1,   573,  1381,   574,    -1,  1381,   575,
    1382,    -1,  1382,    -1,  1319,    -1,    -1,   403,  1374,    -1,
     403,   462,    -1,   403,   557,    -1,   403,   318,    -1,    -1,
     553,  1385,    -1,  1385,  1386,    -1,  1386,    -1,   182,   338,
      -1,   277,  1165,    -1,   281,  1165,    -1,   276,  1165,    -1,
     282,  1165,    -1,    -1,    30,  1388,  1389,    -1,    -1,   554,
      -1,    -1,    16,   323,    53,    -1,    16,    53,    -1,    -1,
     393,    -1,   323,   393,    -1,    -1,   421,    -1,    71,  1389,
    1390,  1391,    -1,   414,  1389,  1390,  1391,    -1,   414,  1389,
     500,  1392,  1319,    -1,   421,  1319,    -1,   393,   421,  1319,
      -1,    -1,  1398,    -1,    -1,   521,  1404,  1399,  1018,    -1,
      -1,  1398,    -1,  1401,    -1,    -1,  1402,  1403,    -1,  1155,
    1159,    -1,  1161,    -1,    -1,   122,    -1,    12,    -1,   426,
    1408,  1407,  1409,    -1,    -1,   573,  1408,  1405,   574,  1406,
    1397,  1409,    -1,  1020,    -1,    -1,    -1,  1412,  1411,    -1,
    1413,  1412,  1417,    -1,  1417,    -1,  1426,    -1,  1430,    -1,
     611,    -1,    -1,   110,   142,  1322,    -1,  1414,    -1,  1414,
    1415,    -1,  1415,    -1,   343,   401,    -1,    11,   142,   514,
      -1,    11,   142,   289,    -1,    11,   142,   487,    -1,    -1,
     460,   425,   110,    -1,   460,   425,   218,    -1,    -1,    -1,
    1416,   545,  1313,  1418,  1420,    18,  1419,  1422,    -1,    -1,
     573,  1421,   574,    -1,  1319,    -1,  1421,   575,  1319,    -1,
      -1,  1423,  1424,  1425,    -1,   426,  1020,    -1,   573,  1019,
     574,  1400,    -1,    -1,   553,    59,   338,    -1,   553,    50,
      59,   338,    -1,   553,   246,    59,   338,    -1,    -1,    -1,
      -1,   505,  1033,   625,   711,   712,   332,  1033,  1427,  1313,
     170,  1033,  1428,   131,   419,  1429,   666,    -1,    -1,   840,
    1033,   176,   625,  1431,   626,    -1,    -1,    -1,    -1,    -1,
     370,  1033,   625,  1432,   573,  1433,   646,   574,  1434,   633,
    1435,   666,    -1,   558,  1438,  1437,  1439,    -1,   558,   136,
    1437,  1441,    -1,   558,   365,  1437,    -1,   558,    71,  1437,
    1440,    -1,   558,   414,  1437,    -1,   558,   384,    -1,  1301,
      -1,  1301,   575,  1301,    -1,  1301,   575,  1301,   575,  1165,
      -1,    30,    -1,   465,    -1,    -1,   224,    -1,   408,    -1,
      -1,   334,   357,    -1,    -1,    -1,   480,  1442,  1443,    -1,
      -1,   170,   291,    -1,   214,   359,  1319,   447,  1316,    -1,
     520,   359,  1319,    -1
};

/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
static const yytype_uint16 yyrline[] =
{
       0,  1346,  1346,  1360,  1364,  1365,  1370,  1371,  1372,  1373,
    1374,  1375,  1376,  1377,  1378,  1379,  1380,  1381,  1382,  1383,
    1384,  1385,  1386,  1387,  1388,  1389,  1390,  1391,  1392,  1393,
    1394,  1395,  1396,  1397,  1398,  1399,  1400,  1401,  1402,  1403,
    1404,  1405,  1406,  1407,  1408,  1409,  1410,  1411,  1412,  1413,
    1414,  1415,  1416,  1417,  1418,  1419,  1420,  1424,  1434,  1435,
    1439,  1449,  1456,  1467,  1466,  1477,  1479,  1483,  1484,  1488,
    1501,  1500,  1520,  1519,  1530,  1531,  1535,  1539,  1543,  1547,
    1551,  1555,  1560,  1564,  1568,  1572,  1576,  1580,  1585,  1589,
    1593,  1609,  1613,  1625,  1624,  1659,  1657,  1686,  1685,  1698,
    1697,  1705,  1709,  1713,  1717,  1724,  1737,  1738,  1742,  1746,
    1750,  1754,  1758,  1762,  1766,  1778,  1773,  1824,  1823,  1830,
    1837,  1838,  1843,  1848,  1857,  1860,  1866,  1868,  1875,  1876,
    1880,  1886,  1895,  1896,  1904,  1904,  1962,  1963,  1964,  1965,
    1966,  1967,  1968,  1969,  1970,  1971,  1972,  1977,  1991,  2005,
    2023,  2050,  2093,  2101,  2109,  2132,  2049,  2198,  2199,  2203,
    2204,  2209,  2211,  2213,  2215,  2217,  2219,  2221,  2227,  2228,
    2229,  2233,  2237,  2245,  2244,  2257,  2259,  2262,  2264,  2268,
    2272,  2279,  2281,  2285,  2286,  2291,  2310,  2336,  2338,  2342,
    2343,  2347,  2373,  2374,  2375,  2376,  2380,  2381,  2385,  2386,
    2391,  2394,  2421,  2420,  2476,  2491,  2490,  2534,  2558,  2558,
    2592,  2593,  2598,  2600,  2605,  2628,  2634,  2649,  2650,  2654,
    2658,  2667,  2672,  2677,  2685,  2700,  2718,  2719,  2723,  2724,
    2725,  2726,  2727,  2728,  2729,  2730,  2731,  2732,  2733,  2738,
    2737,  2744,  2744,  2797,  2796,  2822,  2822,  2836,  2868,  2899,
    2918,  2917,  2937,  2954,  2956,  2957,  2961,  2981,  3004,  3006,
    3020,  3004,  3038,  3040,  3041,  3045,  3046,  3051,  3057,  3050,
    3076,  3075,  3091,  3092,  3096,  3097,  3102,  3106,  3101,  3123,
    3127,  3122,  3142,  3150,  3155,  3154,  3192,  3193,  3198,  3197,
    3224,  3235,  3237,  3234,  3261,  3260,  3278,  3280,  3285,  3287,
    3289,  3306,  3311,  3317,  3324,  3325,  3333,  3339,  3348,  3354,
    3360,  3361,  3365,  3365,  3370,  3371,  3372,  3376,  3377,  3378,
    3382,  3382,  3387,  3388,  3389,  3393,  3394,  3395,  3396,  3397,
    3398,  3399,  3400,  3404,  3404,  3409,  3410,  3411,  3415,  3416,
    3417,  3418,  3419,  3423,  3423,  3428,  3429,  3430,  3434,  3435,
    3436,  3437,  3438,  3439,  3440,  3444,  3444,  3449,  3450,  3451,
    3455,  3456,  3457,  3462,  3470,  3478,  3486,  3496,  3506,  3511,
    3516,  3524,  3532,  3540,  3548,  3556,  3564,  3572,  3585,  3598,
    3611,  3613,  3617,  3622,  3635,  3636,  3687,  3689,  3688,  3691,
    3700,  3713,  3712,  3715,  3717,  3715,  3721,  3723,  3722,  3725,
    3724,  3753,  3754,  3759,  3758,  3791,  3790,  3807,  3807,  3807,
    3811,  3818,  3817,  3821,  3820,  3824,  3823,  3829,  3830,  3835,
    3836,  3840,  3841,  3845,  3856,  3868,  3881,  3882,  3898,  3900,
    3899,  3904,  3902,  3913,  3914,  3918,  3929,  3945,  3946,  3962,
    3963,  3986,  3987,  3992,  4008,  4009,  4010,  3991,  4015,  4026,
    4046,  4061,  4079,  4091,  4107,  4108,  4112,  4122,  4123,  4127,
    4144,  4203,  4211,  4238,  4239,  4244,  4243,  4264,  4269,  4270,
    4274,  4275,  4279,  4281,  4287,  4289,  4291,  4293,  4295,  4297,
    4307,  4323,  4306,  4337,  4338,  4342,  4343,  4347,  4348,  4352,
    4353,  4357,  4358,  4362,  4363,  4367,  4371,  4372,  4375,  4377,
    4381,  4382,  4386,  4387,  4388,  4392,  4397,  4402,  4407,  4412,
    4417,  4422,  4427,  4442,  4448,  4453,  4458,  4463,  4478,  4479,
    4480,  4485,  4490,  4495,  4497,  4499,  4501,  4503,  4509,  4514,
    4524,  4542,  4559,  4582,  4596,  4597,  4598,  4601,  4602,  4603,
    4604,  4605,  4606,  4607,  4611,  4612,  4613,  4617,  4618,  4622,
    4623,  4626,  4627,  4628,  4629,  4633,  4634,  4638,  4639,  4643,
    4644,  4651,  4664,  4674,  4693,  4697,  4703,  4705,  4709,  4713,
    4714,  4718,  4723,  4722,  4748,  4749,  4750,  4751,  4756,  4761,
    4766,  4771,  4776,  4781,  4787,  4793,  4799,  4805,  4810,  4816,
    4822,  4824,  4826,  4828,  4839,  4841,  4846,  4851,  4863,  4868,
    4873,  4878,  4880,  4882,  4884,  4886,  4888,  4890,  4892,  4895,
    4894,  4899,  4898,  4902,  4904,  4913,  4914,  4915,  4920,  4921,
    4922,  4923,  4924,  4928,  4932,  4933,  4937,  4938,  4942,  4943,
    4944,  4945,  4946,  4950,  4951,  4952,  4953,  4954,  4958,  4963,
    4965,  4971,  4972,  4974,  4979,  4988,  4989,  4993,  4994,  4998,
    4999,  5000,  5004,  5005,  5009,  5010,  5014,  5015,  5019,  5020,
    5024,  5025,  5026,  5027,  5028,  5029,  5030,  5031,  5033,  5034,
    5040,  5046,  5052,  5058,  5059,  5075,  5077,  5082,  5083,  5087,
    5095,  5099,  5100,  5104,  5105,  5109,  5118,  5122,  5123,  5127,
    5138,  5139,  5143,  5144,  5148,  5149,  5153,  5154,  5155,  5156,
    5165,  5166,  5170,  5171,  5175,  5176,  5177,  5186,  5191,  5190,
    5203,  5204,  5208,  5211,  5212,  5213,  5214,  5218,  5226,  5233,
    5234,  5238,  5248,  5249,  5253,  5254,  5257,  5259,  5264,  5263,
    5276,  5277,  5281,  5282,  5286,  5287,  5291,  5292,  5296,  5297,
    5298,  5299,  5300,  5304,  5305,  5306,  5307,  5308,  5312,  5313,
    5314,  5327,  5328,  5332,  5333,  5337,  5338,  5342,  5343,  5344,
    5348,  5349,  5350,  5351,  5364,  5376,  5377,  5381,  5382,  5386,
    5387,  5391,  5392,  5396,  5397,  5399,  5400,  5413,  5414,  5415,
    5419,  5420,  5424,  5425,  5437,  5438,  5442,  5443,  5447,  5448,
    5456,  5455,  5482,  5481,  5496,  5495,  5514,  5513,  5532,  5531,
    5550,  5544,  5568,  5563,  5617,  5622,  5627,  5632,  5637,  5647,
    5648,  5649,  5650,  5654,  5655,  5667,  5668,  5672,  5673,  5676,
    5678,  5679,  5680,  5682,  5684,  5685,  5694,  5695,  5699,  5708,
    5706,  5717,  5715,  5725,  5724,  5733,  5731,  5740,  5747,  5751,
    5758,  5762,  5767,  5766,  5782,  5784,  5789,  5798,  5797,  5813,
    5817,  5816,  5828,  5829,  5833,  5848,  5849,  5853,  5862,  5863,
    5867,  5872,  5871,  5879,  5890,  5878,  5903,  5910,  5914,  5921,
    5928,  5934,  5940,  5946,  5953,  5972,  5993,  5998,  6002,  6010,
    6011,  6015,  6016,  6020,  6021,  6022,  6026,  6027,  6028,  6032,
    6033,  6034,  6035,  6044,  6043,  6054,  6062,  6061,  6071,  6080,
    6089,  6090,  6097,  6097,  6103,  6104,  6108,  6109,  6110,  6114,
    6115,  6131,  6132,  6136,  6135,  6147,  6146,  6157,  6159,  6165,
    6174,  6173,  6183,  6184,  6185,  6190,  6189,  6201,  6202,  6206,
    6207,  6211,  6212,  6213,  6218,  6217,  6229,  6238,  6237,  6254,
    6255,  6259,  6260,  6264,  6265,  6266,  6267,  6268,  6269,  6274,
    6273,  6285,  6286,  6287,  6292,  6291,  6298,  6297,  6304,  6311,
    6316,  6324,  6325,  6329,  6342,  6354,  6363,  6364,  6368,  6377,
    6378,  6383,  6382,  6392,  6393,  6397,  6406,  6406,  6417,  6418,
    6423,  6424,  6433,  6442,  6443,  6447,  6469,  6474,  6473,  6493,
    6501,  6493,  6508,  6509,  6510,  6511,  6512,  6516,  6523,  6530,
    6532,  6543,  6544,  6548,  6549,  6555,  6556,  6557,  6558,  6564,
    6570,  6576,  6590,  6593,  6595,  6601,  6611,  6612,  6613,  6626,
    6646,  6654,  6662,  6663,  6667,  6668,  6669,  6670,  6671,  6675,
    6676,  6681,  6681,  6698,  6700,  6705,  6706,  6706,  6723,  6725,
    6730,  6731,  6735,  6737,  6739,  6741,  6743,  6744,  6745,  6749,
    6750,  6751,  6752,  6754,  6756,  6760,  6764,  6770,  6774,  6780,
    6784,  6792,  6794,  6800,  6805,  6807,  6809,  6810,  6812,  6816,
    6817,  6821,  6822,  6826,  6828,  6830,  6834,  6835,  6836,  6838,
    6840,  6844,  6845,  6846,  6847,  6848,  6849,  6853,  6854,  6858,
    6859,  6863,  6864,  6868,  6869,  6873,  6874,  6878,  6879,  6880,
    6881,  6882,  6883,  6887,  6888,  6892,  6896,  6897,  6898,  6899,
    6900,  6901,  6909,  6910,  6911,  6912,  6913,  6915,  6916,  6918,
    6920,  6922,  6926,  6927,  6932,  6937,  6941,  6942,  6949,  6954,
    6962,  6964,  6971,  6973,  6985,  6990,  6993,  7011,  7013,  7015,
    7020,  7022,  7024,  7026,  7028,  7030,  7032,  7034,  7036,  7038,
    7040,  7042,  7044,  7046,  7048,  7050,  7052,  7054,  7056,  7058,
    7060,  7065,  7082,  7087,  7089,  7094,  7099,  7104,  7106,  7108,
    7110,  7112,  7117,  7122,  7124,  7129,  7131,  7133,  7135,  7137,
    7139,  7147,  7155,  7157,  7159,  7164,  7169,  7182,  7184,  7186,
    7188,  7190,  7195,  7197,  7199,  7201,  7203,  7213,  7215,  7217,
    7219,  7221,  7223,  7232,  7234,  7236,  7241,  7247,  7260,  7266,
    7273,  7280,  7287,  7294,  7301,  7303,  7323,  7322,  7390,  7422,
    7424,  7429,  7430,  7434,  7435,  7439,  7440,  7444,  7444,  7450,
    7454,  7461,  7481,  7483,  7485,  7487,  7489,  7491,  7493,  7496,
    7498,  7495,  7501,  7508,  7510,  7512,  7514,  7516,  7518,  7520,
    7522,  7524,  7527,  7526,  7542,  7541,  7556,  7562,  7568,  7581,
    7582,  7587,  7590,  7595,  7598,  7610,  7609,  7626,  7628,  7630,
    7632,  7634,  7636,  7638,  7640,  7642,  7644,  7646,  7651,  7652,
    7656,  7656,  7661,  7662,  7665,  7666,  7670,  7670,  7675,  7676,
    7679,  7680,  7684,  7685,  7689,  7695,  7705,  7706,  7715,  7720,
    7721,  7741,  7743,  7747,  7745,  7762,  7760,  7778,  7776,  7783,
    7792,  7790,  7808,  7807,  7817,  7828,  7826,  7845,  7844,  7855,
    7866,  7867,  7868,  7873,  7873,  7888,  7886,  7905,  7927,  7972,
    7971,  7994,  8011,  7994,  8018,  8022,  8048,  8049,  8054,  8058,
    8059,  8060,  8064,  8065,  8070,  8069,  8075,  8074,  8082,  8083,
    8086,  8088,  8088,  8092,  8092,  8097,  8098,  8102,  8104,  8109,
    8110,  8114,  8122,  8132,  8133,  8134,  8135,  8136,  8137,  8138,
    8139,  8140,  8141,  8142,  8143,  8144,  8148,  8149,  8150,  8151,
    8152,  8153,  8154,  8155,  8156,  8160,  8161,  8162,  8163,  8166,
    8168,  8169,  8173,  8174,  8178,  8180,  8184,  8186,  8185,  8199,
    8202,  8201,  8216,  8222,  8234,  8236,  8240,  8242,  8247,  8248,
    8261,  8279,  8283,  8284,  8288,  8301,  8303,  8308,  8307,  8341,
    8343,  8348,  8349,  8350,  8355,  8361,  8365,  8366,  8370,  8374,
    8381,  8388,  8398,  8402,  8403,  8404,  8409,  8413,  8422,  8423,
    8424,  8425,  8426,  8427,  8431,  8432,  8433,  8434,  8435,  8439,
    8440,  8441,  8442,  8443,  8447,  8448,  8449,  8450,  8454,  8459,
    8460,  8463,  8466,  8465,  8494,  8495,  8499,  8500,  8504,  8516,
    8516,  8526,  8527,  8531,  8543,  8576,  8575,  8588,  8587,  8596,
    8608,  8620,  8619,  8636,  8643,  8643,  8655,  8662,  8674,  8686,
    8690,  8696,  8702,  8709,  8714,  8719,  8729,  8730,  8734,  8742,
    8743,  8747,  8748,  8756,  8766,  8755,  8776,  8783,  8775,  8793,
    8805,  8806,  8807,  8811,  8812,  8816,  8817,  8821,  8830,  8831,
    8832,  8834,  8833,  8844,  8845,  8849,  8850,  8852,  8851,  8855,
    8854,  8860,  8861,  8865,  8866,  8870,  8880,  8881,  8885,  8886,
    8891,  8890,  8904,  8905,  8909,  8914,  8922,  8923,  8926,  8928,
    8928,  8936,  8945,  8935,  8967,  8968,  8972,  8980,  8981,  8985,
    8995,  8996,  9003,  9002,  9016,  9015,  9024,  9023,  9031,  9030,
    9040,  9041,  9045,  9053,  9065,  9066,  9070,  9071,  9075,  9076,
    9077,  9081,  9091,  9093,  9100,  9099,  9113,  9120,  9128,  9136,
    9144,  9152,  9160,  9167,  9169,  9171,  9180,  9193,  9197,  9202,
    9201,  9206,  9215,  9220,  9227,  9232,  9237,  9242,  9244,  9246,
    9248,  9250,  9258,  9260,  9268,  9275,  9282,  9292,  9299,  9305,
    9314,  9322,  9326,  9330,  9337,  9344,  9350,  9359,  9368,  9378,
    9388,  9393,  9401,  9403,  9405,  9410,  9411,  9414,  9416,  9420,
    9421,  9425,  9426,  9430,  9431,  9435,  9436,  9440,  9441,  9444,
    9446,  9451,  9462,  9461,  9475,  9474,  9484,  9485,  9489,  9490,
    9491,  9495,  9496,  9497,  9510,  9509,  9521,  9522,  9527,  9526,
    9529,  9531,  9533,  9535,  9537,  9539,  9541,  9543,  9545,  9547,
    9552,  9553,  9558,  9557,  9567,  9568,  9572,  9573,  9574,  9579,
    9578,  9589,  9593,  9597,  9609,  9619,  9620,  9621,  9627,  9639,
    9653,  9664,  9671,  9681,  9638,  9689,  9690,  9694,  9695,  9699,
    9700,  9712,  9716,  9717,  9718,  9721,  9723,  9727,  9728,  9732,
    9737,  9744,  9749,  9756,  9758,  9762,  9763,  9767,  9772,  9780,
    9781,  9784,  9786,  9794,  9795,  9799,  9800,  9801,  9805,  9807,
    9812,  9813,  9818,  9819,  9825,  9843,  9851,  9856,  9875,  9881,
    9892,  9905,  9926,  9927,  9928,  9936,  9937,  9938,  9943,  9944,
    9945,  9946,  9947,  9963,  9977,  9978,  9979,  9983,  9988,  9993,
    9995, 10003, 10018, 10019, 10023, 10029, 10040, 10044, 10081, 10085,
   10093, 10097, 10165, 10180, 10204, 10205, 10221, 10231, 10235, 10236,
   10237, 10241, 10249, 10250, 10276, 10289, 10302, 10315, 10316, 10322,
   10331, 10332, 10341, 10342, 10343, 10347, 10361, 10375, 10390, 10391,
   10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399, 10400, 10401,
   10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411,
   10412, 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421,
   10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431,
   10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10449, 10450,
   10451, 10452, 10453, 10454, 10455, 10456, 10457, 10458, 10459, 10460,
   10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470,
   10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480,
   10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490,
   10491, 10492, 10493, 10494, 10495, 10496, 10497, 10498, 10499, 10500,
   10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508, 10509, 10510,
   10511, 10512, 10513, 10514, 10515, 10516, 10517, 10518, 10519, 10520,
   10521, 10522, 10523, 10524, 10525, 10526, 10527, 10528, 10529, 10530,
   10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540,
   10541, 10542, 10543, 10544, 10545, 10546, 10547, 10548, 10549, 10550,
   10551, 10552, 10553, 10554, 10555, 10556, 10557, 10558, 10559, 10560,
   10561, 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570,
   10571, 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580,
   10581, 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590,
   10591, 10592, 10593, 10594, 10595, 10596, 10597, 10598, 10599, 10600,
   10601, 10602, 10603, 10604, 10605, 10606, 10607, 10608, 10609, 10610,
   10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618, 10619, 10620,
   10621, 10622, 10623, 10624, 10625, 10626, 10627, 10628, 10629, 10630,
   10631, 10632, 10633, 10634, 10635, 10636, 10637, 10638, 10639, 10640,
   10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, 10650,
   10651, 10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660,
   10661, 10662, 10663, 10664, 10665, 10666, 10667, 10668, 10669, 10670,
   10671, 10672, 10673, 10674, 10675, 10676, 10677, 10678, 10679, 10680,
   10681, 10682, 10683, 10684, 10685, 10686, 10687, 10688, 10689, 10690,
   10691, 10692, 10693, 10694, 10695, 10696, 10697, 10698, 10699, 10700,
   10701, 10708, 10707, 10721, 10722, 10726, 10727, 10731, 10731, 10810,
   10811, 10812, 10813, 10817, 10818, 10822, 10823, 10824, 10825, 10829,
   10830, 10831, 10832, 10836, 10837, 10841, 10922, 10934, 10938, 10943,
   10950, 10965, 10978, 10999, 11006, 11038, 11081, 11095, 11096, 11097,
   11098, 11102, 11103, 11110, 11119, 11120, 11121, 11122, 11123, 11130,
   11142, 11129, 11157, 11158, 11162, 11163, 11167, 11183, 11189, 11195,
   11201, 11207, 11217, 11218, 11222, 11223, 11237, 11236, 11256, 11268,
   11281, 11280, 11303, 11304, 11308, 11309, 11313, 11314, 11315, 11316,
   11318, 11317, 11330, 11331, 11332, 11333, 11334, 11340, 11345, 11351,
   11362, 11373, 11380, 11385, 11392, 11404, 11418, 11420, 11424, 11425,
   11432, 11434, 11438, 11439, 11444, 11443, 11447, 11446, 11450, 11449,
   11453, 11452, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462,
   11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472,
   11473, 11474, 11475, 11476, 11477, 11478, 11479, 11483, 11484, 11488,
   11489, 11493, 11503, 11513, 11526, 11541, 11554, 11567, 11579, 11584,
   11592, 11597, 11605, 11630, 11632, 11638, 11642, 11646, 11647, 11651,
   11671, 11673, 11677, 11681, 11685, 11692, 11693, 11697, 11698, 11702,
   11703, 11709, 11715, 11721, 11731, 11730, 11740, 11741, 11746, 11747,
   11748, 11753, 11754, 11755, 11759, 11760, 11764, 11774, 11781, 11791,
   11800, 11814, 11815, 11820, 11819, 11854, 11855, 11856, 11860, 11860,
   11884, 11885, 11889, 11890, 11891, 11895, 11900, 11899, 11920, 11927,
   11948, 11971, 11973, 11978, 11980, 11982, 11984, 11996, 12006, 12019,
   12021, 12023, 12028, 12033, 12035, 12037, 12043, 12044, 12046, 12052,
   12061, 12051, 12085, 12086, 12090, 12095, 12103, 12103, 12127, 12128,
   12133, 12134, 12136, 12138, 12156, 12165, 12173, 12149, 12245, 12244,
   12254, 12283, 12295, 12304, 12253, 12332, 12336, 12340, 12344, 12348,
   12352, 12359, 12366, 12373, 12383, 12384, 12388, 12389, 12390, 12394,
   12395, 12400, 12402, 12401, 12407, 12408, 12412, 12422
};
#endif

#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
static const char *const yytname[] =
{
  "$end", "error", "$undefined", "ABORT_SYM", "ACCESSIBLE_SYM", "ACTION",
  "ADD", "ADDDATE_SYM", "AFTER_SYM", "AGAINST", "AGGREGATE_SYM",
  "ALGORITHM_SYM", "ALL", "ALTER", "ANALYZE_SYM", "AND_AND_SYM", "AND_SYM",
  "ANY_SYM", "AS", "ASC", "ASCII_SYM", "ASENSITIVE_SYM", "AT_SYM",
  "AUTHORS_SYM", "AUTOEXTEND_SIZE_SYM", "AUTO_INC", "AVG_ROW_LENGTH",
  "AVG_SYM", "BACKUP_SYM", "BEFORE_SYM", "BEGIN_SYM", "BETWEEN_SYM",
  "BIGINT", "BINARY", "BINLOG_SYM", "BIN_NUM", "BIT_AND", "BIT_OR",
  "BIT_SYM", "BIT_XOR", "BLOB_SYM", "BOOLEAN_SYM", "BOOL_SYM", "BOTH",
  "BTREE_SYM", "BY", "BYTE_SYM", "CACHE_SYM", "CALL_SYM", "CASCADE",
  "CASCADED", "CASE_SYM", "CAST_SYM", "CHAIN_SYM", "CHANGE", "CHANGED",
  "CHARSET", "CHAR_SYM", "CHECKSUM_SYM", "CHECK_SYM", "CIPHER_SYM",
  "CLIENT_SYM", "CLOSE_SYM", "COALESCE", "CODE_SYM", "COLLATE_SYM",
  "COLLATION_SYM", "COLUMNS", "COLUMN_SYM", "COMMENT_SYM", "COMMITTED_SYM",
  "COMMIT_SYM", "COMPACT_SYM", "COMPLETION_SYM", "COMPRESSED_SYM",
  "CONCURRENT", "CONDITION_SYM", "CONNECTION_SYM", "CONSISTENT_SYM",
  "CONSTRAINT", "CONTAINS_SYM", "CONTINUE_SYM", "CONTRIBUTORS_SYM",
  "CONVERT_SYM", "COUNT_SYM", "CREATE", "CROSS", "CUBE_SYM", "CURDATE",
  "CURRENT_USER", "CURSOR_SYM", "CURTIME", "DATABASE", "DATABASES",
  "DATAFILE_SYM", "DATA_SYM", "DATETIME", "DATE_ADD_INTERVAL",
  "DATE_SUB_INTERVAL", "DATE_SYM", "DAY_HOUR_SYM", "DAY_MICROSECOND_SYM",
  "DAY_MINUTE_SYM", "DAY_SECOND_SYM", "DAY_SYM", "DEALLOCATE_SYM",
  "DECIMAL_NUM", "DECIMAL_SYM", "DECLARE_SYM", "DEFAULT", "DEFINER_SYM",
  "DELAYED_SYM", "DELAY_KEY_WRITE_SYM", "DELETE_SYM", "DESC", "DESCRIBE",
  "DES_KEY_FILE", "DETERMINISTIC_SYM", "DIRECTORY_SYM", "DISABLE_SYM",
  "DISCARD", "DISK_SYM", "DISTINCT", "DIV_SYM", "DOUBLE_SYM", "DO_SYM",
  "DROP", "DUAL_SYM", "DUMPFILE", "DUPLICATE_SYM", "DYNAMIC_SYM",
  "EACH_SYM", "ELSE", "ELSEIF_SYM", "ENABLE_SYM", "ENCLOSED", "END",
  "ENDS_SYM", "END_OF_INPUT", "ENGINES_SYM", "ENGINE_SYM", "ENUM", "EQ",
  "EQUAL_SYM", "ERRORS", "ESCAPED", "ESCAPE_SYM", "EVENTS_SYM",
  "EVENT_SYM", "EVERY_SYM", "EXCLUSIVE_SYM", "EXECUTE_SYM", "EXISTS",
  "EXIT_SYM", "EXPANSION_SYM", "EXTENDED_SYM", "EXTENT_SIZE_SYM",
  "EXTRACT_SYM", "FALSE_SYM", "FAST_SYM", "FETCH_SYM", "COLUMN_FORMAT_SYM",
  "FILE_SYM", "FIRST_SYM", "FIXED_SYM", "FLOAT_NUM", "FLOAT_SYM",
  "FLUSH_SYM", "FORCE_SYM", "FOREIGN", "FOR_SYM", "FOUND_SYM",
  "FRAC_SECOND_SYM", "FROM", "FULL", "FULLTEXT_SYM", "FUNCTION_SYM", "GE",
  "GEOMETRYCOLLECTION", "GEOMETRY_SYM", "GET_FORMAT", "GLOBAL_SYM",
  "GRANT", "GRANTS", "GROUP_SYM", "GROUP_CONCAT_SYM", "GT_SYM",
  "HANDLER_SYM", "HASH_SYM", "HAVING", "HELP_SYM", "HEX_NUM",
  "HIGH_PRIORITY", "HOST_SYM", "HOSTS_SYM", "HOUR_MICROSECOND_SYM",
  "HOUR_MINUTE_SYM", "HOUR_SECOND_SYM", "HOUR_SYM", "IDENT",
  "IDENTIFIED_SYM", "IDENT_QUOTED", "IF", "IGNORE_SYM", "IMPORT",
  "INDEXES", "INDEX_SYM", "INFILE", "INITIAL_SIZE_SYM", "INNER_SYM",
  "INOUT_SYM", "INSENSITIVE_SYM", "INSERT", "INSERT_METHOD", "INSTALL_SYM",
  "INTERVAL_SYM", "INTO", "INT_SYM", "INVOKER_SYM", "IN_SYM", "IS",
  "ISOLATION", "ISSUER_SYM", "ITERATE_SYM", "JOIN_SYM", "KEYS",
  "KEY_BLOCK_SIZE", "KEY_SYM", "KILL_SYM", "LANGUAGE_SYM", "LAST_SYM",
  "LE", "LEADING", "LEAVES", "LEAVE_SYM", "LEFT", "LESS_SYM", "LEVEL_SYM",
  "LEX_HOSTNAME", "LIKE", "LIMIT", "LINEAR_SYM", "LINES", "LINESTRING",
  "LIST_SYM", "LOAD", "LOCAL_SYM", "LOCATOR_SYM", "LOCKS_SYM", "LOCK_SYM",
  "LOGFILE_SYM", "LOGS_SYM", "LONGBLOB", "LONGTEXT", "LONG_NUM",
  "LONG_SYM", "LOOP_SYM", "LOW_PRIORITY", "LT", "MASTER_CONNECT_RETRY_SYM",
  "MASTER_HOST_SYM", "MASTER_LOG_FILE_SYM", "MASTER_LOG_POS_SYM",
  "MASTER_PASSWORD_SYM", "MASTER_PORT_SYM", "MASTER_SERVER_ID_SYM",
  "MASTER_SSL_CAPATH_SYM", "MASTER_SSL_CA_SYM", "MASTER_SSL_CERT_SYM",
  "MASTER_SSL_CIPHER_SYM", "MASTER_SSL_KEY_SYM", "MASTER_SSL_SYM",
  "MASTER_SSL_VERIFY_SERVER_CERT_SYM", "MASTER_SYM", "MASTER_USER_SYM",
  "MATCH", "MAX_CONNECTIONS_PER_HOUR", "MAX_QUERIES_PER_HOUR", "MAX_ROWS",
  "MAX_SIZE_SYM", "MAX_SYM", "MAX_UPDATES_PER_HOUR",
  "MAX_USER_CONNECTIONS_SYM", "MAX_VALUE_SYM", "MEDIUMBLOB", "MEDIUMINT",
  "MEDIUMTEXT", "MEDIUM_SYM", "MEMORY_SYM", "MERGE_SYM", "MICROSECOND_SYM",
  "MIGRATE_SYM", "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM",
  "MINUTE_SYM", "MIN_ROWS", "MIN_SYM", "MODE_SYM", "MODIFIES_SYM",
  "MODIFY_SYM", "MOD_SYM", "MONTH_SYM", "MULTILINESTRING", "MULTIPOINT",
  "MULTIPOLYGON", "MUTEX_SYM", "NAMES_SYM", "NAME_SYM", "NATIONAL_SYM",
  "NATURAL", "NCHAR_STRING", "NCHAR_SYM", "NDBCLUSTER_SYM", "NE", "NEG",
  "NEW_SYM", "NEXT_SYM", "NODEGROUP_SYM", "NONE_SYM", "NOT2_SYM",
  "NOT_SYM", "NOW_SYM", "NOWAIT_SYM", "NO_SYM", "NO_WAIT_SYM",
  "NO_WRITE_TO_BINLOG", "NULL_SYM", "NUM", "NUMERIC_SYM", "NVARCHAR_SYM",
  "OFFSET_SYM", "OLD_PASSWORD", "ON", "ONE_SHOT_SYM", "ONE_SYM",
  "OPEN_SYM", "OPTIMIZE", "OPTIONS_SYM", "OPTION", "OPTIONALLY", "OR2_SYM",
  "ORDER_SYM", "OR_OR_SYM", "OR_SYM", "OUTER", "OUTFILE", "OUT_SYM",
  "OWNER_SYM", "PACK_KEYS_SYM", "PAGE_SYM", "PARAM_MARKER", "PARSER_SYM",
  "PARTIAL", "PARTITIONING_SYM", "PARTITIONS_SYM", "PARTITION_SYM",
  "PASSWORD", "PHASE_SYM", "PLUGINS_SYM", "PLUGIN_SYM", "POINT_SYM",
  "POLYGON", "PORT_SYM", "POSITION_SYM", "PRECISION", "PREPARE_SYM",
  "PRESERVE_SYM", "PREV_SYM", "PRIMARY_SYM", "PRIVILEGES", "PROCEDURE",
  "PROCESS", "PROCESSLIST_SYM", "PURGE", "QUARTER_SYM", "QUERY_SYM",
  "QUICK", "RANGE_SYM", "READS_SYM", "READ_ONLY_SYM", "READ_SYM",
  "READ_WRITE_SYM", "REAL", "REBUILD_SYM", "RECOVER_SYM", "REDOFILE_SYM",
  "REDO_BUFFER_SIZE_SYM", "REDUNDANT_SYM", "REFERENCES", "REGEXP",
  "RELAY_LOG_FILE_SYM", "RELAY_LOG_POS_SYM", "RELAY_THREAD", "RELEASE_SYM",
  "RELOAD", "REMOVE_SYM", "RENAME", "REORGANIZE_SYM", "REPAIR",
  "REPEATABLE_SYM", "REPEAT_SYM", "REPLACE", "REPLICATION", "REQUIRE_SYM",
  "RESET_SYM", "RESOURCES", "RESTORE_SYM", "RESTRICT", "RESUME_SYM",
  "RETURNS_SYM", "RETURN_SYM", "REVERSE_SYM", "REVOKE", "RIGHT",
  "ROLLBACK_SYM", "ROLLUP_SYM", "ROUTINE_SYM", "ROWS_SYM",
  "ROW_FORMAT_SYM", "ROW_SYM", "RTREE_SYM", "SAVEPOINT_SYM",
  "SCHEDULE_SYM", "SECOND_MICROSECOND_SYM", "SECOND_SYM", "SECURITY_SYM",
  "SELECT_SYM", "SENSITIVE_SYM", "SEPARATOR_SYM", "SERIALIZABLE_SYM",
  "SERIAL_SYM", "SESSION_SYM", "SERVER_SYM", "SERVER_OPTIONS", "SET",
  "SET_VAR", "SHARE_SYM", "SHIFT_LEFT", "SHIFT_RIGHT", "SHOW", "SHUTDOWN",
  "SIGNED_SYM", "SIMPLE_SYM", "SLAVE", "SMALLINT", "SNAPSHOT_SYM",
  "SOCKET_SYM", "SONAME_SYM", "SOUNDS_SYM", "SPATIAL_SYM", "SPECIFIC_SYM",
  "SQLEXCEPTION_SYM", "SQLSTATE_SYM", "SQLWARNING_SYM", "SQL_BIG_RESULT",
  "SQL_BUFFER_RESULT", "SQL_CACHE_SYM", "SQL_CALC_FOUND_ROWS",
  "SQL_NO_CACHE_SYM", "SQL_SMALL_RESULT", "SQL_SYM", "SQL_THREAD",
  "SSL_SYM", "STARTING", "STARTS_SYM", "START_SYM", "STATUS_SYM",
  "STDDEV_SAMP_SYM", "STD_SYM", "STOP_SYM", "STORAGE_SYM", "STRAIGHT_JOIN",
  "STRING_SYM", "SUBDATE_SYM", "SUBJECT_SYM", "SUBPARTITIONS_SYM",
  "SUBPARTITION_SYM", "SUBSTRING", "SUM_SYM", "SUPER_SYM", "SUSPEND_SYM",
  "SYSDATE", "TABLES", "TABLESPACE", "TABLE_REF_PRIORITY", "TABLE_SYM",
  "TEMPORARY", "TEMPTABLE_SYM", "TERMINATED", "TEXT_STRING", "TEXT_SYM",
  "THAN_SYM", "THEN_SYM", "TIMESTAMP", "TIMESTAMP_ADD", "TIMESTAMP_DIFF",
  "TIME_SYM", "TINYBLOB", "TINYINT", "TINYTEXT", "TO_SYM", "TRAILING",
  "TRANSACTION_SYM", "TRANSACTIONAL_SYM", "TRIGGERS_SYM", "TRIGGER_SYM",
  "TRIM", "TRUE_SYM", "TRUNCATE_SYM", "TYPES_SYM", "TYPE_SYM",
  "UDF_RETURNS_SYM", "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDEFINED_SYM",
  "UNDERSCORE_CHARSET", "UNDOFILE_SYM", "UNDO_BUFFER_SIZE_SYM", "UNDO_SYM",
  "UNICODE_SYM", "UNINSTALL_SYM", "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM",
  "UNLOCK_SYM", "UNSIGNED", "UNTIL_SYM", "UPDATE_SYM", "UPGRADE_SYM",
  "USAGE", "USER", "USE_FRM", "USE_SYM", "USING", "UTC_DATE_SYM",
  "UTC_TIMESTAMP_SYM", "UTC_TIME_SYM", "VALUES", "VALUE_SYM", "VARBINARY",
  "VARCHAR", "VARIABLES", "VARIANCE_SYM", "VARYING", "VAR_SAMP_SYM",
  "VIEW_SYM", "WAIT_SYM", "WARNINGS", "WEEK_SYM", "WEIGHT_STRING_SYM",
  "WHEN_SYM", "WHERE", "WHILE_SYM", "WITH", "WORK_SYM", "WRAPPER_SYM",
  "WRITE_SYM", "X509_SYM", "XA_SYM", "XML_SYM", "XOR", "YEAR_MONTH_SYM",
  "YEAR_SYM", "ZEROFILL", "'|'", "'&'", "'-'", "'+'", "'*'", "'/'", "'%'",
  "'^'", "'~'", "'('", "')'", "','", "'!'", "'{'", "'}'", "'@'", "'.'",
  "';'", "':'", "$accept", "query", "verb_clause", "statement",
  "deallocate", "deallocate_or_drop", "prepare", "prepare_src", "execute",
  "@1", "execute_using", "execute_var_list", "execute_var_ident", "help",
  "@2", "change", "@3", "master_defs", "master_def", "master_file_def",
  "create", "@4", "@5", "@6", "@7", "server_def", "server_options_list",
  "server_option", "event_tail", "@8", "ev_schedule_time", "@9",
  "opt_ev_status", "ev_starts", "ev_ends", "opt_ev_on_completion",
  "ev_on_completion", "opt_ev_comment", "ev_sql_stmt", "@10",
  "ev_sql_stmt_inner", "clear_privileges", "sp_name",
  "create_function_tail", "@11", "@12", "@13", "@14", "@15",
  "sp_a_chistics", "sp_c_chistics", "sp_chistic", "sp_c_chistic",
  "sp_suid", "call", "@16", "opt_sp_cparam_list", "opt_sp_cparams",
  "sp_cparams", "sp_fdparam_list", "sp_fdparams", "sp_init_param",
  "sp_fdparam", "sp_pdparam_list", "sp_pdparams", "sp_pdparam",
  "sp_opt_inout", "sp_proc_stmts", "sp_proc_stmts1", "sp_decls", "sp_decl",
  "@17", "@18", "sp_cursor_stmt", "@19", "sp_handler_type",
  "sp_hcond_list", "sp_hcond_element", "sp_cond", "opt_value", "sp_hcond",
  "sp_decl_idents", "sp_opt_default", "sp_proc_stmt", "sp_proc_stmt_if",
  "@20", "sp_proc_stmt_statement", "@21", "sp_proc_stmt_return", "@22",
  "sp_proc_stmt_unlabeled", "@23", "sp_proc_stmt_leave",
  "sp_proc_stmt_iterate", "sp_proc_stmt_open", "sp_proc_stmt_fetch", "@24",
  "sp_proc_stmt_close", "sp_opt_fetch_noise", "sp_fetch_list", "sp_if",
  "@25", "@26", "@27", "sp_elseifs", "case_stmt_specification",
  "simple_case_stmt", "@28", "@29", "searched_case_stmt", "@30",
  "simple_when_clause_list", "searched_when_clause_list",
  "simple_when_clause", "@31", "@32", "searched_when_clause", "@33", "@34",
  "else_clause_opt", "sp_labeled_control", "@35", "sp_opt_label",
  "sp_unlabeled_control", "@36", "@37", "@38", "@39", "trg_action_time",
  "trg_event", "change_tablespace_access", "change_tablespace_info",
  "tablespace_info", "opt_logfile_group_name", "alter_tablespace_info",
  "logfile_group_info", "alter_logfile_group_info", "add_log_file",
  "change_ts_option_list", "@40", "change_ts_options", "change_ts_option",
  "tablespace_option_list", "@41", "tablespace_options",
  "tablespace_option", "alter_tablespace_option_list", "@42",
  "alter_tablespace_options", "alter_tablespace_option",
  "logfile_group_option_list", "@43", "logfile_group_options",
  "logfile_group_option", "alter_logfile_group_option_list", "@44",
  "alter_logfile_group_options", "alter_logfile_group_option",
  "ts_datafile", "lg_undofile", "lg_redofile", "tablespace_name",
  "logfile_group_name", "ts_access_mode", "opt_ts_initial_size",
  "opt_ts_autoextend_size", "opt_ts_max_size", "opt_ts_extent_size",
  "opt_ts_undo_buffer_size", "opt_ts_redo_buffer_size", "opt_ts_nodegroup",
  "opt_ts_comment", "opt_ts_engine", "opt_ts_wait", "ts_wait",
  "size_number", "create2", "@45", "create2a", "@46", "@47", "@48",
  "create3", "@49", "@50", "opt_partitioning", "partitioning", "@51",
  "partition_entry", "@52", "partition", "@53", "@54", "part_type_def",
  "@55", "@56", "@57", "opt_linear", "part_field_list",
  "part_field_item_list", "part_field_item", "part_func", "sub_part_func",
  "opt_no_parts", "opt_sub_part", "@58", "@59", "sub_part_field_list",
  "sub_part_field_item", "part_func_expr", "opt_no_subparts", "part_defs",
  "part_def_list", "part_definition", "@60", "@61", "@62", "@63",
  "part_name", "opt_part_values", "part_func_max", "max_value_sym",
  "part_range_func", "part_list_func", "part_list_item", "part_bit_expr",
  "opt_sub_partition", "sub_part_list", "sub_part_definition", "@64",
  "sub_name", "opt_part_options", "opt_part_option_list",
  "opt_part_option", "create_select", "@65", "@66", "opt_as",
  "opt_create_database_options", "create_database_options",
  "create_database_option", "opt_table_options", "table_options",
  "table_option", "opt_if_not_exists", "opt_create_table_options",
  "create_table_options_space_separated", "create_table_options",
  "create_table_option", "default_charset", "default_collation",
  "storage_engines", "known_storage_engines", "column_format_types",
  "row_types", "merge_insert_types", "opt_select_from", "udf_func_type",
  "udf_type", "field_list", "field_list_item", "column_def", "key_def",
  "opt_check_constraint", "check_constraint", "opt_constraint",
  "constraint", "field_spec", "@67", "type", "@68", "@69", "spatial_type",
  "char", "nchar", "varchar", "nvarchar", "int_type", "real_type",
  "float_options", "precision", "field_options", "field_opt_list",
  "field_option", "opt_len", "opt_precision", "opt_attribute",
  "opt_attribute_list", "attribute", "now_or_signed_literal", "charset",
  "charset_name", "charset_name_or_default", "opt_load_data_charset",
  "old_or_new_charset_name", "old_or_new_charset_name_or_default",
  "collation_name", "opt_collate", "collation_name_or_default",
  "opt_default", "opt_binary", "opt_bin_mod", "opt_bin_charset",
  "ws_nweights", "@70", "ws_level_flag_desc", "ws_level_flag_reverse",
  "ws_level_flags", "ws_level_number", "ws_level_list_item",
  "ws_level_list", "ws_level_range", "ws_level_list_or_range",
  "opt_ws_levels", "opt_primary", "references", "@71", "opt_ref_list",
  "ref_list", "opt_on_delete", "opt_on_delete_list", "opt_on_delete_item",
  "delete_option", "key_type", "constraint_key_type", "key_or_index",
  "opt_key_or_index", "keys_or_index", "opt_unique_or_fulltext",
  "init_key_options", "key_alg", "key_options", "key_opts",
  "key_using_alg", "key_opt", "btree_or_rtree", "key_list", "key_part",
  "opt_ident", "opt_component", "string_list", "alter", "@72", "@73",
  "@74", "@75", "@76", "@77", "@78", "ev_alter_on_schedule_completion",
  "opt_ev_rename_to", "opt_ev_sql_stmt", "ident_or_empty",
  "alter_commands", "@79", "@80", "@81", "@82", "remove_partitioning",
  "all_or_alt_part_name_list", "add_partition_rule", "@83",
  "add_part_extra", "reorg_partition_rule", "@84", "reorg_parts_rule",
  "@85", "alt_part_name_list", "alt_part_name_item", "alter_list",
  "add_column", "alter_list_item", "@86", "@87", "@88", "opt_column",
  "opt_ignore", "opt_restrict", "opt_place", "opt_to", "slave", "@89",
  "@90", "start", "start_transaction_opts", "slave_thread_opts", "@91",
  "slave_thread_opt_list", "slave_thread_opt", "slave_until",
  "slave_until_opts", "restore", "@92", "backup", "@93", "database_list",
  "checksum", "@94", "opt_checksum_type", "repair", "@95",
  "opt_mi_repair_type", "mi_repair_types", "mi_repair_type", "analyze",
  "@96", "binlog_base64_event", "check", "@97", "opt_mi_check_type",
  "mi_check_types", "mi_check_type", "optimize", "@98",
  "opt_no_write_to_binlog", "rename", "@99", "@100", "rename_list",
  "table_to_table_list", "table_to_table", "db_to_db", "keycache",
  "keycache_list", "assign_to_keycache", "key_cache_name", "preload",
  "@101", "preload_list", "preload_keys", "cache_keys_spec", "@102",
  "cache_key_list_or_empty", "opt_ignore_leaves", "select", "select_init",
  "select_paren", "select_init2", "@103", "select_part2", "@104", "@105",
  "select_into", "select_from", "select_options", "select_option_list",
  "select_option", "select_lock_type", "select_item_list", "select_item",
  "remember_name", "remember_end", "select_item2", "select_alias",
  "optional_braces", "expr", "@106", "bool_or_expr", "bool_term", "@107",
  "bool_and_expr", "bool_factor", "bool_test", "bool_pri", "predicate",
  "bit_expr", "bit_term", "bit_factor", "value_expr", "term", "factor",
  "or", "and", "not", "not2", "comp_op", "all_or_any", "interval_expr",
  "simple_expr", "function_call_keyword", "function_call_nonkeyword",
  "function_call_conflict", "geometry_function", "function_call_generic",
  "@108", "fulltext_options", "opt_natural_language_mode",
  "opt_query_expansion", "udf_expr_list", "udf_expr_list2", "@109",
  "udf_expr_list3", "udf_expr", "sum_expr", "@110", "@111", "@112",
  "variable", "@113", "variable_aux", "opt_distinct",
  "opt_gconcat_separator", "opt_gorder_clause", "in_sum_expr", "@114",
  "cast_type", "opt_expr_list", "expr_list", "@115", "expr_list2",
  "ident_list_arg", "ident_list", "@116", "ident_list2", "opt_expr",
  "opt_else", "when_list", "table_ref", "join_table_list",
  "derived_table_list", "join_table", "@117", "@118", "@119", "@120",
  "@121", "@122", "@123", "normal_join", "table_factor", "@124", "@125",
  "select_derived", "@126", "select_derived2", "@127", "@128",
  "get_select_lex", "select_derived_init", "opt_outer",
  "index_hint_clause", "index_hint_type", "index_hint_definition", "@129",
  "@130", "index_hints_list", "opt_index_hints_list", "@131",
  "opt_key_definition", "@132", "opt_key_usage_list", "key_usage_element",
  "key_usage_list", "using_list", "interval", "interval_time_st",
  "date_time_type", "table_alias", "opt_table_alias", "opt_all",
  "where_clause", "@133", "having_clause", "@134", "opt_escape",
  "group_clause", "group_list", "olap_opt", "alter_order_clause",
  "alter_order_list", "alter_order_item", "opt_order_clause",
  "order_clause", "@135", "order_list", "order_dir",
  "opt_limit_clause_init", "opt_limit_clause", "limit_clause",
  "limit_options", "limit_option", "delete_limit_clause", "ulong_num",
  "real_ulong_num", "ulonglong_num", "real_ulonglong_num", "dec_num_error",
  "dec_num", "procedure_clause", "@136", "procedure_list",
  "procedure_list2", "procedure_item", "select_var_list_init", "@137",
  "select_var_list", "select_var_ident", "into", "@138",
  "into_destination", "@139", "do", "@140", "drop", "@141", "table_list",
  "table_name", "if_exists", "opt_temporary", "insert", "@142", "@143",
  "replace", "@144", "@145", "insert_lock_option", "replace_lock_option",
  "insert2", "insert_table", "insert_field_spec", "@146", "fields",
  "insert_values", "@147", "@148", "values_list", "ident_eq_list",
  "ident_eq_value", "equal", "opt_equal", "no_braces", "@149",
  "opt_values", "values", "expr_or_default", "opt_insert_update", "@150",
  "update", "@151", "@152", "update_list", "update_elem",
  "insert_update_list", "insert_update_elem", "opt_low_priority", "delete",
  "@153", "single_multi", "@154", "@155", "@156", "table_wild_list",
  "table_wild_one", "opt_wild", "opt_delete_options", "opt_delete_option",
  "truncate", "opt_table_sym", "show", "@157", "show_param", "@158",
  "show_engine_param", "master_or_binary", "opt_storage", "opt_db",
  "opt_full", "from_or_in", "binlog_in", "binlog_from", "wild_and_where",
  "describe", "@159", "@160", "describe_command", "opt_extended_describe",
  "opt_describe_column", "flush", "@161", "flush_options", "flush_option",
  "@162", "opt_table_list", "reset", "@163", "reset_options",
  "reset_option", "purge", "@164", "purge_options", "purge_option", "kill",
  "kill_option", "use", "load", "@165", "@166", "@167", "@168", "@169",
  "data_or_xml", "opt_local", "load_data_lock", "opt_duplicate",
  "opt_field_term", "field_term_list", "field_term", "opt_line_term",
  "line_term_list", "line_term", "opt_xml_rows_identified_by",
  "opt_ignore_lines", "lines_or_rows", "opt_field_or_var_spec",
  "fields_or_vars", "field_or_var", "opt_load_data_set_spec",
  "text_literal", "text_string", "param_marker", "signed_literal",
  "literal", "NUM_literal", "insert_ident", "table_wild", "order_ident",
  "simple_ident", "simple_ident_nospvar", "simple_ident_q", "field_ident",
  "table_ident", "table_ident_nodb", "IDENT_sys", "TEXT_STRING_sys",
  "TEXT_STRING_literal", "TEXT_STRING_filesystem", "ident", "label_ident",
  "ident_or_text", "user", "keyword", "keyword_sp", "set", "@170",
  "opt_option", "option_value_list", "option_type_value", "@171",
  "option_type", "option_type2", "opt_var_type", "opt_var_ident_type",
  "ext_option_value", "sys_option_value", "option_value",
  "internal_variable_name", "isolation_types", "text_or_password",
  "set_expr_or_default", "lock", "@172", "@173", "table_or_tables",
  "table_lock_list", "table_lock", "table_lock_info",
  "transactional_lock_mode", "opt_transactional_lock_timeout", "unlock",
  "@174", "handler", "@175", "handler_read_or_scan",
  "handler_scan_function", "handler_rkey_function", "@176",
  "handler_rkey_mode", "revoke", "revoke_command", "grant",
  "grant_command", "opt_table", "grant_privileges", "opt_privileges",
  "object_privilege_list", "object_privilege", "@177", "@178", "@179",
  "@180", "opt_and", "require_list", "require_list_element", "grant_ident",
  "user_list", "grant_list", "grant_user", "opt_column_list",
  "column_list", "column_list_id", "require_clause", "grant_options",
  "grant_option_list", "grant_option", "begin", "@181", "opt_work",
  "opt_chain", "opt_release", "opt_savepoint", "commit", "rollback",
  "savepoint", "release", "union_clause", "union_list", "@182",
  "union_opt", "union_order_or_limit", "@183", "order_or_limit",
  "union_option", "subselect", "@184", "subselect_init", "subselect_start",
  "subselect_end", "view_or_trigger_or_sp_or_event",
  "view_or_trigger_or_sp_or_event_tail", "definer",
  "view_replace_or_algorithm", "view_replace", "view_algorithm",
  "view_suid", "view_tail", "@185", "@186", "view_list_opt", "view_list",
  "view_select", "@187", "view_select_aux", "view_check_option",
  "trigger_tail", "@188", "@189", "@190", "sp_tail", "@191", "@192",
  "@193", "@194", "@195", "xa", "xid", "begin_or_start",
  "opt_join_or_resume", "opt_one_phase", "opt_suspend", "@196",
  "opt_migrate", "install", "uninstall", 0
};
#endif

# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
   token YYLEX-NUM.  */
static const yytype_uint16 yytoknum[] =
{
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
     595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
     605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
     615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
     625,   626,   627,   628,   629,   630,   631,   632,   633,   634,
     635,   636,   637,   638,   639,   640,   641,   642,   643,   644,
     645,   646,   647,   648,   649,   650,   651,   652,   653,   654,
     655,   656,   657,   658,   659,   660,   661,   662,   663,   664,
     665,   666,   667,   668,   669,   670,   671,   672,   673,   674,
     675,   676,   677,   678,   679,   680,   681,   682,   683,   684,
     685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
     695,   696,   697,   698,   699,   700,   701,   702,   703,   704,
     705,   706,   707,   708,   709,   710,   711,   712,   713,   714,
     715,   716,   717,   718,   719,   720,   721,   722,   723,   724,
     725,   726,   727,   728,   729,   730,   731,   732,   733,   734,
     735,   736,   737,   738,   739,   740,   741,   742,   743,   744,
     745,   746,   747,   748,   749,   750,   751,   752,   753,   754,
     755,   756,   757,   758,   759,   760,   761,   762,   763,   764,
     765,   766,   767,   768,   769,   770,   771,   772,   773,   774,
     775,   776,   777,   778,   779,   780,   781,   782,   783,   784,
     785,   786,   787,   788,   789,   790,   791,   792,   793,   794,
     795,   796,   797,   798,   799,   800,   801,   802,   803,   804,
     805,   806,   807,   808,   809,   810,   811,   812,   813,   814,
     815,   816,   817,   818,   124,    38,    45,    43,    42,    47,
      37,    94,   126,    40,    41,    44,    33,   123,   125,    64,
      46,    59,    58
};
# endif

/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
static const yytype_uint16 yyr1[] =
{
       0,   583,   584,   584,   585,   585,   586,   586,   586,   586,
     586,   586,   586,   586,   586,   586,   586,   586,   586,   586,
     586,   586,   586,   586,   586,   586,   586,   586,   586,   586,
     586,   586,   586,   586,   586,   586,   586,   586,   586,   586,
     586,   586,   586,   586,   586,   586,   586,   586,   586,   586,
     586,   586,   586,   586,   586,   586,   586,   587,   588,   588,
     589,   590,   590,   592,   591,   593,   593,   594,   594,   595,
     597,   596,   599,   598,   600,   600,   601,   601,   601,   601,
     601,   601,   601,   601,   601,   601,   601,   601,   601,   602,
     602,   602,   602,   604,   603,   605,   603,   606,   603,   607,
     603,   603,   603,   603,   603,   608,   609,   609,   610,   610,
     610,   610,   610,   610,   610,   612,   611,   614,   613,   613,
     615,   615,   615,   615,   616,   616,   617,   617,   618,   618,
     619,   619,   620,   620,   622,   621,   623,   623,   623,   623,
     623,   623,   623,   623,   623,   623,   623,   624,   625,   625,
     626,   627,   628,   629,   630,   631,   626,   632,   632,   633,
     633,   634,   634,   634,   634,   634,   634,   634,   635,   635,
     635,   636,   636,   638,   637,   639,   639,   640,   640,   641,
     641,   642,   642,   643,   643,   644,   645,   646,   646,   647,
     647,   648,   649,   649,   649,   649,   650,   650,   651,   651,
     652,   652,   654,   653,   653,   655,   653,   653,   657,   656,
     658,   658,   659,   659,   660,   661,   661,   662,   662,   663,
     663,   663,   663,   663,   664,   664,   665,   665,   666,   666,
     666,   666,   666,   666,   666,   666,   666,   666,   666,   668,
     667,   670,   669,   672,   671,   674,   673,   675,   676,   677,
     679,   678,   680,   681,   681,   681,   682,   682,   684,   685,
     686,   683,   687,   687,   687,   688,   688,   690,   691,   689,
     693,   692,   694,   694,   695,   695,   697,   698,   696,   700,
     701,   699,   702,   702,   704,   703,   705,   705,   707,   706,
     706,   708,   709,   706,   710,   706,   711,   711,   712,   712,
     712,   713,   714,   715,   716,   716,   717,   717,   718,   719,
     720,   720,   722,   721,   723,   723,   723,   724,   724,   724,
     726,   725,   727,   727,   727,   728,   728,   728,   728,   728,
     728,   728,   728,   730,   729,   731,   731,   731,   732,   732,
     732,   732,   732,   734,   733,   735,   735,   735,   736,   736,
     736,   736,   736,   736,   736,   738,   737,   739,   739,   739,
     740,   740,   740,   741,   742,   743,   744,   745,   746,   746,
     746,   747,   748,   749,   750,   751,   752,   753,   754,   755,
     756,   756,   757,   757,   758,   758,   759,   760,   759,   759,
     759,   762,   761,   763,   764,   761,   765,   766,   765,   767,
     765,   768,   768,   770,   769,   772,   771,   774,   775,   773,
     776,   777,   776,   778,   776,   779,   776,   780,   780,   781,
     781,   782,   782,   783,   784,   785,   786,   786,   787,   788,
     787,   789,   787,   790,   790,   791,   792,   793,   793,   794,
     794,   795,   795,   797,   798,   799,   800,   796,   801,   802,
     802,   802,   803,   803,   804,   804,   805,   806,   806,   807,
     808,   809,   809,   810,   810,   812,   811,   813,   814,   814,
     815,   815,   816,   816,   816,   816,   816,   816,   816,   816,
     818,   819,   817,   820,   820,   821,   821,   822,   822,   823,
     823,   824,   824,   825,   825,   826,   827,   827,   828,   828,
     829,   829,   830,   830,   830,   831,   831,   831,   831,   831,
     831,   831,   831,   831,   831,   831,   831,   831,   831,   831,
     831,   831,   831,   831,   831,   831,   831,   831,   831,   831,
     832,   833,   834,   835,   836,   836,   836,   837,   837,   837,
     837,   837,   837,   837,   838,   838,   838,   839,   839,   840,
     840,   841,   841,   841,   841,   842,   842,   843,   843,   844,
     844,   845,   845,   845,   845,   845,   846,   846,   847,   848,
     848,   849,   851,   850,   852,   852,   852,   852,   852,   852,
     852,   852,   852,   852,   852,   852,   852,   852,   852,   852,
     852,   852,   852,   852,   852,   852,   852,   852,   852,   852,
     852,   852,   852,   852,   852,   852,   852,   852,   852,   853,
     852,   854,   852,   852,   852,   855,   855,   855,   855,   855,
     855,   855,   855,   856,   857,   857,   858,   858,   859,   859,
     859,   859,   859,   860,   860,   860,   860,   860,   861,   861,
     861,   862,   862,   862,   863,   864,   864,   865,   865,   866,
     866,   866,   867,   867,   868,   868,   869,   869,   870,   870,
     871,   871,   871,   871,   871,   871,   871,   871,   871,   871,
     871,   871,   871,   871,   871,   872,   872,   873,   873,   874,
     874,   875,   875,   876,   876,   877,   877,   878,   878,   879,
     880,   880,   881,   881,   882,   882,   883,   883,   883,   883,
     883,   883,   884,   884,   885,   885,   885,   885,   887,   886,
     888,   888,   889,   890,   890,   890,   890,   891,   892,   893,
     893,   894,   895,   895,   896,   896,   897,   897,   899,   898,
     900,   900,   901,   901,   902,   902,   903,   903,   904,   904,
     904,   904,   904,   905,   905,   905,   905,   905,   906,   906,
     906,   907,   907,   908,   908,   909,   909,   910,   910,   910,
     911,   911,   911,   911,   912,   913,   913,   914,   914,   915,
     915,   916,   916,   917,   917,   917,   917,   918,   918,   918,
     919,   919,   920,   920,   921,   921,   922,   922,   923,   923,
     925,   924,   926,   924,   927,   924,   928,   924,   929,   924,
     930,   924,   931,   924,   924,   924,   924,   924,   924,   932,
     932,   932,   932,   933,   933,   934,   934,   935,   935,   936,
     936,   936,   936,   936,   936,   936,   936,   936,   936,   937,
     936,   938,   936,   939,   936,   940,   936,   936,   936,   941,
     942,   942,   944,   943,   945,   945,   945,   947,   946,   948,
     949,   948,   950,   950,   951,   952,   952,   953,   954,   954,
     954,   955,   954,   956,   957,   954,   954,   954,   954,   954,
     954,   954,   954,   954,   954,   954,   954,   954,   954,   958,
     958,   959,   959,   960,   960,   960,   961,   961,   961,   962,
     962,   962,   962,   964,   963,   963,   965,   963,   963,   966,
     967,   967,   969,   968,   970,   970,   971,   971,   971,   972,
     972,   973,   973,   975,   974,   977,   976,   978,   978,   978,
     980,   979,   981,   981,   981,   983,   982,   984,   984,   985,
     985,   986,   986,   986,   988,   987,   989,   991,   990,   992,
     992,   993,   993,   994,   994,   994,   994,   994,   994,   996,
     995,   997,   997,   997,   999,   998,  1000,   998,   998,  1001,
    1001,  1002,  1002,  1003,  1004,  1005,  1006,  1006,  1007,  1008,
    1008,  1010,  1009,  1011,  1011,  1012,  1014,  1013,  1015,  1015,
    1016,  1016,  1017,  1018,  1018,  1019,  1019,  1021,  1020,  1023,
    1024,  1022,  1025,  1025,  1025,  1025,  1025,  1026,  1026,  1027,
    1027,  1028,  1028,  1029,  1029,  1029,  1029,  1029,  1029,  1029,
    1029,  1029,  1029,  1030,  1030,  1030,  1031,  1031,  1031,  1032,
    1033,  1034,  1035,  1035,  1036,  1036,  1036,  1036,  1036,  1037,
    1037,  1039,  1038,  1040,  1040,  1041,  1042,  1041,  1043,  1043,
    1044,  1044,  1045,  1045,  1045,  1045,  1045,  1045,  1045,  1046,
    1046,  1046,  1046,  1046,  1046,  1047,  1047,  1047,  1047,  1047,
    1047,  1047,  1047,  1047,  1047,  1047,  1047,  1047,  1047,  1048,
    1048,  1049,  1049,  1050,  1050,  1050,  1051,  1051,  1051,  1051,
    1051,  1052,  1052,  1052,  1052,  1052,  1052,  1053,  1053,  1054,
    1054,  1055,  1055,  1056,  1056,  1057,  1057,  1058,  1058,  1058,
    1058,  1058,  1058,  1059,  1059,  1060,  1061,  1061,  1061,  1061,
    1061,  1061,  1061,  1061,  1061,  1061,  1061,  1061,  1061,  1061,
    1061,  1061,  1061,  1061,  1061,  1061,  1061,  1061,  1061,  1061,
    1061,  1061,  1061,  1061,  1061,  1061,  1061,  1062,  1062,  1062,
    1062,  1062,  1062,  1062,  1062,  1062,  1062,  1062,  1062,  1062,
    1062,  1062,  1062,  1062,  1062,  1062,  1062,  1062,  1062,  1062,
    1062,  1062,  1063,  1063,  1063,  1063,  1063,  1063,  1063,  1063,
    1063,  1063,  1063,  1063,  1063,  1063,  1063,  1063,  1063,  1063,
    1063,  1063,  1063,  1063,  1063,  1063,  1063,  1064,  1064,  1064,
    1064,  1064,  1064,  1064,  1064,  1064,  1064,  1064,  1064,  1064,
    1064,  1064,  1064,  1064,  1064,  1064,  1064,  1064,  1065,  1065,
    1065,  1065,  1065,  1065,  1065,  1065,  1067,  1066,  1066,  1068,
    1068,  1069,  1069,  1070,  1070,  1071,  1071,  1073,  1072,  1074,
    1074,  1075,  1076,  1076,  1076,  1076,  1076,  1076,  1076,  1077,
    1078,  1076,  1076,  1076,  1076,  1076,  1076,  1076,  1076,  1076,
    1076,  1076,  1079,  1076,  1081,  1080,  1082,  1082,  1082,  1083,
    1083,  1084,  1084,  1085,  1085,  1087,  1086,  1088,  1088,  1088,
    1088,  1088,  1088,  1088,  1088,  1088,  1088,  1088,  1089,  1089,
    1091,  1090,  1092,  1092,  1093,  1093,  1095,  1094,  1096,  1096,
    1097,  1097,  1098,  1098,  1099,  1099,  1100,  1100,  1101,  1102,
    1102,  1103,  1103,  1104,  1103,  1105,  1103,  1106,  1103,  1103,
    1107,  1103,  1108,  1103,  1103,  1109,  1103,  1110,  1103,  1103,
    1111,  1111,  1111,  1113,  1112,  1114,  1112,  1112,  1112,  1116,
    1115,  1118,  1119,  1117,  1120,  1121,  1122,  1122,  1123,  1123,
    1123,  1123,  1124,  1124,  1126,  1125,  1127,  1125,  1128,  1128,
    1129,  1130,  1129,  1132,  1131,  1133,  1133,  1134,  1134,  1135,
    1135,  1136,  1136,  1137,  1137,  1137,  1137,  1137,  1137,  1137,
    1137,  1137,  1137,  1137,  1137,  1137,  1138,  1138,  1138,  1138,
    1138,  1138,  1138,  1138,  1138,  1139,  1139,  1139,  1139,  1140,
    1140,  1140,  1141,  1141,  1142,  1142,  1143,  1144,  1143,  1145,
    1146,  1145,  1147,  1147,  1148,  1148,  1149,  1149,  1150,  1150,
    1150,  1151,  1152,  1152,  1153,  1154,  1154,  1156,  1155,  1157,
    1157,  1158,  1158,  1158,  1159,  1159,  1160,  1160,  1161,  1162,
    1162,  1162,  1163,  1163,  1163,  1163,  1164,  1164,  1165,  1165,
    1165,  1165,  1165,  1165,  1166,  1166,  1166,  1166,  1166,  1167,
    1167,  1167,  1167,  1167,  1168,  1168,  1168,  1168,  1169,  1170,
    1170,  1171,  1172,  1171,  1173,  1173,  1174,  1174,  1175,  1177,
    1176,  1178,  1178,  1179,  1179,  1181,  1180,  1183,  1182,  1182,
    1182,  1185,  1184,  1186,  1187,  1186,  1186,  1186,  1186,  1186,
    1186,  1186,  1186,  1186,  1186,  1186,  1188,  1188,  1189,  1190,
    1190,  1191,  1191,  1193,  1194,  1192,  1196,  1197,  1195,  1198,
    1198,  1198,  1198,  1199,  1199,  1200,  1200,  1201,  1202,  1202,
    1202,  1203,  1202,  1204,  1204,  1205,  1205,  1206,  1205,  1207,
    1205,  1208,  1208,  1209,  1209,  1210,  1211,  1211,  1212,  1212,
    1214,  1213,  1215,  1215,  1216,  1216,  1217,  1217,  1218,  1219,
    1218,  1221,  1222,  1220,  1223,  1223,  1224,  1225,  1225,  1226,
    1227,  1227,  1229,  1228,  1231,  1230,  1232,  1230,  1233,  1230,
    1234,  1234,  1235,  1235,  1236,  1236,  1237,  1237,  1238,  1238,
    1238,  1239,  1240,  1240,  1242,  1241,  1243,  1243,  1243,  1243,
    1243,  1243,  1243,  1243,  1243,  1243,  1243,  1243,  1243,  1244,
    1243,  1243,  1243,  1243,  1243,  1243,  1243,  1243,  1243,  1243,
    1243,  1243,  1243,  1243,  1243,  1243,  1243,  1243,  1243,  1243,
    1243,  1243,  1243,  1243,  1243,  1243,  1243,  1243,  1243,  1243,
    1243,  1243,  1245,  1245,  1245,  1246,  1246,  1247,  1247,  1248,
    1248,  1249,  1249,  1250,  1250,  1251,  1251,  1252,  1252,  1253,
    1253,  1253,  1255,  1254,  1256,  1254,  1257,  1257,  1258,  1258,
    1258,  1259,  1259,  1259,  1261,  1260,  1262,  1262,  1264,  1263,
    1263,  1263,  1263,  1263,  1263,  1263,  1263,  1263,  1263,  1263,
    1265,  1265,  1267,  1266,  1268,  1268,  1269,  1269,  1269,  1271,
    1270,  1272,  1273,  1273,  1274,  1275,  1275,  1275,  1276,  1278,
    1279,  1280,  1281,  1282,  1277,  1283,  1283,  1284,  1284,  1285,
    1285,  1285,  1286,  1286,  1286,  1287,  1287,  1288,  1288,  1289,
    1289,  1289,  1289,  1290,  1290,  1291,  1291,  1292,  1292,  1293,
    1293,  1294,  1294,  1295,  1295,  1296,  1296,  1296,  1297,  1297,
    1298,  1298,  1299,  1299,  1300,  1300,  1300,  1300,  1301,  1301,
    1301,  1302,  1303,  1303,  1303,  1304,  1304,  1304,  1304,  1304,
    1304,  1304,  1304,  1304,  1304,  1304,  1304,  1305,  1305,  1305,
    1305,  1305,  1306,  1306,  1307,  1307,  1308,  1309,  1309,  1310,
    1310,  1311,  1311,  1311,  1312,  1312,  1312,  1312,  1313,  1313,
    1313,  1314,  1315,  1315,  1316,  1317,  1318,  1319,  1319,  1319,
    1320,  1320,  1321,  1321,  1321,  1322,  1322,  1322,  1323,  1323,
    1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,
    1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,
    1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,
    1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,
    1323,  1323,  1323,  1323,  1323,  1323,  1323,  1323,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,  1324,
    1324,  1326,  1325,  1327,  1327,  1328,  1328,  1330,  1329,  1331,
    1331,  1331,  1331,  1332,  1332,  1333,  1333,  1333,  1333,  1334,
    1334,  1334,  1334,  1335,  1335,  1336,  1336,  1337,  1337,  1337,
    1337,  1337,  1337,  1337,  1338,  1338,  1338,  1339,  1339,  1339,
    1339,  1340,  1340,  1340,  1341,  1341,  1341,  1341,  1341,  1343,
    1344,  1342,  1345,  1345,  1346,  1346,  1347,  1348,  1348,  1348,
    1348,  1348,  1349,  1349,  1350,  1350,  1352,  1351,  1353,  1353,
    1354,  1353,  1355,  1355,  1356,  1356,  1357,  1357,  1357,  1357,
    1358,  1357,  1359,  1359,  1359,  1359,  1359,  1360,  1361,  1361,
    1361,  1361,  1362,  1363,  1363,  1363,  1364,  1364,  1365,  1365,
    1366,  1366,  1367,  1367,  1369,  1368,  1370,  1368,  1371,  1368,
    1372,  1368,  1368,  1368,  1368,  1368,  1368,  1368,  1368,  1368,
    1368,  1368,  1368,  1368,  1368,  1368,  1368,  1368,  1368,  1368,
    1368,  1368,  1368,  1368,  1368,  1368,  1368,  1373,  1373,  1374,
    1374,  1375,  1375,  1375,  1376,  1376,  1376,  1376,  1377,  1377,
    1378,  1378,  1379,  1379,  1379,  1380,  1380,  1381,  1381,  1382,
    1383,  1383,  1383,  1383,  1383,  1384,  1384,  1385,  1385,  1386,
    1386,  1386,  1386,  1386,  1388,  1387,  1389,  1389,  1390,  1390,
    1390,  1391,  1391,  1391,  1392,  1392,  1393,  1394,  1394,  1395,
    1396,  1397,  1397,  1399,  1398,  1400,  1400,  1400,  1402,  1401,
    1403,  1403,  1404,  1404,  1404,  1405,  1406,  1405,  1407,  1408,
    1409,  1410,  1410,  1411,  1411,  1411,  1411,  1412,  1412,  1413,
    1413,  1413,  1414,  1415,  1415,  1415,  1416,  1416,  1416,  1418,
    1419,  1417,  1420,  1420,  1421,  1421,  1423,  1422,  1424,  1424,
    1425,  1425,  1425,  1425,  1427,  1428,  1429,  1426,  1431,  1430,
    1432,  1433,  1434,  1435,  1430,  1436,  1436,  1436,  1436,  1436,
    1436,  1437,  1437,  1437,  1438,  1438,  1439,  1439,  1439,  1440,
    1440,  1441,  1442,  1441,  1443,  1443,  1444,  1445
};

/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
static const yytype_uint8 yyr2[] =
{
       0,     2,     1,     2,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     3,     1,     1,
       4,     1,     2,     0,     4,     0,     2,     3,     1,     2,
       0,     3,     0,     5,     1,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     3,     1,     3,
       3,     3,     3,     0,     7,     0,    12,     0,     6,     0,
       3,     4,     4,     3,     2,    10,     1,     3,     2,     2,
       2,     2,     2,     2,     2,     0,    12,     0,     6,     2,
       0,     1,     3,     1,     0,     2,     0,     2,     0,     1,
       3,     4,     0,     2,     0,     2,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     0,     3,     1,
       4,     0,     0,     0,     0,     0,    12,     0,     2,     0,
       2,     2,     2,     2,     2,     3,     3,     1,     1,     1,
       2,     3,     3,     0,     4,     0,     3,     0,     1,     3,
       1,     0,     1,     3,     1,     0,     3,     0,     1,     3,
       1,     4,     0,     1,     1,     1,     0,     3,     2,     3,
       0,     3,     0,     5,     5,     0,     7,     5,     0,     2,
       1,     1,     1,     3,     1,     1,     3,     0,     1,     1,
       1,     1,     2,     1,     1,     3,     0,     2,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
       5,     0,     2,     0,     3,     0,     2,     2,     2,     2,
       0,     6,     2,     0,     2,     1,     1,     3,     0,     0,
       0,     7,     0,     2,     2,     1,     1,     0,     0,     8,
       0,     6,     1,     2,     1,     2,     0,     0,     6,     0,
       0,     6,     0,     2,     0,     5,     0,     1,     0,     5,
       4,     0,     0,     8,     0,     7,     1,     1,     1,     1,
       1,     2,     4,     5,     0,     4,     4,     4,     3,     3,
       2,     2,     0,     2,     1,     2,     3,     1,     1,     1,
       0,     2,     1,     2,     3,     1,     1,     1,     1,     1,
       1,     1,     1,     0,     2,     1,     2,     3,     1,     1,
       1,     1,     1,     0,     2,     1,     2,     3,     1,     1,
       1,     1,     1,     1,     1,     0,     2,     1,     2,     3,
       1,     1,     1,     2,     2,     2,     1,     1,     1,     1,
       2,     3,     3,     3,     3,     3,     3,     3,     3,     4,
       0,     1,     1,     1,     1,     1,     2,     0,     4,     2,
       4,     0,     6,     0,     0,     6,     0,     0,     5,     0,
       7,     0,     1,     0,     3,     0,     3,     0,     0,     7,
       5,     0,     4,     0,     3,     0,     3,     0,     1,     0,
       1,     1,     3,     1,     5,     5,     0,     2,     0,     0,
       7,     0,     9,     1,     3,     1,     1,     0,     2,     0,
       3,     1,     3,     0,     0,     0,     0,     9,     1,     0,
       4,     5,     1,     1,     1,     3,     3,     1,     3,     1,
       1,     0,     3,     1,     3,     0,     4,     1,     0,     1,
       2,     1,     3,     4,     3,     3,     3,     4,     4,     3,
       0,     0,     6,     0,     1,     0,     1,     1,     2,     1,
       1,     0,     1,     1,     2,     1,     0,     3,     0,     1,
       1,     2,     1,     2,     3,     3,     3,     3,     3,     3,
       3,     3,     3,     3,     3,     3,     3,     5,     1,     1,
       3,     4,     4,     2,     2,     2,     2,     3,     3,     3,
       4,     4,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     2,     0,
       1,     1,     1,     1,     1,     1,     3,     1,     1,     2,
       2,     7,     8,     8,     2,     2,     0,     1,     2,     0,
       1,     2,     0,     4,     3,     3,     3,     1,     4,     1,
       1,     5,     2,     5,     2,     4,     1,     5,     5,     4,
       3,     1,     1,     1,     1,     1,     2,     1,     1,     1,
       2,     3,     2,     3,     2,     2,     3,     3,     3,     0,
       6,     0,     6,     2,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     2,     2,     1,     2,     1,
       2,     3,     2,     1,     1,     1,     1,     1,     1,     1,
       2,     0,     3,     1,     5,     0,     1,     2,     1,     1,
       1,     1,     0,     3,     0,     1,     0,     1,     2,     1,
       1,     2,     2,     2,     2,     2,     2,     4,     1,     3,
       2,     1,     2,     2,     2,     2,     1,     2,     1,     1,
       1,     1,     1,     0,     2,     1,     1,     1,     1,     1,
       0,     2,     1,     1,     0,     1,     0,     2,     1,     2,
       3,     2,     0,     1,     0,     1,     1,     2,     0,     4,
       1,     1,     1,     0,     1,     2,     1,     1,     2,     1,
       3,     3,     1,     1,     0,     2,     0,     1,     0,     4,
       1,     4,     3,     1,     0,     1,     2,     1,     3,     3,
       2,     2,     2,     1,     1,     2,     2,     2,     1,     2,
       2,     2,     2,     1,     1,     0,     1,     1,     1,     1,
       0,     1,     1,     1,     0,     1,     2,     0,     1,     1,
       2,     2,     2,     1,     3,     2,     3,     1,     1,     1,
       4,     2,     1,     4,     0,     1,     0,     2,     1,     3,
       0,     6,     0,     5,     0,     5,     0,     5,     0,     5,
       0,     4,     0,    10,     3,     4,     3,     3,     7,     0,
       3,     1,     4,     0,     3,     0,     2,     0,     1,     0,
       2,     2,     2,     2,     1,     1,     1,     3,     4,     0,
       7,     0,     6,     0,     5,     0,     6,     4,     1,     2,
       1,     1,     0,     5,     0,     3,     2,     0,     5,     0,
       0,     6,     1,     3,     1,     1,     3,     2,     3,     2,
       4,     0,     6,     0,     0,     8,     4,     4,     3,     3,
       2,     2,     6,     5,     3,     5,     1,     1,     1,     0,
       1,     0,     1,     0,     1,     1,     0,     2,     1,     0,
       1,     1,     1,     0,     5,     3,     0,     5,     3,     3,
       0,     3,     0,     2,     1,     3,     0,     1,     1,     0,
       2,     1,     3,     0,     4,     0,     6,     1,     1,     3,
       0,     5,     0,     1,     1,     0,     6,     0,     1,     1,
       2,     1,     1,     1,     0,     6,     2,     0,     5,     0,
       1,     1,     2,     1,     1,     1,     1,     1,     2,     0,
       6,     0,     1,     1,     0,     4,     0,     4,     4,     3,
       5,     1,     3,     3,     3,     5,     1,     3,     2,     1,
       1,     0,     6,     1,     3,     3,     0,     2,     0,     4,
       0,     2,     1,     2,     4,     2,     3,     0,     3,     0,
       0,     6,     2,     1,     1,     2,     2,     8,     4,     0,
       1,     2,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     0,     2,     4,     3,     1,     1,     4,
       0,     0,     1,     1,     0,     2,     2,     1,     1,     0,
       2,     0,     3,     0,     3,     3,     0,     3,     0,     3,
       2,     1,     3,     4,     3,     4,     3,     4,     1,     3,
       4,     3,     3,     6,     1,     5,     6,     5,     7,     6,
       8,     5,     6,     4,     4,     5,     3,     4,     1,     3,
       1,     3,     1,     3,     3,     1,     3,     3,     4,     4,
       1,     3,     3,     3,     3,     3,     1,     3,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     2,     1,     1,     1,     1,
       1,     3,     1,     1,     1,     1,     3,     2,     2,     2,
       2,     3,     3,     5,     6,     4,     4,     7,     2,     6,
       5,     6,     6,     4,     4,     4,     1,     4,     6,     2,
       4,     4,     4,    10,     6,     4,     4,     6,     4,     4,
       4,     6,     4,     7,     7,     7,     6,     6,     6,     6,
       3,     4,     6,     8,     2,     2,     4,     7,     7,     6,
       6,     2,     4,     6,     6,     8,     8,     6,     8,     6,
       2,     4,     8,     8,     2,     2,     2,     4,     4,     4,
       4,     3,     8,     4,     6,     4,     4,     4,     6,     8,
       4,     6,     4,     6,     5,     8,     7,     1,     6,     4,
       4,     4,     4,     4,     6,     4,     0,     5,     6,     2,
       3,     0,     4,     0,     3,     0,     1,     0,     2,     1,
       3,     4,     4,     5,     4,     4,     4,     5,     4,     0,
       0,     7,     4,     5,     4,     5,     4,     4,     4,     4,
       4,     5,     0,     8,     0,     3,     3,     1,     4,     0,
       1,     0,     2,     0,     1,     0,     3,     2,     3,     2,
       1,     2,     1,     2,     1,     1,     1,     2,     0,     1,
       0,     2,     1,     3,     1,     3,     0,     2,     1,     3,
       0,     1,     0,     2,     4,     5,     1,     1,     1,     1,
       3,     3,     3,     0,     6,     0,     6,     0,     8,     4,
       0,     8,     0,    10,     6,     0,     8,     0,    10,     6,
       1,     2,     2,     0,     4,     0,    11,     3,     6,     0,
       3,     0,     0,     5,     0,     1,     0,     1,     0,     2,
       3,     3,     1,     1,     0,     7,     0,     7,     1,     2,
       0,     0,     2,     0,     2,     0,     1,     1,     1,     1,
       3,     1,     3,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
       1,     1,     0,     2,     0,     1,     0,     0,     3,     0,
       0,     3,     2,     0,     0,     4,     4,     2,     0,     2,
       2,     3,     3,     1,     2,     0,     1,     0,     4,     4,
       2,     0,     1,     1,     0,     1,     0,     1,     2,     1,
       3,     3,     1,     1,     1,     1,     0,     2,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     0,     0,     6,     0,     1,     3,     1,     3,     0,
       2,     3,     1,     2,     1,     0,     3,     0,     5,     2,
       1,     0,     3,     6,     0,     6,     4,     4,     4,     4,
       5,     4,     4,     5,     6,     4,     1,     3,     1,     0,
       2,     0,     1,     0,     0,     8,     0,     0,     6,     0,
       1,     1,     1,     1,     1,     2,     1,     1,     1,     3,
       4,     0,     3,     3,     1,     2,     2,     0,     3,     0,
       5,     3,     1,     3,     1,     3,     1,     1,     0,     1,
       0,     4,     0,     1,     3,     1,     1,     1,     0,     0,
       6,     0,     0,    11,     3,     1,     3,     3,     1,     3,
       0,     1,     0,     4,     0,     6,     0,     5,     0,     6,
       1,     3,     3,     5,     0,     2,     0,     2,     1,     1,
       1,     3,     0,     1,     0,     3,     2,     4,     4,     3,
       4,     4,     1,     3,     3,     6,    16,     2,     2,     0,
       6,     5,     2,     2,     1,     1,     1,     5,     5,     2,
       2,     3,     2,     3,     2,     2,     1,     3,     4,     3,
       3,     2,     2,     3,     3,     3,     3,     3,     3,     3,
       3,     2,     1,     1,     1,     1,     1,     0,     1,     0,
       2,     0,     1,     1,     1,     0,     2,     0,     2,     0,
       2,     2,     0,     4,     0,     4,     1,     1,     0,     1,
       1,     0,     1,     1,     0,     4,     3,     1,     0,     3,
       4,     2,     1,     1,     1,     1,     1,     1,     1,     1,
       0,     1,     0,     3,     3,     1,     1,     1,     2,     0,
       3,     3,     2,     2,     3,     0,     1,     1,     2,     0,
       0,     0,     0,     0,    22,     1,     1,     0,     1,     0,
       1,     1,     0,     1,     1,     0,     2,     2,     1,     3,
       4,     3,     3,     0,     2,     2,     1,     3,     3,     0,
       4,     0,     3,     1,     1,     0,     3,     2,     3,     1,
       1,     2,     0,     2,     1,     1,     2,     2,     1,     1,
       1,     1,     1,     2,     2,     1,     1,     1,     1,     1,
       1,     1,     2,     2,     2,     2,     2,     1,     1,     1,
       1,     1,     1,     1,     3,     5,     1,     1,     1,     1,
       1,     3,     4,     5,     1,     5,     3,     2,     1,     3,
       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     3,     2,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     0,     4,     0,     1,     1,     3,     0,     2,     1,
       1,     1,     1,     0,     1,     0,     1,     1,     1,     0,
       2,     2,     2,     1,     2,     4,     5,     4,     6,     2,
       3,     3,     3,     5,     1,     3,     3,     2,     2,     2,
       1,     1,     4,     4,     1,     1,     1,     1,     1,     0,
       0,     5,     1,     1,     1,     3,     3,     1,     1,     2,
       2,     4,     1,     1,     0,     1,     0,     3,     4,     3,
       0,     7,     1,     2,     1,     1,     1,     1,     1,     1,
       0,     5,     1,     1,     1,     1,     1,     3,     6,     6,
       6,     7,     3,     8,     8,     8,     0,     1,     1,     2,
       0,     1,     1,     3,     0,     3,     0,     3,     0,     3,
       0,     3,     1,     1,     1,     1,     1,     1,     1,     1,
       1,     1,     1,     2,     2,     1,     3,     2,     2,     2,
       2,     2,     2,     2,     2,     1,     1,     0,     1,     3,
       1,     2,     2,     2,     1,     3,     3,     1,     1,     3,
       1,     3,     4,     5,     1,     0,     3,     3,     1,     1,
       0,     2,     2,     2,     2,     0,     2,     2,     1,     2,
       2,     2,     2,     2,     0,     3,     0,     1,     0,     3,
       2,     0,     1,     2,     0,     1,     4,     4,     5,     2,
       3,     0,     1,     0,     4,     0,     1,     1,     0,     2,
       2,     1,     0,     1,     1,     4,     0,     7,     1,     0,
       0,     2,     3,     1,     1,     1,     1,     0,     3,     1,
       2,     1,     2,     3,     3,     3,     0,     3,     3,     0,
       0,     8,     0,     3,     1,     3,     0,     3,     2,     4,
       0,     3,     4,     4,     0,     0,     0,    16,     0,     6,
       0,     0,     0,     0,    12,     4,     4,     3,     4,     3,
       2,     1,     3,     5,     1,     1,     0,     1,     1,     0,
       2,     0,     0,     3,     0,     2,     5,     3
};

/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
   means the default is an error.  */
static const yytype_uint16 yydefact[] =
{
       0,  2327,   951,     0,  2284,     0,     0,     0,     0,     0,
       0,  2286,    99,    58,  1562,  1656,  1657,  1481,  1501,     2,
       0,   951,   147,     0,    70,  1503,     0,  1695,     0,  2159,
     951,   405,     0,  1689,     0,     0,   951,  1506,  1682,   913,
     147,  2286,     0,   989,  2113,  1584,     0,     0,     0,  1582,
       0,  2176,  1551,     0,     0,     0,     0,     0,     4,    16,
       0,    35,    21,    25,    11,    15,    10,    33,     6,    49,
      50,    42,     8,    13,    39,     7,     9,    12,    31,    38,
      32,    34,    46,   982,    19,    20,    26,    40,    54,    17,
      51,    48,    18,  1658,    22,    41,    36,    28,    55,    29,
      47,    30,    53,    24,    43,    23,     5,    14,    44,    45,
      37,    56,    27,    52,     0,   817,     0,     0,   882,     0,
       0,     0,     0,     0,   800,  2327,   953,   952,     0,   915,
    2286,  1794,   936,     0,  1858,  1859,  1860,  1861,  1862,  1863,
    1864,  1809,  1865,  1866,  1868,  1867,  1869,  1870,  1810,  1811,
    1871,  1872,  1874,  1873,  1875,  1812,  1813,  1876,  1877,  1878,
    1814,  1815,  1879,  1880,  1816,  1881,  1882,  1883,  1885,  1817,
    1886,  1818,  1887,  1888,  1889,  1890,  1891,  1892,  1819,  1893,
    1894,  1896,  1895,  1897,  1898,  1899,  1820,  1900,  1901,  1902,
    1903,  1904,  1905,  1906,  1821,  1907,  1908,  1909,  1925,  1822,
    1910,  1913,  1912,  1911,  1914,  1915,  1917,  1916,  1918,  1919,
    1823,  1920,  1921,  1922,  1923,  1884,  1927,  1928,  1929,  1824,
    1924,  1930,  1926,  2091,  1932,  1931,  1933,  1935,  1934,  1825,
    1936,  1826,  1827,  1937,  1938,  1792,  1939,  1793,  1941,  1942,
    1943,  1946,  1828,  1940,  1944,  1945,  1947,  1829,  1948,  1949,
    1950,  1951,  1952,  1953,  1954,  1955,  1956,  1957,  1967,  1960,
    1962,  1963,  1965,  1961,  1966,  1970,  1969,  1971,  1972,  1973,
    1968,  1959,  1964,  1974,  1975,  1958,  1976,  1977,  1978,  1979,
    1980,  1981,  1982,  1983,  1984,  1985,  1986,  1988,  1987,  1989,
    1990,  1991,  1992,  1993,  1995,  1994,  1996,  1997,  1998,  2000,
    1999,  2002,  2003,  2004,  1830,  2001,  2005,  2006,  2007,  2008,
    2009,  1831,  1832,  1833,  2010,  2011,  1834,  2012,  2013,  2014,
    1835,  2015,  2016,  2018,  2017,  2019,  2020,  1836,  1837,  2021,
    2022,  2023,  2024,  2025,  2026,  2027,  2028,  1798,  2029,  2030,
    2032,  2031,  2033,  2034,  2035,  2036,  2037,  1838,  2038,  1839,
    2039,  2040,  1840,  2041,  1841,  2042,  2043,  2044,  1842,  2045,
    2046,  2047,  2048,  2049,  2050,  1843,  2051,  2052,  1844,  2054,
    2053,  2055,  1845,  2057,  2058,  1846,  2056,  1848,  2059,  1847,
    1849,  2060,  2062,  2061,  2063,  2064,  2065,  1850,  2066,  1851,
    2067,  2068,  2069,  2070,  2072,  2071,  2073,  2074,  2075,  2076,
    2077,  2078,  2079,  2080,  2084,  2085,  2086,  2087,  2081,  2082,
    2083,  1852,  2088,  2089,  2090,  2092,  2093,  2095,  2094,  1853,
    1854,  2096,  2097,  1857,  2098,  2099,  2102,  2100,  2101,  2104,
    2103,  2105,  2106,  2107,  1855,  2108,  1856,  2109,  2110,   173,
    1797,   149,  1799,  1808,     0,  2163,  2162,   920,   937,  2287,
    2288,   496,   762,     0,     0,   763,     0,   495,   761,   147,
    2327,   104,     0,   492,   493,     0,  1576,  1280,  1499,  1499,
    1499,     0,     0,  1499,  1499,     0,  1502,  1499,   147,  1499,
       0,    63,  1664,     0,     0,     0,     0,  1791,     0,  1509,
       0,  1696,  1697,     0,  1705,     0,  1706,  1699,     0,     0,
       0,     0,     0,     0,   956,   147,   954,     0,  1560,     0,
       0,     0,  2288,  2299,   983,   987,   999,  2114,  2111,  1641,
     902,   902,   902,   900,   902,  1583,     0,     0,     0,  1560,
    1698,  2374,     0,     0,     0,  2370,     0,  2375,     0,   989,
       0,     0,     1,     3,     0,  1921,  2014,  1654,  1652,  1788,
       0,   792,   818,     0,   796,     0,   794,  1804,  1803,  1802,
       0,   807,   806,   804,     0,   366,     0,     0,  2336,   798,
     934,     0,  2285,     0,   966,   976,   175,     0,    72,     0,
       0,     0,  2291,     0,     0,     0,     0,   103,     0,     0,
       0,   100,   549,  2327,  2329,  2331,   496,   494,     0,  1580,
    1579,  1578,     0,  1576,  1482,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  1637,     0,     0,     0,  1499,    65,
       0,  2210,  2225,  2226,  2222,  2227,  2245,  2228,  2232,     0,
    2224,  2216,     0,  2231,  2220,  2229,     0,  2214,     0,  2230,
    2235,  2246,  2218,  2223,  2202,     0,  2208,  2212,  1790,  1389,
    2179,  2180,     0,    71,  1511,  1512,  1510,   881,     0,  1859,
    1809,  1870,     0,  1761,     0,     0,     0,  1290,     0,  1814,
       0,  1881,  1883,  1819,     0,     0,  1029,  1029,  1029,     0,
       0,     0,  1898,  1899,  1770,     0,     0,     0,  1758,  1771,
    1932,  1933,     0,  1760,  1938,     0,     0,     0,     0,  1952,
    1768,  1286,     0,  1983,  1985,     0,     0,  1989,  1990,  1991,
    1992,  1745,  1096,     0,  1029,  1757,  1767,  2007,  1751,  2015,
    2019,  2020,     0,  2026,     0,     0,  2044,     0,  2049,  2052,
       0,     0,  2069,     0,     0,  1029,  1744,  2084,  2085,  2086,
    2087,     0,  1759,  1852,  1769,     0,  2098,  1029,  1029,  1029,
       0,     0,     0,  2105,  2106,  2110,     0,     0,     0,     0,
    1095,     0,  1254,     0,  1694,  1031,  1036,  1041,  1048,  1054,
    1068,  1070,  1072,  1075,  1080,  1086,     0,  1136,  1088,  1107,
    1108,  1110,  1207,  1109,  1115,  1114,  1755,  1113,  1112,  1756,
    1106,  1778,  1797,  1777,     0,  1709,  2160,   949,   417,   406,
       0,  1636,  1635,     0,  1690,  2300,     0,     0,     0,   925,
    1514,  1561,     0,  1513,  1687,     0,  1686,  1683,  1685,     0,
    2210,  2197,     0,  2294,  2291,  2301,  1012,  1005,  1004,  1007,
    1008,  1011,  1009,  1010,  1006,  1003,  1020,  1000,  1002,  2117,
    1604,     0,     0,   678,     0,  1649,     0,  1605,     0,     0,
    1649,     0,  1424,  1639,  1642,     0,  2126,  1616,   759,   758,
     757,  2127,  1635,     0,     0,  1592,  1606,     0,  2128,     0,
    1638,     0,  1424,  1649,     0,  1585,     0,     0,     0,     0,
     896,   906,   898,   893,     0,   899,   895,  1581,  1498,  2387,
    2177,   881,  1750,  1749,  1795,  2371,  1748,  2379,  2381,  2367,
    2369,  2376,   985,     0,  2305,    57,     0,  1661,  2334,  2335,
    2333,   694,  1029,  1805,  2328,   157,   805,     0,   367,   157,
       0,     0,     0,     0,     0,   368,   369,   301,   790,   802,
       0,     0,   801,  2336,     0,   917,     0,   918,     0,     0,
     968,   978,   177,   174,   148,     0,   922,  1496,   939,  2290,
       0,     0,  2292,  2296,  1094,  1093,     0,    97,   102,     0,
       0,     0,  2264,   101,  2260,  2332,   550,   496,  1020,  1020,
    2326,  1020,  2321,  2323,  2324,  2325,  2336,  2330,     0,   764,
       0,  1563,  1566,  1570,  1574,  1577,  1282,  1281,  1500,  1486,
    1491,  1487,     0,  1637,  1488,  1495,   380,     0,  1492,  2258,
    1489,   883,     0,     0,    64,  1678,  1672,  1674,  1677,  1673,
       0,  1679,  1676,  1675,  2163,  1665,  1667,  1668,  2211,  2209,
    2243,  2242,     0,  2244,  2240,  2233,  2265,  2237,  2265,  2239,
    2238,  2265,  2234,  2241,  2265,  2206,     0,  1390,  1391,     0,
    2178,     0,  1789,     0,     0,     0,     0,  1394,  1128,  1394,
    1394,  1394,  1291,     0,     0,     0,  1280,  1280,     0,     0,
       0,  1394,     0,  1164,  1139,     0,  1165,     0,     0,     0,
       0,     0,  1764,     0,     0,     0,     0,  1280,     0,  1259,
       0,     0,     0,  1105,     0,  1280,  1286,     0,  1284,     0,
    1394,     0,     0,  1394,     0,     0,  1280,  1280,  1280,  1040,
       0,  1171,     0,     0,     0,  1280,     0,     0,     0,     0,
       0,     0,     0,     0,  1394,  1394,     0,     0,  1394,     0,
    1180,     0,  1766,     0,     0,     0,  1765,     0,     0,  1763,
    1762,  1746,     0,  1184,  1186,  1185,     0,  1394,  1394,     0,
       0,     0,  1118,  1117,  1119,  2319,     0,     0,     0,     0,
       0,     0,     0,  1033,  1038,  1097,     0,  1098,  1099,     0,
    1100,  1101,  1102,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1120,  1364,  1365,  1366,  1367,  1376,  1379,  1368,
    1369,  1370,  1378,  1371,  1372,  1373,  1380,  1381,  1382,  1374,
    1383,  1377,  1375,  1384,     0,  1363,     0,     0,  1747,  1216,
       0,   971,  1710,  1711,  1707,     0,     0,   418,   415,   413,
     426,     0,     0,    60,    61,     0,   957,     0,   958,     0,
     955,   961,     0,     0,     0,  1517,  1507,  1516,  1688,     0,
     914,  2209,  2206,  2295,     0,  2297,  2312,   988,  2302,  1018,
     990,  1017,     0,  1001,  2112,  2115,  2123,  1631,  1645,   677,
       0,     0,  1615,  1602,     0,   496,     0,     0,     0,     0,
       0,     0,  1586,     0,     0,   533,     0,  1610,  1425,  1643,
    1644,  1649,     0,     0,  1649,     0,  1621,     0,  1639,     0,
    1649,  1598,  1622,  1639,  1609,  1614,     0,  1597,  1603,     0,
    1612,  1639,  1639,  1649,  1649,   909,   908,   907,   903,   904,
     909,     0,  1323,     0,     0,  2368,  2382,  2366,  2377,  2378,
    2365,   986,  2306,   984,  2307,     0,  1655,  1653,  1662,  1663,
     695,   694,   487,   490,   489,     0,  1807,     0,   797,     0,
     355,   795,     0,     0,   333,   312,   333,   370,   694,   809,
       0,     0,   799,   939,     0,     0,   970,   965,   969,   967,
     754,   753,     0,   977,     0,   178,   180,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    73,    74,    88,   924,   923,     0,   921,
     947,   946,   944,     0,   945,   943,   938,   940,   941,  2289,
    2293,   497,   694,   343,     0,   304,     0,     0,     0,     0,
       0,     0,  2322,    93,   765,     0,  1568,  1564,  1574,     0,
       0,     0,  1389,     0,  1484,   380,   383,   382,  1493,   381,
    1538,     0,   885,   884,  1490,   883,     0,    66,    68,  1671,
       0,     0,  1680,  2236,     0,  2217,  2221,  2215,  2219,     0,
       0,  2207,     0,  2213,  1393,  1928,  1999,     0,  1396,  2182,
    1504,  2386,     0,     0,  1395,  1394,     0,  1265,     0,     0,
       0,     0,  1292,     0,     0,     0,     0,     0,     0,     0,
    1239,     0,  1265,  1030,     0,  1191,     0,     0,     0,     0,
       0,  1777,  2319,     0,     0,     0,  1387,  1385,  1388,  1386,
       0,  1260,  1252,     0,     0,     0,     0,     0,     0,     0,
    1287,  1288,  1394,     0,     0,     0,  1394,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1394,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1160,     0,  1780,  1779,     0,     0,     0,   724,
       0,   989,     0,  1122,  1280,  1121,     0,  2129,  1255,  1257,
       0,  1035,  1032,  1037,  1051,  1044,  1049,  1042,  1046,     0,
    1103,  1864,  1052,     0,     0,     0,  1403,  1066,     0,  1069,
       0,     0,     0,     0,  1071,  1073,  1074,  1077,  1136,  1076,
    1136,  1084,  1085,  1081,  1082,  1083,  1087,     0,  1111,  1116,
    1227,  1781,     0,  1708,     0,  1389,  2161,  2164,   939,     0,
       0,     0,   407,   411,     0,    62,     0,     0,  1691,     0,
       0,     0,     0,     0,   927,  1515,     0,  1684,     0,     0,
       0,     0,  2298,  2314,  2313,  2303,  1020,  1415,  1021,  1023,
    1022,  1777,  2117,  2120,  2121,  2124,  2122,     0,  2119,  2118,
    2133,     0,  1647,  1650,  1651,     0,     0,  1630,  1624,  1623,
    1619,  1625,  1620,  1634,  1633,  1632,  1594,  1593,  1434,  1435,
    1433,  1428,  1429,  1432,  1589,  1640,  1629,  1627,  1617,     0,
    1649,  1628,  1626,  1649,  1639,     0,  1649,  1649,  1611,  1613,
       0,   897,   906,   894,   901,  1335,  1334,     0,  1299,     0,
    1298,  1297,  1296,     0,  1334,  2372,  2380,  2384,     0,  1424,
    2311,  2309,   488,  1538,  1538,  1806,     0,     0,     0,     0,
       0,     0,     0,   158,   167,     0,     0,   310,   311,   309,
    1637,     0,     0,     0,     0,     0,     0,     0,     0,   106,
     363,   306,  1637,   302,     0,   307,   879,   879,     0,  1538,
    1538,   879,  1538,     0,     0,  1538,  1538,     0,     0,  1538,
       0,     0,   879,     0,  1538,   877,     0,     0,  1538,  1538,
    1538,  1538,   879,     0,     0,  1538,   403,  1538,     0,     0,
     889,     0,     0,  1538,     0,     0,  1538,  1538,   825,   876,
     500,   518,   519,   791,   824,   826,   838,   401,     0,   855,
     878,     0,   811,   813,  2337,  2338,  2339,   935,   916,   919,
    1355,   176,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1497,   948,   942,    98,   694,   308,  1637,     0,     0,   320,
       0,  2261,   115,  2360,     0,     0,   498,     0,     0,   766,
       0,     0,  1396,     0,  1571,  1323,  1575,  1574,  1572,  1283,
    1485,  1494,  1536,  1537,  1539,     0,  2259,  1483,    69,     0,
       0,  1666,  1681,  1669,  2269,     0,  2268,  2254,  2257,  1788,
       0,     0,     0,  2192,  2186,  2193,  2195,  2189,  2194,  2196,
    2187,  2188,  2183,  2190,  1397,  1426,     0,     0,  1187,     0,
    1232,     0,  1234,  1235,  1236,     0,     0,     0,     0,     0,
    1188,     0,  1137,  1189,  1190,     0,     0,     0,  1280,  1238,
       0,  1166,     0,     0,  1140,  1141,  1133,     0,  1125,     0,
    1209,     0,  1280,  1142,     0,     0,     0,  1210,  1285,     0,
       0,     0,  1244,  1193,  1145,     0,  1242,     0,  1146,  1211,
    1212,  1213,  1172,  1195,  1196,     0,  1215,     0,  1197,     0,
       0,  1200,     0,  1280,  1148,  1248,  1246,     0,     0,     0,
       0,  1250,  1181,  1150,     0,     0,     0,  1149,     0,     0,
       0,     0,     0,     0,     0,  1152,     0,  1134,  1247,  1249,
    1202,     0,     0,     0,     0,  1161,  2318,  2320,     0,     0,
    1126,     0,     0,     0,     0,     0,  1782,  1090,  1089,     0,
    1092,  1091,     0,  1045,  1050,  1043,  1047,     0,     0,     0,
       0,     0,  1064,  1063,     0,     0,  1403,  1067,  1079,  1078,
    1135,     0,  1226,  1020,  1280,     0,   972,   973,   976,     0,
       0,     0,   950,  1020,   416,   414,  1459,  1460,  1445,  1446,
    1444,  1447,   427,  1448,  1458,   428,     0,   419,  1693,  1692,
     964,     0,   959,   962,   963,   932,   931,   933,   926,   928,
     929,   480,  1521,     0,     0,     0,  1527,  1508,  1518,     0,
       0,     0,     0,     0,  1016,  1323,  1475,  1013,   994,  1426,
    1416,   993,  1024,     0,  2116,     0,  2081,  2144,     0,     0,
       0,     0,     0,  2134,  1646,     0,  1599,     0,  1618,     0,
       0,     0,  1591,  1590,  1396,  1639,  1587,  1588,   911,   910,
     905,  1334,  1323,     0,     0,  1320,  1336,     0,  1336,  1323,
    1323,     0,  1323,  1389,  1331,     0,     0,  2383,  1417,  2310,
       0,     0,   161,   164,   162,     0,   163,     0,     0,   365,
     364,  1538,   356,   357,   360,   361,   362,   110,   109,   111,
     112,  1442,  1443,  1439,  1440,  1438,  1441,   114,   113,   108,
     808,     0,  1538,  1538,   334,   335,   338,   339,   340,   341,
     342,   313,   314,   317,   318,   319,   880,   784,   755,   951,
     755,   859,     0,   566,   784,   748,   857,     0,   951,     0,
       0,     0,     0,     0,   951,     0,     0,     0,  1538,     0,
     870,   820,     0,     0,     0,     0,     0,   871,     0,   821,
    1538,     0,     0,     0,     0,     0,   951,     0,     0,     0,
       0,   951,   839,   892,   891,   890,     0,   951,   951,     0,
     524,   525,   526,   523,     0,     0,   501,   694,   822,   402,
     823,   569,     0,   886,   566,   572,  1784,     0,     0,     0,
     120,  2342,  1358,     0,  1359,  1356,  1357,   179,    80,    76,
      89,  1452,  1453,  1451,  1449,  1450,    90,    78,    79,    83,
      82,    84,    85,    86,    81,    87,    77,    91,    92,    75,
    1538,  1538,  1538,  1538,   344,   345,   348,   349,   350,   351,
     354,   352,   353,     0,     0,   303,  1637,     0,  2262,     0,
       0,   297,   296,     0,  2358,     0,   569,    94,   401,   499,
     502,   777,   779,   778,   772,   771,    95,  1323,  1415,  1574,
    1396,     0,  1389,   379,   532,    67,  1670,  2266,     0,     0,
       0,     0,     0,     0,     0,     0,  2181,  1427,  1548,     0,
       0,  1233,  1266,     0,  1293,     0,  1130,   652,   652,  1276,
    1274,   641,   652,  1270,  1275,  1272,     0,   680,     0,   679,
       0,     0,     0,  1240,  1237,     0,     0,  1781,     0,     0,
    1263,     0,     0,     0,  1221,  1289,  1245,  1243,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1251,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   713,   719,   722,   723,   725,   717,
    1204,  2315,  2316,  1123,  2130,  2131,  2132,   786,  1256,  1034,
    1039,     0,  1061,  1057,  1280,  1055,  1402,     0,     0,     0,
    1065,  1217,     0,  1228,  1229,     0,  1279,  1783,     0,   980,
    1796,  1700,     0,     0,  2167,  2168,  2166,  2165,     0,     0,
     408,   412,     0,   420,   421,   423,     0,   930,   999,     0,
    1540,  1525,  1532,  1526,     0,     0,     0,  1524,  1773,  1772,
    1779,  2301,     0,     0,     0,     0,  2304,  1396,  1396,  1469,
       0,     0,   991,   996,   992,   995,     0,  1019,  1028,  1027,
    1774,  1781,     0,     0,     0,     0,   682,   681,   690,     0,
       0,     0,  2129,     0,   686,   688,   687,  2139,   685,  1648,
    1424,  1608,  1607,  1431,  1430,     0,  1601,  1649,     0,  2308,
    1329,     0,  1322,  1321,  1337,     0,  1323,  1336,  1336,     0,
    1302,  1301,  1552,  1555,     0,  1300,  1353,  1327,   999,  2373,
    2385,     0,   693,   692,   531,   689,   530,   166,   165,   171,
     172,     0,  1637,   358,   107,     0,     0,  1637,   336,     0,
     315,   571,   785,   756,   749,   842,   750,     0,     0,     0,
     755,   565,   784,   564,   567,   764,     0,     0,   511,   508,
     861,   514,   840,   833,   841,   852,   854,     0,   510,   527,
       0,     0,   515,   784,   827,   868,   869,   883,   505,     0,
     545,   546,   544,   520,   528,   506,   507,   863,     0,  1411,
    1413,  1421,   513,   512,   404,   509,     0,   874,   847,     0,
     542,   540,   537,   539,   538,   543,   541,   516,   529,     0,
     879,   879,   856,     0,   555,   557,   558,  1787,     0,   888,
     858,     0,   559,   560,     0,     0,     0,   130,     0,     0,
     810,     0,   123,   121,   132,     0,     0,   979,     0,     0,
       0,     0,     0,  1637,   346,     0,     0,  1538,   321,   322,
     325,   326,   327,   328,   329,   332,   330,   331,  2263,     0,
    2361,   300,   298,   299,     0,     0,   389,     0,  1835,   386,
     393,     0,   387,   694,   503,     0,  1396,  1436,  1567,  1573,
    2267,  2256,  2255,  2270,  2270,  2270,     0,  1398,     0,  1505,
    1105,  1162,  1294,     0,     0,  1267,   696,     0,  1277,   643,
    1269,  1271,  1273,  1129,  1138,  1208,  1132,  1131,     0,     0,
       0,  1169,  1170,  1261,  1264,     0,     0,  1144,     0,     0,
    1223,  1194,  1214,  1173,  1198,     0,  1147,  1124,  1105,  1174,
       0,  1179,  1177,     0,  1151,     0,     0,  1158,     0,  1156,
       0,  1157,     0,  1159,  1201,  1203,     0,     0,   724,   710,
     711,   712,     0,   714,   716,   718,     0,  2301,     0,  1258,
    1053,     0,  1062,  1059,  1280,  1056,  1021,  1020,  1218,   974,
       0,   975,  1712,  2173,  2172,     0,  2169,  2170,  1021,   436,
     417,   439,   410,     0,   960,  1020,  1522,  1534,     0,  1542,
       0,     0,  1519,  1529,     0,     0,     0,  1528,     0,  2199,
    2200,  2198,  1426,  1404,     0,     0,  1480,     0,  1476,  1014,
       0,  1026,  1025,     0,  2146,     0,  2145,  2157,  2158,  2155,
    2156,  2154,  2135,     0,  2141,  2140,     0,     0,     0,  2151,
    2142,     0,     0,  1600,     0,  1595,   912,     0,  1323,  1336,
    1323,  1309,     0,     0,  1323,  1305,  1303,  1307,     0,  1396,
       0,  1324,  1350,  1020,  1776,  1418,  1421,   385,   371,   384,
     359,   372,   373,   337,   316,   844,   568,   784,   751,   752,
     764,     0,     0,     0,   831,     0,   939,     0,   837,   690,
     521,   867,   866,   522,     0,   829,     0,  1422,  1423,  1414,
     828,   849,   835,     0,   860,   569,   887,   728,   637,   586,
     577,   652,   580,   579,   623,   594,   591,   641,   639,   609,
     641,   641,   616,   615,   633,   619,   599,   696,   696,   598,
     636,   696,   620,   618,   622,     0,   624,   641,   629,   617,
     621,   638,   614,   611,   635,   652,   593,   592,   595,   634,
     696,     0,   627,   652,   656,   597,   696,   702,     0,     0,
     652,   654,  1786,   131,   119,     0,     0,   812,   814,     0,
       0,   815,  2344,     0,  2340,  1360,   378,   377,   376,   375,
     347,     0,   305,     0,  1637,   323,     0,   192,  1020,     0,
     151,  2359,     0,     0,   498,  1712,   504,     0,  1569,     0,
    1565,     0,  2275,  2275,  2275,  1547,  1546,     0,  1545,  1549,
       0,  1295,     0,   702,   704,   698,   702,     0,  1268,     0,
    1241,  1167,  1168,     0,     0,     0,     0,     0,     0,  1127,
       0,  1219,     0,     0,     0,     0,     0,     0,  1155,  1153,
    1154,   708,  1206,     0,   721,   715,   713,   720,  2320,   787,
    1058,     0,  1024,  1230,   981,  1714,  1713,     0,  2174,     0,
       0,     0,   409,   422,   481,     0,     0,     0,  1543,  1531,
    2305,  1520,  1523,  1781,  2201,   998,     0,  1399,  1479,  1477,
       0,  1470,  1472,  1474,     0,  1775,     0,     0,  2150,  2136,
     691,     0,     0,     0,     0,  2137,     0,  1389,  1330,     0,
       0,  1296,  1323,  1323,     0,  1296,     0,     0,     0,  1554,
    1415,  1556,  1354,     0,  1332,     0,  1420,     0,     0,   843,
       0,     0,     0,   873,     0,   939,   886,   834,   853,   875,
     656,   951,  1412,   848,   850,   927,   517,   556,   734,     0,
       0,   596,   645,   640,     0,   645,   645,   605,   623,   600,
       0,   696,   613,   604,   625,   628,   630,   632,   645,     0,
     696,   602,     0,   645,   668,     0,     0,     0,     0,   660,
       0,   727,     0,     0,   671,   573,   657,   659,     0,     0,
     626,     0,   582,   703,     0,   584,     0,     0,   645,     0,
     655,   645,     0,   117,   122,   133,   134,   803,  2343,     0,
    2346,     0,   374,   324,   128,   195,   193,   194,     0,   188,
     190,   185,  2354,   553,   554,   552,   551,     0,   181,   390,
       0,   401,   388,   483,     0,  1421,   782,  1437,     0,     0,
    2274,  2272,     0,  2273,  2271,  2247,     0,  2204,  2205,  2203,
    2191,     0,     0,  1163,   653,   697,   705,   706,     0,   701,
     699,   702,   642,     0,  1262,  1253,  1192,     0,  1220,     0,
       0,  1199,  1175,  1178,  1176,  1182,  1183,     0,  1205,  2317,
    1060,  1231,  1701,  2175,  2171,   424,     0,     0,   443,     0,
     441,  1426,  1533,  1535,  1541,  1530,     0,  1400,  1415,  1715,
    1473,     0,  1015,  2148,  2147,  2149,  2143,     0,     0,     0,
       0,  1328,  1323,  1310,     0,  1314,  1319,  1315,     0,  1306,
    1304,     0,  1436,  1342,  1343,     0,     0,  1348,  1352,  1426,
    1421,   846,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   872,  1752,   832,   862,   864,   939,     0,   836,     0,
       0,     0,   729,   730,   735,   737,     0,     0,   649,   650,
     651,   606,   646,   648,     0,   608,   576,   601,   631,   607,
       0,   603,     0,   590,   674,   673,  1029,   666,   676,   534,
     536,   535,   665,     0,     0,   662,   663,   664,   672,   658,
     670,   661,     0,     0,     0,     0,   574,     0,   575,  1785,
     124,   816,   241,  2345,  2341,     0,   105,   120,   129,  2362,
     192,     0,     0,     0,     0,   182,   184,   185,   394,   391,
     484,     0,   767,     0,   781,     0,  2253,  2252,  2251,  2248,
       0,     0,     0,     0,     0,     0,  2276,  2278,  1544,     0,
     707,   700,     0,     0,  1222,  1224,   709,     0,  1020,   429,
       0,     0,   440,     0,   482,  1013,   547,  1408,  1421,     0,
    1426,     0,  1723,  1471,  2153,  2152,  2138,     0,     0,     0,
       0,     0,     0,     0,  1361,  1553,  1338,  1338,  1349,  1333,
    1419,   845,     0,     0,   767,  1754,  1753,   886,   830,     0,
     740,   741,   742,     0,     0,     0,   733,   736,   585,   578,
     647,     0,   788,     0,   589,   675,  1029,   669,   696,   702,
     696,   702,     0,   126,   267,     0,   253,   239,     0,     0,
       0,   243,   135,   138,   136,     0,   137,   141,     0,   142,
     143,   144,   145,   146,   139,   265,   266,   140,  1800,     0,
    1801,   989,     0,  2350,   132,   159,   189,     0,     0,   150,
     152,     0,     0,  2305,  1712,     0,   397,     0,  1538,     0,
      96,   768,   773,   769,  1421,     0,  2249,  2279,  2282,  2280,
    2281,  2283,  2277,     0,   644,  1143,     0,     0,   437,     0,
     433,   435,   444,   448,   442,   548,     0,     0,  1405,  1407,
    1401,  1461,     0,     0,     0,     0,  1716,  1718,     0,  1478,
       0,  1325,  1311,     0,  1316,     0,  1308,     0,     0,  1346,
    1344,     0,   767,   561,   865,     0,   744,     0,   743,     0,
     738,   739,   734,     0,   696,     0,   696,   667,   581,   583,
     587,   588,   125,     0,   118,     0,     0,   252,   255,     0,
       0,   258,   248,   247,   249,     0,   242,   288,   241,   241,
     291,   246,   284,  2348,     0,     0,  2347,     0,  2363,   191,
    1020,     0,   183,   186,   395,   392,     0,  2301,   775,     0,
       0,   770,   780,   783,  1550,  1558,     0,  1702,  1021,     0,
     430,   431,     0,   449,  1409,  1410,  1421,     0,   997,     0,
       0,     0,     0,  1717,     0,     0,  1724,  1726,     0,     0,
       0,     0,  1362,     0,  1339,     0,     0,     0,   563,   562,
       0,   746,   747,   745,   731,   732,   610,   789,   612,   127,
     268,   279,   282,   274,   254,     0,     0,     0,   244,   200,
     241,     0,   230,   228,   229,   233,   234,   235,   236,   237,
     238,   231,   232,   241,     0,     0,  2305,     0,     0,     0,
     134,   169,   168,   160,     0,   241,  2355,   153,   399,   398,
     774,   776,     0,     0,   683,     0,   438,   437,   434,     0,
     445,  1406,  1462,  1721,  1722,     0,  1719,     0,     0,  1725,
       0,     0,  1313,  1318,  1341,  1340,  1355,     0,   851,     0,
       0,   241,   275,     0,   250,     0,     0,   196,     0,     0,
     198,   294,     0,   286,  2349,     0,  2351,     0,   116,   170,
    2364,     0,     0,  2305,  1557,  1559,     0,  1703,   425,   432,
       0,     0,   468,     0,  1720,  1728,  1727,     0,  1326,     0,
       0,   276,   282,   272,   280,   241,     0,     0,   240,   259,
       0,   241,     0,   290,   199,     0,   292,   285,   287,  2352,
    2353,     0,   154,   400,   684,  1729,     0,     0,  1538,     0,
       0,  1538,  1538,  1538,  1538,   446,   469,   471,     0,  1020,
       0,  1347,  1345,     0,   273,     0,     0,   271,   251,   256,
     241,   211,   210,     0,   202,   224,   289,     0,   201,     0,
     241,  2356,   159,     0,  1715,     0,   457,   459,   460,   454,
       0,   450,   452,   453,     0,  1538,  1538,     0,     0,     0,
       0,   461,   470,  1538,     0,     0,  1465,  1467,     0,   277,
       0,   241,     0,   241,     0,     0,     0,     0,     0,   197,
       0,   241,   241,   155,     0,  1723,   451,     0,  1979,     0,
     479,     0,     0,  1456,  1454,  1455,   475,  1457,   476,   474,
     472,     0,   447,     0,  1021,  1463,  1020,  1596,     0,   269,
     241,   257,   262,   205,   225,   226,     0,   208,   295,     0,
    2357,   241,     0,  1731,   458,   455,   456,   477,   478,   465,
       0,   463,   473,  1468,  1466,   241,   241,   258,   261,     0,
       0,   203,   217,   204,   215,   207,     0,   293,   156,  1730,
       0,  1735,     0,   462,     0,   241,   241,   263,   223,   221,
     241,   212,   219,   214,     0,   220,   227,   218,     0,   209,
       0,     0,  1742,   468,   467,   464,     0,   206,   222,   216,
    1733,  1734,  1732,  1737,     0,     0,  1739,  1740,     0,  1704,
     466,   213,  1741,  1736,     0,  1743,  1738
};

/* YYDEFGOTO[NTERM-NUM].  */
static const yytype_int16 yydefgoto[] =
{
      -1,    56,    57,    58,    59,    60,    61,  1223,    62,   619,
    1004,  1437,  1438,    63,   488,    64,   945,  1383,  1384,  1385,
      65,  1856,  2715,  1402,   460,   461,  1748,  1749,   970,  2319,
    2670,  3420,  2674,  3533,  3654,  3427,  1812,  3001,  3421,  3422,
    3542,   483,   439,  3021,  3248,  3681,  3832,  3912,  3991,  1338,
    3678,  1733,  3773,  1734,    66,   576,   943,  1364,  1365,  3434,
    3435,  3431,  3436,  3238,  3239,  3240,  3241,  3861,  3750,  3817,
    3862,  3946,  4009,  4015,  4016,  3903,  4030,  4031,  4032,  4038,
    4033,  3904,  4011,  3751,  3752,  3661,  3753,  3545,  3754,  3665,
    3755,  3548,  3756,  3757,  3758,  3759,  3857,  3760,  3660,  3898,
    3746,  3747,  3900,  3982,  4008,  3761,  3555,  3655,  3809,  3556,
    3656,  3852,  3742,  3853,  3893,  3978,  3743,  3810,  3896,  3813,
    3762,  3765,  3867,  3671,  3749,  3764,  3910,  3865,  2323,  2704,
     561,   562,   587,  1849,   563,   958,   916,  1340,  1753,  1754,
    2191,  2192,  2315,  2316,  2688,  2689,  1751,  1752,  2184,  2185,
    1845,  1846,  2304,  2305,  1739,  1740,  2162,  2163,  1344,  1737,
    1738,   564,   917,   927,  2164,  2187,  2188,  2693,  2307,  2308,
    2309,  2310,  2165,  1428,  2166,  2898,  2327,  3025,  2709,  3574,
    3023,  3573,  3252,  3687,  3833,  2258,  2259,  2239,    67,   500,
     799,  2065,  2821,  1220,  2066,  1620,  1619,  1221,  2472,  2473,
    2474,  2054,  3469,  1622,  2470,  3598,  3787,  3599,  3600,  2818,
    3700,  3092,  3309,  3310,  3471,  3703,  3842,  3931,  3602,  3790,
    3921,  3922,  3923,  3915,  3916,  3917,  3972,  4000,  4001,  4022,
    4043,  3885,  3886,  3887,  2086,  2478,  3311,  3441,  1843,  1331,
    1332,   462,   463,   464,   584,  2328,  1799,  2329,  2330,  1801,
    1802,  2343,  1274,  3402,  2647,  2623,  3474,   971,  3247,  2653,
    2654,  2655,  2656,  2593,  2594,  2202,  2203,  2264,  2664,  2984,
    3174,  3189,  2985,  2986,  2987,  2988,  2989,  2990,  2991,  2738,
    2739,  3381,  3382,  3383,  2735,  3221,  3205,  3206,  3207,  3397,
    3047,  2517,  2518,  3837,  2526,  2527,  2563,  2864,  2564,  1335,
    3048,  3215,  3279,  2787,  3297,  2793,  2794,  2795,  2424,  2425,
    2426,  2427,  2428,  2004,  3208,  2663,  3168,  3372,  3515,  3373,
    3374,  3375,  3640,  2204,  2592,  2205,  2584,   874,   465,  1414,
    1415,  3580,  3581,  3582,  3583,  2334,  3254,  3255,  2581,  2799,
    3521,    68,  1348,   911,   919,   915,   933,   568,  1349,  1813,
    2270,  3227,   551,  1803,  3161,  3155,  2916,  3165,  1804,  2603,
    1805,  2905,  3149,  1806,  2931,  3163,  3367,  2604,  2605,  1807,
    1808,  1809,  2915,  2924,  3507,  2206,   123,  1434,  2660,  2246,
      69,  1310,  1305,    70,   885,   880,   881,  1308,  1309,  1701,
    2129,    71,   510,    72,   571,   936,    73,   579,  1389,    74,
    1233,  2078,  2079,  2080,    75,   934,    76,    77,   580,  1396,
    1397,  1398,    78,  1216,   128,    79,   808,   806,  1228,  1230,
    1231,  1226,    80,   573,   574,  1357,    81,  1612,  2046,  2047,
     940,   941,  1363,  2811,    82,    83,   541,   514,   825,   515,
     516,  1647,  2097,  3475,   836,   837,   838,  2502,  1250,  1251,
    1252,  2102,  1648,  2507,  1063,  3036,  1153,  1572,   765,  1154,
    1573,   766,   767,   768,   769,   770,   771,   772,   773,   774,
     775,  2019,  2022,  3209,   776,  1163,  1583,   777,   778,   779,
     780,   781,   782,   783,  1610,  2759,  2760,  3061,  2041,  2042,
    2043,  2453,  2454,   784,  1928,  2748,  1942,   785,  1150,  1568,
    1502,  3054,  2753,  1466,  1911,  2376,  2455,   604,   605,   987,
    1087,  1088,  1089,  1510,  1053,  1918,  1472,  1708,  1709,  1710,
    1711,  3137,  3136,  3138,  3489,  3334,  3491,  3338,  2140,  1712,
    1713,  3719,  2539,  2878,  2557,  2558,  3349,  2131,  1714,  2545,
    3629,  3346,  3347,  3727,  3726,  3348,  3142,  3143,  2891,  2892,
    2273,  2274,  2275,  3493,  1204,  1205,  1500,  1039,  1040,  1467,
    1905,  2355,  3318,  3479,  2032,  3107,  3477,  3608,  1810,  2629,
    2630,  2099,  2100,  2561,  2895,  2929,  1277,  3476,  2357,  1681,
    1682,  3030,  4014,  2899,  2286,  3966,  2063,  2064,  3708,  3843,
    3935,  3936,  3937,  2846,  2847,  3111,  3112,  2101,  2499,  2848,
    3319,    84,   467,    85,  1870,   946,   947,   607,   480,    86,
     489,  1906,    87,   508,  1636,   657,   812,  1236,  1237,  2087,
    2479,  2486,  2088,  2491,  3100,  2481,  2826,  2827,  1874,  1875,
    2482,  2829,  3097,  3037,  3038,  2729,  3272,    88,   529,  2889,
    2552,  2553,  3694,  3695,   813,    89,   466,   981,  1862,  1420,
    1861,   982,   983,  1422,   602,   603,    90,   526,    91,   519,
     875,  2530,  1676,   803,   997,  1281,   878,  1282,  1662,  2116,
    1262,    92,   907,   906,    93,   547,  1327,    94,   620,  1015,
    1016,  1442,  1883,    95,   509,   817,   818,    96,   502,   804,
    1628,    97,   493,    98,    99,   795,  2812,  3467,  3784,  3875,
     497,  1614,  1214,  3253,  3482,  3616,  3617,  3619,  3716,  3717,
    3914,  4021,  4052,  4042,  4055,  4056,  4059,   786,   895,   787,
    3361,   788,   789,  2487,  2488,  2896,   790,  3696,   791,  2265,
     888,   486,   440,   558,   896,  2461,   793,  3559,   913,   962,
     442,   443,   100,   839,   518,  1254,  1255,  1256,  1657,  1658,
     879,  2014,  1659,  1660,  2113,  2108,  3119,  2870,  2862,   101,
     498,  1215,  1017,  1616,  1617,  2466,  2815,  3304,   102,   528,
     103,  1041,  1458,  1459,  1902,  2354,  1903,   104,   821,   105,
     644,  1452,   645,  1019,   646,   647,  1031,  1026,  1034,  1028,
    3450,  3264,  3265,  1890,  1000,   963,   964,  1445,  1885,  1886,
    3032,  3267,  3456,  3457,   106,   130,   450,   582,   953,  1244,
     107,   108,   109,   110,  1247,  1322,  2093,  1323,  1324,  1325,
    1721,  1645,  1148,  2797,  2007,  1562,  2431,   591,   972,   124,
     593,   594,   125,   931,   932,  2271,  3230,  2676,  3003,  3424,
    3425,  3563,  3676,   974,  3432,  3831,  3952,   975,  2705,  2320,
    3017,  3565,  3775,   111,   897,   538,  1320,  1315,  1317,  1717,
    2147,   112,   113
};

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
   STATE-NUM.  */
#define YYPACT_NINF -3358
static const int yypact[] =
{
    4332,   704,  1035,   286, -3358,  -103,   702, 37412,   617,   581,
     581,   418,  1045, -3358, -3358, -3358, -3358, -3358,   966, -3358,
   37412,  1035, -3358, 19602, -3358, -3358,   652,   208,   119, -3358,
    1035, -3358, 37412, -3358,   600,   338,  1035, -3358, -3358, -3358,
   -3358,   418, 37412, -3358,   780, -3358,  1108,   -85,   722,   716,
     853, -3358, -3358, 37412,   840,   443,  1283,  1115, -3358, -3358,
     943, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, 20161, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358,  1222, 37412,  1279, 37412, -3358,  1264,
   37412, 31852, 37412,  1023,  1377,  1427, -3358, -3358,   581, -3358,
     418, -3358, -3358, 19602, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358,  1007, -3358, -3358,  1074, -3358, -3358, -3358, -3358, -3358,
    1577,  1400, -3358,  1432, 31852, -3358, 37412, -3358, -3358, -3358,
     818, -3358,  1143, -3358,  1144,  1438,   717, -3358,  1460,  1460,
    1460, 37412,  1482,  1460,  1460, 37412, -3358,  1460, -3358,  1460,
     581, -3358, -3358,  2633, 37412,  1335,   466,   -27, 31852,   213,
   37412, -3358, -3358, 11091, -3358,  1456, -3358, -3358,   581,   581,
    1629,  1510,   259, 37412, -3358, -3358, -3358,   581,   750,    56,
    1514,  2965,   138, -3358, -3358, -3358,   697, -3358, -3358,  4350,
   -3358, -3358, -3358,  1136, -3358, -3358, 19602, 37412,   581,  1472,
   -3358, -3358,   196,   196,   196, -3358,   196, -3358,   196, -3358,
     443,  1119, -3358, -3358, 37412,   677,   719, -3358, -3358,  1128,
     574, -3358, -3358, 29072, -3358, 37412, -3358, -3358, -3358, -3358,
    1376, -3358, -3358, -3358,   849, -3358, 19602, 37412,  1271, -3358,
   -3358, 24068, -3358,    48, -3358, -3358,  1161, 37412, -3358, 19602,
   19602,   253,    27,  1165, 37412, 37412,  1567, -3358,  1744, 29072,
    1353, -3358,   175,  1427,  1750, -3358,  1400, -3358, 37412, -3358,
   -3358, -3358, 33520,   717, -3358, 11091,  1611, 37412, 37412, 37412,
    1433, 37412, 37412, 31852,  1308, 37412, 29072, 19602,  1460,  1238,
    1262,  1412,  1373,  1123, -3358, -3358, -3358, -3358, -3358,  1454,
   -3358, -3358,  1315, -3358, -3358, -3358,   188, -3358,   142, -3358,
   -3358, -3358, -3358, -3358, -3358,  1467,  1234, -3358, -3358,    94,
   -3358, -3358, 37412, -3358, -3358, -3358, -3358,  1609,  1371,  1266,
    1276,  1286, 13971, -3358,  1288,  1294,  1304, 11091,  1307,  1310,
    1322,  1327,  1331,  1333,  1345,  1352,  1354,  1354,  1369,  1386,
    1395,  1397,   612,  1401, -3358,  1410,  1422,  1425, -3358, -3358,
    1431,  1441,  1443, -3358,  1447,  1458,  1466, 11091,  1468,  1469,
   -3358,  1470,  1473,  1474,  1477,  1479,  1480,  1481,  1484,  1485,
    1486, -3358, -3358, 11091,  1488, -3358, -3358,  1489, -3358,  1493,
    1494,  1495,  1496,  1497,  1502,  1503,  1504,  1506,  1507,  1509,
    1511,  1512,  1513,  1516,  1518,  1519, -3358,   742,  1521,  1526,
     810,  1527, -3358,  1530, -3358,   230,  1533,  1354,  1354,  1354,
    1535,  1537,  1538,  1541,  1542,  1543, 13971, 13971, 13971,  8211,
   -3358, 37412, -3358, 37412, -3358,  1295, -3358, -3358,  1708, -3358,
     165,  1381,  1198,  1073,   271,  1379, 13971,  3283,   802, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358,  1517, -3358, -3358, -3358,
   -3358, -3358,  1544,  1405,  2001,   822, -3358, -3358,  1175, -3358,
    -151, -3358, -3358,  1794, -3358, -3358, 37412, 29072, 19602, -3358,
   -3358, -3358, 17361, -3358, -3358,  2008, -3358,  1545, -3358,  -103,
    1412, -3358,  1755,  1667,    27,  1597, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358,  1551,   697, -3358, -3358,
   -3358,  -103,  1974, -3358,  1690,   299,  1613, -3358,  1555,   801,
     299, 29628,  1889,  1293, -3358,   183, -3358,  1960, -3358, -3358,
   -3358, -3358,  1665,  1859,  1654, -3358, -3358,   248, -3358,   122,
   -3358,  1671,  1889,   299,  1293, -3358,  1882,  1999,   344,   -59,
   -3358,   -26, -3358, -3358,  2061, -3358, -3358, -3358, -3358, -3358,
   -3358,  1609, -3358, -3358, -3358,  1565, -3358,  1807,  1662, -3358,
   -3358,   692, -3358,  1571,   665, -3358,   770, 30184, -3358, -3358,
   -3358,  2040,  1354,  1573, -3358, -3358, -3358,  2144, -3358, -3358,
    1581,  2062,  2062,  2062,  2154, -3358, -3358, -3358, -3358, -3358,
    1734,  1615, -3358,  1271, 19602, -3358,   777, -3358, 34076, 19602,
   -3358,   708, 11091, -3358, -3358,  1998,   121, -3358,   158, -3358,
    2108,  1769, -3358, -3358, -3358, -3358,  2011, -3358, -3358,  2144,
    2069,  2062,  1965,  1591, -3358, -3358, -3358,  1400, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358,  1271, -3358, 19602, -3358,
   19602, -3358,  1592, -3358,  1588, -3358, -3358,  1596, -3358, -3358,
   -3358, -3358, 19602,  1308, -3358, -3358,    23,  2032, -3358, -3358,
    1598,   115, 19602,  1599, -3358, -3358, -3358, -3358, -3358, -3358,
    2128, -3358, -3358, -3358,  1623,  1602, -3358, -3358, -3358, -3358,
   -3358, -3358,  1697, -3358, -3358, -3358,  1607, -3358,  1607, -3358,
   -3358,  1607, -3358, -3358,  1607,   689,  1122, -3358, -3358, 37412,
   -3358, 37968, -3358, 17361,  -103, 11091, 11091,   330,  2116,  2171,
    2171,  2171, -3358,  1634, 11091, 11091, -3358, -3358, 11091, 11091,
   11091,   345,  1614, -3358, -3358,  8787, -3358,  1617, 11091, 11091,
    1696, 11091,  1517, 11091, 20720,   897,  3283, -3358,   328,  2065,
   11091, 11091, 11091, -3358, 11091, -3358, -3358,  2180, -3358, 20720,
    1092, 11091, 11091,  1101, 11091, 11091, -3358, -3358, -3358, -3358,
    8787, -3358, 11091, 11091, 11091, -3358, 13971, 11091, 11091, 11091,
   11091, 11091, 11091, 11091,  2171,  2171, 11091, 11091,  1111,  8787,
   -3358, 11091,  1517,  1168,  1168, 11091,  1517,  7059, 11091, -3358,
   -3358, -3358,  1618, -3358, -3358, -3358, 20720,  2171,  2171, 11091,
   11091, 11091,  2116,  2116,  2116, -3358,  8211,  1072,  1621, 11091,
   21838,  1622, 11091, -3358, -3358, -3358, 13971, -3358, -3358,  1214,
   -3358, -3358, -3358, 11667, 13971,  1630, 13971, 13971,  1968, 13971,
     784, 13971, 13971, 13971, 13971, 13971, 13971, 13971, 13971, 13971,
   13971, 13971,  2116, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358,  1641, -3358, 31852, 13971, -3358, -3358,
   37412, -3358, -3358, -3358,  1964, 19602, 19602, -3358, -3358, -3358,
    1858,   843, 31852, -3358, -3358,   166, -3358,  1713,  1639,  1715,
    1642, -3358,  1722, 19602, 19602, -3358, -3358, -3358, -3358,    56,
   -3358,  1648,   956, -3358, 37412, -3358,  1145, -3358, -3358, -3358,
    1652, -3358, 11091, -3358,  1656, -3358,  1044, -3358,  2016, -3358,
    -103, 11091, -3358, -3358,  1668,  1400, 37412, 37412, 37412, 19602,
   37412, 19602, -3358,   768,   768, -3358,  1034, -3358, -3358, -3358,
   -3358,   299, 37412, 37412,   299, 29072, -3358,  2067,  1293, 37412,
     299, -3358, -3358,  1293, -3358, -3358, 19602, -3358, -3358,  1293,
   -3358,  1293,  1293,   299,   299,  1714, -3358, -3358,  1666, -3358,
    1714,  1801,   970,   196,  1890, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358,   114, -3358, -3358, -3358, -3358,
   -3358,    65, -3358, -3358, -3358,  1515, -3358, 31852,  1285,   -54,
   -3358,  1285,   500,  -103, -3358, -3358, -3358, -3358,  3615,  1919,
     255, 19602, -3358,   158,  -103, 37412, -3358, -3358, -3358, -3358,
   -3358, -3358,  1679, -3358,  1682,  1678, -3358,  2121,  2129,  2132,
    2134,  2135,  2140,  2141,  2142,  2143,  2146,  2147,  2148,  2149,
    2150,  2151,  2153,  1711, -3358, -3358, -3358, -3358, 19602, -3358,
   -3358, -3358, -3358,  1768, -3358, -3358, -3358, -3358,  1200, -3358,
   -3358, -3358,   141, -3358,  1742,  1766,  2254, 29072, 37412, 37412,
   37412,  2124, -3358, -3358,  -134,  1969,  1592, -3358,   518, 37412,
    2131, 24624,   127, 11091, -3358,    23, -3358, -3358, -3358, -3358,
     348, 29072, -3358, -3358, -3358,   115, 31852,  1727, -3358, -3358,
    1925,  1262, 19602, -3358, 37412, -3358, -3358, -3358, -3358, 17920,
   17920, -3358, 17920, -3358, -3358,   211,   231,  1651,  1756, -3358,
   -3358, -3358,  1731,  1735, -3358,  2171,  1736, -3358,  1737,  1738,
    1739, 11091,    78,  2290,  1740,  -162,  1741,  1746,  1749,  -152,
   -3358,  1747,  1748, -3358,  1751, -3358,  1753,  1754,  1757,  1758,
    1759,  1760, -3358,  1761,  2161,  1762, -3358, -3358, -3358, -3358,
    1763, -3358, -3358,  1765,  1767,  1772,  1775,  1777,  1778,  1780,
    1779, -3358,  2171,  1782,  1783,  1785,  2171,  1786,  1787,  1792,
    1796,  1797,  1798,  1799,  1800,  1802,  1803,  1806,   207,  1808,
    1810,  1811,  1809,  1817,  1818,  1825,  1826,  1827,  1829,   173,
    2171,  1828,  1832,  1090,  1833,  1838,  1840,  9363,  9939, 10515,
     154,  1843, -3358,  1846, -3358,  1760,  1847,  1848,  1105,   266,
    1851, -3358,   897, -3358, -3358, -3358,  1849,   798, -3358,  1940,
   37412, -3358,  1050,  1688, -3358, -3358, -3358, -3358, -3358,   793,
   -3358,  1804, -3358,  1853,   120,  8211,   807,  1865, 13971,  1381,
   13971,  1857, 13971, 13971,  1198,  1073,  1073,   271,  3283,   271,
    3283,  1379,  1379,  1379,  1379,  1379,  2116, 11091, -3358,  2116,
    1860,   922, 19602, -3358,  2174,   151,  1862, -3358,   158,  1867,
    1867,   669, -3358, -3358,  1868, -3358, 11091,  -103, -3358, 37412,
   29072, 29072, 19602, 19602,    90, -3358,   963, -3358,  2250, 17920,
   17920, 17920, -3358, -3358, -3358, -3358, -3358,   161, -3358, -3358,
   -3358,  1855, -3358, -3358, -3358, -3358, -3358, 34632,   159, -3358,
   -3358,  -103,  2269, -3358, -3358,  1870, 37412, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358,    -9, -3358, -3358, -3358, -3358, -3358, -3358,  2002,
     299, -3358, -3358,   299,  1293, 19602,   299,   299, -3358, -3358,
    1393, -3358,   -26, -3358, -3358, -3358, -3358, 37412,   982,  2012,
    1873, -3358, -3358, 19602, -3358,  1874, -3358,  2282,  2408,  1889,
   -3358, -3358, -3358,   348,   348, -3358,  -103,  1995,  1997,  2000,
    2003,  2004,  2033, -3358, -3358,  -103,  -103, -3358, -3358, -3358,
     842,  -103,  -103,  -103,  -103,  1243,  -103,  -103,  1150, -3358,
   -3358, -3358,   201, -3358,   847, -3358,   845,  2391,  2106,   348,
     348,  2391,   348,  2110,  2111,   348,   348,  1967,  2350,   348,
    2245,  1988,  1230,  2248,   348, -3358,  1991,  2357,   348,   348,
     348,   348,  2391,  2126,  2431,   348, -3358,   348,  2130,  2136,
     163,  2137,  2138,   348,  1253, 37412,   348,   348, -3358, -3358,
    2710, -3358, -3358, -3358, -3358, -3358, -3358,   592, 18482, -3358,
   -3358,   195, -3358,  2083, -3358, -3358, -3358, -3358, -3358, -3358,
   35188, -3358, 11091,  1243,  -103,  -103,   220,  -103,  1243,  -103,
    -103,  -103,  -103,  -103,  1243,  1243,  -103,  -103,  1243,  1998,
   -3358, -3358, -3358, -3358,   172, -3358,   487, 31852,  2241, -3358,
     931, -3358, -3358, -3358,  1436, 37412,  2652,   597,   597, -3358,
   19602,  1963,  1756, 24624, -3358,   970, -3358,  1918, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, 31852, -3358, -3358, -3358,  1599,
    2251, -3358,  1926, -3358, -3358,  1174, -3358,  1922, -3358,  1923,
    2009,  2010,  2015, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358,  1889,   963, 12243, -3358,  1930,
   -3358, 11091, -3358, -3358, -3358,  2019, 11091, 11091,  2372,   326,
   -3358, 30740, -3358, -3358, -3358, 11091, 30740,   326, -3358, -3358,
    1938, -3358,  2301,  2301, -3358, -3358, -3358, 37412, -3358, 11091,
   -3358, 11091, -3358, -3358, 11091, 11091, 11091, -3358, -3358, 13971,
   20720,  1943, -3358, -3358, -3358,  1945, -3358, 11091, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, 11091, -3358, 11091, -3358, 11091,
   11091, -3358, 11091, -3358, -3358, -3358, -3358, 12819, 11091, 11091,
    1946, -3358, -3358, -3358, 11091, 11091, 11091, -3358, 11091,  2348,
   11091,  2349, 11091,  2351, 11091, -3358, 11091, -3358, -3358, -3358,
   -3358, 11091,   349,   669,  1949, -3358, -3358, -3358,  1952,  1953,
   -3358,  1948,  1950,  1951, 31852, 11091, -3358, -3358, -3358, 11091,
   -3358, -3358, 11091, -3358, -3358, -3358, -3358,   897, 13971,  1192,
    1955, 13971, -3358,  1865,   125,  8211,   807,  1865, -3358, -3358,
   -3358,  1958, -3358, -3358,  1959, 37412,  1962, -3358, -3358,  2046,
     710, 19602, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358,  2066,  1867, 37412, -3358, -3358,
   -3358,  2041, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
     680, -3358, -3358,  1970,  1970, 16241, -3358, -3358, -3358,  2207,
    2373,  2374,  2375,   770, -3358,   167, -3358,   205,  2333,  1889,
   -3358,  2377, 32408, 25180, -3358,  1972,  2332,  1975,   348, 27404,
     767, 22396, 27960, -3358, -3358,   220, -3358,   145, -3358,  1034,
    1034,  2005, -3358, -3358,  1756,  1293, -3358, -3358, -3358,  1979,
   -3358, -3358,   970,  2337,  2339, -3358,  2212,   825,  2212,   970,
     970, 20720,   970,  1816, -3358,  1243,  2266, -3358, -3358, -3358,
   31296, 28516, -3358, -3358, -3358,  2467, -3358,  2470,   979, -3358,
   -3358,   348,   133, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358,   500,   348,   348,   137, -3358, -3358, -3358, -3358, -3358,
   -3358,   111, -3358, -3358, -3358, -3358, -3358, 21279,   708,  1035,
     708, -3358,   228,   250, 21279, -3358, -3358, 21279,  1035,   220,
    1243, 21279,  1243, 35744,  1035,  -103,  -103,  1729,   348,  1243,
   -3358, -3358,  2340, 37412,  2341, 21279, 21279, -3358, 31852, -3358,
     348,   920,  1243,   220,   220, 21279,  1035, 20720,  1226,  1629,
    -103,  1035, -3358, -3358, -3358, -3358, 19602,  1035,  1035,  1449,
   -3358, -3358, -3358, -3358,  1243,  1996, -3358,  5392, -3358, -3358,
   -3358, 15682, 37412,   834,   198, -3358,  1990,  1156,   310,  2071,
    1364,  2006, -3358,  2007, -3358,  2013, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
     348,   348,   348,   348,   595, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358,  2235,  2389, -3358,   464,  2085, -3358,  2243,
    2014, -3358, -3358,   106, -3358, 19602, 15123, -3358,  2221, -3358,
    2338, -3358, -3358, -3358, -3358, -3358, -3358,   970,  2236,   659,
    1756,  2018,   127, -3358, -3358, -3358, -3358, -3358, 37412,  2021,
   25736, 29072, 29072, 29072,  2020, 11091, -3358, -3358,  2246, 11091,
    2022, -3358, -3358, 11091, -3358,  2090, -3358,  2024,  2024, -3358,
   -3358,  2026,  2024,  2366, -3358,  2367,  2027, -3358,  2028, -3358,
    2030,  2031,  2034, -3358, -3358,  3283,  3283,  2029,  2036,  2038,
    2236,  2017,  2025,  2039,   227, -3358, -3358, -3358,  2043,  2044,
    2045,  2048,  2049,  2051,  2052, 11091,  2053,    74,  1220, -3358,
    2054,  2055,  2056,  2060, 11091,  2063, 11091,  2064, 11091,  2073,
    2074,  2075,  2042,  2042,   128, -3358,  2068, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358,  2070, -3358,  1295,
   -3358,  2079, -3358, -3358, -3358, -3358,   802, 13971,  1228,  2081,
   -3358, -3358, 11091,  2082, -3358,  2086, -3358, -3358, 19602,  2392,
   -3358, -3358,   695,  2058,  2361, -3358, -3358, -3358, 13971,  2549,
   -3358, -3358,  2087,  2084, -3358, -3358, 29072, -3358,   697, 20720,
   -3358,  2092, -3358,  2092,   894,  2088,  1233, -3358, -3358, -3358,
    2076,  1597,  2447, 29072, 29072, 29072, -3358,  1756,  1756,   726,
    2096,  2416, -3358, -3358, -3358, -3358, 36300, -3358, -3358, -3358,
   -3358,   976, 37412,  2399, 37412,  7635, -3358, -3358,  2575, 11091,
   29072,   607,   798,   348, -3358, -3358, -3358, -3358, -3358, -3358,
    1889, -3358, -3358, -3358, -3358,  2380, -3358,   299,  1393,   994,
   -3358,  1320, -3358, -3358, -3358,  2441,   970,  2212,  2212,  2445,
    2342,  1018,  2095, -3358,   348,   982, -3358, -3358,   697, -3358,
   -3358, 11091, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358,  1227,   842, -3358, -3358,  1227,  1227,   201, -3358,   847,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, 11091,  2446,  2448,
     708, -3358, 21279, -3358, -3358, -3358,   423, 35744, -3358, -3358,
   -3358, -3358, -3358, -3358,  2097, -3358, -3358,   669, -3358, -3358,
   28516,  -103, -3358, 21279,  2097, -3358, -3358,   281, -3358,  -103,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, 35744,  2101,
   -3358,   336, -3358, -3358, -3358, -3358, 35744, -3358, -3358, 35744,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, 19602,
     933,   820, -3358,  1247, -3358, -3358, -3358, -3358, 37412, -3358,
   -3358, 19602, -3358, -3358,  5205, 37412,  2315, -3358, 11091, 11091,
    2355, 37412,  2356, -3358,  2620, 37412,  2672, -3358, 35188,  -103,
     669,  1227,  1227,   487, -3358,  2118, 37412,   348,   155, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,  2271,
   -3358, -3358, -3358, -3358,  2363,   585, -3358, 19602,  2651, -3358,
   -3358,  1252, -3358,  2385, -3358,  2125,  1756,  2457, -3358, -3358,
   -3358, -3358, -3358,   588,   588,   588, 13395, -3358,  2570, -3358,
    3283, -3358, -3358, 11091,  2376, -3358,   218,  2378, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,  2127,  2133,
    2139, -3358, -3358,  2274, -3358, 11091, 11091, -3358,   855,  2145,
    2158, -3358, -3358, -3358, -3358, 11091, -3358, -3358,  3283, -3358,
   11091, -3358, -3358, 11091, -3358, 11091, 11091, -3358,  2152, -3358,
    2156, -3358,  2157, -3358, -3358, -3358,   669,  2160,  2469, -3358,
   -3358, -3358,   669,  2293, -3358, -3358,   669,  1597, 37412, -3358,
   -3358,  2163, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
    2481, -3358,   140, -3358, -3358,  2418, -3358, -3358, -3358,  1865,
    2475,  2155, -3358, 37412, -3358,  1551,  2164, -3358,   348, 13395,
    1970,  2294, -3358, -3358,   894, 20720, 25180, -3358, 29072,  1591,
    1591,  1591,  1889,  2538,  2046,  2046, -3358, 22954, -3358, -3358,
    2287, -3358, -3358, 26292, -3358,   -19, -3358, -3358, 13971,  1410,
   -3358, -3358, -3358, 31296, -3358, -3358,   348,  2165,  2169, -3358,
   -3358, 36856, 11091, -3358,  2582, -3358, -3358,  2170,   970,  2381,
     970, -3358,  2503,  2519,   970, -3358, -3358, -3358, 20720,  1756,
   13395, -3358,    58,  1551, -3358,  2175,   336, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358,   533, -3358, 21279, -3358, -3358,
   -3358,  2176,  2642,  2644, -3358, 21279,  1200, 37412, -3358,  2575,
   -3358, -3358, -3358, -3358,  5205, -3358, 20720, -3358, -3358, -3358,
   -3358, 37412, -3358,  1255, -3358, 15682, -3358, -3358, -3358,  2181,
    2182,  2024, -3358, -3358, -3358, -3358, -3358,  2026,  2393, -3358,
    2026,  2026, -3358, -3358, -3358, -3358, -3358,   218,   226, -3358,
   -3358,   218, -3358, -3358, -3358,   129,  1057,  2026, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358,  2024, -3358, -3358, -3358, -3358,
     218,  2185, -3358,  2024,   977, -3358,   184,   109,  2187,  2189,
    2024,  2190,  2191, -3358, -3358,  3283,  2692, -3358, -3358,  2326,
    -103,  2645, -3358,  1258, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358,   500, -3358,  1227,   464, -3358,   310,   711, -3358,   723,
   -3358, -3358,  2198,  2294,  2710,   150, -3358, 37412, -3358,  1034,
   -3358,   100,  2220,  2220,  2220,  1410, -3358,  1267, -3358, -3358,
    2200, -3358,  2202,  2744,   135, -3358,  2744, 30740, -3358,  1269,
   -3358, -3358, -3358,   196,  2204,  2206,  2208,  2485,  2556, -3358,
    2411, -3358,  2214,  2215,  2216,  2222,  2223,  2224, -3358, -3358,
   -3358, -3358, -3358,  2225, -3358, -3358,   379, -3358, -3358, -3358,
   -3358,  2226, 32408, -3358, -3358, -3358, -3358,  2578,  2479,  2228,
    1206,  2451, -3358, -3358,  1652, 20720, 13395,  2233,  2238, -3358,
     665, -3358, -3358,  2231,  1591, -3358,  2769,  2628, -3358, -3358,
   31852,  2249, -3358, -3358,  2521, -3358,   130,  2440, -3358, -3358,
   -3358,   607,  2334,  2336,   348, -3358,  -103,  1985,  1873,  2602,
     709,  2297,   970,   970,  1282,  2299, 11091, 11091,  2260, -3358,
    2236, -3358, -3358,   332,  1652, 11091, -3358,   669,  2451, -3358,
    2261,  2262, 37412, -3358,  1916,  1200,   834, -3358, -3358, -3358,
     977,  1035, -3358, -3358,  2097,   680, -3358, -3358,   -12,  2500,
    2509, -3358,   900, -3358,  2265,   900,   900, -3358,  1690, -3358,
    2300,   218, -3358, -3358,  2304, -3358, -3358, -3358,   900,  2275,
     218, -3358,  2515,   900, -3358, 31852,  -103,  1872,  1451, -3358,
    2317, -3358,  2740,  1301,  2624, -3358,   977, -3358,  2625,  2527,
   -3358,  2530, -3358, -3358,  2533, -3358,  2535,  2536,   900,  2542,
   -3358,   900, 37412, -3358, -3358, -3358, -3358, -3358, -3358, 37412,
   -3358,  1272, -3358, -3358,  2355, -3358, -3358, -3358,  2280,  2296,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358,  2425, 37412, -3358,
    2302,  2221, -3358,  2855,  1314,   336,  2306, -3358,  2386,  2388,
   -3358, -3358,  2394, -3358, -3358,   124,  1475, -3358, -3358, -3358,
   -3358, 13395,  2653, -3358, -3358, -3358, -3358, -3358, 30740, -3358,
   -3358,  2744, -3358,  2557, -3358, -3358, -3358, 11091, -3358,  2588,
    2732, -3358, -3358, -3358, -3358, -3358, -3358,  2313, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358,  2316,  2319, -3358,  1318,
   -3358,  1129, -3358, -3358, -3358, -3358, 11091, -3358,  2236,  2823,
   -3358, 22954, -3358, -3358, -3358, -3358, -3358,  2320,  2325,  7635,
    2877, -3358,   970, -3358,  2368, -3358, -3358, -3358,  2369, -3358,
   -3358, 37412,  2457, -3358, -3358,   708,   708, -3358,   332,  1129,
     336, -3358,  1323, 37412, 37412,  1336,   743,   743,   743,   628,
     628, -3358, -3358, -3358, -3358, -3358,  1200,  2687, -3358,   869,
     107, 37412, -3358, -3358,   753, -3358,  2330,  2331, -3358, -3358,
   -3358, -3358,   900, -3358,   196, -3358, -3358, -3358, -3358, -3358,
     196, -3358,  2335, -3358, -3358, -3358,  1354, -3358, -3358, -3358,
   -3358, -3358, -3358,  2586,  2379, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358,  2344,  2346,  2347,  2352, -3358,  2354, -3358, -3358,
    2450, -3358, 42972, -3358, -3358,   916, -3358,  1364, -3358, -3358,
    1340, 37412, 19602,  -103,  2353,  2358, -3358, -3358, -3358, -3358,
   -3358,   947,    89, 37412, -3358,  2584, -3358, -3358, -3358, -3358,
     152,  2593,  1243,  1243,  1243,  1243,  1475, -3358, -3358,  2395,
   -3358, -3358,  2360,  2365, -3358, -3358, -3358,  2452, -3358, -3358,
   37412, 37412, -3358,  2451, -3358,   205, -3358,  -161,   336, 11091,
    1889,   791,  2693, -3358, -3358, -3358, -3358,  2678,  1360, 11091,
    2370, 11091,  2371,  1338, -3358, -3358,  2771,  2771, -3358, -3358,
   -3358, -3358,  1342,  1357,    89, -3358, -3358,   834, -3358,  2387,
   -3358, -3358, -3358,   508,   508,  1363, -3358, -3358, -3358, -3358,
   -3358,  1370, -3358,  1374, -3358, -3358,  1354, -3358,   218,  2744,
     218,  2744, 11091,  2808,  2396, 37412,   779, -3358, 44084, 44084,
   37412, -3358, -3358, -3358, -3358,  4868, -3358, -3358,   116, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,  2382,
   -3358, -3358,   443,  2397,  2620, -3358, -3358,  5205,  2779, -3358,
   -3358, 37412,  5205,   665,   150,  2294, -3358,  -103,   348,  2600,
   -3358,    89, -3358, -3358,   336,  2398, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, 20720, -3358, -3358, 19602, 13971,  2477,  1378,
   -3358, -3358, -3358, -3358, -3358, -3358,   179, 11091, -3358, -3358,
   -3358,  2583,  2909,  2914,  2827,  2918,   791, -3358,   923, -3358,
    2824, -3358, -3358, 37412, -3358, 37412, -3358, 37412,  1191, -3358,
   -3358,  2577,    89, -3358, -3358,  2451, -3358,  2962, -3358,   143,
   -3358, -3358,   753, 37412,   218,   196,   218, -3358, -3358, -3358,
   -3358, -3358, -3358, 11091, -3358, 11091,  2419, -3358, -3358,  2795,
   37412, -3358, -3358, -3358, -3358, 11091, -3358, -3358, 42972, 42972,
   -3358, -3358, -3358, -3358,  2400,   995, -3358,  2845,  1392, -3358,
   -3358,  2562, -3358, -3358, -3358, -3358,  2402,  1597, -3358,  1243,
    1259, -3358, -3358, -3358,  2404, -3358,   348, -3358, -3358,   669,
   -3358, -3358, 37412,  2436, -3358, -3358,   336, 37412, -3358,   196,
     196,  2935,   196, -3358,  2936,  2937,   923, -3358,   220, 11091,
    1382,  1388, -3358,  2938, -3358,  2939,  2412,  2413, -3358, -3358,
    1398, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358,   101, -3358, -3358,  2773,  2851, 11091, -3358, -3358,
   40192,  2409, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, 43528, 11091,   116,   665,  2932,  2654,  2934,
   -3358, -3358, -3358, -3358,  2879, 42972, -3358, -3358, -3358, -3358,
   -3358, -3358, 20720, 13395,  1729,  2420, -3358,  2477, -3358,   160,
   -3358, -3358, -3358, -3358, -3358,   196, -3358,   196,   196, -3358,
    2981,  2421, -3358, -3358, -3358, -3358, 35188, 35188, -3358,  2453,
   11091, 42972, -3358,  2862, -3358,  2799,  2510,  2898,  2751,  2428,
   -3358,  2429,  2885, 44084, -3358,  2674, -3358,  2675, -3358, -3358,
   -3358,  2883,  5205,   665, -3358, -3358, 28516, -3358, -3358, -3358,
    2442,  2525,  1173,  2444, -3358, -3358, -3358,  2753, -3358,  2449,
    1406, -3358,   105, -3358, -3358, 40748,  2968, 37412, -3358, -3358,
   32964, 41304,  2443, -3358, -3358, 11091, -3358, -3358, -3358, -3358,
   -3358,  2603, -3358, -3358, -3358,  2609, 13971,   544,   348,  2910,
    2911,   348,   348,   348,   348, -3358,  1173, -3358,  2890,  2458,
    2889, -3358, -3358, 11091, -3358,  2900,  2545, -3358,  2459, -3358,
   42972, -3358, -3358,  2852,  2463,  1402, -3358,  2460, -3358,  2906,
   42972, -3358, -3358,  2843,  2823,  1414, -3358, -3358,  1865, -3358,
   14547, -3358, -3358, -3358,  -103,   348,   348,   671,   671,   669,
   31852,  2471, -3358,   348, 11091,  2472,  2474, -3358,  1243, -3358,
    2994, 42972, 37412, 38524,  2881, 37412,  5205,  2882,  2884, -3358,
    2647, 41860, 42972,  1392,  3008,  2693, -3358, 13971,  2482,  2483,
   -3358,  -103,  -103, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358,  2579, -3358, 31852, -3358, -3358, -3358, -3358,  2568, -3358,
   39080, -3358,  1672, -3358, -3358,  2952,  1053, -3358, -3358,  2511,
   -3358, 42972,   196,  2859, -3358, -3358, -3358, -3358, -3358, -3358,
    1416, -3358, -3358, -3358, -3358, 42972, 42972, -3358, -3358, 26848,
   11091, -3358,  2526, -3358, -3358, -3358,  4868, -3358, -3358, -3358,
    2738,  2494, 31852, -3358,  2579, 39636, 42416, -3358, -3358, -3358,
   23512, -3358, -3358, -3358,  2897, -3358, -3358, -3358,  1517, -3358,
      61, 16800,  2635,  1173, -3358, -3358, 26848, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, 31852,  1418, -3358, -3358, 20720, -3358,
   -3358, -3358, -3358, -3358, 19041,  2404, -3358
};

/* YYPGOTO[NTERM-NUM].  */
static const yytype_int16 yypgoto[] =
{
   -3358, -3358, -3358, -3357, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358,  1195, -3358, -3358, -3358, -3358, -3358,  1232, -1597,
   -3358, -3358, -3358, -3358, -3358, -3358,    66,   895, -3358, -3358,
      63, -3358,  -346, -3358, -3358, -3358, -2561,  -482,  -687, -3358,
   -3358,   264,   -91, -3358, -3358, -3358, -3358, -3358, -3358,  2166,
    -826, -3115, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358,  -353,  -484, -3358, -3358,  -341, -3358, -3358, -2487, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358,  -956,  -893, -3358,
   -3358, -3358, -3358, -1879,  -328, -3358,  -327, -3358,  -326, -3358,
    -325, -3358,  -324,  -323,  -322,  -321, -3358,  -320, -3358, -3358,
    -903, -3358, -3358, -3358, -3358,  -317, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358,  -745, -3358, -3358,  -634, -3358, -3358,  -743,
    -312, -3358, -3358,  -654, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358,  2159, -3358, -3358,
   -3358, -1800, -3358, -3358, -3358, -2161,  1771, -3358, -3358, -1851,
   -3358, -3358, -3358, -1944, -3358, -3358, -3358, -1855,   684, -3358,
   -3358,   619,  -218, -3358, -1555, -1704, -1700, -3358, -3358, -3358,
   -2177, -2165,  -590,  1689,  -965, -2239, -3358, -3358, -3358, -3358,
   -3358, -3358,  -455, -3358, -3358, -2243,  1773, -3358, -3358, -3358,
     881, -3358, -3358, -3358, -3358, -3358, -3358,   303, -3358, -3358,
     301, -1413, -3358, -3358, -3358, -3358, -3358, -3358,  -577,  -471,
    -658, -3358, -2995,  -343, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358,  -825,  -789, -3358, -3358,  -891, -3358,
   -3358,  -909, -3358,  -750, -2037, -3358, -3358, -3358, -3358,  1752,
   -1182, -3358,  2673, -3358,  -463,   118,  1339, -1915, -1258,  -817,
    -805, -2191, -3358, -3358, -3358, -3358,  -209, -3358, -3358,   817,
     209,  1341, -1660,   882,   946, -3358, -3358,   235, -3358, -2854,
   -3358, -3358, -3358,   193, -3358,   194, -3358, -3358, -3358, -1309,
     162, -1285, -3358,  -226, -2220, -3358,     1, -3358,   -49, -3358,
    -510, -1869, -2109, -3358, -3358, -3358,   -31,   246,   304, -3358,
   -2752, -2825, -3358,   745, -3358, -3358,   373, -3358, -1210,   374,
   -3358, -3358, -3358,   381, -3358,  -459, -3358, -3358, -3358,  -468,
   -3358,  -199,  -338, -3358, -3358,  -929, -1844, -3358, -3358, -3358,
   -1786, -3169, -3358,  1764,  -402,  1324, -2207,  -262, -2100, -3358,
    -207, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,  1380, -1040,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -2125,   267, -3358,
   -3358,   928, -3358, -3358, -3358, -1638,  -355, -1371, -2896, -3358,
   -3358, -3358, -3358, -3358, -3358,  1219, -3358, -3358,  1487,  1876,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358,    25,  1112, -3358, -3358, -3358, -3358, -3358, -3358, -1338,
    1793, -3358, -3358, -3358,    -3, -3358, -3358, -3358, -3358, -3358,
    1562, -3358, -3358, -3358,  2256, -3358, -3358, -3358, -3358,   738,
    1149, -3358, -3358, -3358,  2292,  1106,  -537, -1544, -3358,  2661,
   -3358, -3358, -3358, -1420, -2114, -3358,  2364,  -273, -1796,  1557,
    -928, -2738, -3358,   123,  -656,  3215, -3358, -3358, -1051, -3358,
   -3358,  -666, -3358, -3358, -1089, -1083,  2035,  2037,   762,   827,
     744, -3358, -3358,  -572, -3358, -3358, -3358, -1047,  -626, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358,   400, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358,   389, -3358,  1284, -3358,  -980, -3358, -3358,
   -3358,  2123, -3358, -3358, -3358, -3358, -3358, -2067, -1693,   334,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -2052,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -1461, -3358, -1837,
    -287, -3358,  -132, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
    -589,   540,  -588, -2059, -1048,   885, -3358, -3358, -1392,  2162,
   -1773, -3358, -3358, -3358,  1184, -3358, -3358, -3358, -3358, -3358,
     295, -2256, -1256, -3358, -3358, -2726,  -828, -1860,  -813, -3358,
   -2020,  -118, -1580, -1602, -2066,  -702, -1917, -3358, -3358, -3358,
   -3358, -3358,  -749, -3358, -3358, -3358,   -93,  1132, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358,  -566,  -424,  1346, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358,  2192,  2050,  1326,
   -3358, -3358, -2026, -3358, -3358,  1152, -3358,   139, -2048, -1603,
     403, -3358, -3358,   408, -2818, -3358, -3358, -3358, -3358, -3358,
   -3358,   350,  -819,  -542,  2713, -3358, -3358, -3358, -3358, -3358,
   -3358,  2263,  1830, -1678,  2643, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358,  1973,  2729,  -517, -1164, -3358,  -652, -3358, -3358,
    -795, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
    1814, -3358, -3358, -3358, -3358, -3358,  2023, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358,   438,  -663, -3358,  -364,  -695, -3358,  -453,
   -3358, -3358, -3358, -3358, -3358,  -803, -3358,  -674,  -900, -1242,
      68, -2802, -1347,   431,  2077, -2916,  -967, -1126, -1116, -2024,
     -22, -3358,  2199,    33,  -782,  -821,    -7, -2501,  -115,  -521,
   -3358, -2065, -3358, -3358, -3358, -3358,  1624, -3358, -3358, -3358,
   -3358,   747, -3358, -3358, -3358,   402, -3358,   156,   -51, -3358,
   -3358, -3358,   261, -3358,  1224, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358,  2047,  2774,  2462, -3358,  2252, -3358, -3358, -3358, -3358,
   -3358,  -164, -3358,    36, -3358, -2054,  1880,   650, -3358,   944,
    -698, -1000, -3358,  -159, -3358, -3358,   307,  2783,  2476, -3358,
   -3358, -3358, -3358, -3358, -2435,  -820, -3358, -2486, -3358, -3358,
   -3358, -3358,  -987, -3358, -3358,  2168,   239, -3358, -3358,    83,
   -3358, -3358,  -146, -3358,  -160, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358, -3358,  1163, -3358, -3358, -3358, -3358, -3358,
   -3358, -3358, -3358
};

/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
   positive, shift that token.  If negative, reduce the rule which
   number is the opposite.  If zero, do what YYDEFACT says.
   If YYTABLE_NINF, syntax error.  */
#define YYTABLE_NINF -2337
static const yytype_int16 yytable[] =
{
     441,   485,   877,   903,  1208,  1248,   560,  1328,  1072,   873,
    1553,   956,  1362,   481,   948,  1817,   487,  2006,   482,  2062,
    1554,  1064,  1066,  1528,   996,   501,   554,   499,  1494,   556,
    1868,  1429,   914,   507,  1683,   513,  1048,  2618,   132,  1278,
    1409,  1410,  2566,  1411,  1294,  2356,   530,  1099,  2485,  2529,
    2194,  1001,  2378,  2877,  2195,  1272,  2837,  2381,  1101,  1278,
    2515,  2519,  2521,  1122,  1877,  2541,  1126,  1574,  3082,  1719,
    3160,   548,  3141,  2551,  1582,  2555,  1475,  1476,  1295,  1120,
    3089,  1584,  2717,  2710,  1587,  2712,   549,  2550,  1493,  2338,
    1800,  1133,  1134,  1135,  1333,   999,  2201,  1495,  2614,  2533,
    2534,  1571,   887,  2128,  2595,  1507,  1334,  1490,   552,  2997,
     441,   575,  1037,   441,   559,   565,  1520,  1521,  1522,  2207,
    2150,  2151,  1511,  2211,  1690,  1527,   549,  1598,  1600,  1693,
    1142,  1143,  1144,   978,  2226,  2182,  2028,  1696,  1697,  2694,
    3449,  2447,  3213,  2598,  2235,  1037,  3667,  2789,  2736,  1722,
    1182,  2695,  2740,  3352,   581,  3276,  2209,  2210,  3577,  2212,
    3258,  2182,  2215,  2216,  1432,  2177,  2219,  2625,  2626,  1037,
    3146,  2228,  2340,  2582,  1330,  2231,  2232,  2233,  2234,  2182,
    2582,  2243,  2238,  2596,  2240,   966,  3184,  2600,  3666,  2342,
    2249,   843,   844,  2254,  2255,  1626,  1164,  2186,  1170,  2193,
    3323,  2616,  2617,  -793,  3043,  3177,  3182,  2055,   569,  3183,
    1916,  2627,  3258,  1390,   494,   843,   844,  3044,  3275,  2701,
    3513,  3280,  1296,  2050,  2300,  2182, -1351,  2098,  3191,  3350,
    3045,   892, -1392,  3811,  3212,  1032,  1038,  3811,  3043,  2504,
     843,   844,  2790,  2278,  2770,  2075,  3043,  1283,  2288,  1029,
    1330,  3044,  3732,  2144,  2294,  2295,  1336,  2587,  2298,  3044,
    3364, -1351, -2250,  3369,  3045,  1129,  3704,   938,  2267,  1038,
     447,   448,  3045, -1637,   843,   844,  1386, -1637,  3313,  -485,
    2052,  1330,   843,  3178,  2002,   491,  1229,  2587,  -396,  2531,
    1208,  2306,   801,  1038,  2497, -1637,   506,  2723,  2724,  2725,
   -1392,  2549,  1043,  4050,   511,  2244,   949,  2573, -1788,  2587,
    -486,  2687,  1289,  1391,   595,  3578,  1291,  1392,  2702,  2161,
    3370,  2119,  3259,   967,   654,   495,  2281,  1994,  1393,   814,
    1432,  1735,  2668,  2578,  2095,  3633,  2901,  2902,   131,   586,
    1208,  2161,  1464,  3085,  1208,  2161,  1978,  1426,   512, -2184,
     951,  2536,  3362,  3085,  1276,  2927,  2586,  1464,   522,  2367,
    2684,  3116,  3078,  2161,  2825,  1814,  1306,   959,  1353, -2185,
   -1392,  1921,  3668,   653,  3259,  2500,  1857,  2096,   129,  3840,
    3117,  1926,  2422,  2368,  1165,  2282,   131,   893,  1235,   570,
    2183,  2580,  3606,   993,  1176,  3362,  3841,  2588,  2789,  1858,
    3478,  2429,  2498,  1425,  1166,   655,  2423,  1303, -1392,  2161,
    3118,  1299,  1922,  1715,  3607,  2714,  2183,   523,  3260,  -570,
     952,  1130,  2369,  1927,  1496,  2370,  1967,  1497,  1222,  3387,
     504,   815,   973,  2371,  2183,  1307,  1435,   572,  3391,  2839,
    2840,  2841,  3008,  3009,  2893,  1394,  2758,   559,   977,   565,
    2928, -2184,  1465,  3458,  2501,  1718,  3461,  1426,  2832,  2669,
    1429,  1426,  1736,  3729,   610,  2109,  2076,  1480,   565,  3733,
     656, -2185,  2301,  1815,  2283,  2872,   929,   648,  4051,  1426,
    2183,   559,  1304,   658,   954,   955,  1684,  2194,  2182,  1687,
    1872,  2195,  2910,  2790,  2881,  1692,   805,  1387,   995,   816,
    3343,  2919,  1718,  2003,  1408,  2033,  2890,  2034,  1698,  1699,
    2037,  2694,  1720,  2921,  1333,  2110,  3669,   990,   991,   549,
     889,   994,  1433,  2695,   998,  1426,  1334,  3015,   650,  3444,
    2124, -1392,   802,  2300,  1395,  3344,  1312,   905,  1260,  2791,
    1586,  3086,  1800,   592,   928,   968,   559,  2284,   918,  2912,
    2038,  3086,  2039,   652,  1167,  1606,  2300,  3636,  2571,   549,
     441,  3371,  3261,  3772,   937,  2559,  2120,  2718,  2582,  1427,
     944,  1177,   549,   549,  3262,  2008,   950,   957,   918,  2575,
    2576,  1609,   559,   492,  2009,  1333,  2661,  1579,  1292,  2582,
   -1351,   979,  1741,  1705,  3705,   984,  2589,  1334,  2030,  1857,
     989,   441,   441,   870,   918,   441,   559,   870,   441,   559,
     549,  3634,  2691,  1168,  3315,  2611,  2692,  2268,  -570,  1235,
    2687,  2077,  1858,   939,  3500,   870,  3262,  2619,  1917,  2186,
    2599,  1030,  2601,  2703,  3514,   930,  2193,  2372,   823,  2612,
    3730,  2331,  3579,  3324,  2716,  1042,  -793,  1695,  2771,  1284,
    1618,  3741,  2624,  2471,  3277,  3851, -1788,  3263,  2633,  4039,
   -1392,  2342,  1722,  2245,  2300,  1388,  1627,  1634,  3670,  3185,
    2540,   870,  2161,  3428,  2648, -1392,   976, -2250,   496,  1427,
     969,  2505,  3214,  1427,  1169,   894,  2579,  1033,  1433,  1169,
    1388,  3706,  2532,  1742,  2792,  2161,  1388,  2679,  2680,  2681,
    2682,  1427, -1392,  3046,  3649, -2250,  3651, -1392,  2572,   826,
    2882,  2883,  2577,  3679,  1290,   114,  1300,  2900,  3683,  1131,
   -2336,  3171,  -485,   589,  2842,  2843,  2903,  3210,  1995,  1169,
    3014,  -396,  2285,  1388,   684, -1637,  1275,  3046,  2111,  3010,
    1706,   618,   616,  2183,  1707,  3046,  2909,  1427,  1979,  2306,
    2590,  2556,  3609,  -486,  1149,  3190,  1151,  3211, -1788,   796,
     797,  2690, -2184,  3193,  1688,  3179,  2982,  2373,   809,   807,
    3218,  1169,  -570,  1352,  3232,  2056,  3648,  2056,  3650,  2904,
    3096,  2301, -2185,  1873,  3104,  2332,  1232,  2190,  1426,   890,
    2791,  1169, -2184,   689,  2485,  2133,   115, -1789,  3026,  1227,
     559,   549,  1666,  2161,  2301,   549,  3164,  3150,  3101,  2911,
    1235,  1426, -2185,  3130,   116,  1590,  1412,  3134,  3121,   827,
     445,  1498,  2374,   446,  1499,  1724,  1301,  3919,  3131,   114,
    3243,  3637,  3135,  1224,  2057,  2075,  2057,  2694,  3772,  1178,
    1179,  1180,  2658,  2225,   559,  2813,   651,  1743,  1302,  2695,
    1261,  2375,  1240,  3233,  2844,   921,  1744,  2913,  3692, -1788,
    2058,   810,  1745,   908,  3345,  1449,  2394,  1206,   505,   539,
     531,  2182,  1206,  2302,  1257,  2194,  1882,  1683,  1683,  2195,
     117,  2312,   700,  2582,  3342,  2385,  2386,  3147,  2196,   828,
     444,  2149,  3736,  1265,  3738,  2122,  3057,  1212,  2123, -1789,
    1329,  2126,  2127,   922,  -569, -2308,  1278,   118,   133,  1872,
    1876,   532,  2301,  2196,  1360,  3638,  1318,   575,  2134,  1426,
     599,  3235,   711,  2059,  2197,  3963,  3612,   549,   116,  2462,
    3236,  1358,   549,  2135,   870,  1361,  3613,  2520,  2867,  2442,
    3244,  2876,  3639,  3028,  2136,  3355,  1746,  1786,  2383,  1266,
    2719,  2023,  3658,  2031,   119,   716,  1413,   870,  1417,  2489,
    3785,  2537,  2390,  2868,  1840,  3835,  2036,  2463,  2439,  1554,
    1424,   549,   449,  1418,   600,   923,   533,  1267,  3872,  2011,
    3791,  2302,  3105,  2395,  2691,   549,  3250,  1789,  2692,  2222,
    2201,  3031,  -569,  2404,  3019,   549,  2060,  2659,  3964,  1800,
   -1789,  2196,  3194,  1591,  2303,  2918, -2308,   811,  3439,  3257,
    1427,   490,  2197,  2226,  -569,  2554,   540,  2333,  2137,  1673,
    2198,   503,  2186,  1592,  2193,  1554,  1360,  1333,  3369,  3094,
    1747,  1623,  1454,  1427,  1457,  1569,   549,  3662,  3663,  1334,
    2441,  3333,  3195,  3510,  2012,  3767,  3196,  1361,  2449,  2546,
    2161,  1360,   711,   711,  3768,  2161,  2076,  3237,   468,  1450,
    2547,   909,  3480,   445,  2456,   870,   446,  1491,  2133, -1788,
    1624,  2845,  1361,  1674,   120,   588,  3329,  1461,  3007,  1213,
    3335,  3336,  1491,  2620,  3013,  3370,  3197,  3684,   910,  2569,
    2464,  1608,  3985,   601,   614,  3659,  2869,  3144,  1863, -1788,
    1319,   736,  -569, -1659,  1464,  3245,  3148,  1625,  2198,  2071,
    2072,  2631,  2303,  1464,   469,  2452,  3140,  3920,   517,  2024,
     711,  1554,  2138,  1464,  3151,  2468,  2183,  1070,  2306,  1555,
    3614,  2814,  1639,  2690,  2754,   622,   121,   451,  3198,  1360,
     744,  1427,   470,   559,  1207, -1660,  3502,  3503,  2112,  1207,
    2621,   829,   830,   831,   832,   833,   834,  1643,  3020,  2171,
    1361,   590,  2189,  1407,  3058,   524,  1426,  2257,   835,   924,
    2683,  1268,   471,  1593,  1451,  1667,  1668,  1669,  3281,  1671,
    2139,  2061,  3763,  3965,  3071,  1071,  1246,   122,  2224,  -881,
    2429,  2134,  1686,  1615,  2429,  3246,    43,  2570,  1691,   559,
    2199,   525,  1873,  1611,  -726,   534,  2135,   623,   549,   549,
   -1789,  2077,   527,  -569,  1512,   559,   472,  2136,  2172,  2190,
     452,  3511,  1725,  1516,   535,  1653,   549,   549,   925,  2013,
     926,   736,   736,  1540,  1675,   624,  4003,  1642,  2548,  2341,
   -1789,  3769,  3878,  2622,  2173,  1651,  2922,  1670,   625,  1672,
   -1659,  -760,  3779,   543,   536,  1390,  2311,  1070,  1070,   441,
     441,   441,   549,   441,   549,  3488,  2465,  1644,  3879,  2583,
     626,  2583,  1187,   627,  1694,  1685,   441,  1354,   559,  3615,
    3824,   126,   441,   542,   628,  -187,  1269,  2317,  1678,   549,
    1654,  2137, -1660,  1663,  2200,   453,   954,   955,  2196,   736,
    2025,  -569,  2095,  3199,   629,   537,  1270,  2174,   544,  3200,
    2691,  3512,   870, -1637,  2692,  1121,  2026,  1852,  1853,  1854,
    2081,  1878,  3868,  1145,  3855,  1070,  1640,  2137,   630,  1816,
     559,   -59,  2171,  2056,   631,  2632,   473,  2749,  2750,  2312,
    1188,  3378,  3561,    55,   549,  3201,  1271,  3873,  1819,  2171,
    2886,  2697,  1355,  2828,  1726,  1391,  2440,  3560,  2802,  1392,
     127,  1679,  2250,  1554,   550,  1727,  1192,  -569,  2133,  1276,
    1393,   632,  1575,  2081,  2251,  3723,  1750,  1655,  1005,  3880,
    2175,   549,  2200,  1125,   718,  2819,  3714,  1818,  1427,  2081,
    2017,  2172,  2057,  2018,  3306,  2138,  1705,  2082,   474,  2222,
     559,   441,   441,   441,  3576,  2446,  2133,  3202,  2172,  3460,
    3405,  3715,   984,  3943,  1867,  3724,  1217,  2173,  2058,  1218,
    2318,   553,  3406,  3951,   559,  3379,  2897,  1888,  1888,   559,
    1888,  2083,  2084,  3307,  2173,   549,  1360,  1884,  1468,  1469,
    1470,  1451,  1889,  1889,  2321,  1889,  2133,  3203,   555,   475,
    1481,  3881,   476,  2139,  3980,  -569,  1006,  1361,   235,  2690,
     237,  1726,  1196,  3380,  2801,  2322,  1279,  2831,  3882,  1197,
    1492,   477,  1727,  3560,  3560,  1656,  2666,   454,  3947,  1513,
    2174,  2059,  1517,  2672,   954,   955,  1891,  1394,  1892,  3562,
    3883,  2134,  3948,   633,   455,  2044,   478,  2174,  2673,  3204,
    2083,  2084,  2045,  1536,  1537,  4012,  2135,  1541,   566,  3771,
     634,   479,  1280,  1007,  1728,  1246,   635,  2136,  4025,  4026,
    3575,  2640,  2667,  2641,   636,   567,  1556,  1557,   456,  2134,
    -491,   457,  3725,   954,   955,  1008,  2085,   116,  3686,  1021,
    1576,  2252,  1198,  1706,  2135,  3351,  1680,  1707,   637,  2044,
    3235,  2887,  1219,  2175,  2060,  2879,  2853,  2914,  2642,  3236,
    3399,   638,   639,  2016,  3720,  2176,  3721,   458, -2305,  2134,
    2175,   843,   844,   520,   578,   459,  1395,   521,  3157,  2643,
    1723,  3400,  3074,  1729,  2135,  2223,  3076,   577,  2925,  3407,
    2048,  2137,  1200,   581,  2189,  2136,  2930,  3186,  2224,  2932,
    3187,   640,   583,  3560,  3560,   549,  1345,  1346,  1730,  1022,
    1232,  2074,  2190,  2644,  3337,  3401,   585,  1888,  1888,  1888,
    3611,  1728,  2070,   559,   559,   549,   549,   641,   596,  2137,
     457,  1009,  1889,  1889,  1889,  1172,  1173,  1010,  3172,  1174,
    1175,  3175,  3176,   870,   598,  1405,  1563,  1564,  3783,   642,
    2107,   643,  3800,  1023,  1369,  1370,  3884,  3451,  3188,  2118,
    2069,  2583,   606,  1731,  1983,  1984,   611,  1011,  1024,  2137,
     649,  1248,   794,  2125,   798,  2090,  2091,  2092,  1446,  2000,
    2001,  1447,  3040,   800,  1448,  3560,  3237,   819,   549,   884,
    1729,  2143,  3621,   904,  2114,  2138,   898,   899,  3560,   900,
    2132,   901,  2873,  2020,  2021,  1012,   549,  2610,   652,  2489,
    3560,   954,   955,   920,  2311,  1730,  1201,  1278,  2312,  1554,
    3063,  1577,  2225,  2697,  2180,  2181,  2696,  3874,  1013,   811,
    1203,   930,  2313,  2138,   942,  3331,   960,  1578,  2176,  2061,
     882,   883,  2875,   886,  1014,  1732,  3560,   446,  2347,  2348,
     961,  3452,  3453,  2139,   965,  2176,  3454,  3455,  3560,  2152,
    2344,   114,  2554,   988,  2324,   992,  2443,  2444,  2159,  2160,
    1731,  1003,  1554,  2138,  2167,  2168,  2169,  2170,   870,  2178,
    2179,  1018,  4002,  1381,  1382,   843,   844,  1683,  2253,  1020,
    3560,  2139,  1025,  1893,  2772,  2773,  3560,  1027,  2645,  1035,
    2631,  2266,  2803,  2804,  4006,  4007,  2379,  2834,  2835,  1036,
    1554,  2379,   118,  2276,  1894,   608,   609,  3363,  1044,   612,
     613,  2934,  2935,   615,  3081,   617,  3024,  2935,  1895,  3166,
    1388,  2139,  3228,  3229,  1037,  3560,  2646,  1896,  2336,  1045,
     559,  3270,  3271,  3282,  3283,  3560,  3426,  2181,   441,  1046,
    1155,  1156,  1732,   549,  1909,  1152,  2339,  2279,  2280,  1047,
    2287,  1049,  2289,  2290,  2291,  2292,  2293,  1050,   559,  2296,
    2297,  3819,  3588,  3589,  3590,  3591,  3560,  1051,  3560,  2452,
    1054,  1897,  1898,  1055,  3819,  1157,  3560,  3560,  3442,  3443,
    3385,  3386,  3472,  3473,  1158,  1056,  3830,  3501,  3473,  2437,
    1057,  1951, -1392,  3389,  1058,  1955,  1059,   663,  3393,  1899,
    3504,  3443,  3626,  3627,   559,  3560,  3631,  3443,  1060,   559,
    1601,  1602,  1603,  1604,  1605,  1061,  3560,  1062,  1159,  1980,
    2387,  3632,  3443,  3416,  1595,  1596,  3418,  3642,  3643,  1160,
    3560,  3560,  1065,  1491,  3644,  3645,  1171,  3223,  3646,  3645,
    1181,   663,  3701,  3702, -1392,  2824,  3802,  3627,  1038,  1067,
    3560,  3560,  3803,  3627,  1002,  3560,  1161,  1900,  1068,  2828,
    1069,  3356,  3808,  3473,  1073,  3689,  3819,  1248,   684,  1554,
    3892,  2678,  3907,  1074, -1392,  1210, -1392,  2189,  3956,  3957,
    4023,  4024,  4063,  4064,  2379,  1075,  2523,  2528,  1076,  2866,
   -1392,  1597,  1599,  1037,  1077, -1392,   894,   559,  1544,  1545,
    3967,  3967,  3505,  3506,  1078,  3356,  1079,  3673,  1901, -1392,
    1080,  1162,   684,  3108,  3109, -1392,  3033,  3034,  3508,  1615,
     688,  1081, -1392,  3268,  3269,  2565,  2379,   689,  2457,  1082,
   -1392,  1084,  1085,  1086,   549,  1225,  1090,  1091,  1211,  2697,
    1092, -1392,  1093,  1094,  1095,  1238, -1392,  1096,  1097,  1098,
    2475,  1100,  1102,   693,  3819, -1392,  1103,  1104,  1105,  1106,
    1107, -1392,  3819,  3990,   688,  1108,  1109,  1110,  2490,  1111,
    1112,   689,  1113,  2933,  1114,  1115,  1116,  1242,  1243,  1117,
    3242,  1118,  1119,  2311,  1123,  2509,  2511,  3786,  2696,  1124,
    1127,  3819,   559,  1128,   559,   559,  1132,   693,  1136,  3780,
    1137,  1138,  4018,  2344,  1139,  1140,  1141,  1209,  1246,  1249,
    1239,  1258,  1263, -1392,  1259, -1392,   700,  1038,  1264,  1276,
    1285,  1286,  1287,  1297,  1555,  2508,  1288,  1293,  1298,  1311,
    1313,  1314,  1316,   559,   559,  1321,  3819,  3819, -1392,  1330,
    1339,  4047,  1337,  3284,  1342, -1392,  1343, -1392,  1347,  1350,
    1351,  1399,  1400,  1401,  1404,  1406,  1407,  1419,  1421, -1392,
     700,  1423,  1430,  1431, -1392,  1439,  1440,  1441,  1436,  1443,
    1444,  1206,   711,  1464,  1471,  1131, -1392,  1501,  1483,  1509,
    2266,  1485,  1552,  3396, -1392,  1565,  2585,  2266,   715,   716,
    2266, -1392,  1570,  1585,  2266,  2597,  2606,  1588,  1607, -1392,
    1613,  2607,  1621,  1629,  1630,  1631,  2606,  1632,  2266,  2266,
   -1392,   559,  1633,  1638,  2637, -1392,   711,  1646,  2266, -1392,
    1555,  1652,  1048,  2628, -1392,  1661,  1665,  1689,  2636,   549,
    1700,  1702,   715,   716,  2638,  2639,  1704,  1716,  2608,  2609,
   -1392,  1811,  1820,  1822,  2266,  2657,  1821,  1367,  1368,  1369,
    1370,  1371,  1372,  1823,  1373,  1374,  1375,  1376,  1377,  1378,
    1379,  1824,  1380,  2635,  1825,  3924,  1826,  1827,  3927,  3928,
    3929,  3930,  1828,  1829,  1830,  1831,  1839, -1392,  1832,  1833,
    1834,  1835,  1836,  1837, -1392,  1838,  1841,  1847,  1848,  1850,
    1855,  1860,  1879,  2706,  1865,  1880,  1907,  1904,  1919,  1908,
    1910,  1912,  1913,  1914,  1920,  1923,  1930, -1392,   549,  2266,
    1924,  1929,  3961,  3962,  1925,  1931, -1392,  3969,  1932,  1933,
    3973,  1934,  1935,  1936,  1939,  1938,  1940, -1392,  1941,  1943,
    1937,  1884,  1944,  1042,   559,   559,   559,  1945, -1392, -1392,
    1946,  1947,  1948,  1949,  1950, -1392,  1952,  1953,  3977,  1954,
    1956,   736,  1957,  1759,  1760,  3357,  1958, -1392,  3358, -1392,
    1959,  1960,  1961,  1962,  1963,  2015,  1964, -1104,  1965,   742,
    1966,  2049,  1968,  1971,   744,  1969,  1970,   745,  1381,  1382,
   -1392, -1392,  1972,  1973,  -694,  -694,  1762, -1392, -1392,  1974,
    1975,  1976,  1981,  -694,  1977,   736,  1982,  1765,  1985,  3357,
    1759,  1760,  3358,  1986,  1987,  1766,  3496,  3497,  1996, -1392,
    1997,  1998,  1999,   742,  2696,  2005,  2027,  2010,   744,  1169,
    2035,   745,  2089,  1768, -1225,  2103,  2048,  2051,  3359,  3360,
    2053,  2067,  2115,  1762,  2117,  2121,  2141,  1330,  2142,  2145,
    1769,   549,  2146,  2148,  1765,  2153, -1392,  2154,  2158,  2196,
    2155,  2208,  1766,  2156,  2157,  2213,  2214,  2217,  2218,   559,
    2220,  2221,  1555,  2227,  2229,  2230,  2237,  1554,  1774,  2269,
    1768,  2236,  3359,  3360,  3522,  2241,   559,   559,   559,  2242,
    3522,  2314,  2247,  2248,  1330,  2379,  2337,  1769,  2341,  2852,
    2346,  1388,  2349,  2350,  2361,  2854, -1392,  2856,  2366,  2351,
    2352,  2363,  2384,   559,  2819,  2353,   697,  2396, -1392,  2397,
    2409,  2414,  2416,  2430,  2418,  1774,  2432,  2433,  2434,  2445,
    2435,  2436,  2451, -1278,  3278,  2460, -1392,  2458, -1392,  2851,
    3597,  2476,  2469,  2480,  1777,  2492,  2493,  2494,  2495,  2096,
    2095,  1778,  2512,  2513,  2538,  2514,  2544,  2560,  2535, -1392,
   -1392,  2542,  2567,  2543,  1779,  2568, -1392,  2613,  2615,  2649,
    2665,  2671,  2685,  2686,  2698,  2699,  1786,  1718,  2728,  2675,
    2998,  2677,  2733,  2741,  2742,  2266,  1866,  2700,  2678,  2721,
    2606,  1777,  2755,  2726,  2820,  2810,  2731,  2734,  1778,  2737,
    2756,  2743,  2744,   559,  2745,  2746,  2266,  2817,  2747,  2045,
    2751,  1779,  2752,  2757,  2816,  2786,  1780,  2761,  2762,  2763,
    2838,  2606,  2764,  2849,  2765,  2766,  2767,  2769,  2774,  2606,
    2775,  2776,  2606,  1781,  2777,  2850,  2855,  2779,  2781,  2937,
    2863,  2874,   549,  2796,  2920,   621,   622,  2783,  2784,  2785,
    2798,  2936,  2923,  2800,   549,  2805,  2836,  2807,  2992,  2823,
    2808,  2822,  2833,  1780,   441,  2880,  1554,  2830,  3002,  2884,
    2888,  2276,  2917,  2907,  2885,  2908,  2926,  1759,  1760,  3012,
    1781,  2993,  1072,  1122,  1126,  3022,  1785,  2996,  2999,  3000,
    3004,  3011,   792,  3016,  1787,  3018,  -403,  3029,  3027,  3039,
     549,  3050,  3053,  3042,  2791,  3049,  2003,  3051,  -694,  -694,
    1762,  3060,  3006,  3052,  3084,  3088,  1217,  -694,   623,  3059,
    2081,  1765,  3106,  3114,  3126,  3129,  3068,  3132,  3091,  1766,
    3069,  3070,  3113,  1785,  3072,  1759,  1760,  3080,  3122,  3095,
    3525,  1787,  3123,  3133,  3127,  3737,   624,  1768,  2565,  3152,
    3145,  3153,  3776,  3154,  3169,  3170,  1793,  3173,  3192,   625,
    3216,  1330,  3217,  3219,  1769,  2267,  -694,  -694,  1762,  3224,
    3226,  3222,  3249,  3266,  3273,  -694,  3274,  3213,  3285,  1765,
    3286,   626,  3288,  3287,   627,  3289,  3290,  1766,  3291,  3292,
    3293,  3079,  1774,  3918,  3302,   628,  3294,  3295,  3296,  3298,
    3300,  3303,  3305,  1793,   792,  1768,  3308,  3314,  1794,  3793,
    3794,  2853,  3796,  3271,  3316,   629,  2475,  3317,  3322,  1330,
    3325,  1795,  1769,  3327,  3321,  3328,  3332,  3376,  2490,  3103,
   -1312,   559, -1317,  3341,  3353,  3354,  3377,  3918,  3384,   630,
     559,  1796,  3392,  3210,  3403,   631,  2457,  3388,  3390,  3404,
    1774,  3408,  3410,  3411,  3429,  1794,   559,  3412,  1777,  1797,
    3413,   792,  3414,  3415,  2107,  1778,   792,  1248,  1795,  3417,
    3647,  3430,  3433,  3440,  3918,  3446,  3438,  3447,  1779,  3445,
    3459,  1555,   632,  3448,  3462,  3464,  3465,  3466,  1796,  3468,
    3481,  2325,  3470,  3487,  3484,  3844,   792,  3845,  3846,  3485,
    2266,  3490,  3492,  3509,  3518,  3519,  1797,  3526,  2266,  3524,
    2606,  3585,   792,  2713,  3532,  4057,  1777,  3527,  3528,  1555,
    3529,  3530,  3593,  1778,  2606,  1554,  3531,  3570,  2266,  3283,
    1780,  3587,  2379,  3571,  3594,  3618,  1779,  3596,  4057,  3595,
    3620,  3628,  1554,  3623,  3625,  3653,  -270,  1781,  1554,  3680,
    3675,  3690,  3699,  3707,  3709,   792,   792,   792,   792,  3710,
    3635,  3934,  3711,  3712,  3672,  2661,  3718,  3731,  3744,  3741,
    3770,  3777,  3693,  3789,  3766,   792,  3778,   820,   622,  3782,
    3795,  3797,  3798,  3804,  3805,  3806,  3807,  3815,  1780,  3814,
    3820,  3825,  3826,  3827,  3838,  3320,  3829,  3847,  3856,  3848,
    1785,  3858,  3859,  3851,   633,  1781,  3860,  3863,  1787,  3864,
    3866, -2097,  3869,  3870,  3871,  3876,  3877,  3889,  3890,  3897,
    3256,   634,  3911,  3891,  3908,  3674,  3913,   635,  3925,  3926,
    3933,  3938, -1464,  3225,  3942,   636,  3940,  3941,  3945,  3944,
     559,  3949,  3950,  3954,  3971,  3979,  3975,  3988,  3934,  3976,
     623,  3983,  3986,  3992,  3987,  3999,  3995,  3996,  1785,   637,
    4005,  4010,  4020,  4017,  4037,  4040,  1787,  4041,  4048,  4058,
    1793,  2299,   638,   639,  2345,  2509,  2574,  3231,   624,  3234,
    2565,  3564,  3677,  3828,  3572,  1341,  3953,  3682,  1555,  3566,
    4061,   625,  4019,  4013,  3543,  3544,  3546,  3547,  3549,  3550,
    3551,  3552,  3553,   559,  4027,  3554,  3774,  3894,  3812,  3895,
    3557,  3823,   640,   626,  1871,  2508,   627,  1755,  1403,  3685,
    2634,  1798,  1794,  3090,  3093,  3788,  3698,   628,  1793,  3839,
    3604,  3959,  3994,  4045,  4060,  1795,  3932,   597,   641,  2256,
    3499,   792,  3251,  2711,  3167,  3256,  2662,   629,  2591,  2263,
    3156,  3180,  3181,  3220,  1844,  1796,  3520,  3409,  3366,  3330,
     642,  3365,   643,  2379,  3394,  3159,  3075,  3120,  2788,  3073,
    3077,   630,  3728,  1797,  3734,  3517,  3641,   631,  1859,  3691,
    1794,  3584,  2335,  3523,  3158,  2652,  1703,  2260,   559,  2130,
    3368,  1842,  2477,  1795,  2073,  1359,  2809,  2459,  1326,  2496,
     902,  1253,  3605,  2094,  1589,  3301,  3113,  3083,  1594,  1508,
    3630,  2382,  3128,  1796,   632,  3419,  3498,  3849,  3005,  3850,
    2450,  3162,  3423,  1482,  3495,  2326,  3968,  4004,  3483,  3395,
    2503,  1797,  2358,  3099,  3312,  1460,  2483,  3098,  3139,  4065,
    3834,  3437,   891,  1416,   792,   792,   985,  1677,   876,  1864,
    3087,  3955,  3713,   792,   792,  1881,  4049,   792,   792,   792,
    3993,  4066,  1637,  3799,   792,  3398,  3102,   792,   792,  2871,
     792,   559,   792,  3124,  3836,  2467,  2104,  3326,  3486,   792,
     792,   792,  1241,   792,  1635,   822,  3586,  1851,  1453,  1641,
     792,   792,  2720,   792,   792,   824,     0,  3592,     0,   792,
    1245,   792,   792,   792,     0,   792,   792,   792,   792,   792,
     792,   792,   792,  1561,   559,   792,   792,  3299,   792,     0,
     792,     0,     0,     0,   792,  3888,   792,   792,     0,  1650,
       0,     0,     0,     0,  3494,     0,   633,     0,   792,   792,
     792,     0,     0,     0,     0,   792,  3256,  3256,   792,     0,
       0,   792,     0,   634,     0,   792,     0,     0,     0,   635,
       0,     0,   792,   792,  3516,   792,   792,   636,   792,  3888,
     792,   792,   792,   792,   792,   792,   792,   792,   792,   792,
     792,  3774,     0,  1183,  1184,  1185,  1186,  1187,     0,     0,
       0,   637,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   638,   639,   792,     0,     0,     0,
    3568,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3567,   549,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3256,  4034,     0,     0,
       0,     0,     0,     0,   640,     0,     0,     0,     0,     0,
       0,   792,     0,     0,     0,  1188,     0,     0,     0,     0,
     792,     0,     0,  3601,  3603,     0,  3569,     0,     0,     0,
     641,     0,     0,     0,  4034,     0,     0,     0,  1189,  1190,
    1191,  1192,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   642,     0,   643,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  3888,     0,  3657,     0,
       0,     0,     0,  3664,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3437,     0,     0,     0,     0,     0,
       0,     0,     0,  1193,  3697,  1194,  1195,  1196,     0,     0,
       0,     0,     0,     0,  1197,     0,  1555,     0,     0,   549,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3688,     0,     0,     0,     0,     0,  3494,     0,  3494,     0,
    3722,  1756,   792,     0,     0,     0,     0,     0,  1757,  1758,
       0,     0,     0,     0,     0,     0,  3735,     0,     0,     0,
    1759,  1760,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  3745,     0,     0,     0,  1198,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1761,
     792,     0,     0,  1762,  1763,     0,     0,     0,  1764,     0,
       0,     0,     0,     0,  1765,     0,     0,     0,     0,     0,
       0,     0,  1766,     0,     0,  3601,     0,     0,  1767,     0,
    3792,     0,     0,     0,     0,     0,  1199,  1200,   764,     0,
    1768,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2379,     0,     0,  1330,     0,     0,  1769,     0,     0,
       0,     0,     0,     0,  1770,  1771,     0,     0,     0,     0,
       0,  1772,     0,     0,     0,     0,   792,   792,   792,  1773,
       0,     0,     0,  -819,     0,  1774,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1555,     0,     0,     0,     0,
       0,     0,     0,  1775,   792,     0,     0,   792,     0,   792,
       0,   792,   792,     0,     0,     0,     0,     0,     0,  2276,
    2276,     0,     0,     0,     0,     0,   792,     0,     0,     0,
       0,     0,     0,     0,     0,  3970,     0,     0,     0,  1776,
     986,  1777,     0,     0,     0,   792,     0,     0,  1778,   559,
       0,  1201,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1779,     0,     0,  1202,  1203,     0,     0,     0,     0,
    3899,     0,     0,  3905,     0,     0,     0,     0,  2344,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  1052,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1780,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  4044,     0,     0,
    1781,     0,  1083,     0,  1782,     0,     0,     0,     0,     0,
       0,     0,     0,   559,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3981,     0,     0,  3984,  4062,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1783,     0,     0,     0,     0,  1784,  3960,     0,     0,
       0,     0,     0,  1785,     0,     0,   559,     0,     0,     0,
    1786,  1787,     0,     0,  1147,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3997,  3998,     0,     0,  1788,     0,
       0,     0,  4035,     0,     0,     0,     0,     0,     0,     0,
    1789,  1790,  1791,  1792,     0,   559,     0,     0,     0,     0,
       0,   792,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1793,  1555,     0,     0,     0,     0,  4035,
       0,     0,     0,     0,     0,     0,     0,   559,     0,     0,
       0,  1555,     0,     0,     0,     0,     0,  1555,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  1794,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1795,     0,
       0,     0,     0,     0,     0,     0,   792,     0,     0,     0,
     792,     0,     0,     0,     0,   792,   792,     0,  1796,     0,
       0,     0,     0,     0,   792,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,  1797,     0,   792,     0,
     792,     0,     0,   792,   792,   792,     0,     0,   792,     0,
       0,     0,     0,     0,     0,     0,   792,  1366,     0,     0,
       0,     0,     0,     0,   792,     0,   792,     0,   792,   792,
       0,   792,     0,     0,     0,     0,   792,   792,   792,     0,
       0,     0,     0,   792,   792,   792,     0,   792,     0,   792,
       0,   792,     0,   792,     0,   792,  -819,     0,     0,     0,
     792,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   792,     0,     0,     0,   792,     0,
       0,   792,     0,     0,     0,     0,     0,   792,     0,     0,
     792,     0,     0,     0,   792,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1462,  1463,     0,     0,     0,     0,     0,     0,     0,  1473,
    1474,     0,     0,  1477,  1478,  1479,     0,     0,     0,     0,
    1484,     0,     0,  1486,  1487,     0,  1488,     0,  1489,     0,
       0,     0,     0,     0,     0,  1503,  1504,  1505,     0,  1506,
       0,     0,     0,     0,     0,     0,  1514,  1515,     0,  1518,
    1519,     0,     0,     0,     0,  1523,     0,  1524,  1525,  1526,
       0,     0,  1529,  1530,  1531,  1532,  1533,  1534,  1535,     0,
       0,  1538,  1539,     0,  1542,     0,  1543,     0,     0,     0,
    1546,     0,  1550,  1551,     0,     1,     2,     0,     0,     0,
       0,     0,     0,     0,  1558,  1559,  1560,     0,     0,     0,
       3,  1147,     4,     0,  1566,     0,     5,     0,     0,     0,
       0,     0,     0,   840,     0,     0,     0,     0,   841,     6,
       7,     0,     0,   801,   842,     0,     8,     0,     0,     0,
       9,    10,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    11,     0,     0,   843,   844,     0,     0,
       0,     0,     0,     0,     0,     0,   845,    12,   846,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   847,     0,   848,   849,     0,    13,     0,     0,
       0,     0,     0,   850,     0,    14,    15,    16,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    17,    18,     0,
       0,     0,     0,     0,     0,     0,     0,  1649,     0,     0,
      19,     0,     0,     0,     0,     0,  1664,     0,     0,     0,
       0,     0,     0,    20,     0,     0,     0,     0,     0, -1637,
     851,     0,     0,     0,   852,     0,     0,   853,     0,    21,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    22,     0,     0,     0,     0,    23,
       0,     0,    24,     0,   854,     0,   855,     0,     0,     0,
       0,   856,     0,   857,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,    25,     0,    26,     0,     0,     0,
       0,     0,     0,     0,   792,   858,   859,     0,   792,     0,
      27,     0,   792,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   860,     0,    28,     0,     0,
       0,    29,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   861,     0,     0,     0,
       0,     0,     0,     0,   792,     0,     0,     0,     0,     0,
       0,     0,     0,   792,     0,   792,     0,   792,     0,     0,
       0,     0,     0,   862,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1869,     0,
       0,     0,     0,     0,     0,     0,   792,     0,     0,     0,
       0,   792,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   863,     0,   792,    30,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   864,  1915,    31,     0,     0,
       0,     0,     0,     0,     0,     0,     0,    32,     0,     0,
       0,     0,     0,     0,     0,    33,     0,     0,   865,     0,
       0,     0,     0,     0,   792,     0,     0,     0,   792,   866,
     867,     0,     0,     0,     0,    34,     0,     0,    35,     0,
      36,     0,     0,    37,     0,     0,    38,     0,    39,     0,
       0,     0,     0,     0,    40,     0,    41,     0,     0,     0,
       0,     0,     0,    42,     0,     0,     0,     0,    43,     0,
     792,     0,  1989,  1991,  1993,     0,    44,     0,     0,     0,
       0,    45,     0,     0,     0,    46,     0,     0,     0,     0,
       0,   868,     0,     0,     0,     0,   792,     0,     0,     0,
       0,     0,     0,   869,     0,     0,     0,    47,     0,     0,
    2029,    48,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0, -2125,     0,     0,     0,
     870,     0,  2040,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   871,     0,     0,     0,     0,
      49,  2068,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,    50,     0,     0,     0,    51,     0,     0,    52,
       0,     0,     0,     0,    53,     0,     0,   792,   792,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     1,     2,     0,     0,     0,     0,     0,     0,     0,
      54, -2125,     0,     0,     0,     0,     3,   872,     0,     0,
       0,     0,     5,     0,     0,    55,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     6,     7,     0,     0,     0,
       0,     0,     8,     0,     0,   792,     9,    10,     0,     0,
       0,     0,   792,     0,     0,     0,     0,     0,     0,    11,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    12,   792,   792,     0,     0,     0,     0,
       0,     0,     0,     0,   792,     0,     0,     0,     0,   792,
       0,     0,   792,    13,   792,   792,     0,     0,     0,     0,
       0,    14,    15,    16,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    17,    18,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,    20,
       0,     0,     0,     0,     0,     0,     0,     0,   792,     0,
       0,     0,     0,     0,     0,    21,     0,  2277,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      22,     0,     0,     0,     0,    23,     0,   792,    24,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   792,     0,     0,     0,     0,     0,     0,     0,     0,
      25,     0,    26,     0,     0,     0,     0,     0,     0,   792,
       0,     0,     0,     0,     0,     0,    27,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,    28,     0,     0,     0,    29,     0,     0,
       0,     0,  2360,     0,     0,     0,  2362,     0,     0,     0,
       0,  2364,  2365,     0,     0,     0,     0,     0,     0,     0,
    2380,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2388,     0,  2389,     0,     0,  2391,
    2392,  2393,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  2398,     0,     0,     0,     0,     0,     0,     0,
    2399,     0,  2400,     0,  2401,  2402,     0,  2403,     0,     0,
       0,     0,  2406,  2407,  2408,     0,     0,     0,     0,  2410,
    2411,  2412,     0,  2413,    30,  2415,     0,  2417,     0,  2419,
       0,  2420,     0,     0,     0,     0,  2421,     0,     0,     0,
       0,     0,     0,    31,     0,     0,     0,     0,     0,     0,
    2438,     0,     0,    32,     0,     0,     0,  2938,  2939,     0,
       0,    33,     0,  2940,     0,  2941,  2942,  2943,     0,     0,
    2448,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    34,  2944,     0,    35,     0,    36,     0,     0,    37,
       0,     0,    38,     0,    39,     0,     0,     0,     0,     0,
      40,     0,    41,     0,     0,     0,     0,     0,     0,    42,
       0,     0,     0,     0,    43,   792,     0,     0,     0,     0,
       0,  2945,    44,     0,  2946,     0,     0,    45,     0,     0,
       0,    46,  2947,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2948,
       0,     0,     0,    47,     0,   792,   792,    48,     0,     0,
       0,     0,     0,     0,   792,     0,  2949,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2950,
       0,  2951,     0,     0,     0,     0,    49,     0,     0,     0,
       0,     0,     0,  2952,  2953,     0,     0,     0,    50,     0,
       0,     0,    51,     0,     0,    52,     0,     0,  2650,     0,
      53,     0,     0,     0,     0,  1757,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  1759,  1760,     0,
       0,     0,  2954,     0,     0,     0,    54,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,    55,     0,     0,     0,     0,  1761,     0,  2955,     0,
    1762,     0,     0,     0,     0,     0,     0,  2956,  2957,     0,
    2958,  1765,     0,     0,     0,     0,     0,     0,     0,  1766,
     792,     0,     0,     0,     0,  1767,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   792,  1768,     0,  2959,
    2960,  2961,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  1330,     0,     0,  1769,     0,     0,  2962,  2963,  2964,
       0,  1770,     0,  2965,     0,   792,  2966,     0,  2651,     0,
       0,     0,     0,     0,     0,     0,  1773,     0,   792,     0,
       0,     0,  1774,  2967,  2968,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1775,     0,     0,     0,     0,  2969,  2970,     0,     0,     0,
    2727,     0,     0,     0,  2730,     0,     0,     0,  2732,     0,
       0,     0,     0,     0,     0,     0,     0,  2971,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1777,     0,
       0,     0,     0,     0,     0,  1778,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1779,     0,
    2768,  3558,     0,     0,     0,     0,     0,     0,     0,  2778,
       0,  2780,     0,  2782,     0,  2972,     0,     0,     0,  2973,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2974,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  2806,     0,     0,
    1780,     0,     0,     0,     0,     0,     0,     0,   792,     0,
       0,     0,     0,     0,     0,     0,     0,  1781,   792,     0,
     792,  1782,     0,     0,     0,  2975,     0,     0,  2976,     0,
       0,  2977,  2978,  2979,  2980,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    2861,   792,     0,  1784,  2865,     0,     0,  3558,  3558,     0,
    1785,     0,     0,     0,  2981,  2982,     0,     0,  1787,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  2983,     0,     0,
       0,     0,     0,     0,     0,     0,  2894,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  1790,     0,
       0,     0,     0,     0,     0,     0,   792,     0,     0,     0,
       0,     0,  2906,     0,     0,     0,   792,     0,     0,     0,
    1793,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   792,     0,   792,     0,     0,     0,     0,     0,
       0,     0,  1794,     0,   792,     0,     0,  3558,  3558,     0,
       0,     0,     0,     0,     0,  1795,     0,     0,     0,     0,
       0,     0,     0,  2994,  2995,     0,     0,     0,     0,  3781,
       0,     0,     0,     0,     0,  1796,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,  1797,     0,     0,     0,     0,   792,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   792,     0,  3041,  3558,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3558,   792,     0,     0,     0,     0,     0,     0,
    3055,  3056,     0,     0,  3558,     0,     0,     0,     0,     0,
    3062,     0,   792,     0,     0,  3064,     0,     0,  3065,     0,
    3066,  3067,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   792,
    3558,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3558,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3558,     0,     0,     0,     0,     0,
    3558,     0,     0,     0,   792,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   792,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3125,     0,     0,
       0,     0,   792,     0,     0,     0,     0,     0,     0,  3558,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3558,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   792,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   792,     0,     0,     0,     0,     0,     0,
    3558,     0,  3558,     0,     0,     0,     0,     0,     0,     0,
    3558,  3558,     0,     0,     0,     0,   792,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3558,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3558,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3558,  3558,     0,     0,     0,   792,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3558,  3558,     0,     0,     0,  3558,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  3339,  3340,     0,     0,     0,     0,     0,     0,     0,
    2894,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3463,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,  2894,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  2861,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3610,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3622,     0,  3624,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,  3652,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  2894,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,  3739,     0,
    3740,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    3748,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,  3801,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,  3816,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,  3822,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,  3854,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   134,     0,   659,   136,   137,   138,
     139,     0,     0,     0,     0,     0,   140,     0,     0,   660,
    3909,   142,   143,   144,   145,   146,   661,   148,     0,   149,
       0,     0,   662,   150,   663,   664,   665,   151,   666,     0,
     152,   153,  1547,   154,     0,   155,   156,     0,  3939,   157,
     667,   668,   158,     0,   159,   669,   670,   161,     0,   162,
     163,   164,   671,   166,     0,   672,   168,     0,   169,   170,
     171,   172,   173,   174,   175,     0,   176,   177,     0,   673,
       0,   179,   674,   675,     0,     0,   180,   676,   677,  3974,
     678,   679,     0,   181,   182,   183,   680,   681,   682,     0,
       0,     0,     0,   683,   186,   684,     0,     0,   685,   187,
       0,   188,     0,     0,     0,   189,     0,   190,   191,   192,
     193,     0,     0,     0,   194,     0,     0,   195,   196,   197,
       0,     0,     0,   198,     0,   199,   200,     0,   201,   202,
     203,     0,     0,   204,     0,   205,   206,   207,   208,   209,
     210,   686,     0,   211,   212,   213,   687,   688,   214,     0,
     215,   216,   217,   218,   689,  4036,   219,     0,     0,     0,
     220,   221,     0,   222,     0,   223,     0,   690,   225,   691,
     227,     0,   228,     0,   692,     0,   229,   230,     0,   231,
     693,     0,   232,   233,     0,     0,     0,   694,   235,   236,
     237,   695,     0,   238,   239,     0,     0,   240,     0,     0,
       0,   696,   241,   242,   697,     0,     0,   243,     0,     0,
     244,   245,     0,     0,     0,   246,     0,     0,   247,   248,
       0,  1548,   249,     0,   698,   250,   251,     0,     0,     0,
       0,     0,   699,   253,     0,   254,     0,   255,     0,   256,
     257,     0,     0,   700,     0,     0,     0,     0,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,     0,   271,   272,   701,   273,   274,   275,   276,   702,
     277,   278,   279,     0,     0,     0,   280,   281,   282,   703,
     284,     0,     0,   704,   286,   705,   287,     0,   288,   706,
     707,   708,   709,   710,   293,   294,   295,   296,     0,   711,
     297,   298,     0,     0,   299,   300,   301,   302,   712,   713,
     714,   303,   304,   305,     0,   715,   716,     0,   306,   307,
     717,     0,   309,   310,   311,     0,   312,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   313,   314,   315,   718,
     316,   317,   318,   319,   320,   719,   322,   323,   324,   720,
     721,   327,   722,     0,   328,   329,   330,     0,   331,     0,
     332,   333,     0,   723,   335,   336,     0,     0,   337,     0,
       0,     0,   338,   339,   340,   341,   342,     0,     0,   343,
     344,   345,     0,   346,   347,     0,   348,   349,   350,   724,
     725,   351,     0,   352,   353,   354,     0,   355,   356,     0,
     726,     0,   727,   358,   359,   360,   361,   362,   728,   364,
     365,   366,     0,   729,   368,     0,     0,     0,   369,   370,
     371,   372,     0,     0,     0,   373,     0,     0,     0,   374,
     375,   376,   377,     0,   378,   379,   380,   381,     0,     0,
       0,     0,     0,     0,   382,   383,     0,   384,     0,     0,
     385,     0,     0,   386,   387,   388,   730,   731,   389,   390,
       0,   391,   732,   393,   394,   395,   733,   734,   396,   397,
     735,   398,   399,     0,     0,   400,   401,     0,   736,   402,
     403,     0,   737,   738,   739,   740,     0,     0,     0,     0,
    1549,   408,   409,   410,     0,   741,   742,   743,   412,   413,
     414,   744,   415,   416,   745,   417,   418,     0,   419,   420,
       0,     0,   421,     0,     0,   422,     0,   423,     0,   746,
     425,     0,     0,   747,   748,   749,   750,   426,     0,     0,
     427,   751,     0,   752,   428,   429,   430,   753,   754,     0,
       0,     0,     0,   433,   434,     0,   435,   436,   437,     0,
       0,   755,     0,     0,     0,   756,   757,     0,     0,     0,
       0,   758,   759,     0,     0,   760,   761,     0,   762,   763,
     134,     0,   659,   136,   137,   138,   139,  2857,     0,     0,
       0,     0,   140,     0,     0,   660,     0,   142,   143,   144,
     145,   146,   661,   148,     0,   149,     0,     0,  2858,   150,
     663,   664,   665,   151,   666,     0,   152,   153,     0,   154,
       0,   155,   156,     0,     0,   157,   667,   668,   158,     0,
     159,   669,   670,   161,     0,   162,   163,   164,   671,   166,
       0,   672,   168,     0,   169,   170,   171,   172,   173,   174,
     175,     0,   176,   177,     0,   673,     0,   179,   674,   675,
       0,     0,   180,   676,   677,     0,   678,   679,     0,   181,
     182,   183,   680,   681,   682,     0,     0,     0,     0,   683,
     186,   684,     0,     0,  2859,   187,     0,   188,     0,     0,
       0,   189,     0,   190,   191,   192,   193,     0,     0,     0,
     194,     0,     0,   195,   196,   197,     0,     0,     0,   198,
       0,   199,   200,     0,   201,   202,   203,     0,     0,   204,
       0,   205,   206,   207,   208,   209,   210,   686,     0,   211,
     212,   213,   687,   688,   214,     0,   215,   216,   217,   218,
     689,     0,   219,     0,     0,     0,   220,   221,     0,   222,
       0,   223,     0,   690,   225,   691,   227,     0,   228,     0,
     692,     0,   229,   230,     0,   231,   693,     0,   232,   233,
       0,     0,     0,   694,   235,   236,   237,   695,     0,   238,
     239,     0,     0,   240,     0,     0,     0,   696,   241,   242,
     697,     0,     0,   243,     0,     0,   244,   245,     0,     0,
       0,   246,     0,     0,   247,   248,     0,     0,   249,     0,
     698,   250,   251,     0,     0,     0,     0,     0,   699,   253,
       0,   254,     0,   255,     0,   256,   257,     0,     0,   700,
       0,     0,     0,     0,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,     0,   271,   272,
     701,   273,   274,   275,   276,   702,   277,   278,   279,     0,
       0,     0,   280,   281,   282,   703,   284,     0,     0,   704,
     286,   705,   287,     0,   288,   706,   707,   708,   709,   710,
     293,   294,   295,   296,     0,   711,   297,   298,     0,     0,
     299,   300,   301,   302,   712,   713,   714,   303,   304,   305,
       0,   715,   716,     0,   306,   307,   717,  2860,   309,   310,
     311,     0,   312,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   313,   314,   315,   718,   316,   317,   318,   319,
     320,   719,   322,   323,   324,   720,   721,   327,   722,     0,
     328,   329,   330,     0,   331,     0,   332,   333,     0,   723,
     335,   336,     0,     0,   337,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
     347,     0,   348,   349,   350,   724,   725,   351,     0,   352,
     353,   354,     0,   355,   356,     0,   726,     0,   727,   358,
     359,   360,   361,   362,   728,   364,   365,   366,     0,   729,
     368,     0,     0,     0,   369,   370,   371,   372,     0,     0,
       0,   373,     0,     0,     0,   374,   375,   376,   377,     0,
     378,   379,   380,   381,     0,     0,     0,     0,     0,     0,
     382,   383,     0,   384,     0,     0,   385,     0,     0,   386,
     387,   388,   730,   731,   389,   390,     0,   391,   732,   393,
     394,   395,   733,   734,   396,   397,   735,   398,   399,     0,
       0,   400,   401,     0,   736,   402,   403,     0,   737,   738,
     739,   740,     0,     0,     0,     0,     0,   408,   409,   410,
       0,   741,   742,   743,   412,   413,   414,   744,   415,   416,
     745,   417,   418,     0,   419,   420,     0,     0,   421,     0,
       0,   422,     0,   423,     0,   746,   425,     0,     0,   747,
     748,   749,   750,   426,     0,     0,   427,   751,     0,   752,
     428,   429,   430,   753,   754,     0,     0,     0,     0,   433,
     434,     0,   435,   436,   437,     0,     0,   755,     0,     0,
       0,   756,   757,     0,     0,     0,     0,   758,   759,     0,
       0,   760,   761,     0,   762,   763,   134,     0,   659,   136,
     137,   138,   139,     0,     0,     0,     0,     0,   140,     0,
       0,   660,     0,   142,   143,   144,   145,   146,   661,   148,
       0,   149,     0,     0,   662,   150,   663,   664,   665,   151,
     666,     0,   152,   153,     0,   154,     0,   155,   156,     0,
       0,   157,   667,   668,   158,     0,   159,   669,   670,   161,
       0,   162,   163,   164,   671,   166,     0,   672,   168,     0,
     169,   170,   171,   172,   173,   174,   175,     0,   176,   177,
       0,   673,     0,   179,   674,   675,     0,     0,   180,   676,
     677,     0,   678,   679,     0,   181,   182,   183,   680,   681,
     682,     0,     0,     0,     0,   683,   186,   684,     0,     0,
     685,   187,     0,   188,     0,     0,     0,   189,     0,   190,
     191,   192,   193,     0,     0,     0,   194,     0,     0,   195,
     196,   197,     0,     0,     0,   198,     0,   199,   200,     0,
     201,   202,   203,     0,     0,   204,     0,   205,   206,   207,
     208,   209,   210,   686,     0,   211,   212,   213,   687,   688,
     214,     0,   215,   216,   217,   218,   689,     0,   219,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   690,
     225,   691,   227,     0,   228,     0,   692,     0,   229,   230,
       0,   231,   693,     0,   232,   233,     0,     0,     0,   694,
     235,   236,   237,   695,     0,   238,   239,     0,     0,   240,
       0,     0,     0,   696,   241,   242,   697,     0,     0,   243,
       0,     0,   244,   245,     0,     0,     0,   246,     0,     0,
     247,   248,     0,     0,   249,     0,   698,   250,   251,     0,
       0,     0,     0,     0,   699,   253,     0,   254,     0,   255,
       0,   256,   257,     0,     0,   700,     0,     0,     0,     0,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,     0,   271,   272,   701,   273,   274,   275,
     276,   702,   277,   278,   279,     0,     0,     0,   280,   281,
     282,   703,   284,     0,     0,   704,   286,   705,   287,     0,
     288,   706,   707,   708,   709,   710,   293,   294,   295,   296,
       0,   711,   297,   298,     0,     0,   299,   300,   301,   302,
     712,   713,   714,   303,   304,   305,     0,   715,   716,     0,
     306,   307,   717,     0,   309,   310,   311,     0,   312,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   313,   314,
     315,   718,   316,   317,   318,   319,   320,   719,   322,   323,
     324,   720,   721,   327,   722,     0,   328,   329,   330,     0,
     331,     0,   332,   333,     0,   723,   335,   336,     0,     0,
     337,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,   347,     0,   348,   349,
     350,   724,   725,   351,     0,   352,   353,   354,     0,   355,
     356,     0,   726,     0,   727,   358,   359,   360,   361,   362,
     728,   364,   365,   366,     0,   729,   368,  1145,     0,     0,
     369,   370,   371,   372,     0,     0,     0,   373,     0,     0,
       0,   374,   375,   376,   377,     0,   378,   379,   380,   381,
       0,     0,     0,     0,     0,     0,   382,   383,     0,   384,
       0,     0,   385,     0,     0,   386,   387,   388,   730,   731,
     389,   390,     0,   391,   732,   393,   394,   395,   733,   734,
     396,   397,   735,   398,   399,     0,     0,   400,   401,     0,
     736,   402,   403,     0,   737,   738,   739,   740,     0,     0,
       0,     0,     0,   408,   409,   410,     0,   741,   742,   743,
     412,   413,   414,   744,   415,   416,   745,   417,   418,     0,
     419,   420,     0,     0,   421,     0,     0,   422,     0,   423,
       0,   746,   425,     0,     0,   747,   748,   749,   750,   426,
       0,     0,   427,   751,     0,   752,   428,   429,   430,   753,
     754,     0,     0,     0,     0,   433,   434,     0,   435,   436,
     437,     0,     0,   755,     0,     0,     0,   756,   757,     0,
       0,     0,     0,   758,  1146,     0,     0,   760,   761,     0,
     762,   763,   134,     0,   659,   136,   137,   138,   139,     0,
       0,     0,     0,     0,   140,     0,     0,   660,     0,   142,
     143,   144,   145,   146,   661,   148,     0,   149,     0,     0,
     662,   150,   663,   664,   665,   151,   666,     0,   152,   153,
       0,   154,     0,   155,   156,     0,     0,   157,   667,   668,
     158,     0,   159,   669,   670,   161,     0,   162,   163,   164,
     671,   166,     0,   672,   168,     0,   169,   170,   171,   172,
     173,   174,   175,     0,   176,   177,     0,   673,     0,   179,
     674,   675,     0,     0,   180,   676,   677,     0,   678,   679,
       0,   181,   182,   183,   680,   681,   682,     0,     0,     0,
       0,   683,   186,   684,     0,     0,   685,   187,     0,   188,
       0,     0,     0,   189,     0,   190,   191,   192,   193,     0,
       0,     0,   194,     0,     0,   195,   196,   197,     0,     0,
       0,   198,     0,   199,   200,     0,   201,   202,   203,     0,
       0,   204,     0,   205,   206,   207,   208,   209,   210,   686,
       0,   211,   212,   213,   687,   688,   214,     0,   215,   216,
     217,   218,   689,     0,   219,     0,     0,     0,   220,   221,
       0,   222,     0,   223,     0,   690,   225,   691,   227,     0,
     228,     0,   692,     0,   229,   230,     0,   231,   693,     0,
     232,   233,     0,     0,     0,   694,   235,   236,   237,   695,
       0,   238,   239,     0,     0,   240,     0,     0,     0,   696,
     241,   242,   697,     0,     0,   243,     0,     0,   244,   245,
       0,     0,     0,   246,     0,     0,   247,   248,     0,     0,
     249,     0,   698,   250,   251,     0,     0,     0,     0,     0,
     699,   253,     0,   254,     0,   255,     0,   256,   257,     0,
       0,   700,     0,     0,     0,     0,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,     0,
     271,   272,   701,   273,   274,   275,   276,   702,   277,   278,
     279,     0,     0,     0,   280,   281,   282,   703,   284,     0,
       0,   704,   286,   705,   287,     0,   288,   706,   707,   708,
     709,   710,   293,   294,   295,   296,     0,   711,   297,   298,
       0,     0,   299,   300,   301,   302,   712,   713,   714,   303,
     304,   305,     0,   715,   716,     0,   306,   307,   717,     0,
     309,   310,   311,     0,   312,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   313,   314,   315,   718,   316,   317,
     318,   319,   320,   719,   322,   323,   324,   720,   721,   327,
     722,     0,   328,   329,   330,     0,   331,     0,   332,   333,
       0,   723,   335,   336,     0,     0,   337,     0,     0,     0,
     338,   339,   340,   341,   342,     0,     0,   343,   344,   345,
       0,   346,   347,     0,   348,   349,   350,   724,   725,   351,
       0,   352,   353,   354,     0,   355,   356,     0,   726,     0,
     727,   358,   359,   360,   361,   362,   728,   364,   365,   366,
       0,   729,   368,     0,     0,     0,   369,   370,   371,   372,
       0,     0,     0,   373,     0,     0,     0,   374,   375,   376,
     377,     0,   378,   379,   380,   381,     0,     0,     0,     0,
       0,     0,   382,   383,     0,   384,     0,     0,   385,     0,
       0,   386,   387,   388,   730,   731,   389,   390,     0,   391,
     732,   393,   394,   395,   733,   734,   396,   397,   735,   398,
     399,     0,     0,   400,   401,     0,   736,   402,   403,     0,
     737,   738,   739,   740,     0,     0,     0,     0,     0,   408,
     409,   410,     0,   741,   742,   743,   412,   413,   414,   744,
     415,   416,   745,   417,   418,     0,   419,   420,     0,     0,
     421,     0,     0,   422,     0,   423,     0,   746,   425,     0,
       0,   747,   748,   749,   750,   426,     0,     0,   427,   751,
       0,   752,   428,   429,   430,   753,   754,     0,     0,     0,
       0,   433,   434,     0,   435,   436,   437,     0,     0,   755,
       0,     0,     0,   756,   757,     0,     0,     0,     0,   758,
     759,  1483,     0,   760,   761,     0,   762,   763,   134,     0,
     659,   136,   137,   138,   139,     0,     0,     0,     0,     0,
     140,     0,     0,   660,     0,   142,   143,   144,   145,   146,
     661,   148,     0,   149,     0,     0,   662,   150,   663,   664,
     665,   151,   666,     0,   152,   153,     0,   154,     0,   155,
     156,     0,     0,   157,   667,   668,   158,     0,   159,   669,
     670,   161,     0,   162,   163,   164,   671,   166,     0,   672,
     168,     0,   169,   170,   171,   172,   173,   174,   175,     0,
     176,   177,     0,   673,     0,   179,   674,   675,     0,     0,
     180,   676,   677,     0,   678,   679,     0,   181,   182,   183,
     680,   681,   682,     0,     0,     0,     0,   683,   186,   684,
       0,     0,   685,   187,     0,   188,     0,     0,     0,   189,
       0,   190,   191,   192,   193,     0,     0,     0,   194,     0,
       0,   195,   196,   197,     0,     0,     0,   198,     0,   199,
     200,     0,   201,   202,   203,     0,     0,   204,     0,   205,
     206,   207,   208,   209,   210,   686,     0,   211,   212,   213,
     687,   688,   214,     0,   215,   216,   217,   218,   689,     0,
     219,     0,     0,     0,   220,   221,  1988,   222,     0,   223,
       0,   690,   225,   691,   227,     0,   228,     0,   692,     0,
     229,   230,     0,   231,   693,     0,   232,   233,     0,     0,
       0,   694,   235,   236,   237,   695,     0,   238,   239,     0,
       0,   240,     0,     0,     0,   696,   241,   242,   697,     0,
       0,   243,     0,     0,   244,   245,     0,     0,     0,   246,
       0,     0,   247,   248,     0,     0,   249,     0,   698,   250,
     251,     0,     0,     0,     0,     0,   699,   253,     0,   254,
       0,   255,     0,   256,   257,     0,     0,   700,     0,     0,
       0,     0,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,     0,   271,   272,   701,   273,
     274,   275,   276,   702,   277,   278,   279,     0,     0,     0,
     280,   281,   282,   703,   284,     0,     0,   704,   286,   705,
     287,     0,   288,   706,   707,   708,   709,   710,   293,   294,
     295,   296,     0,   711,   297,   298,     0,     0,   299,   300,
     301,   302,   712,   713,   714,   303,   304,   305,     0,   715,
     716,     0,   306,   307,   717,     0,   309,   310,   311,     0,
     312,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     313,   314,   315,   718,   316,   317,   318,   319,   320,   719,
     322,   323,   324,   720,   721,   327,   722,     0,   328,   329,
     330,     0,   331,     0,   332,   333,     0,   723,   335,   336,
       0,     0,   337,     0,     0,     0,   338,   339,   340,   341,
     342,     0,     0,   343,   344,   345,     0,   346,   347,     0,
     348,   349,   350,   724,   725,   351,     0,   352,   353,   354,
       0,   355,   356,     0,   726,     0,   727,   358,   359,   360,
     361,   362,   728,   364,   365,   366,     0,   729,   368,     0,
       0,     0,   369,   370,   371,   372,     0,     0,     0,   373,
       0,     0,     0,   374,   375,   376,   377,     0,   378,   379,
     380,   381,     0,     0,     0,     0,     0,     0,   382,   383,
       0,   384,     0,     0,   385,     0,     0,   386,   387,   388,
     730,   731,   389,   390,     0,   391,   732,   393,   394,   395,
     733,   734,   396,   397,   735,   398,   399,     0,     0,   400,
     401,     0,   736,   402,   403,     0,   737,   738,   739,   740,
       0,     0,     0,     0,     0,   408,   409,   410,     0,   741,
     742,   743,   412,   413,   414,   744,   415,   416,   745,   417,
     418,     0,   419,   420,     0,     0,   421,     0,     0,   422,
       0,   423,     0,   746,   425,     0,     0,   747,   748,   749,
     750,   426,     0,     0,   427,   751,     0,   752,   428,   429,
     430,   753,   754,     0,     0,     0,     0,   433,   434,     0,
     435,   436,   437,     0,     0,   755,     0,     0,     0,   756,
     757,     0,     0,     0,     0,   758,   759,     0,     0,   760,
     761,     0,   762,   763,   134,     0,   659,   136,   137,   138,
     139,     0,     0,     0,     0,     0,   140,     0,     0,   660,
       0,   142,   143,   144,   145,   146,   661,   148,     0,   149,
       0,     0,   662,   150,   663,   664,   665,   151,   666,     0,
     152,   153,     0,   154,     0,   155,   156,     0,     0,   157,
     667,   668,   158,     0,   159,   669,   670,   161,     0,   162,
     163,   164,   671,   166,     0,   672,   168,     0,   169,   170,
     171,   172,   173,   174,   175,     0,   176,   177,     0,   673,
       0,   179,   674,   675,     0,     0,   180,   676,   677,     0,
     678,   679,     0,   181,   182,   183,   680,   681,   682,     0,
       0,     0,     0,   683,   186,   684,     0,     0,   685,   187,
       0,   188,     0,     0,     0,   189,     0,   190,   191,   192,
     193,     0,     0,     0,   194,     0,     0,   195,   196,   197,
       0,     0,     0,   198,     0,   199,   200,     0,   201,   202,
     203,     0,     0,   204,     0,   205,   206,   207,   208,   209,
     210,   686,     0,   211,   212,   213,   687,   688,   214,     0,
     215,   216,   217,   218,   689,     0,   219,     0,     0,     0,
     220,   221,  1990,   222,     0,   223,     0,   690,   225,   691,
     227,     0,   228,     0,   692,     0,   229,   230,     0,   231,
     693,     0,   232,   233,     0,     0,     0,   694,   235,   236,
     237,   695,     0,   238,   239,     0,     0,   240,     0,     0,
       0,   696,   241,   242,   697,     0,     0,   243,     0,     0,
     244,   245,     0,     0,     0,   246,     0,     0,   247,   248,
       0,     0,   249,     0,   698,   250,   251,     0,     0,     0,
       0,     0,   699,   253,     0,   254,     0,   255,     0,   256,
     257,     0,     0,   700,     0,     0,     0,     0,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,     0,   271,   272,   701,   273,   274,   275,   276,   702,
     277,   278,   279,     0,     0,     0,   280,   281,   282,   703,
     284,     0,     0,   704,   286,   705,   287,     0,   288,   706,
     707,   708,   709,   710,   293,   294,   295,   296,     0,   711,
     297,   298,     0,     0,   299,   300,   301,   302,   712,   713,
     714,   303,   304,   305,     0,   715,   716,     0,   306,   307,
     717,     0,   309,   310,   311,     0,   312,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   313,   314,   315,   718,
     316,   317,   318,   319,   320,   719,   322,   323,   324,   720,
     721,   327,   722,     0,   328,   329,   330,     0,   331,     0,
     332,   333,     0,   723,   335,   336,     0,     0,   337,     0,
       0,     0,   338,   339,   340,   341,   342,     0,     0,   343,
     344,   345,     0,   346,   347,     0,   348,   349,   350,   724,
     725,   351,     0,   352,   353,   354,     0,   355,   356,     0,
     726,     0,   727,   358,   359,   360,   361,   362,   728,   364,
     365,   366,     0,   729,   368,     0,     0,     0,   369,   370,
     371,   372,     0,     0,     0,   373,     0,     0,     0,   374,
     375,   376,   377,     0,   378,   379,   380,   381,     0,     0,
       0,     0,     0,     0,   382,   383,     0,   384,     0,     0,
     385,     0,     0,   386,   387,   388,   730,   731,   389,   390,
       0,   391,   732,   393,   394,   395,   733,   734,   396,   397,
     735,   398,   399,     0,     0,   400,   401,     0,   736,   402,
     403,     0,   737,   738,   739,   740,     0,     0,     0,     0,
       0,   408,   409,   410,     0,   741,   742,   743,   412,   413,
     414,   744,   415,   416,   745,   417,   418,     0,   419,   420,
       0,     0,   421,     0,     0,   422,     0,   423,     0,   746,
     425,     0,     0,   747,   748,   749,   750,   426,     0,     0,
     427,   751,     0,   752,   428,   429,   430,   753,   754,     0,
       0,     0,     0,   433,   434,     0,   435,   436,   437,     0,
       0,   755,     0,     0,     0,   756,   757,     0,     0,     0,
       0,   758,   759,     0,     0,   760,   761,     0,   762,   763,
     134,     0,   659,   136,   137,   138,   139,     0,     0,     0,
       0,     0,   140,     0,     0,   660,     0,   142,   143,   144,
     145,   146,   661,   148,     0,   149,     0,     0,   662,   150,
     663,   664,   665,   151,   666,     0,   152,   153,     0,   154,
       0,   155,   156,     0,     0,   157,   667,   668,   158,     0,
     159,   669,   670,   161,     0,   162,   163,   164,   671,   166,
       0,   672,   168,     0,   169,   170,   171,   172,   173,   174,
     175,     0,   176,   177,     0,   673,     0,   179,   674,   675,
       0,     0,   180,   676,   677,     0,   678,   679,     0,   181,
     182,   183,   680,   681,   682,     0,     0,     0,     0,   683,
     186,   684,     0,     0,   685,   187,     0,   188,     0,     0,
       0,   189,     0,   190,   191,   192,   193,     0,     0,     0,
     194,     0,     0,   195,   196,   197,     0,     0,     0,   198,
       0,   199,   200,     0,   201,   202,   203,     0,     0,   204,
       0,   205,   206,   207,   208,   209,   210,   686,     0,   211,
     212,   213,   687,   688,   214,     0,   215,   216,   217,   218,
     689,     0,   219,     0,     0,     0,   220,   221,  1992,   222,
       0,   223,     0,   690,   225,   691,   227,     0,   228,     0,
     692,     0,   229,   230,     0,   231,   693,     0,   232,   233,
       0,     0,     0,   694,   235,   236,   237,   695,     0,   238,
     239,     0,     0,   240,     0,     0,     0,   696,   241,   242,
     697,     0,     0,   243,     0,     0,   244,   245,     0,     0,
       0,   246,     0,     0,   247,   248,     0,     0,   249,     0,
     698,   250,   251,     0,     0,     0,     0,     0,   699,   253,
       0,   254,     0,   255,     0,   256,   257,     0,     0,   700,
       0,     0,     0,     0,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,     0,   271,   272,
     701,   273,   274,   275,   276,   702,   277,   278,   279,     0,
       0,     0,   280,   281,   282,   703,   284,     0,     0,   704,
     286,   705,   287,     0,   288,   706,   707,   708,   709,   710,
     293,   294,   295,   296,     0,   711,   297,   298,     0,     0,
     299,   300,   301,   302,   712,   713,   714,   303,   304,   305,
       0,   715,   716,     0,   306,   307,   717,     0,   309,   310,
     311,     0,   312,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   313,   314,   315,   718,   316,   317,   318,   319,
     320,   719,   322,   323,   324,   720,   721,   327,   722,     0,
     328,   329,   330,     0,   331,     0,   332,   333,     0,   723,
     335,   336,     0,     0,   337,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
     347,     0,   348,   349,   350,   724,   725,   351,     0,   352,
     353,   354,     0,   355,   356,     0,   726,     0,   727,   358,
     359,   360,   361,   362,   728,   364,   365,   366,     0,   729,
     368,     0,     0,     0,   369,   370,   371,   372,     0,     0,
       0,   373,     0,     0,     0,   374,   375,   376,   377,     0,
     378,   379,   380,   381,     0,     0,     0,     0,     0,     0,
     382,   383,     0,   384,     0,     0,   385,     0,     0,   386,
     387,   388,   730,   731,   389,   390,     0,   391,   732,   393,
     394,   395,   733,   734,   396,   397,   735,   398,   399,     0,
       0,   400,   401,     0,   736,   402,   403,     0,   737,   738,
     739,   740,     0,     0,     0,     0,     0,   408,   409,   410,
       0,   741,   742,   743,   412,   413,   414,   744,   415,   416,
     745,   417,   418,     0,   419,   420,     0,     0,   421,     0,
       0,   422,     0,   423,     0,   746,   425,     0,     0,   747,
     748,   749,   750,   426,     0,     0,   427,   751,     0,   752,
     428,   429,   430,   753,   754,     0,     0,     0,     0,   433,
     434,     0,   435,   436,   437,     0,     0,   755,     0,     0,
       0,   756,   757,     0,     0,     0,     0,   758,   759,     0,
       0,   760,   761,     0,   762,   763,   134,     0,   659,   136,
     137,   138,   139,     0,     0,     0,     0,     0,   140,     0,
       0,   660,     0,   142,   143,   144,   145,   146,   661,   148,
       0,   149,     0,     0,   662,   150,   663,   664,   665,   151,
     666,     0,   152,   153,     0,   154,     0,   155,   156,     0,
       0,   157,   667,   668,   158,     0,   159,   669,   670,   161,
       0,   162,   163,   164,   671,   166,     0,   672,   168,     0,
     169,   170,   171,   172,   173,   174,   175,     0,   176,   177,
       0,   673,     0,   179,   674,   675,     0,     0,   180,   676,
     677,     0,   678,   679,     0,   181,   182,   183,   680,   681,
     682,     0,     0,     0,     0,   683,   186,   684,     0,     0,
     685,   187,     0,   188,     0,     0,     0,   189,     0,   190,
     191,   192,   193,     0,     0,     0,   194,     0,     0,   195,
     196,   197,     0,     0,     0,   198,     0,   199,   200,     0,
     201,   202,   203,     0,     0,   204,     0,   205,   206,   207,
     208,   209,   210,   686,     0,   211,   212,   213,   687,   688,
     214,     0,   215,   216,   217,   218,   689,     0,   219,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   690,
     225,   691,   227,     0,   228,     0,   692,     0,   229,   230,
       0,   231,   693,     0,   232,   233,     0,     0,     0,   694,
     235,   236,   237,   695,     0,   238,   239,     0,     0,   240,
       0,     0,     0,   696,   241,   242,   697,     0,     0,   243,
       0,     0,   244,   245,     0,     0,     0,   246,     0,     0,
     247,   248,     0,     0,   249,     0,   698,   250,   251,     0,
       0,     0,     0,     0,   699,   253,     0,   254,     0,   255,
       0,   256,   257,     0,     0,   700,     0,     0,     0,     0,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,     0,   271,   272,   701,   273,   274,   275,
     276,   702,   277,   278,   279,     0,     0,     0,   280,   281,
     282,   703,   284,     0,     0,   704,   286,   705,   287,     0,
     288,   706,   707,   708,   709,   710,   293,   294,   295,   296,
       0,   711,   297,   298,     0,     0,   299,   300,   301,   302,
     712,   713,   714,   303,   304,   305,     0,   715,   716,     0,
     306,   307,   717,     0,   309,   310,   311,     0,   312,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   313,   314,
     315,   718,   316,   317,   318,   319,   320,   719,   322,   323,
     324,   720,   721,   327,   722,     0,   328,   329,   330,     0,
     331,     0,   332,   333,     0,   723,   335,   336,     0,     0,
     337,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,   347,     0,   348,   349,
     350,   724,   725,   351,     0,   352,   353,   354,     0,   355,
     356,     0,   726,     0,   727,   358,   359,   360,   361,   362,
     728,   364,   365,   366,     0,   729,   368,     0,     0,     0,
     369,   370,   371,   372,     0,     0,     0,   373,     0,     0,
       0,   374,   375,   376,   377,     0,   378,   379,   380,   381,
       0,     0,     0,     0,     0,     0,   382,   383,     0,   384,
       0,     0,   385,     0,     0,   386,   387,   388,   730,   731,
     389,   390,     0,   391,   732,   393,   394,   395,   733,   734,
     396,   397,   735,   398,   399,     0,     0,   400,   401,     0,
     736,   402,   403,     0,   737,   738,   739,   740,     0,     0,
       0,     0,     0,   408,   409,   410,     0,   741,   742,   743,
     412,   413,   414,   744,   415,   416,   745,   417,   418,     0,
     419,   420,     0,     0,   421,     0,     0,   422,     0,   423,
       0,   746,   425,     0,     0,   747,   748,   749,   750,   426,
       0,     0,   427,   751,     0,   752,   428,   429,   430,   753,
     754,     0,     0,     0,     0,   433,   434,     0,   435,   436,
     437,     0,     0,   755,     0,     0,     0,   756,   757,     0,
       0,     0,     0,   758,   759,     0,     0,   760,   761,     0,
     762,   763,   134,     0,   659,   136,   137,   138,   139,  1580,
       0,     0,     0,     0,  1581,     0,     0,   660,     0,   142,
     143,   144,   145,   146,   661,   148,     0,   149,     0,     0,
     662,   150,   663,   664,   665,   151,   666,     0,   152,   153,
       0,   154,     0,   155,   156,     0,     0,   157,   667,   668,
     158,     0,   159,   669,   670,   161,     0,   162,   163,   164,
     671,   166,     0,   672,   168,     0,   169,   170,   171,   172,
     173,   174,   175,     0,   176,   177,     0,   673,     0,   179,
     674,   675,     0,     0,   180,   676,   677,     0,   678,   679,
       0,   181,   182,   183,   680,   681,   682,     0,     0,     0,
       0,   683,   186,   684,     0,     0,   685,   187,     0,   188,
       0,     0,     0,   189,     0,   190,   191,   192,   193,     0,
       0,     0,   194,     0,     0,   195,   196,   197,     0,     0,
       0,   198,     0,   199,   200,     0,   201,   202,   203,     0,
       0,   204,     0,   205,   206,   207,   208,   209,   210,   686,
       0,   211,   212,   213,   687,   688,   214,     0,   215,   216,
     217,   218,   689,     0,   219,     0,     0,     0,   220,   221,
       0,   222,     0,   223,     0,   690,   225,   691,   227,     0,
     228,     0,   692,     0,   229,   230,     0,   231,   693,     0,
     232,   233,     0,     0,     0,   694,   235,   236,   237,   695,
       0,   238,   239,     0,     0,   240,     0,     0,     0,   696,
     241,   242,   697,     0,     0,   243,     0,     0,   244,   245,
       0,     0,     0,   246,     0,     0,   247,   248,     0,     0,
     249,     0,   698,   250,   251,     0,     0,     0,     0,     0,
     699,   253,     0,   254,     0,   255,     0,   256,   257,     0,
       0,   700,     0,     0,     0,     0,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,     0,
     271,   272,   701,   273,   274,   275,   276,   702,   277,   278,
     279,     0,     0,     0,   280,   281,   282,   703,   284,     0,
       0,   704,   286,   705,   287,     0,   288,   706,   707,   708,
     709,   710,   293,   294,   295,   296,     0,   711,   297,   298,
       0,     0,   299,   300,   301,   302,   712,     0,   714,   303,
     304,   305,     0,   715,   716,     0,   306,   307,   717,     0,
     309,   310,   311,     0,   312,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   313,   314,   315,   718,   316,   317,
     318,   319,   320,   719,   322,   323,   324,   720,   721,   327,
     722,     0,   328,   329,   330,     0,   331,     0,   332,   333,
       0,   723,   335,   336,     0,     0,   337,     0,     0,     0,
     338,   339,   340,   341,   342,     0,     0,   343,   344,   345,
       0,   346,   347,     0,   348,   349,   350,   724,   725,   351,
       0,   352,   353,   354,     0,   355,   356,     0,   726,     0,
     727,   358,   359,   360,   361,   362,   728,   364,   365,   366,
       0,   729,   368,     0,     0,     0,   369,   370,   371,   372,
       0,     0,     0,   373,     0,     0,     0,   374,   375,   376,
     377,     0,   378,   379,   380,   381,     0,     0,     0,     0,
       0,     0,   382,   383,     0,   384,     0,     0,   385,     0,
       0,   386,   387,   388,   730,   731,   389,   390,     0,   391,
     732,   393,   394,   395,   733,   734,   396,   397,   735,   398,
     399,     0,     0,   400,   401,     0,   736,   402,   403,     0,
     737,   738,   739,   740,     0,     0,     0,     0,     0,   408,
     409,   410,     0,   741,   742,   743,   412,   413,   414,   744,
     415,   416,   745,   417,   418,     0,   419,   420,     0,     0,
     421,     0,     0,   422,     0,   423,     0,   746,   425,     0,
       0,   747,   748,   749,   750,   426,     0,     0,   427,   751,
       0,   752,   428,   429,   430,   753,   754,     0,     0,     0,
       0,   433,   434,     0,   435,   436,   437,     0,     0,   755,
       0,     0,     0,   756,   757,     0,     0,     0,     0,   758,
     759,     0,     0,   760,   761,     0,   762,   763,   134,     0,
     659,   136,   137,   138,   139,     0,     0,     0,     0,     0,
     140,     0,     0,   660,     0,   142,   143,   144,   145,   146,
     661,   148,     0,   149,     0,     0,   662,   150,   663,   664,
     665,   151,   666,     0,   152,   153,     0,   154,     0,   155,
     156,     0,     0,   157,   667,   668,   158,     0,   159,   669,
     670,   161,     0,   162,   163,   164,   671,   166,     0,   672,
     168,     0,   169,   170,   171,   172,   173,   174,   175,     0,
     176,   177,     0,   673,     0,   179,   674,   675,     0,     0,
     180,   676,   677,     0,   678,   679,     0,   181,   182,   183,
     680,   681,   682,     0,     0,     0,     0,   683,   186,   684,
       0,     0,   685,   187,     0,   188,     0,     0,     0,   189,
       0,   190,   191,   192,   193,     0,     0,     0,   194,     0,
       0,   195,   196,   197,     0,     0,     0,   198,     0,   199,
     200,     0,   201,   202,   203,     0,     0,   204,     0,   205,
     206,   207,   208,   209,   210,   686,     0,   211,   212,   213,
     687,   688,   214,     0,   215,   216,   217,   218,   689,     0,
     219,     0,     0,     0,   220,   221,     0,   222,     0,   223,
       0,   690,   225,   691,   227,     0,   228,     0,   692,     0,
     229,   230,     0,   231,   693,     0,   232,   233,     0,     0,
       0,   694,   235,   236,   237,   695,     0,   238,   239,     0,
       0,   240,     0,     0,     0,   696,   241,   242,  2359,     0,
       0,   243,     0,     0,   244,   245,     0,     0,     0,   246,
       0,     0,   247,   248,     0,     0,   249,     0,   698,   250,
     251,     0,     0,     0,     0,     0,   699,   253,     0,   254,
       0,   255,     0,   256,   257,     0,     0,   700,     0,     0,
       0,     0,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,     0,   271,   272,   701,   273,
     274,   275,   276,   702,   277,   278,   279,     0,     0,     0,
     280,   281,   282,   703,   284,     0,     0,   704,   286,   705,
     287,     0,   288,   706,   707,   708,   709,   710,   293,   294,
     295,   296,     0,   711,   297,   298,     0,     0,   299,   300,
     301,   302,   712,   713,   714,   303,   304,   305,     0,   715,
     716,     0,   306,   307,   717,     0,   309,   310,   311,     0,
     312,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     313,   314,   315,   718,   316,   317,   318,   319,   320,   719,
     322,   323,   324,   720,   721,   327,   722,     0,   328,   329,
     330,     0,   331,     0,   332,   333,     0,   723,   335,   336,
       0,     0,   337,     0,     0,     0,   338,   339,   340,   341,
     342,     0,     0,   343,   344,   345,     0,   346,   347,     0,
     348,   349,   350,   724,   725,   351,     0,   352,   353,   354,
       0,   355,   356,     0,   726,     0,   727,   358,   359,   360,
     361,   362,   728,   364,   365,   366,     0,   729,   368,     0,
       0,     0,   369,   370,   371,   372,     0,     0,     0,   373,
       0,     0,     0,   374,   375,   376,   377,     0,   378,   379,
     380,   381,     0,     0,     0,     0,     0,     0,   382,   383,
       0,   384,     0,     0,   385,     0,     0,   386,   387,   388,
     730,   731,   389,   390,     0,   391,   732,   393,   394,   395,
     733,   734,   396,   397,   735,   398,   399,     0,     0,   400,
     401,     0,   736,   402,   403,     0,   737,   738,   739,   740,
       0,     0,     0,     0,     0,   408,   409,   410,     0,   741,
     742,   743,   412,   413,   414,   744,   415,   416,   745,   417,
     418,     0,   419,   420,     0,     0,   421,     0,     0,   422,
       0,   423,     0,   746,   425,     0,     0,   747,   748,   749,
     750,   426,     0,     0,   427,   751,     0,   752,   428,   429,
     430,   753,   754,     0,     0,     0,     0,   433,   434,     0,
     435,   436,   437,     0,     0,   755,     0,     0,     0,   756,
     757,     0,     0,     0,     0,   758,   759,     0,     0,   760,
     761,     0,   762,   763,   134,     0,   659,   136,   137,   138,
     139,     0,     0,     0,     0,     0,   140,     0,     0,   660,
       0,   142,   143,   144,   145,   146,   661,   148,     0,   149,
       0,     0,   662,   150,   663,   664,   665,   151,   666,     0,
     152,   153,     0,   154,     0,   155,   156,     0,     0,   157,
     667,   668,   158,     0,   159,   669,   670,   161,     0,   162,
     163,   164,   671,   166,     0,   672,   168,     0,   169,   170,
     171,   172,   173,   174,   175,     0,   176,   177,     0,   673,
       0,   179,   674,   675,     0,     0,   180,   676,   677,     0,
     678,   679,     0,   181,   182,   183,   680,   681,   682,     0,
       0,     0,     0,   683,   186,   684,     0,     0,   685,   187,
       0,   188,     0,     0,     0,   189,     0,   190,   191,   192,
     193,     0,     0,     0,   194,     0,     0,   195,   196,   197,
       0,     0,     0,   198,     0,   199,   200,     0,   201,   202,
     203,     0,     0,   204,     0,   205,   206,   207,   208,   209,
     210,   686,     0,   211,   212,   213,   687,   688,   214,     0,
     215,   216,   217,   218,   689,     0,   219,     0,     0,     0,
     220,   221,     0,   222,     0,   223,     0,   690,   225,   691,
     227,     0,   228,     0,   692,     0,   229,   230,     0,   231,
     693,     0,   232,   233,     0,     0,     0,   694,   235,   236,
     237,   695,     0,   238,   239,     0,     0,   240,     0,     0,
       0,   696,   241,   242,  2405,     0,     0,   243,     0,     0,
     244,   245,     0,     0,     0,   246,     0,     0,   247,   248,
       0,     0,   249,     0,   698,   250,   251,     0,     0,     0,
       0,     0,   699,   253,     0,   254,     0,   255,     0,   256,
     257,     0,     0,   700,     0,     0,     0,     0,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,     0,   271,   272,   701,   273,   274,   275,   276,   702,
     277,   278,   279,     0,     0,     0,   280,   281,   282,   703,
     284,     0,     0,   704,   286,   705,   287,     0,   288,   706,
     707,   708,   709,   710,   293,   294,   295,   296,     0,   711,
     297,   298,     0,     0,   299,   300,   301,   302,   712,   713,
     714,   303,   304,   305,     0,   715,   716,     0,   306,   307,
     717,     0,   309,   310,   311,     0,   312,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   313,   314,   315,   718,
     316,   317,   318,   319,   320,   719,   322,   323,   324,   720,
     721,   327,   722,     0,   328,   329,   330,     0,   331,     0,
     332,   333,     0,   723,   335,   336,     0,     0,   337,     0,
       0,     0,   338,   339,   340,   341,   342,     0,     0,   343,
     344,   345,     0,   346,   347,     0,   348,   349,   350,   724,
     725,   351,     0,   352,   353,   354,     0,   355,   356,     0,
     726,     0,   727,   358,   359,   360,   361,   362,   728,   364,
     365,   366,     0,   729,   368,     0,     0,     0,   369,   370,
     371,   372,     0,     0,     0,   373,     0,     0,     0,   374,
     375,   376,   377,     0,   378,   379,   380,   381,     0,     0,
       0,     0,     0,     0,   382,   383,     0,   384,     0,     0,
     385,     0,     0,   386,   387,   388,   730,   731,   389,   390,
       0,   391,   732,   393,   394,   395,   733,   734,   396,   397,
     735,   398,   399,     0,     0,   400,   401,     0,   736,   402,
     403,     0,   737,   738,   739,   740,     0,     0,     0,     0,
       0,   408,   409,   410,     0,   741,   742,   743,   412,   413,
     414,   744,   415,   416,   745,   417,   418,     0,   419,   420,
       0,     0,   421,     0,     0,   422,     0,   423,     0,   746,
     425,     0,     0,   747,   748,   749,   750,   426,     0,     0,
     427,   751,     0,   752,   428,   429,   430,   753,   754,     0,
       0,     0,     0,   433,   434,     0,   435,   436,   437,     0,
       0,   755,     0,     0,     0,   756,   757,     0,     0,     0,
       0,   758,   759,     0,     0,   760,   761,     0,   762,   763,
     134,     0,   659,   136,   137,   138,   139,     0,     0,     0,
       0,     0,   140,     0,     0,   660,     0,   142,   143,   144,
     145,   146,   661,   148,     0,   149,     0,     0,   662,   150,
     663,   664,   665,   151,   666,     0,   152,   153,     0,   154,
       0,   155,   156,     0,     0,   157,   667,   668,   158,     0,
     159,   669,   670,   161,     0,   162,   163,   164,   671,   166,
       0,   672,   168,     0,   169,   170,   171,   172,   173,   174,
     175,     0,   176,   177,     0,   673,     0,   179,   674,   675,
       0,     0,   180,   676,   677,     0,   678,   679,     0,   181,
     182,   183,   680,   681,   682,     0,     0,     0,     0,   683,
     186,   684,     0,     0,  3035,   187,     0,   188,     0,     0,
       0,   189,     0,   190,   191,   192,   193,     0,     0,     0,
     194,     0,     0,   195,   196,   197,     0,     0,     0,   198,
       0,   199,   200,     0,   201,   202,   203,     0,     0,   204,
       0,   205,   206,   207,   208,   209,   210,   686,     0,   211,
     212,   213,   687,   688,   214,     0,   215,   216,   217,   218,
     689,     0,   219,     0,     0,     0,   220,   221,     0,   222,
       0,   223,     0,   690,   225,   691,   227,     0,   228,     0,
     692,     0,   229,   230,     0,   231,   693,     0,   232,   233,
       0,     0,     0,   694,   235,   236,   237,   695,     0,   238,
     239,     0,     0,   240,     0,     0,     0,   696,   241,   242,
     697,     0,     0,   243,     0,     0,   244,   245,     0,     0,
       0,   246,     0,     0,   247,   248,     0,     0,   249,     0,
     698,   250,   251,     0,     0,     0,     0,     0,   699,   253,
       0,   254,     0,   255,     0,   256,   257,     0,     0,   700,
       0,     0,     0,     0,   258,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,     0,   271,   272,
     701,   273,   274,   275,   276,   702,   277,   278,   279,     0,
       0,     0,   280,   281,   282,   703,   284,     0,     0,   704,
     286,   705,   287,     0,   288,   706,   707,   708,   709,   710,
     293,   294,   295,   296,     0,   711,   297,   298,     0,     0,
     299,   300,   301,   302,   712,   713,   714,   303,   304,   305,
       0,   715,   716,     0,   306,   307,   717,     0,   309,   310,
     311,     0,   312,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   313,   314,   315,   718,   316,   317,   318,   319,
     320,   719,   322,   323,   324,   720,   721,   327,   722,     0,
     328,   329,   330,     0,   331,     0,   332,   333,     0,   723,
     335,   336,     0,     0,   337,     0,     0,     0,   338,   339,
     340,   341,   342,     0,     0,   343,   344,   345,     0,   346,
     347,     0,   348,   349,   350,   724,   725,   351,     0,   352,
     353,   354,     0,   355,   356,     0,   726,     0,   727,   358,
     359,   360,   361,   362,   728,   364,   365,   366,     0,   729,
     368,     0,     0,     0,   369,   370,   371,   372,     0,     0,
       0,   373,     0,     0,     0,   374,   375,   376,   377,     0,
     378,   379,   380,   381,     0,     0,     0,     0,     0,     0,
     382,   383,     0,   384,     0,     0,   385,     0,     0,   386,
     387,   388,   730,   731,   389,   390,     0,   391,   732,   393,
     394,   395,   733,   734,   396,   397,   735,   398,   399,     0,
       0,   400,   401,     0,   736,   402,   403,     0,   737,   738,
     739,   740,     0,     0,     0,     0,     0,   408,   409,   410,
       0,   741,   742,   743,   412,   413,   414,   744,   415,   416,
     745,   417,   418,     0,   419,   420,     0,     0,   421,     0,
       0,   422,     0,   423,     0,   746,   425,     0,     0,   747,
     748,   749,   750,   426,     0,     0,   427,   751,     0,   752,
     428,   429,   430,   753,   754,     0,     0,     0,     0,   433,
     434,     0,   435,   436,   437,     0,     0,   755,     0,     0,
       0,   756,   757,     0,     0,     0,     0,   758,   759,     0,
       0,   760,   761,     0,   762,   763,   134,     0,   659,   136,
     137,   138,   139,     0,     0,     0,     0,     0,   140,     0,
       0,   660,     0,   142,   143,   144,   145,   146,   661,   148,
       0,   149,     0,     0,   662,   150,   663,   664,   665,   151,
     666,     0,   152,   153,     0,   154,     0,   155,   156,     0,
       0,   157,   667,   668,   158,     0,   159,   669,   670,   161,
       0,   162,   163,   164,   671,   166,     0,   672,   168,     0,
     169,   170,   171,   172,   173,   174,   175,     0,   176,   177,
       0,   673,     0,   179,   674,   675,     0,     0,   180,   676,
     677,     0,   678,   679,     0,   181,   182,   183,   680,   681,
     682,     0,     0,     0,     0,   683,   186,   684,     0,     0,
     685,   187,     0,   188,     0,     0,     0,   189,     0,   190,
     191,   192,   193,     0,     0,     0,   194,     0,     0,   195,
     196,   197,     0,     0,     0,   198,     0,   199,   200,     0,
     201,   202,   203,     0,     0,   204,     0,   205,   206,   207,
     208,   209,   210,   686,     0,   211,   212,   213,   687,   688,
     214,     0,   215,   216,   217,   218,   689,     0,   219,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   690,
     225,   691,   227,     0,   228,     0,   692,     0,   229,   230,
       0,   231,   693,     0,   232,   233,     0,     0,     0,   694,
     235,   236,   237,   695,     0,   238,   239,     0,     0,   240,
       0,     0,     0,   696,   241,   242,   697,     0,     0,   243,
       0,     0,   244,   245,     0,     0,     0,   246,     0,     0,
     247,   248,     0,     0,   249,     0,   698,   250,   251,     0,
       0,     0,     0,     0,   699,   253,     0,   254,     0,   255,
       0,   256,   257,     0,     0,   700,     0,     0,     0,     0,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,     0,   271,   272,   701,   273,   274,   275,
     276,   702,   277,   278,   279,     0,     0,     0,   280,   281,
     282,   703,   284,     0,     0,   704,   286,   705,   287,     0,
     288,   706,   707,   708,   709,   710,   293,   294,   295,   296,
       0,   711,   297,   298,     0,     0,   299,   300,   301,   302,
     712,     0,   714,   303,   304,   305,     0,   715,   716,     0,
     306,   307,   717,     0,   309,   310,   311,     0,   312,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   313,   314,
     315,   718,   316,   317,   318,   319,   320,   719,   322,   323,
     324,   720,   721,   327,   722,     0,   328,   329,   330,     0,
     331,     0,   332,   333,     0,   723,   335,   336,     0,     0,
     337,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,   347,     0,   348,   349,
     350,   724,   725,   351,     0,   352,   353,   354,     0,   355,
     356,     0,   726,     0,   727,   358,   359,   360,   361,   362,
     728,   364,   365,   366,     0,   729,   368,     0,     0,     0,
     369,   370,   371,   372,     0,     0,     0,   373,     0,     0,
       0,   374,   375,   376,   377,     0,   378,   379,   380,   381,
       0,     0,     0,     0,     0,     0,   382,   383,     0,   384,
       0,     0,   385,     0,     0,   386,   387,   388,   730,   731,
     389,   390,     0,   391,   732,   393,   394,   395,   733,   734,
     396,   397,   735,   398,   399,     0,     0,   400,   401,     0,
     736,   402,   403,     0,   737,   738,   739,   740,     0,     0,
       0,     0,     0,   408,   409,   410,     0,   741,   742,   743,
     412,   413,   414,   744,   415,   416,   745,   417,   418,     0,
     419,   420,     0,     0,   421,     0,     0,   422,     0,   423,
       0,   746,   425,     0,     0,   747,   748,   749,   750,   426,
       0,     0,   427,   751,     0,   752,   428,   429,   430,   753,
     754,     0,     0,     0,     0,   433,   434,     0,   435,   436,
     437,     0,     0,   755,     0,     0,     0,   756,   757,     0,
       0,     0,     0,   758,   759,     0,     0,   760,   761,     0,
     762,   763,   134,     0,   659,   136,   137,   138,   139,     0,
       0,     0,     0,     0,   140,     0,     0,   660,     0,   142,
     143,   144,   145,   146,   661,   148,     0,   149,     0,     0,
     662,   150,   663,   664,   665,   151,   666,     0,   152,   153,
       0,   154,     0,   155,   156,     0,     0,   157,   667,   668,
     158,     0,   159,   669,   670,   161,     0,   162,   163,   164,
     671,   166,     0,   672,   168,     0,   169,   170,   171,   172,
     173,   174,   175,     0,   176,   177,     0,   673,     0,   179,
     674,   675,     0,     0,   180,   676,   677,     0,   678,   679,
       0,   181,   182,   183,   680,   681,   682,     0,     0,     0,
       0,   683,   186,   684,     0,     0,   685,   187,     0,   188,
       0,     0,     0,   189,     0,   190,   191,   192,   193,     0,
       0,     0,   194,     0,     0,   195,   196,   197,     0,     0,
       0,   198,     0,   199,   200,     0,   201,   202,   203,     0,
       0,   204,     0,   205,   206,   207,   208,   209,   210,   686,
       0,   211,   212,   213,   687,   688,   214,     0,   215,   216,
     217,   218,   689,     0,   219,     0,     0,     0,   220,   221,
       0,   222,     0,   223,     0,   690,   225,   691,   227,     0,
     228,     0,   692,     0,   229,   230,     0,   231,   693,     0,
     232,   233,     0,     0,     0,   694,   235,   236,   237,   695,
       0,   238,   239,     0,     0,   240,     0,     0,     0,   696,
     241,   242,   697,     0,     0,   243,     0,     0,   244,   245,
       0,     0,     0,   246,     0,     0,   247,   248,     0,     0,
     249,     0,   698,   250,   251,     0,     0,     0,     0,     0,
     699,   253,     0,   254,     0,   255,     0,   256,   257,     0,
       0,   700,     0,     0,     0,     0,   258,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,     0,
     271,   272,   701,   273,   274,   275,   276,   702,   277,   278,
    3958,     0,     0,     0,   280,   281,   282,   703,   284,     0,
       0,   704,   286,   705,   287,     0,   288,   706,   707,   708,
     709,   710,   293,   294,   295,   296,     0,   711,   297,   298,
       0,     0,   299,   300,   301,   302,   712,     0,   714,   303,
     304,   305,     0,   715,   716,     0,   306,   307,   717,     0,
     309,   310,   311,     0,   312,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   313,   314,   315,   718,   316,   317,
     318,   319,   320,   719,   322,   323,   324,   720,   721,   327,
     722,     0,   328,   329,   330,     0,   331,     0,   332,   333,
       0,   723,   335,   336,     0,     0,   337,     0,     0,     0,
     338,   339,   340,   341,   342,     0,     0,   343,   344,   345,
       0,   346,   347,     0,   348,   349,   350,   724,   725,   351,
       0,   352,   353,   354,     0,   355,   356,     0,   726,     0,
     727,   358,   359,   360,   361,   362,   728,   364,   365,   366,
       0,   729,   368,     0,     0,     0,   369,   370,   371,   372,
       0,     0,     0,   373,     0,     0,     0,   374,   375,   376,
     377,     0,   378,   379,   380,   381,     0,     0,     0,     0,
       0,     0,   382,   383,     0,   384,     0,     0,   385,     0,
       0,   386,   387,   388,   730,   731,   389,   390,     0,   391,
     732,   393,   394,   395,   733,   734,   396,   397,   735,   398,
     399,     0,     0,   400,   401,     0,   736,   402,   403,     0,
     737,   738,   739,   740,     0,     0,     0,     0,     0,   408,
     409,   410,     0,   741,   742,   743,   412,   413,   414,   744,
     415,   416,   745,   417,   418,     0,   419,   420,     0,     0,
     421,     0,     0,   422,     0,   423,     0,   746,   425,     0,
       0,   747,   748,   749,   750,   426,     0,     0,   427,   751,
       0,   752,   428,   429,   430,   753,   754,     0,     0,     0,
       0,   433,   434,     0,   435,   436,   437,     0,     0,   755,
       0,     0,     0,   756,   757,     0,     0,     0,     0,   758,
     759,     0,     0,   760,   761,     0,   762,   763,   134,     0,
     135,   136,   137,   138,   139,     0,     0,     0,     0,     0,
     140,     0,     0,   141,     0,   142,   143,   144,   145,   146,
     147,   148,     0,   149,     0,     0,     0,   150,     0,     0,
       0,   151,     0,     0,   152,   153,     0,   154,     0,   155,
     156,     0,     0,   157,     0,     0,   158,     0,   159,   160,
       0,   161,     0,   162,   163,   164,   165,   166,     0,   167,
     168,     0,   169,   170,   171,   172,   173,   174,   175,     0,
     176,   177,  2197,   178,     0,   179,     0,     0,     0,     0,
     180,     0,     0,     0,     0,     0,     0,   181,   182,   183,
       0,     0,   184,     0,     0,     0,     0,   185,   186,     0,
       0,     0,     0,   187,     0,   188,     0,     0,     0,   189,
       0,   190,   191,   192,   193,     0,     0,     0,   194,     0,
       0,   195,   196,   197,     0,     0,     0,   198,     0,   199,
     200,     0,   201,   202,   203,     0,     0,   204,     0,   205,
     206,   207,   208,   209,   210,     0,     0,   211,   212,   213,
       0,     0,   214,     0,   215,   216,   217,   218,     0,     0,
     219,     0,     0,     0,   220,   221,     0,   222,  2198,   223,
       0,   224,   225,   226,   227,     0,   228,     0,     0,     0,
     229,   230,     0,   231,     0,     0,   232,   233,     0,     0,
       0,   234,   235,   236,   237,     0,     0,   238,   239,  1360,
       0,   240,     0,     0,     0,     0,   241,   242,     0,     0,
       0,   243,     0,     0,   244,   245,     0,     0,     0,   246,
    1361,     0,   247,   248,     0,     0,   249,     0,     0,   250,
     251,     0,  2707,     0,     0,     0,   252,   253,     0,   254,
       0,   255,     0,   256,   257,     0,     0,     0,     0,     0,
       0,     0,   258,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,     0,   271,   272,     0,   273,
     274,   275,   276,     0,   277,   278,   279,     0,     0,     0,
     280,   281,   282,   283,   284,     0,     0,   285,   286,     0,
     287,     0,   288,     0,   289,   290,   291,   292,   293,   294,
     295,   296,     0,     0,   297,   298,     0,     0,   299,   300,
     301,   302,     0,     0,     0,   303,   304,   305,     0,     0,
       0,     0,   306,   307,   308,     0,   309,   310,   311,     0,
     312,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     313,   314,   315,     0,   316,   317,   318,   319,  2708,   321,
     322,   323,   324,   325,   326,   327,     0,     0,   328,   329,
     330,     0,   331,     0,   332,   333,     0,   334,   335,   336,
       0,     0,   337,     0,     0,     0,   338,   339,   340,   341,
     342,     0,     0,   343,   344,   345,     0,   346,   347,     0,
     348,   349,   350,     0,     0,   351,     0,   352,   353,   354,
       0,   355,   356,     0,   357,     0,     0,   358,   359,   360,
     361,   362,   363,   364,   365,   366,     0,   367,   368,  -401,
       0,     0,   369,   370,   371,   372,     0,     0,     0,   373,
       0,     0,     0,   374,   375,   376,   377,     0,   378,   379,
     380,   381,  2200,     0,     0,     0,     0,     0,   382,   383,
       0,   384,     0,     0,   385,     0,     0,   386,   387,   388,
       0,     0,   389,   390,     0,   391,   392,   393,   394,   395,
       0,     0,   396,   397,     0,   398,   399,     0,     0,   400,
     401,     0,     0,   402,   403,     0,   404,   405,   406,   407,
       0,     0,     0,     0,     0,   408,   409,   410,     0,     0,
       0,   411,   412,   413,   414,     0,   415,   416,     0,   417,
     418,     0,   419,   420,     0,     0,   421,     0,     0,   422,
       0,   423,     0,   424,   425,     0,     0,     0,     0,     0,
       0,   426,     0,     0,   427,     0,     0,     0,   428,   429,
     430,   431,   432,     0,     0,     0,     0,   433,   434,     0,
     435,   436,   437,     0,     0,   438,     0,   134,     0,   135,
     136,   137,   138,   139,     0,     0,     0,     0,     0,   140,
       0,     0,   141,  2262,   142,   143,   144,   145,   146,   147,
     148,     0,   149,     0,     0,     0,   150,     0,     0,     0,
     151,     0,     0,   152,   153,     0,   154,     0,   155,   156,
       0,     0,   157,     0,     0,   158,     0,   159,   160,     0,
     161,     0,   162,   163,   164,   165,   166,     0,   167,   168,
       0,   169,   170,   171,   172,   173,   174,   175,     0,   176,
     177,  2197,   178,     0,   179,     0,     0,     0,     0,   180,
       0,     0,     0,     0,     0,     0,   181,   182,   183,     0,
       0,   184,     0,     0,     0,     0,   185,   186,     0,     0,
       0,     0,   187,     0,   188,     0,     0,     0,   189,     0,
     190,   191,   192,   193,     0,     0,     0,   194,     0,     0,
     195,   196,   197,     0,     0,     0,   198,     0,   199,   200,
       0,   201,   202,   203,     0,     0,   204,     0,   205,   206,
     207,   208,   209,   210,     0,     0,   211,   212,   213,     0,
       0,   214,     0,   215,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,  2198,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,     0,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,  1360,     0,
     240,     0,     0,     0,     0,   241,   242,     0,     0,     0,
     243,     0,     0,   244,   245,     0,     0,     0,   246,  1361,
       0,   247,   248,     0,     0,   249,     0,     0,   250,   251,
       0,     0,     0,     0,     0,   252,   253,     0,   254,     0,
     255,     0,   256,   257,     0,     0,     0,     0,     0,     0,
       0,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,     0,   271,   272,     0,   273,   274,
     275,   276,     0,   277,   278,   279,     0,     0,     0,   280,
     281,   282,   283,   284,     0,     0,   285,   286,     0,   287,
       0,   288,     0,   289,   290,   291,   292,   293,   294,   295,
     296,     0,     0,   297,   298,     0,     0,   299,   300,   301,
     302,     0,     0,     0,   303,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,   357,     0,     0,   358,   359,   360,   361,
     362,   363,   364,   365,   366,     0,   367,   368,     0,     0,
       0,   369,   370,   371,   372,     0,     0,     0,   373,     0,
       0,     0,   374,   375,   376,   377,     0,   378,   379,   380,
     381,  2200,     0,     0,     0,     0,     0,   382,   383,     0,
     384,     0,     0,   385,     0,     0,   386,   387,   388,     0,
       0,   389,   390,     0,   391,   392,   393,   394,   395,     0,
       0,   396,   397,     0,   398,   399,     0,     0,   400,   401,
       0,     0,   402,   403,     0,   404,   405,   406,   407,     0,
       0,     0,     0,     0,   408,   409,   410,     0,     0,     0,
     411,   412,   413,   414,     0,   415,   416,     0,   417,   418,
       0,   419,   420,     0,     0,   421,     0,     0,   422,     0,
     423,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     426,     0,     0,   427,     0,     0,     0,   428,   429,   430,
     431,   432,     0,     0,     0,     0,   433,   434,     0,   435,
     436,   437,     0,     0,   438,     0,   134,     0,   135,   136,
     137,   138,   139,     0,     0,     0,     0,     0,   140,     0,
       0,   141,  2262,   142,   143,   144,   145,   146,   147,   148,
       0,   149,     0,     0,     0,   150,     0,     0,     0,   151,
       0,     0,   152,   153,     0,   154,     0,   155,   156,     0,
       0,   157,     0,     0,   158,     0,   159,   160,     0,   161,
       0,   162,   163,   164,   165,   166,     0,   167,   168,     0,
     169,   170,   171,   172,   173,   174,   175,     0,   176,   177,
       0,   178,     0,   179,     0,     0,     0,     0,   180,     0,
       0,     0,     0,     0,     0,   181,   182,   183,     0,     0,
     184,     0,     0,     0,     0,   185,   186,     0,     0,     0,
       0,   187,     0,   188,     0,     0,     0,   189,     0,   190,
     191,   192,   193,     0,     0,     0,   194,     0,     0,   195,
     196,   197,     0,     0,     0,   198,     0,   199,   200,     0,
     201,   202,   203,     0,     0,   204,     0,   205,   206,   207,
     208,   209,   210,     0,     0,   211,   212,   213,     0,     0,
     214,     0,   215,   216,   217,   218,     0,     0,   219,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   224,
     225,   226,   227,     0,   228,     0,     0,     0,   229,   230,
       0,   231,     0,     0,   232,   233,     0,     0,     0,   234,
     235,   236,   237,     0,     0,   238,   239,     0,     0,   240,
       0,     0,     0,     0,   241,   242,     0,     0,     0,   243,
       0,     0,   244,   245,     0,     0,     0,   246,     0,     0,
     247,   248,     0,     0,   249,     0,     0,   250,   251,     0,
       0,     0,     0,     0,   252,   253,     0,   254,     0,   255,
       0,   256,   257,     0,     0,     0,     0,     0,     0,     0,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,     0,   271,   272,     0,   273,   274,   275,
     276,     0,   277,   278,   279,     0,     0,     0,   280,   281,
     282,   283,   284,     0,     0,   285,   286,     0,   287,     0,
     288,     0,   289,   290,   291,   292,   293,   294,   295,   296,
       0,     0,   297,   298,     0,     0,   299,   300,   301,   302,
       0,     0,     0,   303,   304,   305,     0,     0,     0,     0,
     306,   307,   308,     0,   309,   310,   311,     0,   312,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   313,   314,
     315,     0,   316,   317,   318,   319,   320,   321,   322,   323,
     324,   325,   326,   327,     0,     0,   328,   329,   330,     0,
     331,     0,   332,   333,     0,   334,   335,   336,     0,     0,
     337,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,   347,     0,   348,   349,
     350,     0,     0,   351,     0,   352,   353,   354,     0,   355,
     356,     0,   357,     0,     0,   358,   359,   360,   361,   362,
     363,   364,   365,   366,     0,   367,   368,  2081,     0,     0,
     369,   370,   371,   372,     0,     0,     0,   373,     0,     0,
       0,   374,   375,   376,   377,     0,   378,   379,   380,   381,
       0,     0,     0,     0,     0,     0,   382,   383,     0,   384,
       0,     0,   385,     0,     0,   386,   387,   388,     0,     0,
     389,   390,     0,   391,   392,   393,   394,   395,     0,     0,
     396,   397,     0,   398,   399,     0,     0,   400,   401,     0,
       0,   402,   403,     0,   404,   405,   406,   407,     0,     0,
       0,     0,     0,   408,   409,   410,     0,     0,     0,   411,
     412,   413,   414,     0,   415,   416,     0,   417,   418,     0,
     419,   420,     0,     0,   421,     0,     0,   422,     0,   423,
       0,   424,   425,     0,     0,     0,     0,     0,     0,   426,
       0,     0,   427,     0,     0,     0,   428,   429,   430,   431,
     432,     0,     0,     0,     0,   433,   434,     0,   435,   436,
     437,     0,     0,   438,     0,   134,     0,   135,   136,   137,
     138,   139,     0,     0,     0,  2484,     0,   140,     0,     0,
     141,   763,   142,   143,   144,   145,   146,   147,   148,     0,
     149,     0,     0,     0,   150,     0,     0,     0,   151,     0,
       0,   152,   153,     0,   154,     0,   155,   156,     0,     0,
     157,     0,     0,   158,     0,   159,   160,     0,   161,     0,
     162,   163,   164,   165,   166,     0,   167,   168,     0,   169,
     170,   171,   172,   173,   174,   175,     0,   176,   177,     0,
     178,     0,   179,     0,     0,     0,     0,   180,     0,     0,
       0,     0,     0,     0,   181,   182,   183,     0,     0,   184,
       0,     0,     0,     0,   185,   186,     0,     0,     0,     0,
     187,     0,   188,     0,     0,     0,   189,     0,   190,   191,
     192,   193,     0,     0,     0,   194,     0,     0,   195,   196,
     197,     0,     0,     0,   198,     0,   199,   200,     0,   201,
     202,   203,     0,     0,   204,     0,   205,   206,   207,   208,
     209,   210,     0,     0,   211,   212,   213,     0,     0,   214,
       0,   215,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
       0,     0,     0,   241,   242,     0,     0,     0,   243,     0,
       0,   244,   245,     0,     0,     0,   246,     0,     0,   247,
     248,     0,     0,   249,     0,     0,   250,   251,     0,     0,
       0,     0,     0,   252,   253,     0,   254,     0,   255,     0,
     256,   257,     0,     0,     0,     0,     0,     0,     0,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,     0,   271,   272,     0,   273,   274,   275,   276,
       0,   277,   278,   279,     0,     0,     0,   280,   281,   282,
     283,   284,     0,     0,   285,   286,     0,   287,     0,   288,
       0,   289,   290,   291,   292,   293,   294,   295,   296,     0,
       0,   297,   298,     0,     0,   299,   300,   301,   302,     0,
       0,     0,   303,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,   357,     0,     0,   358,   359,   360,   361,   362,   363,
     364,   365,   366,     0,   367,   368,     0,     0,     0,   369,
     370,   371,   372,     0,     0,     0,   373,     0,     0,     0,
     374,   375,   376,   377,     0,   378,   379,   380,   381,     0,
       0,     0,     0,     0,     0,   382,   383,     0,   384,     0,
       0,   385,     0,     0,   386,   387,   388,     0,     0,   389,
     390,     0,   391,   392,   393,   394,   395,     0,     0,   396,
     397,     0,   398,   399,     0,     0,   400,   401,     0,     0,
     402,   403,     0,   404,   405,   406,   407,     0,     0,     0,
       0,     0,   408,   409,   410,     0,     0,     0,   411,   412,
     413,   414,     0,   415,   416,     0,   417,   418,     0,   419,
     420,     0,     0,   421,     0,     0,   422,     0,   423,     0,
     424,   425,     0,     0,     0,     0,     0,     0,   426,     0,
       0,   427,     0,     0,     0,   428,   429,   430,   431,   432,
       0,     0,     0,     0,   433,   434,     0,   435,   436,   437,
       0,     0,   438,     0,     0,     0,   134,     0,   135,   136,
     137,   138,   139,     0,  4053,     0,     0,     0,   140,  4054,
     763,   141,     0,   142,   143,   144,   145,   146,   147,   148,
       0,   149,     0,     0,     0,   150,     0,     0,     0,   151,
       0,     0,   152,   153,     0,   154,     0,   155,   156,     0,
       0,   157,     0,     0,   158,     0,   159,   160,     0,   161,
       0,   162,   163,   164,   165,   166,     0,   167,   168,     0,
     169,   170,   171,   172,   173,   174,   175,     0,   176,   177,
       0,   178,     0,   179,     0,     0,     0,     0,   180,     0,
       0,     0,     0,     0,     0,   181,   182,   183,     0,     0,
     184,     0,     0,     0,     0,   185,   186,     0,     0,     0,
       0,   187,     0,   188,     0,     0,     0,   189,     0,   190,
     191,   192,   193,     0,     0,     0,   194,     0,     0,   195,
     196,   197,     0,     0,     0,   198,     0,   199,   200,     0,
     201,   202,   203,     0,     0,   204,     0,   205,   206,   207,
     208,   209,   210,     0,     0,   211,   212,   213,     0,     0,
     214,     0,   215,   216,   217,   218,     0,     0,   219,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   224,
     225,   226,   227,     0,   228,     0,     0,     0,   229,   230,
       0,   231,     0,     0,   232,   233,     0,     0,     0,   234,
     235,   236,   237,     0,     0,   238,   239,     0,     0,   240,
       0,     0,     0,     0,   241,   242,     0,  1234,     0,   243,
       0,     0,   244,   245,     0,     0,     0,   246,     0,     0,
     247,   248,     0,     0,   249,     0,     0,   250,   251,     0,
       0,     0,     0,     0,   252,   253,     0,   254,     0,   255,
       0,   256,   257,     0,     0,     0,     0,     0,     0,     0,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,     0,   271,   272,     0,   273,   274,   275,
     276,     0,   277,   278,   279,     0,     0,     0,   280,   281,
     282,   283,   284,     0,     0,   285,   286,     0,   287,     0,
     288,     0,   289,   290,   291,   292,   293,   294,   295,   296,
       0,     0,   297,   298,     0,     0,   299,   300,   301,   302,
       0,     0,     0,   303,   304,   305,     0,     0,     0,     0,
     306,   307,   308,     0,   309,   310,   311,     0,   312,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   313,   314,
     315,     0,   316,   317,   318,   319,   320,   321,   322,   323,
     324,   325,   326,   327,     0,     0,   328,   329,   330,     0,
     331,     0,   332,   333,     0,   334,   335,   336,     0,     0,
     337,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,   347,     0,   348,   349,
     350,     0,     0,   351,     0,   352,   353,   354,     0,   355,
     356,     0,   357,     0,     0,   358,   359,   360,   361,   362,
     363,   364,   365,   366,     0,   367,   368,     0,     0,     0,
     369,   370,   371,   372,     0,     0,     0,   373,     0,     0,
       0,   374,   375,   376,   377,     0,   378,   379,   380,   381,
       0,     0,     0,     0,     0,     0,   382,   383,     0,   384,
       0,     0,   385,     0,     0,   386,   387,   388,     0,     0,
     389,   390,     0,   391,   392,   393,   394,   395,     0,     0,
     396,   397,     0,   398,   399,     0,     0,   400,   401,     0,
       0,   402,   403,     0,   404,   405,   406,   407,     0,     0,
       0,     0,     0,   408,   409,   410,     0,     0,     0,   411,
     412,   413,   414,     0,   415,   416,     0,   417,   418,     0,
     419,   420,     0,     0,   421,     0,     0,   422,     0,   423,
       0,   424,   425,     0,     0,     0,     0,     0,     0,   426,
       0,     0,   427,     0,     0,     0,   428,   429,   430,   431,
     432,     0,     0,     0,     0,   433,   434,     0,   435,   436,
     437,     0,     0,   438,     0,   134,     0,   135,   136,   137,
     138,   139,     0,     0,     0,     0,     0,   140,     0,     0,
     141,   484,   142,   143,   144,   145,   146,   147,   148,     0,
     149,     0,     0,     0,   150,     0,     0,     0,   151,     0,
       0,   152,   153,     0,   154,     0,   155,   156,     0,     0,
     157,     0,     0,   158,     0,   159,   160,     0,   161,     0,
     162,   163,   164,   165,   166,     0,   167,   168,     0,   169,
     170,   171,   172,   173,   174,   175,     0,   176,   177,     0,
     178,     0,   179,     0,     0,     0,     0,   180,     0,     0,
       0,     0,     0,     0,   181,   182,   183,     0,     0,   184,
       0,     0,     0,     0,   185,   186,     0,     0,     0,     0,
     187,     0,   188,     0,     0,     0,   189,     0,   190,   191,
     192,   193,     0,     0,     0,   194,     0,     0,   195,   196,
     197,     0,     0,     0,   198,     0,   199,   200,     0,   201,
     202,   203,     0,     0,   204,     0,   205,   206,   207,   208,
     209,   210,     0,     0,   211,   212,   213,     0,     0,   214,
       0,   215,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
       0,     0,     0,   241,   242,     0,     0,     0,   243,     0,
       0,   244,   245,     0,     0,     0,   246,     0,     0,   247,
     248,     0,     0,   249,     0,     0,   250,   251,     0,     0,
       0,     0,     0,   252,   253,     0,   254,     0,   255,     0,
     256,   257,     0,     0,     0,     0,     0,     0,     0,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,     0,   271,   272,     0,   273,   274,   275,   276,
       0,   277,   278,   279,     0,     0,     0,   280,   281,   282,
     283,   284,     0,     0,   285,   286,     0,   287,     0,   288,
       0,   289,   290,   291,   292,   293,   294,   295,   296,     0,
       0,   297,   298,     0,     0,   299,   300,   301,   302,     0,
       0,     0,   303,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,   357,     0,     0,   358,   359,   360,   361,   362,   363,
     364,   365,   366,     0,   367,   368,     0,     0,     0,   369,
     370,   371,   372,     0,     0,     0,   373,     0,     0,     0,
     374,   375,   376,   377,     0,   378,   379,   380,   381,     0,
       0,     0,     0,     0,     0,   382,   383,     0,   384,     0,
       0,   385,     0,     0,   386,   387,   388,     0,     0,   389,
     390,     0,   391,   392,   393,   394,   395,     0,     0,   396,
     397,     0,   398,   399,     0,     0,   400,   401,     0,     0,
     402,   403,     0,   404,   405,   406,   407,     0,     0,     0,
       0,     0,   408,   409,   410,     0,     0,     0,   411,   412,
     413,   414,     0,   415,   416,     0,   417,   418,     0,   419,
     420,     0,     0,   421,     0,     0,   422,     0,   423,     0,
     424,   425,     0,     0,     0,     0,     0,     0,   426,     0,
       0,   427,     0,     0,     0,   428,   429,   430,   431,   432,
       0,     0,     0,     0,   433,   434,     0,   435,   436,   437,
       0,     0,   438,     0,     0,     0,     0,   134,  1887,   135,
     136,   137,   138,   139,     0,     0,     0,     0,     0,   140,
     484,     0,   141,     0,   142,   143,   144,   145,   146,   147,
     148,     0,   149,     0,     0,     0,   150,     0,     0,     0,
     151,     0,     0,   152,   153,     0,   154,     0,   155,   156,
       0,     0,   157,     0,     0,   158,     0,   159,   160,     0,
     161,     0,   162,   163,   164,   165,   166,     0,   167,   168,
       0,   169,   170,   171,   172,   173,   174,   175,     0,   176,
     177,     0,   178,     0,   179,     0,     0,     0,     0,   180,
       0,     0,     0,     0,     0,     0,   181,   182,   183,     0,
       0,   184,     0,     0,     0,     0,   185,   186,     0,     0,
       0,     0,   187,     0,   188,     0,     0,     0,   189,     0,
     190,   191,   192,   193,     0,     0,     0,   194,     0,     0,
     195,   196,   197,     0,     0,     0,   198,     0,   199,   200,
       0,   201,   202,   203,     0,     0,   204,     0,   205,   206,
     207,   208,   209,   210,     0,     0,   211,   212,   213,     0,
       0,   214,     0,   215,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,     0,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,     0,     0,
     240,     0,     0,     0,     0,   241,   242,     0,     0,     0,
     243,     0,     0,   244,   245,     0,     0,     0,   246,     0,
       0,   247,   248,     0,     0,   249,     0,     0,   250,   251,
       0,     0,     0,     0,     0,   252,   253,     0,   254,     0,
     255,     0,   256,   257,     0,     0,     0,     0,     0,     0,
       0,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,     0,   271,   272,     0,   273,   274,
     275,   276,     0,   277,   278,   279,     0,     0,     0,   280,
     281,   282,   283,   284,     0,     0,   285,   286,     0,   287,
       0,   288,     0,   289,   290,   291,   292,   293,   294,   295,
     296,     0,     0,   297,   298,     0,     0,   299,   300,   301,
     302,     0,     0,     0,   303,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,   357,     0,     0,   358,   359,   360,   361,
     362,   363,   364,   365,   366,     0,   367,   368,     0,     0,
       0,   369,   370,   371,   372,     0,     0,     0,   373,     0,
       0,     0,   374,   375,   376,   377,     0,   378,   379,   380,
     381,     0,     0,     0,     0,     0,     0,   382,   383,     0,
     384,     0,     0,   385,     0,     0,   386,   387,   388,     0,
       0,   389,   390,     0,   391,   392,   393,   394,   395,     0,
       0,   396,   397,     0,   398,   399,     0,     0,   400,   401,
       0,     0,   402,   403,     0,   404,   405,   406,   407,     0,
       0,     0,     0,     0,   408,   409,   410,     0,     0,     0,
     411,   412,   413,   414,     0,   415,   416,     0,   417,   418,
       0,   419,   420,     0,     0,   421,     0,     0,   422,     0,
     423,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     426,     0,     0,   427,     0,     0,     0,   428,   429,   430,
     431,   432,     0,     0,     0,     0,   433,   434,     0,   435,
     436,   437,     0,     0,   438,     0,   134,     0,   135,   136,
     137,   138,   139,     0,     0,  2261,     0,     0,   140,     0,
       0,   141,  2262,   142,   143,   144,   145,   146,   147,   148,
       0,   149,     0,     0,     0,   150,     0,     0,     0,   151,
       0,     0,   152,   153,     0,   154,     0,   155,   156,     0,
       0,   157,     0,     0,   158,     0,   159,   160,     0,   161,
       0,   162,   163,   164,   165,   166,     0,   167,   168,     0,
     169,   170,   171,   172,   173,   174,   175,     0,   176,   177,
       0,   178,     0,   179,     0,     0,     0,     0,   180,     0,
       0,     0,     0,     0,     0,   181,   182,   183,     0,     0,
     184,     0,     0,     0,     0,   185,   186,     0,     0,     0,
       0,   187,     0,   188,     0,     0,     0,   189,     0,   190,
     191,   192,   193,     0,     0,     0,   194,     0,     0,   195,
     196,   197,     0,     0,     0,   198,     0,   199,   200,     0,
     201,   202,   203,     0,     0,   204,     0,   205,   206,   207,
     208,   209,   210,     0,     0,   211,   212,   213,     0,     0,
     214,     0,   215,   216,   217,   218,     0,     0,   219,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   224,
     225,   226,   227,     0,   228,     0,     0,     0,   229,   230,
       0,   231,     0,     0,   232,   233,     0,     0,     0,   234,
     235,   236,   237,     0,     0,   238,   239,     0,     0,   240,
       0,     0,     0,     0,   241,   242,     0,     0,     0,   243,
       0,     0,   244,   245,     0,     0,     0,   246,     0,     0,
     247,   248,     0,     0,   249,     0,     0,   250,   251,     0,
       0,     0,     0,     0,   252,   253,     0,   254,     0,   255,
       0,   256,   257,     0,     0,     0,     0,     0,     0,     0,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,     0,   271,   272,     0,   273,   274,   275,
     276,     0,   277,   278,   279,     0,     0,     0,   280,   281,
     282,   283,   284,     0,     0,   285,   286,     0,   287,     0,
     288,     0,   289,   290,   291,   292,   293,   294,   295,   296,
       0,     0,   297,   298,     0,     0,   299,   300,   301,   302,
       0,     0,     0,   303,   304,   305,     0,     0,     0,     0,
     306,   307,   308,     0,   309,   310,   311,     0,   312,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   313,   314,
     315,     0,   316,   317,   318,   319,   320,   321,   322,   323,
     324,   325,   326,   327,     0,     0,   328,   329,   330,     0,
     331,     0,   332,   333,     0,   334,   335,   336,     0,     0,
     337,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,   347,     0,   348,   349,
     350,     0,     0,   351,     0,   352,   353,   354,     0,   355,
     356,     0,   357,     0,     0,   358,   359,   360,   361,   362,
     363,   364,   365,   366,     0,   367,   368,     0,     0,     0,
     369,   370,   371,   372,     0,     0,     0,   373,     0,     0,
       0,   374,   375,   376,   377,     0,   378,   379,   380,   381,
       0,     0,     0,     0,     0,     0,   382,   383,     0,   384,
       0,     0,   385,     0,     0,   386,   387,   388,     0,     0,
     389,   390,     0,   391,   392,   393,   394,   395,     0,     0,
     396,   397,     0,   398,   399,     0,     0,   400,   401,     0,
       0,   402,   403,     0,   404,   405,   406,   407,     0,     0,
       0,     0,     0,   408,   409,   410,     0,     0,     0,   411,
     412,   413,   414,     0,   415,   416,     0,   417,   418,     0,
     419,   420,     0,     0,   421,     0,     0,   422,     0,   423,
       0,   424,   425,     0,     0,     0,     0,     0,     0,   426,
       0,     0,   427,     0,     0,     0,   428,   429,   430,   431,
     432,     0,     0,     0,     0,   433,   434,     0,   435,   436,
     437,     0,     0,   438,     0,     0,     0,   134,     0,   135,
     136,   137,   138,   139,     0,     0,     0,     0,     0,   140,
    4054,   763,   141,     0,   142,   143,   144,   145,   146,   147,
     148,     0,   149,     0,     0,     0,   150,     0,     0,     0,
     151,     0,     0,   152,   153,     0,   154,     0,   155,   156,
       0,     0,   157,     0,     0,   158,     0,   159,   160,     0,
     161,     0,   162,   163,   164,   165,   166,     0,   167,   168,
       0,   169,   170,   171,   172,   173,   174,   175,     0,   176,
     177,     0,   178,     0,   179,     0,     0,     0,     0,   180,
       0,     0,     0,     0,     0,     0,   181,   182,   183,     0,
       0,   184,     0,     0,     0,     0,   185,   186,     0,     0,
       0,     0,   187,     0,   188,     0,     0,     0,   189,     0,
     190,   191,   192,   193,     0,     0,     0,   194,     0,     0,
     195,   196,   197,     0,     0,     0,   198,     0,   199,   200,
       0,   201,   202,   203,     0,     0,   204,     0,   205,   206,
     207,   208,   209,   210,     0,     0,   211,   212,   213,     0,
       0,   214,     0,   215,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,     0,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,     0,     0,
     240,     0,     0,     0,     0,   241,   242,     0,     0,     0,
     243,     0,     0,   244,   245,     0,     0,     0,   246,     0,
       0,   247,   248,     0,     0,   249,     0,     0,   250,   251,
       0,     0,     0,     0,     0,   252,   253,     0,   254,     0,
     255,     0,   256,   257,     0,     0,     0,     0,     0,     0,
       0,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,     0,   271,   272,     0,   273,   274,
     275,   276,     0,   277,   278,   279,     0,     0,     0,   280,
     281,   282,   283,   284,     0,     0,   285,   286,     0,   287,
       0,   288,     0,   289,   290,   291,   292,   293,   294,   295,
     296,     0,     0,   297,   298,     0,     0,   299,   300,   301,
     302,     0,     0,     0,   303,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,   357,     0,     0,   358,   359,   360,   361,
     362,   363,   364,   365,   366,     0,   367,   368,     0,     0,
       0,   369,   370,   371,   372,     0,     0,     0,   373,     0,
       0,     0,   374,   375,   376,   377,     0,   378,   379,   380,
     381,     0,     0,     0,     0,     0,     0,   382,   383,     0,
     384,     0,     0,   385,     0,     0,   386,   387,   388,     0,
       0,   389,   390,     0,   391,   392,   393,   394,   395,     0,
       0,   396,   397,     0,   398,   399,     0,     0,   400,   401,
       0,     0,   402,   403,     0,   404,   405,   406,   407,     0,
       0,     0,     0,     0,   408,   409,   410,     0,     0,     0,
     411,   412,   413,   414,     0,   415,   416,     0,   417,   418,
       0,   419,   420,     0,     0,   421,     0,     0,   422,     0,
     423,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     426,     0,     0,   427,     0,     0,     0,   428,   429,   430,
     431,   432,     0,     0,     0,     0,   433,   434,     0,   435,
     436,   437,     0,     0,   438,     0,   134,     0,   135,   136,
     137,   138,   139,     0,     0,     0,     0,     0,   140,     0,
       0,   141,   484,   142,   143,   144,   145,   146,   147,   148,
       0,   149,     0,     0,     0,   150,     0,     0,     0,   151,
       0,     0,   152,   153,     0,   154,     0,   155,   156,     0,
       0,   157,     0,     0,   158,     0,   159,   160,     0,   161,
       0,   162,   163,   164,   165,   166,     0,   167,   168,     0,
     169,   170,   171,   172,   173,   174,   175,     0,   176,   177,
       0,   178,     0,   179,     0,     0,     0,     0,   180,     0,
       0,     0,     0,     0,     0,   181,   182,   183,     0,     0,
     184,     0,     0,     0,     0,   185,   186,     0,     0,     0,
       0,   187,     0,   188,     0,     0,     0,   189,     0,   190,
     191,   192,   193,     0,     0,     0,   194,     0,     0,   195,
     196,   197,     0,     0,     0,   198,     0,   199,   200,     0,
     201,   202,   203,     0,     0,   204,     0,   205,   206,   207,
     208,   209,   210,     0,     0,   211,   545,   213,     0,     0,
     214,     0,   215,   216,   217,   218,     0,     0,   219,     0,
       0,     0,   220,   221,     0,   222,     0,   223,     0,   224,
     225,   226,   227,     0,   228,     0,     0,     0,   229,   230,
       0,   231,     0,     0,   232,   233,     0,     0,     0,   234,
     235,   236,   237,     0,     0,   238,   239,     0,     0,   240,
       0,     0,     0,     0,   241,   242,     0,     0,     0,   243,
       0,     0,   244,   245,     0,     0,     0,   246,     0,     0,
     247,   248,     0,     0,   249,     0,     0,   250,   251,     0,
       0,     0,     0,     0,   252,   253,     0,   254,     0,   255,
       0,   256,   257,     0,     0,     0,     0,     0,     0,     0,
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,     0,   271,   272,     0,   273,   274,   275,
     276,     0,   277,   278,   279,     0,     0,     0,   280,   281,
     282,   283,   284,     0,     0,   285,   286,     0,   287,     0,
     288,     0,   289,   290,   291,   292,   293,   294,   295,   296,
       0,     0,   297,   298,     0,     0,   299,   300,   301,   302,
       0,     0,     0,   303,   304,   305,     0,     0,     0,     0,
     306,   307,   308,     0,   309,   310,   311,     0,   312,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   313,   314,
     315,     0,   316,   317,   318,   546,   320,   321,   322,   323,
     324,   325,   326,   327,     0,     0,   328,   329,   330,     0,
     331,     0,   332,   333,     0,   334,   335,   336,     0,     0,
     337,     0,     0,     0,   338,   339,   340,   341,   342,     0,
       0,   343,   344,   345,     0,   346,   347,     0,   348,   349,
     350,     0,     0,   351,     0,   352,   353,   354,     0,   355,
     356,     0,   357,     0,     0,   358,   359,   360,   361,   362,
     363,   364,   365,   366,     0,   367,   368,     0,     0,     0,
     369,   370,   371,   372,     0,     0,     0,   373,     0,     0,
       0,   374,   375,   376,   377,     0,   378,   379,   380,   381,
       0,     0,     0,     0,     0,     0,   382,   383,     0,   384,
       0,     0,   385,     0,     0,   386,   387,   388,     0,     0,
     389,   390,     0,   391,   392,   393,   394,   395,     0,     0,
     396,   397,     0,   398,   399,     0,     0,   400,   401,     0,
       0,   402,   403,     0,   404,   405,   406,   407,     0,     0,
       0,     0,     0,   408,   409,   410,     0,     0,     0,   411,
     412,   413,   414,     0,   415,   416,     0,   417,   418,     0,
     419,   420,     0,     0,   421,     0,     0,   422,     0,   423,
       0,   424,   425,     0,     0,     0,     0,     0,     0,   426,
       0,     0,   427,     0,     0,     0,   428,   429,   430,   431,
     432,     0,     0,     0,     0,   433,   434,     0,   435,   436,
     437,     0,     0,   438,     0,   134,     0,   135,   136,   137,
     138,   139,     0,     0,     0,     0,     0,   140,     0,     0,
     141,   484,   142,   143,   144,   145,   146,   147,   148,     0,
     149,     0,     0,     0,   150,     0,     0,     0,   151,     0,
       0,   152,   153,     0,   154,     0,   155,   156,     0,     0,
     157,     0,     0,   158,     0,   159,   160,     0,   161,     0,
     162,   163,   164,   165,   166,     0,   167,   168,     0,   169,
     170,   171,   172,   173,   174,   175,     0,   176,   177,     0,
     178,     0,   179,     0,     0,     0,     0,   180,     0,     0,
       0,     0,     0,     0,   181,   182,   183,     0,     0,   184,
       0,     0,     0,     0,   185,   186,     0,     0,     0,     0,
     187,     0,   188,     0,     0,     0,   189,     0,   190,   191,
     192,   193,     0,     0,     0,   194,     0,     0,   195,   196,
     197,     0,     0,     0,   198,     0,   199,   200,     0,   201,
     202,   203,     0,     0,   204,     0,   205,   206,   207,   208,
     209,   210,     0,     0,   211,   212,   213,     0,     0,   214,
       0,   215,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
       0,     0,     0,   241,   242,     0,     0,     0,   243,     0,
       0,   244,   245,     0,     0,     0,   246,     0,     0,   247,
     248,     0,     0,   249,     0,     0,   250,   251,     0,     0,
       0,     0,     0,   252,   253,     0,   254,     0,   255,     0,
     256,   257,     0,     0,     0,     0,     0,     0,     0,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,     0,   271,   272,     0,   273,   274,   275,   276,
       0,   277,   278,   279,     0,     0,     0,   280,   281,   282,
     283,   284,     0,     0,   285,   286,     0,   287,     0,   288,
       0,   289,   290,   291,   292,   293,   294,   295,   296,     0,
       0,   297,   298,     0,     0,   299,   300,   301,   302,     0,
       0,     0,   303,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,   357,     0,     0,   358,   359,   360,   361,   362,   363,
     364,   365,   366,     0,   367,   368,     0,     0,     0,   369,
     370,   371,   372,     0,     0,     0,   373,     0,     0,     0,
     374,   375,   376,   377,     0,   378,   379,   380,   381,     0,
       0,     0,     0,     0,     0,   382,   383,     0,   384,     0,
       0,   385,     0,     0,   386,   387,   388,     0,     0,   389,
     390,     0,   391,   392,   393,   394,   395,     0,     0,   396,
     397,     0,   398,   399,     0,     0,   400,   401,     0,     0,
     402,   403,     0,   404,   405,   406,   407,     0,     0,     0,
       0,     0,   408,   409,   410,     0,     0,     0,   411,   412,
     413,   414,     0,   415,   416,     0,   417,   418,     0,   419,
     420,     0,     0,   421,     0,     0,   422,     0,   423,     0,
     424,   425,     0,     0,     0,     0,     0,     0,   426,     0,
       0,   427,     0,     0,     0,   428,   429,   430,   431,   432,
       0,     0,     0,     0,   433,   434,     0,   435,   436,   437,
       0,     0,   438,     0,   134,     0,   135,   136,   137,   138,
     139,     0,     0,     0,     0,     0,   140,     0,     0,   141,
     763,   142,   143,   144,   145,   146,   147,   148,     0,   149,
       0,     0,     0,   150,     0,     0,     0,   151,     0,     0,
     152,   153,     0,   154,     0,   155,   156,     0,     0,   157,
       0,     0,   158,     0,   159,   160,     0,   161,     0,   162,
     163,   164,   165,   166,     0,   167,   168,     0,   169,   170,
     171,   172,   173,   174,   175,     0,   176,   177,     0,   178,
       0,   179,     0,     0,     0,     0,   180,     0,     0,     0,
       0,     0,     0,   181,   182,   183,     0,     0,   184,     0,
       0,     0,     0,   185,   186,     0,     0,     0,     0,   187,
       0,   188,     0,     0,     0,   189,     0,   190,   191,   192,
     193,     0,     0,     0,   194,     0,     0,   195,   196,   197,
       0,     0,     0,   198,     0,   199,   200,     0,   201,   202,
     203,     0,     0,   204,     0,   205,   206,   207,   208,   209,
     210,     0,     0,   211,   212,   213,     0,     0,   214,     0,
     215,   216,   217,   218,     0,     0,   219,     0,     0,     0,
     220,   221,     0,   222,     0,   223,     0,   224,   225,   226,
     227,     0,   228,     0,     0,     0,   229,   230,     0,   231,
       0,     0,   232,   233,     0,     0,     0,   234,   235,   236,
     237,     0,     0,   238,   239,     0,     0,   240,     0,     0,
       0,     0,   241,   242,     0,     0,     0,   243,     0,     0,
     244,   245,     0,     0,     0,   246,     0,     0,   247,   248,
       0,     0,   249,     0,     0,   250,   251,     0,     0,     0,
       0,     0,   252,   253,     0,   254,     0,   255,     0,   256,
     257,     0,     0,     0,     0,     0,     0,     0,   258,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,     0,   271,   272,     0,   273,   274,   275,   276,     0,
     277,   278,   279,     0,     0,     0,   280,   281,   282,   283,
     284,     0,     0,   285,   286,     0,   287,     0,   288,     0,
     289,   290,   291,   292,   293,   294,   295,   296,     0,     0,
     297,   298,     0,     0,   299,   300,   301,   302,     0,     0,
       0,   303,   304,   305,     0,     0,     0,     0,   306,   307,
     308,     0,   309,   310,   311,     0,   312,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   313,   314,   315,     0,
     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
     326,   327,     0,     0,   328,   329,   330,     0,   331,     0,
     332,   333,     0,   334,   335,   336,     0,     0,   337,     0,
       0,     0,   338,   339,   340,   341,   342,     0,     0,   343,
     344,   345,     0,   346,   347,     0,   348,   349,   350,     0,
       0,   351,     0,   352,   353,   354,     0,   355,   356,     0,
     357,     0,     0,   358,   359,   360,   361,   362,   363,   364,
     365,   366,     0,   367,   368,     0,     0,     0,   369,   370,
     371,   372,     0,     0,     0,   373,     0,     0,     0,   374,
     375,   376,   377,     0,   378,   379,   380,   381,     0,     0,
       0,     0,     0,     0,   382,   383,     0,   384,     0,     0,
     385,     0,     0,   386,   387,   388,     0,     0,   389,   390,
       0,   391,   392,   393,   394,   395,     0,     0,   396,   397,
       0,   398,   399,     0,     0,   400,   401,     0,     0,   402,
     403,     0,   404,   405,   406,   407,     0,     0,     0,     0,
       0,   408,   409,   410,     0,     0,     0,   411,   412,   413,
     414,     0,   415,   416,     0,   417,   418,     0,   419,   420,
       0,     0,   421,     0,     0,   422,     0,   423,     0,   424,
     425,     0,     0,     0,     0,     0,     0,   426,     0,     0,
     427,     0,     0,     0,   428,   429,   430,   431,   432,     0,
       0,     0,     0,   433,   434,     0,   435,   436,   437,     0,
       0,   438,     0,   134,     0,   135,   136,   137,   138,   139,
       0,     0,     0,     0,     0,   140,     0,     0,   141,  2262,
     142,   143,   144,   145,   146,   147,   148,     0,   149,     0,
       0,     0,   150,     0,     0,     0,   151,     0,     0,   152,
     153,     0,   154,     0,   155,   156,     0,     0,   157,     0,
       0,   158,     0,   159,   160,     0,   161,     0,   162,   163,
     164,   165,   166,     0,   167,   168,     0,   169,   170,   171,
     172,   173,   174,   175,     0,   176,   177,     0,   178,     0,
     179,     0,     0,     0,     0,   180,     0,     0,     0,     0,
       0,     0,   181,   182,   183,     0,     0,   184,     0,     0,
       0,     0,   185,   186,     0,     0,     0,     0,   187,     0,
     188,     0,     0,     0,   189,     0,   190,   191,   192,   193,
       0,     0,     0,   194,     0,     0,   195,   196,   197,     0,
       0,     0,   198,     0,   199,   200,     0,   201,   202,   203,
       0,     0,   204,     0,   205,   206,   207,   208,   209,   210,
       0,     0,   211,   212,   213,     0,     0,   214,     0,   215,
     216,   217,   218,     0,     0,   219,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,   229,   230,     0,   231,     0,
       0,   232,   233,     0,     0,     0,   234,   235,   236,   237,
       0,     0,   238,   239,     0,     0,   240,     0,     0,     0,
       0,   241,   242,     0,     0,     0,   243,     0,     0,   244,
     245,     0,     0,     0,   246,     0,     0,   247,   248,     0,
       0,   249,     0,     0,   250,   251,   557,     0,     0,     0,
       0,   252,   253,     0,   254,     0,   255,     0,   256,   257,
       0,     0,     0,     0,     0,     0,     0,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
       0,   271,   272,     0,   273,   274,   275,   276,     0,   277,
     278,   279,     0,     0,     0,   280,   281,   282,   283,   284,
       0,     0,   285,   286,     0,   287,     0,   288,     0,   289,
     290,   291,   292,   293,   294,   295,   296,     0,     0,   297,
     298,     0,     0,   299,   300,   301,   302,     0,     0,     0,
     303,   304,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,     0,     0,   328,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,     0,   355,   356,     0,   357,
       0,     0,   358,   359,   360,   361,   362,   363,   364,   365,
     366,     0,   367,   368,     0,     0,     0,   369,   370,   371,
     372,     0,     0,     0,   373,     0,     0,     0,   374,   375,
     376,   377,     0,   378,   379,   380,   381,     0,     0,     0,
       0,     0,     0,   382,   383,     0,   384,     0,     0,   385,
       0,     0,   386,   387,   388,     0,     0,   389,   390,     0,
     391,   392,   393,   394,   395,     0,     0,   396,   397,     0,
     398,   399,     0,     0,   400,   401,     0,   131,   402,   403,
       0,   404,   405,   406,   407,     0,     0,     0,     0,     0,
     408,   409,   410,     0,     0,     0,   411,   412,   413,   414,
       0,   415,   416,     0,   417,   418,     0,   419,   420,     0,
       0,   421,     0,     0,   422,     0,   423,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,     0,     0,   427,
       0,     0,     0,   428,   429,   430,   431,   432,     0,     0,
       0,     0,   433,   434,     0,   435,   436,   437,     0,     0,
     438,   134,     0,   135,   136,   137,   138,   139,     0,     0,
       0,     0,     0,   140,     0,     0,   141,  1567,   142,   143,
     144,   145,   146,   147,   148,     0,   149,     0,     0,     0,
     150,     0,     0,     0,   151,     0,     0,   152,   153,     0,
     154,     0,   155,   156,     0,     0,   157,     0,     0,   158,
       0,   159,   160,     0,   161,     0,   162,   163,   164,   165,
     166,     0,   167,   168,     0,   169,   170,   171,   172,   173,
     174,   175,     0,   176,   177,     0,   178,     0,   179,     0,
       0,     0,     0,   180,     0,     0,     0,     0,     0,     0,
     181,   182,   183,     0,     0,   184,     0,     0,     0,     0,
     185,   186,     0,     0,     0,     0,   187,     0,   188,     0,
       0,     0,   189,     0,   190,   191,   192,   193,     0,     0,
       0,   194,     0,     0,   195,   196,   197,     0,     0,     0,
     198,     0,   199,   200,     0,   201,   202,   203,     0,     0,
     204,     0,   205,   206,   207,   208,   209,   210,     0,     0,
     211,   212,   213,     0,     0,   214,     0,   215,   216,   217,
     218,     0,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,   229,   230,     0,   231,     0,     0,   232,
     233,     0,     0,     0,   234,   235,   236,   237,     0,     0,
     238,   239,     0,     0,   240,     0,     0,     0,     0,   241,
     242,     0,     0,     0,   243,     0,     0,   244,   245,     0,
       0,     0,   246,     0,     0,   247,   248,     0,     0,   249,
       0,     0,   250,   251,   557,     0,     0,     0,     0,   252,
     253,     0,   254,     0,   255,     0,   256,   257,     0,     0,
       0,     0,     0,     0,     0,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,     0,   271,
     272,     0,   273,   274,   275,   276,     0,   277,   278,   279,
       0,     0,     0,   280,   281,   282,   283,   284,     0,     0,
     285,   286,     0,   287,     0,   288,     0,   289,   290,   291,
     292,   293,   294,   295,   296,     0,     0,   297,   298,     0,
       0,   299,   300,   301,   302,     0,     0,     0,   303,   304,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,     0,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,     0,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,     0,   355,   356,     0,   357,     0,     0,
     358,   359,   360,   361,   362,   363,   364,   365,   366,     0,
     367,   368,     0,     0,     0,   369,   370,   371,   372,     0,
       0,     0,   373,     0,     0,     0,   374,   375,   376,   377,
       0,   378,   379,   380,   381,     0,     0,     0,     0,     0,
       0,   382,   383,     0,   384,     0,     0,   385,     0,     0,
     386,   387,   388,     0,     0,   389,   390,     0,   391,   392,
     393,   394,   395,     0,     0,   396,   397,     0,   398,   399,
       0,     0,   400,   401,     0,   131,   402,   403,     0,   404,
     405,   406,   407,     0,     0,     0,     0,     0,   408,   409,
     410,     0,     0,     0,   411,   412,   413,   414,     0,   415,
     416,     0,   417,   418,     0,   419,   420,     0,     0,   421,
       0,     0,   422,     0,   423,     0,   424,   425,     0,     0,
       0,     0,     0,     0,   426,     0,     0,   427,     0,     0,
       0,   428,   429,   430,   431,   432,     0,     0,     0,     0,
     433,   434,     0,   435,   436,   437,     0,     0,   438,   134,
       0,   135,   136,   137,   138,   139,     0,     0,     0,     0,
       0,   140,     0,     0,   141,  2522,   142,   143,   144,   145,
     146,   147,   148,     0,   149,     0,     0,     0,   150,     0,
       0,     0,   151,     0,     0,   152,   153,     0,   154,     0,
     155,   156,     0,     0,   157,     0,     0,   158,     0,   159,
     160,     0,   161,     0,   162,   163,   164,   165,   166,     0,
     167,   168,     0,   169,   170,   171,   172,   173,   174,   175,
       0,   176,   177,     0,   178,     0,   179,     0,     0,     0,
       0,   180,     0,     0,     0,     0,     0,     0,   181,   182,
     183,     0,     0,   184,     0,     0,     0,     0,   185,   186,
       0,     0,     0,     0,   187,     0,   188,     0,     0,     0,
     189,     0,   190,   191,   192,   193,     0,     0,     0,   194,
       0,     0,   195,   196,   197,     0,     0,     0,   198,     0,
     199,   200,     0,   201,   202,   203,     0,     0,   204,     0,
     205,   206,   207,   208,   209,   210,     0,     0,   211,   212,
     213,     0,     0,   214,     0,   215,   216,   217,   218,     0,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,   229,   230,     0,   231,     0,     0,   232,   233,     0,
       0,     0,   234,   235,   236,   237,     0,     0,   238,   239,
       0,     0,   240,     0,     0,     0,     0,   241,   242,     0,
       0,     0,   243,     0,     0,   244,   245,     0,     0,     0,
     246,     0,     0,   247,   248,     0,     0,   249,     0,     0,
     250,   251,   557,     0,     0,     0,     0,   252,   253,     0,
     254,     0,   255,     0,   256,   257,     0,     0,     0,     0,
       0,     0,     0,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,     0,   271,   272,     0,
     273,   274,   275,   276,     0,   277,   278,   279,     0,     0,
       0,   280,   281,   282,   283,   284,     0,     0,   285,   286,
       0,   287,     0,   288,     0,   289,   290,   291,   292,   293,
     294,   295,   296,     0,     0,   297,   298,     0,     0,   299,
     300,   301,   302,     0,     0,     0,   303,   304,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,     0,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,     0,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
     354,     0,   355,   356,     0,   357,     0,     0,   358,   359,
     360,   361,   362,   363,   364,   365,   366,     0,   367,   368,
       0,     0,     0,   369,   370,   371,   372,     0,     0,     0,
     373,     0,     0,     0,   374,   375,   376,   377,     0,   378,
     379,   380,   381,     0,     0,     0,     0,     0,     0,   382,
     383,     0,   384,     0,     0,   385,     0,     0,   386,   387,
     388,     0,     0,   389,   390,     0,   391,   392,   393,   394,
     395,     0,     0,   396,   397,     0,   398,   399,     0,     0,
     400,   401,     0,   131,   402,   403,     0,   404,   405,   406,
     407,     0,     0,     0,     0,     0,   408,   409,   410,     0,
       0,     0,   411,   412,   413,   414,     0,   415,   416,     0,
     417,   418,     0,   419,   420,     0,     0,   421,     0,     0,
     422,     0,   423,     0,   424,   425,     0,     0,     0,     0,
       0,     0,   426,     0,     0,   427,     0,     0,     0,   428,
     429,   430,   431,   432,     0,     0,     0,     0,   433,   434,
       0,   435,   436,   437,     0,     0,   438,   134,     0,   135,
     136,   137,   138,   139,     0,     0,     0,     0,     0,   140,
       0,     0,     0,  3110,   142,   143,   144,   145,   146,   147,
       0,     0,  -245,     0,     0,     0,   150,     0,     0,     0,
     151,     0,     0,   152,   153,     0,   154,     0,     0,     0,
       0,     0,   157,  3534,     0,   158,     0,   159,     0,     0,
       0,     0,   162,   163,  3535,   165,   166,     0,   167,   168,
       0,     0,   170,     0,   172,   173,   174,   175,     0,   176,
     177,     0,     0,     0,   179,     0,     0,     0,     0,   180,
       0,     0,     0,     0,     0,     0,   181,   182,   183,     0,
       0,   184,     0,     0,     0,     0,   185,     0,     0,     0,
       0,     0,   187,     0,   188,     0,     0,     0,   189,     0,
     190,   191,   192,   193,     0,     0,     0,     0,     0,     0,
     195,   196,   197,     0,     0,     0,   198,     0,     0,   200,
       0,   201,   202,   203,     0,     0,   204,     0,   205,   206,
     207,   208,   209,     0,     0,     0,   211,   212,   213,     0,
       0,   214,  3536,   215,   216,   217,   218,     0,     0,     0,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,     0,
     230,     0,     0,     0,     0,     0,   233,     0,     0,     0,
     234,   235,   236,   237,  3537,     0,   238,   239,     0,     0,
     240,     0,     0,     0,     0,   241,     0,     0,     0,     0,
     243,     0,     0,   244,   245,  3538,     0,     0,   246,     0,
       0,     0,   248,     0,     0,   249,  3539,     0,   250,   251,
       0,     0,     0,     0,     0,   252,   253,     0,   254,     0,
     255,     0,   256,   257,     0,     0,     0,     0,  -245,     0,
       0,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,     0,   271,   272,     0,   273,   274,
     275,   276,     0,   277,   278,   279,     0,     0,     0,   280,
     281,   282,   283,   284,     0,     0,   285,   286,     0,   287,
       0,   288,     0,   289,   290,   291,   292,   293,   294,   295,
     296,     0,     0,   297,   298,     0,     0,   299,   300,   301,
     302,     0,     0,     0,   303,     0,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,  3540,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     314,   315,     0,     0,   317,   318,   319,     0,   321,   322,
     323,   324,   325,   326,     0,     0,     0,     0,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,     0,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,     0,     0,   348,
       0,   350,  -245,     0,   351,     0,     0,   353,     0,     0,
     355,   356,  3541,   357,     0,     0,     0,   359,   360,   361,
     362,   363,   364,     0,   366,     0,   367,     0,     0,     0,
       0,   369,   370,   371,     0,     0,     0,     0,   373,     0,
       0,     0,   374,     0,   376,     0,     0,   378,     0,     0,
     381,     0,     0,     0,     0,     0,     0,   382,   383,     0,
     384,     0,     0,   385,     0,     0,   386,     0,   388,     0,
       0,     0,   390,     0,   391,   392,   393,   394,   395,     0,
       0,   396,   397,     0,   398,   399,     0,     0,   400,   401,
       0,     0,   402,   403,     0,   404,   405,   406,   407,     0,
       0,     0,     0,     0,   408,   409,   410,     0,     0,     0,
       0,   412,   413,   414,     0,   415,   416,     0,   417,   418,
       0,     0,     0,     0,     0,   421,     0,     0,   422,     0,
       0,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     426,     0,     0,   427,     0,     0,     0,   428,   429,   430,
     431,   432,     0,     0,  -245,     0,   433,     0,     0,   435,
       0,   437,     0,   134,   438,   135,   136,   137,   138,   139,
       0,     0,     0,     0,     0,   140,     0,  4046,   141,     0,
     142,   143,   144,   145,   146,   147,   148,     0,   149,     0,
       0,     0,   150,     0,     0,     0,   151,     0,     0,   152,
     153,     0,   154,     0,   155,   156,     0,     0,   157,     0,
       0,   158,     0,   159,   160,     0,   161,     0,   162,   163,
     164,   165,   166,     0,   167,   168,     0,   169,   170,   171,
     172,   173,   174,   175,     0,   176,   177,     0,   178,     0,
     179,     0,     0,     0,     0,   180,     0,     0,     0,     0,
       0,     0,   181,   182,   183,     0,     0,   184,     0,     0,
       0,     0,   185,   186,     0,     0,     0,     0,   187,     0,
     188,     0,     0,     0,   189,     0,   190,   191,   192,   193,
       0,     0,     0,   194,     0,     0,   195,   196,   197,     0,
       0,     0,   198,     0,   199,   200,     0,   201,   202,   203,
       0,     0,   204,     0,   205,   206,   207,   208,   209,   210,
       0,     0,   211,   212,   213,     0,     0,   214,     0,   215,
     216,   217,   218,     0,     0,   219,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,   229,   230,     0,   231,     0,
       0,   232,   233,     0,     0,     0,   234,   235,   236,   237,
       0,     0,   238,   239,     0,     0,   240,     0,     0,     0,
       0,   241,   242,     0,     0,     0,   243,     0,     0,   244,
     245,     0,     0,     0,   246,     0,     0,   247,   248,     0,
       0,   249,     0,     0,   250,   251,     0,     0,     0,     0,
       0,   252,   253,     0,   254,     0,   255,     0,   256,   257,
       0,     0,     0,     0,     0,     0,     0,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
       0,   271,   272,     0,   273,   274,   275,   276,     0,   277,
     278,   279,     0,     0,     0,   280,   281,   282,   283,   284,
       0,     0,   285,   286,     0,   287,     0,   288,     0,   289,
     290,   291,   292,   293,   294,   295,   296,     0,     0,   297,
     298,     0,     0,   299,   300,   301,   302,     0,     0,     0,
     303,   304,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,     0,     0,   328,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,     0,   355,   356,     0,   357,
       0,     0,   358,   359,   360,   361,   362,   363,   364,   365,
     366,     0,   367,   368,     0,     0,     0,   369,   370,   371,
     372,     0,     0,     0,   373,     0,     0,     0,   374,   375,
     376,   377,     0,   378,   379,   380,   381,     0,     0,     0,
       0,     0,     0,   382,   383,     0,   384,     0,     0,   385,
       0,     0,   386,   387,   388,     0,     0,   389,   390,     0,
     391,   392,   393,   394,   395,     0,     0,   396,   397,     0,
     398,   399,     0,     0,   400,   401,     0,     0,   402,   403,
       0,   404,   405,   406,   407,     0,     0,     0,     0,     0,
     408,   409,   410,     0,     0,     0,   411,   412,   413,   414,
       0,   415,   416,     0,   417,   418,     0,   419,   420,     0,
       0,   421,     0,     0,   422,     0,   423,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,     0,     0,   427,
       0,     0,     0,   428,   429,   430,   431,   432,     0,     0,
       0,     0,   433,   434,     0,   435,   436,   437,     0,   134,
     438,   135,   136,   137,   138,   139,   935,     0,     0,     0,
       0,   140,     0,     0,   141,     0,   142,   143,   144,   145,
     146,   147,   148,     0,   149,     0,     0,     0,   150,     0,
       0,     0,   151,     0,     0,   152,   153,     0,   154,     0,
     155,   156,     0,     0,   157,     0,     0,   158,     0,   159,
     160,     0,   161,     0,   162,   163,   164,   165,   166,     0,
     167,   168,     0,   169,   170,   171,   172,   173,   174,   175,
       0,   176,   177,     0,   178,     0,   179,     0,     0,     0,
       0,   180,     0,     0,     0,     0,     0,     0,   181,   182,
     183,     0,     0,   184,     0,     0,     0,     0,   185,   186,
       0,     0,     0,     0,   187,     0,   188,     0,     0,     0,
     189,     0,   190,   191,   192,   193,     0,     0,     0,   194,
       0,     0,   195,   196,   197,     0,     0,     0,   198,     0,
     199,   200,     0,   201,   202,   203,     0,     0,   204,     0,
     205,   206,   207,   208,   209,   210,     0,     0,   211,   212,
     213,     0,     0,   214,     0,   215,   216,   217,   218,     0,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,   229,   230,     0,   231,     0,     0,   232,   233,     0,
       0,     0,   234,   235,   236,   237,     0,     0,   238,   239,
       0,     0,   240,     0,     0,     0,     0,   241,   242,     0,
       0,     0,   243,     0,     0,   244,   245,     0,     0,     0,
     246,     0,     0,   247,   248,     0,     0,   249,     0,     0,
     250,   251,     0,     0,     0,     0,     0,   252,   253,     0,
     254,     0,   255,     0,   256,   257,     0,     0,     0,     0,
       0,     0,     0,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,     0,   271,   272,     0,
     273,   274,   275,   276,     0,   277,   278,   279,     0,     0,
       0,   280,   281,   282,   283,   284,     0,     0,   285,   286,
       0,   287,     0,   288,     0,   289,   290,   291,   292,   293,
     294,   295,   296,     0,     0,   297,   298,     0,     0,   299,
     300,   301,   302,     0,     0,     0,   303,   304,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,     0,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,     0,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
     354,     0,   355,   356,     0,   357,     0,     0,   358,   359,
     360,   361,   362,   363,   364,   365,   366,     0,   367,   368,
       0,     0,     0,   369,   370,   371,   372,     0,     0,     0,
     373,     0,     0,     0,   374,   375,   376,   377,     0,   378,
     379,   380,   381,     0,     0,     0,     0,     0,     0,   382,
     383,     0,   384,     0,     0,   385,     0,     0,   386,   387,
     388,     0,     0,   389,   390,     0,   391,   392,   393,   394,
     395,     0,     0,   396,   397,     0,   398,   399,     0,     0,
     400,   401,     0,     0,   402,   403,     0,   404,   405,   406,
     407,     0,     0,     0,     0,     0,   408,   409,   410,     0,
       0,     0,   411,   412,   413,   414,     0,   415,   416,     0,
     417,   418,     0,   419,   420,     0,     0,   421,     0,     0,
     422,     0,   423,     0,   424,   425,     0,     0,     0,     0,
       0,     0,   426,     0,     0,   427,     0,     0,     0,   428,
     429,   430,   431,   432,     0,     0,     0,     0,   433,   434,
       0,   435,   436,   437,     0,   134,   438,   135,   136,   137,
     138,   139,  1866,     0,     0,     0,     0,   140,     0,     0,
     141,     0,   142,   143,   144,   145,   146,   147,   148,     0,
     149,     0,     0,     0,   150,     0,     0,     0,   151,     0,
       0,   152,   153,     0,   154,     0,   155,   156,     0,     0,
     157,     0,     0,   158,     0,   159,   160,     0,   161,     0,
     162,   163,   164,   165,   166,     0,   167,   168,     0,   169,
     170,   171,   172,   173,   174,   175,     0,   176,   177,     0,
     178,     0,   179,     0,     0,     0,     0,   180,     0,     0,
       0,     0,     0,     0,   181,   182,   183,     0,     0,   184,
       0,     0,     0,     0,   185,   186,     0,     0,     0,     0,
     187,     0,   188,     0,     0,     0,   189,     0,   190,   191,
     192,   193,     0,     0,     0,   194,     0,     0,   195,   196,
     197,     0,     0,     0,   198,     0,   199,   200,     0,   201,
     202,   203,     0,     0,   204,     0,   205,   206,   207,   208,
     209,   210,     0,     0,   211,   212,   213,     0,     0,   214,
       0,   215,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
       0,     0,     0,   241,   242,     0,     0,     0,   243,     0,
       0,   244,   245,     0,     0,     0,   246,     0,     0,   247,
     248,     0,     0,   249,     0,     0,   250,   251,     0,     0,
       0,     0,     0,   252,   253,     0,   254,     0,   255,     0,
     256,   257,     0,     0,     0,     0,     0,     0,     0,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,     0,   271,   272,     0,   273,   274,   275,   276,
       0,   277,   278,   279,     0,     0,     0,   280,   281,   282,
     283,   284,     0,     0,   285,   286,     0,   287,     0,   288,
       0,   289,   290,   291,   292,   293,   294,   295,   296,     0,
       0,   297,   298,     0,     0,   299,   300,   301,   302,     0,
       0,     0,   303,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,   357,     0,     0,   358,   359,   360,   361,   362,   363,
     364,   365,   366,     0,   367,   368,     0,     0,     0,   369,
     370,   371,   372,     0,     0,     0,   373,     0,     0,     0,
     374,   375,   376,   377,     0,   378,   379,   380,   381,     0,
       0,     0,     0,     0,     0,   382,   383,     0,   384,     0,
       0,   385,     0,     0,   386,   387,   388,     0,     0,   389,
     390,     0,   391,   392,   393,   394,   395,     0,     0,   396,
     397,     0,   398,   399,     0,     0,   400,   401,     0,     0,
     402,   403,     0,   404,   405,   406,   407,     0,     0,     0,
       0,     0,   408,   409,   410,     0,     0,     0,   411,   412,
     413,   414,     0,   415,   416,     0,   417,   418,     0,   419,
     420,     0,     0,   421,     0,     0,   422,     0,   423,     0,
     424,   425,     0,     0,     0,     0,     0,     0,   426,     0,
       0,   427,     0,     0,     0,   428,   429,   430,   431,   432,
       0,     0,     0,     0,   433,   434,     0,   435,   436,   437,
       0,   134,   438,   135,   136,   137,   138,   139,  2510,     0,
       0,     0,     0,   140,     0,     0,   141,     0,   142,   143,
     144,   145,   146,   147,   148,     0,   149,     0,     0,     0,
     150,     0,     0,     0,   151,     0,     0,   152,   153,     0,
     154,     0,   155,   156,     0,     0,   157,     0,     0,   158,
       0,   159,   160,     0,   161,     0,   162,   163,   164,   165,
     166,     0,   167,   168,     0,   169,   170,   171,   172,   173,
     174,   175,     0,   176,   177,     0,   178,     0,   179,     0,
       0,     0,     0,   180,     0,     0,     0,     0,     0,     0,
     181,   182,   183,     0,     0,   184,     0,     0,     0,     0,
     185,   186,     0,     0,     0,     0,   187,     0,   188,     0,
       0,     0,   189,     0,   190,   191,   192,   193,     0,     0,
       0,   194,     0,     0,   195,   196,   197,     0,     0,     0,
     198,     0,   199,   200,     0,   201,   202,   203,     0,     0,
     204,     0,   205,   206,   207,   208,   209,   210,     0,     0,
     211,   212,   213,     0,     0,   214,     0,   215,   216,   217,
     218,     0,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,   229,   230,     0,   231,     0,     0,   232,
     233,     0,     0,     0,   234,   235,   236,   237,     0,     0,
     238,   239,     0,     0,   240,     0,     0,     0,     0,   241,
     242,     0,     0,     0,   243,     0,     0,   244,   245,     0,
       0,     0,   246,     0,     0,   247,   248,     0,     0,   249,
       0,     0,   250,   251,     0,     0,     0,     0,     0,   252,
     253,     0,   254,     0,   255,     0,   256,   257,     0,     0,
       0,     0,     0,     0,     0,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,     0,   271,
     272,     0,   273,   274,   275,   276,     0,   277,   278,   279,
       0,     0,     0,   280,   281,   282,   283,   284,     0,     0,
     285,   286,     0,   287,     0,   288,     0,   289,   290,   291,
     292,   293,   294,   295,   296,     0,     0,   297,   298,     0,
       0,   299,   300,   301,   302,     0,     0,     0,   303,   304,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,     0,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,     0,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,     0,   355,   356,     0,   357,     0,     0,
     358,   359,   360,   361,   362,   363,   364,   365,   366,     0,
     367,   368,     0,     0,     0,   369,   370,   371,   372,     0,
       0,     0,   373,     0,     0,     0,   374,   375,   376,   377,
       0,   378,   379,   380,   381,     0,     0,     0,     0,     0,
       0,   382,   383,     0,   384,     0,     0,   385,     0,     0,
     386,   387,   388,     0,     0,   389,   390,     0,   391,   392,
     393,   394,   395,     0,     0,   396,   397,     0,   398,   399,
       0,     0,   400,   401,     0,     0,   402,   403,     0,   404,
     405,   406,   407,     0,     0,     0,     0,     0,   408,   409,
     410,     0,     0,     0,   411,   412,   413,   414,     0,   415,
     416,     0,   417,   418,     0,   419,   420,     0,     0,   421,
       0,     0,   422,     0,   423,     0,   424,   425,     0,     0,
       0,     0,     0,     0,   426,     0,     0,   427,     0,     0,
       0,   428,   429,   430,   431,   432,     0,     0,     0,     0,
     433,   434,     0,   435,   436,   437,     0,   134,   438,   135,
     136,   137,   138,   139,  2722,     0,     0,     0,     0,   140,
       0,     0,   141,     0,   142,   143,   144,   145,   146,   147,
     148,     0,   149,     0,     0,     0,   150,     0,     0,     0,
     151,     0,     0,   152,   153,     0,   154,     0,   155,   156,
       0,     0,   157,     0,     0,   158,     0,   159,   160,     0,
     161,     0,   162,   163,   164,   165,   166,     0,   167,   168,
       0,   169,   170,   171,   172,   173,   174,   175,     0,   176,
     177,     0,   178,     0,   179,     0,     0,     0,     0,   180,
       0,     0,     0,     0,     0,     0,   181,   182,   183,     0,
       0,   184,     0,     0,     0,     0,   185,   186,     0,     0,
       0,     0,   187,     0,   188,     0,     0,     0,   189,     0,
     190,   191,   192,   193,     0,     0,     0,   194,     0,     0,
     195,   196,   197,     0,     0,     0,   198,     0,   199,   200,
       0,   201,   202,   203,     0,     0,   204,     0,   205,   206,
     207,   208,   209,   210,     0,     0,   211,   212,   213,     0,
       0,   214,     0,   215,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,     0,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,     0,     0,
     240,     0,     0,     0,     0,   241,   242,     0,     0,     0,
     243,     0,     0,   244,   245,     0,     0,     0,   246,     0,
       0,   247,   248,     0,     0,   249,     0,     0,   250,   251,
       0,     0,     0,     0,     0,   252,   253,     0,   254,     0,
     255,     0,   256,   257,     0,     0,     0,     0,     0,     0,
       0,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,     0,   271,   272,     0,   273,   274,
     275,   276,     0,   277,   278,   279,     0,     0,     0,   280,
     281,   282,   283,   284,     0,     0,   285,   286,     0,   287,
       0,   288,     0,   289,   290,   291,   292,   293,   294,   295,
     296,     0,     0,   297,   298,     0,     0,   299,   300,   301,
     302,     0,     0,     0,   303,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,   357,     0,     0,   358,   359,   360,   361,
     362,   363,   364,   365,   366,     0,   367,   368,     0,     0,
       0,   369,   370,   371,   372,     0,     0,     0,   373,     0,
       0,     0,   374,   375,   376,   377,     0,   378,   379,   380,
     381,     0,     0,     0,     0,     0,     0,   382,   383,     0,
     384,     0,     0,   385,     0,     0,   386,   387,   388,     0,
       0,   389,   390,     0,   391,   392,   393,   394,   395,     0,
       0,   396,   397,     0,   398,   399,     0,     0,   400,   401,
       0,     0,   402,   403,     0,   404,   405,   406,   407,     0,
       0,     0,     0,     0,   408,   409,   410,     0,     0,     0,
     411,   412,   413,   414,     0,   415,   416,     0,   417,   418,
       0,   419,   420,     0,     0,   421,     0,     0,   422,     0,
     423,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     426,     0,     0,   427,     0,     0,     0,   428,   429,   430,
     431,   432,     0,     0,     0,     0,   433,   434,     0,   435,
     436,   437,     0,   134,   438,   135,   136,   137,   138,   139,
    3115,     0,     0,     0,     0,   140,     0,     0,   141,     0,
     142,   143,   144,   145,   146,   147,   148,     0,   149,     0,
       0,     0,   150,     0,     0,     0,   151,     0,     0,   152,
     153,     0,   154,     0,   155,   156,     0,     0,   157,     0,
       0,   158,     0,   159,   160,     0,   161,     0,   162,   163,
     164,   165,   166,     0,   167,   168,     0,   169,   170,   171,
     172,   173,   174,   175,     0,   176,   177,     0,   178,     0,
     179,     0,     0,     0,     0,   180,     0,     0,     0,     0,
       0,     0,   181,   182,   183,     0,     0,   184,     0,     0,
       0,     0,   185,   186,  2171,     0,     0,     0,   187,     0,
     188,     0,     0,     0,   189,     0,   190,   191,   192,   193,
       0,     0,     0,   194,     0,     0,   195,   196,   197,     0,
       0,     0,   198,     0,   199,   200,     0,   201,   202,   203,
       0,     0,   204,     0,   205,   206,   207,   208,   209,   210,
       0,     0,   211,   212,   213,     0,     0,   214,     0,   215,
     216,   217,   218,  2172,     0,   219,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,   229,   230,     0,   231,  2173,
       0,   232,   233,     0,     0,     0,   234,   235,   236,   237,
       0,     0,   238,   239,     0,     0,   240,     0,     0,     0,
       0,   241,   242,     0,     0,     0,   243,     0,     0,   244,
     245,     0,     0,     0,   246,     0,     0,   247,   248,     0,
       0,   249,     0,     0,   250,   251,     0,     0,     0,     0,
       0,   252,   253,     0,   254,     0,   255,     0,   256,   257,
       0,     0,  2174,     0,     0,     0,     0,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
       0,   271,   272,     0,   273,   274,   275,   276,     0,   277,
     278,   279,     0,     0,     0,   280,   281,   282,   283,   284,
       0,     0,   285,   286,     0,   287,     0,   288,     0,   289,
     290,   291,   292,   293,   294,   295,   296,     0,     0,   297,
     298,     0,     0,   299,   300,   301,   302,   954,   955,     0,
     303,   304,   305,     0,     0,  2175,     0,   306,   307,   308,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,     0,     0,   328,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,     0,   355,   356,     0,   357,
       0,     0,   358,   359,   360,   361,   362,   363,   364,   365,
     366,     0,   367,   368,     0,     0,     0,   369,   370,   371,
     372,     0,     0,     0,   373,     0,     0,     0,   374,   375,
     376,   377,     0,   378,   379,   380,   381,     0,     0,  4028,
    4012,  4029,     0,   382,   383,     0,   384,     0,     0,   385,
       0,     0,   386,   387,   388,     0,     0,   389,   390,     0,
     391,   392,   393,   394,   395,     0,     0,   396,   397,     0,
     398,   399,     0,     0,   400,   401,     0,     0,   402,   403,
       0,   404,   405,   406,   407,     0,     0,     0,     0,     0,
     408,   409,   410,     0,     0,     0,   411,   412,   413,   414,
    2176,   415,   416,     0,   417,   418,     0,   419,   420,     0,
       0,   421,     0,     0,   422,     0,   423,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,     0,     0,   427,
       0,     0,     0,   428,   429,   430,   431,   432,     0,     0,
       0,     0,   433,   434,     0,   435,   436,   437,     0,   134,
     438,   135,   136,   137,   138,   139,     0,     0,     0,     0,
       0,   140,     0,     0,   141,     0,   142,   143,   144,   145,
     146,   147,   148,     0,   149,     0,     0,  2377,   150,     0,
       0,     0,   151,     0,     0,   152,   153,     0,   154,     0,
     155,   156,     0,     0,   157,     0,     0,   158,     0,   159,
     160,     0,   161,     0,   162,   163,   164,   165,   166,     0,
     167,   168,     0,   169,   170,   171,   172,   173,   174,   175,
       0,   176,   177,     0,   178,     0,   179,     0,     0,     0,
       0,   180,     0,     0,     0,     0,     0,     0,   181,   182,
     183,     0,     0,   184,     0,     0,     0,     0,   185,   186,
       0,     0,     0,  2516,   187,     0,   188,     0,     0,     0,
     189,     0,   190,   191,   192,   193,     0,     0,     0,   194,
       0,     0,   195,   196,   197,     0,     0,     0,   198,     0,
     199,   200,     0,   201,   202,   203,  1872,     0,   204,     0,
     205,   206,   207,   208,   209,   210,     0,     0,   211,   212,
     213,     0,     0,   214,     0,   215,   216,   217,   218,     0,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,   229,   230,     0,   231,     0,     0,   232,   233,     0,
       0,     0,   234,   235,   236,   237,     0,     0,   238,   239,
       0,     0,   240,     0,     0,     0,     0,   241,   242,     0,
       0,     0,   243,     0,     0,   244,   245,     0,     0,     0,
     246,     0,     0,   247,   248,     0,     0,   249,     0,     0,
     250,   251,   557,     0,     0,     0,     0,   252,   253,     0,
     254,     0,   255,     0,   256,   257,     0,     0,     0,     0,
       0,     0,     0,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,     0,   271,   272,     0,
     273,   274,   275,   276,     0,   277,   278,   279,     0,     0,
       0,   280,   281,   282,   283,   284,     0,     0,   285,   286,
       0,   287,     0,   288,     0,   289,   290,   291,   292,   293,
     294,   295,   296,     0,     0,   297,   298,     0,     0,   299,
     300,   301,   302,     0,     0,     0,   303,   304,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,     0,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,     0,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
     354,     0,   355,   356,     0,   357,     0,     0,   358,   359,
     360,   361,   362,   363,   364,   365,   366,     0,   367,   368,
       0,     0,     0,   369,   370,   371,   372,     0,     0,  1873,
     373,     0,     0,     0,   374,   375,   376,   377,     0,   378,
     379,   380,   381,     0,     0,     0,     0,     0,     0,   382,
     383,     0,   384,     0,     0,   385,     0,     0,   386,   387,
     388,     0,     0,   389,   390,     0,   391,   392,   393,   394,
     395,     0,     0,   396,   397,     0,   398,   399,     0,     0,
     400,   401,     0,   131,   402,   403,     0,   404,   405,   406,
     407,     0,     0,     0,     0,     0,   408,   409,   410,     0,
       0,     0,   411,   412,   413,   414,     0,   415,   416,     0,
     417,   418,     0,   419,   420,     0,     0,   421,     0,     0,
     422,     0,   423,     0,   424,   425,     0,     0,     0,     0,
       0,     0,   426,     0,     0,   427,     0,     0,     0,   428,
     429,   430,   431,   432,     0,     0,     0,     0,   433,   434,
       0,   435,   436,   437,     0,   134,   438,   135,   136,   137,
     138,   139,     0,     0,     0,     0,     0,   140,     0,     0,
     141,     0,   142,   143,   144,   145,   146,   147,   148,     0,
     149,     0,     0,  2524,   150,     0,     0,     0,   151,     0,
       0,   152,   153,     0,   154,     0,   155,   156,     0,     0,
     157,     0,     0,   158,     0,   159,   160,     0,   161,     0,
     162,   163,   164,   165,   166,     0,   167,   168,     0,   169,
     170,   171,   172,   173,   174,   175,     0,   176,   177,     0,
     178,     0,   179,     0,     0,     0,     0,   180,     0,     0,
       0,     0,     0,     0,   181,   182,   183,     0,     0,   184,
       0,     0,     0,     0,   185,   186,     0,     0,     0,  2525,
     187,     0,   188,     0,     0,     0,   189,     0,   190,   191,
     192,   193,     0,     0,     0,   194,     0,     0,   195,   196,
     197,     0,     0,     0,   198,     0,   199,   200,     0,   201,
     202,   203,     0,     0,   204,     0,   205,   206,   207,   208,
     209,   210,     0,     0,   211,   212,   213,     0,     0,   214,
       0,   215,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
       0,     0,     0,   241,   242,     0,     0,     0,   243,     0,
       0,   244,   245,     0,     0,     0,   246,     0,     0,   247,
     248,     0,     0,   249,     0,     0,   250,   251,   557,     0,
       0,     0,     0,   252,   253,     0,   254,     0,   255,     0,
     256,   257,     0,     0,     0,     0,     0,     0,     0,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,     0,   271,   272,     0,   273,   274,   275,   276,
       0,   277,   278,   279,     0,     0,     0,   280,   281,   282,
     283,   284,     0,     0,   285,   286,     0,   287,     0,   288,
       0,   289,   290,   291,   292,   293,   294,   295,   296,     0,
       0,   297,   298,     0,     0,   299,   300,   301,   302,     0,
       0,     0,   303,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,   357,     0,     0,   358,   359,   360,   361,   362,   363,
     364,   365,   366,     0,   367,   368,     0,     0,     0,   369,
     370,   371,   372,     0,     0,     0,   373,     0,     0,     0,
     374,   375,   376,   377,     0,   378,   379,   380,   381,     0,
       0,     0,     0,     0,     0,   382,   383,     0,   384,     0,
       0,   385,     0,     0,   386,   387,   388,     0,     0,   389,
     390,     0,   391,   392,   393,   394,   395,     0,     0,   396,
     397,     0,   398,   399,     0,     0,   400,   401,     0,   131,
     402,   403,     0,   404,   405,   406,   407,     0,     0,     0,
       0,     0,   408,   409,   410,     0,     0,     0,   411,   412,
     413,   414,     0,   415,   416,     0,   417,   418,     0,   419,
     420,     0,     0,   421,     0,     0,   422,     0,   423,     0,
     424,   425,     0,     0,     0,     0,     0,     0,   426,     0,
       0,   427,     0,     0,     0,   428,   429,   430,   431,   432,
       0,     0,     0,     0,   433,   434,     0,   435,   436,   437,
       0,   134,   438,   135,   136,   137,   138,   139,     0,     0,
       0,     0,     0,   140,     0,     0,   141,     0,   142,   143,
     144,   145,   146,   147,   148,     0,   149,     0,     0,  2377,
     150,     0,     0,     0,   151,     0,     0,   152,   153,     0,
     154,     0,   155,   156,     0,     0,   157,     0,     0,   158,
       0,   159,   160,     0,   161,     0,   162,   163,   164,   165,
     166,     0,   167,   168,     0,   169,   170,   171,   172,   173,
     174,   175,     0,   176,   177,     0,   178,     0,   179,     0,
       0,     0,     0,   180,     0,     0,     0,     0,     0,     0,
     181,   182,   183,     0,     0,   184,     0,     0,     0,     0,
     185,   186,     0,     0,     0,  2516,   187,     0,   188,     0,
       0,     0,   189,     0,   190,   191,   192,   193,     0,     0,
       0,   194,     0,     0,   195,   196,   197,     0,     0,     0,
     198,     0,   199,   200,     0,   201,   202,   203,     0,     0,
     204,     0,   205,   206,   207,   208,   209,   210,     0,     0,
     211,   212,   213,     0,     0,   214,     0,   215,   216,   217,
     218,     0,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,   229,   230,     0,   231,     0,     0,   232,
     233,     0,     0,     0,   234,   235,   236,   237,     0,     0,
     238,   239,     0,     0,   240,     0,     0,     0,     0,   241,
     242,     0,     0,     0,   243,     0,     0,   244,   245,     0,
       0,     0,   246,     0,     0,   247,   248,     0,     0,   249,
       0,     0,   250,   251,   557,     0,     0,     0,     0,   252,
     253,     0,   254,     0,   255,     0,   256,   257,     0,     0,
       0,     0,     0,     0,     0,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,     0,   271,
     272,     0,   273,   274,   275,   276,     0,   277,   278,   279,
       0,     0,     0,   280,   281,   282,   283,   284,     0,     0,
     285,   286,     0,   287,     0,   288,     0,   289,   290,   291,
     292,   293,   294,   295,   296,     0,     0,   297,   298,     0,
       0,   299,   300,   301,   302,     0,     0,     0,   303,   304,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,     0,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,     0,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,     0,   355,   356,     0,   357,     0,     0,
     358,   359,   360,   361,   362,   363,   364,   365,   366,     0,
     367,   368,     0,     0,     0,   369,   370,   371,   372,     0,
       0,     0,   373,     0,     0,     0,   374,   375,   376,   377,
       0,   378,   379,   380,   381,     0,     0,     0,     0,     0,
       0,   382,   383,     0,   384,     0,     0,   385,     0,     0,
     386,   387,   388,     0,     0,   389,   390,     0,   391,   392,
     393,   394,   395,     0,     0,   396,   397,     0,   398,   399,
       0,     0,   400,   401,     0,   131,   402,   403,     0,   404,
     405,   406,   407,     0,     0,     0,     0,     0,   408,   409,
     410,     0,     0,     0,   411,   412,   413,   414,     0,   415,
     416,     0,   417,   418,     0,   419,   420,     0,     0,   421,
       0,     0,   422,     0,   423,     0,   424,   425,     0,     0,
       0,     0,     0,     0,   426,     0,     0,   427,     0,     0,
       0,   428,   429,   430,   431,   432,     0,     0,     0,     0,
     433,   434,     0,   435,   436,   437,     0,   134,   438,   135,
     136,   137,   138,   139,     0,     0,     0,     0,     0,   140,
       0,     0,   141,     0,   142,   143,   144,   145,   146,   147,
     148,     0,   149,     0,     0,     0,   150,     0,     0,     0,
     151,     0,     0,   152,   153,     0,   154,     0,   155,   156,
       0,     0,   157,     0,     0,   158,     0,   159,   160,     0,
     161,     0,   162,   163,   164,   165,   166,     0,   167,   168,
       0,   169,   170,   171,   172,   173,   174,   175,     0,   176,
     177,     0,   178,     0,   179,     0,     0,     0,     0,   180,
       0,   912,     0,     0,     0,     0,   181,   182,   183,     0,
       0,   184,     0,     0,     0,     0,   185,   186,     0,     0,
       0,     0,   187,     0,   188,     0,     0,     0,   189,     0,
     190,   191,   192,   193,     0,     0,     0,   194,     0,     0,
     195,   196,   197,     0,     0,     0,   198,     0,   199,   200,
       0,   201,   202,   203,     0,     0,   204,     0,   205,   206,
     207,   208,   209,   210,     0,     0,   211,   212,   213,     0,
       0,   214,     0,   215,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,     0,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,     0,     0,
     240,     0,     0,     0,     0,   241,   242,     0,     0,     0,
     243,     0,     0,   244,   245,     0,     0,     0,   246,     0,
       0,   247,   248,     0,     0,   249,     0,     0,   250,   251,
     557,     0,     0,     0,     0,   252,   253,     0,   254,     0,
     255,     0,   256,   257,     0,     0,     0,     0,     0,     0,
       0,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,     0,   271,   272,     0,   273,   274,
     275,   276,     0,   277,   278,   279,     0,     0,     0,   280,
     281,   282,   283,   284,     0,     0,   285,   286,     0,   287,
       0,   288,     0,   289,   290,   291,   292,   293,   294,   295,
     296,     0,     0,   297,   298,     0,     0,   299,   300,   301,
     302,     0,     0,     0,   303,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,   357,     0,     0,   358,   359,   360,   361,
     362,   363,   364,   365,   366,     0,   367,   368,     0,     0,
       0,   369,   370,   371,   372,     0,     0,     0,   373,     0,
       0,     0,   374,   375,   376,   377,     0,   378,   379,   380,
     381,     0,     0,     0,     0,     0,     0,   382,   383,     0,
     384,     0,     0,   385,     0,     0,   386,   387,   388,     0,
       0,   389,   390,     0,   391,   392,   393,   394,   395,     0,
       0,   396,   397,     0,   398,   399,     0,     0,   400,   401,
       0,   131,   402,   403,     0,   404,   405,   406,   407,     0,
       0,     0,     0,     0,   408,   409,   410,     0,     0,     0,
     411,   412,   413,   414,     0,   415,   416,     0,   417,   418,
       0,   419,   420,     0,     0,   421,     0,     0,   422,     0,
     423,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     426,     0,     0,   427,     0,     0,     0,   428,   429,   430,
     431,   432,     0,     0,     0,     0,   433,   434,     0,   435,
     436,   437,     0,   134,   438,   135,   136,   137,   138,   139,
    1273,     0,     0,     0,     0,   140,     0,     0,   141,     0,
     142,   143,   144,   145,   146,   147,   148,     0,   149,     0,
       0,     0,   150,     0,     0,     0,   151,     0,     0,   152,
     153,     0,   154,     0,   155,   156,     0,     0,   157,     0,
       0,   158,     0,   159,   160,     0,   161,     0,   162,   163,
     164,   165,   166,     0,   167,   168,     0,   169,   170,   171,
     172,   173,   174,   175,     0,   176,   177,     0,   178,     0,
     179,     0,     0,     0,     0,   180,     0,     0,     0,     0,
       0,     0,   181,   182,   183,     0,     0,   184,     0,     0,
       0,     0,   185,   186,     0,     0,     0,     0,   187,     0,
     188,     0,     0,     0,   189,     0,   190,   191,   192,   193,
       0,     0,     0,   194,     0,     0,   195,   196,   197,     0,
       0,     0,   198,     0,   199,   200,     0,   201,   202,   203,
       0,     0,   204,     0,   205,   206,   207,   208,   209,   210,
       0,     0,   211,   212,   213,     0,     0,   214,     0,   215,
     216,   217,   218,     0,     0,   219,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,   229,   230,     0,   231,     0,
       0,   232,   233,     0,     0,     0,   234,   235,   236,   237,
       0,     0,   238,   239,     0,     0,   240,     0,     0,     0,
       0,   241,   242,     0,     0,     0,   243,     0,     0,   244,
     245,     0,     0,     0,   246,     0,     0,   247,   248,     0,
       0,   249,     0,     0,   250,   251,   557,     0,     0,     0,
       0,   252,   253,     0,   254,     0,   255,     0,   256,   257,
       0,     0,     0,     0,     0,     0,     0,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
       0,   271,   272,     0,   273,   274,   275,   276,     0,   277,
     278,   279,     0,     0,     0,   280,   281,   282,   283,   284,
       0,     0,   285,   286,     0,   287,     0,   288,     0,   289,
     290,   291,   292,   293,   294,   295,   296,     0,     0,   297,
     298,     0,     0,   299,   300,   301,   302,     0,     0,     0,
     303,   304,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,     0,     0,   328,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,     0,   355,   356,     0,   357,
       0,     0,   358,   359,   360,   361,   362,   363,   364,   365,
     366,     0,   367,   368,     0,     0,     0,   369,   370,   371,
     372,     0,     0,     0,   373,     0,     0,     0,   374,   375,
     376,   377,     0,   378,   379,   380,   381,     0,     0,     0,
       0,     0,     0,   382,   383,     0,   384,     0,     0,   385,
       0,     0,   386,   387,   388,     0,     0,   389,   390,     0,
     391,   392,   393,   394,   395,     0,     0,   396,   397,     0,
     398,   399,     0,     0,   400,   401,     0,   131,   402,   403,
       0,   404,   405,   406,   407,     0,     0,     0,     0,     0,
     408,   409,   410,     0,     0,     0,   411,   412,   413,   414,
       0,   415,   416,     0,   417,   418,     0,   419,   420,     0,
       0,   421,     0,     0,   422,     0,   423,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,     0,     0,   427,
       0,     0,     0,   428,   429,   430,   431,   432,     0,     0,
       0,     0,   433,   434,     0,   435,   436,   437,     0,   134,
     438,   135,   136,   137,   138,   139,     0,     0,     0,     0,
       0,   140,     0,     0,   141,     0,   142,   143,   144,   145,
     146,   147,   148,     0,   149,     0,     0,     0,   150,   892,
       0,     0,   151,     0,     0,   152,   153,     0,   154,     0,
     155,   156,     0,     0,   157,     0,     0,   158,     0,   159,
     160,     0,   161,     0,   162,   163,   164,   165,   166,     0,
     167,   168,     0,   169,   170,   171,   172,   173,   174,   175,
       0,   176,   177,     0,   178,     0,   179,     0,     0,     0,
       0,   180,     0,     0,     0,     0,     0,     0,   181,   182,
     183,     0,     0,   184,     0,     0,     0,     0,   185,   186,
       0,     0,     0,     0,   187,     0,   188,     0,     0,     0,
     189,     0,   190,   191,   192,   193,     0,     0,     0,   194,
       0,     0,   195,   196,   197,     0,     0,     0,   198,     0,
     199,   200,     0,   201,   202,   203,     0,     0,   204,     0,
     205,   206,   207,   208,   209,   210,     0,     0,   211,   212,
     213,     0,     0,   214,     0,   215,   216,   217,   218,     0,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,   229,   230,     0,   231,   893,     0,   232,   233,     0,
       0,     0,   234,   235,   236,   237,     0,     0,   238,   239,
       0,     0,   240,     0,     0,     0,     0,   241,   242,     0,
       0,     0,   243,     0,     0,   244,   245,     0,     0,     0,
     246,     0,     0,   247,   248,     0,     0,   249,     0,     0,
     250,   251,     0,     0,     0,     0,     0,   252,   253,     0,
     254,     0,   255,     0,   256,   257,     0,     0,     0,     0,
       0,     0,     0,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,     0,   271,   272,     0,
     273,   274,   275,   276,     0,   277,   278,   279,     0,     0,
       0,   280,   281,   282,   283,   284,     0,     0,   285,   286,
       0,   287,     0,   288,     0,   289,   290,   291,   292,   293,
     294,   295,   296,     0,     0,   297,   298,     0,     0,   299,
     300,   301,   302,     0,     0,     0,   303,   304,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,     0,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,     0,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
     354,     0,   355,   356,     0,   357,     0,     0,   358,   359,
     360,   361,   362,   363,   364,   365,   366,     0,   367,   368,
       0,     0,     0,   369,   370,   371,   372,     0,     0,     0,
     373,     0,     0,     0,   374,   375,   376,   377,     0,   378,
     379,   380,   381,     0,     0,     0,     0,     0,     0,   382,
     383,     0,   384,     0,     0,   385,     0,     0,   386,   387,
     388,     0,     0,   389,   390,     0,   391,   392,   393,   394,
     395,     0,     0,   396,   397,     0,   398,   399,     0,     0,
     400,   401,     0,   894,   402,   403,     0,   404,   405,   406,
     407,     0,     0,     0,     0,     0,   408,   409,   410,     0,
       0,     0,   411,   412,   413,   414,     0,   415,   416,     0,
     417,   418,     0,   419,   420,     0,     0,   421,     0,     0,
     422,     0,   423,     0,   424,   425,     0,     0,     0,     0,
       0,     0,   426,     0,     0,   427,     0,     0,     0,   428,
     429,   430,   431,   432,     0,     0,     0,     0,   433,   434,
       0,   435,   436,   437,     0,   134,   438,   135,   136,   137,
     138,   139,     0,     0,     0,     0,     0,   140,     0,     0,
     141,     0,   142,   143,   144,   145,   146,   147,   148,     0,
     149,     0,     0,  2377,   150,     0,     0,     0,   151,     0,
       0,   152,   153,     0,   154,     0,   155,   156,     0,     0,
     157,     0,     0,   158,     0,   159,   160,     0,   161,     0,
     162,   163,   164,   165,   166,     0,   167,   168,     0,   169,
     170,   171,   172,   173,   174,   175,     0,   176,   177,     0,
     178,     0,   179,     0,     0,     0,     0,   180,     0,     0,
       0,     0,     0,     0,   181,   182,   183,     0,     0,   184,
       0,     0,     0,     0,   185,   186,     0,     0,     0,     0,
     187,     0,   188,     0,     0,     0,   189,     0,   190,   191,
     192,   193,     0,     0,     0,   194,     0,     0,   195,   196,
     197,     0,     0,     0,   198,     0,   199,   200,     0,   201,
     202,   203,     0,     0,   204,     0,   205,   206,   207,   208,
     209,   210,     0,     0,   211,   212,   213,     0,     0,   214,
       0,   215,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
       0,     0,     0,   241,   242,     0,     0,     0,   243,     0,
       0,   244,   245,     0,     0,     0,   246,     0,     0,   247,
     248,     0,     0,   249,     0,     0,   250,   251,   557,     0,
       0,     0,     0,   252,   253,     0,   254,     0,   255,     0,
     256,   257,     0,     0,     0,     0,     0,     0,     0,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,     0,   271,   272,     0,   273,   274,   275,   276,
       0,   277,   278,   279,     0,     0,     0,   280,   281,   282,
     283,   284,     0,     0,   285,   286,     0,   287,     0,   288,
       0,   289,   290,   291,   292,   293,   294,   295,   296,     0,
       0,   297,   298,     0,     0,   299,   300,   301,   302,     0,
       0,     0,   303,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,   357,     0,     0,   358,   359,   360,   361,   362,   363,
     364,   365,   366,     0,   367,   368,     0,     0,     0,   369,
     370,   371,   372,     0,     0,     0,   373,     0,     0,     0,
     374,   375,   376,   377,     0,   378,   379,   380,   381,     0,
       0,     0,     0,     0,     0,   382,   383,     0,   384,     0,
       0,   385,     0,     0,   386,   387,   388,     0,     0,   389,
     390,     0,   391,   392,   393,   394,   395,     0,     0,   396,
     397,     0,   398,   399,     0,     0,   400,   401,     0,   131,
     402,   403,     0,   404,   405,   406,   407,     0,     0,     0,
       0,     0,   408,   409,   410,     0,     0,     0,   411,   412,
     413,   414,     0,   415,   416,     0,   417,   418,     0,   419,
     420,     0,     0,   421,     0,     0,   422,     0,   423,     0,
     424,   425,     0,     0,     0,     0,     0,     0,   426,     0,
       0,   427,     0,     0,     0,   428,   429,   430,   431,   432,
       0,     0,     0,     0,   433,   434,     0,   435,   436,   437,
       0,   134,   438,   135,   136,   137,   138,   139,     0,     0,
       0,     0,     0,   140,     0,     0,   141,     0,   142,   143,
     144,   145,   146,   147,   148,     0,   149,     0,     0,     0,
     150,     0,     0,     0,   151,     0,     0,   152,   153,     0,
     154,     0,   155,   156,     0,     0,   157,     0,     0,   158,
       0,   159,   160,     0,   161,     0,   162,   163,   164,   165,
     166,     0,   167,   168,     0,   169,   170,   171,   172,   173,
     174,   175,     0,   176,   177,     0,   178,     0,   179,     0,
       0,     0,     0,   180,     0,     0,     0,     0,     0,     0,
     181,   182,   183,     0,     0,   184,     0,     0,     0,     0,
     185,   186,     0,     0,     0,  2562,   187,     0,   188,     0,
       0,     0,   189,     0,   190,   191,   192,   193,     0,     0,
       0,   194,     0,     0,   195,   196,   197,     0,     0,     0,
     198,     0,   199,   200,     0,   201,   202,   203,     0,     0,
     204,     0,   205,   206,   207,   208,   209,   210,     0,     0,
     211,   212,   213,     0,     0,   214,     0,   215,   216,   217,
     218,     0,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,   229,   230,     0,   231,     0,     0,   232,
     233,     0,     0,     0,   234,   235,   236,   237,     0,     0,
     238,   239,     0,     0,   240,     0,     0,     0,     0,   241,
     242,     0,     0,     0,   243,     0,     0,   244,   245,     0,
       0,     0,   246,     0,     0,   247,   248,     0,     0,   249,
       0,     0,   250,   251,   557,     0,     0,     0,     0,   252,
     253,     0,   254,     0,   255,     0,   256,   257,     0,     0,
       0,     0,     0,     0,     0,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,     0,   271,
     272,     0,   273,   274,   275,   276,     0,   277,   278,   279,
       0,     0,     0,   280,   281,   282,   283,   284,     0,     0,
     285,   286,     0,   287,     0,   288,     0,   289,   290,   291,
     292,   293,   294,   295,   296,     0,     0,   297,   298,     0,
       0,   299,   300,   301,   302,     0,     0,     0,   303,   304,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,     0,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,     0,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,     0,   355,   356,     0,   357,     0,     0,
     358,   359,   360,   361,   362,   363,   364,   365,   366,     0,
     367,   368,     0,     0,     0,   369,   370,   371,   372,     0,
       0,     0,   373,     0,     0,     0,   374,   375,   376,   377,
       0,   378,   379,   380,   381,     0,     0,     0,     0,     0,
       0,   382,   383,     0,   384,     0,     0,   385,     0,     0,
     386,   387,   388,     0,     0,   389,   390,     0,   391,   392,
     393,   394,   395,     0,     0,   396,   397,     0,   398,   399,
       0,     0,   400,   401,     0,   131,   402,   403,     0,   404,
     405,   406,   407,     0,     0,     0,     0,     0,   408,   409,
     410,     0,     0,     0,   411,   412,   413,   414,     0,   415,
     416,     0,   417,   418,     0,   419,   420,     0,     0,   421,
       0,     0,   422,     0,   423,     0,   424,   425,     0,     0,
       0,     0,     0,     0,   426,     0,     0,   427,     0,     0,
       0,   428,   429,   430,   431,   432,     0,     0,     0,     0,
     433,   434,     0,   435,   436,   437,     0,   134,   438,   135,
     136,   137,   138,   139,     0,     0,     0,     0,     0,   140,
       0,     0,   141,     0,   142,   143,   144,   145,   146,   147,
     148,     0,   149,     0,     0,     0,   150,     0,     0,     0,
     151,     0,     0,   152,   153,     0,   154,     0,   155,   156,
       0,     0,   157,     0,     0,   158,     0,   159,   160,     0,
     161,     0,   162,   163,   164,   165,   166,     0,   167,   168,
       0,   169,   170,   171,   172,   173,   174,   175,     0,   176,
     177,     0,   178,     0,   179,     0,     0,     0,     0,   180,
       0,     0,     0,     0,     0,     0,   181,   182,   183,     0,
       0,   184,     0,     0,     0,     0,   185,   186,     0,     0,
       0,     0,   187,     0,   188,     0,     0,     0,   189,     0,
     190,   191,   192,   193,     0,     0,     0,   194,     0,     0,
     195,   196,   197,     0,     0,     0,   198,     0,   199,   200,
       0,   201,   202,   203,     0,     0,   204,     0,   205,   206,
     207,   208,   209,   210,     0,     0,   211,   212,   213,     0,
       0,   214,     0,   215,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,     0,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,     0,     0,
     240,     0,     0,     0,     0,   241,   242,     0,     0,     0,
     243,     0,     0,   244,   245,     0,     0,     0,   246,     0,
       0,   247,   248,     0,     0,   249,     0,     0,   250,   251,
     557,     0,     0,     0,     0,   252,   253,     0,   254,     0,
     255,     0,   256,   257,     0,     0,     0,     0,     0,     0,
       0,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,     0,   271,   272,     0,   273,   274,
     275,   276,     0,   277,   278,   279,     0,     0,     0,   280,
     281,   282,   283,   284,     0,     0,   285,   286,     0,   287,
       0,   288,     0,   289,   290,   291,   292,   293,   294,   295,
     296,     0,     0,   297,   298,     0,     0,   299,   300,   301,
     302,     0,     0,     0,   303,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,   357,     0,     0,   358,   359,   360,   361,
     362,   363,   364,   365,   366,     0,   367,   368,     0,     0,
       0,   369,   370,   371,   372,     0,     0,     0,   373,     0,
       0,     0,   374,   375,   376,   377,     0,   378,   379,   380,
     381,     0,     0,     0,     0,     0,     0,   382,   383,     0,
     384,     0,     0,   385,     0,     0,   386,   387,   388,     0,
       0,   389,   390,     0,   391,   392,   393,   394,   395,     0,
       0,   396,   397,     0,   398,   399,     0,     0,   400,   401,
       0,   131,   402,   403,     0,   404,   405,   406,   407,     0,
       0,     0,     0,     0,   408,   409,   410,     0,     0,     0,
     411,   412,   413,   414,     0,   415,   416,     0,   417,   418,
       0,   419,   420,     0,     0,   421,     0,     0,   422,     0,
     423,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     426,     0,     0,   427,     0,     0,     0,   428,   429,   430,
     431,   432,     0,     0,     0,     0,   433,   434,     0,   435,
     436,   437,     0,   134,   438,   135,   136,   137,   138,   139,
       0,     0,     0,     0,     0,   140,  2506,     0,   141,     0,
     142,   143,   144,   145,   146,   147,   148,     0,   149,     0,
       0,     0,   150,     0,     0,     0,   151,     0,     0,   152,
     153,     0,   154,     0,   155,   156,     0,     0,   157,     0,
       0,   158,     0,   159,   160,     0,   161,     0,   162,   163,
     164,   165,   166,     0,   167,   168,     0,   169,   170,   171,
     172,   173,   174,   175,     0,   176,   177,     0,   178,     0,
     179,     0,     0,     0,     0,   180,     0,     0,     0,     0,
       0,     0,   181,   182,   183,     0,     0,   184,     0,     0,
       0,     0,   185,   186,     0,     0,     0,     0,   187,     0,
     188,     0,     0,     0,   189,     0,   190,   191,   192,   193,
       0,     0,     0,   194,     0,     0,   195,   196,   197,     0,
       0,     0,   198,     0,   199,   200,     0,   201,   202,   203,
       0,     0,   204,     0,   205,   206,   207,   208,   209,   210,
       0,     0,   211,   212,   213,     0,     0,   214,     0,   215,
     216,   217,   218,     0,     0,   219,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,   229,   230,     0,   231,     0,
       0,   232,   233,     0,     0,     0,   234,   235,   236,   237,
       0,     0,   238,   239,     0,     0,   240,     0,     0,     0,
       0,   241,   242,     0,     0,     0,   243,     0,     0,   244,
     245,     0,     0,     0,   246,     0,     0,   247,   248,     0,
       0,   249,     0,     0,   250,   251,     0,     0,     0,     0,
       0,   252,   253,     0,   254,     0,   255,     0,   256,   257,
       0,     0,     0,     0,     0,     0,     0,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
       0,   271,   272,     0,   273,   274,   275,   276,     0,   277,
     278,   279,     0,     0,     0,   280,   281,   282,   283,   284,
       0,     0,   285,   286,     0,   287,     0,   288,     0,   289,
     290,   291,   292,   293,   294,   295,   296,     0,     0,   297,
     298,     0,     0,   299,   300,   301,   302,     0,     0,     0,
     303,   304,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,     0,     0,   328,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,     0,   355,   356,     0,   357,
       0,     0,   358,   359,   360,   361,   362,   363,   364,   365,
     366,     0,   367,   368,     0,     0,     0,   369,   370,   371,
     372,     0,     0,     0,   373,     0,     0,     0,   374,   375,
     376,   377,     0,   378,   379,   380,   381,     0,     0,     0,
       0,     0,     0,   382,   383,     0,   384,     0,     0,   385,
       0,     0,   386,   387,   388,     0,     0,   389,   390,     0,
     391,   392,   393,   394,   395,     0,     0,   396,   397,     0,
     398,   399,     0,     0,   400,   401,     0,   131,   402,   403,
       0,   404,   405,   406,   407,     0,     0,     0,     0,     0,
     408,   409,   410,     0,     0,     0,   411,   412,   413,   414,
       0,   415,   416,     0,   417,   418,     0,   419,   420,     0,
       0,   421,     0,     0,   422,     0,   423,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,     0,     0,   427,
       0,     0,     0,   428,   429,   430,   431,   432,     0,     0,
       0,     0,   433,   434,     0,   435,   436,   437,     0,   134,
     438,   135,   136,   137,   138,   139,     0,     0,     0,     0,
       0,   140,     0,     0,   141,     0,   142,   143,   144,   145,
     146,   147,   148,     0,   149,     0,     0,     0,   150,     0,
       0,     0,   151,     0,     0,   152,   153,     0,   154,     0,
     155,   156,     0,     0,   157,     0,     0,   158,     0,   159,
     160,     0,   161,     0,   162,   163,   164,   165,   166,     0,
     167,   168,     0,   169,   170,   171,   172,   173,   174,   175,
       0,   176,   177,     0,   178,  3901,   179,     0,     0,     0,
       0,   180,     0,     0,     0,     0,     0,     0,   181,   182,
     183,     0,     0,   184,     0,     0,     0,     0,   185,   186,
       0,     0,     0,     0,   187,     0,   188,     0,     0,     0,
     189,     0,   190,   191,   192,   193,     0,     0,     0,   194,
       0,     0,   195,   196,   197,     0,     0,     0,   198,     0,
     199,   200,     0,   201,   202,   203,     0,     0,   204,     0,
     205,   206,   207,   208,   209,   210,     0,  3902,   211,   212,
     213,     0,     0,   214,     0,   215,   216,   217,   218,     0,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,   229,   230,     0,   231,     0,     0,   232,   233,     0,
       0,     0,   234,   235,   236,   237,     0,     0,   238,   239,
       0,     0,   240,     0,     0,     0,     0,   241,   242,     0,
       0,     0,   243,     0,     0,   244,   245,     0,     0,     0,
     246,     0,     0,   247,   248,     0,     0,   249,     0,     0,
     250,   251,     0,     0,     0,     0,     0,   252,   253,     0,
     254,     0,   255,     0,   256,   257,     0,     0,     0,     0,
       0,     0,     0,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,     0,   271,   272,     0,
     273,   274,   275,   276,     0,   277,   278,   279,     0,     0,
       0,   280,   281,   282,   283,   284,     0,     0,   285,   286,
       0,   287,     0,   288,     0,   289,   290,   291,   292,   293,
     294,   295,   296,     0,     0,   297,   298,     0,     0,   299,
     300,   301,   302,     0,     0,     0,   303,   304,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,     0,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,     0,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
     354,     0,   355,   356,     0,   357,     0,     0,   358,   359,
     360,   361,   362,   363,   364,   365,   366,     0,   367,   368,
       0,     0,     0,   369,   370,   371,   372,     0,     0,     0,
     373,     0,     0,     0,   374,   375,   376,   377,     0,   378,
     379,   380,   381,     0,     0,     0,     0,     0,     0,   382,
     383,     0,   384,     0,     0,   385,     0,     0,   386,   387,
     388,     0,     0,   389,   390,     0,   391,   392,   393,   394,
     395,     0,     0,   396,   397,     0,   398,   399,     0,     0,
     400,   401,     0,     0,   402,   403,     0,   404,   405,   406,
     407,     0,     0,     0,     0,     0,   408,   409,   410,     0,
       0,     0,   411,   412,   413,   414,     0,   415,   416,     0,
     417,   418,     0,   419,   420,     0,     0,   421,     0,     0,
     422,     0,   423,     0,   424,   425,     0,     0,     0,     0,
       0,     0,   426,     0,     0,   427,     0,     0,     0,   428,
     429,   430,   431,   432,     0,     0,     0,     0,   433,   434,
       0,   435,   436,   437,     0,   134,   438,   135,   136,   137,
     138,   139,     0,     0,     0,     0,     0,   140,     0,     0,
     141,     0,   142,   143,   144,   145,   146,   147,   148,     0,
     149,     0,     0,     0,   150,     0,     0,     0,   151,     0,
       0,   152,   153,     0,   154,     0,   155,   156,     0,     0,
     157,     0,     0,   158,     0,   159,   160,     0,   161,     0,
     162,   163,   164,   165,   166,     0,   167,   168,     0,   169,
     170,   171,   172,   173,   174,   175,     0,   176,   177,     0,
     178,     0,   179,     0,     0,     0,     0,   180,     0,     0,
       0,     0,     0,     0,   181,   182,   183,     0,     0,   184,
       0,     0,     0,     0,   185,   186,     0,     0,     0,     0,
     187,     0,   188,     0,     0,     0,   189,     0,   190,   191,
     192,   193,     0,     0,     0,   194,     0,     0,   195,   196,
     197,     0,     0,     0,   198,     0,   199,   200,     0,   201,
     202,   203,     0,     0,   204,     0,   205,   206,   207,   208,
     209,   210,     0,     0,   211,   212,   213,     0,     0,   214,
       0,   215,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,   980,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
       0,     0,     0,   241,   242,     0,     0,     0,   243,     0,
       0,   244,   245,     0,     0,     0,   246,     0,     0,   247,
     248,     0,     0,   249,     0,     0,   250,   251,     0,     0,
       0,     0,     0,   252,   253,     0,   254,     0,   255,     0,
     256,   257,     0,     0,     0,     0,     0,     0,     0,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,     0,   271,   272,     0,   273,   274,   275,   276,
       0,   277,   278,   279,     0,     0,     0,   280,   281,   282,
     283,   284,     0,     0,   285,   286,     0,   287,     0,   288,
       0,   289,   290,   291,   292,   293,   294,   295,   296,     0,
       0,   297,   298,     0,     0,   299,   300,   301,   302,     0,
       0,     0,   303,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,   357,     0,     0,   358,   359,   360,   361,   362,   363,
     364,   365,   366,     0,   367,   368,     0,     0,     0,   369,
     370,   371,   372,     0,     0,     0,   373,     0,     0,     0,
     374,   375,   376,   377,     0,   378,   379,   380,   381,     0,
       0,     0,     0,     0,     0,   382,   383,     0,   384,     0,
       0,   385,     0,     0,   386,   387,   388,     0,     0,   389,
     390,     0,   391,   392,   393,   394,   395,     0,     0,   396,
     397,     0,   398,   399,     0,     0,   400,   401,     0,     0,
     402,   403,     0,   404,   405,   406,   407,     0,     0,     0,
       0,     0,   408,   409,   410,     0,     0,     0,   411,   412,
     413,   414,     0,   415,   416,     0,   417,   418,     0,   419,
     420,     0,     0,   421,     0,     0,   422,     0,   423,     0,
     424,   425,     0,     0,     0,     0,     0,     0,   426,     0,
       0,   427,     0,     0,     0,   428,   429,   430,   431,   432,
       0,     0,     0,     0,   433,   434,     0,   435,   436,   437,
       0,   134,   438,   135,   136,   137,   138,   139,     0,     0,
       0,     0,     0,   140,     0,     0,   141,     0,   142,   143,
     144,   145,   146,   147,   148,     0,   149,     0,     0,     0,
     150,     0,     0,     0,   151,     0,     0,   152,   153,     0,
     154,     0,   155,   156,     0,     0,   157,     0,     0,   158,
       0,   159,   160,     0,   161,     0,   162,   163,   164,   165,
     166,     0,   167,   168,     0,   169,   170,   171,   172,   173,
     174,   175,     0,   176,   177,     0,   178,     0,   179,     0,
       0,     0,     0,   180,     0,     0,     0,     0,     0,     0,
     181,   182,   183,     0,     0,   184,     0,     0,     0,     0,
     185,   186,     0,     0,     0,  1356,   187,     0,   188,     0,
       0,     0,   189,     0,   190,   191,   192,   193,     0,     0,
       0,   194,     0,     0,   195,   196,   197,     0,     0,     0,
     198,     0,   199,   200,     0,   201,   202,   203,     0,     0,
     204,     0,   205,   206,   207,   208,   209,   210,     0,     0,
     211,   212,   213,     0,     0,   214,     0,   215,   216,   217,
     218,     0,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,   229,   230,     0,   231,     0,     0,   232,
     233,     0,     0,     0,   234,   235,   236,   237,     0,     0,
     238,   239,     0,     0,   240,     0,     0,     0,     0,   241,
     242,     0,     0,     0,   243,     0,     0,   244,   245,     0,
       0,     0,   246,     0,     0,   247,   248,     0,     0,   249,
       0,     0,   250,   251,     0,     0,     0,     0,     0,   252,
     253,     0,   254,     0,   255,     0,   256,   257,     0,     0,
       0,     0,     0,     0,     0,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,     0,   271,
     272,     0,   273,   274,   275,   276,     0,   277,   278,   279,
       0,     0,     0,   280,   281,   282,   283,   284,     0,     0,
     285,   286,     0,   287,     0,   288,     0,   289,   290,   291,
     292,   293,   294,   295,   296,     0,     0,   297,   298,     0,
       0,   299,   300,   301,   302,     0,     0,     0,   303,   304,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,     0,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,     0,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,     0,   355,   356,     0,   357,     0,     0,
     358,   359,   360,   361,   362,   363,   364,   365,   366,     0,
     367,   368,     0,     0,     0,   369,   370,   371,   372,     0,
       0,     0,   373,     0,     0,     0,   374,   375,   376,   377,
       0,   378,   379,   380,   381,     0,     0,     0,     0,     0,
       0,   382,   383,     0,   384,     0,     0,   385,     0,     0,
     386,   387,   388,     0,     0,   389,   390,     0,   391,   392,
     393,   394,   395,     0,     0,   396,   397,     0,   398,   399,
       0,     0,   400,   401,     0,     0,   402,   403,     0,   404,
     405,   406,   407,     0,     0,     0,     0,     0,   408,   409,
     410,     0,     0,     0,   411,   412,   413,   414,     0,   415,
     416,     0,   417,   418,     0,   419,   420,     0,     0,   421,
       0,     0,   422,     0,   423,     0,   424,   425,     0,     0,
       0,     0,     0,     0,   426,     0,     0,   427,     0,     0,
       0,   428,   429,   430,   431,   432,     0,     0,     0,     0,
     433,   434,     0,   435,   436,   437,     0,   134,   438,   135,
     136,   137,   138,   139,     0,     0,     0,     0,     0,   140,
       0,     0,   141,     0,   142,   143,   144,   145,   146,   147,
     148,     0,   149,     0,     0,     0,   150,     0,     0,     0,
     151,     0,     0,   152,   153,     0,   154,     0,   155,   156,
       0,     0,   157,     0,     0,   158,     0,   159,   160,     0,
     161,     0,   162,   163,   164,   165,   166,     0,   167,   168,
       0,   169,   170,   171,   172,   173,   174,   175,     0,   176,
     177,     0,   178,     0,   179,     0,     0,     0,     0,   180,
       0,     0,     0,     0,     0,     0,   181,   182,   183,     0,
       0,   184,     0,     0,     0,     0,   185,   186,     0,     0,
       0,  2105,   187,     0,   188,     0,     0,     0,   189,     0,
     190,   191,   192,   193,     0,     0,     0,   194,     0,     0,
     195,   196,   197,     0,     0,     0,   198,     0,   199,   200,
       0,   201,   202,   203,     0,     0,   204,     0,   205,   206,
     207,   208,   209,   210,     0,     0,   211,   212,   213,     0,
       0,   214,     0,   215,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,     0,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,     0,     0,
     240,     0,     0,     0,     0,   241,   242,     0,     0,     0,
     243,     0,     0,   244,   245,     0,     0,     0,   246,     0,
       0,   247,   248,     0,     0,   249,     0,     0,   250,   251,
       0,     0,     0,     0,     0,   252,   253,     0,   254,     0,
     255,     0,   256,   257,     0,     0,     0,     0,     0,     0,
       0,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,     0,   271,   272,     0,   273,   274,
     275,   276,     0,   277,   278,   279,     0,     0,     0,   280,
     281,   282,   283,   284,     0,     0,   285,   286,     0,   287,
       0,   288,     0,   289,   290,   291,   292,   293,   294,   295,
     296,     0,     0,   297,   298,     0,     0,   299,   300,   301,
     302,     0,     0,     0,   303,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,   357,     0,     0,   358,   359,   360,   361,
     362,   363,   364,   365,   366,     0,   367,   368,     0,     0,
       0,   369,   370,   371,   372,     0,     0,     0,   373,     0,
       0,     0,   374,   375,   376,   377,     0,   378,   379,   380,
     381,     0,     0,     0,     0,     0,     0,   382,   383,     0,
     384,     0,     0,   385,     0,     0,   386,   387,   388,     0,
       0,   389,   390,     0,   391,   392,   393,   394,   395,     0,
       0,   396,   397,     0,   398,   399,     0,     0,   400,   401,
       0,     0,   402,   403,     0,   404,   405,   406,   407,     0,
       0,     0,     0,     0,  2106,   409,   410,     0,     0,     0,
     411,   412,   413,   414,     0,   415,   416,     0,   417,   418,
       0,   419,   420,     0,     0,   421,     0,     0,   422,     0,
     423,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     426,     0,     0,   427,     0,     0,     0,   428,   429,   430,
     431,   432,     0,     0,     0,     0,   433,   434,     0,   435,
     436,   437,     0,   134,   438,   135,   136,   137,   138,   139,
       0,     0,     0,     0,     0,   140,     0,     0,   141,     0,
     142,   143,   144,   145,   146,   147,   148,     0,   149,     0,
       0,     0,   150,     0,     0,     0,   151,     0,     0,   152,
     153,     0,   154,     0,   155,   156,     0,     0,   157,     0,
       0,   158,     0,   159,   160,     0,   161,     0,   162,   163,
     164,   165,   166,     0,   167,   168,     0,   169,   170,   171,
     172,   173,   174,   175,     0,   176,   177,     0,   178,     0,
     179,     0,     0,     0,     0,   180,     0,     0,     0,     0,
       0,     0,   181,   182,   183,     0,     0,   184,     0,     0,
       0,     0,   185,   186,     0,     0,     0,     0,   187,     0,
     188,     0,     0,     0,   189,     0,   190,   191,   192,   193,
       0,     0,     0,   194,     0,     0,   195,   196,   197,     0,
       0,     0,   198,     0,   199,   200,     0,   201,   202,   203,
       0,     0,   204,     0,   205,   206,   207,   208,   209,   210,
       0,     0,   211,   212,   213,     0,     0,   214,     0,   215,
     216,   217,   218,     0,     0,   219,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,   229,   230,     0,   231,     0,
       0,   232,   233,     0,     0,     0,   234,   235,   236,   237,
       0,     0,   238,   239,     0,     0,   240,     0,     0,     0,
       0,   241,   242,     0,     0,     0,   243,     0,     0,   244,
     245,     0,     0,     0,   246,     0,     0,   247,   248,     0,
       0,   249,     0,     0,   250,   251,     0,     0,     0,     0,
       0,   252,   253,     0,   254,     0,   255,     0,   256,   257,
       0,     0,     0,     0,     0,     0,     0,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
       0,   271,   272,     0,   273,   274,   275,   276,     0,   277,
     278,   279,     0,     0,     0,   280,   281,   282,   283,   284,
       0,     0,   285,   286,     0,   287,     0,   288,     0,   289,
     290,   291,   292,   293,   294,   295,   296,     0,     0,   297,
     298,     0,     0,   299,   300,   301,   302,     0,     0,     0,
     303,   304,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,     0,     0,   328,   329,   330,  2272,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,     0,   355,   356,     0,   357,
       0,     0,   358,   359,   360,   361,   362,   363,   364,   365,
     366,     0,   367,   368,     0,     0,     0,   369,   370,   371,
     372,     0,     0,     0,   373,     0,     0,     0,   374,   375,
     376,   377,     0,   378,   379,   380,   381,     0,     0,     0,
       0,     0,     0,   382,   383,     0,   384,     0,     0,   385,
       0,     0,   386,   387,   388,     0,     0,   389,   390,     0,
     391,   392,   393,   394,   395,     0,     0,   396,   397,     0,
     398,   399,     0,     0,   400,   401,     0,     0,   402,   403,
       0,   404,   405,   406,   407,     0,     0,     0,     0,     0,
     408,   409,   410,     0,     0,     0,   411,   412,   413,   414,
       0,   415,   416,     0,   417,   418,     0,   419,   420,     0,
       0,   421,     0,     0,   422,     0,   423,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,     0,     0,   427,
       0,     0,     0,   428,   429,   430,   431,   432,     0,     0,
       0,     0,   433,   434,     0,   435,   436,   437,     0,   134,
     438,   135,   136,   137,   138,   139,  2602,     0,     0,     0,
       0,   140,     0,     0,   141,     0,   142,   143,   144,   145,
     146,   147,   148,     0,   149,     0,     0,     0,   150,     0,
       0,     0,   151,     0,     0,   152,   153,     0,   154,     0,
     155,   156,     0,     0,   157,     0,     0,   158,     0,   159,
     160,     0,   161,     0,   162,   163,   164,   165,   166,     0,
     167,   168,     0,   169,   170,   171,   172,   173,   174,   175,
       0,   176,   177,     0,   178,     0,   179,     0,     0,     0,
       0,   180,     0,     0,     0,     0,     0,     0,   181,   182,
     183,     0,     0,   184,     0,     0,     0,     0,   185,   186,
       0,     0,     0,     0,   187,     0,   188,     0,     0,     0,
     189,     0,   190,   191,   192,   193,     0,     0,     0,   194,
       0,     0,   195,   196,   197,     0,     0,     0,   198,     0,
     199,   200,     0,   201,   202,   203,     0,     0,   204,     0,
     205,   206,   207,   208,   209,   210,     0,     0,   211,   212,
     213,     0,     0,   214,     0,   215,   216,   217,   218,     0,
       0,   219,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,   229,   230,     0,   231,     0,     0,   232,   233,     0,
       0,     0,   234,   235,   236,   237,     0,     0,   238,   239,
       0,     0,   240,     0,     0,     0,     0,   241,   242,     0,
       0,     0,   243,     0,     0,   244,   245,     0,     0,     0,
     246,     0,     0,   247,   248,     0,     0,   249,     0,     0,
     250,   251,     0,     0,     0,     0,     0,   252,   253,     0,
     254,     0,   255,     0,   256,   257,     0,     0,     0,     0,
       0,     0,     0,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,     0,   271,   272,     0,
     273,   274,   275,   276,     0,   277,   278,   279,     0,     0,
       0,   280,   281,   282,   283,   284,     0,     0,   285,   286,
       0,   287,     0,   288,     0,   289,   290,   291,   292,   293,
     294,   295,   296,     0,     0,   297,   298,     0,     0,   299,
     300,   301,   302,     0,     0,     0,   303,   304,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,   311,
       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
       0,   313,   314,   315,     0,   316,   317,   318,   319,   320,
     321,   322,   323,   324,   325,   326,   327,     0,     0,   328,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,   337,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,   347,
       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
     354,     0,   355,   356,     0,   357,     0,     0,   358,   359,
     360,   361,   362,   363,   364,   365,   366,     0,   367,   368,
       0,     0,     0,   369,   370,   371,   372,     0,     0,     0,
     373,     0,     0,     0,   374,   375,   376,   377,     0,   378,
     379,   380,   381,     0,     0,     0,     0,     0,     0,   382,
     383,     0,   384,     0,     0,   385,     0,     0,   386,   387,
     388,     0,     0,   389,   390,     0,   391,   392,   393,   394,
     395,     0,     0,   396,   397,     0,   398,   399,     0,     0,
     400,   401,     0,     0,   402,   403,     0,   404,   405,   406,
     407,     0,     0,     0,     0,     0,   408,   409,   410,     0,
       0,     0,   411,   412,   413,   414,     0,   415,   416,     0,
     417,   418,     0,   419,   420,     0,     0,   421,     0,     0,
     422,     0,   423,     0,   424,   425,     0,     0,     0,     0,
       0,     0,   426,     0,     0,   427,     0,     0,     0,   428,
     429,   430,   431,   432,     0,     0,     0,     0,   433,   434,
       0,   435,   436,   437,     0,   134,   438,   135,   136,   137,
     138,   139,     0,     0,     0,     0,     0,   140,     0,     0,
     141,     0,   142,   143,   144,   145,   146,   147,   148,     0,
     149,     0,     0,     0,   150,     0,     0,     0,   151,     0,
       0,   152,   153,     0,   154,     0,   155,   156,     0,     0,
     157,     0,     0,   158,     0,   159,   160,     0,   161,     0,
     162,   163,   164,   165,   166,     0,   167,   168,     0,   169,
     170,   171,   172,   173,   174,   175,     0,   176,   177,     0,
     178,     0,   179,     0,     0,     0,     0,   180,     0,     0,
       0,     0,     0,     0,   181,   182,   183,     0,     0,   184,
       0,     0,     0,     0,   185,   186,     0,     0,     0,     0,
     187,     0,   188,     0,     0,     0,   189,     0,   190,   191,
     192,   193,     0,     0,     0,   194,     0,     0,   195,   196,
     197,     0,     0,     0,   198,     0,   199,   200,     0,   201,
     202,   203,     0,     0,   204,     0,   205,   206,   207,   208,
     209,   210,     0,     0,   211,   212,   213,     0,     0,   214,
       0,   215,   216,   217,   218,     0,     0,   219,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,   229,   230,     0,
     231,     0,     0,   232,   233,     0,     0,     0,   234,   235,
     236,   237,     0,     0,   238,   239,     0,     0,   240,     0,
       0,     0,     0,   241,   242,     0,     0,     0,   243,     0,
       0,   244,   245,     0,     0,     0,   246,     0,     0,   247,
     248,     0,     0,   249,     0,     0,   250,   251,     0,     0,
       0,     0,     0,   252,   253,     0,   254,     0,   255,     0,
     256,   257,     0,     0,     0,     0,     0,     0,     0,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,     0,   271,   272,     0,   273,   274,   275,   276,
       0,   277,   278,   279,     0,     0,     0,   280,   281,   282,
     283,   284,     0,     0,   285,   286,     0,   287,     0,   288,
       0,   289,   290,   291,   292,   293,   294,   295,   296,     0,
       0,   297,   298,     0,     0,   299,   300,   301,   302,     0,
       0,     0,   303,   304,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,   311,     0,   312,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   313,   314,   315,
       0,   316,   317,   318,   319,   320,   321,   322,   323,   324,
     325,   326,   327,     0,     0,   328,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,   337,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,   347,     0,   348,   349,   350,
       0,     0,   351,     0,   352,   353,   354,     0,   355,   356,
       0,   357,     0,     0,   358,   359,   360,   361,   362,   363,
     364,   365,   366,     0,   367,   368,     0,     0,     0,   369,
     370,   371,   372,     0,     0,     0,   373,     0,     0,     0,
     374,   375,   376,   377,     0,   378,   379,   380,   381,     0,
       0,     0,     0,     0,     0,   382,   383,     0,   384,     0,
       0,   385,     0,     0,   386,   387,   388,     0,     0,   389,
     390,     0,   391,   392,   393,   394,   395,     0,     0,   396,
     397,     0,   398,   399,     0,     0,   400,   401,     0,   131,
     402,   403,     0,   404,   405,   406,   407,     0,     0,     0,
       0,     0,   408,   409,   410,     0,     0,     0,   411,   412,
     413,   414,     0,   415,   416,     0,   417,   418,     0,   419,
     420,     0,     0,   421,     0,     0,   422,     0,   423,     0,
     424,   425,     0,     0,     0,     0,     0,     0,   426,     0,
       0,   427,     0,     0,     0,   428,   429,   430,   431,   432,
       0,     0,     0,     0,   433,   434,     0,   435,   436,   437,
       0,   134,   438,   135,   136,   137,   138,   139,     0,     0,
       0,     0,     0,   140,     0,     0,   141,     0,   142,   143,
     144,   145,   146,   147,   148,     0,   149,     0,     0,     0,
     150,     0,     0,     0,   151,     0,     0,   152,   153,     0,
     154,     0,   155,   156,     0,     0,   157,     0,     0,   158,
       0,   159,   160,     0,   161,     0,   162,   163,   164,   165,
     166,     0,   167,   168,     0,   169,   170,   171,   172,   173,
     174,   175,     0,   176,   177,     0,   178,     0,   179,     0,
       0,     0,     0,   180,     0,     0,     0,     0,     0,     0,
     181,   182,   183,     0,     0,   184,     0,     0,     0,     0,
     185,   186,     0,     0,     0,  2105,   187,     0,   188,     0,
       0,     0,   189,     0,   190,   191,   192,   193,     0,     0,
       0,   194,     0,     0,   195,   196,   197,     0,     0,     0,
     198,     0,   199,   200,     0,   201,   202,   203,     0,     0,
     204,     0,   205,   206,   207,   208,   209,   210,     0,     0,
     211,   212,   213,     0,     0,   214,     0,   215,   216,   217,
     218,     0,     0,   219,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,   229,   230,     0,   231,     0,     0,   232,
     233,     0,     0,     0,   234,   235,   236,   237,     0,     0,
     238,   239,     0,     0,   240,     0,     0,     0,     0,   241,
     242,     0,     0,     0,   243,     0,     0,   244,   245,     0,
       0,     0,   246,     0,     0,   247,   248,     0,     0,   249,
       0,     0,   250,   251,     0,     0,     0,     0,     0,   252,
     253,     0,   254,     0,   255,     0,   256,   257,     0,     0,
       0,     0,     0,     0,     0,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,     0,   271,
     272,     0,   273,   274,   275,   276,     0,   277,   278,   279,
       0,     0,     0,   280,   281,   282,   283,   284,     0,     0,
     285,   286,     0,   287,     0,   288,     0,   289,   290,   291,
     292,   293,   294,   295,   296,     0,     0,   297,   298,     0,
       0,   299,   300,   301,   302,     0,     0,     0,   303,   304,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,   311,     0,   312,     0,     0,     0,     0,     0,     0,
       0,     0,     0,   313,   314,   315,     0,   316,   317,   318,
     319,   320,   321,   322,   323,   324,   325,   326,   327,     0,
       0,   328,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,   337,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,   347,     0,   348,   349,   350,     0,     0,   351,     0,
     352,   353,   354,     0,   355,   356,     0,   357,     0,     0,
     358,   359,   360,   361,   362,   363,   364,   365,   366,     0,
     367,   368,     0,     0,     0,   369,   370,   371,   372,     0,
       0,     0,   373,     0,     0,     0,   374,   375,   376,   377,
       0,   378,   379,   380,   381,     0,     0,     0,     0,     0,
       0,   382,   383,     0,   384,     0,     0,   385,     0,     0,
     386,   387,   388,     0,     0,   389,   390,     0,   391,   392,
     393,   394,   395,     0,     0,   396,   397,     0,   398,   399,
       0,     0,   400,   401,     0,     0,   402,   403,     0,   404,
     405,   406,   407,     0,     0,     0,     0,     0,   408,   409,
     410,     0,     0,     0,   411,   412,   413,   414,     0,   415,
     416,     0,   417,   418,     0,   419,   420,     0,     0,   421,
       0,     0,   422,     0,   423,     0,   424,   425,     0,     0,
       0,     0,     0,     0,   426,     0,     0,   427,     0,     0,
       0,   428,   429,   430,   431,   432,     0,     0,     0,     0,
     433,   434,     0,   435,   436,   437,     0,   134,   438,   135,
     136,   137,   138,   139,     0,     0,     0,     0,     0,   140,
       0,     0,   141,     0,   142,   143,   144,   145,   146,   147,
     148,     0,   149,     0,     0,     0,   150,     0,     0,     0,
     151,     0,     0,   152,   153,     0,   154,     0,   155,   156,
       0,     0,   157,     0,     0,   158,     0,   159,   160,     0,
     161,     0,   162,   163,   164,   165,   166,     0,   167,   168,
       0,   169,   170,   171,   172,   173,   174,   175,     0,   176,
     177,     0,   178,     0,   179,     0,     0,     0,     0,   180,
       0,     0,     0,     0,     0,     0,   181,   182,   183,     0,
       0,   184,     0,     0,     0,     0,   185,   186,     0,     0,
       0,     0,   187,     0,   188,     0,     0,     0,   189,     0,
     190,   191,   192,   193,     0,     0,     0,   194,     0,     0,
     195,   196,   197,     0,     0,     0,   198,     0,   199,   200,
       0,   201,   202,   203,     0,     0,   204,     0,   205,   206,
     207,   208,   209,   210,     0,     0,   211,   212,   213,     0,
       0,   214,     0,   215,   216,   217,   218,     0,     0,   219,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,   229,
     230,     0,   231,     0,     0,   232,   233,     0,     0,     0,
     234,   235,   236,   237,     0,     0,   238,   239,     0,     0,
     240,     0,     0,     0,     0,   241,   242,     0,     0,     0,
     243,     0,     0,   244,   245,     0,     0,     0,   246,     0,
       0,   247,   248,     0,     0,   249,     0,     0,   250,   251,
       0,     0,     0,     0,     0,   252,   253,     0,   254,     0,
     255,     0,   256,   257,     0,     0,     0,     0,     0,     0,
       0,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,     0,   271,   272,     0,   273,   274,
     275,   276,     0,   277,   278,   279,     0,     0,     0,   280,
     281,   282,   283,   284,     0,     0,   285,   286,     0,   287,
       0,   288,     0,   289,   290,   291,   292,   293,   294,   295,
     296,     0,     0,   297,   298,     0,     0,   299,   300,   301,
     302,     0,     0,     0,   303,   304,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,   311,     0,   312,
       0,     0,     0,     0,     0,     0,     0,     0,     0,   313,
     314,   315,     0,   316,   317,   318,   319,   320,   321,   322,
     323,   324,   325,   326,   327,     0,     0,   328,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,   337,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,   347,     0,   348,
     349,   350,     0,     0,   351,     0,   352,   353,   354,     0,
     355,   356,     0,   357,     0,     0,   358,   359,   360,   361,
     362,   363,   364,   365,   366,     0,   367,   368,     0,     0,
       0,   369,   370,   371,   372,     0,     0,     0,   373,     0,
       0,     0,   374,   375,   376,   377,     0,   378,   379,   380,
     381,     0,     0,     0,     0,     0,     0,   382,   383,     0,
     384,     0,     0,   385,     0,     0,   386,   387,   388,     0,
       0,   389,   390,     0,   391,   392,   393,   394,   395,     0,
       0,   396,   397,     0,   398,   399,     0,     0,   400,   401,
       0,     0,   402,   403,     0,   404,   405,   406,   407,     0,
       0,     0,     0,     0,   408,   409,   410,     0,     0,     0,
     411,   412,   413,   414,     0,   415,   416,     0,   417,   418,
       0,   419,   420,     0,     0,   421,     0,     0,   422,     0,
     423,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     426,     0,     0,   427,     0,     0,     0,   428,   429,   430,
     431,   432,     0,     0,     0,     0,   433,   434,     0,   435,
     436,   437,     0,   134,   438,   135,   136,   137,   138,   139,
       0,     0,     0,     0,     0,   140,     0,     0,   141,     0,
     142,   143,   144,   145,   146,   147,   148,     0,   149,     0,
       0,     0,   150,     0,     0,     0,   151,     0,     0,   152,
     153,     0,   154,     0,   155,   156,     0,     0,   157,     0,
       0,   158,     0,   159,   160,     0,   161,     0,   162,   163,
     164,   165,   166,     0,   167,   168,     0,   169,   170,   171,
     172,   173,   174,   175,     0,   176,   177,     0,   178,     0,
     179,     0,     0,     0,     0,   180,     0,     0,     0,     0,
       0,     0,   181,   182,   183,     0,     0,   184,     0,     0,
       0,     0,   185,   186,     0,     0,     0,     0,   187,     0,
     188,     0,     0,     0,   189,     0,   190,   191,   192,   193,
       0,     0,     0,   194,     0,     0,   195,   196,   197,     0,
       0,     0,   198,     0,   199,   200,     0,   201,   202,   203,
       0,     0,   204,     0,   205,   206,   207,   208,   209,   210,
       0,     0,   211,   212,   213,     0,     0,   214,     0,   215,
     216,  1455,   218,     0,     0,   219,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,   229,   230,     0,   231,     0,
       0,   232,   233,     0,     0,     0,   234,   235,   236,   237,
       0,     0,   238,   239,     0,     0,   240,     0,     0,     0,
       0,   241,   242,     0,     0,     0,   243,     0,     0,   244,
     245,     0,     0,     0,   246,     0,     0,   247,   248,     0,
       0,   249,     0,     0,   250,   251,     0,     0,     0,     0,
       0,   252,   253,     0,   254,     0,   255,     0,   256,   257,
       0,     0,     0,     0,     0,     0,     0,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
       0,   271,   272,     0,   273,   274,   275,   276,     0,   277,
     278,   279,     0,     0,     0,   280,   281,   282,   283,   284,
       0,     0,   285,   286,     0,   287,     0,   288,     0,   289,
     290,   291,   292,   293,   294,   295,   296,     0,     0,   297,
     298,     0,     0,   299,  1456,   301,   302,     0,     0,     0,
     303,   304,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,   311,     0,   312,     0,     0,     0,     0,
       0,     0,     0,     0,     0,   313,   314,   315,     0,   316,
     317,   318,   319,   320,   321,   322,   323,   324,   325,   326,
     327,     0,     0,   328,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,   337,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,   347,     0,   348,   349,   350,     0,     0,
     351,     0,   352,   353,   354,     0,   355,   356,     0,   357,
       0,     0,   358,   359,   360,   361,   362,   363,   364,   365,
     366,     0,   367,   368,     0,     0,     0,   369,   370,   371,
     372,     0,     0,     0,   373,     0,     0,     0,   374,   375,
     376,   377,     0,   378,   379,   380,   381,     0,     0,     0,
       0,     0,     0,   382,   383,     0,   384,     0,     0,   385,
       0,     0,   386,   387,   388,     0,     0,   389,   390,     0,
     391,   392,   393,   394,   395,     0,     0,   396,   397,     0,
     398,   399,     0,     0,   400,   401,     0,     0,   402,   403,
       0,   404,   405,   406,   407,     0,     0,     0,     0,     0,
     408,   409,   410,     0,     0,     0,   411,   412,   413,   414,
       0,   415,   416,     0,   417,   418,     0,   419,   420,     0,
       0,   421,     0,     0,   422,     0,   423,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,     0,     0,   427,
       0,     0,     0,   428,   429,   430,   431,   432,     0,     0,
       0,     0,   433,   434,     0,   435,   436,   437,     0,   134,
     438,   135,   136,   137,   138,   139,     0,     0,     0,     0,
       0,   140,     0,     0,     0,     0,   142,   143,   144,   145,
     146,   147,     0,     0,  -245,     0,     0,     0,   150,     0,
       0,     0,   151,     0,     0,   152,   153,     0,   154,     0,
       0,     0,     0,     0,   157,  3534,     0,   158,     0,   159,
       0,     0,     0,     0,   162,   163,  3535,   165,   166,     0,
     167,   168,     0,     0,   170,     0,   172,   173,   174,   175,
       0,   176,   177,     0,     0,     0,   179,     0,     0,     0,
       0,   180,     0,     0,     0,     0,     0,     0,   181,   182,
     183,     0,     0,   184,     0,     0,     0,     0,   185,     0,
       0,     0,     0,     0,   187,     0,   188,     0,     0,     0,
     189,     0,   190,   191,   192,   193,     0,     0,     0,     0,
       0,     0,   195,   196,   197,     0,  -260,  -260,   198,     0,
    -260,   200,     0,   201,   202,   203,     0,     0,   204,     0,
     205,   206,   207,   208,   209,     0,     0,     0,   211,   212,
     213,     0,     0,   214,  3536,   215,   216,   217,   218,     0,
       0,     0,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,     0,   230,     0,     0,     0,     0,     0,   233,     0,
       0,     0,   234,   235,   236,   237,  3537,     0,   238,   239,
       0,     0,   240,     0,     0,     0,     0,   241,     0,     0,
       0,     0,   243,     0,     0,   244,   245,  3538,     0,     0,
     246,     0,     0,     0,   248,     0,     0,   249,  3539,     0,
     250,   251,     0,     0,     0,     0,     0,   252,   253,     0,
     254,     0,   255,     0,   256,   257,     0,     0,     0,     0,
    -245,     0,     0,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,     0,   271,   272,     0,
     273,   274,   275,   276,     0,   277,   278,   279,     0,     0,
       0,   280,   281,   282,   283,   284,     0,     0,   285,   286,
       0,   287,     0,   288,     0,   289,   290,   291,   292,   293,
     294,   295,   296,     0,     0,   297,   298,     0,     0,   299,
     300,   301,   302,     0,     0,     0,   303,     0,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,  3540,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   314,   315,     0,     0,   317,   318,   319,     0,
     321,   322,   323,   324,   325,   326,     0,     0,     0,     0,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,     0,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,     0,
       0,   348,     0,   350,  -245,     0,   351,     0,     0,   353,
       0,     0,   355,   356,  3541,   357,     0,     0,     0,   359,
     360,   361,   362,   363,   364,     0,   366,     0,   367,     0,
       0,     0,     0,   369,   370,   371,     0,     0,     0,     0,
     373,     0,     0,     0,   374,     0,   376,     0,     0,   378,
       0,     0,   381,     0,     0,     0,     0,     0,     0,   382,
     383,     0,   384,     0,     0,   385,     0,     0,   386,     0,
     388,     0,     0,     0,   390,     0,   391,   392,   393,   394,
     395,     0,     0,   396,   397,     0,   398,   399,     0,     0,
     400,   401,     0,     0,   402,   403,     0,   404,   405,   406,
     407,     0,     0,     0,     0,     0,   408,   409,   410,     0,
       0,     0,     0,   412,   413,   414,     0,   415,   416,     0,
     417,   418,     0,     0,     0,     0,     0,   421,     0,     0,
     422,     0,     0,     0,   424,   425,     0,     0,     0,     0,
       0,     0,   426,     0,     0,   427,     0,     0,     0,   428,
     429,   430,   431,   432,     0,     0,  -245,     0,   433,     0,
       0,   435,     0,   437,     0,   134,   438,   135,   136,   137,
     138,   139,     0,     0,     0,     0,     0,   140,     0,     0,
       0,     0,   142,   143,   144,   145,   146,   147,     0,     0,
    -245,     0,     0,     0,   150,     0,     0,     0,   151,     0,
       0,   152,   153,     0,   154,     0,     0,     0,     0,     0,
     157,  3534,     0,   158,     0,   159,     0,     0,     0,     0,
     162,   163,  3535,   165,   166,     0,   167,   168,     0,     0,
     170,     0,   172,   173,   174,   175,     0,   176,   177,     0,
       0,     0,   179,     0,     0,     0,     0,   180,     0,     0,
       0,     0,     0,     0,   181,   182,   183,     0,     0,   184,
       0,     0,     0,     0,   185,     0,     0,     0,     0,     0,
     187,     0,   188,     0,     0,     0,   189,     0,   190,   191,
     192,   193,     0,     0,     0,     0,     0,     0,   195,   196,
     197,     0,  -281,     0,   198,     0,  -281,   200,     0,   201,
     202,   203,     0,     0,   204,     0,   205,   206,   207,   208,
     209,     0,     0,     0,   211,   212,   213,     0,     0,   214,
    3536,   215,   216,   217,   218,     0,     0,     0,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,     0,   230,     0,
       0,     0,     0,     0,   233,     0,     0,     0,   234,   235,
     236,   237,  3537,     0,   238,   239,     0,     0,   240,     0,
       0,     0,     0,   241,     0,     0,     0,     0,   243,     0,
       0,   244,   245,  3538,     0,     0,   246,     0,     0,     0,
     248,     0,     0,   249,  3539,     0,   250,   251,     0,     0,
       0,     0,     0,   252,   253,     0,   254,     0,   255,     0,
     256,   257,     0,     0,     0,     0,  -245,     0,     0,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,     0,   271,   272,     0,   273,   274,   275,   276,
       0,   277,   278,   279,     0,     0,     0,   280,   281,   282,
     283,   284,     0,     0,   285,   286,     0,   287,     0,   288,
       0,   289,   290,   291,   292,   293,   294,   295,   296,     0,
       0,   297,   298,     0,     0,   299,   300,   301,   302,     0,
       0,     0,   303,     0,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,  3540,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   314,   315,
       0,     0,   317,   318,   319,     0,   321,   322,   323,   324,
     325,   326,     0,     0,     0,     0,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,     0,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,     0,     0,   348,     0,   350,
    -245,     0,   351,     0,     0,   353,     0,     0,   355,   356,
    3541,   357,     0,     0,     0,   359,   360,   361,   362,   363,
     364,     0,   366,     0,   367,     0,     0,     0,     0,   369,
     370,   371,     0,     0,     0,     0,   373,     0,     0,     0,
     374,     0,   376,     0,     0,   378,     0,     0,   381,     0,
       0,     0,     0,     0,     0,   382,   383,     0,   384,     0,
       0,   385,     0,     0,   386,     0,   388,     0,     0,     0,
     390,     0,   391,   392,   393,   394,   395,     0,     0,   396,
     397,     0,   398,   399,     0,     0,   400,   401,     0,     0,
     402,   403,     0,   404,   405,   406,   407,     0,     0,     0,
       0,     0,   408,   409,   410,     0,     0,     0,     0,   412,
     413,   414,     0,   415,   416,     0,   417,   418,     0,     0,
       0,     0,     0,   421,     0,     0,   422,     0,     0,     0,
     424,   425,     0,     0,     0,     0,     0,     0,   426,     0,
       0,   427,     0,     0,     0,   428,   429,   430,   431,   432,
    -281,     0,  -245,     0,   433,     0,     0,   435,     0,   437,
       0,   134,   438,   135,   136,   137,   138,   139,     0,     0,
       0,     0,     0,   140,     0,     0,     0,     0,   142,   143,
     144,   145,   146,   147,     0,     0,  -245,     0,     0,     0,
     150,     0,     0,     0,   151,     0,     0,   152,   153,     0,
     154,     0,     0,     0,     0,     0,   157,  3534,     0,   158,
       0,   159,     0,     0,     0,     0,   162,   163,  3535,   165,
     166,     0,   167,   168,     0,     0,   170,     0,   172,   173,
     174,   175,     0,   176,   177,     0,     0,     0,   179,     0,
       0,     0,     0,   180,     0,     0,     0,     0,     0,     0,
     181,   182,   183,     0,     0,   184,     0,     0,     0,     0,
     185,     0,     0,     0,     0,     0,   187,     0,   188,     0,
       0,     0,   189,     0,   190,   191,   192,   193,     0,     0,
       0,     0,     0,     0,   195,   196,   197,     0,  -278,     0,
     198,     0,  -278,   200,     0,   201,   202,   203,     0,     0,
     204,     0,   205,   206,   207,   208,   209,     0,     0,     0,
     211,   212,   213,     0,     0,   214,  3536,   215,   216,   217,
     218,     0,     0,     0,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,     0,   230,     0,     0,     0,     0,     0,
     233,     0,     0,     0,   234,   235,   236,   237,  3537,     0,
     238,   239,     0,     0,   240,     0,     0,     0,     0,   241,
       0,     0,     0,     0,   243,     0,     0,   244,   245,  3538,
       0,     0,   246,     0,     0,     0,   248,     0,     0,   249,
    3539,     0,   250,   251,     0,     0,     0,     0,     0,   252,
     253,     0,   254,     0,   255,     0,   256,   257,     0,     0,
       0,     0,  -245,     0,     0,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,     0,   271,
     272,     0,   273,   274,   275,   276,     0,   277,   278,   279,
       0,     0,     0,   280,   281,   282,   283,   284,     0,     0,
     285,   286,     0,   287,     0,   288,     0,   289,   290,   291,
     292,   293,   294,   295,   296,     0,     0,   297,   298,     0,
       0,   299,   300,   301,   302,     0,     0,     0,   303,     0,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,  3540,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   314,   315,     0,     0,   317,   318,
     319,     0,   321,   322,   323,   324,   325,   326,     0,     0,
       0,     0,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,     0,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,     0,     0,   348,     0,   350,  -245,     0,   351,     0,
       0,   353,     0,     0,   355,   356,  3541,   357,     0,     0,
       0,   359,   360,   361,   362,   363,   364,     0,   366,     0,
     367,     0,     0,     0,     0,   369,   370,   371,     0,     0,
       0,     0,   373,     0,     0,     0,   374,     0,   376,     0,
       0,   378,     0,     0,   381,     0,     0,     0,     0,     0,
       0,   382,   383,     0,   384,     0,     0,   385,     0,     0,
     386,     0,   388,     0,     0,     0,   390,     0,   391,   392,
     393,   394,   395,     0,     0,   396,   397,     0,   398,   399,
       0,     0,   400,   401,     0,     0,   402,   403,     0,   404,
     405,   406,   407,     0,     0,     0,     0,     0,   408,   409,
     410,     0,     0,     0,     0,   412,   413,   414,     0,   415,
     416,     0,   417,   418,     0,     0,     0,     0,     0,   421,
       0,     0,   422,     0,     0,     0,   424,   425,     0,     0,
       0,     0,     0,     0,   426,     0,     0,   427,     0,     0,
       0,   428,   429,   430,   431,   432,  -278,     0,  -245,     0,
     433,     0,     0,   435,     0,   437,     0,   134,   438,   135,
     136,   137,   138,   139,     0,     0,     0,     0,     0,   140,
       0,     0,     0,     0,   142,   143,   144,   145,   146,   147,
       0,     0,  -245,     0,     0,     0,   150,     0,     0,     0,
     151,     0,     0,   152,   153,     0,   154,     0,     0,     0,
       0,     0,   157,  3534,     0,   158,     0,   159,     0,     0,
       0,     0,   162,   163,  3535,   165,   166,     0,   167,   168,
       0,     0,   170,     0,   172,   173,   174,   175,     0,   176,
     177,     0,     0,     0,   179,     0,     0,     0,     0,   180,
       0,     0,     0,     0,     0,     0,   181,   182,   183,     0,
       0,   184,     0,     0,     0,     0,   185,     0,     0,     0,
       0,     0,   187,     0,   188,     0,     0,     0,   189,     0,
     190,   191,   192,   193,     0,     0,     0,     0,     0,     0,
     195,   196,   197,     0,     0,     0,   198,     0,  3818,   200,
       0,   201,   202,   203,     0,     0,   204,     0,   205,   206,
     207,   208,   209,     0,     0,     0,   211,   212,   213,     0,
       0,   214,  3536,   215,   216,   217,   218,     0,     0,     0,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,     0,
     230,     0,     0,     0,     0,     0,   233,     0,     0,     0,
     234,   235,   236,   237,  3537,     0,   238,   239,     0,     0,
     240,     0,     0,     0,     0,   241,     0,     0,     0,     0,
     243,     0,     0,   244,   245,  3538,     0,     0,   246,     0,
       0,     0,   248,     0,     0,   249,  3539,     0,   250,   251,
       0,     0,     0,     0,     0,   252,   253,     0,   254,     0,
     255,     0,   256,   257,     0,     0,     0,     0,  -245,     0,
       0,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,     0,   271,   272,     0,   273,   274,
     275,   276,     0,   277,   278,   279,     0,     0,     0,   280,
     281,   282,   283,   284,     0,     0,   285,   286,     0,   287,
       0,   288,     0,   289,   290,   291,   292,   293,   294,   295,
     296,     0,     0,   297,   298,     0,     0,   299,   300,   301,
     302,     0,     0,     0,   303,     0,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,  3540,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     314,   315,     0,     0,   317,   318,   319,     0,   321,   322,
     323,   324,   325,   326,     0,     0,     0,     0,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,     0,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,     0,     0,   348,
       0,   350,  -245,     0,   351,     0,     0,   353,     0,     0,
     355,   356,  3541,   357,     0,     0,     0,   359,   360,   361,
     362,   363,   364,     0,   366,     0,   367,     0,     0,     0,
       0,   369,   370,   371,     0,     0,     0,     0,   373,     0,
       0,     0,   374,     0,   376,     0,     0,   378,     0,     0,
     381,     0,     0,     0,     0,     0,     0,   382,   383,     0,
     384,     0,     0,   385,     0,     0,   386,     0,   388,     0,
       0,     0,   390,     0,   391,   392,   393,   394,   395,     0,
       0,   396,   397,     0,   398,   399,     0,     0,   400,   401,
       0,     0,   402,   403,     0,   404,   405,   406,   407,     0,
       0,     0,     0,     0,   408,   409,   410,     0,     0,     0,
       0,   412,   413,   414,     0,   415,   416,     0,   417,   418,
       0,     0,     0,     0,     0,   421,     0,     0,   422,     0,
       0,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     426,     0,     0,   427,     0,     0,     0,   428,   429,   430,
     431,   432,     0,     0,  -245,     0,   433,     0,     0,   435,
       0,   437,     0,   134,   438,   135,   136,   137,   138,   139,
       0,     0,     0,     0,     0,   140,     0,     0,     0,     0,
     142,   143,   144,   145,   146,   147,     0,     0,  -245,     0,
       0,     0,   150,     0,     0,     0,   151,     0,     0,   152,
     153,     0,   154,     0,     0,     0,     0,     0,   157,  3534,
       0,   158,     0,   159,     0,     0,     0,     0,   162,   163,
    3535,   165,   166,     0,   167,   168,     0,     0,   170,     0,
     172,   173,   174,   175,     0,   176,   177,     0,     0,     0,
     179,     0,     0,     0,     0,   180,     0,     0,     0,     0,
       0,     0,   181,   182,   183,     0,     0,   184,     0,     0,
       0,     0,   185,     0,     0,     0,     0,     0,   187,     0,
     188,     0,     0,     0,   189,     0,   190,   191,   192,   193,
       0,     0,     0,     0,     0,     0,   195,   196,   197,     0,
       0,     0,   198,     0,  -283,   200,     0,   201,   202,   203,
       0,     0,   204,     0,   205,   206,   207,   208,   209,     0,
       0,     0,   211,   212,   213,     0,     0,   214,  3536,   215,
     216,   217,   218,     0,     0,     0,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,     0,   230,     0,     0,     0,
       0,     0,   233,     0,     0,     0,   234,   235,   236,   237,
    3537,     0,   238,   239,     0,     0,   240,     0,     0,     0,
       0,   241,     0,     0,     0,     0,   243,     0,     0,   244,
     245,  3538,     0,     0,   246,     0,     0,     0,   248,     0,
       0,   249,  3539,     0,   250,   251,     0,     0,     0,     0,
       0,   252,   253,     0,   254,     0,   255,     0,   256,   257,
       0,     0,     0,     0,  -245,     0,     0,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
       0,   271,   272,     0,   273,   274,   275,   276,     0,   277,
     278,   279,     0,     0,     0,   280,   281,   282,   283,   284,
       0,     0,   285,   286,     0,   287,     0,   288,     0,   289,
     290,   291,   292,   293,   294,   295,   296,     0,     0,   297,
     298,     0,     0,   299,   300,   301,   302,     0,     0,     0,
     303,     0,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,  3540,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   314,   315,     0,     0,
     317,   318,   319,     0,   321,   322,   323,   324,   325,   326,
       0,     0,     0,     0,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,     0,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,     0,     0,   348,     0,   350,  -245,     0,
     351,     0,     0,   353,     0,     0,   355,   356,  3541,   357,
       0,     0,     0,   359,   360,   361,   362,   363,   364,     0,
     366,     0,   367,     0,     0,     0,     0,   369,   370,   371,
       0,     0,     0,     0,   373,     0,     0,     0,   374,     0,
     376,     0,     0,   378,     0,     0,   381,     0,     0,     0,
       0,     0,     0,   382,   383,     0,   384,     0,     0,   385,
       0,     0,   386,     0,   388,     0,     0,     0,   390,     0,
     391,   392,   393,   394,   395,     0,     0,   396,   397,     0,
     398,   399,     0,     0,   400,   401,     0,     0,   402,   403,
       0,   404,   405,   406,   407,     0,     0,     0,     0,     0,
     408,   409,   410,     0,     0,     0,     0,   412,   413,   414,
       0,   415,   416,     0,   417,   418,     0,     0,     0,     0,
       0,   421,     0,     0,   422,     0,     0,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,     0,     0,   427,
       0,     0,     0,   428,   429,   430,   431,   432,     0,     0,
    -245,     0,   433,     0,     0,   435,     0,   437,     0,   134,
     438,   135,   136,   137,   138,   139,     0,     0,     0,     0,
       0,   140,     0,     0,     0,     0,   142,   143,   144,   145,
     146,   147,     0,     0,  -245,     0,     0,     0,   150,     0,
       0,     0,   151,     0,     0,   152,   153,     0,   154,     0,
       0,     0,     0,     0,   157,  3534,     0,   158,     0,   159,
       0,     0,     0,     0,   162,   163,  3535,   165,   166,     0,
     167,   168,     0,     0,   170,     0,   172,   173,   174,   175,
       0,   176,   177,     0,     0,     0,   179,     0,     0,     0,
       0,   180,     0,     0,     0,     0,     0,     0,   181,   182,
     183,     0,     0,   184,     0,     0,     0,     0,   185,     0,
       0,     0,     0,     0,   187,     0,   188,     0,     0,     0,
     189,     0,   190,   191,   192,   193,     0,     0,     0,     0,
       0,     0,   195,   196,   197,     0,     0,     0,   198,     0,
    3906,   200,     0,   201,   202,   203,     0,     0,   204,     0,
     205,   206,   207,   208,   209,     0,     0,     0,   211,   212,
     213,     0,     0,   214,  3536,   215,   216,   217,   218,     0,
       0,     0,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,     0,   230,     0,     0,     0,     0,     0,   233,     0,
       0,     0,   234,   235,   236,   237,  3537,     0,   238,   239,
       0,     0,   240,     0,     0,     0,     0,   241,     0,     0,
       0,     0,   243,     0,     0,   244,   245,  3538,     0,     0,
     246,     0,     0,     0,   248,     0,     0,   249,  3539,     0,
     250,   251,     0,     0,     0,     0,     0,   252,   253,     0,
     254,     0,   255,     0,   256,   257,     0,     0,     0,     0,
    -245,     0,     0,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,     0,   271,   272,     0,
     273,   274,   275,   276,     0,   277,   278,   279,     0,     0,
       0,   280,   281,   282,   283,   284,     0,     0,   285,   286,
       0,   287,     0,   288,     0,   289,   290,   291,   292,   293,
     294,   295,   296,     0,     0,   297,   298,     0,     0,   299,
     300,   301,   302,     0,     0,     0,   303,     0,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,  3540,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   314,   315,     0,     0,   317,   318,   319,     0,
     321,   322,   323,   324,   325,   326,     0,     0,     0,     0,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,     0,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,     0,
       0,   348,     0,   350,  -245,     0,   351,     0,     0,   353,
       0,     0,   355,   356,  3541,   357,     0,     0,     0,   359,
     360,   361,   362,   363,   364,     0,   366,     0,   367,     0,
       0,     0,     0,   369,   370,   371,     0,     0,     0,     0,
     373,     0,     0,     0,   374,     0,   376,     0,     0,   378,
       0,     0,   381,     0,     0,     0,     0,     0,     0,   382,
     383,     0,   384,     0,     0,   385,     0,     0,   386,     0,
     388,     0,     0,     0,   390,     0,   391,   392,   393,   394,
     395,     0,     0,   396,   397,     0,   398,   399,     0,     0,
     400,   401,     0,     0,   402,   403,     0,   404,   405,   406,
     407,     0,     0,     0,     0,     0,   408,   409,   410,     0,
       0,     0,     0,   412,   413,   414,     0,   415,   416,     0,
     417,   418,     0,     0,     0,     0,     0,   421,     0,     0,
     422,     0,     0,     0,   424,   425,     0,     0,     0,     0,
       0,     0,   426,     0,     0,   427,     0,     0,     0,   428,
     429,   430,   431,   432,     0,     0,  -245,     0,   433,     0,
       0,   435,     0,   437,     0,   134,   438,   135,   136,   137,
     138,   139,     0,     0,     0,     0,     0,   140,     0,     0,
       0,     0,   142,   143,   144,   145,   146,   147,     0,     0,
    -245,     0,     0,     0,   150,     0,     0,     0,   151,     0,
       0,   152,   153,     0,   154,     0,     0,     0,     0,     0,
     157,  3534,     0,   158,     0,   159,     0,     0,     0,     0,
     162,   163,  3535,   165,   166,     0,   167,   168,     0,     0,
     170,     0,   172,   173,   174,   175,     0,   176,   177,     0,
       0,     0,   179,     0,     0,     0,     0,   180,     0,     0,
       0,     0,     0,     0,   181,   182,   183,     0,     0,   184,
       0,     0,     0,     0,   185,     0,     0,     0,     0,     0,
     187,     0,   188,     0,     0,     0,   189,     0,   190,   191,
     192,   193,     0,     0,     0,     0,     0,     0,   195,   196,
     197,     0,     0,     0,   198,     0,  3989,   200,     0,   201,
     202,   203,     0,     0,   204,     0,   205,   206,   207,   208,
     209,     0,     0,     0,   211,   212,   213,     0,     0,   214,
    3536,   215,   216,   217,   218,     0,     0,     0,     0,     0,
       0,   220,   221,     0,   222,     0,   223,     0,   224,   225,
     226,   227,     0,   228,     0,     0,     0,     0,   230,     0,
       0,     0,     0,     0,   233,     0,     0,     0,   234,   235,
     236,   237,  3537,     0,   238,   239,     0,     0,   240,     0,
       0,     0,     0,   241,     0,     0,     0,     0,   243,     0,
       0,   244,   245,  3538,     0,     0,   246,     0,     0,     0,
     248,     0,     0,   249,  3539,     0,   250,   251,     0,     0,
       0,     0,     0,   252,   253,     0,   254,     0,   255,     0,
     256,   257,     0,     0,     0,     0,  -245,     0,     0,   258,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,     0,   271,   272,     0,   273,   274,   275,   276,
       0,   277,   278,   279,     0,     0,     0,   280,   281,   282,
     283,   284,     0,     0,   285,   286,     0,   287,     0,   288,
       0,   289,   290,   291,   292,   293,   294,   295,   296,     0,
       0,   297,   298,     0,     0,   299,   300,   301,   302,     0,
       0,     0,   303,     0,   305,     0,     0,     0,     0,   306,
     307,   308,     0,   309,   310,  3540,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   314,   315,
       0,     0,   317,   318,   319,     0,   321,   322,   323,   324,
     325,   326,     0,     0,     0,     0,   329,   330,     0,   331,
       0,   332,   333,     0,   334,   335,   336,     0,     0,     0,
       0,     0,     0,   338,   339,   340,   341,   342,     0,     0,
     343,   344,   345,     0,   346,     0,     0,   348,     0,   350,
    -245,     0,   351,     0,     0,   353,     0,     0,   355,   356,
    3541,   357,     0,     0,     0,   359,   360,   361,   362,   363,
     364,     0,   366,     0,   367,     0,     0,     0,     0,   369,
     370,   371,     0,     0,     0,     0,   373,     0,     0,     0,
     374,     0,   376,     0,     0,   378,     0,     0,   381,     0,
       0,     0,     0,     0,     0,   382,   383,     0,   384,     0,
       0,   385,     0,     0,   386,     0,   388,     0,     0,     0,
     390,     0,   391,   392,   393,   394,   395,     0,     0,   396,
     397,     0,   398,   399,     0,     0,   400,   401,     0,     0,
     402,   403,     0,   404,   405,   406,   407,     0,     0,     0,
       0,     0,   408,   409,   410,     0,     0,     0,     0,   412,
     413,   414,     0,   415,   416,     0,   417,   418,     0,     0,
       0,     0,     0,   421,     0,     0,   422,     0,     0,     0,
     424,   425,     0,     0,     0,     0,     0,     0,   426,     0,
       0,   427,     0,     0,     0,   428,   429,   430,   431,   432,
       0,     0,  -245,     0,   433,     0,     0,   435,     0,   437,
       0,   134,   438,   135,   136,   137,   138,   139,     0,     0,
       0,     0,     0,   140,     0,     0,     0,     0,   142,   143,
     144,   145,   146,   147,     0,     0,  -245,     0,     0,     0,
     150,     0,     0,     0,   151,     0,     0,   152,   153,     0,
     154,     0,     0,     0,     0,     0,   157,  3534,     0,   158,
       0,   159,     0,     0,     0,     0,   162,   163,  3535,   165,
     166,     0,   167,   168,     0,     0,   170,     0,   172,   173,
     174,   175,     0,   176,   177,     0,     0,     0,   179,     0,
       0,     0,     0,   180,     0,     0,     0,     0,     0,     0,
     181,   182,   183,     0,     0,   184,     0,     0,     0,     0,
     185,     0,     0,     0,     0,     0,   187,     0,   188,     0,
       0,     0,   189,     0,   190,   191,   192,   193,     0,     0,
       0,     0,     0,     0,   195,   196,   197,     0,     0,     0,
     198,     0,  -264,   200,     0,   201,   202,   203,     0,     0,
     204,     0,   205,   206,   207,   208,   209,     0,     0,     0,
     211,   212,   213,     0,     0,   214,  3536,   215,   216,   217,
     218,     0,     0,     0,     0,     0,     0,   220,   221,     0,
     222,     0,   223,     0,   224,   225,   226,   227,     0,   228,
       0,     0,     0,     0,   230,     0,     0,     0,     0,     0,
     233,     0,     0,     0,   234,   235,   236,   237,  3537,     0,
     238,   239,     0,     0,   240,     0,     0,     0,     0,   241,
       0,     0,     0,     0,   243,     0,     0,   244,   245,  3538,
       0,     0,   246,     0,     0,     0,   248,     0,     0,   249,
    3539,     0,   250,   251,     0,     0,     0,     0,     0,   252,
     253,     0,   254,     0,   255,     0,   256,   257,     0,     0,
       0,     0,  -245,     0,     0,   258,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,     0,   271,
     272,     0,   273,   274,   275,   276,     0,   277,   278,   279,
       0,     0,     0,   280,   281,   282,   283,   284,     0,     0,
     285,   286,     0,   287,     0,   288,     0,   289,   290,   291,
     292,   293,   294,   295,   296,     0,     0,   297,   298,     0,
       0,   299,   300,   301,   302,     0,     0,     0,   303,     0,
     305,     0,     0,     0,     0,   306,   307,   308,     0,   309,
     310,  3540,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,   314,   315,     0,     0,   317,   318,
     319,     0,   321,   322,   323,   324,   325,   326,     0,     0,
       0,     0,   329,   330,     0,   331,     0,   332,   333,     0,
     334,   335,   336,     0,     0,     0,     0,     0,     0,   338,
     339,   340,   341,   342,     0,     0,   343,   344,   345,     0,
     346,     0,     0,   348,     0,   350,  -245,     0,   351,     0,
       0,   353,     0,     0,   355,   356,  3541,   357,     0,     0,
       0,   359,   360,   361,   362,   363,   364,     0,   366,     0,
     367,     0,     0,     0,     0,   369,   370,   371,     0,     0,
       0,     0,   373,     0,     0,     0,   374,     0,   376,     0,
       0,   378,     0,     0,   381,     0,     0,     0,     0,     0,
       0,   382,   383,     0,   384,     0,     0,   385,     0,     0,
     386,     0,   388,     0,     0,     0,   390,     0,   391,   392,
     393,   394,   395,     0,     0,   396,   397,     0,   398,   399,
       0,     0,   400,   401,     0,     0,   402,   403,     0,   404,
     405,   406,   407,     0,     0,     0,     0,     0,   408,   409,
     410,     0,     0,     0,     0,   412,   413,   414,     0,   415,
     416,     0,   417,   418,     0,     0,     0,     0,     0,   421,
       0,     0,   422,     0,     0,     0,   424,   425,     0,     0,
       0,     0,     0,     0,   426,     0,     0,   427,     0,     0,
       0,   428,   429,   430,   431,   432,     0,     0,  -245,     0,
     433,     0,     0,   435,     0,   437,     0,   134,   438,   135,
     136,   137,   138,   139,     0,     0,     0,     0,     0,   140,
       0,     0,     0,     0,   142,   143,   144,   145,   146,   147,
       0,     0,  -245,     0,     0,     0,   150,     0,     0,     0,
     151,     0,     0,   152,   153,     0,   154,     0,     0,     0,
       0,     0,   157,  3534,     0,   158,     0,   159,     0,     0,
       0,     0,   162,   163,  3535,   165,   166,     0,   167,   168,
       0,     0,   170,     0,   172,   173,   174,   175,     0,   176,
     177,     0,     0,     0,   179,     0,     0,     0,     0,   180,
       0,     0,     0,     0,     0,     0,   181,   182,   183,     0,
       0,   184,     0,     0,     0,     0,   185,     0,     0,     0,
       0,     0,   187,     0,   188,     0,     0,     0,   189,     0,
     190,   191,   192,   193,     0,     0,     0,     0,     0,     0,
     195,   196,   197,     0,     0,     0,   198,     0,     0,   200,
       0,   201,   202,   203,     0,     0,   204,     0,   205,   206,
     207,   208,   209,     0,     0,     0,   211,   212,   213,     0,
       0,   214,  3536,   215,   216,   217,   218,     0,     0,     0,
       0,     0,     0,   220,   221,     0,   222,     0,   223,     0,
     224,   225,   226,   227,     0,   228,     0,     0,     0,     0,
     230,     0,     0,     0,     0,     0,   233,     0,     0,     0,
     234,   235,   236,   237,  3537,     0,   238,   239,     0,     0,
     240,     0,     0,     0,     0,   241,     0,     0,     0,     0,
     243,     0,     0,   244,   245,  3538,     0,     0,   246,     0,
       0,     0,   248,     0,     0,   249,  3539,     0,   250,   251,
       0,     0,     0,     0,     0,   252,   253,     0,   254,     0,
     255,     0,   256,   257,     0,     0,     0,     0,  -245,     0,
       0,   258,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,     0,   271,   272,     0,   273,   274,
     275,   276,     0,   277,   278,   279,     0,     0,     0,   280,
     281,   282,   283,   284,     0,     0,   285,   286,     0,   287,
       0,   288,     0,   289,   290,   291,   292,   293,   294,   295,
     296,     0,     0,   297,   298,     0,     0,   299,   300,   301,
     302,     0,     0,     0,   303,     0,   305,     0,     0,     0,
       0,   306,   307,   308,     0,   309,   310,  3540,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     314,   315,     0,     0,   317,   318,   319,     0,   321,   322,
     323,   324,   325,   326,     0,     0,     0,     0,   329,   330,
       0,   331,     0,   332,   333,     0,   334,   335,   336,     0,
       0,     0,     0,     0,     0,   338,   339,   340,   341,   342,
       0,     0,   343,   344,   345,     0,   346,     0,     0,   348,
       0,   350,  -245,     0,   351,     0,     0,   353,     0,     0,
     355,   356,  3541,   357,     0,     0,     0,   359,   360,   361,
     362,   363,   364,     0,   366,     0,   367,     0,     0,     0,
       0,   369,   370,   371,     0,     0,     0,     0,   373,     0,
       0,     0,   374,     0,   376,     0,     0,   378,     0,     0,
     381,     0,     0,     0,     0,     0,     0,   382,   383,     0,
     384,     0,     0,   385,     0,     0,   386,     0,   388,     0,
       0,     0,   390,     0,   391,   392,   393,   394,   395,     0,
       0,   396,   397,     0,   398,   399,     0,     0,   400,   401,
       0,     0,   402,   403,     0,   404,   405,   406,   407,     0,
       0,     0,     0,     0,   408,   409,   410,     0,     0,     0,
       0,   412,   413,   414,     0,   415,   416,     0,   417,   418,
       0,     0,     0,     0,     0,   421,     0,     0,   422,     0,
       0,     0,   424,   425,     0,     0,     0,     0,     0,     0,
     426,     0,     0,   427,     0,     0,     0,   428,   429,   430,
     431,   432,     0,     0,  -245,     0,   433,     0,     0,   435,
       0,   437,     0,   134,   438,   135,   136,   137,   138,   139,
       0,     0,     0,     0,     0,   140,     0,     0,     0,     0,
     142,   143,   144,   145,   146,   147,     0,     0,  -245,     0,
       0,     0,   150,     0,     0,     0,   151,     0,     0,   152,
     153,     0,   154,     0,     0,     0,     0,     0,   157,  3534,
       0,   158,     0,   159,     0,     0,     0,     0,   162,   163,
    3535,   165,   166,     0,   167,   168,     0,     0,   170,     0,
     172,   173,   174,   175,     0,   176,   177,     0,     0,     0,
     179,     0,     0,     0,     0,   180,     0,     0,     0,     0,
       0,     0,   181,   182,   183,     0,     0,   184,     0,     0,
       0,     0,   185,     0,     0,     0,     0,     0,   187,     0,
     188,     0,     0,     0,   189,     0,   190,   191,   192,   193,
       0,     0,     0,     0,     0,     0,   195,   196,   197,     0,
       0,     0,   198,     0,     0,   200,     0,   201,   202,   203,
       0,     0,   204,     0,   205,   206,   207,   208,   209,     0,
       0,     0,   211,   212,   213,     0,     0,   214,  3536,   215,
     216,   217,   218,     0,     0,     0,     0,     0,     0,   220,
     221,     0,   222,     0,   223,     0,   224,   225,   226,   227,
       0,   228,     0,     0,     0,     0,   230,     0,     0,     0,
       0,     0,   233,     0,     0,     0,   234,   235,   236,   237,
    3537,     0,   238,   239,     0,     0,   240,     0,     0,     0,
       0,   241,     0,     0,     0,     0,   243,     0,     0,   244,
     245,  3538,     0,     0,   246,     0,     0,     0,   248,     0,
       0,   249,  3539,     0,   250,   251,     0,     0,     0,     0,
       0,   252,   253,     0,   254,     0,   255,     0,   256,   257,
       0,     0,     0,     0,  -245,     0,     0,   258,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
       0,   271,   272,     0,   273,   274,   275,   276,     0,   277,
     278,   279,     0,     0,     0,   280,   281,   282,   283,   284,
       0,     0,   285,   286,     0,   287,     0,   288,     0,   289,
     290,   291,   292,   293,   294,   295,   296,     0,     0,   297,
     298,     0,     0,   299,   300,   301,   302,     0,     0,     0,
     303,     0,   305,     0,     0,     0,     0,   306,   307,   308,
       0,   309,   310,  3540,     0,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   314,   315,     0,     0,
     317,   318,   319,     0,   321,   322,   323,   324,   325,   326,
       0,     0,     0,     0,   329,   330,     0,   331,     0,   332,
     333,     0,   334,   335,   336,     0,     0,     0,     0,     0,
       0,   338,   339,   340,   341,   342,     0,     0,   343,   344,
     345,     0,   346,     0,     0,   348,     0,   350,  -245,     0,
     351,     0,     0,   353,     0,     0,   355,   356,  3541,   357,
       0,     0,     0,   359,   360,   361,   362,   363,   364,     0,
     366,     0,   367,     0,     0,     0,     0,   369,   370,   371,
       0,     0,     0,     0,   373,     0,     0,     0,   374,     0,
     376,     0,     0,   378,     0,     0,   381,     0,     0,     0,
       0,     0,     0,   382,   383,     0,   384,     0,     0,   385,
       0,     0,   386,     0,   388,     0,     0,     0,   390,     0,
     391,   392,   393,   394,   395,     0,     0,   396,   397,     0,
     398,   399,     0,     0,   400,   401,     0,     0,   402,   403,
       0,   404,   405,   406,   407,     0,     0,     0,     0,     0,
     408,   409,   410,     0,     0,     0,     0,   412,   413,   414,
       0,   415,   416,     0,   417,   418,     0,     0,     0,     0,
       0,   421,     0,     0,  3821,     0,     0,     0,   424,   425,
       0,     0,     0,     0,     0,     0,   426,     0,     0,   427,
       0,     0,     0,   428,   429,   430,   431,   432,     0,     0,
    -245,     0,   433,     0,     0,   435,     0,   437,     0,   134,
     438,   135,   136,   137,   138,   139,     0,     0,     0,     0,
       0,   140,     0,     0,     0,     0,   142,   143,   144,   145,
     146,   147,     0,     0,     0,     0,     0,     0,   150,     0,
       0,     0,   151,     0,     0,   152,   153,     0,   154,     0,
       0,     0,     0,     0,   157,     0,     0,   158,     0,   159,
       0,     0,     0,     0,   162,   163,     0,   165,   166,     0,
     167,   168,     0,     0,   170,     0,   172,   173,   174,   175,
       0,   176,   177,     0,     0,     0,   179,     0,     0,     0,
       0,   180,     0,     0,     0,     0,     0,     0,   181,   182,
     183,     0,     0,   184,     0,     0,     0,     0,   185,     0,
       0,     0,     0,     0,   187,     0,   188,     0,     0,     0,
     189,     0,   190,   191,   192,   193,     0,     0,     0,     0,
       0,     0,   195,   196,   197,     0,     0,     0,   198,     0,
       0,   200,     0,   201,   202,   203,     0,     0,   204,     0,
     205,   206,   207,   208,   209,     0,     0,     0,   211,   212,
     213,     0,     0,   214,     0,   215,   216,   217,   218,     0,
       0,     0,     0,     0,     0,   220,   221,     0,   222,     0,
     223,     0,   224,   225,   226,   227,     0,   228,     0,     0,
       0,     0,   230,     0,     0,     0,     0,     0,   233,     0,
       0,     0,   234,   235,   236,   237,     0,     0,   238,   239,
       0,     0,   240,     0,     0,     0,     0,   241,     0,     0,
       0,     0,   243,     0,     0,   244,   245,     0,     0,     0,
     246,     0,     0,     0,   248,     0,     0,   249,     0,     0,
     250,   251,     0,     0,     0,     0,     0,   252,   253,     0,
     254,     0,   255,     0,   256,   257,     0,     0,     0,     0,
       0,     0,     0,   258,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,     0,   271,   272,     0,
     273,   274,   275,   276,     0,   277,   278,   279,     0,     0,
       0,   280,   281,   282,   283,   284,     0,     0,   285,   286,
       0,   287,     0,   288,     0,   289,   290,   291,   292,   293,
     294,   295,   296,     0,     0,   297,   298,     0,     0,   299,
     300,   301,   302,     0,     0,     0,   303,     0,   305,     0,
       0,     0,     0,   306,   307,   308,     0,   309,   310,     0,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   314,   315,     0,     0,   317,   318,   319,     0,
     321,   322,   323,   324,   325,   326,     0,     0,     0,     0,
     329,   330,     0,   331,     0,   332,   333,     0,   334,   335,
     336,     0,     0,     0,     0,     0,     0,   338,   339,   340,
     341,   342,     0,     0,   343,   344,   345,     0,   346,     0,
       0,   348,     0,   350,     0,     0,   351,     0,     0,   353,
       0,     0,   355,   356,     0,   357,     0,     0,     0,   359,
     360,   361,   362,   363,   364,     0,   366,     0,   367,     0,
       0,     0,     0,   369,   370,   371,     0,     0,     0,     0,
     373,     0,     0,     0,   374,     0,   376,     0,     0,   378,
       0,     0,   381,     0,     0,     0,     0,     0,     0,   382,
     383,     0,   384,     0,     0,   385,     0,     0,   386,     0,
     388,     0,     0,     0,   390,     0,   391,   392,   393,   394,
     395,     0,     0,   396,   397,     0,   398,   399,     0,     0,
     400,   401,     0,     0,   402,   403,     0,   404,   405,   406,
     407,     0,     0,     0,     0,     0,   408,   409,   410,     0,
       0,     0,     0,   412,   413,   414,     0,   415,   416,     0,
     417,   418,     0,     0,     0,     0,     0,   421,     0,     0,
     422,     0,     0,     0,   424,   425,     0,     0,     0,     0,
       0,     0,   426,     0,     0,   427,     0,     0,     0,   428,
     429,   430,   431,   432,     0,     0,     0,     0,   433,     0,
       0,   435,     0,   437,     0,     0,   438
};

static const yytype_int16 yycheck[] =
{
       7,    23,   519,   540,   786,   825,   121,   907,   682,   519,
    1136,   583,   941,    20,   580,  1353,    23,  1561,    21,  1621,
    1136,   677,   678,  1106,   614,    32,   117,    30,  1076,   120,
    1422,   996,   553,    36,  1276,    42,   662,  2228,     5,   852,
     968,   969,  2151,   971,   872,  1905,    53,   713,  2085,  2115,
    1754,   617,  1921,  2539,  1754,   850,  2491,  1926,   714,   872,
    2108,  2109,  2110,   737,  1435,  2132,   740,  1156,  2806,  1325,
    2924,    93,  2890,  2140,  1163,  2142,  1056,  1057,   873,   735,
    2818,  1164,  2338,  2326,  1167,  2328,    93,  2139,  1075,  1862,
    1348,   747,   748,   749,   911,   616,  1756,  1077,  2223,  2119,
    2120,  1152,   526,  1700,  2204,  1085,   911,  1074,   115,  2670,
     117,   133,    18,   120,   121,   122,  1096,  1097,  1098,  1757,
    1723,  1724,  1089,  1761,  1288,  1105,   133,  1174,  1175,  1293,
     756,   757,   758,   596,  1772,    24,    16,  1301,  1302,  2316,
      16,    16,    33,  2209,  1782,    18,    30,    19,  2368,  1331,
     776,  2316,  2372,  3148,    16,    20,  1759,  1760,    69,  1762,
      60,    24,  1765,  1766,    49,  1745,  1769,  2233,  2234,    18,
    2896,  1774,  1865,  2197,   109,  1778,  1779,  1780,  1781,    24,
    2204,    18,  1785,  2207,  1787,    10,    57,  2211,  3545,  1867,
    1793,    56,    57,  1796,  1797,    29,    31,  1752,   770,  1754,
      70,  2225,  2226,   138,    20,  2957,  2958,  1620,   125,  2961,
     132,  2235,    60,    55,    95,    56,    57,    33,  3043,   113,
     113,  3046,   874,  1615,    69,    24,   168,  1647,  2980,  3145,
      46,    35,   138,   132,  2986,    93,   142,   132,    20,  2099,
      56,    57,   114,  1823,   170,   155,    20,    64,  1828,    61,
     109,    33,   109,  1714,  1834,  1835,   912,    59,  1838,    33,
    3156,   203,   138,   275,    46,    35,    87,   219,    73,   142,
       9,    10,    46,   140,    56,    57,   155,   140,  3096,   138,
    1618,   109,    56,    57,    18,    77,   807,    59,   138,   144,
    1072,  1846,    33,   142,   127,   140,    35,  2351,  2352,  2353,
     173,  2138,   657,   242,    40,   142,    53,  2162,   335,    59,
     138,   156,    64,   155,   460,   226,   194,   159,   212,   208,
     332,   330,   222,   148,   111,   206,   106,   173,   170,   273,
      49,   385,    22,  2184,   173,  3504,  2575,  2576,   489,   454,
    1122,   208,    12,   203,  1126,   208,   173,   324,    41,   138,
     323,  2124,  3154,   203,   240,    19,  2200,    12,   443,    33,
    2304,   380,  2797,   208,  2478,   110,   392,   585,   934,   138,
     219,   533,   256,   488,   222,   170,   510,   216,    92,   219,
     399,   533,    33,    57,   219,   165,   489,   191,   812,   128,
     279,  2191,   553,   611,   123,  3197,   236,   169,    19,   533,
    3316,  2003,  2095,   993,   239,   192,    57,   466,   257,   208,
     429,    67,   574,  1313,   575,  2330,   279,   502,   318,   169,
     393,   191,    96,   575,    96,    99,   219,    99,   579,  3181,
      92,   375,   592,   107,   279,   461,  1002,   130,  3190,  2493,
    2494,  2495,  2681,  2682,  2558,   287,   219,   454,   594,   456,
     114,   240,   122,  3271,   249,   341,  3281,   324,  2484,   149,
    1425,   324,   516,  3632,   471,   306,   376,   122,   475,   326,
     257,   240,   317,   218,   254,  2523,   567,   484,   417,   324,
     279,   488,   541,   490,   319,   320,  1281,  2191,    24,  1284,
     142,  2191,  2592,   114,  2546,  1290,   503,   376,   613,   443,
     168,  2610,   341,   237,   967,  1588,  2554,  1590,  1303,  1304,
    1593,  2688,  1325,  2613,  1331,   356,   400,   608,   609,   526,
     527,   612,   407,  2688,   615,   324,  1331,  2688,    62,  3255,
    1694,   380,   273,    69,   376,   203,   891,   544,   239,   411,
    1166,   401,  1800,   460,   566,   370,   553,   327,   555,   126,
    1598,   401,  1600,   580,   389,  1181,    69,    49,  2161,   566,
     567,   573,   462,  3678,   571,  2145,   575,  2340,  2592,   546,
     577,   300,   579,   580,   474,  1562,   323,   584,   585,  2182,
    2183,  1207,   589,   375,  1564,  1402,   388,  1159,   466,  2613,
     532,   598,    92,   426,   415,   602,   368,  1402,  1585,   510,
     607,   608,   609,   470,   611,   612,   613,   470,   615,   616,
     617,  3507,  2316,   448,  3100,  2218,  2316,   422,   368,  1043,
     156,   531,   533,   575,  3350,   470,   474,  2230,   550,  2184,
    2210,   443,  2212,   527,   527,   460,  2191,   311,   500,  2219,
    3635,    44,   553,   513,  2337,   652,   581,  1299,   574,   466,
    1216,   550,  2232,  2066,   519,   550,   138,   557,  2238,  4016,
     533,  2339,  1844,   500,    69,   575,   500,  1233,   552,   540,
    2131,   470,   208,  3234,  2254,   581,   593,   553,   559,   546,
     505,  2101,   573,   546,   564,   489,   575,   545,   407,   564,
     575,  3607,   547,   193,   566,   208,   575,  2300,  2301,  2302,
    2303,   546,   575,   519,  3529,   581,  3531,   556,   575,    12,
    2547,  2548,   575,  3567,   466,    11,   372,  2572,  3572,   489,
     545,  2941,   581,   459,  2497,  2498,  2577,   543,   574,   564,
     575,   581,   512,   575,   106,   140,   851,   519,   579,  2683,
     573,   480,   478,   279,   577,   519,  2590,   546,   575,  2304,
     522,  2143,  3478,   581,   761,  2975,   763,   573,   240,   498,
     499,  2316,   551,  2983,  1285,   539,   540,   441,   507,   505,
    2990,   564,   522,   933,  3013,   106,  3528,   106,  3530,  2579,
    2828,   317,   551,   435,  2838,   188,   808,  1752,   324,   528,
     411,   564,   581,   165,  2831,    86,    92,   138,  2713,   806,
     807,   808,  1265,   208,   317,   812,  2931,  2907,  2834,  2595,
    1234,   324,   581,  2880,   110,    31,   976,  2884,  2866,   122,
     482,   493,   496,   485,   496,  1335,   482,   283,  2880,    11,
     107,   323,  2884,   800,   165,   155,   165,  3014,  3953,   568,
     569,   570,     8,  1772,   851,   150,   380,   347,   504,  3014,
     551,   525,   819,  3014,   128,     6,   356,   434,  3584,   341,
     191,   111,   362,   289,   532,   176,  1949,    65,   530,   426,
      30,    24,    65,   386,   841,  2579,  1442,  2119,  2120,  2579,
     176,  1846,   254,  2907,  3140,  1932,  1933,   354,    68,   192,
     273,  1719,  3644,    92,  3646,  1690,    41,    75,  1693,   240,
     907,  1696,  1697,    54,    59,   240,  1719,   203,   206,   142,
    1431,    71,   317,    68,   206,   407,   224,   939,   209,   324,
     203,   210,   310,   254,    79,   254,   135,   934,   110,   219,
     219,   938,   939,   224,   470,   227,   145,   170,   331,  2028,
     217,  2538,   434,  2716,   235,  3152,   446,   355,  1928,   148,
    2342,   158,   173,   146,   250,   327,   978,   470,   980,  2085,
    3698,  2125,  1942,   356,  1388,  3783,  1592,   257,  2019,  2085,
     992,   978,   554,   980,   257,   126,   136,   176,  3832,   181,
    3706,   386,  2842,  1950,  2688,   992,  3023,   395,  2688,   169,
    2650,   403,    59,  1973,   409,  1002,   327,   163,   327,  2257,
     341,    68,    25,   219,   517,  2607,   341,   257,  3251,  3029,
     546,   359,    79,  2651,   169,  2141,   573,   420,   309,   251,
     175,   421,  2577,   239,  2579,  2141,   206,  1844,   275,  2825,
     530,   188,  1039,   546,  1041,  1150,  1043,  3538,  3539,  1844,
    2027,   332,    65,   174,   246,    50,    69,   227,  2035,   224,
     208,   206,   310,   310,    59,   208,   376,   346,    92,   370,
     235,   487,  3318,   482,  2044,   470,   485,  1074,    86,   551,
     227,   345,   227,   305,   370,   456,  3124,  1044,  2680,   257,
    3132,  3133,  1089,   163,  2687,   332,   109,  3573,   514,   110,
     380,  1206,  3946,   376,   475,   316,   489,  2893,   580,   581,
     408,   489,   169,   426,    12,   382,   573,  1222,   175,  1630,
    1631,  2237,   517,    12,   148,  2043,  2889,   573,   338,   326,
     310,  2237,   413,    12,  2910,  2053,   279,   515,  2683,  1136,
     339,   436,   176,  2688,  2390,    13,   432,    92,   161,   206,
     512,   546,   176,  1150,   342,   426,  3353,  3354,  1658,   342,
     230,   454,   455,   456,   457,   458,   459,    12,   573,   106,
     227,   343,  1752,   575,   309,   443,   324,   575,   471,   320,
     575,   370,   206,   389,   485,  1266,  1267,  1268,  3047,  1270,
     471,   512,  3669,   512,  2786,   573,   521,   483,   368,   485,
    2792,   209,  1283,  1215,  2796,   472,   426,   218,  1289,  1206,
     355,   485,   435,  1210,   227,   365,   224,    85,  1215,  1216,
     551,   531,   359,   368,   122,  1222,   250,   235,   165,  2184,
     175,   352,  1337,   122,   384,   181,  1233,  1234,   379,   431,
     381,   489,   489,   122,   466,   113,  3974,  1244,   413,   580,
     581,   246,    69,   323,   191,  1252,  2617,  1269,   126,  1271,
     573,   206,  3687,   138,   414,    55,  1846,   515,   515,  1266,
    1267,  1268,  1269,  1270,  1271,  3332,   556,   122,    95,  2198,
     148,  2200,   104,   151,  1296,  1282,  1283,   500,  1285,   488,
    3766,   246,  1289,     0,   162,   574,   485,   356,   254,  1296,
     246,   309,   573,  1260,   449,   250,   319,   320,    68,   489,
     507,   368,   173,   326,   182,   465,   505,   254,   365,   332,
    3014,   442,   470,   140,  3014,   573,   523,  1408,  1409,  1410,
     426,  1436,  3823,   426,  3811,   515,   370,   309,   206,  1351,
    1337,   365,   106,   106,   212,   109,   370,  2385,  2386,  2304,
     172,   441,   426,   573,  1351,   368,   545,  3833,  1355,   106,
     332,  2316,   575,  2479,    69,   155,  2022,  3422,  2447,   159,
     325,   327,   109,  2479,   142,    80,   198,   522,    86,   240,
     170,   249,   158,   426,   121,   184,  1343,   333,   116,   206,
     327,  1388,   449,   573,   350,  2468,   463,  1354,   546,   426,
     340,   165,   165,   343,   188,   413,   426,   434,   432,   169,
    1407,  1408,  1409,  1410,  3441,  2031,    86,   430,   165,  3278,
     109,   488,  1419,  3900,  1421,   224,   241,   191,   191,   244,
     489,   142,   121,  3910,  1431,   525,   199,  1449,  1450,  1436,
    1452,   537,   538,   227,   191,  1442,   206,  1444,  1049,  1050,
    1051,   485,  1449,  1450,     8,  1452,    86,   470,   184,   483,
    1061,   278,   486,   471,  3941,   522,   194,   227,   199,  3014,
     201,    69,   294,   563,  2444,    29,   173,   573,   295,   301,
     573,   505,    80,  3538,  3539,   431,   320,   432,    76,  1090,
     254,   254,  1093,   119,   319,   320,  1450,   287,  1452,   573,
     317,   209,    90,   371,   449,   573,   530,   254,   134,   522,
     537,   538,   580,  1114,  1115,   452,   224,  1118,   485,   117,
     388,   545,   219,   251,   229,   521,   394,   235,  4005,  4006,
     573,    72,   366,    74,   402,   148,  1137,  1138,   483,   209,
     485,   486,   341,   319,   320,   273,   573,   110,  3575,   416,
     326,   288,   374,   573,   224,  3147,   512,   577,   426,   573,
     210,   533,   377,   327,   327,   235,   580,  2597,   109,   219,
     109,   439,   440,  1570,  3623,   512,  3625,   522,   574,   209,
     327,    56,    57,   465,   500,   530,   376,   469,  2916,   130,
      65,   130,  2792,   298,   224,   355,  2796,   580,  2628,   288,
    1612,   309,   424,    16,  2184,   235,  2636,   540,   368,  2639,
     543,   479,   202,  3668,  3669,  1612,   922,   923,   323,   486,
    1632,  1633,  2577,   164,   332,   164,   184,  1639,  1640,  1641,
    3480,   229,  1629,  1630,  1631,  1632,  1633,   505,   485,   309,
     486,   369,  1639,  1640,  1641,   437,   438,   375,  2947,   566,
     567,  2950,  2951,   470,   206,   961,   574,   575,  3696,   527,
    1657,   529,  3718,   530,   261,   262,   483,   182,  2967,  1666,
    1627,  2590,   202,   378,   574,   575,   184,   405,   545,   309,
     335,  2491,   216,  1695,    45,  1639,  1640,  1641,  1028,   574,
     575,  1031,  2730,   173,  1034,  3750,   346,   173,  1695,   553,
     298,  1713,   332,   574,  1661,   413,   533,   534,  3763,   536,
    1707,   538,  2530,    15,    16,   443,  1713,  2217,   580,  2835,
    3775,   319,   320,   337,  2304,   323,   548,  2530,  2683,  2835,
    2768,   507,  2651,  2688,   574,   575,  2316,  3836,   466,   257,
     562,   460,  1847,   413,   573,  3127,   169,   523,   512,   512,
     521,   522,  2537,   524,   482,   460,  3811,   485,   574,   575,
       6,   276,   277,   471,   401,   512,   281,   282,  3823,  1726,
    1875,    11,  2888,   152,  1855,   332,   574,   575,  1735,  1736,
     378,   533,  2888,   413,  1741,  1742,  1743,  1744,   470,  1746,
    1747,   369,  3973,   390,   391,    56,    57,  3029,  1795,   416,
    3855,   471,   338,   142,   574,   575,  3861,   482,   349,   332,
    2926,  1808,   574,   575,   132,   133,  1921,   574,   575,   575,
    2926,  1926,   203,  1820,   163,   469,   470,  3155,   447,   473,
     474,   574,   575,   477,  2804,   479,   574,   575,   177,   574,
     575,   471,   574,   575,    18,  3900,   387,   186,  1860,   573,
    1847,   574,   575,   574,   575,  3910,   574,   575,  1855,   573,
     142,   143,   460,  1860,  1465,   560,  1863,  1824,  1825,   573,
    1827,   573,  1829,  1830,  1831,  1832,  1833,   573,  1875,  1836,
    1837,  3750,  3452,  3453,  3454,  3455,  3941,   573,  3943,  2807,
     573,   230,   231,   573,  3763,   177,  3951,  3952,   574,   575,
    3175,  3176,   574,   575,   186,   573,  3775,   574,   575,  2014,
     573,  1512,    86,  3188,   573,  1516,   573,    35,  3193,   258,
     574,   575,   574,   575,  1921,  3980,   574,   575,   573,  1926,
    1176,  1177,  1178,  1179,  1180,   573,  3991,   573,   220,  1540,
    1937,   574,   575,  3218,  1172,  1173,  3221,   574,   575,   231,
    4005,  4006,   573,  1950,   574,   575,   565,  2995,   574,   575,
     571,    35,   574,   575,   138,  2476,   574,   575,   142,   573,
    4025,  4026,   574,   575,   618,  4030,   258,   316,   573,  3095,
     573,    99,   574,   575,   573,  3578,  3855,  2797,   106,  3095,
     574,   575,  3861,   573,   168,   580,   170,  2577,   574,   575,
     574,   575,   574,   575,  2109,   573,  2111,  2112,   573,  2520,
     184,  1174,  1175,    18,   573,   189,   489,  2014,  1123,  1124,
    3927,  3928,  3359,  3360,   573,    99,   573,  3561,   367,   203,
     573,   313,   106,  2844,  2845,   209,  2724,  2725,  3366,  2051,
     158,   573,   216,  3033,  3034,  2150,  2151,   165,  2045,   573,
     224,   573,   573,   573,  2051,   251,   573,   573,    47,  3014,
     573,   235,   573,   573,   573,    47,   240,   573,   573,   573,
    2067,   573,   573,   191,  3943,   249,   573,   573,   573,   573,
     573,    86,  3951,  3952,   158,   573,   573,   573,  2085,   573,
     573,   165,   573,  2649,   573,   573,   573,   332,   421,   573,
    3018,   573,   573,  2683,   573,  2102,  2103,  3699,  2688,   573,
     573,  3980,  2109,   573,  2111,  2112,   573,   191,   573,  3689,
     573,   573,  3991,  2228,   573,   573,   573,   573,   521,   568,
     575,   147,   509,   138,   434,   309,   254,   142,   573,   240,
     170,   466,   273,   251,  2141,  2102,   482,   466,   139,    78,
     575,   334,   480,  2150,  2151,   574,  4025,  4026,   332,   109,
       6,  4030,   579,  3053,   573,   170,    94,   341,     4,   425,
     545,    53,   393,   152,    95,   200,   575,   575,   580,   184,
     254,   575,   140,   575,   189,    47,   553,   575,   579,   482,
     573,    65,   310,    12,   550,   489,   370,   122,   574,     9,
    2197,   574,   574,   321,   209,   574,  2199,  2204,   326,   327,
    2207,   216,   580,   573,  2211,  2208,  2213,   239,   567,   224,
     246,  2214,   354,   500,   575,   500,  2223,   575,  2225,  2226,
     235,  2228,   500,   575,  2246,   240,   310,   575,  2235,   413,
    2237,   575,  2858,  2236,   249,   219,   568,   170,  2241,  2246,
     526,   575,   326,   327,  2247,  2248,   445,   357,  2215,  2216,
     434,   332,   573,   575,  2261,  2262,   574,   259,   260,   261,
     262,   263,   264,   142,   266,   267,   268,   269,   270,   271,
     272,   142,   274,  2240,   142,  3878,   142,   142,  3881,  3882,
    3883,  3884,   142,   142,   142,   142,   575,   471,   142,   142,
     142,   142,   142,   142,   309,   142,   528,   555,   532,    45,
     176,   332,   575,  2325,   173,   380,   575,   551,    18,   574,
     574,   574,   574,   574,   574,   574,   568,   332,  2325,  2326,
     574,   574,  3925,  3926,   575,   574,   341,  3929,   575,   575,
    3933,   574,   574,   574,   173,   574,   574,   521,   575,   574,
     580,  2348,   575,  2350,  2351,  2352,  2353,   575,   532,   533,
     575,   574,   574,   573,   575,   370,   574,   574,  3938,   574,
     574,   489,   575,    25,    26,   493,   574,   551,   496,   553,
     574,   574,   574,   574,   574,   435,   574,   573,   575,   507,
     574,   207,   574,   574,   512,   575,   575,   515,   390,   391,
     574,   575,   575,   575,    56,    57,    58,   581,   413,   574,
     574,   574,   574,    65,   575,   489,   574,    69,   575,   493,
      25,    26,   496,   575,   574,    77,  3345,  3346,   575,   434,
     574,   574,   574,   507,  3014,   574,   573,   578,   512,   564,
     573,   515,   182,    95,   574,   580,  2458,   575,   566,   567,
     573,   573,   173,    58,   574,   443,   434,   109,   575,   575,
     112,  2458,   170,    45,    69,   460,   471,   460,   425,    68,
     460,   355,    77,   460,   460,   355,   355,   500,   118,  2476,
     225,   483,  2479,   225,   483,   118,    45,  3593,   140,   396,
      95,   355,   566,   567,  3384,   355,  2493,  2494,  2495,   353,
    3390,   250,   355,   355,   109,  2610,   533,   112,   580,  2506,
     249,   575,   580,   580,   574,  2512,   521,  2514,   136,   500,
     500,   492,   574,  2520,  3597,   500,   215,   574,   533,   574,
     574,   173,   173,   574,   173,   140,   574,   574,   580,   574,
     580,   580,   574,   574,  3044,   489,   551,   575,   553,  2506,
    3468,   500,   476,   573,   206,   338,   173,   173,   173,   216,
     173,   213,   580,   221,   575,   580,   344,   291,   553,   574,
     575,   224,    95,   224,   226,    95,   581,   227,   227,   573,
     580,   500,   337,   184,   489,   332,   355,   341,   332,   573,
    2671,   574,   492,   217,   217,  2592,   568,   573,   575,   568,
    2597,   206,   575,   573,    45,   203,   574,   573,   213,   573,
     575,   574,   574,  2610,   574,   574,  2613,   246,   574,   580,
     574,   226,   574,   574,   556,   573,   278,   574,   574,   574,
     173,  2628,   574,   527,   575,   574,   574,   574,   574,  2636,
     575,   575,  2639,   295,   574,   219,   237,   574,   574,  2661,
      65,   261,  2649,   575,  2611,    12,    13,   574,   574,   574,
     580,  2658,  2619,   574,  2661,   574,   580,   575,  2665,   575,
     574,   574,   574,   278,  2671,   224,  3782,   575,  2675,   224,
     575,  2678,   575,   227,   332,   227,   575,    25,    26,  2686,
     295,   366,  3356,  3357,  3358,  2707,   348,   332,   332,    69,
      18,   573,   493,   422,   356,   332,    45,   240,   573,   129,
    2707,   574,   428,   327,   411,   327,   237,   574,    56,    57,
      58,   553,  2679,   574,   233,   297,   241,    65,    85,   574,
     426,    69,   184,   436,   142,   344,   574,   224,   573,    77,
     574,   574,  2847,   348,   574,    25,    26,   574,   573,   575,
    3396,   356,   573,   224,   574,  3645,   113,    95,  2863,   573,
     575,   109,  3680,   109,   573,   573,   418,   364,   573,   126,
     573,   109,   573,   573,   112,    73,    56,    57,    58,   443,
     125,   580,   574,   553,   574,    65,   574,    33,   574,    69,
     574,   148,   297,   575,   151,   229,   375,    77,   574,   574,
     574,  2798,   140,  3876,   216,   162,   574,   574,   574,   574,
     574,   322,   574,   418,   605,    95,   355,   574,   470,  3709,
    3710,   580,  3712,   575,    45,   182,  2823,   189,   297,   109,
     380,   483,   112,   489,   575,   489,   224,   327,  2835,  2836,
     533,  2838,   533,   573,   573,   573,   327,  3920,   573,   206,
    2847,   503,   327,   543,   527,   212,  2853,   543,   573,   109,
     140,   227,   227,   326,   574,   470,  2863,   327,   206,   521,
     327,   662,   327,   327,  2871,   213,   667,  3687,   483,   327,
    3526,   575,   447,    18,  3957,   489,   574,   489,   226,   573,
     227,  2888,   249,   489,   327,   297,   154,   574,   503,   573,
      67,   239,   573,    16,   574,  3795,   697,  3797,  3798,   574,
    2907,   533,   533,   216,   574,   574,   521,   321,  2915,   574,
    2917,   327,   713,   575,   464,  4041,   206,   538,   574,  2926,
     574,   574,   527,   213,  2931,  4041,   574,   574,  2935,   575,
     278,   338,  3047,   575,   574,   242,   226,   485,  4064,   574,
     262,   170,  4058,   573,   573,   137,   550,   295,  4064,   170,
     553,   351,   475,   370,    45,   756,   757,   758,   759,    45,
     573,  3889,   135,    45,   582,   388,   142,     5,   173,   550,
     125,   409,   574,   537,   574,   776,   574,    12,    13,   575,
      45,    45,    45,    45,    45,   573,   573,   136,   278,   216,
     581,    59,   338,    59,   574,  3110,   117,    16,   136,   578,
     348,   202,   492,   550,   371,   295,   108,   256,   356,   581,
     125,   582,   338,   338,   131,   573,   491,   573,   265,    51,
    3027,   388,   419,   574,   581,  3562,   417,   394,   118,   118,
     140,   142,   574,  3000,   575,   402,   136,   492,   575,   187,
    3047,   581,   136,   200,   573,    51,   574,   400,  3976,   575,
      85,   170,   170,    45,   170,   476,   574,   574,   348,   426,
     492,   109,   203,   552,   538,   327,   356,   573,   171,   434,
     418,  1839,   439,   440,  1879,  3082,  2181,  3011,   113,  3016,
    3195,  3427,  3564,  3770,  3437,   919,  3912,  3571,  3095,  3430,
    4046,   126,  3992,  3986,  3422,  3422,  3422,  3422,  3422,  3422,
    3422,  3422,  3422,  3110,  4007,  3422,  3678,  3852,  3742,  3852,
    3422,  3765,   479,   148,  1425,  3082,   151,  1346,   959,  3574,
    2239,  1348,   470,  2820,  2823,  3702,  3597,   162,   418,  3787,
    3473,  3920,  3957,  4024,  4043,   483,  3886,   464,   505,  1800,
    3349,   942,  3024,  2326,  2935,  3152,  2264,   182,  2202,  1808,
    2915,  2958,  2958,  2991,  1402,   503,  3382,  3206,  3161,  3126,
     527,  3160,   529,  3278,  3195,  2919,  2793,  2863,  2423,  2788,
    2796,   206,  3631,   521,  3642,  3374,  3514,   212,  1414,  3581,
     470,  3443,  1858,  3390,  2917,  2257,  1310,  1807,  3195,  1702,
    3165,  1398,  2080,   483,  1632,   939,  2458,  2048,   906,  2093,
     539,   837,  3475,  1646,  1169,  3082,  3321,  2807,  1171,  1086,
    3497,  1927,  2878,   503,   249,  3222,  3348,  3806,  2678,  3807,
    2036,  2926,  3229,  1061,  3342,   573,  3928,  3976,  3321,  3196,
    2098,   521,  1906,  2830,  3095,  1043,  2084,  2829,  2888,  4058,
    3782,  3248,   529,   980,  1045,  1046,   603,  1274,   519,  1419,
    2812,  3914,  3616,  1054,  1055,  1441,  4038,  1058,  1059,  1060,
    3955,  4064,  1239,  3716,  1065,  3197,  2835,  1068,  1069,  2522,
    1071,  3278,  1073,  2871,  3784,  2051,  1652,  3121,  3329,  1080,
    1081,  1082,   820,  1084,  1234,   511,  3450,  1407,  1036,  1242,
    1091,  1092,  2348,  1094,  1095,   512,    -1,  3456,    -1,  1100,
     824,  1102,  1103,  1104,    -1,  1106,  1107,  1108,  1109,  1110,
    1111,  1112,  1113,  1145,  3321,  1116,  1117,  3078,  1119,    -1,
    1121,    -1,    -1,    -1,  1125,  3842,  1127,  1128,    -1,  1252,
      -1,    -1,    -1,    -1,  3341,    -1,   371,    -1,  1139,  1140,
    1141,    -1,    -1,    -1,    -1,  1146,  3353,  3354,  1149,    -1,
      -1,  1152,    -1,   388,    -1,  1156,    -1,    -1,    -1,   394,
      -1,    -1,  1163,  1164,  3371,  1166,  1167,   402,  1169,  3886,
    1171,  1172,  1173,  1174,  1175,  1176,  1177,  1178,  1179,  1180,
    1181,  3953,    -1,   100,   101,   102,   103,   104,    -1,    -1,
      -1,   426,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   439,   440,  1207,    -1,    -1,    -1,
    3432,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3431,  3432,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3443,  4009,    -1,    -1,
      -1,    -1,    -1,    -1,   479,    -1,    -1,    -1,    -1,    -1,
      -1,  1252,    -1,    -1,    -1,   172,    -1,    -1,    -1,    -1,
    1261,    -1,    -1,  3470,  3471,    -1,  3433,    -1,    -1,    -1,
     505,    -1,    -1,    -1,  4046,    -1,    -1,    -1,   195,   196,
     197,   198,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   527,    -1,   529,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  4043,    -1,  3535,    -1,
      -1,    -1,    -1,  3540,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3571,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   290,  3596,   292,   293,   294,    -1,    -1,
      -1,    -1,    -1,    -1,   301,    -1,  3593,    -1,    -1,  3596,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3577,    -1,    -1,    -1,    -1,    -1,  3623,    -1,  3625,    -1,
    3627,     6,  1423,    -1,    -1,    -1,    -1,    -1,    13,    14,
      -1,    -1,    -1,    -1,    -1,    -1,  3643,    -1,    -1,    -1,
      25,    26,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3660,    -1,    -1,    -1,   374,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,
    1471,    -1,    -1,    58,    59,    -1,    -1,    -1,    63,    -1,
      -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    77,    -1,    -1,  3702,    -1,    -1,    83,    -1,
    3707,    -1,    -1,    -1,    -1,    -1,   423,   424,   493,    -1,
      95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3836,    -1,    -1,   109,    -1,    -1,   112,    -1,    -1,
      -1,    -1,    -1,    -1,   119,   120,    -1,    -1,    -1,    -1,
      -1,   126,    -1,    -1,    -1,    -1,  1547,  1548,  1549,   134,
      -1,    -1,    -1,   138,    -1,   140,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3782,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   168,  1585,    -1,    -1,  1588,    -1,  1590,
      -1,  1592,  1593,    -1,    -1,    -1,    -1,    -1,    -1,  3806,
    3807,    -1,    -1,    -1,    -1,    -1,  1607,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3930,    -1,    -1,    -1,   204,
     605,   206,    -1,    -1,    -1,  1626,    -1,    -1,   213,  3836,
      -1,   548,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   226,    -1,    -1,   561,   562,    -1,    -1,    -1,    -1,
    3857,    -1,    -1,  3860,    -1,    -1,    -1,    -1,  3973,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   667,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   278,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  4022,    -1,    -1,
     295,    -1,   697,    -1,   299,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3930,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3942,    -1,    -1,  3945,  4054,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   336,    -1,    -1,    -1,    -1,   341,  3924,    -1,    -1,
      -1,    -1,    -1,   348,    -1,    -1,  3973,    -1,    -1,    -1,
     355,   356,    -1,    -1,   759,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3961,  3962,    -1,    -1,   383,    -1,
      -1,    -1,  4009,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     395,   396,   397,   398,    -1,  4022,    -1,    -1,    -1,    -1,
      -1,  1822,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   418,  4041,    -1,    -1,    -1,    -1,  4046,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  4054,    -1,    -1,
      -1,  4058,    -1,    -1,    -1,    -1,    -1,  4064,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   470,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   483,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1907,    -1,    -1,    -1,
    1911,    -1,    -1,    -1,    -1,  1916,  1917,    -1,   503,    -1,
      -1,    -1,    -1,    -1,  1925,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   521,    -1,  1939,    -1,
    1941,    -1,    -1,  1944,  1945,  1946,    -1,    -1,  1949,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  1957,   942,    -1,    -1,
      -1,    -1,    -1,    -1,  1965,    -1,  1967,    -1,  1969,  1970,
      -1,  1972,    -1,    -1,    -1,    -1,  1977,  1978,  1979,    -1,
      -1,    -1,    -1,  1984,  1985,  1986,    -1,  1988,    -1,  1990,
      -1,  1992,    -1,  1994,    -1,  1996,   581,    -1,    -1,    -1,
    2001,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2015,    -1,    -1,    -1,  2019,    -1,
      -1,  2022,    -1,    -1,    -1,    -1,    -1,  2028,    -1,    -1,
    2031,    -1,    -1,    -1,  2035,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1045,  1046,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1054,
    1055,    -1,    -1,  1058,  1059,  1060,    -1,    -1,    -1,    -1,
    1065,    -1,    -1,  1068,  1069,    -1,  1071,    -1,  1073,    -1,
      -1,    -1,    -1,    -1,    -1,  1080,  1081,  1082,    -1,  1084,
      -1,    -1,    -1,    -1,    -1,    -1,  1091,  1092,    -1,  1094,
    1095,    -1,    -1,    -1,    -1,  1100,    -1,  1102,  1103,  1104,
      -1,    -1,  1107,  1108,  1109,  1110,  1111,  1112,  1113,    -1,
      -1,  1116,  1117,    -1,  1119,    -1,  1121,    -1,    -1,    -1,
    1125,    -1,  1127,  1128,    -1,    13,    14,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1139,  1140,  1141,    -1,    -1,    -1,
      28,  1146,    30,    -1,  1149,    -1,    34,    -1,    -1,    -1,
      -1,    -1,    -1,    23,    -1,    -1,    -1,    -1,    28,    47,
      48,    -1,    -1,    33,    34,    -1,    54,    -1,    -1,    -1,
      58,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    71,    -1,    -1,    56,    57,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    66,    85,    68,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    82,    -1,    84,    85,    -1,   105,    -1,    -1,
      -1,    -1,    -1,    93,    -1,   113,   114,   115,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   125,   126,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1252,    -1,    -1,
     138,    -1,    -1,    -1,    -1,    -1,  1261,    -1,    -1,    -1,
      -1,    -1,    -1,   151,    -1,    -1,    -1,    -1,    -1,   139,
     140,    -1,    -1,    -1,   144,    -1,    -1,   147,    -1,   167,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   182,    -1,    -1,    -1,    -1,   187,
      -1,    -1,   190,    -1,   174,    -1,   176,    -1,    -1,    -1,
      -1,   181,    -1,   183,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   212,    -1,   214,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2355,   205,   206,    -1,  2359,    -1,
     228,    -1,  2363,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   225,    -1,   245,    -1,    -1,
      -1,   249,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   246,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2405,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2414,    -1,  2416,    -1,  2418,    -1,    -1,
      -1,    -1,    -1,   273,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1423,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2447,    -1,    -1,    -1,
      -1,  2452,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   315,    -1,  2468,   336,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   335,  1471,   355,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   365,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   373,    -1,    -1,   358,    -1,
      -1,    -1,    -1,    -1,  2515,    -1,    -1,    -1,  2519,   369,
     370,    -1,    -1,    -1,    -1,   393,    -1,    -1,   396,    -1,
     398,    -1,    -1,   401,    -1,    -1,   404,    -1,   406,    -1,
      -1,    -1,    -1,    -1,   412,    -1,   414,    -1,    -1,    -1,
      -1,    -1,    -1,   421,    -1,    -1,    -1,    -1,   426,    -1,
    2561,    -1,  1547,  1548,  1549,    -1,   434,    -1,    -1,    -1,
      -1,   439,    -1,    -1,    -1,   443,    -1,    -1,    -1,    -1,
      -1,   431,    -1,    -1,    -1,    -1,  2587,    -1,    -1,    -1,
      -1,    -1,    -1,   443,    -1,    -1,    -1,   465,    -1,    -1,
    1585,   469,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   466,    -1,    -1,    -1,
     470,    -1,  1607,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   485,    -1,    -1,    -1,    -1,
     508,  1626,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   520,    -1,    -1,    -1,   524,    -1,    -1,   527,
      -1,    -1,    -1,    -1,   532,    -1,    -1,  2668,  2669,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    13,    14,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     558,   541,    -1,    -1,    -1,    -1,    28,   547,    -1,    -1,
      -1,    -1,    34,    -1,    -1,   573,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    47,    48,    -1,    -1,    -1,
      -1,    -1,    54,    -1,    -1,  2726,    58,    59,    -1,    -1,
      -1,    -1,  2733,    -1,    -1,    -1,    -1,    -1,    -1,    71,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    85,  2755,  2756,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  2765,    -1,    -1,    -1,    -1,  2770,
      -1,    -1,  2773,   105,  2775,  2776,    -1,    -1,    -1,    -1,
      -1,   113,   114,   115,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   125,   126,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   151,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2829,    -1,
      -1,    -1,    -1,    -1,    -1,   167,    -1,  1822,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     182,    -1,    -1,    -1,    -1,   187,    -1,  2858,   190,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  2872,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     212,    -1,   214,    -1,    -1,    -1,    -1,    -1,    -1,  2890,
      -1,    -1,    -1,    -1,    -1,    -1,   228,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   245,    -1,    -1,    -1,   249,    -1,    -1,
      -1,    -1,  1907,    -1,    -1,    -1,  1911,    -1,    -1,    -1,
      -1,  1916,  1917,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1925,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  1939,    -1,  1941,    -1,    -1,  1944,
    1945,  1946,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  1957,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    1965,    -1,  1967,    -1,  1969,  1970,    -1,  1972,    -1,    -1,
      -1,    -1,  1977,  1978,  1979,    -1,    -1,    -1,    -1,  1984,
    1985,  1986,    -1,  1988,   336,  1990,    -1,  1992,    -1,  1994,
      -1,  1996,    -1,    -1,    -1,    -1,  2001,    -1,    -1,    -1,
      -1,    -1,    -1,   355,    -1,    -1,    -1,    -1,    -1,    -1,
    2015,    -1,    -1,   365,    -1,    -1,    -1,    32,    33,    -1,
      -1,   373,    -1,    38,    -1,    40,    41,    42,    -1,    -1,
    2035,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   393,    57,    -1,   396,    -1,   398,    -1,    -1,   401,
      -1,    -1,   404,    -1,   406,    -1,    -1,    -1,    -1,    -1,
     412,    -1,   414,    -1,    -1,    -1,    -1,    -1,    -1,   421,
      -1,    -1,    -1,    -1,   426,  3096,    -1,    -1,    -1,    -1,
      -1,    96,   434,    -1,    99,    -1,    -1,   439,    -1,    -1,
      -1,   443,   107,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   124,
      -1,    -1,    -1,   465,    -1,  3136,  3137,   469,    -1,    -1,
      -1,    -1,    -1,    -1,  3145,    -1,   141,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   164,
      -1,   166,    -1,    -1,    -1,    -1,   508,    -1,    -1,    -1,
      -1,    -1,    -1,   178,   179,    -1,    -1,    -1,   520,    -1,
      -1,    -1,   524,    -1,    -1,   527,    -1,    -1,     6,    -1,
     532,    -1,    -1,    -1,    -1,    13,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    25,    26,    -1,
      -1,    -1,   217,    -1,    -1,    -1,   558,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   573,    -1,    -1,    -1,    -1,    54,    -1,   243,    -1,
      58,    -1,    -1,    -1,    -1,    -1,    -1,   252,   253,    -1,
     255,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,
    3271,    -1,    -1,    -1,    -1,    83,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3287,    95,    -1,   284,
     285,   286,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   109,    -1,    -1,   112,    -1,    -1,   302,   303,   304,
      -1,   119,    -1,   308,    -1,  3316,   311,    -1,   126,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   134,    -1,  3329,    -1,
      -1,    -1,   140,   328,   329,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     168,    -1,    -1,    -1,    -1,   360,   361,    -1,    -1,    -1,
    2355,    -1,    -1,    -1,  2359,    -1,    -1,    -1,  2363,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   382,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   206,    -1,
      -1,    -1,    -1,    -1,    -1,   213,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   226,    -1,
    2405,  3422,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2414,
      -1,  2416,    -1,  2418,    -1,   430,    -1,    -1,    -1,   434,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   444,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2452,    -1,    -1,
     278,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3479,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   295,  3489,    -1,
    3491,   299,    -1,    -1,    -1,   490,    -1,    -1,   493,    -1,
      -1,   496,   497,   498,   499,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    2515,  3532,    -1,   341,  2519,    -1,    -1,  3538,  3539,    -1,
     348,    -1,    -1,    -1,   539,   540,    -1,    -1,   356,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   562,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  2561,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   396,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3597,    -1,    -1,    -1,
      -1,    -1,  2587,    -1,    -1,    -1,  3607,    -1,    -1,    -1,
     418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3653,    -1,  3655,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   470,    -1,  3665,    -1,    -1,  3668,  3669,    -1,
      -1,    -1,    -1,    -1,    -1,   483,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  2668,  2669,    -1,    -1,    -1,    -1,  3690,
      -1,    -1,    -1,    -1,    -1,   503,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   521,    -1,    -1,    -1,    -1,  3719,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,  3747,    -1,  2733,  3750,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3763,  3764,    -1,    -1,    -1,    -1,    -1,    -1,
    2755,  2756,    -1,    -1,  3775,    -1,    -1,    -1,    -1,    -1,
    2765,    -1,  3783,    -1,    -1,  2770,    -1,    -1,  2773,    -1,
    2775,  2776,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3810,
    3811,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3823,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3855,    -1,    -1,    -1,    -1,    -1,
    3861,    -1,    -1,    -1,  3865,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3876,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2872,    -1,    -1,
      -1,    -1,  3893,    -1,    -1,    -1,    -1,    -1,    -1,  3900,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3910,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3920,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,  3934,    -1,    -1,    -1,    -1,    -1,    -1,
    3941,    -1,  3943,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3951,  3952,    -1,    -1,    -1,    -1,  3957,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3980,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3991,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  4005,  4006,    -1,    -1,    -1,  4010,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  4025,  4026,    -1,    -1,    -1,  4030,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3136,  3137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3287,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,  3316,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3329,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3479,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3489,    -1,  3491,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3532,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3607,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3653,    -1,
    3655,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
    3665,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,  3719,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,  3747,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3764,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,  3810,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
    3865,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    33,    34,    35,    36,    37,    38,    39,    -1,
      41,    42,    43,    44,    -1,    46,    47,    -1,  3893,    50,
      51,    52,    53,    -1,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    64,    -1,    66,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    -1,    80,
      -1,    82,    83,    84,    -1,    -1,    87,    88,    89,  3934,
      91,    92,    -1,    94,    95,    96,    97,    98,    99,    -1,
      -1,    -1,    -1,   104,   105,   106,    -1,    -1,   109,   110,
      -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
     121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,
      -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,
     141,    -1,    -1,   144,    -1,   146,   147,   148,   149,   150,
     151,   152,    -1,   154,   155,   156,   157,   158,   159,    -1,
     161,   162,   163,   164,   165,  4010,   167,    -1,    -1,    -1,
     171,   172,    -1,   174,    -1,   176,    -1,   178,   179,   180,
     181,    -1,   183,    -1,   185,    -1,   187,   188,    -1,   190,
     191,    -1,   193,   194,    -1,    -1,    -1,   198,   199,   200,
     201,   202,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,
      -1,   212,   213,   214,   215,    -1,    -1,   218,    -1,    -1,
     221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,   230,
      -1,   232,   233,    -1,   235,   236,   237,    -1,    -1,    -1,
      -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,
     251,    -1,    -1,   254,    -1,    -1,    -1,    -1,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,    -1,    -1,    -1,   287,   288,   289,   290,
     291,    -1,    -1,   294,   295,   296,   297,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,    -1,   310,
     311,   312,    -1,    -1,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   324,    -1,   326,   327,    -1,   329,   330,
     331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,   350,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,    -1,   365,   366,   367,    -1,   369,    -1,
     371,   372,    -1,   374,   375,   376,    -1,    -1,   379,    -1,
      -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,   390,
     391,   392,    -1,   394,   395,    -1,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,   406,    -1,   408,   409,    -1,
     411,    -1,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,   430,
     431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,
     441,   442,   443,    -1,   445,   446,   447,   448,    -1,    -1,
      -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,
     461,    -1,    -1,   464,   465,   466,   467,   468,   469,   470,
      -1,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,    -1,    -1,   486,   487,    -1,   489,   490,
     491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,
     501,   502,   503,   504,    -1,   506,   507,   508,   509,   510,
     511,   512,   513,   514,   515,   516,   517,    -1,   519,   520,
      -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,   530,
     531,    -1,    -1,   534,   535,   536,   537,   538,    -1,    -1,
     541,   542,    -1,   544,   545,   546,   547,   548,   549,    -1,
      -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,    -1,
      -1,   562,    -1,    -1,    -1,   566,   567,    -1,    -1,    -1,
      -1,   572,   573,    -1,    -1,   576,   577,    -1,   579,   580,
       5,    -1,     7,     8,     9,    10,    11,    12,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    33,    34,
      35,    36,    37,    38,    39,    -1,    41,    42,    -1,    44,
      -1,    46,    47,    -1,    -1,    50,    51,    52,    53,    -1,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      -1,    66,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    -1,    80,    -1,    82,    83,    84,
      -1,    -1,    87,    88,    89,    -1,    91,    92,    -1,    94,
      95,    96,    97,    98,    99,    -1,    -1,    -1,    -1,   104,
     105,   106,    -1,    -1,   109,   110,    -1,   112,    -1,    -1,
      -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,
     125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,
      -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,   144,
      -1,   146,   147,   148,   149,   150,   151,   152,    -1,   154,
     155,   156,   157,   158,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,    -1,    -1,    -1,   171,   172,    -1,   174,
      -1,   176,    -1,   178,   179,   180,   181,    -1,   183,    -1,
     185,    -1,   187,   188,    -1,   190,   191,    -1,   193,   194,
      -1,    -1,    -1,   198,   199,   200,   201,   202,    -1,   204,
     205,    -1,    -1,   208,    -1,    -1,    -1,   212,   213,   214,
     215,    -1,    -1,   218,    -1,    -1,   221,   222,    -1,    -1,
      -1,   226,    -1,    -1,   229,   230,    -1,    -1,   233,    -1,
     235,   236,   237,    -1,    -1,    -1,    -1,    -1,   243,   244,
      -1,   246,    -1,   248,    -1,   250,   251,    -1,    -1,   254,
      -1,    -1,    -1,    -1,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,    -1,
      -1,    -1,   287,   288,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,    -1,   310,   311,   312,    -1,    -1,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
      -1,   326,   327,    -1,   329,   330,   331,   332,   333,   334,
     335,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,   367,    -1,   369,    -1,   371,   372,    -1,   374,
     375,   376,    -1,    -1,   379,    -1,    -1,    -1,   383,   384,
     385,   386,   387,    -1,    -1,   390,   391,   392,    -1,   394,
     395,    -1,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,   406,    -1,   408,   409,    -1,   411,    -1,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,    -1,   424,
     425,    -1,    -1,    -1,   429,   430,   431,   432,    -1,    -1,
      -1,   436,    -1,    -1,    -1,   440,   441,   442,   443,    -1,
     445,   446,   447,   448,    -1,    -1,    -1,    -1,    -1,    -1,
     455,   456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,   486,   487,    -1,   489,   490,   491,    -1,   493,   494,
     495,   496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,
      -1,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,    -1,   519,   520,    -1,    -1,   523,    -1,
      -1,   526,    -1,   528,    -1,   530,   531,    -1,    -1,   534,
     535,   536,   537,   538,    -1,    -1,   541,   542,    -1,   544,
     545,   546,   547,   548,   549,    -1,    -1,    -1,    -1,   554,
     555,    -1,   557,   558,   559,    -1,    -1,   562,    -1,    -1,
      -1,   566,   567,    -1,    -1,    -1,    -1,   572,   573,    -1,
      -1,   576,   577,    -1,   579,   580,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    33,    34,    35,    36,    37,    38,
      39,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    83,    84,    -1,    -1,    87,    88,
      89,    -1,    91,    92,    -1,    94,    95,    96,    97,    98,
      99,    -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,
     109,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,   151,   152,    -1,   154,   155,   156,   157,   158,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,    -1,
      -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,
     179,   180,   181,    -1,   183,    -1,   185,    -1,   187,   188,
      -1,   190,   191,    -1,   193,   194,    -1,    -1,    -1,   198,
     199,   200,   201,   202,    -1,   204,   205,    -1,    -1,   208,
      -1,    -1,    -1,   212,   213,   214,   215,    -1,    -1,   218,
      -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,
     229,   230,    -1,    -1,   233,    -1,   235,   236,   237,    -1,
      -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,
      -1,   250,   251,    -1,    -1,   254,    -1,    -1,    -1,    -1,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,    -1,    -1,    -1,   287,   288,
     289,   290,   291,    -1,    -1,   294,   295,   296,   297,    -1,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
      -1,   310,   311,   312,    -1,    -1,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   324,    -1,   326,   327,    -1,
     329,   330,   331,    -1,   333,   334,   335,    -1,   337,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,   367,    -1,
     369,    -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,
     379,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
      -1,   390,   391,   392,    -1,   394,   395,    -1,   397,   398,
     399,   400,   401,   402,    -1,   404,   405,   406,    -1,   408,
     409,    -1,   411,    -1,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,    -1,   424,   425,   426,    -1,    -1,
     429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,
      -1,   440,   441,   442,   443,    -1,   445,   446,   447,   448,
      -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,
      -1,    -1,   461,    -1,    -1,   464,   465,   466,   467,   468,
     469,   470,    -1,   472,   473,   474,   475,   476,   477,   478,
     479,   480,   481,   482,   483,    -1,    -1,   486,   487,    -1,
     489,   490,   491,    -1,   493,   494,   495,   496,    -1,    -1,
      -1,    -1,    -1,   502,   503,   504,    -1,   506,   507,   508,
     509,   510,   511,   512,   513,   514,   515,   516,   517,    -1,
     519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,
      -1,   530,   531,    -1,    -1,   534,   535,   536,   537,   538,
      -1,    -1,   541,   542,    -1,   544,   545,   546,   547,   548,
     549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,
     559,    -1,    -1,   562,    -1,    -1,    -1,   566,   567,    -1,
      -1,    -1,    -1,   572,   573,    -1,    -1,   576,   577,    -1,
     579,   580,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      33,    34,    35,    36,    37,    38,    39,    -1,    41,    42,
      -1,    44,    -1,    46,    47,    -1,    -1,    50,    51,    52,
      53,    -1,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    -1,    80,    -1,    82,
      83,    84,    -1,    -1,    87,    88,    89,    -1,    91,    92,
      -1,    94,    95,    96,    97,    98,    99,    -1,    -1,    -1,
      -1,   104,   105,   106,    -1,    -1,   109,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,   136,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,   150,   151,   152,
      -1,   154,   155,   156,   157,   158,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,    -1,    -1,    -1,   171,   172,
      -1,   174,    -1,   176,    -1,   178,   179,   180,   181,    -1,
     183,    -1,   185,    -1,   187,   188,    -1,   190,   191,    -1,
     193,   194,    -1,    -1,    -1,   198,   199,   200,   201,   202,
      -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,   212,
     213,   214,   215,    -1,    -1,   218,    -1,    -1,   221,   222,
      -1,    -1,    -1,   226,    -1,    -1,   229,   230,    -1,    -1,
     233,    -1,   235,   236,   237,    -1,    -1,    -1,    -1,    -1,
     243,   244,    -1,   246,    -1,   248,    -1,   250,   251,    -1,
      -1,   254,    -1,    -1,    -1,    -1,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,    -1,    -1,    -1,   287,   288,   289,   290,   291,    -1,
      -1,   294,   295,   296,   297,    -1,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,    -1,   310,   311,   312,
      -1,    -1,   315,   316,   317,   318,   319,   320,   321,   322,
     323,   324,    -1,   326,   327,    -1,   329,   330,   331,    -1,
     333,   334,   335,    -1,   337,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   347,   348,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,   367,    -1,   369,    -1,   371,   372,
      -1,   374,   375,   376,    -1,    -1,   379,    -1,    -1,    -1,
     383,   384,   385,   386,   387,    -1,    -1,   390,   391,   392,
      -1,   394,   395,    -1,   397,   398,   399,   400,   401,   402,
      -1,   404,   405,   406,    -1,   408,   409,    -1,   411,    -1,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
      -1,   424,   425,    -1,    -1,    -1,   429,   430,   431,   432,
      -1,    -1,    -1,   436,    -1,    -1,    -1,   440,   441,   442,
     443,    -1,   445,   446,   447,   448,    -1,    -1,    -1,    -1,
      -1,    -1,   455,   456,    -1,   458,    -1,    -1,   461,    -1,
      -1,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
     483,    -1,    -1,   486,   487,    -1,   489,   490,   491,    -1,
     493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,   502,
     503,   504,    -1,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,    -1,   519,   520,    -1,    -1,
     523,    -1,    -1,   526,    -1,   528,    -1,   530,   531,    -1,
      -1,   534,   535,   536,   537,   538,    -1,    -1,   541,   542,
      -1,   544,   545,   546,   547,   548,   549,    -1,    -1,    -1,
      -1,   554,   555,    -1,   557,   558,   559,    -1,    -1,   562,
      -1,    -1,    -1,   566,   567,    -1,    -1,    -1,    -1,   572,
     573,   574,    -1,   576,   577,    -1,   579,   580,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,    -1,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    33,    34,    35,    36,
      37,    38,    39,    -1,    41,    42,    -1,    44,    -1,    46,
      47,    -1,    -1,    50,    51,    52,    53,    -1,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    -1,    66,
      67,    -1,    69,    70,    71,    72,    73,    74,    75,    -1,
      77,    78,    -1,    80,    -1,    82,    83,    84,    -1,    -1,
      87,    88,    89,    -1,    91,    92,    -1,    94,    95,    96,
      97,    98,    99,    -1,    -1,    -1,    -1,   104,   105,   106,
      -1,    -1,   109,   110,    -1,   112,    -1,    -1,    -1,   116,
      -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,
      -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,
     137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,
     147,   148,   149,   150,   151,   152,    -1,   154,   155,   156,
     157,   158,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,    -1,    -1,    -1,   171,   172,   173,   174,    -1,   176,
      -1,   178,   179,   180,   181,    -1,   183,    -1,   185,    -1,
     187,   188,    -1,   190,   191,    -1,   193,   194,    -1,    -1,
      -1,   198,   199,   200,   201,   202,    -1,   204,   205,    -1,
      -1,   208,    -1,    -1,    -1,   212,   213,   214,   215,    -1,
      -1,   218,    -1,    -1,   221,   222,    -1,    -1,    -1,   226,
      -1,    -1,   229,   230,    -1,    -1,   233,    -1,   235,   236,
     237,    -1,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,
      -1,   248,    -1,   250,   251,    -1,    -1,   254,    -1,    -1,
      -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,    -1,    -1,    -1,
     287,   288,   289,   290,   291,    -1,    -1,   294,   295,   296,
     297,    -1,   299,   300,   301,   302,   303,   304,   305,   306,
     307,   308,    -1,   310,   311,   312,    -1,    -1,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   324,    -1,   326,
     327,    -1,   329,   330,   331,    -1,   333,   334,   335,    -1,
     337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,    -1,   365,   366,
     367,    -1,   369,    -1,   371,   372,    -1,   374,   375,   376,
      -1,    -1,   379,    -1,    -1,    -1,   383,   384,   385,   386,
     387,    -1,    -1,   390,   391,   392,    -1,   394,   395,    -1,
     397,   398,   399,   400,   401,   402,    -1,   404,   405,   406,
      -1,   408,   409,    -1,   411,    -1,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,    -1,   424,   425,    -1,
      -1,    -1,   429,   430,   431,   432,    -1,    -1,    -1,   436,
      -1,    -1,    -1,   440,   441,   442,   443,    -1,   445,   446,
     447,   448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,
      -1,   458,    -1,    -1,   461,    -1,    -1,   464,   465,   466,
     467,   468,   469,   470,    -1,   472,   473,   474,   475,   476,
     477,   478,   479,   480,   481,   482,   483,    -1,    -1,   486,
     487,    -1,   489,   490,   491,    -1,   493,   494,   495,   496,
      -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,   506,
     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
     517,    -1,   519,   520,    -1,    -1,   523,    -1,    -1,   526,
      -1,   528,    -1,   530,   531,    -1,    -1,   534,   535,   536,
     537,   538,    -1,    -1,   541,   542,    -1,   544,   545,   546,
     547,   548,   549,    -1,    -1,    -1,    -1,   554,   555,    -1,
     557,   558,   559,    -1,    -1,   562,    -1,    -1,    -1,   566,
     567,    -1,    -1,    -1,    -1,   572,   573,    -1,    -1,   576,
     577,    -1,   579,   580,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
      -1,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    33,    34,    35,    36,    37,    38,    39,    -1,
      41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,
      51,    52,    53,    -1,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    64,    -1,    66,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    -1,    80,
      -1,    82,    83,    84,    -1,    -1,    87,    88,    89,    -1,
      91,    92,    -1,    94,    95,    96,    97,    98,    99,    -1,
      -1,    -1,    -1,   104,   105,   106,    -1,    -1,   109,   110,
      -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
     121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,
      -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,
     141,    -1,    -1,   144,    -1,   146,   147,   148,   149,   150,
     151,   152,    -1,   154,   155,   156,   157,   158,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,    -1,    -1,    -1,
     171,   172,   173,   174,    -1,   176,    -1,   178,   179,   180,
     181,    -1,   183,    -1,   185,    -1,   187,   188,    -1,   190,
     191,    -1,   193,   194,    -1,    -1,    -1,   198,   199,   200,
     201,   202,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,
      -1,   212,   213,   214,   215,    -1,    -1,   218,    -1,    -1,
     221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,   230,
      -1,    -1,   233,    -1,   235,   236,   237,    -1,    -1,    -1,
      -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,
     251,    -1,    -1,   254,    -1,    -1,    -1,    -1,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,    -1,    -1,    -1,   287,   288,   289,   290,
     291,    -1,    -1,   294,   295,   296,   297,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,    -1,   310,
     311,   312,    -1,    -1,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   324,    -1,   326,   327,    -1,   329,   330,
     331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,   350,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,    -1,   365,   366,   367,    -1,   369,    -1,
     371,   372,    -1,   374,   375,   376,    -1,    -1,   379,    -1,
      -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,   390,
     391,   392,    -1,   394,   395,    -1,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,   406,    -1,   408,   409,    -1,
     411,    -1,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,   430,
     431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,
     441,   442,   443,    -1,   445,   446,   447,   448,    -1,    -1,
      -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,
     461,    -1,    -1,   464,   465,   466,   467,   468,   469,   470,
      -1,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,    -1,    -1,   486,   487,    -1,   489,   490,
     491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,
      -1,   502,   503,   504,    -1,   506,   507,   508,   509,   510,
     511,   512,   513,   514,   515,   516,   517,    -1,   519,   520,
      -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,   530,
     531,    -1,    -1,   534,   535,   536,   537,   538,    -1,    -1,
     541,   542,    -1,   544,   545,   546,   547,   548,   549,    -1,
      -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,    -1,
      -1,   562,    -1,    -1,    -1,   566,   567,    -1,    -1,    -1,
      -1,   572,   573,    -1,    -1,   576,   577,    -1,   579,   580,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    33,    34,
      35,    36,    37,    38,    39,    -1,    41,    42,    -1,    44,
      -1,    46,    47,    -1,    -1,    50,    51,    52,    53,    -1,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      -1,    66,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    -1,    80,    -1,    82,    83,    84,
      -1,    -1,    87,    88,    89,    -1,    91,    92,    -1,    94,
      95,    96,    97,    98,    99,    -1,    -1,    -1,    -1,   104,
     105,   106,    -1,    -1,   109,   110,    -1,   112,    -1,    -1,
      -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,
     125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,
      -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,   144,
      -1,   146,   147,   148,   149,   150,   151,   152,    -1,   154,
     155,   156,   157,   158,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,    -1,    -1,    -1,   171,   172,   173,   174,
      -1,   176,    -1,   178,   179,   180,   181,    -1,   183,    -1,
     185,    -1,   187,   188,    -1,   190,   191,    -1,   193,   194,
      -1,    -1,    -1,   198,   199,   200,   201,   202,    -1,   204,
     205,    -1,    -1,   208,    -1,    -1,    -1,   212,   213,   214,
     215,    -1,    -1,   218,    -1,    -1,   221,   222,    -1,    -1,
      -1,   226,    -1,    -1,   229,   230,    -1,    -1,   233,    -1,
     235,   236,   237,    -1,    -1,    -1,    -1,    -1,   243,   244,
      -1,   246,    -1,   248,    -1,   250,   251,    -1,    -1,   254,
      -1,    -1,    -1,    -1,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,    -1,
      -1,    -1,   287,   288,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,    -1,   310,   311,   312,    -1,    -1,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
      -1,   326,   327,    -1,   329,   330,   331,    -1,   333,   334,
     335,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,   367,    -1,   369,    -1,   371,   372,    -1,   374,
     375,   376,    -1,    -1,   379,    -1,    -1,    -1,   383,   384,
     385,   386,   387,    -1,    -1,   390,   391,   392,    -1,   394,
     395,    -1,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,   406,    -1,   408,   409,    -1,   411,    -1,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,    -1,   424,
     425,    -1,    -1,    -1,   429,   430,   431,   432,    -1,    -1,
      -1,   436,    -1,    -1,    -1,   440,   441,   442,   443,    -1,
     445,   446,   447,   448,    -1,    -1,    -1,    -1,    -1,    -1,
     455,   456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,   486,   487,    -1,   489,   490,   491,    -1,   493,   494,
     495,   496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,
      -1,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,    -1,   519,   520,    -1,    -1,   523,    -1,
      -1,   526,    -1,   528,    -1,   530,   531,    -1,    -1,   534,
     535,   536,   537,   538,    -1,    -1,   541,   542,    -1,   544,
     545,   546,   547,   548,   549,    -1,    -1,    -1,    -1,   554,
     555,    -1,   557,   558,   559,    -1,    -1,   562,    -1,    -1,
      -1,   566,   567,    -1,    -1,    -1,    -1,   572,   573,    -1,
      -1,   576,   577,    -1,   579,   580,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    33,    34,    35,    36,    37,    38,
      39,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    83,    84,    -1,    -1,    87,    88,
      89,    -1,    91,    92,    -1,    94,    95,    96,    97,    98,
      99,    -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,
     109,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,   151,   152,    -1,   154,   155,   156,   157,   158,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,    -1,
      -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,
     179,   180,   181,    -1,   183,    -1,   185,    -1,   187,   188,
      -1,   190,   191,    -1,   193,   194,    -1,    -1,    -1,   198,
     199,   200,   201,   202,    -1,   204,   205,    -1,    -1,   208,
      -1,    -1,    -1,   212,   213,   214,   215,    -1,    -1,   218,
      -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,
     229,   230,    -1,    -1,   233,    -1,   235,   236,   237,    -1,
      -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,
      -1,   250,   251,    -1,    -1,   254,    -1,    -1,    -1,    -1,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,    -1,    -1,    -1,   287,   288,
     289,   290,   291,    -1,    -1,   294,   295,   296,   297,    -1,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
      -1,   310,   311,   312,    -1,    -1,   315,   316,   317,   318,
     319,   320,   321,   322,   323,   324,    -1,   326,   327,    -1,
     329,   330,   331,    -1,   333,   334,   335,    -1,   337,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,   367,    -1,
     369,    -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,
     379,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
      -1,   390,   391,   392,    -1,   394,   395,    -1,   397,   398,
     399,   400,   401,   402,    -1,   404,   405,   406,    -1,   408,
     409,    -1,   411,    -1,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,
     429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,
      -1,   440,   441,   442,   443,    -1,   445,   446,   447,   448,
      -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,
      -1,    -1,   461,    -1,    -1,   464,   465,   466,   467,   468,
     469,   470,    -1,   472,   473,   474,   475,   476,   477,   478,
     479,   480,   481,   482,   483,    -1,    -1,   486,   487,    -1,
     489,   490,   491,    -1,   493,   494,   495,   496,    -1,    -1,
      -1,    -1,    -1,   502,   503,   504,    -1,   506,   507,   508,
     509,   510,   511,   512,   513,   514,   515,   516,   517,    -1,
     519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,
      -1,   530,   531,    -1,    -1,   534,   535,   536,   537,   538,
      -1,    -1,   541,   542,    -1,   544,   545,   546,   547,   548,
     549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,
     559,    -1,    -1,   562,    -1,    -1,    -1,   566,   567,    -1,
      -1,    -1,    -1,   572,   573,    -1,    -1,   576,   577,    -1,
     579,   580,     5,    -1,     7,     8,     9,    10,    11,    12,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      33,    34,    35,    36,    37,    38,    39,    -1,    41,    42,
      -1,    44,    -1,    46,    47,    -1,    -1,    50,    51,    52,
      53,    -1,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    -1,    80,    -1,    82,
      83,    84,    -1,    -1,    87,    88,    89,    -1,    91,    92,
      -1,    94,    95,    96,    97,    98,    99,    -1,    -1,    -1,
      -1,   104,   105,   106,    -1,    -1,   109,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,   136,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,   150,   151,   152,
      -1,   154,   155,   156,   157,   158,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,    -1,    -1,    -1,   171,   172,
      -1,   174,    -1,   176,    -1,   178,   179,   180,   181,    -1,
     183,    -1,   185,    -1,   187,   188,    -1,   190,   191,    -1,
     193,   194,    -1,    -1,    -1,   198,   199,   200,   201,   202,
      -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,   212,
     213,   214,   215,    -1,    -1,   218,    -1,    -1,   221,   222,
      -1,    -1,    -1,   226,    -1,    -1,   229,   230,    -1,    -1,
     233,    -1,   235,   236,   237,    -1,    -1,    -1,    -1,    -1,
     243,   244,    -1,   246,    -1,   248,    -1,   250,   251,    -1,
      -1,   254,    -1,    -1,    -1,    -1,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,    -1,    -1,    -1,   287,   288,   289,   290,   291,    -1,
      -1,   294,   295,   296,   297,    -1,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,    -1,   310,   311,   312,
      -1,    -1,   315,   316,   317,   318,   319,    -1,   321,   322,
     323,   324,    -1,   326,   327,    -1,   329,   330,   331,    -1,
     333,   334,   335,    -1,   337,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   347,   348,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,   367,    -1,   369,    -1,   371,   372,
      -1,   374,   375,   376,    -1,    -1,   379,    -1,    -1,    -1,
     383,   384,   385,   386,   387,    -1,    -1,   390,   391,   392,
      -1,   394,   395,    -1,   397,   398,   399,   400,   401,   402,
      -1,   404,   405,   406,    -1,   408,   409,    -1,   411,    -1,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
      -1,   424,   425,    -1,    -1,    -1,   429,   430,   431,   432,
      -1,    -1,    -1,   436,    -1,    -1,    -1,   440,   441,   442,
     443,    -1,   445,   446,   447,   448,    -1,    -1,    -1,    -1,
      -1,    -1,   455,   456,    -1,   458,    -1,    -1,   461,    -1,
      -1,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
     483,    -1,    -1,   486,   487,    -1,   489,   490,   491,    -1,
     493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,   502,
     503,   504,    -1,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,    -1,   519,   520,    -1,    -1,
     523,    -1,    -1,   526,    -1,   528,    -1,   530,   531,    -1,
      -1,   534,   535,   536,   537,   538,    -1,    -1,   541,   542,
      -1,   544,   545,   546,   547,   548,   549,    -1,    -1,    -1,
      -1,   554,   555,    -1,   557,   558,   559,    -1,    -1,   562,
      -1,    -1,    -1,   566,   567,    -1,    -1,    -1,    -1,   572,
     573,    -1,    -1,   576,   577,    -1,   579,   580,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,    -1,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    33,    34,    35,    36,
      37,    38,    39,    -1,    41,    42,    -1,    44,    -1,    46,
      47,    -1,    -1,    50,    51,    52,    53,    -1,    55,    56,
      57,    58,    -1,    60,    61,    62,    63,    64,    -1,    66,
      67,    -1,    69,    70,    71,    72,    73,    74,    75,    -1,
      77,    78,    -1,    80,    -1,    82,    83,    84,    -1,    -1,
      87,    88,    89,    -1,    91,    92,    -1,    94,    95,    96,
      97,    98,    99,    -1,    -1,    -1,    -1,   104,   105,   106,
      -1,    -1,   109,   110,    -1,   112,    -1,    -1,    -1,   116,
      -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,
      -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,
     137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,
     147,   148,   149,   150,   151,   152,    -1,   154,   155,   156,
     157,   158,   159,    -1,   161,   162,   163,   164,   165,    -1,
     167,    -1,    -1,    -1,   171,   172,    -1,   174,    -1,   176,
      -1,   178,   179,   180,   181,    -1,   183,    -1,   185,    -1,
     187,   188,    -1,   190,   191,    -1,   193,   194,    -1,    -1,
      -1,   198,   199,   200,   201,   202,    -1,   204,   205,    -1,
      -1,   208,    -1,    -1,    -1,   212,   213,   214,   215,    -1,
      -1,   218,    -1,    -1,   221,   222,    -1,    -1,    -1,   226,
      -1,    -1,   229,   230,    -1,    -1,   233,    -1,   235,   236,
     237,    -1,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,
      -1,   248,    -1,   250,   251,    -1,    -1,   254,    -1,    -1,
      -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,   275,   276,
     277,   278,   279,   280,   281,   282,   283,    -1,    -1,    -1,
     287,   288,   289,   290,   291,    -1,    -1,   294,   295,   296,
     297,    -1,   299,   300,   301,   302,   303,   304,   305,   306,
     307,   308,    -1,   310,   311,   312,    -1,    -1,   315,   316,
     317,   318,   319,   320,   321,   322,   323,   324,    -1,   326,
     327,    -1,   329,   330,   331,    -1,   333,   334,   335,    -1,
     337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,   363,    -1,   365,   366,
     367,    -1,   369,    -1,   371,   372,    -1,   374,   375,   376,
      -1,    -1,   379,    -1,    -1,    -1,   383,   384,   385,   386,
     387,    -1,    -1,   390,   391,   392,    -1,   394,   395,    -1,
     397,   398,   399,   400,   401,   402,    -1,   404,   405,   406,
      -1,   408,   409,    -1,   411,    -1,   413,   414,   415,   416,
     417,   418,   419,   420,   421,   422,    -1,   424,   425,    -1,
      -1,    -1,   429,   430,   431,   432,    -1,    -1,    -1,   436,
      -1,    -1,    -1,   440,   441,   442,   443,    -1,   445,   446,
     447,   448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,
      -1,   458,    -1,    -1,   461,    -1,    -1,   464,   465,   466,
     467,   468,   469,   470,    -1,   472,   473,   474,   475,   476,
     477,   478,   479,   480,   481,   482,   483,    -1,    -1,   486,
     487,    -1,   489,   490,   491,    -1,   493,   494,   495,   496,
      -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,   506,
     507,   508,   509,   510,   511,   512,   513,   514,   515,   516,
     517,    -1,   519,   520,    -1,    -1,   523,    -1,    -1,   526,
      -1,   528,    -1,   530,   531,    -1,    -1,   534,   535,   536,
     537,   538,    -1,    -1,   541,   542,    -1,   544,   545,   546,
     547,   548,   549,    -1,    -1,    -1,    -1,   554,   555,    -1,
     557,   558,   559,    -1,    -1,   562,    -1,    -1,    -1,   566,
     567,    -1,    -1,    -1,    -1,   572,   573,    -1,    -1,   576,
     577,    -1,   579,   580,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
      -1,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    33,    34,    35,    36,    37,    38,    39,    -1,
      41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,
      51,    52,    53,    -1,    55,    56,    57,    58,    -1,    60,
      61,    62,    63,    64,    -1,    66,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    -1,    80,
      -1,    82,    83,    84,    -1,    -1,    87,    88,    89,    -1,
      91,    92,    -1,    94,    95,    96,    97,    98,    99,    -1,
      -1,    -1,    -1,   104,   105,   106,    -1,    -1,   109,   110,
      -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
     121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,
      -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,
     141,    -1,    -1,   144,    -1,   146,   147,   148,   149,   150,
     151,   152,    -1,   154,   155,   156,   157,   158,   159,    -1,
     161,   162,   163,   164,   165,    -1,   167,    -1,    -1,    -1,
     171,   172,    -1,   174,    -1,   176,    -1,   178,   179,   180,
     181,    -1,   183,    -1,   185,    -1,   187,   188,    -1,   190,
     191,    -1,   193,   194,    -1,    -1,    -1,   198,   199,   200,
     201,   202,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,
      -1,   212,   213,   214,   215,    -1,    -1,   218,    -1,    -1,
     221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,   230,
      -1,    -1,   233,    -1,   235,   236,   237,    -1,    -1,    -1,
      -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,
     251,    -1,    -1,   254,    -1,    -1,    -1,    -1,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,   275,   276,   277,   278,   279,   280,
     281,   282,   283,    -1,    -1,    -1,   287,   288,   289,   290,
     291,    -1,    -1,   294,   295,   296,   297,    -1,   299,   300,
     301,   302,   303,   304,   305,   306,   307,   308,    -1,   310,
     311,   312,    -1,    -1,   315,   316,   317,   318,   319,   320,
     321,   322,   323,   324,    -1,   326,   327,    -1,   329,   330,
     331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,   350,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,   363,    -1,   365,   366,   367,    -1,   369,    -1,
     371,   372,    -1,   374,   375,   376,    -1,    -1,   379,    -1,
      -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,   390,
     391,   392,    -1,   394,   395,    -1,   397,   398,   399,   400,
     401,   402,    -1,   404,   405,   406,    -1,   408,   409,    -1,
     411,    -1,   413,   414,   415,   416,   417,   418,   419,   420,
     421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,   430,
     431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,
     441,   442,   443,    -1,   445,   446,   447,   448,    -1,    -1,
      -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,
     461,    -1,    -1,   464,   465,   466,   467,   468,   469,   470,
      -1,   472,   473,   474,   475,   476,   477,   478,   479,   480,
     481,   482,   483,    -1,    -1,   486,   487,    -1,   489,   490,
     491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,
      -1,   502,   503,   504,    -1,   506,   507,   508,   509,   510,
     511,   512,   513,   514,   515,   516,   517,    -1,   519,   520,
      -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,   530,
     531,    -1,    -1,   534,   535,   536,   537,   538,    -1,    -1,
     541,   542,    -1,   544,   545,   546,   547,   548,   549,    -1,
      -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,    -1,
      -1,   562,    -1,    -1,    -1,   566,   567,    -1,    -1,    -1,
      -1,   572,   573,    -1,    -1,   576,   577,    -1,   579,   580,
       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,
      -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,
      25,    26,    27,    28,    -1,    30,    -1,    -1,    33,    34,
      35,    36,    37,    38,    39,    -1,    41,    42,    -1,    44,
      -1,    46,    47,    -1,    -1,    50,    51,    52,    53,    -1,
      55,    56,    57,    58,    -1,    60,    61,    62,    63,    64,
      -1,    66,    67,    -1,    69,    70,    71,    72,    73,    74,
      75,    -1,    77,    78,    -1,    80,    -1,    82,    83,    84,
      -1,    -1,    87,    88,    89,    -1,    91,    92,    -1,    94,
      95,    96,    97,    98,    99,    -1,    -1,    -1,    -1,   104,
     105,   106,    -1,    -1,   109,   110,    -1,   112,    -1,    -1,
      -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,
     125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,
      -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,   144,
      -1,   146,   147,   148,   149,   150,   151,   152,    -1,   154,
     155,   156,   157,   158,   159,    -1,   161,   162,   163,   164,
     165,    -1,   167,    -1,    -1,    -1,   171,   172,    -1,   174,
      -1,   176,    -1,   178,   179,   180,   181,    -1,   183,    -1,
     185,    -1,   187,   188,    -1,   190,   191,    -1,   193,   194,
      -1,    -1,    -1,   198,   199,   200,   201,   202,    -1,   204,
     205,    -1,    -1,   208,    -1,    -1,    -1,   212,   213,   214,
     215,    -1,    -1,   218,    -1,    -1,   221,   222,    -1,    -1,
      -1,   226,    -1,    -1,   229,   230,    -1,    -1,   233,    -1,
     235,   236,   237,    -1,    -1,    -1,    -1,    -1,   243,   244,
      -1,   246,    -1,   248,    -1,   250,   251,    -1,    -1,   254,
      -1,    -1,    -1,    -1,   259,   260,   261,   262,   263,   264,
     265,   266,   267,   268,   269,   270,   271,    -1,   273,   274,
     275,   276,   277,   278,   279,   280,   281,   282,   283,    -1,
      -1,    -1,   287,   288,   289,   290,   291,    -1,    -1,   294,
     295,   296,   297,    -1,   299,   300,   301,   302,   303,   304,
     305,   306,   307,   308,    -1,   310,   311,   312,    -1,    -1,
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
      -1,   326,   327,    -1,   329,   330,   331,    -1,   333,   334,
     335,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   347,   348,   349,   350,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   363,    -1,
     365,   366,   367,    -1,   369,    -1,   371,   372,    -1,   374,
     375,   376,    -1,    -1,   379,    -1,    -1,    -1,   383,   384,
     385,   386,   387,    -1,    -1,   390,   391,   392,    -1,   394,
     395,    -1,   397,   398,   399,   400,   401,   402,    -1,   404,
     405,   406,    -1,   408,   409,    -1,   411,    -1,   413,   414,
     415,   416,   417,   418,   419,   420,   421,   422,    -1,   424,
     425,    -1,    -1,    -1,   429,   430,   431,   432,    -1,    -1,
      -1,   436,    -1,    -1,    -1,   440,   441,   442,   443,    -1,
     445,   446,   447,   448,    -1,    -1,    -1,    -1,    -1,    -1,
     455,   456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,
     465,   466,   467,   468,   469,   470,    -1,   472,   473,   474,
     475,   476,   477,   478,   479,   480,   481,   482,   483,    -1,
      -1,   486,   487,    -1,   489,   490,   491,    -1,   493,   494,
     495,   496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,
      -1,   506,   507,   508,   509,   510,   511,   512,   513,   514,
     515,   516,   517,    -1,   519,   520,    -1,    -1,   523,    -1,
      -1,   526,    -1,   528,    -1,   530,   531,    -1,    -1,   534,
     535,   536,   537,   538,    -1,    -1,   541,   542,    -1,   544,
     545,   546,   547,   548,   549,    -1,    -1,    -1,    -1,   554,
     555,    -1,   557,   558,   559,    -1,    -1,   562,    -1,    -1,
      -1,   566,   567,    -1,    -1,    -1,    -1,   572,   573,    -1,
      -1,   576,   577,    -1,   579,   580,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    33,    34,    35,    36,    37,    38,
      39,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    51,    52,    53,    -1,    55,    56,    57,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    83,    84,    -1,    -1,    87,    88,
      89,    -1,    91,    92,    -1,    94,    95,    96,    97,    98,
      99,    -1,    -1,    -1,    -1,   104,   105,   106,    -1,    -1,
     109,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,   151,   152,    -1,   154,   155,   156,   157,   158,
     159,    -1,   161,   162,   163,   164,   165,    -1,   167,    -1,
      -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,
     179,   180,   181,    -1,   183,    -1,   185,    -1,   187,   188,
      -1,   190,   191,    -1,   193,   194,    -1,    -1,    -1,   198,
     199,   200,   201,   202,    -1,   204,   205,    -1,    -1,   208,
      -1,    -1,    -1,   212,   213,   214,   215,    -1,    -1,   218,
      -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,
     229,   230,    -1,    -1,   233,    -1,   235,   236,   237,    -1,
      -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,
      -1,   250,   251,    -1,    -1,   254,    -1,    -1,    -1,    -1,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,   275,   276,   277,   278,
     279,   280,   281,   282,   283,    -1,    -1,    -1,   287,   288,
     289,   290,   291,    -1,    -1,   294,   295,   296,   297,    -1,
     299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
      -1,   310,   311,   312,    -1,    -1,   315,   316,   317,   318,
     319,    -1,   321,   322,   323,   324,    -1,   326,   327,    -1,
     329,   330,   331,    -1,   333,   334,   335,    -1,   337,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,
     349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,   363,    -1,   365,   366,   367,    -1,
     369,    -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,
     379,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
      -1,   390,   391,   392,    -1,   394,   395,    -1,   397,   398,
     399,   400,   401,   402,    -1,   404,   405,   406,    -1,   408,
     409,    -1,   411,    -1,   413,   414,   415,   416,   417,   418,
     419,   420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,
     429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,
      -1,   440,   441,   442,   443,    -1,   445,   446,   447,   448,
      -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,
      -1,    -1,   461,    -1,    -1,   464,   465,   466,   467,   468,
     469,   470,    -1,   472,   473,   474,   475,   476,   477,   478,
     479,   480,   481,   482,   483,    -1,    -1,   486,   487,    -1,
     489,   490,   491,    -1,   493,   494,   495,   496,    -1,    -1,
      -1,    -1,    -1,   502,   503,   504,    -1,   506,   507,   508,
     509,   510,   511,   512,   513,   514,   515,   516,   517,    -1,
     519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,
      -1,   530,   531,    -1,    -1,   534,   535,   536,   537,   538,
      -1,    -1,   541,   542,    -1,   544,   545,   546,   547,   548,
     549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,
     559,    -1,    -1,   562,    -1,    -1,    -1,   566,   567,    -1,
      -1,    -1,    -1,   572,   573,    -1,    -1,   576,   577,    -1,
     579,   580,     5,    -1,     7,     8,     9,    10,    11,    -1,
      -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,
      23,    24,    25,    26,    27,    28,    -1,    30,    -1,    -1,
      33,    34,    35,    36,    37,    38,    39,    -1,    41,    42,
      -1,    44,    -1,    46,    47,    -1,    -1,    50,    51,    52,
      53,    -1,    55,    56,    57,    58,    -1,    60,    61,    62,
      63,    64,    -1,    66,    67,    -1,    69,    70,    71,    72,
      73,    74,    75,    -1,    77,    78,    -1,    80,    -1,    82,
      83,    84,    -1,    -1,    87,    88,    89,    -1,    91,    92,
      -1,    94,    95,    96,    97,    98,    99,    -1,    -1,    -1,
      -1,   104,   105,   106,    -1,    -1,   109,   110,    -1,   112,
      -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,
      -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,
      -1,   134,    -1,   136,   137,    -1,   139,   140,   141,    -1,
      -1,   144,    -1,   146,   147,   148,   149,   150,   151,   152,
      -1,   154,   155,   156,   157,   158,   159,    -1,   161,   162,
     163,   164,   165,    -1,   167,    -1,    -1,    -1,   171,   172,
      -1,   174,    -1,   176,    -1,   178,   179,   180,   181,    -1,
     183,    -1,   185,    -1,   187,   188,    -1,   190,   191,    -1,
     193,   194,    -1,    -1,    -1,   198,   199,   200,   201,   202,
      -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,   212,
     213,   214,   215,    -1,    -1,   218,    -1,    -1,   221,   222,
      -1,    -1,    -1,   226,    -1,    -1,   229,   230,    -1,    -1,
     233,    -1,   235,   236,   237,    -1,    -1,    -1,    -1,    -1,
     243,   244,    -1,   246,    -1,   248,    -1,   250,   251,    -1,
      -1,   254,    -1,    -1,    -1,    -1,   259,   260,   261,   262,
     263,   264,   265,   266,   267,   268,   269,   270,   271,    -1,
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
     283,    -1,    -1,    -1,   287,   288,   289,   290,   291,    -1,
      -1,   294,   295,   296,   297,    -1,   299,   300,   301,   302,
     303,   304,   305,   306,   307,   308,    -1,   310,   311,   312,
      -1,    -1,   315,   316,   317,   318,   319,    -1,   321,   322,
     323,   324,    -1,   326,   327,    -1,   329,   330,   331,    -1,
     333,   334,   335,    -1,   337,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   347,   348,   349,   350,   351,   352,
     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
     363,    -1,   365,   366,   367,    -1,   369,    -1,   371,   372,
      -1,   374,   375,   376,    -1,    -1,   379,    -1,    -1,    -1,
     383,   384,   385,   386,   387,    -1,    -1,   390,   391,   392,
      -1,   394,   395,    -1,   397,   398,   399,   400,   401,   402,
      -1,   404,   405,   406,    -1,   408,   409,    -1,   411,    -1,
     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
      -1,   424,   425,    -1,    -1,    -1,   429,   430,   431,   432,
      -1,    -1,    -1,   436,    -1,    -1,    -1,   440,   441,   442,
     443,    -1,   445,   446,   447,   448,    -1,    -1,    -1,    -1,
      -1,    -1,   455,   456,    -1,   458,    -1,    -1,   461,    -1,
      -1,   464,   465,   466,   467,   468,   469,   470,    -1,   472,
     473,   474,   475,   476,   477,   478,   479,   480,   481,   482,
     483,    -1,    -1,   486,   487,    -1,   489,   490,   491,    -1,
     493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,   502,
     503,   504,    -1,   506,   507,   508,   509,   510,   511,   512,
     513,   514,   515,   516,   517,    -1,   519,   520,    -1,    -1,
     523,    -1,    -1,   526,    -1,   528,    -1,   530,   531,    -1,
      -1,   534,   535,   536,   537,   538,    -1,    -1,   541,   542,
      -1,   544,   545,   546,   547,   548,   549,    -1,    -1,    -1,
      -1,   554,   555,    -1,   557,   558,   559,    -1,    -1,   562,
      -1,    -1,    -1,   566,   567,    -1,    -1,    -1,    -1,   572,
     573,    -1,    -1,   576,   577,    -1,   579,   580,     5,    -1,
       7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,
      17,    -1,    -1,    20,    -1,    22,    23,    24,    25,    26,
      27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,
      -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,
      47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,
      -1,    58,    -1,    60,    61,    62,    63,    64,    -1,    66,
      67,    -1,    69,    70,    71,    72,    73,    74,    75,    -1,
      77,    78,    79,    80,    -1,    82,    -1,    -1,    -1,    -1,
      87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,
      -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,
      -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,
      -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,
      -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,
     137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,
     147,   148,   149,   150,   151,    -1,    -1,   154,   155,   156,
      -1,    -1,   159,    -1,   161,   162,   163,   164,    -1,    -1,
     167,    -1,    -1,    -1,   171,   172,    -1,   174,   175,   176,
      -1,   178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,
     187,   188,    -1,   190,    -1,    -1,   193,   194,    -1,    -1,
      -1,   198,   199,   200,   201,    -1,    -1,   204,   205,   206,
      -1,   208,    -1,    -1,    -1,    -1,   213,   214,    -1,    -1,
      -1,   218,    -1,    -1,   221,   222,    -1,    -1,    -1,   226,
     227,    -1,   229,   230,    -1,    -1,   233,    -1,    -1,   236,
     237,    -1,   239,    -1,    -1,    -1,   243,   244,    -1,   246,
      -1,   248,    -1,   250,   251,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   259,   260,   261,   262,   263,   264,   265,   266,
     267,   268,   269,   270,   271,    -1,   273,   274,    -1,   276,
     277,   278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,
     287,   288,   289,   290,   291,    -1,    -1,   294,   295,    -1,
     297,    -1,   299,    -1,   301,   302,   303,   304,   305,   306,
     307,   308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,
     317,   318,    -1,    -1,    -1,   322,   323,   324,    -1,    -1,
      -1,    -1,   329,   330,   331,    -1,   333,   334,   335,    -1,
     337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     347,   348,   349,    -1,   351,   352,   353,   354,   355,   356,
     357,   358,   359,   360,   361,   362,    -1,    -1,   365,   366,
     367,    -1,   369,    -1,   371,   372,    -1,   374,   375,   376,
      -1,    -1,   379,    -1,    -1,    -1,   383,   384,   385,   386,
     387,    -1,    -1,   390,   391,   392,    -1,   394,   395,    -1,
     397,   398,   399,    -1,    -1,   402,    -1,   404,   405,   406,
      -1,   408,   409,    -1,   411,    -1,    -1,   414,   415,   416,
     417,   418,   419,   420,   421,   422,    -1,   424,   425,   426,
      -1,    -1,   429,   430,   431,   432,    -1,    -1,    -1,   436,
      -1,    -1,    -1,   440,   441,   442,   443,    -1,   445,   446,
     447,   448,   449,    -1,    -1,    -1,    -1,    -1,   455,   456,
      -1,   458,    -1,    -1,   461,    -1,    -1,   464,   465,   466,
      -1,    -1,   469,   470,    -1,   472,   473,   474,   475,   476,
      -1,    -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,
     487,    -1,    -1,   490,   491,    -1,   493,   494,   495,   496,
      -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,
      -1,   508,   509,   510,   511,    -1,   513,   514,    -1,   516,
     517,    -1,   519,   520,    -1,    -1,   523,    -1,    -1,   526,
      -1,   528,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,
      -1,   538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,
     547,   548,   549,    -1,    -1,    -1,    -1,   554,   555,    -1,
     557,   558,   559,    -1,    -1,   562,    -1,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,   580,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    79,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,   151,    -1,    -1,   154,   155,   156,    -1,
      -1,   159,    -1,   161,   162,   163,   164,    -1,    -1,   167,
      -1,    -1,    -1,   171,   172,    -1,   174,   175,   176,    -1,
     178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,
     188,    -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,
     198,   199,   200,   201,    -1,    -1,   204,   205,   206,    -1,
     208,    -1,    -1,    -1,    -1,   213,   214,    -1,    -1,    -1,
     218,    -1,    -1,   221,   222,    -1,    -1,    -1,   226,   227,
      -1,   229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,
      -1,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,
     248,    -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,   277,
     278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
     308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,
     318,    -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,
      -1,   329,   330,   331,    -1,   333,   334,   335,    -1,   337,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,    -1,    -1,   365,   366,   367,
      -1,   369,    -1,   371,   372,    -1,   374,   375,   376,    -1,
      -1,   379,    -1,    -1,    -1,   383,   384,   385,   386,   387,
      -1,    -1,   390,   391,   392,    -1,   394,   395,    -1,   397,
     398,   399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,
     408,   409,    -1,   411,    -1,    -1,   414,   415,   416,   417,
     418,   419,   420,   421,   422,    -1,   424,   425,    -1,    -1,
      -1,   429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,
      -1,    -1,   440,   441,   442,   443,    -1,   445,   446,   447,
     448,   449,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,
     458,    -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,
      -1,   469,   470,    -1,   472,   473,   474,   475,   476,    -1,
      -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,   487,
      -1,    -1,   490,   491,    -1,   493,   494,   495,   496,    -1,
      -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,
     508,   509,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,   519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,
     528,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
     538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,
     548,   549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,
     558,   559,    -1,    -1,   562,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,   580,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
      99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,
      -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,
     159,    -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,
      -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,
     179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,
      -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,
     199,   200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,
      -1,    -1,    -1,    -1,   213,   214,    -1,    -1,    -1,   218,
      -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,
     229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,    -1,
      -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,
      -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,    -1,   276,   277,   278,
     279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,
     289,   290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,
     299,    -1,   301,   302,   303,   304,   305,   306,   307,   308,
      -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,   318,
      -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,
     329,   330,   331,    -1,   333,   334,   335,    -1,   337,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,    -1,
     369,    -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,
     379,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
      -1,   390,   391,   392,    -1,   394,   395,    -1,   397,   398,
     399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,
     409,    -1,   411,    -1,    -1,   414,   415,   416,   417,   418,
     419,   420,   421,   422,    -1,   424,   425,   426,    -1,    -1,
     429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,
      -1,   440,   441,   442,   443,    -1,   445,   446,   447,   448,
      -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,
      -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,
     469,   470,    -1,   472,   473,   474,   475,   476,    -1,    -1,
     479,   480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,
      -1,   490,   491,    -1,   493,   494,   495,   496,    -1,    -1,
      -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,
     509,   510,   511,    -1,   513,   514,    -1,   516,   517,    -1,
     519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,
      -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,
      -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,
     549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,
     559,    -1,    -1,   562,    -1,     5,    -1,     7,     8,     9,
      10,    11,    -1,    -1,    -1,   574,    -1,    17,    -1,    -1,
      20,   580,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,   159,
      -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,    -1,
      -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,   179,
     180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,    -1,
     190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,   199,
     200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,    -1,
      -1,    -1,    -1,   213,   214,    -1,    -1,    -1,   218,    -1,
      -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,
     230,    -1,    -1,   233,    -1,    -1,   236,   237,    -1,    -1,
      -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,
     250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,   277,   278,   279,
      -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
      -1,   301,   302,   303,   304,   305,   306,   307,   308,    -1,
      -1,   311,   312,    -1,    -1,   315,   316,   317,   318,    -1,
      -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,   329,
     330,   331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,    -1,    -1,   365,   366,   367,    -1,   369,
      -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,   379,
      -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,
     390,   391,   392,    -1,   394,   395,    -1,   397,   398,   399,
      -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,   409,
      -1,   411,    -1,    -1,   414,   415,   416,   417,   418,   419,
     420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,
     430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,
     440,   441,   442,   443,    -1,   445,   446,   447,   448,    -1,
      -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,
      -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,   469,
     470,    -1,   472,   473,   474,   475,   476,    -1,    -1,   479,
     480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,    -1,
     490,   491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,
      -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,   509,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,   519,
     520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,
     530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,
      -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,   549,
      -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,
      -1,    -1,   562,    -1,    -1,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,   574,    -1,    -1,    -1,    17,   579,
     580,    20,    -1,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
      99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,
      -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,
     159,    -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,
      -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,
     179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,
      -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,
     199,   200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,
      -1,    -1,    -1,    -1,   213,   214,    -1,   216,    -1,   218,
      -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,
     229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,    -1,
      -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,
      -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,    -1,   276,   277,   278,
     279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,
     289,   290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,
     299,    -1,   301,   302,   303,   304,   305,   306,   307,   308,
      -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,   318,
      -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,
     329,   330,   331,    -1,   333,   334,   335,    -1,   337,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,    -1,
     369,    -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,
     379,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
      -1,   390,   391,   392,    -1,   394,   395,    -1,   397,   398,
     399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,
     409,    -1,   411,    -1,    -1,   414,   415,   416,   417,   418,
     419,   420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,
     429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,
      -1,   440,   441,   442,   443,    -1,   445,   446,   447,   448,
      -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,
      -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,
     469,   470,    -1,   472,   473,   474,   475,   476,    -1,    -1,
     479,   480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,
      -1,   490,   491,    -1,   493,   494,   495,   496,    -1,    -1,
      -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,
     509,   510,   511,    -1,   513,   514,    -1,   516,   517,    -1,
     519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,
      -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,
      -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,
     549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,
     559,    -1,    -1,   562,    -1,     5,    -1,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,   580,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,   159,
      -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,    -1,
      -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,   179,
     180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,    -1,
     190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,   199,
     200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,    -1,
      -1,    -1,    -1,   213,   214,    -1,    -1,    -1,   218,    -1,
      -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,
     230,    -1,    -1,   233,    -1,    -1,   236,   237,    -1,    -1,
      -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,
     250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,   277,   278,   279,
      -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
      -1,   301,   302,   303,   304,   305,   306,   307,   308,    -1,
      -1,   311,   312,    -1,    -1,   315,   316,   317,   318,    -1,
      -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,   329,
     330,   331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,    -1,    -1,   365,   366,   367,    -1,   369,
      -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,   379,
      -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,
     390,   391,   392,    -1,   394,   395,    -1,   397,   398,   399,
      -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,   409,
      -1,   411,    -1,    -1,   414,   415,   416,   417,   418,   419,
     420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,
     430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,
     440,   441,   442,   443,    -1,   445,   446,   447,   448,    -1,
      -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,
      -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,   469,
     470,    -1,   472,   473,   474,   475,   476,    -1,    -1,   479,
     480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,    -1,
     490,   491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,
      -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,   509,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,   519,
     520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,
     530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,
      -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,   549,
      -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,
      -1,    -1,   562,    -1,    -1,    -1,    -1,     5,   568,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
     580,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,   151,    -1,    -1,   154,   155,   156,    -1,
      -1,   159,    -1,   161,   162,   163,   164,    -1,    -1,   167,
      -1,    -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,
     178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,
     188,    -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,
     198,   199,   200,   201,    -1,    -1,   204,   205,    -1,    -1,
     208,    -1,    -1,    -1,    -1,   213,   214,    -1,    -1,    -1,
     218,    -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,
      -1,   229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,
      -1,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,
     248,    -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,   277,
     278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
     308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,
     318,    -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,
      -1,   329,   330,   331,    -1,   333,   334,   335,    -1,   337,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,    -1,    -1,   365,   366,   367,
      -1,   369,    -1,   371,   372,    -1,   374,   375,   376,    -1,
      -1,   379,    -1,    -1,    -1,   383,   384,   385,   386,   387,
      -1,    -1,   390,   391,   392,    -1,   394,   395,    -1,   397,
     398,   399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,
     408,   409,    -1,   411,    -1,    -1,   414,   415,   416,   417,
     418,   419,   420,   421,   422,    -1,   424,   425,    -1,    -1,
      -1,   429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,
      -1,    -1,   440,   441,   442,   443,    -1,   445,   446,   447,
     448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,
     458,    -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,
      -1,   469,   470,    -1,   472,   473,   474,   475,   476,    -1,
      -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,   487,
      -1,    -1,   490,   491,    -1,   493,   494,   495,   496,    -1,
      -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,
     508,   509,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,   519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,
     528,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
     538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,
     548,   549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,
     558,   559,    -1,    -1,   562,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,   573,    -1,    -1,    17,    -1,
      -1,    20,   580,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
      99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,
      -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,
     159,    -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,
      -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,
     179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,
      -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,
     199,   200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,
      -1,    -1,    -1,    -1,   213,   214,    -1,    -1,    -1,   218,
      -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,
     229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,    -1,
      -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,
      -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,    -1,   276,   277,   278,
     279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,
     289,   290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,
     299,    -1,   301,   302,   303,   304,   305,   306,   307,   308,
      -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,   318,
      -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,
     329,   330,   331,    -1,   333,   334,   335,    -1,   337,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,    -1,
     369,    -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,
     379,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
      -1,   390,   391,   392,    -1,   394,   395,    -1,   397,   398,
     399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,
     409,    -1,   411,    -1,    -1,   414,   415,   416,   417,   418,
     419,   420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,
     429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,
      -1,   440,   441,   442,   443,    -1,   445,   446,   447,   448,
      -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,
      -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,
     469,   470,    -1,   472,   473,   474,   475,   476,    -1,    -1,
     479,   480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,
      -1,   490,   491,    -1,   493,   494,   495,   496,    -1,    -1,
      -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,
     509,   510,   511,    -1,   513,   514,    -1,   516,   517,    -1,
     519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,
      -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,
      -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,
     549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,
     559,    -1,    -1,   562,    -1,    -1,    -1,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
     579,   580,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,   151,    -1,    -1,   154,   155,   156,    -1,
      -1,   159,    -1,   161,   162,   163,   164,    -1,    -1,   167,
      -1,    -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,
     178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,
     188,    -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,
     198,   199,   200,   201,    -1,    -1,   204,   205,    -1,    -1,
     208,    -1,    -1,    -1,    -1,   213,   214,    -1,    -1,    -1,
     218,    -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,
      -1,   229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,
      -1,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,
     248,    -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,   277,
     278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
     308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,
     318,    -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,
      -1,   329,   330,   331,    -1,   333,   334,   335,    -1,   337,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,    -1,    -1,   365,   366,   367,
      -1,   369,    -1,   371,   372,    -1,   374,   375,   376,    -1,
      -1,   379,    -1,    -1,    -1,   383,   384,   385,   386,   387,
      -1,    -1,   390,   391,   392,    -1,   394,   395,    -1,   397,
     398,   399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,
     408,   409,    -1,   411,    -1,    -1,   414,   415,   416,   417,
     418,   419,   420,   421,   422,    -1,   424,   425,    -1,    -1,
      -1,   429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,
      -1,    -1,   440,   441,   442,   443,    -1,   445,   446,   447,
     448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,
     458,    -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,
      -1,   469,   470,    -1,   472,   473,   474,   475,   476,    -1,
      -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,   487,
      -1,    -1,   490,   491,    -1,   493,   494,   495,   496,    -1,
      -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,
     508,   509,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,   519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,
     528,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
     538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,
     548,   549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,
     558,   559,    -1,    -1,   562,    -1,     5,    -1,     7,     8,
       9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,
      -1,    20,   580,    22,    23,    24,    25,    26,    27,    28,
      -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,
      -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,
      -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,
      -1,    60,    61,    62,    63,    64,    -1,    66,    67,    -1,
      69,    70,    71,    72,    73,    74,    75,    -1,    77,    78,
      -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,
      -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,
      99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,
      -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,
     119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,
     129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,
     139,   140,   141,    -1,    -1,   144,    -1,   146,   147,   148,
     149,   150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,
     159,    -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,
      -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,
     179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,
      -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,
     199,   200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,
      -1,    -1,    -1,    -1,   213,   214,    -1,    -1,    -1,   218,
      -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,
     229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,    -1,
      -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,
      -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
     269,   270,   271,    -1,   273,   274,    -1,   276,   277,   278,
     279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,
     289,   290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,
     299,    -1,   301,   302,   303,   304,   305,   306,   307,   308,
      -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,   318,
      -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,
     329,   330,   331,    -1,   333,   334,   335,    -1,   337,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,
     349,    -1,   351,   352,   353,   354,   355,   356,   357,   358,
     359,   360,   361,   362,    -1,    -1,   365,   366,   367,    -1,
     369,    -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,
     379,    -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,
      -1,   390,   391,   392,    -1,   394,   395,    -1,   397,   398,
     399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,
     409,    -1,   411,    -1,    -1,   414,   415,   416,   417,   418,
     419,   420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,
     429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,
      -1,   440,   441,   442,   443,    -1,   445,   446,   447,   448,
      -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,
      -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,
     469,   470,    -1,   472,   473,   474,   475,   476,    -1,    -1,
     479,   480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,
      -1,   490,   491,    -1,   493,   494,   495,   496,    -1,    -1,
      -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,
     509,   510,   511,    -1,   513,   514,    -1,   516,   517,    -1,
     519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,
      -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,
      -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,
     549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,
     559,    -1,    -1,   562,    -1,     5,    -1,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,   580,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,   159,
      -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,    -1,
      -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,   179,
     180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,    -1,
     190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,   199,
     200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,    -1,
      -1,    -1,    -1,   213,   214,    -1,    -1,    -1,   218,    -1,
      -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,
     230,    -1,    -1,   233,    -1,    -1,   236,   237,    -1,    -1,
      -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,
     250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,   277,   278,   279,
      -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
      -1,   301,   302,   303,   304,   305,   306,   307,   308,    -1,
      -1,   311,   312,    -1,    -1,   315,   316,   317,   318,    -1,
      -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,   329,
     330,   331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,    -1,    -1,   365,   366,   367,    -1,   369,
      -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,   379,
      -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,
     390,   391,   392,    -1,   394,   395,    -1,   397,   398,   399,
      -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,   409,
      -1,   411,    -1,    -1,   414,   415,   416,   417,   418,   419,
     420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,
     430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,
     440,   441,   442,   443,    -1,   445,   446,   447,   448,    -1,
      -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,
      -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,   469,
     470,    -1,   472,   473,   474,   475,   476,    -1,    -1,   479,
     480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,    -1,
     490,   491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,
      -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,   509,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,   519,
     520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,
     530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,
      -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,   549,
      -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,
      -1,    -1,   562,    -1,     5,    -1,     7,     8,     9,    10,
      11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,
     580,    22,    23,    24,    25,    26,    27,    28,    -1,    30,
      -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,
      41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,
      -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,
      61,    62,    63,    64,    -1,    66,    67,    -1,    69,    70,
      71,    72,    73,    74,    75,    -1,    77,    78,    -1,    80,
      -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
      -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,
      -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,
      -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,
     121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,
      -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,
     141,    -1,    -1,   144,    -1,   146,   147,   148,   149,   150,
     151,    -1,    -1,   154,   155,   156,    -1,    -1,   159,    -1,
     161,   162,   163,   164,    -1,    -1,   167,    -1,    -1,    -1,
     171,   172,    -1,   174,    -1,   176,    -1,   178,   179,   180,
     181,    -1,   183,    -1,    -1,    -1,   187,   188,    -1,   190,
      -1,    -1,   193,   194,    -1,    -1,    -1,   198,   199,   200,
     201,    -1,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,
      -1,    -1,   213,   214,    -1,    -1,    -1,   218,    -1,    -1,
     221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,   230,
      -1,    -1,   233,    -1,    -1,   236,   237,    -1,    -1,    -1,
      -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,
     251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,    -1,   273,   274,    -1,   276,   277,   278,   279,    -1,
     281,   282,   283,    -1,    -1,    -1,   287,   288,   289,   290,
     291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,    -1,
     301,   302,   303,   304,   305,   306,   307,   308,    -1,    -1,
     311,   312,    -1,    -1,   315,   316,   317,   318,    -1,    -1,
      -1,   322,   323,   324,    -1,    -1,    -1,    -1,   329,   330,
     331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,    -1,
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
     361,   362,    -1,    -1,   365,   366,   367,    -1,   369,    -1,
     371,   372,    -1,   374,   375,   376,    -1,    -1,   379,    -1,
      -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,   390,
     391,   392,    -1,   394,   395,    -1,   397,   398,   399,    -1,
      -1,   402,    -1,   404,   405,   406,    -1,   408,   409,    -1,
     411,    -1,    -1,   414,   415,   416,   417,   418,   419,   420,
     421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,   430,
     431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,
     441,   442,   443,    -1,   445,   446,   447,   448,    -1,    -1,
      -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,
     461,    -1,    -1,   464,   465,   466,    -1,    -1,   469,   470,
      -1,   472,   473,   474,   475,   476,    -1,    -1,   479,   480,
      -1,   482,   483,    -1,    -1,   486,   487,    -1,    -1,   490,
     491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,
      -1,   502,   503,   504,    -1,    -1,    -1,   508,   509,   510,
     511,    -1,   513,   514,    -1,   516,   517,    -1,   519,   520,
      -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,   530,
     531,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,    -1,
     541,    -1,    -1,    -1,   545,   546,   547,   548,   549,    -1,
      -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,    -1,
      -1,   562,    -1,     5,    -1,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,   580,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
      -1,    -1,   154,   155,   156,    -1,    -1,   159,    -1,   161,
     162,   163,   164,    -1,    -1,   167,    -1,    -1,    -1,   171,
     172,    -1,   174,    -1,   176,    -1,   178,   179,   180,   181,
      -1,   183,    -1,    -1,    -1,   187,   188,    -1,   190,    -1,
      -1,   193,   194,    -1,    -1,    -1,   198,   199,   200,   201,
      -1,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,
      -1,   213,   214,    -1,    -1,    -1,   218,    -1,    -1,   221,
     222,    -1,    -1,    -1,   226,    -1,    -1,   229,   230,    -1,
      -1,   233,    -1,    -1,   236,   237,   238,    -1,    -1,    -1,
      -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,   251,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,    -1,   276,   277,   278,   279,    -1,   281,
     282,   283,    -1,    -1,    -1,   287,   288,   289,   290,   291,
      -1,    -1,   294,   295,    -1,   297,    -1,   299,    -1,   301,
     302,   303,   304,   305,   306,   307,   308,    -1,    -1,   311,
     312,    -1,    -1,   315,   316,   317,   318,    -1,    -1,    -1,
     322,   323,   324,    -1,    -1,    -1,    -1,   329,   330,   331,
      -1,   333,   334,   335,    -1,   337,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,    -1,    -1,   365,   366,   367,    -1,   369,    -1,   371,
     372,    -1,   374,   375,   376,    -1,    -1,   379,    -1,    -1,
      -1,   383,   384,   385,   386,   387,    -1,    -1,   390,   391,
     392,    -1,   394,   395,    -1,   397,   398,   399,    -1,    -1,
     402,    -1,   404,   405,   406,    -1,   408,   409,    -1,   411,
      -1,    -1,   414,   415,   416,   417,   418,   419,   420,   421,
     422,    -1,   424,   425,    -1,    -1,    -1,   429,   430,   431,
     432,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,   441,
     442,   443,    -1,   445,   446,   447,   448,    -1,    -1,    -1,
      -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,   461,
      -1,    -1,   464,   465,   466,    -1,    -1,   469,   470,    -1,
     472,   473,   474,   475,   476,    -1,    -1,   479,   480,    -1,
     482,   483,    -1,    -1,   486,   487,    -1,   489,   490,   491,
      -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,
     502,   503,   504,    -1,    -1,    -1,   508,   509,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,   519,   520,    -1,
      -1,   523,    -1,    -1,   526,    -1,   528,    -1,   530,   531,
      -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,    -1,   541,
      -1,    -1,    -1,   545,   546,   547,   548,   549,    -1,    -1,
      -1,    -1,   554,   555,    -1,   557,   558,   559,    -1,    -1,
     562,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,   579,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,
      -1,    55,    56,    -1,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,   105,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,   151,    -1,    -1,
     154,   155,   156,    -1,    -1,   159,    -1,   161,   162,   163,
     164,    -1,    -1,   167,    -1,    -1,    -1,   171,   172,    -1,
     174,    -1,   176,    -1,   178,   179,   180,   181,    -1,   183,
      -1,    -1,    -1,   187,   188,    -1,   190,    -1,    -1,   193,
     194,    -1,    -1,    -1,   198,   199,   200,   201,    -1,    -1,
     204,   205,    -1,    -1,   208,    -1,    -1,    -1,    -1,   213,
     214,    -1,    -1,    -1,   218,    -1,    -1,   221,   222,    -1,
      -1,    -1,   226,    -1,    -1,   229,   230,    -1,    -1,   233,
      -1,    -1,   236,   237,   238,    -1,    -1,    -1,    -1,   243,
     244,    -1,   246,    -1,   248,    -1,   250,   251,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,    -1,   276,   277,   278,   279,    -1,   281,   282,   283,
      -1,    -1,    -1,   287,   288,   289,   290,   291,    -1,    -1,
     294,   295,    -1,   297,    -1,   299,    -1,   301,   302,   303,
     304,   305,   306,   307,   308,    -1,    -1,   311,   312,    -1,
      -1,   315,   316,   317,   318,    -1,    -1,    -1,   322,   323,
     324,    -1,    -1,    -1,    -1,   329,   330,   331,    -1,   333,
     334,   335,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,    -1,   369,    -1,   371,   372,    -1,
     374,   375,   376,    -1,    -1,   379,    -1,    -1,    -1,   383,
     384,   385,   386,   387,    -1,    -1,   390,   391,   392,    -1,
     394,   395,    -1,   397,   398,   399,    -1,    -1,   402,    -1,
     404,   405,   406,    -1,   408,   409,    -1,   411,    -1,    -1,
     414,   415,   416,   417,   418,   419,   420,   421,   422,    -1,
     424,   425,    -1,    -1,    -1,   429,   430,   431,   432,    -1,
      -1,    -1,   436,    -1,    -1,    -1,   440,   441,   442,   443,
      -1,   445,   446,   447,   448,    -1,    -1,    -1,    -1,    -1,
      -1,   455,   456,    -1,   458,    -1,    -1,   461,    -1,    -1,
     464,   465,   466,    -1,    -1,   469,   470,    -1,   472,   473,
     474,   475,   476,    -1,    -1,   479,   480,    -1,   482,   483,
      -1,    -1,   486,   487,    -1,   489,   490,   491,    -1,   493,
     494,   495,   496,    -1,    -1,    -1,    -1,    -1,   502,   503,
     504,    -1,    -1,    -1,   508,   509,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,   519,   520,    -1,    -1,   523,
      -1,    -1,   526,    -1,   528,    -1,   530,   531,    -1,    -1,
      -1,    -1,    -1,    -1,   538,    -1,    -1,   541,    -1,    -1,
      -1,   545,   546,   547,   548,   549,    -1,    -1,    -1,    -1,
     554,   555,    -1,   557,   558,   559,    -1,    -1,   562,     5,
      -1,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,   579,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,
      56,    -1,    58,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,   151,    -1,    -1,   154,   155,
     156,    -1,    -1,   159,    -1,   161,   162,   163,   164,    -1,
      -1,   167,    -1,    -1,    -1,   171,   172,    -1,   174,    -1,
     176,    -1,   178,   179,   180,   181,    -1,   183,    -1,    -1,
      -1,   187,   188,    -1,   190,    -1,    -1,   193,   194,    -1,
      -1,    -1,   198,   199,   200,   201,    -1,    -1,   204,   205,
      -1,    -1,   208,    -1,    -1,    -1,    -1,   213,   214,    -1,
      -1,    -1,   218,    -1,    -1,   221,   222,    -1,    -1,    -1,
     226,    -1,    -1,   229,   230,    -1,    -1,   233,    -1,    -1,
     236,   237,   238,    -1,    -1,    -1,    -1,   243,   244,    -1,
     246,    -1,   248,    -1,   250,   251,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,    -1,
     276,   277,   278,   279,    -1,   281,   282,   283,    -1,    -1,
      -1,   287,   288,   289,   290,   291,    -1,    -1,   294,   295,
      -1,   297,    -1,   299,    -1,   301,   302,   303,   304,   305,
     306,   307,   308,    -1,    -1,   311,   312,    -1,    -1,   315,
     316,   317,   318,    -1,    -1,    -1,   322,   323,   324,    -1,
      -1,    -1,    -1,   329,   330,   331,    -1,   333,   334,   335,
      -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,    -1,    -1,   365,
     366,   367,    -1,   369,    -1,   371,   372,    -1,   374,   375,
     376,    -1,    -1,   379,    -1,    -1,    -1,   383,   384,   385,
     386,   387,    -1,    -1,   390,   391,   392,    -1,   394,   395,
      -1,   397,   398,   399,    -1,    -1,   402,    -1,   404,   405,
     406,    -1,   408,   409,    -1,   411,    -1,    -1,   414,   415,
     416,   417,   418,   419,   420,   421,   422,    -1,   424,   425,
      -1,    -1,    -1,   429,   430,   431,   432,    -1,    -1,    -1,
     436,    -1,    -1,    -1,   440,   441,   442,   443,    -1,   445,
     446,   447,   448,    -1,    -1,    -1,    -1,    -1,    -1,   455,
     456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,   465,
     466,    -1,    -1,   469,   470,    -1,   472,   473,   474,   475,
     476,    -1,    -1,   479,   480,    -1,   482,   483,    -1,    -1,
     486,   487,    -1,   489,   490,   491,    -1,   493,   494,   495,
     496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,
      -1,    -1,   508,   509,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,   519,   520,    -1,    -1,   523,    -1,    -1,
     526,    -1,   528,    -1,   530,   531,    -1,    -1,    -1,    -1,
      -1,    -1,   538,    -1,    -1,   541,    -1,    -1,    -1,   545,
     546,   547,   548,   549,    -1,    -1,    -1,    -1,   554,   555,
      -1,   557,   558,   559,    -1,    -1,   562,     5,    -1,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    -1,   579,    22,    23,    24,    25,    26,    27,
      -1,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    -1,    -1,
      -1,    -1,    50,    51,    -1,    53,    -1,    55,    -1,    -1,
      -1,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    -1,    70,    -1,    72,    73,    74,    75,    -1,    77,
      78,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,    -1,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,    -1,    -1,    -1,   154,   155,   156,    -1,
      -1,   159,   160,   161,   162,   163,   164,    -1,    -1,    -1,
      -1,    -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,
     178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,    -1,
     188,    -1,    -1,    -1,    -1,    -1,   194,    -1,    -1,    -1,
     198,   199,   200,   201,   202,    -1,   204,   205,    -1,    -1,
     208,    -1,    -1,    -1,    -1,   213,    -1,    -1,    -1,    -1,
     218,    -1,    -1,   221,   222,   223,    -1,    -1,   226,    -1,
      -1,    -1,   230,    -1,    -1,   233,   234,    -1,   236,   237,
      -1,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,
     248,    -1,   250,   251,    -1,    -1,    -1,    -1,   256,    -1,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,   277,
     278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
     308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,
     318,    -1,    -1,    -1,   322,    -1,   324,    -1,    -1,    -1,
      -1,   329,   330,   331,    -1,   333,   334,   335,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     348,   349,    -1,    -1,   352,   353,   354,    -1,   356,   357,
     358,   359,   360,   361,    -1,    -1,    -1,    -1,   366,   367,
      -1,   369,    -1,   371,   372,    -1,   374,   375,   376,    -1,
      -1,    -1,    -1,    -1,    -1,   383,   384,   385,   386,   387,
      -1,    -1,   390,   391,   392,    -1,   394,    -1,    -1,   397,
      -1,   399,   400,    -1,   402,    -1,    -1,   405,    -1,    -1,
     408,   409,   410,   411,    -1,    -1,    -1,   415,   416,   417,
     418,   419,   420,    -1,   422,    -1,   424,    -1,    -1,    -1,
      -1,   429,   430,   431,    -1,    -1,    -1,    -1,   436,    -1,
      -1,    -1,   440,    -1,   442,    -1,    -1,   445,    -1,    -1,
     448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,
     458,    -1,    -1,   461,    -1,    -1,   464,    -1,   466,    -1,
      -1,    -1,   470,    -1,   472,   473,   474,   475,   476,    -1,
      -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,   487,
      -1,    -1,   490,   491,    -1,   493,   494,   495,   496,    -1,
      -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,
      -1,   509,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,   526,    -1,
      -1,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
     538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,
     548,   549,    -1,    -1,   552,    -1,   554,    -1,    -1,   557,
      -1,   559,    -1,     5,   562,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,   575,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
      -1,    -1,   154,   155,   156,    -1,    -1,   159,    -1,   161,
     162,   163,   164,    -1,    -1,   167,    -1,    -1,    -1,   171,
     172,    -1,   174,    -1,   176,    -1,   178,   179,   180,   181,
      -1,   183,    -1,    -1,    -1,   187,   188,    -1,   190,    -1,
      -1,   193,   194,    -1,    -1,    -1,   198,   199,   200,   201,
      -1,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,
      -1,   213,   214,    -1,    -1,    -1,   218,    -1,    -1,   221,
     222,    -1,    -1,    -1,   226,    -1,    -1,   229,   230,    -1,
      -1,   233,    -1,    -1,   236,   237,    -1,    -1,    -1,    -1,
      -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,   251,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,    -1,   276,   277,   278,   279,    -1,   281,
     282,   283,    -1,    -1,    -1,   287,   288,   289,   290,   291,
      -1,    -1,   294,   295,    -1,   297,    -1,   299,    -1,   301,
     302,   303,   304,   305,   306,   307,   308,    -1,    -1,   311,
     312,    -1,    -1,   315,   316,   317,   318,    -1,    -1,    -1,
     322,   323,   324,    -1,    -1,    -1,    -1,   329,   330,   331,
      -1,   333,   334,   335,    -1,   337,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,    -1,    -1,   365,   366,   367,    -1,   369,    -1,   371,
     372,    -1,   374,   375,   376,    -1,    -1,   379,    -1,    -1,
      -1,   383,   384,   385,   386,   387,    -1,    -1,   390,   391,
     392,    -1,   394,   395,    -1,   397,   398,   399,    -1,    -1,
     402,    -1,   404,   405,   406,    -1,   408,   409,    -1,   411,
      -1,    -1,   414,   415,   416,   417,   418,   419,   420,   421,
     422,    -1,   424,   425,    -1,    -1,    -1,   429,   430,   431,
     432,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,   441,
     442,   443,    -1,   445,   446,   447,   448,    -1,    -1,    -1,
      -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,   461,
      -1,    -1,   464,   465,   466,    -1,    -1,   469,   470,    -1,
     472,   473,   474,   475,   476,    -1,    -1,   479,   480,    -1,
     482,   483,    -1,    -1,   486,   487,    -1,    -1,   490,   491,
      -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,
     502,   503,   504,    -1,    -1,    -1,   508,   509,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,   519,   520,    -1,
      -1,   523,    -1,    -1,   526,    -1,   528,    -1,   530,   531,
      -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,    -1,   541,
      -1,    -1,    -1,   545,   546,   547,   548,   549,    -1,    -1,
      -1,    -1,   554,   555,    -1,   557,   558,   559,    -1,     5,
     562,     7,     8,     9,    10,    11,   568,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,
      56,    -1,    58,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,   151,    -1,    -1,   154,   155,
     156,    -1,    -1,   159,    -1,   161,   162,   163,   164,    -1,
      -1,   167,    -1,    -1,    -1,   171,   172,    -1,   174,    -1,
     176,    -1,   178,   179,   180,   181,    -1,   183,    -1,    -1,
      -1,   187,   188,    -1,   190,    -1,    -1,   193,   194,    -1,
      -1,    -1,   198,   199,   200,   201,    -1,    -1,   204,   205,
      -1,    -1,   208,    -1,    -1,    -1,    -1,   213,   214,    -1,
      -1,    -1,   218,    -1,    -1,   221,   222,    -1,    -1,    -1,
     226,    -1,    -1,   229,   230,    -1,    -1,   233,    -1,    -1,
     236,   237,    -1,    -1,    -1,    -1,    -1,   243,   244,    -1,
     246,    -1,   248,    -1,   250,   251,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,    -1,
     276,   277,   278,   279,    -1,   281,   282,   283,    -1,    -1,
      -1,   287,   288,   289,   290,   291,    -1,    -1,   294,   295,
      -1,   297,    -1,   299,    -1,   301,   302,   303,   304,   305,
     306,   307,   308,    -1,    -1,   311,   312,    -1,    -1,   315,
     316,   317,   318,    -1,    -1,    -1,   322,   323,   324,    -1,
      -1,    -1,    -1,   329,   330,   331,    -1,   333,   334,   335,
      -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,    -1,    -1,   365,
     366,   367,    -1,   369,    -1,   371,   372,    -1,   374,   375,
     376,    -1,    -1,   379,    -1,    -1,    -1,   383,   384,   385,
     386,   387,    -1,    -1,   390,   391,   392,    -1,   394,   395,
      -1,   397,   398,   399,    -1,    -1,   402,    -1,   404,   405,
     406,    -1,   408,   409,    -1,   411,    -1,    -1,   414,   415,
     416,   417,   418,   419,   420,   421,   422,    -1,   424,   425,
      -1,    -1,    -1,   429,   430,   431,   432,    -1,    -1,    -1,
     436,    -1,    -1,    -1,   440,   441,   442,   443,    -1,   445,
     446,   447,   448,    -1,    -1,    -1,    -1,    -1,    -1,   455,
     456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,   465,
     466,    -1,    -1,   469,   470,    -1,   472,   473,   474,   475,
     476,    -1,    -1,   479,   480,    -1,   482,   483,    -1,    -1,
     486,   487,    -1,    -1,   490,   491,    -1,   493,   494,   495,
     496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,
      -1,    -1,   508,   509,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,   519,   520,    -1,    -1,   523,    -1,    -1,
     526,    -1,   528,    -1,   530,   531,    -1,    -1,    -1,    -1,
      -1,    -1,   538,    -1,    -1,   541,    -1,    -1,    -1,   545,
     546,   547,   548,   549,    -1,    -1,    -1,    -1,   554,   555,
      -1,   557,   558,   559,    -1,     5,   562,     7,     8,     9,
      10,    11,   568,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,   159,
      -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,    -1,
      -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,   179,
     180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,    -1,
     190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,   199,
     200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,    -1,
      -1,    -1,    -1,   213,   214,    -1,    -1,    -1,   218,    -1,
      -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,
     230,    -1,    -1,   233,    -1,    -1,   236,   237,    -1,    -1,
      -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,
     250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,   277,   278,   279,
      -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
      -1,   301,   302,   303,   304,   305,   306,   307,   308,    -1,
      -1,   311,   312,    -1,    -1,   315,   316,   317,   318,    -1,
      -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,   329,
     330,   331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,    -1,    -1,   365,   366,   367,    -1,   369,
      -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,   379,
      -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,
     390,   391,   392,    -1,   394,   395,    -1,   397,   398,   399,
      -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,   409,
      -1,   411,    -1,    -1,   414,   415,   416,   417,   418,   419,
     420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,
     430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,
     440,   441,   442,   443,    -1,   445,   446,   447,   448,    -1,
      -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,
      -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,   469,
     470,    -1,   472,   473,   474,   475,   476,    -1,    -1,   479,
     480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,    -1,
     490,   491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,
      -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,   509,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,   519,
     520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,
     530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,
      -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,   549,
      -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,
      -1,     5,   562,     7,     8,     9,    10,    11,   568,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,
      -1,    55,    56,    -1,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,   105,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,   151,    -1,    -1,
     154,   155,   156,    -1,    -1,   159,    -1,   161,   162,   163,
     164,    -1,    -1,   167,    -1,    -1,    -1,   171,   172,    -1,
     174,    -1,   176,    -1,   178,   179,   180,   181,    -1,   183,
      -1,    -1,    -1,   187,   188,    -1,   190,    -1,    -1,   193,
     194,    -1,    -1,    -1,   198,   199,   200,   201,    -1,    -1,
     204,   205,    -1,    -1,   208,    -1,    -1,    -1,    -1,   213,
     214,    -1,    -1,    -1,   218,    -1,    -1,   221,   222,    -1,
      -1,    -1,   226,    -1,    -1,   229,   230,    -1,    -1,   233,
      -1,    -1,   236,   237,    -1,    -1,    -1,    -1,    -1,   243,
     244,    -1,   246,    -1,   248,    -1,   250,   251,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,    -1,   276,   277,   278,   279,    -1,   281,   282,   283,
      -1,    -1,    -1,   287,   288,   289,   290,   291,    -1,    -1,
     294,   295,    -1,   297,    -1,   299,    -1,   301,   302,   303,
     304,   305,   306,   307,   308,    -1,    -1,   311,   312,    -1,
      -1,   315,   316,   317,   318,    -1,    -1,    -1,   322,   323,
     324,    -1,    -1,    -1,    -1,   329,   330,   331,    -1,   333,
     334,   335,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,    -1,   369,    -1,   371,   372,    -1,
     374,   375,   376,    -1,    -1,   379,    -1,    -1,    -1,   383,
     384,   385,   386,   387,    -1,    -1,   390,   391,   392,    -1,
     394,   395,    -1,   397,   398,   399,    -1,    -1,   402,    -1,
     404,   405,   406,    -1,   408,   409,    -1,   411,    -1,    -1,
     414,   415,   416,   417,   418,   419,   420,   421,   422,    -1,
     424,   425,    -1,    -1,    -1,   429,   430,   431,   432,    -1,
      -1,    -1,   436,    -1,    -1,    -1,   440,   441,   442,   443,
      -1,   445,   446,   447,   448,    -1,    -1,    -1,    -1,    -1,
      -1,   455,   456,    -1,   458,    -1,    -1,   461,    -1,    -1,
     464,   465,   466,    -1,    -1,   469,   470,    -1,   472,   473,
     474,   475,   476,    -1,    -1,   479,   480,    -1,   482,   483,
      -1,    -1,   486,   487,    -1,    -1,   490,   491,    -1,   493,
     494,   495,   496,    -1,    -1,    -1,    -1,    -1,   502,   503,
     504,    -1,    -1,    -1,   508,   509,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,   519,   520,    -1,    -1,   523,
      -1,    -1,   526,    -1,   528,    -1,   530,   531,    -1,    -1,
      -1,    -1,    -1,    -1,   538,    -1,    -1,   541,    -1,    -1,
      -1,   545,   546,   547,   548,   549,    -1,    -1,    -1,    -1,
     554,   555,    -1,   557,   558,   559,    -1,     5,   562,     7,
       8,     9,    10,    11,   568,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,   151,    -1,    -1,   154,   155,   156,    -1,
      -1,   159,    -1,   161,   162,   163,   164,    -1,    -1,   167,
      -1,    -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,
     178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,
     188,    -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,
     198,   199,   200,   201,    -1,    -1,   204,   205,    -1,    -1,
     208,    -1,    -1,    -1,    -1,   213,   214,    -1,    -1,    -1,
     218,    -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,
      -1,   229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,
      -1,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,
     248,    -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,   277,
     278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
     308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,
     318,    -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,
      -1,   329,   330,   331,    -1,   333,   334,   335,    -1,   337,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,    -1,    -1,   365,   366,   367,
      -1,   369,    -1,   371,   372,    -1,   374,   375,   376,    -1,
      -1,   379,    -1,    -1,    -1,   383,   384,   385,   386,   387,
      -1,    -1,   390,   391,   392,    -1,   394,   395,    -1,   397,
     398,   399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,
     408,   409,    -1,   411,    -1,    -1,   414,   415,   416,   417,
     418,   419,   420,   421,   422,    -1,   424,   425,    -1,    -1,
      -1,   429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,
      -1,    -1,   440,   441,   442,   443,    -1,   445,   446,   447,
     448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,
     458,    -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,
      -1,   469,   470,    -1,   472,   473,   474,   475,   476,    -1,
      -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,   487,
      -1,    -1,   490,   491,    -1,   493,   494,   495,   496,    -1,
      -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,
     508,   509,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,   519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,
     528,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
     538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,
     548,   549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,
     558,   559,    -1,     5,   562,     7,     8,     9,    10,    11,
     568,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,   106,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
      -1,    -1,   154,   155,   156,    -1,    -1,   159,    -1,   161,
     162,   163,   164,   165,    -1,   167,    -1,    -1,    -1,   171,
     172,    -1,   174,    -1,   176,    -1,   178,   179,   180,   181,
      -1,   183,    -1,    -1,    -1,   187,   188,    -1,   190,   191,
      -1,   193,   194,    -1,    -1,    -1,   198,   199,   200,   201,
      -1,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,
      -1,   213,   214,    -1,    -1,    -1,   218,    -1,    -1,   221,
     222,    -1,    -1,    -1,   226,    -1,    -1,   229,   230,    -1,
      -1,   233,    -1,    -1,   236,   237,    -1,    -1,    -1,    -1,
      -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,   251,
      -1,    -1,   254,    -1,    -1,    -1,    -1,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,    -1,   276,   277,   278,   279,    -1,   281,
     282,   283,    -1,    -1,    -1,   287,   288,   289,   290,   291,
      -1,    -1,   294,   295,    -1,   297,    -1,   299,    -1,   301,
     302,   303,   304,   305,   306,   307,   308,    -1,    -1,   311,
     312,    -1,    -1,   315,   316,   317,   318,   319,   320,    -1,
     322,   323,   324,    -1,    -1,   327,    -1,   329,   330,   331,
      -1,   333,   334,   335,    -1,   337,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,    -1,    -1,   365,   366,   367,    -1,   369,    -1,   371,
     372,    -1,   374,   375,   376,    -1,    -1,   379,    -1,    -1,
      -1,   383,   384,   385,   386,   387,    -1,    -1,   390,   391,
     392,    -1,   394,   395,    -1,   397,   398,   399,    -1,    -1,
     402,    -1,   404,   405,   406,    -1,   408,   409,    -1,   411,
      -1,    -1,   414,   415,   416,   417,   418,   419,   420,   421,
     422,    -1,   424,   425,    -1,    -1,    -1,   429,   430,   431,
     432,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,   441,
     442,   443,    -1,   445,   446,   447,   448,    -1,    -1,   451,
     452,   453,    -1,   455,   456,    -1,   458,    -1,    -1,   461,
      -1,    -1,   464,   465,   466,    -1,    -1,   469,   470,    -1,
     472,   473,   474,   475,   476,    -1,    -1,   479,   480,    -1,
     482,   483,    -1,    -1,   486,   487,    -1,    -1,   490,   491,
      -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,
     502,   503,   504,    -1,    -1,    -1,   508,   509,   510,   511,
     512,   513,   514,    -1,   516,   517,    -1,   519,   520,    -1,
      -1,   523,    -1,    -1,   526,    -1,   528,    -1,   530,   531,
      -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,    -1,   541,
      -1,    -1,    -1,   545,   546,   547,   548,   549,    -1,    -1,
      -1,    -1,   554,   555,    -1,   557,   558,   559,    -1,     5,
     562,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    33,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,
      56,    -1,    58,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,
      -1,    -1,    -1,   109,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,   142,    -1,   144,    -1,
     146,   147,   148,   149,   150,   151,    -1,    -1,   154,   155,
     156,    -1,    -1,   159,    -1,   161,   162,   163,   164,    -1,
      -1,   167,    -1,    -1,    -1,   171,   172,    -1,   174,    -1,
     176,    -1,   178,   179,   180,   181,    -1,   183,    -1,    -1,
      -1,   187,   188,    -1,   190,    -1,    -1,   193,   194,    -1,
      -1,    -1,   198,   199,   200,   201,    -1,    -1,   204,   205,
      -1,    -1,   208,    -1,    -1,    -1,    -1,   213,   214,    -1,
      -1,    -1,   218,    -1,    -1,   221,   222,    -1,    -1,    -1,
     226,    -1,    -1,   229,   230,    -1,    -1,   233,    -1,    -1,
     236,   237,   238,    -1,    -1,    -1,    -1,   243,   244,    -1,
     246,    -1,   248,    -1,   250,   251,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,    -1,
     276,   277,   278,   279,    -1,   281,   282,   283,    -1,    -1,
      -1,   287,   288,   289,   290,   291,    -1,    -1,   294,   295,
      -1,   297,    -1,   299,    -1,   301,   302,   303,   304,   305,
     306,   307,   308,    -1,    -1,   311,   312,    -1,    -1,   315,
     316,   317,   318,    -1,    -1,    -1,   322,   323,   324,    -1,
      -1,    -1,    -1,   329,   330,   331,    -1,   333,   334,   335,
      -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,    -1,    -1,   365,
     366,   367,    -1,   369,    -1,   371,   372,    -1,   374,   375,
     376,    -1,    -1,   379,    -1,    -1,    -1,   383,   384,   385,
     386,   387,    -1,    -1,   390,   391,   392,    -1,   394,   395,
      -1,   397,   398,   399,    -1,    -1,   402,    -1,   404,   405,
     406,    -1,   408,   409,    -1,   411,    -1,    -1,   414,   415,
     416,   417,   418,   419,   420,   421,   422,    -1,   424,   425,
      -1,    -1,    -1,   429,   430,   431,   432,    -1,    -1,   435,
     436,    -1,    -1,    -1,   440,   441,   442,   443,    -1,   445,
     446,   447,   448,    -1,    -1,    -1,    -1,    -1,    -1,   455,
     456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,   465,
     466,    -1,    -1,   469,   470,    -1,   472,   473,   474,   475,
     476,    -1,    -1,   479,   480,    -1,   482,   483,    -1,    -1,
     486,   487,    -1,   489,   490,   491,    -1,   493,   494,   495,
     496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,
      -1,    -1,   508,   509,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,   519,   520,    -1,    -1,   523,    -1,    -1,
     526,    -1,   528,    -1,   530,   531,    -1,    -1,    -1,    -1,
      -1,    -1,   538,    -1,    -1,   541,    -1,    -1,    -1,   545,
     546,   547,   548,   549,    -1,    -1,    -1,    -1,   554,   555,
      -1,   557,   558,   559,    -1,     5,   562,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    33,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,   109,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,   159,
      -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,    -1,
      -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,   179,
     180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,    -1,
     190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,   199,
     200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,    -1,
      -1,    -1,    -1,   213,   214,    -1,    -1,    -1,   218,    -1,
      -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,
     230,    -1,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,
     250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,   277,   278,   279,
      -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
      -1,   301,   302,   303,   304,   305,   306,   307,   308,    -1,
      -1,   311,   312,    -1,    -1,   315,   316,   317,   318,    -1,
      -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,   329,
     330,   331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,    -1,    -1,   365,   366,   367,    -1,   369,
      -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,   379,
      -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,
     390,   391,   392,    -1,   394,   395,    -1,   397,   398,   399,
      -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,   409,
      -1,   411,    -1,    -1,   414,   415,   416,   417,   418,   419,
     420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,
     430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,
     440,   441,   442,   443,    -1,   445,   446,   447,   448,    -1,
      -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,
      -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,   469,
     470,    -1,   472,   473,   474,   475,   476,    -1,    -1,   479,
     480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,   489,
     490,   491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,
      -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,   509,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,   519,
     520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,
     530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,
      -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,   549,
      -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,
      -1,     5,   562,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    33,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,
      -1,    55,    56,    -1,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,   105,    -1,    -1,    -1,   109,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,   151,    -1,    -1,
     154,   155,   156,    -1,    -1,   159,    -1,   161,   162,   163,
     164,    -1,    -1,   167,    -1,    -1,    -1,   171,   172,    -1,
     174,    -1,   176,    -1,   178,   179,   180,   181,    -1,   183,
      -1,    -1,    -1,   187,   188,    -1,   190,    -1,    -1,   193,
     194,    -1,    -1,    -1,   198,   199,   200,   201,    -1,    -1,
     204,   205,    -1,    -1,   208,    -1,    -1,    -1,    -1,   213,
     214,    -1,    -1,    -1,   218,    -1,    -1,   221,   222,    -1,
      -1,    -1,   226,    -1,    -1,   229,   230,    -1,    -1,   233,
      -1,    -1,   236,   237,   238,    -1,    -1,    -1,    -1,   243,
     244,    -1,   246,    -1,   248,    -1,   250,   251,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,    -1,   276,   277,   278,   279,    -1,   281,   282,   283,
      -1,    -1,    -1,   287,   288,   289,   290,   291,    -1,    -1,
     294,   295,    -1,   297,    -1,   299,    -1,   301,   302,   303,
     304,   305,   306,   307,   308,    -1,    -1,   311,   312,    -1,
      -1,   315,   316,   317,   318,    -1,    -1,    -1,   322,   323,
     324,    -1,    -1,    -1,    -1,   329,   330,   331,    -1,   333,
     334,   335,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,    -1,   369,    -1,   371,   372,    -1,
     374,   375,   376,    -1,    -1,   379,    -1,    -1,    -1,   383,
     384,   385,   386,   387,    -1,    -1,   390,   391,   392,    -1,
     394,   395,    -1,   397,   398,   399,    -1,    -1,   402,    -1,
     404,   405,   406,    -1,   408,   409,    -1,   411,    -1,    -1,
     414,   415,   416,   417,   418,   419,   420,   421,   422,    -1,
     424,   425,    -1,    -1,    -1,   429,   430,   431,   432,    -1,
      -1,    -1,   436,    -1,    -1,    -1,   440,   441,   442,   443,
      -1,   445,   446,   447,   448,    -1,    -1,    -1,    -1,    -1,
      -1,   455,   456,    -1,   458,    -1,    -1,   461,    -1,    -1,
     464,   465,   466,    -1,    -1,   469,   470,    -1,   472,   473,
     474,   475,   476,    -1,    -1,   479,   480,    -1,   482,   483,
      -1,    -1,   486,   487,    -1,   489,   490,   491,    -1,   493,
     494,   495,   496,    -1,    -1,    -1,    -1,    -1,   502,   503,
     504,    -1,    -1,    -1,   508,   509,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,   519,   520,    -1,    -1,   523,
      -1,    -1,   526,    -1,   528,    -1,   530,   531,    -1,    -1,
      -1,    -1,    -1,    -1,   538,    -1,    -1,   541,    -1,    -1,
      -1,   545,   546,   547,   548,   549,    -1,    -1,    -1,    -1,
     554,   555,    -1,   557,   558,   559,    -1,     5,   562,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    89,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,   151,    -1,    -1,   154,   155,   156,    -1,
      -1,   159,    -1,   161,   162,   163,   164,    -1,    -1,   167,
      -1,    -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,
     178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,
     188,    -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,
     198,   199,   200,   201,    -1,    -1,   204,   205,    -1,    -1,
     208,    -1,    -1,    -1,    -1,   213,   214,    -1,    -1,    -1,
     218,    -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,
      -1,   229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,
     238,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,
     248,    -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,   277,
     278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
     308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,
     318,    -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,
      -1,   329,   330,   331,    -1,   333,   334,   335,    -1,   337,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,    -1,    -1,   365,   366,   367,
      -1,   369,    -1,   371,   372,    -1,   374,   375,   376,    -1,
      -1,   379,    -1,    -1,    -1,   383,   384,   385,   386,   387,
      -1,    -1,   390,   391,   392,    -1,   394,   395,    -1,   397,
     398,   399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,
     408,   409,    -1,   411,    -1,    -1,   414,   415,   416,   417,
     418,   419,   420,   421,   422,    -1,   424,   425,    -1,    -1,
      -1,   429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,
      -1,    -1,   440,   441,   442,   443,    -1,   445,   446,   447,
     448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,
     458,    -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,
      -1,   469,   470,    -1,   472,   473,   474,   475,   476,    -1,
      -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,   487,
      -1,   489,   490,   491,    -1,   493,   494,   495,   496,    -1,
      -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,
     508,   509,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,   519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,
     528,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
     538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,
     548,   549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,
     558,   559,    -1,     5,   562,     7,     8,     9,    10,    11,
      12,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
      -1,    -1,   154,   155,   156,    -1,    -1,   159,    -1,   161,
     162,   163,   164,    -1,    -1,   167,    -1,    -1,    -1,   171,
     172,    -1,   174,    -1,   176,    -1,   178,   179,   180,   181,
      -1,   183,    -1,    -1,    -1,   187,   188,    -1,   190,    -1,
      -1,   193,   194,    -1,    -1,    -1,   198,   199,   200,   201,
      -1,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,
      -1,   213,   214,    -1,    -1,    -1,   218,    -1,    -1,   221,
     222,    -1,    -1,    -1,   226,    -1,    -1,   229,   230,    -1,
      -1,   233,    -1,    -1,   236,   237,   238,    -1,    -1,    -1,
      -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,   251,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,    -1,   276,   277,   278,   279,    -1,   281,
     282,   283,    -1,    -1,    -1,   287,   288,   289,   290,   291,
      -1,    -1,   294,   295,    -1,   297,    -1,   299,    -1,   301,
     302,   303,   304,   305,   306,   307,   308,    -1,    -1,   311,
     312,    -1,    -1,   315,   316,   317,   318,    -1,    -1,    -1,
     322,   323,   324,    -1,    -1,    -1,    -1,   329,   330,   331,
      -1,   333,   334,   335,    -1,   337,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,    -1,    -1,   365,   366,   367,    -1,   369,    -1,   371,
     372,    -1,   374,   375,   376,    -1,    -1,   379,    -1,    -1,
      -1,   383,   384,   385,   386,   387,    -1,    -1,   390,   391,
     392,    -1,   394,   395,    -1,   397,   398,   399,    -1,    -1,
     402,    -1,   404,   405,   406,    -1,   408,   409,    -1,   411,
      -1,    -1,   414,   415,   416,   417,   418,   419,   420,   421,
     422,    -1,   424,   425,    -1,    -1,    -1,   429,   430,   431,
     432,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,   441,
     442,   443,    -1,   445,   446,   447,   448,    -1,    -1,    -1,
      -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,   461,
      -1,    -1,   464,   465,   466,    -1,    -1,   469,   470,    -1,
     472,   473,   474,   475,   476,    -1,    -1,   479,   480,    -1,
     482,   483,    -1,    -1,   486,   487,    -1,   489,   490,   491,
      -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,
     502,   503,   504,    -1,    -1,    -1,   508,   509,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,   519,   520,    -1,
      -1,   523,    -1,    -1,   526,    -1,   528,    -1,   530,   531,
      -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,    -1,   541,
      -1,    -1,    -1,   545,   546,   547,   548,   549,    -1,    -1,
      -1,    -1,   554,   555,    -1,   557,   558,   559,    -1,     5,
     562,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    35,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,
      56,    -1,    58,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,   151,    -1,    -1,   154,   155,
     156,    -1,    -1,   159,    -1,   161,   162,   163,   164,    -1,
      -1,   167,    -1,    -1,    -1,   171,   172,    -1,   174,    -1,
     176,    -1,   178,   179,   180,   181,    -1,   183,    -1,    -1,
      -1,   187,   188,    -1,   190,   191,    -1,   193,   194,    -1,
      -1,    -1,   198,   199,   200,   201,    -1,    -1,   204,   205,
      -1,    -1,   208,    -1,    -1,    -1,    -1,   213,   214,    -1,
      -1,    -1,   218,    -1,    -1,   221,   222,    -1,    -1,    -1,
     226,    -1,    -1,   229,   230,    -1,    -1,   233,    -1,    -1,
     236,   237,    -1,    -1,    -1,    -1,    -1,   243,   244,    -1,
     246,    -1,   248,    -1,   250,   251,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,    -1,
     276,   277,   278,   279,    -1,   281,   282,   283,    -1,    -1,
      -1,   287,   288,   289,   290,   291,    -1,    -1,   294,   295,
      -1,   297,    -1,   299,    -1,   301,   302,   303,   304,   305,
     306,   307,   308,    -1,    -1,   311,   312,    -1,    -1,   315,
     316,   317,   318,    -1,    -1,    -1,   322,   323,   324,    -1,
      -1,    -1,    -1,   329,   330,   331,    -1,   333,   334,   335,
      -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,    -1,    -1,   365,
     366,   367,    -1,   369,    -1,   371,   372,    -1,   374,   375,
     376,    -1,    -1,   379,    -1,    -1,    -1,   383,   384,   385,
     386,   387,    -1,    -1,   390,   391,   392,    -1,   394,   395,
      -1,   397,   398,   399,    -1,    -1,   402,    -1,   404,   405,
     406,    -1,   408,   409,    -1,   411,    -1,    -1,   414,   415,
     416,   417,   418,   419,   420,   421,   422,    -1,   424,   425,
      -1,    -1,    -1,   429,   430,   431,   432,    -1,    -1,    -1,
     436,    -1,    -1,    -1,   440,   441,   442,   443,    -1,   445,
     446,   447,   448,    -1,    -1,    -1,    -1,    -1,    -1,   455,
     456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,   465,
     466,    -1,    -1,   469,   470,    -1,   472,   473,   474,   475,
     476,    -1,    -1,   479,   480,    -1,   482,   483,    -1,    -1,
     486,   487,    -1,   489,   490,   491,    -1,   493,   494,   495,
     496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,
      -1,    -1,   508,   509,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,   519,   520,    -1,    -1,   523,    -1,    -1,
     526,    -1,   528,    -1,   530,   531,    -1,    -1,    -1,    -1,
      -1,    -1,   538,    -1,    -1,   541,    -1,    -1,    -1,   545,
     546,   547,   548,   549,    -1,    -1,    -1,    -1,   554,   555,
      -1,   557,   558,   559,    -1,     5,   562,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    33,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,   159,
      -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,    -1,
      -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,   179,
     180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,    -1,
     190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,   199,
     200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,    -1,
      -1,    -1,    -1,   213,   214,    -1,    -1,    -1,   218,    -1,
      -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,
     230,    -1,    -1,   233,    -1,    -1,   236,   237,   238,    -1,
      -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,
     250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,   277,   278,   279,
      -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
      -1,   301,   302,   303,   304,   305,   306,   307,   308,    -1,
      -1,   311,   312,    -1,    -1,   315,   316,   317,   318,    -1,
      -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,   329,
     330,   331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,    -1,    -1,   365,   366,   367,    -1,   369,
      -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,   379,
      -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,
     390,   391,   392,    -1,   394,   395,    -1,   397,   398,   399,
      -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,   409,
      -1,   411,    -1,    -1,   414,   415,   416,   417,   418,   419,
     420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,
     430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,
     440,   441,   442,   443,    -1,   445,   446,   447,   448,    -1,
      -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,
      -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,   469,
     470,    -1,   472,   473,   474,   475,   476,    -1,    -1,   479,
     480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,   489,
     490,   491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,
      -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,   509,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,   519,
     520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,
     530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,
      -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,   549,
      -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,
      -1,     5,   562,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,
      -1,    55,    56,    -1,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,   105,    -1,    -1,    -1,   109,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,   151,    -1,    -1,
     154,   155,   156,    -1,    -1,   159,    -1,   161,   162,   163,
     164,    -1,    -1,   167,    -1,    -1,    -1,   171,   172,    -1,
     174,    -1,   176,    -1,   178,   179,   180,   181,    -1,   183,
      -1,    -1,    -1,   187,   188,    -1,   190,    -1,    -1,   193,
     194,    -1,    -1,    -1,   198,   199,   200,   201,    -1,    -1,
     204,   205,    -1,    -1,   208,    -1,    -1,    -1,    -1,   213,
     214,    -1,    -1,    -1,   218,    -1,    -1,   221,   222,    -1,
      -1,    -1,   226,    -1,    -1,   229,   230,    -1,    -1,   233,
      -1,    -1,   236,   237,   238,    -1,    -1,    -1,    -1,   243,
     244,    -1,   246,    -1,   248,    -1,   250,   251,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,    -1,   276,   277,   278,   279,    -1,   281,   282,   283,
      -1,    -1,    -1,   287,   288,   289,   290,   291,    -1,    -1,
     294,   295,    -1,   297,    -1,   299,    -1,   301,   302,   303,
     304,   305,   306,   307,   308,    -1,    -1,   311,   312,    -1,
      -1,   315,   316,   317,   318,    -1,    -1,    -1,   322,   323,
     324,    -1,    -1,    -1,    -1,   329,   330,   331,    -1,   333,
     334,   335,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,    -1,   369,    -1,   371,   372,    -1,
     374,   375,   376,    -1,    -1,   379,    -1,    -1,    -1,   383,
     384,   385,   386,   387,    -1,    -1,   390,   391,   392,    -1,
     394,   395,    -1,   397,   398,   399,    -1,    -1,   402,    -1,
     404,   405,   406,    -1,   408,   409,    -1,   411,    -1,    -1,
     414,   415,   416,   417,   418,   419,   420,   421,   422,    -1,
     424,   425,    -1,    -1,    -1,   429,   430,   431,   432,    -1,
      -1,    -1,   436,    -1,    -1,    -1,   440,   441,   442,   443,
      -1,   445,   446,   447,   448,    -1,    -1,    -1,    -1,    -1,
      -1,   455,   456,    -1,   458,    -1,    -1,   461,    -1,    -1,
     464,   465,   466,    -1,    -1,   469,   470,    -1,   472,   473,
     474,   475,   476,    -1,    -1,   479,   480,    -1,   482,   483,
      -1,    -1,   486,   487,    -1,   489,   490,   491,    -1,   493,
     494,   495,   496,    -1,    -1,    -1,    -1,    -1,   502,   503,
     504,    -1,    -1,    -1,   508,   509,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,   519,   520,    -1,    -1,   523,
      -1,    -1,   526,    -1,   528,    -1,   530,   531,    -1,    -1,
      -1,    -1,    -1,    -1,   538,    -1,    -1,   541,    -1,    -1,
      -1,   545,   546,   547,   548,   549,    -1,    -1,    -1,    -1,
     554,   555,    -1,   557,   558,   559,    -1,     5,   562,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,   151,    -1,    -1,   154,   155,   156,    -1,
      -1,   159,    -1,   161,   162,   163,   164,    -1,    -1,   167,
      -1,    -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,
     178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,
     188,    -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,
     198,   199,   200,   201,    -1,    -1,   204,   205,    -1,    -1,
     208,    -1,    -1,    -1,    -1,   213,   214,    -1,    -1,    -1,
     218,    -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,
      -1,   229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,
     238,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,
     248,    -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,   277,
     278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
     308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,
     318,    -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,
      -1,   329,   330,   331,    -1,   333,   334,   335,    -1,   337,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,    -1,    -1,   365,   366,   367,
      -1,   369,    -1,   371,   372,    -1,   374,   375,   376,    -1,
      -1,   379,    -1,    -1,    -1,   383,   384,   385,   386,   387,
      -1,    -1,   390,   391,   392,    -1,   394,   395,    -1,   397,
     398,   399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,
     408,   409,    -1,   411,    -1,    -1,   414,   415,   416,   417,
     418,   419,   420,   421,   422,    -1,   424,   425,    -1,    -1,
      -1,   429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,
      -1,    -1,   440,   441,   442,   443,    -1,   445,   446,   447,
     448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,
     458,    -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,
      -1,   469,   470,    -1,   472,   473,   474,   475,   476,    -1,
      -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,   487,
      -1,   489,   490,   491,    -1,   493,   494,   495,   496,    -1,
      -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,
     508,   509,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,   519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,
     528,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
     538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,
     548,   549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,
     558,   559,    -1,     5,   562,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    18,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
      -1,    -1,   154,   155,   156,    -1,    -1,   159,    -1,   161,
     162,   163,   164,    -1,    -1,   167,    -1,    -1,    -1,   171,
     172,    -1,   174,    -1,   176,    -1,   178,   179,   180,   181,
      -1,   183,    -1,    -1,    -1,   187,   188,    -1,   190,    -1,
      -1,   193,   194,    -1,    -1,    -1,   198,   199,   200,   201,
      -1,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,
      -1,   213,   214,    -1,    -1,    -1,   218,    -1,    -1,   221,
     222,    -1,    -1,    -1,   226,    -1,    -1,   229,   230,    -1,
      -1,   233,    -1,    -1,   236,   237,    -1,    -1,    -1,    -1,
      -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,   251,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,    -1,   276,   277,   278,   279,    -1,   281,
     282,   283,    -1,    -1,    -1,   287,   288,   289,   290,   291,
      -1,    -1,   294,   295,    -1,   297,    -1,   299,    -1,   301,
     302,   303,   304,   305,   306,   307,   308,    -1,    -1,   311,
     312,    -1,    -1,   315,   316,   317,   318,    -1,    -1,    -1,
     322,   323,   324,    -1,    -1,    -1,    -1,   329,   330,   331,
      -1,   333,   334,   335,    -1,   337,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,    -1,    -1,   365,   366,   367,    -1,   369,    -1,   371,
     372,    -1,   374,   375,   376,    -1,    -1,   379,    -1,    -1,
      -1,   383,   384,   385,   386,   387,    -1,    -1,   390,   391,
     392,    -1,   394,   395,    -1,   397,   398,   399,    -1,    -1,
     402,    -1,   404,   405,   406,    -1,   408,   409,    -1,   411,
      -1,    -1,   414,   415,   416,   417,   418,   419,   420,   421,
     422,    -1,   424,   425,    -1,    -1,    -1,   429,   430,   431,
     432,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,   441,
     442,   443,    -1,   445,   446,   447,   448,    -1,    -1,    -1,
      -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,   461,
      -1,    -1,   464,   465,   466,    -1,    -1,   469,   470,    -1,
     472,   473,   474,   475,   476,    -1,    -1,   479,   480,    -1,
     482,   483,    -1,    -1,   486,   487,    -1,   489,   490,   491,
      -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,
     502,   503,   504,    -1,    -1,    -1,   508,   509,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,   519,   520,    -1,
      -1,   523,    -1,    -1,   526,    -1,   528,    -1,   530,   531,
      -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,    -1,   541,
      -1,    -1,    -1,   545,   546,   547,   548,   549,    -1,    -1,
      -1,    -1,   554,   555,    -1,   557,   558,   559,    -1,     5,
     562,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,
      56,    -1,    58,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    -1,    80,    81,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,   151,    -1,   153,   154,   155,
     156,    -1,    -1,   159,    -1,   161,   162,   163,   164,    -1,
      -1,   167,    -1,    -1,    -1,   171,   172,    -1,   174,    -1,
     176,    -1,   178,   179,   180,   181,    -1,   183,    -1,    -1,
      -1,   187,   188,    -1,   190,    -1,    -1,   193,   194,    -1,
      -1,    -1,   198,   199,   200,   201,    -1,    -1,   204,   205,
      -1,    -1,   208,    -1,    -1,    -1,    -1,   213,   214,    -1,
      -1,    -1,   218,    -1,    -1,   221,   222,    -1,    -1,    -1,
     226,    -1,    -1,   229,   230,    -1,    -1,   233,    -1,    -1,
     236,   237,    -1,    -1,    -1,    -1,    -1,   243,   244,    -1,
     246,    -1,   248,    -1,   250,   251,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,    -1,
     276,   277,   278,   279,    -1,   281,   282,   283,    -1,    -1,
      -1,   287,   288,   289,   290,   291,    -1,    -1,   294,   295,
      -1,   297,    -1,   299,    -1,   301,   302,   303,   304,   305,
     306,   307,   308,    -1,    -1,   311,   312,    -1,    -1,   315,
     316,   317,   318,    -1,    -1,    -1,   322,   323,   324,    -1,
      -1,    -1,    -1,   329,   330,   331,    -1,   333,   334,   335,
      -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,    -1,    -1,   365,
     366,   367,    -1,   369,    -1,   371,   372,    -1,   374,   375,
     376,    -1,    -1,   379,    -1,    -1,    -1,   383,   384,   385,
     386,   387,    -1,    -1,   390,   391,   392,    -1,   394,   395,
      -1,   397,   398,   399,    -1,    -1,   402,    -1,   404,   405,
     406,    -1,   408,   409,    -1,   411,    -1,    -1,   414,   415,
     416,   417,   418,   419,   420,   421,   422,    -1,   424,   425,
      -1,    -1,    -1,   429,   430,   431,   432,    -1,    -1,    -1,
     436,    -1,    -1,    -1,   440,   441,   442,   443,    -1,   445,
     446,   447,   448,    -1,    -1,    -1,    -1,    -1,    -1,   455,
     456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,   465,
     466,    -1,    -1,   469,   470,    -1,   472,   473,   474,   475,
     476,    -1,    -1,   479,   480,    -1,   482,   483,    -1,    -1,
     486,   487,    -1,    -1,   490,   491,    -1,   493,   494,   495,
     496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,
      -1,    -1,   508,   509,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,   519,   520,    -1,    -1,   523,    -1,    -1,
     526,    -1,   528,    -1,   530,   531,    -1,    -1,    -1,    -1,
      -1,    -1,   538,    -1,    -1,   541,    -1,    -1,    -1,   545,
     546,   547,   548,   549,    -1,    -1,    -1,    -1,   554,   555,
      -1,   557,   558,   559,    -1,     5,   562,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,   159,
      -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,    -1,
      -1,   171,   172,   173,   174,    -1,   176,    -1,   178,   179,
     180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,    -1,
     190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,   199,
     200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,    -1,
      -1,    -1,    -1,   213,   214,    -1,    -1,    -1,   218,    -1,
      -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,
     230,    -1,    -1,   233,    -1,    -1,   236,   237,    -1,    -1,
      -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,
     250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,   277,   278,   279,
      -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
      -1,   301,   302,   303,   304,   305,   306,   307,   308,    -1,
      -1,   311,   312,    -1,    -1,   315,   316,   317,   318,    -1,
      -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,   329,
     330,   331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,    -1,    -1,   365,   366,   367,    -1,   369,
      -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,   379,
      -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,
     390,   391,   392,    -1,   394,   395,    -1,   397,   398,   399,
      -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,   409,
      -1,   411,    -1,    -1,   414,   415,   416,   417,   418,   419,
     420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,
     430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,
     440,   441,   442,   443,    -1,   445,   446,   447,   448,    -1,
      -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,
      -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,   469,
     470,    -1,   472,   473,   474,   475,   476,    -1,    -1,   479,
     480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,    -1,
     490,   491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,
      -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,   509,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,   519,
     520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,
     530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,
      -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,   549,
      -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,
      -1,     5,   562,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,
      -1,    55,    56,    -1,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,   105,    -1,    -1,    -1,   109,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,   151,    -1,    -1,
     154,   155,   156,    -1,    -1,   159,    -1,   161,   162,   163,
     164,    -1,    -1,   167,    -1,    -1,    -1,   171,   172,    -1,
     174,    -1,   176,    -1,   178,   179,   180,   181,    -1,   183,
      -1,    -1,    -1,   187,   188,    -1,   190,    -1,    -1,   193,
     194,    -1,    -1,    -1,   198,   199,   200,   201,    -1,    -1,
     204,   205,    -1,    -1,   208,    -1,    -1,    -1,    -1,   213,
     214,    -1,    -1,    -1,   218,    -1,    -1,   221,   222,    -1,
      -1,    -1,   226,    -1,    -1,   229,   230,    -1,    -1,   233,
      -1,    -1,   236,   237,    -1,    -1,    -1,    -1,    -1,   243,
     244,    -1,   246,    -1,   248,    -1,   250,   251,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,    -1,   276,   277,   278,   279,    -1,   281,   282,   283,
      -1,    -1,    -1,   287,   288,   289,   290,   291,    -1,    -1,
     294,   295,    -1,   297,    -1,   299,    -1,   301,   302,   303,
     304,   305,   306,   307,   308,    -1,    -1,   311,   312,    -1,
      -1,   315,   316,   317,   318,    -1,    -1,    -1,   322,   323,
     324,    -1,    -1,    -1,    -1,   329,   330,   331,    -1,   333,
     334,   335,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,    -1,   369,    -1,   371,   372,    -1,
     374,   375,   376,    -1,    -1,   379,    -1,    -1,    -1,   383,
     384,   385,   386,   387,    -1,    -1,   390,   391,   392,    -1,
     394,   395,    -1,   397,   398,   399,    -1,    -1,   402,    -1,
     404,   405,   406,    -1,   408,   409,    -1,   411,    -1,    -1,
     414,   415,   416,   417,   418,   419,   420,   421,   422,    -1,
     424,   425,    -1,    -1,    -1,   429,   430,   431,   432,    -1,
      -1,    -1,   436,    -1,    -1,    -1,   440,   441,   442,   443,
      -1,   445,   446,   447,   448,    -1,    -1,    -1,    -1,    -1,
      -1,   455,   456,    -1,   458,    -1,    -1,   461,    -1,    -1,
     464,   465,   466,    -1,    -1,   469,   470,    -1,   472,   473,
     474,   475,   476,    -1,    -1,   479,   480,    -1,   482,   483,
      -1,    -1,   486,   487,    -1,    -1,   490,   491,    -1,   493,
     494,   495,   496,    -1,    -1,    -1,    -1,    -1,   502,   503,
     504,    -1,    -1,    -1,   508,   509,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,   519,   520,    -1,    -1,   523,
      -1,    -1,   526,    -1,   528,    -1,   530,   531,    -1,    -1,
      -1,    -1,    -1,    -1,   538,    -1,    -1,   541,    -1,    -1,
      -1,   545,   546,   547,   548,   549,    -1,    -1,    -1,    -1,
     554,   555,    -1,   557,   558,   559,    -1,     5,   562,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,   109,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,   151,    -1,    -1,   154,   155,   156,    -1,
      -1,   159,    -1,   161,   162,   163,   164,    -1,    -1,   167,
      -1,    -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,
     178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,
     188,    -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,
     198,   199,   200,   201,    -1,    -1,   204,   205,    -1,    -1,
     208,    -1,    -1,    -1,    -1,   213,   214,    -1,    -1,    -1,
     218,    -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,
      -1,   229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,
      -1,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,
     248,    -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,   277,
     278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
     308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,
     318,    -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,
      -1,   329,   330,   331,    -1,   333,   334,   335,    -1,   337,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,    -1,    -1,   365,   366,   367,
      -1,   369,    -1,   371,   372,    -1,   374,   375,   376,    -1,
      -1,   379,    -1,    -1,    -1,   383,   384,   385,   386,   387,
      -1,    -1,   390,   391,   392,    -1,   394,   395,    -1,   397,
     398,   399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,
     408,   409,    -1,   411,    -1,    -1,   414,   415,   416,   417,
     418,   419,   420,   421,   422,    -1,   424,   425,    -1,    -1,
      -1,   429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,
      -1,    -1,   440,   441,   442,   443,    -1,   445,   446,   447,
     448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,
     458,    -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,
      -1,   469,   470,    -1,   472,   473,   474,   475,   476,    -1,
      -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,   487,
      -1,    -1,   490,   491,    -1,   493,   494,   495,   496,    -1,
      -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,
     508,   509,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,   519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,
     528,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
     538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,
     548,   549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,
     558,   559,    -1,     5,   562,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
      -1,    -1,   154,   155,   156,    -1,    -1,   159,    -1,   161,
     162,   163,   164,    -1,    -1,   167,    -1,    -1,    -1,   171,
     172,    -1,   174,    -1,   176,    -1,   178,   179,   180,   181,
      -1,   183,    -1,    -1,    -1,   187,   188,    -1,   190,    -1,
      -1,   193,   194,    -1,    -1,    -1,   198,   199,   200,   201,
      -1,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,
      -1,   213,   214,    -1,    -1,    -1,   218,    -1,    -1,   221,
     222,    -1,    -1,    -1,   226,    -1,    -1,   229,   230,    -1,
      -1,   233,    -1,    -1,   236,   237,    -1,    -1,    -1,    -1,
      -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,   251,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,    -1,   276,   277,   278,   279,    -1,   281,
     282,   283,    -1,    -1,    -1,   287,   288,   289,   290,   291,
      -1,    -1,   294,   295,    -1,   297,    -1,   299,    -1,   301,
     302,   303,   304,   305,   306,   307,   308,    -1,    -1,   311,
     312,    -1,    -1,   315,   316,   317,   318,    -1,    -1,    -1,
     322,   323,   324,    -1,    -1,    -1,    -1,   329,   330,   331,
      -1,   333,   334,   335,    -1,   337,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,    -1,    -1,   365,   366,   367,   368,   369,    -1,   371,
     372,    -1,   374,   375,   376,    -1,    -1,   379,    -1,    -1,
      -1,   383,   384,   385,   386,   387,    -1,    -1,   390,   391,
     392,    -1,   394,   395,    -1,   397,   398,   399,    -1,    -1,
     402,    -1,   404,   405,   406,    -1,   408,   409,    -1,   411,
      -1,    -1,   414,   415,   416,   417,   418,   419,   420,   421,
     422,    -1,   424,   425,    -1,    -1,    -1,   429,   430,   431,
     432,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,   441,
     442,   443,    -1,   445,   446,   447,   448,    -1,    -1,    -1,
      -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,   461,
      -1,    -1,   464,   465,   466,    -1,    -1,   469,   470,    -1,
     472,   473,   474,   475,   476,    -1,    -1,   479,   480,    -1,
     482,   483,    -1,    -1,   486,   487,    -1,    -1,   490,   491,
      -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,
     502,   503,   504,    -1,    -1,    -1,   508,   509,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,   519,   520,    -1,
      -1,   523,    -1,    -1,   526,    -1,   528,    -1,   530,   531,
      -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,    -1,   541,
      -1,    -1,    -1,   545,   546,   547,   548,   549,    -1,    -1,
      -1,    -1,   554,   555,    -1,   557,   558,   559,    -1,     5,
     562,     7,     8,     9,    10,    11,    12,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    20,    -1,    22,    23,    24,    25,
      26,    27,    28,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      46,    47,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,
      56,    -1,    58,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    69,    70,    71,    72,    73,    74,    75,
      -1,    77,    78,    -1,    80,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,   105,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,   125,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,   151,    -1,    -1,   154,   155,
     156,    -1,    -1,   159,    -1,   161,   162,   163,   164,    -1,
      -1,   167,    -1,    -1,    -1,   171,   172,    -1,   174,    -1,
     176,    -1,   178,   179,   180,   181,    -1,   183,    -1,    -1,
      -1,   187,   188,    -1,   190,    -1,    -1,   193,   194,    -1,
      -1,    -1,   198,   199,   200,   201,    -1,    -1,   204,   205,
      -1,    -1,   208,    -1,    -1,    -1,    -1,   213,   214,    -1,
      -1,    -1,   218,    -1,    -1,   221,   222,    -1,    -1,    -1,
     226,    -1,    -1,   229,   230,    -1,    -1,   233,    -1,    -1,
     236,   237,    -1,    -1,    -1,    -1,    -1,   243,   244,    -1,
     246,    -1,   248,    -1,   250,   251,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,    -1,
     276,   277,   278,   279,    -1,   281,   282,   283,    -1,    -1,
      -1,   287,   288,   289,   290,   291,    -1,    -1,   294,   295,
      -1,   297,    -1,   299,    -1,   301,   302,   303,   304,   305,
     306,   307,   308,    -1,    -1,   311,   312,    -1,    -1,   315,
     316,   317,   318,    -1,    -1,    -1,   322,   323,   324,    -1,
      -1,    -1,    -1,   329,   330,   331,    -1,   333,   334,   335,
      -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   347,   348,   349,    -1,   351,   352,   353,   354,   355,
     356,   357,   358,   359,   360,   361,   362,    -1,    -1,   365,
     366,   367,    -1,   369,    -1,   371,   372,    -1,   374,   375,
     376,    -1,    -1,   379,    -1,    -1,    -1,   383,   384,   385,
     386,   387,    -1,    -1,   390,   391,   392,    -1,   394,   395,
      -1,   397,   398,   399,    -1,    -1,   402,    -1,   404,   405,
     406,    -1,   408,   409,    -1,   411,    -1,    -1,   414,   415,
     416,   417,   418,   419,   420,   421,   422,    -1,   424,   425,
      -1,    -1,    -1,   429,   430,   431,   432,    -1,    -1,    -1,
     436,    -1,    -1,    -1,   440,   441,   442,   443,    -1,   445,
     446,   447,   448,    -1,    -1,    -1,    -1,    -1,    -1,   455,
     456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,   465,
     466,    -1,    -1,   469,   470,    -1,   472,   473,   474,   475,
     476,    -1,    -1,   479,   480,    -1,   482,   483,    -1,    -1,
     486,   487,    -1,    -1,   490,   491,    -1,   493,   494,   495,
     496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,
      -1,    -1,   508,   509,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,   519,   520,    -1,    -1,   523,    -1,    -1,
     526,    -1,   528,    -1,   530,   531,    -1,    -1,    -1,    -1,
      -1,    -1,   538,    -1,    -1,   541,    -1,    -1,    -1,   545,
     546,   547,   548,   549,    -1,    -1,    -1,    -1,   554,   555,
      -1,   557,   558,   559,    -1,     5,   562,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      20,    -1,    22,    23,    24,    25,    26,    27,    28,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    46,    47,    -1,    -1,
      50,    -1,    -1,    53,    -1,    55,    56,    -1,    58,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    69,
      70,    71,    72,    73,    74,    75,    -1,    77,    78,    -1,
      80,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,   105,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,   125,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,   151,    -1,    -1,   154,   155,   156,    -1,    -1,   159,
      -1,   161,   162,   163,   164,    -1,    -1,   167,    -1,    -1,
      -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,   179,
     180,   181,    -1,   183,    -1,    -1,    -1,   187,   188,    -1,
     190,    -1,    -1,   193,   194,    -1,    -1,    -1,   198,   199,
     200,   201,    -1,    -1,   204,   205,    -1,    -1,   208,    -1,
      -1,    -1,    -1,   213,   214,    -1,    -1,    -1,   218,    -1,
      -1,   221,   222,    -1,    -1,    -1,   226,    -1,    -1,   229,
     230,    -1,    -1,   233,    -1,    -1,   236,   237,    -1,    -1,
      -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,
     250,   251,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,   277,   278,   279,
      -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
      -1,   301,   302,   303,   304,   305,   306,   307,   308,    -1,
      -1,   311,   312,    -1,    -1,   315,   316,   317,   318,    -1,
      -1,    -1,   322,   323,   324,    -1,    -1,    -1,    -1,   329,
     330,   331,    -1,   333,   334,   335,    -1,   337,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,   348,   349,
      -1,   351,   352,   353,   354,   355,   356,   357,   358,   359,
     360,   361,   362,    -1,    -1,   365,   366,   367,    -1,   369,
      -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,   379,
      -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,
     390,   391,   392,    -1,   394,   395,    -1,   397,   398,   399,
      -1,    -1,   402,    -1,   404,   405,   406,    -1,   408,   409,
      -1,   411,    -1,    -1,   414,   415,   416,   417,   418,   419,
     420,   421,   422,    -1,   424,   425,    -1,    -1,    -1,   429,
     430,   431,   432,    -1,    -1,    -1,   436,    -1,    -1,    -1,
     440,   441,   442,   443,    -1,   445,   446,   447,   448,    -1,
      -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,
      -1,   461,    -1,    -1,   464,   465,   466,    -1,    -1,   469,
     470,    -1,   472,   473,   474,   475,   476,    -1,    -1,   479,
     480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,   489,
     490,   491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,
      -1,    -1,   502,   503,   504,    -1,    -1,    -1,   508,   509,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,   519,
     520,    -1,    -1,   523,    -1,    -1,   526,    -1,   528,    -1,
     530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,
      -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,   549,
      -1,    -1,    -1,    -1,   554,   555,    -1,   557,   558,   559,
      -1,     5,   562,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    20,    -1,    22,    23,
      24,    25,    26,    27,    28,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    46,    47,    -1,    -1,    50,    -1,    -1,    53,
      -1,    55,    56,    -1,    58,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    69,    70,    71,    72,    73,
      74,    75,    -1,    77,    78,    -1,    80,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,   105,    -1,    -1,    -1,   109,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,   125,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,   151,    -1,    -1,
     154,   155,   156,    -1,    -1,   159,    -1,   161,   162,   163,
     164,    -1,    -1,   167,    -1,    -1,    -1,   171,   172,    -1,
     174,    -1,   176,    -1,   178,   179,   180,   181,    -1,   183,
      -1,    -1,    -1,   187,   188,    -1,   190,    -1,    -1,   193,
     194,    -1,    -1,    -1,   198,   199,   200,   201,    -1,    -1,
     204,   205,    -1,    -1,   208,    -1,    -1,    -1,    -1,   213,
     214,    -1,    -1,    -1,   218,    -1,    -1,   221,   222,    -1,
      -1,    -1,   226,    -1,    -1,   229,   230,    -1,    -1,   233,
      -1,    -1,   236,   237,    -1,    -1,    -1,    -1,    -1,   243,
     244,    -1,   246,    -1,   248,    -1,   250,   251,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,    -1,   276,   277,   278,   279,    -1,   281,   282,   283,
      -1,    -1,    -1,   287,   288,   289,   290,   291,    -1,    -1,
     294,   295,    -1,   297,    -1,   299,    -1,   301,   302,   303,
     304,   305,   306,   307,   308,    -1,    -1,   311,   312,    -1,
      -1,   315,   316,   317,   318,    -1,    -1,    -1,   322,   323,
     324,    -1,    -1,    -1,    -1,   329,   330,   331,    -1,   333,
     334,   335,    -1,   337,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   347,   348,   349,    -1,   351,   352,   353,
     354,   355,   356,   357,   358,   359,   360,   361,   362,    -1,
      -1,   365,   366,   367,    -1,   369,    -1,   371,   372,    -1,
     374,   375,   376,    -1,    -1,   379,    -1,    -1,    -1,   383,
     384,   385,   386,   387,    -1,    -1,   390,   391,   392,    -1,
     394,   395,    -1,   397,   398,   399,    -1,    -1,   402,    -1,
     404,   405,   406,    -1,   408,   409,    -1,   411,    -1,    -1,
     414,   415,   416,   417,   418,   419,   420,   421,   422,    -1,
     424,   425,    -1,    -1,    -1,   429,   430,   431,   432,    -1,
      -1,    -1,   436,    -1,    -1,    -1,   440,   441,   442,   443,
      -1,   445,   446,   447,   448,    -1,    -1,    -1,    -1,    -1,
      -1,   455,   456,    -1,   458,    -1,    -1,   461,    -1,    -1,
     464,   465,   466,    -1,    -1,   469,   470,    -1,   472,   473,
     474,   475,   476,    -1,    -1,   479,   480,    -1,   482,   483,
      -1,    -1,   486,   487,    -1,    -1,   490,   491,    -1,   493,
     494,   495,   496,    -1,    -1,    -1,    -1,    -1,   502,   503,
     504,    -1,    -1,    -1,   508,   509,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,   519,   520,    -1,    -1,   523,
      -1,    -1,   526,    -1,   528,    -1,   530,   531,    -1,    -1,
      -1,    -1,    -1,    -1,   538,    -1,    -1,   541,    -1,    -1,
      -1,   545,   546,   547,   548,   549,    -1,    -1,    -1,    -1,
     554,   555,    -1,   557,   558,   559,    -1,     5,   562,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    20,    -1,    22,    23,    24,    25,    26,    27,
      28,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    46,    47,
      -1,    -1,    50,    -1,    -1,    53,    -1,    55,    56,    -1,
      58,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    69,    70,    71,    72,    73,    74,    75,    -1,    77,
      78,    -1,    80,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,   105,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,   125,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,   151,    -1,    -1,   154,   155,   156,    -1,
      -1,   159,    -1,   161,   162,   163,   164,    -1,    -1,   167,
      -1,    -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,
     178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,   187,
     188,    -1,   190,    -1,    -1,   193,   194,    -1,    -1,    -1,
     198,   199,   200,   201,    -1,    -1,   204,   205,    -1,    -1,
     208,    -1,    -1,    -1,    -1,   213,   214,    -1,    -1,    -1,
     218,    -1,    -1,   221,   222,    -1,    -1,    -1,   226,    -1,
      -1,   229,   230,    -1,    -1,   233,    -1,    -1,   236,   237,
      -1,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,
     248,    -1,   250,   251,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,   277,
     278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
     308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,
     318,    -1,    -1,    -1,   322,   323,   324,    -1,    -1,    -1,
      -1,   329,   330,   331,    -1,   333,   334,   335,    -1,   337,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   347,
     348,   349,    -1,   351,   352,   353,   354,   355,   356,   357,
     358,   359,   360,   361,   362,    -1,    -1,   365,   366,   367,
      -1,   369,    -1,   371,   372,    -1,   374,   375,   376,    -1,
      -1,   379,    -1,    -1,    -1,   383,   384,   385,   386,   387,
      -1,    -1,   390,   391,   392,    -1,   394,   395,    -1,   397,
     398,   399,    -1,    -1,   402,    -1,   404,   405,   406,    -1,
     408,   409,    -1,   411,    -1,    -1,   414,   415,   416,   417,
     418,   419,   420,   421,   422,    -1,   424,   425,    -1,    -1,
      -1,   429,   430,   431,   432,    -1,    -1,    -1,   436,    -1,
      -1,    -1,   440,   441,   442,   443,    -1,   445,   446,   447,
     448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,
     458,    -1,    -1,   461,    -1,    -1,   464,   465,   466,    -1,
      -1,   469,   470,    -1,   472,   473,   474,   475,   476,    -1,
      -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,   487,
      -1,    -1,   490,   491,    -1,   493,   494,   495,   496,    -1,
      -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,
     508,   509,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,   519,   520,    -1,    -1,   523,    -1,    -1,   526,    -1,
     528,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
     538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,
     548,   549,    -1,    -1,    -1,    -1,   554,   555,    -1,   557,
     558,   559,    -1,     5,   562,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    20,    -1,
      22,    23,    24,    25,    26,    27,    28,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    46,    47,    -1,    -1,    50,    -1,
      -1,    53,    -1,    55,    56,    -1,    58,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    69,    70,    71,
      72,    73,    74,    75,    -1,    77,    78,    -1,    80,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,   105,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,   125,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,   151,
      -1,    -1,   154,   155,   156,    -1,    -1,   159,    -1,   161,
     162,   163,   164,    -1,    -1,   167,    -1,    -1,    -1,   171,
     172,    -1,   174,    -1,   176,    -1,   178,   179,   180,   181,
      -1,   183,    -1,    -1,    -1,   187,   188,    -1,   190,    -1,
      -1,   193,   194,    -1,    -1,    -1,   198,   199,   200,   201,
      -1,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,
      -1,   213,   214,    -1,    -1,    -1,   218,    -1,    -1,   221,
     222,    -1,    -1,    -1,   226,    -1,    -1,   229,   230,    -1,
      -1,   233,    -1,    -1,   236,   237,    -1,    -1,    -1,    -1,
      -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,   251,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,    -1,   276,   277,   278,   279,    -1,   281,
     282,   283,    -1,    -1,    -1,   287,   288,   289,   290,   291,
      -1,    -1,   294,   295,    -1,   297,    -1,   299,    -1,   301,
     302,   303,   304,   305,   306,   307,   308,    -1,    -1,   311,
     312,    -1,    -1,   315,   316,   317,   318,    -1,    -1,    -1,
     322,   323,   324,    -1,    -1,    -1,    -1,   329,   330,   331,
      -1,   333,   334,   335,    -1,   337,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,   347,   348,   349,    -1,   351,
     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
     362,    -1,    -1,   365,   366,   367,    -1,   369,    -1,   371,
     372,    -1,   374,   375,   376,    -1,    -1,   379,    -1,    -1,
      -1,   383,   384,   385,   386,   387,    -1,    -1,   390,   391,
     392,    -1,   394,   395,    -1,   397,   398,   399,    -1,    -1,
     402,    -1,   404,   405,   406,    -1,   408,   409,    -1,   411,
      -1,    -1,   414,   415,   416,   417,   418,   419,   420,   421,
     422,    -1,   424,   425,    -1,    -1,    -1,   429,   430,   431,
     432,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,   441,
     442,   443,    -1,   445,   446,   447,   448,    -1,    -1,    -1,
      -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,   461,
      -1,    -1,   464,   465,   466,    -1,    -1,   469,   470,    -1,
     472,   473,   474,   475,   476,    -1,    -1,   479,   480,    -1,
     482,   483,    -1,    -1,   486,   487,    -1,    -1,   490,   491,
      -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,
     502,   503,   504,    -1,    -1,    -1,   508,   509,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,   519,   520,    -1,
      -1,   523,    -1,    -1,   526,    -1,   528,    -1,   530,   531,
      -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,    -1,   541,
      -1,    -1,    -1,   545,   546,   547,   548,   549,    -1,    -1,
      -1,    -1,   554,   555,    -1,   557,   558,   559,    -1,     5,
     562,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    -1,    -1,    22,    23,    24,    25,
      26,    27,    -1,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      -1,    -1,    -1,    -1,    50,    51,    -1,    53,    -1,    55,
      -1,    -1,    -1,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    -1,    70,    -1,    72,    73,    74,    75,
      -1,    77,    78,    -1,    -1,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,    -1,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,    -1,
      -1,    -1,   128,   129,   130,    -1,   132,   133,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,    -1,    -1,    -1,   154,   155,
     156,    -1,    -1,   159,   160,   161,   162,   163,   164,    -1,
      -1,    -1,    -1,    -1,    -1,   171,   172,    -1,   174,    -1,
     176,    -1,   178,   179,   180,   181,    -1,   183,    -1,    -1,
      -1,    -1,   188,    -1,    -1,    -1,    -1,    -1,   194,    -1,
      -1,    -1,   198,   199,   200,   201,   202,    -1,   204,   205,
      -1,    -1,   208,    -1,    -1,    -1,    -1,   213,    -1,    -1,
      -1,    -1,   218,    -1,    -1,   221,   222,   223,    -1,    -1,
     226,    -1,    -1,    -1,   230,    -1,    -1,   233,   234,    -1,
     236,   237,    -1,    -1,    -1,    -1,    -1,   243,   244,    -1,
     246,    -1,   248,    -1,   250,   251,    -1,    -1,    -1,    -1,
     256,    -1,    -1,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,    -1,
     276,   277,   278,   279,    -1,   281,   282,   283,    -1,    -1,
      -1,   287,   288,   289,   290,   291,    -1,    -1,   294,   295,
      -1,   297,    -1,   299,    -1,   301,   302,   303,   304,   305,
     306,   307,   308,    -1,    -1,   311,   312,    -1,    -1,   315,
     316,   317,   318,    -1,    -1,    -1,   322,    -1,   324,    -1,
      -1,    -1,    -1,   329,   330,   331,    -1,   333,   334,   335,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   348,   349,    -1,    -1,   352,   353,   354,    -1,
     356,   357,   358,   359,   360,   361,    -1,    -1,    -1,    -1,
     366,   367,    -1,   369,    -1,   371,   372,    -1,   374,   375,
     376,    -1,    -1,    -1,    -1,    -1,    -1,   383,   384,   385,
     386,   387,    -1,    -1,   390,   391,   392,    -1,   394,    -1,
      -1,   397,    -1,   399,   400,    -1,   402,    -1,    -1,   405,
      -1,    -1,   408,   409,   410,   411,    -1,    -1,    -1,   415,
     416,   417,   418,   419,   420,    -1,   422,    -1,   424,    -1,
      -1,    -1,    -1,   429,   430,   431,    -1,    -1,    -1,    -1,
     436,    -1,    -1,    -1,   440,    -1,   442,    -1,    -1,   445,
      -1,    -1,   448,    -1,    -1,    -1,    -1,    -1,    -1,   455,
     456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,    -1,
     466,    -1,    -1,    -1,   470,    -1,   472,   473,   474,   475,
     476,    -1,    -1,   479,   480,    -1,   482,   483,    -1,    -1,
     486,   487,    -1,    -1,   490,   491,    -1,   493,   494,   495,
     496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,
      -1,    -1,    -1,   509,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,
     526,    -1,    -1,    -1,   530,   531,    -1,    -1,    -1,    -1,
      -1,    -1,   538,    -1,    -1,   541,    -1,    -1,    -1,   545,
     546,   547,   548,   549,    -1,    -1,   552,    -1,   554,    -1,
      -1,   557,    -1,   559,    -1,     5,   562,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      -1,    -1,    22,    23,    24,    25,    26,    27,    -1,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    -1,    -1,    -1,    -1,
      50,    51,    -1,    53,    -1,    55,    -1,    -1,    -1,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    -1,
      70,    -1,    72,    73,    74,    75,    -1,    77,    78,    -1,
      -1,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,    -1,    -1,    -1,   128,   129,
     130,    -1,   132,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,    -1,    -1,    -1,   154,   155,   156,    -1,    -1,   159,
     160,   161,   162,   163,   164,    -1,    -1,    -1,    -1,    -1,
      -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,   179,
     180,   181,    -1,   183,    -1,    -1,    -1,    -1,   188,    -1,
      -1,    -1,    -1,    -1,   194,    -1,    -1,    -1,   198,   199,
     200,   201,   202,    -1,   204,   205,    -1,    -1,   208,    -1,
      -1,    -1,    -1,   213,    -1,    -1,    -1,    -1,   218,    -1,
      -1,   221,   222,   223,    -1,    -1,   226,    -1,    -1,    -1,
     230,    -1,    -1,   233,   234,    -1,   236,   237,    -1,    -1,
      -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,
     250,   251,    -1,    -1,    -1,    -1,   256,    -1,    -1,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,   277,   278,   279,
      -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
      -1,   301,   302,   303,   304,   305,   306,   307,   308,    -1,
      -1,   311,   312,    -1,    -1,   315,   316,   317,   318,    -1,
      -1,    -1,   322,    -1,   324,    -1,    -1,    -1,    -1,   329,
     330,   331,    -1,   333,   334,   335,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,   349,
      -1,    -1,   352,   353,   354,    -1,   356,   357,   358,   359,
     360,   361,    -1,    -1,    -1,    -1,   366,   367,    -1,   369,
      -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,    -1,
      -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,
     390,   391,   392,    -1,   394,    -1,    -1,   397,    -1,   399,
     400,    -1,   402,    -1,    -1,   405,    -1,    -1,   408,   409,
     410,   411,    -1,    -1,    -1,   415,   416,   417,   418,   419,
     420,    -1,   422,    -1,   424,    -1,    -1,    -1,    -1,   429,
     430,   431,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,
     440,    -1,   442,    -1,    -1,   445,    -1,    -1,   448,    -1,
      -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,
      -1,   461,    -1,    -1,   464,    -1,   466,    -1,    -1,    -1,
     470,    -1,   472,   473,   474,   475,   476,    -1,    -1,   479,
     480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,    -1,
     490,   491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,
      -1,    -1,   502,   503,   504,    -1,    -1,    -1,    -1,   509,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,    -1,
      -1,    -1,    -1,   523,    -1,    -1,   526,    -1,    -1,    -1,
     530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,
      -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,   549,
     550,    -1,   552,    -1,   554,    -1,    -1,   557,    -1,   559,
      -1,     5,   562,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,    22,    23,
      24,    25,    26,    27,    -1,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    53,
      -1,    55,    -1,    -1,    -1,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    -1,    70,    -1,    72,    73,
      74,    75,    -1,    77,    78,    -1,    -1,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,    -1,    -1,    -1,   128,   129,   130,    -1,   132,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,    -1,    -1,    -1,
     154,   155,   156,    -1,    -1,   159,   160,   161,   162,   163,
     164,    -1,    -1,    -1,    -1,    -1,    -1,   171,   172,    -1,
     174,    -1,   176,    -1,   178,   179,   180,   181,    -1,   183,
      -1,    -1,    -1,    -1,   188,    -1,    -1,    -1,    -1,    -1,
     194,    -1,    -1,    -1,   198,   199,   200,   201,   202,    -1,
     204,   205,    -1,    -1,   208,    -1,    -1,    -1,    -1,   213,
      -1,    -1,    -1,    -1,   218,    -1,    -1,   221,   222,   223,
      -1,    -1,   226,    -1,    -1,    -1,   230,    -1,    -1,   233,
     234,    -1,   236,   237,    -1,    -1,    -1,    -1,    -1,   243,
     244,    -1,   246,    -1,   248,    -1,   250,   251,    -1,    -1,
      -1,    -1,   256,    -1,    -1,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,    -1,   276,   277,   278,   279,    -1,   281,   282,   283,
      -1,    -1,    -1,   287,   288,   289,   290,   291,    -1,    -1,
     294,   295,    -1,   297,    -1,   299,    -1,   301,   302,   303,
     304,   305,   306,   307,   308,    -1,    -1,   311,   312,    -1,
      -1,   315,   316,   317,   318,    -1,    -1,    -1,   322,    -1,
     324,    -1,    -1,    -1,    -1,   329,   330,   331,    -1,   333,
     334,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   348,   349,    -1,    -1,   352,   353,
     354,    -1,   356,   357,   358,   359,   360,   361,    -1,    -1,
      -1,    -1,   366,   367,    -1,   369,    -1,   371,   372,    -1,
     374,   375,   376,    -1,    -1,    -1,    -1,    -1,    -1,   383,
     384,   385,   386,   387,    -1,    -1,   390,   391,   392,    -1,
     394,    -1,    -1,   397,    -1,   399,   400,    -1,   402,    -1,
      -1,   405,    -1,    -1,   408,   409,   410,   411,    -1,    -1,
      -1,   415,   416,   417,   418,   419,   420,    -1,   422,    -1,
     424,    -1,    -1,    -1,    -1,   429,   430,   431,    -1,    -1,
      -1,    -1,   436,    -1,    -1,    -1,   440,    -1,   442,    -1,
      -1,   445,    -1,    -1,   448,    -1,    -1,    -1,    -1,    -1,
      -1,   455,   456,    -1,   458,    -1,    -1,   461,    -1,    -1,
     464,    -1,   466,    -1,    -1,    -1,   470,    -1,   472,   473,
     474,   475,   476,    -1,    -1,   479,   480,    -1,   482,   483,
      -1,    -1,   486,   487,    -1,    -1,   490,   491,    -1,   493,
     494,   495,   496,    -1,    -1,    -1,    -1,    -1,   502,   503,
     504,    -1,    -1,    -1,    -1,   509,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,    -1,    -1,    -1,    -1,   523,
      -1,    -1,   526,    -1,    -1,    -1,   530,   531,    -1,    -1,
      -1,    -1,    -1,    -1,   538,    -1,    -1,   541,    -1,    -1,
      -1,   545,   546,   547,   548,   549,   550,    -1,   552,    -1,
     554,    -1,    -1,   557,    -1,   559,    -1,     5,   562,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    -1,    -1,    22,    23,    24,    25,    26,    27,
      -1,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    -1,    -1,
      -1,    -1,    50,    51,    -1,    53,    -1,    55,    -1,    -1,
      -1,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    -1,    70,    -1,    72,    73,    74,    75,    -1,    77,
      78,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,   136,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,    -1,    -1,    -1,   154,   155,   156,    -1,
      -1,   159,   160,   161,   162,   163,   164,    -1,    -1,    -1,
      -1,    -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,
     178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,    -1,
     188,    -1,    -1,    -1,    -1,    -1,   194,    -1,    -1,    -1,
     198,   199,   200,   201,   202,    -1,   204,   205,    -1,    -1,
     208,    -1,    -1,    -1,    -1,   213,    -1,    -1,    -1,    -1,
     218,    -1,    -1,   221,   222,   223,    -1,    -1,   226,    -1,
      -1,    -1,   230,    -1,    -1,   233,   234,    -1,   236,   237,
      -1,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,
     248,    -1,   250,   251,    -1,    -1,    -1,    -1,   256,    -1,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,   277,
     278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
     308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,
     318,    -1,    -1,    -1,   322,    -1,   324,    -1,    -1,    -1,
      -1,   329,   330,   331,    -1,   333,   334,   335,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     348,   349,    -1,    -1,   352,   353,   354,    -1,   356,   357,
     358,   359,   360,   361,    -1,    -1,    -1,    -1,   366,   367,
      -1,   369,    -1,   371,   372,    -1,   374,   375,   376,    -1,
      -1,    -1,    -1,    -1,    -1,   383,   384,   385,   386,   387,
      -1,    -1,   390,   391,   392,    -1,   394,    -1,    -1,   397,
      -1,   399,   400,    -1,   402,    -1,    -1,   405,    -1,    -1,
     408,   409,   410,   411,    -1,    -1,    -1,   415,   416,   417,
     418,   419,   420,    -1,   422,    -1,   424,    -1,    -1,    -1,
      -1,   429,   430,   431,    -1,    -1,    -1,    -1,   436,    -1,
      -1,    -1,   440,    -1,   442,    -1,    -1,   445,    -1,    -1,
     448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,
     458,    -1,    -1,   461,    -1,    -1,   464,    -1,   466,    -1,
      -1,    -1,   470,    -1,   472,   473,   474,   475,   476,    -1,
      -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,   487,
      -1,    -1,   490,   491,    -1,   493,   494,   495,   496,    -1,
      -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,
      -1,   509,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,   526,    -1,
      -1,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
     538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,
     548,   549,    -1,    -1,   552,    -1,   554,    -1,    -1,   557,
      -1,   559,    -1,     5,   562,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,
      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    -1,    -1,    -1,    -1,    50,    51,
      -1,    53,    -1,    55,    -1,    -1,    -1,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    -1,    70,    -1,
      72,    73,    74,    75,    -1,    77,    78,    -1,    -1,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,    -1,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,   136,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,    -1,
      -1,    -1,   154,   155,   156,    -1,    -1,   159,   160,   161,
     162,   163,   164,    -1,    -1,    -1,    -1,    -1,    -1,   171,
     172,    -1,   174,    -1,   176,    -1,   178,   179,   180,   181,
      -1,   183,    -1,    -1,    -1,    -1,   188,    -1,    -1,    -1,
      -1,    -1,   194,    -1,    -1,    -1,   198,   199,   200,   201,
     202,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,
      -1,   213,    -1,    -1,    -1,    -1,   218,    -1,    -1,   221,
     222,   223,    -1,    -1,   226,    -1,    -1,    -1,   230,    -1,
      -1,   233,   234,    -1,   236,   237,    -1,    -1,    -1,    -1,
      -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,   251,
      -1,    -1,    -1,    -1,   256,    -1,    -1,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,    -1,   276,   277,   278,   279,    -1,   281,
     282,   283,    -1,    -1,    -1,   287,   288,   289,   290,   291,
      -1,    -1,   294,   295,    -1,   297,    -1,   299,    -1,   301,
     302,   303,   304,   305,   306,   307,   308,    -1,    -1,   311,
     312,    -1,    -1,   315,   316,   317,   318,    -1,    -1,    -1,
     322,    -1,   324,    -1,    -1,    -1,    -1,   329,   330,   331,
      -1,   333,   334,   335,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   348,   349,    -1,    -1,
     352,   353,   354,    -1,   356,   357,   358,   359,   360,   361,
      -1,    -1,    -1,    -1,   366,   367,    -1,   369,    -1,   371,
     372,    -1,   374,   375,   376,    -1,    -1,    -1,    -1,    -1,
      -1,   383,   384,   385,   386,   387,    -1,    -1,   390,   391,
     392,    -1,   394,    -1,    -1,   397,    -1,   399,   400,    -1,
     402,    -1,    -1,   405,    -1,    -1,   408,   409,   410,   411,
      -1,    -1,    -1,   415,   416,   417,   418,   419,   420,    -1,
     422,    -1,   424,    -1,    -1,    -1,    -1,   429,   430,   431,
      -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,    -1,
     442,    -1,    -1,   445,    -1,    -1,   448,    -1,    -1,    -1,
      -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,   461,
      -1,    -1,   464,    -1,   466,    -1,    -1,    -1,   470,    -1,
     472,   473,   474,   475,   476,    -1,    -1,   479,   480,    -1,
     482,   483,    -1,    -1,   486,   487,    -1,    -1,   490,   491,
      -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,
     502,   503,   504,    -1,    -1,    -1,    -1,   509,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,    -1,    -1,    -1,
      -1,   523,    -1,    -1,   526,    -1,    -1,    -1,   530,   531,
      -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,    -1,   541,
      -1,    -1,    -1,   545,   546,   547,   548,   549,    -1,    -1,
     552,    -1,   554,    -1,    -1,   557,    -1,   559,    -1,     5,
     562,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    -1,    -1,    22,    23,    24,    25,
      26,    27,    -1,    -1,    30,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      -1,    -1,    -1,    -1,    50,    51,    -1,    53,    -1,    55,
      -1,    -1,    -1,    -1,    60,    61,    62,    63,    64,    -1,
      66,    67,    -1,    -1,    70,    -1,    72,    73,    74,    75,
      -1,    77,    78,    -1,    -1,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,    -1,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,    -1,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
     136,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,    -1,    -1,    -1,   154,   155,
     156,    -1,    -1,   159,   160,   161,   162,   163,   164,    -1,
      -1,    -1,    -1,    -1,    -1,   171,   172,    -1,   174,    -1,
     176,    -1,   178,   179,   180,   181,    -1,   183,    -1,    -1,
      -1,    -1,   188,    -1,    -1,    -1,    -1,    -1,   194,    -1,
      -1,    -1,   198,   199,   200,   201,   202,    -1,   204,   205,
      -1,    -1,   208,    -1,    -1,    -1,    -1,   213,    -1,    -1,
      -1,    -1,   218,    -1,    -1,   221,   222,   223,    -1,    -1,
     226,    -1,    -1,    -1,   230,    -1,    -1,   233,   234,    -1,
     236,   237,    -1,    -1,    -1,    -1,    -1,   243,   244,    -1,
     246,    -1,   248,    -1,   250,   251,    -1,    -1,    -1,    -1,
     256,    -1,    -1,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,    -1,
     276,   277,   278,   279,    -1,   281,   282,   283,    -1,    -1,
      -1,   287,   288,   289,   290,   291,    -1,    -1,   294,   295,
      -1,   297,    -1,   299,    -1,   301,   302,   303,   304,   305,
     306,   307,   308,    -1,    -1,   311,   312,    -1,    -1,   315,
     316,   317,   318,    -1,    -1,    -1,   322,    -1,   324,    -1,
      -1,    -1,    -1,   329,   330,   331,    -1,   333,   334,   335,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   348,   349,    -1,    -1,   352,   353,   354,    -1,
     356,   357,   358,   359,   360,   361,    -1,    -1,    -1,    -1,
     366,   367,    -1,   369,    -1,   371,   372,    -1,   374,   375,
     376,    -1,    -1,    -1,    -1,    -1,    -1,   383,   384,   385,
     386,   387,    -1,    -1,   390,   391,   392,    -1,   394,    -1,
      -1,   397,    -1,   399,   400,    -1,   402,    -1,    -1,   405,
      -1,    -1,   408,   409,   410,   411,    -1,    -1,    -1,   415,
     416,   417,   418,   419,   420,    -1,   422,    -1,   424,    -1,
      -1,    -1,    -1,   429,   430,   431,    -1,    -1,    -1,    -1,
     436,    -1,    -1,    -1,   440,    -1,   442,    -1,    -1,   445,
      -1,    -1,   448,    -1,    -1,    -1,    -1,    -1,    -1,   455,
     456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,    -1,
     466,    -1,    -1,    -1,   470,    -1,   472,   473,   474,   475,
     476,    -1,    -1,   479,   480,    -1,   482,   483,    -1,    -1,
     486,   487,    -1,    -1,   490,   491,    -1,   493,   494,   495,
     496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,
      -1,    -1,    -1,   509,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,
     526,    -1,    -1,    -1,   530,   531,    -1,    -1,    -1,    -1,
      -1,    -1,   538,    -1,    -1,   541,    -1,    -1,    -1,   545,
     546,   547,   548,   549,    -1,    -1,   552,    -1,   554,    -1,
      -1,   557,    -1,   559,    -1,     5,   562,     7,     8,     9,
      10,    11,    -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,
      -1,    -1,    22,    23,    24,    25,    26,    27,    -1,    -1,
      30,    -1,    -1,    -1,    34,    -1,    -1,    -1,    38,    -1,
      -1,    41,    42,    -1,    44,    -1,    -1,    -1,    -1,    -1,
      50,    51,    -1,    53,    -1,    55,    -1,    -1,    -1,    -1,
      60,    61,    62,    63,    64,    -1,    66,    67,    -1,    -1,
      70,    -1,    72,    73,    74,    75,    -1,    77,    78,    -1,
      -1,    -1,    82,    -1,    -1,    -1,    -1,    87,    -1,    -1,
      -1,    -1,    -1,    -1,    94,    95,    96,    -1,    -1,    99,
      -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,
     110,    -1,   112,    -1,    -1,    -1,   116,    -1,   118,   119,
     120,   121,    -1,    -1,    -1,    -1,    -1,    -1,   128,   129,
     130,    -1,    -1,    -1,   134,    -1,   136,   137,    -1,   139,
     140,   141,    -1,    -1,   144,    -1,   146,   147,   148,   149,
     150,    -1,    -1,    -1,   154,   155,   156,    -1,    -1,   159,
     160,   161,   162,   163,   164,    -1,    -1,    -1,    -1,    -1,
      -1,   171,   172,    -1,   174,    -1,   176,    -1,   178,   179,
     180,   181,    -1,   183,    -1,    -1,    -1,    -1,   188,    -1,
      -1,    -1,    -1,    -1,   194,    -1,    -1,    -1,   198,   199,
     200,   201,   202,    -1,   204,   205,    -1,    -1,   208,    -1,
      -1,    -1,    -1,   213,    -1,    -1,    -1,    -1,   218,    -1,
      -1,   221,   222,   223,    -1,    -1,   226,    -1,    -1,    -1,
     230,    -1,    -1,   233,   234,    -1,   236,   237,    -1,    -1,
      -1,    -1,    -1,   243,   244,    -1,   246,    -1,   248,    -1,
     250,   251,    -1,    -1,    -1,    -1,   256,    -1,    -1,   259,
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
     270,   271,    -1,   273,   274,    -1,   276,   277,   278,   279,
      -1,   281,   282,   283,    -1,    -1,    -1,   287,   288,   289,
     290,   291,    -1,    -1,   294,   295,    -1,   297,    -1,   299,
      -1,   301,   302,   303,   304,   305,   306,   307,   308,    -1,
      -1,   311,   312,    -1,    -1,   315,   316,   317,   318,    -1,
      -1,    -1,   322,    -1,   324,    -1,    -1,    -1,    -1,   329,
     330,   331,    -1,   333,   334,   335,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   348,   349,
      -1,    -1,   352,   353,   354,    -1,   356,   357,   358,   359,
     360,   361,    -1,    -1,    -1,    -1,   366,   367,    -1,   369,
      -1,   371,   372,    -1,   374,   375,   376,    -1,    -1,    -1,
      -1,    -1,    -1,   383,   384,   385,   386,   387,    -1,    -1,
     390,   391,   392,    -1,   394,    -1,    -1,   397,    -1,   399,
     400,    -1,   402,    -1,    -1,   405,    -1,    -1,   408,   409,
     410,   411,    -1,    -1,    -1,   415,   416,   417,   418,   419,
     420,    -1,   422,    -1,   424,    -1,    -1,    -1,    -1,   429,
     430,   431,    -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,
     440,    -1,   442,    -1,    -1,   445,    -1,    -1,   448,    -1,
      -1,    -1,    -1,    -1,    -1,   455,   456,    -1,   458,    -1,
      -1,   461,    -1,    -1,   464,    -1,   466,    -1,    -1,    -1,
     470,    -1,   472,   473,   474,   475,   476,    -1,    -1,   479,
     480,    -1,   482,   483,    -1,    -1,   486,   487,    -1,    -1,
     490,   491,    -1,   493,   494,   495,   496,    -1,    -1,    -1,
      -1,    -1,   502,   503,   504,    -1,    -1,    -1,    -1,   509,
     510,   511,    -1,   513,   514,    -1,   516,   517,    -1,    -1,
      -1,    -1,    -1,   523,    -1,    -1,   526,    -1,    -1,    -1,
     530,   531,    -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,
      -1,   541,    -1,    -1,    -1,   545,   546,   547,   548,   549,
      -1,    -1,   552,    -1,   554,    -1,    -1,   557,    -1,   559,
      -1,     5,   562,     7,     8,     9,    10,    11,    -1,    -1,
      -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,    22,    23,
      24,    25,    26,    27,    -1,    -1,    30,    -1,    -1,    -1,
      34,    -1,    -1,    -1,    38,    -1,    -1,    41,    42,    -1,
      44,    -1,    -1,    -1,    -1,    -1,    50,    51,    -1,    53,
      -1,    55,    -1,    -1,    -1,    -1,    60,    61,    62,    63,
      64,    -1,    66,    67,    -1,    -1,    70,    -1,    72,    73,
      74,    75,    -1,    77,    78,    -1,    -1,    -1,    82,    -1,
      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
      94,    95,    96,    -1,    -1,    99,    -1,    -1,    -1,    -1,
     104,    -1,    -1,    -1,    -1,    -1,   110,    -1,   112,    -1,
      -1,    -1,   116,    -1,   118,   119,   120,   121,    -1,    -1,
      -1,    -1,    -1,    -1,   128,   129,   130,    -1,    -1,    -1,
     134,    -1,   136,   137,    -1,   139,   140,   141,    -1,    -1,
     144,    -1,   146,   147,   148,   149,   150,    -1,    -1,    -1,
     154,   155,   156,    -1,    -1,   159,   160,   161,   162,   163,
     164,    -1,    -1,    -1,    -1,    -1,    -1,   171,   172,    -1,
     174,    -1,   176,    -1,   178,   179,   180,   181,    -1,   183,
      -1,    -1,    -1,    -1,   188,    -1,    -1,    -1,    -1,    -1,
     194,    -1,    -1,    -1,   198,   199,   200,   201,   202,    -1,
     204,   205,    -1,    -1,   208,    -1,    -1,    -1,    -1,   213,
      -1,    -1,    -1,    -1,   218,    -1,    -1,   221,   222,   223,
      -1,    -1,   226,    -1,    -1,    -1,   230,    -1,    -1,   233,
     234,    -1,   236,   237,    -1,    -1,    -1,    -1,    -1,   243,
     244,    -1,   246,    -1,   248,    -1,   250,   251,    -1,    -1,
      -1,    -1,   256,    -1,    -1,   259,   260,   261,   262,   263,
     264,   265,   266,   267,   268,   269,   270,   271,    -1,   273,
     274,    -1,   276,   277,   278,   279,    -1,   281,   282,   283,
      -1,    -1,    -1,   287,   288,   289,   290,   291,    -1,    -1,
     294,   295,    -1,   297,    -1,   299,    -1,   301,   302,   303,
     304,   305,   306,   307,   308,    -1,    -1,   311,   312,    -1,
      -1,   315,   316,   317,   318,    -1,    -1,    -1,   322,    -1,
     324,    -1,    -1,    -1,    -1,   329,   330,   331,    -1,   333,
     334,   335,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,   348,   349,    -1,    -1,   352,   353,
     354,    -1,   356,   357,   358,   359,   360,   361,    -1,    -1,
      -1,    -1,   366,   367,    -1,   369,    -1,   371,   372,    -1,
     374,   375,   376,    -1,    -1,    -1,    -1,    -1,    -1,   383,
     384,   385,   386,   387,    -1,    -1,   390,   391,   392,    -1,
     394,    -1,    -1,   397,    -1,   399,   400,    -1,   402,    -1,
      -1,   405,    -1,    -1,   408,   409,   410,   411,    -1,    -1,
      -1,   415,   416,   417,   418,   419,   420,    -1,   422,    -1,
     424,    -1,    -1,    -1,    -1,   429,   430,   431,    -1,    -1,
      -1,    -1,   436,    -1,    -1,    -1,   440,    -1,   442,    -1,
      -1,   445,    -1,    -1,   448,    -1,    -1,    -1,    -1,    -1,
      -1,   455,   456,    -1,   458,    -1,    -1,   461,    -1,    -1,
     464,    -1,   466,    -1,    -1,    -1,   470,    -1,   472,   473,
     474,   475,   476,    -1,    -1,   479,   480,    -1,   482,   483,
      -1,    -1,   486,   487,    -1,    -1,   490,   491,    -1,   493,
     494,   495,   496,    -1,    -1,    -1,    -1,    -1,   502,   503,
     504,    -1,    -1,    -1,    -1,   509,   510,   511,    -1,   513,
     514,    -1,   516,   517,    -1,    -1,    -1,    -1,    -1,   523,
      -1,    -1,   526,    -1,    -1,    -1,   530,   531,    -1,    -1,
      -1,    -1,    -1,    -1,   538,    -1,    -1,   541,    -1,    -1,
      -1,   545,   546,   547,   548,   549,    -1,    -1,   552,    -1,
     554,    -1,    -1,   557,    -1,   559,    -1,     5,   562,     7,
       8,     9,    10,    11,    -1,    -1,    -1,    -1,    -1,    17,
      -1,    -1,    -1,    -1,    22,    23,    24,    25,    26,    27,
      -1,    -1,    30,    -1,    -1,    -1,    34,    -1,    -1,    -1,
      38,    -1,    -1,    41,    42,    -1,    44,    -1,    -1,    -1,
      -1,    -1,    50,    51,    -1,    53,    -1,    55,    -1,    -1,
      -1,    -1,    60,    61,    62,    63,    64,    -1,    66,    67,
      -1,    -1,    70,    -1,    72,    73,    74,    75,    -1,    77,
      78,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,    87,
      -1,    -1,    -1,    -1,    -1,    -1,    94,    95,    96,    -1,
      -1,    99,    -1,    -1,    -1,    -1,   104,    -1,    -1,    -1,
      -1,    -1,   110,    -1,   112,    -1,    -1,    -1,   116,    -1,
     118,   119,   120,   121,    -1,    -1,    -1,    -1,    -1,    -1,
     128,   129,   130,    -1,    -1,    -1,   134,    -1,    -1,   137,
      -1,   139,   140,   141,    -1,    -1,   144,    -1,   146,   147,
     148,   149,   150,    -1,    -1,    -1,   154,   155,   156,    -1,
      -1,   159,   160,   161,   162,   163,   164,    -1,    -1,    -1,
      -1,    -1,    -1,   171,   172,    -1,   174,    -1,   176,    -1,
     178,   179,   180,   181,    -1,   183,    -1,    -1,    -1,    -1,
     188,    -1,    -1,    -1,    -1,    -1,   194,    -1,    -1,    -1,
     198,   199,   200,   201,   202,    -1,   204,   205,    -1,    -1,
     208,    -1,    -1,    -1,    -1,   213,    -1,    -1,    -1,    -1,
     218,    -1,    -1,   221,   222,   223,    -1,    -1,   226,    -1,
      -1,    -1,   230,    -1,    -1,   233,   234,    -1,   236,   237,
      -1,    -1,    -1,    -1,    -1,   243,   244,    -1,   246,    -1,
     248,    -1,   250,   251,    -1,    -1,    -1,    -1,   256,    -1,
      -1,   259,   260,   261,   262,   263,   264,   265,   266,   267,
     268,   269,   270,   271,    -1,   273,   274,    -1,   276,   277,
     278,   279,    -1,   281,   282,   283,    -1,    -1,    -1,   287,
     288,   289,   290,   291,    -1,    -1,   294,   295,    -1,   297,
      -1,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
     308,    -1,    -1,   311,   312,    -1,    -1,   315,   316,   317,
     318,    -1,    -1,    -1,   322,    -1,   324,    -1,    -1,    -1,
      -1,   329,   330,   331,    -1,   333,   334,   335,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
     348,   349,    -1,    -1,   352,   353,   354,    -1,   356,   357,
     358,   359,   360,   361,    -1,    -1,    -1,    -1,   366,   367,
      -1,   369,    -1,   371,   372,    -1,   374,   375,   376,    -1,
      -1,    -1,    -1,    -1,    -1,   383,   384,   385,   386,   387,
      -1,    -1,   390,   391,   392,    -1,   394,    -1,    -1,   397,
      -1,   399,   400,    -1,   402,    -1,    -1,   405,    -1,    -1,
     408,   409,   410,   411,    -1,    -1,    -1,   415,   416,   417,
     418,   419,   420,    -1,   422,    -1,   424,    -1,    -1,    -1,
      -1,   429,   430,   431,    -1,    -1,    -1,    -1,   436,    -1,
      -1,    -1,   440,    -1,   442,    -1,    -1,   445,    -1,    -1,
     448,    -1,    -1,    -1,    -1,    -1,    -1,   455,   456,    -1,
     458,    -1,    -1,   461,    -1,    -1,   464,    -1,   466,    -1,
      -1,    -1,   470,    -1,   472,   473,   474,   475,   476,    -1,
      -1,   479,   480,    -1,   482,   483,    -1,    -1,   486,   487,
      -1,    -1,   490,   491,    -1,   493,   494,   495,   496,    -1,
      -1,    -1,    -1,    -1,   502,   503,   504,    -1,    -1,    -1,
      -1,   509,   510,   511,    -1,   513,   514,    -1,   516,   517,
      -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,   526,    -1,
      -1,    -1,   530,   531,    -1,    -1,    -1,    -1,    -1,    -1,
     538,    -1,    -1,   541,    -1,    -1,    -1,   545,   546,   547,
     548,   549,    -1,    -1,   552,    -1,   554,    -1,    -1,   557,
      -1,   559,    -1,     5,   562,     7,     8,     9,    10,    11,
      -1,    -1,    -1,    -1,    -1,    17,    -1,    -1,    -1,    -1,
      22,    23,    24,    25,    26,    27,    -1,    -1,    30,    -1,
      -1,    -1,    34,    -1,    -1,    -1,    38,    -1,    -1,    41,
      42,    -1,    44,    -1,    -1,    -1,    -1,    -1,    50,    51,
      -1,    53,    -1,    55,    -1,    -1,    -1,    -1,    60,    61,
      62,    63,    64,    -1,    66,    67,    -1,    -1,    70,    -1,
      72,    73,    74,    75,    -1,    77,    78,    -1,    -1,    -1,
      82,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
      -1,    -1,    94,    95,    96,    -1,    -1,    99,    -1,    -1,
      -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,   110,    -1,
     112,    -1,    -1,    -1,   116,    -1,   118,   119,   120,   121,
      -1,    -1,    -1,    -1,    -1,    -1,   128,   129,   130,    -1,
      -1,    -1,   134,    -1,    -1,   137,    -1,   139,   140,   141,
      -1,    -1,   144,    -1,   146,   147,   148,   149,   150,    -1,
      -1,    -1,   154,   155,   156,    -1,    -1,   159,   160,   161,
     162,   163,   164,    -1,    -1,    -1,    -1,    -1,    -1,   171,
     172,    -1,   174,    -1,   176,    -1,   178,   179,   180,   181,
      -1,   183,    -1,    -1,    -1,    -1,   188,    -1,    -1,    -1,
      -1,    -1,   194,    -1,    -1,    -1,   198,   199,   200,   201,
     202,    -1,   204,   205,    -1,    -1,   208,    -1,    -1,    -1,
      -1,   213,    -1,    -1,    -1,    -1,   218,    -1,    -1,   221,
     222,   223,    -1,    -1,   226,    -1,    -1,    -1,   230,    -1,
      -1,   233,   234,    -1,   236,   237,    -1,    -1,    -1,    -1,
      -1,   243,   244,    -1,   246,    -1,   248,    -1,   250,   251,
      -1,    -1,    -1,    -1,   256,    -1,    -1,   259,   260,   261,
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
      -1,   273,   274,    -1,   276,   277,   278,   279,    -1,   281,
     282,   283,    -1,    -1,    -1,   287,   288,   289,   290,   291,
      -1,    -1,   294,   295,    -1,   297,    -1,   299,    -1,   301,
     302,   303,   304,   305,   306,   307,   308,    -1,    -1,   311,
     312,    -1,    -1,   315,   316,   317,   318,    -1,    -1,    -1,
     322,    -1,   324,    -1,    -1,    -1,    -1,   329,   330,   331,
      -1,   333,   334,   335,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,   348,   349,    -1,    -1,
     352,   353,   354,    -1,   356,   357,   358,   359,   360,   361,
      -1,    -1,    -1,    -1,   366,   367,    -1,   369,    -1,   371,
     372,    -1,   374,   375,   376,    -1,    -1,    -1,    -1,    -1,
      -1,   383,   384,   385,   386,   387,    -1,    -1,   390,   391,
     392,    -1,   394,    -1,    -1,   397,    -1,   399,   400,    -1,
     402,    -1,    -1,   405,    -1,    -1,   408,   409,   410,   411,
      -1,    -1,    -1,   415,   416,   417,   418,   419,   420,    -1,
     422,    -1,   424,    -1,    -1,    -1,    -1,   429,   430,   431,
      -1,    -1,    -1,    -1,   436,    -1,    -1,    -1,   440,    -1,
     442,    -1,    -1,   445,    -1,    -1,   448,    -1,    -1,    -1,
      -1,    -1,    -1,   455,   456,    -1,   458,    -1,    -1,   461,
      -1,    -1,   464,    -1,   466,    -1,    -1,    -1,   470,    -1,
     472,   473,   474,   475,   476,    -1,    -1,   479,   480,    -1,
     482,   483,    -1,    -1,   486,   487,    -1,    -1,   490,   491,
      -1,   493,   494,   495,   496,    -1,    -1,    -1,    -1,    -1,
     502,   503,   504,    -1,    -1,    -1,    -1,   509,   510,   511,
      -1,   513,   514,    -1,   516,   517,    -1,    -1,    -1,    -1,
      -1,   523,    -1,    -1,   526,    -1,    -1,    -1,   530,   531,
      -1,    -1,    -1,    -1,    -1,    -1,   538,    -1,    -1,   541,
      -1,    -1,    -1,   545,   546,   547,   548,   549,    -1,    -1,
     552,    -1,   554,    -1,    -1,   557,    -1,   559,    -1,     5,
     562,     7,     8,     9,    10,    11,    -1,    -1,    -1,    -1,
      -1,    17,    -1,    -1,    -1,    -1,    22,    23,    24,    25,
      26,    27,    -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,
      -1,    -1,    38,    -1,    -1,    41,    42,    -1,    44,    -1,
      -1,    -1,    -1,    -1,    50,    -1,    -1,    53,    -1,    55,
      -1,    -1,    -1,    -1,    60,    61,    -1,    63,    64,    -1,
      66,    67,    -1,    -1,    70,    -1,    72,    73,    74,    75,
      -1,    77,    78,    -1,    -1,    -1,    82,    -1,    -1,    -1,
      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    94,    95,
      96,    -1,    -1,    99,    -1,    -1,    -1,    -1,   104,    -1,
      -1,    -1,    -1,    -1,   110,    -1,   112,    -1,    -1,    -1,
     116,    -1,   118,   119,   120,   121,    -1,    -1,    -1,    -1,
      -1,    -1,   128,   129,   130,    -1,    -1,    -1,   134,    -1,
      -1,   137,    -1,   139,   140,   141,    -1,    -1,   144,    -1,
     146,   147,   148,   149,   150,    -1,    -1,    -1,   154,   155,
     156,    -1,    -1,   159,    -1,   161,   162,   163,   164,    -1,
      -1,    -1,    -1,    -1,    -1,   171,   172,    -1,   174,    -1,
     176,    -1,   178,   179,   180,   181,    -1,   183,    -1,    -1,
      -1,    -1,   188,    -1,    -1,    -1,    -1,    -1,   194,    -1,
      -1,    -1,   198,   199,   200,   201,    -1,    -1,   204,   205,
      -1,    -1,   208,    -1,    -1,    -1,    -1,   213,    -1,    -1,
      -1,    -1,   218,    -1,    -1,   221,   222,    -1,    -1,    -1,
     226,    -1,    -1,    -1,   230,    -1,    -1,   233,    -1,    -1,
     236,   237,    -1,    -1,    -1,    -1,    -1,   243,   244,    -1,
     246,    -1,   248,    -1,   250,   251,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,   259,   260,   261,   262,   263,   264,   265,
     266,   267,   268,   269,   270,   271,    -1,   273,   274,    -1,
     276,   277,   278,   279,    -1,   281,   282,   283,    -1,    -1,
      -1,   287,   288,   289,   290,   291,    -1,    -1,   294,   295,
      -1,   297,    -1,   299,    -1,   301,   302,   303,   304,   305,
     306,   307,   308,    -1,    -1,   311,   312,    -1,    -1,   315,
     316,   317,   318,    -1,    -1,    -1,   322,    -1,   324,    -1,
      -1,    -1,    -1,   329,   330,   331,    -1,   333,   334,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,   348,   349,    -1,    -1,   352,   353,   354,    -1,
     356,   357,   358,   359,   360,   361,    -1,    -1,    -1,    -1,
     366,   367,    -1,   369,    -1,   371,   372,    -1,   374,   375,
     376,    -1,    -1,    -1,    -1,    -1,    -1,   383,   384,   385,
     386,   387,    -1,    -1,   390,   391,   392,    -1,   394,    -1,
      -1,   397,    -1,   399,    -1,    -1,   402,    -1,    -1,   405,
      -1,    -1,   408,   409,    -1,   411,    -1,    -1,    -1,   415,
     416,   417,   418,   419,   420,    -1,   422,    -1,   424,    -1,
      -1,    -1,    -1,   429,   430,   431,    -1,    -1,    -1,    -1,
     436,    -1,    -1,    -1,   440,    -1,   442,    -1,    -1,   445,
      -1,    -1,   448,    -1,    -1,    -1,    -1,    -1,    -1,   455,
     456,    -1,   458,    -1,    -1,   461,    -1,    -1,   464,    -1,
     466,    -1,    -1,    -1,   470,    -1,   472,   473,   474,   475,
     476,    -1,    -1,   479,   480,    -1,   482,   483,    -1,    -1,
     486,   487,    -1,    -1,   490,   491,    -1,   493,   494,   495,
     496,    -1,    -1,    -1,    -1,    -1,   502,   503,   504,    -1,
      -1,    -1,    -1,   509,   510,   511,    -1,   513,   514,    -1,
     516,   517,    -1,    -1,    -1,    -1,    -1,   523,    -1,    -1,
     526,    -1,    -1,    -1,   530,   531,    -1,    -1,    -1,    -1,
      -1,    -1,   538,    -1,    -1,   541,    -1,    -1,    -1,   545,
     546,   547,   548,   549,    -1,    -1,    -1,    -1,   554,    -1,
      -1,   557,    -1,   559,    -1,    -1,   562
};

/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
   symbol of state STATE-NUM.  */
static const yytype_uint16 yystos[] =
{
       0,    13,    14,    28,    30,    34,    47,    48,    54,    58,
      59,    71,    85,   105,   113,   114,   115,   125,   126,   138,
     151,   167,   182,   187,   190,   212,   214,   228,   245,   249,
     336,   355,   365,   373,   393,   396,   398,   401,   404,   406,
     412,   414,   421,   426,   434,   439,   443,   465,   469,   508,
     520,   524,   527,   532,   558,   573,   584,   585,   586,   587,
     588,   589,   591,   596,   598,   603,   637,   771,   924,   963,
     966,   974,   976,   979,   982,   987,   989,   990,   995,   998,
    1005,  1009,  1017,  1018,  1184,  1186,  1192,  1195,  1220,  1228,
    1239,  1241,  1254,  1257,  1260,  1266,  1270,  1274,  1276,  1277,
    1325,  1342,  1351,  1353,  1360,  1362,  1387,  1393,  1394,  1395,
    1396,  1436,  1444,  1445,    11,    92,   110,   176,   203,   250,
     370,   432,   483,   959,  1412,  1415,   246,   325,   997,    92,
    1388,   489,  1316,   206,     5,     7,     8,     9,    10,    11,
      17,    20,    22,    23,    24,    25,    26,    27,    28,    30,
      34,    38,    41,    42,    44,    46,    47,    50,    53,    55,
      56,    58,    60,    61,    62,    63,    64,    66,    67,    69,
      70,    71,    72,    73,    74,    75,    77,    78,    80,    82,
      87,    94,    95,    96,    99,   104,   105,   110,   112,   116,
     118,   119,   120,   121,   125,   128,   129,   130,   134,   136,
     137,   139,   140,   141,   144,   146,   147,   148,   149,   150,
     151,   154,   155,   156,   159,   161,   162,   163,   164,   167,
     171,   172,   174,   176,   178,   179,   180,   181,   183,   187,
     188,   190,   193,   194,   198,   199,   200,   201,   204,   205,
     208,   213,   214,   218,   221,   222,   226,   229,   230,   233,
     236,   237,   243,   244,   246,   248,   250,   251,   259,   260,
     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
     271,   273,   274,   276,   277,   278,   279,   281,   282,   283,
     287,   288,   289,   290,   291,   294,   295,   297,   299,   301,
     302,   303,   304,   305,   306,   307,   308,   311,   312,   315,
     316,   317,   318,   322,   323,   324,   329,   330,   331,   333,
     334,   335,   337,   347,   348,   349,   351,   352,   353,   354,
     355,   356,   357,   358,   359,   360,   361,   362,   365,   366,
     367,   369,   371,   372,   374,   375,   376,   379,   383,   384,
     385,   386,   387,   390,   391,   392,   394,   395,   397,   398,
     399,   402,   404,   405,   406,   408,   409,   411,   414,   415,
     416,   417,   418,   419,   420,   421,   422,   424,   425,   429,
     430,   431,   432,   436,   440,   441,   442,   443,   445,   446,
     447,   448,   455,   456,   458,   461,   464,   465,   466,   469,
     470,   472,   473,   474,   475,   476,   479,   480,   482,   483,
     486,   487,   490,   491,   493,   494,   495,   496,   502,   503,
     504,   508,   509,   510,   511,   513,   514,   516,   517,   519,
     520,   523,   526,   528,   530,   531,   538,   541,   545,   546,
     547,   548,   549,   554,   555,   557,   558,   559,   562,   625,
    1315,  1319,  1323,  1324,   273,   482,   485,  1345,  1345,   554,
    1389,    92,   175,   250,   432,   449,   483,   486,   522,   530,
     607,   608,   824,   825,   826,   911,  1229,  1185,    92,   148,
     176,   206,   250,   370,   432,   483,   486,   505,   530,   545,
    1191,  1319,   997,   624,   580,  1313,  1314,  1319,   597,  1193,
     359,    77,   375,  1275,    95,   206,   559,  1283,  1343,   997,
     772,  1319,  1271,   421,    92,   530,  1345,   997,  1196,  1267,
     975,   624,  1389,  1319,  1020,  1022,  1023,   338,  1327,  1242,
     465,   469,   443,   502,   443,   485,  1240,   359,  1352,  1221,
    1319,    30,    71,   136,   365,   384,   414,   465,  1438,   426,
     573,  1019,     0,   138,   365,   155,   354,  1258,  1313,  1319,
     142,   935,  1319,   142,   625,   184,   625,   238,  1316,  1319,
    1321,   713,   714,   717,   744,  1319,   485,   148,   930,  1412,
    1345,   977,  1389,  1006,  1007,  1313,   638,   580,   500,   980,
     991,    16,  1390,   202,   827,   184,  1321,   715,   744,   624,
     343,  1410,  1412,  1413,  1414,  1415,   485,   825,   206,   203,
     257,   376,  1237,  1238,  1090,  1091,   202,  1190,  1190,  1190,
    1319,   184,  1190,  1190,   744,  1190,   624,  1190,  1345,   592,
    1261,    12,    13,    85,   113,   126,   148,   151,   162,   182,
     206,   212,   249,   371,   388,   394,   402,   426,   439,   440,
     479,   505,   527,   529,  1363,  1365,  1367,  1368,  1319,   335,
      62,   380,   580,  1321,   111,   192,   257,  1198,  1319,     7,
      20,    27,    33,    35,    36,    37,    39,    51,    52,    56,
      57,    63,    66,    80,    83,    84,    88,    89,    91,    92,
      97,    98,    99,   104,   106,   109,   152,   157,   158,   165,
     178,   180,   185,   191,   198,   202,   212,   215,   235,   243,
     254,   275,   280,   290,   294,   296,   300,   301,   302,   303,
     304,   310,   319,   320,   321,   326,   327,   331,   350,   356,
     360,   361,   363,   374,   400,   401,   411,   413,   419,   424,
     467,   468,   473,   477,   478,   481,   489,   493,   494,   495,
     496,   506,   507,   508,   512,   515,   530,   534,   535,   536,
     537,   542,   544,   548,   549,   562,   566,   567,   572,   573,
     576,   577,   579,   580,  1038,  1041,  1044,  1045,  1046,  1047,
    1048,  1049,  1050,  1051,  1052,  1053,  1057,  1060,  1061,  1062,
    1063,  1064,  1065,  1066,  1076,  1080,  1300,  1302,  1304,  1305,
    1309,  1311,  1315,  1319,   216,  1278,  1345,  1345,    45,   773,
     173,    33,   273,  1246,  1272,  1319,  1000,   624,   999,  1345,
     111,   257,  1199,  1227,   273,   375,   443,  1268,  1269,   173,
      12,  1361,  1365,   500,  1390,  1021,    12,   122,   192,   454,
     455,   456,   457,   458,   459,   471,  1027,  1028,  1029,  1326,
      23,    28,    34,    56,    57,    66,    68,    82,    84,    85,
      93,   140,   144,   147,   174,   176,   181,   183,   205,   206,
     225,   246,   273,   315,   335,   358,   369,   370,   431,   443,
     470,   485,   547,   873,   910,  1243,  1246,  1247,  1249,  1333,
     968,   969,   968,   968,   553,   967,   968,  1189,  1313,  1319,
    1345,  1227,    35,   191,   489,  1301,  1317,  1437,  1437,  1437,
    1437,  1437,  1022,  1019,   574,  1319,  1256,  1255,   289,   487,
     514,   926,    89,  1321,  1322,   928,   719,   745,  1319,   927,
     337,     6,    54,   126,   320,   379,   381,   746,  1313,   625,
     460,  1416,  1417,   929,   988,   568,   978,  1319,   219,   575,
    1013,  1014,   573,   639,  1319,   599,  1188,  1189,  1188,    53,
     323,   323,   393,  1391,   319,   320,  1056,  1319,   718,   745,
     169,     6,  1322,  1378,  1379,   401,    10,   148,   370,   505,
     611,   840,  1411,  1417,  1426,  1430,  1412,  1415,   827,  1319,
     173,  1230,  1234,  1235,  1319,  1237,  1038,  1092,   152,  1319,
     625,   625,   332,   745,   625,  1321,   755,  1247,   625,  1322,
    1377,  1188,  1190,   533,   593,   116,   194,   251,   273,   369,
     375,   405,   443,   466,   482,  1262,  1263,  1345,   369,  1366,
     416,   416,   486,   530,   545,   338,  1370,   482,  1372,    61,
     443,  1369,    93,   545,  1371,   332,   575,    18,   142,  1140,
    1141,  1354,  1319,   959,   447,   573,   573,   573,  1061,   573,
     573,   573,  1038,  1097,   573,   573,   573,   573,   573,   573,
     573,   573,   573,  1037,  1037,   573,  1037,   573,   573,   573,
     515,   573,  1300,   573,   573,   573,   573,   573,   573,   573,
     573,   573,   573,  1038,   573,   573,   573,  1093,  1094,  1095,
     573,   573,   573,   573,   573,   573,   573,   573,   573,  1044,
     573,  1037,   573,   573,   573,   573,   573,   573,   573,   573,
     573,   573,   573,   573,   573,   573,   573,   573,   573,   573,
    1037,   573,  1300,   573,   573,   573,  1300,   573,   573,    35,
     191,   489,   573,  1037,  1037,  1037,   573,   573,   573,   573,
     573,   573,  1061,  1061,  1061,   426,   573,  1038,  1405,  1319,
    1081,  1319,   560,  1039,  1042,   142,   143,   177,   186,   220,
     231,   258,   313,  1058,    31,   219,   239,   389,   448,   564,
    1056,   565,   437,   438,   566,   567,   123,   300,   568,   569,
     570,   571,  1061,   100,   101,   102,   103,   104,   172,   195,
     196,   197,   198,   290,   292,   293,   294,   301,   374,   423,
     424,   548,   561,   562,  1137,  1138,    65,   342,  1317,   573,
     580,    47,    75,   257,  1285,  1344,   996,   241,   244,   377,
     776,   780,   579,   590,  1316,   251,  1004,  1319,  1001,  1322,
    1002,  1003,  1313,   983,   216,  1189,  1200,  1201,    47,   575,
    1316,  1366,   332,   421,  1392,  1391,   521,  1397,  1398,   568,
    1031,  1032,  1033,  1029,  1328,  1329,  1330,  1316,   147,   434,
     239,   551,  1253,   509,   573,    92,   148,   176,   370,   485,
     505,   545,  1253,    12,   835,  1321,   240,  1159,  1161,   173,
     219,  1248,  1250,    64,   466,   170,   466,   273,   482,    64,
     466,   194,   466,   466,  1159,  1253,  1250,   251,   139,    67,
     372,   482,   504,   466,   541,   965,   392,   461,   970,   971,
     964,    78,   959,   575,   334,  1440,   480,  1441,   224,   408,
    1439,   574,  1398,  1400,  1401,  1402,  1017,  1259,  1301,  1319,
     109,   822,   823,   832,   833,   882,  1037,   579,   632,     6,
     720,   632,   573,    94,   741,   741,   741,     4,   925,   931,
     425,   545,  1417,  1188,   500,   575,   109,  1008,  1319,  1007,
     206,   227,   908,  1015,   640,   641,  1038,   259,   260,   261,
     262,   263,   264,   266,   267,   268,   269,   270,   271,   272,
     274,   390,   391,   600,   601,   602,   155,   376,   575,   981,
      55,   155,   159,   170,   287,   376,   992,   993,   994,    53,
     393,   152,   606,   720,    95,   741,   200,   575,   827,  1033,
    1033,  1033,  1417,  1313,   912,   913,  1234,  1313,  1319,   575,
    1232,   580,  1236,   575,  1313,   755,   324,   546,   756,   757,
     140,   575,    49,   407,   960,  1188,   579,   594,   595,    47,
     553,   575,  1264,   482,   573,  1380,  1380,  1380,  1380,   176,
     370,   485,  1364,  1368,  1319,   163,   316,  1319,  1355,  1356,
    1200,  1316,  1038,  1038,    12,   122,  1086,  1142,  1086,  1086,
    1086,   550,  1099,  1038,  1038,  1090,  1090,  1038,  1038,  1038,
     122,  1086,  1142,   574,  1038,   574,  1038,  1038,  1038,  1038,
    1309,  1319,   573,  1405,  1137,  1090,    96,    99,   493,   496,
    1139,   122,  1083,  1038,  1038,  1038,  1038,  1090,  1094,     9,
    1096,  1309,   122,  1086,  1038,  1038,   122,  1086,  1038,  1038,
    1090,  1090,  1090,  1038,  1038,  1038,  1038,  1090,  1048,  1038,
    1038,  1038,  1038,  1038,  1038,  1038,  1086,  1086,  1038,  1038,
     122,  1086,  1038,  1038,  1138,  1138,  1038,    43,   232,   501,
    1038,  1038,   574,  1310,  1311,  1319,  1086,  1086,  1038,  1038,
    1038,  1408,  1408,   574,   575,   574,  1038,   579,  1082,  1321,
     580,  1041,  1040,  1043,  1047,   158,   326,   507,   523,  1056,
      12,    17,  1047,  1059,  1048,   573,  1061,  1048,   239,  1049,
      31,   219,   239,   389,  1050,  1051,  1051,  1052,  1060,  1052,
    1060,  1053,  1053,  1053,  1053,  1053,  1061,   567,  1321,  1061,
    1067,  1319,  1010,   246,  1284,  1313,  1346,  1347,  1188,   779,
     778,   354,   786,   188,   227,  1321,    29,   500,  1273,   500,
     575,   500,   575,   500,  1188,  1201,  1197,  1269,   575,   176,
     370,  1364,  1319,    12,   122,  1404,   575,  1024,  1035,  1038,
    1307,  1319,   575,   181,   246,   333,   431,  1331,  1332,  1335,
    1336,   219,  1251,  1316,  1038,   568,   827,   625,   625,   625,
    1313,   625,  1313,   251,   305,   466,  1245,  1245,   254,   327,
     512,  1162,  1163,  1302,  1253,  1319,   625,  1253,  1322,   170,
    1248,   625,  1253,  1248,  1313,  1250,  1248,  1248,  1253,  1253,
     526,   972,   575,   972,   445,   426,   573,   577,  1100,  1101,
    1102,  1103,  1112,  1113,  1121,  1301,   357,  1442,   341,  1155,
    1161,  1403,   823,    65,   873,  1321,    69,    80,   229,   298,
     323,   378,   460,   634,   636,   385,   516,   742,   743,   737,
     738,    92,   193,   347,   356,   362,   446,   530,   609,   610,
    1316,   729,   730,   721,   722,   729,     6,    13,    14,    25,
      26,    54,    58,    59,    63,    69,    77,    83,    95,   112,
     119,   120,   126,   134,   140,   168,   204,   206,   213,   226,
     278,   295,   299,   336,   341,   348,   355,   356,   383,   395,
     396,   397,   398,   418,   470,   483,   503,   521,   769,   829,
     831,   832,   833,   936,   941,   943,   946,   952,   953,   954,
    1151,   332,   619,   932,   110,   218,  1313,   992,  1316,  1319,
     573,   574,   575,   142,   142,   142,   142,   142,   142,   142,
     142,   142,   142,   142,   142,   142,   142,   142,   142,   575,
    1189,   528,   993,   821,   822,   733,   734,   555,   532,   716,
      45,  1379,   625,   625,   625,   176,   604,   510,   533,   916,
     332,  1233,  1231,   580,  1235,   173,   568,  1319,  1141,  1038,
    1187,   756,   142,   435,  1211,  1212,  1322,   960,  1321,   575,
     380,  1263,  1188,  1265,  1319,  1381,  1382,   568,  1313,  1319,
    1376,  1376,  1376,   142,   163,   177,   186,   230,   231,   258,
     316,   367,  1357,  1359,   551,  1143,  1194,   575,   574,  1086,
     574,  1087,   574,   574,   574,  1038,   132,   550,  1098,    18,
     574,   533,   574,   574,   574,   575,   533,   575,  1077,   574,
     568,   574,   575,   575,   574,   574,   574,   580,   574,   173,
     574,   575,  1079,   574,   575,   575,   575,   574,   574,   573,
     575,  1086,   574,   574,   574,  1086,   574,   575,   574,   574,
     574,   574,   574,   574,   574,   575,   574,   219,   574,   575,
     575,   574,   575,   575,   574,   574,   574,   575,   173,   575,
    1086,   574,   574,   574,   575,   575,   575,   574,   173,  1038,
     173,  1038,   173,  1038,   173,   574,   575,   574,   574,   574,
     574,   575,    18,   237,   896,   574,  1020,  1407,  1405,  1090,
     578,   181,   246,   431,  1334,   435,  1319,   340,   343,  1054,
      15,    16,  1055,   158,   326,   507,   523,   573,    16,  1038,
    1405,   146,  1147,  1048,  1048,   573,  1061,  1048,  1137,  1137,
    1038,  1071,  1072,  1073,   573,   580,  1011,  1012,  1313,   207,
    1141,   575,   992,   573,   784,   784,   106,   165,   191,   254,
     327,   512,  1166,  1169,  1170,   774,   777,   573,  1038,  1316,
    1319,  1322,  1322,  1003,  1313,   155,   376,   531,   984,   985,
     986,   426,   434,   537,   538,   573,   817,  1202,  1205,   182,
    1376,  1376,  1376,  1399,  1032,   173,   216,  1025,  1026,  1154,
    1155,  1180,  1034,   580,  1329,   109,   502,  1319,  1338,   306,
     356,   579,   873,  1337,  1316,   173,  1252,   574,  1319,   330,
     575,   443,  1253,  1253,  1248,  1313,  1253,  1253,   602,   973,
     971,  1120,  1319,    86,   209,   224,   235,   309,   413,   471,
    1111,   434,   575,  1313,  1120,   575,   170,  1443,    45,  1159,
    1212,  1212,  1316,   460,   460,   460,   460,   460,   425,  1316,
    1316,   208,   739,   740,   747,   755,   757,  1316,  1316,  1316,
    1316,   106,   165,   191,   254,   327,   512,  1165,  1316,  1316,
     574,   575,    24,   279,   731,   732,   747,   748,   749,   755,
     757,   723,   724,   747,   748,   749,    68,    79,   175,   355,
     449,   845,   848,   849,   906,   908,   958,   958,   355,  1212,
    1212,   958,  1212,   355,   355,  1212,  1212,   500,   118,  1212,
     225,   483,   169,   355,   368,   908,   958,   225,  1212,   483,
     118,  1212,  1212,  1212,  1212,   958,   355,    45,  1212,   770,
    1212,   355,   353,    18,   142,   500,   962,   355,   355,  1212,
     109,   121,   288,  1319,  1212,  1212,   829,   575,   768,   769,
     941,   573,   580,   844,   850,  1312,  1319,    73,   422,   396,
     933,  1418,   368,  1133,  1134,  1135,  1319,  1038,  1165,  1316,
    1316,   106,   165,   254,   327,   512,  1167,  1316,  1165,  1316,
    1316,  1316,  1316,  1316,  1165,  1165,  1316,  1316,  1165,   601,
      69,   317,   386,   517,   735,   736,   747,   751,   752,   753,
     754,   755,   757,  1321,   250,   725,   726,   356,   489,   612,
    1432,     8,    29,   711,   625,   239,   573,   759,   828,   830,
     831,    44,   188,   420,   918,   918,  1313,   533,  1143,  1319,
    1101,   580,  1236,   834,  1321,   595,   249,   574,   575,   580,
     580,   500,   500,   500,  1358,  1144,  1160,  1161,  1202,   215,
    1038,   574,  1038,   492,  1038,  1038,   136,    33,    57,    96,
      99,   107,   311,   441,   496,   525,  1088,    33,   874,  1321,
    1038,   874,  1088,  1090,   574,  1060,  1060,  1319,  1038,  1038,
    1090,  1038,  1038,  1038,  1048,  1309,   574,   574,  1038,  1038,
    1038,  1038,  1038,  1038,  1090,   215,  1038,  1038,  1038,   574,
    1038,  1038,  1038,  1038,   173,  1038,   173,  1038,   173,  1038,
    1038,  1038,    33,    57,   891,   892,   893,   894,   895,  1166,
     574,  1409,   574,   574,   580,   580,   580,  1321,  1038,  1041,
    1044,  1405,  1047,   574,   575,   574,  1061,    16,  1038,  1405,
    1147,   574,  1033,  1074,  1075,  1089,  1090,  1319,   575,  1013,
     489,  1318,   219,   257,   380,   556,  1348,  1347,  1033,   476,
     787,   784,   781,   782,   783,  1319,   500,   985,   818,  1203,
     573,  1208,  1213,  1208,   574,   817,  1204,  1306,  1307,  1310,
    1319,  1206,   338,   173,   173,   173,  1018,   127,  1101,  1181,
     170,   249,  1030,  1180,  1160,  1026,    18,  1036,  1316,  1319,
     568,  1319,   580,   221,   580,  1211,   109,   874,   875,  1211,
     170,  1211,   579,  1321,    33,   109,   877,   878,  1321,  1167,
    1244,   144,   547,  1163,  1163,   553,  1143,  1248,   575,  1115,
    1120,  1100,   224,   224,   344,  1122,   224,   235,   413,  1122,
    1112,  1100,  1223,  1224,  1310,  1100,  1141,  1117,  1118,  1165,
     291,  1156,   109,   879,   881,  1321,   875,    95,    95,   110,
     218,  1212,   575,   740,   610,  1212,  1212,   575,   732,   575,
     724,   921,  1312,   908,   909,   997,   909,    59,   169,   368,
     522,   847,   907,   846,   847,   921,  1312,   997,  1167,  1165,
    1312,  1165,    12,   942,   950,   951,  1319,   997,  1316,  1316,
     873,  1212,  1165,   227,   950,   227,  1312,  1312,   834,  1212,
     163,   230,   323,   838,  1165,  1167,  1167,  1312,   997,  1152,
    1153,  1310,   109,  1165,   773,  1316,   997,  1313,   997,   997,
      72,    74,   109,   130,   164,   349,   387,   837,  1165,   573,
       6,   126,   954,   842,   843,   844,   845,  1319,     8,   163,
     961,   388,   846,   898,   851,   580,   320,   366,    22,   149,
     613,   500,   119,   134,   615,   573,  1420,   574,   575,  1212,
    1212,  1212,  1212,   575,   736,   337,   184,   156,   727,   728,
     747,   748,   749,   750,   753,   754,   755,   757,   489,   332,
     573,   113,   212,   527,   712,  1431,  1313,   239,   355,   761,
     768,   842,   768,   575,   830,   605,  1101,  1154,  1143,  1141,
    1382,   568,   568,  1378,  1378,  1378,   573,  1038,   332,  1218,
    1038,   574,  1038,   492,   573,   867,   867,   573,   862,   863,
     867,   217,   217,   574,   574,   574,   574,   574,  1078,  1137,
    1137,   574,   574,  1085,  1155,   575,   575,   574,   219,  1068,
    1069,   574,   574,   574,   574,   575,   574,   574,  1038,   574,
     170,   574,   574,   575,   574,   575,   575,   574,  1038,   574,
    1038,   574,  1038,   574,   574,   574,   573,   886,   886,    19,
     114,   411,   566,   888,   889,   890,   575,  1406,   580,   922,
     574,  1090,  1047,   574,   575,   574,  1038,   575,   574,  1012,
     203,  1016,  1279,   150,   436,  1349,   556,   246,   792,  1048,
      45,   775,   574,   575,  1322,  1027,  1209,  1210,  1310,  1214,
     575,   573,  1205,   574,   574,   575,   580,  1397,   173,  1378,
    1378,  1378,  1143,  1143,   128,   345,  1176,  1177,  1182,   527,
     219,  1316,  1319,   580,  1319,   237,  1319,    12,    33,   109,
     332,  1038,  1341,    65,   880,  1038,  1322,   331,   356,   489,
    1340,  1334,  1211,  1159,   261,  1253,   602,  1400,  1116,   235,
     224,  1112,  1122,  1122,   224,   332,   332,   533,   575,  1222,
    1211,  1131,  1132,  1027,  1038,  1157,  1308,   199,   758,  1166,
     740,   758,   758,   732,   724,   944,  1038,   227,   227,   909,
     921,   913,   126,   434,   942,   955,   939,   575,  1166,   875,
    1316,   921,   960,  1316,   956,   942,   575,    19,   114,  1158,
     942,   947,   942,  1188,   574,   575,  1319,  1313,    32,    33,
      38,    40,    41,    42,    57,    96,    99,   107,   124,   141,
     164,   166,   178,   179,   217,   243,   252,   253,   255,   284,
     285,   286,   302,   303,   304,   308,   311,   328,   329,   360,
     361,   382,   430,   434,   444,   490,   493,   496,   497,   498,
     499,   539,   540,   562,   852,   855,   856,   857,   858,   859,
     860,   861,  1319,   366,  1038,  1038,   332,   619,   625,   332,
      69,   620,  1319,  1421,    18,  1134,  1316,  1166,   758,   758,
     736,   573,  1319,  1212,   575,   728,   422,  1433,   332,   409,
     573,   626,  1313,   763,   574,   760,   830,   573,  1143,   240,
    1164,   403,  1383,  1383,  1383,   109,  1038,  1216,  1217,   129,
    1137,  1038,   327,    20,    33,    46,   519,   873,   883,   327,
     574,   574,   574,   428,  1084,  1038,  1038,    41,   309,   574,
     553,  1070,  1038,  1137,  1038,  1038,  1038,  1038,   574,   574,
     574,  1166,   574,   896,   891,   889,   891,   892,  1397,  1319,
     574,  1090,  1034,  1075,   233,   203,   401,  1286,   297,  1034,
     780,   573,   794,   783,  1031,   575,  1211,  1215,  1216,  1213,
    1207,  1205,  1306,  1319,  1378,  1160,   184,  1148,  1318,  1318,
     579,  1178,  1179,  1321,   436,   568,   380,   399,   429,  1339,
     881,  1211,   573,   573,  1338,  1038,   142,   574,  1102,   344,
    1100,  1112,   224,   224,  1100,  1112,  1105,  1104,  1106,  1224,
    1143,  1217,  1129,  1130,  1031,   575,  1158,   354,   573,   945,
     921,   913,   573,   109,   109,   938,   850,   992,   951,   880,
     852,   937,  1153,   948,   950,   940,   574,   843,   899,   573,
     573,   867,   862,   364,   853,   862,   862,   883,    57,   539,
     856,   858,   883,   883,    57,   540,   540,   543,   862,   854,
     867,   883,   573,   867,    25,    65,    69,   109,   161,   326,
     332,   368,   430,   470,   522,   869,   870,   871,   897,  1056,
     543,   573,   883,    33,   573,   884,   573,   573,   867,   573,
     863,   868,   580,  1137,   443,  1316,   125,   934,   574,   575,
    1419,   609,   758,   728,   613,   210,   219,   346,   646,   647,
     648,   649,  1033,   107,   217,   382,   472,   841,   627,   574,
     817,   828,   765,  1286,   919,   920,  1319,  1163,    60,   222,
     318,   462,   474,   557,  1374,  1375,   553,  1384,  1384,  1384,
     574,   575,  1219,   574,   574,   884,    20,   519,   873,   885,
     884,   874,   574,   575,  1301,   574,   574,   575,   297,   229,
     375,   574,   574,   574,   574,   574,   574,   887,   574,  1409,
     574,  1036,   216,   322,  1350,   574,   188,   227,   355,   795,
     796,   819,  1210,  1217,   574,  1400,    45,   189,  1145,  1183,
    1321,   575,   297,    70,   513,   380,  1340,   489,   489,  1211,
    1316,  1141,   224,   332,  1108,  1112,  1112,   332,  1110,  1038,
    1038,   573,  1154,   168,   203,   532,  1124,  1125,  1128,  1119,
    1308,  1166,   795,   573,   573,   919,    99,   493,   496,   566,
     567,  1303,  1304,   992,   961,   869,   997,   949,   984,   275,
     332,   573,   900,   902,   903,   904,   327,   327,   441,   525,
     563,   864,   865,   866,   573,   864,   864,   883,   543,   864,
     573,   883,   327,   864,   879,  1316,   321,   872,  1303,   109,
     130,   164,   836,   527,   109,   109,   121,   288,   227,   871,
     227,   326,   327,   327,   327,   327,   864,   327,   864,  1319,
     614,   621,   622,  1319,  1422,  1423,   574,   618,   619,   574,
     575,   644,  1427,   447,   642,   643,   645,  1319,   574,   768,
      18,   820,   574,   575,  1158,   573,   489,   489,   489,    16,
    1373,   182,   276,   277,   281,   282,  1385,  1386,  1217,   227,
     874,   884,   327,  1038,   297,   154,   574,  1280,   573,   785,
     573,   797,   574,   575,   839,  1026,  1160,  1149,  1308,  1146,
    1154,    67,  1287,  1179,   574,   574,  1341,    16,  1100,  1107,
     533,  1109,   533,  1136,  1319,  1164,   908,   908,  1125,   839,
    1158,   574,   919,   919,   574,  1305,  1305,   957,   992,   216,
     174,   352,   442,   113,   527,   901,  1319,   904,   574,   574,
     866,   923,  1301,   923,   574,  1037,   321,   538,   574,   574,
     574,   574,   464,   616,    51,    62,   160,   202,   223,   234,
     335,   410,   623,   667,   669,   670,   671,   673,   674,   675,
     676,   677,   678,   680,   688,   689,   692,   703,  1315,  1320,
    1324,   426,   573,  1424,   615,  1434,   648,  1319,  1313,  1316,
     574,   575,   644,   764,   762,   573,   817,    69,   226,   553,
     914,   915,   916,   917,   920,   327,  1374,   338,  1165,  1165,
    1165,  1165,  1386,   527,   574,   574,   485,  1033,   788,   790,
     791,  1319,   801,  1319,   796,  1030,   553,   575,  1150,  1158,
    1038,  1160,   135,   145,   339,   488,  1288,  1289,   242,  1290,
     262,   332,  1038,   573,  1038,   573,   574,   575,   170,  1123,
    1123,   574,   574,   914,   961,   573,    49,   323,   407,   434,
     905,   905,   574,   575,   574,   575,   574,  1037,   883,   884,
     883,   884,  1038,   137,   617,   690,   693,  1319,   173,   316,
     681,   668,  1320,  1320,  1319,   672,   586,    30,   256,   400,
     552,   706,   582,  1020,  1019,   553,  1425,   620,   633,   852,
     170,   628,   645,   852,  1400,   765,   817,   766,  1316,  1212,
     351,   917,  1158,   574,  1225,  1226,  1310,  1313,   792,   475,
     793,   574,   575,   798,    87,   415,  1308,   370,  1171,    45,
      45,   135,    45,  1289,   463,   488,  1291,  1292,   142,  1114,
    1136,  1136,  1319,   184,   224,   341,  1127,  1126,   898,   914,
     795,     5,   109,   326,   902,  1319,   883,  1301,   883,  1038,
    1038,   550,   695,   699,   173,  1319,   683,   684,  1038,   707,
     651,   666,   667,   669,   671,   673,   675,   676,   677,   678,
     680,   688,   703,   651,   708,   704,   574,    50,    59,   246,
     125,   117,   634,   635,  1056,  1435,  1033,   409,   574,  1397,
    1165,  1315,   575,  1211,  1281,  1034,  1166,   789,   791,   537,
     802,  1158,  1319,  1301,  1301,    45,  1301,    45,    45,  1292,
    1167,  1038,   574,   574,    45,    45,   573,   573,   574,   691,
     700,   132,   699,   702,   216,   136,  1038,   652,   136,   666,
     581,   526,  1038,   706,  1400,    59,   338,    59,   621,   117,
     666,  1428,   629,   767,  1226,  1217,   873,   876,   574,   793,
     219,   236,   799,  1172,  1301,  1301,  1301,    16,   578,  1133,
    1135,   550,   694,   696,  1038,   651,   136,   679,   202,   492,
     108,   650,   653,   256,   581,   710,   125,   705,  1320,   338,
     338,   131,   852,  1400,   875,  1282,   573,   491,    69,    95,
     206,   278,   295,   317,   483,   814,   815,   816,  1247,   573,
     265,   574,   574,   697,   696,   702,   701,    51,   682,  1319,
     685,    81,   153,   658,   664,  1319,   136,   666,   581,  1038,
     709,   419,   630,   417,  1293,   806,   807,   808,  1048,   283,
     573,   803,   804,   805,  1212,   118,   118,  1212,  1212,  1212,
    1212,   800,   816,   140,  1033,  1173,  1174,  1175,   142,  1038,
     136,   492,   575,   651,   187,   575,   654,    76,    90,   581,
     136,   651,  1429,   633,   200,  1287,   574,   575,   283,   808,
    1316,  1212,  1212,   254,   327,   512,  1168,  1169,  1168,  1166,
    1321,   573,   809,  1212,  1038,   574,   575,  1165,   698,    51,
     651,  1319,   686,   170,  1319,   852,   170,   170,   400,   136,
     666,   631,    45,  1290,   807,   574,   574,  1316,  1316,   476,
     810,   811,   834,  1034,  1175,   492,   132,   133,   687,   655,
     109,   665,   452,   661,  1165,   656,   657,   552,   666,  1301,
     203,  1294,   812,   574,   575,   651,   651,   683,   451,   453,
     659,   660,   661,   663,  1056,  1319,  1038,   538,   662,   586,
     327,   573,  1296,   813,  1321,   811,   575,   666,   171,  1317,
     242,   417,  1295,   574,   579,  1297,  1298,  1310,   434,  1299,
     814,   660,  1321,   574,   575,  1225,  1298
};

#define yyerrok		(yyerrstatus = 0)
#define yyclearin	(yychar = YYEMPTY)
#define YYEMPTY		(-2)
#define YYEOF		0

#define YYACCEPT	goto yyacceptlab
#define YYABORT		goto yyabortlab
#define YYERROR		goto yyerrorlab


/* Like YYERROR except do call yyerror.  This remains here temporarily
   to ease the transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */

#define YYFAIL		goto yyerrlab

#define YYRECOVERING()  (!!yyerrstatus)

#define YYBACKUP(Token, Value)					\
do								\
  if (yychar == YYEMPTY && yylen == 1)				\
    {								\
      yychar = (Token);						\
      yylval = (Value);						\
      yytoken = YYTRANSLATE (yychar);				\
      YYPOPSTACK (1);						\
      goto yybackup;						\
    }								\
  else								\
    {								\
      yyerror (YY_("syntax error: cannot back up")); \
      YYERROR;							\
    }								\
while (YYID (0))


#define YYTERROR	1
#define YYERRCODE	256


/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
   If N is 0, then set CURRENT to the empty location which ends
   the previous symbol: RHS[0] (always defined).  */

#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N)				\
    do									\
      if (YYID (N))                                                    \
	{								\
	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
	}								\
      else								\
	{								\
	  (Current).first_line   = (Current).last_line   =		\
	    YYRHSLOC (Rhs, 0).last_line;				\
	  (Current).first_column = (Current).last_column =		\
	    YYRHSLOC (Rhs, 0).last_column;				\
	}								\
    while (YYID (0))
#endif


/* YY_LOCATION_PRINT -- Print the location on the stream.
   This macro was not mandated originally: define only if we know
   we won't break user code: when these are the locations we know.  */

#ifndef YY_LOCATION_PRINT
# if YYLTYPE_IS_TRIVIAL
#  define YY_LOCATION_PRINT(File, Loc)			\
     fprintf (File, "%d.%d-%d.%d",			\
	      (Loc).first_line, (Loc).first_column,	\
	      (Loc).last_line,  (Loc).last_column)
# else
#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif


/* YYLEX -- calling `yylex' with the right arguments.  */

#ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, YYLEX_PARAM)
#else
# define YYLEX yylex (&yylval)
#endif

/* Enable debugging if requested.  */
#if YYDEBUG

# ifndef YYFPRINTF
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
#  define YYFPRINTF fprintf
# endif

# define YYDPRINTF(Args)			\
do {						\
  if (yydebug)					\
    YYFPRINTF Args;				\
} while (YYID (0))

# define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
do {									  \
  if (yydebug)								  \
    {									  \
      YYFPRINTF (stderr, "%s ", Title);					  \
      yy_symbol_print (stderr,						  \
		  Type, Value); \
      YYFPRINTF (stderr, "\n");						  \
    }									  \
} while (YYID (0))


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
#endif
{
  if (!yyvaluep)
    return;
# ifdef YYPRINT
  if (yytype < YYNTOKENS)
    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
  YYUSE (yyoutput);
# endif
  switch (yytype)
    {
      default:
	break;
    }
}


/*--------------------------------.
| Print this symbol on YYOUTPUT.  |
`--------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep)
    FILE *yyoutput;
    int yytype;
    YYSTYPE const * const yyvaluep;
#endif
{
  if (yytype < YYNTOKENS)
    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
  else
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);

  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
  YYFPRINTF (yyoutput, ")");
}

/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included).                                                   |
`------------------------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
#else
static void
yy_stack_print (bottom, top)
    yytype_int16 *bottom;
    yytype_int16 *top;
#endif
{
  YYFPRINTF (stderr, "Stack now");
  for (; bottom <= top; ++bottom)
    YYFPRINTF (stderr, " %d", *bottom);
  YYFPRINTF (stderr, "\n");
}

# define YY_STACK_PRINT(Bottom, Top)				\
do {								\
  if (yydebug)							\
    yy_stack_print ((Bottom), (Top));				\
} while (YYID (0))


/*------------------------------------------------.
| Report that the YYRULE is going to be reduced.  |
`------------------------------------------------*/

#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
#else
static void
yy_reduce_print (yyvsp, yyrule)
    YYSTYPE *yyvsp;
    int yyrule;
#endif
{
  int yynrhs = yyr2[yyrule];
  int yyi;
  unsigned long int yylno = yyrline[yyrule];
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
	     yyrule - 1, yylno);
  /* The symbols being reduced.  */
  for (yyi = 0; yyi < yynrhs; yyi++)
    {
      fprintf (stderr, "   $%d = ", yyi + 1);
      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
		       &(yyvsp[(yyi + 1) - (yynrhs)])
		       		       );
      fprintf (stderr, "\n");
    }
}

# define YY_REDUCE_PRINT(Rule)		\
do {					\
  if (yydebug)				\
    yy_reduce_print (yyvsp, Rule); \
} while (YYID (0))

/* Nonzero means print parse trace.  It is left uninitialized so that
   multiple parsers can coexist.  */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */


/* YYINITDEPTH -- initial size of the parser's stacks.  */
#ifndef	YYINITDEPTH
# define YYINITDEPTH 200
#endif

/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   if the built-in stack extension method is used).

   Do not make this value too large; the results are undefined if
   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   evaluated with infinite-precision integer arithmetic.  */

#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif



#if YYERROR_VERBOSE

# ifndef yystrlen
#  if defined __GLIBC__ && defined _STRING_H
#   define yystrlen strlen
#  else
/* Return the length of YYSTR.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
    const char *yystr;
#endif
{
  YYSIZE_T yylen;
  for (yylen = 0; yystr[yylen]; yylen++)
    continue;
  return yylen;
}
#  endif
# endif

# ifndef yystpcpy
#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
#   define yystpcpy stpcpy
#  else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   YYDEST.  */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
    char *yydest;
    const char *yysrc;
#endif
{
  char *yyd = yydest;
  const char *yys = yysrc;

  while ((*yyd++ = *yys++) != '\0')
    continue;

  return yyd - 1;
}
#  endif
# endif

# ifndef yytnamerr
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   quotes and backslashes, so that it's suitable for yyerror.  The
   heuristic is that double-quoting is unnecessary unless the string
   contains an apostrophe, a comma, or backslash (other than
   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
   null, do not copy; instead, return the length of what the result
   would have been.  */
static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
  if (*yystr == '"')
    {
      YYSIZE_T yyn = 0;
      char const *yyp = yystr;

      for (;;)
	switch (*++yyp)
	  {
	  case '\'':
	  case ',':
	    goto do_not_strip_quotes;

	  case '\\':
	    if (*++yyp != '\\')
	      goto do_not_strip_quotes;
	    /* Fall through.  */
	  default:
	    if (yyres)
	      yyres[yyn] = *yyp;
	    yyn++;
	    break;

	  case '"':
	    if (yyres)
	      yyres[yyn] = '\0';
	    return yyn;
	  }
    do_not_strip_quotes: ;
    }

  if (! yyres)
    return yystrlen (yystr);

  return yystpcpy (yyres, yystr) - yyres;
}
# endif

/* Copy into YYRESULT an error message about the unexpected token
   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
   including the terminating null byte.  If YYRESULT is null, do not
   copy anything; just return the number of bytes that would be
   copied.  As a special case, return 0 if an ordinary "syntax error"
   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
   size calculation.  */
static YYSIZE_T
yysyntax_error (char *yyresult, int yystate, int yychar)
{
  int yyn = yypact[yystate];

  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
    return 0;
  else
    {
      int yytype = YYTRANSLATE (yychar);
      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
      YYSIZE_T yysize = yysize0;
      YYSIZE_T yysize1;
      int yysize_overflow = 0;
      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
      int yyx;

# if 0
      /* This is so xgettext sees the translatable formats that are
	 constructed on the fly.  */
      YY_("syntax error, unexpected %s");
      YY_("syntax error, unexpected %s, expecting %s");
      YY_("syntax error, unexpected %s, expecting %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
# endif
      char *yyfmt;
      char const *yyf;
      static char const yyunexpected[] = "syntax error, unexpected %s";
      static char const yyexpecting[] = ", expecting %s";
      static char const yyor[] = " or %s";
      char yyformat[sizeof yyunexpected
		    + sizeof yyexpecting - 1
		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
		       * (sizeof yyor - 1))];
      char const *yyprefix = yyexpecting;

      /* Start YYX at -YYN if negative to avoid negative indexes in
	 YYCHECK.  */
      int yyxbegin = yyn < 0 ? -yyn : 0;

      /* Stay within bounds of both yycheck and yytname.  */
      int yychecklim = YYLAST - yyn + 1;
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
      int yycount = 1;

      yyarg[0] = yytname[yytype];
      yyfmt = yystpcpy (yyformat, yyunexpected);

      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
	  {
	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
	      {
		yycount = 1;
		yysize = yysize0;
		yyformat[sizeof yyunexpected - 1] = '\0';
		break;
	      }
	    yyarg[yycount++] = yytname[yyx];
	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
	    yysize_overflow |= (yysize1 < yysize);
	    yysize = yysize1;
	    yyfmt = yystpcpy (yyfmt, yyprefix);
	    yyprefix = yyor;
	  }

      yyf = YY_(yyformat);
      yysize1 = yysize + yystrlen (yyf);
      yysize_overflow |= (yysize1 < yysize);
      yysize = yysize1;

      if (yysize_overflow)
	return YYSIZE_MAXIMUM;

      if (yyresult)
	{
	  /* Avoid sprintf, as that infringes on the user's name space.
	     Don't have undefined behavior even if the translation
	     produced a string with the wrong number of "%s"s.  */
	  char *yyp = yyresult;
	  int yyi = 0;
	  while ((*yyp = *yyf) != '\0')
	    {
	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
		{
		  yyp += yytnamerr (yyp, yyarg[yyi++]);
		  yyf += 2;
		}
	      else
		{
		  yyp++;
		  yyf++;
		}
	    }
	}
      return yysize;
    }
}
#endif /* YYERROR_VERBOSE */


/*-----------------------------------------------.
| Release the memory associated to this symbol.  |
`-----------------------------------------------*/

/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
yydestruct (yymsg, yytype, yyvaluep)
    const char *yymsg;
    int yytype;
    YYSTYPE *yyvaluep;
#endif
{
  YYUSE (yyvaluep);

  if (!yymsg)
    yymsg = "Deleting";
  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);

  switch (yytype)
    {

      default:
	break;
    }
}


/* Prevent warnings from -Wmissing-prototypes.  */

#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
#endif
#endif /* ! YYPARSE_PARAM */






/*----------.
| yyparse.  |
`----------*/

#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
    void *YYPARSE_PARAM;
#endif
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
     || defined __cplusplus || defined _MSC_VER)
int
yyparse (void)
#else
int
yyparse ()

#endif
#endif
{
  /* The look-ahead symbol.  */
int yychar;

/* The semantic value of the look-ahead symbol.  */
YYSTYPE yylval;

/* Number of syntax errors so far.  */
int yynerrs;

  int yystate;
  int yyn;
  int yyresult;
  /* Number of tokens to shift before error messages enabled.  */
  int yyerrstatus;
  /* Look-ahead token as an internal (translated) token number.  */
  int yytoken = 0;
#if YYERROR_VERBOSE
  /* Buffer for error messages, and its allocated size.  */
  char yymsgbuf[128];
  char *yymsg = yymsgbuf;
  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif

  /* Three stacks and their tools:
     `yyss': related to states,
     `yyvs': related to semantic values,
     `yyls': related to locations.

     Refer to the stacks thru separate pointers, to allow yyoverflow
     to reallocate them elsewhere.  */

  /* The state stack.  */
  yytype_int16 yyssa[YYINITDEPTH];
  yytype_int16 *yyss = yyssa;
  yytype_int16 *yyssp;

  /* The semantic value stack.  */
  YYSTYPE yyvsa[YYINITDEPTH];
  YYSTYPE *yyvs = yyvsa;
  YYSTYPE *yyvsp;



#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))

  YYSIZE_T yystacksize = YYINITDEPTH;

  /* The variables used to return semantic value and location from the
     action routines.  */
  YYSTYPE yyval;


  /* The number of symbols on the RHS of the reduced rule.
     Keep to zero when no symbol should be popped.  */
  int yylen = 0;

  YYDPRINTF ((stderr, "Starting parse\n"));

  yystate = 0;
  yyerrstatus = 0;
  yynerrs = 0;
  yychar = YYEMPTY;		/* Cause a token to be read.  */

  /* Initialize stack pointers.
     Waste one element of value and location stack
     so that they stay on the same level as the state stack.
     The wasted elements are never initialized.  */

  yyssp = yyss;
  yyvsp = yyvs;

  goto yysetstate;

/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate.  |
`------------------------------------------------------------*/
 yynewstate:
  /* In all cases, when you get here, the value and location stacks
     have just been pushed.  So pushing a state here evens the stacks.  */
  yyssp++;

 yysetstate:
  *yyssp = yystate;

  if (yyss + yystacksize - 1 <= yyssp)
    {
      /* Get the current used size of the three stacks, in elements.  */
      YYSIZE_T yysize = yyssp - yyss + 1;

#ifdef yyoverflow
      {
	/* Give user a chance to reallocate the stack.  Use copies of
	   these so that the &'s don't force the real ones into
	   memory.  */
	YYSTYPE *yyvs1 = yyvs;
	yytype_int16 *yyss1 = yyss;


	/* Each stack pointer address is followed by the size of the
	   data in use in that stack, in bytes.  This used to be a
	   conditional around just the two extra args, but that might
	   be undefined if yyoverflow is a macro.  */
	yyoverflow (YY_("memory exhausted"),
		    &yyss1, yysize * sizeof (*yyssp),
		    &yyvs1, yysize * sizeof (*yyvsp),

		    &yystacksize);

	yyss = yyss1;
	yyvs = yyvs1;
      }
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
      goto yyexhaustedlab;
# else
      /* Extend the stack our own way.  */
      if (YYMAXDEPTH <= yystacksize)
	goto yyexhaustedlab;
      yystacksize *= 2;
      if (YYMAXDEPTH < yystacksize)
	yystacksize = YYMAXDEPTH;

      {
	yytype_int16 *yyss1 = yyss;
	union yyalloc *yyptr =
	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
	if (! yyptr)
	  goto yyexhaustedlab;
	YYSTACK_RELOCATE (yyss);
	YYSTACK_RELOCATE (yyvs);

#  undef YYSTACK_RELOCATE
	if (yyss1 != yyssa)
	  YYSTACK_FREE (yyss1);
      }
# endif
#endif /* no yyoverflow */

      yyssp = yyss + yysize - 1;
      yyvsp = yyvs + yysize - 1;


      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
		  (unsigned long int) yystacksize));

      if (yyss + yystacksize - 1 <= yyssp)
	YYABORT;
    }

  YYDPRINTF ((stderr, "Entering state %d\n", yystate));

  goto yybackup;

/*-----------.
| yybackup.  |
`-----------*/
yybackup:

  /* Do appropriate processing given the current state.  Read a
     look-ahead token if we need one and don't already have one.  */

  /* First try to decide what to do without reference to look-ahead token.  */
  yyn = yypact[yystate];
  if (yyn == YYPACT_NINF)
    goto yydefault;

  /* Not known => get a look-ahead token if don't already have one.  */

  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
  if (yychar == YYEMPTY)
    {
      YYDPRINTF ((stderr, "Reading a token: "));
      yychar = YYLEX;
    }

  if (yychar <= YYEOF)
    {
      yychar = yytoken = YYEOF;
      YYDPRINTF ((stderr, "Now at end of input.\n"));
    }
  else
    {
      yytoken = YYTRANSLATE (yychar);
      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
    }

  /* If the proper action on seeing token YYTOKEN is to reduce or to
     detect an error, take that action.  */
  yyn += yytoken;
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
    goto yydefault;
  yyn = yytable[yyn];
  if (yyn <= 0)
    {
      if (yyn == 0 || yyn == YYTABLE_NINF)
	goto yyerrlab;
      yyn = -yyn;
      goto yyreduce;
    }

  if (yyn == YYFINAL)
    YYACCEPT;

  /* Count tokens shifted since error; after three, turn off error
     status.  */
  if (yyerrstatus)
    yyerrstatus--;

  /* Shift the look-ahead token.  */
  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);

  /* Discard the shifted token unless it is eof.  */
  if (yychar != YYEOF)
    yychar = YYEMPTY;

  yystate = yyn;
  *++yyvsp = yylval;

  goto yynewstate;


/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state.  |
`-----------------------------------------------------------*/
yydefault:
  yyn = yydefact[yystate];
  if (yyn == 0)
    goto yyerrlab;
  goto yyreduce;


/*-----------------------------.
| yyreduce -- Do a reduction.  |
`-----------------------------*/
yyreduce:
  /* yyn is the number of a rule to reduce with.  */
  yylen = yyr2[yyn];

  /* If YYLEN is nonzero, implement the default value of the action:
     `$$ = $1'.

     Otherwise, the following line sets YYVAL to garbage.
     This behavior is undocumented and Bison
     users should not rely upon it.  Assigning to YYVAL
     unconditionally makes the parser a bit smaller, and it avoids a
     GCC warning that YYVAL may be used uninitialized.  */
  yyval = yyvsp[1-yylen];


  YY_REDUCE_PRINT (yyn);
  switch (yyn)
    {
        case 2:
#line 1347 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            if (!thd->bootstrap &&
              (!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT)))
            {
              my_message(ER_EMPTY_QUERY, ER(ER_EMPTY_QUERY), MYF(0));
              MYSQL_YYABORT;
            }
            else
            {
              thd->lex->sql_command= SQLCOM_EMPTY_QUERY;
            }
          }
    break;

  case 3:
#line 1360 "sql_yacc.yy"
    {}
    break;

  case 57:
#line 1425 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_DEALLOCATE_PREPARE;
            lex->prepared_stmt_name= (yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 60:
#line 1440 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_PREPARE;
            lex->prepared_stmt_name= (yyvsp[(2) - (4)].lex_str);
          }
    break;

  case 61:
#line 1450 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->prepared_stmt_code= (yyvsp[(1) - (1)].lex_str);
            lex->prepared_stmt_code_is_varref= FALSE;
          }
    break;

  case 62:
#line 1457 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->prepared_stmt_code= (yyvsp[(2) - (2)].lex_str);
            lex->prepared_stmt_code_is_varref= TRUE;
          }
    break;

  case 63:
#line 1467 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_EXECUTE;
            lex->prepared_stmt_name= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 64:
#line 1474 "sql_yacc.yy"
    {}
    break;

  case 69:
#line 1489 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            LEX_STRING *lexstr= (LEX_STRING*)sql_memdup(&(yyvsp[(2) - (2)].lex_str), sizeof(LEX_STRING));
            if (!lexstr || lex->prepared_stmt_params.push_back(lexstr))
              MYSQL_YYABORT;
          }
    break;

  case 70:
#line 1501 "sql_yacc.yy"
    {
            if (Lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HELP");
              MYSQL_YYABORT;
            }
          }
    break;

  case 71:
#line 1509 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_HELP;
            lex->help_arg= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 72:
#line 1520 "sql_yacc.yy"
    {
            LEX *lex = Lex;
            lex->sql_command = SQLCOM_CHANGE_MASTER;
            bzero((char*) &lex->mi, sizeof(lex->mi));
          }
    break;

  case 73:
#line 1526 "sql_yacc.yy"
    {}
    break;

  case 76:
#line 1536 "sql_yacc.yy"
    {
            Lex->mi.host = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 77:
#line 1540 "sql_yacc.yy"
    {
            Lex->mi.user = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 78:
#line 1544 "sql_yacc.yy"
    {
            Lex->mi.password = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 79:
#line 1548 "sql_yacc.yy"
    {
            Lex->mi.port = (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 80:
#line 1552 "sql_yacc.yy"
    {
            Lex->mi.connect_retry = (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 81:
#line 1556 "sql_yacc.yy"
    {
            Lex->mi.ssl= (yyvsp[(3) - (3)].ulong_num) ? 
              LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
          }
    break;

  case 82:
#line 1561 "sql_yacc.yy"
    {
            Lex->mi.ssl_ca= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 83:
#line 1565 "sql_yacc.yy"
    {
            Lex->mi.ssl_capath= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 84:
#line 1569 "sql_yacc.yy"
    {
            Lex->mi.ssl_cert= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 85:
#line 1573 "sql_yacc.yy"
    {
            Lex->mi.ssl_cipher= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 86:
#line 1577 "sql_yacc.yy"
    {
            Lex->mi.ssl_key= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 87:
#line 1581 "sql_yacc.yy"
    {
            Lex->mi.ssl_verify_server_cert= (yyvsp[(3) - (3)].ulong_num) ?
              LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE;
          }
    break;

  case 89:
#line 1590 "sql_yacc.yy"
    {
            Lex->mi.log_file_name = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 90:
#line 1594 "sql_yacc.yy"
    {
            Lex->mi.pos = (yyvsp[(3) - (3)].ulonglong_number);
            /* 
               If the user specified a value < BIN_LOG_HEADER_SIZE, adjust it
               instead of causing subsequent errors. 
               We need to do it in this file, because only there we know that 
               MASTER_LOG_POS has been explicitely specified. On the contrary
               in change_master() (sql_repl.cc) we cannot distinguish between 0
               (MASTER_LOG_POS explicitely specified as 0) and 0 (unspecified),
               whereas we want to distinguish (specified 0 means "read the binlog
               from 0" (4 in fact), unspecified means "don't change the position
               (keep the preceding value)").
            */
            Lex->mi.pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.pos);
          }
    break;

  case 91:
#line 1610 "sql_yacc.yy"
    {
            Lex->mi.relay_log_name = (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 92:
#line 1614 "sql_yacc.yy"
    {
            Lex->mi.relay_log_pos = (yyvsp[(3) - (3)].ulong_num);
            /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
            Lex->mi.relay_log_pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos);
          }
    break;

  case 93:
#line 1625 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_CREATE_TABLE;
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(5) - (5)].table), NULL,
                                                   TL_OPTION_UPDATING,
                                                   TL_WRITE))
              MYSQL_YYABORT;
            lex->alter_info.reset();
            lex->col_list.empty();
            lex->change=NullS;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
            lex->create_info.options=(yyvsp[(2) - (5)].num) | (yyvsp[(4) - (5)].num);
            lex->create_info.db_type= ha_default_handlerton(thd);
            lex->create_info.default_table_charset= NULL;
            lex->name.str= 0;
            lex->name.length= 0;
          }
    break;

  case 94:
#line 1644 "sql_yacc.yy"
    {
            LEX *lex= YYTHD->lex;
            lex->current_select= &lex->select_lex; 
            if (!lex->create_info.db_type)
            {
              lex->create_info.db_type= ha_default_handlerton(YYTHD);
              push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
                                  ER_WARN_USING_OTHER_HANDLER,
                                  ER(ER_WARN_USING_OTHER_HANDLER),
                                  ha_resolve_storage_engine_name(lex->create_info.db_type),
                                  (yyvsp[(5) - (7)].table)->table.str);
            }
          }
    break;

  case 95:
#line 1659 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_CREATE_INDEX;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(7) - (7)].table),
                                                        NULL,
                                                        TL_OPTION_UPDATING))
              MYSQL_YYABORT;
            lex->alter_info.reset();
            lex->alter_info.flags= ALTER_ADD_INDEX;
            lex->col_list.empty();
            lex->change=NullS;
          }
    break;

  case 96:
#line 1672 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            Key *key;
            if ((yyvsp[(2) - (12)].key_type) != Key::FULLTEXT && lex->key_create_info.parser_name.str)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            key= new Key((yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str).str, &lex->key_create_info, 0,
                         lex->col_list);
            lex->alter_info.key_list.push_back(key);
            lex->col_list.empty();
          }
    break;

  case 97:
#line 1686 "sql_yacc.yy"
    {
            Lex->create_info.default_table_charset= NULL;
            Lex->create_info.used_fields= 0;
          }
    break;

  case 98:
#line 1691 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_CREATE_DB;
            lex->name= (yyvsp[(4) - (6)].lex_str);
            lex->create_info.options=(yyvsp[(3) - (6)].num);
          }
    break;

  case 99:
#line 1698 "sql_yacc.yy"
    {
            Lex->create_view_mode= VIEW_CREATE_NEW;
            Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
            Lex->create_view_suid= TRUE;
          }
    break;

  case 100:
#line 1704 "sql_yacc.yy"
    {}
    break;

  case 101:
#line 1706 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_CREATE_USER;
          }
    break;

  case 102:
#line 1710 "sql_yacc.yy"
    {
            Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP;
          }
    break;

  case 103:
#line 1714 "sql_yacc.yy"
    {
            Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE;
          }
    break;

  case 104:
#line 1718 "sql_yacc.yy"
    {
            Lex->sql_command= SQLCOM_CREATE_SERVER;
          }
    break;

  case 105:
#line 1729 "sql_yacc.yy"
    {
            Lex->server_options.server_name= (yyvsp[(2) - (10)].lex_str).str;
            Lex->server_options.server_name_length= (yyvsp[(2) - (10)].lex_str).length;
            Lex->server_options.scheme= (yyvsp[(6) - (10)].lex_str).str;
          }
    break;

  case 108:
#line 1743 "sql_yacc.yy"
    {
            Lex->server_options.username= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 109:
#line 1747 "sql_yacc.yy"
    {
            Lex->server_options.host= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 110:
#line 1751 "sql_yacc.yy"
    {
            Lex->server_options.db= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 111:
#line 1755 "sql_yacc.yy"
    {
            Lex->server_options.owner= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 112:
#line 1759 "sql_yacc.yy"
    {
            Lex->server_options.password= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 113:
#line 1763 "sql_yacc.yy"
    {
            Lex->server_options.socket= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 114:
#line 1767 "sql_yacc.yy"
    {
            Lex->server_options.port= (yyvsp[(2) - (2)].ulong_num);
          }
    break;

  case 115:
#line 1778 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex=Lex;

            lex->create_info.options= (yyvsp[(2) - (3)].num);

            if (!(lex->event_parse_data= Event_parse_data::new_instance(thd)))
              MYSQL_YYABORT;
            lex->event_parse_data->identifier= (yyvsp[(3) - (3)].spname);

            /*
              We have to turn of CLIENT_MULTI_QUERIES while parsing a
              stored procedure, otherwise yylex will chop it into pieces
              at each ';'.
            */
            (yyval.ulong_num)= thd->client_capabilities & CLIENT_MULTI_QUERIES;
            thd->client_capabilities &= (~CLIENT_MULTI_QUERIES);

            lex->sql_command= SQLCOM_CREATE_EVENT;
            /* We need that for disallowing subqueries */
          }
    break;

  case 116:
#line 1804 "sql_yacc.yy"
    {
            /*
              Restore flag if it was cleared above
              $1 - EVENT_SYM
              $2 - opt_if_not_exists
              $3 - sp_name
              $4 - the block above
            */
            YYTHD->client_capabilities |= (yyvsp[(4) - (12)].ulong_num);

            /*
              sql_command is set here because some rules in ev_sql_stmt
              can overwrite it
            */
            Lex->sql_command= SQLCOM_CREATE_EVENT;
          }
    break;

  case 117:
#line 1824 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_expression= (yyvsp[(2) - (3)].item);
            Lex->event_parse_data->interval= (yyvsp[(3) - (3)].interval);
          }
    break;

  case 119:
#line 1831 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_execute_at= (yyvsp[(2) - (2)].item);
          }
    break;

  case 120:
#line 1837 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 121:
#line 1839 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_basic::ENABLED;
            (yyval.num)= 1;
          }
    break;

  case 122:
#line 1844 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_basic::SLAVESIDE_DISABLED;
            (yyval.num)= 1;
          }
    break;

  case 123:
#line 1849 "sql_yacc.yy"
    {
            Lex->event_parse_data->status= Event_basic::DISABLED;
            (yyval.num)= 1;
          }
    break;

  case 124:
#line 1857 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_starts= new Item_func_now_local();
          }
    break;

  case 125:
#line 1861 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_starts= (yyvsp[(2) - (2)].item);
          }
    break;

  case 127:
#line 1869 "sql_yacc.yy"
    {
            Lex->event_parse_data->item_ends= (yyvsp[(2) - (2)].item);
          }
    break;

  case 128:
#line 1875 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 130:
#line 1881 "sql_yacc.yy"
    {
            Lex->event_parse_data->on_completion=
                                  Event_basic::ON_COMPLETION_PRESERVE;
            (yyval.num)= 1;
          }
    break;

  case 131:
#line 1887 "sql_yacc.yy"
    {
            Lex->event_parse_data->on_completion=
                                  Event_basic::ON_COMPLETION_DROP;
            (yyval.num)= 1;
          }
    break;

  case 132:
#line 1895 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 133:
#line 1897 "sql_yacc.yy"
    {
            Lex->comment= Lex->event_parse_data->comment= (yyvsp[(2) - (2)].lex_str);
            (yyval.num)= 1;
          }
    break;

  case 134:
#line 1904 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            /*
              This stops the following :
              - CREATE EVENT ... DO CREATE EVENT ...;
              - ALTER  EVENT ... DO CREATE EVENT ...;
              - CREATE EVENT ... DO ALTER EVENT DO ....;
              - CREATE PROCEDURE ... BEGIN CREATE EVENT ... END|
              This allows:
              - CREATE EVENT ... DO DROP EVENT yyy;
              - CREATE EVENT ... DO ALTER EVENT yyy;
                (the nested ALTER EVENT can have anything but DO clause)
              - ALTER  EVENT ... DO ALTER EVENT yyy;
                (the nested ALTER EVENT can have anything but DO clause)
              - ALTER  EVENT ... DO DROP EVENT yyy;
              - CREATE PROCEDURE ... BEGIN ALTER EVENT ... END|
                (the nested ALTER EVENT can have anything but DO clause)
              - CREATE PROCEDURE ... BEGIN DROP EVENT ... END|
            */
            if (lex->sphead)
            {
              my_error(ER_EVENT_RECURSION_FORBIDDEN, MYF(0));
              MYSQL_YYABORT;
            }
              
            if (!(lex->sphead= new sp_head()))
              MYSQL_YYABORT;

            lex->sphead->reset_thd_mem_root(thd);
            lex->sphead->init(lex);
            lex->sphead->init_sp_name(thd, lex->event_parse_data->identifier);

            lex->sphead->m_type= TYPE_ENUM_PROCEDURE;

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
            lex->sphead->m_chistics= &lex->sp_chistics;

            lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
          }
    break;

  case 135:
#line 1947 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            /* return back to the original memory root ASAP */
            lex->sphead->set_stmt_end(thd);
            lex->sphead->restore_thd_mem_root(thd);

            lex->sp_chistics.suid= SP_IS_SUID;  //always the definer!

            lex->event_parse_data->body_changed= TRUE;
          }
    break;

  case 147:
#line 1977 "sql_yacc.yy"
    {
           LEX *lex=Lex;
           lex->users_list.empty();
           lex->columns.empty();
           lex->grant= lex->grant_tot_col= 0;
           lex->all_privileges= 0;
           lex->select_lex.db= 0;
           lex->ssl_type= SSL_TYPE_NOT_SPECIFIED;
           lex->ssl_cipher= lex->x509_subject= lex->x509_issuer= 0;
           bzero((char *)&(lex->mqh),sizeof(lex->mqh));
         }
    break;

  case 148:
#line 1992 "sql_yacc.yy"
    {
            if (!(yyvsp[(1) - (3)].lex_str).str || check_db_name(&(yyvsp[(1) - (3)].lex_str)))
            {
              my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (check_routine_name(&(yyvsp[(3) - (3)].lex_str)))
            {
              MYSQL_YYABORT;
            }
            (yyval.spname)= new sp_name((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), true);
            (yyval.spname)->init_qname(YYTHD);
          }
    break;

  case 149:
#line 2006 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            LEX_STRING db;
            if (check_routine_name(&(yyvsp[(1) - (1)].lex_str)))
            {
              MYSQL_YYABORT;
            }
            if (lex->copy_db_to(&db.str, &db.length))
              MYSQL_YYABORT;
            (yyval.spname)= new sp_name(db, (yyvsp[(1) - (1)].lex_str), false);
            if ((yyval.spname))
              (yyval.spname)->init_qname(thd);
          }
    break;

  case 150:
#line 2024 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            if (lex->definer != NULL)
            {
              /*
                DEFINER is a concept meaningful when interpreting SQL code.
                UDF functions are compiled.
                Using DEFINER with UDF has therefore no semantic,
                and is considered a parsing error.
              */
              my_error(ER_WRONG_USAGE, MYF(0), "SONAME", "DEFINER");
              MYSQL_YYABORT;
            }
            if (is_native_function(thd, & lex->spname->m_name))
            {
              my_error(ER_NATIVE_FCT_NAME_COLLISION, MYF(0),
                       lex->spname->m_name.str);
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_CREATE_FUNCTION;
            lex->udf.name = lex->spname->m_name;
            lex->udf.returns=(Item_result) (yyvsp[(2) - (4)].num);
            lex->udf.dl=(yyvsp[(4) - (4)].lex_str).str;
          }
    break;

  case 151:
#line 2050 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;
            sp_head *sp;
            const char* tmp_param_begin;

            /* 
              First check if AGGREGATE was used, in that case it's a
              syntax error.
            */
            if (lex->udf.type == UDFTYPE_AGGREGATE)
            {
              my_error(ER_SP_NO_AGGREGATE, MYF(0));
              MYSQL_YYABORT;
            }

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            /* Order is important here: new - reset - init */
            sp= new sp_head();
            sp->reset_thd_mem_root(thd);
            sp->init(lex);
            sp->init_sp_name(thd, lex->spname);

            sp->m_type= TYPE_ENUM_FUNCTION;
            lex->sphead= sp;
            /*
              We have to turn off CLIENT_MULTI_QUERIES while parsing a
              stored procedure, otherwise yylex will chop it into pieces
              at each ';'.
            */
            (yyval.ulong_num)= thd->client_capabilities & CLIENT_MULTI_QUERIES;
            thd->client_capabilities &= ~CLIENT_MULTI_QUERIES;

            tmp_param_begin= lip->get_cpp_tok_start();
            tmp_param_begin++;
            lex->sphead->m_param_begin= tmp_param_begin;
          }
    break;

  case 152:
#line 2093 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            lex->sphead->m_param_end= lip->get_cpp_tok_start();
          }
    break;

  case 153:
#line 2101 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->charset= NULL;
            lex->length= lex->dec= NULL;
            lex->interval_list.empty();
            lex->type= 0;
          }
    break;

  case 154:
#line 2109 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            /*
              This was disabled in 5.1.12. See bug #20701
              When collation support in SP is implemented, then this test
              should be removed.
            */
            if (((yyvsp[(8) - (8)].num) == MYSQL_TYPE_STRING || (yyvsp[(8) - (8)].num) == MYSQL_TYPE_VARCHAR)
                && (lex->type & BINCMP_FLAG))
            {
              my_error(ER_NOT_SUPPORTED_YET, MYF(0), "return value collation");
              MYSQL_YYABORT;
            }

            if (sp->fill_field_definition(YYTHD, lex,
                                          (enum enum_field_types) (yyvsp[(8) - (8)].num),
                                          &sp->m_return_field_def))
              MYSQL_YYABORT;

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 155:
#line 2132 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, lip->get_cpp_tok_start());
          }
    break;

  case 156:
#line 2141 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            sp_head *sp= lex->sphead;

            if (sp->is_not_allowed_in_function("function"))
              MYSQL_YYABORT;

            lex->sql_command= SQLCOM_CREATE_SPFUNCTION;
            sp->set_stmt_end(thd);
            if (!(sp->m_flags & sp_head::HAS_RETURN))
            {
              my_error(ER_SP_NORETURN, MYF(0), sp->m_qname.str);
              MYSQL_YYABORT;
            }
            if (is_native_function(thd, & sp->m_name))
            {
              /*
                This warning will be printed when
                [1] A client query is parsed,
                [2] A stored function is loaded by db_load_routine.
                Printing the warning for [2] is intentional, to cover the
                following scenario:
                - A user define a SF 'foo' using MySQL 5.N
                - An application uses select foo(), and works.
                - MySQL 5.{N+1} defines a new native function 'foo', as
                part of a new feature.
                - MySQL 5.{N+1} documentation is updated, and should mention
                that there is a potential incompatible change in case of
                existing stored function named 'foo'.
                - The user deploys 5.{N+1}. At this point, 'select foo()'
                means something different, and the user code is most likely
                broken (it's only safe if the code is 'select db.foo()').
                With a warning printed when the SF is loaded (which has to occur
                before the call), the warning will provide a hint explaining
                the root cause of a later failure of 'select foo()'.
                With no warning printed, the user code will fail with no
                apparent reason.
                Printing a warning each time db_load_routine is executed for
                an ambiguous function is annoying, since that can happen a lot,
                but in practice should not happen unless there *are* name
                collisions.
                If a collision exists, it should not be silenced but fixed.
              */
              push_warning_printf(thd,
                                  MYSQL_ERROR::WARN_LEVEL_NOTE,
                                  ER_NATIVE_FCT_NAME_COLLISION,
                                  ER(ER_NATIVE_FCT_NAME_COLLISION),
                                  sp->m_name.str);
            }
            /* Restore flag if it was cleared above */
            thd->client_capabilities |= (yyvsp[(2) - (12)].ulong_num);
            sp->restore_thd_mem_root(thd);
          }
    break;

  case 157:
#line 2198 "sql_yacc.yy"
    {}
    break;

  case 158:
#line 2199 "sql_yacc.yy"
    {}
    break;

  case 159:
#line 2203 "sql_yacc.yy"
    {}
    break;

  case 160:
#line 2204 "sql_yacc.yy"
    {}
    break;

  case 161:
#line 2210 "sql_yacc.yy"
    { Lex->sp_chistics.comment= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 162:
#line 2212 "sql_yacc.yy"
    { /* Just parse it, we only have one language for now. */ }
    break;

  case 163:
#line 2214 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_NO_SQL; }
    break;

  case 164:
#line 2216 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; }
    break;

  case 165:
#line 2218 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; }
    break;

  case 166:
#line 2220 "sql_yacc.yy"
    { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; }
    break;

  case 167:
#line 2222 "sql_yacc.yy"
    {}
    break;

  case 168:
#line 2227 "sql_yacc.yy"
    { }
    break;

  case 169:
#line 2228 "sql_yacc.yy"
    { Lex->sp_chistics.detistic= TRUE; }
    break;

  case 170:
#line 2229 "sql_yacc.yy"
    { Lex->sp_chistics.detistic= FALSE; }
    break;

  case 171:
#line 2234 "sql_yacc.yy"
    {
            Lex->sp_chistics.suid= SP_IS_SUID;
          }
    break;

  case 172:
#line 2238 "sql_yacc.yy"
    {
            Lex->sp_chistics.suid= SP_IS_NOT_SUID;
          }
    break;

  case 173:
#line 2245 "sql_yacc.yy"
    {
            LEX *lex = Lex;

            lex->sql_command= SQLCOM_CALL;
            lex->spname= (yyvsp[(2) - (2)].spname);
            lex->value_list.empty();
            sp_add_used_routine(lex, YYTHD, (yyvsp[(2) - (2)].spname), TYPE_ENUM_PROCEDURE);
          }
    break;

  case 174:
#line 2253 "sql_yacc.yy"
    {}
    break;

  case 179:
#line 2269 "sql_yacc.yy"
    {
           Lex->value_list.push_back((yyvsp[(3) - (3)].item));
          }
    break;

  case 180:
#line 2273 "sql_yacc.yy"
    {
            Lex->value_list.push_back((yyvsp[(1) - (1)].item));
          }
    break;

  case 185:
#line 2291 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->length= 0;
            lex->dec= 0;
            lex->type= 0;

            lex->default_value= 0;
            lex->on_update_value= 0;

            lex->comment= null_lex_str;
            lex->charset= NULL;

            lex->interval_list.empty();
            lex->uint_geom_type= 0;
          }
    break;

  case 186:
#line 2311 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(1) - (3)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            sp_variable_t *spvar= spc->push_variable(&(yyvsp[(1) - (3)].lex_str),
                                                     (enum enum_field_types)(yyvsp[(3) - (3)].num),
                                                     sp_param_in);

            if (lex->sphead->fill_field_definition(YYTHD, lex,
                                                   (enum enum_field_types) (yyvsp[(3) - (3)].num),
                                                   &spvar->field_def))
            {
              MYSQL_YYABORT;
            }
            spvar->field_def.field_name= spvar->name.str;
            spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
          }
    break;

  case 191:
#line 2348 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(3) - (4)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[(3) - (4)].lex_str).str);
              MYSQL_YYABORT;
            }
            sp_variable_t *spvar= spc->push_variable(&(yyvsp[(3) - (4)].lex_str),
                                                     (enum enum_field_types)(yyvsp[(4) - (4)].num),
                                                     (sp_param_mode_t)(yyvsp[(1) - (4)].num));

            if (lex->sphead->fill_field_definition(YYTHD, lex,
                                                   (enum enum_field_types) (yyvsp[(4) - (4)].num),
                                                   &spvar->field_def))
            {
              MYSQL_YYABORT;
            }
            spvar->field_def.field_name= spvar->name.str;
            spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
          }
    break;

  case 192:
#line 2373 "sql_yacc.yy"
    { (yyval.num)= sp_param_in; }
    break;

  case 193:
#line 2374 "sql_yacc.yy"
    { (yyval.num)= sp_param_in; }
    break;

  case 194:
#line 2375 "sql_yacc.yy"
    { (yyval.num)= sp_param_out; }
    break;

  case 195:
#line 2376 "sql_yacc.yy"
    { (yyval.num)= sp_param_inout; }
    break;

  case 196:
#line 2380 "sql_yacc.yy"
    {}
    break;

  case 198:
#line 2385 "sql_yacc.yy"
    {}
    break;

  case 200:
#line 2391 "sql_yacc.yy"
    {
            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
          }
    break;

  case 201:
#line 2395 "sql_yacc.yy"
    {
            /* We check for declarations out of (standard) order this way
              because letting the grammar rules reflect it caused tricky
               shift/reduce conflicts with the wrong result. (And we get
               better error handling this way.) */
            if (((yyvsp[(2) - (3)].spblock).vars || (yyvsp[(2) - (3)].spblock).conds) && ((yyvsp[(1) - (3)].spblock).curs || (yyvsp[(1) - (3)].spblock).hndlrs))
            { /* Variable or condition following cursor or handler */
              my_message(ER_SP_VARCOND_AFTER_CURSHNDLR,
                         ER(ER_SP_VARCOND_AFTER_CURSHNDLR), MYF(0));
              MYSQL_YYABORT;
            }
            if ((yyvsp[(2) - (3)].spblock).curs && (yyvsp[(1) - (3)].spblock).hndlrs)
            { /* Cursor following handler */
              my_message(ER_SP_CURSOR_AFTER_HANDLER,
                         ER(ER_SP_CURSOR_AFTER_HANDLER), MYF(0));
              MYSQL_YYABORT;
            }
            (yyval.spblock).vars= (yyvsp[(1) - (3)].spblock).vars + (yyvsp[(2) - (3)].spblock).vars;
            (yyval.spblock).conds= (yyvsp[(1) - (3)].spblock).conds + (yyvsp[(2) - (3)].spblock).conds;
            (yyval.spblock).hndlrs= (yyvsp[(1) - (3)].spblock).hndlrs + (yyvsp[(2) - (3)].spblock).hndlrs;
            (yyval.spblock).curs= (yyvsp[(1) - (3)].spblock).curs + (yyvsp[(2) - (3)].spblock).curs;
          }
    break;

  case 202:
#line 2421 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->reset_lex(YYTHD);
            lex->spcont->declare_var_boundary((yyvsp[(2) - (2)].num));
          }
    break;

  case 203:
#line 2429 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *pctx= lex->spcont;
            uint num_vars= pctx->context_var_count();
            enum enum_field_types var_type= (enum enum_field_types) (yyvsp[(4) - (5)].num);
            Item *dflt_value_item= (yyvsp[(5) - (5)].item);
            
            if (!dflt_value_item)
            {
              dflt_value_item= new Item_null();
              /* QQ Set to the var_type with null_value? */
            }
            
            for (uint i = num_vars-(yyvsp[(2) - (5)].num) ; i < num_vars ; i++)
            {
              uint var_idx= pctx->var_context2runtime(i);
              sp_variable_t *spvar= pctx->find_variable(var_idx);
            
              if (!spvar)
                MYSQL_YYABORT;
            
              spvar->type= var_type;
              spvar->dflt= dflt_value_item;
            
              if (lex->sphead->fill_field_definition(YYTHD, lex, var_type,
                                                     &spvar->field_def))
              {
                MYSQL_YYABORT;
              }
            
              spvar->field_def.field_name= spvar->name.str;
              spvar->field_def.pack_flag |= FIELDFLAG_MAYBE_NULL;
            
              /* The last instruction is responsible for freeing LEX. */

              lex->sphead->add_instr(
                new sp_instr_set(lex->sphead->instructions(), pctx, var_idx,
                                 dflt_value_item, var_type, lex,
                                 (i == num_vars - 1)));
            }

            pctx->declare_var_boundary(0);
            lex->sphead->restore_lex(YYTHD);

            (yyval.spblock).vars= (yyvsp[(2) - (5)].num);
            (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
          }
    break;

  case 204:
#line 2477 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_cond(&(yyvsp[(2) - (5)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_COND, MYF(0), (yyvsp[(2) - (5)].lex_str).str);
              MYSQL_YYABORT;
            }
            YYTHD->lex->spcont->push_cond(&(yyvsp[(2) - (5)].lex_str), (yyvsp[(5) - (5)].spcondtype));
            (yyval.spblock).vars= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
            (yyval.spblock).conds= 1;
          }
    break;

  case 205:
#line 2491 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            lex->spcont= lex->spcont->push_context(LABEL_HANDLER_SCOPE);

            sp_pcontext *ctx= lex->spcont;
            sp_instr_hpush_jump *i=
              new sp_instr_hpush_jump(sp->instructions(), ctx, (yyvsp[(2) - (4)].num),
                                      ctx->current_var_count());

            sp->add_instr(i);
            sp->push_backpatch(i, ctx->push_label((char *)"", 0));
          }
    break;

  case 206:
#line 2506 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *hlab= lex->spcont->pop_label(); /* After this hdlr */
            sp_instr_hreturn *i;

            if ((yyvsp[(2) - (7)].num) == SP_HANDLER_CONTINUE)
            {
              i= new sp_instr_hreturn(sp->instructions(), ctx,
                                      ctx->current_var_count());
              sp->add_instr(i);
            }
            else
            {  /* EXIT or UNDO handler, just jump to the end of the block */
              i= new sp_instr_hreturn(sp->instructions(), ctx, 0);

              sp->add_instr(i);
              sp->push_backpatch(i, lex->spcont->last_label()); /* Block end */
            }
            lex->sphead->backpatch(hlab);

            lex->spcont= ctx->pop_context();

            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).curs= 0;
            (yyval.spblock).hndlrs= (yyvsp[(6) - (7)].num);
            lex->spcont->add_handlers((yyvsp[(6) - (7)].num));
          }
    break;

  case 207:
#line 2535 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            uint offp;
            sp_instr_cpush *i;

            if (ctx->find_cursor(&(yyvsp[(2) - (5)].lex_str), &offp, TRUE))
            {
              my_error(ER_SP_DUP_CURS, MYF(0), (yyvsp[(2) - (5)].lex_str).str);
              delete (yyvsp[(5) - (5)].lex);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cpush(sp->instructions(), ctx, (yyvsp[(5) - (5)].lex),
                                  ctx->current_cursor_count());
            sp->add_instr(i);
            ctx->push_cursor(&(yyvsp[(2) - (5)].lex_str));
            (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= 0;
            (yyval.spblock).curs= 1;
          }
    break;

  case 208:
#line 2558 "sql_yacc.yy"
    {
            Lex->sphead->reset_lex(YYTHD);

            /*
             We use statement here just be able to get a better
              error message. Using 'select' works too, but will then
             result in a generic "syntax error" if a non-select
             statement is given.
            */
          }
    break;

  case 209:
#line 2569 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sql_command != SQLCOM_SELECT &&
               !(sql_command_flags[lex->sql_command] & CF_STATUS_COMMAND))
            {
              my_message(ER_SP_BAD_CURSOR_QUERY, ER(ER_SP_BAD_CURSOR_QUERY),
                         MYF(0));
              MYSQL_YYABORT;
            }
            if (lex->result)
            {
              my_message(ER_SP_BAD_CURSOR_SELECT, ER(ER_SP_BAD_CURSOR_SELECT),
                         MYF(0));
              MYSQL_YYABORT;
            }
            lex->sp_lex_in_use= TRUE;
            (yyval.lex)= lex;
            lex->sphead->restore_lex(YYTHD);
          }
    break;

  case 210:
#line 2592 "sql_yacc.yy"
    { (yyval.num)= SP_HANDLER_EXIT; }
    break;

  case 211:
#line 2593 "sql_yacc.yy"
    { (yyval.num)= SP_HANDLER_CONTINUE; }
    break;

  case 212:
#line 2599 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 213:
#line 2601 "sql_yacc.yy"
    { (yyval.num)+= 1; }
    break;

  case 214:
#line 2606 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont->parent_context();

            if (ctx->find_handler((yyvsp[(1) - (1)].spcondtype)))
            {
              my_message(ER_SP_DUP_HANDLER, ER(ER_SP_DUP_HANDLER), MYF(0));
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_hpush_jump *i=
                (sp_instr_hpush_jump *)sp->last_instruction();

              i->add_condition((yyvsp[(1) - (1)].spcondtype));
              ctx->push_handler((yyvsp[(1) - (1)].spcondtype));
            }
          }
    break;

  case 215:
#line 2629 "sql_yacc.yy"
    { /* mysql errno */
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            (yyval.spcondtype)->type= sp_cond_type_t::number;
            (yyval.spcondtype)->mysqlerr= (yyvsp[(1) - (1)].ulong_num);
          }
    break;

  case 216:
#line 2635 "sql_yacc.yy"
    { /* SQLSTATE */
            if (!sp_cond_check(&(yyvsp[(3) - (3)].lex_str)))
            {
              my_error(ER_SP_BAD_SQLSTATE, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            (yyval.spcondtype)->type= sp_cond_type_t::state;
            memcpy((yyval.spcondtype)->sqlstate, (yyvsp[(3) - (3)].lex_str).str, 5);
            (yyval.spcondtype)->sqlstate[5]= '\0';
          }
    break;

  case 217:
#line 2649 "sql_yacc.yy"
    {}
    break;

  case 218:
#line 2650 "sql_yacc.yy"
    {}
    break;

  case 219:
#line 2655 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (yyvsp[(1) - (1)].spcondtype);
          }
    break;

  case 220:
#line 2659 "sql_yacc.yy"
    {
            (yyval.spcondtype)= Lex->spcont->find_cond(&(yyvsp[(1) - (1)].lex_str));
            if ((yyval.spcondtype) == NULL)
            {
              my_error(ER_SP_COND_MISMATCH, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 221:
#line 2668 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            (yyval.spcondtype)->type= sp_cond_type_t::warning;
          }
    break;

  case 222:
#line 2673 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            (yyval.spcondtype)->type= sp_cond_type_t::notfound;
          }
    break;

  case 223:
#line 2678 "sql_yacc.yy"
    {
            (yyval.spcondtype)= (sp_cond_type_t *)YYTHD->alloc(sizeof(sp_cond_type_t));
            (yyval.spcondtype)->type= sp_cond_type_t::exception;
          }
    break;

  case 224:
#line 2686 "sql_yacc.yy"
    {
            /* NOTE: field definition is filled in sp_decl section. */

            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(1) - (1)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            spc->push_variable(&(yyvsp[(1) - (1)].lex_str), (enum_field_types)0, sp_param_in);
            (yyval.num)= 1;
          }
    break;

  case 225:
#line 2701 "sql_yacc.yy"
    {
            /* NOTE: field definition is filled in sp_decl section. */

            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;

            if (spc->find_variable(&(yyvsp[(3) - (3)].lex_str), TRUE))
            {
              my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            spc->push_variable(&(yyvsp[(3) - (3)].lex_str), (enum_field_types)0, sp_param_in);
            (yyval.num)= (yyvsp[(1) - (3)].num) + 1;
          }
    break;

  case 226:
#line 2718 "sql_yacc.yy"
    { (yyval.item) = NULL; }
    break;

  case 227:
#line 2719 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 239:
#line 2738 "sql_yacc.yy"
    { Lex->sphead->new_cont_backpatch(NULL); }
    break;

  case 240:
#line 2740 "sql_yacc.yy"
    { Lex->sphead->do_cont_backpatch(); }
    break;

  case 241:
#line 2744 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            lex->sphead->reset_lex(thd);
            lex->sphead->m_tmp_query= lip->get_tok_start();
          }
    break;

  case 242:
#line 2753 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;
            sp_head *sp= lex->sphead;

            sp->m_flags|= sp_get_flags_for_command(lex);
            if (lex->sql_command == SQLCOM_CHANGE_DB)
            { /* "USE db" doesn't work in a procedure */
              my_error(ER_SP_BADSTATEMENT, MYF(0), "USE");
              MYSQL_YYABORT;
            }
            /*
              Don't add an instruction for SET statements, since all
              instructions for them were already added during processing
              of "set" rule.
            */
            DBUG_ASSERT(lex->sql_command != SQLCOM_SET_OPTION ||
                        lex->var_list.is_empty());
            if (lex->sql_command != SQLCOM_SET_OPTION)
            {
              sp_instr_stmt *i=new sp_instr_stmt(sp->instructions(),
                                                 lex->spcont, lex);

              /*
                Extract the query statement from the tokenizer.  The
                end is either lex->ptr, if there was no lookahead,
                lex->tok_end otherwise.
              */
              if (yychar == YYEMPTY)
                i->m_query.length= lip->get_ptr() - sp->m_tmp_query;
              else
                i->m_query.length= lip->get_tok_end() - sp->m_tmp_query;
              i->m_query.str= strmake_root(thd->mem_root,
                                           sp->m_tmp_query,
                                           i->m_query.length);
              sp->add_instr(i);
            }
            sp->restore_lex(thd);
          }
    break;

  case 243:
#line 2797 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 244:
#line 2799 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            if (sp->m_type != TYPE_ENUM_FUNCTION)
            {
              my_message(ER_SP_BADRETURN, ER(ER_SP_BADRETURN), MYF(0));
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_freturn *i;

              i= new sp_instr_freturn(sp->instructions(), lex->spcont, (yyvsp[(3) - (3)].item),
                                      sp->m_return_field_def.sql_type, lex);
              sp->add_instr(i);
              sp->m_flags|= sp_head::HAS_RETURN;
            }
            sp->restore_lex(YYTHD);
          }
    break;

  case 245:
#line 2822 "sql_yacc.yy"
    { /* Unlabeled controls get a secret label. */
            LEX *lex= Lex;

            lex->spcont->push_label((char *)"", lex->sphead->instructions());
          }
    break;

  case 246:
#line 2828 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->backpatch(lex->spcont->pop_label());
          }
    break;

  case 247:
#line 2837 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp = lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(2) - (2)].lex_str).str);

            if (! lab)
            {
              my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "LEAVE", (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_jump *i;
              uint ip= sp->instructions();
              uint n;

              n= ctx->diff_handlers(lab->ctx, TRUE);  /* Exclusive the dest. */
              if (n)
                sp->add_instr(new sp_instr_hpop(ip++, ctx, n));
              n= ctx->diff_cursors(lab->ctx, TRUE);  /* Exclusive the dest. */
              if (n)
                sp->add_instr(new sp_instr_cpop(ip++, ctx, n));
              i= new sp_instr_jump(ip, ctx);
              sp->push_backpatch(i, lab);  /* Jumping forward */
              sp->add_instr(i);
            }
          }
    break;

  case 248:
#line 2869 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(2) - (2)].lex_str).str);

            if (! lab || lab->type != SP_LAB_ITER)
            {
              my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "ITERATE", (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              sp_instr_jump *i;
              uint ip= sp->instructions();
              uint n;

              n= ctx->diff_handlers(lab->ctx, FALSE);  /* Inclusive the dest. */
              if (n)
                sp->add_instr(new sp_instr_hpop(ip++, ctx, n));
              n= ctx->diff_cursors(lab->ctx, FALSE);  /* Inclusive the dest. */
              if (n)
                sp->add_instr(new sp_instr_cpop(ip++, ctx, n));
              i= new sp_instr_jump(ip, ctx, lab->ip); /* Jump back */
              sp->add_instr(i);
            }
          }
    break;

  case 249:
#line 2900 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_copen *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(2) - (2)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_copen(sp->instructions(), lex->spcont, offset);
            sp->add_instr(i);
          }
    break;

  case 250:
#line 2918 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_cfetch *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(3) - (4)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(3) - (4)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cfetch(sp->instructions(), lex->spcont, offset);
            sp->add_instr(i);
          }
    break;

  case 251:
#line 2933 "sql_yacc.yy"
    {}
    break;

  case 252:
#line 2938 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint offset;
            sp_instr_cclose *i;

            if (! lex->spcont->find_cursor(&(yyvsp[(2) - (2)].lex_str), &offset))
            {
              my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[(2) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            i= new sp_instr_cclose(sp->instructions(), lex->spcont,  offset);
            sp->add_instr(i);
          }
    break;

  case 256:
#line 2962 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *spc= lex->spcont;
            sp_variable_t *spv;

            if (!spc || !(spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              /* An SP local variable */
              sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();

              i->add_to_varlist(spv);
            }
          }
    break;

  case 257:
#line 2982 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *spc= lex->spcont;
            sp_variable_t *spv;

            if (!spc || !(spv = spc->find_variable(&(yyvsp[(3) - (3)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              /* An SP local variable */
              sp_instr_cfetch *i= (sp_instr_cfetch *)sp->last_instruction();

              i->add_to_varlist(spv);
            }
          }
    break;

  case 258:
#line 3004 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 259:
#line 3006 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;
            uint ip= sp->instructions();
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, ctx,
                                                               (yyvsp[(2) - (3)].item), lex);

            sp->push_backpatch(i, ctx->push_label((char *)"", 0));
            sp->add_cont_backpatch(i);
            sp->add_instr(i);
            sp->restore_lex(YYTHD);
          }
    break;

  case 260:
#line 3020 "sql_yacc.yy"
    {
            sp_head *sp= Lex->sphead;
            sp_pcontext *ctx= Lex->spcont;
            uint ip= sp->instructions();
            sp_instr_jump *i = new sp_instr_jump(ip, ctx);

            sp->add_instr(i);
            sp->backpatch(ctx->pop_label());
            sp->push_backpatch(i, ctx->push_label((char *)"", 0));
          }
    break;

  case 261:
#line 3031 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sphead->backpatch(lex->spcont->pop_label());
          }
    break;

  case 267:
#line 3051 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_case(lex);
            lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 268:
#line 3057 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (case_stmt_action_expr(lex, (yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;

            lex->sphead->restore_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 269:
#line 3068 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_end_case(lex, true);
          }
    break;

  case 270:
#line 3076 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_case(lex);
          }
    break;

  case 271:
#line 3084 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_end_case(lex, false);
          }
    break;

  case 276:
#line 3102 "sql_yacc.yy"
    {
            Lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 277:
#line 3106 "sql_yacc.yy"
    {
            /* Simple case: <caseval> = <whenval> */

            LEX *lex= Lex;
            case_stmt_action_when(lex, (yyvsp[(3) - (3)].item), true);
            lex->sphead->restore_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 278:
#line 3115 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_then(lex);
          }
    break;

  case 279:
#line 3123 "sql_yacc.yy"
    {
            Lex->sphead->reset_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 280:
#line 3127 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_when(lex, (yyvsp[(3) - (3)].item), false);
            lex->sphead->restore_lex(YYTHD); /* For expr $3 */
          }
    break;

  case 281:
#line 3134 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            case_stmt_action_then(lex);
          }
    break;

  case 282:
#line 3142 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint ip= sp->instructions();
            sp_instr_error *i= new sp_instr_error(ip, lex->spcont,
                                                  ER_SP_CASE_NOT_FOUND);
            sp->add_instr(i);
          }
    break;

  case 284:
#line 3155 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *ctx= lex->spcont;
            sp_label_t *lab= ctx->find_label((yyvsp[(1) - (2)].lex_str).str);

            if (lab)
            {
              my_error(ER_SP_LABEL_REDEFINE, MYF(0), (yyvsp[(1) - (2)].lex_str).str);
              MYSQL_YYABORT;
            }
            else
            {
              lab= lex->spcont->push_label((yyvsp[(1) - (2)].lex_str).str,
                                           lex->sphead->instructions());
              lab->type= SP_LAB_ITER;
            }
          }
    break;

  case 285:
#line 3173 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if ((yyvsp[(5) - (5)].lex_str).str)
            {
              sp_label_t *lab= lex->spcont->find_label((yyvsp[(5) - (5)].lex_str).str);

              if (!lab ||
                  my_strcasecmp(system_charset_info, (yyvsp[(5) - (5)].lex_str).str, lab->name) != 0)
              {
                my_error(ER_SP_LABEL_MISMATCH, MYF(0), (yyvsp[(5) - (5)].lex_str).str);
                MYSQL_YYABORT;
              }
            }
            lex->sphead->backpatch(lex->spcont->pop_label());
          }
    break;

  case 286:
#line 3192 "sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 287:
#line 3193 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 288:
#line 3198 "sql_yacc.yy"
    { /* QQ This is just a dummy for grouping declarations and statements
              together. No [[NOT] ATOMIC] yet, and we need to figure out how
              make it coexist with the existing BEGIN COMMIT/ROLLBACK. */
            LEX *lex= Lex;
            sp_label_t *lab= lex->spcont->last_label();

            lab->type= SP_LAB_BEGIN;
            lex->spcont= lex->spcont->push_context(LABEL_DEFAULT_SCOPE);
          }
    break;

  case 289:
#line 3210 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            sp_pcontext *ctx= lex->spcont;

            sp->backpatch(ctx->last_label()); /* We always have a label */
            if ((yyvsp[(3) - (5)].spblock).hndlrs)
              sp->add_instr(new sp_instr_hpop(sp->instructions(), ctx,
                                              (yyvsp[(3) - (5)].spblock).hndlrs));
            if ((yyvsp[(3) - (5)].spblock).curs)
              sp->add_instr(new sp_instr_cpop(sp->instructions(), ctx,
                                              (yyvsp[(3) - (5)].spblock).curs));
            lex->spcont= ctx->pop_context();
          }
    break;

  case 290:
#line 3226 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);

            lex->sphead->add_instr(i);
          }
    break;

  case 291:
#line 3235 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 292:
#line 3237 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;
            uint ip= sp->instructions();
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
                                                               (yyvsp[(3) - (4)].item), lex);

            /* Jumping forward */
            sp->push_backpatch(i, lex->spcont->last_label());
            sp->new_cont_backpatch(i);
            sp->add_instr(i);
            sp->restore_lex(YYTHD);
          }
    break;

  case 293:
#line 3251 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump *i = new sp_instr_jump(ip, lex->spcont, lab->ip);

            lex->sphead->add_instr(i);
            lex->sphead->do_cont_backpatch();
          }
    break;

  case 294:
#line 3261 "sql_yacc.yy"
    { Lex->sphead->reset_lex(YYTHD); }
    break;

  case 295:
#line 3263 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint ip= lex->sphead->instructions();
            sp_label_t *lab= lex->spcont->last_label();  /* Jumping back */
            sp_instr_jump_if_not *i = new sp_instr_jump_if_not(ip, lex->spcont,
                                                               (yyvsp[(5) - (7)].item), lab->ip,
                                                               lex);
            lex->sphead->add_instr(i);
            lex->sphead->restore_lex(YYTHD);
            /* We can shortcut the cont_backpatch here */
            i->m_cont_dest= ip+1;
          }
    break;

  case 296:
#line 3279 "sql_yacc.yy"
    { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; }
    break;

  case 297:
#line 3281 "sql_yacc.yy"
    { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; }
    break;

  case 298:
#line 3286 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_INSERT; }
    break;

  case 299:
#line 3288 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_UPDATE; }
    break;

  case 300:
#line 3290 "sql_yacc.yy"
    { Lex->trg_chistics.event= TRG_EVENT_DELETE; }
    break;

  case 304:
#line 3324 "sql_yacc.yy"
    {}
    break;

  case 305:
#line 3326 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->logfile_group_name= (yyvsp[(4) - (4)].lex_str).str;
          }
    break;

  case 306:
#line 3336 "sql_yacc.yy"
    { 
            Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE; 
          }
    break;

  case 307:
#line 3342 "sql_yacc.yy"
    { 
            Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE; 
          }
    break;

  case 312:
#line 3365 "sql_yacc.yy"
    {}
    break;

  case 320:
#line 3382 "sql_yacc.yy"
    {}
    break;

  case 333:
#line 3404 "sql_yacc.yy"
    {}
    break;

  case 343:
#line 3423 "sql_yacc.yy"
    {}
    break;

  case 355:
#line 3444 "sql_yacc.yy"
    {}
    break;

  case 363:
#line 3463 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->data_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 364:
#line 3471 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->undo_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 365:
#line 3479 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->redo_file_name= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 366:
#line 3487 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info= new st_alter_tablespace();
            lex->alter_tablespace_info->tablespace_name= (yyvsp[(1) - (1)].lex_str).str;
            lex->sql_command= SQLCOM_ALTER_TABLESPACE;
          }
    break;

  case 367:
#line 3497 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info= new st_alter_tablespace();
            lex->alter_tablespace_info->logfile_group_name= (yyvsp[(1) - (1)].lex_str).str;
            lex->sql_command= SQLCOM_ALTER_TABLESPACE;
          }
    break;

  case 368:
#line 3507 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY;
          }
    break;

  case 369:
#line 3512 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE;
          }
    break;

  case 370:
#line 3517 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE;
          }
    break;

  case 371:
#line 3525 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->initial_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 372:
#line 3533 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->autoextend_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 373:
#line 3541 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->max_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 374:
#line 3549 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->extent_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 375:
#line 3557 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->undo_buffer_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 376:
#line 3565 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->redo_buffer_size= (yyvsp[(3) - (3)].ulonglong_number);
          }
    break;

  case 377:
#line 3573 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->nodegroup_id != UNDEF_NODEGROUP)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NODEGROUP");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->nodegroup_id= (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 378:
#line 3586 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->ts_comment != NULL)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"COMMENT");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->ts_comment= (yyvsp[(3) - (3)].lex_str).str;
          }
    break;

  case 379:
#line 3599 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->alter_tablespace_info->storage_engine != NULL)
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),
                       "STORAGE ENGINE");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->storage_engine= (yyvsp[(4) - (4)].db_type);
          }
    break;

  case 382:
#line 3618 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->wait_until_completed= TRUE;
          }
    break;

  case 383:
#line 3623 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!(lex->alter_tablespace_info->wait_until_completed))
            {
              my_error(ER_FILEGROUP_OPTION_ONLY_ONCE,MYF(0),"NO_WAIT");
              MYSQL_YYABORT;
            }
            lex->alter_tablespace_info->wait_until_completed= FALSE;
          }
    break;

  case 384:
#line 3635 "sql_yacc.yy"
    { (yyval.ulonglong_number)= (yyvsp[(1) - (1)].ulong_num);}
    break;

  case 385:
#line 3637 "sql_yacc.yy"
    {
            ulonglong number;
            uint text_shift_number= 0;
            longlong prefix_number;
            char *start_ptr= (yyvsp[(1) - (1)].lex_str).str;
            uint str_len= (yyvsp[(1) - (1)].lex_str).length;
            char *end_ptr= start_ptr + str_len;
            int error;
            prefix_number= my_strtoll10(start_ptr, &end_ptr, &error);
            if ((start_ptr + str_len - 1) == end_ptr)
            {
              switch (end_ptr[0])
              {
                case 'g':
                case 'G':
                  text_shift_number+=10;
                case 'm':
                case 'M':
                  text_shift_number+=10;
                case 'k':
                case 'K':
                  text_shift_number+=10;
                  break;
                default:
                {
                  my_error(ER_WRONG_SIZE_NUMBER, MYF(0));
                  MYSQL_YYABORT;
                }
              }
              if (prefix_number >> 31)
              {
                my_error(ER_SIZE_OVERFLOW_ERROR, MYF(0));
                MYSQL_YYABORT;
              }
              number= prefix_number << text_shift_number;
            }
            else
            {
              my_error(ER_WRONG_SIZE_NUMBER, MYF(0));
              MYSQL_YYABORT;
            }
            (yyval.ulonglong_number)= number;
          }
    break;

  case 386:
#line 3687 "sql_yacc.yy"
    {}
    break;

  case 387:
#line 3689 "sql_yacc.yy"
    {}
    break;

  case 388:
#line 3690 "sql_yacc.yy"
    {}
    break;

  case 389:
#line 3692 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(2) - (2)].table), NULL, 0, TL_READ))
              MYSQL_YYABORT;
            }
    break;

  case 390:
#line 3701 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(3) - (4)].table), NULL, 0, TL_READ))
              MYSQL_YYABORT;
          }
    break;

  case 391:
#line 3713 "sql_yacc.yy"
    {}
    break;

  case 392:
#line 3714 "sql_yacc.yy"
    {}
    break;

  case 393:
#line 3715 "sql_yacc.yy"
    {}
    break;

  case 394:
#line 3717 "sql_yacc.yy"
    { Select->set_braces(1);}
    break;

  case 395:
#line 3717 "sql_yacc.yy"
    {}
    break;

  case 396:
#line 3721 "sql_yacc.yy"
    {}
    break;

  case 397:
#line 3723 "sql_yacc.yy"
    { Select->set_braces(0);}
    break;

  case 398:
#line 3723 "sql_yacc.yy"
    {}
    break;

  case 399:
#line 3725 "sql_yacc.yy"
    { Select->set_braces(1);}
    break;

  case 400:
#line 3725 "sql_yacc.yy"
    {}
    break;

  case 401:
#line 3753 "sql_yacc.yy"
    {}
    break;

  case 403:
#line 3759 "sql_yacc.yy"
    {
#ifdef WITH_PARTITION_STORAGE_ENGINE
            LEX *lex= Lex;
            LEX_STRING partition_name={C_STRING_WITH_LEN("partition")};
            if (!plugin_is_ready(&partition_name, MYSQL_STORAGE_ENGINE_PLUGIN))
            {
              my_error(ER_FEATURE_DISABLED, MYF(0),
                      "partitioning", "--with-partition");
              MYSQL_YYABORT;
            }
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
              mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            if (lex->sql_command == SQLCOM_ALTER_TABLE)
            {
              lex->alter_info.flags|= ALTER_PARTITION;
            }
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     "partitioning", "--with-partition");
            MYSQL_YYABORT;
#endif

          }
    break;

  case 405:
#line 3791 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!lex->part_info)
            {
              my_parse_error(ER(ER_PARTITION_ENTRY_ERROR));
              MYSQL_YYABORT;
            }
            /*
              We enter here when opening the frm file to translate
              partition info string into part_info data structure.
            */
          }
    break;

  case 406:
#line 3803 "sql_yacc.yy"
    {}
    break;

  case 407:
#line 3807 "sql_yacc.yy"
    {}
    break;

  case 408:
#line 3807 "sql_yacc.yy"
    {}
    break;

  case 410:
#line 3812 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->list_of_part_fields= TRUE;
            lex->part_info->part_type= HASH_PARTITION;
          }
    break;

  case 411:
#line 3818 "sql_yacc.yy"
    { Lex->part_info->part_type= HASH_PARTITION; }
    break;

  case 412:
#line 3819 "sql_yacc.yy"
    {}
    break;

  case 413:
#line 3821 "sql_yacc.yy"
    { Lex->part_info->part_type= RANGE_PARTITION; }
    break;

  case 414:
#line 3822 "sql_yacc.yy"
    {}
    break;

  case 415:
#line 3824 "sql_yacc.yy"
    { Lex->part_info->part_type= LIST_PARTITION; }
    break;

  case 416:
#line 3825 "sql_yacc.yy"
    {}
    break;

  case 417:
#line 3829 "sql_yacc.yy"
    {}
    break;

  case 418:
#line 3831 "sql_yacc.yy"
    { Lex->part_info->linear_hash_ind= TRUE;}
    break;

  case 419:
#line 3835 "sql_yacc.yy"
    {}
    break;

  case 420:
#line 3836 "sql_yacc.yy"
    {}
    break;

  case 421:
#line 3840 "sql_yacc.yy"
    {}
    break;

  case 422:
#line 3841 "sql_yacc.yy"
    {}
    break;

  case 423:
#line 3846 "sql_yacc.yy"
    {
            if (Lex->part_info->part_field_list.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
          }
    break;

  case 424:
#line 3857 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint expr_len= (uint)((yyvsp[(4) - (5)].simple_string) - (yyvsp[(2) - (5)].simple_string)) - 1;
            lex->part_info->list_of_part_fields= FALSE;
            lex->part_info->part_expr= (yyvsp[(3) - (5)].item);
            lex->part_info->part_func_string= (char* ) sql_memdup((yyvsp[(2) - (5)].simple_string)+1, expr_len);
            lex->part_info->part_func_len= expr_len;
          }
    break;

  case 425:
#line 3869 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            uint expr_len= (uint)((yyvsp[(4) - (5)].simple_string) - (yyvsp[(2) - (5)].simple_string)) - 1;
            lex->part_info->list_of_subpart_fields= FALSE;
            lex->part_info->subpart_expr= (yyvsp[(3) - (5)].item);
            lex->part_info->subpart_func_string= (char* ) sql_memdup((yyvsp[(2) - (5)].simple_string)+1, expr_len);        
            lex->part_info->subpart_func_len= expr_len;
          }
    break;

  case 426:
#line 3881 "sql_yacc.yy"
    {}
    break;

  case 427:
#line 3883 "sql_yacc.yy"
    { 
            uint no_parts= (yyvsp[(2) - (2)].ulong_num);
            LEX *lex= Lex;
            if (no_parts == 0)
            {
              my_error(ER_NO_PARTS_ERROR, MYF(0), "partitions");
              MYSQL_YYABORT;
            }

            lex->part_info->no_parts= no_parts;
            lex->part_info->use_default_no_partitions= FALSE;
          }
    break;

  case 428:
#line 3898 "sql_yacc.yy"
    {}
    break;

  case 429:
#line 3900 "sql_yacc.yy"
    { Lex->part_info->subpart_type= HASH_PARTITION; }
    break;

  case 430:
#line 3901 "sql_yacc.yy"
    {}
    break;

  case 431:
#line 3904 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->subpart_type= HASH_PARTITION;
            lex->part_info->list_of_subpart_fields= TRUE;
          }
    break;

  case 432:
#line 3909 "sql_yacc.yy"
    {}
    break;

  case 433:
#line 3913 "sql_yacc.yy"
    {}
    break;

  case 434:
#line 3914 "sql_yacc.yy"
    {}
    break;

  case 435:
#line 3919 "sql_yacc.yy"
    {
            if (Lex->part_info->subpart_field_list.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
          }
    break;

  case 436:
#line 3930 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            bool not_corr_func;
            not_corr_func= !lex->safe_to_cache_query;
            lex->safe_to_cache_query= 1;
            if (not_corr_func)
            {
              my_parse_error(ER(ER_CONST_EXPR_IN_PARTITION_FUNC_ERROR));
              MYSQL_YYABORT;
            }
            (yyval.item)=(yyvsp[(1) - (1)].item);
          }
    break;

  case 437:
#line 3945 "sql_yacc.yy"
    {}
    break;

  case 438:
#line 3947 "sql_yacc.yy"
    {
            uint no_parts= (yyvsp[(2) - (2)].ulong_num);
            LEX *lex= Lex;
            if (no_parts == 0)
            {
              my_error(ER_NO_PARTS_ERROR, MYF(0), "subpartitions");
              MYSQL_YYABORT;
            }
            lex->part_info->no_subparts= no_parts;
            lex->part_info->use_default_no_subpartitions= FALSE;
          }
    break;

  case 439:
#line 3962 "sql_yacc.yy"
    {}
    break;

  case 440:
#line 3964 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            uint count_curr_parts= part_info->partitions.elements;
            if (part_info->no_parts != 0)
            {
              if (part_info->no_parts !=
                  count_curr_parts)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_PART_ERROR));
                MYSQL_YYABORT;
              }
            }
            else if (count_curr_parts > 0)
            {
              part_info->no_parts= count_curr_parts;
            }
            part_info->count_curr_subparts= 0;
          }
    break;

  case 441:
#line 3986 "sql_yacc.yy"
    {}
    break;

  case 442:
#line 3987 "sql_yacc.yy"
    {}
    break;

  case 443:
#line 3992 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            partition_element *p_elem= new partition_element();

            if (!p_elem || part_info->partitions.push_back(p_elem))
            {
              mem_alloc_error(sizeof(partition_element));
              MYSQL_YYABORT;
            }
            p_elem->part_state= PART_NORMAL;
            part_info->curr_part_elem= p_elem;
            part_info->current_partition= p_elem;
            part_info->use_default_partitions= FALSE;
            part_info->use_default_no_partitions= FALSE;
          }
    break;

  case 444:
#line 4008 "sql_yacc.yy"
    {}
    break;

  case 445:
#line 4009 "sql_yacc.yy"
    {}
    break;

  case 446:
#line 4010 "sql_yacc.yy"
    {}
    break;

  case 447:
#line 4011 "sql_yacc.yy"
    {}
    break;

  case 448:
#line 4016 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            partition_element *p_elem= part_info->curr_part_elem;
            p_elem->partition_name= (yyvsp[(1) - (1)].lex_str).str;
          }
    break;

  case 449:
#line 4026 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (! lex->is_partition_management())
            {
              if (lex->part_info->part_type == RANGE_PARTITION)
              {
                my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
                         "RANGE", "LESS THAN");
                MYSQL_YYABORT;
              }
              if (lex->part_info->part_type == LIST_PARTITION)
              {
                my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0),
                         "LIST", "IN");
                MYSQL_YYABORT;
              }
            }
            else
              lex->part_info->part_type= HASH_PARTITION;
          }
    break;

  case 450:
#line 4047 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (! lex->is_partition_management())
            {
              if (Lex->part_info->part_type != RANGE_PARTITION)
              {
                my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
                         "RANGE", "LESS THAN");
                MYSQL_YYABORT;
              }
            }
            else
              lex->part_info->part_type= RANGE_PARTITION;
          }
    break;

  case 451:
#line 4062 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (! lex->is_partition_management())
            {
              if (Lex->part_info->part_type != LIST_PARTITION)
              {
                my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0),
                         "LIST", "IN");
                MYSQL_YYABORT;
              }
            }
            else
              lex->part_info->part_type= LIST_PARTITION;
          }
    break;

  case 452:
#line 4080 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->part_info->defined_max_value)
            {
              my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
              MYSQL_YYABORT;
            }
            lex->part_info->defined_max_value= TRUE;
            lex->part_info->curr_part_elem->max_value= TRUE;
            lex->part_info->curr_part_elem->range_value= LONGLONG_MAX;
          }
    break;

  case 453:
#line 4092 "sql_yacc.yy"
    {
            if (Lex->part_info->defined_max_value)
            {
              my_parse_error(ER(ER_PARTITION_MAXVALUE_ERROR));
              MYSQL_YYABORT;
            }
            if (Lex->part_info->curr_part_elem->has_null_value)
            {
              my_parse_error(ER(ER_NULL_IN_VALUES_LESS_THAN));
              MYSQL_YYABORT;
            }
          }
    break;

  case 456:
#line 4113 "sql_yacc.yy"
    {
            partition_info *part_info= Lex->part_info;
            if (!((yyvsp[(2) - (3)].p_elem_value)->unsigned_flag))
              part_info->curr_part_elem->signed_flag= TRUE;
            part_info->curr_part_elem->range_value= (yyvsp[(2) - (3)].p_elem_value)->value;
          }
    break;

  case 457:
#line 4122 "sql_yacc.yy"
    {}
    break;

  case 458:
#line 4123 "sql_yacc.yy"
    {}
    break;

  case 459:
#line 4128 "sql_yacc.yy"
    {
            part_elem_value *value_ptr= (yyvsp[(1) - (1)].p_elem_value);
            partition_info *part_info= Lex->part_info;
            if (!value_ptr->unsigned_flag)
              part_info->curr_part_elem->signed_flag= TRUE;
            if (!value_ptr->null_value &&
               part_info->curr_part_elem->
                list_val_list.push_back(value_ptr))
            {
              mem_alloc_error(sizeof(part_elem_value));
              MYSQL_YYABORT;
            }
          }
    break;

  case 460:
#line 4145 "sql_yacc.yy"
    {
            Item *part_expr= (yyvsp[(1) - (1)].item);
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Name_resolution_context *context= &lex->current_select->context;
            TABLE_LIST *save_list= context->table_list;
            const char *save_where= thd->where;

            context->table_list= 0;
            thd->where= "partition function";

            part_elem_value *value_ptr= 
              (part_elem_value*)sql_alloc(sizeof(part_elem_value));
            if (!value_ptr)
            {
              mem_alloc_error(sizeof(part_elem_value));
              MYSQL_YYABORT;
            }
            if (part_expr->walk(&Item::check_partition_func_processor, 0,
                                NULL))
            {
              my_error(ER_PARTITION_FUNCTION_IS_NOT_ALLOWED, MYF(0));
              MYSQL_YYABORT;
            }
            if (part_expr->fix_fields(YYTHD, (Item**)0) ||
                ((context->table_list= save_list), FALSE) ||
                (!part_expr->const_item()) ||
                (!lex->safe_to_cache_query))
            {
              my_error(ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR, MYF(0));
              MYSQL_YYABORT;
            }
            thd->where= save_where;
            value_ptr->value= part_expr->val_int();
            value_ptr->unsigned_flag= TRUE;
            if (!part_expr->unsigned_flag &&
                value_ptr->value < 0)
              value_ptr->unsigned_flag= FALSE;
            if ((value_ptr->null_value= part_expr->null_value))
            {
              if (Lex->part_info->curr_part_elem->has_null_value)
              {
                my_error(ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR, MYF(0));
                MYSQL_YYABORT;
              }
              Lex->part_info->curr_part_elem->has_null_value= TRUE;
            }
            else if (part_expr->result_type() != INT_RESULT)
            {
              my_parse_error(ER(ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR));
              MYSQL_YYABORT;
            }
            (yyval.p_elem_value)= value_ptr; 
          }
    break;

  case 461:
#line 4203 "sql_yacc.yy"
    {
            if (Lex->part_info->no_subparts != 0 &&
                !Lex->part_info->use_default_subpartitions)
            {
              my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 462:
#line 4212 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            if (part_info->no_subparts != 0)
            {
              if (part_info->no_subparts !=
                  part_info->count_curr_subparts)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
                MYSQL_YYABORT;
              }
            }
            else if (part_info->count_curr_subparts > 0)
            {
              if (part_info->partitions.elements > 1)
              {
                my_parse_error(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
                MYSQL_YYABORT;
              }
              part_info->no_subparts= part_info->count_curr_subparts;
            }
            part_info->count_curr_subparts= 0;
          }
    break;

  case 463:
#line 4238 "sql_yacc.yy"
    {}
    break;

  case 464:
#line 4239 "sql_yacc.yy"
    {}
    break;

  case 465:
#line 4244 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            partition_info *part_info= lex->part_info;
            partition_element *curr_part= part_info->current_partition;
            partition_element *sub_p_elem= new partition_element(curr_part);
            if (!sub_p_elem ||
             curr_part->subpartitions.push_back(sub_p_elem))
            {
              mem_alloc_error(sizeof(partition_element));
              MYSQL_YYABORT;
            }
            part_info->curr_part_elem= sub_p_elem;
            part_info->use_default_subpartitions= FALSE;
            part_info->use_default_no_subpartitions= FALSE;
            part_info->count_curr_subparts++;
          }
    break;

  case 466:
#line 4260 "sql_yacc.yy"
    {}
    break;

  case 467:
#line 4265 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->partition_name= (yyvsp[(1) - (1)].lex_str).str; }
    break;

  case 468:
#line 4269 "sql_yacc.yy"
    {}
    break;

  case 469:
#line 4270 "sql_yacc.yy"
    {}
    break;

  case 470:
#line 4274 "sql_yacc.yy"
    {}
    break;

  case 471:
#line 4275 "sql_yacc.yy"
    {}
    break;

  case 472:
#line 4280 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->tablespace_name= (yyvsp[(3) - (3)].lex_str).str; }
    break;

  case 473:
#line 4282 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->curr_part_elem->engine_type= (yyvsp[(4) - (4)].db_type);
            lex->part_info->default_engine_type= (yyvsp[(4) - (4)].db_type);
          }
    break;

  case 474:
#line 4288 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[(3) - (3)].ulong_num); }
    break;

  case 475:
#line 4290 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) (yyvsp[(3) - (3)].ulonglong_number); }
    break;

  case 476:
#line 4292 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) (yyvsp[(3) - (3)].ulonglong_number); }
    break;

  case 477:
#line 4294 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->data_file_name= (yyvsp[(4) - (4)].lex_str).str; }
    break;

  case 478:
#line 4296 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->index_file_name= (yyvsp[(4) - (4)].lex_str).str; }
    break;

  case 479:
#line 4298 "sql_yacc.yy"
    { Lex->part_info->curr_part_elem->part_comment= (yyvsp[(3) - (3)].lex_str).str; }
    break;

  case 480:
#line 4307 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->lock_option= using_update_log ? TL_READ_NO_INSERT : TL_READ;
            if (lex->sql_command == SQLCOM_INSERT)
              lex->sql_command= SQLCOM_INSERT_SELECT;
            else if (lex->sql_command == SQLCOM_REPLACE)
              lex->sql_command= SQLCOM_REPLACE_SELECT;
            /*
              The following work only with the local list, the global list
              is created correctly in this case
            */
            lex->current_select->table_list.save_and_clear(&lex->save_list);
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 481:
#line 4323 "sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 482:
#line 4327 "sql_yacc.yy"
    {
            /*
              The following work only with the local list, the global list
              is created correctly in this case
            */
            Lex->current_select->table_list.push_front(&Lex->save_list);
          }
    break;

  case 483:
#line 4337 "sql_yacc.yy"
    {}
    break;

  case 484:
#line 4338 "sql_yacc.yy"
    {}
    break;

  case 485:
#line 4342 "sql_yacc.yy"
    {}
    break;

  case 486:
#line 4343 "sql_yacc.yy"
    {}
    break;

  case 487:
#line 4347 "sql_yacc.yy"
    {}
    break;

  case 488:
#line 4348 "sql_yacc.yy"
    {}
    break;

  case 489:
#line 4352 "sql_yacc.yy"
    {}
    break;

  case 490:
#line 4353 "sql_yacc.yy"
    {}
    break;

  case 491:
#line 4357 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 492:
#line 4358 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (1)].num);}
    break;

  case 493:
#line 4362 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (1)].num); }
    break;

  case 494:
#line 4363 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (2)].num) | (yyvsp[(2) - (2)].num); }
    break;

  case 495:
#line 4367 "sql_yacc.yy"
    { (yyval.num)=HA_LEX_CREATE_TMP_TABLE; }
    break;

  case 496:
#line 4371 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 497:
#line 4372 "sql_yacc.yy"
    { (yyval.num)=HA_LEX_CREATE_IF_NOT_EXISTS; }
    break;

  case 505:
#line 4393 "sql_yacc.yy"
    {
            Lex->create_info.db_type= (yyvsp[(3) - (3)].db_type);
            Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
          }
    break;

  case 506:
#line 4398 "sql_yacc.yy"
    {
            Lex->create_info.max_rows= (yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS;
          }
    break;

  case 507:
#line 4403 "sql_yacc.yy"
    {
            Lex->create_info.min_rows= (yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS;
          }
    break;

  case 508:
#line 4408 "sql_yacc.yy"
    {
            Lex->create_info.avg_row_length=(yyvsp[(3) - (3)].ulong_num);
            Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH;
          }
    break;

  case 509:
#line 4413 "sql_yacc.yy"
    {
            Lex->create_info.password=(yyvsp[(3) - (3)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD;
          }
    break;

  case 510:
#line 4418 "sql_yacc.yy"
    {
            Lex->create_info.comment=(yyvsp[(3) - (3)].lex_str);
            Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT;
          }
    break;

  case 511:
#line 4423 "sql_yacc.yy"
    {
            Lex->create_info.auto_increment_value=(yyvsp[(3) - (3)].ulonglong_number);
            Lex->create_info.used_fields|= HA_CREATE_USED_AUTO;
          }
    break;

  case 512:
#line 4428 "sql_yacc.yy"
    {
            switch((yyvsp[(3) - (3)].ulong_num)) {
            case 0:
                Lex->create_info.table_options|= HA_OPTION_NO_PACK_KEYS;
                break;
            case 1:
                Lex->create_info.table_options|= HA_OPTION_PACK_KEYS;
                break;
            default:
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
            }
            Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS;
          }
    break;

  case 513:
#line 4443 "sql_yacc.yy"
    {
            Lex->create_info.table_options&=
              ~(HA_OPTION_PACK_KEYS | HA_OPTION_NO_PACK_KEYS);
            Lex->create_info.used_fields|= HA_CREATE_USED_PACK_KEYS;
          }
    break;

  case 514:
#line 4449 "sql_yacc.yy"
    {
            Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM;
            Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM;
          }
    break;

  case 515:
#line 4454 "sql_yacc.yy"
    {
            Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE;
            Lex->create_info.used_fields|= HA_CREATE_USED_DELAY_KEY_WRITE;
          }
    break;

  case 516:
#line 4459 "sql_yacc.yy"
    {
            Lex->create_info.row_type= (yyvsp[(3) - (3)].row_type);
            Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT;
          }
    break;

  case 517:
#line 4464 "sql_yacc.yy"
    {
            /* Move the union list to the merge_list */
            LEX *lex=Lex;
            TABLE_LIST *table_list= lex->select_lex.get_table_list();
            lex->create_info.merge_list= lex->select_lex.table_list;
            lex->create_info.merge_list.elements--;
            lex->create_info.merge_list.first=
              (uchar*) (table_list->next_local);
            lex->select_lex.table_list.elements=1;
            lex->select_lex.table_list.next=
              (uchar**) &(table_list->next_local);
            table_list->next_local= 0;
            lex->create_info.used_fields|= HA_CREATE_USED_UNION;
          }
    break;

  case 520:
#line 4481 "sql_yacc.yy"
    {
            Lex->create_info.merge_insert_method= (yyvsp[(3) - (3)].ulong_num);
            Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD;
          }
    break;

  case 521:
#line 4486 "sql_yacc.yy"
    {
            Lex->create_info.data_file_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR;
          }
    break;

  case 522:
#line 4491 "sql_yacc.yy"
    {
            Lex->create_info.index_file_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR;
          }
    break;

  case 523:
#line 4496 "sql_yacc.yy"
    {Lex->create_info.tablespace= (yyvsp[(2) - (2)].lex_str).str;}
    break;

  case 524:
#line 4498 "sql_yacc.yy"
    {Lex->create_info.default_storage_media= HA_SM_DEFAULT;}
    break;

  case 525:
#line 4500 "sql_yacc.yy"
    {Lex->create_info.default_storage_media= HA_SM_DISK;}
    break;

  case 526:
#line 4502 "sql_yacc.yy"
    {Lex->create_info.default_storage_media= HA_SM_MEMORY;}
    break;

  case 527:
#line 4504 "sql_yacc.yy"
    {
            Lex->create_info.connect_string.str= (yyvsp[(3) - (3)].lex_str).str;
            Lex->create_info.connect_string.length= (yyvsp[(3) - (3)].lex_str).length;
            Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION;
          }
    break;

  case 528:
#line 4510 "sql_yacc.yy"
    {
            Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE;
            Lex->create_info.key_block_size= (yyvsp[(3) - (3)].ulong_num);
          }
    break;

  case 529:
#line 4515 "sql_yacc.yy"
    {
	    Lex->create_info.used_fields|= HA_CREATE_USED_TRANSACTIONAL;
            Lex->create_info.transactional= ((yyvsp[(3) - (3)].ulong_num) != 0 ? HA_CHOICE_YES :
        				     HA_CHOICE_NO);
          }
    break;

  case 530:
#line 4525 "sql_yacc.yy"
    {
            HA_CREATE_INFO *cinfo= &Lex->create_info;
            if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
                 cinfo->default_table_charset && (yyvsp[(4) - (4)].charset) &&
                 !my_charset_same(cinfo->default_table_charset,(yyvsp[(4) - (4)].charset)))
            {
              my_error(ER_CONFLICTING_DECLARATIONS, MYF(0),
                       "CHARACTER SET ", cinfo->default_table_charset->csname,
                       "CHARACTER SET ", (yyvsp[(4) - (4)].charset)->csname);
              MYSQL_YYABORT;
            }
            Lex->create_info.default_table_charset= (yyvsp[(4) - (4)].charset);
            Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
          }
    break;

  case 531:
#line 4543 "sql_yacc.yy"
    {
            HA_CREATE_INFO *cinfo= &Lex->create_info;
            if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
                 cinfo->default_table_charset && (yyvsp[(4) - (4)].charset) &&
                 !my_charset_same(cinfo->default_table_charset,(yyvsp[(4) - (4)].charset)))
              {
                my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                         (yyvsp[(4) - (4)].charset)->name, cinfo->default_table_charset->csname);
                MYSQL_YYABORT;
              }
              Lex->create_info.default_table_charset= (yyvsp[(4) - (4)].charset);
              Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET;
          }
    break;

  case 532:
#line 4560 "sql_yacc.yy"
    {
            plugin_ref plugin= ha_resolve_by_name(YYTHD, &(yyvsp[(1) - (1)].lex_str));

            if (plugin)
              (yyval.db_type)= plugin_data(plugin, handlerton*);
            else
            {
              if (YYTHD->variables.sql_mode & MODE_NO_ENGINE_SUBSTITUTION)
              {
                my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
                MYSQL_YYABORT;
              }
              (yyval.db_type)= 0;
              push_warning_printf(YYTHD, MYSQL_ERROR::WARN_LEVEL_WARN,
                                  ER_UNKNOWN_STORAGE_ENGINE,
                                  ER(ER_UNKNOWN_STORAGE_ENGINE),
                                  (yyvsp[(1) - (1)].lex_str).str);
            }
          }
    break;

  case 533:
#line 4583 "sql_yacc.yy"
    {
            plugin_ref plugin;
            if ((plugin= ha_resolve_by_name(YYTHD, &(yyvsp[(1) - (1)].lex_str))))
              (yyval.db_type)= plugin_data(plugin, handlerton*);
            else
            {
              my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 534:
#line 4596 "sql_yacc.yy"
    { (yyval.column_format_type)= COLUMN_FORMAT_TYPE_DEFAULT; }
    break;

  case 535:
#line 4597 "sql_yacc.yy"
    { (yyval.column_format_type)= COLUMN_FORMAT_TYPE_FIXED; }
    break;

  case 536:
#line 4598 "sql_yacc.yy"
    { (yyval.column_format_type)= COLUMN_FORMAT_TYPE_DYNAMIC; }
    break;

  case 537:
#line 4601 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_DEFAULT; }
    break;

  case 538:
#line 4602 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_FIXED; }
    break;

  case 539:
#line 4603 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_DYNAMIC; }
    break;

  case 540:
#line 4604 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_COMPRESSED; }
    break;

  case 541:
#line 4605 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_REDUNDANT; }
    break;

  case 542:
#line 4606 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_COMPACT; }
    break;

  case 543:
#line 4607 "sql_yacc.yy"
    { (yyval.row_type)= ROW_TYPE_PAGE; }
    break;

  case 544:
#line 4611 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_DISABLED; }
    break;

  case 545:
#line 4612 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; }
    break;

  case 546:
#line 4613 "sql_yacc.yy"
    { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; }
    break;

  case 547:
#line 4617 "sql_yacc.yy"
    {}
    break;

  case 549:
#line 4622 "sql_yacc.yy"
    { (yyval.udf_type) = UDFTYPE_FUNCTION; }
    break;

  case 550:
#line 4623 "sql_yacc.yy"
    { (yyval.udf_type) = UDFTYPE_AGGREGATE; }
    break;

  case 551:
#line 4626 "sql_yacc.yy"
    {(yyval.num) = (int) STRING_RESULT; }
    break;

  case 552:
#line 4627 "sql_yacc.yy"
    {(yyval.num) = (int) REAL_RESULT; }
    break;

  case 553:
#line 4628 "sql_yacc.yy"
    {(yyval.num) = (int) DECIMAL_RESULT; }
    break;

  case 554:
#line 4629 "sql_yacc.yy"
    {(yyval.num) = (int) INT_RESULT; }
    break;

  case 560:
#line 4645 "sql_yacc.yy"
    {
            Lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 561:
#line 4652 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if ((yyvsp[(1) - (7)].key_type) != Key::FULLTEXT && lex->key_create_info.parser_name.str)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            Key *key= new Key((yyvsp[(1) - (7)].key_type), (yyvsp[(2) - (7)].simple_string), &lex->key_create_info, 0,
                              lex->col_list);
            lex->alter_info.key_list.push_back(key);
            lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 562:
#line 4666 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            const char *key_name= (yyvsp[(3) - (8)].simple_string) ? (yyvsp[(3) - (8)].simple_string) : (yyvsp[(1) - (8)].simple_string);
            Key *key= new Key((yyvsp[(2) - (8)].key_type), key_name, &lex->key_create_info, 0,
                              lex->col_list);
            lex->alter_info.key_list.push_back(key);
            lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 563:
#line 4675 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            const char *key_name= (yyvsp[(4) - (8)].simple_string) ? (yyvsp[(4) - (8)].simple_string) : (yyvsp[(1) - (8)].simple_string);
            Key *key= new Foreign_key(key_name, lex->col_list,
				    (yyvsp[(8) - (8)].table),
				    lex->ref_list,
				    lex->fk_delete_opt,
				    lex->fk_update_opt,
                                      lex->fk_match_option);
            lex->alter_info.key_list.push_back(key);
            key= new Key(Key::MULTIPLE, key_name,
					    &default_key_create_info, 1,
                         lex->col_list);
            lex->alter_info.key_list.push_back(key);
            lex->col_list.empty(); /* Alloced by sql_alloc */
            /* Only used for ALTER TABLE. Ignored otherwise. */
            lex->alter_info.flags|= ALTER_FOREIGN_KEY;
          }
    break;

  case 564:
#line 4694 "sql_yacc.yy"
    {
            Lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 565:
#line 4698 "sql_yacc.yy"
    {
            Lex->col_list.empty(); /* Alloced by sql_alloc */
          }
    break;

  case 569:
#line 4713 "sql_yacc.yy"
    { (yyval.simple_string)=(char*) 0; }
    break;

  case 570:
#line 4714 "sql_yacc.yy"
    { (yyval.simple_string)= (yyvsp[(1) - (1)].simple_string); }
    break;

  case 571:
#line 4718 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[(2) - (2)].simple_string); }
    break;

  case 572:
#line 4723 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=lex->dec=0;
            lex->type=0;
            lex->default_value= lex->on_update_value= 0;
            lex->comment=null_lex_str;
            lex->charset=NULL;
            lex->storage_type= HA_SM_DEFAULT;
            lex->column_format= COLUMN_FORMAT_TYPE_DEFAULT;
          }
    break;

  case 573:
#line 4734 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (add_field_to_list(lex->thd, &(yyvsp[(1) - (4)].lex_str), (enum enum_field_types) (yyvsp[(3) - (4)].num),
                                  lex->length,lex->dec,lex->type,
                                  lex->storage_type, lex->column_format,
                                  lex->default_value, lex->on_update_value, 
                                  &lex->comment,
                                  lex->change,&lex->interval_list,lex->charset,
                                  lex->uint_geom_type))
              MYSQL_YYABORT;
          }
    break;

  case 574:
#line 4748 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (3)].num); }
    break;

  case 575:
#line 4749 "sql_yacc.yy"
    { (yyval.num)=(yyvsp[(1) - (3)].num); }
    break;

  case 576:
#line 4750 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_FLOAT; }
    break;

  case 577:
#line 4752 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            (yyval.num)=MYSQL_TYPE_BIT;
          }
    break;

  case 578:
#line 4757 "sql_yacc.yy"
    {
            Lex->length= (yyvsp[(3) - (4)].lex_str).str;
            (yyval.num)=MYSQL_TYPE_BIT;
          }
    break;

  case 579:
#line 4762 "sql_yacc.yy"
    {
            Lex->length=(char*) "1";
            (yyval.num)=MYSQL_TYPE_TINY;
          }
    break;

  case 580:
#line 4767 "sql_yacc.yy"
    {
            Lex->length=(char*) "1";
            (yyval.num)=MYSQL_TYPE_TINY;
          }
    break;

  case 581:
#line 4772 "sql_yacc.yy"
    {
            Lex->length=(yyvsp[(3) - (5)].lex_str).str;
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 582:
#line 4777 "sql_yacc.yy"
    {
            Lex->length=(char*) "1";
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 583:
#line 4782 "sql_yacc.yy"
    {
            Lex->length=(yyvsp[(3) - (5)].lex_str).str;
            (yyval.num)=MYSQL_TYPE_STRING;
            Lex->charset=national_charset_info;
          }
    break;

  case 584:
#line 4788 "sql_yacc.yy"
    {
            Lex->length=(char*) "1";
            (yyval.num)=MYSQL_TYPE_STRING;
            Lex->charset=national_charset_info;
          }
    break;

  case 585:
#line 4794 "sql_yacc.yy"
    {
            Lex->length=(yyvsp[(3) - (4)].lex_str).str;
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 586:
#line 4800 "sql_yacc.yy"
    {
            Lex->length= (char*) "1";
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_STRING;
          }
    break;

  case 587:
#line 4806 "sql_yacc.yy"
    {
            Lex->length=(yyvsp[(3) - (5)].lex_str).str;
            (yyval.num)= MYSQL_TYPE_VARCHAR;
          }
    break;

  case 588:
#line 4811 "sql_yacc.yy"
    {
            Lex->length=(yyvsp[(3) - (5)].lex_str).str;
            (yyval.num)= MYSQL_TYPE_VARCHAR;
            Lex->charset=national_charset_info;
          }
    break;

  case 589:
#line 4817 "sql_yacc.yy"
    {
            Lex->length=(yyvsp[(3) - (4)].lex_str).str;
            Lex->charset=&my_charset_bin;
            (yyval.num)= MYSQL_TYPE_VARCHAR;
          }
    break;

  case 590:
#line 4823 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_YEAR; }
    break;

  case 591:
#line 4825 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DATE; }
    break;

  case 592:
#line 4827 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TIME; }
    break;

  case 593:
#line 4829 "sql_yacc.yy"
    {
            if (YYTHD->variables.sql_mode & MODE_MAXDB)
              (yyval.num)=MYSQL_TYPE_DATETIME;
            else
            {
              /* Unlike other types TIMESTAMP fields are NOT NULL by default */
              Lex->type|= NOT_NULL_FLAG;
              (yyval.num)=MYSQL_TYPE_TIMESTAMP;
            }
          }
    break;

  case 594:
#line 4840 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DATETIME; }
    break;

  case 595:
#line 4842 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_TINY_BLOB;
          }
    break;

  case 596:
#line 4847 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_BLOB;
          }
    break;

  case 597:
#line 4852 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            Lex->charset=&my_charset_bin;
            Lex->uint_geom_type= (uint)(yyvsp[(1) - (1)].num);
            (yyval.num)=MYSQL_TYPE_GEOMETRY;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 598:
#line 4864 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB;
          }
    break;

  case 599:
#line 4869 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_LONG_BLOB;
          }
    break;

  case 600:
#line 4874 "sql_yacc.yy"
    {
            Lex->charset=&my_charset_bin;
            (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB;
          }
    break;

  case 601:
#line 4879 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 602:
#line 4881 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TINY_BLOB; }
    break;

  case 603:
#line 4883 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_BLOB; }
    break;

  case 604:
#line 4885 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 605:
#line 4887 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONG_BLOB; }
    break;

  case 606:
#line 4889 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 607:
#line 4891 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 608:
#line 4893 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
    break;

  case 609:
#line 4895 "sql_yacc.yy"
    {Lex->interval_list.empty();}
    break;

  case 610:
#line 4897 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_ENUM; }
    break;

  case 611:
#line 4899 "sql_yacc.yy"
    { Lex->interval_list.empty();}
    break;

  case 612:
#line 4901 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_SET; }
    break;

  case 613:
#line 4903 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
    break;

  case 614:
#line 4905 "sql_yacc.yy"
    {
            (yyval.num)=MYSQL_TYPE_LONGLONG;
            Lex->type|= (AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG |
              UNIQUE_FLAG);
          }
    break;

  case 615:
#line 4913 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_GEOMETRY; }
    break;

  case 616:
#line 4914 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_GEOMETRYCOLLECTION; }
    break;

  case 617:
#line 4916 "sql_yacc.yy"
    {
            Lex->length= (char*)"21";
            (yyval.num)= Field::GEOM_POINT;
          }
    break;

  case 618:
#line 4920 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTIPOINT; }
    break;

  case 619:
#line 4921 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_LINESTRING; }
    break;

  case 620:
#line 4922 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTILINESTRING; }
    break;

  case 621:
#line 4923 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_POLYGON; }
    break;

  case 622:
#line 4924 "sql_yacc.yy"
    { (yyval.num)= Field::GEOM_MULTIPOLYGON; }
    break;

  case 623:
#line 4928 "sql_yacc.yy"
    {}
    break;

  case 624:
#line 4932 "sql_yacc.yy"
    {}
    break;

  case 625:
#line 4933 "sql_yacc.yy"
    {}
    break;

  case 626:
#line 4937 "sql_yacc.yy"
    {}
    break;

  case 627:
#line 4938 "sql_yacc.yy"
    {}
    break;

  case 628:
#line 4942 "sql_yacc.yy"
    {}
    break;

  case 629:
#line 4943 "sql_yacc.yy"
    {}
    break;

  case 630:
#line 4944 "sql_yacc.yy"
    {}
    break;

  case 631:
#line 4945 "sql_yacc.yy"
    {}
    break;

  case 632:
#line 4946 "sql_yacc.yy"
    {}
    break;

  case 633:
#line 4950 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONG; }
    break;

  case 634:
#line 4951 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_TINY; }
    break;

  case 635:
#line 4952 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_SHORT; }
    break;

  case 636:
#line 4953 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_INT24; }
    break;

  case 637:
#line 4954 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_LONGLONG; }
    break;

  case 638:
#line 4959 "sql_yacc.yy"
    {
            (yyval.num)= YYTHD->variables.sql_mode & MODE_REAL_AS_FLOAT ?
              MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE;
          }
    break;

  case 639:
#line 4964 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DOUBLE; }
    break;

  case 640:
#line 4966 "sql_yacc.yy"
    { (yyval.num)=MYSQL_TYPE_DOUBLE; }
    break;

  case 641:
#line 4971 "sql_yacc.yy"
    { Lex->dec=Lex->length= (char*)0; }
    break;

  case 642:
#line 4973 "sql_yacc.yy"
    { Lex->length=(yyvsp[(2) - (3)].lex_str).str; Lex->dec= (char*)0; }
    break;

  case 643:
#line 4975 "sql_yacc.yy"
    {}
    break;

  case 644:
#line 4980 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=(yyvsp[(2) - (5)].lex_str).str;
            lex->dec=(yyvsp[(4) - (5)].lex_str).str;
          }
    break;

  case 645:
#line 4988 "sql_yacc.yy"
    {}
    break;

  case 646:
#line 4989 "sql_yacc.yy"
    {}
    break;

  case 647:
#line 4993 "sql_yacc.yy"
    {}
    break;

  case 648:
#line 4994 "sql_yacc.yy"
    {}
    break;

  case 649:
#line 4998 "sql_yacc.yy"
    {}
    break;

  case 650:
#line 4999 "sql_yacc.yy"
    { Lex->type|= UNSIGNED_FLAG;}
    break;

  case 651:
#line 5000 "sql_yacc.yy"
    { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; }
    break;

  case 652:
#line 5004 "sql_yacc.yy"
    { Lex->length=(char*) 0; /* use default length */ }
    break;

  case 653:
#line 5005 "sql_yacc.yy"
    { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
    break;

  case 654:
#line 5009 "sql_yacc.yy"
    {}
    break;

  case 655:
#line 5010 "sql_yacc.yy"
    {}
    break;

  case 656:
#line 5014 "sql_yacc.yy"
    {}
    break;

  case 657:
#line 5015 "sql_yacc.yy"
    {}
    break;

  case 658:
#line 5019 "sql_yacc.yy"
    {}
    break;

  case 660:
#line 5024 "sql_yacc.yy"
    { Lex->type&= ~ NOT_NULL_FLAG; }
    break;

  case 661:
#line 5025 "sql_yacc.yy"
    { Lex->type|= NOT_NULL_FLAG; }
    break;

  case 662:
#line 5026 "sql_yacc.yy"
    {Lex->storage_type= HA_SM_DEFAULT;}
    break;

  case 663:
#line 5027 "sql_yacc.yy"
    {Lex->storage_type= HA_SM_DISK;}
    break;

  case 664:
#line 5028 "sql_yacc.yy"
    {Lex->storage_type= HA_SM_MEMORY;}
    break;

  case 665:
#line 5029 "sql_yacc.yy"
    { Lex->column_format= (yyvsp[(2) - (2)].column_format_type); }
    break;

  case 666:
#line 5030 "sql_yacc.yy"
    { Lex->default_value=(yyvsp[(2) - (2)].item); }
    break;

  case 667:
#line 5032 "sql_yacc.yy"
    { Lex->on_update_value= new Item_func_now_local(); }
    break;

  case 668:
#line 5033 "sql_yacc.yy"
    { Lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; }
    break;

  case 669:
#line 5035 "sql_yacc.yy"
    { 
            LEX *lex=Lex;
            lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_FLAG;
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 670:
#line 5041 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG;
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 671:
#line 5047 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= UNIQUE_FLAG; 
            lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 672:
#line 5053 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type|= UNIQUE_KEY_FLAG; 
            lex->alter_info.flags|= ALTER_ADD_INDEX; 
          }
    break;

  case 673:
#line 5058 "sql_yacc.yy"
    { Lex->comment= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 674:
#line 5060 "sql_yacc.yy"
    {
            if (Lex->charset && !my_charset_same(Lex->charset,(yyvsp[(2) - (2)].charset)))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[(2) - (2)].charset)->name,Lex->charset->csname);
              MYSQL_YYABORT;
            }
            else
            {
              Lex->charset=(yyvsp[(2) - (2)].charset);
            }
          }
    break;

  case 675:
#line 5076 "sql_yacc.yy"
    { (yyval.item)= new Item_func_now_local(); }
    break;

  case 676:
#line 5078 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 677:
#line 5082 "sql_yacc.yy"
    {}
    break;

  case 678:
#line 5083 "sql_yacc.yy"
    {}
    break;

  case 679:
#line 5088 "sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_csname((yyvsp[(1) - (1)].lex_str).str,MY_CS_PRIMARY,MYF(0))))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 680:
#line 5095 "sql_yacc.yy"
    { (yyval.charset)= &my_charset_bin; }
    break;

  case 681:
#line 5099 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset);   }
    break;

  case 682:
#line 5100 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 683:
#line 5104 "sql_yacc.yy"
    { (yyval.charset)= NULL; }
    break;

  case 684:
#line 5105 "sql_yacc.yy"
    { (yyval.charset)= (yyvsp[(2) - (2)].charset); }
    break;

  case 685:
#line 5110 "sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_csname((yyvsp[(1) - (1)].lex_str).str,MY_CS_PRIMARY,MYF(0))) &&
                !((yyval.charset)=get_old_charset_by_name((yyvsp[(1) - (1)].lex_str).str)))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 686:
#line 5118 "sql_yacc.yy"
    { (yyval.charset)= &my_charset_bin; }
    break;

  case 687:
#line 5122 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset);   }
    break;

  case 688:
#line 5123 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 689:
#line 5128 "sql_yacc.yy"
    {
            if (!((yyval.charset)=get_charset_by_name((yyvsp[(1) - (1)].lex_str).str,MYF(0))))
            {
              my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 690:
#line 5138 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 691:
#line 5139 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(2) - (2)].charset); }
    break;

  case 692:
#line 5143 "sql_yacc.yy"
    { (yyval.charset)=(yyvsp[(1) - (1)].charset); }
    break;

  case 693:
#line 5144 "sql_yacc.yy"
    { (yyval.charset)=NULL; }
    break;

  case 694:
#line 5148 "sql_yacc.yy"
    {}
    break;

  case 695:
#line 5149 "sql_yacc.yy"
    {}
    break;

  case 696:
#line 5153 "sql_yacc.yy"
    { Lex->charset=NULL; }
    break;

  case 697:
#line 5154 "sql_yacc.yy"
    { Lex->charset=&my_charset_latin1; }
    break;

  case 698:
#line 5155 "sql_yacc.yy"
    { Lex->charset=&my_charset_bin; }
    break;

  case 699:
#line 5157 "sql_yacc.yy"
    {
            if (!(Lex->charset=get_charset_by_csname("ucs2",
                                                     MY_CS_PRIMARY,MYF(0))))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
              MYSQL_YYABORT;
            }
          }
    break;

  case 700:
#line 5165 "sql_yacc.yy"
    { Lex->charset=(yyvsp[(2) - (3)].charset); }
    break;

  case 701:
#line 5166 "sql_yacc.yy"
    { Lex->type|= BINCMP_FLAG; }
    break;

  case 702:
#line 5170 "sql_yacc.yy"
    { }
    break;

  case 703:
#line 5171 "sql_yacc.yy"
    { Lex->type|= BINCMP_FLAG; }
    break;

  case 704:
#line 5175 "sql_yacc.yy"
    { Lex->charset= NULL; }
    break;

  case 705:
#line 5176 "sql_yacc.yy"
    { Lex->charset=&my_charset_latin1; }
    break;

  case 706:
#line 5178 "sql_yacc.yy"
    {
            if (!(Lex->charset=get_charset_by_csname("ucs2",
                                                     MY_CS_PRIMARY,MYF(0))))
            {
              my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), "ucs2");
              MYSQL_YYABORT;
            }
          }
    break;

  case 707:
#line 5186 "sql_yacc.yy"
    { Lex->charset=(yyvsp[(2) - (2)].charset); }
    break;

  case 708:
#line 5191 "sql_yacc.yy"
    {
          if ((yyvsp[(2) - (2)].ulong_num) == 0)
          {
            my_parse_error(ER(ER_SYNTAX_ERROR));
            MYSQL_YYABORT;
          }
        }
    break;

  case 709:
#line 5199 "sql_yacc.yy"
    { (yyval.ulong_num)= (yyvsp[(2) - (4)].ulong_num); }
    break;

  case 710:
#line 5203 "sql_yacc.yy"
    { (yyval.ulong_num)= 0; }
    break;

  case 711:
#line 5204 "sql_yacc.yy"
    { (yyval.ulong_num)= 1 << MY_STRXFRM_DESC_SHIFT; }
    break;

  case 712:
#line 5208 "sql_yacc.yy"
    { (yyval.ulong_num)= 1 << MY_STRXFRM_REVERSE_SHIFT; }
    break;

  case 713:
#line 5211 "sql_yacc.yy"
    { (yyval.ulong_num)= 0; }
    break;

  case 714:
#line 5212 "sql_yacc.yy"
    { (yyval.ulong_num)= (yyvsp[(1) - (1)].ulong_num); }
    break;

  case 715:
#line 5213 "sql_yacc.yy"
    { (yyval.ulong_num)= (yyvsp[(1) - (2)].ulong_num) | (yyvsp[(2) - (2)].ulong_num); }
    break;

  case 716:
#line 5214 "sql_yacc.yy"
    { (yyval.ulong_num)= (yyvsp[(1) - (1)].ulong_num) ; }
    break;

  case 717:
#line 5219 "sql_yacc.yy"
    {
          (yyval.ulong_num)= (yyvsp[(1) - (1)].ulong_num) < 1 ? 1 : ((yyvsp[(1) - (1)].ulong_num) > MY_STRXFRM_NLEVELS ? MY_STRXFRM_NLEVELS : (yyvsp[(1) - (1)].ulong_num));
          (yyval.ulong_num)--;
        }
    break;

  case 718:
#line 5227 "sql_yacc.yy"
    {
          (yyval.ulong_num)= (1 | (yyvsp[(2) - (2)].ulong_num)) << (yyvsp[(1) - (2)].ulong_num);
        }
    break;

  case 719:
#line 5233 "sql_yacc.yy"
    { (yyval.ulong_num)= (yyvsp[(1) - (1)].ulong_num); }
    break;

  case 720:
#line 5234 "sql_yacc.yy"
    { (yyval.ulong_num)|= (yyvsp[(3) - (3)].ulong_num); }
    break;

  case 721:
#line 5239 "sql_yacc.yy"
    {
          uint start= (yyvsp[(1) - (3)].ulong_num);
          uint end= (yyvsp[(3) - (3)].ulong_num);
          for ((yyval.ulong_num)= 0; start <= end; start++)
            (yyval.ulong_num)|= (1 << start);
        }
    break;

  case 722:
#line 5248 "sql_yacc.yy"
    { (yyval.ulong_num)= (yyvsp[(1) - (1)].ulong_num); }
    break;

  case 723:
#line 5249 "sql_yacc.yy"
    { (yyval.ulong_num)= (yyvsp[(1) - (1)].ulong_num); }
    break;

  case 724:
#line 5253 "sql_yacc.yy"
    { (yyval.ulong_num)= 0; }
    break;

  case 725:
#line 5254 "sql_yacc.yy"
    { (yyval.ulong_num)= (yyvsp[(2) - (2)].ulong_num); }
    break;

  case 728:
#line 5264 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->fk_delete_opt= lex->fk_update_opt= lex->fk_match_option= 0;
            lex->ref_list.empty();
          }
    break;

  case 729:
#line 5270 "sql_yacc.yy"
    {
            (yyval.table)=(yyvsp[(2) - (4)].table);
          }
    break;

  case 730:
#line 5276 "sql_yacc.yy"
    {}
    break;

  case 731:
#line 5277 "sql_yacc.yy"
    {}
    break;

  case 732:
#line 5281 "sql_yacc.yy"
    { Lex->ref_list.push_back(new Key_part_spec((yyvsp[(3) - (3)].lex_str).str)); }
    break;

  case 733:
#line 5282 "sql_yacc.yy"
    { Lex->ref_list.push_back(new Key_part_spec((yyvsp[(1) - (1)].lex_str).str)); }
    break;

  case 734:
#line 5286 "sql_yacc.yy"
    {}
    break;

  case 735:
#line 5287 "sql_yacc.yy"
    {}
    break;

  case 736:
#line 5291 "sql_yacc.yy"
    {}
    break;

  case 737:
#line 5292 "sql_yacc.yy"
    {}
    break;

  case 738:
#line 5296 "sql_yacc.yy"
    { Lex->fk_delete_opt= (yyvsp[(3) - (3)].num); }
    break;

  case 739:
#line 5297 "sql_yacc.yy"
    { Lex->fk_update_opt= (yyvsp[(3) - (3)].num); }
    break;

  case 740:
#line 5298 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; }
    break;

  case 741:
#line 5299 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; }
    break;

  case 742:
#line 5300 "sql_yacc.yy"
    { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; }
    break;

  case 743:
#line 5304 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_RESTRICT; }
    break;

  case 744:
#line 5305 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_CASCADE; }
    break;

  case 745:
#line 5306 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_SET_NULL; }
    break;

  case 746:
#line 5307 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_NO_ACTION; }
    break;

  case 747:
#line 5308 "sql_yacc.yy"
    { (yyval.num)= (int) Foreign_key::FK_OPTION_DEFAULT;  }
    break;

  case 748:
#line 5312 "sql_yacc.yy"
    { (yyval.key_type)= Key::MULTIPLE; }
    break;

  case 749:
#line 5313 "sql_yacc.yy"
    { (yyval.key_type)= Key::FULLTEXT; }
    break;

  case 750:
#line 5315 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            (yyval.key_type)= Key::SPATIAL;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 751:
#line 5327 "sql_yacc.yy"
    { (yyval.key_type)= Key::PRIMARY; }
    break;

  case 752:
#line 5328 "sql_yacc.yy"
    { (yyval.key_type)= Key::UNIQUE; }
    break;

  case 753:
#line 5332 "sql_yacc.yy"
    {}
    break;

  case 754:
#line 5333 "sql_yacc.yy"
    {}
    break;

  case 755:
#line 5337 "sql_yacc.yy"
    {}
    break;

  case 757:
#line 5342 "sql_yacc.yy"
    {}
    break;

  case 758:
#line 5343 "sql_yacc.yy"
    {}
    break;

  case 759:
#line 5344 "sql_yacc.yy"
    {}
    break;

  case 760:
#line 5348 "sql_yacc.yy"
    { (yyval.key_type)= Key::MULTIPLE; }
    break;

  case 761:
#line 5349 "sql_yacc.yy"
    { (yyval.key_type)= Key::UNIQUE; }
    break;

  case 762:
#line 5350 "sql_yacc.yy"
    { (yyval.key_type)= Key::FULLTEXT;}
    break;

  case 763:
#line 5352 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            (yyval.key_type)= Key::SPATIAL;
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 764:
#line 5364 "sql_yacc.yy"
    {
            Lex->key_create_info= default_key_create_info;
          }
    break;

  case 767:
#line 5381 "sql_yacc.yy"
    {}
    break;

  case 771:
#line 5391 "sql_yacc.yy"
    { Lex->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
    break;

  case 772:
#line 5392 "sql_yacc.yy"
    { Lex->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
    break;

  case 774:
#line 5398 "sql_yacc.yy"
    { Lex->key_create_info.block_size= (yyvsp[(3) - (3)].ulong_num); }
    break;

  case 775:
#line 5399 "sql_yacc.yy"
    { Lex->key_create_info.comment= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 776:
#line 5401 "sql_yacc.yy"
    {
            if (plugin_is_ready(&(yyvsp[(3) - (3)].lex_str), MYSQL_FTPARSER_PLUGIN))
              Lex->key_create_info.parser_name= (yyvsp[(3) - (3)].lex_str);
            else
            {
              my_error(ER_FUNCTION_NOT_DEFINED, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
          }
    break;

  case 777:
#line 5413 "sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_BTREE; }
    break;

  case 778:
#line 5414 "sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_RTREE; }
    break;

  case 779:
#line 5415 "sql_yacc.yy"
    { (yyval.key_alg)= HA_KEY_ALG_HASH; }
    break;

  case 780:
#line 5419 "sql_yacc.yy"
    { Lex->col_list.push_back((yyvsp[(3) - (4)].key_part)); }
    break;

  case 781:
#line 5420 "sql_yacc.yy"
    { Lex->col_list.push_back((yyvsp[(1) - (2)].key_part)); }
    break;

  case 782:
#line 5424 "sql_yacc.yy"
    { (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (1)].lex_str).str); }
    break;

  case 783:
#line 5426 "sql_yacc.yy"
    {
            int key_part_len= atoi((yyvsp[(3) - (4)].lex_str).str);
            if (!key_part_len)
            {
              my_error(ER_KEY_PART_0, MYF(0), (yyvsp[(1) - (4)].lex_str).str);
            }
            (yyval.key_part)=new Key_part_spec((yyvsp[(1) - (4)].lex_str).str,(uint) key_part_len);
          }
    break;

  case 784:
#line 5437 "sql_yacc.yy"
    { (yyval.simple_string)=(char*) 0; /* Default length */ }
    break;

  case 785:
#line 5438 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[(1) - (1)].lex_str).str; }
    break;

  case 786:
#line 5442 "sql_yacc.yy"
    { (yyval.lex_str)= null_lex_str; }
    break;

  case 787:
#line 5443 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(2) - (2)].lex_str); }
    break;

  case 788:
#line 5447 "sql_yacc.yy"
    { Lex->interval_list.push_back((yyvsp[(1) - (1)].string)); }
    break;

  case 789:
#line 5448 "sql_yacc.yy"
    { Lex->interval_list.push_back((yyvsp[(3) - (3)].string)); }
    break;

  case 790:
#line 5456 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->name.str= 0;
            lex->name.length= 0;
            lex->sql_command= SQLCOM_ALTER_TABLE;
            lex->duplicates= DUP_ERROR; 
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(4) - (4)].table), NULL,
                                                   TL_OPTION_UPDATING))
              MYSQL_YYABORT;
            lex->alter_info.reset();
            lex->col_list.empty();
            lex->select_lex.init_order();
            lex->select_lex.db=
              ((TABLE_LIST*) lex->select_lex.table_list.first)->db;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
            lex->create_info.db_type= 0;
            lex->create_info.default_table_charset= NULL;
            lex->create_info.row_type= ROW_TYPE_NOT_USED;
            lex->alter_info.reset();
            lex->no_write_to_binlog= 0;
            lex->create_info.default_storage_media= HA_SM_DEFAULT;	
          }
    break;

  case 791:
#line 5480 "sql_yacc.yy"
    {}
    break;

  case 792:
#line 5482 "sql_yacc.yy"
    {
            Lex->create_info.default_table_charset= NULL;
            Lex->create_info.used_fields= 0;
          }
    break;

  case 793:
#line 5487 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_ALTER_DB;
            lex->name= (yyvsp[(3) - (5)].lex_str);
            if (lex->name.str == NULL &&
                lex->copy_db_to(&lex->name.str, &lex->name.length))
              MYSQL_YYABORT;
          }
    break;

  case 794:
#line 5496 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 795:
#line 5507 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            lex->sql_command= SQLCOM_ALTER_PROCEDURE;
            lex->spname= (yyvsp[(3) - (5)].spname);
          }
    break;

  case 796:
#line 5514 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 797:
#line 5525 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            lex->sql_command= SQLCOM_ALTER_FUNCTION;
            lex->spname= (yyvsp[(3) - (5)].spname);
          }
    break;

  case 798:
#line 5532 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
              MYSQL_YYABORT;
            }
            lex->create_view_mode= VIEW_ALTER;
          }
    break;

  case 799:
#line 5543 "sql_yacc.yy"
    {}
    break;

  case 800:
#line 5550 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "ALTER VIEW");
              MYSQL_YYABORT;
            }
            lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED;
            lex->create_view_mode= VIEW_ALTER;
          }
    break;

  case 801:
#line 5562 "sql_yacc.yy"
    {}
    break;

  case 802:
#line 5568 "sql_yacc.yy"
    {
            /* 
              It is safe to use Lex->spname because
              ALTER EVENT xxx RENATE TO yyy DO ALTER EVENT RENAME TO
              is not allowed. Lex->spname is used in the case of RENAME TO
              If it had to be supported spname had to be added to
              Event_parse_data.
            */

            if (!(Lex->event_parse_data= Event_parse_data::new_instance(YYTHD)))
              MYSQL_YYABORT;
            Lex->event_parse_data->identifier= (yyvsp[(4) - (4)].spname);

            /*
              We have to turn off CLIENT_MULTI_QUERIES while parsing a
              stored procedure, otherwise yylex will chop it into pieces
              at each ';'.
            */
            (yyval.ulong_num)= YYTHD->client_capabilities & CLIENT_MULTI_QUERIES;
            YYTHD->client_capabilities &= ~CLIENT_MULTI_QUERIES;

            Lex->sql_command= SQLCOM_ALTER_EVENT;
          }
    break;

  case 803:
#line 5596 "sql_yacc.yy"
    {
            /*
              $1 - ALTER
              $2 - definer
              $3 - EVENT_SYM
              $4 - sp_name
              $5 - the block above
            */
            YYTHD->client_capabilities |= (yyvsp[(5) - (10)].ulong_num);

            if (!((yyvsp[(6) - (10)].num) || (yyvsp[(7) - (10)].num) || (yyvsp[(8) - (10)].num) || (yyvsp[(9) - (10)].num) || (yyvsp[(10) - (10)].num)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /*
              sql_command is set here because some rules in ev_sql_stmt
              can overwrite it
            */
            Lex->sql_command= SQLCOM_ALTER_EVENT;
          }
    break;

  case 804:
#line 5618 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_TABLESPACE;
          }
    break;

  case 805:
#line 5623 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_LOGFILE_GROUP;
          }
    break;

  case 806:
#line 5628 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= CHANGE_FILE_TABLESPACE;
          }
    break;

  case 807:
#line 5633 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= ALTER_ACCESS_MODE_TABLESPACE;
          }
    break;

  case 808:
#line 5638 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_ALTER_SERVER;
            lex->server_options.server_name= (yyvsp[(3) - (7)].lex_str).str;
            lex->server_options.server_name_length= (yyvsp[(3) - (7)].lex_str).length;
          }
    break;

  case 809:
#line 5647 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 810:
#line 5648 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 811:
#line 5649 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 812:
#line 5650 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 813:
#line 5654 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 814:
#line 5656 "sql_yacc.yy"
    {
            /*
              Use lex's spname to hold the new name.
              The original name is in the Event_parse_data object
            */
            Lex->spname= (yyvsp[(3) - (3)].spname); 
            (yyval.num)= 1;
          }
    break;

  case 815:
#line 5667 "sql_yacc.yy"
    { (yyval.num)= 0;}
    break;

  case 816:
#line 5668 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 817:
#line 5672 "sql_yacc.yy"
    { (yyval.lex_str).str= 0; (yyval.lex_str).length= 0; }
    break;

  case 818:
#line 5673 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 820:
#line 5678 "sql_yacc.yy"
    { Lex->alter_info.tablespace_op= DISCARD_TABLESPACE; }
    break;

  case 821:
#line 5679 "sql_yacc.yy"
    { Lex->alter_info.tablespace_op= IMPORT_TABLESPACE; }
    break;

  case 827:
#line 5696 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_DROP_PARTITION;
          }
    break;

  case 828:
#line 5701 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_REBUILD_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
          }
    break;

  case 829:
#line 5708 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_OPTIMIZE_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
          }
    break;

  case 831:
#line 5717 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_ANALYZE_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
          }
    break;

  case 833:
#line 5725 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_CHECK_PARTITION;
            lex->check_opt.init();
          }
    break;

  case 835:
#line 5733 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_REPAIR_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->check_opt.init();
          }
    break;

  case 837:
#line 5741 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_info.flags|= ALTER_COALESCE_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
            lex->alter_info.no_parts= (yyvsp[(4) - (4)].ulong_num);
          }
    break;

  case 839:
#line 5752 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_REMOVE_PARTITIONING;
          }
    break;

  case 840:
#line 5759 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ALL_PARTITION;
          }
    break;

  case 842:
#line 5767 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
              mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            lex->alter_info.flags|= ALTER_ADD_PARTITION;
            lex->no_write_to_binlog= (yyvsp[(3) - (3)].num);
          }
    break;

  case 843:
#line 5779 "sql_yacc.yy"
    {}
    break;

  case 845:
#line 5785 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->no_parts= lex->part_info->partitions.elements;
          }
    break;

  case 846:
#line 5790 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->no_parts= (yyvsp[(2) - (2)].ulong_num);
          }
    break;

  case 847:
#line 5798 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info= new partition_info();
            if (!lex->part_info)
            {
            mem_alloc_error(sizeof(partition_info));
              MYSQL_YYABORT;
            }
            lex->no_write_to_binlog= (yyvsp[(3) - (3)].num);
          }
    break;

  case 849:
#line 5813 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_TABLE_REORG;
          }
    break;

  case 850:
#line 5817 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_REORGANIZE_PARTITION;
          }
    break;

  case 851:
#line 5821 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->part_info->no_parts= lex->part_info->partitions.elements;
          }
    break;

  case 852:
#line 5828 "sql_yacc.yy"
    {}
    break;

  case 853:
#line 5829 "sql_yacc.yy"
    {}
    break;

  case 854:
#line 5834 "sql_yacc.yy"
    {
            if (Lex->alter_info.partition_names.push_back((yyvsp[(1) - (1)].lex_str).str))
            {
              mem_alloc_error(1);
              MYSQL_YYABORT;
            }
          }
    break;

  case 857:
#line 5854 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->change=0;
            lex->alter_info.flags|= ALTER_ADD_COLUMN;
          }
    break;

  case 858:
#line 5862 "sql_yacc.yy"
    { }
    break;

  case 859:
#line 5864 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ADD_INDEX;
          }
    break;

  case 860:
#line 5868 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_ADD_COLUMN | ALTER_ADD_INDEX;
          }
    break;

  case 861:
#line 5872 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->change= (yyvsp[(3) - (3)].lex_str).str;
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
          }
    break;

  case 863:
#line 5879 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->length=lex->dec=0; lex->type=0;
            lex->default_value= lex->on_update_value= 0;
            lex->comment=null_lex_str;
            lex->charset= NULL;
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN;
            lex->storage_type= HA_SM_DEFAULT;
            lex->column_format= COLUMN_FORMAT_TYPE_DEFAULT;
          }
    break;

  case 864:
#line 5890 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (add_field_to_list(lex->thd,&(yyvsp[(3) - (6)].lex_str),
                                  (enum enum_field_types) (yyvsp[(5) - (6)].num),
                                  lex->length,lex->dec,lex->type,
                                  lex->storage_type, lex->column_format,
                                  lex->default_value, lex->on_update_value,
                                  &lex->comment,
                                  (yyvsp[(3) - (6)].lex_str).str, &lex->interval_list, lex->charset,
                                  lex->uint_geom_type))
              MYSQL_YYABORT;
          }
    break;

  case 866:
#line 5904 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::COLUMN,
                                                               (yyvsp[(3) - (4)].lex_str).str));
            lex->alter_info.flags|= ALTER_DROP_COLUMN;
          }
    break;

  case 867:
#line 5911 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_DROP_INDEX | ALTER_FOREIGN_KEY;
          }
    break;

  case 868:
#line 5915 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
                                                               primary_key_name));
            lex->alter_info.flags|= ALTER_DROP_INDEX;
          }
    break;

  case 869:
#line 5922 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
                                                               (yyvsp[(3) - (3)].lex_str).str));
            lex->alter_info.flags|= ALTER_DROP_INDEX;
          }
    break;

  case 870:
#line 5929 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.keys_onoff= DISABLE;
            lex->alter_info.flags|= ALTER_KEYS_ONOFF;
          }
    break;

  case 871:
#line 5935 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.keys_onoff= ENABLE;
            lex->alter_info.flags|= ALTER_KEYS_ONOFF;
          }
    break;

  case 872:
#line 5941 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.alter_list.push_back(new Alter_column((yyvsp[(3) - (6)].lex_str).str,(yyvsp[(6) - (6)].item)));
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
          }
    break;

  case 873:
#line 5947 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.alter_list.push_back(new Alter_column((yyvsp[(3) - (5)].lex_str).str,
                                                                  (Item*) 0));
            lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT;
          }
    break;

  case 874:
#line 5954 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            size_t dummy;
            lex->select_lex.db=(yyvsp[(3) - (3)].table)->db.str;
            if (lex->select_lex.db == NULL &&
                lex->copy_db_to(&lex->select_lex.db, &dummy))
            {
              MYSQL_YYABORT;
            }
            if (check_table_name((yyvsp[(3) - (3)].table)->table.str,(yyvsp[(3) - (3)].table)->table.length) ||
                (yyvsp[(3) - (3)].table)->db.str && check_db_name(&(yyvsp[(3) - (3)].table)->db))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (3)].table)->table.str);
              MYSQL_YYABORT;
            }
            lex->name= (yyvsp[(3) - (3)].table)->table;
            lex->alter_info.flags|= ALTER_RENAME;
          }
    break;

  case 875:
#line 5973 "sql_yacc.yy"
    {
            if (!(yyvsp[(4) - (5)].charset))
            {
              THD *thd= YYTHD;
              (yyvsp[(4) - (5)].charset)= thd->variables.collation_database;
            }
            (yyvsp[(5) - (5)].charset)= (yyvsp[(5) - (5)].charset) ? (yyvsp[(5) - (5)].charset) : (yyvsp[(4) - (5)].charset);
            if (!my_charset_same((yyvsp[(4) - (5)].charset),(yyvsp[(5) - (5)].charset)))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[(5) - (5)].charset)->name, (yyvsp[(4) - (5)].charset)->csname);
              MYSQL_YYABORT;
            }
            LEX *lex= Lex;
            lex->create_info.table_charset=
            lex->create_info.default_table_charset= (yyvsp[(5) - (5)].charset);
            lex->create_info.used_fields|= (HA_CREATE_USED_CHARSET |
              HA_CREATE_USED_DEFAULT_CHARSET);
            lex->alter_info.flags|= ALTER_CONVERT;
          }
    break;

  case 876:
#line 5994 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.flags|= ALTER_OPTIONS;
          }
    break;

  case 877:
#line 5999 "sql_yacc.yy"
    {
            Lex->alter_info.flags|= ALTER_FORCE;
          }
    break;

  case 878:
#line 6003 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->alter_info.flags|= ALTER_ORDER;
          }
    break;

  case 879:
#line 6010 "sql_yacc.yy"
    {}
    break;

  case 880:
#line 6011 "sql_yacc.yy"
    {}
    break;

  case 881:
#line 6015 "sql_yacc.yy"
    { Lex->ignore= 0;}
    break;

  case 882:
#line 6016 "sql_yacc.yy"
    { Lex->ignore= 1;}
    break;

  case 883:
#line 6020 "sql_yacc.yy"
    { Lex->drop_mode= DROP_DEFAULT; }
    break;

  case 884:
#line 6021 "sql_yacc.yy"
    { Lex->drop_mode= DROP_RESTRICT; }
    break;

  case 885:
#line 6022 "sql_yacc.yy"
    { Lex->drop_mode= DROP_CASCADE; }
    break;

  case 886:
#line 6026 "sql_yacc.yy"
    {}
    break;

  case 887:
#line 6027 "sql_yacc.yy"
    { store_position_for_column((yyvsp[(2) - (2)].lex_str).str); }
    break;

  case 888:
#line 6028 "sql_yacc.yy"
    { store_position_for_column(first_keyword); }
    break;

  case 889:
#line 6032 "sql_yacc.yy"
    {}
    break;

  case 890:
#line 6033 "sql_yacc.yy"
    {}
    break;

  case 891:
#line 6034 "sql_yacc.yy"
    {}
    break;

  case 892:
#line 6035 "sql_yacc.yy"
    {}
    break;

  case 893:
#line 6044 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_START;
            lex->type = 0;
            /* We'll use mi structure for UNTIL options */
            bzero((char*) &lex->mi, sizeof(lex->mi));
            /* If you change this code don't forget to update SLAVE START too */
          }
    break;

  case 894:
#line 6053 "sql_yacc.yy"
    {}
    break;

  case 895:
#line 6055 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_STOP;
            lex->type = 0;
            /* If you change this code don't forget to update SLAVE STOP too */
          }
    break;

  case 896:
#line 6062 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_START;
            lex->type = 0;
            /* We'll use mi structure for UNTIL options */
            bzero((char*) &lex->mi, sizeof(lex->mi));
          }
    break;

  case 897:
#line 6070 "sql_yacc.yy"
    {}
    break;

  case 898:
#line 6072 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_SLAVE_STOP;
            lex->type = 0;
          }
    break;

  case 899:
#line 6081 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_BEGIN;
            lex->start_transaction_opt= (yyvsp[(3) - (3)].num);
          }
    break;

  case 900:
#line 6089 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 901:
#line 6091 "sql_yacc.yy"
    {
            (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT;
          }
    break;

  case 902:
#line 6097 "sql_yacc.yy"
    { Lex->slave_thd_opt= 0; }
    break;

  case 903:
#line 6099 "sql_yacc.yy"
    {}
    break;

  case 906:
#line 6108 "sql_yacc.yy"
    {}
    break;

  case 907:
#line 6109 "sql_yacc.yy"
    { Lex->slave_thd_opt|=SLAVE_SQL; }
    break;

  case 908:
#line 6110 "sql_yacc.yy"
    { Lex->slave_thd_opt|=SLAVE_IO; }
    break;

  case 909:
#line 6114 "sql_yacc.yy"
    {}
    break;

  case 910:
#line 6116 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if ((lex->mi.log_file_name || lex->mi.pos) &&
                (lex->mi.relay_log_name || lex->mi.relay_log_pos) ||
                !((lex->mi.log_file_name && lex->mi.pos) ||
                  (lex->mi.relay_log_name && lex->mi.relay_log_pos)))
            {
               my_message(ER_BAD_SLAVE_UNTIL_COND,
                          ER(ER_BAD_SLAVE_UNTIL_COND), MYF(0));
               MYSQL_YYABORT;
            }
          }
    break;

  case 913:
#line 6136 "sql_yacc.yy"
    {
	   Lex->sql_command = SQLCOM_RESTORE;
     Lex->db_list.empty();
	}
    break;

  case 914:
#line 6141 "sql_yacc.yy"
    {
	  Lex->backup_dir = (yyvsp[(4) - (4)].lex_str); 
  }
    break;

  case 915:
#line 6147 "sql_yacc.yy"
    {
	   Lex->sql_command = SQLCOM_BACKUP;
     Lex->db_list.empty();
	}
    break;

  case 916:
#line 6152 "sql_yacc.yy"
    {
	  Lex->backup_dir = (yyvsp[(6) - (6)].lex_str); 
  }
    break;

  case 917:
#line 6158 "sql_yacc.yy"
    {}
    break;

  case 918:
#line 6160 "sql_yacc.yy"
    {
     if (Lex->db_list.push_back((LEX_STRING*)
         sql_memdup(&(yyvsp[(1) - (1)].lex_str), sizeof(LEX_STRING))))
       YYABORT;
  }
    break;

  case 919:
#line 6166 "sql_yacc.yy"
    {
     if (Lex->db_list.push_back((LEX_STRING*)
         sql_memdup(&(yyvsp[(3) - (3)].lex_str), sizeof(LEX_STRING))))
       YYABORT;
  }
    break;

  case 920:
#line 6174 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_CHECKSUM;
          }
    break;

  case 921:
#line 6179 "sql_yacc.yy"
    {}
    break;

  case 922:
#line 6183 "sql_yacc.yy"
    { Lex->check_opt.flags= 0; }
    break;

  case 923:
#line 6184 "sql_yacc.yy"
    { Lex->check_opt.flags= T_QUICK; }
    break;

  case 924:
#line 6185 "sql_yacc.yy"
    { Lex->check_opt.flags= T_EXTEND; }
    break;

  case 925:
#line 6190 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_REPAIR;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
          }
    break;

  case 926:
#line 6197 "sql_yacc.yy"
    {}
    break;

  case 927:
#line 6201 "sql_yacc.yy"
    { Lex->check_opt.flags = T_MEDIUM; }
    break;

  case 928:
#line 6202 "sql_yacc.yy"
    {}
    break;

  case 929:
#line 6206 "sql_yacc.yy"
    {}
    break;

  case 930:
#line 6207 "sql_yacc.yy"
    {}
    break;

  case 931:
#line 6211 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_QUICK; }
    break;

  case 932:
#line 6212 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_EXTEND; }
    break;

  case 933:
#line 6213 "sql_yacc.yy"
    { Lex->check_opt.sql_flags|= TT_USEFRM; }
    break;

  case 934:
#line 6218 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_ANALYZE;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
          }
    break;

  case 935:
#line 6225 "sql_yacc.yy"
    {}
    break;

  case 936:
#line 6230 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT;
            Lex->comment= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 937:
#line 6238 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "CHECK");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_CHECK;
            lex->check_opt.init();
          }
    break;

  case 938:
#line 6250 "sql_yacc.yy"
    {}
    break;

  case 939:
#line 6254 "sql_yacc.yy"
    { Lex->check_opt.flags = T_MEDIUM; }
    break;

  case 940:
#line 6255 "sql_yacc.yy"
    {}
    break;

  case 941:
#line 6259 "sql_yacc.yy"
    {}
    break;

  case 942:
#line 6260 "sql_yacc.yy"
    {}
    break;

  case 943:
#line 6264 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_QUICK; }
    break;

  case 944:
#line 6265 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_FAST; }
    break;

  case 945:
#line 6266 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_MEDIUM; }
    break;

  case 946:
#line 6267 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_EXTEND; }
    break;

  case 947:
#line 6268 "sql_yacc.yy"
    { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; }
    break;

  case 948:
#line 6269 "sql_yacc.yy"
    { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; }
    break;

  case 949:
#line 6274 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_OPTIMIZE;
            lex->no_write_to_binlog= (yyvsp[(2) - (3)].num);
            lex->check_opt.init();
          }
    break;

  case 950:
#line 6281 "sql_yacc.yy"
    {}
    break;

  case 951:
#line 6285 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 952:
#line 6286 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 953:
#line 6287 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 954:
#line 6292 "sql_yacc.yy"
    {
            Lex->sql_command= SQLCOM_RENAME_TABLE;
          }
    break;

  case 955:
#line 6296 "sql_yacc.yy"
    {}
    break;

  case 956:
#line 6298 "sql_yacc.yy"
    {
            Lex->db_list.empty();
            Lex->sql_command= SQLCOM_RENAME_DB;
          }
    break;

  case 957:
#line 6303 "sql_yacc.yy"
    {}
    break;

  case 958:
#line 6305 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_RENAME_USER;
          }
    break;

  case 959:
#line 6312 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (3)].lex_user)) || Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 960:
#line 6317 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (5)].lex_user)) || Lex->users_list.push_back((yyvsp[(5) - (5)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 963:
#line 6330 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            SELECT_LEX *sl= lex->current_select;
            if (!sl->add_table_to_list(lex->thd, (yyvsp[(1) - (3)].table),NULL,TL_OPTION_UPDATING,
                                       TL_IGNORE) ||
                !sl->add_table_to_list(lex->thd, (yyvsp[(3) - (3)].table),NULL,TL_OPTION_UPDATING,
                                       TL_IGNORE))
              MYSQL_YYABORT;
          }
    break;

  case 964:
#line 6343 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->db_list.push_back((LEX_STRING*)
                                       sql_memdup(&(yyvsp[(1) - (3)].lex_str), sizeof(LEX_STRING))) ||
                lex->db_list.push_back((LEX_STRING*)
                                       sql_memdup(&(yyvsp[(3) - (3)].lex_str), sizeof(LEX_STRING))))
              MYSQL_YYABORT;
          }
    break;

  case 965:
#line 6355 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE;
            lex->ident= (yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 968:
#line 6369 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (2)].table), NULL, 0, TL_READ, 
                                           Select->pop_index_hints()))
              MYSQL_YYABORT;
          }
    break;

  case 969:
#line 6377 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 970:
#line 6378 "sql_yacc.yy"
    { (yyval.lex_str) = default_key_cache_base; }
    break;

  case 971:
#line 6383 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_PRELOAD_KEYS;
          }
    break;

  case 972:
#line 6388 "sql_yacc.yy"
    {}
    break;

  case 975:
#line 6398 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (3)].table), NULL, (yyvsp[(3) - (3)].num), TL_READ,
                                           Select->pop_index_hints()))
              MYSQL_YYABORT;
          }
    break;

  case 976:
#line 6406 "sql_yacc.yy"
    {
            Lex->select_lex.alloc_index_hints(YYTHD);
            Select->set_index_hint_type(INDEX_HINT_USE, 
                                        global_system_variables.old_mode ? 
                                        INDEX_HINT_MASK_JOIN : 
                                        INDEX_HINT_MASK_ALL);
          }
    break;

  case 978:
#line 6417 "sql_yacc.yy"
    { }
    break;

  case 980:
#line 6423 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 981:
#line 6424 "sql_yacc.yy"
    { (yyval.num)= TL_OPTION_IGNORE_LEAVES; }
    break;

  case 982:
#line 6434 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SELECT;
          }
    break;

  case 985:
#line 6448 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX * sel= lex->current_select;
            if (sel->set_braces(1))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (sel->linkage == UNION_TYPE &&
                !sel->master_unit()->first_select()->braces &&
                sel->master_unit()->first_select()->linkage ==
                UNION_TYPE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /* select in braces, can't contain global parameters */
            if (sel->master_unit()->fake_select_lex)
              sel->master_unit()->global_parameters=
                 sel->master_unit()->fake_select_lex;
          }
    break;

  case 987:
#line 6474 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX * sel= lex->current_select;
            if (lex->current_select->set_braces(0))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (sel->linkage == UNION_TYPE &&
                sel->master_unit()->first_select()->braces)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 989:
#line 6493 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->linkage != UNION_TYPE)
              mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 990:
#line 6501 "sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 992:
#line 6508 "sql_yacc.yy"
    {}
    break;

  case 997:
#line 6518 "sql_yacc.yy"
    {
            Select->context.table_list=
              Select->context.first_name_resolution_table= 
                (TABLE_LIST *) Select->table_list.first;
          }
    break;

  case 1000:
#line 6533 "sql_yacc.yy"
    {
            if (Select->options & SELECT_DISTINCT && Select->options & SELECT_ALL)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "ALL", "DISTINCT");
              MYSQL_YYABORT;
            }
          }
    break;

  case 1003:
#line 6548 "sql_yacc.yy"
    { Select->options|= SELECT_STRAIGHT_JOIN; }
    break;

  case 1004:
#line 6550 "sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            Lex->lock_option= TL_READ_HIGH_PRIORITY;
          }
    break;

  case 1005:
#line 6555 "sql_yacc.yy"
    { Select->options|= SELECT_DISTINCT; }
    break;

  case 1006:
#line 6556 "sql_yacc.yy"
    { Select->options|= SELECT_SMALL_RESULT; }
    break;

  case 1007:
#line 6557 "sql_yacc.yy"
    { Select->options|= SELECT_BIG_RESULT; }
    break;

  case 1008:
#line 6559 "sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            Select->options|= OPTION_BUFFER_RESULT;
          }
    break;

  case 1009:
#line 6565 "sql_yacc.yy"
    {
            if (check_simple_select())
              MYSQL_YYABORT;
            Select->options|= OPTION_FOUND_ROWS;
          }
    break;

  case 1010:
#line 6571 "sql_yacc.yy"
    {
            Lex->safe_to_cache_query=0;
            Lex->select_lex.options&= ~OPTION_TO_QUERY_CACHE;
            Lex->select_lex.sql_cache= SELECT_LEX::SQL_NO_CACHE;
          }
    break;

  case 1011:
#line 6577 "sql_yacc.yy"
    {
            /*
             Honor this flag only if SQL_NO_CACHE wasn't specified AND
             we are parsing the outermost SELECT in the query.
            */
            if (Lex->select_lex.sql_cache != SELECT_LEX::SQL_NO_CACHE &&
                Lex->current_select == &Lex->select_lex)
            {
              Lex->safe_to_cache_query=1;
              Lex->select_lex.options|= OPTION_TO_QUERY_CACHE;
              Lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE;
            }
          }
    break;

  case 1012:
#line 6590 "sql_yacc.yy"
    { Select->options|= SELECT_ALL; }
    break;

  case 1014:
#line 6596 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->set_lock_for_tables(TL_WRITE);
            lex->safe_to_cache_query=0;
          }
    break;

  case 1015:
#line 6602 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->
              set_lock_for_tables(TL_READ_WITH_SHARED_LOCKS);
            lex->safe_to_cache_query=0;
          }
    break;

  case 1018:
#line 6614 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            if (add_item_to_list(thd,
                                 new Item_field(&thd->lex->current_select->
                                                context,
                                                NULL, NULL, "*")))
              MYSQL_YYABORT;
            (thd->lex->current_select->with_wild)++;
          }
    break;

  case 1019:
#line 6627 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            DBUG_ASSERT((yyvsp[(1) - (4)].simple_string) < (yyvsp[(3) - (4)].simple_string));

            if (add_item_to_list(thd, (yyvsp[(2) - (4)].item)))
              MYSQL_YYABORT;
            if ((yyvsp[(4) - (4)].lex_str).str)
            {
              (yyvsp[(2) - (4)].item)->is_autogenerated_name= FALSE;
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
            }
            else if (!(yyvsp[(2) - (4)].item)->name)
            {
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), thd->charset());
            }
          }
    break;

  case 1020:
#line 6646 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Lex_input_stream *lip= thd->m_lip;
            (yyval.simple_string)= (char*) lip->get_cpp_tok_start();
          }
    break;

  case 1021:
#line 6654 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Lex_input_stream *lip= thd->m_lip;
            (yyval.simple_string)= (char*) lip->get_cpp_tok_end();
          }
    break;

  case 1022:
#line 6662 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); /* table.* */ }
    break;

  case 1023:
#line 6663 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1024:
#line 6667 "sql_yacc.yy"
    { (yyval.lex_str)=null_lex_str;}
    break;

  case 1025:
#line 6668 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
    break;

  case 1026:
#line 6669 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
    break;

  case 1027:
#line 6670 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1028:
#line 6671 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1029:
#line 6675 "sql_yacc.yy"
    {}
    break;

  case 1030:
#line 6676 "sql_yacc.yy"
    {}
    break;

  case 1031:
#line 6681 "sql_yacc.yy"
    { Select->expr_list.push_front(new List<Item>); }
    break;

  case 1032:
#line 6683 "sql_yacc.yy"
    {
            List<Item> *list= Select->expr_list.pop();
            if (list->elements)
            {
              list->push_front((yyvsp[(1) - (3)].item));
              (yyval.item)= new Item_cond_or(*list);
              /* optimize construction of logical OR to reduce
                 amount of objects for complex expressions */
            }
            else
              (yyval.item)= (yyvsp[(1) - (3)].item);
            delete list;
          }
    break;

  case 1034:
#line 6701 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1035:
#line 6705 "sql_yacc.yy"
    { (yyval.item)= new Item_cond_xor((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1036:
#line 6706 "sql_yacc.yy"
    { Select->expr_list.push_front(new List<Item>); }
    break;

  case 1037:
#line 6708 "sql_yacc.yy"
    {
            List<Item> *list= Select->expr_list.pop();
            if (list->elements)
            {
              list->push_front((yyvsp[(1) - (3)].item));
              (yyval.item)= new Item_cond_and(*list);
              /* optimize construction of logical AND to reduce
                 amount of objects for complex expressions */
            }
            else
              (yyval.item)= (yyvsp[(1) - (3)].item);
            delete list;
          }
    break;

  case 1039:
#line 6726 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1040:
#line 6730 "sql_yacc.yy"
    { (yyval.item)= negate_expression(YYTHD, (yyvsp[(2) - (2)].item)); }
    break;

  case 1042:
#line 6736 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_istrue((yyvsp[(1) - (3)].item)); }
    break;

  case 1043:
#line 6738 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_isnottrue((yyvsp[(1) - (4)].item)); }
    break;

  case 1044:
#line 6740 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_isfalse((yyvsp[(1) - (3)].item)); }
    break;

  case 1045:
#line 6742 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_isnotfalse((yyvsp[(1) - (4)].item)); }
    break;

  case 1046:
#line 6743 "sql_yacc.yy"
    { (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item)); }
    break;

  case 1047:
#line 6744 "sql_yacc.yy"
    { (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item)); }
    break;

  case 1049:
#line 6749 "sql_yacc.yy"
    { (yyval.item)= new Item_func_isnull((yyvsp[(1) - (3)].item)); }
    break;

  case 1050:
#line 6750 "sql_yacc.yy"
    { (yyval.item)= new Item_func_isnotnull((yyvsp[(1) - (4)].item)); }
    break;

  case 1051:
#line 6751 "sql_yacc.yy"
    { (yyval.item)= new Item_func_equal((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1052:
#line 6753 "sql_yacc.yy"
    { (yyval.item)= (*(yyvsp[(2) - (3)].boolfunc2creator))(0)->create((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1053:
#line 6755 "sql_yacc.yy"
    { (yyval.item)= all_any_subquery_creator((yyvsp[(1) - (6)].item), (yyvsp[(2) - (6)].boolfunc2creator), (yyvsp[(3) - (6)].num), (yyvsp[(5) - (6)].select_lex)); }
    break;

  case 1055:
#line 6761 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_in_subselect((yyvsp[(1) - (5)].item), (yyvsp[(4) - (5)].select_lex));
          }
    break;

  case 1056:
#line 6765 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *item= new (thd->mem_root) Item_in_subselect((yyvsp[(1) - (6)].item), (yyvsp[(5) - (6)].select_lex));
            (yyval.item)= negate_expression(thd, item);
          }
    break;

  case 1057:
#line 6771 "sql_yacc.yy"
    {
            (yyval.item)= handle_sql2003_note184_exception(YYTHD, (yyvsp[(1) - (5)].item), true, (yyvsp[(4) - (5)].item));
          }
    break;

  case 1058:
#line 6775 "sql_yacc.yy"
    { 
            (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(4) - (7)].item));
            (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(1) - (7)].item));
            (yyval.item)= new (YYTHD->mem_root) Item_func_in(*(yyvsp[(6) - (7)].item_list));
          }
    break;

  case 1059:
#line 6781 "sql_yacc.yy"
    {
            (yyval.item)= handle_sql2003_note184_exception(YYTHD, (yyvsp[(1) - (6)].item), false, (yyvsp[(5) - (6)].item));
          }
    break;

  case 1060:
#line 6785 "sql_yacc.yy"
    {
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
            (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(1) - (8)].item));
            Item_func_in *item = new (YYTHD->mem_root) Item_func_in(*(yyvsp[(7) - (8)].item_list));
            item->negate();
            (yyval.item)= item;
          }
    break;

  case 1061:
#line 6793 "sql_yacc.yy"
    { (yyval.item)= new Item_func_between((yyvsp[(1) - (5)].item),(yyvsp[(3) - (5)].item),(yyvsp[(5) - (5)].item)); }
    break;

  case 1062:
#line 6795 "sql_yacc.yy"
    {
            Item_func_between *item= new Item_func_between((yyvsp[(1) - (6)].item),(yyvsp[(4) - (6)].item),(yyvsp[(6) - (6)].item));
            item->negate();
            (yyval.item)= item;
          }
    break;

  case 1063:
#line 6801 "sql_yacc.yy"
    {
            (yyval.item)= new Item_func_eq(new Item_func_soundex((yyvsp[(1) - (4)].item)),
                                 new Item_func_soundex((yyvsp[(4) - (4)].item)));
          }
    break;

  case 1064:
#line 6806 "sql_yacc.yy"
    { (yyval.item)= new Item_func_like((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].item),Lex->escape_used); }
    break;

  case 1065:
#line 6808 "sql_yacc.yy"
    { (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)); }
    break;

  case 1066:
#line 6809 "sql_yacc.yy"
    { (yyval.item)= new Item_func_regex((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1067:
#line 6811 "sql_yacc.yy"
    { (yyval.item)= negate_expression(YYTHD, new Item_func_regex((yyvsp[(1) - (4)].item),(yyvsp[(4) - (4)].item))); }
    break;

  case 1069:
#line 6816 "sql_yacc.yy"
    { (yyval.item)= new Item_func_bit_or((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1071:
#line 6821 "sql_yacc.yy"
    { (yyval.item)= new Item_func_bit_and((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1073:
#line 6827 "sql_yacc.yy"
    { (yyval.item)= new Item_func_shift_left((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1074:
#line 6829 "sql_yacc.yy"
    { (yyval.item)= new Item_func_shift_right((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1076:
#line 6834 "sql_yacc.yy"
    { (yyval.item)= new Item_func_plus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1077:
#line 6835 "sql_yacc.yy"
    { (yyval.item)= new Item_func_minus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1078:
#line 6837 "sql_yacc.yy"
    { (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].interval),0); }
    break;

  case 1079:
#line 6839 "sql_yacc.yy"
    { (yyval.item)= new Item_date_add_interval((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].interval),1); }
    break;

  case 1081:
#line 6844 "sql_yacc.yy"
    { (yyval.item)= new Item_func_mul((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1082:
#line 6845 "sql_yacc.yy"
    { (yyval.item)= new Item_func_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1083:
#line 6846 "sql_yacc.yy"
    { (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1084:
#line 6847 "sql_yacc.yy"
    { (yyval.item)= new Item_func_int_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1085:
#line 6848 "sql_yacc.yy"
    { (yyval.item)= new Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1087:
#line 6853 "sql_yacc.yy"
    { (yyval.item)= new Item_func_bit_xor((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item)); }
    break;

  case 1097:
#line 6878 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_eq_creator; }
    break;

  case 1098:
#line 6879 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_ge_creator; }
    break;

  case 1099:
#line 6880 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_gt_creator; }
    break;

  case 1100:
#line 6881 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_le_creator; }
    break;

  case 1101:
#line 6882 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_lt_creator; }
    break;

  case 1102:
#line 6883 "sql_yacc.yy"
    { (yyval.boolfunc2creator) = &comp_ne_creator; }
    break;

  case 1103:
#line 6887 "sql_yacc.yy"
    { (yyval.num) = 1; }
    break;

  case 1104:
#line 6888 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 1105:
#line 6892 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(2) - (2)].item); }
    break;

  case 1111:
#line 6902 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *i1= new (thd->mem_root) Item_string((yyvsp[(3) - (3)].lex_str).str,
                                                      (yyvsp[(3) - (3)].lex_str).length,
                                                      thd->charset());
            (yyval.item)= new (thd->mem_root) Item_func_set_collation((yyvsp[(1) - (3)].item), i1);
          }
    break;

  case 1116:
#line 6914 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_concat((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item)); }
    break;

  case 1117:
#line 6915 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(2) - (2)].item); }
    break;

  case 1118:
#line 6917 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_neg((yyvsp[(2) - (2)].item)); }
    break;

  case 1119:
#line 6919 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_bit_neg((yyvsp[(2) - (2)].item)); }
    break;

  case 1120:
#line 6921 "sql_yacc.yy"
    { (yyval.item)= negate_expression(YYTHD, (yyvsp[(2) - (2)].item)); }
    break;

  case 1121:
#line 6923 "sql_yacc.yy"
    { 
            (yyval.item)= new (YYTHD->mem_root) Item_singlerow_subselect((yyvsp[(2) - (3)].select_lex)); 
          }
    break;

  case 1122:
#line 6926 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(2) - (3)].item); }
    break;

  case 1123:
#line 6928 "sql_yacc.yy"
    {
            (yyvsp[(4) - (5)].item_list)->push_front((yyvsp[(2) - (5)].item));
            (yyval.item)= new (YYTHD->mem_root) Item_row(*(yyvsp[(4) - (5)].item_list));
          }
    break;

  case 1124:
#line 6933 "sql_yacc.yy"
    {
            (yyvsp[(5) - (6)].item_list)->push_front((yyvsp[(3) - (6)].item));
            (yyval.item)= new (YYTHD->mem_root) Item_row(*(yyvsp[(5) - (6)].item_list));
          }
    break;

  case 1125:
#line 6938 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_exists_subselect((yyvsp[(3) - (4)].select_lex)); 
          }
    break;

  case 1126:
#line 6941 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(3) - (4)].item); }
    break;

  case 1127:
#line 6943 "sql_yacc.yy"
    {
            (yyvsp[(2) - (7)].item_list)->push_front((yyvsp[(5) - (7)].item));
            Item_func_match *i1= new (YYTHD->mem_root) Item_func_match(*(yyvsp[(2) - (7)].item_list), (yyvsp[(6) - (7)].num));
            Select->add_ftfunc_to_list(i1);
            (yyval.item)= i1;
          }
    break;

  case 1128:
#line 6950 "sql_yacc.yy"
    {
            (yyval.item)= create_func_cast(YYTHD, (yyvsp[(2) - (2)].item), ITEM_CAST_CHAR, NULL, NULL,
                                 &my_charset_bin);
          }
    break;

  case 1129:
#line 6955 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyval.item)= create_func_cast(YYTHD, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), lex->length, lex->dec,
                                 lex->charset);
            if (!(yyval.item))
              MYSQL_YYABORT;
          }
    break;

  case 1130:
#line 6963 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_case(* (yyvsp[(3) - (5)].item_list), (yyvsp[(2) - (5)].item), (yyvsp[(4) - (5)].item) ); }
    break;

  case 1131:
#line 6965 "sql_yacc.yy"
    {
            (yyval.item)= create_func_cast(YYTHD, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex->length, Lex->dec,
                                 Lex->charset);
            if (!(yyval.item))
              MYSQL_YYABORT;
          }
    break;

  case 1132:
#line 6972 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_conv_charset((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].charset)); }
    break;

  case 1133:
#line 6974 "sql_yacc.yy"
    {
            if ((yyvsp[(3) - (4)].item)->is_splocal())
            {
              Item_splocal *il= static_cast<Item_splocal *>((yyvsp[(3) - (4)].item));

              my_error(ER_WRONG_COLUMN_NAME, MYF(0), il->my_name()->str);
              MYSQL_YYABORT;
            }
            (yyval.item)= new (YYTHD->mem_root) Item_default_value(Lex->current_context(),
                                                         (yyvsp[(3) - (4)].item));
          }
    break;

  case 1134:
#line 6986 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_insert_value(Lex->current_context(),
                                                        (yyvsp[(3) - (4)].item));
          }
    break;

  case 1135:
#line 6992 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(4) - (4)].item),(yyvsp[(1) - (4)].item),(yyvsp[(2) - (4)].interval),0); }
    break;

  case 1136:
#line 6994 "sql_yacc.yy"
    {
            if ((yyvsp[(1) - (1)].item)->type() != Item::ROW_ITEM)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            (yyval.item)= new (YYTHD->mem_root) Item_func_interval((Item_row *)(yyvsp[(1) - (1)].item));
          }
    break;

  case 1137:
#line 7012 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_char(*(yyvsp[(3) - (4)].item_list)); }
    break;

  case 1138:
#line 7014 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_char(*(yyvsp[(3) - (6)].item_list), (yyvsp[(5) - (6)].charset)); }
    break;

  case 1139:
#line 7016 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_current_user(Lex->current_context());
            Lex->safe_to_cache_query= 0;
          }
    break;

  case 1140:
#line 7021 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_typecast((yyvsp[(3) - (4)].item)); }
    break;

  case 1141:
#line 7023 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_dayofmonth((yyvsp[(3) - (4)].item)); }
    break;

  case 1142:
#line 7025 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_hour((yyvsp[(3) - (4)].item)); }
    break;

  case 1143:
#line 7027 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_insert((yyvsp[(3) - (10)].item),(yyvsp[(5) - (10)].item),(yyvsp[(7) - (10)].item),(yyvsp[(9) - (10)].item)); }
    break;

  case 1144:
#line 7029 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_left((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
    break;

  case 1145:
#line 7031 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_minute((yyvsp[(3) - (4)].item)); }
    break;

  case 1146:
#line 7033 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_month((yyvsp[(3) - (4)].item)); }
    break;

  case 1147:
#line 7035 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_right((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
    break;

  case 1148:
#line 7037 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_second((yyvsp[(3) - (4)].item)); }
    break;

  case 1149:
#line 7039 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_time_typecast((yyvsp[(3) - (4)].item)); }
    break;

  case 1150:
#line 7041 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_datetime_typecast((yyvsp[(3) - (4)].item)); }
    break;

  case 1151:
#line 7043 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_add_time((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item), 1, 0); }
    break;

  case 1152:
#line 7045 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(3) - (4)].item)); }
    break;

  case 1153:
#line 7047 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_ltrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
    break;

  case 1154:
#line 7049 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_rtrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
    break;

  case 1155:
#line 7051 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item)); }
    break;

  case 1156:
#line 7053 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_ltrim((yyvsp[(5) - (6)].item)); }
    break;

  case 1157:
#line 7055 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_rtrim((yyvsp[(5) - (6)].item)); }
    break;

  case 1158:
#line 7057 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(5) - (6)].item)); }
    break;

  case 1159:
#line 7059 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
    break;

  case 1160:
#line 7061 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_user();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1161:
#line 7066 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_year((yyvsp[(3) - (4)].item)); }
    break;

  case 1162:
#line 7083 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                                             INTERVAL_DAY, 0);
          }
    break;

  case 1163:
#line 7088 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 0); }
    break;

  case 1164:
#line 7090 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curdate_local();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1165:
#line 7095 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_local();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1166:
#line 7100 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_local((yyvsp[(3) - (4)].item));
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1167:
#line 7105 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (7)].item),(yyvsp[(5) - (7)].item),(yyvsp[(6) - (7)].interval),0); }
    break;

  case 1168:
#line 7107 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (7)].item),(yyvsp[(5) - (7)].item),(yyvsp[(6) - (7)].interval),1); }
    break;

  case 1169:
#line 7109 "sql_yacc.yy"
    { (yyval.item)=new (YYTHD->mem_root) Item_extract( (yyvsp[(3) - (6)].interval), (yyvsp[(5) - (6)].item)); }
    break;

  case 1170:
#line 7111 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_get_format((yyvsp[(3) - (6)].date_time_type), (yyvsp[(5) - (6)].item)); }
    break;

  case 1171:
#line 7113 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_local();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1172:
#line 7118 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_local((yyvsp[(3) - (4)].item));
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1173:
#line 7123 "sql_yacc.yy"
    { (yyval.item) = new (YYTHD->mem_root) Item_func_locate((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item)); }
    break;

  case 1174:
#line 7125 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                                             INTERVAL_DAY, 1);
          }
    break;

  case 1175:
#line 7130 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 1); }
    break;

  case 1176:
#line 7132 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item)); }
    break;

  case 1177:
#line 7134 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
    break;

  case 1178:
#line 7136 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item)); }
    break;

  case 1179:
#line 7138 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
    break;

  case 1180:
#line 7140 "sql_yacc.yy"
    {
            if (global_system_variables.sysdate_is_now == 0)
              (yyval.item)= new (YYTHD->mem_root) Item_func_sysdate_local();
            else
              (yyval.item)= new (YYTHD->mem_root) Item_func_now_local();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1181:
#line 7148 "sql_yacc.yy"
    {
            if (global_system_variables.sysdate_is_now == 0)
              (yyval.item)= new (YYTHD->mem_root) Item_func_sysdate_local((yyvsp[(3) - (4)].item));
            else
              (yyval.item)= new (YYTHD->mem_root) Item_func_now_local((yyvsp[(3) - (4)].item));
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1182:
#line 7156 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[(7) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(3) - (8)].interval_time_st),0); }
    break;

  case 1183:
#line 7158 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_timestamp_diff((yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item),(yyvsp[(3) - (8)].interval_time_st)); }
    break;

  case 1184:
#line 7160 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curdate_utc();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1185:
#line 7165 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_utc();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1186:
#line 7170 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_now_utc();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1187:
#line 7183 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_ascii((yyvsp[(3) - (4)].item)); }
    break;

  case 1188:
#line 7185 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_charset((yyvsp[(3) - (4)].item)); }
    break;

  case 1189:
#line 7187 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_coalesce(* (yyvsp[(3) - (4)].item_list)); }
    break;

  case 1190:
#line 7189 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_collation((yyvsp[(3) - (4)].item)); }
    break;

  case 1191:
#line 7191 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root) Item_func_database();
            Lex->safe_to_cache_query=0;
          }
    break;

  case 1192:
#line 7196 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_if((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item)); }
    break;

  case 1193:
#line 7198 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_microsecond((yyvsp[(3) - (4)].item)); }
    break;

  case 1194:
#line 7200 "sql_yacc.yy"
    { (yyval.item) = new (YYTHD->mem_root) Item_func_mod( (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item)); }
    break;

  case 1195:
#line 7202 "sql_yacc.yy"
    { (yyval.item)=  new (YYTHD->mem_root) Item_func_old_password((yyvsp[(3) - (4)].item)); }
    break;

  case 1196:
#line 7204 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item* i1;
            if (thd->variables.old_passwords)
              i1= new (thd->mem_root) Item_func_old_password((yyvsp[(3) - (4)].item));
            else
              i1= new (thd->mem_root) Item_func_password((yyvsp[(3) - (4)].item));
            (yyval.item)= i1;
          }
    break;

  case 1197:
#line 7214 "sql_yacc.yy"
    { (yyval.item) = new (YYTHD->mem_root) Item_func_quarter((yyvsp[(3) - (4)].item)); }
    break;

  case 1198:
#line 7216 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_repeat((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
    break;

  case 1199:
#line 7218 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_replace((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item)); }
    break;

  case 1200:
#line 7220 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_reverse((yyvsp[(3) - (4)].item)); }
    break;

  case 1201:
#line 7222 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_round((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item),1); }
    break;

  case 1202:
#line 7224 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Item *i1= new (thd->mem_root) Item_int((char*) "0",
                                           thd->variables.default_week_format,
                                                   1);

            (yyval.item)= new (thd->mem_root) Item_func_week((yyvsp[(3) - (4)].item), i1);
          }
    break;

  case 1203:
#line 7233 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_week((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)); }
    break;

  case 1204:
#line 7235 "sql_yacc.yy"
    { (yyval.item)= new (YYTHD->mem_root) Item_func_weight_string((yyvsp[(3) - (5)].item), 0, (yyvsp[(4) - (5)].ulong_num)); }
    break;

  case 1205:
#line 7237 "sql_yacc.yy"
    {
            (yyval.item)= new (YYTHD->mem_root)
                Item_func_weight_string((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].ulong_num), (yyvsp[(7) - (8)].ulong_num)|MY_STRXFRM_PAD_WITH_SPACE);
          }
    break;

  case 1206:
#line 7242 "sql_yacc.yy"
    {
            (yyvsp[(3) - (7)].item)= create_func_char_cast(YYTHD, (yyvsp[(3) - (7)].item), (yyvsp[(6) - (7)].ulong_num), &my_charset_bin);
            (yyval.item)= new (YYTHD->mem_root)
                Item_func_weight_string((yyvsp[(3) - (7)].item), (yyvsp[(6) - (7)].ulong_num), MY_STRXFRM_PAD_WITH_SPACE);
          }
    break;

  case 1207:
#line 7248 "sql_yacc.yy"
    {
#ifdef HAVE_SPATIAL
            (yyval.item)= (yyvsp[(1) - (1)].item);
#else
            my_error(ER_FEATURE_DISABLED, MYF(0),
                     sym_group_geom.name, sym_group_geom.needed_define);
            MYSQL_YYABORT;
#endif
          }
    break;

  case 1208:
#line 7261 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_rel((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                               Item_func::SP_CONTAINS_FUNC));
          }
    break;

  case 1209:
#line 7267 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_geometrycollection,
                           Geometry::wkb_point));
          }
    break;

  case 1210:
#line 7274 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_linestring,
                           Geometry::wkb_point));
          }
    break;

  case 1211:
#line 7281 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multilinestring,
                           Geometry::wkb_linestring));
          }
    break;

  case 1212:
#line 7288 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multipoint,
                           Geometry::wkb_point));
          }
    break;

  case 1213:
#line 7295 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_multipolygon,
                           Geometry::wkb_polygon));
          }
    break;

  case 1214:
#line 7302 "sql_yacc.yy"
    { (yyval.item)= GEOM_NEW(YYTHD, Item_func_point((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item))); }
    break;

  case 1215:
#line 7304 "sql_yacc.yy"
    {
            (yyval.item)= GEOM_NEW(YYTHD,
                         Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
                           Geometry::wkb_polygon,
                           Geometry::wkb_linestring));
          }
    break;

  case 1216:
#line 7323 "sql_yacc.yy"
    {
#ifdef HAVE_DLOPEN
            udf_func *udf= 0;
            LEX *lex= Lex;
            if (using_udf_functions &&
                (udf= find_udf((yyvsp[(1) - (2)].lex_str).str, (yyvsp[(1) - (2)].lex_str).length)) &&
                udf->type == UDFTYPE_AGGREGATE)
            {
              if (lex->current_select->inc_in_sum_expr())
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
            }
            /* Temporary placing the result of find_udf in $3 */
            (yyval.udf)= udf;
#endif
          }
    break;

  case 1217:
#line 7342 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Create_func *builder;
            Item *item= NULL;

            /*
              Implementation note:
              names are resolved with the following order:
              - MySQL native functions,
              - User Defined Functions,
              - Stored Functions (assuming the current <use> database)

              This will be revised with WL#2128 (SQL PATH)
            */
            builder= find_native_function_builder(thd, (yyvsp[(1) - (5)].lex_str));
            if (builder)
            {
              item= builder->create(thd, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
            }
            else
            {
#ifdef HAVE_DLOPEN
              /* Retrieving the result of find_udf */
              udf_func *udf= (yyvsp[(3) - (5)].udf);

              if (udf)
              {
                if (udf->type == UDFTYPE_AGGREGATE)
                {
                  Select->in_sum_expr--;
                }

                item= Create_udf_func::s_singleton.create(thd, udf, (yyvsp[(4) - (5)].item_list));
              }
              else
#endif
              {
                builder= find_qualified_function_builder(thd);
                DBUG_ASSERT(builder);
                item= builder->create(thd, (yyvsp[(1) - (5)].lex_str), (yyvsp[(4) - (5)].item_list));
              }
            }

            if (! ((yyval.item)= item))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1218:
#line 7391 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Create_qfunc *builder;
            Item *item= NULL;

            /*
              The following in practice calls:
              <code>Create_sp_func::create()</code>
              and builds a stored function.

              However, it's important to maintain the interface between the
              parser and the implementation in item_create.cc clean,
              since this will change with WL#2128 (SQL PATH):
              - INFORMATION_SCHEMA.version() is the SQL 99 syntax for the native
              function version(),
              - MySQL.version() is the SQL 2003 syntax for the native function
              version() (a vendor can specify any schema).
            */

            builder= find_qualified_function_builder(thd);
            DBUG_ASSERT(builder);
            item= builder->create(thd, (yyvsp[(1) - (6)].lex_str), (yyvsp[(3) - (6)].lex_str), true, (yyvsp[(5) - (6)].item_list));

            if (! ((yyval.item)= item))
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1219:
#line 7423 "sql_yacc.yy"
    { (yyval.num)= (yyvsp[(1) - (2)].num) | (yyvsp[(2) - (2)].num); }
    break;

  case 1220:
#line 7425 "sql_yacc.yy"
    { (yyval.num)= FT_BOOL; }
    break;

  case 1221:
#line 7429 "sql_yacc.yy"
    { (yyval.num)= FT_NL; }
    break;

  case 1222:
#line 7430 "sql_yacc.yy"
    { (yyval.num)= FT_NL; }
    break;

  case 1223:
#line 7434 "sql_yacc.yy"
    { (yyval.num)= 0;         }
    break;

  case 1224:
#line 7435 "sql_yacc.yy"
    { (yyval.num)= FT_EXPAND; }
    break;

  case 1225:
#line 7439 "sql_yacc.yy"
    { (yyval.item_list)= NULL; }
    break;

  case 1226:
#line 7440 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list);}
    break;

  case 1227:
#line 7444 "sql_yacc.yy"
    { Select->expr_list.push_front(new List<Item>); }
    break;

  case 1228:
#line 7446 "sql_yacc.yy"
    { (yyval.item_list)= Select->expr_list.pop(); }
    break;

  case 1229:
#line 7451 "sql_yacc.yy"
    {
	    Select->expr_list.head()->push_back((yyvsp[(1) - (1)].item));
	  }
    break;

  case 1230:
#line 7455 "sql_yacc.yy"
    {
	    Select->expr_list.head()->push_back((yyvsp[(3) - (3)].item));
	  }
    break;

  case 1231:
#line 7462 "sql_yacc.yy"
    {
            /*
             Use Item::name as a storage for the attribute value of user
             defined function argument. It is safe to use Item::name
             because the syntax will not allow having an explicit name here.
             See WL#1017 re. udf attributes.
            */
            if ((yyvsp[(4) - (4)].lex_str).str)
            {
              (yyvsp[(2) - (4)].item)->is_autogenerated_name= FALSE;
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(4) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).length, system_charset_info);
            }
            else
              (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), YYTHD->charset());
            (yyval.item)= (yyvsp[(2) - (4)].item);
          }
    break;

  case 1232:
#line 7482 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_avg((yyvsp[(3) - (4)].item)); }
    break;

  case 1233:
#line 7484 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_avg_distinct((yyvsp[(4) - (5)].item)); }
    break;

  case 1234:
#line 7486 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_and((yyvsp[(3) - (4)].item)); }
    break;

  case 1235:
#line 7488 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_or((yyvsp[(3) - (4)].item)); }
    break;

  case 1236:
#line 7490 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_xor((yyvsp[(3) - (4)].item)); }
    break;

  case 1237:
#line 7492 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_count(new Item_int((int32) 0L,1)); }
    break;

  case 1238:
#line 7494 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_count((yyvsp[(3) - (4)].item)); }
    break;

  case 1239:
#line 7496 "sql_yacc.yy"
    { Select->in_sum_expr++; }
    break;

  case 1240:
#line 7498 "sql_yacc.yy"
    { Select->in_sum_expr--; }
    break;

  case 1241:
#line 7500 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_count_distinct(* (yyvsp[(5) - (7)].item_list)); }
    break;

  case 1242:
#line 7502 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_min((yyvsp[(3) - (4)].item)); }
    break;

  case 1243:
#line 7509 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_min((yyvsp[(4) - (5)].item)); }
    break;

  case 1244:
#line 7511 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_max((yyvsp[(3) - (4)].item)); }
    break;

  case 1245:
#line 7513 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_max((yyvsp[(4) - (5)].item)); }
    break;

  case 1246:
#line 7515 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 0); }
    break;

  case 1247:
#line 7517 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 0); }
    break;

  case 1248:
#line 7519 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_std((yyvsp[(3) - (4)].item), 1); }
    break;

  case 1249:
#line 7521 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_variance((yyvsp[(3) - (4)].item), 1); }
    break;

  case 1250:
#line 7523 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_sum((yyvsp[(3) - (4)].item)); }
    break;

  case 1251:
#line 7525 "sql_yacc.yy"
    { (yyval.item)=new Item_sum_sum_distinct((yyvsp[(4) - (5)].item)); }
    break;

  case 1252:
#line 7527 "sql_yacc.yy"
    { Select->in_sum_expr++; }
    break;

  case 1253:
#line 7531 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->in_sum_expr--;
            (yyval.item)=new Item_func_group_concat(Lex->current_context(), (yyvsp[(3) - (8)].num), (yyvsp[(5) - (8)].item_list),
                                          sel->gorder_list, (yyvsp[(7) - (8)].string));
            (yyvsp[(5) - (8)].item_list)->empty();
          }
    break;

  case 1254:
#line 7542 "sql_yacc.yy"
    {
            if (! Lex->parsing_options.allows_variable)
            {
              my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1255:
#line 7550 "sql_yacc.yy"
    {
            (yyval.item)= (yyvsp[(3) - (3)].item);
          }
    break;

  case 1256:
#line 7557 "sql_yacc.yy"
    {
            (yyval.item)= new Item_func_set_user_var((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].item));
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_RAND);
          }
    break;

  case 1257:
#line 7563 "sql_yacc.yy"
    {
            (yyval.item)= new Item_func_get_user_var((yyvsp[(1) - (1)].lex_str));
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_RAND);
          }
    break;

  case 1258:
#line 7569 "sql_yacc.yy"
    {
            if ((yyvsp[(3) - (4)].lex_str).str && (yyvsp[(4) - (4)].lex_str).str && check_reserved_words(&(yyvsp[(3) - (4)].lex_str)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (!((yyval.item)= get_system_var(YYTHD, (yyvsp[(2) - (4)].var_type), (yyvsp[(3) - (4)].lex_str), (yyvsp[(4) - (4)].lex_str))))
              MYSQL_YYABORT;
          }
    break;

  case 1259:
#line 7581 "sql_yacc.yy"
    { (yyval.num) = 0; }
    break;

  case 1260:
#line 7582 "sql_yacc.yy"
    { (yyval.num) = 1; }
    break;

  case 1261:
#line 7587 "sql_yacc.yy"
    {
              (yyval.string)= new (YYTHD->mem_root) String(",", 1, &my_charset_latin1);
            }
    break;

  case 1262:
#line 7590 "sql_yacc.yy"
    { (yyval.string) = (yyvsp[(2) - (2)].string); }
    break;

  case 1263:
#line 7595 "sql_yacc.yy"
    {
            Select->gorder_list = NULL;
          }
    break;

  case 1264:
#line 7599 "sql_yacc.yy"
    {
            SELECT_LEX *select= Select;
            select->gorder_list=
              (SQL_LIST*) sql_memdup((char*) &select->order_list,
                                     sizeof(st_sql_list));
            select->order_list.empty();
          }
    break;

  case 1265:
#line 7610 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->current_select->inc_in_sum_expr())
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1266:
#line 7619 "sql_yacc.yy"
    {
            Select->in_sum_expr--;
            (yyval.item)= (yyvsp[(3) - (3)].item);
          }
    break;

  case 1267:
#line 7627 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; }
    break;

  case 1268:
#line 7629 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->dec= 0; }
    break;

  case 1269:
#line 7631 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; }
    break;

  case 1270:
#line 7633 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1271:
#line 7635 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1272:
#line 7637 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1273:
#line 7639 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1274:
#line 7641 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DATE; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1275:
#line 7643 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_TIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1276:
#line 7645 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DATETIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
    break;

  case 1277:
#line 7647 "sql_yacc.yy"
    { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex->charset= NULL; }
    break;

  case 1278:
#line 7651 "sql_yacc.yy"
    { (yyval.item_list)= NULL; }
    break;

  case 1279:
#line 7652 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list);}
    break;

  case 1280:
#line 7656 "sql_yacc.yy"
    { Select->expr_list.push_front(new List<Item>); }
    break;

  case 1281:
#line 7658 "sql_yacc.yy"
    { (yyval.item_list)= Select->expr_list.pop(); }
    break;

  case 1282:
#line 7661 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[(1) - (1)].item)); }
    break;

  case 1283:
#line 7662 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1284:
#line 7665 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
    break;

  case 1285:
#line 7666 "sql_yacc.yy"
    { (yyval.item_list)= (yyvsp[(2) - (3)].item_list); }
    break;

  case 1286:
#line 7670 "sql_yacc.yy"
    { Select->expr_list.push_front(new List<Item>); }
    break;

  case 1287:
#line 7672 "sql_yacc.yy"
    { (yyval.item_list)= Select->expr_list.pop(); }
    break;

  case 1288:
#line 7675 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[(1) - (1)].item)); }
    break;

  case 1289:
#line 7676 "sql_yacc.yy"
    { Select->expr_list.head()->push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1290:
#line 7679 "sql_yacc.yy"
    { (yyval.item)= NULL; }
    break;

  case 1291:
#line 7680 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1292:
#line 7684 "sql_yacc.yy"
    { (yyval.item)= NULL; }
    break;

  case 1293:
#line 7685 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(2) - (2)].item); }
    break;

  case 1294:
#line 7690 "sql_yacc.yy"
    {
            (yyval.item_list)= new List<Item>;
            (yyval.item_list)->push_back((yyvsp[(2) - (4)].item));
            (yyval.item_list)->push_back((yyvsp[(4) - (4)].item));
          }
    break;

  case 1295:
#line 7696 "sql_yacc.yy"
    {
            (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(3) - (5)].item));
            (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(5) - (5)].item));
            (yyval.item_list)= (yyvsp[(1) - (5)].item_list);
          }
    break;

  case 1296:
#line 7705 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
    break;

  case 1297:
#line 7707 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->nest_last_join(lex->thd)))
              MYSQL_YYABORT;
          }
    break;

  case 1298:
#line 7715 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[(1) - (1)].table_list)); }
    break;

  case 1299:
#line 7720 "sql_yacc.yy"
    { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
    break;

  case 1300:
#line 7722 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
          }
    break;

  case 1301:
#line 7742 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); }
    break;

  case 1302:
#line 7744 "sql_yacc.yy"
    { MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); (yyvsp[(3) - (3)].table_list)->straight=1; }
    break;

  case 1303:
#line 7747 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1304:
#line 7755 "sql_yacc.yy"
    {
            add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1305:
#line 7762 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (4)].table_list), (yyvsp[(3) - (4)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1306:
#line 7770 "sql_yacc.yy"
    {
            (yyvsp[(3) - (6)].table_list)->straight=1;
            add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1307:
#line 7778 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
          }
    break;

  case 1308:
#line 7782 "sql_yacc.yy"
    { add_join_natural((yyvsp[(1) - (8)].table_list),(yyvsp[(3) - (8)].table_list),(yyvsp[(7) - (8)].string_list),Select); (yyval.table_list)=(yyvsp[(3) - (8)].table_list); }
    break;

  case 1309:
#line 7784 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && ((yyval.table_list)=(yyvsp[(4) - (4)].table_list)));
            add_join_natural((yyvsp[(1) - (4)].table_list),(yyvsp[(4) - (4)].table_list),NULL,Select);
          }
    break;

  case 1310:
#line 7792 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1311:
#line 7800 "sql_yacc.yy"
    {
            add_join_on((yyvsp[(5) - (8)].table_list),(yyvsp[(8) - (8)].item));
            Lex->pop_context();
            (yyvsp[(5) - (8)].table_list)->outer_join|=JOIN_TYPE_LEFT;
            (yyval.table_list)=(yyvsp[(5) - (8)].table_list);
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1312:
#line 7808 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
          }
    break;

  case 1313:
#line 7812 "sql_yacc.yy"
    { 
            add_join_natural((yyvsp[(1) - (10)].table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Select); 
            (yyvsp[(5) - (10)].table_list)->outer_join|=JOIN_TYPE_LEFT; 
            (yyval.table_list)=(yyvsp[(5) - (10)].table_list); 
          }
    break;

  case 1314:
#line 7818 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
            add_join_natural((yyvsp[(1) - (6)].table_list),(yyvsp[(6) - (6)].table_list),NULL,Select);
            (yyvsp[(6) - (6)].table_list)->outer_join|=JOIN_TYPE_LEFT;
            (yyval.table_list)=(yyvsp[(6) - (6)].table_list);
          }
    break;

  case 1315:
#line 7828 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(1) - (6)].table_list), (yyvsp[(5) - (6)].table_list)))
              MYSQL_YYABORT;
            Select->parsing_place= IN_ON;
          }
    break;

  case 1316:
#line 7836 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
            add_join_on((yyval.table_list), (yyvsp[(8) - (8)].item));
            Lex->pop_context();
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1317:
#line 7845 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
          }
    break;

  case 1318:
#line 7849 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
            add_join_natural((yyval.table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Select);
          }
    break;

  case 1319:
#line 7856 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
            add_join_natural((yyvsp[(6) - (6)].table_list),(yyvsp[(1) - (6)].table_list),NULL,Select);
            LEX *lex= Lex;
            if (!((yyval.table_list)= lex->current_select->convert_right_join()))
              MYSQL_YYABORT;
          }
    break;

  case 1320:
#line 7866 "sql_yacc.yy"
    {}
    break;

  case 1321:
#line 7867 "sql_yacc.yy"
    {}
    break;

  case 1322:
#line 7868 "sql_yacc.yy"
    {}
    break;

  case 1323:
#line 7873 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->table_join_options= 0;
          }
    break;

  case 1324:
#line 7878 "sql_yacc.yy"
    {
            if (!((yyval.table_list)= Select->add_table_to_list(YYTHD, (yyvsp[(2) - (4)].table), (yyvsp[(3) - (4)].lex_str_ptr),
                                                Select->get_table_join_options(),
                                                Lex->lock_option,
                                                Select->pop_index_hints())))
              MYSQL_YYABORT;
            Select->add_joined_table((yyval.table_list));
          }
    break;

  case 1325:
#line 7888 "sql_yacc.yy"
    {
            /* Change the current name resolution context to a local context. */
            if (push_new_name_resolution_context(YYTHD, (yyvsp[(3) - (8)].table_list), (yyvsp[(7) - (8)].table_list)))
              MYSQL_YYABORT;

          }
    break;

  case 1326:
#line 7895 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            MYSQL_YYABORT_UNLESS((yyvsp[(3) - (11)].table_list) && (yyvsp[(7) - (11)].table_list));
            add_join_on((yyvsp[(7) - (11)].table_list),(yyvsp[(10) - (11)].item));
            Lex->pop_context();
            (yyvsp[(7) - (11)].table_list)->outer_join|=JOIN_TYPE_LEFT;
            (yyval.table_list)=(yyvsp[(7) - (11)].table_list);
            if (!((yyval.table_list)= lex->current_select->nest_last_join(lex->thd)))
              MYSQL_YYABORT;
          }
    break;

  case 1327:
#line 7906 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            if ((yyvsp[(1) - (3)].num))
            {
              if (sel->set_braces(1))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
              /* select in braces, can't contain global parameters */
              if (sel->master_unit()->fake_select_lex)
                sel->master_unit()->global_parameters=
                   sel->master_unit()->fake_select_lex;
            }
            if ((yyvsp[(2) - (3)].select_lex)->init_nested_join(lex->thd))
              MYSQL_YYABORT;
            (yyval.table_list)= 0;
            /* incomplete derived tables return NULL, we must be
               nested in select_derived rule to be here. */
          }
    break;

  case 1328:
#line 7928 "sql_yacc.yy"
    {
            /* Use $2 instead of Lex->current_select as derived table will
               alter value of Lex->current_select. */

            if (!((yyvsp[(3) - (6)].table_list) || (yyvsp[(6) - (6)].lex_str_ptr)) && (yyvsp[(2) - (6)].select_lex)->embedding &&
                !(yyvsp[(2) - (6)].select_lex)->embedding->nested_join->join_list.elements)
            {
              /* we have a derived table ($3 == NULL) but no alias,
                 Since we are nested in further parentheses so we
                 can pass NULL to the outer level parentheses
                 Permits parsing of "((((select ...))) as xyz)" */
              (yyval.table_list)= 0;
            }
            else if (!(yyvsp[(3) - (6)].table_list))
            {
              /* Handle case of derived table, alias may be NULL if there
                 are no outer parentheses, add_table_to_list() will throw
                 error in this case */
              LEX *lex=Lex;
              SELECT_LEX *sel= lex->current_select;
              SELECT_LEX_UNIT *unit= sel->master_unit();
              lex->current_select= sel= unit->outer_select();
              if (!((yyval.table_list)= sel->add_table_to_list(lex->thd,
                                               new Table_ident(unit), (yyvsp[(6) - (6)].lex_str_ptr), 0,
                                               TL_READ)))

                MYSQL_YYABORT;
              sel->add_joined_table((yyval.table_list));
              lex->pop_context();
            }
            else if ((yyvsp[(4) - (6)].num) || (yyvsp[(6) - (6)].lex_str_ptr))
            {
              /* simple nested joins cannot have aliases or unions */
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            else
              (yyval.table_list)= (yyvsp[(3) - (6)].table_list);
          }
    break;

  case 1329:
#line 7972 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if ((yyvsp[(1) - (1)].select_lex)->init_nested_join(lex->thd))
              MYSQL_YYABORT;
          }
    break;

  case 1330:
#line 7978 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            /* for normal joins, $3 != NULL and end_nested_join() != NULL,
               for derived tables, both must equal NULL */

            if (!((yyval.table_list)= (yyvsp[(1) - (3)].select_lex)->end_nested_join(lex->thd)) && (yyvsp[(3) - (3)].table_list))
              MYSQL_YYABORT;
            if (!(yyvsp[(3) - (3)].table_list) && (yyval.table_list))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1331:
#line 7994 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->derived_tables|= DERIVED_SUBQUERY;
            if (!lex->expr_allows_subselect ||
                lex->sql_command == (int)SQLCOM_PURGE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE ||
                mysql_new_select(lex, 1))
              MYSQL_YYABORT;
            mysql_init_select(lex);
            lex->current_select->linkage= DERIVED_TABLE_TYPE;
            lex->current_select->parsing_place= SELECT_LIST;
          }
    break;

  case 1332:
#line 8011 "sql_yacc.yy"
    {
            Select->parsing_place= NO_MATTER;
          }
    break;

  case 1334:
#line 8018 "sql_yacc.yy"
    { (yyval.select_lex)= Select; }
    break;

  case 1335:
#line 8023 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (! lex->parsing_options.allows_derived)
            {
              my_error(ER_VIEW_SELECT_DERIVED, MYF(0));
              MYSQL_YYABORT;
            }

            SELECT_LEX *sel= lex->current_select;
            TABLE_LIST *embedding;
            if (!sel->embedding || sel->end_nested_join(lex->thd))
            {
              /* we are not in parentheses */
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            embedding= Select->embedding;
            (yyval.num)= embedding &&
                !embedding->nested_join->join_list.elements;
            /* return true if we are deeply nested */
          }
    break;

  case 1336:
#line 8048 "sql_yacc.yy"
    {}
    break;

  case 1337:
#line 8049 "sql_yacc.yy"
    {}
    break;

  case 1338:
#line 8054 "sql_yacc.yy"
    {
            (yyval.num)= global_system_variables.old_mode ? 
                  INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL; 
          }
    break;

  case 1339:
#line 8058 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_JOIN;  }
    break;

  case 1340:
#line 8059 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_ORDER; }
    break;

  case 1341:
#line 8060 "sql_yacc.yy"
    { (yyval.num)= INDEX_HINT_MASK_GROUP; }
    break;

  case 1342:
#line 8064 "sql_yacc.yy"
    { (yyval.index_hint)= INDEX_HINT_FORCE; }
    break;

  case 1343:
#line 8065 "sql_yacc.yy"
    { (yyval.index_hint)= INDEX_HINT_IGNORE; }
    break;

  case 1344:
#line 8070 "sql_yacc.yy"
    {
            Select->set_index_hint_type((yyvsp[(1) - (3)].index_hint), (yyvsp[(3) - (3)].num));
          }
    break;

  case 1346:
#line 8075 "sql_yacc.yy"
    {
            Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[(3) - (3)].num));
          }
    break;

  case 1351:
#line 8088 "sql_yacc.yy"
    { Select->alloc_index_hints(YYTHD); }
    break;

  case 1353:
#line 8092 "sql_yacc.yy"
    {  Select->clear_index_hints(); }
    break;

  case 1355:
#line 8097 "sql_yacc.yy"
    { Select->add_index_hint(YYTHD, NULL, 0); }
    break;

  case 1356:
#line 8098 "sql_yacc.yy"
    {}
    break;

  case 1357:
#line 8103 "sql_yacc.yy"
    { Select->add_index_hint(YYTHD, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
    break;

  case 1358:
#line 8105 "sql_yacc.yy"
    { Select->add_index_hint(YYTHD, (char *)"PRIMARY", 7); }
    break;

  case 1361:
#line 8115 "sql_yacc.yy"
    {
            if (!((yyval.string_list)= new List<String>))
              MYSQL_YYABORT;
            (yyval.string_list)->push_back(new (YYTHD->mem_root)
                              String((const char *) (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length,
                                      system_charset_info));
          }
    break;

  case 1362:
#line 8123 "sql_yacc.yy"
    {
            (yyvsp[(1) - (3)].string_list)->push_back(new (YYTHD->mem_root)
                              String((const char *) (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length,
                                      system_charset_info));
            (yyval.string_list)= (yyvsp[(1) - (3)].string_list);
          }
    break;

  case 1363:
#line 8132 "sql_yacc.yy"
    {}
    break;

  case 1364:
#line 8133 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_HOUR; }
    break;

  case 1365:
#line 8134 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_MICROSECOND; }
    break;

  case 1366:
#line 8135 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_MINUTE; }
    break;

  case 1367:
#line 8136 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_DAY_SECOND; }
    break;

  case 1368:
#line 8137 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; }
    break;

  case 1369:
#line 8138 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_MINUTE; }
    break;

  case 1370:
#line 8139 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_HOUR_SECOND; }
    break;

  case 1371:
#line 8140 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MICROSECOND; }
    break;

  case 1372:
#line 8141 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; }
    break;

  case 1373:
#line 8142 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_MINUTE_SECOND; }
    break;

  case 1374:
#line 8143 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; }
    break;

  case 1375:
#line 8144 "sql_yacc.yy"
    { (yyval.interval)=INTERVAL_YEAR_MONTH; }
    break;

  case 1376:
#line 8148 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_DAY; }
    break;

  case 1377:
#line 8149 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_WEEK; }
    break;

  case 1378:
#line 8150 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_HOUR; }
    break;

  case 1379:
#line 8151 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MICROSECOND; }
    break;

  case 1380:
#line 8152 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MINUTE; }
    break;

  case 1381:
#line 8153 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_MONTH; }
    break;

  case 1382:
#line 8154 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_QUARTER; }
    break;

  case 1383:
#line 8155 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_SECOND; }
    break;

  case 1384:
#line 8156 "sql_yacc.yy"
    { (yyval.interval_time_st)=INTERVAL_YEAR; }
    break;

  case 1385:
#line 8160 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;}
    break;

  case 1386:
#line 8161 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;}
    break;

  case 1387:
#line 8162 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
    break;

  case 1388:
#line 8163 "sql_yacc.yy"
    {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
    break;

  case 1392:
#line 8173 "sql_yacc.yy"
    { (yyval.lex_str_ptr)=0; }
    break;

  case 1393:
#line 8175 "sql_yacc.yy"
    { (yyval.lex_str_ptr)= (LEX_STRING*) sql_memdup(&(yyvsp[(2) - (2)].lex_str),sizeof(LEX_STRING)); }
    break;

  case 1396:
#line 8184 "sql_yacc.yy"
    { Select->where= 0; }
    break;

  case 1397:
#line 8186 "sql_yacc.yy"
    {
            Select->parsing_place= IN_WHERE;
          }
    break;

  case 1398:
#line 8190 "sql_yacc.yy"
    {
            SELECT_LEX *select= Select;
            select->where= (yyvsp[(3) - (3)].item);
            select->parsing_place= NO_MATTER;
            if ((yyvsp[(3) - (3)].item))
              (yyvsp[(3) - (3)].item)->top_level_item();
          }
    break;

  case 1400:
#line 8202 "sql_yacc.yy"
    {
            Select->parsing_place= IN_HAVING;
          }
    break;

  case 1401:
#line 8206 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->having= (yyvsp[(3) - (3)].item);
            sel->parsing_place= NO_MATTER;
            if ((yyvsp[(3) - (3)].item))
              (yyvsp[(3) - (3)].item)->top_level_item();
          }
    break;

  case 1402:
#line 8217 "sql_yacc.yy"
    {
            Lex->escape_used= TRUE;
            (yyval.item)= (yyvsp[(2) - (2)].item);
          }
    break;

  case 1403:
#line 8222 "sql_yacc.yy"
    {
            Lex->escape_used= FALSE;
            (yyval.item)= ((YYTHD->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ?
                 new Item_string("", 0, &my_charset_latin1) :
                 new Item_string("\\", 1, &my_charset_latin1));
          }
    break;

  case 1406:
#line 8241 "sql_yacc.yy"
    { if (add_group_to_list(YYTHD, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
    break;

  case 1407:
#line 8243 "sql_yacc.yy"
    { if (add_group_to_list(YYTHD, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
    break;

  case 1408:
#line 8247 "sql_yacc.yy"
    {}
    break;

  case 1409:
#line 8249 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "WITH CUBE",
                       "global union parameters");
              MYSQL_YYABORT;
            }
            lex->current_select->olap= CUBE_TYPE;
            my_error(ER_NOT_SUPPORTED_YET, MYF(0), "CUBE");
            MYSQL_YYABORT; /* To be deleted in 5.1 */
          }
    break;

  case 1410:
#line 8262 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "WITH ROLLUP",
                       "global union parameters");
              MYSQL_YYABORT;
            }
            lex->current_select->olap= ROLLUP_TYPE;
          }
    break;

  case 1414:
#line 8289 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            bool ascending= ((yyvsp[(2) - (2)].num) == 1) ? true : false;
            if (add_order_to_list(thd, (yyvsp[(1) - (2)].item), ascending))
              MYSQL_YYABORT;
          }
    break;

  case 1417:
#line 8308 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            SELECT_LEX *sel= lex->current_select;
            SELECT_LEX_UNIT *unit= sel-> master_unit();
            if (sel->linkage != GLOBAL_OPTIONS_TYPE &&
                sel->olap != UNSPECIFIED_OLAP_TYPE)
            {
              my_error(ER_WRONG_USAGE, MYF(0),
                       "CUBE/ROLLUP", "ORDER BY");
              MYSQL_YYABORT;
            }
            if (lex->sql_command != SQLCOM_ALTER_TABLE && !unit->fake_select_lex)
            {
              /*
                A query of the of the form (SELECT ...) ORDER BY order_list is
                executed in the same way as the query
                SELECT ... ORDER BY order_list
                unless the SELECT construct contains ORDER BY or LIMIT clauses.
                Otherwise we create a fake SELECT_LEX if it has not been created
                yet.
              */
              SELECT_LEX *first_sl= unit->first_select();
              if (!unit->is_union() &&
                  (first_sl->order_list.elements || 
                   first_sl->select_limit) &&            
                  unit->add_fake_select_lex(lex->thd))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1419:
#line 8342 "sql_yacc.yy"
    { if (add_order_to_list(YYTHD, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
    break;

  case 1420:
#line 8344 "sql_yacc.yy"
    { if (add_order_to_list(YYTHD, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
    break;

  case 1421:
#line 8348 "sql_yacc.yy"
    { (yyval.num) =  1; }
    break;

  case 1422:
#line 8349 "sql_yacc.yy"
    { (yyval.num) =1; }
    break;

  case 1423:
#line 8350 "sql_yacc.yy"
    { (yyval.num) =0; }
    break;

  case 1424:
#line 8355 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            SELECT_LEX *sel= lex->current_select;
            sel->offset_limit= 0;
            sel->select_limit= 0;
          }
    break;

  case 1425:
#line 8361 "sql_yacc.yy"
    {}
    break;

  case 1426:
#line 8365 "sql_yacc.yy"
    {}
    break;

  case 1427:
#line 8366 "sql_yacc.yy"
    {}
    break;

  case 1428:
#line 8370 "sql_yacc.yy"
    {}
    break;

  case 1429:
#line 8375 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(1) - (1)].item);
            sel->offset_limit= 0;
            sel->explicit_limit= 1;
          }
    break;

  case 1430:
#line 8382 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(3) - (3)].item);
            sel->offset_limit= (yyvsp[(1) - (3)].item);
            sel->explicit_limit= 1;
          }
    break;

  case 1431:
#line 8389 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(1) - (3)].item);
            sel->offset_limit= (yyvsp[(3) - (3)].item);
            sel->explicit_limit= 1;
          }
    break;

  case 1432:
#line 8399 "sql_yacc.yy"
    {
            ((Item_param *) (yyvsp[(1) - (1)].item))->set_strict_type(INT_RESULT);
          }
    break;

  case 1433:
#line 8402 "sql_yacc.yy"
    { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
    break;

  case 1434:
#line 8403 "sql_yacc.yy"
    { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
    break;

  case 1435:
#line 8404 "sql_yacc.yy"
    { (yyval.item)= new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
    break;

  case 1436:
#line 8409 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->current_select->select_limit= 0;
          }
    break;

  case 1437:
#line 8414 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            sel->select_limit= (yyvsp[(2) - (2)].item);
            sel->explicit_limit= 1;
          }
    break;

  case 1438:
#line 8422 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1439:
#line 8423 "sql_yacc.yy"
    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
    break;

  case 1440:
#line 8424 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1441:
#line 8425 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1442:
#line 8426 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1443:
#line 8427 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1444:
#line 8431 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1445:
#line 8432 "sql_yacc.yy"
    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
    break;

  case 1446:
#line 8433 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1447:
#line 8434 "sql_yacc.yy"
    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1448:
#line 8435 "sql_yacc.yy"
    { MYSQL_YYABORT; }
    break;

  case 1449:
#line 8439 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1450:
#line 8440 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1451:
#line 8441 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1452:
#line 8442 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1453:
#line 8443 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1454:
#line 8447 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1455:
#line 8448 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1456:
#line 8449 "sql_yacc.yy"
    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
    break;

  case 1457:
#line 8450 "sql_yacc.yy"
    { MYSQL_YYABORT; }
    break;

  case 1458:
#line 8455 "sql_yacc.yy"
    { my_parse_error(ER(ER_ONLY_INTEGERS_ALLOWED)); }
    break;

  case 1462:
#line 8466 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            if (! lex->parsing_options.allows_select_procedure)
            {
              my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }

            if (&lex->select_lex != lex->current_select)
            {
              my_error(ER_WRONG_USAGE, MYF(0), "PROCEDURE", "subquery");
              MYSQL_YYABORT;
            }
            lex->proc_list.elements=0;
            lex->proc_list.first=0;
            lex->proc_list.next= (uchar**) &lex->proc_list.first;
            if (add_proc_to_list(lex->thd, new Item_field(&lex->
                                                          current_select->
                                                          context,
                                                          NULL,NULL,(yyvsp[(2) - (2)].lex_str).str)))
              MYSQL_YYABORT;
            Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
          }
    break;

  case 1464:
#line 8494 "sql_yacc.yy"
    {}
    break;

  case 1465:
#line 8495 "sql_yacc.yy"
    {}
    break;

  case 1468:
#line 8505 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (add_proc_to_list(thd, (yyvsp[(2) - (3)].item)))
              MYSQL_YYABORT;
            if (!(yyvsp[(2) - (3)].item)->name)
              (yyvsp[(2) - (3)].item)->set_name((yyvsp[(1) - (3)].simple_string), (uint) ((yyvsp[(3) - (3)].simple_string) - (yyvsp[(1) - (3)].simple_string)), thd->charset());
          }
    break;

  case 1469:
#line 8516 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->describe && (!(lex->result= new select_dumpvar())))
              MYSQL_YYABORT;
          }
    break;

  case 1470:
#line 8522 "sql_yacc.yy"
    {}
    break;

  case 1472:
#line 8527 "sql_yacc.yy"
    {}
    break;

  case 1473:
#line 8532 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->result) 
              ((select_dumpvar *)lex->result)->var_list.push_back( new my_var((yyvsp[(2) - (2)].lex_str),0,0,(enum_field_types)0));
            else
              /*
                The parser won't create select_result instance only
                if it's an EXPLAIN.
              */
              DBUG_ASSERT(lex->describe);
          }
    break;

  case 1474:
#line 8544 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            sp_variable_t *t;

            if (!lex->spcont || !(t=lex->spcont->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[(1) - (1)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (lex->result)
            {
              my_var *var;
              ((select_dumpvar *)lex->result)->
                var_list.push_back(var= new my_var((yyvsp[(1) - (1)].lex_str),1,t->offset,t->type));
#ifndef DBUG_OFF
              if (var)
                var->sp= lex->sphead;
#endif
            }
            else
            {
              /*
                The parser won't create select_result instance only
                if it's an EXPLAIN.
              */
              DBUG_ASSERT(lex->describe);
            }
          }
    break;

  case 1475:
#line 8576 "sql_yacc.yy"
    {
            if (! Lex->parsing_options.allows_select_into)
            {
              my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "INTO");
              MYSQL_YYABORT;
            }
          }
    break;

  case 1477:
#line 8588 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
            if (!(lex->exchange= new sql_exchange((yyvsp[(2) - (2)].lex_str).str, 0)) ||
                !(lex->result= new select_export(lex->exchange)))
              MYSQL_YYABORT;
          }
    break;

  case 1479:
#line 8597 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->describe)
            {
              lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
              if (!(lex->exchange= new sql_exchange((yyvsp[(2) - (2)].lex_str).str,1)))
                MYSQL_YYABORT;
              if (!(lex->result= new select_dump(lex->exchange)))
                MYSQL_YYABORT;
            }
          }
    break;

  case 1480:
#line 8609 "sql_yacc.yy"
    {
            Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
          }
    break;

  case 1481:
#line 8620 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_DO;
            mysql_init_select(lex);
          }
    break;

  case 1482:
#line 8626 "sql_yacc.yy"
    {
            Lex->insert_list= (yyvsp[(3) - (3)].item_list);
          }
    break;

  case 1483:
#line 8637 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_DROP_TABLE;
            lex->drop_temporary= (yyvsp[(2) - (6)].num);
            lex->drop_if_exists= (yyvsp[(4) - (6)].num);
          }
    break;

  case 1484:
#line 8643 "sql_yacc.yy"
    {}
    break;

  case 1485:
#line 8644 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_DROP_INDEX;
            lex->alter_info.reset();
            lex->alter_info.flags= ALTER_DROP_INDEX;
            lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY,
                                                               (yyvsp[(3) - (6)].lex_str).str));
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(5) - (6)].table), NULL,
                                                        TL_OPTION_UPDATING))
              MYSQL_YYABORT;
          }
    break;

  case 1486:
#line 8656 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_DROP_DB;
            lex->drop_if_exists=(yyvsp[(3) - (4)].num);
            lex->name= (yyvsp[(4) - (4)].lex_str);
          }
    break;

  case 1487:
#line 8663 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "FUNCTION");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_DROP_FUNCTION;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            lex->spname= (yyvsp[(4) - (4)].spname);
          }
    break;

  case 1488:
#line 8675 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_NO_DROP_SP, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_DROP_PROCEDURE;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            lex->spname= (yyvsp[(4) - (4)].spname);
          }
    break;

  case 1489:
#line 8687 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_DROP_USER;
          }
    break;

  case 1490:
#line 8691 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DROP_VIEW;
            lex->drop_if_exists= (yyvsp[(3) - (5)].num);
          }
    break;

  case 1491:
#line 8697 "sql_yacc.yy"
    {
            Lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            Lex->spname= (yyvsp[(4) - (4)].spname);
            Lex->sql_command = SQLCOM_DROP_EVENT;
          }
    break;

  case 1492:
#line 8703 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DROP_TRIGGER;
            lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            lex->spname= (yyvsp[(4) - (4)].spname);
          }
    break;

  case 1493:
#line 8710 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= DROP_TABLESPACE;
          }
    break;

  case 1494:
#line 8715 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP;
          }
    break;

  case 1495:
#line 8720 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_DROP_SERVER;
            Lex->drop_if_exists= (yyvsp[(3) - (4)].num);
            Lex->server_options.server_name= (yyvsp[(4) - (4)].lex_str).str;
            Lex->server_options.server_name_length= (yyvsp[(4) - (4)].lex_str).length;
          }
    break;

  case 1498:
#line 8735 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(1) - (1)].table), NULL, TL_OPTION_UPDATING))
              MYSQL_YYABORT;
          }
    break;

  case 1499:
#line 8742 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1500:
#line 8743 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1501:
#line 8747 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 1502:
#line 8748 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 1503:
#line 8756 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_INSERT;
            lex->duplicates= DUP_ERROR; 
            mysql_init_select(lex);
            /* for subselects */
            lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ;
          }
    break;

  case 1504:
#line 8766 "sql_yacc.yy"
    {
            Select->set_lock_for_tables((yyvsp[(3) - (5)].lock_type));
            Lex->current_select= &Lex->select_lex;
          }
    break;

  case 1505:
#line 8771 "sql_yacc.yy"
    {}
    break;

  case 1506:
#line 8776 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_REPLACE;
            lex->duplicates= DUP_REPLACE;
            mysql_init_select(lex);
          }
    break;

  case 1507:
#line 8783 "sql_yacc.yy"
    {
            Select->set_lock_for_tables((yyvsp[(3) - (4)].lock_type));
            Lex->current_select= &Lex->select_lex;
          }
    break;

  case 1508:
#line 8788 "sql_yacc.yy"
    {}
    break;

  case 1509:
#line 8793 "sql_yacc.yy"
    {
#ifdef HAVE_QUERY_CACHE
            /*
              If it is SP we do not allow insert optimisation whan result of
              insert visible only after the table unlocking but everyone can
              read table.
            */
            (yyval.lock_type)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT);
#else
            (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
#endif
          }
    break;

  case 1510:
#line 8805 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1511:
#line 8806 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DELAYED; }
    break;

  case 1512:
#line 8807 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE; }
    break;

  case 1513:
#line 8811 "sql_yacc.yy"
    { (yyval.lock_type)= (yyvsp[(1) - (1)].lock_type); }
    break;

  case 1514:
#line 8812 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DELAYED; }
    break;

  case 1515:
#line 8816 "sql_yacc.yy"
    {}
    break;

  case 1516:
#line 8817 "sql_yacc.yy"
    {}
    break;

  case 1517:
#line 8822 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->field_list.empty();
            lex->many_values.empty();
            lex->insert_list=0;
          }
    break;

  case 1518:
#line 8830 "sql_yacc.yy"
    {}
    break;

  case 1519:
#line 8831 "sql_yacc.yy"
    {}
    break;

  case 1520:
#line 8832 "sql_yacc.yy"
    {}
    break;

  case 1521:
#line 8834 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!(lex->insert_list = new List_item) ||
                lex->many_values.push_back(lex->insert_list))
              MYSQL_YYABORT;
          }
    break;

  case 1523:
#line 8844 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1524:
#line 8845 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(1) - (1)].item)); }
    break;

  case 1525:
#line 8849 "sql_yacc.yy"
    {}
    break;

  case 1526:
#line 8850 "sql_yacc.yy"
    {}
    break;

  case 1527:
#line 8852 "sql_yacc.yy"
    { Select->set_braces(0);}
    break;

  case 1528:
#line 8853 "sql_yacc.yy"
    {}
    break;

  case 1529:
#line 8855 "sql_yacc.yy"
    { Select->set_braces(1);}
    break;

  case 1530:
#line 8856 "sql_yacc.yy"
    {}
    break;

  case 1535:
#line 8871 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->field_list.push_back((yyvsp[(1) - (3)].item)) ||
                lex->insert_list->push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1536:
#line 8880 "sql_yacc.yy"
    {}
    break;

  case 1537:
#line 8881 "sql_yacc.yy"
    {}
    break;

  case 1538:
#line 8885 "sql_yacc.yy"
    {}
    break;

  case 1539:
#line 8886 "sql_yacc.yy"
    {}
    break;

  case 1540:
#line 8891 "sql_yacc.yy"
    {
              if (!(Lex->insert_list = new List_item))
                MYSQL_YYABORT;
          }
    break;

  case 1541:
#line 8896 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->many_values.push_back(lex->insert_list))
              MYSQL_YYABORT;
          }
    break;

  case 1542:
#line 8904 "sql_yacc.yy"
    {}
    break;

  case 1544:
#line 8910 "sql_yacc.yy"
    {
            if (Lex->insert_list->push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1545:
#line 8915 "sql_yacc.yy"
    {
            if (Lex->insert_list->push_back((yyvsp[(1) - (1)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1546:
#line 8922 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item);}
    break;

  case 1547:
#line 8923 "sql_yacc.yy"
    {(yyval.item)= new Item_default_value(Lex->current_context()); }
    break;

  case 1549:
#line 8928 "sql_yacc.yy"
    { Lex->duplicates= DUP_UPDATE; }
    break;

  case 1551:
#line 8936 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            mysql_init_select(lex);
            lex->sql_command= SQLCOM_UPDATE;
            lex->lock_option= TL_UNLOCK; /* Will be set later */
            lex->duplicates= DUP_ERROR; 
          }
    break;

  case 1552:
#line 8945 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->select_lex.table_list.elements > 1)
              lex->sql_command= SQLCOM_UPDATE_MULTI;
            else if (lex->select_lex.get_table_list()->derived)
            {
              /* it is single table update and it is update of derived table */
              my_error(ER_NON_UPDATABLE_TABLE, MYF(0),
                       lex->select_lex.get_table_list()->alias, "UPDATE");
              MYSQL_YYABORT;
            }
            /*
              In case of multi-update setting write lock for all tables may
              be too pessimistic. We will decrease lock level if possible in
              mysql_multi_update().
            */
            Select->set_lock_for_tables((yyvsp[(3) - (7)].lock_type));
          }
    break;

  case 1553:
#line 8963 "sql_yacc.yy"
    {}
    break;

  case 1556:
#line 8973 "sql_yacc.yy"
    {
            if (add_item_to_list(YYTHD, (yyvsp[(1) - (3)].item)) || add_value_to_list(YYTHD, (yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1559:
#line 8986 "sql_yacc.yy"
    {
          LEX *lex= Lex;
          if (lex->update_list.push_back((yyvsp[(1) - (3)].item)) || 
              lex->value_list.push_back((yyvsp[(3) - (3)].item)))
              MYSQL_YYABORT;
          }
    break;

  case 1560:
#line 8995 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DEFAULT; }
    break;

  case 1561:
#line 8996 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1562:
#line 9003 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_DELETE;
            mysql_init_select(lex);
            lex->lock_option= TL_WRITE_DEFAULT;
            lex->ignore= 0;
            lex->select_lex.init_order();
          }
    break;

  case 1563:
#line 9011 "sql_yacc.yy"
    {}
    break;

  case 1564:
#line 9016 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(2) - (2)].table), NULL, TL_OPTION_UPDATING,
                                           Lex->lock_option))
              MYSQL_YYABORT;
          }
    break;

  case 1565:
#line 9022 "sql_yacc.yy"
    {}
    break;

  case 1566:
#line 9024 "sql_yacc.yy"
    { mysql_init_multi_delete(Lex); }
    break;

  case 1567:
#line 9026 "sql_yacc.yy"
    { 
            if (multi_delete_set_locks_and_link_aux_tables(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1568:
#line 9031 "sql_yacc.yy"
    { mysql_init_multi_delete(Lex); }
    break;

  case 1569:
#line 9033 "sql_yacc.yy"
    { 
            if (multi_delete_set_locks_and_link_aux_tables(Lex))
              MYSQL_YYABORT;
          }
    break;

  case 1570:
#line 9040 "sql_yacc.yy"
    {}
    break;

  case 1571:
#line 9041 "sql_yacc.yy"
    {}
    break;

  case 1572:
#line 9046 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD, new Table_ident((yyvsp[(1) - (3)].lex_str)),
                                           (yyvsp[(3) - (3)].lex_str_ptr),
                                           TL_OPTION_UPDATING | TL_OPTION_ALIAS,
                                           Lex->lock_option))
              MYSQL_YYABORT;
          }
    break;

  case 1573:
#line 9054 "sql_yacc.yy"
    {
            if (!Select->add_table_to_list(YYTHD,
                                           new Table_ident(YYTHD, (yyvsp[(1) - (5)].lex_str), (yyvsp[(3) - (5)].lex_str), 0),
                                           (yyvsp[(5) - (5)].lex_str_ptr), 
                                           TL_OPTION_UPDATING | TL_OPTION_ALIAS,
                                           Lex->lock_option))
              MYSQL_YYABORT;
          }
    break;

  case 1574:
#line 9065 "sql_yacc.yy"
    {}
    break;

  case 1575:
#line 9066 "sql_yacc.yy"
    {}
    break;

  case 1576:
#line 9070 "sql_yacc.yy"
    {}
    break;

  case 1577:
#line 9071 "sql_yacc.yy"
    {}
    break;

  case 1578:
#line 9075 "sql_yacc.yy"
    { Select->options|= OPTION_QUICK; }
    break;

  case 1579:
#line 9076 "sql_yacc.yy"
    { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1580:
#line 9077 "sql_yacc.yy"
    { Lex->ignore= 1; }
    break;

  case 1581:
#line 9082 "sql_yacc.yy"
    {
            LEX* lex= Lex;
            lex->sql_command= SQLCOM_TRUNCATE;
            lex->select_lex.options= 0;
            lex->select_lex.sql_cache= SELECT_LEX::SQL_CACHE_UNSPECIFIED;
            lex->select_lex.init_order();
          }
    break;

  case 1584:
#line 9100 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->wild=0;
            lex->lock_option= TL_READ;
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
            bzero((char*) &lex->create_info,sizeof(lex->create_info));
          }
    break;

  case 1585:
#line 9109 "sql_yacc.yy"
    {}
    break;

  case 1586:
#line 9114 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_DATABASES;
             if (prepare_schema_table(YYTHD, lex, 0, SCH_SCHEMATA))
               MYSQL_YYABORT;
           }
    break;

  case 1587:
#line 9121 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TABLES;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLE_NAMES))
               MYSQL_YYABORT;
           }
    break;

  case 1588:
#line 9129 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TRIGGERS;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TRIGGERS))
               MYSQL_YYABORT;
           }
    break;

  case 1589:
#line 9137 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_EVENTS;
             lex->select_lex.db= (yyvsp[(2) - (3)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_EVENTS))
               MYSQL_YYABORT;
           }
    break;

  case 1590:
#line 9145 "sql_yacc.yy"
    {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_TABLE_STATUS;
             lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
             if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLES))
               MYSQL_YYABORT;
           }
    break;

  case 1591:
#line 9153 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_OPEN_TABLES;
            lex->select_lex.db= (yyvsp[(3) - (4)].simple_string);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_OPEN_TABLES))
              MYSQL_YYABORT;
          }
    break;

  case 1592:
#line 9161 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_PLUGINS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS))
              MYSQL_YYABORT;
          }
    break;

  case 1593:
#line 9168 "sql_yacc.yy"
    { Lex->create_info.db_type= (yyvsp[(2) - (3)].db_type); }
    break;

  case 1594:
#line 9170 "sql_yacc.yy"
    { Lex->create_info.db_type= NULL; }
    break;

  case 1595:
#line 9172 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_FIELDS;
            if ((yyvsp[(5) - (6)].simple_string))
              (yyvsp[(4) - (6)].table)->change_db((yyvsp[(5) - (6)].simple_string));
            if (prepare_schema_table(YYTHD, lex, (yyvsp[(4) - (6)].table), SCH_COLUMNS))
              MYSQL_YYABORT;
          }
    break;

  case 1596:
#line 9187 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_NEW_MASTER;
            Lex->mi.log_file_name = (yyvsp[(8) - (16)].lex_str).str;
            Lex->mi.pos = (yyvsp[(12) - (16)].ulonglong_number);
            Lex->mi.server_id = (yyvsp[(16) - (16)].ulong_num);
          }
    break;

  case 1597:
#line 9194 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_BINLOGS;
          }
    break;

  case 1598:
#line 9198 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS;
          }
    break;

  case 1599:
#line 9202 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS;
          }
    break;

  case 1601:
#line 9207 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_KEYS;
            if ((yyvsp[(4) - (5)].simple_string))
              (yyvsp[(3) - (5)].table)->change_db((yyvsp[(4) - (5)].simple_string));
            if (prepare_schema_table(YYTHD, lex, (yyvsp[(3) - (5)].table), SCH_STATISTICS))
              MYSQL_YYABORT;
          }
    break;

  case 1602:
#line 9216 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_COLUMN_TYPES;
          }
    break;

  case 1603:
#line 9221 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES))
              MYSQL_YYABORT;
          }
    break;

  case 1604:
#line 9228 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_AUTHORS;
          }
    break;

  case 1605:
#line 9233 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS;
          }
    break;

  case 1606:
#line 9238 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_PRIVILEGES;
          }
    break;

  case 1607:
#line 9243 "sql_yacc.yy"
    { (void) create_select_for_variable("warning_count"); }
    break;

  case 1608:
#line 9245 "sql_yacc.yy"
    { (void) create_select_for_variable("error_count"); }
    break;

  case 1609:
#line 9247 "sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_WARNS;}
    break;

  case 1610:
#line 9249 "sql_yacc.yy"
    { Lex->sql_command = SQLCOM_SHOW_ERRORS;}
    break;

  case 1611:
#line 9251 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS;
            lex->option_type= (yyvsp[(1) - (3)].var_type);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_STATUS))
              MYSQL_YYABORT;
          }
    break;

  case 1612:
#line 9259 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;}
    break;

  case 1613:
#line 9261 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_VARIABLES;
            lex->option_type= (yyvsp[(1) - (3)].var_type);
            if (prepare_schema_table(YYTHD, lex, 0, SCH_VARIABLES))
              MYSQL_YYABORT;
          }
    break;

  case 1614:
#line 9269 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_CHARSETS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_CHARSETS))
              MYSQL_YYABORT;
          }
    break;

  case 1615:
#line 9276 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_COLLATIONS;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_COLLATIONS))
              MYSQL_YYABORT;
          }
    break;

  case 1616:
#line 9283 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_GRANTS;
            LEX_USER *curr_user;
            if (!(curr_user= (LEX_USER*) lex->thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            bzero(curr_user, sizeof(st_lex_user));
            lex->grant_user= curr_user;
          }
    break;

  case 1617:
#line 9293 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SHOW_GRANTS;
            lex->grant_user=(yyvsp[(3) - (3)].lex_user);
            lex->grant_user->password=null_lex_str;
          }
    break;

  case 1618:
#line 9300 "sql_yacc.yy"
    {
            Lex->sql_command=SQLCOM_SHOW_CREATE_DB;
            Lex->create_info.options=(yyvsp[(3) - (4)].num);
            Lex->name= (yyvsp[(4) - (4)].lex_str);
          }
    break;

  case 1619:
#line 9306 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_CREATE;
            if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[(3) - (3)].table), NULL,0))
              MYSQL_YYABORT;
            lex->only_view= 0;
            lex->create_info.default_storage_media= HA_SM_DEFAULT;
          }
    break;

  case 1620:
#line 9315 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command = SQLCOM_SHOW_CREATE;
            if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[(3) - (3)].table), NULL, 0))
              MYSQL_YYABORT;
            lex->only_view= 1;
          }
    break;

  case 1621:
#line 9323 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_MASTER_STAT;
          }
    break;

  case 1622:
#line 9327 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
          }
    break;

  case 1623:
#line 9331 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sql_command = SQLCOM_SHOW_CREATE_PROC;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1624:
#line 9338 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            lex->sql_command = SQLCOM_SHOW_CREATE_FUNC;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1625:
#line 9345 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER;
            lex->spname= (yyvsp[(3) - (3)].spname);
          }
    break;

  case 1626:
#line 9351 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS_PROC;
            if (!sp_add_to_query_tables(YYTHD, lex, "mysql", "proc", TL_READ))
              MYSQL_YYABORT;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES))
              MYSQL_YYABORT;
          }
    break;

  case 1627:
#line 9360 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_STATUS_FUNC;
            if (!sp_add_to_query_tables(YYTHD, lex, "mysql", "proc", TL_READ))
              MYSQL_YYABORT;
            if (prepare_schema_table(YYTHD, lex, 0, SCH_PROCEDURES))
              MYSQL_YYABORT;
          }
    break;

  case 1628:
#line 9369 "sql_yacc.yy"
    {
#ifdef DBUG_OFF
            my_parse_error(ER(ER_SYNTAX_ERROR));
            MYSQL_YYABORT;
#else
            Lex->sql_command= SQLCOM_SHOW_PROC_CODE;
            Lex->spname= (yyvsp[(3) - (3)].spname);
#endif
          }
    break;

  case 1629:
#line 9379 "sql_yacc.yy"
    {
#ifdef DBUG_OFF
            my_parse_error(ER(ER_SYNTAX_ERROR));
            MYSQL_YYABORT;
#else
            Lex->sql_command= SQLCOM_SHOW_FUNC_CODE;
            Lex->spname= (yyvsp[(3) - (3)].spname);
#endif
          }
    break;

  case 1630:
#line 9389 "sql_yacc.yy"
    {
            Lex->spname= (yyvsp[(3) - (3)].spname);
            Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT;
          }
    break;

  case 1631:
#line 9394 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_SHOW_ARCHIVE;
            Lex->backup_dir = (yyvsp[(2) - (2)].lex_str); 
          }
    break;

  case 1632:
#line 9402 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; }
    break;

  case 1633:
#line 9404 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; }
    break;

  case 1634:
#line 9406 "sql_yacc.yy"
    { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; }
    break;

  case 1639:
#line 9420 "sql_yacc.yy"
    { (yyval.simple_string)= 0; }
    break;

  case 1640:
#line 9421 "sql_yacc.yy"
    { (yyval.simple_string)= (yyvsp[(2) - (2)].lex_str).str; }
    break;

  case 1641:
#line 9425 "sql_yacc.yy"
    { Lex->verbose=0; }
    break;

  case 1642:
#line 9426 "sql_yacc.yy"
    { Lex->verbose=1; }
    break;

  case 1645:
#line 9435 "sql_yacc.yy"
    { Lex->mi.log_file_name = 0; }
    break;

  case 1646:
#line 9436 "sql_yacc.yy"
    { Lex->mi.log_file_name = (yyvsp[(2) - (2)].lex_str).str; }
    break;

  case 1647:
#line 9440 "sql_yacc.yy"
    { Lex->mi.pos = 4; /* skip magic number */ }
    break;

  case 1648:
#line 9441 "sql_yacc.yy"
    { Lex->mi.pos = (yyvsp[(2) - (2)].ulonglong_number); }
    break;

  case 1650:
#line 9447 "sql_yacc.yy"
    {
            Lex->wild= new (YYTHD->mem_root) String((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length,
                                                    system_charset_info);
          }
    break;

  case 1651:
#line 9452 "sql_yacc.yy"
    {
            Select->where= (yyvsp[(2) - (2)].item);
            if ((yyvsp[(2) - (2)].item))
              (yyvsp[(2) - (2)].item)->top_level_item();
          }
    break;

  case 1652:
#line 9462 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->lock_option= TL_READ;
            mysql_init_select(lex);
            lex->current_select->parsing_place= SELECT_LIST;
            lex->sql_command= SQLCOM_SHOW_FIELDS;
            lex->select_lex.db= 0;
            lex->verbose= 0;
            if (prepare_schema_table(YYTHD, lex, (yyvsp[(2) - (2)].table), SCH_COLUMNS))
              MYSQL_YYABORT;
          }
    break;

  case 1653:
#line 9473 "sql_yacc.yy"
    {}
    break;

  case 1654:
#line 9475 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_NORMAL; }
    break;

  case 1655:
#line 9477 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->select_lex.options|= SELECT_DESCRIBE;
          }
    break;

  case 1658:
#line 9489 "sql_yacc.yy"
    {}
    break;

  case 1659:
#line 9490 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_EXTENDED; }
    break;

  case 1660:
#line 9491 "sql_yacc.yy"
    { Lex->describe|= DESCRIBE_PARTITIONS; }
    break;

  case 1661:
#line 9495 "sql_yacc.yy"
    {}
    break;

  case 1662:
#line 9496 "sql_yacc.yy"
    { Lex->wild= (yyvsp[(1) - (1)].string); }
    break;

  case 1663:
#line 9498 "sql_yacc.yy"
    {
            Lex->wild= new (YYTHD->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,
                                                    (yyvsp[(1) - (1)].lex_str).length,
                                                    system_charset_info);
          }
    break;

  case 1664:
#line 9510 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_FLUSH;
            lex->type= 0;
            lex->no_write_to_binlog= (yyvsp[(2) - (2)].num);
          }
    break;

  case 1665:
#line 9517 "sql_yacc.yy"
    {}
    break;

  case 1668:
#line 9527 "sql_yacc.yy"
    { Lex->type|= REFRESH_TABLES; }
    break;

  case 1669:
#line 9528 "sql_yacc.yy"
    {}
    break;

  case 1670:
#line 9530 "sql_yacc.yy"
    { Lex->type|= REFRESH_TABLES | REFRESH_READ_LOCK; }
    break;

  case 1671:
#line 9532 "sql_yacc.yy"
    { Lex->type|= REFRESH_QUERY_CACHE_FREE; }
    break;

  case 1672:
#line 9534 "sql_yacc.yy"
    { Lex->type|= REFRESH_HOSTS; }
    break;

  case 1673:
#line 9536 "sql_yacc.yy"
    { Lex->type|= REFRESH_GRANT; }
    break;

  case 1674:
#line 9538 "sql_yacc.yy"
    { Lex->type|= REFRESH_LOG; }
    break;

  case 1675:
#line 9540 "sql_yacc.yy"
    { Lex->type|= REFRESH_STATUS; }
    break;

  case 1676:
#line 9542 "sql_yacc.yy"
    { Lex->type|= REFRESH_SLAVE; }
    break;

  case 1677:
#line 9544 "sql_yacc.yy"
    { Lex->type|= REFRESH_MASTER; }
    break;

  case 1678:
#line 9546 "sql_yacc.yy"
    { Lex->type|= REFRESH_DES_KEY_FILE; }
    break;

  case 1679:
#line 9548 "sql_yacc.yy"
    { Lex->type|= REFRESH_USER_RESOURCES; }
    break;

  case 1680:
#line 9552 "sql_yacc.yy"
    {}
    break;

  case 1681:
#line 9553 "sql_yacc.yy"
    {}
    break;

  case 1682:
#line 9558 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_RESET; lex->type=0;
          }
    break;

  case 1683:
#line 9563 "sql_yacc.yy"
    {}
    break;

  case 1686:
#line 9572 "sql_yacc.yy"
    { Lex->type|= REFRESH_SLAVE; }
    break;

  case 1687:
#line 9573 "sql_yacc.yy"
    { Lex->type|= REFRESH_MASTER; }
    break;

  case 1688:
#line 9574 "sql_yacc.yy"
    { Lex->type|= REFRESH_QUERY_CACHE;}
    break;

  case 1689:
#line 9579 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->type=0;
            lex->sql_command = SQLCOM_PURGE;
          }
    break;

  case 1690:
#line 9585 "sql_yacc.yy"
    {}
    break;

  case 1692:
#line 9594 "sql_yacc.yy"
    {
            Lex->to_log = (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 1693:
#line 9598 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->value_list.empty();
            lex->value_list.push_front((yyvsp[(2) - (2)].item));
            lex->sql_command= SQLCOM_PURGE_BEFORE;
          }
    break;

  case 1694:
#line 9610 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->value_list.empty();
            lex->value_list.push_front((yyvsp[(3) - (3)].item));
            lex->sql_command= SQLCOM_KILL;
          }
    break;

  case 1695:
#line 9619 "sql_yacc.yy"
    { Lex->type= 0; }
    break;

  case 1696:
#line 9620 "sql_yacc.yy"
    { Lex->type= 0; }
    break;

  case 1697:
#line 9621 "sql_yacc.yy"
    { Lex->type= ONLY_KILL_QUERY; }
    break;

  case 1698:
#line 9628 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command=SQLCOM_CHANGE_DB;
            lex->select_lex.db= (yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 1699:
#line 9639 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), 
                       (yyvsp[(2) - (2)].filetype) == FILETYPE_CSV ? "LOAD DATA" : "LOAD XML");
              MYSQL_YYABORT;
            }
            lex->fname_start= lip->get_ptr();
          }
    break;

  case 1700:
#line 9653 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_LOAD;
            lex->lock_option= (yyvsp[(4) - (7)].lock_type);
            lex->local_file=  (yyvsp[(5) - (7)].num);
            lex->duplicates= DUP_ERROR;
            lex->ignore= 0;
            if (!(lex->exchange= new sql_exchange((yyvsp[(7) - (7)].lex_str).str, 0, (yyvsp[(2) - (7)].filetype))))
              MYSQL_YYABORT;
          }
    break;

  case 1701:
#line 9664 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;
            lex->fname_end= lip->get_ptr();
          }
    break;

  case 1702:
#line 9671 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!Select->add_table_to_list(YYTHD, (yyvsp[(13) - (13)].table), NULL, TL_OPTION_UPDATING,
                                           lex->lock_option))
              MYSQL_YYABORT;
            lex->field_list.empty();
            lex->update_list.empty();
            lex->value_list.empty();
          }
    break;

  case 1703:
#line 9681 "sql_yacc.yy"
    { Lex->exchange->cs= (yyvsp[(15) - (15)].charset); }
    break;

  case 1704:
#line 9685 "sql_yacc.yy"
    {}
    break;

  case 1705:
#line 9689 "sql_yacc.yy"
    { (yyval.filetype)= FILETYPE_CSV; }
    break;

  case 1706:
#line 9690 "sql_yacc.yy"
    { (yyval.filetype)= FILETYPE_XML; }
    break;

  case 1707:
#line 9694 "sql_yacc.yy"
    { (yyval.num)=0;}
    break;

  case 1708:
#line 9695 "sql_yacc.yy"
    { (yyval.num)=1;}
    break;

  case 1709:
#line 9699 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DEFAULT; }
    break;

  case 1710:
#line 9701 "sql_yacc.yy"
    {
#ifdef HAVE_QUERY_CACHE
            /*
              Ignore this option in SP to avoid problem with query cache
            */
            if (Lex->sphead != 0)
              (yyval.lock_type)= TL_WRITE_DEFAULT;
            else
#endif
              (yyval.lock_type)= TL_WRITE_CONCURRENT_INSERT;
          }
    break;

  case 1711:
#line 9712 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
    break;

  case 1712:
#line 9716 "sql_yacc.yy"
    { Lex->duplicates=DUP_ERROR; }
    break;

  case 1713:
#line 9717 "sql_yacc.yy"
    { Lex->duplicates=DUP_REPLACE; }
    break;

  case 1714:
#line 9718 "sql_yacc.yy"
    { Lex->ignore= 1; }
    break;

  case 1719:
#line 9733 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->field_term= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1720:
#line 9738 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            DBUG_ASSERT(lex->exchange != 0);
            lex->exchange->enclosed= (yyvsp[(4) - (4)].string);
            lex->exchange->opt_enclosed= 1;
          }
    break;

  case 1721:
#line 9745 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->enclosed= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1722:
#line 9750 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->escaped= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1727:
#line 9768 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->line_term= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1728:
#line 9773 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->line_start= (yyvsp[(3) - (3)].string);
          }
    break;

  case 1729:
#line 9780 "sql_yacc.yy"
    { }
    break;

  case 1730:
#line 9782 "sql_yacc.yy"
    { Lex->exchange->line_term = (yyvsp[(4) - (4)].string); }
    break;

  case 1732:
#line 9787 "sql_yacc.yy"
    {
            DBUG_ASSERT(Lex->exchange != 0);
            Lex->exchange->skip_lines= atol((yyvsp[(2) - (3)].lex_str).str);
          }
    break;

  case 1733:
#line 9794 "sql_yacc.yy"
    { }
    break;

  case 1734:
#line 9795 "sql_yacc.yy"
    { }
    break;

  case 1735:
#line 9799 "sql_yacc.yy"
    {}
    break;

  case 1736:
#line 9800 "sql_yacc.yy"
    {}
    break;

  case 1737:
#line 9801 "sql_yacc.yy"
    {}
    break;

  case 1738:
#line 9806 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(3) - (3)].item)); }
    break;

  case 1739:
#line 9808 "sql_yacc.yy"
    { Lex->field_list.push_back((yyvsp[(1) - (1)].item)); }
    break;

  case 1740:
#line 9812 "sql_yacc.yy"
    {(yyval.item)= (yyvsp[(1) - (1)].item);}
    break;

  case 1741:
#line 9814 "sql_yacc.yy"
    { (yyval.item)= new Item_user_var_as_out_param((yyvsp[(2) - (2)].lex_str)); }
    break;

  case 1742:
#line 9818 "sql_yacc.yy"
    {}
    break;

  case 1743:
#line 9819 "sql_yacc.yy"
    {}
    break;

  case 1744:
#line 9826 "sql_yacc.yy"
    {
            LEX_STRING tmp;
            THD *thd= YYTHD;
            CHARSET_INFO *cs_con= thd->variables.collation_connection;
            CHARSET_INFO *cs_cli= thd->variables.character_set_client;
            uint repertoire= thd->lex->text_string_is_7bit &&
                             my_charset_is_ascii_based(cs_cli) ?
                             MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
            if (thd->charset_is_collation_connection ||
                (repertoire == MY_REPERTOIRE_ASCII &&
                 my_charset_is_ascii_based(cs_con)))
              tmp= (yyvsp[(1) - (1)].lex_str);
            else
              thd->convert_string(&tmp, cs_con, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, cs_cli);
            (yyval.item)= new Item_string(tmp.str, tmp.length, cs_con,
                                DERIVATION_COERCIBLE, repertoire);
          }
    break;

  case 1745:
#line 9844 "sql_yacc.yy"
    {
            uint repertoire= Lex->text_string_is_7bit ?
                             MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
            DBUG_ASSERT(my_charset_is_ascii_based(national_charset_info));
            (yyval.item)= new Item_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, national_charset_info,
                                DERIVATION_COERCIBLE, repertoire);
          }
    break;

  case 1746:
#line 9852 "sql_yacc.yy"
    {
            (yyval.item)= new Item_string((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length, (yyvsp[(1) - (2)].charset));
            ((Item_string*) (yyval.item))->set_repertoire_from_value();
          }
    break;

  case 1747:
#line 9857 "sql_yacc.yy"
    {
            Item_string* item= (Item_string*) (yyvsp[(1) - (2)].item);
            item->append((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            if (!(item->collation.repertoire & MY_REPERTOIRE_EXTENDED))
            {
              /*
                 If the string has been pure ASCII so far,
                 check the new part.
              */
              CHARSET_INFO *cs= YYTHD->variables.collation_connection;
              item->collation.repertoire|= my_string_repertoire(cs,
                                                                (yyvsp[(2) - (2)].lex_str).str,
                                                                (yyvsp[(2) - (2)].lex_str).length);
            }
          }
    break;

  case 1748:
#line 9876 "sql_yacc.yy"
    {
            (yyval.string)= new (YYTHD->mem_root) String((yyvsp[(1) - (1)].lex_str).str,
                                             (yyvsp[(1) - (1)].lex_str).length,
                                             YYTHD->variables.collation_connection);
          }
    break;

  case 1749:
#line 9882 "sql_yacc.yy"
    {
            Item *tmp= new Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            /*
              it is OK only emulate fix_fields, because we need only
              value of constant
            */
            (yyval.string)= tmp ?
              tmp->quick_fix_field(), tmp->val_str((String*) 0) :
              (String*) 0;
          }
    break;

  case 1750:
#line 9893 "sql_yacc.yy"
    {
            Item *tmp= new Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            /*
              it is OK only emulate fix_fields, because we need only
              value of constant
            */
            (yyval.string)= tmp ? tmp->quick_fix_field(), tmp->val_str((String*) 0) :
              (String*) 0;
          }
    break;

  case 1751:
#line 9906 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;
            Item_param *item;
            if (! lex->parsing_options.allows_variable)
            {
              my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
              MYSQL_YYABORT;
            }
            item= new Item_param((uint) (lip->get_tok_start() - thd->query));
            if (!((yyval.item)= item) || lex->param_list.push_back(item))
            {
              my_message(ER_OUT_OF_RESOURCES, ER(ER_OUT_OF_RESOURCES), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 1752:
#line 9926 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item); }
    break;

  case 1753:
#line 9927 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
    break;

  case 1754:
#line 9929 "sql_yacc.yy"
    {
            (yyvsp[(2) - (2)].item_num)->max_length++;
            (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
          }
    break;

  case 1755:
#line 9936 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item); }
    break;

  case 1756:
#line 9937 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
    break;

  case 1757:
#line 9939 "sql_yacc.yy"
    {
            (yyval.item) = new Item_null();
            YYTHD->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT;
          }
    break;

  case 1758:
#line 9943 "sql_yacc.yy"
    { (yyval.item)= new Item_int((char*) "FALSE",0,1); }
    break;

  case 1759:
#line 9944 "sql_yacc.yy"
    { (yyval.item)= new Item_int((char*) "TRUE",1,1); }
    break;

  case 1760:
#line 9945 "sql_yacc.yy"
    { (yyval.item) = new Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);}
    break;

  case 1761:
#line 9946 "sql_yacc.yy"
    { (yyval.item)= new Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
    break;

  case 1762:
#line 9948 "sql_yacc.yy"
    {
            Item *tmp= new Item_hex_string((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            /*
              it is OK only emulate fix_fieds, because we need only
              value of constant
            */
            String *str= tmp ?
              tmp->quick_fix_field(), tmp->val_str((String*) 0) :
              (String*) 0;
            (yyval.item)= new Item_string(str ? str->ptr() : "",
                                str ? str->length() : 0,
                                (yyvsp[(1) - (2)].charset));
            if ((yyval.item))
              ((Item_string *) (yyval.item))->set_repertoire_from_value();
          }
    break;

  case 1763:
#line 9964 "sql_yacc.yy"
    {
            Item *tmp= new Item_bin_string((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
            /*
              it is OK only emulate fix_fieds, because we need only
              value of constant
            */
            String *str= tmp ?
              tmp->quick_fix_field(), tmp->val_str((String*) 0) :
              (String*) 0;
            (yyval.item)= new Item_string(str ? str->ptr() : "",
                                str ? str->length() : 0,
            Lex->charset);
          }
    break;

  case 1764:
#line 9977 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1765:
#line 9978 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1766:
#line 9979 "sql_yacc.yy"
    { (yyval.item) = (yyvsp[(2) - (2)].item); }
    break;

  case 1767:
#line 9984 "sql_yacc.yy"
    {
            int error;
            (yyval.item_num) = new Item_int((yyvsp[(1) - (1)].lex_str).str, (longlong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error), (yyvsp[(1) - (1)].lex_str).length);
          }
    break;

  case 1768:
#line 9989 "sql_yacc.yy"
    {
            int error;
            (yyval.item_num) = new Item_int((yyvsp[(1) - (1)].lex_str).str, (longlong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, NULL, &error), (yyvsp[(1) - (1)].lex_str).length);
          }
    break;

  case 1769:
#line 9994 "sql_yacc.yy"
    { (yyval.item_num) = new Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
    break;

  case 1770:
#line 9996 "sql_yacc.yy"
    {
            (yyval.item_num)= new Item_decimal((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, YYTHD->charset());
            if (YYTHD->net.report_error)
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1771:
#line 10004 "sql_yacc.yy"
    {
            (yyval.item_num) = new Item_float((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
            if (YYTHD->net.report_error)
            {
              MYSQL_YYABORT;
            }
          }
    break;

  case 1772:
#line 10018 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1773:
#line 10019 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1774:
#line 10024 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            (yyval.item) = new Item_field(Lex->current_context(), NullS, (yyvsp[(1) - (3)].lex_str).str, "*");
            sel->with_wild++;
          }
    break;

  case 1775:
#line 10030 "sql_yacc.yy"
    {
            SELECT_LEX *sel= Select;
            (yyval.item) = new Item_field(Lex->current_context(), (YYTHD->client_capabilities &
                                CLIENT_NO_SCHEMA ? NullS : (yyvsp[(1) - (5)].lex_str).str),
                                (yyvsp[(3) - (5)].lex_str).str,"*");
            sel->with_wild++;
          }
    break;

  case 1776:
#line 10040 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 1777:
#line 10045 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;
            sp_variable_t *spv;
            sp_pcontext *spc = lex->spcont;
            if (spc && (spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              /* We're compiling a stored procedure and found a variable */
              if (! lex->parsing_options.allows_variable)
              {
                my_error(ER_VIEW_SELECT_VARIABLE, MYF(0));
                MYSQL_YYABORT;
              }

              Item_splocal *splocal;
              splocal= new Item_splocal((yyvsp[(1) - (1)].lex_str), spv->offset, spv->type,
                                        lip->get_tok_start_prev() -
                                        lex->sphead->m_tmp_query,
                                        lip->get_tok_end() - lip->get_tok_start_prev());
#ifndef DBUG_OFF
              if (splocal)
                splocal->m_sp= lex->sphead;
#endif
              (yyval.item) = (Item*) splocal;
              lex->safe_to_cache_query=0;
            }
            else
            {
              SELECT_LEX *sel=Select;
              (yyval.item)= (sel->parsing_place != IN_HAVING ||
                  sel->get_in_sum_expr() > 0) ?
                  (Item*) new Item_field(Lex->current_context(), NullS, NullS, (yyvsp[(1) - (1)].lex_str).str) :
                  (Item*) new Item_ref(Lex->current_context(), NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
            }
          }
    break;

  case 1778:
#line 10081 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1779:
#line 10086 "sql_yacc.yy"
    {
            SELECT_LEX *sel=Select;
            (yyval.item)= (sel->parsing_place != IN_HAVING ||
                sel->get_in_sum_expr() > 0) ?
                (Item*) new Item_field(Lex->current_context(), NullS, NullS, (yyvsp[(1) - (1)].lex_str).str) :
                (Item*) new Item_ref(Lex->current_context(), NullS, NullS, (yyvsp[(1) - (1)].lex_str).str);
          }
    break;

  case 1780:
#line 10093 "sql_yacc.yy"
    { (yyval.item)= (yyvsp[(1) - (1)].item); }
    break;

  case 1781:
#line 10098 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;

            /*
              FIXME This will work ok in simple_ident_nospvar case because
              we can't meet simple_ident_nospvar in trigger now. But it
              should be changed in future.
            */
            if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
                (!my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "NEW") ||
                 !my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "OLD")))
            {
              Item_trigger_field *trg_fld;
              bool new_row= ((yyvsp[(1) - (3)].lex_str).str[0]=='N' || (yyvsp[(1) - (3)].lex_str).str[0]=='n');

              if (lex->trg_chistics.event == TRG_EVENT_INSERT &&
                  !new_row)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "OLD", "on INSERT");
                MYSQL_YYABORT;
              }

              if (lex->trg_chistics.event == TRG_EVENT_DELETE &&
                  new_row)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0), "NEW", "on DELETE");
                MYSQL_YYABORT;
              }

              DBUG_ASSERT(!new_row ||
                          (lex->trg_chistics.event == TRG_EVENT_INSERT ||
                           lex->trg_chistics.event == TRG_EVENT_UPDATE));
              const bool read_only=
                !(new_row && lex->trg_chistics.action_time == TRG_ACTION_BEFORE);
              if (!(trg_fld= new Item_trigger_field(Lex->current_context(),
                                                    new_row ?
                                                    Item_trigger_field::NEW_ROW:
                                                    Item_trigger_field::OLD_ROW,
                                                    (yyvsp[(3) - (3)].lex_str).str,
                                                    SELECT_ACL,
                                                    read_only)))
                MYSQL_YYABORT;

              /*
                Let us add this item to list of all Item_trigger_field objects
                in trigger.
              */
              lex->trg_table_fields.link_in_list((uchar*) trg_fld,
                                                 (uchar**) &trg_fld->next_trg_field);

              (yyval.item)= (Item *)trg_fld;
            }
            else
            {
              SELECT_LEX *sel= lex->current_select;
              if (sel->no_table_names_allowed)
              {
                my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                         MYF(0), (yyvsp[(1) - (3)].lex_str).str, thd->where);
              }
              (yyval.item)= (sel->parsing_place != IN_HAVING ||
                  sel->get_in_sum_expr() > 0) ?
                  (Item*) new Item_field(Lex->current_context(), NullS, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).str) :
                  (Item*) new Item_ref(Lex->current_context(), NullS, (yyvsp[(1) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).str);
            }
          }
    break;

  case 1782:
#line 10166 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->no_table_names_allowed)
            {
              my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                       MYF(0), (yyvsp[(2) - (4)].lex_str).str, thd->where);
            }
            (yyval.item)= (sel->parsing_place != IN_HAVING ||
                sel->get_in_sum_expr() > 0) ?
                (Item*) new Item_field(Lex->current_context(), NullS, (yyvsp[(2) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).str) :
                (Item*) new Item_ref(Lex->current_context(), NullS, (yyvsp[(2) - (4)].lex_str).str, (yyvsp[(4) - (4)].lex_str).str);
          }
    break;

  case 1783:
#line 10181 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            SELECT_LEX *sel= lex->current_select;
            if (sel->no_table_names_allowed)
            {
              my_error(ER_TABLENAME_NOT_ALLOWED_HERE,
                       MYF(0), (yyvsp[(3) - (5)].lex_str).str, thd->where);
            }
            (yyval.item)= (sel->parsing_place != IN_HAVING ||
                sel->get_in_sum_expr() > 0) ?
                (Item*) new Item_field(Lex->current_context(),
                                       (YYTHD->client_capabilities &
                                       CLIENT_NO_SCHEMA ? NullS : (yyvsp[(1) - (5)].lex_str).str),
                                       (yyvsp[(3) - (5)].lex_str).str, (yyvsp[(5) - (5)].lex_str).str) :
                (Item*) new Item_ref(Lex->current_context(),
                                     (YYTHD->client_capabilities &
                                     CLIENT_NO_SCHEMA ? NullS : (yyvsp[(1) - (5)].lex_str).str),
                                     (yyvsp[(3) - (5)].lex_str).str, (yyvsp[(5) - (5)].lex_str).str);
          }
    break;

  case 1784:
#line 10204 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1785:
#line 10206 "sql_yacc.yy"
    {
            TABLE_LIST *table= (TABLE_LIST*) Select->table_list.first;
            if (my_strcasecmp(table_alias_charset, (yyvsp[(1) - (5)].lex_str).str, table->db))
            {
              my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[(1) - (5)].lex_str).str);
              MYSQL_YYABORT;
            }
            if (my_strcasecmp(table_alias_charset, (yyvsp[(3) - (5)].lex_str).str,
                              table->table_name))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(3) - (5)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.lex_str)=(yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 1786:
#line 10222 "sql_yacc.yy"
    {
            TABLE_LIST *table= (TABLE_LIST*) Select->table_list.first;
            if (my_strcasecmp(table_alias_charset, (yyvsp[(1) - (3)].lex_str).str, table->alias))
            {
              my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[(1) - (3)].lex_str).str);
              MYSQL_YYABORT;
            }
            (yyval.lex_str)=(yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 1787:
#line 10231 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str);}
    break;

  case 1788:
#line 10235 "sql_yacc.yy"
    { (yyval.table)=new Table_ident((yyvsp[(1) - (1)].lex_str)); }
    break;

  case 1789:
#line 10236 "sql_yacc.yy"
    { (yyval.table)=new Table_ident(YYTHD, (yyvsp[(1) - (3)].lex_str),(yyvsp[(3) - (3)].lex_str),0);}
    break;

  case 1790:
#line 10237 "sql_yacc.yy"
    { (yyval.table)=new Table_ident((yyvsp[(2) - (2)].lex_str));}
    break;

  case 1791:
#line 10242 "sql_yacc.yy"
    {
            LEX_STRING db={(char*) any_db,3};
            (yyval.table)=new Table_ident(YYTHD, db,(yyvsp[(1) - (1)].lex_str),0);
          }
    break;

  case 1792:
#line 10249 "sql_yacc.yy"
    { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
    break;

  case 1793:
#line 10251 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_system_charset)
            {
              CHARSET_INFO *cs= system_charset_info;
              int dummy_error;
              uint wlen= cs->cset->well_formed_len(cs, (yyvsp[(1) - (1)].lex_str).str,
                                                   (yyvsp[(1) - (1)].lex_str).str+(yyvsp[(1) - (1)].lex_str).length,
                                                   (yyvsp[(1) - (1)].lex_str).length, &dummy_error);
              if (wlen < (yyvsp[(1) - (1)].lex_str).length)
              {
                my_error(ER_INVALID_CHARACTER_STRING, MYF(0),
                         cs->csname, (yyvsp[(1) - (1)].lex_str).str + wlen);
                MYSQL_YYABORT;
              }
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            }
            else
              thd->convert_string(&(yyval.lex_str), system_charset_info,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset());
          }
    break;

  case 1794:
#line 10277 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_system_charset)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
              thd->convert_string(&(yyval.lex_str), system_charset_info,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset());
          }
    break;

  case 1795:
#line 10290 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_collation_connection)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
              thd->convert_string(&(yyval.lex_str), thd->variables.collation_connection,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset());
          }
    break;

  case 1796:
#line 10303 "sql_yacc.yy"
    {
            THD *thd= YYTHD;

            if (thd->charset_is_character_set_filesystem)
              (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
            else
              thd->convert_string(&(yyval.lex_str), thd->variables.character_set_filesystem,
                                  (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length, thd->charset());
          }
    break;

  case 1797:
#line 10315 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1798:
#line 10317 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            (yyval.lex_str).str= thd->strmake("read_only",9);
            (yyval.lex_str).length= 9;
          }
    break;

  case 1799:
#line 10323 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            (yyval.lex_str).str= thd->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
            (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
          }
    break;

  case 1800:
#line 10331 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
    break;

  case 1801:
#line 10333 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            (yyval.lex_str).str= thd->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
            (yyval.lex_str).length= (yyvsp[(1) - (1)].symbol).length;
          }
    break;

  case 1802:
#line 10341 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1803:
#line 10342 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1804:
#line 10343 "sql_yacc.yy"
    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
    break;

  case 1805:
#line 10348 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            (yyval.lex_user)->user = (yyvsp[(1) - (1)].lex_str);
            (yyval.lex_user)->host.str= (char *) "%";
            (yyval.lex_user)->host.length= 1;

            if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME),
                                         USERNAME_CHAR_LENGTH,
                                         system_charset_info, 0))
              MYSQL_YYABORT;
          }
    break;

  case 1806:
#line 10362 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            (yyval.lex_user)->user = (yyvsp[(1) - (3)].lex_str); (yyval.lex_user)->host=(yyvsp[(3) - (3)].lex_str);

            if (check_string_char_length(&(yyval.lex_user)->user, ER(ER_USERNAME),
                                         USERNAME_CHAR_LENGTH,
                                         system_charset_info, 0) ||
                check_string_byte_length(&(yyval.lex_user)->host, ER(ER_HOSTNAME),
                                         HOSTNAME_LENGTH))
              MYSQL_YYABORT;
          }
    break;

  case 1807:
#line 10376 "sql_yacc.yy"
    {
            if (!((yyval.lex_user)=(LEX_USER*) YYTHD->alloc(sizeof(st_lex_user))))
              MYSQL_YYABORT;
            /* 
              empty LEX_USER means current_user and 
              will be handled in the  get_current_user() function
              later
            */
            bzero((yyval.lex_user), sizeof(LEX_USER));
          }
    break;

  case 1808:
#line 10390 "sql_yacc.yy"
    {}
    break;

  case 1809:
#line 10391 "sql_yacc.yy"
    {}
    break;

  case 1810:
#line 10392 "sql_yacc.yy"
    {}
    break;

  case 1811:
#line 10393 "sql_yacc.yy"
    {}
    break;

  case 1812:
#line 10394 "sql_yacc.yy"
    {}
    break;

  case 1813:
#line 10395 "sql_yacc.yy"
    {}
    break;

  case 1814:
#line 10396 "sql_yacc.yy"
    {}
    break;

  case 1815:
#line 10397 "sql_yacc.yy"
    {}
    break;

  case 1816:
#line 10398 "sql_yacc.yy"
    {}
    break;

  case 1817:
#line 10399 "sql_yacc.yy"
    {}
    break;

  case 1818:
#line 10400 "sql_yacc.yy"
    {}
    break;

  case 1819:
#line 10401 "sql_yacc.yy"
    {}
    break;

  case 1820:
#line 10402 "sql_yacc.yy"
    {}
    break;

  case 1821:
#line 10403 "sql_yacc.yy"
    {}
    break;

  case 1822:
#line 10404 "sql_yacc.yy"
    {}
    break;

  case 1823:
#line 10405 "sql_yacc.yy"
    {}
    break;

  case 1824:
#line 10406 "sql_yacc.yy"
    {}
    break;

  case 1825:
#line 10407 "sql_yacc.yy"
    {}
    break;

  case 1826:
#line 10408 "sql_yacc.yy"
    {}
    break;

  case 1827:
#line 10409 "sql_yacc.yy"
    {}
    break;

  case 1828:
#line 10410 "sql_yacc.yy"
    {}
    break;

  case 1829:
#line 10411 "sql_yacc.yy"
    {}
    break;

  case 1830:
#line 10412 "sql_yacc.yy"
    {}
    break;

  case 1831:
#line 10413 "sql_yacc.yy"
    {}
    break;

  case 1832:
#line 10414 "sql_yacc.yy"
    {}
    break;

  case 1833:
#line 10415 "sql_yacc.yy"
    {}
    break;

  case 1834:
#line 10416 "sql_yacc.yy"
    {}
    break;

  case 1835:
#line 10417 "sql_yacc.yy"
    {}
    break;

  case 1836:
#line 10418 "sql_yacc.yy"
    {}
    break;

  case 1837:
#line 10419 "sql_yacc.yy"
    {}
    break;

  case 1838:
#line 10420 "sql_yacc.yy"
    {}
    break;

  case 1839:
#line 10421 "sql_yacc.yy"
    {}
    break;

  case 1840:
#line 10422 "sql_yacc.yy"
    {}
    break;

  case 1841:
#line 10423 "sql_yacc.yy"
    {}
    break;

  case 1842:
#line 10424 "sql_yacc.yy"
    {}
    break;

  case 1843:
#line 10425 "sql_yacc.yy"
    {}
    break;

  case 1844:
#line 10426 "sql_yacc.yy"
    {}
    break;

  case 1845:
#line 10427 "sql_yacc.yy"
    {}
    break;

  case 1846:
#line 10428 "sql_yacc.yy"
    {}
    break;

  case 1847:
#line 10429 "sql_yacc.yy"
    {}
    break;

  case 1848:
#line 10430 "sql_yacc.yy"
    {}
    break;

  case 1849:
#line 10431 "sql_yacc.yy"
    {}
    break;

  case 1850:
#line 10432 "sql_yacc.yy"
    {}
    break;

  case 1851:
#line 10433 "sql_yacc.yy"
    {}
    break;

  case 1852:
#line 10434 "sql_yacc.yy"
    {}
    break;

  case 1853:
#line 10435 "sql_yacc.yy"
    {}
    break;

  case 1854:
#line 10436 "sql_yacc.yy"
    {}
    break;

  case 1855:
#line 10437 "sql_yacc.yy"
    {}
    break;

  case 1856:
#line 10438 "sql_yacc.yy"
    {}
    break;

  case 1857:
#line 10439 "sql_yacc.yy"
    {}
    break;

  case 1858:
#line 10449 "sql_yacc.yy"
    {}
    break;

  case 1859:
#line 10450 "sql_yacc.yy"
    {}
    break;

  case 1860:
#line 10451 "sql_yacc.yy"
    {}
    break;

  case 1861:
#line 10452 "sql_yacc.yy"
    {}
    break;

  case 1862:
#line 10453 "sql_yacc.yy"
    {}
    break;

  case 1863:
#line 10454 "sql_yacc.yy"
    {}
    break;

  case 1864:
#line 10455 "sql_yacc.yy"
    {}
    break;

  case 1865:
#line 10456 "sql_yacc.yy"
    {}
    break;

  case 1866:
#line 10457 "sql_yacc.yy"
    {}
    break;

  case 1867:
#line 10458 "sql_yacc.yy"
    {}
    break;

  case 1868:
#line 10459 "sql_yacc.yy"
    {}
    break;

  case 1869:
#line 10460 "sql_yacc.yy"
    {}
    break;

  case 1870:
#line 10461 "sql_yacc.yy"
    {}
    break;

  case 1871:
#line 10462 "sql_yacc.yy"
    {}
    break;

  case 1872:
#line 10463 "sql_yacc.yy"
    {}
    break;

  case 1873:
#line 10464 "sql_yacc.yy"
    {}
    break;

  case 1874:
#line 10465 "sql_yacc.yy"
    {}
    break;

  case 1875:
#line 10466 "sql_yacc.yy"
    {}
    break;

  case 1876:
#line 10467 "sql_yacc.yy"
    {}
    break;

  case 1877:
#line 10468 "sql_yacc.yy"
    {}
    break;

  case 1878:
#line 10469 "sql_yacc.yy"
    {}
    break;

  case 1879:
#line 10470 "sql_yacc.yy"
    {}
    break;

  case 1880:
#line 10471 "sql_yacc.yy"
    {}
    break;

  case 1881:
#line 10472 "sql_yacc.yy"
    {}
    break;

  case 1882:
#line 10473 "sql_yacc.yy"
    {}
    break;

  case 1883:
#line 10474 "sql_yacc.yy"
    {}
    break;

  case 1884:
#line 10475 "sql_yacc.yy"
    {}
    break;

  case 1885:
#line 10476 "sql_yacc.yy"
    {}
    break;

  case 1886:
#line 10477 "sql_yacc.yy"
    {}
    break;

  case 1887:
#line 10478 "sql_yacc.yy"
    {}
    break;

  case 1888:
#line 10479 "sql_yacc.yy"
    {}
    break;

  case 1889:
#line 10480 "sql_yacc.yy"
    {}
    break;

  case 1890:
#line 10481 "sql_yacc.yy"
    {}
    break;

  case 1891:
#line 10482 "sql_yacc.yy"
    {}
    break;

  case 1892:
#line 10483 "sql_yacc.yy"
    {}
    break;

  case 1893:
#line 10484 "sql_yacc.yy"
    {}
    break;

  case 1894:
#line 10485 "sql_yacc.yy"
    {}
    break;

  case 1895:
#line 10486 "sql_yacc.yy"
    {}
    break;

  case 1896:
#line 10487 "sql_yacc.yy"
    {}
    break;

  case 1897:
#line 10488 "sql_yacc.yy"
    {}
    break;

  case 1898:
#line 10489 "sql_yacc.yy"
    {}
    break;

  case 1899:
#line 10490 "sql_yacc.yy"
    {}
    break;

  case 1900:
#line 10491 "sql_yacc.yy"
    {}
    break;

  case 1901:
#line 10492 "sql_yacc.yy"
    {}
    break;

  case 1902:
#line 10493 "sql_yacc.yy"
    {}
    break;

  case 1903:
#line 10494 "sql_yacc.yy"
    {}
    break;

  case 1904:
#line 10495 "sql_yacc.yy"
    {}
    break;

  case 1905:
#line 10496 "sql_yacc.yy"
    {}
    break;

  case 1906:
#line 10497 "sql_yacc.yy"
    {}
    break;

  case 1907:
#line 10498 "sql_yacc.yy"
    {}
    break;

  case 1908:
#line 10499 "sql_yacc.yy"
    {}
    break;

  case 1909:
#line 10500 "sql_yacc.yy"
    {}
    break;

  case 1910:
#line 10501 "sql_yacc.yy"
    {}
    break;

  case 1911:
#line 10502 "sql_yacc.yy"
    {}
    break;

  case 1912:
#line 10503 "sql_yacc.yy"
    {}
    break;

  case 1913:
#line 10504 "sql_yacc.yy"
    {}
    break;

  case 1914:
#line 10505 "sql_yacc.yy"
    {}
    break;

  case 1915:
#line 10506 "sql_yacc.yy"
    {}
    break;

  case 1916:
#line 10507 "sql_yacc.yy"
    {}
    break;

  case 1917:
#line 10508 "sql_yacc.yy"
    {}
    break;

  case 1918:
#line 10509 "sql_yacc.yy"
    {}
    break;

  case 1919:
#line 10510 "sql_yacc.yy"
    {}
    break;

  case 1920:
#line 10511 "sql_yacc.yy"
    {}
    break;

  case 1921:
#line 10512 "sql_yacc.yy"
    {}
    break;

  case 1922:
#line 10513 "sql_yacc.yy"
    {}
    break;

  case 1923:
#line 10514 "sql_yacc.yy"
    {}
    break;

  case 1924:
#line 10515 "sql_yacc.yy"
    {}
    break;

  case 1925:
#line 10516 "sql_yacc.yy"
    {}
    break;

  case 1926:
#line 10517 "sql_yacc.yy"
    {}
    break;

  case 1927:
#line 10518 "sql_yacc.yy"
    {}
    break;

  case 1928:
#line 10519 "sql_yacc.yy"
    {}
    break;

  case 1929:
#line 10520 "sql_yacc.yy"
    {}
    break;

  case 1930:
#line 10521 "sql_yacc.yy"
    {}
    break;

  case 1931:
#line 10522 "sql_yacc.yy"
    {}
    break;

  case 1932:
#line 10523 "sql_yacc.yy"
    {}
    break;

  case 1933:
#line 10524 "sql_yacc.yy"
    {}
    break;

  case 1934:
#line 10525 "sql_yacc.yy"
    {}
    break;

  case 1935:
#line 10526 "sql_yacc.yy"
    {}
    break;

  case 1936:
#line 10527 "sql_yacc.yy"
    {}
    break;

  case 1937:
#line 10528 "sql_yacc.yy"
    {}
    break;

  case 1938:
#line 10529 "sql_yacc.yy"
    {}
    break;

  case 1939:
#line 10530 "sql_yacc.yy"
    {}
    break;

  case 1940:
#line 10531 "sql_yacc.yy"
    {}
    break;

  case 1941:
#line 10532 "sql_yacc.yy"
    {}
    break;

  case 1942:
#line 10533 "sql_yacc.yy"
    {}
    break;

  case 1943:
#line 10534 "sql_yacc.yy"
    {}
    break;

  case 1944:
#line 10535 "sql_yacc.yy"
    {}
    break;

  case 1945:
#line 10536 "sql_yacc.yy"
    {}
    break;

  case 1946:
#line 10537 "sql_yacc.yy"
    {}
    break;

  case 1947:
#line 10538 "sql_yacc.yy"
    {}
    break;

  case 1948:
#line 10539 "sql_yacc.yy"
    {}
    break;

  case 1949:
#line 10540 "sql_yacc.yy"
    {}
    break;

  case 1950:
#line 10541 "sql_yacc.yy"
    {}
    break;

  case 1951:
#line 10542 "sql_yacc.yy"
    {}
    break;

  case 1952:
#line 10543 "sql_yacc.yy"
    {}
    break;

  case 1953:
#line 10544 "sql_yacc.yy"
    {}
    break;

  case 1954:
#line 10545 "sql_yacc.yy"
    {}
    break;

  case 1955:
#line 10546 "sql_yacc.yy"
    {}
    break;

  case 1956:
#line 10547 "sql_yacc.yy"
    {}
    break;

  case 1957:
#line 10548 "sql_yacc.yy"
    {}
    break;

  case 1958:
#line 10549 "sql_yacc.yy"
    {}
    break;

  case 1959:
#line 10550 "sql_yacc.yy"
    {}
    break;

  case 1960:
#line 10551 "sql_yacc.yy"
    {}
    break;

  case 1961:
#line 10552 "sql_yacc.yy"
    {}
    break;

  case 1962:
#line 10553 "sql_yacc.yy"
    {}
    break;

  case 1963:
#line 10554 "sql_yacc.yy"
    {}
    break;

  case 1964:
#line 10555 "sql_yacc.yy"
    {}
    break;

  case 1965:
#line 10556 "sql_yacc.yy"
    {}
    break;

  case 1966:
#line 10557 "sql_yacc.yy"
    {}
    break;

  case 1967:
#line 10558 "sql_yacc.yy"
    {}
    break;

  case 1968:
#line 10559 "sql_yacc.yy"
    {}
    break;

  case 1969:
#line 10560 "sql_yacc.yy"
    {}
    break;

  case 1970:
#line 10561 "sql_yacc.yy"
    {}
    break;

  case 1971:
#line 10562 "sql_yacc.yy"
    {}
    break;

  case 1972:
#line 10563 "sql_yacc.yy"
    {}
    break;

  case 1973:
#line 10564 "sql_yacc.yy"
    {}
    break;

  case 1974:
#line 10565 "sql_yacc.yy"
    {}
    break;

  case 1975:
#line 10566 "sql_yacc.yy"
    {}
    break;

  case 1976:
#line 10567 "sql_yacc.yy"
    {}
    break;

  case 1977:
#line 10568 "sql_yacc.yy"
    {}
    break;

  case 1978:
#line 10569 "sql_yacc.yy"
    {}
    break;

  case 1979:
#line 10570 "sql_yacc.yy"
    {}
    break;

  case 1980:
#line 10571 "sql_yacc.yy"
    {}
    break;

  case 1981:
#line 10572 "sql_yacc.yy"
    {}
    break;

  case 1982:
#line 10573 "sql_yacc.yy"
    {}
    break;

  case 1983:
#line 10574 "sql_yacc.yy"
    {}
    break;

  case 1984:
#line 10575 "sql_yacc.yy"
    {}
    break;

  case 1985:
#line 10576 "sql_yacc.yy"
    {}
    break;

  case 1986:
#line 10577 "sql_yacc.yy"
    {}
    break;

  case 1987:
#line 10578 "sql_yacc.yy"
    {}
    break;

  case 1988:
#line 10579 "sql_yacc.yy"
    {}
    break;

  case 1989:
#line 10580 "sql_yacc.yy"
    {}
    break;

  case 1990:
#line 10581 "sql_yacc.yy"
    {}
    break;

  case 1991:
#line 10582 "sql_yacc.yy"
    {}
    break;

  case 1992:
#line 10583 "sql_yacc.yy"
    {}
    break;

  case 1993:
#line 10584 "sql_yacc.yy"
    {}
    break;

  case 1994:
#line 10585 "sql_yacc.yy"
    {}
    break;

  case 1995:
#line 10586 "sql_yacc.yy"
    {}
    break;

  case 1996:
#line 10587 "sql_yacc.yy"
    {}
    break;

  case 1997:
#line 10588 "sql_yacc.yy"
    {}
    break;

  case 1998:
#line 10589 "sql_yacc.yy"
    {}
    break;

  case 1999:
#line 10590 "sql_yacc.yy"
    {}
    break;

  case 2000:
#line 10591 "sql_yacc.yy"
    {}
    break;

  case 2001:
#line 10592 "sql_yacc.yy"
    {}
    break;

  case 2002:
#line 10593 "sql_yacc.yy"
    {}
    break;

  case 2003:
#line 10594 "sql_yacc.yy"
    {}
    break;

  case 2004:
#line 10595 "sql_yacc.yy"
    {}
    break;

  case 2005:
#line 10596 "sql_yacc.yy"
    {}
    break;

  case 2006:
#line 10597 "sql_yacc.yy"
    {}
    break;

  case 2007:
#line 10598 "sql_yacc.yy"
    {}
    break;

  case 2008:
#line 10599 "sql_yacc.yy"
    {}
    break;

  case 2009:
#line 10600 "sql_yacc.yy"
    {}
    break;

  case 2010:
#line 10601 "sql_yacc.yy"
    {}
    break;

  case 2011:
#line 10602 "sql_yacc.yy"
    {}
    break;

  case 2012:
#line 10603 "sql_yacc.yy"
    {}
    break;

  case 2013:
#line 10604 "sql_yacc.yy"
    {}
    break;

  case 2014:
#line 10605 "sql_yacc.yy"
    {}
    break;

  case 2015:
#line 10606 "sql_yacc.yy"
    {}
    break;

  case 2016:
#line 10607 "sql_yacc.yy"
    {}
    break;

  case 2017:
#line 10608 "sql_yacc.yy"
    {}
    break;

  case 2018:
#line 10609 "sql_yacc.yy"
    {}
    break;

  case 2019:
#line 10610 "sql_yacc.yy"
    {}
    break;

  case 2020:
#line 10611 "sql_yacc.yy"
    {}
    break;

  case 2021:
#line 10612 "sql_yacc.yy"
    {}
    break;

  case 2022:
#line 10613 "sql_yacc.yy"
    {}
    break;

  case 2023:
#line 10614 "sql_yacc.yy"
    {}
    break;

  case 2024:
#line 10615 "sql_yacc.yy"
    {}
    break;

  case 2025:
#line 10616 "sql_yacc.yy"
    {}
    break;

  case 2026:
#line 10617 "sql_yacc.yy"
    {}
    break;

  case 2027:
#line 10618 "sql_yacc.yy"
    {}
    break;

  case 2028:
#line 10619 "sql_yacc.yy"
    {}
    break;

  case 2029:
#line 10620 "sql_yacc.yy"
    {}
    break;

  case 2030:
#line 10621 "sql_yacc.yy"
    {}
    break;

  case 2031:
#line 10622 "sql_yacc.yy"
    {}
    break;

  case 2032:
#line 10623 "sql_yacc.yy"
    {}
    break;

  case 2033:
#line 10624 "sql_yacc.yy"
    {}
    break;

  case 2034:
#line 10625 "sql_yacc.yy"
    {}
    break;

  case 2035:
#line 10626 "sql_yacc.yy"
    {}
    break;

  case 2036:
#line 10627 "sql_yacc.yy"
    {}
    break;

  case 2037:
#line 10628 "sql_yacc.yy"
    {}
    break;

  case 2038:
#line 10629 "sql_yacc.yy"
    {}
    break;

  case 2039:
#line 10630 "sql_yacc.yy"
    {}
    break;

  case 2040:
#line 10631 "sql_yacc.yy"
    {}
    break;

  case 2041:
#line 10632 "sql_yacc.yy"
    {}
    break;

  case 2042:
#line 10633 "sql_yacc.yy"
    {}
    break;

  case 2043:
#line 10634 "sql_yacc.yy"
    {}
    break;

  case 2044:
#line 10635 "sql_yacc.yy"
    {}
    break;

  case 2045:
#line 10636 "sql_yacc.yy"
    {}
    break;

  case 2046:
#line 10637 "sql_yacc.yy"
    {}
    break;

  case 2047:
#line 10638 "sql_yacc.yy"
    {}
    break;

  case 2048:
#line 10639 "sql_yacc.yy"
    {}
    break;

  case 2049:
#line 10640 "sql_yacc.yy"
    {}
    break;

  case 2050:
#line 10641 "sql_yacc.yy"
    {}
    break;

  case 2051:
#line 10642 "sql_yacc.yy"
    {}
    break;

  case 2052:
#line 10643 "sql_yacc.yy"
    {}
    break;

  case 2053:
#line 10644 "sql_yacc.yy"
    {}
    break;

  case 2054:
#line 10645 "sql_yacc.yy"
    {}
    break;

  case 2055:
#line 10646 "sql_yacc.yy"
    {}
    break;

  case 2056:
#line 10647 "sql_yacc.yy"
    {}
    break;

  case 2057:
#line 10648 "sql_yacc.yy"
    {}
    break;

  case 2058:
#line 10649 "sql_yacc.yy"
    {}
    break;

  case 2059:
#line 10650 "sql_yacc.yy"
    {}
    break;

  case 2060:
#line 10651 "sql_yacc.yy"
    {}
    break;

  case 2061:
#line 10652 "sql_yacc.yy"
    {}
    break;

  case 2062:
#line 10653 "sql_yacc.yy"
    {}
    break;

  case 2063:
#line 10654 "sql_yacc.yy"
    {}
    break;

  case 2064:
#line 10655 "sql_yacc.yy"
    {}
    break;

  case 2065:
#line 10656 "sql_yacc.yy"
    {}
    break;

  case 2066:
#line 10657 "sql_yacc.yy"
    {}
    break;

  case 2067:
#line 10658 "sql_yacc.yy"
    {}
    break;

  case 2068:
#line 10659 "sql_yacc.yy"
    {}
    break;

  case 2069:
#line 10660 "sql_yacc.yy"
    {}
    break;

  case 2070:
#line 10661 "sql_yacc.yy"
    {}
    break;

  case 2071:
#line 10662 "sql_yacc.yy"
    {}
    break;

  case 2072:
#line 10663 "sql_yacc.yy"
    {}
    break;

  case 2073:
#line 10664 "sql_yacc.yy"
    {}
    break;

  case 2074:
#line 10665 "sql_yacc.yy"
    {}
    break;

  case 2075:
#line 10666 "sql_yacc.yy"
    {}
    break;

  case 2076:
#line 10667 "sql_yacc.yy"
    {}
    break;

  case 2077:
#line 10668 "sql_yacc.yy"
    {}
    break;

  case 2078:
#line 10669 "sql_yacc.yy"
    {}
    break;

  case 2079:
#line 10670 "sql_yacc.yy"
    {}
    break;

  case 2080:
#line 10671 "sql_yacc.yy"
    {}
    break;

  case 2081:
#line 10672 "sql_yacc.yy"
    {}
    break;

  case 2082:
#line 10673 "sql_yacc.yy"
    {}
    break;

  case 2083:
#line 10674 "sql_yacc.yy"
    {}
    break;

  case 2084:
#line 10675 "sql_yacc.yy"
    {}
    break;

  case 2085:
#line 10676 "sql_yacc.yy"
    {}
    break;

  case 2086:
#line 10677 "sql_yacc.yy"
    {}
    break;

  case 2087:
#line 10678 "sql_yacc.yy"
    {}
    break;

  case 2088:
#line 10679 "sql_yacc.yy"
    {}
    break;

  case 2089:
#line 10680 "sql_yacc.yy"
    {}
    break;

  case 2090:
#line 10681 "sql_yacc.yy"
    {}
    break;

  case 2091:
#line 10682 "sql_yacc.yy"
    {}
    break;

  case 2092:
#line 10683 "sql_yacc.yy"
    {}
    break;

  case 2093:
#line 10684 "sql_yacc.yy"
    {}
    break;

  case 2094:
#line 10685 "sql_yacc.yy"
    {}
    break;

  case 2095:
#line 10686 "sql_yacc.yy"
    {}
    break;

  case 2096:
#line 10687 "sql_yacc.yy"
    {}
    break;

  case 2097:
#line 10688 "sql_yacc.yy"
    {}
    break;

  case 2098:
#line 10689 "sql_yacc.yy"
    {}
    break;

  case 2099:
#line 10690 "sql_yacc.yy"
    {}
    break;

  case 2100:
#line 10691 "sql_yacc.yy"
    {}
    break;

  case 2101:
#line 10692 "sql_yacc.yy"
    {}
    break;

  case 2102:
#line 10693 "sql_yacc.yy"
    {}
    break;

  case 2103:
#line 10694 "sql_yacc.yy"
    {}
    break;

  case 2104:
#line 10695 "sql_yacc.yy"
    {}
    break;

  case 2105:
#line 10696 "sql_yacc.yy"
    {}
    break;

  case 2106:
#line 10697 "sql_yacc.yy"
    {}
    break;

  case 2107:
#line 10698 "sql_yacc.yy"
    {}
    break;

  case 2108:
#line 10699 "sql_yacc.yy"
    {}
    break;

  case 2109:
#line 10700 "sql_yacc.yy"
    {}
    break;

  case 2110:
#line 10701 "sql_yacc.yy"
    {}
    break;

  case 2111:
#line 10708 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SET_OPTION;
            mysql_init_select(lex);
            lex->option_type=OPT_SESSION;
            lex->var_list.empty();
            lex->one_shot_set= 0;
          }
    break;

  case 2112:
#line 10717 "sql_yacc.yy"
    {}
    break;

  case 2113:
#line 10721 "sql_yacc.yy"
    {}
    break;

  case 2114:
#line 10722 "sql_yacc.yy"
    {}
    break;

  case 2117:
#line 10731 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            if (lex->sphead)
            {
              /*
                If we are in SP we want have own LEX for each assignment.
                This is mostly because it is hard for several sp_instr_set
                and sp_instr_set_trigger instructions share one LEX.
                (Well, it is theoretically possible but adds some extra
                overhead on preparation for execution stage and IMO less
                robust).

                QQ: May be we should simply prohibit group assignments in SP?
              */
              lex->sphead->reset_lex(thd);
              lex= thd->lex;

              /* Set new LEX as if we at start of set rule. */
              lex->sql_command= SQLCOM_SET_OPTION;
              mysql_init_select(lex);
              lex->option_type=OPT_SESSION;
              lex->var_list.empty();
              lex->one_shot_set= 0;
              lex->sphead->m_tmp_query= lip->get_tok_start();
            }
          }
    break;

  case 2118:
#line 10761 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            if (lex->sphead)
            {
              sp_head *sp= lex->sphead;

              if (!lex->var_list.is_empty())
              {
                /*
                  We have assignment to user or system variable or
                  option setting, so we should construct sp_instr_stmt
                  for it.
                */
                LEX_STRING qbuff;
                sp_instr_stmt *i;

                if (!(i= new sp_instr_stmt(sp->instructions(), lex->spcont,
                                           lex)))
                  MYSQL_YYABORT;

                /*
                  Extract the query statement from the tokenizer.  The
                  end is either lip->ptr, if there was no lookahead,
                  lip->tok_end otherwise.
                */
                if (yychar == YYEMPTY)
                  qbuff.length= lip->get_ptr() - sp->m_tmp_query;
                else
                  qbuff.length= lip->get_tok_end() - sp->m_tmp_query;

                if (!(qbuff.str= (char*) alloc_root(thd->mem_root,
                                                    qbuff.length + 5)))
                  MYSQL_YYABORT;

                strmake(strmake(qbuff.str, "SET ", 4), sp->m_tmp_query,
                        qbuff.length);
                qbuff.length+= 4;
                i->m_query= qbuff;
                sp->add_instr(i);
              }
              lex->sphead->restore_lex(thd);
            }
          }
    break;

  case 2119:
#line 10810 "sql_yacc.yy"
    {}
    break;

  case 2120:
#line 10811 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2121:
#line 10812 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2122:
#line 10813 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2123:
#line 10817 "sql_yacc.yy"
    { (yyval.num)= OPT_DEFAULT; }
    break;

  case 2124:
#line 10818 "sql_yacc.yy"
    { Lex->one_shot_set= 1; (yyval.num)= OPT_SESSION; }
    break;

  case 2125:
#line 10822 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2126:
#line 10823 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2127:
#line 10824 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2128:
#line 10825 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2129:
#line 10829 "sql_yacc.yy"
    { (yyval.var_type)=OPT_DEFAULT; }
    break;

  case 2130:
#line 10830 "sql_yacc.yy"
    { (yyval.var_type)=OPT_GLOBAL; }
    break;

  case 2131:
#line 10831 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2132:
#line 10832 "sql_yacc.yy"
    { (yyval.var_type)=OPT_SESSION; }
    break;

  case 2135:
#line 10842 "sql_yacc.yy"
    {
            LEX *lex=Lex;

            if ((yyvsp[(2) - (4)].variable).var == trg_new_row_fake_var)
            {
              /* We are in trigger and assigning value to field of new row */
              Item *it;
              Item_trigger_field *trg_fld;
              sp_instr_set_trigger_field *sp_fld;
              LINT_INIT(sp_fld);
              if ((yyvsp[(1) - (4)].var_type))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }
              if ((yyvsp[(4) - (4)].item))
                it= (yyvsp[(4) - (4)].item);
              else
              {
                /* QQ: Shouldn't this be field's default value ? */
                it= new Item_null();
              }

              DBUG_ASSERT(lex->trg_chistics.action_time == TRG_ACTION_BEFORE &&
                          (lex->trg_chistics.event == TRG_EVENT_INSERT ||
                           lex->trg_chistics.event == TRG_EVENT_UPDATE));
              if (!(trg_fld= new Item_trigger_field(Lex->current_context(),
                                                    Item_trigger_field::NEW_ROW,
                                                    (yyvsp[(2) - (4)].variable).base_name.str,
                                                    UPDATE_ACL, FALSE)) ||
                  !(sp_fld= new sp_instr_set_trigger_field(lex->sphead->
                                                           instructions(),
                                                           lex->spcont,
                                                           trg_fld,
                                                           it, lex)))
                MYSQL_YYABORT;

              /*
                Let us add this item to list of all Item_trigger_field
                objects in trigger.
              */
              lex->trg_table_fields.link_in_list((uchar *)trg_fld,
                                                 (uchar **) &trg_fld->
                                                   next_trg_field);

              lex->sphead->add_instr(sp_fld);
            }
            else if ((yyvsp[(2) - (4)].variable).var)
            { /* System variable */
              if ((yyvsp[(1) - (4)].var_type))
                lex->option_type= (yyvsp[(1) - (4)].var_type);
              lex->var_list.push_back(new set_var(lex->option_type, (yyvsp[(2) - (4)].variable).var,
                                      &(yyvsp[(2) - (4)].variable).base_name, (yyvsp[(4) - (4)].item)));
            }
            else
            {
              /* An SP local variable */
              sp_pcontext *ctx= lex->spcont;
              sp_variable_t *spv;
              sp_instr_set *sp_set;
              Item *it;
              if ((yyvsp[(1) - (4)].var_type))
              {
                my_parse_error(ER(ER_SYNTAX_ERROR));
                MYSQL_YYABORT;
              }

              spv= ctx->find_variable(&(yyvsp[(2) - (4)].variable).base_name);

              if ((yyvsp[(4) - (4)].item))
                it= (yyvsp[(4) - (4)].item);
              else if (spv->dflt)
                it= spv->dflt;
              else
                it= new Item_null();
              sp_set= new sp_instr_set(lex->sphead->instructions(), ctx,
                                       spv->offset, it, spv->type, lex, TRUE);
              lex->sphead->add_instr(sp_set);
            }
          }
    break;

  case 2136:
#line 10923 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->option_type= (yyvsp[(1) - (5)].var_type);
            lex->var_list.push_back(new set_var(lex->option_type,
                                                find_sys_var(YYTHD, "tx_isolation"),
                                                &null_lex_str,
                                                new Item_int((int32) (yyvsp[(5) - (5)].tx_isolation))));
          }
    break;

  case 2137:
#line 10935 "sql_yacc.yy"
    {
            Lex->var_list.push_back(new set_var_user(new Item_func_set_user_var((yyvsp[(2) - (4)].lex_str),(yyvsp[(4) - (4)].item))));
          }
    break;

  case 2138:
#line 10939 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->var_list.push_back(new set_var((yyvsp[(3) - (6)].var_type), (yyvsp[(4) - (6)].variable).var, &(yyvsp[(4) - (6)].variable).base_name, (yyvsp[(6) - (6)].item)));
          }
    break;

  case 2139:
#line 10944 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            (yyvsp[(2) - (2)].charset)= (yyvsp[(2) - (2)].charset) ? (yyvsp[(2) - (2)].charset): global_system_variables.character_set_client;
            lex->var_list.push_back(new set_var_collation_client((yyvsp[(2) - (2)].charset),thd->variables.collation_database,(yyvsp[(2) - (2)].charset)));
          }
    break;

  case 2140:
#line 10951 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_pcontext *spc= lex->spcont;
            LEX_STRING names;

            names.str= (char *)"names";
            names.length= 5;
            if (spc && spc->find_variable(&names))
              my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), names.str);
            else
              my_parse_error(ER(ER_SYNTAX_ERROR));

            MYSQL_YYABORT;
          }
    break;

  case 2141:
#line 10966 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            (yyvsp[(2) - (3)].charset)= (yyvsp[(2) - (3)].charset) ? (yyvsp[(2) - (3)].charset) : global_system_variables.character_set_client;
            (yyvsp[(3) - (3)].charset)= (yyvsp[(3) - (3)].charset) ? (yyvsp[(3) - (3)].charset) : (yyvsp[(2) - (3)].charset);
            if (!my_charset_same((yyvsp[(2) - (3)].charset),(yyvsp[(3) - (3)].charset)))
            {
              my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0),
                       (yyvsp[(3) - (3)].charset)->name, (yyvsp[(2) - (3)].charset)->csname);
              MYSQL_YYABORT;
            }
            lex->var_list.push_back(new set_var_collation_client((yyvsp[(3) - (3)].charset),(yyvsp[(3) - (3)].charset),(yyvsp[(3) - (3)].charset)));
          }
    break;

  case 2142:
#line 10979 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            LEX_USER *user;
            sp_pcontext *spc= lex->spcont;
            LEX_STRING pw;

            pw.str= (char *)"password";
            pw.length= 8;
            if (spc && spc->find_variable(&pw))
            {
              my_error(ER_SP_BAD_VAR_SHADOW, MYF(0), pw.str);
              MYSQL_YYABORT;
            }
            if (!(user=(LEX_USER*) thd->alloc(sizeof(LEX_USER))))
              MYSQL_YYABORT;
            user->host=null_lex_str;
            user->user.str=thd->security_ctx->priv_user;
            thd->lex->var_list.push_back(new set_var_password(user, (yyvsp[(3) - (3)].simple_string)));
          }
    break;

  case 2143:
#line 11000 "sql_yacc.yy"
    {
            Lex->var_list.push_back(new set_var_password((yyvsp[(3) - (5)].lex_user),(yyvsp[(5) - (5)].simple_string)));
          }
    break;

  case 2144:
#line 11007 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            sp_pcontext *spc= lex->spcont;
            sp_variable_t *spv;

            /* We have to lookup here since local vars can shadow sysvars */
            if (!spc || !(spv = spc->find_variable(&(yyvsp[(1) - (1)].lex_str))))
            {
              /* Not an SP local variable */
              sys_var *tmp=find_sys_var(thd, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
              if (!tmp)
                MYSQL_YYABORT;
              (yyval.variable).var= tmp;
              (yyval.variable).base_name= null_lex_str;
              if (spc && tmp == &sys_autocommit)
              {
                /*
                  We don't allow setting AUTOCOMMIT from a stored function
                  or trigger.
                */
                lex->sphead->m_flags|= sp_head::HAS_SET_AUTOCOMMIT_STMT;
              }
            }
            else
            {
              /* An SP local variable */
              (yyval.variable).var= NULL;
              (yyval.variable).base_name= (yyvsp[(1) - (1)].lex_str);
            }
          }
    break;

  case 2145:
#line 11039 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (check_reserved_words(&(yyvsp[(1) - (3)].lex_str)))
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            if (lex->sphead && lex->sphead->m_type == TYPE_ENUM_TRIGGER &&
                (!my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "NEW") || 
                 !my_strcasecmp(system_charset_info, (yyvsp[(1) - (3)].lex_str).str, "OLD")))
            {
              if ((yyvsp[(1) - (3)].lex_str).str[0]=='O' || (yyvsp[(1) - (3)].lex_str).str[0]=='o')
              {
                my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "OLD", "");
                MYSQL_YYABORT;
              }
              if (lex->trg_chistics.event == TRG_EVENT_DELETE)
              {
                my_error(ER_TRG_NO_SUCH_ROW_IN_TRG, MYF(0),
                         "NEW", "on DELETE");
                MYSQL_YYABORT;
              }
              if (lex->trg_chistics.action_time == TRG_ACTION_AFTER)
              {
                my_error(ER_TRG_CANT_CHANGE_ROW, MYF(0), "NEW", "after ");
                MYSQL_YYABORT;
              }
              /* This special combination will denote field of NEW row */
              (yyval.variable).var= trg_new_row_fake_var;
              (yyval.variable).base_name= (yyvsp[(3) - (3)].lex_str);
            }
            else
            {
              sys_var *tmp=find_sys_var(YYTHD, (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length);
              if (!tmp)
                MYSQL_YYABORT;
              if (!tmp->is_struct())
                my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
              (yyval.variable).var= tmp;
              (yyval.variable).base_name= (yyvsp[(1) - (3)].lex_str);
            }
          }
    break;

  case 2146:
#line 11082 "sql_yacc.yy"
    {
            sys_var *tmp=find_sys_var(YYTHD, (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length);
            if (!tmp)
              MYSQL_YYABORT;
            if (!tmp->is_struct())
              my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[(3) - (3)].lex_str).str);
            (yyval.variable).var= tmp;
            (yyval.variable).base_name.str=    (char*) "default";
            (yyval.variable).base_name.length= 7;
          }
    break;

  case 2147:
#line 11095 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; }
    break;

  case 2148:
#line 11096 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_READ_COMMITTED; }
    break;

  case 2149:
#line 11097 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_REPEATABLE_READ; }
    break;

  case 2150:
#line 11098 "sql_yacc.yy"
    { (yyval.tx_isolation)= ISO_SERIALIZABLE; }
    break;

  case 2151:
#line 11102 "sql_yacc.yy"
    { (yyval.simple_string)=(yyvsp[(1) - (1)].lex_str).str;}
    break;

  case 2152:
#line 11104 "sql_yacc.yy"
    {
            (yyval.simple_string)= (yyvsp[(3) - (4)].lex_str).length ? YYTHD->variables.old_passwords ?
              Item_func_old_password::alloc(YYTHD, (yyvsp[(3) - (4)].lex_str).str) :
              Item_func_password::alloc(YYTHD, (yyvsp[(3) - (4)].lex_str).str) :
              (yyvsp[(3) - (4)].lex_str).str;
          }
    break;

  case 2153:
#line 11111 "sql_yacc.yy"
    {
            (yyval.simple_string)= (yyvsp[(3) - (4)].lex_str).length ? Item_func_old_password::alloc(YYTHD, (yyvsp[(3) - (4)].lex_str).str) :
              (yyvsp[(3) - (4)].lex_str).str;
          }
    break;

  case 2154:
#line 11119 "sql_yacc.yy"
    { (yyval.item)=(yyvsp[(1) - (1)].item); }
    break;

  case 2155:
#line 11120 "sql_yacc.yy"
    { (yyval.item)=0; }
    break;

  case 2156:
#line 11121 "sql_yacc.yy"
    { (yyval.item)=new Item_string("ON",  2, system_charset_info); }
    break;

  case 2157:
#line 11122 "sql_yacc.yy"
    { (yyval.item)=new Item_string("ALL", 3, system_charset_info); }
    break;

  case 2158:
#line 11123 "sql_yacc.yy"
    { (yyval.item)=new Item_string("binary", 6, system_charset_info); }
    break;

  case 2159:
#line 11130 "sql_yacc.yy"
    {
            /*
              Transactional locks can be taken only if all requested locks
              are transactional. Initialize lex->lock_transactional as
              TRUE. Any non-transactional lock request turns this to FALSE.
              Table specific variables keep track of the locking method
              requested for the table. This is used to warn about a
              changed locking method later.
            */
            Lex->lock_transactional= TRUE;
          }
    break;

  case 2160:
#line 11142 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "LOCK");
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_LOCK_TABLES;
          }
    break;

  case 2161:
#line 11153 "sql_yacc.yy"
    {}
    break;

  case 2166:
#line 11168 "sql_yacc.yy"
    {
          TABLE_LIST *tlist;
          if (!(tlist= Select->add_table_to_list(YYTHD, (yyvsp[(1) - (3)].table), (yyvsp[(2) - (3)].lex_str_ptr), 0,
                                                 (yyvsp[(3) - (3)].table_lock_info).lock_type)))
            MYSQL_YYABORT; /* purecov: inspected */
          tlist->lock_timeout= (yyvsp[(3) - (3)].table_lock_info).lock_timeout;
          /* Store the requested lock method for later warning. */
          tlist->lock_transactional= (yyvsp[(3) - (3)].table_lock_info).lock_transactional;
          /* Compute the resulting lock method for all tables. */
          if (!(yyvsp[(3) - (3)].table_lock_info).lock_transactional)
            Lex->lock_transactional= FALSE;
        }
    break;

  case 2167:
#line 11184 "sql_yacc.yy"
    {
          (yyval.table_lock_info).lock_type=          TL_READ_NO_INSERT;
          (yyval.table_lock_info).lock_timeout=       -1;
          (yyval.table_lock_info).lock_transactional= FALSE;
        }
    break;

  case 2168:
#line 11190 "sql_yacc.yy"
    {
          (yyval.table_lock_info).lock_type=          TL_WRITE_DEFAULT;
          (yyval.table_lock_info).lock_timeout=       -1;
          (yyval.table_lock_info).lock_transactional= FALSE;
        }
    break;

  case 2169:
#line 11196 "sql_yacc.yy"
    {
          (yyval.table_lock_info).lock_type=          TL_WRITE_LOW_PRIORITY;
          (yyval.table_lock_info).lock_timeout=       -1;
          (yyval.table_lock_info).lock_transactional= FALSE;
        }
    break;

  case 2170:
#line 11202 "sql_yacc.yy"
    {
          (yyval.table_lock_info).lock_type=          TL_READ;
          (yyval.table_lock_info).lock_timeout=       -1;
          (yyval.table_lock_info).lock_transactional= FALSE;
        }
    break;

  case 2171:
#line 11208 "sql_yacc.yy"
    {
          (yyval.table_lock_info).lock_type=          (yyvsp[(2) - (4)].lock_type);
          (yyval.table_lock_info).lock_timeout=       (yyvsp[(4) - (4)].num);
          (yyval.table_lock_info).lock_transactional= TRUE;
        }
    break;

  case 2172:
#line 11217 "sql_yacc.yy"
    { (yyval.lock_type)= TL_READ_NO_INSERT; }
    break;

  case 2173:
#line 11218 "sql_yacc.yy"
    { (yyval.lock_type)= TL_WRITE_DEFAULT; }
    break;

  case 2174:
#line 11222 "sql_yacc.yy"
    { (yyval.num)= -1; }
    break;

  case 2175:
#line 11223 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 2176:
#line 11237 "sql_yacc.yy"
    {
            LEX *lex= Lex;

            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "UNLOCK");
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_UNLOCK_TABLES;
          }
    break;

  case 2177:
#line 11248 "sql_yacc.yy"
    {}
    break;

  case 2178:
#line 11257 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_HA_OPEN;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (4)].table), (yyvsp[(4) - (4)].lex_str_ptr), 0))
              MYSQL_YYABORT;
          }
    break;

  case 2179:
#line 11269 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->sql_command = SQLCOM_HA_CLOSE;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (3)].table), 0, 0))
              MYSQL_YYABORT;
          }
    break;

  case 2180:
#line 11281 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->sphead)
            {
              my_error(ER_SP_BADSTATEMENT, MYF(0), "HANDLER");
              MYSQL_YYABORT;
            }
            lex->expr_allows_subselect= FALSE;
            lex->sql_command = SQLCOM_HA_READ;
            lex->ha_rkey_mode= HA_READ_KEY_EXACT; /* Avoid purify warnings */
            lex->current_select->select_limit= new Item_int((int32) 1);
            lex->current_select->offset_limit= 0;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(2) - (3)].table), 0, 0))
              MYSQL_YYABORT;
          }
    break;

  case 2181:
#line 11297 "sql_yacc.yy"
    {
            Lex->expr_allows_subselect= TRUE;
          }
    break;

  case 2182:
#line 11303 "sql_yacc.yy"
    { Lex->ident= null_lex_str; }
    break;

  case 2183:
#line 11304 "sql_yacc.yy"
    { Lex->ident= (yyvsp[(1) - (2)].lex_str); }
    break;

  case 2184:
#line 11308 "sql_yacc.yy"
    { Lex->ha_read_mode = RFIRST; }
    break;

  case 2185:
#line 11309 "sql_yacc.yy"
    { Lex->ha_read_mode = RNEXT;  }
    break;

  case 2186:
#line 11313 "sql_yacc.yy"
    { Lex->ha_read_mode = RFIRST; }
    break;

  case 2187:
#line 11314 "sql_yacc.yy"
    { Lex->ha_read_mode = RNEXT;  }
    break;

  case 2188:
#line 11315 "sql_yacc.yy"
    { Lex->ha_read_mode = RPREV;  }
    break;

  case 2189:
#line 11316 "sql_yacc.yy"
    { Lex->ha_read_mode = RLAST;  }
    break;

  case 2190:
#line 11318 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->ha_read_mode = RKEY;
            lex->ha_rkey_mode=(yyvsp[(1) - (1)].ha_rkey_mode);
            if (!(lex->insert_list = new List_item))
              MYSQL_YYABORT;
          }
    break;

  case 2191:
#line 11326 "sql_yacc.yy"
    {}
    break;

  case 2192:
#line 11330 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT;   }
    break;

  case 2193:
#line 11331 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; }
    break;

  case 2194:
#line 11332 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; }
    break;

  case 2195:
#line 11333 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY;   }
    break;

  case 2196:
#line 11334 "sql_yacc.yy"
    { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY;  }
    break;

  case 2197:
#line 11341 "sql_yacc.yy"
    {}
    break;

  case 2198:
#line 11346 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= 0;
          }
    break;

  case 2199:
#line 11352 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= TYPE_ENUM_FUNCTION;
          }
    break;

  case 2200:
#line 11363 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_REVOKE;
            lex->type= TYPE_ENUM_PROCEDURE;
          }
    break;

  case 2201:
#line 11374 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_REVOKE_ALL;
          }
    break;

  case 2202:
#line 11381 "sql_yacc.yy"
    {}
    break;

  case 2203:
#line 11387 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_GRANT;
            lex->type= 0;
          }
    break;

  case 2204:
#line 11394 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_GRANT;
            lex->type= TYPE_ENUM_FUNCTION;
          }
    break;

  case 2205:
#line 11406 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            if (lex->columns.elements)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            lex->sql_command= SQLCOM_GRANT;
            lex->type= TYPE_ENUM_PROCEDURE;
          }
    break;

  case 2208:
#line 11424 "sql_yacc.yy"
    {}
    break;

  case 2209:
#line 11426 "sql_yacc.yy"
    { 
            Lex->all_privileges= 1; 
            Lex->grant= GLOBAL_ACLS;
          }
    break;

  case 2214:
#line 11444 "sql_yacc.yy"
    { Lex->which_columns = SELECT_ACL;}
    break;

  case 2215:
#line 11445 "sql_yacc.yy"
    {}
    break;

  case 2216:
#line 11447 "sql_yacc.yy"
    { Lex->which_columns = INSERT_ACL;}
    break;

  case 2217:
#line 11448 "sql_yacc.yy"
    {}
    break;

  case 2218:
#line 11450 "sql_yacc.yy"
    { Lex->which_columns = UPDATE_ACL; }
    break;

  case 2219:
#line 11451 "sql_yacc.yy"
    {}
    break;

  case 2220:
#line 11453 "sql_yacc.yy"
    { Lex->which_columns = REFERENCES_ACL;}
    break;

  case 2221:
#line 11454 "sql_yacc.yy"
    {}
    break;

  case 2222:
#line 11455 "sql_yacc.yy"
    { Lex->grant |= DELETE_ACL;}
    break;

  case 2223:
#line 11456 "sql_yacc.yy"
    {}
    break;

  case 2224:
#line 11457 "sql_yacc.yy"
    { Lex->grant |= INDEX_ACL;}
    break;

  case 2225:
#line 11458 "sql_yacc.yy"
    { Lex->grant |= ALTER_ACL;}
    break;

  case 2226:
#line 11459 "sql_yacc.yy"
    { Lex->grant |= CREATE_ACL;}
    break;

  case 2227:
#line 11460 "sql_yacc.yy"
    { Lex->grant |= DROP_ACL;}
    break;

  case 2228:
#line 11461 "sql_yacc.yy"
    { Lex->grant |= EXECUTE_ACL;}
    break;

  case 2229:
#line 11462 "sql_yacc.yy"
    { Lex->grant |= RELOAD_ACL;}
    break;

  case 2230:
#line 11463 "sql_yacc.yy"
    { Lex->grant |= SHUTDOWN_ACL;}
    break;

  case 2231:
#line 11464 "sql_yacc.yy"
    { Lex->grant |= PROCESS_ACL;}
    break;

  case 2232:
#line 11465 "sql_yacc.yy"
    { Lex->grant |= FILE_ACL;}
    break;

  case 2233:
#line 11466 "sql_yacc.yy"
    { Lex->grant |= GRANT_ACL;}
    break;

  case 2234:
#line 11467 "sql_yacc.yy"
    { Lex->grant |= SHOW_DB_ACL;}
    break;

  case 2235:
#line 11468 "sql_yacc.yy"
    { Lex->grant |= SUPER_ACL;}
    break;

  case 2236:
#line 11469 "sql_yacc.yy"
    { Lex->grant |= CREATE_TMP_ACL;}
    break;

  case 2237:
#line 11470 "sql_yacc.yy"
    { Lex->grant |= LOCK_TABLES_ACL; }
    break;

  case 2238:
#line 11471 "sql_yacc.yy"
    { Lex->grant |= REPL_SLAVE_ACL; }
    break;

  case 2239:
#line 11472 "sql_yacc.yy"
    { Lex->grant |= REPL_CLIENT_ACL; }
    break;

  case 2240:
#line 11473 "sql_yacc.yy"
    { Lex->grant |= CREATE_VIEW_ACL; }
    break;

  case 2241:
#line 11474 "sql_yacc.yy"
    { Lex->grant |= SHOW_VIEW_ACL; }
    break;

  case 2242:
#line 11475 "sql_yacc.yy"
    { Lex->grant |= CREATE_PROC_ACL; }
    break;

  case 2243:
#line 11476 "sql_yacc.yy"
    { Lex->grant |= ALTER_PROC_ACL; }
    break;

  case 2244:
#line 11477 "sql_yacc.yy"
    { Lex->grant |= CREATE_USER_ACL; }
    break;

  case 2245:
#line 11478 "sql_yacc.yy"
    { Lex->grant |= EVENT_ACL;}
    break;

  case 2246:
#line 11479 "sql_yacc.yy"
    { Lex->grant |= TRIGGER_ACL; }
    break;

  case 2247:
#line 11483 "sql_yacc.yy"
    {}
    break;

  case 2248:
#line 11484 "sql_yacc.yy"
    {}
    break;

  case 2251:
#line 11494 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->x509_subject)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "SUBJECT");
              MYSQL_YYABORT;
            }
            lex->x509_subject=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2252:
#line 11504 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->x509_issuer)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "ISSUER");
              MYSQL_YYABORT;
            }
            lex->x509_issuer=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2253:
#line 11514 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->ssl_cipher)
            {
              my_error(ER_DUP_ARGUMENT, MYF(0), "CIPHER");
              MYSQL_YYABORT;
            }
            lex->ssl_cipher=(yyvsp[(2) - (2)].lex_str).str;
          }
    break;

  case 2254:
#line 11527 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            size_t dummy;
            if (lex->copy_db_to(&lex->current_select->db, &dummy))
              MYSQL_YYABORT;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant = DB_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2255:
#line 11542 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->current_select->db = (yyvsp[(1) - (3)].lex_str).str;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant = DB_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2256:
#line 11555 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->current_select->db = NULL;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant= GLOBAL_ACLS & ~GRANT_ACL;
            else if (lex->columns.elements)
            {
              my_message(ER_ILLEGAL_GRANT_FOR_TABLE,
                         ER(ER_ILLEGAL_GRANT_FOR_TABLE), MYF(0));
              MYSQL_YYABORT;
            }
          }
    break;

  case 2257:
#line 11568 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(1) - (1)].table),NULL,
                                                        TL_OPTION_UPDATING))
              MYSQL_YYABORT;
            if (lex->grant == GLOBAL_ACLS)
              lex->grant =  TABLE_ACLS & ~GRANT_ACL;
          }
    break;

  case 2258:
#line 11580 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (1)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2259:
#line 11585 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2260:
#line 11593 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(1) - (1)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2261:
#line 11598 "sql_yacc.yy"
    {
            if (Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
              MYSQL_YYABORT;
          }
    break;

  case 2262:
#line 11606 "sql_yacc.yy"
    {
            (yyval.lex_user)=(yyvsp[(1) - (4)].lex_user); (yyvsp[(1) - (4)].lex_user)->password=(yyvsp[(4) - (4)].lex_str);
            if ((yyvsp[(4) - (4)].lex_str).length)
            {
              if (YYTHD->variables.old_passwords)
              {
                char *buff= 
                  (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH_323+1);
                if (buff)
                  make_scrambled_password_323(buff, (yyvsp[(4) - (4)].lex_str).str);
                (yyvsp[(1) - (4)].lex_user)->password.str= buff;
                (yyvsp[(1) - (4)].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH_323;
              }
              else
              {
                char *buff= 
                  (char *) YYTHD->alloc(SCRAMBLED_PASSWORD_CHAR_LENGTH+1);
                if (buff)
                  make_scrambled_password(buff, (yyvsp[(4) - (4)].lex_str).str);
                (yyvsp[(1) - (4)].lex_user)->password.str= buff;
                (yyvsp[(1) - (4)].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH;
              }
            }
          }
    break;

  case 2263:
#line 11631 "sql_yacc.yy"
    { (yyval.lex_user)= (yyvsp[(1) - (5)].lex_user); (yyvsp[(1) - (5)].lex_user)->password= (yyvsp[(5) - (5)].lex_str); }
    break;

  case 2264:
#line 11633 "sql_yacc.yy"
    { (yyval.lex_user)= (yyvsp[(1) - (1)].lex_user); (yyvsp[(1) - (1)].lex_user)->password= null_lex_str; }
    break;

  case 2265:
#line 11638 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->grant |= lex->which_columns;
          }
    break;

  case 2269:
#line 11652 "sql_yacc.yy"
    {
            String *new_str = new (YYTHD->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,(yyvsp[(1) - (1)].lex_str).length,system_charset_info);
            List_iterator <LEX_COLUMN> iter(Lex->columns);
            class LEX_COLUMN *point;
            LEX *lex=Lex;
            while ((point=iter++))
            {
              if (!my_strcasecmp(system_charset_info,
                                 point->column.ptr(), new_str->ptr()))
                break;
            }
            lex->grant_tot_col|= lex->which_columns;
            if (point)
              point->rights |= lex->which_columns;
            else
              lex->columns.push_back(new LEX_COLUMN (*new_str,lex->which_columns));
          }
    break;

  case 2271:
#line 11674 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_SPECIFIED;
          }
    break;

  case 2272:
#line 11678 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_ANY;
          }
    break;

  case 2273:
#line 11682 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_X509;
          }
    break;

  case 2274:
#line 11686 "sql_yacc.yy"
    {
            Lex->ssl_type=SSL_TYPE_NONE;
          }
    break;

  case 2275:
#line 11692 "sql_yacc.yy"
    {}
    break;

  case 2277:
#line 11697 "sql_yacc.yy"
    {}
    break;

  case 2278:
#line 11698 "sql_yacc.yy"
    {}
    break;

  case 2279:
#line 11702 "sql_yacc.yy"
    { Lex->grant |= GRANT_ACL;}
    break;

  case 2280:
#line 11704 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.questions=(yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR;
          }
    break;

  case 2281:
#line 11710 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.updates=(yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR;
          }
    break;

  case 2282:
#line 11716 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.conn_per_hour= (yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR;
          }
    break;

  case 2283:
#line 11722 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->mqh.user_conn= (yyvsp[(2) - (2)].ulong_num);
            lex->mqh.specified_limits|= USER_RESOURCES::USER_CONNECTIONS;
          }
    break;

  case 2284:
#line 11731 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command = SQLCOM_BEGIN;
            lex->start_transaction_opt= 0;
          }
    break;

  case 2285:
#line 11736 "sql_yacc.yy"
    {}
    break;

  case 2286:
#line 11740 "sql_yacc.yy"
    {}
    break;

  case 2287:
#line 11741 "sql_yacc.yy"
    {}
    break;

  case 2288:
#line 11746 "sql_yacc.yy"
    { (yyval.num)= (YYTHD->variables.completion_type == 1); }
    break;

  case 2289:
#line 11747 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2290:
#line 11748 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2291:
#line 11753 "sql_yacc.yy"
    { (yyval.num)= (YYTHD->variables.completion_type == 2); }
    break;

  case 2292:
#line 11754 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2293:
#line 11755 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2294:
#line 11759 "sql_yacc.yy"
    {}
    break;

  case 2295:
#line 11760 "sql_yacc.yy"
    {}
    break;

  case 2296:
#line 11765 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_COMMIT;
            lex->tx_chain= (yyvsp[(3) - (4)].num); 
            lex->tx_release= (yyvsp[(4) - (4)].num);
          }
    break;

  case 2297:
#line 11775 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ROLLBACK;
            lex->tx_chain= (yyvsp[(3) - (4)].num); 
            lex->tx_release= (yyvsp[(4) - (4)].num);
          }
    break;

  case 2298:
#line 11783 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT;
            lex->ident= (yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 2299:
#line 11792 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_SAVEPOINT;
            lex->ident= (yyvsp[(2) - (2)].lex_str);
          }
    break;

  case 2300:
#line 11801 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->sql_command= SQLCOM_RELEASE_SAVEPOINT;
            lex->ident= (yyvsp[(3) - (3)].lex_str);
          }
    break;

  case 2301:
#line 11814 "sql_yacc.yy"
    {}
    break;

  case 2303:
#line 11820 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (lex->result)
            {
              /* Only the last SELECT can have  INTO...... */
              my_error(ER_WRONG_USAGE, MYF(0), "UNION", "INTO");
              MYSQL_YYABORT;
            }
            if (lex->current_select->linkage == GLOBAL_OPTIONS_TYPE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /* This counter shouldn't be incremented for UNION parts */
            Lex->nest_level--;
            if (mysql_new_select(lex, 0))
              MYSQL_YYABORT;
            mysql_init_select(lex);
            lex->current_select->linkage=UNION_TYPE;
            if ((yyvsp[(2) - (2)].num)) /* UNION DISTINCT - remember position */
              lex->current_select->master_unit()->union_distinct=
                lex->current_select;
          }
    break;

  case 2304:
#line 11844 "sql_yacc.yy"
    {
            /*
              Remove from the name resolution context stack the context of the
              last select in the union.
            */
            Lex->pop_context();
          }
    break;

  case 2305:
#line 11854 "sql_yacc.yy"
    { (yyval.num)= 0; }
    break;

  case 2306:
#line 11855 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 2307:
#line 11856 "sql_yacc.yy"
    { (yyval.num)= 1; }
    break;

  case 2308:
#line 11860 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE);
            SELECT_LEX *sel= lex->current_select;
            SELECT_LEX_UNIT *unit= sel->master_unit();
            SELECT_LEX *fake= unit->fake_select_lex;
            if (fake)
            {
              unit->global_parameters= fake;
              fake->no_table_names_allowed= 1;
              lex->current_select= fake;
            }
            thd->where= "global ORDER clause";
          }
    break;

  case 2309:
#line 11876 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            thd->lex->current_select->no_table_names_allowed= 0;
            thd->where= "";
          }
    break;

  case 2312:
#line 11889 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2313:
#line 11890 "sql_yacc.yy"
    { (yyval.num)=1; }
    break;

  case 2314:
#line 11891 "sql_yacc.yy"
    { (yyval.num)=0; }
    break;

  case 2315:
#line 11896 "sql_yacc.yy"
    {
            (yyval.select_lex)= (yyvsp[(3) - (4)].select_lex);
          }
    break;

  case 2316:
#line 11900 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            /*
              note that a local variable can't be used for
              $3 as it's used in local variable construction
              and some compilers can't guarnatee the order
              in which the local variables are initialized.
            */
            List_iterator<Item> it((yyvsp[(3) - (4)].select_lex)->item_list);
            Item *item;
            /*
              we must fill the items list for the "derived table".
            */
            while ((item= it++))
              add_item_to_list(thd, item);
          }
    break;

  case 2317:
#line 11916 "sql_yacc.yy"
    { (yyval.select_lex)= (yyvsp[(3) - (7)].select_lex); }
    break;

  case 2318:
#line 11921 "sql_yacc.yy"
    {
            (yyval.select_lex)= Lex->current_select->master_unit()->first_select();
          }
    break;

  case 2319:
#line 11927 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            if (!lex->expr_allows_subselect ||
               lex->sql_command == (int)SQLCOM_PURGE)
            {
              my_parse_error(ER(ER_SYNTAX_ERROR));
              MYSQL_YYABORT;
            }
            /* 
              we are making a "derived table" for the parenthesis
              as we need to have a lex level to fit the union 
              after the parenthesis, e.g. 
              (SELECT .. ) UNION ...  becomes 
              SELECT * FROM ((SELECT ...) UNION ...)
            */
            if (mysql_new_select(Lex, 1))
              MYSQL_YYABORT;
          }
    break;

  case 2320:
#line 11948 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->pop_context();
            SELECT_LEX *child= lex->current_select;
            lex->current_select = lex->current_select->return_after_parsing();
            lex->nest_level--;
            lex->current_select->n_child_sum_items += child->n_sum_items;
            /*
              A subselect can add fields to an outer select. Reserve space for
              them.
            */
            lex->current_select->select_n_where_fields+=
            child->select_n_where_fields;
          }
    break;

  case 2321:
#line 11972 "sql_yacc.yy"
    {}
    break;

  case 2322:
#line 11974 "sql_yacc.yy"
    {}
    break;

  case 2323:
#line 11979 "sql_yacc.yy"
    {}
    break;

  case 2324:
#line 11981 "sql_yacc.yy"
    {}
    break;

  case 2325:
#line 11983 "sql_yacc.yy"
    {}
    break;

  case 2326:
#line 11985 "sql_yacc.yy"
    {}
    break;

  case 2327:
#line 11996 "sql_yacc.yy"
    {
            /*
              We have to distinguish missing DEFINER-clause from case when
              CURRENT_USER specified as definer explicitly in order to properly
              handle CREATE TRIGGER statements which come to replication thread
              from older master servers (i.e. to create non-suid trigger in this
              case).
            */
            YYTHD->lex->definer= 0;
          }
    break;

  case 2328:
#line 12007 "sql_yacc.yy"
    {
            YYTHD->lex->definer= get_current_user(YYTHD, (yyvsp[(3) - (3)].lex_user));
          }
    break;

  case 2329:
#line 12020 "sql_yacc.yy"
    {}
    break;

  case 2330:
#line 12022 "sql_yacc.yy"
    {}
    break;

  case 2331:
#line 12024 "sql_yacc.yy"
    {}
    break;

  case 2332:
#line 12029 "sql_yacc.yy"
    { Lex->create_view_mode= VIEW_CREATE_OR_REPLACE; }
    break;

  case 2333:
#line 12034 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED; }
    break;

  case 2334:
#line 12036 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; }
    break;

  case 2335:
#line 12038 "sql_yacc.yy"
    { Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; }
    break;

  case 2336:
#line 12043 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_DEFAULT; }
    break;

  case 2337:
#line 12045 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_DEFINER; }
    break;

  case 2338:
#line 12047 "sql_yacc.yy"
    { Lex->create_view_suid= VIEW_SUID_INVOKER; }
    break;

  case 2339:
#line 12052 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            lex->sql_command= SQLCOM_CREATE_VIEW;
            /* first table in list is target VIEW name */
            if (!lex->select_lex.add_table_to_list(thd, (yyvsp[(3) - (3)].table), NULL, TL_OPTION_UPDATING))
              MYSQL_YYABORT;
          }
    break;

  case 2340:
#line 12061 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            Lex_input_stream *lip= thd->m_lip;

            lip->body_utf8_start(thd, lip->get_cpp_ptr());
          }
    break;

  case 2341:
#line 12068 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            lip->body_utf8_append(lip->get_cpp_ptr());

            lex->view_body_utf8.str= thd->strmake(lip->get_body_utf8_str(),
                                                  lip->get_body_utf8_length());
            lex->view_body_utf8.length= lip->get_body_utf8_length();

            trim_whitespace(&my_charset_utf8_general_ci, &lex->view_body_utf8);
          }
    break;

  case 2342:
#line 12085 "sql_yacc.yy"
    {}
    break;

  case 2344:
#line 12091 "sql_yacc.yy"
    {
              Lex->view_list.push_back((LEX_STRING*)
              sql_memdup(&(yyvsp[(1) - (1)].lex_str), sizeof(LEX_STRING)));
            }
    break;

  case 2345:
#line 12096 "sql_yacc.yy"
    {
              Lex->view_list.push_back((LEX_STRING*)
              sql_memdup(&(yyvsp[(3) - (3)].lex_str), sizeof(LEX_STRING)));
            }
    break;

  case 2346:
#line 12103 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= Lex;
            Lex_input_stream *lip= thd->m_lip;
            lex->parsing_options.allows_variable= FALSE;
            lex->parsing_options.allows_select_into= FALSE;
            lex->parsing_options.allows_select_procedure= FALSE;
            lex->parsing_options.allows_derived= FALSE;
            lex->create_view_select_start= lip->get_cpp_ptr();
          }
    break;

  case 2347:
#line 12114 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= Lex;
            Lex_input_stream *lip= thd->m_lip;
            lex->parsing_options.allows_variable= TRUE;
            lex->parsing_options.allows_select_into= TRUE;
            lex->parsing_options.allows_select_procedure= TRUE;
            lex->parsing_options.allows_derived= TRUE;
            lex->create_view_select_end= lip->get_cpp_ptr();
          }
    break;

  case 2350:
#line 12133 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_NONE; }
    break;

  case 2351:
#line 12135 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_CASCADED; }
    break;

  case 2352:
#line 12137 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_CASCADED; }
    break;

  case 2353:
#line 12139 "sql_yacc.yy"
    { Lex->create_view_check= VIEW_CHECK_LOCAL; }
    break;

  case 2354:
#line 12156 "sql_yacc.yy"
    { /* $8 */
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;
            lex->raw_trg_on_table_name_begin= lip->get_tok_start();
          }
    break;

  case 2355:
#line 12165 "sql_yacc.yy"
    { /* $12 */
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;
            lex->raw_trg_on_table_name_end= lip->get_tok_start();
          }
    break;

  case 2356:
#line 12173 "sql_yacc.yy"
    { /* $15 */
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;
            sp_head *sp;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "TRIGGER");
              MYSQL_YYABORT;
            }

            if (!(sp= new sp_head()))
              MYSQL_YYABORT;
            sp->reset_thd_mem_root(thd);
            sp->init(lex);
            sp->m_type= TYPE_ENUM_TRIGGER;
            sp->init_sp_name(thd, (yyvsp[(3) - (14)].spname));
            lex->stmt_definition_begin= (yyvsp[(2) - (14)].simple_string);
            lex->ident.str= (yyvsp[(7) - (14)].simple_string);
            lex->ident.length= (yyvsp[(11) - (14)].simple_string) - (yyvsp[(7) - (14)].simple_string);

            lex->sphead= sp;
            lex->spname= (yyvsp[(3) - (14)].spname);
            /*
              We have to turn of CLIENT_MULTI_QUERIES while parsing a
              stored procedure, otherwise yylex will chop it into pieces
              at each ';'.
            */
            (yyval.ulong_num)= thd->client_capabilities & CLIENT_MULTI_QUERIES;
            thd->client_capabilities &= ~CLIENT_MULTI_QUERIES;

            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, lip->get_cpp_ptr());
          }
    break;

  case 2357:
#line 12210 "sql_yacc.yy"
    { /* $17 */
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            lex->sql_command= SQLCOM_CREATE_TRIGGER;
            sp->set_stmt_end(YYTHD);
            /* Restore flag if it was cleared above */

            YYTHD->client_capabilities |= (yyvsp[(15) - (16)].ulong_num);
            sp->restore_thd_mem_root(YYTHD);

            if (sp->is_not_allowed_in_function("trigger"))
              MYSQL_YYABORT;

            /*
              We have to do it after parsing trigger body, because some of
              sp_proc_stmt alternatives are not saving/restoring LEX, so
              lex->query_tables can be wiped out.
            */
            if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[(9) - (16)].table),
                                                   (LEX_STRING*) 0,
                                                   TL_OPTION_UPDATING,
                                                   TL_IGNORE))
              MYSQL_YYABORT;
          }
    break;

  case 2358:
#line 12245 "sql_yacc.yy"
    {
            LEX *lex=Lex;
            lex->udf.type= (yyvsp[(1) - (4)].udf_type);
            lex->stmt_definition_begin= (yyvsp[(2) - (4)].simple_string);
            lex->spname= (yyvsp[(4) - (4)].spname);
          }
    break;

  case 2359:
#line 12252 "sql_yacc.yy"
    {}
    break;

  case 2360:
#line 12254 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp;

            if (lex->sphead)
            {
              my_error(ER_SP_NO_RECURSIVE_CREATE, MYF(0), "PROCEDURE");
              MYSQL_YYABORT;
            }

            lex->stmt_definition_begin= (yyvsp[(2) - (3)].simple_string);

            /* Order is important here: new - reset - init */
            sp= new sp_head();
            sp->reset_thd_mem_root(YYTHD);
            sp->init(lex);
            sp->m_type= TYPE_ENUM_PROCEDURE;
            sp->init_sp_name(YYTHD, (yyvsp[(3) - (3)].spname));

            lex->sphead= sp;
            /*
             * We have to turn of CLIENT_MULTI_QUERIES while parsing a
             * stored procedure, otherwise yylex will chop it into pieces
             * at each ';'.
             */
            (yyval.ulong_num)= YYTHD->client_capabilities & CLIENT_MULTI_QUERIES;
            YYTHD->client_capabilities &= (~CLIENT_MULTI_QUERIES);
          }
    break;

  case 2361:
#line 12283 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;
            const char* tmp_param_begin;

            tmp_param_begin= lip->get_cpp_tok_start();
            tmp_param_begin++;
            lex->sphead->m_param_begin= tmp_param_begin;
          }
    break;

  case 2362:
#line 12295 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            lex->sphead->m_param_end= lip->get_cpp_tok_start();
            bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics));
          }
    break;

  case 2363:
#line 12304 "sql_yacc.yy"
    {
            THD *thd= YYTHD;
            LEX *lex= thd->lex;
            Lex_input_stream *lip= thd->m_lip;

            lex->sphead->m_chistics= &lex->sp_chistics;
            lex->sphead->set_body_start(thd, lip->get_cpp_tok_start());
          }
    break;

  case 2364:
#line 12313 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            sp_head *sp= lex->sphead;

            sp->set_stmt_end(YYTHD);
            lex->sql_command= SQLCOM_CREATE_PROCEDURE;
            /*
              Restore flag if it was cleared above
              Be careful with counting. the block where we save the value
              is $4.
            */
            YYTHD->client_capabilities |= (yyvsp[(4) - (12)].ulong_num);
            sp->restore_thd_mem_root(YYTHD);
          }
    break;

  case 2365:
#line 12333 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_START;
          }
    break;

  case 2366:
#line 12337 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_END;
          }
    break;

  case 2367:
#line 12341 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_PREPARE;
          }
    break;

  case 2368:
#line 12345 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_COMMIT;
          }
    break;

  case 2369:
#line 12349 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_ROLLBACK;
          }
    break;

  case 2370:
#line 12353 "sql_yacc.yy"
    {
            Lex->sql_command = SQLCOM_XA_RECOVER;
          }
    break;

  case 2371:
#line 12360 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (1)].string)->length() <= MAXGTRIDSIZE);
            if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set(1L, (yyvsp[(1) - (1)].string)->ptr(), (yyvsp[(1) - (1)].string)->length(), 0, 0);
          }
    break;

  case 2372:
#line 12367 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].string)->length() <= MAXGTRIDSIZE && (yyvsp[(3) - (3)].string)->length() <= MAXBQUALSIZE);
            if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set(1L, (yyvsp[(1) - (3)].string)->ptr(), (yyvsp[(1) - (3)].string)->length(), (yyvsp[(3) - (3)].string)->ptr(), (yyvsp[(3) - (3)].string)->length());
          }
    break;

  case 2373:
#line 12374 "sql_yacc.yy"
    {
            MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].string)->length() <= MAXGTRIDSIZE && (yyvsp[(3) - (5)].string)->length() <= MAXBQUALSIZE);
            if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID))))
              MYSQL_YYABORT;
            Lex->xid->set((yyvsp[(5) - (5)].ulong_num), (yyvsp[(1) - (5)].string)->ptr(), (yyvsp[(1) - (5)].string)->length(), (yyvsp[(3) - (5)].string)->ptr(), (yyvsp[(3) - (5)].string)->length());
          }
    break;

  case 2374:
#line 12383 "sql_yacc.yy"
    {}
    break;

  case 2375:
#line 12384 "sql_yacc.yy"
    {}
    break;

  case 2376:
#line 12388 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2377:
#line 12389 "sql_yacc.yy"
    { Lex->xa_opt=XA_JOIN;        }
    break;

  case 2378:
#line 12390 "sql_yacc.yy"
    { Lex->xa_opt=XA_RESUME;      }
    break;

  case 2379:
#line 12394 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2380:
#line 12395 "sql_yacc.yy"
    { Lex->xa_opt=XA_ONE_PHASE;   }
    break;

  case 2381:
#line 12400 "sql_yacc.yy"
    { Lex->xa_opt=XA_NONE;        }
    break;

  case 2382:
#line 12402 "sql_yacc.yy"
    { Lex->xa_opt=XA_SUSPEND;     }
    break;

  case 2384:
#line 12407 "sql_yacc.yy"
    {}
    break;

  case 2385:
#line 12408 "sql_yacc.yy"
    { Lex->xa_opt=XA_FOR_MIGRATE; }
    break;

  case 2386:
#line 12413 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_INSTALL_PLUGIN;
            lex->comment= (yyvsp[(3) - (5)].lex_str);
            lex->ident= (yyvsp[(5) - (5)].lex_str);
          }
    break;

  case 2387:
#line 12423 "sql_yacc.yy"
    {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_UNINSTALL_PLUGIN;
            lex->comment= (yyvsp[(3) - (3)].lex_str);
          }
    break;


/* Line 1267 of yacc.c.  */
#line 30685 "sql_yacc.cc"
      default: break;
    }
  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);

  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);

  *++yyvsp = yyval;


  /* Now `shift' the result of the reduction.  Determine what state
     that goes to, based on the state we popped back to and the rule
     number reduced by.  */

  yyn = yyr1[yyn];

  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
    yystate = yytable[yystate];
  else
    yystate = yydefgoto[yyn - YYNTOKENS];

  goto yynewstate;


/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
  /* If not already recovering from an error, report this error.  */
  if (!yyerrstatus)
    {
      ++yynerrs;
#if ! YYERROR_VERBOSE
      yyerror (YY_("syntax error"));
#else
      {
	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
	  {
	    YYSIZE_T yyalloc = 2 * yysize;
	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
	    if (yymsg != yymsgbuf)
	      YYSTACK_FREE (yymsg);
	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
	    if (yymsg)
	      yymsg_alloc = yyalloc;
	    else
	      {
		yymsg = yymsgbuf;
		yymsg_alloc = sizeof yymsgbuf;
	      }
	  }

	if (0 < yysize && yysize <= yymsg_alloc)
	  {
	    (void) yysyntax_error (yymsg, yystate, yychar);
	    yyerror (yymsg);
	  }
	else
	  {
	    yyerror (YY_("syntax error"));
	    if (yysize != 0)
	      goto yyexhaustedlab;
	  }
      }
#endif
    }



  if (yyerrstatus == 3)
    {
      /* If just tried and failed to reuse look-ahead token after an
	 error, discard it.  */

      if (yychar <= YYEOF)
	{
	  /* Return failure if at end of input.  */
	  if (yychar == YYEOF)
	    YYABORT;
	}
      else
	{
	  yydestruct ("Error: discarding",
		      yytoken, &yylval);
	  yychar = YYEMPTY;
	}
    }

  /* Else will try to reuse look-ahead token after shifting the error
     token.  */
  goto yyerrlab1;


/*---------------------------------------------------.
| yyerrorlab -- error raised explicitly by YYERROR.  |
`---------------------------------------------------*/
yyerrorlab:

  /* Pacify compilers like GCC when the user code never invokes
     YYERROR and the label yyerrorlab therefore never appears in user
     code.  */
  if (/*CONSTCOND*/ 0)
     goto yyerrorlab;

  /* Do not reclaim the symbols of the rule which action triggered
     this YYERROR.  */
  YYPOPSTACK (yylen);
  yylen = 0;
  YY_STACK_PRINT (yyss, yyssp);
  yystate = *yyssp;
  goto yyerrlab1;


/*-------------------------------------------------------------.
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
`-------------------------------------------------------------*/
yyerrlab1:
  yyerrstatus = 3;	/* Each real token shifted decrements this.  */

  for (;;)
    {
      yyn = yypact[yystate];
      if (yyn != YYPACT_NINF)
	{
	  yyn += YYTERROR;
	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
	    {
	      yyn = yytable[yyn];
	      if (0 < yyn)
		break;
	    }
	}

      /* Pop the current state because it cannot handle the error token.  */
      if (yyssp == yyss)
	YYABORT;


      yydestruct ("Error: popping",
		  yystos[yystate], yyvsp);
      YYPOPSTACK (1);
      yystate = *yyssp;
      YY_STACK_PRINT (yyss, yyssp);
    }

  if (yyn == YYFINAL)
    YYACCEPT;

  *++yyvsp = yylval;


  /* Shift the error token.  */
  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);

  yystate = yyn;
  goto yynewstate;


/*-------------------------------------.
| yyacceptlab -- YYACCEPT comes here.  |
`-------------------------------------*/
yyacceptlab:
  yyresult = 0;
  goto yyreturn;

/*-----------------------------------.
| yyabortlab -- YYABORT comes here.  |
`-----------------------------------*/
yyabortlab:
  yyresult = 1;
  goto yyreturn;

#ifndef yyoverflow
/*-------------------------------------------------.
| yyexhaustedlab -- memory exhaustion comes here.  |
`-------------------------------------------------*/
yyexhaustedlab:
  yyerror (YY_("memory exhausted"));
  yyresult = 2;
  /* Fall through.  */
#endif

yyreturn:
  if (yychar != YYEOF && yychar != YYEMPTY)
     yydestruct ("Cleanup: discarding lookahead",
		 yytoken, &yylval);
  /* Do not reclaim the symbols of the rule which action triggered
     this YYABORT or YYACCEPT.  */
  YYPOPSTACK (yylen);
  YY_STACK_PRINT (yyss, yyssp);
  while (yyssp != yyss)
    {
      yydestruct ("Cleanup: popping",
		  yystos[*yyssp], yyvsp);
      YYPOPSTACK (1);
    }
#ifndef yyoverflow
  if (yyss != yyssa)
    YYSTACK_FREE (yyss);
#endif
#if YYERROR_VERBOSE
  if (yymsg != yymsgbuf)
    YYSTACK_FREE (yymsg);
#endif
  /* Make sure YYID is used.  */
  return YYID (yyresult);
}




